matlab能不能对多组数据做出拟合函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab能不能对多组数据做出拟合函数相关的知识,希望对你有一定的参考价值。

应该可以的!!!

figure;
x=[2005 2006 2007 2008 2009 2010];
y7=[900 1000 1500 2300 2700 2800];
a=polyfit(x,y7,4);
xi=2005:1:2010;
yi=polyval(a,xi);
plot(x,y7,'go','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6);
xlabel('年份');
ylabel('房地产景气指数');
axis([2005 2010 800 3000])
hold on
plot(xi,yi,'linewidth',2,'markersize',16)
legend('原始数据点','拟合曲线')
plot(x,y7,'-r.')
sprintf('直线方程:Y7=(%0.5g)*X^3+(%0.5g*X^2)+(%0.5g)*X+%0.5g',a(1),a(2),a(3),a(4))

指标名称 2005 2006 2007 2008 2009 2010
第一产业 4 4 4 5 5  6
第二产业 18 31 44 58 65 78 
第三产业 9 11 15 16 18.9 21.9 
用电量 7.66 9.89 11.49 11.93 12.28 15.58
x1=[4 4 4 5 5 6]
x2=[18 31 44 58 65 78]
x3=[9 11 15 16 18.9 21.9]
y=[7.66 9.89 11.49 11.28 15.58]
y=b0+b1x1+b2x2+b3x3

x0 = ones(1,6);
x1=[4 4 4 5 5 6];
x2=[18 31 44 58 65 78];
x3=[9 11 15 16 18.9 21.9];
y = [7.66 9.89 11.49 11.93 11.28 15.58]';
A = [x0;x1;x2;x3]';
b=regress(y,A);
运行完了,在command里输入b,回车,就出来了,分别是b0 b1 b2 b3
主要是采用的矩阵里线性回归的知识。
参考技术A matlab是可以对多组数据做出拟合函数的。如
fun=inline('x(:,1).^2+x(:,2).^2+a(1)*x(:,1)+a(2)*x(:,2)+a(3)','a','x');
其中,x1=x(:,1)=[。。。],x2=x(:,2)=[。。。],
a为拟合系数

如何用matlab做正弦曲线拟合

我只知道能用polyfit做二项式拟合
比如有一组数据,数据大概是正弦曲线,但每个周期都不一样,应该怎么样做
请不要发这种象一楼一样的不相干的垃圾信息,谢谢

参考技术A 【1】第一步
<br>>>cftool
<br>【2】出现对话框,点击data选x和y
<br>【3】creat data set,然后close
<br>【4】点击fitting,在type of type,选Fourier
<br>选择一个合适的即可。

例如:
>> x=0:0.1:pi
>> y=sin(x+x.^2)
>> plot(x,y,'o-')
用非线性回归,得到
得到
General model Sin8:
f(x) =
a1*sin(b1*x+c1) + a2*sin(b2*x+c2) + a3*sin(b3*x+c3) +
a4*sin(b4*x+c4) + a5*sin(b5*x+c5) + a6*sin(b6*x+c6) +
a7*sin(b7*x+c7) + a8*sin(b8*x+c8)
Coefficients (with 95% confidence bounds):
a1 = 4.36 (-2.007e+010, 2.007e+010)
b1 = 1.643 (-1.371e+009, 1.371e+009)
c1 = 0.4803 (-2.517e+009, 2.517e+009)
a2 = 4.282 (-3.806e+006, 3.806e+006)
b2 = 5.715 (-8.181e+004, 8.182e+004)
c2 = -4.306 (-7.305e+004, 7.305e+004)
a3 = 3.823 (-3.826e+006, 3.826e+006)
b3 = 5.867 (-6.623e+004, 6.624e+004)
c3 = -7.586 (-6.24e+004, 6.238e+004)
a4 = 2.67 (-1.363e+014, 1.363e+014)
b4 = 7.29e-006 (-5.336e+011, 5.336e+011)
c4 = -0.8273 (-5.575e+013, 5.575e+013)
a5 = 2.006 (-2.405e+014, 2.405e+014)
b5 = 0.5948 (-1.429e+013, 1.429e+013)
c5 = -0.5683 (-8.375e+013, 8.375e+013)
a6 = 1.729 (-2.606e+014, 2.606e+014)
b6 = 0.5869 (-1.455e+013, 1.455e+013)
c6 = -0.5213 (-8.638e+013, 8.638e+013)
a7 = -2.189 (-1.781e+009, 1.781e+009)
b7 = 2.225 (-1.048e+008, 1.048e+008)
c7 = -0.8675 (-2.948e+008, 2.948e+008)
a8 = 1.225 (-1.956e+014, 1.956e+014)
b8 = 0.616 (-4.375e+012, 4.375e+012)
c8 = -0.03419 (-1.33e+014, 1.33e+014)

Goodness of fit:
SSE: 0.01188
R-square: 0.9992
Adjusted R-square: 0.9968
RMSE: 0.03854本回答被提问者采纳

以上是关于matlab能不能对多组数据做出拟合函数的主要内容,如果未能解决你的问题,请参考以下文章

如何根据散点图用MATLAB拟合函数图象?

如何用matlab数据拟合函数?

matlab已知散点图如何拟合

matlab如何拟合散点图,我想得到散点图函数?

matlab求非线性拟合

如何用matlab做正弦曲线拟合