首页 > 编程语言 >XMU《计算方法》实验三 龙贝格算法

XMU《计算方法》实验三 龙贝格算法

时间:2024-04-28 09:35:06浏览次数:14  
标签:frac sum 求积 算法 计算 XMU 龙贝格 计算方法

实验三 龙贝格算法 实验报告

一、代码

clear;
fun = inline(input('请输入函数:f(x) = ', 's'));
a = input('请输入下界 a = ');
b = input('请输入上界 b = ');
e = input('请输入误差限 e = ');

h = b - a;
k = 1;
N = 1;
T(1, 1) = h / 2 * (fun(a) + fun(b));
while true
    sum = 0;
    for i = 1:N
        sum = sum + fun(a + (i - 1/2) * h);
    end
    T(k + 1, 1) = T(k, 1) / 2 + h / 2 * sum;
    for m = 1:k
        T(k - m + 1, m + 1) = (4^m * T(k + 1 - m + 1, m - 1 + 1) - T(k - m + 1, m - 1 + 1)) / (4^m - 1);
    end
    if abs(T(1, k + 1) - T(1, k - 1 + 1)) <= e
        break
    end
    h = h / 2;
    k = k + 1;
    N = N * 2;
end

format long;
disp('积分结果:')
I = T(1, k + 1)
disp('龙贝格矩阵 T:')
for i = 0:k
    for j = 0:i
        fprintf('%.15f ', T(i-j+1, j+1))
    end
    fprintf('\n');
end

二、程序运行截图

截屏2023-05-02 22.47.48

截屏2023-05-02 22.48.37

截屏2023-05-02 22.49.30

三、算法说明

龙贝格算法主要是运用理查德外推加速法来计算积分。

公式为:

\[T_m^{(k)} = \frac{4^m}{4^m-1} T_{m-1}^{(k+1)} - \frac{1}{4^m-1} T_{m-1}^{(k)} \]

计算流程如下:

  1. 令 \(h = b-a, k=1\),计算 \(T_{0, 0} = \frac h2 [f(a) + f(b)]\)。

  2. 对于第 \(k\) 行,计算边界 \(T_{k, 0} = \frac 12[T_{k-1, 0} + h\sum\limits_{i=1}^{2^{k-1}} f(a + (i - \frac 12)h)]\)。

  3. 枚举 \(m = 1, 2, \dots, k\),计算

    \[T_{k-m, m} = \frac{4^mT_{k+1-m, m-1} - T_{k-m,m-1}}{4^m-1} \]

  4. 若 \(|T_{0, k} - T_{0, k-1}|\leq \varepsilon\),则说明达到误差限,停止计算,答案为 \(T_{0, k}\)。

  5. 否则,令 \(k = k+1, h = \frac h2\),从第 2 步再次计算。

四、心得体会

龙贝格求积算法是一种数值积分方法,可以有效地计算定积分的近似值。在本次实验中,我使用 Matlab 编写了龙贝格求积算法,并对其进行了测试和优化。

通过编写和测试龙贝格求积算法,我深刻认识到了数值积分方法的重要性。在实际应用中,我们经常需要对复杂函数进行积分,但往往难以找到解析解。此时,数值积分方法可以有效地解决这个问题,为实际问题的求解提供了很大的便利。

通过实验,我进一步加深了对龙贝格求积算法的理解。龙贝格求积算法是一种自适应方法,通过不断加细网格、计算更高阶的近似值,从而提高积分的精度。这种方法的优点是可以自动适应函数的特性,精度相对较高,但计算复杂度也相应较高。

通过对龙贝格求积算法进行优化,我发现在实际应用中,合理选择步长和网格数量是提高算法效率和精度的关键。同时,在处理一些特殊函数时,如存在间断点或振荡的函数,需要采用适当的技巧来处理,以确保算法的稳定性和收敛性。

通过本次实验,我不仅学会了一种新的数值积分方法,更加深了对数值计算的理解,并在实践中获得了不少经验和技巧。

标签:frac,sum,求积,算法,计算,XMU,龙贝格,计算方法
From: https://www.cnblogs.com/hankeke303/p/18163015/XMU-NumericalMethods-Lab3

