Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-12-17
年龄: 37
帖子: 4
声望力: 0 ![]() |
![]()
函数如下:
function F=myfun1(x,X,Y) lamda=0.0000006328; pi=3.1415926; w=x(1); x0=x(2); F=w*(1+((lamda*(X-x0))/(pi*w*w)).^2).^(1/2)-Y; m文件如下: X=21:40; Y=[0.15267800423 0.14925281098 0.14634795631 0.14121052685 0.13016573550 0.11923299345 0.11755029933 0.10693783691 0.10293788971 0.09738574331 0.09576117495 0.09379011980 0.09411160161 0.09997933479 0.10494864962 0.11352656282 0.11699422484 0.12614298468 0.12699806179 0.13521383159]; xc=[1,1]; % 设置用中等模式(memdium-scale)算法 options=optimset('Largescale','off'); %通过调用LSQNONLIN重现计算新的系数 x=lsqnonlin(@myfun1,xc,[],[],options,X,Y); disp(x); % 绘制原始数据与新的计算的数据 lamda=0.0000006328; w=x(1); x0=x(2); Y_new=w*(1+((lamda*(X-x0))/(pi*w*w)).^2).^(1/2); plot(X,Y,'+r',X,Y_new,'b'); 运行出现错误: Optimization terminated: directional derivative along search direction less than TolFun and infinity-norm of gradient less than 10*(TolFun+TolX). 0.1186 1.0000 图形拟合的结果和实际数据相差也很大 请教各位大侠是什么原因?殷切的盼望回复 |
![]() |
![]() |