声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1438|回复: 1

[数学理论] 为什么nlinfit线性拟合的不好?

[复制链接]
发表于 2009-3-1 17:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
clear all

k=1:1000
   x(k)=(4e-10)./(k.^2)+2e-13./k+5e-17*k+1e-17; %+randn(1)
   
x=1:1000;
y(k)=(4e-10)./(x.^2)+2e-13./x+5e-17*x+1e-17+randn(1);

fun=inline('exp(a(1)./(t.^2)+a(2)./(t)+a(3))','a','t');
a=nlinfit(x,y,fun,[4e-10 2e-13 17]);
xx=1:1000;
yy=a(1)./(xx.^2)+a(2)./(xx)+a(3);
plot(x,y,'-b',xx,yy)

z=log(y);
p=polyfit(x,z,1);
z1=polyval(p,x);
y1=exp(z1);
figure
plot(x,y,'-r',x,y1)

我使用上面的方法验证nlinfit  函数的线性拟合,但是发现 很奇怪的是,两条线没有重合
按理我选择的初始值 [4e-10 2e-13 17] 已经是正确的方程值了,应该拟合出来的参数方差不会比这个更差的
但是事实并不是这样!难道我的 nlinfit   函数用的有问题
还是非线性拟合还需要注意一些其它的问题??
回复
分享到:

使用道具 举报

发表于 2009-3-2 13:40 | 显示全部楼层
Check !!
y(k)=(4e-10)./(x.^2)+2e-13./x+5e-17*x+1e-17+randn(1);
a=nlinfit(x,y,fun,[4e-10 2e-13 17]);

[ 本帖最后由 ChaChing 于 2009-3-2 14:03 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-9 11:10 , Processed in 0.058119 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表