| 查看: 697 | 回复: 1 | |||
[求助]
matlab问题已有1人参与
|
|
Solver stopped prematurely. lsqnonlin stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 400 (the default value). 程序运行后出现这个问题如何解决? 下面是程序: function octene300 clear all;clc format long; global WF0 x PA0 PB0 F0=[15 17.5 20 22.5 25]; WF01=0.01./0.75*112/0.2./F0; WF02=0.01./0.75*112/0.15./F0; WF03=0.01./0.75*112/0.2./F0; WF0=[WF01;WF02;WF03]; x1=[0.706437072 0.664245006 0.646259394 0.621726302 0.592621525]; x2=[0.718029406 0.68794238 0.671240637 0.6540687 0.611399535]; x3=[0.741205864 0.715903989 0.690602114 0.663064058 0.635526002]; x=[x1;x2;x3]; PA01=10.94593968; PA02=8.105903925; PA03=10.87159518; PA0=[PA01 PA02 PA03]; PB01=0.480085074; PB02=0; PB03=0; PB0=[PB01 PB02 PB03]; beta0=[1 1 1 1 1]; lb=[0 0 0 0 0]; ub=[inf inf inf inf inf]; [beta,resnorm,resid,exitflag,output,lambda,jacobian] = ... lsqnonlin(@OptObjFunc,beta0,lb,ub,[]) ci = nlparci(beta,resid,jacobian); beta %拟合效果图(实验与拟合的比较) WF0c1=KineticsEqs(beta,x(1, ,PA0(1),PB0(1));F0c1=0.01*112./WF0c1/0.75/0.2; WF0c2=KineticsEqs(beta,x(2, ,PA0(2),PB0(2));F0c2=0.01*112./WF0c2/0.75/0.15; WF0c3=KineticsEqs(beta,x(3, ,PA0(3),PB0(3));F0c3=0.01*112./WF0c3/0.75/0.2; plot(F0c1,x1,'k-',F0c2,x2,'r-',F0c3,x3,'g-',F0,x1,'ko', F0,x2,'ro', F0,x3,'go') legend('0.2-0.15','0.15-0','0.2-0');xlabel('Flow rate of model oil mL/h','FontSize',12);ylabel('1-octene Conversion','FontSize',12); xlim([10, 30]); figure plot(F0,F0,'k-',F0,F0c1,'bo',F0,F0c2,'go',F0,F0c3','ro') % 残差关于拟合值的残差图 figure plot(WF0c1,resid(:,1),'*',WF0c2,resid(:,2),'*',WF0c3,resid(:,3),'*') xlabel('WF0') ylabel('残差R') refline(0,0) % 参数辨识结果 fprintf('Estimated Parameters:\n') fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1)) fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2)) fprintf('\ts = %.2f ± %.2f\n',beta(3),ci(3,2)-beta(3)) fprintf('\tq = %.2f ± %.2f\n',beta(4),ci(4,2)-beta(4)) fprintf('\tp = %.2f ± %.2f\n',beta(5),ci(5,2)-beta(5)) % ------------------------------------------------------------------ function f = OptObjFunc(beta,x,WF0) global WF0 x PA0 PB0 WF1=KineticsEqs(beta,x(1, ,PA0(1),PB0(1));WF2=KineticsEqs(beta,x(2, ,PA0(2),PB0(2));WF3=KineticsEqs(beta,x(3, ,PA0(3),PB0(3));f1=WF0(1, -WF1;f2=WF0(2, -WF2;f3=WF0(3, -WF3;f=[f1 f2 f3] % ------------------------------------------------------------------ function WF = KineticsEqs(beta,x,PA0,PB0) WF=(1+beta(4).*PB0)/(beta(1)+beta(2))/beta(3)./PA0.*log(1./(1-x))+x./(beta(1)+beta(2))+(beta(4)*0.22987+beta(5)-beta(5)*0.22987)/(beta(1)+beta(2))/beta(3).*(-x-log(1-x)); |
» 猜你喜欢
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有9人回复
心脉受损
已经有6人回复
博士申请都是内定的吗?
已经有8人回复
博士读完未来一定会好吗
已经有32人回复
读博
已经有5人回复
投稿精细化工
已经有4人回复
高职单位投计算机相关的北核或SCI四区期刊推荐,求支招!
已经有4人回复
导师想让我从独立一作变成了共一第一
已经有9人回复
Springer期刊投稿求助
已经有4人回复
CelestialCYJ
木虫 (小有名气)
- 应助: 33 (小学生)
- 金币: 2482.6
- 红花: 12
- 帖子: 144
- 在线: 43.3小时
- 虫号: 3277506
- 注册: 2014-06-16
- 专业: 结构工程
2楼2014-12-28 15:28:13













,PA0(1),PB0(1));
回复此楼