matlab大作业.docx
- 文档编号:578668
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:11
- 大小:118.68KB
matlab大作业.docx
《matlab大作业.docx》由会员分享,可在线阅读,更多相关《matlab大作业.docx(11页珍藏版)》请在冰点文库上搜索。
matlab大作业
安阳工学院
专业课课程大作业
课程名称(中文)MATLAB编程应用
成绩
姓名李健
班级10通信工程
学号201002030013
日期2010年12月22日
关于matlab图形绘制的应用
摘要:
图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。
它包括强大的二维三维图形函数、图像处理和动画显示等函数。
MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。
高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。
可用于科学计算和工程绘图。
关键词:
matlab图形绘制编程应用二维三维
一、设计目的
(1)了解MATLAB平面绘图的命令,如MATLAB常用的二维及三维绘图命令。
(2)了解MATLAB立体图形的绘制,其中包括常用的立体绘图函数的理解。
(3)熟练掌握MATLAB软件,编写计算平均值和标准差公式,编译程序运行是否有错误并改正。
(4)掌握使用软件MATLAB用数学方法生成符合要求的图形,会用数学方法对图形图像作需要的处理。
二、设计要求
(1)应能独立操作,独立使用软件MATLAB及编写程序及操作;
(2)每次课后在课外对教师提出的问题的解决程序或者命令在第二次上课前准备好;
(3)综合实验项目涉及到的数学知识必须在教师指导下在课外作好复习。
三、Matlab介绍及功能
1、matlab的简介
Matlab的图形绘制和数值计算的功能是很强大,熟练的掌握可以为我们解决很多的实际问题。
它和c语言、java语言等一样也是一门独立存在的语言,它强大而智能化的作图功能更好的解决了这方面的问题。
下面通过几个具体的实例应用来说这一点。
2、MATLAB的绘图功能:
(1)二维绘图:
A、plot——最基本的二维图形指令:
1.单窗口单曲线绘图;2.单窗口多曲线绘图;3.单窗口多曲线分图绘图;4.多窗口绘图;5.可任意设置颜色与线型;6.图形加注功能;7.fplot——绘制函数图函数;8.ezplot——符号函数的简易绘图函数
B、fill——基本二维绘图函数:
绘制二维多边形并填充颜色;
C、特殊二维绘图函数:
bar——绘制直方图;
polar——绘制极坐标图;hist——绘制统计直方图;stairs——绘制阶梯图;stem——绘制火柴杆图;rose——绘制统计扇形图;comet——绘制彗星曲线;errorbar——绘制误差棒图;compass——复数向量图(罗盘图);feather——复数向量投影图(羽毛图);quiver——向量场图;area——区域图;pie——饼图;convhull——凸壳图;scatter——离散点图。
matlab中函数bar绘制直方图中的应用函数bar(x)可以绘制直方图,这对统计或者数据采集非常直观实用。
它共有四种形式:
bar,bar3,barh和bar3h,其中bar和bar3分别用来绘制二维和三维竖直方图,barh和bar3h分别用来绘制二维和三维水平直方图,调用格式是:
bar(x,y)其中x必须单调递增或递减,y为nm×矩阵,可视化结果为m组,每组n个垂直柱,也就是把y的行画在一起,同一列的数据用相同的颜色表示;
bar(x,y,width)(或bar(y,width))指定每个直方条的宽度,如width>1,则直方条会重叠,默认值为width=0.8;
bar(…,’grouped’)使同一组直方条紧紧靠在一起;
bar(…,’stack’)把同一组数据描述在一个直方条上。
(2)三维绘图:
A、三维线图:
plot3——基本的三维图形指令
B、三维网格图:
mesh——三维网线绘图函数
C、三维表面图:
surf——三维曲面绘图函数,与网格图看起来一样
D、三维轮廓图:
contour——三维轮廓绘图函数
E、三维混合图:
surfc——三维混合绘图函数
四、设计内容
实例1:
直方图
用直方图显示数据的分布规律。
实例2:
非线性曲线拟合
对一组数据进行近似曲线的非线性曲线拟合。
实例3:
预测人口
通过已有的数据对未来人口的预测。
实例1:
a、已知两组数据x=[521;873;986;555;432],
y=[521;873;986;555;432]。
用bar函数对x作纵向直方图,用barh函数对y作横向直方图,并用subplot函数将它们放在一个图中。
b、已知两组数据x=[541;893;976;565;432],y=[522;873;976;545;452]。
用bar函数对x作纵向直方图用barh函数对y作横向直方图,并用subplot函数将它们放在一个图中。
实例2:
首先我们得到了两组数据x=[2425283032353840],y=[3029252321191716]。
其中y是关于x的函数,通过描点,我们可以看出该曲线近似于函数方程y=
,该函数为非线性的。
用非线性曲线拟合的方法,可以求得a1=76.9996a2=0.0398即y3=
然后就可以画出该曲线的方程。
即通过已知的一些数据(点),可以求出它们所对应的函数关系。
实例3:
我们在已知Logistic人口模型:
x(t)=N/(1+(N/x0-1)*exp(-r*t))的情况下,并由所得到的1965年到2004年人口数据
x=[72.538,74.542,76.368,78.534,80.671,82.992,85.229,87.177,89.211,90.859,92.420,93.717,94.974,96.259,97.542,98.705,100.072,101.654,103.008,104.357,105.851,107.507,109.300,111.026,112.704,114.333,115.823,117.171,118.517,119.850,121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.988],利用nlinfit函数可以算出人口的最大值N和固有的人口增长率r的值,然后由曲线方程预测出2050的人口数据。
五、设计的程序清单和运行结果
实验1程序如下:
实例1a:
h0=figure('toolbar','none',...
'position',[20050450450],...
'name','实例1');
subplot(2,1,1)
%将图分成两部分,两行一列
x=[521
873
986
555
432];
bar(x)
xlabel('X轴');
ylabel('Y轴');
title('第一子图');
subplot(2,1,2)
y=[521
873
986
555
432];
barh(y)
xlabel('X轴');
ylabel('Y轴');
title('第二子图')
运行结果:
如图1。
图1直方图a
实例1b:
y=[5329;4727;1573];
subplot(2,2,1),bar(y)
x=[5911];
subplot(2,2,2),bar3(x,y)
subplot(2,2,3),bar(x,y,'grouped')
subplot(2,2,4),bar(rand(2,3),.75,'stack')
运行结果:
如图2。
图2直方图b
实例2程序如下:
程序1:
x=[2425283032353840];
y=[3029252321191716];
yy=log(y);
p=polyfit(x,yy,1)
a2=-p
(1)
a1=exp(p
(2))
运行结果1:
p=
-0.03984.3438
a2=
0.0398
a1=
76.9996
程序2:
x=[2425283032353840];
y=[3029252321191716];
p=polyfit(x,y,2);
yy=polyval(p,x);
subplot(121);
plot(x,y,'*',x,yy);
Axis([2060040]);
x=0:
0.01:
300;
y=76.9996*exp(-0.0398*x);
subplot(122);
plot(x,y);
Axis([080080]);
title('非线性的曲线拟合');
xlabel('x轴');
ylabel('y=59.7881*exp(-0.0133*x)')
运行结果2:
如图3。
图3非线性曲线拟合
实例3程序如下:
t=1:
40;
x=[72.538,74.542,76.368,78.534,80.671,82.992,85.229,87.177,89.211,90.859,92.420,93.717,94.974,96.259,97.542,98.705,100.072,101.654,103.008,104.357,105.851,107.507,109.300,111.026,112.704,114.333,115.823,117.171,118.517,119.850,121.121,122.389,123.626,124.761,125.786,126.743,127.627,128.453,129.227,129.988];
%人口的最大值N=p
(1),固有的人口增长率r=p
(2)
f=inline('p
(1)./(1+(p
(1)/72.538-1)*exp(-p
(2)*t))','p','t');
p=nlinfit(t,x,f,[200,0.01])
%预测2050年人口
t_pre=86;
x_pre=p
(1)./(1+(p
(1)/72.538-1)*exp(-p
(2)*t_pre))
plot(t,x,'o')
holdon
tt=1:
0.1:
100;
xx=p
(1)./(1+(p
(1)/72.538-1)*exp(-p
(2).*tt));
plot(tt,xx)
holdon
plot(t_pre,x_pre,'ks')
title('预测2050年人口(单位:
千万)')
text(t_pre,x_pre+2,num2str(x_pre))
运行结果:
如下及图4。
p=
158.68970.0428
x_pre=
154.0807
图4预测人口
六、设计的体会
Matlab被称之为“矩阵实验室”,它的强项是强大的矩阵计算。
通过对matlab的学习,我们可以用它来解决很多的实际的问题,可以说matlab是一种很好的数学工具,它不仅在矩阵的运算,图形的绘制方面有着强大的功能,而且还可以用程序设计(如M文件)来解决各种数学建模上的问题。
Matlab产品的工具箱分别涵盖了数据获取、科学计算、控制系统设计与分析、数字信号处理、数字图像处理、金融财务分析以及生物遗传工程等专业领域。
因此,可以说熟练的掌握它,对我们以后各方面的学习以及研究有着很重要的作用。
七、参考文献
[1]清源计算机工作室编.《MATLAB高级应用—图形及影像处理》北京:
机械工业出版社,2000年6月.
[2]苏金明,阮沈勇编著.《MATLAB6.1实用指南》北京:
电子工业出版社,2002年1月.
[3]刘慧颖.《MATLABR2007基础教程》北京:
清华大学出版社,2007年12月.
[4]赵静,张瑾.《基于MATLAB的通信系统仿真》北京:
北京航空航天大学出版社,2010年1月.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 作业