如何利用MATLAB求解积分与微分?

文章目录

  • 前言
  • 1 数值微分
  • 2 数值积分
  • 小结

前言

今天我们要说的就是数值微积分,赶紧看看他和高等数学中的微积分有什么区别吧。本文是科学计算与MATLAB语言专题六第一小节的学习笔记,如果大家有时间的话,可以去听听课,没有的话,可以看看我的笔记,还是很不错的。

1 数值微分

(1)数值差分与差商
微积分中,任意函数 f ( x ) f(x) fx x 0 x_0 x0点的导数是通过极限定义的:
f ′ ( x 0 ) = lim ⁡ t → 0 f ( x 0 + h ) − f ( x 0 ) h f'(x_0)=\lim\limits_{t \to 0}\frac{f(x_0+h)-f(x_0)}{h} fx0=t0limhfx0+hfx0
f ′ ( x 0 ) = lim ⁡ t → 0 f ( x 0 ) − f ( x 0 − h ) h f'(x_0)=\lim\limits_{t \to 0}\frac{f(x_0)-f(x_0-h)}{h} fx0=t0limhfx0fx0h
f ′ ( x 0 ) = lim ⁡ t → 0 f ( x 0 + h / 2 ) − f ( x 0 − h / 2 ) h f'(x_0)=\lim\limits_{t \to 0}\frac{f(x_0+h/2)-f(x_0-h/2)}{h} fx0=t0limhfx0+h/2fx0h/2
如果去掉极限定义中h趋向于0的极限过程,得到函数在 x 0 x_0 x0点处以h(h>0)为步长的向前差分、向后差分和中心差分公式:
向前差分: Δ r ( x 0 ) = f ( x 0 + h ) − f ( x 0 ) \Delta r(x_0)=f(x_0+h)-f(x_0) Δrx0=fx0+hfx0
Δ \Delta Δ原来她叫Delta
向后差分: ∇ P ( x 0 ) = f ( x ) − f ( x 0 − h ) \nabla P(x_0)=f(x)-f(x_0-h) Px0=fxfx0h
∇ \nabla 她叫nabla
中心差分: δ F ( x 0 ) = f ( x 0 + h / 2 ) − f ( x 0 − h / 2 ) \delta F(x_0)=f(x_0+h/2)-f(x_0-h/2) δFx0=fx0+h/2fx0h/2
δ \delta δ她叫delta
当步长h充分小时,得到函数在 x 0 x_0 x0点处以h(h>0)为步长的向前差商、向后差商和中心差商公式:
向前差分: f ′ ( x 0 ) ≈ f ( x 0 + h ) − f ( x 0 ) f'(x_0)\approx f(x_0+h)-f(x_0) fx0fx0+hfx0
向后差分: f ′ ( x 0 ) ≈ f ( x ) − f ( x 0 − h ) f'(x_0)\approx f(x)-f(x_0-h) fx0fxfx0h
中心差分: f ′ ( x 0 ) ≈ f ( x 0 + h / 2 ) − f ( x 0 − h / 2 ) f'(x_0)\approx f(x_0+h/2)-f(x_0-h/2) fx0fx0+h/2fx0h/2
函数f(x)在点x0的微分接近于函数在该点的差分,而f在点x的导数接近于函数在该点的差商。
(2)数值微分的实现
MATLAB提供了求向前差分的函数diff,其调用格式有三种:
dx=diff(x):计算向量x的向前差分,dx(i)=x(i+1)-x(i),i=1,2,…,n-1。
dx=diff(x,n):计算向量x的n阶向前差分。例如,diff(x,2)=diff(diff(x))。
dx=diff(A,n,dim):计算矩阵A的n阶差分,dim=1时(默认状态),按列计算差分;dim=2,按行计算差分。
注意:diff函数计算的是向量元素间的差分,故差分向量元素的个数比原向量少了一个。同样,对于矩阵来说,差分后的矩阵比原矩阵少了一行或一列。
另外,计算差分之后,可以用f(x)在某点处的差商作为其导数的近似值。
例1 设f(x)=sinx,在[0,2π]范围内随机采样,计算f’(x)的近似值,并与理论值f’(x)=cosx 进行比较。

