24小时热门版块排行榜    

CyRhmU.jpeg
查看: 726  |  回复: 3

ssmile37

铁虫 (小有名气)

[求助] matlab 运行出错,求帮忙啦~~·

用'Levenberg-Marquardt'计算,运行后提示Optimization terminated: no further progress can be made.Cannot generate point that reduces the sum of squares.
Problem may be ill-conditioned.
不知是何原因,现把程序发上来,求大家帮助!!!!



function sh
options = optimset('Algorithm','MaxFunEvals',5000);
[x,RESNORM,RESIDUAL,EXITFLAG]=lsqnonlin(@sh1,[1,1,1],[],[],options);
function f=sh1(beta)
data=[286 0.0646 0.999354;297 0.1079 0.998921;303 0.1330 0.998670;323 0.2508 0.997492;353 0.8079 0.991921;369 1.5109 0.984891];
T=data(:,1)';
x1=data(:,2)'*0.01;
x2=data(:,3)';
new1=84.6;
new2=18.0;
date1=24.77;
date2=48.15;
for i=1:6
r1(i)=1/x1(i)*exp(103.3*1000/8.314*(1/459.6-1/T(i)));
l12(i)=beta(1)+beta(2)*T(i)+beta(3)*T(i)^2;
fai2(i)=new2*x2(i)/(new1*x1(i)+new2*x2(i));
r1(i)=new1*((date1-date2)^2+2*l12(i)*date1*date2)*fai2(i)^2;
x1c(i)=1/r1(i)*103.3*1000/8.314*(1/459.6-1/T(i));
end
f=sum((x1-x1c).^2);
回复此楼
只要相信,总会有奇迹
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ssmile37

铁虫 (小有名气)

问什么没有人回应
只要相信,总会有奇迹
2楼2012-06-20 13:50:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★
感谢参与,应助指数 +1
贺仪: 金币+1, 谢谢建议! 2012-06-22 22:32:24
ssmile37: 金币+3, 有帮助 2012-06-26 21:41:57
你先看看你的程序没问题吗?r1计算两次,常量先算出来,看起来简单点,比较好分析。
此外使用f=x1-x1c就可以了,lsqnonlin自己可以求平方和,不然太大,小的beta改变引起大的f改变就会造成病态问题。
再有,你的初值也可能就是一个极小值点
showmethemoney
3楼2012-06-21 09:52:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ssmile37

铁虫 (小有名气)

引用回帖:
3楼: Originally posted by csgt0 at 2012-06-21 09:52:51
你先看看你的程序没问题吗?r1计算两次,常量先算出来,看起来简单点,比较好分析。
此外使用f=x1-x1c就可以了,lsqnonlin自己可以求平方和,不然太大,小的beta改变引起大的f改变就会造成病态问题。
再有,你的初 ...

谢谢~我已经修改好了,运行结果出来后是Optimization terminated: first-order optimality less than OPTIONS.TolFun,
and no negative/zero curvature detected in trust region model.不知道这个是不是有问题的
只要相信,总会有奇迹
4楼2012-06-23 10:38:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ssmile37 的主题更新
信息提示
请填处理意见