




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第6章符 号 计 算参考书参考书 参考 电子工业出版社 MATLAB实用教程郑阿奇主编 P84-114符号计算的特点运算以推理解析的方式进行,因此不受计算误运算以推理解析的方式进行,因此不受计算误差累积问题的困扰;差累积问题的困扰;符号计算,或给出完全正确的封闭解,或给出符号计算,或给出完全正确的封闭解,或给出任意精度的数值解(当封闭解不存在时);任意精度的数值解(当封闭解不存在时);符号计算指令的调用比较简单,与经典教科书符号计算指令的调用比较简单,与经典教科书公式相近;公式相近;计算所需时间较长,有时难以忍受。计算所需时间较长,有时难以忍受。符号对象和符号表达式在在MATLAB中,数值和数
2、值变量用于数值的存储和各种数中,数值和数值变量用于数值的存储和各种数值计算;而符号常数、符号变量、符号函数、符号操作等值计算;而符号常数、符号变量、符号函数、符号操作等则是用来形成符号表达式,严格地按照代数、微积分等课则是用来形成符号表达式,严格地按照代数、微积分等课程中的规则、公式进行计算,并尽可能地给出解析表达结程中的规则、公式进行计算,并尽可能地给出解析表达结果。果。符号对象的生成和使用在进行符号计算时,首先要定义基本的符号对象(可以在进行符号计算时,首先要定义基本的符号对象(可以是常数、变量和表达式),然后利用这些基本符号对象是常数、变量和表达式),然后利用这些基本符号对象去构成新的表
3、达式,并进而从事所需的符号计算。在运去构成新的表达式,并进而从事所需的符号计算。在运算中,凡是由包含符号对象的表达式所生成的衍生对象算中,凡是由包含符号对象的表达式所生成的衍生对象也都是符号对象。也都是符号对象。定义符号对象的指令:f=sym(arg) 把数字、字符串或表达式arg转换为符号对象f。f=sym(argn,flagn) 把数字或表达式argn转换为flagn格式的符号对象f。Arg v=sym(argv,flagv) 按flagv指定的要求把字符串“argv”定义为符号对象argvsym、 symssyms(argv1, argv2, argvk) 把字符串“argv1”、 “a
4、rgv2”、 “argvk”定义为符号对象syms argv1, argv2, argvk 同上,为其简洁形式。定义符号对象Fsym用于创建单个符号变量;Fsyms可以一次创建任意多个符号变量。在定义符号变量时可以指定其格式。各命令中的格式如下:1、f=sym(agrn, flagn)当argn是数值或数值表达式时,flagn可取以下选项:d 最接近的十进制浮点精确表示e (数值计算时)带估计误差的有理表示f 十六进制浮点表示r (缺省设置),最接近有理表示! 所谓“有理”表示,是指用两个正整数p,q构成的p/q,p*pi/q,sqrt(p),2q,10q等形式之一表示。如:f=sym(12.
5、56,r) 格式说明2、argv=sym(agrv, flagv)当argv是字符时,flagv可取以下“限定性”选项:positive 限定argv为“正、实”符号变量real 限定argv为“实”符号变量格式说明unreal 限定argv为“非实”符号变量示例a1=1/3,pi/7,sqrt(5),pi+sqrt(5) % a1为数值常数为数值常数a2=sym(1/3,pi/7,sqrt(5),pi+sqrt(5) % 最接近的有理表示。最接近的有理表示。a3=sym(1/3,pi/7,sqrt(5),pi+sqrt(5),e) % 带误差估计的有理表示带误差估计的有理表示a4=sym(1
6、/3,pi/7,sqrt(5),pi+sqrt(5) % 绝对准确的符号数值表示绝对准确的符号数值表示a24=a2-a4 符号常数形成中的差异:!数组a2中的前3个元素,恰为“有理”表示的基本形式,所以一定是准确的;而第4个元素就不是准确的,而只是一种近似。这可以从a24看出。比较不同输入产生的矩阵的异同a1=sym(1/3,0.2+sqrt(2),pi)a2=sym(1/3,0.2+sqrt(2),pi)a3=sym(1/3 0.2+sqrt(2) pi)a1_a2=a1-a2 此例的结果为:a1 = 1/3, 7269771597999872*2(-52), pia2 = 1/3, 0.2
7、+sqrt(2), pia3 = 1/3, 0.2+sqrt(2), pia1_a2 = 0, 1.4142135623730951010657008737326-2(1/2), 0 建议:在产生符号常数数组时,应优先使用将数值数组放在单引号内,数组元素间一定要用“逗号”分隔。把字符表达式转换为符号变量y=sym(2*sin(x)*cos(x) 把字符表达式转换为符号变量;y=simple(y) 按规则把已有的Y符号表达式化成最简形式; y = 2*sin(x)*cos(x)y = sin(2*x) 符号运算验证syms fai1 fai2;y=simple(sin(fai1)*cos(fai
8、2)-cos(fai1)*sin(fai2) 用符号计算验证三角等式: sincoscossinsin()121212求矩阵的行列式值、逆和特征根 syms a11 a12 a21 a22;A=a11,a12;a21,a22DA=det(A),IA=inv(A),EA=eig(A) 求矩阵的行列式值、逆和特征根: Aaaaa11122122验证积分syms A t tao w;yf=int(A*exp(-i*w*t),t,-tao/2,tao/2);Yf=simple(yf) 验证积分: 22sin2/2/AdtAeti符号计算中的算符和基本函数MATLABMATLAB中用来构成符号计算表达式
9、的算符和基本函数,无中用来构成符号计算表达式的算符和基本函数,无论在形状、名称上,还是在使用方法上,都与数值计算中论在形状、名称上,还是在使用方法上,都与数值计算中的算符和基本函数几乎完全相同。这无疑给用户编程带来的算符和基本函数几乎完全相同。这无疑给用户编程带来了极大的方便。了极大的方便。 1.1.基本运算符:基本运算符:F算符算符“”、“”、“*”、“”、“/”、“”分别实分别实现矩阵的加、减、乘、左除、右除、求幂运算现矩阵的加、减、乘、左除、右除、求幂运算;F算符算符“ .* ”、 “.”、“./”、“.”分别实现元素对元素分别实现元素对元素的数组乘、左除、右除、求幂运算的数组乘、左除、
10、右除、求幂运算;F算符算符“ ”、 “ .”、分别实现矩阵的共轭转置、非共轭、分别实现矩阵的共轭转置、非共轭转置运算转置运算;符号计算中的算符和基本函数2 2、关系运算符:、关系运算符:F在符号对象的比较中,没有在符号对象的比较中,没有“大于大于”、“大于等于大于等于”、“小于小于”、“小于等于小于等于”的概念,而只有是否的概念,而只有是否“等于等于”的概念;的概念;F算符算符“ ”、 “” 分别对算符两边的对象进行分别对算符两边的对象进行“相等相等”、“不等不等”的比较。的比较。! 当事实为当事实为“真真”时,比较结果用时,比较结果用“1”表示;表示; 当事实为当事实为“假假”时,比较结果用
11、时,比较结果用“0”表示;表示;符号计算中的算符和基本函数3 3、三角函数、双曲函数及它们的反函数:、三角函数、双曲函数及它们的反函数:F除除atan2仅能用于数值计算外仅能用于数值计算外,其余的三角函数(如sin)、双曲函数(如cosh)及它们的反函数(如asin、acosh),无论在数值计算中还是在符号计算中,它们的使用方法均相同;4 4、指数、对数函数:、指数、对数函数:F在数值、符号计算中,函数sqrt、exp、expm的使用方法完全相同。F至于对数函数:符号计算中只有自然对数log(经典教材中一般用ln),而没有数值计算中的log2、log10。符号计算中的算符和基本函数5 5、复数
12、函数:、复数函数:F涉及复数的共轭conj、求实部real、求虚部imag和求模abs函数,在复数计算、数值计算中的使用方法相同。F注意:在符号计算中,MATLAB没有提供求相位角的命令。符号计算中的算符和基本函数6 6、矩阵代数指令:、矩阵代数指令:F在符号计算中,MATLAB提供的常用矩阵代数指令有:diag、triu、tril、inv、det、rank、rref、null、colspace、poly、expm、eig、svd。它们的用法几乎与数值计算中的情况完全一致,只有svd稍微不同。F在数值计算中,U,S,V=svd(A)指令运行后,能得到奇异值阵S和左右奇异向量阵U、V。F在符号计
13、算中,使用该指令时要注意:v如果A阵含有非常数的自由变量, U,S,V=svd(A)指令将不能使用,只能使用S=svd(A)。v如果A阵不含自由变量,那么 U,S,V=svd(A)指令将给出32位精度的数值形式的符号解。3、识别对象类别的指令数值计算对象、符号计算对象、字符串对象是MATLAB中最常遇到的数据对象。它们遵循着各自不同的运算法则,但有时在外形上却十分相似。为管理和使用方便,MATLAB向用户提供了一些识别不同数据对象的指令。常用的有:class、isa、whos等。数据对象及其识别指令的使用生成 3 种不同类型的矩阵,给出不同的显示形式:cleara=1;b=2;c=3;d=4;
14、Mn=a,b;c,dMc=a,b;c,dMs=sym(Mc) Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d Ms是一个符号变量,它与前面各变量无关。定义字符串,其中的a,b,c,d与前面输入的数值变量无关利用已赋值变量构成数值矩阵产生4个数值变量数据对象及其识别指令的使用3 种矩阵的大小不同:SizeMn=size(Mn),SizeMc=size(Mc),SizeMs=size(Ms) SizeMn = 2 2SizeMc = 1 9SizeMs = 2 2 Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d 数据对象及其识别指令的使用用c
15、lass获得各矩阵的类别:CMn=class(Mn),CMc=class(Mc),CMs=class(Ms) CMn = doubleCMc = charCMs = sym Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d 数据对象及其识别指令的使用用isa判断各矩阵的类别(若返回1,表示判断正确):isa(Mn,double),isa(Mc,char),isa(Ms,sym) ans = 1ans = 1ans = 1 Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d 数据对象及其识别指令的使用利用whos观察内存变量的类别和其它属性:wh
16、os Mn Mc Ms Name Size Bytes Class Mc 1x9 18 char array Mn 2x2 32 double array Ms 2x2 408 sym object Grand total is 21 elements using 458 bytes Mn = 1 2 3 4Mc =a,b;c,dMs = a, b c, d 符号表达式中自由变量的确定为符号操作和计算的需要,MATLAB向用户提供了一个findsym指令,可实现对表达式中所有自由符号变量或指定数目的独立自变量的自动认定。MATLAB指令:Ffindsym(EXPR) % 确认表达式EXPR中所
17、有“自由”符号“变量”Ffindsym(EXPR,N) %从表达式EXPR中确认出靠x最近的N个独 立自由变量v注意:1.EXPR可以是符号矩阵。此时,该指令对自由变量的确认是对整个矩阵进行的,而不是对矩阵元素逐个进行的。2.注意字母的大小写,大写字母离小写x的距离总大于所有小写字母离x的距离 。示例:对独立自由符号变量的自动辨认生成符号变量:syms a b x X Y;k=sym(3);z=sym(c*sqrt(delta)+y*sin(theta);EXPR=a*z*X+(b*x2+k)*Y; 找出EXPR中的全部自由符号变量:findsym(EXPR)ans =X, Y, a, b,
18、c, delta, theta, x, y K为常数符号,不是“自由”的;z不是“独立”的除此之外,所有独立符号变量都被列出!示例:对独立自由符号变量的自动辨认在EXPR中确定一个自由符号变量:findsym(EXPR,1) ans = x 在EXPR中确定2个和3个自由符号变量:findsym(EXPR,2),findsym(EXPR,3) ans =x,yans =x,y,theta EXPR中全部自由符号变量: X, Y, a, b, c, delta, theta, x, y示例:对独立自由符号变量的自动辨认findsym确定自由变量是对整个矩阵进行的,而不是对矩阵元素逐个进行的 :s
19、yms a b t u v x y;A=a+b*x,sin(t)+u;x*exp(-t),log(y)+vfindsym(A,1) A = a+b*x, sin(t)+u x*exp(-t), log(y)+vans =Xfindsym(A)ans =a, b, t, u, v, x, y 符号表达式和符号函数的操作集中介绍涉及符号运算中因式分解、展开、化简,以及提高符号表达式可读性的操作指令。具体如下:Fcollect(EXPR,v) % 对EXPR表达式中指定的符号对象v的同幂项 系数进行合并。默认是合并x的同幂项系数Fexpand(EXPR) % 对EXPR表达式进行多项式、三角函数、指
20、 数、对数函数等展开Ffactor(EXPR) % 对EXPR表达式(或正整数)进行因式(或 因子)分解符号表达式和符号函数的操作Fhorner(EXPR) % 把多项式EXPR分解成嵌套形式Fn,d=numden(EXPR) % 提取表达式EXPR的最小分母公因式d和相 应的分子多项式nFsimplify(EXPR) % 运用多种恒等式转换对EXPR表达式进行综 合化简Fsimple(EXPR) % 运用包括simplify在内的各种指令把EXPR表 达式转换成最简短形式Fpretty(EXPR) % 以习惯的“书写”方式显示EXPR表达式符号表达式和符号函数的操作F说明: 在以上的各指令中
21、,EXPR也可以是符号矩阵,此时,这些指令将对该矩阵的元素逐个进行操作。示例:按不同的方式合并同幂项(合并同类项)EXPR=sym(x2+x*exp(-t)+1)*(x+exp(-t);expr1=collect(EXPR)expr2=collect(EXPR,exp(-t) expr1 =x3+2*exp(-t)*x2+(1+exp(-t)2)*x+exp(-t)expr2 =x*exp(-t)2+(2*x2+1)*exp(-t)+(x2+1)*x 示例:factor指令的使用(因式分解)F除x外不含其它自由变量的情况syms x;f1=x4-5*x3+5*x2+5*x-6;factor(f
22、1) ans =(x-1)*(x-2)*(x-3)*(x+1) F含其它自由变量的情况syms a x; f2=x2-a2;factor(f2)ans =(x-a)*(x+a) F对正整数的质数分解factor(1025) ans = 5 5 41 示例:对多项式进行嵌套型分解clear;syms a x;f1=x4-5*x3+5*x2+5*x-6;horner(f1) ans =-6+(5+(5+(-5+x)*x)*x)*x 示例:numden指令的使用F写出矩阵 各元素的分子、分母多项式。syms x;A=3/2,(x2+3)/(2*x-1)+3*x/(x-1);4/x2,3*x+4;n,
23、d=numden(A)pretty(simplify(A)pretty(simplify(n./d) 课后作业课后作业434131232322xxxxxx示例:化简指令的使用F化简:syms x;f=(1/x3+6/x2+12/x+8)(1/3);sfy1=simplify(f)sfy2=simplify(sfy1) sfy1 =(2*x+1)3/x3)(1/3)sfy2 =(2*x+1)3/x3)(1/3) 32381261xxxf1.运用simplify化简(即使多次使用simplify也不能得到最简形式):示例:化简指令的使用F化简:syms x;f=(1/x3+6/x2+12/x+8)
24、(1/3);g1=simple(f)g2=simple(g1) g1 = (2*x+1)/xg2 = 2+1/x 32381261xxxf2、运用simple化简:Simple给出的简化形式比simplify给出的更短;多次使用simple指令,可以找到最少字母的简化式。示例:化简指令的使用F化简:syms x;ff=cos(x)+sqrt(-sin(x)2);ssfy1=simplify(ff),ssfy2=simplify(ssfy1) ssfy1 = cos(x)+(-sin(x)2)(1/2)ssfy2 = cos(x)+(-sin(x)2)(1/2) 1.运用simplify化简:x
25、xff2sincos示例:化简指令的使用syms x;ff=cos(x)+sqrt(-sin(x)2);gg1=simple(ff)gg2=simple(gg1) gg1 = cos(x)+i*sin(x)gg2 = exp(i*x) 2、运用simple化简:再次表明:Simple与simplify的区别;多次使用simple指令,可以得到最简表达。F化简:xxff2sincos符号函数的求反所谓“求反”:是指对于函数f(x),求一个函数g(.),使得g(f(x)=x成立。具体如下:Fg=finverse(f,v) % 对指定自变量为v的函数f(v),求反函数g(v)Fg=finverse(
26、f) % 对缺省自变量求反函数g。默认自变量由 findsym确定。例:求 的反函数。2xf 2xf syms x;f=x2;g=finverse(f)符号函数的复合所谓“复合”:是指对于函数f(x)和x=g(y),构作一个函数f(g(y)。具体如下:Ffg=compose(f,g,v,w,t) % 对f(v)和v=g(w)求复合函数fg=f(g(w)|w=t说明:Ffg=compose(f,g) % 对f()和g()求复合函数fg=f(g()1. v、w分别是对函数f和g指定的自变量。t 是所得复合函数的自变量符号;2. Compose(f,g)是compose(f,g,v,w,t)的缺省形
27、式。此时,v,w都是由findsym自动对函数f和g进行辨认而定的自变量。示例:符号函数的复合syms x;f=x2;g=finverse(f) fg=simple(compose(g,f) %验算验算g(f(x)是否等于是否等于x 1、验证所求的反函数:示例:符号函数的复合syms x y u fai t;f=x/(1+u2);g=cos(y+fai);fg1=compose(f,g) fg1 =cos(y+fai)/(1+u2) 2、求:)cos( ,12faiyguxf的复合函数。F自变量由机器确定fg2=compose(f,g,u,fai,t) fg2 =x/(cos(y+t)2+1)
28、 F指定自变量置换及其应用自动执行的子表达式置换指令符号计算的结果显得繁冗的一个重要原因是:有些子表达式会多次出现在不同的地方。为了使表达式简洁易读,MATLAB提供了如下指令:RS, ssubsubexpr(S, ssub)功能:引用符号变量ssub置换子表达式,重写S为RS。示例:子表达式的置换表示clear allsyms a b c d W;V,D=eig(a b;c d)RVD,W=subexpr(V;D,W)置换及其应用通用置换指令FRES=subs(ES, old, new) % 用new置换ES中的old后产生RESFRES=subs(ES, new) % 用new置换ES中的
29、自由变量后产生RESFRES=subs(ES) % 用当前内存中已知值置换ES中的所有可能 的同名变量后产生RES示例:subs的置换规则1、产生符号函数syms a x;f=a*sin(x)+5; 2、符号变量置换f1=subs(f,sin(x),sym(y) 3、符号常数置换f2=subs(f,a,x,2,sym(pi/3) 4、双精度数值置换 (即所有自由变量被双精度数值取代。取a=2,x=pi/3)f3=subs(f,a,x,2,pi/3) 示例:subs的置换规则5、数值数组置换之一(取a=2,x=0:pi/6:pi)f4=subs(subs(f,a,2),x,0:pi/6:pi)
30、说明:1、f1,f2都是符号变量;f3,f4,f5都是双精度数值变量; 6、数值数组置换之二(取a=0:6,x=0:pi/6:pi)f5=subs(f,a,x,0:6,0:pi/6:pi) 2、指令subs(ES,old,new)中的old可取:串表达式、符号变量、元胞数组。符号对象与其它数据对象之间的转换数值、符号、字符是MATLAB中的3种不同的数据类型。MATLAB为每种数据类型提供了各自特定的生成指令和操作指令。为实现不同数据类型的交互转换,MATLAB向用户提供了一系列的转换指令。符号、数值、字符串间的转换指令符号多项式、系数向量、字符串多项式之间的转换指令示例1、符号、数值间的转换
31、phi=sym(1+sqrt(5)/2) %把数值对象转换成符号常数double(phi)%把符号常数转换为双精度存储的数值phi =7286977268806824*2(-52)ans = 1.6180 示例2、各种多项式表示形式之间的转换 syms x;f=x3+2*x2-3*x+5; 生成符号多项式生成符号多项式sy2p=sym2poly(f) 由符号多项式产生数值系数行向量由符号多项式产生数值系数行向量p2st=poly2str(sy2p,x) 把系数行向量变成易读形式把系数行向量变成易读形式p2sy=poly2sym(sy2p) 把数值系数行向量转换为符号多项式把数值系数行向量转换为
32、符号多项式pretty(f,x) 显示符号多项式的易读表示形式显示符号多项式的易读表示形式sy2p = 1 2 -3 5p2st = x3 + 2 x2 - 3 x + 5p2sy =x3+2*x2-3*x+5 3 2 x + 2 x - 3 x + 5 符号微积分符号序列的求和MATLAB指令:指令:对于数学上的通式求和对于数学上的通式求和 问题,可用问题,可用MATLAB的求的求和指令解决。和指令解决。bavvf)(S=symsun(f,v,a,b)求通式求通式 f 在指定变量在指定变量 v 取遍取遍 a,b 中所有整数时的和。中所有整数时的和。说明:说明:Ff是矩阵时,求和是对元素逐个求
33、和,但自变量定义在整是矩阵时,求和是对元素逐个求和,但自变量定义在整个矩阵上;个矩阵上;FV缺省时,缺省时,f中的自变量由中的自变量由findsym自动辨认;自动辨认;b可以取有限可以取有限整数,也可以取无穷大;整数,也可以取无穷大;Fa,b可同时缺省,此时默认求和的自变量区间为可同时缺省,此时默认求和的自变量区间为0, v-1。示例:符号序列的求和求 103ttkt12) 1() 12(1kkkk和syms k t;f1=t k3;f2=1/(2*k-1)2,(-1)k/k;s1=simple(symsum(f1)s2=simple(symsum(f2,1,inf) s1 = 1/2*t*(
34、t-1), k3*ts2 = 1/8*pi2, -log(2) f1的自变量被确认为tf 2的自变量被确认为k符号微分求导的MATLAB指令:求导数、高阶导数、偏导数和多元向量函数的雅可比矩阵是数学分析的重要内容。dfdvn=diff(f,v,n)求函数 f 对变量 v 的n阶导数 。说明:Ff是矩阵时,求导是对元素逐个进行,但自变量定义在整个矩阵上;Fv缺省时,f中的自变量由findsym自动辨认;n缺省时,默认n1; nndvvfd示例syms a t x;f=a,t3;t*cos(x), log(x);df=diff(f)dfdt2=diff(f,t,2)dfdxdt=diff(diff
35、(f,x),t) df = 0, 0 -t*sin(x), 1/xdfdt2 = 0, 6*t 0, 0dfdxdt = 0, 0 -sin(x), 0 求: xxttadxdlncos3xxttalncos3dxdtd222dtdxxttalncos3、和求矩阵 f 对 x 的导数求矩阵 f f 对 t 的导数求矩阵 f f 对 t 的导数雅可比(Jacobian)矩阵求雅可比矩阵的MATLAB指令:F如果fjac=jacobian(f,v)求多元向量函数 f 的雅可比矩阵。 vfvfvfn1mvvv,1和,则f的雅可比矩阵为:mnnmvfvfvfvf1111示例syms x1 x2 x3;
36、f=x1*exp(x2);x2;cos(x1)*sin(x2);v=x1 x2;fjac=jacobian(f,v) fjac = exp(x2), x1*exp(x2) 0, 1 -sin(x1)*sin(x2), cos(x1)*cos(x2) 求: 的雅可比矩阵。 )sin()cos(21212xxxexfx符号积分积分有不定积分、定积分和重积分等,一般说来,积分比微分更难求取。与数值积分相比,符号积分指令简单、适应性强,但是可能占用机器时间很长。一、通用积分指令求积指令的使用格式:Intf=int(f,v) 给出f对指定变量v的不定积分(不带积分常数)Intf=int(f,v,a,b)
37、 给出f对指定变量v的定积分求积指令的使用格式Intf=int(f,v) 给出f对指定变量v的不定积分(不带积分常数)Intf=int(f,v,a,b) 给出f对指定变量v的定积分说明:1、与symsum、diff指令一样,当f是矩阵时,积分将对元素逐个进行;2、v缺省时,积分对findsym确认的变量进行;3、a,b分别是积分的上、下限,容许取任何值或符号表达式。示例dxxxbxaxsin12求 。 演示:积分指令对符号函数矩阵的作用。 syms a b x;f=a*x,b*x2;1/x,sin(x);disp(The integral of f is);pretty(int(f) The
38、integral of f is 2 3 1/2 a x 1/3 b x log(x) -cos(x) 示例求 。演示如何使用mfun指令获取一组积分值。 1、求一般积分结果 F1=int(1/log(t),t,0,x) F1 = -Ei(1,-log(x) xdtt0ln12、利用利用mfun指令求指令求x=0.5,0.6,07,0.8,0.9时的定积分时的定积分 x=0.5:0.1:0.9 F115=-mfun(Ei,1,-log(x) x = 0.5000 0.6000 0.7000 0.8000 0.9000 F115 = -0.3787 -0.5469 -0.7809 -1.1340
39、 -1.7758 示例求 。注意:内积分上下限都是函数。syms x y zF2=int(int(int(x2+y2+z2,z,sqrt(x*y), x2*y),y,sqrt(x),x2),x,1,2)VF2=vpa(F2) 2122222)(xxyxxydzdydxzyx代数方程组的求解线性方程组的符号解矩阵计算是求解线性方程组最简便有效的方法。在矩阵计算是求解线性方程组最简便有效的方法。在MATLAB和相应的符号工具箱(和相应的符号工具箱(Symbolic Toolbox)中,不管数据对象是数值还是符号,实现矩阵运算的指中,不管数据对象是数值还是符号,实现矩阵运算的指令形式几乎完全相同。令
40、形式几乎完全相同。示例求线性方程组: 的解。1841022dnpqpndqpqdnqpnd解:符号解的指令A=sym(1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1);b=sym(0;10;0;1);X1=Ab X1 = 1 8 8 9 示例解:数值解的指令A=1 1/2 1/2 -1;1 1 -1 1;1 -1/4 -1 1;-8 -1 1 1;b=0;10;0;1;X1=Ab X1 = 1.0000 8.0000 8.0000 9.0000一般代数方程组的解一般代数方程组包括:线性(Linear)、非线性(Nonlinear)和超越方程(Transc
41、edental equation)等,求解指令是solve。当方程组不存在符号解时,若又无其它自由参数,则solve将给出数值解。Solve指令的使用格式:FS=solve(eq1,eq2,eqn,v1,v2,vn)求方程组关于指定变量的解(推荐格式)FS=solve(exp1,exp2,expn,v1,v2,vn)求方程组关于指定变量的解(可用格式)一般代数方程组的解说明:Feq1,eq2,eqn或是字符串表达的方程,或是字符串表达式;v1,v2,vn是字符串表达的求解变量名。Fexp1,exp2,expn只能是符号表达式;v1,v2,vn是求解的符号变量;F如eq1,eq2,eqn是不含“
42、等号”的表达式,则指令是对eq1=0,eq2=0,eqn=0求解;FS是一个构架数组,如要显示求解结果,必须采用S.v1、S.v2、S.vn的方式;F在得不到“封闭型解析解”时,给出数值解。示例求解方程组 关于y,z的解。S=solve(u*y2+v*z+w=0,y+z+w=0,y,z)disp(S.y),disp(S.y),disp(S.z),disp(S.z)S = y: 2x1 sym z: 2x1 symS.y -1/2/u*(-2*u*w-v+(4*u*w*v+v2-4*u*w)(1/2)-w -1/2/u*(-2*u*w-v-(4*u*w*v+v2-4*u*w)(1/2)-wS.z
43、 1/2/u*(-2*u*w-v+(4*u*w*v+v2-4*u*w)(1/2) 1/2/u*(-2*u*w-v-(4*u*w*v+v2-4*u*w)(1/2) uyvzw20yzw 0说明F以下格式的指令都能给出关于y,z的正确解: S=solve(u*y2+v*z+w=0,y+z+w=0,z,y) S=solve(u*y2+v*z+w,y+z+w,z,y) Syms y z u v w; S=solve(u*y2+v*z+w,y+z+w,z,y) y,z=solve(u*y2+v*z+w=0,y+z+w=0,y,z)F以下格式的指令不能给出关于y,z的正确解: y,z=solve(u*y2
44、+v*z+w=0,y+z+w=0) S=solve(u*y2+v*z+w=0,y+z+w=0)给出的是关于w,y的解说明FSolve指令求解时,总是按照字母顺序来排列解的次序,因此一旦指令中输出参数的字母次序混乱,结果就不正确。 z,y=solve(u*y2+v*z+w=0,y+z+w=0,y,z)F以下格式中包含符号方程,因此无法运行:将y、z的解分别赋给z和y,造成混乱。 z,y=solve(u*y2+v*z+w=0,y+z+w=0,z,y) Syms y z u v w; S=solve(u*y2+v*z+w0,y+z+w0,z,y)示例求 的解。clear all,syms x;s=s
45、olve(x+2)x=2,x) s =.69829942170241042826920133106081 2)2(xx符号微分方程的求解求解微分方程符号解的一般指令是:dsolve。dsolve指令的使用格式:S=dsolve(a_1,a_2,a_n)F输入参数包括3部分内容:微分方程、初始条件、指定独立变量。其中微分方程是必不可少的输入内容。说明:F输入参数必须以字符形式编写。F关于独立变量的规定:若要指定独立变量,则总是由全部输入参数a_1,a_2,a_n中的最后一个参数a_n定义;若不对独立变量加以专门的定义,则默认小写字母t为独立变量。符号微分方程的求解F微分方程的写法:说明:F初始条
46、件的规定:当y是“因变量”时,用“Dny”表示“y的n-阶导数”。如Dy表示形如 的一阶导数;Dny表示形如 的n-阶导数。nndtyddtdy初始或边界条件写成y(a)=b,Dy(c)=d等。当初始条件数少于微分方程数时,在所得的解中将出现任意常数符C1、C2、。示例求 , 的解。S=dsolve(Dx=y,Dy=-x);disp(blanks(12),x,blanks(21),y)disp(S.x,S.y) x y cos(t)*C1+sin(t)*C2, -sin(t)*C1+cos(t)*C2 xdtdyydtdx示例求 的解。y=dsolve(x*D2y-3*Dy=x2,y(1)=0
47、,y(5)=0,x) y =-1/3*x3+125/468+31/468*x4 0)5(, 0) 1 (,32 yyxyyx示例求 的解。S=dsolve(Df=3*f+4*g,Dg=-4*f+3*g,f(0)=0,f(3)=1)S.f,S.g S = f: 1x1 sym g: 1x1 symans =exp(3*t)*sin(4*t)/sin(12)/(cosh(9)+sinh(9)ans =exp(3*t)*cos(4*t)/sin(12)/(cosh(9)+sinh(9) 1)0(, 0)0(,34,43gfgfdxdggfdxdf符号求极限函数的极限在高等数学中占有重要的地位。MAT
48、LAB中提供了求极限的命令:limit。求极限的命令limit的调用格式有:Flimit(S,v)其中S为表达式,v为指定变量。该命令的功能:求当v0时表达式S的极限值。Flimit(S)其中S为表达式。该命令的功能:求当系统的默认变量0时表达式S的极限值。Flimit(F,x,a)该命令的功能:求当xa时表达式F的极限值。符号求极限Flimit(F,x,a,right)功能:求当xa+时表达式F的极限值,即右极限。Flimit(F,x,a,left)功能:求当xa-时表达式F的极限值,即左极限。示例求syms x yf=sin(x)/x;g=sin(x+2*y);fx=limit(f)gx=
49、limit(g,y,0) fx = 1gx = sin(x)2sin(lim)(0yxxgyxxxfxsin)(lim0和示例求syms x hf=(sin(x+h)-sin(x)/h;fx=limit(f,h,0)fx = cos(x)hxhxh)sin()sin(lim0示例求syms xfx=limit(1/x,x,0,left)gx=limit(1/x,x,0,right) fx = -infgx = infxxgx1lim)(0 xxfx1)(lim0和级数展开讲述泰勒级数展开、傅立叶级数展开的MATLAB实现。1、一元函数的泰勒级数展开 MATLAB提供的taylor命令可以实现一
50、元函数的泰勒级数展开。其格式为: taylor(f):求f关于默认变量的5阶近似麦克劳林多项式。 taylor(f,n):求f关于默认变量的n-1阶近似麦克劳林多项式。 taylor(f,v):求f关于变量v的5阶近似麦克劳林多项式。 taylor(f,a):前三种命令格式求出的结果均是关于自变量 等于0时的展式;而该命令则可求出函数f在 自变量等于a处的泰勒展式。示例试用taylor(f)命令求 e-x 的泰勒展式。syms xtaylor(exp(-x) ans = 1-x+1/2*x2-1/6*x3+1/24*x4-1/120*x5示例syms a x y u vf=a*sin(x)*yx+u*cos(v);g=a*exp(v);tf=taylor(f)tg=taylor(g)tf = u*cos(v)+a*x+a*log(y)*x2+(1/2*a*log(y)2- 1/6*a)*x3+(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 苏州市重点中学2024-2025学年数学高二下期末监测试题含解析
- 天津开发区第一中学2025年高二下物理期末考试模拟试题含解析
- 浙江省杭州二中2025届物理高二第二学期期末质量跟踪监视试题含解析
- 电力设备采购人员保密及竞业禁止合同范本
- 储油罐租赁与油气市场分析服务合同
- 酒店业财务出纳责任保证合同
- 2024年厦门银行重庆分招聘笔试真题
- 2024年陇南市青少年军校招聘笔试真题
- 加油站操作员中级工练习试题
- 掘进机司机练习试题附答案
- 立方米卧式浓硫酸储罐设计
- 三乙胺安全标签
- GB/T 4490-2021织物芯输送带宽度和长度
- GB/T 28650-2012公路防撞桶
- GB/T 17793-1999一般用途的加工铜及铜合金板带材外形尺寸及允许偏差
- ICU常见检查项目及课件
- 井下作业修井防喷演习手动双闸板防喷器课件
- 土地荒漠化的防治(公开课)课件
- MSA量测系统分析RMSA量测系统分析课件
- 中考备考应对中考历史学科的复习策略和解题技巧课件
- 思想道德修养与法律基础(完整版PPT)
评论
0/150
提交评论