MATLAB 之 符号微积分计算

这篇具有很好参考价值的文章主要介绍了MATLAB 之 符号微积分计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、符号微积分

  • 微积分的数值计算方法只能求出以数值表示的近似解,而无法得到以函数形式表示的解析解。
  • 在 MATLAB 中,可以通过符号运算获得微积分的解析解。

1. 符号极限

  • MATLAB 中求函数极限的函数是 limit,可用来求函数在指定点的极限值和左右极限值。
  • 对于极限值为没有定义的极限,MATLAB 给出的结果为 NaN,极限值为无穷大时,MATLAB 给出的结果为 Inf。limit 函数的调用格式如下。
  • (1) limit(f,x,a):求符号函数 f ( x ) f(x) f(x) 的极限值 lim ⁡ x → a f ( x ) \lim_{x \to a}f(x) xalimf(x)
  • 即计算当变量 x x x 趋近于常数 a a a 时, f ( x ) f(x) f(x) 函数的极限值。
  • (2) limit(f,a):求符号函数 f ( x ) f(x) f(x) 的极限值。由于没有指定符号函数 f ( x ) f(x) f(x)的自变量,则使用该格式时,符号函数 f ( x ) f(x) f(x) 的变量为函数 symvar(f) 确定的默认自变量,即变量 x x x 趋近于 ∞ \infty
  • (3) limit(f):求符号函数 f ( x ) f(x) f(x) 的极限值。符号函数 f ( x ) f(x) f(x) 的变量为函数 symvar(f) 确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于 0,即 a = 0 a=0 a=0 的情况。
  • (4) limit(f,x,a,'right'):求符号函数 f ( x ) f(x) f(x) 的极限值 lim ⁡ x → a + \lim_{x \to a^{+} } xa+lim
  • ‘right’ 表示变量 x x x 从右边趋近于 a a a
  • (5) limit(f;x,a,'lef'):求符号函数 f ( x ) f(x) f(x) 的极限值 lim ⁡ x → a − \lim_{x \to a^{-} } xalim
  • ‘left’ 表示变量 x x x 从左边趋近于 a a a
  • 例如,我们求下列极限。
  • (1) lim ⁡ x → a x m − a m x − a \lim_{x \to a}\frac{\sqrt[m]{x}-\sqrt[m]{a}}{x-a} xalimxamx ma
  • (2) lim ⁡ x → 0 sin ⁡ ( a + x ) − s i n ( a − x ) x \lim_{x \to 0}\frac{\sin (a+x)-sin(a-x)}{x} x0limxsin(a+x)sin(ax)
  • (3) lim ⁡ x → + ∞ x ( x 2 + 1 − x ) \lim_{x \to +\infty }x(\sqrt{x^{2}+1}-x ) x+limx(x2+1 x)
  • (4) lim ⁡ x → a + x − a + x − a x 2 − a 2 \lim_{x \to a^{+}}\frac{\sqrt{x}-\sqrt{a}+\sqrt{x-a}}{\sqrt{x^{2}-a^{2}}} xa+limx2a2 x a +xa
  • 程序如下:
>> syms a m x;
>> f=(x^(1/m)-a^(1/m))/(x-a);
>> limit(f,x,a)  			%求极限(1)
 
ans =
 
a^(1/m - 1)/m
 
>> f=(sin(a+x)-sin(a-x))/x;
>> limit(f)					%求极限(2)
 
ans =
 
2*cos(a)
 
>> f=x*(sqrt(x^2+1)-x);
>> limit(f,x,inf,'left')	%求极限(3)
 
ans =
 
1/2
 
>> f=(sqrt(x)-sqrt(a)+sqrt(x-a))/sqrt(x^{2}-a^{2});
>> limit(f,x,a,'right')		%求极限(4)
 
ans =
 
1/(2*a)^(1/2)
 

