您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 其它文档 > matlab的符号运算
第四章MATLAB的符号运算*教学目标介绍符号运算的概念和使用*学习要求掌握使用符号运算解决符号推导、微积分、方程等问题的方法。第四章MATLAB的符号运算一、数值运算和符号运算•符号计算:操作对象不是数值而是符号(符号表达式或符号数组)。•通过符号常数、符号变量及符号操作形成符号表达式。•符号运算由符号数学工具箱(SymbolicMathToolbox)支持,该工具箱是在Maple软件的基础上实现的•符号运算函数是数值运算函数的重载,符号运算采用的函数和数值运算的函数有一部分同名•获取帮助信息应该使用“helpsym/函数名”的方式。第四章MATLAB的符号运算一、数值运算和符号运算•数值运算在运算前必须先对变量赋值,再参加运算。•符号运算不需要对变量赋值就可运算,运算结果以标准的符号形式表达。第四章MATLAB的符号运算一、数值运算和符号运算哥哥弟弟年龄问题。解答方法:g-3d=1;g-d=19;第四章MATLAB的符号运算一、数值运算和符号运算哥哥弟弟年龄问题。gegedidi.m:clear;symsgd;[x,y]=solve('g-d=19','g-3*d=1','g','d')?solve('g-d=19','g-3*d=1','g','d')?[g,d]=solve('g-d=19','g-3*d=1','g','d')第四章MATLAB的符号运算一、数值运算和符号运算形如以下:(1)sin(a*x+b*y)(2)a*x^2+b*x+c(3)1/(4+cos(t))(4)4*x/y(5)2*a+b(6)2*i+4*j第四章MATLAB的符号运算一、数值运算和符号运算当我们做如下操作时:4*x/y???Undefinedfunctionorvariable'x'.第四章MATLAB的符号运算二、符号变量定义调用命令:symsyms调用格式:a=sym('a');b=sym('b');c=sym('c');symsabc;第四章MATLAB的符号运算二、符号变量定义f=sym(’符号字符串’)含义:创建了一个符号变量f,f的值为‘符号字符串’;注意:a=sym(‘a’)不同于a=sym(‘b’),虽然都是定义了符号变量a,但是值不同。第四章MATLAB的符号运算二、符号变量定义几种常见的典型错误命令:x=symx;x=sym'x';symsx,y,z;第四章MATLAB的符号运算三、符号表达式的定义符号表达式:包含数字、函数和变量的字符串,不要求字符串中的变量有预先确定的值。调用命令:sym调用格式:f=sym(‘符号表达式’)定义符号表达式,并将它赋值给变量f。第四章MATLAB的符号运算三、符号表达式的定义建立符号表达式有以下2种方法:(1)用sym函数建立符号表达式。f=sym('a*x^2+b*x+c');(2)使用已经定义的符号变量组成符号表达式。symsxyabcf=a*x^2+b*x+c(?)利用单引号来生成符号表达式。f='a*x^2+b*x+c'第四章MATLAB的符号运算三、符号表达式的定义思考并提问:1.sym(‘’)和symsbla的区别?2.a=‘a’和a=sym(‘a’)的区别?第四章MATLAB的符号运算三、符号表达式的定义形如:a*x^2+b*x+c提问:谁是自变量?第四章MATLAB的符号运算三、符号表达式的定义自变量的确定:方法一:事先明确指定。方法二:MATLAB自行默认确定。第四章MATLAB的符号运算三、符号表达式的定义MATLAB自变量确定原则:(1)x被视为默认的自变量。(2)字母位置最接近x的小写字母;(。。。u,v,w,x,y,z。。。)第四章MATLAB的符号运算三、符号表达式的定义默认自变量实例(1)sin(a*x+b*y)(2)a*x^2+b*x+c(3)1/(4+cos(t))(4)4*x/y(5)2*a+b(6)2*i+4*j第四章MATLAB的符号运算三、符号表达式的定义函数findsym帮助我们获取系统定义的自变量格式:findsym(f);findsym(f,1)例如:f=sym('sin(a*x+b*y)');f=sym('a*x^2+b*x+c');f=sym('1/(4+cos(t))');f=sym('4*x/y');f=sym('2*a+b');f=sym('2*i+4*j');findsym(f)findsym(f,1)findsym(f,2)findsym(f,n)第四章MATLAB的符号运算四、符号方程的定义符号表达式和符号方程的区别:符号表达式是由数字、函数和变量组成的代数式;符号方程是由函数和等号组成的等式。第四章MATLAB的符号运算四、符号方程的定义调用命令:sym调用格式:sym(‘符号方程式’)例如:equation=sym('sin(x)+cos(x)=1')第四章MATLAB的符号运算五、符号运算1初等代数运算(1)符号的加减乘除幂次方运算+-*/^例如:(a*x+b*y-c*z)/2*v*w^2第四章MATLAB的符号运算五、符号运算1初等代数运算(2)符号表达式的常用运算函数(page128)+-*/^numden(转换为分子分母形式)sym2poly,poly2sym第四章MATLAB的符号运算五、符号运算1初等代数运算(2)符号表达式的加减乘除幂次方运算例如:f1=sym('1/(a-b)');f2=sym('2*a/(a+b)');f3=sym('(a+1)*(b-1)*(a-b)');第四章MATLAB的符号运算五、符号运算1初等代数运算(2)符号表达式的加减乘除幂次方运算例如:[n,d]=numden(f1+f2)p=sym('2*x^3+3*x^2+4');sym2poly(p)x=[2,3,0,4];poly2sym(x)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简(page129)collect:合并同类项expand:展开多项式horner:分解成嵌套形式factor:因式分解simplify:对表达式化简simple:化简为最简形式,表达式最少字符。第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:collect合并同类项f=sym('x^2*y+y*x-x^2-2*x');collect(f)symsxy;collect(x^2*y+y*x-x^2-2*x)(找不同)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:collect合并同类项symsxy;collect((exp(x)+x)*(x+2))collect((x+y)*(x^2+y^2+1),y)(找不同)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:expand展开多项式f=sym('a^3-1');expand(f)expand((x-2)*(x-4))expand(cos(x+y))expand(exp((a+b)^2))第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:horner分解成嵌套形式horner(x^3-6*x^2+11*x-6)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:factor:因式分解factor(x^3-6*x^2+11*x-6)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:simplify:对表达式化简simplify(x^3-6*x^2+11*x-6)simplify(sin(x)^2+cos(x)^2)simplify(exp(c*log(sqrt(a+b))))simplify((x^2+5*x+6)/(x+2))simplify(sqrt(16))第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简例如:simple化简为最简形式,表达式最少字符。f=2*cos(x)^2-sin(x)^2;simple(f)[r,how]=simple(f)第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简f=sym('a*x^2+b*x+c')[r,how]=simple(f)r=a*x^2+b*x+chow=[]第四章MATLAB的符号运算五、符号运算1初等代数运算(3)符号表达式化简helpsimple第四章MATLAB的符号运算五、符号运算2再次扩充认识sym函数功能:定义符号表达式;或将输入参数转换为对应的符号表示,或设定符号变量类型。格式:sym(‘a’);sym(A);sym(A,'real'),sym(A,‘unreal'),sym(A,flag)flag为f,r,e,d(page127)第四章MATLAB的符号运算五、符号运算2sym函数例如:s=sym('sin(x)^2+cos(x)^2')A=0.25或者A=‘1/8’或者A=sym(‘1/8’)sym(A)sym(‘A’)(找不同)第四章MATLAB的符号运算五、符号运算2sym函数提问:sym(‘sqrt(3)’)和sym(sqrt(3))区别是什么?第四章MATLAB的符号运算五、符号运算2sym函数例如:sym(1/3,'f')sym(1/3,'e')sym(1/3,'r')sym(1/3,'d')第四章MATLAB的符号运算五、符号运算2sym函数例如:sym('x','real')sym('y','real')symsxy'real'conj(x)sym('x','unreal')conj(x)观察并回答:结果为什么是这样?第四章MATLAB的符号运算五、符号运算3求反函数finverse功能:求得符号函数的反函数。格式:finverse(f)finverse(f,v)f:符号表达式v:自变量。finverse(f)系统默认自变量;finverse(f,v),v是指定的自变量。第四章MATLAB的符号运算五、符号运算3求反函数symsxyfinverse(1/tan(x))f=x^2+yfinverse(f,y)finverse(f)(找不同)第四章MATLAB的符号运算五、符号运算4求复合函数compose功能:求符号函数的复合函数。(page134)格式:compose(f,g)compose(f,g,z)compose(f,g,x,z)compose(f,g,x,y,z)第四章MATLAB的符号运算五、符号运算4求复合函数compose功能:•compose(f,g)返回f,g的复合函数f(g(y)),其中f,g中的自变量为系统默认的;•compose(f,g,z)返回f,g的复合函数f(g(z)),其中z为g中自变量;•compose(f,g,x,z)返回f,g的复合函数f(g(z)),其中x和z分别是f和g中的自变量;•compose(f,g,x,y,z)返回f,g的复合函数f(g(z)),其中x和y分别是f和g中的自变量,z为复合函数中的自变量。第四章MATLAB的符号运算五、符号运算4求复合函数composesymsxyztu;f=1/(1+x^2);g=sin(y);h=x^t;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)第四章MATLAB的符号运算演练例题:已知f=1/(1+x^2),g=
本文标题:matlab的符号运算
链接地址:https://www.777doc.com/doc-3232828 .html