Matlab微积分

Matlab微积分

MATLAB提供了解决微分和积分微积分的各种方法,求解任何程度的微分方程和极限计算。可以轻松绘制复杂功能的图形,并通过求解原始功能以及其衍生来检查图形上的最大值,最小值和其他固定点。

本章将介绍微积分问题。在本章中,将讨论预演算法,即计算功能限制和验证限制属性。

在下一章微分中,将计表达式的导数,并找到一个图的局部最大值和最小值。我们还将讨论求解微分方程。

最后,在“整合/集成”一章中,我们将讨论积分微积分。

计算极限

MATLAB提供计算极限的limit函数。在其最基本的形式中,limit函数将表达式作为参数,并在独立变量为零时找到表达式的极限。

例如,要计算函数f(x)=(x^3 + 5)/(x^4 + 7)的极限,因为x趋向于零。

syms x
limit((x^3 + 5)/(x^4 + 7))

执行上面示例代码,得到以下结果 -

Trial>> syms x
limit((x^3 + 5)/(x^4 + 7))

ans =

5/7

limit函数落在符号计算域; 需要使用syms函数来告诉MATLAB正在使用的符号变量。还可以计算函数的极限,因为变量趋向于除零之外的某个数字。要计算 -

可使用带有参数的limit命令。第一个是表达式,第二个是数字 - x表示接近,这里它是a

例如,要计算函数f(x)=(x-3)/(x-1)的极限,因为x倾向于1

limit((x - 3)/(x-1),1)

执行上面示例代码,得到以下结果 -

ans =
 NaN

下面再看另外一个例子,

limit(x^2 + 5, 3)

执行上面示例代码,得到以下结果 -

ans =

使用Octave计算极限

以下是Octave版本的上述示例使用symbolic包,尝试执行并比较结果 -

pkg load symbolic
symbols
x=sym("x");

subs((x^3+5)/(x^4+7),x,0)

执行上面示例代码,得到以下结果 -

ans =
0.7142857142857142857

验证极限的基本属性

代数极限定理提供了极限的一些基本属性。这些属性如下 -

下面来考虑两个函数 -

f(x) = (3x + 5)/(x - 3)
g(x) = x^2 + 1.

下面计算函数的极限,这两个函数的x趋向于5,并使用这两个函数和MATLAB验证极限的基本属性。

例子

创建脚本文件并在其中键入以下代码 -

syms x
f = (3*x + 5)/(x-3);
g = x^2 + 1;
l1 = limit(f, 4)
l2 = limit (g, 4)
lAdd = limit(f + g, 4)
lSub = limit(f - g, 4)
lMult = limit(f*g, 4)
lDiv = limit (f/g, 4)

执行上面示例代码,得到以下结果 -

l1 =


l2 =


lAdd =


lSub =


lMult =


lDiv =

使用Octave验证极限的基本属性

以下是Octave版本的上述示例使用symbolic包,尝试执行并比较结果 -

pkg load symbolic
symbols

x = sym("x");
f = (3*x + 5)/(x-3);
g = x^2 + 1;

l1=subs(f, x, 4)
l2 = subs (g, x, 4)
lAdd = subs (f+g, x, 4)
lSub = subs (f-g, x, 4)
lMult = subs (f*g, x, 4)
lDiv = subs (f/g, x, 4)

执行上面示例代码,得到以下结果 -

l1 =

17.0
l2 =

17.0
lAdd =

34.0
lSub =

0.0
lMult =

289.0
lDiv =

1.0

左右边界极限

当函数对变量的某个特定值具有不连续性时,该点不存在极限。 换句话说,当x = a时,函数f(x)的极限具有不连续性,当x的值从左侧接近x时,x的值不等于x从右侧接近的极限值。

对于x <a的值,左极限被定义为x - > a的极限,从左侧即x接近a。 对于x> a的值,右极限被定义为x - > a的极限,从右边,即x接近a。 当左极限和右极限不相等时,极限不存在。

下面来看看一个函数 -

f(x) = (x - 3)/|x - 3|

下面将显示不存在。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')

执行上面示例代码,得到以下结果 -

显示以下输出结果 -

Trial>> 
Trial>> f = (x - 3)/abs(x-3);
ezplot(f,[-1,5])
l = limit(f,x,3,'left')
r = limit(f,x,3,'right')

l =

-1


r =