如何把下列散点所描绘的matlab曲线做指数曲线拟合,并求出函数。

x = [5.2 5.8 6.8 7.8 8.8 9.7 11.77 13.94 16 18 20 22 23.9 26 27.9 30 32 34 36 38 40 42 44 45.8 47.8 50 51.8 53.8 55.7 57.8 59.6 61.7 63.7 65.7 67.8 69.7 71.6 73.7 75.5 77.7 79.7 81.7 83.5 85.6 87.8 89.6 91.5 93.1 95.5 97.5 99.2]
y = [747 646 525 439 381 334 265 210 171 144 121 104 89.1 77.2 68 59 50.2 41.1 33.7 27 22.1 17.9 14.8 12.3 10.1 8.52 6.97 5.81 4.97 4.13 3.53 2.98 2.50 2.12 1.84 1.63 1.46 1.32 1.26 1.19 1.14 1.10 1.07 1.02 0.964 0.912 0.874 0.869 0.878 0.884 0.893]
plot(x,y,'r-')
能否给出更详细的程序,你们所列的程序我还是不能在matlab中生成所要程序。我感觉这个函数应该是指数型的函数,最后我希望求得一个公式。如果为指数形式,请告知我拟合求完之后最终公式的表示形式,谢谢!

第1个回答  2010-09-03
ly = log(y);要做指数拟合,先求对数,在用多项式拟合
p2 = polyfit(x,ly,2);
y2 = polyval(p2,x);
p3 = polyfit(x,ly,3);
y3 = polyval(p3,x);
p5 = polyfit(x,ly,5);
y5 = polyval(p5,x);
plot(x,y,'b-',x,exp(y2),'y-',x,exp(y3),'r-',x,exp(y5),'g-')

程序拟合出来的函数为
P2 = 0.00053138 -0.12959 7.2118
P3 = 8.0851e-006 -0.00071054 -0.077795 6.7326
p5 = -8.7712e-009 2.3763e-006 -0.00022608 0.0094018
-0.25721 7.6517
第2个回答  2010-09-11
用MATLAB中的cftool命令,调出拟合工具
输入数据后,再输入cftool(x,y).里面有各种拟合方式
第3个回答  2010-09-16
General model Power2:
f(x) = a*x^b+c
Coefficients (with 95% confidence bounds):
a = 5924 (5551, 6297)
b = -1.231 (-1.267, -1.196)
c = -30.36 (-34.92, -25.8)

Goodness of fit:
SSE: 2201
R-square: 0.9985
Adjusted R-square: 0.9985
RMSE: 6.772本回答被网友采纳
第4个回答  2010-09-02
c=4;
p=polyfit(x,y,c);%参数c为拟合曲线次数,p为降幂系数
z=polyval(p,x);
plot(x,y,x,z,'k.');
四次曲线拟合比较接近,不过误差还是挺大的,最后是已知函数拟合
相似回答
大家正在搜