| 查看: 1354 | 回复: 7 | ||
[求助]
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. |
» 猜你喜欢
求标准粉末衍射卡号 ICDD 01-076-1802
已经有0人回复
新西兰Robinson研究所招收全奖PhD
已经有0人回复
物理学I论文润色/翻译怎么收费?
已经有87人回复
石墨烯转移--二氧化硅衬底石墨烯
已经有0人回复
笼目材料中量子自旋液体基态的证据
已经有0人回复
数学教学论硕士可以读数学物理博士吗?
已经有0人回复
德国亥姆霍兹Hereon中心汉堡分部招镁合金腐蚀裂变SCC课题方向2026公派博士生
已经有4人回复
澳门大学 应用物理及材料工程研究院 潘晖教授课题组诚招博士后
已经有11人回复
求助NH4V4O10晶体的CIF文件
已经有0人回复
英国全奖博士招聘-深度学习与量子物理
已经有0人回复
间接带隙半导体有效质量求助
已经有0人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab 程序问题
已经有15人回复
Matlab程序问题
已经有2人回复
matlab程序问题
已经有2人回复
matlab程序问题求解答
已经有10人回复
matlab程序问题求助
已经有1人回复
Matlab程序问题
已经有3人回复
【求助】matlab程序问题
已经有0人回复
TSP matlab程序问题 请各位大侠帮忙啊
已经有0人回复
matlab程序问题,总是出错,麻烦大家看看问题在那里?
已经有6人回复
matlab 程序问题
已经有2人回复
matlab 程序问题
已经有4人回复
|
顶一下 发自小木虫Android客户端 |
2楼2016-06-08 16:36:24
3楼2016-06-08 16:36:38
4楼2016-06-08 21:00:47
5楼2016-06-08 21:21:00
6楼2016-06-09 00:28:57
7楼2016-06-09 12:57:47
8楼2016-06-09 13:08:42











回复此楼