MATLAB 微积分
MATLAB 提供了多种方法来解决微分和积分问题,求解任意阶微分方程和极限计算。 最重要的是,我们可以轻松地绘制复杂函数的图形,并通过求解原始函数及其导数来检查图形上的最大值、最小值和其他固定点
本章将涉及微积分的问题。在本章中,我们将讨论预微积分概念,即计算函数的极限和验证极限属性。
在下一章的微分中,我们将计算表达式的导数,并在图形上找到局部最大值和最小值。我们还将讨论解微分方程。
最后,在积分章节中,我们将讨论积分微积分。
计算极限
MATLAB 提供了 limit
函数来计算极限。在最基本的形式中,limit
函数将表达式作为参数,并找到当独立变量趋近于零时表达式的极限。
例如,让我们计算函数 f(x) = (x3+5)/(x4+7)
,当 x 趋近于零时的极限。
syms x
limit((x^3 + 5)/(x^4 + 7))
MATLAB 将执行上述语句,并返回以下结果 -
ans =
5/7
limit
函数属于符号计算的范畴;我们需要使用 syms
函数告诉 MATLAB 我们使用的符号变量。我们也可以计算函数的极限,当变量趋近于除零以外的某个数时。要计算 $lim_{x \to a}(f(x))$
,我们使用具有参数的 limit
命令。第一个参数是表达式,第二个参数是 x 趋近于的数字,在这里是 a。
例如,让我们计算函数 f(x) = (x-3)/(x-1)
在 x 趋近于 1 时的极限。
limit((x - 3)/(x-1),1)
MATLAB 将执行上述语句,并返回以下结果 -
ans =
NaN
再来看一个例子,
limit(x^2 + 5, 3)
MATLAB 将执行上述语句,并返回以下结果
ans =
14
使用 Octave 计算极限
以下是使用 symbolic
包的上述示例的 Octave 版本,请尝试执行并比较结果 -
pkg load symbolic
symbols
x = sym("x");
subs((x^3+5)/(x^4+7),x,0)
Octave 将执行上述语句,并返回以下结果 -
ans =
0.7142857142857142857
验证极限的基本属性
代数极限定理提供了极限的一些基本属性。这些属性如下
让我们考虑两个函数 -
- f(x) = (3x+5)/(x-3)
- g(x) = x^2 + 1
让我们计算函数的极限,当 x 趋近于 5 时,使用这两个函数和 MATLAB 验证极限的基本属性。
示例
创建一个脚本文件,将以下代码键入其中
syms x # 声明符号变量x
f = (3*x + 5)/(x-3); # 定义函数f
g = x^2 + 1; # 定义函数g
l1 = limit(f, 4) # 求f在x=4处的极限
l2 = limit (g, 4) # 求g在x=4处的极限
lAdd = limit(f + g, 4) # 求f+g在x=4处的极限
lSub = limit(f - g, 4) # 求f-g在x=4处的极限
lMult = limit(f*g, 4) # 求f*g在x=4处的极限
lDiv = limit(f/g, 4) # 求f/g在x=4处的极限
运行该文件后,输出结果如下-
l1 =
17
l2 =
17
lAdd =
34
lSub =
0
lMult =
289
lDiv =
1
使用Octave验证极限的基本性质
以下是使用符号包的上述示例的Octave版本,请尝试执行并比较结果-
pkg load symbolic
symbols
x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = subs(f, x, 4) # 求f在x=4处的值
l2 = subs (g, x, 4) # 求g在x=4处的值
lAdd = subs (f+g, x, 4) # 求f+g在x=4处的值
lSub = subs (f-g, x, 4) # 求f-g在x=4处的值
lMult = subs (f*g, x, 4) # 求f*g在x=4处的值
lDiv = subs (f/g, x, 4) # 求f/g在x=4处的值
Octave将执行上述语句并返回以下结果-
l1 =
17.0
l2 =
17.0
lAdd =
34.0
lSub =
0.0
lMult =
289.0
lDiv =
1.0
左侧和右侧极限
当函数在某些特定变量值处不连续时,该点的极限不存在。换句话说,当x从左侧接近时的极限值不等于x从右侧接近时的极限值时,函数f(x)的极限在 x = a
处有不连续性。
这就引出了左极限和右极限的概念。左极限被定义为x -> a时,从左侧逼近,即x < a的值,当左极限和右极限不相等时,极限不存在。
我们考虑一个函数 -
- f(x) = (x - 3)/|x - 3|
我们将证明 limx->3 f(x)
不存在。MATLAB有两种方法帮助我们证明这个事实 -
- 通过绘制函数图形并显示不连续性。
- 通过计算极限并显示两者的不同。
左极限和右极限通过将字符字符串“left”和“right”作为最后一个参数传递给limit命令来计算。
示例
创建一个脚本文件,并将以下代码输入其中 -
f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')
运行该文件后,MATLAB将绘制以下图形 -
在此之后,将显示以下输出
l =
-1
r =
1