Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-07, 21:08   #1
fany_涅槃
初级会员
 
注册日期: 2009-04-27
帖子: 5
声望力: 0
fany_涅槃 正向着好的方向发展
默认 nlinfit函数运行过程中问题

数据文件:
x1=[0.2 1.5 0.401;0.2 1.0 0.401;0.2 0.5 0.401;0.2 0 0.478;0.2 -0.5 0.5832;
0.4 1.5 0.401;0.4 1.0 0.401;0.4 0.5 0.401;0.4 0 0.5638; 0.4 -0.5 0.6413;
0.7 1.5 0.401;0.7 1.0 0.401;0.7 0.5 0.401;0.7 0 0.7037;0.7 -0.5 0.6271;
0.9 1.5 0.501;0.9 1.0 0.602;0.9 0.5 0.401;0.9 0 0.6575;0.9 -0.5 0.8564];
M-文件:
function f=wensheng(k,x)
f=3/(1256*x(1).^2*sqrt(k(1)*k(2)))*exp(-(x(2)-10*k(2)*x(1)).^2/40*k(2)*x(1))*exp(-10*k(3)*x(1));
执行程序:
X=[ones(size(x1(:,1))),x1(:,1:2)];
y=x1(:,3);
k0=[1 1 1];
k=nlinfit(X,y,'wensheng',k0)
执行程序的错误提示:
??? Error using ==> nlinfit at 129
MODELFUN should return a vector of fitted values the same length as Y.
希望高手给于指导,不胜感激!
fany_涅槃 当前离线   回复时引用此帖
旧 2009-05-09, 09:12   #2
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: nlinfit函数运行过程中问题

clear,clc
x=[0.2 1.5 0.401;0.2 1.0 0.401;0.2 0.5 0.401;0.2 0 0.478;0.2 -0.5 0.5832;
0.4 1.5 0.401;0.4 1.0 0.401;0.4 0.5 0.401;0.4 0 0.5638; 0.4 -0.5 0.6413;
0.7 1.5 0.401;0.7 1.0 0.401;0.7 0.5 0.401;0.7 0 0.7037;0.7 -0.5 0.6271;
0.9 1.5 0.501;0.9 1.0 0.602;0.9 0.5 0.401;0.9 0 0.6575;0.9 -0.5 0.8564];
y=x(:,3);x(:,3)=[];
fx=@(b,x)3./(1256*x(:,1).^2*sqrt(b(1)*b(2))).*exp(-(x(:,2)-10*b(2).*x(:,1)).^2/40*b(2).*x(:,1)).*exp(-10*b(3)*x(:,1));
b=[3.51, 0.0223, -0.4595];
for l=1:5
b=lsqcurvefit(fx,b,x,y);
b=nlinfit(x,y,fx,b);
end
bm=b
b=[3.5101555, 0.022290283, -0.4594986];
fxy=@(b,x1,x2)3./(1256*x1.^2*sqrt(b(1)*b(2))).*exp(-(x2-10*b(2).*x1).^2/40*b(2).*x1).*exp(-10*b(3)*x1);
x1=x(:,1);x2=x(:,2);n=length(y);
str=num2str([1:n]');
[x11,x22]=meshgrid(min(x1):range(x1)/60:max(x1),min(x2):range(x2):max(x2));
y1=fxy(b,x11,x22);
plot3(x1,x2,y,'o')
stem3(x1,x2,y,'filled')
text(x1,x2,y,str,'fontsize',12)
hold on
surf(x11,x22,y1);
shading interp
alpha(.85)
axis tight
结果见生成的图。可见,该组数据用此模型来描述是不恰当的,必须修改该或采用另外的模型。
slgu 当前离线   回复时引用此帖
旧 2009-05-09, 14:51   #3
fany_涅槃
初级会员
 
注册日期: 2009-04-27
帖子: 5
声望力: 0
fany_涅槃 正向着好的方向发展
默认 回复: nlinfit函数运行过程中问题

多谢指导,数据确实有点问题。因为实验模拟装置太小与实际不符。未考虑边壁效应,因为刚来论坛不久,以后希望多多关心,再次感谢。
fany_涅槃 当前离线   回复时引用此帖
回复

主题工具
显示模式

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

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



所有时间均为北京时间。现在的时间是 22:29


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