x=[0,sort(2*pi*rand(1,5000)),2*pi];
y=sin(x);
f1=diff(y)./diff(x);
f2=cos(x(1:end-1));
plot(x(1:end-1),f1,x(1:end-1),f2);
d=norm(f1-f2)
d =0.0456

fig1

2 数值积分

2.数值积分
(1)数值积分基本原理
在高等数学中,计算定积分依靠微积分基本定理,只要找到被积函数f(x)
的原函数大(x),则可用牛顿一莱布尼兹(Newton-Leibniz)公式:
∫ a b f ( x ) d x = F ( b ) − F ( a ) \int _a^bf(x)dx=F(b)-F(a) abfxdx=FbFa在有些情况下,应用牛顿一莱布尼兹公式有困难,例如,当被积函数的原函数无法用初等函数表示,或被积函数是用离散的表格形式给出的。这时就需要用数值解法来求定积分的近似值。
求定积分的数值方法多种多样,如梯形法、辛普森(Simpson)法、高斯求积公式等。它们的基本思想都是将积分区间[a,b]分成n个子区间 [ x i , x i + 1 ] [x_i,x_{i+1}] [xixi+1],i=1,2,…,n,其中 x i = a x_i=a xi=a x i + 1 = b x_{i+1}=b xi+1=b,这样求定积分问题就分解为下面的求和问题:
S = ∫ a b f ( x ) d x = ∑ i = 1 n ∫ x i x i + 1 f ( x ) d x S= \int_a^b f(x)dx=\sum\limits _{i=1}^n\int_{x_i}^{x_{i+1}} f(x)dx S=abfxdx=i=1nxixi+1fxdx在每一个小的子区间上定积分的值可以近似求得,从而避免了牛顿一莱布尼兹公式需要寻求原函数的困难。
(2)数值积分的实现
基于自适应辛普森方法
[I,n]=quad(filename,a,b,tol,trace)
基于自适应Gauss-Lobatto方法
[I,n]=quad1(filename,a,b,tol,trace)
其中,filename是被积函数名;
a和b分别是定积分的下限和上限,积分限[a,b]必须是有限的,不能为无穷大(Inf);
tol用来控制积分精度,默认时取tol= 1 0 − 6 10^{-6} 106
trace控制是否展现积分过程,若取非0则展现积分过程,取0则不展现,默认时取trace=0;返回参数I即定积分的值,n为被积函数的调用次数。
例2 分别用quad函数和quadl函数求定积分 ∫ 0 1 1 1 + x 2 d x \int_0^1\frac{1}{1+x^2}dx 011+x21dx的近似值,并在相同的积分精度下,比较被积函数的调用次数。

format long%有效数字保留16位。
f=@(x) 4./(1+x.^2);
[I,n]=quad(f,0,1,1e-8)%基于自适应辛普森方法求近似值。
[I,n]=quadl(f,0,1,1e-8)%基于自适应Gauss-Lobatto方法求近似值。
(atan(1)-atan(0))*4%求理论值。
format short%format short:恢复默认格式,小数点后保留4位。
I =3.141592653733437
n =61
I =3.141592653589806
n =48
ans =3.141592653589793

基于全局自适应积分方法
I=integral(filename,a,b)
其中,I是计算得到的积分;
filename是被积函数;
a和b分别是定积分的下限和上限,积分限可以为无穷大。
例3 求定积分 I = ∫ 1 e f = 1 ( x ( 1 − ln ⁡ 2 x ) ) I=\int_1^ef=\frac{1}{(x\sqrt{(1-\ln^2x))}} I=1ef=(x(1ln2x)) 1
被积函数文件fe.m:

