Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-12-17, 11:38   #1
sunflower
初级会员
 
注册日期: 2009-12-17
年龄: 37
帖子: 4
声望力: 0
sunflower 正向着好的方向发展
默认 急切请教matlab多元非线性拟合问题

函数如下:
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

图形拟合的结果和实际数据相差也很大
请教各位大侠是什么原因?殷切的盼望回复
sunflower 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 12:07


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.