实验五:龙贝格积分法

龙贝格积分法计算积分近似值

程序:龙贝格积分:

syms f x;

f=input('请输入积分函数f=');

A=input('请输入积分区间[a,b]=');

e=input('请输入误差限e=');

x=A(1);

fa=eval(f);

x=A(2);

fb=eval(f);

T(1)=(A(2)-A(1))*(fa+fb)/2;

m=1;

x=(A(1)+A(2));

t=T(1)/2+(A(2)-A(1))*eval(f)/2;

while abs(t-T(1))>e

    t=T(1);

    new=0;

    for i=1:(2^m)

        x=A(1)+(2*i-1)*(A(2)-A(1))/(2^(m+1));

        new=new+eval(f);

    end

    T(m+1)=T(m)/2+(A(2)-A(1))*new/(2^(m+1));

    for i=m:(-1):1

        L(m,i)=T(i);

    end

    for p=m:(-1):1

        T(p)=((4^(m+1-p))*T(p+1)-T(p))/(4^(m+1-p)-1);

    end

    m=m+1;

end

fprintf('数值积分结果为T(1)=%.8f\n',T(1));

fprintf('经过了%d次迭代\n',m);

用龙贝格积分法计算积分的近似值:
1.1请输入积分函数f=x^3

请输入积分区间[a,b]=[6,100]

请输入误差限e=1000

数值积分结果为T(1)=25000289.75465907

经过了15次迭代

1.2请输入积分函数f=x^3

请输入积分区间[a,b]=[6,100]

请输入误差限e=500

数值积分结果为T(1)=24999982.87732918

经过了16次迭代

2.1请输入积分函数f=sin(x)/x

请输入积分区间[a,b]=[0.1e-010,1]

请输入误差限e=0.1e-004

数值积分结果为T(1)=0.94607740

经过了12次迭代

2.2请输入积分函数f=sin(x)/x

请输入积分区间[a,b]=[0.1e-010,1]

请输入误差限e=0.1e-005

数值积分结果为T(1)=0.94608236

经过了15次迭代

3.1请输入积分函数f=sin(x^2)

请输入积分区间[a,b]=[0 1]

请输入误差限e=0.0001

数值积分结果为T(1)=0.31031986

经过了11次迭代

3.2请输入积分函数f=sin(x^2)

请输入积分区间[a,b]=[0,1]

请输入误差限e=0.1e-005

数值积分结果为T(1)=0.31026911

经过了17次迭代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

力学AI有限元

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值