数值积分——复合梯形求积公式

Posted guliangt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数值积分——复合梯形求积公式相关的知识,希望对你有一定的参考价值。

  这段代码实现的是最一般的数值积分法——梯形求积法,积分值的准确依赖于所取精度大小

  1.代码

%%复合梯形求积公式
%%Y是数值(attribute=0)或具体表达式(attribute=1),interval是求积区间,n是精度(如果是数值,则为数值长度-1)
function CTQF = Compound_trapezoid_quadrature_formula(Y,interval,n,attribute)
a = interval(1);b = interval(2);
h = (b-a)/n;
if attribute == 0
    sum = 0;
    for i=1:1:n-1
        sum=sum+Y(i+1);
    end
    Tn = (Y(1)+Y(n+1)+2*sum)*h/2;
    CTQF = vpa(Tn,8);
elseif attribute == 1
    syms x;
    X(1) = a;
    X(n+1) = b;
    for i=1:1:n-1
        X(i+1)=a+i*h;
    end
    sum=0;
    for i=1:1:n-1
        sum=sum+subs(Y,x,X(i+1));
    end
    Tn=(subs(Y,x,a)+subs(Y,x,b)+2*sum)*h/2;
    CTQF = vpa(Tn,8);
end

  2.例子

syms x;
Y = exp(x)*sin(x)+log(x+1);
interval=[0 pi];
attribute = 1;
n = 1000;
Compound_trapezoid_quadrature_formula(Y,interval,n,attribute)

vpa(int(Y,x,interval),8)

  3.结果

ans =
14.814269
ans =
14.81429

  我们选取的精度为1000,即区间分割个数,结果精确到1e-4,而随着所需要精确程度的变大,运算时间将大大增加

以上是关于数值积分——复合梯形求积公式的主要内容,如果未能解决你的问题,请参考以下文章

《数值分析》-- 复化求积公式

《数值分析》-- 复化求积公式

数值积分——复合辛普森求积公式

数值计算实验报告---复合求积公式(梯形抛物线龙贝格)导数求值(三点四点五点公式)

MATLAB复合梯形公式求积分

《数值分析》-- 数值积分