2022年完整word版,MATLAB符号运算 .pdf
《2022年完整word版,MATLAB符号运算 .pdf》由会员分享,可在线阅读,更多相关《2022年完整word版,MATLAB符号运算 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. . 符号运算科学计算包括数值计算和符号计算两种计算,数值计算是近似计算;而符号计算则是绝对精确的计算。符号变量的生成和使用1、符号变量、符号表达式和符号方程的生成(1) 、使用 sym 函数定义符号变量和符号表达式单个符号变量sqrt(2) sym(sqrt(2) %显示精确结果a=sqrt(sym(2) %显示精确结果double(a) sym(2)/sym(3) %显示精确结果2/5+1/3 sym(2/5+1/3) %显示精确结果sym(2)/sym(5)+sym(1)/sym(3) %显示精确结果sym 函数定义符号表达式:单个变量定义法,整体定义法单个变量定义法a=sym(a)
2、b=sym(b) c=sym(c) x=sym(x) f=a*x2+b*x+c 整体定义法f=sym(a*x2+b*x+c) g=f2+4*f-2 (2) 、使用 syms 函数定义符号变量和符号表达式一次可以创建任意多个符号变量syms var1 var2 var3syms a b c x f=a*x2+b*x+c g=f2+4*f-2 (3) 、符号方程的生成函数:数字和变量组陈的代数式方程:函数和等号组成的等式用 sym 函数生成符号方程:equation1=sym(sin(x)+cos(x)=1) 2、符号变量的基本操作(1) 、findsym 函数用于寻找符号变量findsym(f)
3、 :找出 f 表达式中的符号变量findsym(s,n):找出表达式s 中 n 个与 x 接近的变量syms a alpha b x1 y findsym(alpha+a+b) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - . . findsym(cos(alpha)*b*x1+14*y,2) %x1,y findsym(y*(4+3i)+6j) findsym(cos(alpha)*b*x1+14*y,1) %x1 fin
4、dsym(cos(alpha)*b*x1+14*y,3) %x1,y,b (2) 、任意精确度的符号表达式digits 函数设定所用数值的精度digits:在 command window 显示当前设定的数值精度digits(D):设置数值的精度为D D=digits:在 command window 中返回当前设定数值精度digits digits(100) D=digits vpa 函数进行可控精度运算R=vpa(S) :显示符号表达式S在当前精度D 下的值, D 是使用 digits 函数设置的数值精度vpa(S,D):显示符号表达式S在精度 D 下的值, D 不是当前精度值,只是临时设
5、置的r=vpa(pi) r=vpa(pi,1000) q=vpa(hilb(2) q=vpa(hilb(2),6) (3) 、数值型变量与符号型变量的转换形式数值型变量t 转换成符号型变量有理数形式: sym(t)或 sym(t, r) 浮点数形式: sym(t, f ) 指数形式: sym(t,e) 指数精度形式:sym(t,d) t=0.1 sym(t) sym(t,r) sym(t,f) sym(t,e) sym(t,d) 可以通过digits 函数改变精度digits(7) sym(t,d) 也可以用于矩阵,但是矩阵只能转换为有理数形式A=hilb(4) A=sym(A) A=sym(
6、A,d) %报错A=sym(A,e) %报错A=sym(A,f) %报错3、符号表达式(符号函数)的操作(1) 、四则运算(与通常算术式一样)syms x y a b fun1=sin(x)+cos(y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - . . fun2=a+b fun1+fun2 (2) 、合并同类项collect(S,v):将符号矩阵S中所有同类项合并,并以v 为符号变量输出collect(S):使用 fi
7、ndsym 函数规定的默认变量,代替上式的v syms x y collect(x2*y+y*x-x2-2*x) f=-1/4*x*exp(-2*x)+3/16*exp(-2*x) collect(f) (3) 、因式分解horner(P):将表达式P进行因式分解syms x fun1=2*x3+2*x2-32*x+40 horner(fun1) fun2=x3-6*x2+11*x-6 horner(fun2) (4) 、简化simplify(S):将表达式 S中的每个元素都进行简化,即便使用多次simplify 也不一定能得到最简形式syms x fun1=(1/x+7/x2+12/x+8)
8、(1/3) sfy1=simplify(fun1) sfy2=simplify(sfy1) simplify(sin(x)2+cos(x)2) simple(S):使用多种代数方法对S进行简化,显其中最简单的结果R,how=simple(S):R为最简结果, how 为简化方法的字符串s=2*cos(x)2-sin(x)2 simple(s) R how=simple(s) simple(f) (5) 、subs 函数用于替换求值subs 函数可以将符号表达式的符号变量替换为数值变量subs(S) :将 S中自由符号变量用调用函数中的值或是MATLAB工作区间值替换subs(S,new):将
9、S中自由符号变量用数值型变量或表达式new 替换subs(S,old,new):将 S中符号变量old 用 数值型变量或表达式new 替换syms x y f=x2*y+5*x*sqrt(y) subs(f) subs(f,x,3) subs(f,y,3) subs(f,3) %与 subs(f,x,3)结果相同用户没指定被替换的符号变量,对单个字母的变量,MATLAB选择在字母表中与x 接近的字母,若有两个变量离x 一样近,则选择字母表中靠后的那个findsym(f,1) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
10、心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - . . syms s t g=s+t findsym(g,1) %找到 t subs(g,1) %替换为 s+1 多个变量替换syms a b subs(cos(a)+sin(b),a,b,sym(alpha),2) 用矩阵替换syms t x y subs(exp(a*t),a,-magic(2) subs(x*y,x,y,0 1;-1 -1,1 -1;-2 1) (6) 、反函数g=finverse(f):求函数 f 的反函数,返回g 也是符号函数g=finverse(f,v):设定 f 的自
11、变量是v,当 f 包括不止一个变量时最好使用该命令syms x y f=x2+y finverse(f,y) finverse(f) %由于没指明自变量,给出警告syms x f=x2 g=finverse(f) %x2 的反函数不唯一,默认给出正值fg=simple(compose(g,f) %验证反函数正确性(7) 、复合函数compose(f,g):返回 f=f(x),g=g(y)的复合函数f(g(y),x 是 findsym 定义的 f 的符号变量,y 是findsym 定义的 g 的符号变量compose(f,g,z):返回 f=f(x),g=g(y)的复合函数f(g(z),返回函数
12、以z 为自变量compose(f,g,x,z):返回 f(g(z),x 为函数 f 的独立变量compose(f,g,x,y,z):返回 f(g(z),x 为函数 f 的独立变量, y 为函数 g 的独立变量syms x y z t u f=1/(1+x2) g=sin(y) h=xt p=exp(-y/u) compose(f,g) compose(f,g,t) compose(h,g,x,z) compose(h,g,t,z) compose(h,p,x,y,z) compose(h,p,t,u,z) 符号矩阵的生成和运算1、符号矩阵的生成(1) 、使用 sym 函数直接生成符号矩阵a1=
13、sym(1/3 2/3 5/7;9/11 11/13 13/17;17/19 19/23 23/29) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - . . a1=sym(1/3,0.2+sqrt(2),pi;2/7,sin(x),cos(x),log(x);sin(x)2,sin(22*x),exp(x) %长 度 不 一致的行补 0 (2) 、用生成子矩阵的方法生成符号矩阵与字符串矩阵的直接输入法类似,同一列元素长度须相
14、同(不同补0)a=100,cos(x);1/s,x (3) 、由数值矩阵转换为符号矩阵系统首先将自动在MATLAB工作区间将数值型变量转换为符号型变量,用户也可以用sym 函数进行转换M=30 1 1 1;6 1 5 9;9 8 25 4;32 45 62 0 S=sym(M) M1=0.3 0.33 0.333 1/3;3.14 3.142 3.1416 pi;log(2) log(3) log(5) log(7);sin(1) cos(1) tan(1) atan(1) S1=sym(M1) 2、符号矩阵及符号数组的运算(1) 、符号矩阵的四则运算A+B和 A-B同型矩阵可以分别对对应分量
15、进行加减,若 A 与 B 至少有一个为标量,则把标量扩大为与另一个同型的阵列A*B 为线性代数中定义的矩阵乘法AB 实现左除, X=AB 为符号线性方程组A*X=B 的解, AB 近似等于inv(A)*B,X不存在或不唯一,则产生警告,A 可以是非方阵,要求方程组必须是相容的A/B 实现右除, X=B/A 为符号线性方程组X*A=B 的解, B/A 近似等于B*inv(A) ,X 不存在或不唯一,则产生警告,A 可以是非方阵,要求方程组必须是相容的m=sym(x,x2,x*2,1/x) n=sym(2*x,y,x,x2) m+n m-n m*n %出错mn m/n %出错(2) 、符号数组的四
16、则运算若有标量,则扩展为同型阵列.*乘法./右除左除q=sym(3 4 9 6;x y z w;a b c d) p=sym(x 1/x x2 x3;a b c d;5 2 3 6) q.*p q./p q.p r=q*p %矩阵行列不匹配,出错(3) 、矩阵和数组的逆运算A 实现矩阵的Hermition 转置,若 A为复数矩阵,则A 为共轭转置q=sym(3 4 9 6;x y z w;a b c d) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - -
17、- - - - - - - . . q %符号变量具体值不知,只能用conj 给出q. %普通转置(4) 、矩阵和数组的幂运算AB 实现矩阵幂运算,若A 为标量 B 为方阵, AB 用方阵 B 的特征值与特征向量计算数值。若 A、B均为矩阵,则返回错误A.B 实现数组幂运算,若A 与 B 为同型矩阵,则按对应分量进行计算。若A 与 B 中至少有一个为标量,则现将标量扩大为另一个同型的阵列p=sym(x 1/x x2 x3;a b c d;5 2 3 6) q=sym(3 4 9 6;x y z w;a b c d;1 3 5 7) q2 p2 %p 矩阵不为方阵,报错q.2 p.2 (5) 、
18、符号矩阵的秩rank(A):求出方阵A 的线性不相关的独立行和列的个数rank(A,tol):求出比 tol 值大的值的个数,在上个命令中默认tol=max(size(A)*norm(A)*eps a=sym(1 1/x x2;xin(x) cos(x) tan(x);log(x) 2 9) rank(a) (6) 、符号矩阵的逆和行列式运算inv(X):求方阵X的逆,当 X奇异或者范数很小时,系统给出一个出错信息det(X):求方阵X的行列式h=sym(hilb(4) inv(h) det(h) b=sym(1 x x2;0 0 sin(x);0 0 log(x) inv(b) %b 矩阵行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年完整word版 MATLAB符号运算 2022 完整 word MATLAB 符号 运算
限制150内