相关文章

  • XMU《UNIX 系统程序设计》第五次实验报告(编制模拟“五个哲学家”问题的程序)
    想知道第三、四次实验去哪儿了吗?我也想知道。实验五编制模拟“五个哲学家”问题的程序一、实验内容描述编制模拟“五个哲学家”问题的程序目的学习和掌握并发进程同步的概念和方法。要求程序语法philosopher[-t<time>]<time>是哲学家进餐和沉思的持续时间值,......
  • XMU《UNIX 系统程序设计》第六次实验报告(信号处理)
    实验六信号处理完整程序可以在这里下载:点击下载。一、实验内容描述实验目的学习和掌握信号的处理方法,特别是sigaction,alarm,sigpending,sigsetjmp和siglongjmp等函数的使用。实验要求编制具有简单执行时间限制功能的shell:myshell[-t<time>]这个测试程序的功......
  • XMU《计算机网络与通信》第二次实验报告
    实验二实验报告一、个人信息姓名:XXX学号:XXXXXXXXXXXXXX二、实验目的学习捕获和分析网络数据包掌握以太网MAC帧、802.11数据帧和IPv4数据包的构成,了解各字段的含义掌握ICMP协议,ping和tracert指令的工作原理掌握ARP协议的请求/响应机理三、实验内容与结果分析......
  • XMU《计算机网络与通信》第四次实验报告
    计算机网络实验四通信这次实验的话,我的报告参考意义不大,毕竟这次实验的主要难点是完成那两个代码,但是我报告中没有任何对于代码的解释。大家如果需要的话,我的两个代码可以在这里下载,仅供参考:点击下载。一、个人信息姓名:XXX学号:XXXXXXXXXXXXXX二、实验目的理解和掌握ARP......
  • XMU《计算机网络与通信》第五次实验报告
    实验五运输层与应用层协议分析如果需要Wireshark捕获到的数据,可以在这里下载,这里面应该还有最后一个任务的两个代码:点击下载。目录实验五运输层与应用层协议分析一、个人信息二、实验目的三、实验内容、步骤与结果任务一TCP正常连接观察任务二异常传输观察分析1.尝试连......
  • XMU《UNIX 系统程序设计》第二次实验报告
    一、实验内容描述实验目的掌握与文件和目录树有关的系统调用和库函数。实验要求编写程序myfind命令语法myfind<pathname>[-comp<filename>|-name<str>...]命令语义(1)myfind<pathname>的功能除了具有与程序4-7相同的功能外,还要输出在<pathname>目录子树之下,文......
  • XMU《计算机网络与通信》第三次实验报告
    一、个人信息学号:**************姓名:###二、实验目的理解TCP和UDP协议主要特点掌握socket的基本概念和工作原理,编程实现socket通信三、实验任务与结果任务1前置任务开启两个终端窗口,分别编译、运行server_example.c和client_example.c,观察它们实现的功能。......
  • ROUGE指标计算方法和示例
    ROUGE(Recall-OrientedUnderstudyforGistingEvaluation)指标是用于评估文本摘要质量的一种常用指标。它通过比较生成的摘要与参考摘要之间的重叠词语或短语来衡量它们之间的相似度。ROUGE指标通常包括多个子指标,如ROUGE-N(考虑n-gram重叠)、ROUGE-L(考虑最长公共子序列)和ROUGE-W(考......
  • 1-1电子结构理论与计算方法概述
    变分法组态相互作用(CI)方法完全组态相互作用(FCI)方法约化密度矩阵重整化群方法(DMRG)截断的CI方法(CISD)耦合簇方法(CCSD)显含电子间距离的R12/F12方法多组态自洽场方法(MCSCF)多参考态组态相互作用(MRCISD)多参考态耦合簇方法(MRCCSD)价键理论方法微扰理论密度泛函理论(DFT)......
  • 根据原图,计算一个宽或高最大100的图片的计算方法
    constpreviewImageRatio=previewImageWidth/previewImageHeight;//原图宽高比例letthumbnailHeight,thumbnailWidth;//缩略图高和宽if(previewImageRatio>1){thumbnailWidth=100;......