数值分析快速复习(1)——Matlab数值积分

  • 序言
  • 数值积分基础知识
    • 为什么要进行数值积分?
    • 数值积分的几种基本方法?
      • 插值型
      • 复化求积公式
      • Romberg公式
  • 作业:Matlab实现Romberg积分

序言

由于最近的项目需要用到数值分析的相关知识,需要简单回顾以下数值积分的知识,复习内容以上学期数值分析课本内容和课后Matlab作业为主,在这里将复习的感悟分享给大家。

数值积分基础知识

为什么要进行数值积分?

在工程中,自变量和因变量往往不能通过简单的函数映射关系去表达,例如最简单的光/声波的传播,也会因为噪声而变得不能用简单的三角函数去表达。因此f(x)往往是通过列表函数表达,对于列表函数,求导和积分的公式都不能使用,这就要求我们要学会数值积分这个强有力的工具。

另外,在高等数学里我们学过,一些函数根本不能积分,找不到初等函数的原函数,例如:1/ln(x),所以对于这些函数,也必须使用数值积分进行求解。

数值积分的几种基本方法?

插值型

对于列表函数或一些复杂函数,我们一般可以知道一些节点的具体坐标,根据这些坐标拟合出一个多项式,这个过程叫做插值,得到拟合的多项式再进行积分就非常简单了。

  • 两个插值节点得到的求积公式——梯形公式

  • 三个等距插值节点得到的求积公式——Simpson公式

  • 五个等距插值节点得到的求积公式——cotes公式

复化求积公式

插值型求积公式在较小的积分区间中非常好用,但是随着积分区间的增大,截断误差也在不断增大,因此我们很自然的想到,如果将一个很大的积分区间划分成无限小段,再对每一小段使用前面的插值型求积公式,是不是就非常好了呢?

于是有了:

  • 复化梯形公式

  • 复化Simpson公式

  • 复化Cotes公式

Romberg公式

从上面可以看到,复化Simpson公式计算简单,但是精度相比于复化cotes来说比较差,收敛速度也相对较慢。怎么样发扬优点,避免缺点呢?

数学家从复化梯形公式的误差估计式入手,推导梯形公式、Simpson公式、Cotes公式之间的关系,这样在计算Cotes公式时就不需要上面那么复杂的公式了,而是通过求梯形公式的值——Simposon公式的值——Cotes公式的值,这就是Romberg公式。



所以只需要计算最简单的梯形公式就可以得到很精确地Romberg积分值了!

(想看具体推导的同学,可以翻一下书本《数值分析(东南大学出版社)》215页)

作业:Matlab实现Romberg积分

贴一下我们老师布置的matlab作业的代码,实现了一个小的龙伯格积分,给大家作为参考。

%%Romberg integration method
clear,clc;format long;
f=@(x)1/(1+100*x^2);
syms x;            %定义函数
e=0.5*10^(-7);
for c=4:100for i=0:cn=2^i;h=2/n;x=zeros(1,n+1);x(1)=-1;x(n+1)=1;t=0;if i~=0for j=2:nx(j)=-1+2/n*(j-1);endt=f(x(2));if i~=1for j=3:nt=t+f(x(j));endendendT(1,i+1)=h/2*(f(-1)+f(1)+2*t);endfor i=1:cT(2,i)=4/3*T(1,i+1)-T(1,i)/3;endfor i=1:c-1T(3,i)=16/15*T(2,i+1)-T(2,i)/15;endfor i=1:c-2T(4,i)=64/63*T(3,i+1)-T(3,i)/63;endif abs(T(4,i)-T(4,i-1))<ebreakend
end
disp('____________________________________________________')
fprintf('区间等分数                   %f\n',n);
fprintf('积分值                       %f\n',T(4,i));
disp('____________________________________________________')

以上内容如有误,还请各位批评指正。

