matlab符号运算Word文档格式.docx
《matlab符号运算Word文档格式.docx》由会员分享,可在线阅读,更多相关《matlab符号运算Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
MATLAB提供了另一个函数syms,一次可以定义多个符号变量。
syms函数的一般调用格式为:
syms
符号变量名1符号变量名2…符号变量名n
用这种格式定义符号变量时不要在变量名上加字符串分界符(‘),变量间用空格而不要用逗号分隔。
2.建立符号表达式
含有符号对象的表达式称为符号表达式。
建立符号表达式有以下3种方法:
(1)利用单引号来生成符号表达式。
(2)用sym函数建立符号表达式。
(3)使用已经定义的符号变量组成符号表达式。
9.1.2
符号表达式运算
1.符号表达式的四则运算
符号表达式的加、减、乘、除运算可分别由函数symadd、symsub、symmul和symdiv来实现,幂运算可以由sympow来实现。
2.符号表达式的提取分子和分母运算
如果符号表达式是一个有理分式或可以展开为有理分式,可利用numden函数来提取符号表达式中的分子或分母。
其一般调用格式为:
[n,d]=numden(s)
该函数提取符号表达式s的分子和分母,分别将它们存放在n与d中。
3.符号表达式的因式分解与展开
MATLAB提供了符号表达式的因式分解与展开的函数,函数的调用格式为:
factor(s):
对符号表达式s分解因式。
expand(s):
对符号表达式s进行展开。
collect(s):
对符号表达式s合并同类项。
collect(s,v):
对符号表达式s按变量v合并同类项。
4.符号表达式的化简
MATLAB提供的对符号表达式化简的函数有:
simplify(s):
应用函数规则对s进行化简。
simple(s):
调用MATLAB的其他函数对表达式进行综合化简,并显示化简过程。
5.符号表达式与数值表达式之间的转换
利用函数sym可以将数值表达式变换成它的符号表达式。
函数numeric或eval可以将符号表达式变换成数值表达式。
9.1.3
符号表达式中变量的确定
MATLAB中的符号可以表示符号变量和符号常量。
findsym可以帮助用户查找一个符号表达式中的的符号变量。
该函数的调用格式为:
findsym(s,n)
函数返回符号表达式s中的n个符号变量,若没有指定n,则返回s中的全部符号变量。
9.1.4
符号矩阵
符号矩阵也是一种符号表达式,所以前面介绍的符号表达式运算都可以在矩阵意义下进行。
但应注意这些函数作用于符号矩阵时,是分别作用于矩阵的每一个元素。
由于符号矩阵是一个矩阵,所以符号矩阵还能进行有关矩阵的运算。
MATLAB还有一些专用于符号矩阵的函数,这些函数作用于单个的数据无意义。
例如
transpose(s):
返回s矩阵的转置矩阵。
determ(s):
返回s矩阵的行列式值。
其实,曾介绍过的许多应用于数值矩阵的函数,如diag、triu、tril、inv、det、rank、eig等,也可直接应用于符号矩阵。
9.2.1
符号极限
limit函数的调用格式为:
(1)limit(f,x,a):
求符号函数f(x)的极限值。
即计算当变量x趋近于常数a时,f(x)函数的极限值。
(2)limit(f,a):
由于没有指定符号函数f(x)的自变量,则使用该格式时,符号函数f(x)的变量为函数findsym(f)确定的默认自变量,即变量x趋近于a。
(3)limit(f):
符号函数f(x)的变量为函数findsym(f)确定的默认变量;
没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。
(4)limit(f,x,a,'
right'
):
求符号函数f的极限值。
'
表示变量x从右边趋近于a。
(5)limit(f,x,a,‘left’):
‘left’表示变量x从左边趋近于a。
例9-1
求下列极限。
极限1:
symsamx;
f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/(x+a);
limit(f,x,a)
ans=
(1/2*a*exp(sin(a))+1/2*a-exp(tan(a))+1)/a
极限2:
symsxt;
limit((1+2*t/x)^(3*x),x,inf)
exp(6*t)
极限3:
symsx;
f=x*(sqrt(x^2+1)-x);
limit(f,x,inf,'
left'
1/2
极限4:
f=(sqrt(x)-sqrt
(2)-sqrt(x-2))/sqrt(x*x-4);
limit(f,x,2,'
-1/2
9.2.2
符号导数
diff函数用于对符号表达式求导数。
该函数的一般调用格式为:
diff(s):
没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数。
diff(s,'
v'
以v为自变量,对符号表达式s求一阶导数。
diff(s,n):
按findsym函数指示的默认变量对符号表达式s求n阶导数,n为正整数。
n):
以v为自变量,对符号表达式s求n阶导数。
例9-2
求下列函数的导数。
9.2.3
符号积分
符号积分由函数int来实现。
int(s):
没有指定积分变量和积分阶数时,系统按findsym函数指示的默认变量对被积函数或符号表达式s求不定积分。
int(s,v):
以v为自变量,对被积函数或符号表达式s求不定积分。
int(s,v,a,b):
求定积分运算。
a,b分别表示定积分的下限和上限。
该函数求被积函数在区间[a,b]上的定积分。
a和b可以是两个具体的数,也可以是一个符号表达式,还可以是无穷(inf)。
当函数f关于变量x在闭区间[a,b]上可积时,函数返回一个定积分结果。
当a,b中有一个是inf时,函数返回一个广义积分。
当a,b中有一个符号表达式时,函数返回一个符号函数。
例9-3
求下列积分。
9.2.4
积分变换
常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。
1.傅立叶(Fourier)变换
在MATLAB中,进行傅立叶变换的函数是:
fourier(f,x,t):
求函数f(x)的傅立叶像函数F(t)。
ifourier(F,t,x):
求傅立叶像函数F(t)的原函数f(x)。
例9-4
求函数y=的傅立叶变换及其逆变换。
2.拉普拉斯(Laplace)变换
在MATLAB中,进行拉普拉斯变换的函数是:
laplace(fx,x,t):
求函数f(x)的拉普拉斯像函数F(t)。
ilaplace(Fw,t,x):
求拉普拉斯像函数F(t)的原函数f(x)。
例9-5
计算y=x3的拉普拉斯变换及其逆变换。
3.Z变换
当函数f(x)呈现为一个离散的数列f(n)时,对数列f(n)进行z变换的MATLAB函数是:
ztrans(fn,n,z):
求fn的Z变换像函数F(z)。
iztrans(Fz,z,n):
求Fz的z变换原函数f(n)。
例9-6
求数列fn=e-2n的Z变换及其逆变换。
9.3.1
级数符号求和
求无穷级数的和需要符号表达式求和函数symsum,其调用格式为:
symsum(s,v,n,m)
其中s表示一个级数的通项,是一个符号表达式。
v是求和变量,v省略时使用系统的默认变量。
n和m是求和的开始项和末项。
例9-7
求下列级数之和。
9.3.2
函数的泰勒级数
MATLAB提供了taylor函数将函数展开为幂级数,其调用格式为:
taylor(f,v,n,a)
该函数将函数f按变量v展开为泰勒级数,展开到第n项(即变量v的n-1次幂)为止,n的缺省值为6。
v的缺省值与diff函数相同。
参数a指定将函数f在自变量v=a处展开,a的缺省值是0。
例9-8
求函数在指定点的泰勒级数展开式。
9.4.1
符号代数方程求解
在MATLAB中,求解用符号表达式表示的代数方程可由函数solve实现,其调用格式为:
solve(s):
求解符号表达式s的代数方程,求解变量为默认变量。
solve(s,v):
求解符号表达式s的代数方程,求解变量为v。
solve(s1,s2,…,sn,v1,v2,…,vn):
求解符号表达式s1,s2,…,sn组成的代数方程组,求解变量分别v1,v2,…,vn。
例9-9
解下列方程。
9.4.2
符号常微分方程求解
在MATLAB中,用大写字母D表示导数。
例如,Dy表示y'
,D2y表示y'
,Dy(0)=5表示y'
(0)=5。
D3y+D2y+Dy-x+5=0表示微分方程y'
+y'
-x+5=0。
符号常微分方程求解可以通过函数dsolve来实现,其调用格式为:
dsolve(e,c,v)
该函数求解常微分方程e在初值条件c下的特解。
参数v描述方程中的自变量,省略时按缺省原则处理,若没有给出初值条件c,则求方程的通解。
dsolve在求常微分方程组时的调用格式为:
dsolve(e1,e2,…,en,c1,…,cn,v1,…,vn)
该函数求解常微分方程组e1,…,en在初值条件c1,…,cn下的特解,若不给出初值条件,则求方程组的通解,v1,…,vn给出求解变量。
例9-10
求下列微分方程的解。
Trackback:
MATLAB程序设计教程(10)——MATLAB图形句柄
by:
第10章
MATLAB图形句柄
10.1
图形对象及其句柄
10.2
图形对象属性
10.3
图形对象的创建
1.图形对象
MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。
系统将每一个对象按树型结构组织起来。
2.图形对象句柄
MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。
句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。
计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。
MATLAB提供了若干个函数用于获取已有图形对象的句柄。
例10-1
绘制曲线并查看有关对象的句柄。
1.属性名与属性值
MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。
2.属性的操作
set函数的调用格式为:
set(句柄,属性名1,属性值1,属性名2,属性值2,…)
其中句柄用于指明要操作的图形对象。
如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。
get函数的调用格式为:
V=get(句柄,属性名)
其中V是返回的属性值。
如果在调用get函数时省略属性名,则将返回句柄所有的属性值。
3.对象的公共属性
对象常用的公共属性:
Children属性、Parent属性、Tag属性、Type属性、UserData属性、Visible属性、ButtonDownFcn属性、CreateFcn属性、DeleteFcn属性。
例10-2
在同一坐标下绘制红、绿两根不同曲线,希望获得绿色曲线的句柄,并对其进行设置。
10.3.1
图形窗口对象
建立图形窗口对象使用figure函数,其调用格式为:
句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)
MATLAB通过对属性的操作来改变图形窗口的形式。
也可以使用figure函数按MATLAB缺省的属性值建立图形窗口:
figure
或
句柄变量=figure
要关闭图形窗口,使用close函数,其调用格式为:
close(窗口句柄)
另外,closeall命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。
MATLAB为每个图形窗口提供了很多属性。
这些属性及其取值控制着图形窗口对象。
除公共属性外,其他常用属性如下:
MenuBar属性、Name属性、NumberTitle属性、Resize属性、Position属性、Units属性、Color属性、Pointer属性、KeyPressFcn(键盘键按下响应)、WindowButtonDownFcn(鼠标键按下响应)、WindowButtonMotionFcn(鼠标移动响应)及WindowButtonUpFcn(鼠标键释放响应)等。
例10-3
建立一个图形窗口。
该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为450像素点和250像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线。
10.3.2
坐标轴对象
建立坐标轴对象使用axes函数,其调用格式为:
句柄变量=axes(属性名1,属性值1,属性名2,属性值2,…)
调用axes函数用指定的属性在当前图形窗口创建坐标轴,并将其句柄赋给左边的句柄变量。
也可以使用axes函数按MATLAB缺省的属性值在当前图形窗口创建坐标轴:
axes
句柄变量=axes
用axes函数建立坐标轴之后,还可以调用axes函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口:
axes(坐标轴句柄)
MATLAB为每个坐标轴对象提供了很多属性。
Box属性、GridLineStyle属性、Position属性、Units属性、Title属性等。
例10-4
利用坐标轴对象实现图形窗口的任意分割。
利用axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴,从而实现图形窗口的任意分割。
10.3.3
曲线对象
建立曲线对象使用line函数,其调用格式为:
句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,…)
其中对x,y,z的解释与高层曲线函数plot和plot3等一样,其余的解释与前面介绍过的figure和axes函数类似。
每个曲线对象也具有很多属性。
Color属性、LineStyle属性、LineWidth属性、Marker属性、MarkerSize属性等。
例10-5
利用曲线对象绘制曲线。
10.3.4
文字对象
使用text函数可以根据指定位置和属性值添加文字说明,并保存句柄。
句柄变量=text(x,y,z,'
说明文字'
属性名1,属性值1,属性名2,属性值2,…)
其中说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。
除公共属性外,文字对象的其他常用属性如下:
Color属性、String属性、Interpreter属性、FontSize属性、Rotation属性。
例10-6
利用曲线对象绘制曲线并利用文字对象完成标注。
10.3.5
曲面对象
建立曲面对象使用surface函数,其调用格式为:
句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,…)
其中对x,y,z的解释与高层曲面函数mesh和surf等一样,其余的解释与前面介绍过的figure和axes等函数类似。
每个曲面对象也具有很多属性。
EdgeColor属性、FaceColor属性、LineStyle属性、LineWidth属性、Marker属性、MarkerSize属性等。
例10-7
利用曲面对象绘制三维曲面z=sin(x)。
MATLAB程序设计教程(11)——MATLAB图形用户界面设计
第11章
MATLAB图形用户界面设计
11.1
菜单设计
11.2
对话框设计
11.3
图形用户界面设计工具
11.1.1
建立用户菜单
要建立用户菜单可用uimenu函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。
建立一级菜单项的函数调用格式为:
一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)
建立子菜单项的函数调用格式为:
子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)
11.1.2
菜单对象常用属性
菜单对象具有Children、Parent、Tag、Type、UserData、Visible等公共属性,除公共属性外,还有一些常用的特殊属性。
例11-1
建立图11-1所示的图形演示系统菜单。
菜单条中含有3个菜单项:
Plot、Option和Quit。
Plot中有SineWave和CosineWave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。
Option菜单项的内容如图11-1所示,其中Gridon和Gridoff控制给坐标轴加网格线,Boxon和Boxoff控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。
WindowColor控制图形窗口背景颜色。
Quit控制是否退出系统。
11.1.3
快捷菜单
快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。
这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。
在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单,具体步骤为:
(1)利用uicontextmenu函数建立快捷菜单。
(2)利用uimenu函数为快捷菜单建立菜单项。
(3)利用set函数将该快捷菜单和某图形对象联系起来。
例11-2
绘制曲线y=2sin(5x)sinx,并建立一个与之相联系的快捷菜