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=3358)

yuansu 2008-05-30 15:31

[求助]数据拟合,急
 
y1 y2
x 断面1 断面2
1.4 0.14 0.14
1.36 0.15 0.14
1.32 0.36 0.36
1.28 0.57 0.58
1.24 0.36 0.36
1.15 0.15 0.15
对上面的一组数据,要求出x对y1和y2的函数,数值较吻合就行.我用MATLAB试过多项式拟和,但是结果不太理想,选三阶函数,数据相差大,选四阶,函数得出来后,再将X带入的话,Y是复值.请问还有什么方法可以解决吗?

fanxing39 2008-05-30 19:59

用三次样条试下,结果一定不错哦 !
命令:interp1(x,y,'spline')

slgu 2008-06-01 10:24

fy=b(1)+b(2)*x.^3+b(3)*exp(b(4)*x+b(5)*x.^2+b(6)*x.^3);
y1
b=[ .166999866, -.122369752e-1, .339402702e151, -1364.59471, 1495.21821, -500.935404]
RSS =.1388522567e-3
R^2 = .999074

y2
b =[.170609344, -.148628605e-1, .469726606e151, -1384.65414, 1525.99841, -512.880376]
RSS =.3427292373e-3
R^2 =.997837
但,数据点太少,这些可能并不能说明问题。

fanxing39 2008-06-04 23:29

[QUOTE=slgu;11727]fy=b(1)+b(2)*x.^3+b(3)*exp(b(4)*x+b(5)*x.^2+b(6)*x.^3);
y1
b=[ .166999866, -.122369752e-1, .339402702e151, -1364.59471, 1495.21821, -500.935404...[/QUOTE]

你没介绍下 怎么算出来的,有点不地道吧 :redface:

yhcode 2008-06-05 21:08

你可以尝试一下MATLAB的曲线拟合工具箱中提供的cftool工具
直接在命令窗口输入cftool即可,很方便的


所有时间均为北京时间。现在的时间是 13:16

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