matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

6.3.3 牛顿插值多项式、差商和误差公式的MATLAB程序

6.3.3  牛顿插值多项式、差商和误差公式的MATLAB程序

求牛顿插值多项式和差商的MATLAB主程序

function [A,C,L,wcgs,Cw]= newploy(X,Y)

n=length(X); A=zeros(n,n); A(:,1)=Y';

 s=0.0; p=1.0; q=1.0; c1=1.0;

     for  j=2:n

               for i=j:n

             A(i,j)=(A(i,j-1)- A(i-1,j-1))/(X(i)-X(i-j+1));

               end

             b=poly(X(j-1));q1=conv(q,b); c1=c1*j;  q=q1;

     end

 C=A(n,n); b=poly(X(n)); q1=conv(q1,b);    

for k=(n-1):-1:1

C=conv(C,poly(X(k))); d=length(C); C(d)=C(d)+A(k,k);

end

L(k,:)=poly2sym(C); Q=poly2sym(q1);

syms M

wcgs=M*Q/c1; Cw=q1/c1;

 

例6.3.3  给出节点数据,作五阶牛顿插值多项式和差商,并写出其估计误差的公式.

解 (1)保存名为newpoly.m的M文件.

(2)输入MATLAB程序

>>  X=[-2.15  -1.00  0.01  1.02  2.03  3.25];

Y=[17.03  7.24  1.05  2.03  17.06  23.05];

 [A,C,L,wcgs,Cw]= newdcw (X,Y)

运行后输出差商矩阵A,五阶牛顿插值多项式L及其系数向量C, 插值余项公式L及其向量Cw如下

A =

   17.0300         0         0         0         0         0

    7.2400   -8.5130         0         0         0         0

    1.0500   -6.1287    1.1039         0         0         0

    2.0300    0.9703    3.5144    0.7604         0         0

   17.0600   14.8812    6.8866    1.1129    0.0843         0

   23.0500    4.9098   -4.4715   -3.5056   -1.0867   -0.2169

C =

   -0.2169    0.0648    2.1076    3.3960   -4.5745    1.0954

L =

-7813219284746629/36028797018963968*x^5+583849564517807/9007199254740992*x^4+593245028711263/281474976710656*x^3+3823593773002357/1125899906842624*x^2-321902673270315/70368744177664*x+308328649211299/281474976710656

wcgs =

1/720*M*(x^6-79/25*x^5-14201/2500*x^4+4934097026900981/281474976710656*x^3+154500712237335/35184372088832*x^2-8170642380559269/562949953421312*x+5212760744134241/36028797018963968)

Cw =

    0.0014  -0.0044   -0.0079   0.0243    0.0061   -0.0202   0.0002

L =1.0954-4.5745*x+3.3960*x^2+2.1076*x^3+0.0648*x^4-0.2169*x^5.

估计其误差的公式为

.

 

例6.3.4  求函数e上五阶牛顿插值多项式,估计其误差的公式和误差限公式.用它们计算,并估计其误差.

解 (1)输入MATLAB程序

>> X=2:4/5:6; Y=-7*exp(-X/5);

  [A,C,L,wcgs,Cw]= newploy(X,Y), x1=2:0.001:6;

 M=max(-7*exp(-x1/5)/(5^6)),

运行后输出差商矩阵A, 五阶牛顿插值多项式L及其系数向量C, 插值余项公式L及其向量Cw如下

A =

   -4.6922         0         0         0         0         0

   -3.9985    0.8672         0         0         0         0

   -3.4073    0.7390   -0.0801         0         0         0

   -2.9035    0.6297   -0.0683    0.0049         0         0

   -2.4742    0.5366   -0.0582    0.0042   -0.0002         0

   -2.1084    0.4573   -0.0496    0.0036   -0.0002    0.0000

C =

    0.0000   -0.0004    0.0089   -0.1389    1.3985   -6.9991

L =

9721799720875/1152921504606846976*x^5-3503994098647815/9223372036854775808*x^4+160742008798419/18014398509481984*x^3-1251152213853501/9007199254740992*x^2+6298131904328647/4503599627370496*x-3940156929554013/562949953421312

wcgs =

1/720*M*(x^6-24*x^5+1172/5*x^4-5952/5*x^3+7276634802928539/2199023255552*x^2-5237461186650519/1099511627776*x+6085939356447121/2199023255552)

Cw =

0.0014  -0.0333   0.3256   -1.6533   4.5959   -6.6159    3.8438

M =

 -1.3494e-004

(2)输入MATLAB程序

>> syms x

wcgs1=1/720*M*1/720*M*(x^6-24*x^5+1172/5*x^4-5952/5*x^3+7276634802928539/2199023255552*x^2-5237461186650519/1099511627776*x+6085939356447121/2199023255552),

运行后输出误差限公式wcgs1如下

wcgs1 =

5565367633581443/158456325028528675187087900672*x^6-16696102900744329/19807040628566084398385987584*x^5+1630652716639362799/198070406285660843983859875840*x^4-517579189923074199/12379400392853802748991242240*x^3+40497147813610772932297365501777/348449143727040986586495598010130648530944*x^2-29148396970323855270001164718917/174224571863520493293247799005065324265472*x+33870489914310283926665276375603/348449143727040986586495598010130648530944

(3)输入MATLAB程序

>> x=3.156;

y=9721799720875/1152921504606846976*x^5-3503994098647815/9223372036854775808*x^4+160742008798419/18014398509481984*x^3-1251152213853501/9007199254740992*x^2+6298131904328647/4503599627370496*x-3940156929554013/562949953421312

wcgs2=1/720*M*(x^6-24*x^5+1172/5*x^4-5952/5*x^3+7276634802928539/2199023255552*x^2-5237461186650519/1099511627776*x+6085939356447121/2199023255552)

运行后输出的近似值y,及其误差限wcgs2如下

y =

   -3.7237

wcgs2 =

 -2.4764e-007

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3060303.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1