回复: [求助]用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 还有很多基本的概念不懂 这个是不是我把什么理解错了???
非常感谢~~~
|