利用MATLAB计算极限
在高等数学中我们经常会遇到求解极限的问题,而MATLAB中提供了对于极限的求解。
目录
1 极限定义
“极限”是数学中的分支——微积分的基础概念,广义的“极限”是指“无限靠近而永远不能到达”的意思。数学中的“极限”指:某一个函数中的某一个变量,此变量在变大(或者变小)的永远变化的过程中,逐渐向某一个确定的数值A不断地逼近而“永远不能够重合到A”(“永远不能够等于A,但是取等于A‘已经足够取得高精度计算结果)的过程中,此变量的变化,被人为规定为“永远靠近而不停止”、其有一个“不断地极为靠近A点的趋势”。极限是一种“变化状态”的描述。此变量永远趋近的值A叫做“极限值”(当然也可以用其他符号表示)。(本段定义来源于百度百科极限的定义)
2 limit函数
2.1 极限趋于0
在MATLAB提供了limit函数用于求解极限,其中最普遍的情况是极限趋于0的情况。
例如对于进行求解:
代码如下所示:
syms x
y1=limit(sin(x)/x)
y2=limit(tan(x)/x)
运行结果如下所示:
y1 =
1
y2 =
1
2.2 当极限趋于特定值时
MATLAB中limit函数可以极限可以趋于任何的特定值。此时limit函数的调用方式如下所示为limit(y,x,a),其中y表示的是因变量,x表示的是自变量,a表示极限趋于特定的值。
例如对于下面的公式求当期接近于无穷大的时候的极限:
MATLAB的代码如下所示:
syms x
y=1/(x^2);
y=limit(y,x,inf)
运行结果如下所示:
y =
0
需要说明的是在MATLAB中,inf表示的是无穷大,-inf表示负的无穷大,而1/inf表示的是无穷小。
当趋于其他情况的时候,例如计算如下所示公式的极限:
MATLAB代码如下所示:
syms x
y=(x^2-5*x+6)/(x^2-7*x+12);
limit(y,x,3)
运行结果如下所示:
ans =
-1
对其进行验证得:
通过验证可以得到与MATLAB相同的结果。因此MATLAB可以计算在自变量允许的范围内极限趋于任意值。
2.3 左极限和右极限
在高等数学中,我们经常会遇到左极限和右极限不相同的情况,MATLAB中也提供了自变量趋近于某个值时,计算左右各自的极限的值。计算左极限和右极限的方法如下所示:
- 左极限:limit(x,a,'left')
- 右极限:limit(x,a,'right')
其中x表示的是自变量,a表示的极限趋于的特定值,left和right表示极限是趋于左极限还是右极限。
在高等数学中像分段函数之类通常会出现左极限和右极限不同的情况,下面举一个分段函数的示例:
MATLAB代码如下所示:
syms x
y=piecewise(x<=-3,2*x-3,-3<x&x<4,x,x>=4,x^2);
lim_y1=limit(y,x,-3,'left')
lim_y2=limit(y,x,-3,'right')
lim_y3=limit(y,x,4,'left')
lim_y4=limit(y,x,4,'right')
运行结果如下所示:
lim_y1 =
-9
lim_y2 =
-3
lim_y3 =
4
lim_y4 =
16
通过运行结果可以看到,在分段函数中,符号函数从不同方向所趋于分段点a的时候,所得到的结果也是不相同的。
2.4 limit函数计算前的化简
MATLAB在运算的时候,是否会先将公式进行化简呢?例如对下面这个公式进行化简:
MATLAB 代码如下所示:
syms x
y=limit((x^2-9)/(x^2-x+6),x)
运行结果如下所示:
y =
-3/2
在普通人计算极限过程一般会先将其进行化简,然后在对其进行求极限的操作,例如:
而计算机进行计算的时候是否也是按照这种顺序进行计算的呢?在这里我们需要更改所求的公式,探究计算机是否也是这个计算顺序。
例如计算下面这个公式的极限。
面对这种求极限的问题,通常情况下人为的计算方式是:
下面使用MATLAB对其进行计算:
syms x
y=(x^3-5*x^2+6*x)/(x^2-4*x);
limit(y)
运行结果如下所示:
ans =
-3/2
通过上面的结果不能发现,当MATLAB对其进行求极限计算的时候,首先会对于公式进行化简操作,然后再计算极限值。
2.4 利用MATLAB求解较为复杂的极限问题
利用MALTAB可以解决较为复杂的求极限问题,例如:
针对这题来说,如果使用人为计算的方式的化可以使用洛必达法则,这里简单描述一下人为的计算方式的过程:
利用MATLAB对其进行求解的代码如下所示:
syms x
y=(tan(x)-x)/(x^3);
limit(y,x,0)
结果如下所示:
ans =
1/3
在实际应用中,如果我们不是只对于结果有所要求而不对过程有所要求的话,那么我们可以选择利用MATLAB进行计算,较为方便。
下面再举个几个相对复杂的例子:
利用MATLAB进行计算的代码为:
syms x
y=(sqrt(1+2*sin(x))-x-1)/(x*log(x+1));
limit(y,x,0)
运行结果如下所示:
ans =
-1/2
(在这里就不对于上面的公式的人为的计算方法进行阐述)。
再比如:
利用MATLAB的代码进行计算可得:
syms x
y=(2/(x^2-1)-1/(x-1));
limit(y,x,0)
运行结果如下所示:
ans =
-1
MATLAB还可以对于多个符号函数的符号表达式进行求极限操作,例如对于下面的式子进行求极限操作:
MATLAB代码如下所示:
syms x a
y=(sin(x)-sin(a))/(x-a);
limit(y,x,a)
运行结果如下所示:
ans =
cos(a)
通过结果可以看到,MATLAB的limit函数可以对于多符号变量的表达式进行求极限操作。
更多推荐
所有评论(0)