24小时热门版块排行榜    

查看: 1475  |  回复: 7

何fox

新虫 (著名写手)

[求助] matlab程序问题

本人刚刚接触matlab,但是无法解决运行时提出的参数不足问题。。。求解答
function P
clear all; clc
k0=[50000 50000 50000 50000 50000];   %参数初值
l=[0 0 0 0 0 ]; u=[+inf +inf +inf +inf +inf +inf];%l、u:参数下限和上限
x0=[16.68 0 0 0 0 0];
DATA2;
global A2
warning off
yexp=A2(:,2:7);   %yexp:实验数据[x1 x2 x3 x4 x5 x6]
xm=A2(:,8);
% 使用函数lsqnonlin()进行参数估计
[k,resnorm,residual,exitflag,output,lambda,jacobian]=...
    lsqnonlin(@FUNC,k0,l,u,[],x0,xm,yexp)
ci=nlparci(k,residual,jacobian);
%参数辨识结果
fprintf('\n\n使用函数fmincon()估计得到的参数值为:\n')
fprintf('\tk1=%.4f±%.4f\n',k(1),c(1,2)-k(1));
fprintf('\tk2=%.4f±%.4f\n',k(2),c(2,2)-k(2));
fprintf('\tk3=%.4f±%.4f\n',k(3),c(3,2)-k(3));
fprintf('\tk4=%.4f±%.4f\n',k(4),c(4,2)-k(4));
fprintf('\tk5=%.4f±%.4f\n',k(5),c(5,2)-k(5));
fprintf('The sum of the squares is: %.9e\n\n',resnorm)
fprintf(' The sum of the squares is:%.1e\n\n',sum(residual.^2))
function f=FUNC(k,x0,yexp,xm)
tspan=[0 30 40 50 60 70 80 90 120 180 240];
[t x]=ode45(@K,tspan,x0,[],k);
y(:,1:6)=x(:,1:6);
f1=y(:,1)-yexp(:,1);
f2=y(:,2)-yexp(:,2);
f3=y(:,3)-yexp(:,3);
f4=y(:,4)-yexp(:,4);
f5=y(:,5)-yexp(:,5);
f6=y(:,6)-yexp(:,6);
f=[f1;f2;f3;f4;f5;f6];
%----------------------------------------模型方程
function dxdt=K(t,x,k,xm)
dxdt=...
    [(-k(1)*xm.^2*x(1)-k(2)*x(1)*x(2)-k(3)*x(1)*x(3)-k(4)*x(1)*x(4)-k(5)*x(1))
      (k(1)*x(1)*xm.^2-k(2)*x(1)*x(2))
      (k(2)*x(1)*x(2)-k(3)*x(1)*x(3))
      (k(3)*x(1)*x(3)-k(4)*x(1)*x(4))
      (k(4)*x(1)*x(4)-k(5)*x(1))
      (k(5)*x(1))
    ];
function DATA2
global A2
A2 = ...
  [0 16.68 0 0 0 0 0 15.6;
   30 15.61 0.85 0.09 0.01 0 0 6.62;
   40 14.96 1.02 0.21 0.03 0 0 7.85;
   50 14.5 1.06 0.24 0.04 0 0 8.04;
   60 12.85 1.46 0.54 0.12 0 0 7.1;
   70 13.22 1.44 0.52 0.13 0 0 7.09;
   80 11.63 1.78 0.63 0.14 0 0 6.1;
   90 10.89 2.97 1.05 0.28 0.05 0 5.03;
   100 9.26 2.95 1.16 0.32 0.08 0.01 4.5;
   120 8 3.38 1.11 0.31 0.07 0.01 4.55;
   150 7.77 3.13 1.27 0.35 0.08 0.01 4.17;
   180 7.38 3.49 1.25 0.35 0.08 0.01 4.07;
   240 6.58 3.75 1.26 0.36 0.09 0.01 3.84];

错误使用 PODE>K (line 37)
输入参数的数目不足。

出错 odearguments (line 87)
f0 = feval(ode,t0,y0,args{:});   % ODE15I sets args{1} to yp0.

出错 ode45 (line 113)
[neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ...

出错 PODE>FUNC (line 26)
[t x]=ode45(@K,tspan,x0,[],k);

出错 lsqnonlin (line 193)
            initVals.F = feval(funfcn{3},xCurrent,varargin{:});

出错 PODE (line 12)
[k,resnorm,residual,exitflag,output,lambda,jacobian]=...

原因:
    Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot continue.
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

何fox

新虫 (著名写手)

2楼2016-06-08 16:36:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

何fox

新虫 (著名写手)

3楼2016-06-08 16:36:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkccy

金虫 (正式写手)

4楼2016-06-08 21:00:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

何fox

新虫 (著名写手)

引用回帖:
4楼: Originally posted by kkccy at 2016-06-08 21:00:47
你的x 0为什么是六个数字

哦哦,我估计没删除最后一列,我再试一下,谢谢

发自小木虫Android客户端
5楼2016-06-08 21:21:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

何fox

新虫 (著名写手)

引用回帖:
4楼: Originally posted by kkccy at 2016-06-08 21:00:47
你的x 0为什么是六个数字

xo是初值

发自小木虫Android客户端
6楼2016-06-09 00:28:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kkccy

金虫 (正式写手)

引用回帖:
6楼: Originally posted by 何fox at 2016-06-09 00:28:57
xo是初值
...

你这个有很多地方不是很清楚,比如上限下限有的是五个数有的是六个数,初值也是六个数,可能一开始的数值就有问题了

发自小木虫Android客户端
7楼2016-06-09 12:57:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

何fox

新虫 (著名写手)

哦哦,改过来了,我要求5个参数,不过总是提示参数不足?

发自小木虫Android客户端
8楼2016-06-09 13:08:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 何fox 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 ASdOkHsho7FD 2026-08-28 3/150 2026-08-29 03:03 by gy1nBQXYQJqL
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-29 00:28 by winsaint
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +13 晴天加油 2026-08-26 14/700 2026-08-28 18:36 by huagongfeihu
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见