function f=fe(x)
f=1./(x.*sqrt(1-log(x).^2));
I=integral(@fe,1,exp(1))

基于自适应高斯-克朗罗德方法
[I,err]=quadgk(filename,a,b)
其中,err返回近似误差范围,其他参数的含义和用法与quad函数相同。积分上下限可以是无穷大(-Inf或Inf),也可以是复数。如果积分上下限是复数,则quadgk函数在复平面上求积分。
例4 求定积分 ∫ 2 π + ∞ f = 1 x 2 s i n 1 x d x \int _\frac{2}{\pi}^{+\infty }f=\frac{1}{x^2}sin\frac{1}{x}dx π2+f=x21sinx1dx
被积函数文件fsx.m:

function f=fsx(x)
f=sin(1./x)./x.^2;
>>I=quadgk(@fsx,2/pi,+Inf)
I =1.0000

基于梯形积分法
已知 ( x i , y i ) ( i = 1 , 2 , … , n ) (x_i,y_i)(i=1,2,…,n) xiyii=12n,且 a = x 1 < x 2 < … < x n = b a=x_1<x_2<…<x_n=b a=x1<x2<<xn=b,求 I = ∫ a b f ( x ) d x I=\int _a^bf(x)dx I=abfxdx近似值。
I=trapz(x,y)
其中,向量x、y定义函数关系y=f(x)。
trapz函数采用梯形积分法则,积分的近似值为:
I = ∑ i = 1 n − 1 h i y i + 1 + y i 2 I=\sum\limits_{i=1}^{n-1}h_i\frac{y_{i+1}+y_i}{2} I=i=1n1hi2yi+1+yi其中, h i = x i + 1 − x i h_i=x_{i+1}-x_i hi=xi+1xi
可用以下语句实现:
sum(diff(x).*(y(1:end-1)+y(2:end))/2))

例5 设x=1:6,y=[6,8,11,7,5,2],用trapz函数计算定积分。

x=1:6;
y=[6,8,11,7,5,2];
plot(x,y,'-ko');
grid on
axis([1,6,0,11]);
I1=trapz(x,y)
I2=sum(diff(x).*(y(1:end-1)+y(2:end))/2)

fig2
(3)多重定积分的数值求解
求二重积分的数值解: ∫ c d ∫ a b f ( x , y ) d x d y \int _c^d \int_a^b f(x,y)dxdy cdabfxydxdy
I=integral2(filename,a,b,c,d)
I=quad2d(filename,a,b,c,d)
I=dblquad(filename,a,b,c,d,tol)
求三重积分的数值解: ∫ e f ∫ c d ∫ a b f ( x , y , z ) d x d y d z \int_e^f \int_c^d \int_a^b f(x,y,z)dxdydz efcdabfxyzdxdydz
I=integra13(filename,a,b,c,d,e,f)
I=triplequad(filename,a,b,c,d,e,f,tol)
例6 分别求二重积分和三重积分。
∫ − 1 1 ∫ − 2 2 e − x 2 / 2 s i n ( x 2 + y ) d x d y \int_{-1}^1\int_{-2}^2e^{-x^2/2 }sin(x^2+y)dxdy 1122ex2/2sin(x2+y)dxdy
∫ 0 1 ∫ 0 π ∫ 0 π 4 x z e − z 2 y − x 2 d x d y d z \int_0^1\int_0^\pi\int_0^\pi 4xze^{-z^2y-x^2}dxdydz 010π0π4xzez2yx2dxdydz

f1=@(x,y) exp(-x.^2/2).*sin(x.^2+y);
I1=quad2d(f1,-2,2,-1,1)
f2=@(x,y,z) 4*x.*z.*exp(-z.*z.*y-x.*x);
I2=integral3(f2,0,pi,0,pi,0,1)

小结

大家学会了吗?最后欢迎大家
点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

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

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

相关文章

数学建模学习(22):求解微积分之积分问题详解,超详细!

