MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【求助】如何实现三维曲线拟合? (https://www.labfans.com/bbs/showthread.php?t=823)

Carol 2007-09-02 11:23

[求助]如何实现三维曲线拟合?
 
通过试验测得一组数据如下:
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];
请教:如何用最小二乘法或其他方法实现曲线拟合?
不慎感激!

pslpsl 2008-08-20 20:56

回复: 【求助】如何实现三维曲线拟合?
 
[SIZE=3]可以做多元线性回归[/SIZE]
把其中1个当作函数值,令两个为自变量,用regress拟合
如把R、B当作变量
[CODE]
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']);
[/CODE]
结果如下
[HTML]
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
[/HTML]
即:
G=5.9267+0.7047*R+0.2553*B
R2 = 0.9912,F = [SIZE=2]506.1621 [/SIZE]

pslpsl 2008-08-20 20:57

回复: 【求助】如何实现三维曲线拟合?
 
非线性回归可由命令nlinfit来实现,调用格式为
[beta,r,j] = nlinfit(x,y,'model’,beta0)

connierong 2008-08-25 10:26

回复: 【求助】如何实现三维曲线拟合?
 
请问一下,这里拟合出来的公式是不是能随便用的啊?比如说我想得到R45、B45时的G值,是不是就能够用这个公式呢?

connierong 2008-08-25 10:28

回复: 【求助】如何实现三维曲线拟合?
 
这个R、G、B数值之间存在这样的线性关系吗?

trisol 2008-11-14 09:21

回复: 【求助】如何实现三维曲线拟合?
 
非线性的函数关系式怎么拟合啊?


所有时间均为北京时间。现在的时间是 03:09

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