第2章符号运算- Presentation Transcript
1.第二章符号运算
o MA TLAB 的数学计算=数值计算+符号计算
o其中符号计算是指使用未定义的符号变量进行运算,而数值计算不允许使用未定义的变量。
2.  1. 符号变量、符号表达式和符号方程的生成
o使用sym 函数定义符号变量和符号表达式
o使用syms 函数定义符号变量和符号表达式
3.  2 、用syms 创建符号变量
o使用syms 命令创建符号变量和符号表达式
o语法:
o syms(‘arg1’, ‘arg2’, …, 参数) % 把字符变量定义为
o% 符号变量
o syms arg1 arg2 …, 参数% 把字符变量定义为符号变量的简洁形
o% 式
o说明:syms 用来创建多个符号变量,这两种方式创建的符号对象是相同的。参数设置和前面的sym 命令相同,省略时符号表达式直接由各符号变量组成。
4.使用syms 函数定义符号变量和符号表达式
▪>> syms a b c x
▪>> f = a*x^2 + b*x + c
▪  f =
▪a*x^2 + b*x + c
▪>> g=f^2+4*f-2
▪g =
▪(a*x^2+b*x+c)^2+4*a*x^2+4*b*x+4*c-2
▪>>
ex0201
5.符号方程的生成
▪>> % 符号方程的生成
▪>> % 使用sym 函数生成符号方程
▪>> equation1='sin(x)+cos(x)=1'
▪equation1 =
▪sin(x)+cos(x)=1
▪>>
6.  2.2 符号形式与数值形式的转换
o  1 、将符号形式转换为数值形式:
o eval 与numeric
o例:a1='2*sqrt(5)+pi'
o a1 =
o2*sqrt(5)+pi
o b2=numeric(a2) % 转换为数值变量
o b2 =
o7.6137
o b3=eval(a1)
o b3 =
o7.6137
7.  2.2 符号形式与数值形式的转换
▪  2 、数值形式转换为符号形式
▪p=3.1416;
▪q=sym(p)
▪执行后屏幕显示:
▪q=3927/1250
▪numeric(q)
▪屏幕显示:
▪ans =
▪  3.1416
8.  2.2 符号形式与数值形式的转换3 、多项式与系数向量之间的转换3.1 sym2poly: 将多项式
转化为对应的系数向量例:syms x p; p=x^3-4*x+5; sym2poly(p) 执行后屏幕显示:ans= 1 0 -4 5 9.  2.2 符号形式与数值形式的转换
o  3 、多项式与系数向量之间的转换
o  3.2 poly2sym: 将向量转化为对应的多项式
o例
o a=[1 0 -4 5];
o poly2sym(a)
o执行后屏幕显示
o ans=
o x^3-4*x+5
10.  3. 符号表达式( 符号函数) 的操作
o(1) 符号表达式的四则运算
o syms x
o f=x^3-6*x^2+11*x-6;
o g=(x-1)*(x-2)*(x-3);
o h=x*(x*(x-6)+11)-6;
o f+g-h
o执行后输出:
o ans =
o x^3-6*x^2+11*x+(x-1)*(x-2)*(x-3)-x*(x*(x-6)+11)
11.(1) 符号表达式的四则运算
▪>> syms x y a b
▪>> fun1=sin(x)+cos(y)
▪fun1 =
▪sin(x)+cos(y)
▪>> fun2=a+b
▪fun2 =
▪a+b
▪>> fun1+fun2
▪sin(x)+cos(y)+a+b
▪>>fun1*fun2
▪ans =
▪(sin(x)+cos(y))*(a+b)
12.
o(1) 将表达式中的括号进行展开: expand
o(2) 将表达式进行因式分解:factor
o(3) 将一般的表达式变换为嵌套的形式:horner
o(4) 将表达式按某一个变量的幂进行集项:collect
o(5) 化简表达式:simplify
o(6) 化简表达式,使之成为书写长度最短的形式:simple
13.
o同一个数学函数的符号表达式的可以表示成三种形式,例如以下的f(x) 就可以分别表示为:
o多项式形式的表达方式:
o f(x)=x^3+6x^2+11x-6
o因式形式的表达方式(factor) :
o f(x)=(x-1)(x-2)(x-3)
o嵌套形式的表达方式(horner) :
o f(x)=x(x(x-6)+11)-6
14.集项-合并符号表达式的同类项
o>> syms x y
▪>> collect(x^2*y + y*x - x^2 - 2*x)
▪ans =
▪(y-1)*x^2+(y-2)*x
o>> syms x y
▪>> collect(x^2*y + y*x - x^2 - 2*x,y)
▪ans =
▪(x^2+x)*y-x^2-2*x
15.符号多项式的嵌套(horner )
▪>> syms x
▪>> fun1=2*x^3+2*x^2-32*x+40
▪fun1 =
▪2*x^3+2*x^2-32*x+40
▪>> horner(fun1)
▪ans =
▪40+(-32+(2+2*x)*x)*x
▪>> fun2=x^3-6*x^2+11*x-6
▪fun2 =
▪x^3-6*x^2+11*x-6
▪>> horner(fun2)
▪ans =
▪-6+(11+(-6+x)*x)*x
16.符号表达式的化简(simplify)
▪>> syms x
▪>> fun1=(1/x+7/x^2+12/x+8)^(1/3)
▪fun1 =
▪(13/x+7/x^2+8)^(1/3)
▪>> sfy1= simplify (fun1)
▪sfy1 =
▪((13*x+7+8*x^2)/x^2)^(1/3)
▪>> sfy2= simple (sfy1)
▪sfy2 =
▪(13/x+7/x^2+8)^(1/3)
17.subs 函数用于替换求值
▪>> syms x y
▪  f = x^2*y + 5*x*sqrt(y)
▪  f =
▪x^2*y+5*x*y^(1/2)
▪>> subs(f, x, 3)
▪ans =
▪9*y+15*y^(1/2)
▪>> subs(f, y, 3)
▪ans =
▪3*x^2+5*x*3^(1/2)
▪>>subs(f,{x,y},{1,1})
ex0202 ex0203 ex0204
18.  4 、反函数的运算(finverse )
▪>> syms x y
▪>> f = x^2+y
▪  f =
▪x^2+y
▪>> finverse(f,y)
▪ans =
▪-x^2+y
使用格式:  1 、g=finverse(f):f,g 均为单变量x 的符号函数;  2 、g=finverse(f,t) 返回值g 的自变量取为t ;
19.  5 复合函数的运算(compose)
▪>> syms x y z t u
▪>> f = 1/(1 + x^2);
▪>> g = sin(y);
▪>> h = x^t;
▪>> p = exp(-y/u) ;
▪>> compose(f,g)
▪ans =
▪1/(1+sin(y)^2)
▪>> compose(f,g,t)
▪ans =
▪1/(1+sin(t)^2)
使用格式:Compose(f,g) % 返回当f=f(y) 和g=g(x) 时的复合函数f(g(x)) Compose(f,g,t) % 返回的复合函数以t 为自变量,即有f(g(t))
20.  6 函数的极限、导数与积分
o(1 )函数极限-limit 函数的使用
o(2 )函数求导-diff 函数的使用
o(3 )符号积分-int 函数的使用
21.
o符号极限(limit)
假定符号表达式的极限存在,Symbolic Math Toolbox 提供了直接求表达式极限的函数limit ,函数limit 的基本用法如下表所示。limit 函数的用法对x 求右趋近于  a 的极限limt(f,’x’,a, ‘right’) 对x 求左趋近于  a 的极限limt(f,’x’,a, ‘left’) 对x 求趋近于  a 的极限,当左右极限不相等时极限不存在。
limt(f,’x’,a) 对x 求趋近于0 的极限limt(f) 说明函数格式表达式
22.符号极限(limit)
▪>> syms x a t h;
▪>> limit(sin(x)/x)
▪ans =
▪  1
▪>> limit((x-2)/(x^2-4),2)
▪ans =
▪1/4
▪>> limit((1+2*t/x)^(3*x),x,inf)
科学计算器使用▪ans =
▪exp(6*t)
如果左右极限不相等,则极限不存在,matlab 命令窗口中显示Nan
23.(2) 符号求导
o调用格式:
o一阶导数:yx=diff(f,x)
o二阶导数:yxx=diff(f,x,2) 或yxx=diff(yx,x)
o三阶导数:yxxx=diff(f,x,3) 或yxxx=diff(yxx,x)
ex0205 一、一元函数符号求导求导函数:diff diff(f) % 求f 对自由变量的一阶微分diff(f,t) % 求f 对符号变量t 的一阶微分diff(f,n) % 求  f 对自由变量的n 阶微分diff(f,t,n) % 求  f 对符号变量t 的n 阶微分