符号语言简介Word文档格式.doc
- 文档编号:14184270
- 上传时间:2022-10-19
- 格式:DOC
- 页数:13
- 大小:70KB
符号语言简介Word文档格式.doc
《符号语言简介Word文档格式.doc》由会员分享,可在线阅读,更多相关《符号语言简介Word文档格式.doc(13页珍藏版)》请在冰豆网上搜索。
表B-1符号表达式与等效的MATLAB表达式
符号表达式MATLAB符号表达式
‘1/(2*x^n)’
‘1/sqrt(2*x)’
‘cos(x^2)-sin(2*x)’
m=sym(‘[a,b;
c,d]’)
f=int(‘x^3/sqrt(1-x)’,’a’,’b’)
MATLAB符号函数可让用户用多种方法来操作这些表达式。
例如,定义符号表达式:
y=sym('
cos(x)'
)
y=
cos(x)
对符号表达式进行运算
c1=diff(y)%求微分
c1=
-sin(x)
(2)符号常量
不含变量的符号表达式叫做符号常量。
例如
f=sym('
2*4-6'
)%定义符号表达式,不含符号变量
f=
2*4-6
求f的数值(进行数值运算):
f1=numeric(f)
f1=
2
进行符号运算:
f2=f+1
f2=
3
(3)符号变量
当字符表达式中含有多于一个的变量时,只有一个变量是独立变量,其余的文字符号作为常量处理。
如果用户不指定哪一个变量是独立变量,MATLAB将基于以下规则选择一个独立变量:
·
除去i和j的小写字母,表达式中如果没有其他字母,选择x作为独立变量;
如果有多个字符变量,选择在字母顺序中最接近x的字符变量;
如果有相连的字母,选择在字母表中较后的那一个。
例如,键入:
diff('
sin(x)+1'
)%只含有一个字符变量,该字符就是独立变量
ans=
键入:
sin(a)+b'
)%含有两个字符变量,字母表中靠后的是独立变量
1
3*y+z'
)%含有两个字符变量,接近x的是独立变量
2符号表达式运算
一旦建立了一个符号表达式,符号运算功能可以完成如提取表达式的一部分、合并两个表达式、求表达式的数值以及表达式的加、减、乘、除等运算。
(1)提取分子和分母
如果表达式是一个有理分式(两个多项式之比),或是可以展开为有理分式(包括那些分母为1的分式)可利用numden命令来提取分子或分母,必要时还可以进行表达式合并。
例如,
m=sym('
x^2'
)%定义有理分式m
m=
x^2
(2)代数运算
很多标准的代数运算可以在符号表达式上执行,命令symadd,symsub,symmul和symdiv可以加、减、乘、除两个表达式,sympow将一个表达式表示为另一个表达式的幂次。
f='
2*x-5'
%定义符号表达式f
2*x-5
g='
x^2-x+7'
%定义符号表达式g
g=
x^2-x+7
symadd(f,g)%求f+g
x+2+x^2
(3)高级运算
符号表达式的高级运算包括表达式的复合、求逆函数、求前n-1项和等。
其中,
·
命令compose把f(x)和g(x)复合成f((g(x))。
)
命令finverse求表达式的逆函数。
表达式f(x)的逆函数g(x)满足g(f(x))=x。
命令finverse给出表达式的逆函数,如果解不唯一,就给出警告。
p=sym('
e^x'
p=
e^x
finverse(p)
log(x)/log(e)
结果相当于ln(x),因为ln(e^x)=x。
命令symsum求表达式的前n-1项和。
有下面四种形式:
symsum(f)%求前x-1项和
1/3*x^3-1/2*x^2+1/6*x
(4)函数变换
MATLAB的符号运算功能,可以将符号表达式变换成数值或反之。
有些符号函数可返回数值。
命令sym可将MATLAB的一般(数值)表达式转换为符号表达式,前面已经作过介绍。
函数numeric的功能正好相反,它把一个符号常数(无变量符号表达式)变换为一个数值。
numeric('
1+2^2'
5
3微分和积分
微分和积分是微积分学研究和应用的核心,并广泛地用在许多工程学科。
MATLAB符号运算功能可以解决许多这类问题。
(1)微分
符号表达式的微分利用命令diff完成,有下面四种形式:
p='
a*x^2+b*x'
%定义符号表达式p
a*x^2+b*x
diff(p)%对缺省变量x求微分
2*a*x+b
(2)积分
符号运算的积分命令为int(f),其中f是一个符号表达式。
积分的目的是求出另一个符号表达式P,使其微分满足diff(P)=f。
积分命令有多种表达形式,例如:
cos(2*x)+s^2'
%建立符号表达式f
cos(2*x)+s^2
int(f)%对x求积分
1/2*sin(2*x)+s^2*x
4符号表达式画图
MATLAB提供了命令ezplot,将符号表达式可视化。
对于一个自变量的函数,可视化实际上是求解自变量各点上的函数值并绘图的过程。
y='
2*x^2-3*x+10'
2*x^2-3*x+10
键入不同命令:
ezplot(y)%程序自动选择自变量范围绘图
ezplot(y,[-1010])%确定自变量范围绘图
绘图结果如图B-1,图B-2所示,表明了同一个函数不同的自变量范围的图形。
图B-1符号表达式画图,自动选择小x范围图B-2符号表达式画图,给定范围
5符号表达式的简化
对于一些冗长繁复、难以理解的符号表达式,MATLAB提供了许多方法可以将其进行简化、约分、合并同类项等处理,使表达式变得更简洁易懂。
包括:
pretty命令,该命令以类似于数学课本上的形式(如有理分式)来显示符号表达式。
collect命令可以合并同类项,给出降幂排列形式
horner命令可将降幂排列的多项式变成嵌套形式
factor命令将表达式分解因式
expand命令展开表达式,给出降幂排列形式
simplify命令将表达式进行简化
Simplify是一个功能强大、通用的工具。
它利用各种类型的代数恒等式,包括求和、积分和分数幂、三角、指数和log函数等来简化表达式。
simple命令可在简化基础上进一步给出多种简化形式
符号表达式的简化是很有用的工具,但由于简化方式不同,有时会产生不同的答案。
在符号工具箱内的simple命令可以试用几种方式进行简化,然后选择最简形式。
6可变精度算术运算
计算机内的数值计算精度受到每次计算结果所保留的位数(字长、字节数)的限制,例如如果保留位数是16位,则第17位以后的数据将被舍去,所以任何数值运算都会引入舍入误差,重复多次的数值运算还会造成累计误差。
而MATLAB的符号运算是对符号表达式的运算,结果是非常准确的,因为它们不需要进行数值运算,所以无舍入误差。
对符号运算结果用函数eval或numeric求其数值,所以仅在结果转换时会引入一次性的舍入误差。
原理上,符号运算可以实现任何数位的运算,但当保留位数增加时,每次计算就需要附加时间和计算机内存。
Maple的缺省位数为16位精度,命令digits给出保留位数的当前值。
命令digits(n)可以改变缺省位数,其中n是所期望精度的数位。
用这种方法增加精度的副作用是,每个随后进行的Maple函数的计算都以新的精度为准,增加了计算时间。
计算结果的显示不会改变,只有所用的Maple函数的缺省精度受到影响。
另外一个函数vpa可以用缺省的精度或任何指定的精度实行单个符号表达式的计算,以同样的精度来显示结果,而使全局的digits参数不变。
7符号方程求解
用MATLAB所具有的符号工具箱可以求解符号方程。
(1)解单个代数方程
MATLAB用solve命令求解符号方程。
如果表达式不是一个方程式(不含等号),则在求解之前自动将表达式置成等于0。
它可以求解f(x)=0或y(x)=f(x)两种形式的代数方程。
如果键入命令:
solve('
a*x^2+b*x+c'
)%求二次方程的根
[1/2/a*(-b+(b^2-4*a*c)^(1/2))]
[1/2/a*(-b-(b^2-4*a*c)^(1/2))]
(2)代数方程组求解
solve命令还可以同时求解若干代数方程,语句形式为:
solve(sl,s2,…,sn)对缺省变量求解n个方程;
solve(s1,s2,……,sn,′v1,v2…vn′)对n个未知数v1,v2…vn求解n个方程。
(3)解单个微分方程
用MATLAB符号工具箱的dsovle命令可以求解微分方程。
由于用符号运算解微分方程可以得到解析解,比起一般的数值解,更具有理论研究意义。
在微分方程的表达式中,包含微分符号。
Dsovle命令中用大写字母D来表示求微分,D2、D3等等表示二次、三次重复求微分。
(4)解微分方程组
命令dsolve也可同时处理若干个微分方程式。
8线性代数和矩阵
MATLAB用线性代数求解符号矩阵问题。
(1)建立符号矩阵
符号矩阵和向量是数组,其元素为符号表达式,用sym命令产生。
建立的符号矩阵,用行向量表示。
s=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 符号语言 简介