实验二绘图及简单科学计算.doc
文本预览下载声明
实验二 绘图及简单科学计算
主要内容:
绘图简介
科学计算,曲线拟合与插值
绘图简介
MATLAB不但擅长于矩阵相关的数值运算,也适合用各种科学可视化(Scientific visualization)。下面介绍MATLAB基本二维和三维的各项绘图命令,包含一维曲线及二维曲面的绘制、打印及保存。plot是绘制一维曲线的基本函数,但在使用此函数之前,我们需先定义曲线上每一点的x及y坐标。下例可画出一条正弦曲线:
? x=linspace(0, 2*pi, 100); % 100个点的x坐标
? y=sin(x); % 对应的y坐标
? plot(x,y);
若要画出多条曲线,只需将坐标对依次放入plot函数即可:
? plot(x, sin(x), x, cos(x));
若要改变颜色,在坐标对后面加上相关字符串即可:
? plot(x, sin(x), c, x, cos(x), g);
若要同时改变颜色及线型(Line style),也是在坐标对后面加上相关字符串即可:
? plot(x, sin(x), co, x, cos(x), g*);
plot绘图函数的参数
字符 颜色 字符 图线型态 黄色 . 点 k 黑色 o 圆 w 白色 x x b 蓝色 + + g 绿色 * * r 红色 - 实线 c 亮青色 : 点线 m 锰紫色 -. 点虚线 -- 虚线
图形完成后,我们可用axis([xmin,xmax,ymin,ymax])函数来调整坐标轴的范围:
? axis([0, 6, -1.2, 1.2]);
MATLAB也可对图形加上各种注解与处理:
? xlabel(Input Value); % x轴注解
? ylabel(Function Value); % y轴注解
? title(Two Trigonometric Functions); % 图形标题
? legend(y = sin(x),y = cos(x)); % 图形注解
? grid on; % 显示格线
用subplot来同时画出数个小图形于同一个窗口之中:
? subplot(2,2,1); plot(x, sin(x)); %把窗口分成2*2个子窗口,在第一个子窗口绘图
? subplot(2,2,2); plot(x, cos(x)); %在第二个子窗口绘图
? subplot(2,2,3); plot(x, sinh(x)); %在第三个子窗口绘图
? subplot(2,2,4); plot(x, cosh(x)); %在第四个子窗口绘图
MATLAB还有其他各种二维绘图函数,以适合不同的应用,详见下表。
Bar 长条图 Errorbar 图形加上误差范围 Fplot 较精确的函数图形 Polar 极坐标图 Hist 累计图 Rose 极坐标累计图 Stairs 阶梯图 以下我们针对每个函数举例。
当数据点数量不多时,条形图是很适合的表示方式:
? close all; % 关闭所有的图形窗口
? x=1:10;
? y=rand(size(x));
? bar(x,y);
如果已知数据的误差量,就可用errorbar来表示。下例以单位标准差来做数据的误差量:
? x = linspace(0,2*pi,30);
? y = sin(x);
? e = std(y)*ones(size(x));
? errorbar(x,y,e)
对于变化剧烈的函数,可用fplot来进行较精确的绘图,会对剧烈变化处进行较密集的取样,如下例:
? fplot(sin(1/x), [0.02 0.2]); % [0.02 0.2]是绘图范围
若要产生极坐标图形,可用polar:
? theta=linspace(0, 2*pi);
? r=cos(4*theta);
? polar(theta, r);
对于大量的数据,我们可用hist来显示数据的分布情况和统计特性。下面几个命令可用来验证randn产生的
显示全部