Matlab的学习资料第5章.ppt_第1页
Matlab的学习资料第5章.ppt_第2页
Matlab的学习资料第5章.ppt_第3页
Matlab的学习资料第5章.ppt_第4页
Matlab的学习资料第5章.ppt_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 符号计算 (1),MATLAB 7.X程序设计,2/44,主要内容:,创建符号常量和变量; 符号多项式的运算; 符号微积分的计算; 符号积分变换的计算; 符号微分方程和代数方程的求解。,MATLAB 7.X程序设计,3/44,5.1 符号计算基础,5.1.1 概述 符号计算的特点: 1)符号计算定义在符号变量的基础上,符号表达式计算前必须定义符号变量。 2)符号计算是精确计算。 3)符号计算的计算速度较慢。 4)符号计算的运算符和基本数学函数与数值计算中的运算符和基本数学函数几乎完全相同。,MATLAB 7.X程序设计,4/44,5.1.2 创建符号常量,sym函数创建符号常量,格式1为: sym(常量),例5-1 创建符号常量。 b=sym(pi) %创建符号常量,MATLAB 7.X程序设计,5/44,sym函数的格式2为: sym(常量,参数) 功能:把常量按参数的格式要求转换为符号常量。其中参数的含义: d 返回最接近的十进制数(默认位数为32位) f 返回该符号值最接近的浮点表示 r 返回该符号值最接近的有理数型(为系统默认方式),可表示为p/q、p*q、10q、p/q、2q和sqrt(p)形式之一 e 返回最接近的带有机器浮点误差的有理值,MATLAB 7.X程序设计,6/44,5.1.3 创建符号变量,sym(变量,参数) 功能:把变量定义为符号对象。其中参数用来设置限定符号变量的数学特性,有三种选择: positive 表示为“正、实”符号变量, real 表示为“实”符号变量, unreal 表示为“非实”符号变量。如果不限定则参数可省略。,MATLAB 7.X程序设计,7/44,syms函数的格式为: syms(arg1, arg2, ,参数) syms arg1 arg2 参数 功能:创建多个符号变量。,例5-2 创建符号复数变量a+bi。,MATLAB 7.X程序设计,8/44,5.2 符号表达式的基本操作,5.2.1 符号表达式的基本运算 1 算术运算、关系运算 2 常用的函数 1) 三角函数和双曲函数 2) 指数和对数函数 3) 矩阵分析函数,MATLAB 7.X程序设计,9/44,例5-3 创建符号矩阵,并求逆、对角阵、行 列式和秩。,例5-4 求线性方程组的解。,如果求解前3个方程所构成的“欠定”方程组呢?,MATLAB 7.X程序设计,10/44,4) 取整函数 5)复数函数,例5-5 创建符号复数常量,并求其共轭、实 部 、虚部和模。,MATLAB 7.X程序设计,11/44,5.2.2 符号数值精度控制,三种不同的算术运算: 1) 数值型 MATLAB的浮点运算。 2) 有理数型 Maple的精确符号运算。 3) VPA型 Maple的任意精度运算。,MATLAB 7.X程序设计,12/44,第3种运算的精度可以任意设置,由digits和vpa函数实现。 digits(n) 功能:设定计算精度和改变默认的有效位数函数。 其中n为所期望的有效位数,默认值为32位。 Vpa 的格式为: S=vpa(s,n) 功能:将s表示为n位有效位数的符号对象。,MATLAB 7.X程序设计,13/44,例5-6 应用digits和vpa函数设置运算精度。,a=sym(2*sqrt(5)+pi) %创建符号对象 digits %显示默认的有效位数 vpa(a) %用默认的位数计算并显示 vpa(a,20) %按指定的精度计算并显示 digits(15) %改变默认的有效位数 vpa(a) %按digits指定的精度计算并显示,MATLAB 7.X程序设计,14/44,5.2.3 符号对象转换为数值对象,double(S) 功能:把符号矩阵S转换为双精度浮点数矩阵。 single(S) 功能:把符号矩阵S转换为单精度浮点数矩阵。,MATLAB 7.X程序设计,15/44,例5-7 建立符号常数矩阵,并转换 为数值矩阵。,s=sym(1/3 5/7;sqrt(3) 8/9) %建立符号常数矩阵s single(s) %把s转换为数值矩阵,MATLAB 7.X程序设计,16/44,5.2.4 自由变量的确定,符号表达式允许使用自由变量。确定自由变量的原则: 1)小写字母i和j不能作为自由变量。 2)符号表达式中如果有多个字符变量,则按照以下顺序选择自由变量: 首先选择x作为自由变量;如果没有x,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优先。 3)大写字母比所有的小写字母都靠后。,MATLAB 7.X程序设计,17/44,findsym的格式为: findsym(EXPR,n) 功能:确定EXPR中的自由变量。 其中EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量的个数,当n省略时,则不按顺序给出EXPR中所有的符号变量。,MATLAB 7.X程序设计,18/44,例5-8 创建符号表达式,然后确定符 号变量。,f1=sym(a*x2+B*x+c) %创建符号表达式a*x2+ B*x+c findsym(f1) %确定B, a, c, x为符号变量 findsym(f1,1) %确定x为符号变量 findsym(f1,2) %确定x,c为符号变量 findsym(f1,3) %确定x,c,a为符号变量 findsym(f1,4) %确定x,c,a,B为符号变量,MATLAB 7.X程序设计,19/44,5.2.5 变量置换,subs (S) 功能:用MATLAB工作空间中的变量替换S符号表达式中的所有变量。,subs (S,NEW) 功能:用变量NEW替换符号表达式S中的自由变量。,subs (S,OLD,NEW) 功能:用变量NEW替换符号表达式S中的变量OLD。,MATLAB 7.X程序设计,20/44,例5-9 根据subs的置换规则,分析下 列语句的功能。,syms a b x; %创建符号变量a, b,和 x f=a*sin(x)+b; %创建符号表达式 f1=subs(f,a,sym(2) %以符号常量2替换符号变量a f2=subs(f,a,b,sym(2),sym(3) %分别以符号常量2、3替换符号变量a、b f3=subs(f,a,b,3,2) %分别以标量2、3替换符号变量a、b,MATLAB 7.X程序设计,21/44,f4=subs(f,sin(x),sym(y) %以符号变量y替换符号表达式sin(x) f5=subs(f,a,b,x,2,2,sym(pi/3) %分别以标量2、3替换符号变量a、b,以符号常量pi/3替换符号变量x f6=subs(f,a,b,x,2,2,pi/3) %分别以标量2、3 、pi/3替换符号变量a、b、x,MATLAB 7.X程序设计,22/44,5.2.6 反函数和复合函数,finverse(f,v) 功能:对指定自变量v的函数f(v)求反函数。当v省略时,则对默认的自由符号变量求反函数。,compose(f,g,x,z) 功能:返回值为f(g(z)。其中f和g是符号表达式,x和z是符号变量。,MATLAB 7.X程序设计,23/44,例5-11 求tex的反函数。 f=sym(t*ex)%原函数 g=finverse(f) %对默认自由变量x求反函数 g=finverse(f,t)%对t求反函数,例5-10 求y=x2的反函数。 syms x;f=x2;g=finverse(f) fg=compose(g,f) %验算g(f(x)是否等于x,MATLAB 7.X程序设计,24/44,应该注意的是如果先定义t为符号变量,则参数t的单引号可去掉: syms t g=finverse(f,t),例5-12 求sinx和lnx的反函数。,MATLAB 7.X程序设计,25/44,5.3 符号多项式函数,5.3.1 合并同类项 collect (S,v) 功能:合并多项式S的同类项。其中S是符号表达式,v是合并同类项的变量。 collect (S) 功能:以findsym确定的变量合并多项式S的同类项。 函数pretty可给出多项式的易读形式。,MATLAB 7.X程序设计,26/44,例5-13 合并多项式 的同类项。,x=sym(x); f=(x3+x+1)*(x2+1); g=collect(f),MATLAB 7.X程序设计,27/44,例5-14 合并多项式 的同类项。,s=sym(x2+x*exp(-t)+1)*(x+exp(-t); e1=collect(s) %合并关于x的同类项系数 e2=collect(s,exp(-t) %合并关于exp(-t)的同类项系数 e3=collect(s,t) %合并关于t的同类项系数,MATLAB 7.X程序设计,28/44,例5-15 创建符号多项式,并应用函数 sym2poly,poly2str和poly2sym 进行各种形式间的转换。,syms x;f=x3+2*x2-3*x+5; sy2p=sym2poly(f) %由符号多项式产生数值系数行向量 p2st=poly2str(sy2p,x) %把系数行向量变成易读表示式 p2sy=poly2sym(sy2p) %把数值系数行向量再转换为符号多项式 pretty(f,x) %显示符号多项式的易读表示形式,MATLAB 7.X程序设计,29/44,5.3.2 因式分解,factor(s) 功能:把符号表达式S转换为多个因式相乘的形式,各多项式的系数均为有理数。 horner(s) 功能:将符号多项式s转换为嵌套形式表示,即用多层括号的形式表示。,MATLAB 7.X程序设计,30/44,例5-16 分解因式,syms x a;f=factor(x3-a3) ; pretty(f,x) 执行结果如下: ans = 2 2 -(a - x) (a + a x + x ),MATLAB 7.X程序设计,31/44,例5-17 将符号矩阵表达式的各个元素 分解为多个因式,syms x b; f=x3+b3 x4-1;x5-1 x6-1; factor(f),MATLAB 7.X程序设计,32/44,例5-18 将多项式表示为嵌套形式。,syms x; horner(x6-x4-5*x3+5*x2+5*x-6),MATLAB 7.X程序设计,33/44,例5-19 将数字1025分解为正整数之积。,factor(1025) 执行结果如下: ans = 5 5 41 分析:由执行结果可以看出1025=5541,恰巧是素数之积。,MATLAB 7.X程序设计,34/44,求全部两位数的素数的程序如下:,sushu=; for ii=10:99 x=factor(ii); if x=ii sushu=sushu ii; end end sushu,MATLAB 7.X程序设计,35/44,例5-20 问入取何值时,齐次方程组有非 0解?,MATLAB 7.X程序设计,36/44,5.3.3 分子、分母的提取,N,D = numden (S) 提取有理多项式的分子、分母多项式。其中S是符号表达式,N为符号表达式S的分子,D为符号表达式S的分母。,MATLAB 7.X程序设计,37/44,例5-21 求出 的分子、分母,syms x; f=1/(x3)+6/x/x+12/x+8;n,d=numden(f),MATLAB 7.X程序设计,38/44,例5-22 求出符号矩阵 各元素的分子、分母多项式。,syms x; A=3/x/x/x+1 x2/(2*x-1);4/x2-1/x 1/(x+4); n,d=numden(A),MATLAB 7.X程序设计,39/44,5.3.4 化简,simplify(s) simple(s) 功能:返回符号表达式s的简化形式。,MATLAB 7.X程序设计,40/44,例 5-23 化简,方法1: syms x; f=x/(x2+x+1)+1/(x-1); simple(f),方法2: syms x; f=x/(x2+x+1)+1/(x-1); simplify(f),MATLAB 7.X程序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论