文章目录 前言不定积分定积分与无穷积分多重积分总结前言 积分是一个很重要的概念,通常分为定积分和不定积分。 我们在这里介绍的就是int函数,调用方式如下: F=int(fun,x) fun是被积函数,x是自变量,当然如果只有一个自变量可以省略。 不定积分 求解如下式子的不定积分:…

[MIT]微积分重点 第五课 积分总览 学习笔记

0.先上本节课目录&#xff1a; 1.函数二是函数一的导数 函数一&#xff1a; H e i g h t y ( x ) Height y(x) Heighty(x) 函数二&#xff1a; S l o p e s ( x ) Slope s(x) Slopes(x) 函数一 -> 函数二&#xff1a; S l o p e s ( x ) d ⁡ y d ⁡ x l i m i t o f …

这可能是关于微积分讲的最好的文章了

最近自己学习深度学习相关的东西&#xff0c;发现需要大量关于微积分的知识作为支撑&#xff0c;于是我在网上找到了这篇关于微积分的好文章&#xff0c;这也是我目前见过的最好的讲解微积分的文章了&#xff01;要是大学课本这么写&#xff0c;高数怎么可能让那么多同学挂科&a…

用Python学《微积分B》(定积分)

本文主要学习《微积分B》第7章——“定积分的概念和存在条件”&#xff0c;结合课程中的知识进行一些扩展&#xff0c;并用Python辅助求解课后练习题。关于定积分&#xff08;Definite Integral&#xff09;的概念&#xff0c;课本中只介绍了“黎曼积分”&#xff08;Riemann I…

多变量微积分笔记17——通量

在流体运动中&#xff0c;通量是单位时间内流经某单位面积的某属性量&#xff0c;是表示某属性量输送强度的物理量。在大气科学中&#xff0c;包含动量通量、热通量、物质通量和水通量。 本章关于向量和点积的相关知识课参考《线性代数笔记3——向量2&#xff08;点积&#xff…

以MATLAB的方式实现微积分问题的计算机求解问题及解决方案集锦(二)

前言 关于MATLAB系列的精品专栏大家可参见 MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) 喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! 微积分问题的计算机求解系列 (0001) 试求出以下的曲线积分。 【解】 套用第一类和第二类曲线…

第三单元 用python学习微积分(十九)FTC2(下)和定积分在对数和几何上的应用

本文内容来自于学习麻省理工学院公开课&#xff1a;单变量微积分-定积分在对数和几何上的应用-网易公开课 概率密度_百度百科 概率密度是什么意思_百度知道 正态分布&#xff08;高斯分布&#xff09;、Q函数、误差函数、互补误差函数 - htj10 - 博客园 正态分布_百度百科 …

程序员的数学【多元函数微分学】

目录 前言一、多元函数的定义二、偏导数三、高阶偏导数四、梯度五、雅可比矩阵5.1 雅克比矩阵定义5.2 雅克比矩阵示例 六、Hessian矩阵6.1 Hessian矩阵定义6.2 实例演示Hessian矩阵 七、极值判别法则7.1 极值判定条件7.2 实对称矩阵正定负定判定 八、二次型8.1 二次型定义8.2 二…

微积分基础知识note

此部分转自https://blog.csdn.net/zhulf0804/article/details/52238435 方向导数与梯度 在许多问题中&#xff0c;不仅要知道函数在坐标轴方向上的变化率&#xff08;即偏导数&#xff09;&#xff0c;而且还要设法求得函数在其他特定方向上的变化率。这就是接下来要谈论的方…

用Python学《微积分B》(微积分应用)

微积分是一种非常重要的“数学分析”思想&#xff08;方法&#xff09;&#xff0c;在许多领域中都有应用&#xff0c;比如&#xff1a;计算平面面积、曲线长度、空间图形的体积、旋转曲面面积和物理学中的“微元法”等。而如何用好“微积分”是这部分学习的重点。要用好微积分…

数学分析(高级微积分)

