实验目的及要求:

  1. 深刻认识数值积分法的意义;
  2. 明确数值积分精度与步长的关系;
  3. 根据定积分的计算方法,可以考虑二重积分的计算问题。

实验内容:

1、利用quad函数作变步长方法计算定积分的近似值,计算精度为

 

2、编写龙贝格方法计算定积分的程序并计算的近似值,计算精度为

实验步骤与程序:

1.quad函数

quad函数的MATLAB主程序

F=inline('exp(-x.^2)');

          Q=quad(F,0,2,10.^(-15))

2.龙贝格方法计算定积分

算法分析

利用变不长的梯形公式经过加工三次,就能得到精度较高得龙贝格值,且收敛速度加快很多,这种加速法称龙贝格算法。

  1. 龙贝格算法的MATLAB主程序

被调用的long_bei_ge.m文件

function [L,R,wu_cha,h]=long_bei_ge(fun,a,b,c)

n=1;h=b-a; wu_cha=1;k=0; L=zeros(4,4);

L(1,1)=h*(feval(fun,a)+feval(fun,b))/2;

while(wu_cha>c)

     k=k+1;   h=h/2; s=0;

     for j=1:n

         x=a+h*(2*j-1); s=s+feval(fun,x);

end

L(k+1,1)= L(k,1)/2+h*s; n=2*n;

for i=1:k

L(k+1,i+1)=((4^i)*L(k+1,i)-L(k,i))/(4^i-1);

end

wu_cha=abs(L(k+1,k)-L(k+1,k+1));

end

R=L(k+1,k+1);

%是其中L是龙贝格表,R是龙贝格值,wucha是误差估计,h是最小步长。

运行的long_bei_ge1.m文件

F=inline('exp(-x.^2)');

[L,R,wu_cha,h]=long_bei_ge(F,0,2,10.^(-15))

运行结果:

1.  Quad函数法的运行结果

2.1龙贝格算法的误差值wu_cha

2.2龙贝格算法的步长h

2.3龙贝格算法的龙贝格积分表L

结果分析与讨论:

  1. 变步长梯形求积法简单,但精度低而且收敛速度慢。其算法原理为:将[a,b]区间n
  2. 龙贝格求积公式也称为逐次分半加速法。它是在梯形公式、辛普森公式和柯特斯公式之间的关系的基础上,构造出的一种加速计算积分的方法。提高了误差的精度。
  3. quad函数的语法格式如下:q=quad(fun,a,b,c):c指的是误差精度。
Logo

GitCode AI社区是一款由 GitCode 团队打造的智能助手,AI大模型社区、提供国内外头部大模型及数据集服务。

更多推荐