数学实验教程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 导数

函数在某一点处的导数,从实际意义的角度来看,是函数在某一点处的变化率,是函数曲线在这一点处的切线斜率。从数学上来看,导数是以极限的形式定义的,所以计算导数完全可以用上一节介绍的极限命令。当然,我们也可以用MATLAB提供的命令来直接求函数导数。

首先,我们根据导数的定义,用极限命令来求函数导数。

例2-4 求函数y=3sinx+4x2x=0处的导数。

根据导数的定义,函数在x=0处的导数为:

因此可以输入如下代码:

    >> syms t;                          %定义符号变量t,即导数定义中的Δ x
    >> limit((3∗sin(t)+4∗t^2)/t, 0)%求极限命令
    ans=3                                %输出结果

对于可导的一元函数fx),我们可以用diff(f(x))命令来求其导数。

例2-5 求函数y=3sinx+4x2的导数。

只需定义系统变量,并直接调用diff命令即可:

    >> syms x;
    >> diff(3∗sin(x)+4∗x^2)
    ans=8∗x+3∗cos(x)

例2-6y=ln(x+cosx)的导数。

输入如下代码即可:

    >> syms x;
    >> diff(log(x+cos(x)))
    ans=(1-sin(x))/(x+cos(x))

输入代码时要注意,MATLAB中将lnx表示为log(x)。

如果需要求一组函数或一个向量函数的导数,也可以使用diff命令。

例2-7 求向量函数fx)=的导数。

输入如下代码即可:

    >> syms x;
    >> diff( [sin(x)+1, cos(x)+x, 4∗x^4])  %注意向量函数的输入格式
    ans=[ cos(x), 1-sin(x), 16∗x^3]

函数的一阶导数如果可导,则可以继续求函数的二阶导数。如果函数具有一定的光滑性,则可以求其高阶导数。求一元函数n阶导数的命令为diff(f(x), n)。

例2-8y=3sinx+4x8的7阶导数。

在这里调用diff命令并注明求导的阶数即可:

    >> syms x;
    >> diff(3∗sin(x)+4∗x^8, 7)
    ans=161280∗x-3∗cos(x)

对于形如x=xt), y=yt)的参数方程的函数,微积分课程中给出的求导法则为

因此在使用MATLAB求参数方程形式的函数导数时,只需先求y′t)和x′t),随后将两者相除即可。

例2-9 已知

输入如下代码:

    >> syms t;
    >> dx  dt=diff(t^2-log(2+sin(t)));
    >> dy  dt=diff(t^3-3∗sin(log(t)));
    >> dy  dx=dy  dt/dx  dt

输出结果为:

    dy  dx=-((3∗cos(log(t)))/t-3∗t^2)/(2∗t-cos(t)/(sin(t)+2))

例2-10 用圆柱形铁皮罐来装0.5m3汽油,如何设计铁皮罐的尺寸,才能让铁皮用量最少?

假设铁皮罐的高为h,底面半径为r。由铁皮罐容积πr2h=0.5可得

因此圆柱体表面积S=2πrh+。现在的问题是:r取什么值时S能取到最小值?输入如下代码,绘制函数Sr)的图像(见图2-9)。

图2-9

    >> r=0.05: 0.1: 3;
    >> S=r.\1+2∗pi∗r.^2;
    >> plot(r, S)
    >> xlabel(r)
    >> ylabel(S)

可以发现,S 只有一个极值点,大致位于(0, 1)内,而且这个极值点是其最小值点。接下来对函数Sr)求导:

    >> syms r;
    >> s=1/r+2∗pi∗r^2;
    >> diff(s)

求得S′(r)=,因此极值点即最小值点,为r=,相应的函数最小值为:

除了通过求导求最值,还可以利用MATLAB提供的命令来直接计算最值,命令格式为:

    [ x, f]=fminbnd(f(x), a, b)

其意义为计算以x为自变量的函数fx)在区间 [a, b] 上的最小值点x和最小值f。比如输入如下代码:

    >> [x, f]=fminbnd(x^2-3∗x+1 ,-10, 10)

输出结果即相应的最小值点和最小值:

    x=1.5000
    f=-1.2500

如果没有给定区间,希望求函数在某一点附近的最小值点和最小值,可以用命令:

    [ x, f]=fminsearch(f(x), a)

其意义为计算以x为自变量的函数fx)在点x=a附近的最小值点和最小值f。比如输入如下代码:

    >> [x, f]=fminsearch( sin(2∗x)+1 , 3)        %求x=3附近的最小值点和最小值
    x=2.3562                                             %输出的最小值点
    f=8.9290e-011                                        %输出的最小值
    >> [x, f]=fminsearch( sin(2∗x)+1 , 5)         %求x=5附近的最小值点和最小值
    x=5.4978                                             %输出的最小值点
    f=4.8613e-010                                        %输出的最小值

而函数y=sin(2x)+1的图像如图2-10所示。

图2-10