昆明理工大学MATLAB实验指导书第二次实验资料.docx
《昆明理工大学MATLAB实验指导书第二次实验资料.docx》由会员分享,可在线阅读,更多相关《昆明理工大学MATLAB实验指导书第二次实验资料.docx(16页珍藏版)》请在冰点文库上搜索。
昆明理工大学MATLAB实验指导书第二次实验资料
MATLAB上机指导书
昆明理工大学机电学院
彭用新
2015年3月
实验三符号计算
一、操作部分:
在命令窗口执行命令完成以下运算,记录运算结果。
1.findsym:
帮助我们获取系统定义的自变量
f=sym('sin(a*x+b*y)');findsym(f)
2.numden(获取分子分母),sym2poly,(获取多项式时系数)poly2sym(根据多项式系数获得符号表达式)
[n,d]=numden(sym('x*x+y')+sym('y^2'))
p=sym('2*x^3+3*x^2+4');sym2poly(p)
x=[2,3,0,4];poly2sym(x)
3.collect:
合并同类项;expand:
展开多项式;horner:
分解成嵌套形式;factor:
因式分解;simplify:
对表达式化简
symsxy;collect(x^2*y+y*x-x^2-2*x)
collect((x+y)*(x^2+y^2+1),y)
symsxy;expand((x-2)*(x-4))
symsx;horner(x^3-6*x^2+11*x-6)
symsx;factor(x^3-6*x^2+11*x-6)
symsx;simplify((x^2+5*x+6)/(x+2))
4.finverse:
求得符号函数的反函数。
symsxy;finverse(1/tan(x))
f=x^2+y;finverse(f,y)
finverse(f)
5.compose求符号函数的复合函数
symsxy;f=1/(1+x^2);g=sin(y);compose(f,g)
6.subs:
表达式替换。
symsab;subs(a+b,a,4)
subs(a+b,4)
subs(cos(a)+sin(b),{a,b},{sym('alpha'),2})
subs('x^2+2*y',{'x','y'},{3,4})
7.极限:
limit
symsxt;limit(sin(x)/x)
limit((x-2)/(x^2-4),2)
limit((1+2*t/x)^(3*x),x,inf)
limit(1/x,x,0,'right')
8.微分:
diff
symsabcx;f=sym('a*x^2+b*x+c')
diff(f)
diff(f,2)
diff(f,a)
diff(f,a,2)
9.积分:
int
symsabcx
f=sym('a*x^2+b*x+c')
int(f)
int(f,x,0,2)
int(f,a)
int(int(f,a),x)
10级数:
symsum,taylor
symsk
symsum(1/k,k,1,inf)
symsum(1/(k*(k+1)),k,1,inf)
symsx
taylor(sin(x),x,10)
subs(ans,x,pi/2)
11.solve解符号方程式
f=sym('a*x^2+b*x+c');solve(f)
f1=sym('x+y+z-10=0');
f2=sym('x-y+z=0');
f3=sym('2*x-y-z+4=0');
solve(f1,f2,f3);
[x,y,z]=solve(f1,f2,f3)
12解微分符号方程式:
dsolve,Dy代表dy/dt,D2y代表d2y/dt2。
dsolve('Dy=5')
dsolve('Dy=x','x')
dsolve('D2y=1+Dy')
dsolve('D2y=1+Dy','y(0)=1','Dy(0)=0')
[x,y]=dsolve('Dx=x+y,Dy=2*x','x(0)=0','y(0)=1')
二、使用部分:
利用matlab求解,并记录运行结果
1、计算符号表达式
在
处的值
2、设
为符号变量,
,
,试进行如下运算。
(1)
,
(2)
,
(3)对
进行因式分解
3、指出下面各条语句的输出结果
>>f=sym('2*u');
>>subs(f,'u',2)
>>f2=subs(f,'u','u+2')
>>a=3;
>>subs(f2,'u',a+2)
>>subs(f2,'u','a+2')
>>symsxy
>>f3=subs(f,'u',x+y)
>>subs(f3,[x,y],[1,2])
>>subs(f3,[x,y],[x+y,x+y])
>>f=sym('2*u');
4、化简
5、因式分解:
6、求极限:
7、已知f(x)=ax2+bx+c,求f(x)的微分
8、已知f(x)=ax2+bx+c,求f(x)的积分。
9、
实验四矩阵运算
一、实验目的:
掌握基本的矩阵运算及常用的函数。
二、实验内容:
1、下列运算是否合法,为什么?
如合法,结果是多少?
(1)result1=a'
(2)result2=a*b
(3)result3=a+b
(4)result4=b*d
(5)result5=[b;c']*d
(6)result6=a.*b
(7)result7=a./b
(8)result8=a.*c
(9)result9=a.\b
(10)result10=a.^2
(11)result11=a^2
(12)result11=2.^a
2、用MATLAB求下面的的方程组。
(1)
(2)
3、已知
(1)求矩阵A的秩(rank)
(2)求矩阵A的行列式(determinant)
(3)求矩阵A的逆(inverse)
(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)
4、关系运算与逻辑运算
已知a=20,b=-2,c=0,d=1
(1)r1=a>b
(2)r2=a>b&c>d
(3)r3=a==b*(-10)
(4)r4=~b|c
三、思考题
求y=?
(用formatlong查看y的值)
预习MATLAB图形绘制基础
一、实习目的
1、进一步熟悉M文件调试过程
2、熟练掌握MATLAB二维曲线的绘制
3、掌握图形的修饰
二、实习内容
1、基本命令:
plot(数据作图、函数作图),ezplot(简易作图),fplot(简易作图)
(1)plot(x,y,’s’)s用来表示色彩、线型、点型
例3.1用plot绘制y=sinx/x的图形
x=-2*pi:
pi/10:
2*pi;
y=sin(x)./x;%准备数据
plot(x,y)%用plot作图
注意x=0处的图形
例3.2x=-2*pi:
pi/10:
2*pi;
x=x+(x==0)*eps;
y=sin(x)./x;%(准备数据,处理分母零点))
plot(x,y)%(用plot作图):
例3.3画出
包罗线。
t=(0:
pi/100:
pi);
y1=sin(t);y=-sin(t);
y2=sin(t).*sin(9*t);t3=pi*(0:
9)/9;
y3=sin(t3).*sin(9*t3);
plot(t,y1,'r:
',t,y,'r:
',t,y2,'b',t3,y3,'bo'),axis([0,pi,-1,1])
gtext(‘该点数值x’)
运行结果见图3-1。
(2)ezplot用作图:
ezplot(‘sin(x)/x’,[-4*pi,4*pi])
运行结果如图3-2
(3)fplot用作图:
fplot(‘sin(x)/x’,[-2*pi,2*pi])
图3-1
图3-2
2、基本绘图控制参数:
设置线型、线色、数据点形
(1)、曲线点型、线色允许设置值
线型
符号
-
:
-.
--
含义
实线
虚线
点划线
双划线
线色
符号
b
g
r
c
m
y
k
w
含义
蓝
绿
红
青
品红
黄
黑
白
(2)、数据点形常用设置值
符号
.
o
x
+
*
s
d
p
含义
实心黑点
空心圆圈
叉字符
十字符
八线符
方块符
菱形符
五角星符
(3)、坐标轴控制(axis)、分格线(grid)
(4)、图形标注:
坐标轴名(label)、图形标题(title)、图例(legend)、图形说明(text,gtext),格式如下:
title(‘s’)书写图形标题
xlabel(‘s’)横坐标轴名
ylabel(‘s’)纵坐标轴名
legend(‘s1’,’s2’,…)绘制曲线所用线型、色彩、或数据点型图例
text(x1,y1,’s’)在图面(x1,y1)坐标处书写字符注释
gtext(‘s’)用鼠标选择书写字符注释的位置
(5)、常用坐标控制命令
指令
含义
指令
含义
axisoff
取消轴背景
axisequal
纵、横轴采用等长刻度
axison
使用轴背景
axisimage
同上且坐标框紧贴数据范围
axis(v)
v=[x1,x2,y1,y2,z1,z2]
人工设定范围
axissquare
产生正方形坐标系
(6)、多次叠绘、子图
holdon使当前轴及图形保持而不被刷新,准备接受此后将绘制的新曲线。
holdoff使当前轴及图形不再具备不被刷的性质。
hold是否具备不被刷的性质的双向开关。
subplot(m,n,k)图形窗中有m×n幅子图,k是子图的编号。
3、三维曲线绘图
(1)基本命令:
plot3(x,y,z,’s’)%s为线色、线形、点形
plot3(x1,y1,z1,’s1’,….xn,yn,zn,’sn’)
例3.5
t=-2*pi:
0.01:
2*pi;
x=2*cos(t);y=2*sin(t),z=3*t;%(准备数据)
plot3(x,y,z,’r:
’);%(用plot3作图)
(2)三维曲面作图
1)三维网格命令(mesh)
例3.6x=-1:
0.05:
1;y=x;
[x,y]=meshgrid(x,y);
z=x.^2+2*y.^2;
mesh(x,y,z)
运行结果如图3-4。
图3-3
2)三维表面命令surf
例3.7
x=-1:
0.05:
1;y=x;
[x,y]=meshgrid(x,y);
z=x.^2+2*y.^2;
surf(x,y,z)
运行结果如图3-5。
图3-4
3)基本三维命令的几个改进命令
meshc(带等高线的网线图)
surfc(带等高线的曲面图)
4)、三维视图的可视效果控制
view,rotate3d,rotate
5)、图形的透视(hidden)
图形颜色的遮掩shading。
hiddenon使图形消隐(透视)。
hiddenoff关闭消隐(此为默认状态)。
shading用于曲面颜色不匀时的均衡处理,使用格式为。
shadinginterp对网眼内采用匀色处理,使色彩自然连贯。
shadingfaceted对网眼颜色不做特殊处理,但加深网线黑色,这种格式有较强的表现力,是默认格式。
4、球面(sphere)及柱面(cylinder)的表达
(1)sphere(n)绘制分格线条数为n的单位球面。
例3.8sphere(50)%绘制分格线条数为50的单位球面,运行结果如图3-6。
图3-5
(2)cylinder(r,n)绘制半径为r分格线条数为n的旋转柱面(曲面),纵坐标为0到1。
R为母线的描述。
例3.9cylinder(5,30),运行结果如图3-7。
(3)[x,y,z]=sphere(n),[x,y,z]=cylinder(r,n),分别为读取球面及柱面的数据。
图3-6
5、特殊图形:
直方图hist、饼图pie、条形图bar、矢量图feather、等高线contour。
三、实习步骤
(1)plot指令的使用
在commmand窗口键入以下指令:
X=1:
10
Y=[12345678]
Z=1:
-1:
-10
Plot(x)
Plot(y)
Plot(x,z)
观察指令窗及图形窗中的结果。
(2)subplot指令的使用;采样点数对绘图的影响的理解;title、axis指令的使用
键入所以下指令:
t1=(0:
11)/11*pi;
y1=sin(t1).*sin(9*t1);
t2=(0:
100)/100*pi;
y2=sin(t2).*sin(9*t2);
subplot(2,2,1),plot(t1,y1,'r.'),axis([0,pi,-1,1]),title('子图
(1)')
subplot(2,2,2),plot(t2,y2,'r.'),axis([0,pi,-1,1]),title('子图
(2)')
subplot(2,2,3),plot(t1,y1,t1,y1,'r.')
axis([0,pi,-1,1]),title('子图(3)')
subplot(2,2,4),plot(t2,y2)
axis([0,pi,-1,1]),title('子图(4)')
观察指令窗及图形窗中的结果。
(3)图形交互指令的使用
①、在
(2)的四个子图上用ginput指令分别获取其峰值;
②、在
(2)的四个子图中的子图1上用gtext指令将“不太完整的离散图形”字符串放置到图形上。
在子图2上用gtext指令将“完整的离散图形”字符串放置到图形上。
在子图3上用gtext指令将“失真的连续图形”字符串放置到图形上。
在子图4上用gtext指令将“正确的连续图形”字符串放置到图形上。
(4)其它绘图指令的使用及精细指令的使用
键入所以下指令:
clf;t=6*pi*(0:
100)/100;y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>0.05));ts=max(tt);
plot(t,y,'r-','linewidth',3)
axis([-inf,6*pi,0.6,inf])
set(gca,'xtick',[2*pi,4*pi,6*pi],'ytick',[0.95,1,1.05,max(y)])
gridon
title('\ity=1-e^{-\alphat}cos{\omegat}')
text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')
text(13.5,1.1,'\fontsize{12}{\omega}=0.7')
holdon;plot(ts,0.95,'bo','markersize',10);holdoff
cell_string{1}='\fontsize{12}\uparrow';
cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';
cell_string{3}='\fontsize{6}';
cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];
text(ts,0.85,cell_string)
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
观察指令窗及图形窗中的结果。
(5)提高部分
本实习要求事先编写好解决下面问题的程序,然后上机输入程序并调试运行程序。
A、绘制曲线sa(t)=sin(x)/x,其中
(注意:
x=0处需要特别处理)
B、画出
的曲线(t的取值范围是0到2
),在x轴上标上0.5,1.2和4.5三个刻度。
在y轴上标0.2,1.0,3.5三个刻度。
用xlabel在横轴下标上t;用ylabel在y轴左侧标y在图上用“小红圈”标出第一次使y=0.6的那点位置,并要求在该点旁边用12号字,斜体标出其横坐标。
四、实习要求:
1、进一步熟悉和掌握MATLAB的编程及调试。
2、掌握二维图形的绘制。
3、掌握图形交互指令的使用。