一、符号微积分
- 微积分的数值计算方法只能求出以数值表示的近似解,而无法得到以函数形式表示的解析解。
- 在 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) x→alimf(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^{+} } x→a+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^{-} } x→a−lim - ‘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} x→alimx−amx−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} x→0limxsin(a+x)−sin(a−x)
- (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}}} x→a+limx2−a2x−a+x−a
- 程序如下:
>> 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})} ∂xj∂xi=−∂xi∂f(x1,x2,x3,⋯,xn)∂xj∂f(x1,x2,x3,⋯,xn)
- 例如,我们求在曲线 y = x 3 + 3 x − 2 y=x^{3}+3x-2 y=x3+3x−2 上哪一点的切线与直线 y = 4 x − 1 y=4x-1 y=4x−1 平行。
- 依题意,就是求曲线在哪一点的导数值为 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 ∫(3−x2)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 a、b 分别表示定积分的下限和上限。该函数求被积函数 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 a、b 中有一个是 inf 时,函数返回一个广义积分。
- 当 a 、 b a、b a、b 中有一个符号表达式时,函数返回一个符号函数。
- 例如,我们求下列定积分。
- (1) ∫ 1 2 ∣ 1 − x ∣ d x \int_{1}^{2} \left | 1-x \right | \mathrm{d}x ∫12∣1−x∣dx。
- (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(x−1)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
文章来源:https://www.toymoban.com/news/detail-489030.html
到了这里,关于MATLAB 之 符号微积分计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!