第5讲Matlab符号计算.ppt
《第5讲Matlab符号计算.ppt》由会员分享,可在线阅读,更多相关《第5讲Matlab符号计算.ppt(63页珍藏版)》请在三一办公上搜索。
1、第5讲 MATLAB的符号计算,符号计算基础 5.1 符号对象一种新的数据类型 符号对象、符号表达式 5.2 基本的符号运算 表达式运算(四则、化简、因式分解)、矩阵运算 5.3 符号表达式中变量的确定符号导数及其应用 5.4 函数的极限 5.5 符号函数求导及其应用(注:其help见Symbolic Math Toolbox),5.6 不定积分5.7 符号函数的定积分5.8 积分变换(*)5.9 级数的符号求和;5.10 函数的泰勒级数;5.11 函数的傅立叶级数(*);5.12 线性方程组的符号求解;5.13 非线性方程组的符号求解;5.14 常微分方程的符号求解;5.15 常微分方程组求
2、解,符号计算基础,Matlab中数学表达式的三种存在形式及其运用:、由数值对象参与运算的数学表达式(数值型):组成:(数值)常数、数值型变量、函数、数学运算符;要求:执行表达式之前必须对其中所有数值型变量赋值;运算结果:一个数值或数值数组 例如:x=1/3 y=exp(x)*sin(2*x)-1/5,、由符号对象参与运算的数学表达式(符号型):组成:(符号)常数、符号型变量、符号型常量、函数、数学运算符;要求:执行表达式之前必须对其中所有符号型变量、符号型常量进行类型定义;运算结果:一个符号型数学表达式 例如:syms x;y=exp(x)*sin(2*x)-1/5,、以字符串形式表达的数学表
3、达式(字符串型):组成:由数值型或符号型数学表达式两端加 就转换为字符串型数学表达式;要求:(1)若调用eval函数,可将其转化为数值型数学表达式并执行,但调用eval之前必须对其中所有数值型变量赋值;(2)若调用sym函数,可将其转化为符号型数学表达式;,运算结果:(1)若调用eval函数,可获得一个数值或数值数组;(2)若调用sym函数,获得一个符号型数学表达式;例如:d=1/3 c=eval(d2-1/5*sin(x)e=sym(d2-1/5*sin(x)class(e)diff(e),5.1 符号对象1.建立符号对象(类型定义)(1)syms函数:syms函数的一般调用格式为:syms
4、 var1 var2 varn 定义符号对象var1,var2,varn等。用这种格式定义符号量时符号量间用空格而不要用逗号分隔。还可以用如下方式定义:syms(var1,var2,varn)例如:syms x y z syms(x,y,z),(2)sym函数:sym函数的一般调用格式为:f=sym(arg)将数值、数值表达式或字符串表达式arg转换为相应的符号对象后赋给f,则f成为一个符号量,它的内容可以是符号常数、符号变量甚至符号表达式。例如:f=sym(x2-5)diff(f),例1 考察符号变量和数值变量的差别。在 MATLAB命令窗口,输入命令:syms a b c d;%定义4个符
5、号变量w=10;x=5;y=-8;z=11;%定义4个数值变量A=a,b;c,d%建立符号矩阵AB=w,x;y,z%建立数值矩阵Bdet(A)%计算符号矩阵A的行列式det(B)%计算数值矩阵B的行列式class(A)%判断变量A的类型class(B),例2 比较符号常数与数值在代数运算时的差别。在 MATLAB命令窗口,输入命令:pi1=sym(pi);k1=sym(8);k2=sym(2);k3=sym(3);%定义4个符号变量,其内容由4个符号常数指定pi2=pi;r1=8;r2=2;r3=3;%定义数值变量sin(pi1/3)%计算符号表达式值 sin(pi2/3)%计算数值表达式值s
6、qrt(k1)%计算符号表达式值sqrt(r1)%计算数值表达式值sqrt(k3+sqrt(k2)%计算符号表达式值sqrt(r3+sqrt(r2)%计算数值表达式值,2.建立符号表达式例3 用两种方法建立符号表达式。在MATLAB窗口,输入命令:(1)先定义符号量,再直接写出符号表达式:syms x y;%建立符号变量x、y V=3*x2+5*y+2*x*y+6%定义符号表达式V(2)用sym函数把字符串表达式转化为符号表达式:U=sym(x3+5*y)%定义符号表达式U U-V%求符号表达式的值,例4 常数与符号常数的差异a1=1/3,pi/7,sqrt(5),pi+sqrt(5)%a1是
7、数值常数a2=sym(1/3,pi/7,sqrt(5),pi+sqrt(5)%最接近的有理表示a3=sym(1/3,pi/7,sqrt(5),pi+sqrt(5)%准确的符号数值表示a23=a2-a3,例5 计算3阶范得蒙矩阵行列式的值。设A是一个由符号变量a,b,c确定的范得蒙矩阵。命令如下:syms a b c;U=a,b,c;A=1,1,1;U;U.2%建立范得蒙符号矩阵det(A)%计算A的行列式值,5.2 基本的符号运算1.符号表达式运算(1)符号表达式的四则运算例6 符号表达式的四则运算示例:syms x y z;f=2*x+x2*x-5*x+x3%符号表达式的结果为最简形式f=(
8、x+y)*(x-y)%符号表达式的结果不是x2-y2,而是(x+y)*(x-y)simple(f),(2)表达式化简 MATLAB提供的对符号表达式化简的函数有:simplify(S)应用函数规则对S进行化简。simple(S)调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。,例7 已知向量t=1:5,试构造符号函数命令如下:t=1:5;syms x y;y=0;for k=1:5 s=1;for l=1:k s=s*(x-t(l);end y=y+t(k)*s;endsimple(y)%MATLAB自动调用多种函数对s进行化简,并显示每步结果,(3)因式分解与展开 令S是符号
9、表达式或符号矩阵。factor(S)对S分解因式。expand(S)对S进行展开。collect(S)对S合并同类项。collect(S,v)对S按变量v合并同类项。,例8 对符号矩阵A的每个元素分解因式。命令如下:syms a b x y;A=2*a2*b3*x2-4*a*b4*x3+10*a*b6*x4,3*x*y-5*x2;4,a3-b3;factor(A)%对A的每个元素分解因式,例9 计算表达式S的值。命令如下:syms x y;s=(-7*x2-8*y2+1)*(-x2+3*y2);expand(s)%对s展开collect(s,x)%对s按变量x合并同类项collect(s,y)
10、%对s按变量y合并同类项factor(ans)%对ans分解因式,2.符号矩阵运算S 返回S矩阵的转置矩阵。rank(S)返回S矩阵的秩det(S)返回S矩阵的行列式值。inv(S)返回S矩阵的逆Q,D=eig(S)Q返回S矩阵的特征向量,D返回S矩阵的特征值。例10 a=sym(magic(4);b=sym(ones(4)c=a+b/2crank(c)det(c)Q,D=eig(c),5.3 符号表达式中变量的确定 MATLAB中的符号可以表示符号变量和符号常量。findsym可以帮助用户查找一个符号表达式中的符号变量。该函数的调用格式为:findsym(S)找出表达式S中的所有符号变量fi
11、ndsym(S,n)从表达式S中找出最靠近x的n个符号变量,符号导数及其应用,5.4 函数的极限limit函数的调用格式为:limit(f,x,a)x可缺省,缺省时使用findsym(f)找到的自变量;a也可缺省,缺省时a=0.limit函数的另一种功能是求单边极限,其调用格式为:limit(f,x,a,right)或 limit(f,x,a,left),例13 求极限,输入命令:syms a m x;f=(x(1/m)-a(1/m)/(x-a);limit(f,x,a)%求极限(1)f=(sin(a+x)-sin(a-x)/x;limit(f)%求极限(2)limit(f,inf)%求极限(
12、3)f=(sqrt(x)-sqrt(a)+sqrt(x-a)/sqrt(x*x-a*a);limit(f,x,a,right)%求极限(4),5.5 符号函数求导及其应用MATLAB中的求导的函数为:diff(f,x,n)求函数f对变量x的n阶导数。参数x的用法同求极限函数limit,可以缺省,缺省值与limit相同,n的缺省值是1。,例14 求函数的导数:,syms a b t x y z;f=sqrt(1+exp(x);diff(f)%求(1),未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2)%求(2),f对x的二阶导数diff(f,x,3)%求(2),f对
13、x的三阶导数x=a*cos(t);y=b*sin(t);diff(y)/diff(x)%求(3),按参数方程求导公式求y对x的一阶导数(diff(x)*diff(y,2)-diff(x,2)*diff(y)/(diff(x)3%求(3),y对x的二阶导数,f=x*exp(y)/y2;diff(f,x)%求(4),z对x的偏导数diff(f,y)%求(4),z对y的偏导数f=x2+y2+z2-a2;zx=-diff(f,x)/diff(f,z)%求(5),按隐函数求导公式求z对x的偏导数zy=-diff(f,y)/diff(f,z)%求(5),按隐函数求导公式求z对y的偏导数,例15 在曲线y=
14、x3+3x-2上哪一点的切线与直线y=4x-1平行。命令如下:x=sym(x);y=x3+3*x-2;%定义曲线函数f=diff(y);%对曲线求导数g=f-4;solve(g)%求方程f-4=0的根,即求曲线何处的导数为4,符号积分,5.6不定积分在MATLAB中,求不定积分的函数是int,其调用格式为:int(f,x)int函数求函数f对变量x的不定积分。参数x可以缺省,缺省原则与diff函数相同。,例15 求不定积分(1)(2)syms x;f1=(3-x2)3;f1_=int(f1)%求不定积分(1)f2=sqrt(x3+x4);f2_1=int(f2)%求不定积分(2)f2_2=si
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 符号 计算
链接地址:https://www.31ppt.com/p-5639667.html