利用MATLAB计算极限

在高等数学中我们经常会遇到求解极限的问题,而MATLAB中提供了对于极限的求解。

目录

1 极限定义

2 limit函数

2.1 极限趋于0

2.2 当极限趋于特定值时

2.3 左极限和右极限

2.4 limit函数计算前的化简

2.4 利用MATLAB求解较为复杂的极限问题


1 极限定义

“极限”是数学中的分支——微积分的基础概念,广义的“极限”是指“无限靠近而永远不能到达”的意思。数学中的“极限”指:某一个函数中的某一个变量,此变量在变大(或者变小)的永远变化的过程中,逐渐向某一个确定的数值A不断地逼近而“永远不能够重合到A”(“永远不能够等于A,但是取等于A‘已经足够取得高精度计算结果)的过程中,此变量的变化,被人为规定为“永远靠近而不停止”、其有一个“不断地极为靠近A点的趋势”。极限是一种“变化状态”的描述。此变量永远趋近的值A叫做“极限值”(当然也可以用其他符号表示)。(本段定义来源于百度百科极限的定义

2 limit函数

2.1 极限趋于0

在MATLAB提供了limit函数用于求解极限,其中最普遍的情况是极限趋于0的情况。

例如对于进行求解:

y=\lim_{x \to 0}\frac{sinx}{x}

y=\lim_{x \to 0}\frac{tanx}{x}

代码如下所示:

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表示极限趋于特定的值。

例如对于下面的公式求当期接近于无穷大的时候的极限:

\small y=\frac{1}{x^2}

 MATLAB的代码如下所示:

syms x
y=1/(x^2);
y=limit(y,x,inf)

运行结果如下所示:

y =
    0

需要说明的是在MATLAB中,inf表示的是无穷大,-inf表示负的无穷大,而1/inf表示的是无穷小。

当趋于其他情况的时候,例如计算如下所示公式的极限:

\small y=\lim_{x\rightarrow 3}\frac{x^2-5x+6}{x^2-7x+12}

 MATLAB代码如下所示:

syms x
y=(x^2-5*x+6)/(x^2-7*x+12);
limit(y,x,3)

运行结果如下所示:

ans =
    -1

对其进行验证得:

\small \small y=\lim_{x\rightarrow 3}\frac{x^2-5x+6}{x^2-7x+12}=\lim_{x\rightarrow 3}=\frac{(x-3)(x-2)}{(x-3)(x-4)}=\lim_{x\rightarrow 3}=\frac{x-2}{x-4}=-1

 通过验证可以得到与MATLAB相同的结果。因此MATLAB可以计算在自变量允许的范围内极限趋于任意值。

2.3 左极限和右极限

在高等数学中,我们经常会遇到左极限和右极限不相同的情况,MATLAB中也提供了自变量趋近于某个值时,计算左右各自的极限的值。计算左极限和右极限的方法如下所示:

  • 左极限:limit(x,a,'left')
  • 右极限:limit(x,a,'right')

其中x表示的是自变量,a表示的极限趋于的特定值,left和right表示极限是趋于左极限还是右极限。

在高等数学中像分段函数之类通常会出现左极限和右极限不同的情况,下面举一个分段函数的示例:

\small y=\begin{cases} &2x-3 ,x\leq -3 \\ & x\ \ \ \ \ \ \ ,-3< x<4 \\ & x^2 \ \ \ \ \ \ ,x\geq 4 \end{cases}

 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在运算的时候,是否会先将公式进行化简呢?例如对下面这个公式进行化简:

y=\lim_{x\rightarrow 0}\frac{x^2-9}{x^2-x+6}

MATLAB 代码如下所示:

syms x
y=limit((x^2-9)/(x^2-x+6),x)

运行结果如下所示:

y =
    -3/2
 

在普通人计算极限过程一般会先将其进行化简,然后在对其进行求极限的操作,例如:

y=\lim_{x\rightarrow 0}\frac{x^2-9}{x^2-x+6}=\lim_{x\rightarrow 0}\frac{(x-3)^2}{(x-2)(x-3)}=\lim_{x\rightarrow 0}\frac{x-3}{x-2}=-\frac{3}{2}

 而计算机进行计算的时候是否也是按照这种顺序进行计算的呢?在这里我们需要更改所求的公式,探究计算机是否也是这个计算顺序。

例如计算下面这个公式的极限。

y=\lim_{ x \rightarrow 0}\frac{x^3-5x^2+6x}{x^2-4x}

面对这种求极限的问题,通常情况下人为的计算方式是:

\small y=\lim_{ x \rightarrow 0}\frac{x^3-5x^2+6x}{x^2-4x} =\lim_{x\rightarrow 0}\frac{x(x-2)(x-3)}{x(x-4)} =\lim_{x\rightarrow 0}\frac{(x-2)(x-3)}{(x-4)} =-\frac{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可以解决较为复杂的求极限问题,例如:

\small y=\lim_{x \rightarrow 0}\frac{tanx-x}{x^3}

针对这题来说,如果使用人为计算的方式的化可以使用洛必达法则,这里简单描述一下人为的计算方式的过程:

\small y=\lim_{x \rightarrow 0}\frac{tanx-x}{x^3}=\lim_{x\rightarrow 0}\frac{sec^2x-1}{3x^2}=\lim_{x \rightarrow 0}\frac{2secxtanx}{6x}=\frac{1}{3}\lim_{x\rightarrow 0}secx=\frac{1}{3}

 利用MATLAB对其进行求解的代码如下所示:

syms x
y=(tan(x)-x)/(x^3);
limit(y,x,0)

结果如下所示:

ans =
     1/3

在实际应用中,如果我们不是只对于结果有所要求而不对过程有所要求的话,那么我们可以选择利用MATLAB进行计算,较为方便。

下面再举个几个相对复杂的例子:

\small y=\lim_{x \rightarrow 0}\frac{\sqrt{1+2sinx}-x-1}{xln(x+1)}

 利用MATLAB进行计算的代码为:

syms x
y=(sqrt(1+2*sin(x))-x-1)/(x*log(x+1));
limit(y,x,0)

运行结果如下所示:

ans = 
    -1/2

(在这里就不对于上面的公式的人为的计算方法进行阐述)。

再比如:

\small y=\lim_{x\rightarrow 0}(\frac{2}{x^2-1}-\frac{1}{x-1})

 利用MATLAB的代码进行计算可得:

syms x
y=(2/(x^2-1)-1/(x-1));
limit(y,x,0)

运行结果如下所示:

ans =
     -1

MATLAB还可以对于多个符号函数的符号表达式进行求极限操作,例如对于下面的式子进行求极限操作:

\small y=\lim_{x \rightarrow a}\frac{sinx-sina}{x-a}

 MATLAB代码如下所示:

syms x a
y=(sin(x)-sin(a))/(x-a);
limit(y,x,a)

运行结果如下所示:

ans =
    cos(a)

通过结果可以看到,MATLAB的limit函数可以对于多符号变量的表达式进行求极限操作。

  • 25
    点赞
  • 142
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用Matlab符号计算功能可以方便地进行极限、积分、微分等运算,下面分别介绍如何使用Matlab进行这些计算。 1. 极限计算 Matlab中可以使用 `limit` 函数来计算极限。该函数的语法格式如下: ``` L = limit(f,x,a) ``` 其中,`f` 表示函数表达式,`x` 表示自变量,`a` 表示自变量趋近的值。最终的结果 `L` 表示当自变量趋近于 `a` 时,函数 `f` 的极限值。 例如,计算函数 $\displaystyle\lim_{x\to 0}\frac{\sin x}{x}$ 的极限,可以使用以下代码实现: ``` syms x; f = sin(x)/x; L = limit(f,x,0); ``` 运行结果 `L` 即为极限值。 2. 积分计算 Matlab中可以使用 `int` 函数来计算定积分。该函数的语法格式如下: ``` I = int(f,x,a,b) ``` 其中,`f` 表示被积函数,`x` 表示积分变量,`a` 和 `b` 分别表示积分区间的下限和上限。最终的结果 `I` 表示被积函数在 `[a,b]` 区间上的定积分值。 例如,计算函数 $f(x)=\sin x$ 在区间 $[0,\pi]$ 上的定积分,可以使用以下代码实现: ``` syms x; f = sin(x); I = int(f,x,0,pi); ``` 运行结果 `I` 即为定积分值。 3. 微分计算 Matlab中可以使用 `diff` 函数来计算函数的导数。该函数的语法格式如下: ``` df = diff(f,x) ``` 其中,`f` 表示函数表达式,`x` 表示自变量。最终的结果 `df` 表示函数 `f` 在 `x` 处的导数值。 例如,计算函数 $f(x)=x^2$ 在 $x=1$ 处的导数,可以使用以下代码实现: ``` syms x; f = x^2; df = diff(f,x); df_value = subs(df,x,1); ``` 运行结果 `df_value` 即为导数值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每月一号准时摆烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值