查看: 76|回复: 1|关注: 0

[已答复] #新手求助!编辑优化options结构体/lsqcurvefit函数参数拟合

[复制链接]

新手

10 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
发表于 6 天前 | 显示全部楼层 |阅读模式
t=[.083 .167 .25 .50 .75 1.0 1.5 2.25 3.0 4.0 6.0 8.0 10.0 12.0];
c=[10.9 21.1 27.3 36.4 35.5 38.4 34.8 24.2 23.6 15.7 8.2 8.3 2.2 1.8];
x0=ones(1,3);
f=@(x,t) x(3).*(x(2)./(x(2)-x(1))).*(exp(-x(1).*t)-exp(-x(2).*t));
opt1=optimset('Algorithm','levenberg-marquardt','LargeScale','off','MaxIter',100);
[x,norm,res]=lsqcurvefit(f,x0,t,c,[],[],opt1)

--------------------------------------------------------------------------------------------------------------

这个代码跑不出来,报错说是optimset当中的LM算法使用不对,以及lsqcurvefit那一行有问题,但是我实在不知道问题在哪。希望有大神帮帮我!


回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2590

帖子

790

最佳答案
  • 关注者: 218
发表于 6 天前 | 显示全部楼层
你预设的x0=ones(1,3)这个数值会导致代入自定义模型f中时分母为零,这是要避免的情况。把它换成x0=rand(1,3)之类随机数基本就可以顺利运行了,比如 x0 = [ 0.814723686393179        0.905791937075619        0.126986816293506 ]时,求得
x =
    0.2803    3.6212   46.8275
norm =
   34.2317
res =
    1.1091   -0.3885   -0.5052   -0.5820    2.2767   -1.4071   -1.6859    2.8020   -1.7058    0.8438    1.2453   -2.9075    0.8787   -0.0423
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表