plot(x,'r*') 表示用红色*号画线, plot(x,y,'b+') 表示用蓝色+号画线, plot(x1,y1,'y-',x2,y2,'g:') 表示第一组用黄色实线画线,第二组用绿色点线画线. MATLAB的线型字符有很多,可以随心所欲地把图画得很漂亮.下面几个线型字符大家可以选用:
S:小方块;H:六角星;D:钻石形;V:向下三角形;^:向上三角形. MATLAB还提供了图形的加注命令:
title 题头标注. xlabel x轴标注. ylabel y轴标注. gtext 鼠标定位标注. grid 网格.
axis([xmin xmax ymin ymax]) []中给出x轴和y轴的最小、最大值
如果要把y1=6sint,y2=6cost,y3=sint-tcost绘制在一张图上,则可输入如下的命令: t=0:pi/12:2*pi;
y1=6*sin(t);y2=6*cos(t);y3=sin(t.^2)-t.*cos(t);
plot(t,y1,'r-',t,y2,'bo',t,y3,'k:') %用红线画y1,用蓝圈画y2,用黑虚线画y3. 如果还想在图上加一个题头,可继续键入命令: title('曲线比较')
注:MATLAB中,%后面的语句起注释作用.特别要注意y3中的运算符号“.^”和“.*”,详情可通过help查阅,或查阅有关MATLAB的参考书.
命令polar(theta,rho)或polar(theta,rho,‘s’)绘制极坐标系的二维图形.详情可通过help查阅. 2、绘制三维图形 ⑴ 空间曲线的绘制 绘制空间曲线的基本命令为:
plot3(x,y,z);plot3(x,y,z,'s')或plot3(x1,y1,z1,'s1',x2,y2,z2,'s2',?) 其中x,y,z是同维的向量或矩阵.当它们是矩阵时,以它们的列对应元素为空间曲线上点的坐标.s是线形、颜色开关,这一点与二维曲线时的情形相同. ⑵ 曲面的绘制
绘制空间曲面的基本命令为mesh(x,y,z).
如果x、y是向量,则要求x的长度=矩阵z的列维;y的长度=矩阵z的行维.以zij为竖坐标,x的第i个分量为横坐标,y的第j个分量为纵坐标绘网格图.
10
2
如果是同维矩阵,则数据点的坐标分别取自这三个矩阵.
meshc(x,y,z) 带等高线的网格图, waterfall(x,y,z) 瀑布水线图, surf(x,y,z,'c') 可着色的曲面图, surfc(x,y,z) 带等高线的可着色的曲面图. 以上这些命令都可用来绘制曲面图,用法与mesh完全一样. 例如:要想画马鞍面,可输入如下命令: x=-3:1/16:3;y=x;
[x,y]=meshgrid(x,y); %(生成绘图时所需的x-y坐标) z=-x.^2+y.^2;
mesh(x,y,z) %(或换为surfc(x,y,z) %带等高线的着色图) 3.多幅图形的创建
有时同一曲面或曲线需要从不同的角度去观察,或用不同的表现方式去表现,这时,为了便于比较,往往在一个窗口内画多幅图形.MATLAB用subplot命令实现这一目的.具体格式为: subplot(m,n,p) 使用此命令后,把窗口分为m×n个图形区域,p表示当前区域号. 例如把sinx,cosx,atanx,sinxcosy画在一个窗口内,可键入: x=0:pi/6:2*pi;y=x;
z1=sin(x);z2=cos(x);z3=atan(x); subplot(2,2,1); plot(x,z1,'r',x,z2,'g') subplot(2,2,2);plot(x,z3,'m')
subplot(2,2,3);[x,y]=meshgrid(x,y);z4=sin(x).*cos(y); mesh(x,y,z4);subplot(2,2,4);surfc(x,y,z4)
三、实验作业
1、在同一坐标系下面画出y?0.2e0.1x?sin(0.5x)和y?0.2e0.1x?cos(0.5x)在区间
[0,2?]上的曲线图。
2、 绘制三维螺旋线:x?2cost,y?2sint,z?0.5t,t?[0,?]. 3、 画出曲面z?sin(xy)的网线图。 4、画出曲面z?xe
?(x2?y2)的图形。
11
实验四:使用Matlab解决微积分问题
一、实验目的与要求
1、掌握MATLAB符号变量与符号表达式创建方法和命令使用。 2、掌握用符号微积分方法和命令解决数学问题。 二、实验内容 1、因式分解 syms x f=x^6+1; s=factor(f) 结果为:
s=(x^2+1)*(x^4-x^2+1) 2、计算极限
12
求极限:
(1) L?limh?0ln(x?h)?ln(x),hx(2)M?lim(1?n)nn?? syms h n x
L=limit('(log(x+h)-log(x))/h',h,0) %%单引号可省略掉 M=limit('(1-x/n)^n',n,inf) 结果为: L =1/x M =exp(-x) 3、计算导数
dydyd2yy?sinax,求A?,B?,C?dxdadx2.
syms a x; y=sin(a*x); A=diff(y,x) B=diff(y,a) C=diff(y,x,2) 结果为: A = cos(a*x)*a B = cos(a*x)*x C = -sin(a*x)*a^2
4、计算不定积分、定积分、反常积分
I??x2?1dx22(x?2x?2),
?/2J??0cosxdxsinx?cosx, dx.
K??0??e?x2 syms x
13
f=(x^2+1)/(x^2-2*x+2)^2; g=cos(x)/(sin(x)+cos(x)); h=exp(-x^2); I=int(f) J=int(g,0,pi/2) K=int(h,0,inf) 结果为:
I =1/4*(2*x-6)/(x^2-2*x+2)+3/2*atan(x-1) J =1/4*pi K =1/2*pi^(1/2) 5、符号求和 求级数
1 的和S, 以及前十项的部分和S1. ?2nn?1? syms n
S=symsum(1/n^2, 1, inf) S1=symsum(1/n^2,1,10) 结果为: S =1/6*pi^2
S1 =1968329/1270080 重要说明:当求函数项级数
syms n x
S2=symsum(x/n^2, n, 1, inf) S2 =1/6*x*pi^2 两点说明:
(1)注意观察S2与S1的细微区别!
(2)当通项公式的Matlab表达式较长时,表达式要加上单引号.后面的练习中会遇到此问题. 6、解代数方程
利用符号表达式解代数方程所需要的函数为solve(f),即解符号方程式f.
14
x 的和S2时,可用命令: ?2n?1n?