资源描述:
《实验三 导数及偏导数的计算课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三导数及偏导数的计算实验目的1.进一步理解导数概念及其几何意义.2.学习Matlab的求导命令与求导法.实验内容1.学习matlab命令.建立符号变量命令sym和syms等的调用格式:x=sym(‘x’),建立符号变量x;symsxyz,建立多个符号变量x,y,z;Matlab符号工具箱简介Matlab系统本无符号运算功能,符号运算工具箱(SymbolicMathToolbox)则扩充了Matlab这方面的功能。这个工具箱在Matlab安装的Toolbox/Symbolic子文件夹下。符号变量与符号
2、表达式新的数据类型----符号变量1.用sym函数来定义一个符号或符号表达式sym函数用来建立单个符号量,例如,a=sym(‘a’)建立符号变量a,此后,用户可以在表达式中使用变量a进行各种运算。2.syms函数定义多个符号syms函数的一般调用格式为:symsvar1var2…varn函数定义符号变量var1,var2,…,varn等。用这种格式定义符号变量时不要在变量名上加字符分界符(‘’),变量间用空格而不要用逗号分隔。3.用findsym来确认符号表达式中的符号例:4.表达式化简Matlab提供
3、的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。例1.(1)执行下面命令:f=sym(‘cos(x)^2-sin(x)^2’);f=simple(f)执行结果为:f=cos(2*x)(2)执行下面命令:g=sym(‘x^3+3*x^2+3*x+1’);g=simple(g)执行结果为:g=(x+1)^3例2验证三角公式:sin(x-y)=sinxcosy-cosxsiny.解:输入命令:syms
4、xy;f=simple(sin(x)*cos(y)-cos(x)*sin(y))执行结果为:f=sin(x-y)例3。simple和simplify的区别。>>symsx>>f=cos(x)^2+sin(x)^2;>>simple(f)simplify:1radsimp:cos(x)^2+sin(x)^2combine(trig):1factor:cos(x)^2+sin(x)^2expand:cos(x)^2+sin(x)^2combine:1convert(exp):(1/2*exp(i*x)+1/
5、2/exp(i*x))^2-1/4*(exp(i*x)-1/exp(i*x))^2convert(sincos):cos(x)^2+sin(x)^2convert(tan):(1-tan(1/2*x)^2)^2/(1+tan(1/2*x)^2)^2+4*tan(1/2*x)^2/(1+tan(1/2*x)^2)^2collect(x):cos(x)^2+sin(x)^2mwcos2sin:1ans=1>>simplify(f)ans=1例4求符号矩阵的逆、行列式及特征值和特征向量。解:输入命令symsa
6、bcdA=[a,b;c,d];njz=inv(A)hls=det(A)[tzxl,tzz]=eig(A);tzxl’diag(tzz)执行结果:njz=[d/(a*d-b*c),-b/(a*d-b*c)][-c/(a*d-b*c),a/(a*d-b*c)]hls=a*d-b*cans=[-conj((1/2*d-1/2*a-1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2))/c),1][-conj((1/2*d-1/2*a+1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2))/
7、c),1]ans=1/2*d+1/2*a+1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2)1/2*d+1/2*a-1/2*(d^2-2*a*d+a^2+4*b*c)^(1/2)matlab求导命令diff调用格式:diff(函数f(x)),求f(x)的一阶导数f’(x);diff(函数f(x),n),求f(x)的n阶导数f(n)(x)(n是具体整数);diff(函数f(x,y),变量名x),求f(x,y)对x的偏导数;diff(函数f(x,y),变量名x,n),求f(x,y)对x的n阶偏导
8、数求导数和偏导数jacobian([函数f(x,y,z);函数g(x,y,z);函数g(x,y,z)],[x,y,z])给出矩阵:matlab求雅可比矩阵命令jacobian,调用格式:2.导数概念.导数是函数的变化率,几何意义是曲线在一点处的切线斜率.点导数是一个极限值.例3.1设f(x)=ex,用定义计算f’(0).解:f(x)在某一点的导数定义为极限:我们记h=△x,输入命令:symsh;limit((exp(0+h)-exp(0))