用MATLAB绘制一元函数和二元函数的图象

更新时间:2024-01-19 09:10:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《MATLAB语言》课程论文

用MATLAB绘制一元函数和二元函数的

图象

姓名: 马军

学号: 12010245245 专业: 通信工程 班级: 2010级通信1班 指导老师:汤全武

学院: 物理电气信息学院

完成日期:2011.12.20

用MATLAB绘制一元函数和二元函数的图像

(马军 12010245245 2010级通信工程1班)

【摘要】大学物理力学中涉及许多复杂的数值计算问题,例如非线性问题,对其手工求解较为复杂,而MATLAB语言正是处理非线性问题的很好工具,既能进行数值求解,又能绘制有关曲线,非常方便实用。另外,利用其可减少工作量,节约时间,加深理解,同样可以培养应用能力。 【关键词】一元函数 二元函数 MATLAB 图像的绘制

一、问题的提出

MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活

力的软件。它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。MATLAB语言在各国高校与研究单位起着重大的作用.它是一种集数值计算、符号运算、可视化建模、仿真和图形处理等多种功能…

二、实验内容

1.平面曲线的表示形式

对于平面曲线,常见的有三种表示形式,即以直角坐标方程y?f(x),x?[a,b],以参数方程x?x(t),y?y(t),t?[a,b],和以极坐标r?r(?),??[a,b]表示等三种形式。

2.曲线绘图的MATLAB命令

MATLAB中主要用plot,fplot二种命令绘制不同的曲线。

plot(x,y) 作出以数据(x(i),y(i))为节点的折线图,其中x,y为同维数的向量。

plot(x1,y1,x2,y2,…) 作出多组数据折线图

fplot(‘fun’,[a,b]) 作出函数fun在区间[a,b]上的函数图。 可以用help plot, help fplot查阅有关这些命令的详细信息

问题1:作出函数y?sinx,y?cosx的图形,并观测它们的周期性。先作函数

y?sinx在[?4?,4?]上的图形,用MATLAB作图的程序代码为:

>>x=linspace(-4*pi,4*pi,300); %产生300维向量x >>y=sin(x); %定义函数y

>>plot(x,y) %二维图形绘图命令

结果如图1

10.50-0.5-1-20-1001020 图1. y?sinx的图形

此图也可用fplot命令,相应的MATLAB程序代码为:

>>clear; close; %clear清理内存;close关闭已有窗口。

>>fplot('sin(x)',[-4*pi,4*pi])%做出函数sin(x)在区间[-4*pi,4*pi]上的函数图

结果如图2

10.50-0.5-1-10-50510 图2 y?sinx的图形

如果在同一坐标系下作出两条曲线y?sinx和y?cosx在[?2?,2?]上的图形,相应的MATLAB程序代码为:

>>x=-2*pi:2*pi/30:2*pi; %产生向量x >>y1=sin(x); %产生函数y1 >>y2=cos(x); %产生函数y2

>>plot(x,y1,x,y2,’:’) %’:’表示绘出的图形是点线

结果如图3其中实线是y?sinx的图形,点线是y?cosx的图形。

10.50-0.5-505图3 y?sinx,y?cosx的图形

3.线型、标记和颜色的控制 符号 b g r c m y k w 颜色 蓝色 绿色 红色 青色 紫红色 黄色 黑色 白色 符号 . 。 × * s d v ^ p h 标记 点 圆圈 叉号 星号 正方形 菱形 三角形(下) 三角形(上) 五角星 六边形 - : -. ―― -1-1010 符号 线型 实线 点线 点划线 虚线 问题2:将问题1得到的图形用不同的线型及颜色加以绘制。 >>x=-2*pi:2*pi/30:2*pi; %产生向量x >>y1=sin(x); %产生函数y1 >>y2=cos(x); %产生函数y2

>>plot(x,y1,x,y2,’gp’) %’gp’表示绘出的图形是绿色五角星线

结果如图4

图4 y?sinx,y?cosx的图形

问题3作出以极坐标方程r?a(1?cos?),a?1,??[0,2?]表示的心脏线 相应的MATLAB程序代码为:

>>clear; close; %%clear清理内存,close关闭已有窗口。 >>t=0:2*pi/30:2*pi; %产生向量t >>r=1+cos(t); %

>>x=r.*cos(t); y=r.*sin(t); %极坐标转化为直角坐标 >>plot(x,y) %画出折线图

结果如图5

210-1-2-1012 图5心脏线

3.曲面绘图的MATLAB命令

MATLAB中主要用mesh,surf命令绘制二元函数图形。

mesh(x,y,z) 画网格曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。

surf(x,y,z) 画完整曲面,这里x,y,z是三个数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。

可以用help mesh, help surf查阅有关这些命令的详细信息

22z?x?y问题4画出函数的图形,不妨将区域限制在(x,y)?[?3,3]?[?3,3]。用

MATLAB作图的程序代码为:

>>clear; %clear清理内存

>>x=-3:0.1:3; %x的范围为[-3,3] >>y=-3:0.1:3; %y的范围为[-3,3]

>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z

>>mesh(X,Y,Z)

结果如图6。图6是网格线图,如果要画完整的曲面图,只需将上述的MATLAB代码mesh(X,Y,Z)改为surf(X,Y,Z), 结果如图7

图6 锥面

图7 锥面

要画等高线,需用contour,contour3命令.其中contour为二维等高线, contour3为三维等高线,如画图6的三维等高线, MATLAB代码为:

>>clear; %clear清理内存

>>x=-3:0.1:3; % x的范围为[-3,3] >>y=-3:0.1:3; % y的范围为[-3,3]

>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z >>contour3(X,Y,Z,10) %画10条等高线

>>xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis') %三个坐标轴的标记 >>title('Contour3 of Surface') %标题 >>grid on %画网格线

结果如图8

Contour3 of Surface43Z-axis21020Y-axis-2-20X-axis2 图8 等高线

如画图6的二维等高线, MATLAB代码为:

>>clear; %clear清理内存

>>x=-3:0.1:3; % x的范围为[-3,3] >> y=-3:0.1:3; % y的范围为[-3,3]

>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z >> contour(X,Y,Z,10) %画10条等高线

>>xlabel('X-axis'),ylabel('Y-axis') % 二个坐标轴的标记 >>title('Contour of Surface') %标题 >>grid on %画网格线

结果如图9

Contour of Surface321Y-axis0-1-2-3-3-2-10X-axis123 图9 等高线

如果要画z?1的等高线,则用命令

>>clear; %clear清理内存

>>x=-3:0.1:3; % x的范围为[-3,3]

>>y=-3:0.1:3; % y的范围为[-3,3]

>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z

>> contour(X,Y,Z,[1 1]) %画在【11】内的等高线

结果如图9

20-2-20图5.5 等高线

2 三、结论

通过使用matlab语言可以对一元函数和二元函数进行很好的图形绘制,其具有完备的图形处理能力,可以实现计算结果和编程的可视化。MATLAB自产生之日起就具有方

便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。。

四、课程体会

虽然我所研究的课程论文是运用MATLAB对一元函数和二元函数的图像进行绘制,但是这也不是很容易就能写出来的,首先你必须对MATLAB对于函数图像的程序有一般的了解,熟悉它基本的程序语言,熟悉它对于一些图像的形式的程序有一个比较笼统的认识,只有这样你才能对你所画的函数图像可以得心应手。除此之外MATLAB的应用范围也很广阔,在查资料的同时让我对于MATLAB这个很容易上手的程序语言有了更深的了解。

首先MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,

并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。还可用于科学计算和工程绘图。

接着MATLAB应用广泛的模块集合工具箱,MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家

族中有了自己的一席之地。

[参考文献]

[1] 刘卫国.MATLAB程序设计与应用(第二版)[M].北京:高等教育出版社,2006. [2] 马文蔚.物理学(上册)(第四版)[M],北京:高等教育出版社,1999.

本文来源:https://www.bwwdw.com/article/9soo.html

Top