在MATLAB中使用微积分
计算极限
MATLAB提供计算极限的limit函数。在其最基本的形式中,limit函数将表达式作为参数,并在独立变量为零时找到表达式的极限。
例如,要计算函数f(x)=(x^3 + 5)/(x^4 + 7)的极限,因为x趋向于零。
| 1 | syms x | 
执行上面示例代码,得到以下结果 -
| 1 | > syms x | 
limit函数落在符号计算域; 需要使用syms函数来告诉MATLAB正在使用的符号变量。还可以计算函数的极限,因为变量趋向于除零之外的某个数字。要计算 -
可使用带有参数的limit命令。第一个是表达式,第二个是数字 - x表示接近,这里它是a。
例如,要计算函数f(x)=(x-3)/(x-1)的极限,因为x倾向于1。
| 1 | limit((x - 3)/(x-1),1) | 
执行上面示例代码,得到以下结果 -
| 1 | ans = | 
左右边界极限
当函数对变量的某个特定值具有不连续性时,该点不存在极限。 换句话说,当x = a时,函数f(x)的极限具有不连续性,当x的值从左侧接近x时,x的值不等于x从右侧接近的极限值。
对于x <a的值,左极限被定义为x - > a的极限,从左侧即x接近a。 对于x> a的值,右极限被定义为x - > a的极限,从右边,即x接近a。 当左极限和右极限不相等时,极限不存在。
下面来看看一个函数 -
| 1 | f(x) = (x - 3)/|x - 3| | 
下面将显示
不存在。MATLAB帮助我们以两种方式说明事实 -
- 通过绘制函数图并显示不连续性。
- 通过计算极限并显示两者都不同。
==通过将字符串“left”和“right”作为最后一个参数传递给limit命令来计算左侧和右侧的极限。==
例子
创建脚本文件并在其中键入以下代码 -
| 1 | f = (x - 3)/abs(x-3); | 
执行上面示例代码,得到以下结果 -

显示以下输出结果 -
| 1 | > | 
求导数
MATLAB提供用于计算符号导数的diff命令。 以最简单的形式,将要微分的功能传递给diff命令作为参数。
例如,计算函数的导数的方程式 -
例子
创建脚本文件并在其中键入以下代码 -
| 1 | syms t | 
执行上面示例代码,得到以下结果 -
| 1 | > syms t | 
计算高阶导数
要计算函数f的较高导数,可使用diff(f,n)。
计算函数的二阶导数公式为 -
| 1 | f = x*exp(-3*x); | 
MATLAB执行上面代码将返回以下结果 -
| 1 | ans = | 
求解微分方程
MATLAB提供了用于求解微分方程的dsolve命令。
找到单个方程的解的最基本的dsolve命令形式是 -
| 1 | dsolve('eqn') | 
其中eqn是用于输入方程式的文本串。
它返回一个符号解,其中包含一组任意常量,MATLAB标记C1,C2等等。
还可以为问题指定初始和边界条件,以逗号分隔的列表遵循以下公式:
| 1 | dsolve('eqn','cond1', 'cond2',…) | 
为了使用dsolve命令,导数用D表示。例如,像f'(t)= -2 * f + cost(t)这样的等式输入为 -
| 1 | 'Df = -2*f + cos(t)' | 
较高阶导数由D导数的顺序表示。
例如,方程f"(x) + 2f'(x) = 5sin3x应输入为 -
| 1 | 'D2y + 2Dy = 5*sin(3*x)' | 
下面来看一个一阶微分方程的简单例子:y'= 5y。
| 1 | s = dsolve('Dy = 5*y') | 
MATLAB执行代码并返回以下结果 -
| 1 | s = | 
再来一个二阶微分方程的例子:y“-y = 0,y(0)= -1,y'(0)= 2。
| 1 | dsolve('D2y - y = 0','y(0) = -1','Dy(0) = 2') | 
MATLAB执行代码并返回以下结果 -
| 1 | ans = | 
