null
MATLAB符号计算
MATLAB符号计算
概述概述在工程应用及科学研究中,符号运算很重要。为此,Mathwork公司购买了具有很强大符号运算能力的MAPLE V软件的使用权,随后以MAPLE V的内核为符号运算的“引擎”,开发了在MATLAB环境下的实现符号运算的工具箱,即符号运算工具箱,它包括基本符号运算工具箱和扩展符号数学工具箱两个子工具箱。概述概述符号运算与数值运算的区别:
数值运算:参与运算的变量都是数值;
符号运算:参与运算的变量都是符号变量,包括表达式中的数字。创建符号常量创建符号常量 sym(‘常量’)
这样可以避免浮点数带来的近似,建立的常量是数值的精确表示。
例如: sym('1/5')
sym(‘sin(2)’)
sym(常量,参数)
参数可以取‘d’,‘f’,‘r’,‘e’ ,缺省为’r’:
’d’:返回最接近的十进制小数。默认32位。
‘f’:返回最接近的浮点数;
’r’:返回最接近的有理数形式;
‘e’:返回最接近的带有机器浮点误差的有理值;
null例如:
a1=2*sqrt(5)+pi; %数值
a2=‘sym(2*sqrt(5)+pi)’;%字符串
a3=sym(‘2*sqrt(5)+pi’);%符号常量
a4= sym(2*sqrt(5)+pi);
a5= sym(2*sqrt(5)+pi,’d’);
符号变量和符号表达式符号变量和符号表达式 x=sym(‘x’):建立符号变量x,变量x的值 为单引号内的字符或字符串;
x=sym('x', 'real'):设定符号变量是实型变量,此时conj(x)=x;
x=sym(‘x’, ‘unreal’):设定符号变量为非实变量;
X=sym(‘表达式’):创建符号表达式nullsym(‘x’,’real’)
sym(‘x+iy’)
real(z)
sym(‘x’,’unreal’)
real(z)
f1=sym(‘a*x^2+b*x+c’)
null syms命令:可以使用syms命令来一次性的定义多个符号变量;
syms(‘arg1’,’arg2’,…)
syms(‘arg1’,’arg2’,…,flag)
syms arg1 arg2...
等价于arg1=sym('arg1'); arg1=sym('arg1');…
syms arg1 arg2 ... flag
等价于arg1=sym('arg1',' flag'); arg1=sym('arg1', 'flag ');…
例如 syms a b c x
f = a*x^2+b*x+c
创建符号矩阵创建符号矩阵采用sym命令
A=sym('[4+x x^2 x+y; x^3*5 x*6 b*x] ')
采用syms命令
syms x y b;
A=[4+x x^2 x+y; x^3*5 x*6 b*x]
null 符号矩阵的引用和修改
例如:
syms a b c d x
A=[a a+c d+b; c d a+c; a+c+d c c+d*a]
syms eee ddd;
A(1,3)=eee;
A(3,:)=ddd;
A
符号矩阵的基本运算符号矩阵的基本运算四则运算:符号矩阵的语法规则与数值运算的语法规则是一样的。
例:
syms a b c d, A= sym('[a b;c d] '), B=sym('[a+b a-b;c+d c-d] ')
C=A+B, C1=A-B, C2=A*B, C3=A.*B, C4=A/B, C5=A./B, C6=A^2, C7=A.^2
注意:符号的乘方运算S^p,若S为符号表达式,p 可以为符号表达式或数值表达式;若S为符 号矩阵,则p必须是整数。null符号矩阵的线性代数运算:和数值矩阵一样,可对符号矩阵进行线性运算,如:求符号矩阵的行列式值、求逆、求方阵的特征值和特征向量等。
syms a b c d;
A=[a b,c d]
a=svd(A)
H=hilb(2), H1=sym(H), inv(H1), del=det(H1)符号对象与数值对象的转换符号对象与数值对象的转换转换为数值类型
X=double(S):将S转换为数值变量。当 S为符号变量时,若其中有非数字的符号,则出错;当S为字符变量时,则给出相应的ASCII码值。
例:
x=[sym(2) sym(3)]; x1=[sym(2) sym('b')];
y=['a' 2 'b'];
double(x), double(y)
double(x1)
nullx=numeric(S):将S转换为数值型变量。无论S是字符型还是符号型变量
例:
x=[sym(2) sym(3)]
A=numeric(x)
x1='a'
A1=numeric(x1)
y='2 '
B= numeric(y) null
转换为符号类型
命令:S=sym(f)
例:
A=[2/5 4/0.8 sqrt(2);0.3 0.33 log(4)]
SA=sym(A)
null转换为字符类型
c=int2str(x):将整数转化为字符变量。当x为非整实数时,进行四舍五入后再转换。
c=num2str(x):将x转换为字符型变量。
例如
x=3.1415
c=int2str(x)
c1=num2str(x)
符号表达式的操作和转换符号表达式的操作和转换 自由变量的确定原则
MATLAB将基于以下原则选择一个自由变量:
小写字母i和j不能作为自由变量。
符号表达式中如果有多个字符变量,则按照以下顺序选择自由变量:首先选择x作为自由变量;如果没有x,则选择在字母顺序中最接近x的字符变量;如果与x相同距离,则在x后面的优先。
大写字母比所有的小写字母都靠后。 null findsym函数——确定自由符号变量
如果不确定符号表达式中的自由符号变量,可以用findsym函数来自动确定。
findsym(EXPR,n)
EXPR可以是符号表达式或符号矩阵;n为按顺序得出符号变量的个数,当n省略时,则不按顺序得出EXPR中所有的符号变量
例如:
f=sym('a*x^2+b*x+c')
findsym(f) %得出所有的符号变量 符号表达式的化简 符号表达式的化简 同一个数学函数的符号表达式的可以表示成三种形式,例如以下的f(x)就可以分别表示为:
多项式形式的表达方式:f(x)=x3+6x2+11x-6
因式形式的表达方式:f(x)=(x-1)(x-2)(x-3)
嵌套形式的表达方式:f(x)=x(x(x-6)+11)-6
例如:
f=sym('x^3-6*x^2+11*x-6') %多项式形式
g= sym('(x-1)*(x-2)*(x-3)') %因式形式
h= sym(' x*(x*(x-6)+11)-6') %嵌套形式 nullpretty函数:给出排版形式的输出
collect函数 :合并同类项多项式
expand函数 :展开为多项式形式
horner函数:表示为嵌套形式
factor函数:表示为因式形式
simplify函数 :利用代数恒等式进行化简
simple函数 :给出多种化简形式,并寻求包含最少数目的表达式简化形式null例如:
f=sym('x^3-6*x^2+11*x-6')
g= sym('(x-1)*(x-2)*(x-3)')
h= sym('x*(x*(x-6)+11)-6')
f1=sym('x^3+2*x^2*y+4*x*y+6')
y=sym('cos(x)^2-sin(x)^2')
pretty(f)
collect(g)
collect(f1, 'y') %按y来合并同类项
expand(g)
horner(f)
factor(f)
simplify(y)
simple(y)
符号积分符号积分积分有定积分和不定积分,运用函数int可以求得符号表达式的积分。
int(f,’t’) %求符号变量t的不定积分
int(f,’t’,a,b) %求符号变量t的定积分
int(f,’t’,’m’,’n’) %求符号变量t的定积分
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
:t为符号变量,当t省略则为默认自由变量;a和b为数值,[a,b]为积分区间;m和n为符号对象,[m,n]为积分区间
例:
f=sym('cos(x)');
int(f) %求不定积分
int(f,0,pi/3) %求定积分
int(f,'a','b') %求定积分
int(int(f)) %求多重积分 可视化的符号函数分析界面可视化的符号函数分析界面本章介绍两个进行数学分析的可视化界面:单变量函数分析界面和泰勒级数逼近分析界面。
单变量函数分析界面
该分析界面用于考察两个一元函数各自性质及其相关关系。
命令格式:
funtool可视化的符号函数分析界面可视化的符号函数分析界面泰勒级数逼近分析界面
命令格式:
taylortool