数值分析快速复习(1)——Matlab数值积分相关推荐

  1. quad8是matlab中调用那个,Matlab 数值积分

    MATLAB数值积分与微分 8.1 数值积分 8.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿-柯特斯(Newton-Cotes)法等都是经 ...

  2. matlab数值积分的计算

    标签(空格分隔): matlab 积分 数值 计算 文章目录 标签(空格分隔): matlab 积分 数值 计算 @[toc] matlab数值积分 1 Gauss-Hermite积分 1.1 测试G ...

  3. 机器学习快速截图工具matlab版本——文件夹批量处理(原创)

    简要说明: 1.打开文件夹后,遍历所有JPG格式图片,在同目录下新建一个CROP的文件夹存放裁剪的图片. 2.对每张图片, (1)初步框选你要裁剪的矩形框,会自动以你框选的左上点为起点,裁剪大小为长宽 ...

  4. Java基础部分快速复习(以前复习的时候放在自己的新浪博客上)

    工作后Java基本没有用到,有时候自己也会把基础过一遍,下面的链接是以前重温的时候整理的Java基础最核心部分的知识点和代码示例放在自己的新浪博客上,如果以后有需要,直接从这里进入,可以快速复习,节省 ...

  5. matlab多重数值积分,Matlab数值积分和微分(一重、多重都有),简单实用。

    第8章 MATLAB数值积分与微分 8.1 数值积分 8.2 数值微分 8.1 数值积分 8.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿- ...

  6. matlab离散点数字微分,MATLAB数值积分与微分

    第8章 MATLAB数值积分与微分 8.1 数值积分 8.2 数值微分 8.1 数值积分 8.1.1 数值积分基本原理 求解定积分的数值方法多种多样,如简单的梯形法.辛普生(Simpson)法.牛顿- ...

  7. Java虚拟机知识点快速复习手册(上)

    前言 本文快速回顾了常考的的知识点,用作面试复习,事半功倍. 上篇主要内容为:虚拟机数据区域,垃圾回收 下篇主要内容为:类加载机制 面试知识点复习手册 全复习手册文章导航 Csdn全复习手册文章导航: ...

  8. 计算机网络基础知识点快速复习手册

    前言 本文快速回顾了计算机网络书本中常考的的知识点,用作面试复习,事半功倍. 主要内容有:计算机网络体系结构,TCP与UDP,UDP/TCP实现DEMO代码 面试知识点复习手册 全复习手册文章导航 全 ...

  9. 谭浩强C程序设计快速复习笔记

    README 该笔记主要根据岭南学院专插本的考纲进行编写.用到的教材是谭浩强的<C程序设计>第三版 适用人群:对C有一定基础,针对考点快速复习的考生.但不限于岭南学院专插本考生 亮点:①结 ...

最新文章

  1. 【脚下生根】之深度探索安卓OpenGL投影矩阵
  2. EXCEL如何验证重复数据?
  3. java轩辕剑天之痕游戏攻略_轩辕剑之天之痕游戏攻略大全
  4. html框架实验总结,网页设计实训心得
  5. Landsat中国西北地区行列号Shapefile图层对照(附行列号Shapefile下载)
  6. transition属性详细讲解
  7. java连接数据库增删改查公共方法
  8. Python合并两个有序链表
  9. B. Remove Prefix
  10. 手机端html5自动调用touch事件,移动端中touch事件的详解
  11. C#实现多人语音聊天
  12. [HTML5点滴]客户端存储那些事
  13. 开始体验WinXp + VmWare Workstation + Fedora8
  14. 125w短波通信距离_超短波通信距离浅析
  15. 简单的博弈问题:牛羊吃草问题(递归解法-暴力解法)
  16. 常用数据库有哪些(附带数据库排名)?
  17. eCharts省份地图配置及方法
  18. 计算机专业男生礼物排行榜,男人内心最想收到的礼物,得票数最多的居然是这十个...
  19. Lomboz的安装与下载(转)
  20. realloc函数和malloc函数区别

热门文章

  1. python中字典的循环遍历的方式
  2. 一些js和jquery操作功能
  3. linux系统下sendmail的搭建
  4. 【MFC】使用TabControl创建Tab分页
  5. c++成员函数指针的本质
  6. 论latex插入图片最好的方法!
  7. 高尔夫球场难度系数_在高尔夫球场上表现出色
  8. mysql 查询半径范围内经纬度坐标
  9. 微信小程序setData的使用
  10. 如何查询会议的接受率及年论文数