运用MATLAB解三、四次多项式

MATLAB解多项式
MATLAB存在主义是一种人道主义解多项式以三次、四次为例;
运用MATLAB解三、四次多项式,下面以一组数据来演示:
例如,以下数据是某产品从1978年到2010销售情况,是预测以后几年的销售情况?
东北饲料
1978
1979
1980
1981
猫眼看人论坛1982
1983
1984
1985
1986
566
632
745
755
769
789
985 
1110
1313
1987
1988
1989
1990
1991
1992
1993
1994
1995
1428
1782
1920
2150
2292
2601
3149
4338
5145
1996
1997
1998
1999
2000
2001
2002
2003
2004
5809
6241
6854
7656
8772
10007
11374
12567
14332
2005
2006
2007
2008
2009
2010
16614
19228
22844
26404
29688
32074
首先,用MATLAB画图,程序如下
x=1:33;
y=[566  632    745    755  769    789  985    1110  1313 1428  1782  1920  2150  2292  2601  3149  4338 5145 5809  6241  6854  7656  8772  10007  11374 12567  14332  16614  19228  22844  26404  29688  32074];
plot(x,y)
画出的图形如下图:
近似符合多项式,用多项式进行拟合。
用三次多项式进行拟合:
设三次多项式为y=a0+a1*x+a2*x^2+a3*x^3,用最小二乘法求解多项式系数,程序如下:
format long
x=1:33;
sumx1=sum(x(1,:));                  %x中的元素相加%
b=x.*x;                            %x中各元素的平方
sumx2=sum(b(1,:));                  %x中各元素的平方相加%
c=b.*x;                            %x中各元素的三次方%
sumx3=sum(c(1,:));                  %x中各元素的三次方相加%
d=b.*b;                            %x中各元素的四次方%
sumx4=sum(d(1,:));                  %x中各元素的四次方相加%
e=d.*x;                            %x中各元素的五次方%
sumx5=sum(e(1,:));                  %x中各元素的五次方相加%
f=c.*c;                            %x中各元素的六次方%
sumx6=sum(f(1,:));                  %x中各元素的六次方相加%
A=[33 sumx1 sumx2 sumx3;sumx1 sumx2 sumx3 sumx4;sumx2 sumx3 sumx4 sumx5;sumx3 sumx4 sumx5 sumx6];
y=[566 632 745 755 769 789 985 1110 1313 1428 1782 1920 2150 2292 2601 3149 4338 5145 5809 6241 6854 7656 8772 10007 11374 12567 14332 16614 19228 22844 26404 29688 32074];
sumy1=sum(y(1,:));
i=x.*y;
sumy2=sum(i(1,:));
搜索评价j=b.*y;
sumy3=sum(j(1,:));
k=c.*y;
sumy4=sum(k(1,:));
Y=[sumy1 sumy2 sumy3 sumy4]';榆次五中
B=inv(A)*Y 
运行结果为:
B =
  1.0e+002 *
  -5.55549853371922
  5.33146148904227
  -0.50016139300278
  0.01934485988921
王德华a0=-555.549853371922
a1= 533.146148904227
a2=-50.016139300278
a3=1.934485988921
计算误差,程序如下:
format long
x=1:33;
a=-555.549853371922+533.146148904227.*x-50.016139300278.*x.^2+1.934485988921.*x.^3;
y=[566 632 745 755 769 789 985 1110 1313 1428 1782 1920 2150 2292 2601 3149 4338 5145 5809 6241 6854 7656 8772 10007 11374 12567 14332 16614 19228 22844 26404 29688 32074];
b=a-y;
c=abs(b)./y;
d=sum(c(1,:))/32
结果如下:
d =  0.16981183704177    误差较大。
用四次多项式进行拟合:
设三次多项式为y=a0+a1*x+a2*x^2+a3*x^3,用最小二乘法求解多项式系数,程序如下:
format long
x=1:33;
sumx1=sum(x(1,:));                  %x中的元素相加%
b=x.*x;                            %x中各元素的平方
sumx2=sum(b(1,:));                  %x中各元素的平方相加%
c=b.*x;                            %x中各元素的三次方%

本文发布于:2024-09-21 14:33:49,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/48863.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   程序   系数   求解   销售
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议