數學實驗(Matlab 語言應用)實驗二+實驗三

主要目的:

利己: 作者本人本學期選的課,閉卷考試的,用老師的PPT+自己的注譯=數學實驗系列的文章來複習的 利他: 理工科的課程引入數學系,以提升數學系學子對數學的興趣 分析: 實驗二 Matlab圖形處理 考Matlab基本功 實驗三 數據插值與數據擬合 數據處理: 微積分離散化 插值公式的檢驗

实验二 Matlab 图形处理

1 二维图形及相关函数

1.1 基本的图形命令

plot(Y) 如果 Y 为实向量,则以 Y 的下标作为横坐标,以Y 本身各元素为纵坐标,绘制图形。 如果 Y 为复向量,则将以该向量实部作为横坐标,以虚部为纵坐标,绘制图形。 例 1 : y=rand(100,1); plot(y) x=rand(100,1); z=x+y.*i; plot(z) 当 plot 函数有两个输入变量时,则以第一个变量为 横坐标,以 Y 第二个变量为纵坐标,绘制图形。 注 :向量 X,Y 必须结构相同的行向量或列向量或矩阵。 例 2 : x=0:0.01*pi:2*pi; y=sin(x).*cos(x); plot(x,y) 例3 : >> x=0:0.01*pi:pi; >> y=[sin(x'),cos(x')]; >> plot([x' ,x'],y); 如果在同一幅图中出现多条曲线, Matlab 会自动地把不同曲线绘制成不同的颜色。 plot 函数也支持三变量输入,此时第三个输入变量 为图形显示属性设置的选项。 - 实线 -. 虚线 : 点线 y 黄线 例: >> x=1:0.1*pi:2*pi; >> y=sin(x); >> z=cos(x); 分别检查运行结果: >> plot(x,y, '--k' ,x,z, '-.rd') >> plot(x,y, '-k' ,x,z, '-.rd') >> plot(x,y, 'k' ,x,z, '-.rd') >> plot(x,y, 'k' ,x,z, '-.dr')

1.2 特殊二维图形函数

1) 特殊坐标系的二维图形函数
指区别于均匀直角单 y 轴坐标系而言的。如:
(1) 对数坐标
semilogx, semilogy, loglog 例 1 : >> x = 0:.1:10; >> semilogy(x,10.^x) 比较: >> plot(x,10.^x) 例 2 : x = logspace(-1,2); % 缺省情况下 50 个数。 loglog(x,exp(x), '-s') grid on
(2) 极坐标系
polar(theta,rho) 或 polar(theta,rho, S) 例 1 : >> x=0:0.01*pi:4*pi; >> y=sin(x/2)+x; >> polar(x,y, '-')
(3) 双纵坐标:
plotyy(x1,y1,x2,y2) plotyy(x1,y1,x2,y2, FUN) plotyy(x1,y1,x2,y2, FUN1,FUN2) 其中第二种调用方式表示以‘ FUN’ 方式绘制图形, ‘ FUN’ 可以为 plot, semilogx, semilogy, loglog 等。 第三种调用方式,以‘ FUN1’ 绘制 x1,y1; ‘FUN2’ 绘制 x2,y2. 例 1 : >> x=0:0.01*pi:2*pi; >> y=sin(x); >> z=exp(x); >> plotyy(x,y,x,z, 'plot' , 'semilogy')
2) 二维特殊图形函数
指区别于均匀直角单 y 轴坐标系而言的。如: area 填充绘图 bar 条形图 stairs 阶梯图 pie 饼状图 fplot 函数图 hist 直方图
例1:
x=2:11; y=rand(10,1); bar(y); % 比较 % bar(x,y); 
例2:
x=[2 4 6 8]; pie(x,{'math' , 'english' , … 'chinese' , 'music'}) contour 函数,绘制等高线图。
例3:
[X,Y] = meshgrid(-2:.2:2,-2:.2:3); Z = X.*exp(-X.^2-Y.^2); %Then, generate a contour plot of Z. [C,h] = contour(X,Y,Z); clabel(C,h)

2 三维图形及相关函数

2.1 基本的图形命令

(1) plot3(X,Y,Z)
Plot3 是 plot 函数的三维扩展。 例 1 : x=0:pi/50:10*pi; y=sin(x); z=cos(x); plot3(x,y,z); plot3 也可以以矩阵作为输入参数,这时要求3 个输入矩阵必须结构相同。 例 2 : [x,y]=meshgrid(-2:0.1:2, -2:0.1:2); z=x.*exp(-x.^2-y.^2); plot3(x,y,z)
(2) 网格函数
mesh 三维网格图 meshc 将网格与等高线结合 meshz 屏蔽的网格图 meshgrid 网格生成 例: [x,y]=meshgrid([-4:0.5:4]); z=sqrt(x.^2 + y.^2); mesh(z)
(3) 着色函数
surf(X,Y,Z,C) surf 绘制的图形是一个着色的三维表面。 Matlab 语言对表面着色的方法是:在得到相应的网格后,对每一网格依据该网格所代表的色值(由变量C 控制)而定义这一网格的颜色 例 1 : k = 5; n = 2^k-1; [x,y,z] = sphere(n); c = hadamard(2^k); %Hadamard matrices are matrices of 1's and -1's whose columns are orthogonal, H'*H = n*I surf(x,y,z,c); %surf(x,y,z); colormap([1 1 0; 0 1 1]) % 1 1 0 yellow , 0 0 1 blue axis equal

2.2 特殊的三维图形函数

bar 3 三维条形图 waterfall 瀑布图 comet3 三维彗星轨迹图 pie3 三维饼状图 例 1 : [X,Y,Z] = peaks(30); waterfall(X,Y,Z) 例 2 : t = -10*pi:pi/250:10*pi; comet3(sin(t),cos(t),t); 注: Comet