工程优化设计与MATLAB实现第二讲2.pptx
2、MATLAB的符号(fho)运算 matlab 不仅具有数值运算功能,还开发(kif)了在matlab环境下实现符号计算的工具包Symbolic、Math Toolbox。符号计算是matlab数值运算的扩展,在运算过程中以符号表达式或符号矩阵为运算对象,对象是一个字符,数字也被当作(dn zu)字符来处理。第一页,共34页。符号运算(yn sun)的功能o符号表达式、符号矩阵的创建o符号线性代数(xin xn di sh)o因式分解、展开和简化o符号代数方程求解o符号微积分o符号微分方程第二页,共34页。o 运算对象可以是没赋值的符号变量o 可以获得任意(rny)精度的解oSymbolic Math Toolbox符号运算工具包通过调用Maple软件实现符号计算的。omaple软件主要功能是符号运算,它占据符号软件的主导地位。符号(fho)运算的特点第三页,共34页。1.什么是符号运算与数值运算的区别 数值运算中必须先对变量赋值,然后才能参与运算。符号运算无须事先对独立(dl)变量赋值,运算结果以标准的符号形式表达。第四页,共34页。2.符号(fho)变量与符号(fho)表达式f=sin(x)+5xf 符号变量名sin(x)+5x 符号表达式 符号标识符号表达式一定(ydng)要用 单引号括起来matlab才能识别。的内容可以是符号表达式,也可以是符号方程。第五页,共34页。例:f1=ax2+bx+c 二次三项式 f2=ax2+bx+c=0 方程 f3=Dy+y2=1 微分方程符号表达式或符号方程可以赋给符号变量,以后调用方便(fngbin);也可以不赋给符号变量直接参与运算第六页,共34页。o用字符串直接创建矩阵o模仿matlab数值矩阵的创建方法o需保证(bozhng)同一列中各元素字符串有相同的长度。o例:A=a,2*b;3*a,0 o A=o a,2*bo 3*a,03.符号(fho)矩阵的创建第七页,共34页。o用函数sym创建矩阵(symbolic)o 命令格式(g shi):A=sym()o 符号矩阵内容同数值矩阵o 需用sym指令定义o 需用 标识第八页,共34页。例如:A=sym(a,2*b;3*a,0)A=a,2*b 3*a,0 这就完成了一个符号(fho)矩阵的创建。注意:符号(fho)矩阵的每一行的两端都有方括号,这是与 matlab数值矩阵的一个重要区别。第九页,共34页。o符号矩阵的修改(xigi)o 可用、键找到所要修改(xigi)的矩阵,直接修改(xigi)o 用A1=subs(A,new,old)来修改(xigi)第十页,共34页。例如例如(lr):A=a,2*b 3*a,0A(2,2)=4*bA=a,2*b 3*a,4*bA2=subs(A,c,b)A2=a,2*c 3*a,4*c 第十一页,共34页。o符号矩阵(j zhn)与数值矩阵(j zhn)的转换o将数值矩阵(j zhn)转化为符号矩阵(j zhn)o 函数调用格式:sym(A)o A=1/3,2.5;1/0.7,2/5o A=o sym(A)o ans=o 1/3,5/2o 10/7,2/5第十二页,共34页。v将符号矩阵转化(zhunhu)为数值矩阵v 函数调用格式:numeric(A)v A=v 1/3,5/2v 10/7,2/5v numeric(A)v ans=第十三页,共34页。1.符号矩阵运算2.数值运算中,所有矩阵运算操作指3.令都比较直观、简单。例如:a=b+c;4.a=a*b;A=2*a2+3*a-5等。5.而符号运算就不同了,所有涉及符6.号运算的操作都有专用函数(hnsh)来进行。二、符号(fho)运算第十四页,共34页。例1:f=2*x2+3*x-5;g=x2+x-7;syms x f=2*x2+3*x-5;g=x2+x-7;h=f+g h=3*x2+4*x-12例2:f=cos(x);g=sin(2*x);syms x f=cos(x);g=sin(2*x);f/g+f*g ans=cos(x)/sin(2*x)+cos(x)*sin(2*x)第十五页,共34页。2.因式(ynsh)的分解、展开、化简ofactor函数的功能为:把多项式S分解为多个(du)因式,各多项式的系数均为有理数。格式为:o factor(s)oexpand函数的功能为:把多项式和初等函数的符号展开,也可以展开三角函数,指数和对数函数。格式为:expand(s)osimple函数的功能为:搜索符号表达式的最简形式。格式为:simple(s)第十六页,共34页。例3:syms a x;f1=x5*x3+5*x2+5*x-6;factor(f1)ans=(x-1)*(x-2)*(x-3)*(x+1)例4:syms x factor(x9-1)ans=(x-1)*(x2+x+1)*(x6+x3+1)第十七页,共34页。例5:syms x y;expand(cos(x+y)ans=cos(x)*cos(y)-sin(x)*sin(y)例6:f=sym(cos(x)2+sqrt(x2+2*x+1)+sin(x)2);F=simple(f);F=simple(F)第十八页,共34页。极限(jxin)olimit函数的调用格式为:函数的调用格式为:o(1)limit(f,x,a):求符号函数:求符号函数f(x)的极限值。的极限值。即计算当变量即计算当变量x趋近于常数趋近于常数(chngsh)a时,时,f(x)函数的极限值。函数的极限值。o(2)limit(f,a):求符号函数:求符号函数f(x)的极限值。由的极限值。由于没有指定符号函数于没有指定符号函数f(x)的自变量,则使用的自变量,则使用该格式时,符号函数该格式时,符号函数f(x)的变量为函数的变量为函数findsym(f)确定的默认自变量,即变量确定的默认自变量,即变量x趋近趋近于于a。第十九页,共34页。(3)limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有(mi yu)指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。(4)limit(f,x,a,right):求符号函数f的极限值。right表示变量x从右边趋近于a。(5)limit(f,x,a,left):求符号函数f的极限值。left表示变量x从左边趋近于a。第二十页,共34页。例7 求下列(xili)极限极限(jxin)1:syms a m x;f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a);limit(f,x,a)ans=(1/2*a*exp(sin(a)+1/2*a-exp(tan(a)+1)/a极限(jxin)2:syms x t;limit(1+2*t/x)(3*x),x,inf)ans=exp(6*t)第二十一页,共34页。odiff(f)对缺省变量(binling)求微分odiff(f,v)对指定变量(binling)v求微分odiff(f,v,n)对指定变量(binling)v求n阶微分oint(f)对f表达式的缺省变量(binling)求不定积分oint(f,v)对f表达式的v变量(binling)求不定积分oint(f,v,a,b)对f表达式的v变量(binling)在(a,b)o 区间求定积分第二十二页,共34页。mtaylor(f,n)泰勒(ti l)级数展开ztrans(f)Z变换Invztrans(f)反Z变换Laplace(f)拉氏变换Invlaplace(f)反拉氏变换fourier(f)付氏变换Invfourier(f)反付氏变换第二十三页,共34页。例9:求导数(do sh)syms x%定义(dngy)符号变量diff(sin(x2)%求导运算ans=2*cos(x2)*x第二十四页,共34页。syms x y F=int(int(x*exp(-x*y),x),y)F=1/y*exp(-x*y)第二十五页,共34页。键入(jin r):1/12+1/22+1/32+1/42+syms k symsum(1/k2,1,Inf)%k值为1到无穷大ans=1/6*pi2其结果为:1/12+1/22+1/32+1/42 +=2/6第二十六页,共34页。syms a t x;f=a,t3;t*cos(x),log(x);df=diff(f)dfdt2=diff(f,t,2)dfdxdt=diff(diff(f,x),t)df=0,0 -t*sin(x),1/xdfdt2=0,6*t 0,0dfdxdt=0,0 -sin(x),0 第二十七页,共34页。matlab符号运算能够解一般的线性方程、非线性方程及一般的代数方程、代数方程组。当方程组不存在符号解时,又无其他自由参数(cnsh),则给出数值解。命令格式:solve(f)求一个方程的解Solve(f1,f2,fn)求n个方程的解第二十八页,共34页。例13.f=ax2+bx+c 求解(qi ji)f=a*x2+b*x+c;solve(f)对缺省变量x求解(qi ji)ans=1/2/a*(-b+(b2-4*a*c)(1/2)1/2/a*(-b-(b2-4*a*c)(1/2)计算机格式(g shi)一般(ybn)格式第二十九页,共34页。例14.解方程组 x+y+z=1 x-y+z=2 2x-y-z=1g1=x+y+z=1,g2=x-y+z=2,g3=2*x-y-z=1f=solve(g1,g2,g3)f=solve(x+y+z=1,x-y+z=2,2*x-y-z=1)第三十页,共34页。f=x:1x1 sym y:1x1 sym z:1x1 sym x,y,z=solve(x+y+z=1,x-y+z=2,2*x-y-z=1)disp(f.x),disp(f.y),disp(f.z)x=2/3 y=-1/2 z=5/6第三十一页,共34页。5.符号微分方程求解 用一个函数可以方便地得到微 分方程的符号解符号微分方程求解指令:dsolve命令格式:dsolve(f,g)f 微分方程,可多至12个微分方程的求 解;g为初始条件默认(mrn)自变量为 x,可任意指定自变量t,u等微分方程的各阶导数项以大写字母D表示 第三十二页,共34页。例15.y=dsolve(D2y+2*Dy+2*y=0,y(0)=1,Dy(0)=0)ans=exp(-x)*cos(x)+exp(-x)*sin(x)ezplot(y)方程解y(t)的时间(shjin)曲线图求该方程(fngchng)的解第三十三页,共34页。第三十四页,共34页。