【数值分析】数值积分,复合中点,复合梯形,复合Simpson,matlab实现

数值积分与数值微分

2023年11月29日
#analysis


文章目录

  • 数值积分与数值微分
    • 1. 求积公式与代数精度
    • 2. 几个常用积分公式及其复合积分公式
        • 2.1 中点公式
        • 2.2 梯形公式
        • 2.3 抛物型公式/Simpson公式
        • 2.4 复合中点公式
        • 2.5 复合梯形公式
        • 2.6 复合Simpson公式


1. 求积公式与代数精度

求积公式的一般形式为:
∫ a b f ( x ) d x ≈ ∑ k = 0 n A k f ( x k ) \int_{ a }^{b} f(x)\mathrm dx \approx \sum_{k=0}^{ n} A_kf(x_k) abf(x)dxk=0nAkf(xk)
A k : 求积系数 , x k : 求积节点 A_k:求积系数 \,\,,\,\, x_k:求积节点 Ak:求积系数,xk:求积节点
如果求积公式对 f ( x ) = x j ( j = 0 , 1 , ⋯ , m ) {f(x)=x^j(j=0,1,\cdots ,m)} f(x)=xj(j=0,1,,m) 都精确成立,但对 f ( x ) = x m + 1 {f(x)=x^{m+1}} f(x)=xm+1 不能精确成立,即
∫ a b x j d x = ∑ k = 0 n A k x k j , j = 0 , 1 , ⋯ , m ∫ a b x m + 1 d x ≠ ∑ k = 0 n A k x k m + 1 \begin{align*} \int_{ a }^{b} x^j \mathrm dx=& \sum_{k=0}^{ n} A_kx_k^j \,\,,\,\, j=0,1,\cdots ,m \\ \\ \int_{ a }^{b} x^{m+1} \mathrm dx \ne &\sum_{k=0}^{ n} A_kx_k^{m+1} \end{align*} abxjdx=abxm+1dx=k=0nAkxkj,j=0,1,,mk=0nAkxkm+1
则称求积公式具有 m {m} m代数精度

