24小时热门版块排行榜    

查看: 2603  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

QiChyi

银虫 (初入文坛)

[求助] 求助Matlab lsqcurve函数曲线拟合

本人编写一个利用lsqcurvefit函数拟合曲线的函数,代码如下:
总是提示错误:Optimization terminated: norm of the current step is less than OPTIONS.TolX.
不晓得是怎么回事,请求高人指点!(注:由于种种原因,仅能用Matlab编程,其他软件不采用)
w=2*pi*[0.00099 0.001 0.002 0.004 0.010 0.021544 0.0464 0.100 0.2154 0.4641 1 2.154 4.64 10 20 40 70 110 222 446 1000];
ydata=[5.5981 5.5924 5.3308 5.2180 5.1315 5.0785 5.0289 5 5.1115 5.0825 5.0579 5.0401 5.0175 5.0271 5.0151 5.005 5.0002 4.9950 4.9906 4.9862 4.9875];
ep0=[3.3 0.1 -4.8 4 7e-4 5e-11 0.68 0.78 5];

ept=inline('ep(1)*w.^(-ep(2))+real(ep(3)./(1+(j*w*ep(5)).^(1-ep(7)))+ep(4)./(1+(j*w*ep(6)).^(1-ep(8))))+ep(9)','ep','w');
ep=lsqcurvefit(ept,ep0,w,ydata);
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mycastle

银虫 (正式写手)

【答案】应助回帖


jjdg(金币+1): 感谢参与 2011-09-08 09:59:59
QiChyi(金币+5): 谢谢 mycastle,再尝试一哈 2011-09-08 10:16:24
可以输入optimset命令
设置X tolerance项。默认的是1.0e-6

或者吧那个猜值改的大一点试试。
希言自然~
3楼2011-09-08 00:40:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

mycastle

银虫 (正式写手)


jjdg(金币+1): 感谢参与 2011-09-08 09:59:52
可能是OPTIONS.TolX的值的原因吧.
TolX - Termination tolerance on X [ positive scalar ]
是不是ep0中的猜值5e-11选得不合适?
希言自然~
2楼2011-09-08 00:35:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mycastle

银虫 (正式写手)

引用回帖:
3楼: Originally posted by mycastle at 2011-09-08 00:40:23:
可以输入optimset命令
设置X tolerance项。默认的是1.0e-6

或者吧那个猜值改的大一点试试。

不好意思,打错了

可以输入optimtool命令
设置X tolerance项。默认的是1.0e-6

或者吧那个猜值改的大一点试试
希言自然~
4楼2011-09-08 00:42:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见