Matlab7.x程序设计第5章.ppt

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

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!