版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3.1符号变量及表达式
MATLAB中定义的数据默认为数值类型,要进行符号运算必须先将数值型的数字或变量转为符号类型.3.1.1符号变量的创建
符号对象的类型在MATLAB中称为sym,而且定义符号对象的常见命令就是sym.sym函数常见的调用语法如下:①x=sym('x')创建符号变量x②symsvar1...varN创建符号变量var1...varN③
A=sym('a',[mn])创建一个符号矩阵A,矩阵的维度为m×n.若m=n,则可以简写为A=sym('a',n),还可以利用%d设置元素下标的格式.④sym(num)将数值常数或数值矩阵转换成符号常数或符号矩阵⑤A=double(B)将符号常数或符号矩阵转换成数值常数或数值矩阵注:sym函数一次只能定义一个符号变量,使用不方便.而syms函数一次可以定义一个符号变量,也可以一次定义多个符号变量.syms函数使用起来比sym函数更加简洁.例3.1使用syms函数创建符号变量.>>symsxyz>>whosNameSizeBytesClassAttributesx1x18symy1x18symz1x18sym例3.2创建符号矩阵.>>A=[1/3+5,pi/4;sqrt(5),pi+exp(2)]%A是数值矩阵A=5.33330.7854
2.236110.5306>>B=sym(A)B=[16/3,pi/4][5^(1/2),5928228224727581/562949953421312]%B是符号矩阵>>double(B)%将B转换成数值矩阵,即为Aans=5.33330.78542.236110.5306>>c=sym('a',[2,3])c=[a1_1,a1_2,a1_3][a2_1,a2_2,a2_3]>>A=sym('a',[24])A=[a1_1,a1_2,a1_3,a1_4][a2_1,a2_2,a2_3,a2_4]>>A=sym('a%d%d',[24])A=[a11,a12,a13,a14][a21,a22,a23,a24]>>A=hilb(3)A=1.00000.50000.33330.50000.33330.25000.33330.25000.2000>>A=sym(A)A=[1,1/2,1/3][1/2,1/3,1/4][1/3,1/4,1/5]3.1.2符号表达式的创建创建符号表达式,首先创建符号变量,然后使用变量进行操作.例定义符号表达式.>>symsabcx>>f=a*x^2+b*x+cf=a*x^2+b*x+c在表3-1中列出了符号表达式的常见格式与易错写法.正确格式错误格式symsx;x+1sym('x+1')exp(sym(pi))sym('exp(pi)')symsf(var1,…,varN)f(var1,…,varN)=sym(‘f(var1,…,varN)’)表3-1符号表达式的常见格式与易错写法3.2符号表达式的运算1.基本运算
(1)符号矩阵的四则运算:+,-,*,\,/.和数值矩阵的四则运算完全相同.
(2)符号矩阵的其他一些基本运算:和数值矩阵的运算格式相同,包括转置(')、行列式(det)、逆(inv)、秩(rank)、幂(^)和指数(exp)等运算.2.符号表达式的化简与替换
(1)符号表达式的因式分解factor(S)因式分解符号矩阵S的各个元素,如果S包含的所有元素为整数,则最佳因式分解式将被计算.例3.4因式分解.>>symsx>>factor(x^9-1)ans=[x-1,x^2+x+1,x^6+x^3+1]>>f=factor(200)f=22255>>prod(f)ans=200(2)符号表达式的展开expand(S)对符号矩阵的各个元素的符号表达式进行展开例3.5将(x+1)3和sin(x+y)展开.
>>symsxy
>>expand((x+1)^3)
ans=
x^3+3*x^2+3*x+1
>>expand(sin(x+y))ans=
sin(x)*cos(y)+cos(x)*sin(y)可知(x+1)3=x3+3x2+3x+1,
sin(x+y)=sin(x)*cos(y)+cos(x)*sin(y)(3)合并符号表达式的同类项collect(S,v)将符号矩阵S中的各个元素v的同幂项系数合并.
例3.6将x2y+yx-x2-2x合并同类项.
>>collect(x^2*y+y*x-x^2-2*x)
ans=
(y-1)*x^2+(y-2)*x
可知x2y+yx-x2
-2x=(y-1)x2+(y-2)x.(4)符号表达式的化简simplify(S)简化符号表达式S例3.7simplify函数的使用.
>>symsx
>>simplify(cos(x)^2+sin(x)^2)
ans=
1
>>simplify((1-x^2)/(1-x))
ans=
x+1(5)符号表达式的替换subs(s,old,new)将符号表达式s中的old变量替换为new变量.例3.8subs函数的使用.
>>symsab
>>subs(a+b,a,5)
ans=
b+5例3.9验证三角函数等式>>symsab>>y=simplify(cos(a)*cos(b)-sin(a)*sin(b))y=
cos(a+b)3.精度计算
符号表达式与数值表达式分别使用函数digits和函数vpa进行精度设置.
digits(n)
设置n个有效数字的近似解精度,.vpa(s,d)
求符号表达式s的数值解,该数值解的有效数字位数由d指定.如果不指定d,则求digits函数设置的精度的数值解.例3.10将
显示4位有效数字,
显示8位有效数字.>>digits(4);>>a=vpa(1/3)a=
0.3333>>vpa(sqrt(7),8)ans=
2.64575134.符号方程求解
MATLAB中利用solve函数求解线性方程组的符号解析解.
S=solve(eqn,var)对变量var求解方程eqn,若var缺省,默认求解一元方程
Y
=solve(eqns,vars)对变量vars求解方程组eqns例3.11求解方程>>symsabcx>>eqn=a*x^2+b*x+c==0%注意方程的表示方式eqn=
a*x^2+b*x+c==0>>S=solve(eqn)S=
-(b+(b^2-4*a*c)^(1/2))/(2*a)
-(b-(b^2-4*a*c)^(1/2))/(2*a)方程的解为例3.12求解如下线性方程组>>symsxyz>>eqn1=x-2*y-z==4;>>eqn2=2*x-10*y+z==5;>>eqn3=3*x+8*y==6;>>s=solve(eqn1,eqn2,eqn3,x,y,z)s=
包含以下字段的struct:
x:[1×1sym]
y:[1×1sym]
z:[1×1sym]>>[s.xs.ys.z]ans=
[12/5,-3/20,-13/10]%得到的是解析解可知方程组的解为4.1二维图形
二维图形是在X-Y平面上绘制的图形,主要是由一些基本图形元素组成,如点、直线、圆、多边形等几何元素.MATLAB系统提供了绘制曲线函数plot.由于MATLAB作图是通过描点、连线来实现的,故在绘制曲线之前,需要先取图形上的一系列点的坐标,即横坐标与纵坐标,然后利用plot函数绘制曲线.plot(X,Y,LineSpec)X和
Y都是向量,则它们的长度必须相同.绘制以数据(Xi,Yi)为节点的折线图.其中LineSpec用于设置线型、标记符号和颜色,见表4.1.plot(X1,Y1,LineSpec1,...,Xn,Yn,LineSpecn)同时绘制多条折线,相当于绘制plot(X1,Y1,LineSpec1),……plot(Xn,Yn,LineSpecn)注意:表4-1中属性可以全部指定,也可以只指定其中某几个,并且排列顺序任意.表4-1图形的线型、标记符号和颜色
数学上,绘制[a,b]区间上的函数y=f(x)图形,有以下步骤:
①找点:在x轴上的找点x1,x2,x3,……
②计算函数值:计算这些点处的函数值y1=f(x1),y2=f(x2),y3=f(x3),……
③描点:在坐标系中画出这些离散点;
④连线:用直线或曲线连接这些点,得到函数的大致图形.在MATLAB中,绘制平面图形可以采用以下步骤:
①给出x轴上的离散点列:x=[a:step:b];
②计算函数值:y=f(x);
③绘图:plot(x,y)例4.1绘制0到2之间的正弦函数图象.>>x=0:pi/20:pi*2;>>y=sin(x);>>plot(x,y,'r-*')%设置线型是实线,标记点是型号,颜色是红色得到图形如图4-1.图4-1(2)图形的属性
MATLAB可以用subplot划分绘图区域,调用格式如下:subplot(m,n,p)将一个绘图窗口分割成m*n个子区域,并按行从左至右依次编号.p表示第p个绘图子区域.例4.2使用subplot绘图.
>>x=-pi:pi/10:pi;
>>subplot(2,2,1);plot(x,sin(x));
>>subplot(2,2,2);plot(x,cos(x));
>>subplot(2,2,3);plot(x,x.^2);
>>subplot(2,2,4);plot(x,exp(x));图4-2subplot绘图
在绘制图形的过程中,若对图形加一些说明,如图形名称、曲线标注、坐标轴显示等,一种方法是使用MATLAB图形命令进行处理,表4-2给出了常用图形说明命令;另外一种方法,可以在图形操作窗口下,选择菜单栏中Insert选项,再按提示进行操作即可.命令意义title添加图形标题xlabel添加x坐标轴标注ylabel添加y坐标轴标注xlim设置当前坐标区或图的x坐标轴范围ylim设置当前坐标区或图的y坐标轴范围axis指定当前坐标区的范围text添加数据点标注legend添加图例holdon保持当前窗口的图像gridon对图形加网格控制figure新建绘图窗口表4-2常用图形命令例4.3常用图形命令.
x=linspace(0,2*pi,100);
y1=sin(x);
y2=cos(x);
plot(x,y1,'r-',x,y2,'k:')
axis([02*pi-11])
title('正弦和余弦曲线')
xlabel('x')
ylabel('y')
text(pi,0,'\leftarrowsin(x)')
text(pi/2,0,'\leftarrowcos(x)')
legend('sin(x)','cos(x)')
得到的图形见图4-3.
图4-3正弦和余弦曲线
例4.4随机抽取了11个城市居民家庭关于收入与食品支出的样本,数据见表4-3,绘制出收入x与支出y的关系图.收入x(元)8293105130144150160180270300400支出y(元)758592105120130145156200200240表4-3收入x与支出y的关系解x=[8293105
130
144
150
160
180
270
300
400];
y=[758592
105
120
130
145
156
200
200
240];
plot(x,y,'bo')
title('城市居民家庭消费情况')
xlabel('收入x(元)')
ylabel('支出y(元)')
gridon关系图如图4-4所示.
图4-4城市居民家庭消费情况2.符号函数绘图
fplot(f,xinterval,LineSpec)
在指定区间xinterval=[xminxmax]绘制由函数
y=f(x)
定义的曲线,LineSpec设置线型、标记符号和线条颜色,见表4-1.
fplot的绘图数据点是自适应产生的.在函数平坦处,所取数据点比较稀疏;在函数变化剧烈处,它将自动取较密的数据点.
例4.5绘制参数化曲线x=cos(3t)和y=sin(2t).
解>>xt=@(t)cos(3*t);
>>yt=@(t)sin(2*t);
>>fplot(xt,yt)
得到图形如图4-5.图4-5绘制参数曲线例4.6绘制分段函数.解新建脚本文件f.m,输入以下MATLAB命令后保存并执行后得到图4-6.fplot(@(x)exp(x),[-30],'b')holdonfplot(@(x)cos(x),[03],'b')holdoffgridon图4-6分段函数例4.7利用plot、fplot函数绘制
的图像,并作比较.解MATLAB程序代码如下
subplot(2,1,1)
x=-1:.1:1;y=sin(1./x);
plot(x,y)
subplot(2,1,2)
fplot(@(x)sin(1./x),[-1,1])得到的图形见图4-7.图4-7利用plot、fplot函数绘图
从图4-7可以看出plot函数根据指定的数据点,但是
在x=0处没有意义,所以不能绘出x=0处的点.对于导数变化比较大的函数,用fplot比plot指令要更真实.4.1.2其他绘图函数polar(t,r,‘s’)在极坐标下绘制图形,t为极角theta,r为极径rho.s表示线条的线型、标记符号和颜色等,s可省略.fill(X,Y,ColorSpec)
填充
X和
Y
指定的二维多边形(颜色由
ColorSpec
指定)其他绘图函数见表4-4.函数名功能函数名功能area填充面积图pie圆饼图bar条形图plotmatrix散点图矩阵barh水平柱图ribbon以三维带形式画二维线comet慧星形轨线stem火柴杆图errorbar误差条形图stairs台阶图gplot以图论方式绘图clabel等高线图仰角标签quiver场图polar极坐标图表4-4其他绘图函数例4.8绘制心形线和四叶玫瑰线.解clf
t=0:pi/100:6*pi;
s1=2*sin(2*t);s2=2*(1-cos(t));
subplot(1,2,1)
polar(t,s1,'.')
title('心形线')
subplot(1,2,2)
polar(t,s2)
title('四叶玫瑰线')得到图形如图4-8.图4-8心形线和四叶玫瑰线例4.9使用
fill
函数创建一个红色八边形.解
t=(1/16:1/8:1)'*2*pi;
x=cos(t);y=sin(t);
fill(x,y,'r')
axissquare得到图形如图4-9.图4-9红色八边形4.2三维图形1.三维曲线
plot3(X,Y,Z,LineSpec)
函数绘出三矩阵的列向量的,其中X,Y,Z为3个大小相同的矩阵.函数给出通过这些向量所表示的点的图形.其中X,Y,Z为3个相同长度的向量.其中LineSpec为定义线型的字符串,形式同plot函数.
plot3(X1,Y1,Z1,LineSpec1,...,Xn,Yn,Zn,LineSpecn)
可为每个X、Y、Z三元组指定特定的线型、标记和颜色.可以对某些三元组指定LineSpec,而对其他三元组省略它.
绘制三维曲线的方法同平面曲线的类似,属性设置见表4-1和4-2.例4.10绘制螺旋线解
t=0:0.5:10*pi;
x=t;y=sin(t);z=cos(t);
plot3(x,y,z,'.-')
title('螺旋线')
xlabel('x');ylabel('y');zlabel('z')得到图形如图4-10.图4-10螺旋线例4.11绘制蓝宝石项链图.解
t=0:0.02*pi:2*pi;
x=sin(t);y=cos(t);z=cos(2*t);
plot3(x,y,z,'bd-')
boxon
view([-82,58])
legend('链','宝石')得到图形如图4-11.图4-11蓝宝石项链图2.三维曲面
MATLAB中利用meshgrid、mesh和surf函数可以方便绘制三维曲面图形.在MATLAB中绘制由函数z=z(x,y)确定的曲面时,首先利用meshgrid产生一个网格矩阵,然后计算函数在各网格点上的值,再利用mesh和surf函数绘制曲面图形.调用格式如下:
[X,Y]=meshgrid(x,y)
x,y为给定的向量,X,Y是网格划分后得到的网格矩阵;
若x=y,则可简写为[X,Y]=meshgrid(x).mesh(X,Y,Z,C)
绘制由X,Y,Z,C所确定的曲面网格面图形.surf(X,Y,Z,C)
绘制由矩阵X,Y,Z,C所确定的曲面图,参数含义同mesh.mesh绘制网格图,surf绘制着色的三维表面图.例4.12使用向量
x
定义的
x
坐标和向量
y
定义的
y
坐标创建二维网格坐标,并在二维网格上计算函数z=
x2+y2.解
>>x=1:2;
>>y=1:3;
>>[X,Y]=meshgrid(x,y)
X=
12
12
12Y=112233>>Z=X.^2+Y.^2Z=25581013
例4.12中例用直线x=1,x=2,y=1,y=2,y=3对[1,2]×[1,3]进行网格划分,得到网格点(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),见图4-12.例4.12中的X和Y是同型矩阵,分别存储网格点的横坐标和纵坐标.利用X和Y的点幂运算计算网格点对应的函数值矩阵Z,即X中的(i,j)元素和Y中的(i,j)元素进行计算得到Z中的元素(i,j),如当X(3,1)=1,Y(3,1)=3时,Z(3,1)=10.
Z也和X、Y是同型矩阵.图4-12meshgrid绘制二维网格例4.13(1)利用mesh绘制巴拿马草帽(2)利用surf绘制椭球面解(1)x=[-8:0.5:8];y=[-8:0.5:8];
[X,Y]=meshgrid(x,y);
r=sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
mesh(X,Y,Z)
title(‘巴拿马草帽')
xlabel('x');ylabel('y');zlabel('z')得到图形见图4-13a.图4-13a(2)clear
r=linspace(0,pi,100);t=linspace(0,2*pi,100);
[r,t]=meshgrid(r,t);
X=3*sin(r).*cos(t);Y=2*sin(r).*sin(t);Z=cos(r);
surf(X,Y,Z)
axisequal
xlabel('x');ylabel('y');zlabel('z')
title('椭球面')
得到图形见图4-13b.图4-13bMATLAB命令如下:t=0:0.1:2*pi;r=-3:0.1:3;[t,r]=meshgrid(t,r);x=r.*cos(t);y=r.*sin(t);z=r;mesh(x,y,z)holdonu=-pi:0.1:pi;v=-3:0.1:3;[u,v]=meshgrid(u,v);x1=1+cos(u);y1=sin(u);z1=v;mesh(x1,y1,z1)得到图形如图4-14.图4-14锥面和柱面的相交图形解MATLAB命令如下:r=-1/2:0.1:1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版新教材高考地理一轮复习课时质量评价15生物圈与植被分析土壤形成的原因含解析鲁教版
- 2023届新高考新教材化学鲁科版一轮学案-第10章第34讲 物质的分离和提纯
- 玉溪师范学院《合唱与指挥》2021-2022学年第一学期期末试卷
- 2024年互联网信息技术服务项目发展计划
- 玉溪师范学院《城市地理学》2022-2023学年第一学期期末试卷
- 2024废铅酸蓄电池购销合同
- 贵州省毕节市赫章县2024年高三5月综合练习数学试题试卷
- 盐城师范学院《羽毛球》2021-2022学年第一学期期末试卷
- 2024出境旅游合同签署范本出境旅游合同简单范本2
- 2024人事委托代理合同范本
- 可口可乐广告案例分析全解
- 体育教学设计排球技巧与比赛规则
- TGXAS-原叶鲜奶茶编制说明
- DL∕T 5754-2017 智能变电站工程调试质量检验评定规程
- Unit6ADayintheLife教学设计2024-2025学年人教版英语七年级上册
- 天津2024年天津市第一中心医院人事代理制工作人员招聘 笔试历年典型考题寄考点剖析含答案附详解
- 新生儿呼吸窘迫综合征课件
- 2024年新修订公司法知识竞赛题库及答案
- 部编版九年级语文上、下册古诗词练习及答案
- 2024年《考评员》应知应会考试题库(附答案)
- 2024新版同股不同权协议书完整版
评论
0/150
提交评论