查看单个帖子
旧 2008-10-08, 16:53   #1
veronicascut
初级会员
 
注册日期: 2008-08-10
年龄: 42
帖子: 4
声望力: 0
veronicascut 正向着好的方向发展
默认 回复: [求助]用nlinfit回归参数计算结果中的误差问题~~~

这个是我程序的第一个部分:

m = zeros(1);
x=[0.7219 0.0058 0.2723
0.7221 0.0049 0.2730
0.7134 0.0039 0.2827
0.7327 0.0029 0.2644
0.7244 0.0022 0.2734
0.7247 0.0010 0.2473];
for i=1:1:6
n(i)=(x(i,2)/853.92)/(x(i,1)/44.01+x(i,2)/853.92+x(i,3)/89.93);
end
n
n1 = (x(:,2)./853.92)./(x(:,1)./44.01+x(:,2)./853.92+x(:,3)./89.93);
t0 = [0 0 0 0 0 0];
zx = zeros(1);
%y = Obj(t0, zx)
[t,r]=nlinfit(x,n1,@Obj,t0)
t=t'

就是回归参数 t,这里面给了初值了。

这个里面 t 是另一个表达式 y 中的参数,
而上面程序里面的 n1 是实验值, y 是计算值。
也就是说,我要把 y 的值与这个程序里面的 n1 值用nlinfit函数运算之后拟合出参数 t
所以我后面还有一个很长的程序 Obj,是关于 t 和 y 的计算
那个程序Obj在上面调用了~

然后结果是这个样子的:

实验值:
n1 =

1.0e-003 *

0.3494
0.2950
0.2359
0.1733
0.1321
0.0609

计算值:
y =

1.0e-003 *

0.0001
0.0008
0.0029
0.0206
0.0261
0.1236

残差:
r =

1.0e-003 *

0.3493
0.2943
0.2330
0.1527
0.1060
-0.0627

我个人认为既然是拟合回归,那么 计算值y 和 实验值 n1 应该很接近吧。
但是实际结果却是 n1 值与 r值很接近……
y的值也很奇怪……

请指教一下 这个到底是怎么回事啊!!!

我刚刚开始学习matlab 还有很多基本的概念不懂 这个是不是我把什么理解错了???

非常感谢~~~
veronicascut 当前离线   回复时引用此帖