收藏 分销(赏)

Matlab7.x程序设计第5章(1)-195.ppt

上传人:a199****6536 文档编号:2405140 上传时间:2024-05-29 格式:PPT 页数:44 大小:154KB
下载 相关 举报
Matlab7.x程序设计第5章(1)-195.ppt_第1页
第1页 / 共44页
Matlab7.x程序设计第5章(1)-195.ppt_第2页
第2页 / 共44页
Matlab7.x程序设计第5章(1)-195.ppt_第3页
第3页 / 共44页
Matlab7.x程序设计第5章(1)-195.ppt_第4页
第4页 / 共44页
Matlab7.x程序设计第5章(1)-195.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

1、Matlab7.x程序设计第程序设计第5章章(1)主要内容:主要内容:创建符号常量和变量;创建符号常量和变量;符号多项式的运算;符号多项式的运算;符号微积分的计算;符号微积分的计算;符号积分变换的计算;符号积分变换的计算;符号微分方程和代数方程的求解。符号微分方程和代数方程的求解。2MATLAB 7.X程序设计程序设计5.1 符号计算基础符号计算基础5.1.1 概述概述符号计算的特点:符号计算的特点:1)符符号号计计算算定定义义在在符符号号变变量量的的基基础础上上,符符号号表表达式计算前必须定义符号变量。达式计算前必须定义符号变量。2)符号计算是精确计算。)符号计算是精确计算。3)符号计算的计

2、算速度较慢。)符号计算的计算速度较慢。4)符号计算的运算符和基本数学函数与数值计)符号计算的运算符和基本数学函数与数值计算中的运算符和基本数学函数几乎完全相同。算中的运算符和基本数学函数几乎完全相同。3MATLAB 7.X程序设计程序设计5.1.2 创建符号常量创建符号常量symsym函数创建符号常量,格式函数创建符号常量,格式1 1为:为:sym(sym(常量常量)例例5-15-1 创建符号常量创建符号常量。b=sym(pi)%创建符号常量创建符号常量4MATLAB 7.X程序设计程序设计 symsym函数的格式函数的格式2 2为:为:sym(sym(常量常量,参数参数)功能:功能:把常量按

3、参数的格式要求转换为符号常把常量按参数的格式要求转换为符号常量。其中参数的含义:量。其中参数的含义:d d 返回最接近的十进制数返回最接近的十进制数(默认位数为默认位数为3232位位)f f 返回该符号值最接近的浮点表示返回该符号值最接近的浮点表示r r 返返回回该该符符号号值值最最接接近近的的有有理理数数型型(为为系系统统默默认认方方式式),可可表表示示为为p/qp/q、p*qp*q、10q10q、p/qp/q、2q2q和和sqrt(p)sqrt(p)形式之一形式之一e e 返回最接近的带有机器浮点误差的有理值返回最接近的带有机器浮点误差的有理值5MATLAB 7.X程序设计程序设计5.1.

4、3 创建符号变量创建符号变量 sym(sym(变量变量,参数参数)功功能能:把把变变量量定定义义为为符符号号对对象象。其其中中参参数数用用来来设设置限定符号变量的数学特性,有三种选择:置限定符号变量的数学特性,有三种选择:positivepositive 表示为表示为“正、实正、实”符号变量,符号变量,realreal 表示为表示为“实实”符号变量,符号变量,unrealunreal 表示为表示为“非实非实”符号变量。如符号变量。如果不限定则参数可省略。果不限定则参数可省略。6MATLAB 7.X程序设计程序设计symssyms函数的格式为:函数的格式为:syms(arg1,arg2,syms

5、(arg1,arg2,参数参数)syms arg1 arg2 syms arg1 arg2 参数参数功能:功能:创建多个符号变量。创建多个符号变量。例例5-25-2 创建符号复数变量创建符号复数变量a+bia+bi。7MATLAB 7.X程序设计程序设计5.2 符号表达式的基本操作符号表达式的基本操作5.2.1 符号表达式的符号表达式的基本运算基本运算1 1 算算术运算、关系运算运算、关系运算2 常用的函数常用的函数 1)1)三角函数和双曲函数三角函数和双曲函数2)2)指数和对数函数指数和对数函数3)3)矩阵分析函数矩阵分析函数8MATLAB 7.X程序设计程序设计 例例5-35-3 创建符号