一、总览 微分学积分学级数论 二、微分学 1. 极限和连续 相关知识&#xff1a;数列的极限、收敛数列之性质、函数极限、函数极限性质、无穷大无穷小、等价无穷下、洛必达法则、函数的连续和间断、极限的求法。 2. 一元/多元函数微分学 相关知识&#xff1a;导数&#xff0…

以MATLAB的方式实现微积分问题的计算机求解问题及解决方案集锦(一)

前言 关于MATLAB系列的精品专栏大家可参见 MATLAB-30天带你从入门到精通 MATLAB深入理解高级教程(附源码) 喜欢的小伙伴可自行订阅,你的支持就是我不断更新的动力哟! 微积分问题的计算机求解系列 (0001) 试求出下面的定积分或无穷积分。 【解】 ① 可以直接求解 >…

高视角!如何认识微积分方法与原理?

编者按>> 恩格斯在《反杜林论》中说&#xff1a;“变数的数学——其中最重要的部分是微积分。”冯诺依曼说&#xff1a;“微积分是近代数学中最伟大的成就&#xff0c;对它的重要性做怎样的估计都不会过分。” 可见微积分在数学中的重要性。通常说的“微积分”由方法和原…

MTLAB 求解微积分(包含导数、极限、积分、级数和、微分方程、数值方法全面求解)

文章目录 1. 导数求解1.1 显函数求导1.2 隐函数求导 2. 极限求解2.1 单变量极限2.2 多变量极限 3. 积分求解3.1 不定积分3.2 定积分计算3.2.1 解析解3.2.2 数值解 4. 级数展开求和4.1 泰勒级数展开4.2 级数求和 5. 求解微分方程5.1 符号解5.2 数值解 1. 导数求解 1.1 显函数求…

初识微积分一

from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity "last_expr" import numpy as np from matplotlib import pyplot as plt变化率 对于函数 y f ( x ) {y f(x)} yf(x) 定义变化率为&#xff1a; r o c Δ…

初识微积分二

微分和求导 导函数的定义&#xff1a; l i m h → 0 f ( x h ) − f ( x ) h lim_{h \to 0} \frac{f(x h) - f(x)}{h} limh→0​hf(xh)−f(x)​ f ′ ( x ) lim ⁡ h → 0 f ( x h ) − f ( x ) h f(x) \lim_{h \to 0} \frac{f(x h) - f(x)}{h} f′(x)h→0lim​hf(xh)−…

03 高等数学专题——多元函数微积分

多元函数微积分学 一、多元函数微分学1.1、多元函数微分学概念连续、可偏导、可微、方向导数存在的定义多元函数可微、可偏导、连续的关系复合函数求偏导&#xff08;链式法则&#xff09;、全微分的计算隐函数求偏导&#xff08;隐函数存在定理、等式两边求导法&#xff09; 1…

用Python学《微积分B》(反常积分)

Riemann积分有两个局限&#xff1a;一是积分区间[a, b]必须有限&#xff1b;二是被积函数f(x)在积分区间[a, b]上有界。而反常积分&#xff08;Improper Integral&#xff09;就是对Riemann积分这两个局限的扩展&#xff0c;前者扩展后被称为“无穷积分”&#xff0c;后者扩展后…

Mathematica做微积分

微积分 求极限函数极限数列极限递归定义的数列极限单侧极限累次极限渐近线 微商和微分微商&#xff08;导数&#xff09;全微分 不定积分和定积分不定积分定积分多重积分 级数幂级数展开幂级数计算Fourier级数 微分方程求解常微分方程求解偏微分方程 参考资料 求极限 函数极限…

《微积分基础》学习(一)

本系列文章主要记录我在学习coursera上的《Calculus One》在线课程的笔记。该课程是俄亥俄州立大学的经典课程&#xff0c;教授的发音比较标准&#xff0c;授课方式轻松愉悦&#xff0c;是不可错过的“微积分”入门课程。 本文直接从第二周切入&#xff08;第一周是课程介绍和学…