sunflower
2009-12-17, 11:38
函数如下:
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
图形拟合的结果和实际数据相差也很大
请教各位大侠是什么原因?殷切的盼望回复
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
图形拟合的结果和实际数据相差也很大
请教各位大侠是什么原因?殷切的盼望回复