2.3 多元函数的偏导数
计算多元函数u=f(x, y, z)关于某个变量的偏导数,可以使用MATLAB命令diff(f(x, y, z),变量名)。
例2-11 已知u=x2+ln,求,。
>> du dx=diff(x^2+log(y)+sqrt(z), x) du dx= 2∗x >> du dz=diff(x^2+log(y)+sqrt(z), z) du dz= 1/(2∗z^(1/2))
计算函数关于某个变量的n阶偏导数,可以使用命令diff(f(x, y, z),变量名,n)。
>> syms x y z; >> diff(x^2+log(y)+sqrt(z), y, 4) ans= -6 /y^4
计算形如的高阶偏导数,可以使用命令diff(diff(f(x, y, z), x), y)。
>> diff(diff(x^2+log(y)+sqrt(z), x), y) ans= (2∗x)/y
计算多元向量函数 u=(f(x, y, z), g(x, y, z), h(x, y, z))的偏导数,即其Jacobian矩阵,可以使用命令jacobian([f, g, h], [x, y, z])。
例2-12 已知u=,求其Jacobian矩阵。
输入如下命令:
>> syms x y z; >> jacobian([x^2+sin(y), y^2+sin(z), z^2+sin(x)], [x, y, z])
可得相应的Jacobian矩阵为:
ans= [2∗x, cos(y), 0] [0, 2∗y, cos(z)] [cos(x), 0, 2∗z]
对于隐函数形式的函数求导,比如形如F(x,y)=0的函数关系,根据高等数学所学的知识,我们需要通过求偏导数来计算。设F(x,y)=0,则;设F(x,y,z)=0,则偏导数。同理,偏导数。在利用MATLAB计算隐函数形式的函数导数时,我们也要使用同样的办法。
例2-13 已知x2e-2y=5,求。
输入如下命令:
>> syms x y; >> F=x^2∗exp(-2∗y)-5; >> dy dx=-diff(F, x)/diff(F, y)
可得相应的输出结果:
dy dx= 1/x
例2-14 已知x2e-2y-2z=5,求。
输入如下命令:
>> syms x y z; >> F=x^2∗exp(-2∗y-2∗z)-5; >> dz dy=-diff(F, y)/diff(F, z)
可得相应的输出结果:
dz dy= -1
例2-15 商场每T天购进Q kg某种蔬菜零售,每天销量为r kg, rT>Q。那么T和Q如何选择才能让总支出最小?
在这里我们需要如下假设条件:
(1)每次进货需要额外开支a元;
(2)每天每千克蔬菜储存费支出b元;
(3)每天每千克缺货损失费c元。
记q(t)为t时刻蔬菜的储存量,具体形式为q=Q-rt, t∈[0, T]。t=Q/ r时蔬菜售完,在(Q/ r, T] 时间段内缺货,q(t)<0。因此一次性订货周期的总支出为:
每天的平均支出为
因此现在的问题是T和Q取何值时,C(T, Q)达到最小。解决办法是求C(T, Q)关于T和Q的偏导数,并令两个偏导数为零,即可得到相应的T和Q值。
输入如下代码计算偏导数:
>> syms a b c r T Q; >> C=a/T+b∗Q^2/(2∗r∗T)+c∗(r∗T-Q)^2/2∗r∗T; >> dC dT=diff(C, T) >> dC dQ=diff(C, Q)
然后令dC_dT=0, dC_dQ=0,可以求得
按照上述T值和Q值来进货,就可以让总支出最小化。
求函数的导数、偏导数均为符号运算,与我们之前介绍的数值计算有所不同。使用软件计算导数、偏导数非常简单,因此在学习高等数学的过程中可以借助软件来验证课堂上所学的定理、结论。