6、矩阵,并求逆、对角阵、行创建符号矩阵,并求逆、对角阵、行 列式和秩。列式和秩。例例5-45-4 求线性方程组的解。求线性方程组的解。如果求解前如果求解前3 3个方程所构成的个方程所构成的“欠定欠定”方程组呢?方程组呢?9MATLAB 7.X程序设计程序设计4)4)取整函数取整函数5 5)复数函数)复数函数例例5-55-5 创建符号复数常量,并求其共轭、实创建符号复数常量,并求其共轭、实 部部 、虚部和模。、虚部和模。10MATLAB 7.X程序设计程序设计5.2.2 符号数值精度控制符号数值精度控制三种不同的算术运算:三种不同的算术运算:1)1)数值型数值型 MATLABMATLAB的浮点运算

7、。的浮点运算。2)2)有理数型有理数型 MapleMaple的精确符号运算。的精确符号运算。3)3)VPAVPA型型 MapleMaple的任意精度运算。的任意精度运算。11MATLAB 7.X程序设计程序设计 第第3 3种种运运算算的的精精度度可可以以任任意意设设置置,由由digitsdigits和和vpavpa函数实现。函数实现。digits(n)digits(n)功功能能:设设定定计计算算精精度度和和改改变变默默认认的的有有效效位位数数函函数。数。其中其中n n为所期望的有效位数,默认值为为所期望的有效位数,默认值为3232位。位。Vpa Vpa 的格式为:的格式为:S=vpa(s,n)

8、S=vpa(s,n)功能:功能:将将s s表示为表示为n n位有效位数的符号对象。位有效位数的符号对象。12MATLAB 7.X程序设计程序设计例例5-65-6 应应用用digitsdigits和和vpavpa函数函数设设置运算精度。置运算精度。a=sym(2*sqrt(5)+pi)%创建符号对象创建符号对象digits%显示默认的有效位数显示默认的有效位数vpa(a)%用默认的位数计算并显示用默认的位数计算并显示vpa(a,20)%按指定的精度计算并显示按指定的精度计算并显示 digits(15)%改变默认的有效位数改变默认的有效位数vpa(a)%按按digitsdigits指定的精度计算并

9、显示指定的精度计算并显示13MATLAB 7.X程序设计程序设计5.2.3 符号对象转换为数值对象符号对象转换为数值对象 double(S)功能:功能:把符号矩阵把符号矩阵S转换为双精度浮点数矩阵。转换为双精度浮点数矩阵。single(S)功能:功能:把符号矩阵把符号矩阵S转换为单精度浮点数矩阵。转换为单精度浮点数矩阵。14MATLAB 7.X程序设计程序设计例例5-7 建建立立符符号号常常数数矩矩阵阵,并并转转换换 为数值矩阵。为数值矩阵。s=sym(1/3 5/7;sqrt(3)8/9)%建立符号常数矩阵建立符号常数矩阵ssingle(s)%把把s s转换为数值矩阵转换为数值矩阵15MAT

10、LAB 7.X程序设计程序设计5.2.4 自由变量的确定自由变量的确定 符号表达式允许使用自由变量。确定自由变符号表达式允许使用自由变量。确定自由变量的原则:量的原则:1 1)小写字母)小写字母i i和和j j不能作为自由变量。不能作为自由变量。2 2)符符号号表表达达式式中中如如果果有有多多个个字字符符变变量量,则则按按照以下顺序选择自由变量:照以下顺序选择自由变量:首首先先选选择择x x作作为为自自由由变变量量;如如果果没没有有x x,则则选选择择在在字字母母顺顺序序中中最最接接近近x x的的字字符符变变量量;如如果与果与x x相同距离,则在相同距离,则在x x后面的优先。后面的优先。3

11、3)大写字母比所有的小写字母都靠后。)大写字母比所有的小写字母都靠后。16MATLAB 7.X程序设计程序设计findsymfindsym的格式为的格式为:findsym(EXPR,n)findsym(EXPR,n)功能:功能:确定确定EXPREXPR中的自由变量。中的自由变量。其中其中EXPREXPR可以是符号表达式或符号矩阵;可以是符号表达式或符号矩阵;n n为为按顺序得出符号变量的个数,当按顺序得出符号变量的个数,当n n省略时,则省略时,则不按顺序给出不按顺序给出EXPREXPR中所有的符号变量中所有的符号变量。17MATLAB 7.X程序设计程序设计例例5-85-8 创创建建符符号号

12、表表达达式式,然然后后确确定定符符 号变量。号变量。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为为符号符号变变量量 18MATLAB 7.X程序设计程序设计5.2.5 变量置换变量置换 subs(S)功功能能:用用MATLAB工工作作空空间间中中的的变

