龙贝格算法的matlab实现

更新时间:2023-10-23 09:35:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

作业三——龙贝格算法的matlab实现

程序流程图:

输入a,b,e,k T1(1)?b?a2[f(a)?f(b)] i=1,2,3,···k T(i?1)11(i)b?a?T0?22l2i?1?1?i?2f[a?(2i?1)b?a2i?1] Ti?1(n?1)?4Ti(n?1)i?1?T4i?1(n)i?1 abs(T(i+1,i+1)-T(i,i))<=e & i>=4 输出计算结果 输出“所求次数不够或不可积” 程序源代码: 文件f.m

function fx = f(x) if x == 0 fx = 1; else

fx = sin(x) / x; end end

文件longbeige.m

clc

clear all; format long

a=input('请输入你要求得积分的下限:'); b=input('请输入你要求得积分的上限:'); e=input('请输入你要求得积分的结束精度:'); k=input('请输入你要求得积分的最大次数:'); fx=@(x)sin(x)/x; lbg(@f,a,b,k,e)

文件lbg.m

function lbg(fx,a,b,k,e) T=zeros(k,k);

T(1,1)=(b-a)*(1+fx(b))/2; for i=1:k m=0;

for j=1:2^(i-1)

m=m+fx(a+(2*j-1)*(b-a)/(2^i)); end

T(i+1,1)=0.5*T(i,1)+(b-a)*m/2^i;

for n=1:i

T(i+1,n+1)=(4^n*T(i+1,n)-T(i,n))/(4^n-1); end

if abs(T(i+1,i+1)-T(i,i))<=e & i>=4 break; else ; end end for i=1:k

if T(i,1)==0 j=i; break; else ; end end if j==k

error('所求次数不够或不可积') else ; end

T=T(1:j-1,1:j-1)

disp('所求的积分值为:') disp(T(j-1,1))

本文来源:https://www.bwwdw.com/article/x0uf.html

Top