利用复合梯形公式计算定积分


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