利用復合梯形公式計算定積分


function [I,n]=fuhe(f,a,b,eps)

if(nargin==3)

    eps=1.0e-4;

end

n=1;

h=(b-a)/2;

I1=0;

I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;

while abs(I1-I2)>eps

    n=n+1;

    h=(b-a)/n;

    I1=I2;

    I2=0;

    for i=0:n-1

        x=a+h*i;

        x1=x+h;

        I2=I2+(subs(sym(f),findsym(sym(f)),x)+subs(sym(f),findsym(sym(f)),x1))*(h/2);

    end

end

% I=eval(I2);

I=I2;

n;

 

%求解文件腳本代碼

[I,step]=fuhe('1/(x^2-1)',2,4,1.0e-4)

 

 

2)利用復合simpson公式計算定積分

%復化辛普森求解定積分函數

function [I,step]=ISimpson(f,a,b,eps)

if(nargin==3)

    eps=1.0e-4;

end

n=1;

h=(b-a)/2;

I1=0;

I2=(subs(sym(f),findsym(sym(f)),a)+subs(sym(f),findsym(sym(f)),b))*h;

while abs(I1-I2)>eps

    n=n+1;

    h=(b-a)/n;

    I1=I2;

    I2=0;

    for i=0:n-1

        x=a+h*i;

        x1=x+h;

         I2=I2+(h/6)*(subs(sym(f),findsym(sym(f)),x)+4*subs(sym(f),findsym(sym(f)),(x+x1)/2)+subs(sym(f),findsym(sym(f)),x1));

    end

end

% I=eval(I2);

I=I2;

step=n

 

%求解腳本文件

[I,step]=ISimpson('sin(x)',0,10,1.0e-4)

 

 運行結果:

 1)利用復合梯形公式計算定積分

I =

0.2945

n =

     15

2)利用復合simpson公式計算定積分

 

I =

      1.8393

step =

      13


免責聲明!

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



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