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

9.3.7 利用三次样条求表格型数值积分的MATLAB方法

9.3.7  利用三次样条求表格型数值积分的MATLAB方法

例9.3.18  给出概率积分e 的数据表:

0.46           0.47          0.48         0.49  

f()

0.322 9       0.319 9       0.316 8       0.313 8

 

试首先用三次样条构造被积函数,再分别用quad和quadl函数计算定积分d,精度为,并将计算结果与精确值比较.

解  方法1  首先用三次样条构造被积函数,再分别用quad和quadl函数计算定积分.在MATLAB工作窗口直接输入下面的程序

>> a=0.46,b=0.49, x =a: 0.01:b; y = [0.3229  0.3199  0.3168  0.3138],

pp = spline(x,y)

[Q,FCNT]= quad(@ppval,a,b,[],[],pp)

[Ql,FCNTl]= quadl(@ppval,a,b,[],[],pp)

运行后屏幕显示分别用辛普森和牛顿–科茨公式计算的结果为

pp =

      form: 'pp'

    breaks: [0.4600 0.4700 0.4800 0.4900]

     coefs: [3x4 double]

    pieces: 3

     order: 4

       dim: 1

Q =           FCNT =          Ql =             FCNTl =

   0.0096            13              0.0096              18

方法2  计算的精确解y及其近似解y1. 输入程序

>> syms x

f=exp(-x.^2)./( sqrt(2*pi)); F= int(f, 0.46, 0.49)

y=simple(F), y1=double(y)

运行后屏幕显示结果

y =

1125899906842624/5644425081792261*pi^(1/2)*(erf(49/100)-erf(23/50))

y1 =

      0.0096

方法3  首先用三次样条构造被积函数,再分别用辛普森和牛顿–科茨公式计算定积分.在MATLAB工作窗口输入程序

>>X =[0.46,0.47,0.48,0.49];

Y= [0.3229  0.3199  0.3168  0.3138];

s=interp1 (X,Y, X, 'spline'); L3=poly2sym (s)

运行后输出多项式L3. 保存名为L3.m的M文件

function  L3=L3(x)

L3=3229/10000*x.^3+3199/10000*x.^2+198/625*x+1569/5000;

然后输入程序

[Ql,FCNTl] = quadl(@L3, 0.46, 0.49,1.e-4)

        [Q,FCNT] = quad(@L3, 0.46, 0.49,1.e-4)

运行后屏幕显示计算结果

Ql =          FCNTl =          Q =                FCNT =

    0.0171             18            0.0171                13

 

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