极限和导数的应用

极限可用于计算函数曲线的渐近线,导数可用于求函数的极值和拐点,判断函数的单调性等。下面结合一个具体的例子进行介绍。[大谦MATLAB,dqmatlab点com]

对于下面的函数

\[f(x)=\frac{3{x}^{2}+6x-1}{{x}^{2}+x-3}\]

创建该函数,使用下面的命令。

code.matlab
>> syms x
>> num = 3*x^2 + 6*x -1;
>> denom = x^2 + x - 3;
>> f = num/denom
f =
(3*x^2+6*x-1)/(x^2+x-3)

可以用下面的命令绘制函数f的图形。

code.matlab
>> ezplot(f)

结果如图3-1所示。

Document Image
\[\]

图3-1 函数的图形

渐近线

求函数图形的水平渐近线,需要求x趋于正无穷时f的极限,即

code.matlab
>> limit(f, inf)
ans =
3

x趋于负无穷时的极限也是3。说明y=3就是图形的水平渐近线。

求f的垂直渐近线,使分母等于0,并用下面的命令进行求解。

code.matlab
>> roots = solve(denom)

返回方程\({x}^{2}+x-3=0\)的解:

code.matlab
roots =
- 13^(1/2)/2 - 1/2
          13^(1/2)/2 - 1/2

说明垂直渐近线分别为

\(x=\frac{-1+\sqrt{13}}{2}\)\(x=\frac{-1-\sqrt{13}}{2}\)

可以用下面的语句行绘制水平渐近线和垂直渐近线。

code.matlab
>> ezplot(f)
>> hold on
>;> % 绘制水平渐近线
>> plot([-2*pi 2*pi], [3 3],'g')
>;> % 绘制垂直渐近线
>> plot(double(roots(1))*[1 1], [-5 10],'r')
>> plot(double(roots(2))*[1 1], [-5 10],'r')
>> title('水平渐近线和垂直渐近线')
>> hold off

结果如图3-2所示。

Document Image
\[\]

图3-2 水平渐近线和垂直渐近线

极值

从函数的图形中可以看出,在x=2和x=0之间某些地方存在局部极大值,在x=4和x=2之间的某些地方可能存在极小值。求极大值和极小值的x坐标,首先要求函数的导数。

code.matlab
>> f1 = diff(f)
fl =
(6*x + 6)/(x^2 + x - 3) - ((2*x + 1)*(3*x^2 + 6*x - 1))/(x^2 + x - 3)^2

简化该结果

code.matlab
>> f1 = simplify(f1)
f1 = -(3*x^2 + 16*x + 17)/(x^2 + x - 3)^2

输入下面的语句,可以用更好读的形式显示f1。

code.matlab
>> pretty(f1)
2
3 x + 16 x + 17
- -----------------------
2     2
(x + x - 3)

然后让导数等于0,解方程求0值点。

code.matlab
>> crit_pts = solve(f1)
crit_pts =
- 13^(1/2)/3 - 8/3
        13^(1/2)/3 - 8/3

很明显,从函数的图形中可以看出有一个局部极小值位于

\[{x}_{1}=\frac{-8-\sqrt{13}}{3}\]

有一个局部极大值位于

\[{x}_{2}=\frac{-8+\sqrt{13}}{3}\]

用下面的命令绘出函数的极大值和极小值。

code.matlab
>> ezplot(f)
>> hold on
>> plot(double(crit_pts), …
double(subs(f,crit_pts)),'ro')
>> title('函数的极大值和极小值')
>> text(-5.5,3.2,'局部极小值')
>> text(-2.5,2,'局部极大值')
>> hold off

结果如图3-3所示。

Document Image
\[\]

图3-3 表示函数的极大值和极小值

拐点

求函数的拐点,需要求函数的2阶导数并使之为0,然后进行求解。

code.matlab
>> f2 = diff(f1);
>> inflec_pt = solve(f2);
>> double(inflec_pt)
ans =
  -5.2635 + 0.0000i
  -1.3682 - 0.8511i
  -1.3682 + 0.8511i

这里只有第1个解为实数,所以只有一个拐点。因为只对实数解感兴趣,所以丢弃后面的两个解,它们是复数。

code.matlab
>> inflec_pt = inflec_pt(1)

要查看拐点的符号表达式,输入

code.matlab
>> pretty(simplify(inflec_pt))
1/2  2/3                 1/2  1/3
(676 + 156 13   ) + 52 + 16(676 + 156 13   )
- 1/6 ----------------------------------------------------------------
1/2  1/3
(676 + 156 13   )

绘制拐点,输入下面的命令行:

code.matlab
>> ezplot(f, [-9 6])
>> hold on
>> plot(double(inflec_pt), double(subs(f,inflec_pt)),'ro')
>> title('函数的拐点')
>> text(-7,2,'拐点')
>> hold off

结果如图3-4所示。

Document Image
\[\]

图3-4 表示函数的拐点