[!example]-
对于数值求积公式
∫ − 1 2 1 2 f ( x ) d x ≈ A 0 f ( x 0 ) + A 1 f ( x 1 ) \int_{ -\frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx \approx A_0f(x_0)+A_1f(x_1) 2121f(x)dxA0f(x0)+A1f(x1)
A 1 = 1 / 4 {A_1=1/4} A1=1/4 x 1 = 3 / 8 {x_1=3/8} x1=3/8 时,请确定参数 A 0 {A_0} A0 x 0 {x_0} x0 使此公式的代数精度尽可能地高,并确定此时公式的代数精度。
解:此求积公式只有两个参数 A 0 {A_0} A0 x 0 {x_0} x0 。令公式对 f ( x ) = 1 {f(x)=1} f(x)=1 x {x} x 都精确成立。则有
{ A 0 + A 1 = 1 A 0 x 0 + A 1 x 1 = 0 \begin{cases} A_0+A_1=1 \\ \\ A_0x_0+A_1x_1=0 \end{cases} A0+A1=1A0x0+A1x1=0
代入 A 1 = 1 / 4 {A_1=1/4} A1=1/4 x 1 = 3 / 8 {x_1=3/8} x1=3/8
{ A 0 + 1 4 = 1 A 0 x 0 + 3 32 = 0 ⇒ { A 0 = 3 4 x 0 = − 1 8 \begin{cases} A_0+ \frac{1}{4}=1 \\ \\ A_0x_0+ \frac{3}{32}=0 \end{cases} \Rightarrow \begin{cases} A_0= \frac{3}{4} \\ \\ x_0=- \frac{1}{8} \end{cases} A0+41=1A0x0+323=0 A0=43x0=81
∫ − 1 2 1 2 f ( x ) d x ≈ 3 4 f ( − 1 8 ) + 1 4 f ( 3 8 ) \int_{ - \frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx \approx \frac{3}{4}f(- \frac{1}{8})+ \frac{1}{4}f(\frac{3}{8}) 2121f(x)dx43f(81)+41f(83)
f ( x ) = x 2 {f(x)=x^2} f(x)=x2 时,由于
∫ − 1 2 1 2 f ( x ) d x = 1 12 ≠ 3 4 ( − 1 8 ) 2 + 1 4 ( 3 8 ) 2 = 3 64 \int_{ - \frac{1}{2} }^{\frac{1}{2}} f(x) \mathrm dx = \frac{1}{12} \ne \frac{3}{4}(- \frac{1}{8})^2+ \frac{1}{4} (\frac{3}{8})^2= \frac{3}{64} 2121f(x)dx=121=43(81)2+41(83)2=643
则此求积公式的代数精度为 m = 1 {m=1} m=1

  • 要求的参数有 n {n} n 个,则设 f ( x ) = 1 , x , ⋯ x n − 1 {f(x)=1,x,\cdots x^{n-1}} f(x)=1,x,xn1

2. 几个常用积分公式及其复合积分公式

复合公式的代数精度不变,计算精度提高,表现为误差估计减小
这些公式用于已知原函数时候的数值积分,复合公式是在划分区间之上应用梯形或Simpson公式。

2.1 中点公式

I = ∫ a b f ( x ) d x ≈ ( b − a ) f ( a + b 2 ) = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx (b-a) f(\frac{a+b}{2})=I' I=abf(x)dx(ba)f(2a+b)=I
误差
I − I ′ = 1 24 ( b − a ) 3 f ′ ′ ( ξ ) , ξ ∈ [ a , b ] I-I'= \frac{1}{24}(b-a)^3f''(\xi) \,\,,\,\, \xi\in[a,b] II=241(ba)3f′′(ξ),ξ[a,b]
代数精度为 1 {1} 1

2.2 梯形公式

I = ∫ a b f ( x ) d x ≈ 1 2 ( b − a ) [ f ( a ) + f ( b ) ] = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx \frac{1}{2} (b-a) [f(a)+f(b)]=I' I=abf(x)dx21(ba)[f(a)+f(b)]=I
误差
I − I ′ = − 1 12 ( b − a ) 3 f ′ ′ ( ξ ) , ξ ∈ [ a , b ] I-I'=- \frac{1}{12}(b-a)^3f''(\xi) \,\,,\,\, \xi\in[a,b] II=121(ba)3f′′(ξ),ξ[a,b]
代数精度为 1 {1} 1

2.3 抛物型公式/Simpson公式

I = ∫ a b f ( x ) d x ≈ 1 6 ( b − a ) [ f ( a ) + 4 f ( a + b 2 ) + f ( b ) ] = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx \frac{1}{6} (b-a) [f(a)+4f(\frac{a+b}{2})+f(b)]=I' I=abf(x)dx61(ba)[f(a)+4f(2a+b)+f(b)]=I
误差
I − I ′ = − ( b − a ) 5 2880 f ( 4 ) ( ξ ) , ξ ∈ [ a , b ] I-I'=- \frac{(b-a)^5}{2880}f^{(4)}(\xi) \,\,,\,\, \xi\in[a,b] II=2880(ba)5f(4)(ξ),ξ[a,b]
代数精度为 3 {3} 3

2.4 复合中点公式

I = ∫ a b f ( x ) d x ≈ ∑ i = 0 n − 1 h f ( x i + 1 2 ) = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} hf(x_{i+ \frac{1}{2}}) =I' I=abf(x)dxi=0n1hf(xi+21)=I
matlab实现

%% 复合中点公式
% 输入函数,积分下界,积分上界,区间数
% 输出积分值
function I = fmid(f, a, b, n)h = (b-a)/n; x = linspace(a+h/2, b-h/2, n); % n个区间,n+1个边界点,n个中点;I = h*sum(feval(f, x));
end
2.5 复合梯形公式

I = ∫ a b f ( x ) d x ≈ ∑ i = 0 n − 1 h 2 [ f ( x i ) + f ( x i + 1 ) ] = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} \frac{h}{2}[f(x_i)+f(x_{i+1})] =I' I=abf(x)dxi=0n12h[f(xi)+f(xi+1)]=I
误差估计
∣ I − I n ′ ∣ ≤ ( b − a ) 3 12 n 2 M 2 , 记 M 2 = max ⁡ a ≤ x ≤ b ∣ f ′ ′ ( x ) ∣ |I-I'_n|\le \frac{(b-a)^3}{12n^2}M_2 \,\,,\,\, 记M_2=\max_{a\le x\le b}|f''(x)| IIn12n2(ba)3M2,M2=axbmaxf′′(x)
matlab实现

%% 梯形积分公式
% 输入函数,积分下界,积分上界,划分区间数
% 输出积分值
function I = ftrapz(f, a, b, n)h = (b-a)/n;x = linspace(a, b, n+1);y = f(x);I = h*(0.5*y(1)+ sum(y(2:n))+ 0.5*y(n+1));
end
2.6 复合Simpson公式

I = ∫ a b f ( x ) d x ≈ ∑ i = 0 n − 1 h 6 [ f ( x i ) + 4 f ( x i + 1 2 ) + f ( x i + 1 ) ] = I ′ I=\int_{ a }^{b} f(x) \mathrm dx \approx \sum_{i=0}^{ n-1} \frac{h}{6}[f(x_i)+ 4f(x_{i+ \frac{1}{2}}) +f(x_{i+1})] =I' I=abf(x)dxi=0n16h[f(xi)+4f(xi+21)+f(xi+1)]=I
误差估计
∣ I − I n ′ ∣ ≤ ( b − a ) 5 2880 n 4 M 4 , 记 M 4 = max ⁡ a ≤ x ≤ b ∣ f ( 4 ) ( x ) ∣ |I-I'_n|\le \frac{(b-a)^5}{2880n^4}M_4 \,\,,\,\, 记M_4=\max_{a\le x\le b}|f^{(4)}(x)| IIn2880n4(ba)5M4,M4=axbmaxf(4)(x)
matlab实现

%% 复合Simpson积分公式
% 输入函数,积分下界,积分上界,划分区间数
% 输出积分值
function I = fsimpson(f, a, b, n)h = (b-a)/n;x_m = linspace(a+h/2, b-h/2, n); % 中点x_b = linspace(a,b,n+1); % 边界点I = h/6*(f(a)+4*sum(f(x_m))+2*sum(f(x_b(2:n)))+f(b));
end

[!example]-
已知 f ( x ) = ln ⁡ x {f(x)=\ln x} f(x)=lnx 的部分点处的函数值如下表:
x 1 2 3 4 5 ln ⁡ x 0 0.6931 1.0986 1.3863 1.6094 \begin{array}{cccccc} x & 1& 2 & 3&4&5 \\ \ln x & 0 & 0.6931 & 1.0986& 1.3863&1.6094 \end{array} xlnx1020.693131.098641.386351.6094
分别用复化梯形公式和复化Simpson公式求 ∫ 1 5 ln ⁡ x d x \int_{ 1 }^{5} \ln x \mathrm dx 15lnxdx的近似值,并估计误差。
解:
复化梯形:在区间 [ 1 , 5 ] {[1,5]} [1,5] 上取
x 0 = 1 , x 1 = 2 , x 2 = 3 , x 3 = 4 , x 4 = 5 x_0=1,x_1=2,x_2=3,x_3=4,x_4=5 x0=1,x1=2,x2=3,x3=4,x4=5
步长 h = 1 {h=1} h=1
∫ a b f ( x ) d x ≈ h 2 [ f ( a ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( b ) ] T 4 = 1 2 ( ln ⁡ 1 + 2 ln ⁡ 2 + 2 ln ⁡ 3 + 2 ln ⁡ 4 + ln ⁡ 5 ) = 3.9827 \begin{align*} \int_{ a }^{b} f(x) \mathrm dx \approx& \frac{h}{2}[f(a)+2 \sum_{k=1}^{ n-1}f(x_k)+f(b) ] \\ \\ T_4=& \frac{1}{2}(\ln1+2\ln2+2\ln3+2\ln4+\ln5) \\ \\ =&3.9827 \end{align*} abf(x)dxT4==2h[f(a)+2k=1n1f(xk)+f(b)]21(ln1+2ln2+2ln3+2ln4+ln5)3.9827
∣ I − T 4 ∣ ≤ ( b − a ) 3 12 n 2 M 2 , M 2 = max ⁡ 1 ≤ x ≤ 5 ∣ ln ⁡ ′ ′ x ∣ = max ⁡ 1 ≤ x ≤ 5 ∣ − 1 x 2 ∣ = 1 |I-T_4|\le \frac{(b-a)^3}{12n^2}M_2 \,\,,\,\, M_2=\max_{1\le x\le 5}|\ln''x|=\max_{1\le x\le 5}|- \frac{1}{x^2} |=1 IT412n2(ba)3M2,M2=1x5maxln′′x=1x5maxx21=1
∴ ∣ I − T 4 ∣ ≤ ( 5 − 1 ) 3 12 × 4 2 × 1 = 0.3333 \therefore |I-T_4|\le \frac{(5-1)^3}{12 \times 4^2} \times 1=0.3333 IT412×42(51)3×1=0.3333
复化辛普森:在区间 [ 1 , 5 ] {[1,5]} [1,5] 上取
x 0 = 1 , x 1 − 1 / 2 = 2 , x 1 = 3 , x 2 − 1 / 2 = 4 , x 2 = 5 x_0=1,x_{1-1/2}=2,x_1=3,x_{2-1/2}=4,x_2=5 x0=1,x11/2=2,x1=3,x21/2=4,x2=5
步长 h = 2 {h=2} h=2
∫ a b f ( x ) d x ≈ h 6 [ f ( a ) + 4 ∑ k = 1 n f ( x k − 1 / 2 ) + 2 ∑ k = 1 n − 1 f ( x k ) + f ( b ) ] S 2 = 2 6 ( ln ⁡ 1 + 4 ln ⁡ 2 + 2 ln ⁡ 3 + 4 ln ⁡ 4 + ln ⁡ 5 ) = 4.0414 \begin{align*} \int_{ a }^{b} f(x) \mathrm dx \approx &\frac{h}{6}[f(a)+4 \sum_{k=1}^{ n}f(x_{k-1/2})+2 \sum_{k=1}^{ n-1}f(x_k)+f(b)]\\ \\ S_2=& \frac{2}{6}(\ln1+4\ln2+2\ln3+4\ln4+\ln5) \\ \\ =& 4.0414 \end{align*} abf(x)dxS2==6h[f(a)+4k=1nf(xk1/2)+2k=1n1f(xk)+f(b)]62(ln1+4ln2+2ln3+4ln4+ln5)4.0414
∣ I − S 2 ∣ ≤ ( b − a ) 5 2880 n 4 M 4 |I-S_2|\le \frac{(b-a)^5}{2880n^4}M_4 IS22880n4(ba)5M4
M 4 = max ⁡ a ≤ x ≤ b ∣ f ( 4 ) ( x ) ∣ = max ⁡ 1 ≤ x ≤ 5 ∣ ln ⁡ ( 4 ) x ∣ = max ⁡ 1 ≤ x ≤ 5 ∣ − 6 x 4 ∣ = 6 M_4=\max_{a\le x\le b}|f^{(4)}(x)|=\max_{1\le x\le 5}|\ln^{(4)}x|=\max_{1\le x\le 5}|- \frac{6}{x^4}|=6 M4=axbmaxf(4)(x)=1x5maxln(4)x=1x5maxx46=6
∴ ∣ I − S 2 ∣ ≤ ( 5 − 1 ) 5 2880 × 2 4 × 6 = 0.1333 \therefore |I-S_2|\le \frac{(5-1)^5}{2880 \times 2^4} \times 6=0.1333 IS22880×24(51)5×6=0.1333

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/593876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是高防 IP?哪些行业适合用高防 IP?

在数字化浪潮席卷全球的今天,网络安全问题日益凸显。有听说过“高防 IP”这个名词吗?它究竟是什么东西,又能在哪些领域大显身手呢? 一、什么是高防 IP? 高防 IP,顾名思义,就是具备高级防护能力…

1_并发编程_线程的基本概念和线程终止及线程问题排查

1.线程的运行状态 在Java中,线程的状态一共是6种状态,分别是 NEW:初始状态,线程被构建,但是还没有调用start方法 RUNNABLED:运行状态,JAVA线程把操作系统中的就绪和运行两种状态统一称为“运行…

【C程序设计】C判断

判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 C 语言把任何非零和非空的值假定为 true,把零或 null 假定为 false。 下面…

.mallox勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复

引言: 随着技术的不断发展,网络空间也不可避免地面临着各种威胁,其中之一就是勒索病毒,而.mallox是近期引起关注的一种恶意软件。本文将介绍.mallox勒索病毒,以及如何有效地恢复被其加密的数据文件,并提供…

ros2激光雷达<gazebo>仿真资料

Lidar sensor激光雷达传感器 We dont want our robot to touch the wall at all because this may cause some damage, so instead of the contact sensor we can use the Lidar. Lidar is an acronym for "light detection and ranging". This sensor can help us …

OpenFeign相关面试题及答案(2024)

1、什么是OpenFeign,它如何简化远程服务调用? OpenFeign是一个声明式的Web服务客户端,它使得编写HTTP客户端变得更加容易。它属于Spring Cloud Netflix项目的一部分,可以与Spring Boot应用轻松集成。通过使用OpenFeign&#xff0…

Lingo 17安装包下载及安装教程

Lingo 17下载链接:https://docs.qq.com/doc/DUndEVXd4WVVweGFR 1.鼠标右键解压到“Lingo 17.0” 2.双击打开【Setup】文件夹 3.选中Lingo 17.0,鼠标右键选择“以管理员身份运行” 4.点击“Next” 5.选中I accept the terms in the license agreement&…

go语言`json:“-“`标签的含义

json:"-" 是 Go 语言中的一个标签(tag),用于指示编码和解码 JSON 时忽略对应的字段。 在 Go 中,结构体的字段可以通过添加标签来指定其在编码为 JSON 字符串或解码时的行为。json:"-" 标签的作用是告诉编码和…

第四篇 行为型设计模式 - 灵活定义对象间交互

第四篇:行为型设计模式 - 灵活定义对象间交互 行为型设计模式关注对象之间的交互和职责分配,旨在定义对象间的高效、灵活的通信机制。以下是十一种常见行为型设计模式的详解及其应用场景。 1. 策略模式详解及其应用场景 详解: 策略模式定义…

贪心算法part05 435无重叠区间

435无重叠区间 763 划分字母区间 56合并区间

javascript中location对象的属性与方法

前言 本章介绍js中的location中的属性和方法。 文章目录 前言什么是location为什么要用locationlocation对象属性location对象方法总结 什么是location 在JavaScript中,location 是一个包含当前页面的URL信息的对象。它允许你获取和操作当前页面的URL,比…

速通C语言第十二站 文件操作

系列文章目录 速通C语言系列 速通C语言第一站 一篇博客带你初识C语言 http://t.csdn.cn/N57xl 速通C语言第二站 一篇博客带你搞定分支循环 http://t.csdn.cn/Uwn7W 速通C语言第三站 一篇博客带你搞定函数 http://t.csdn.cn/bfrUM 速通C语言第四站 一篇博客带…

QML 项目中使用 Qt Design Studio 生成的UI界面

作者:billy 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 今天来和大家聊一下 Qt Design Studio 这个软件。这个软件的主要功能是用来快速完成 UI 界面,就和 widget 中的 desig…

Vue.js 中使用 Watch 选项实现动态问题判断与展示答案

组件结构 以下是组件的基本结构&#xff1a; <template><div><!-- 输入框&#xff0c;用于输入问题 --><p>提出一个是/否问题&#xff1a;<input v-model"question" :disabled"loading" /></p><!-- 显示答案 --&…

栈实现后缀表达式的计算

后缀表达式计算 过程分析 中缀表达式 &#xff08;15&#xff09;*3 > 后缀表达式 153* (可参考这篇文章&#xff1a;中缀转后缀) 第一步&#xff1a;我们从左至右扫描 后缀表达式(已经存放在一个字符数组中)&#xff0c;遇到第一个数字字符 ‘1’ 放入栈中第二步&#xf…

市场复盘总结 20240103

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…

新的一年,新的征程,35岁,再出发!!

2024&#xff0c;迈入新的征程&#xff01;35岁是人生的一个重要阶段&#xff0c;是积累经验、提升自我、迎接挑战的黄金时期&#xff0c;在接下来的日子&#xff1a; 设定目标&#xff1a;明确自己的长期和短期目标&#xff0c;确保自己始终朝着正确的方向前进。目标可以是职…

jmeter线程组

特点&#xff1a;模拟用户&#xff0c;支持多用户操作&#xff1b;可以串行也可以并行 分类&#xff1a; setup线程组&#xff1a;初始化 类似于 unittest中的setupclass 普通线程组&#xff1a;字面意思 teardown线程组&#xff1a;环境恢复&#xff0c;后置处理

机器视觉系统选型-选型-总结

一&#xff1a;明确需求 需求&#xff1a;镜面材质上的划痕检测&#xff0c;传送线上运动过程中拍照&#xff0c;无景深要求&#xff0c;传送线速度0.8m/s&#xff0c;产品间隔50mm 产品大小&#xff1a;100*80mm 工作距离限制&#xff1a;≤ 300mm 最小划痕宽度&#xff1a;0.…

shell编程二

shell 脚本规范 shell脚本文件需要以.sh结尾 第一个原因&#xff0c;让别人认的这个是shell脚本&#xff0c;sh后缀编辑时有高亮显示。 拓展名后缀,如果省略.sh则不易判断该文件是否为shell脚本 ​ # 执行脚本方式 1、 sh 脚本.sh 2、 bash 脚本.sh 3、 ./脚本.sh # 需要执行权…