2. 符号导数

  • diff 函数用于对符号表达式求导数,其调用格式如下。
  • (1) diff(s):没有指定变量和导数阶数,则系统按 symvar 函数指示的默认变量对符号表达式 s s s 求一阶导数。
  • (2) diff(s,'v'):以 v v v 为自变量,对符号表达式 s s s 求一阶导数。
  • (3) diff(s,n):按 symvar 函数指示的默认变量对符号表达式 s s s n n n 阶导数, n n n 为正整数。
  • (4) dif(s,'v',n):以 v v v 为自变量,对符号表达式 s s s n n n 阶导数。
  • 例如,我们求下列函数的导数。
  • (1) y = 1 + e x y=\sqrt{1+e^{x} } y=1+ex ,求 y ′ y' y
  • (2) y = x cos ⁡ x y=x\cos x y=xcosx,求 y ′ ′ y'' y′′ y ′ ′ ′ y''' y′′′
  • (3) { x = a cos ⁡ t y = b sin ⁡ t \left\{\begin{matrix}x=a\cos t \\y=b\sin t \end{matrix}\right. {x=acosty=bsint,求 y x ′ y'_{x} yx y y ′ y'_{y} yy
  • (4) z = x e y y 2 z=\frac{xe^{y}}{y^{2}} z=y2xey,求 z x ′ z'_{x} zx z y ′ z'_{y} zy
  • (5) z = f ( x , y ) z=f(x,y) z=f(x,y) 由方程 x 2 + y 2 + z 2 = a 2 定义, x^{2}+y^{2}+z^{2}=a^{2} 定义, x2+y2+z2=a2定义, z x ′ z'_{x} zx z y ′ z'_{y} zy
  • 程序如下:
>> syms a b t x y z;
>> f=sqrt(1+exp(x));
>> diff(f)					%求(1)。未指定求导变量和阶数。按默认规则处理
 
ans =
 
exp(x)/(2*(exp(x) + 1)^(1/2))
 
>> f=x*cos(x);
>> diff(f,x,2)				%求(2)。求f对x的二阶导数
 
ans =
 
- 2*sin(x) - x*cos(x)
 
>> diff(f,x,3)				%求(2)。求f对x的三阶导数
 
ans =
 
x*sin(x) - 3*cos(x)
 
>> f1=a*cos(t);
>> f2=b*sin(t);
>> diff(f2)/diff(f1)		%求(3)。按照参数方程求导公式求y对x的导数
 
ans =
 
-(b*cos(t))/(a*sin(t))
 
>> (diff(f1)*diff(f2,2)-diff(f1,2)*diff(f2))/(diff(f1))^3		%求(3)。按照参数方程求导公式求y对x的二阶导数
 
ans =
 
-(a*b*cos(t)^2 + a*b*sin(t)^2)/(a^3*sin(t)^3)
 
>> f=x*exp(y)*y^2;
>> diff(f,x)				%求(4)。求z对x的偏导数
 
ans =
 
y^2*exp(y)
 
>> diff(f,y)				%求(4)。求z对y的偏导数
 
ans =
 
2*x*y*exp(y) + x*y^2*exp(y)
 
>> f=x^2+y^2+z^2-a^2;
>> zx=-diff(f,x)/diff(f,z)		%求(5)。
 
zx =
 
-x/z
 
>> zy=-diff(f,y)/diff(f,z)		%求(5)。
 
zy =
 
-y/z
 
  • 第 5 小题是一个隐函数 f ( x 1 , x 2 , x 3 , ⋯   , x n ) f(x_{1},x_{2},x_{3},\cdots ,x_{n}) f(x1,x2,x3,,xn) 自变量求偏导数的例子,可以通过以下公式求得: ∂ x i ∂ x j = − ∂ ∂ x j f ( x 1 , x 2 , x 3 , ⋯   , x n ) ∂ ∂ x i f ( x 1 , x 2 , x 3 , ⋯   , x n ) \frac{\partial x_{i}}{\partial x_{j}}=-\frac{\frac{\partial}{\partial x_{j}}f(x_{1},x_{2},x_{3},\cdots ,x_{n})}{\frac{\partial }{\partial x_{i}} f(x_{1},x_{2},x_{3},\cdots ,x_{n})} xjxi=xif(x1,x2,x3,,xn)xjf(x1,x2,x3,,xn)
  • 例如,我们求在曲线 y = x 3 + 3 x − 2 y=x^{3}+3x-2 y=x3+3x2 上哪一点的切线与直线 y = 4 x − 1 y=4x-1 y=4x1 平行。
  • 依题意,就是求曲线在哪一点的导数值为 4。程序如下:
>> x=sym('x');
>> y=x^3+3*x-2;		%定义曲线函数
>> f=diff(y);		%对曲线求导数
>> g=f-4;
>> solve(g)			%求方程f-4=0的根
 
ans =
 
-3^(1/2)/3
 3^(1/2)/3
 
  • 结果表明,在 x = 3 3 x=\frac{\sqrt{3} }{3} x=33 x = − 3 3 x=-\frac{\sqrt{3} }{3} x=33 处的切线和指定直线平行。

3. 符号积分

  • 不管被积函数的形式如何,复杂程度怎样,采用数值积分法总可以求得以恶搞结果,尽管这种结果大部分情况下是近似的,但数值方法不能获得解析解,符号积分方法可以获得积分的解析结果。

3.1 符号函数的不定积分

  • 在 MATLAB 中,int 函数用于求符号函数的不定积分,有以下两种调用格式。
  • (1) int(f):没有指定积分变量和积分阶数时,系统按 symvar 函数指示的默认变量对被积函数或符号表达式f求不定积分。
  • (2) int(f,v):以 v v v 为自变量,对被积函数或符号表达式 f f f 求不定积分。
  • 例如,我们求下列不定积分。
  • (1) ∫ ( 3 − x 2 ) 3 d x \int (3-x^{2})^{3}\mathrm{d}x (3x2)3dx
  • (2) ∫ sin ⁡ 2 x d x \int \sin^{2} x\mathrm{d}x sin2xdx
  • (3) ∫ e α t d x \int e^{\alpha t}\mathrm{d}x eαtdx
  • (4) ∫ 5 x t 1 + x 2 d x \int \frac{5xt}{1+x^{2}} \mathrm{d}x 1+x25xtdx
  • 程序如下:
>> x=sym('x');
>> f=(3-x^2)^3;
>> int(f)		%求(1)
 
ans =
 
- x^7/7 + (9*x^5)/5 - 9*x^3 + 27*x
 
>> f=sin(x)^2;
>> int(f)		%求(2)
 
ans =
 
x/2 - sin(2*x)/4
 
>> syms alpha t;
>> f=exp(alpha*t);
>> int(f)		%求(3)
 
ans =
 
exp(alpha*t)/alpha
 
>> f=5*x*t/(1+x^2);
>> int(f,t)		%求(4)
 
ans =
 
(5*t^2*x)/(2*(x^2 + 1))
 

3.2 符号函数的定积分

  • 在 MATLAB 中,求符号函数的定积分也是使用 int 函数,其调用格式如下:
	int(f,v,a,b)
  • 其中, a 、 b a、b ab 分别表示定积分的下限和上限。该函数求被积函数 f f f 在区间 [ a , b ] [a, b] [a,b] 上的定积分。 a a a b b b 可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。
  • 当函数 f f f 关于变量 x x x 在闭区间 [ a , b ] [a, b] [a,b] 上可积时,函数返回一个定积分结果。
  • a 、 b a、b ab 中有一个是 inf 时,函数返回一个广义积分。
  • a 、 b a、b ab 中有一个符号表达式时,函数返回一个符号函数。
  • 例如,我们求下列定积分。
  • (1) ∫ 1 2 ∣ 1 − x ∣ d x \int_{1}^{2} \left | 1-x \right | \mathrm{d}x 121xdx
  • (2) ∫ − ∞ + ∞ 1 1 + x 2 d x \int_{-\infty }^{+\infty}\frac{1}{1+x^{2}} \mathrm{d}x +1+x21dx
  • (3) ∫ 2 3 x 3 ( x − 1 ) 10 d x \int_{2}^{3}\frac{x^{3}}{(x-1)^{10}} \mathrm{d}x 23(x1)10x3dx
  • (4) ∫ 2 sin ⁡ x 4 x t d t \int_{2}^{\sin x}\frac{4x}{t} \mathrm{d}t 2sinxt4xdt
  • 程序如下:
>> x=sym('x');
>> t=sym('t');
>> int(abs(1-x),1,2)		%求(1)
 
ans =
 
1/2
 
>> f=1/(1+x^2);
>> int(f,-inf,+inf)			%求(2)
 
ans =
 
pi
 
>> f=x^3/(x-1)^{10};
>> I=int(f,2,3)				%求(3)
 
I =
 
138535/129024
 
>> double(I)				%将上述符号结果转换为数值

ans =

    1.0737

>> int(4*x/t,t,2,sin(x))	%求(4)
 
ans =
 
4*x*(log(sin(x)) - log(2))
 

文章来源地址https://www.toymoban.com/news/detail-489030.html

到了这里,关于MATLAB 之 符号微积分计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 通信入门系列——微积分中极限、连续、导数、微分、积分

    本节目录 本节内容 一、极限 1、数列极限 数列极限:设{xn}为一个实数列,A为一个定数。若对任意给定的ε0,总存在正整数N,使得当nN时,有|xn-A|ε,则称数列{xn}收敛于A,定数A称为数列{xn}的极限,记作: 也就是说,当n趋近于无穷大时,数列{xn}的极限等于或趋于A。若数列{xn}没

    2024年01月21日
    浏览(57)
  • 微积分物理题()

    在一个粗糙的平面上,有一个质量为 1 kg 1text{kg} 1 kg 的小木块,小木块的初速度为 0 0 0 ,小木块与平面的动摩擦因数 μ = 0.2 mu=0.2 μ = 0.2 。有一个拉力 F F F 拉动小木块从左往右移动,拉力 F F F 与时间 t t t 的关系为 F = 0.3 t 2 − 2.4 t + 5.6 F=0.3t^2-2.4t+5.6 F = 0.3 t 2 − 2.4 t + 5.6 。

    2024年02月15日
    浏览(44)
  • 微积分基本概念

    微分 函数的微分是指对 函数的局部变化的一种线性描述 。微分可以近似地描述当函数自变量的取值作足够小的改变时,函数的值是怎样改变的。。对于函数 y = f ( x ) y = f(x) y = f ( x ) 的微分记作: d y = f ′ ( x ) d x d_y = f^{\\\'}(x)d_x d y ​ = f ′ ( x ) d x ​ 微分和导数的区别在于:

    2024年02月11日
    浏览(53)
  • 高等数学:微积分(下)

    导数说完了就可以说微分了。还是看图中过A点的切线,其与竖直虚线相交于C点。其中CD段的距离可以表示为 C D = k ⋅ Δ x CD = k cdot Delta x\\\\ C D = k ⋅ Δ x 这里的系数k是一个不为零的常数。原因很简单,假设这条切线与x轴的夹角为 θ theta θ (图中没有画出),那么根据三角函

    2024年02月12日
    浏览(56)
  • 微积分之八——级数整理

    几何级数(等比级数) ∑ n = 0 ∞ a q n = a + a q + a q 2 + ⋅ ⋅ ⋅ + a q n + ⋅ ⋅ ⋅ ( a ≠ 0 ) s n = a + a q + a q 2 + ⋅ ⋅ ⋅ + a q n − 1 = a ⋅ 1 − q n 1 − q { ∣ q ∣ 1 , 级 数 收 敛 ∣ q ∣ 1 , 级 数 发 散 q = 1 , S n = n a → ∞ 级 数 发 散 q = − 1 , S n = { a , n 为 奇 数 0 , n 为 偶 数 , 所

    2024年02月13日
    浏览(46)
  • 11. 微积分 - 偏导数&方向导数

    Hi, 大家好。我是茶桁。 我们上节课学习了链式法则,本节课,我们要学习「偏导数」和「方向导数」。 偏导数在导论课里面也提到过。偏导数针对多元函数去讲的。 多元函数是什么,我们拿个例子来看: 多元函数: y =

    2024年02月10日
    浏览(54)
  • 微积分——求导数的链式法则

    链式法则 (Chain Rule)是微积分最强大的法则之一。这个法则处理的是 复合函数 (Composite Functions)的导数问题。 复合函数:  以另一种方式将两个函数组合起来的函数。正式定义: 令 f  和 g  分别为两个函数,函数( f 。 g )( x ) =  f  ( g ( x ))称为 f  与 g  的复合函数。复合函数

    2023年04月08日
    浏览(55)
  • 【Python · PyTorch】线性代数 & 微积分

    本文采用Python及PyTorch版本如下: Python:3.9.0 PyTorch:2.0.1+cpu 本文为博主自用知识点提纲,无过于具体介绍,详细内容请参考其他文章。 线性代数是数学的一个分支,它的研究对象是向量、向量空间(线性空间)、线性变换及有限维的线性方程组。线性代数已被广泛地应用于

    2024年02月08日
    浏览(49)
  • 在AI中无所不在的微积分

           微积分在人工智能(AI)领域扮演着至关重要的角色,以下是其主要作用: 优化算法:          •梯度下降法:微积分中的导数被用来计算损失函数相对于模型参数的梯度,这是许多机器学习和深度学习优化算法的核心。梯度指出了函数值增加最快的方向,通

    2024年04月12日
    浏览(35)
  • 【AI】《动手学-深度学习-PyTorch版》笔记(六):微积分

    f ′ ( x ) = lim ⁡ h → 0 f (

    2024年02月15日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包