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

clc;clear;
x=[-500 -480 -450 -400 -350 -300 -200 -180 -150 -100 -75 -50 -25 0 50 100 125 150 200 220 230 300 350 400 500 600];

y=[0 4 6 10 50 120 150 180 200 400 600 800 1200 1400 1600 1500 1000 800 400 390 300 180 150 50 25 0];

myfunc=inline('0.5*beta(1)*sqrt(3)*erf(sqrt(pi)*beta(2)*x/200)-beta(1)*sqrt(3)*0.5*erf(sqrt(pi)*beta(2)/200*(100-beta(3)-beta(4))','beta','x');
beta=nlinfit(x,y,myfunc,[0.5 1 20 20]);
q=beta(1),tanβ=beta(2),s3=beta(3),s4=beta(4)
%test the model
xx=min(x):max(x);
yy=q*sqrt(3)*0.5*erf(sqrt(pi)*tanβ*x/200)-q*sqrt(3)*0.5*erf(sqrt(pi)*tanβ/200*(100-beta(3)-beta(4));
plot(x,y,'o',x,yy,'r')

帮忙怎样修改呢?初学者
baidu的用户可进http://zhidao.baidu.com/question/99432374.html 有加分
alee817 当前离线   回复时引用此帖
旧 2009-05-30, 22:48   #2
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 非线性拟合

程序里面的β最好换掉,还有erf函数的括号问题!!
clear;clc;
x=[-500 -480 -450 -400 -350 -300 -200 -180 -150 -100 -75 -50 -25 0 50 100 125 150 200 220 230 300 350 400 500 600];
y=[0 4 6 10 50 120 150 180 200 400 600 800 1200 1400 1600 1500 1000 800 400 390 300 180 150 50 25 0];
myfunc=inline('0.5*beta(1)*sqrt(3)*erf(sqrt(pi)*beta(2)*x/200)-beta(1)*sqrt(3)*0.5*erf(sqrt(pi)*beta(2)/200*(100-beta(3)-beta(4)))','beta','x');
beta=nlinfit(x,y,myfunc,[0.5 1 20 20]);
q=beta(1),tan=beta(2),s3=beta(3),s4=beta(4)
%test the model
xx=min(x):max(x);
yy=q*sqrt(3)*0.5*erf(sqrt(pi)*tan*x/200)-q*sqrt(3)*0.5*erf(sqrt(pi)*tan/200*(100-beta(3)-beta(4)));
plot(x,y,'o',x,yy,'r')
希望有帮助!!!
上传的图像
文件类型: jpg qqqq.jpg (8.7 KB, 3 次查看)
TTT_IOU 当前离线   回复时引用此帖
旧 2009-05-30, 23:05   #3
alee817
初级会员
 
注册日期: 2009-05-25
帖子: 4
声望力: 0
alee817 正向着好的方向发展
默认 回复: 非线性拟合

先感谢2楼,虽然代码可以运行了,可是几乎得出的结果是错误的,偏差太大了,是什么原因呢?
alee817 当前离线   回复时引用此帖
旧 2009-05-31, 11:20   #4
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 非线性拟合

该组数若用模型:
fx=@(b,x)=b(1)./(1+b(2)*(x-b(3)).^2).^b(4);
则:
b=[1690.996, 0.000050379149, 49.067055, 1.7555723]
RSS =65750.9048
MSe = 3131
R^2 = 0.98986
slgu 当前离线   回复时引用此帖
回复


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

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



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


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