通过试验测得一组数据如下:
R=[36 38 40 44 46 46 47 47 48 51 124 124];
B=[26 29 29 34 42 39 36 48 37 41 126 120];
G=[36 40 42 41 52 54 49 49 46 55 124 125];
请教:如何用最小二乘法或其他方法实现曲线拟合?
不慎感激!
可以做多元线性回归
把其中1个当作函数值,令两个为自变量,用regress拟合
如把R、B当作变量
R=[36 38 40 44 46 46 47 47 48 51 124 124];
B=[26 29 29 34 42 39 36 48 37 41 126 120];
G=[36 40 42 41 52 54 49 49 46 55 124 125];
[b,bint,r,rint,stats] = regress(G',[ones(12,1),R',B']);
结果如下
b =
5.9267
0.7047
0.2553
bint =
-2.6554 14.5089
0.0543 1.3550
-0.3369 0.8474
r =
-1.9321
-0.1072
0.4834
-4.6116
2.9369
5.7027
0.7638
-2.2994
-3.1961
2.6688
-1.4704
1.0612
rint =
-8.9398 5.0756
-7.3413 7.1269
-6.6142 7.5810
-10.8276 1.6043
-3.5199 9.3936
0.0039 11.4015
-6.2976 7.8252
-6.6242 2.0254
-9.7984 3.4062
-4.2167 9.5543
-6.5207 3.5799
-4.0028 6.1252
stats =
0.9912 506.1621 0.0000 10.3208
即:
G=5.9267+0.7047*R+0.2553*B
R2 = 0.9912,F = 506.1621
非线性回归可由命令nlinfit来实现,调用格式为
[beta,r,j] = nlinfit(x,y,'model’,beta0)
connierong
2008-08-25, 10:26
请问一下,这里拟合出来的公式是不是能随便用的啊?比如说我想得到R45、B45时的G值,是不是就能够用这个公式呢?
vBulletin® v3.8.3,版权所有 ©2000-2025,Jelsoft Enterprises Ltd.