版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
教学内容第1章 MATLAB概论第2章 矩阵运算基础第3章 数值计算基础第4章 符号数学基础第5章 基本图形处理功能第6章 高级图形处理功能第7章 图形用户界面设计第8章 M文件程序设计基础第9章 Simulink基础14.1符号对象的创建4.2符号表达式的化简和替换
4.3符号微积分4.4符号方程的求解4.5符号数学的简易绘图函数4.6图形化符号函数计算器4.7Taylor级数计算器第4章符号数学基础内容提要:2符号运算数值计算参与运算的变量是被赋值的数值变量,用于数值的存储和各种数值的计算。参与运算的变量是符号变量,用于形成符号表达式,进行各种运算,给出解析表达式的结果3例:求多项式的根a=[12-3];r=roots(a)r=-3.00001.0000symsabcxs=a*x^2+b*x+c;r=solve(s)r=1/2/a*(-b+(b^2-4*a*c)^(1/2))1/2/a*(-b-(b^2-4*a*c)^(1/2))4
主要功能:符号表达式的创建、符号矩阵的运算、符号表达式的化简和替换、符号微积分、符号代数方程、符号微分方程、符号函数绘图符号数学工具箱:SymbolicMathToolbox54.1符号对象的创建
6symsvar1var2…varn4.1.1创建符号变量和表达式
创建一个符号变量var,并初始化。表示内容可以是字符、字符串、表达式var=sym(’x表示内容’)一次定义多个变量说明:
变量间用空格而不要用逗号分隔7例:exp4_1.ma=sym('a')b=sym('hello')c=sym('(1+sqrt(5))/2')y=sym('x^3+5*x^2+12*x+20')例:exp4_1_1.m创建符号表达式“b^2-4*a*c”,并赋值给符号变量dtdt=sym('b^2-4*a*c')8例:exp4_1_2.m比较符号常数与数值k1=sym('8');k2=sym('2');r1=8,r2=2;sqrtk=sqrt(k1)sqrtr=sqrt(r1)sqrt(k1+sqrt(k2))sqrt(r1+sqrt(r2))sqrtk=2*2^(1/2)sqrtr=2.8284ans=(8+2^(1/2))^(1/2)ans=3.06839symsabcxy=a*x^2+b*x+c10使用sym和syms函数直接输入创建符号矩阵可以与数值矩阵相互转换4.1.2创建符号矩阵数值矩阵转换为符号矩阵—sym(x)符号矩阵转换为数值矩阵--double(x)11例:exp4_3.msymsabcdn=[abcd;bcda;cdab;dabc]例:exp4_4.m将3阶Hilbert矩阵转换为符号矩阵h=hilb(3)h1=sym(h)h2=double(h1)12h=1.00000.50000.33330.50000.33330.25000.33330.25000.2000h1=[1,1/2,1/3][1/2,1/3,1/4][1/3,1/4,1/5]注意:数值矩阵和符号矩阵的区别例:exp4_4.m将3阶Hilbert矩阵转换为符号矩阵h=hilb(3)h1=sym(h)13MATLAB以最接近字符x的顺序排列默认自变量;若与x相同距离,则在x后面的优先;大写字母比所有的小写字母都靠后。i,j表示虚数单位,因此不能作为自变量4.1.3默认符号变量14可用findsym函数对默认自变量进行查询findsym(f)按字母顺序排列表达式f中全部自变量findsym(f,n)按最接近变量x的顺序排列f中的前n个自变量15例4-3:创建符号变量a、b、n、x和t,建立函数f=axn+bt,并求f的默认自变量。symsabntx;f=a*x^n+b*t;f1=findsym(f,1);f2=findsym(f,2);f3=findsym(f,5);f4=findsym(f)f1=xf2=x,tf3=x,t,n,b,af4=a,b,n,t,x164.2
符号表达式的化简和替换
17因式分解:函数为:factor,调用格式:factor(S),在这里可以使用函数pretty将符号表达式按照书写的习惯方式显示。如果S的所有元素为整数,则计算其最佳因数分解
符号表达式的展开:函数为:expand(S)符号表达式的同类项合并:函数为:collect(S,n)将符号表达式S中自变量n的同次幂系数合并4.2.1符号表达式的化简18符号表达式的化简:提供了两个化简函数,分别是simple和symplify函数simplify的调用格式为:simplify(S),化简函数,使用Maple化简规则。Simple尝试采用多种算法以寻求最简形,其调用格式:[r,how]=simple(S),返回S最简形式,r为返回的简化形式,how为化简过程中使用的主要方法19simple函数使用的化简方法simplify:函数对表达式进行化简radsim:函数对含根式的表达式进行化简combine:函数将表达式中以求和、乘积、幂运算等形式出现的项进行合并collect:合并同类项factor:函数实现因式分解convert:函数完成表达式形式的转换expand:符号表达式的同类项合并20例4-4:简化
syms
x;f=(1/x^3+6/x^2+12/x+8)^(1/3);[g1,how]=simple(f)[g2,how]=simple(g1)g1=(2*x+1)/xhow=radsimpg2=2+1/xhow=expand21符号表达式的分式通分:函数为[n,d]=numden(S)将符号表达式转换为分子和分母都是整系数的最佳多项式。n分子,d分母。符号表达式的嵌套式重写:函数horner(S)将符号表达式S转换为嵌套形式。22例4-5:对表达式进行通分n=y^2-x^2
d=x*ysymsxy;f=y/x-x/y;[n,d]=numden(f)23例4-6:对下列表达式进行嵌套形式重写ans=-6+(5+(5+(-5+x)*x)*x)*xsymsx;f=x^4-5*x^3+5*x^2+5*x-6;horner(f)24subexpr:将表达式中重复出现的字符串用变量代替;调用格式:[Y,SIGMA]=subexpr(S,SIGMA)此函数用变量SIGMA的值代替符号表达式S中重复出现的字符串,Y返回替换后的结果。Subs:用指定符号替换符号表达式中的某一特定符号;调用格式:
R=subs(S,old,new)。当变量new是数值形式时,所显示的结果虽然是数值,但它事实上仍然是符号变量。4.2.2符号表达式的替换25symsax;f=a*sin(x)+5;
f1=subs(f,'sin(x)',sym('y'))class(f1)f2=subs(f,{a,x},{2,sym('pi/3')})class(f2)f3=subs(f,[a,x],[2,pi/3])class(f3)例4-7:
subs的置换规则演示。符号表达式置换(sin(x)被y置换)符号常数置换(a被双精度数字2置换,x被符号数字置换)双精度数值置换26f1=a*y+5ans=sym
f2=3^(1/2)+5ans=symf3=6.7321ans=double274.3
符号微积分
28limit(f)limit(f,a)limit(f,x,a)limit(f,x,a,’right’)limit(f,x,a,’left’)注:∞在MATLAB中表示为inf4.3.1符号极限29例4-8:试求symsxkf;f=(1-1/x)^(k*x);Lim_f=limit(f,x,inf)Lim_f=exp(-k)304.3.2
符号微分
diff(S):求符号表达式S对默认变量的微分diff(S,v):求符号表达式S对变量v的微分diff(S,n):求符号表达式S对变量x的n次微分31clearsymsxg=sym('cos(x+sin(y(x)))=sin(y(x))');dgdx=diff(g,x)例4-9:对下列方程(即隐函数)求导dgdx=-sin(x+sin(y(x)))*(1+cos(y(x))*diff(y(x),x))=cos(y(x))*diff(y(x),x)324.3.3
符号积分
int(S):求符号表达式S对于默认自变量的不定积分int(S,v):求符号表达式S对于自变量v的不定积分int(S,a,b):求符号表达式S对于默认自变量从a到b的定积分33例:symsxf=sin(x)/(x^2+4*x+3);f1=diff(f);f2=int(f1);f3=simplify(f2)f1=cos(x)/(x^2+4*x+3)-sin(x)/(x^2+4*x+3)^2*(2*x+4)f2=1/2*sin(x)/(x+1)-1/2*sin(x)/(x+3)f3=sin(x)/(x+1)/(x+3)34例:symsxyf=x*exp(-x*y);int(int(f,'x'),'y')ans=1/y*exp(-x*y)f=int(int('x*exp(-x*y)','x'),'y')int(int(f,x),y)35symsum(S):计算符号表达式对于默认自变量的不定和symsum(S,v):计算符号表达式对于自变量v的不定和syssum(S,a,b):
计算符号表达式对于默认自变量从a到b的有限和。4.3.4符号求和36symsuxsymsum(u)p=symsum(u^2,0,5)m=symsum(x^u/sym('u!'),u,0,inf)ans=1/2*u^2-1/2*up=55m=exp(x)例4-10:分别计算表达式:37Taylor(f)
:计算符号表达式f在默认自变量等于0处的5阶taylor级数展开式。Taylor(f,n,v):计算符号表达式f在默认自变量v=0处的n-1阶taylor级数展开式。Taylor(f,n,v,a):计算符号表达式f在默认自变量v=a处的n-1阶taylor级数展开式。4.3.5Taylor级数展开38例:计算f=sin(x)的5阶和9阶Taylor级数展开式symsxtaylor(sin(x))taylor(sin(x),10)ans=x-1/6*x^3+1/120*x^5ans=x-1/6*x^3+1/120*x^5-1/5040*x^7+1/362880*x^939例:x=sym('x');f=1+3*x+5*x^2-2*x^3;f1=taylor(f,x,-1)f1=-8-13*x+11*(x+1)^2-2*(x+1)^3404.4
符号方程的求解
41g=solve(eq):求解符号表达式eq=0的代数方程,自变量为默认自变量。g=solve(eq,var):求解符号表达式eq=0的代数方程,自变量为var。g=solve(eq1,eq2,var1,var2):求解符号表达式eq1,eq2组成的代数方程组,自变量为var1,var2。4.4.1
符号代数方程的求解42例exp4_21.m
:f=ax2+bx+c求解symsabcxs=a*x^2+b*x+c;solve(s)ans=[1/2/a*(-b+(b^2-4*a*c)^(1/2))][1/2/a*(-b-(b^2-4*a*c)^(1/2))]思考:solve(s,b)呢?ans=-(a*x^2+c)/x43例exp4_22.m
:求下列代数方程组的解symsxyzf=x^2-y^2+z-10;g=x+y-5*z;h=2*x-4*y+z;[x,y,z]=solve(f,g,h)x=-19/80+19/240*2409^(1/2)-19/80-19/240*2409^(1/2)y=-11/80+11/240*2409^(1/2)-11/80-11/240*2409^(1/2)z=-3/40+1/40*2409^(1/2)-3/40-1/40*2409^(1/2)44[x,y,z]=solve('x^2-y^2+z-10','x+y-5*z','2*x-4*y+z')symsxyzf=x^2-y^2+z-10;g=x+y-5*z;h=2*x-4*y+z;[x,y,z]=solve(f,g,h)454.4.2符号微分方程求解求由eq1,eq2…指定的常微分方程的常数解,参数cond1,cond2…为指定常微分方程的边界条件或初始条件,自变量v如果不指定,将为默认自变量。46或或或y的一阶导数——Dyy的二阶导数——D2yy的n阶导数——
Dny47例exp4_23.m
:dsolve('Dy=a*y')dsolve('Dy=a*y','y(0)=b')ans=C1*exp(a*t)ans=b*exp(a*t)48例:求该方程的解ans=exp(-x)*cos(x)+exp(-x)*sin(x)y=dsolve('D2y+2*Dy+2*y=0','y(0)=1','Dy(0)=0')49X=-C1*cos(t)+C2*sin(t)Y=C1*sin(t)+C2*cos(t)[X,Y]=dsolve('Dx=y,Dy=-x')[X,Y]=dsolve('Dx=y','Dy=-x')50例4-13求解两点边值问题:(1)求解边值问题y=dsolve('x*D2y-3*Dy=x^2','y(1)=0,y(5)=0','x')y=31/468*x^4-1/3*x^3+125/46851(2)观察“解”的图形ezplot(y,[-1,6])holdonplot([1,5],[0,0],'.r','MarkerSize',20)text(1,1,'y(1)=0')text(4,1,'y(5)=0')title(['x*D2y-3*Dy=x^2',',y(1)=0,y(5)=0'])holdoff52534.5
符号数学的简易绘图函数54
4.5.1二维绘图函数
ezplot(f):绘制f(x)的二维图形,坐标范围默认[-2*pi,2*pi]ezplot(f,xmin,xmax):绘制f(x)的二维图形,坐标范围[xmin,xmax].ezpolar(f):极坐标下的二维绘图函数,调用格式与ezplot相同。55例exp4_25_1.m
:绘制函数表达式sinx,x^2,x^2-y^4的二维图形symsxyezplot(sin(x))figureezplot(x^2),gridfigureezplot(x^2-y^4)subplot(1,3,1),ezplot(sin(x)),gridsubplot(1,3,2),ezplot(x^2)subplot(1,3,3),ezplot(x^2-y^4)注意:grid为绘制网格命令56比较ezplot,plotsymsxezplot(sin(x))x=-2*pi:0.1:2*pi;y=sin(x);plot(x,y)plot(x,y,'y+--')57例exp4_27.m
:在极坐标下绘制函数表达式1+cos(t)的二维图形symstezpolar(1+cos(t))58
4.5.2三维绘图函数
ezplot3(x,y,z)
绘制x=x(t),y=y(t),z=z(t)定义的三维曲线,自变量t的范围默认ezplot3(x,y,z,[tmin,tmax])
绘制x=x(t),y=y(t),z=z(t)定义的三维曲线.ezplot3(x,y,z,[tmin,tmax],’animate’)
绘制三维动态轨迹图。59例exp4_28.m
:根据x=sin(t)、y=cos(t)和z=t,绘制三维曲线symst;ezplot3(sin(t),cos(t),t,[0,6*pi])ezplot3(sin(t),cos(t),t,[0,6*pi],'animate')60614.5.3等高线绘图函数ezcontour(f)
绘制由表达式x,y定义的等高线,自变量变化范围默认。ezcontour(f,domain)
绘制由表达式x,y定义的等高线,自变量变化范围由domain确定,domain可以是4x1的矢量,[xmin,xmax,ymin,ymax],也可以是2x1的矢量[min,max],此时x,y的自变量的变化范围一样。62ezcontour(…,n)
绘制等高线时按nxn的网格密度绘图,n缺省值为60填充等高线的简易绘图函数为ezcontourf,其调用格式与ezcontour相同。例4-29例4-30634.5.4网格图绘图函数ezmesh(f)
绘制由表达式f(x,y)定义的网格图。ezmesh(f,domain).ezmesh(x,y,z)
绘制由表达式x=x(s,t),y=y(s,t),z=z(s,t)定义的参数表面网格图,它们的范围默认都为[-2*pi,2*pi]64ezmesh(x,y,t,[smin,smax,tmin,tmax])
绘制由表达式x=x(s,t),y=y(s,t),z=z(s,t)定义的参数表面网格图ezmesh(…,n)
绘制网格图时按nxn网格密度绘图。ezmesh(…,’circ’)以圆盘为自变量域绘制网格图ezmeshc
带等高线网格图的简易绘图函数,调用格式与ezsurf相同。65symsxyezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40)colormap([0.511])例exp4_31.m
:66ezmesh(x*exp(-x^2-y^2),[-2.5,2.5],40,'circ')例exp4_32.m
:674.5.5表面绘图函数ezsurf(f)
绘制由表达式f(x,y)定义的表面图。ezsurf(f,domain)ezsurf(x,y,t)
绘制由表达式x=x(s,t),y=y(s,t),z=z(s,t)定义的参数表面图ezsurf(x,y,t,[smin,smax,tmin,tmax])
绘制由表达式x=x(s,t),y=y(s,t),z=z(s,t)定义的参数表面图68ezsurf(…,n)
绘制表面图时按nxn网格密度绘图。ezsurf(…,’circ’)以圆盘为自变量域绘制表面图ezsurfc带等高线表面图的简易绘图函数,调用格式与ezsurf相同。69symstsx=cos(s)*cos(t);y=cos(s)*sin(t);z=sin(s);ezsurf(x,y,z,[0,pi/2,0,3*pi/2])view(17,40)例exp4_34.m
:70714.6图形化符号函数计算器72图形窗口1--函数f的显示窗口图形窗口2--函数g的显示窗口函数功能的控制窗口funtool图形化符号函数计算器。73输入框:输入参数或控制函数计算器:可进行一系列的函数运算,如函数的微积分,函数的和等744.7Taylor级数计算器
75使用taylortool级数计算器可以非常直观地观察taylor级数展开与原函数的接近程度,以便选择合适的taylor级数taylortool启动图形化的taylor级数计算器7677sin(x)sin(2x)例:78★
作业
P264.24.6
4.879符号矩阵运算数值运算中,所有矩阵运算操作指令都比较直观、简单。例如:a=b+c;a=a*b;A=2*a^2+3*a-5等。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论