24小时热门版块排行榜    

查看: 769  |  回复: 1

sara_ecust

新虫 (小有名气)

[求助] 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));
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

CelestialCYJ

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
sara_ecust: 金币+20, ★★★★★最佳答案 2015-01-03 22:36:13
添加代码options=optimoptions(@lsqnonlin,'MaxFunEvals',1000);~~~~~~~~~~修改代码lsqnonlin(@OptObjFunc,beta0,lb,ub,options)
2楼2014-12-28 15:28:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 sara_ecust 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 面上项目filecode邪修 +4 西山十月 2026-08-09 6/300 2026-08-10 00:16 by liufeng0619
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +7 Lanmanbaby 2026-08-09 14/700 2026-08-09 23:33 by Tide man
[基金申请] 2026国自然放榜时间 +4 布布和一二 2026-08-08 4/200 2026-08-09 22:24 by otj2008
[基金申请] 关于代码变化问题,想知道的进来 +15 且听虎啸 2026-08-07 22/1100 2026-08-09 22:13 by 布布和一二
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 5/250 2026-08-08 21:54 by 13586093586
[基金申请] 国基金的申报应该改成非等额制,评价高的钱多评价低的钱少,但是增加资助率 +7 a089 2026-08-07 7/350 2026-08-08 18:05 by gltch
[基金申请] 好奇怪的filecode +3 布布和一二 2026-08-08 4/200 2026-08-08 17:46 by zhanghaozhu
[基金申请] 基金中了 +14 laoda193707 2026-08-06 14/700 2026-08-08 00:23 by 实验小白ha
[基金申请] 关于filecode +4 布布和一二 2026-08-07 7/350 2026-08-07 22:55 by zhanghaozhu
[基金申请] 娱乐 +6 Tide man 2026-08-03 6/300 2026-08-07 22:40 by 铁帽子农民
[基金申请] 固定端突然变了,今天 +6 archvillain 2026-08-06 10/500 2026-08-07 16:03 by 医学老男孩
[基金申请] 听说今天filecode变了 +24 布布和一二 2026-08-06 47/2350 2026-08-07 16:02 by zhiyanjiang
[基金申请] filecode变化情况 +6 布布和一二 2026-08-07 22/1100 2026-08-07 14:45 by 且听虎啸
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 7/350 2026-08-07 13:11 by 医学老男孩
[基金申请] filecode +14 等待解的谜 2026-08-06 19/950 2026-08-07 12:20 by wlwhappy
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
信息提示
请填处理意见