數值積分——復合梯形求積公式


  這段代碼實現的是最一般的數值積分法——梯形求積法,積分值的准確依賴於所取精度大小

  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,而隨着所需要精確程度的變大,運算時間將大大增加


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM