MATLAB基础与应用
上QQ阅读APP看书,第一时间看更新

2.4 函数的作图

MATLAB有很强的图形功能,可以方便地实现数据的视觉化。下面着重介绍二维图形的画法。

1.一般函数y=fx)的作图(二维)

(1)作图基本形式 二维图形的绘制是MATLAB语言图形处理的基础,MATLAB最常用的画二维图形的命令是plot,MATLAB命令格式:

978-7-111-45813-5-Chapter02-15.jpg输出x的范围[a,b],步长为c

978-7-111-45813-5-Chapter02-16.jpg输出y的表达式,表达式中的运算符加点978-7-111-45813-5-Chapter02-17.jpg画出函数的图像如:

978-7-111-45813-5-Chapter02-18.jpg生成一组线性等距的数值

978-7-111-45813-5-Chapter02-19.jpg

生成的图形如图2-1所示,是[0,2π]上30个点连成的光滑的正弦曲线。

978-7-111-45813-5-Chapter02-20.jpg

图 2-1

(2)作多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,MATLAB命令程序格式:

978-7-111-45813-5-Chapter02-21.jpg

978-7-111-45813-5-Chapter02-22.jpg在同一平面画出两个函数的图像

如:

978-7-111-45813-5-Chapter02-23.jpg

则可以画出图2-2。

978-7-111-45813-5-Chapter02-24.jpg

图 2-2

注:①也可用hold on语句,达到作多重图的效果,MATLAB命令格式:

978-7-111-45813-5-Chapter02-25.jpg('表达式1,[a,b]')

978-7-111-45813-5-Chapter02-26.jpg

978-7-111-45813-5-Chapter02-27.jpg('表达式2,[a,b]')

②如果要在一个画布上作k个小图,则可用subplot(m,n,k),MATLAB命令格式:

978-7-111-45813-5-Chapter02-28.jpg

fplot('表达式1,[a,b]')

即表达式1所表示的曲线画在mn列第k个位置上(从左至右,再从上至下计数)。

(3)作图的线型和颜色 为了适应各种绘图需要,MATLAB提供了用于控制线色、数据点和线型的3组基本参数。它的使用格式如下:plot(x,y,'color_point_linestyle'),具体参数见表2-2。

表 2-2

978-7-111-45813-5-Chapter02-29.jpg

(4)作图的网格和标记 在一个图形上可以加网格、标题、x轴标记、y轴标记,用下列命令完成这些工作。

978-7-111-45813-5-Chapter02-30.jpg

978-7-111-45813-5-Chapter02-31.jpg网格

978-7-111-45813-5-Chapter02-32.jpg横坐标标签

978-7-111-45813-5-Chapter02-33.jpg纵坐标标签

978-7-111-45813-5-Chapter02-34.jpg标题

注:如果要使图形变得更加美观,也可作一些技巧性的处理。如果限制画布,则需在输入plot语句前输入978-7-111-45813-5-Chapter02-35.jpgaxis([a,b,c,d]),这个命令是将图形限制在[a,b]×[c,d]上,其中a,b,c,d必须是数值。由此生成图2-3:

978-7-111-45813-5-Chapter02-36.jpg

图 2-3

2.特殊函数的作图

①作参数方程978-7-111-45813-5-Chapter02-37.jpg的图形,也可以用plot命令,其MATLAB命令格式:

978-7-111-45813-5-Chapter02-38.jpg

978-7-111-45813-5-Chapter02-39.jpg单引号里为线型和颜色参数,参数可选,默认蓝色

例2.5:作出函数978-7-111-45813-5-Chapter02-40.jpg的图像。

MATLAB程序如下:

978-7-111-45813-5-Chapter02-41.jpg

函数图像如图2-4所示。

978-7-111-45813-5-Chapter02-42.jpg

图 2-4

注:由于y=f(x)可转变为参数方程978-7-111-45813-5-Chapter02-43.jpg,因此,y=f(x)也可用此法作图。

②作分段函数的图形,也可以用plot命令,其MATLAB命令格式:

978-7-111-45813-5-Chapter02-44.jpg

例2.6:作出978-7-111-45813-5-Chapter02-45.jpg的图像。

MATLAB程序如下:

978-7-111-45813-5-Chapter02-46.jpg

函数图像如图2-5所示。

978-7-111-45813-5-Chapter02-47.jpg

图 2-5

③作一些数据点的散点图:

978-7-111-45813-5-Chapter02-48.jpg

例2.7:已知表2-3组数据是黄河小浪底在24个不同时间的调沙量

表 2-3 (单位:t)

978-7-111-45813-5-Chapter02-49.jpg

(续)

978-7-111-45813-5-Chapter02-50.jpg

根据试验数据建立数学模型,用拟合的方法得出任意时刻排沙量的变化关系。

978-7-111-45813-5-Chapter02-51.jpg

散点图如图2-6所示。

978-7-111-45813-5-Chapter02-52.jpg

图 2-6

在2.5节将讲到多项式回归,如果想将此曲线拟合并在同一画面作图,则需加如下程序:

978-7-111-45813-5-Chapter02-53.jpg拟合数据

978-7-111-45813-5-Chapter02-54.jpg

则得如下散点图和拟合图像(图2-7):

978-7-111-45813-5-Chapter02-55.jpg

图 2-7

3.其他绘图命令

①符号函数的简易绘图函数ezplot:

MATLAB命令格式:

978-7-111-45813-5-Chapter02-56.jpg

978-7-111-45813-5-Chapter02-57.jpg定义符号变量

978-7-111-45813-5-Chapter02-58.jpg

978-7-111-45813-5-Chapter02-59.jpg默认横坐标范围978-7-111-45813-5-Chapter02-60.jpg当然,ezplot(f,[xmin,xmax])可以使用输入参数来代替默认横坐标范围978-7-111-45813-5-Chapter02-61.jpg

例2.8画出函数y=tanx的图形。

MATLAB程序如下:

978-7-111-45813-5-Chapter02-62.jpgezplot('tan(x)')

函数的图形如图2-8所示。

978-7-111-45813-5-Chapter02-63.jpg

图 2-8

例2.9:作出x4+y4-8x2-10y2+16=0的图形。

MATLAB程序如下:

978-7-111-45813-5-Chapter02-64.jpg

函数的图形如图2-9所示。

978-7-111-45813-5-Chapter02-65.jpg

图 2-9

②绘制函数图函数fplot:

fplot与plot命令相似,其中fplot(fun,lims)绘制由字符串fun指定函数名的函数在x轴区间为lims=[xmin,xmax]的函数图。若lims=[xmin,xmax,ymin,ymax],则y轴也被限制。fun必须为M文件的函数名或对变量x的可执行字符串,此字符串被送入函数eval后被执行。函数fun(x)必须要返回针对向量x的每一元素结果的向量。

例2.10:画978-7-111-45813-5-Chapter02-66.jpg的图形。

解:(1)首先用M文件fun1.m定义函数fx)如下:function y=fun1(x);

978-7-111-45813-5-Chapter02-67.jpg

978-7-111-45813-5-Chapter02-68.jpg

(2)在matlab命令窗口输入:

fplot('fun1',[-3,3])就可画出函数f(x)的图形。

这里也可以使用匿名函数,编写程序如下:

978-7-111-45813-5-Chapter02-69.jpg