这里写目录标题
一、符号微积分
- 微积分的数值计算方法只能求出以数值表示的近似解,而无法得到以函数形式表示的解析解。
- 在 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−a2
x
−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))