第四讲导数偏导数计算.docx
《第四讲导数偏导数计算.docx》由会员分享,可在线阅读,更多相关《第四讲导数偏导数计算.docx(13页珍藏版)》请在冰豆网上搜索。
第四讲导数偏导数计算
第四讲导数及偏导数计算
实验目的
1.进一步理解导数概念及其几何意义.
2.学习matlab的求导命令与求导法.
实验内容
1.学习matlab命令.
建立符号变量命令sym和syms调用格式:
x=sym('x'),建立符号变量x;
symsxyz,建立多个符号变量x,y,z;
matlab求导命令diff调用格式:
diff(函数
),求
的一阶导数
;
diff(函数
,n),求
的n阶导数
(n是具体整数);
diff(函数
,变量名
),求
对
的偏导数
;
diff(函数
,变量名
,n),求
对
的n阶偏导数
;
matlab求雅可比矩阵命令jacobian,调用格式:
jacobian([函数
;函数
;函数
],[
])给出矩阵:
2.导数概念.
导数是函数的变化率,几何意义是曲线在一点处的切线斜率.
(1)点导数是一个极限值.
例3.1.设
,用定义计算
.
解:
在某一点
的导数定义为极限:
我们记
,输入命令:
symsh;limit((exp(0+h)-exp(0))/h,h,0)
得结果:
ans=1.可知
(2)导数的几何意义是曲线的切线斜率.
例3.2.画出
在
处(
)的切线及若干条割线,观察割线的变化趋势.
解:
在曲线
上另取一点
,则
的方程是:
.即
取
,分别作出几条割线.
h=[3,2,1,0.1,0.01];a=(exp(h)-1)./h;x=-1:
0.1:
3;
plot(x,exp(x),'r.');holdon
fori=1:
5;
plot(h(i),exp(h(i)),'r.')
plot(x,a(i)*x+1)
end
axissquare
作出
在
处的切线
plot(x,x+1,'r.')
从图上看,随着
与
越来越接近,割线
越来越接近曲线的割线.
3.求一元函数的导数.
(1)
的一阶导数.
例3.3.求
的导数.
解:
打开matlab指令窗,输入指令:
>>symsx;dy_dx=diff(sin(x)/x)
得结果:
dy_dx=cos(x)/x-sin(x)/x^2.
matlab的函数名允许使用字母、空格、下划线及数字,不允许使用其他字符,在这里我们用dy_dx表示
例3.4.求
的导数.
解:
输入命令:
dy_dx=diff(log(sin(x)))
得结果:
dy_dx=cos(x)/sin(x).
在matlab中,函数
用log(x)表示,而log10(x)表示
例3.5.求
的导数.
解:
输入命令:
dy_dx=diff((x^2+2*x)^20).
得结果:
dy_dx=20*(x^2+2*x)^19*(2*x+2).
注意
输入时应为2*x.
例3.6.求
的导数.
解:
输入命令:
dy_dx=diff(x^x).
得结果:
dy_dx=x^x*(log(x)+1).
利用matlab命令diff一次可以求出若干个函数的导数.
例3.7.求下列函数的导数:
1.
2.
3.
4.
解:
输入命令:
a=diff([sqrt(x^2-2*x+5),cos(x^2)+2*cos(2*x),4^(sin(x)),
log(log(x))]).
得结果:
a=
[1/2/(x^2-2*x+5)^(1/2)*(2*x-2),-2*sin(x^2)*x-4*sin(2*x),
4^sin(x)*cos(x)*log(4),1/x/log(x)].
dy1_dx=a
(1)
dy1_dx=1/2/(x^2-2*x+5)^(1/2)*(2*x-2).
dy2_dx=a
(2)
dy2_dx=-2*sin(x^2)*x-4*sin(2*x).
dy3_dx=a(3)
dy3_dx=4^sin(x)*cos(x)*log(4).
dy4_dx=a(4)
dy4_dx=1/x/log(x).
由本例可以看出,matlab函数是对矩阵或向量进行操作的,a(i)表示向量a的第i个分量.
(2)参数方程所确定的函数的导数.
设参数方程
确定函数
,则
的导数
例3.8.设
,求
解:
输入命令:
dx_dt=diff(a*(t-sin(t)));dy_dt=diff(a*(1-cos(t)));
dy_dx=dy_dt/dx_dt.
得结果:
dy_dx=sin(t)/(1-cos(t)).
其中分号的作用是不显示结果.
4.求多元函数的偏导数.
例3.9.设
求u的一阶偏导数.
解:
输入命令:
diff((x^2+y^2+z^2)^(1/2),x).
得结果:
ans=1/(x^2+y^2+z^2)^(1/2)*x.
在命令中将末尾的x换成y将给出y的偏导数:
ans=1/(x^2+y^2+z^2)^(1/2)*y.
也可以输入命令:
jacobian((x^2+y^2+z^2)^(1/2),[xy]).
得结果:
ans=[1/(x^2+y^2+z^2)^(1/2)*x,1/(x^2+y^2+z^2)^(1/2)*y]
给出矩阵
例3.10.求下列函数的偏导数:
1.
2.
解:
输入命令:
diff(atan(y/x).
得结果:
ans=-y/x^2/(1+y^2/x^2).
输入命令:
diff(atan(y/x),y).
得结果:
ans=1/x/(1+y^2/x^2).
输入命令:
diff(x^y,x).
得结果:
ans=x^y*y/x.
输入命令:
diff(x^y,y).
得结果:
ans=x^y*log(x).
使用jacobian命令求偏导数更为方便.
输入命令:
jacobian([atan(y/x),x^y],[x,y]).
得结果:
ans=[-y/x^2/(1+y^2/x^2),1/x/(1+y^2/x^2)]
[x^y*y/x,x^y*log(x)].
5.求高阶导数或高阶偏导数.
例3.11.设
,求.
解:
输入指令:
diff(x^2*exp(2*x),x,20).
得结果:
ans=
99614720*exp(2*x)+20971520*x*exp(2*x)+1048576*x^2*exp(2*x)
例3.12.设
,求
解:
输入命令:
diff(x^6-3*y^4+2*x^2*y^2,x,2)
可得到
:
ans=30*x^4+4*y^2.
将命令中最后一个x换为y得
:
ans=-36*y^2+4*x^2.
输入命令:
diff(diff(x^6-3*y^4+2*x^2*y^2,x),y)
可得
:
ans=8*x*y
同学们可自己计算
比较它们的结果.
注意命令:
diff(x^6-3*y^4+2*x^2*y^2,x,y),是对y求偏导数,不是求
6.求隐函数所确定函数的导数或偏导数
例3.13.设
,求
解:
,先求
,再求
输入命令:
df_dx=diff(log(x)+exp(-y/x)-exp
(1),x)
得到
:
df_dx=1/x+y/x^2*exp(-y/x).
输入命令:
df_dy=diff(log(x)+exp(-y/x)-exp
(1),y)
得到
:
df_dy=-1/x*exp(-y/x)
输入命令:
dy_dx=-df_dx/df_dy
可得所求结果:
dy_dx=-(-1/x-y/x^2*exp(-y/x))*x/exp(-y/x).
例3.14.设
,求
解:
输入命令:
a=jacobian(sin(x*y)+cos(y*z)+tan(z*x),[x,y,z])
可得矩阵
a=
[cos(x*y)*y+(1+tan(z*x)^2)*z,cos(x*y)*x-sin(y*z)*z,
-sin(y*z)*y+(1+tan(z*x)^2)*x].
输入命令:
dz_dx=-a
(1)/a(3)
得:
dz_dx=
(-cos(x*y)*y-(1+tan(z*x)^2)*z)/(-sin(y*z)*y+(1+tan(z*x)^2)*x)
输入命令:
dz_dy=-a
(2)/a(3)
得:
dz_dy=
(-cos(x*y)*x+sin(y*z)*z)/(-sin(y*z)*y+(1+tan(z*x)^2)*x)
练习
1.求下列函数的导数.
(1)
(2)
(3)
(4)
2.求下列参数方程所确定的函数的导数.
(1)
(2)
3.求下列隐函数的导数.
(1)
(2)
4.设
,求
.
5.验证
满足关系式:
6.求下列函数的偏导数.
(1)
(2)
7.设
,求
,
,
.
8.求下列多元隐函数的偏导数
.
(1)
(2)
9.证明函数
(
为常数)满足拉普拉斯方程:
(提示:
对结果用simplify化简)