13、变量量替替换换S符符号表达式中的所有变量。号表达式中的所有变量。subs(S,NEW)功功能能:用用变变量量NEW替替换换符符号号表表达达式式S中中的的自自由由变量。变量。subs(S,OLD,NEW)功能:功能:用变量用变量NEW替换符号表达式替换符号表达式S中的变量中的变量OLD。19MATLAB 7.X程序设计程序设计例例5-9 根根据据subs的的置置换换规规则则,分分析析下下 列语句的功能。列语句的功能。syms a b x;%创建符号变量创建符号变量a,b,和和 xf=a*sin(x)+b;%创建符号表达式创建符号表达式f1=subs(f,a,sym(2)%以符号常量以符号常量2

14、2替换符号变量替换符号变量a af2=subs(f,a,b,sym(2),sym(3)%分别以符号常量分别以符号常量2 2、3 3替换符号变量替换符号变量a a、b bf3=subs(f,a,b,3,2)%分别以标量分别以标量2 2、3 3替换符号变量替换符号变量a a、b b20MATLAB 7.X程序设计程序设计f4=subs(f,sin(x),sym(y)%以符号变量以符号变量y y替换符号表达式替换符号表达式sin(x)sin(x)f5=subs(f,a,b,x,2,2,sym(pi/3)%分分别别以以标标量量2 2、3 3替替换换符符号号变变量量a a、b b,以以符符号号常常量量p

15、i/3pi/3替换符号变量替换符号变量x xf6=subs(f,a,b,x,2,2,pi/3)%分别以标量分别以标量2 2、3 3、pi/3pi/3替换符号变量替换符号变量a a、b b、x x21MATLAB 7.X程序设计程序设计5.2.6 反函数和复合函数反函数和复合函数finverse(f,v)finverse(f,v)功功能能:对对指指定定自自变变量量v v的的函函数数f(v)f(v)求求反反函函数数。当当v v省省略略时时,则则对对默默认认的的自自由由符符号号变变量量求求反反函函数。数。composecompose(f,g,x,z)功能:功能:返回值为返回值为f(g(z)f(g(z

16、)。其中其中f f和和g g是符号表是符号表达式达式,x x和和z z是符号变量。是符号变量。22MATLAB 7.X程序设计程序设计例例5-11 求求tetex x的反函数。的反函数。f=sym(t*ex)%原函数原函数 g=finverse(f)%对默认自由变量对默认自由变量x x求反函数求反函数 g=finverse(f,t)%对对t t求反函数求反函数 例例5-10 求求y=x2y=x2的反函数。的反函数。syms x;f=x2;g=finverse(f)fg=compose(g,f)%验算验算g(f(x)g(f(x)是否等于是否等于x x23MATLAB 7.X程序设计程序设计应应该

17、该注注意意的的是是如如果果先先定定义义t t为为符符号号变变量量,则则参数参数 tt的单引号可去掉:的单引号可去掉:syms tg=finverse(f,t)例例5-12 求求sinxsinx和和lnxlnx的反函数。的反函数。24MATLAB 7.X程序设计程序设计5.3 5.3 符号多项式函数符号多项式函数5.3.1 合并同类项合并同类项collect(S,v)功功能能:合合并并多多项项式式S的的同同类类项项。其其中中S是是符符号号表表达式,达式,v是合并同类项的变量。是合并同类项的变量。collect(S)功能:功能:以以findsym确定的变量合并多项式确定的变量合并多项式S的同的同类

18、项。类项。函数函数prettypretty可给出多项式的易读形式。可给出多项式的易读形式。25MATLAB 7.X程序设计程序设计 例例5-13 合并多项式合并多项式的同类项。的同类项。x=sym(x);f=(x3+x+1)*(x2+1);g=collect(f)26MATLAB 7.X程序设计程序设计例例5-14 合并多项式合并多项式 的同类项。的同类项。s=sym(x2+x*exp(-t)+1)*(x+exp(-t);e1=collect(s)%合并关于合并关于x的的同类项系数同类项系数e2=collect(s,exp(-t)%合并关于合并关于exp(-t)exp(-t)的的同类项系数同类

19、项系数 e3=collect(s,t)%合并关于合并关于t t的的同类项系数同类项系数27MATLAB 7.X程序设计程序设计例例例例 5-155-15 创创创创 建建建建 符符符符 号号号号 多多多多 项项项项 式式式式,并并并并 应应应应 用用用用 函函函函 数数数数 sym2polysym2poly,poly2strpoly2str和和和和 poly2sympoly2sym 进行各种形式间的转换。进行各种形式间的转换。进行各种形式间的转换。进行各种形式间的转换。syms x;f=x3+2*x2-3*x+5;sy2p=sym2poly(f)%由符号多项式产生数值系数行向量由符号多项式产生数

20、值系数行向量p2st=poly2str(sy2p,x)%把系数行向量变成易读表示式把系数行向量变成易读表示式p2sy=poly2sym(sy2p)%把数值系数行向量再转换为符号多项式把数值系数行向量再转换为符号多项式pretty(f,x)%显示符号多项式的易读表示形式显示符号多项式的易读表示形式28MATLAB 7.X程序设计程序设计5.3.2 因式分解因式分解factor(s)factor(s)功功能能:把把符符号号表表达达式式S S转转换换为为多多个个因因式式相相乘乘的的形式,各多项式的系数均为有理数。形式,各多项式的系数均为有理数。horner(s)horner(s)功能:功能:将符号多

21、项式将符号多项式s s转换为嵌套形式表示,转换为嵌套形式表示,即用多层括号的形式表示。即用多层括号的形式表示。29MATLAB 7.X程序设计程序设计例例5-16 分解因式分解因式 syms x a;f=factor(x3-a3);pretty(f,x)执行结果如下执行结果如下:ans=ans=2 2 2 2 -(a-x)(a +a x+x)-(a-x)(a +a x+x)30MATLAB 7.X程序设计程序设计例例5-175-17 将符号矩阵表达式的各个元素将符号矩阵表达式的各个元素 分解为多个因式分解为多个因式 syms x b;f=x3+b3 x4-1;x5-1 x6-1;factor(

22、f)31MATLAB 7.X程序设计程序设计例例5-185-18 将多项式表示为嵌套形式。将多项式表示为嵌套形式。syms x;horner(x6-x4-5*x3+5*x2+5*x-6)32MATLAB 7.X程序设计程序设计例例5-19 将将数字数字10251025分解为正整数之积。分解为正整数之积。factor(1025)执行结果如下:执行结果如下:ans=5 5 41分分析析:由由执执行行结结果果可可以以看看出出1025=5541,恰恰巧是素数之积。巧是素数之积。33MATLAB 7.X程序设计程序设计求全部两位数的素数的程序如下:求全部两位数的素数的程序如下:sushu=;for ii

23、=10:99 x=factor(ii);if x=ii sushu=sushu ii;end end sushu34MATLAB 7.X程序设计程序设计例例5-205-20 问入取何值时,齐次方程组有非问入取何值时,齐次方程组有非 0 0解?解?35MATLAB 7.X程序设计程序设计5.3.3 分子、分母的提取分子、分母的提取 N,D=numdennumden(S)提取有理多项式的提取有理多项式的分子、分母多项式。分子、分母多项式。其其中中S是符号表达式,是符号表达式,N为符号表达式为符号表达式S的分的分子,子,D为符号表达式为符号表达式S的分母。的分母。36MATLAB 7.X程序设计程序

24、设计例例5-21 求出求出 的分子、分母的分子、分母 syms x;f=1/(x3)+6/x/x+12/x+8;n,d=numden(f)37MATLAB 7.X程序设计程序设计例例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)38MATLAB 7.X程序设计程序设计5.3.4 化简化简 simplify(s)simple(s)功能:功能:返回返回符号表达式符号表达式s的简化形式的简化形式。39MATLAB 7.X程序设计程序设计例例

25、5-23 化简化简 方法方法1 1:syms x;f=x/(x2+x+1)+1/(x-1);simple(f)方法方法2 2:syms x;f=x/(x2+x+1)+1/(x-1);simplify(f)40MATLAB 7.X程序设计程序设计例例5-24化简化简 例例5-25 5-25 计算行列式的值计算行列式的值 例例5-265-26 计算计算 41MATLAB 7.X程序设计程序设计5.3.5 展开展开符号表达式展开函数符号表达式展开函数expand的的格式为格式为:expand(s)其中其中s s为符号矩阵或符号表达式。为符号矩阵或符号表达式。42MATLAB 7.X程序设计程序设计例例5-275-27 将将 展开展开 n=input(Please input n?n=input(Please input n?)syms x ysyms x y;expand(x+y)n)expand(x+y)n)例例5-28 证明正弦函数和余弦函数的两角和、证明正弦函数和余弦函数的两角和、差公式。差公式。43MATLAB 7.X程序设计程序设计 例例5-29 将矩阵将矩阵 的各元素展开。的各元素展开。44MATLAB 7.X程序设计程序设计

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服