matlab课程设计

时间:2024.4.7

目 录

摘要... I

Abstract II

1概述... 1

1.1MATLAB的发展... 1

1.2 MATLAB优势... 2

2理论分析... 3

3程序设计与调试... 5

3.1基本矩阵运算... 5

3.2求解方程组并画图... 7

3.3总结... 8

4心得与体会... 9

5参考文献... 11


摘要

MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。

   MATLAB的基本数据单位是矩阵。MATLAB几乎包括了矩阵的所有运算,从简单的矩阵生成及简单的运算到大量的矩阵运算与转换。MATLAB应用于矩阵有很大的必要性和很重要的现实意义。

   MATLAB具有强大的二维、三维绘图功能,提供了许多绘图语句。利用MATLAB,我们可以画出我们所需要的几乎所有图形。

关键词:矩阵;解方程组;画图

Abstract

MATLAB is released by the U.S. mathworks's main face of scientific computing, visualization and interactive program designed for high-tech computing environment. It numerical analysis, matrix computation, scientific data visualization and non-linear dynamic systems modeling and simulation, and many other powerful features in an easy to use integrated Windows environment for scientific research, engineering design and the need for effective numerical calculation many fields of science provides a comprehensive solution, which represents the current international advanced level of scientific computing software.
    The basic data unit of MATLAB is matrix.MATLAB almost include all the matrix computation,from generate simple matrix and simple operation to a large number of matrix computations and conversion.It is necessary and important practical significance that used MATLAB for matrix

MATLAB has a powerful 2D and 3D graphics capabilities,and providing a lot of graphics statements. Using MATLAB, we can draw almost all graphics that we need.

Keywords: matrix; solve equations;paint


1概述

1.1MATLAB的发展

MATLAB系统最初是由CIeve Moler用FORTRAN语盲设计的,有关短阵的算法来自LINPACK和EIsPACK课题的研究成果;现在的MATLAB程序是MathWorks公司用 C语言开发的,第一版由steve Bangert主持开发编译解释程序,Steve Kleiman完成图形功能的设计,John Little和Cleve Moler主持开发了各类数学分分析的子模块,撰写用户指南和大部分的M文件。自从第1版发行以来,已有众多的科技工作者加入到MATLAB的开发队伍中,并为形成今天约MATLAB系统做出了巨大的贡献。 MATLAB以商品形式出现后,仅短短几年,就以其良好的开放性和运行的可靠性,使原先控制领域里的封闭式软件包(如英国的UMIST,瑞典的LUND和SIMNON,德国的KEDDC)纷纷淘汰,而改以MATLAB为平台加以重建。在时间进入20世纪九十年代的时候,MATLAB已经成为国际控制界公认的标准计算软件。 到九十年代初期,在国际上30几个数学类科技应用软件中,MATLAB在数值计算方面独占鳌头,而Mathematica和Maple则分居符号计算软件的前两名。Mathcad因其提供计算、图形、文字处理的统一环境而深受中学生欢迎。 MathWorks公司于20##年推出MATLAB6.0版本,6.x版在继承和发展其原有的数值计算和图形可视能力的同时,出现了以下几个重要变化:(1)推出了SIMULINK。这是一个交互式操作的动态系统建模、仿真、分析集成环境。它的出现使人们有可能考虑许多以前不得不做简化假设的非线性因素、随机因素,从而大大提高了人们对非线性、随机动态系统的认知能力。(2)开发了与外部进行直接数据交换的组件,打通了MATLAB进行实时数据分析、处理和硬件开发的道路。(3)推出了符号计算工具包。1993年MathWorks公司从加拿大滑铁卢大学购得Maple的使用权,以Maple为“引擎”开发了Symbolic Math Toolbox 1.0。MathWorks公司此举加快结束了国际上数值计算、符号计算孰优孰劣的长期争论,促成了两种计算的互补发展新时代。(4)构作了Notebook 。MathWorks公司瞄准应用范围最广的Word ,运用DDE和OLE,实现了MATLAB与Word的无缝连接,从而为专业科技工作者创造了融科学计算、图形可视、文字处理于一体的高水准环境。 MTALAB系统由五个主要部分组成,下面分别加以介绍。 (1)MATALB语言体系 MATLAB是高层次的矩阵/数组语言.具有条件控制、函数调用、数据结构、输入输出、面向对象等程序语言特性。利用它既可以进行小规模端程,完成算法设计和算法实验的基本任务,也可以进行大规模编程,开发复杂的应用程序。 (2)MATLAB工作环境 这是对MA丁LAB提供给用户使用的管理功能的总称.包括管理工作空间中的变量据输入输出的方式和方法,以及开发、调试、管理M文件的各种工具。 (3)图形句相系统 这是MATLAB图形系统的基础,包括完成2D和3D数据图示、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。 (4)MATLAB数学函数库这是对MATLAB使用的各种数学算法的总称.包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。 (5)MATLAB应用程序接口(API) 这是MATLAB为用户提供的一个函数库,使得用户能够在MATLAB环境中使用c程序或FORTRAN程序,包括从MATLAB中调用于程序(动态链接),读写MAT文件的功能。 可以看出MATLAB是一个功能十分强大的系统,是集数值计算、图形管理、程序开发为一体的环境。

1.2 MATLAB优势

(1)友好的工作平台和编程环境

(2)简单易用的程序语言

(3)强大的科学计算机数据处理能力

(4)出色的图形处理功能

(5)应用广泛的模块集合工具箱

(6)实用的程序接口和发布平台

(7)应用软件开发(包括用户界面)

2理论分析

(1)矩阵运算

MATLAB自带了许多简单矩阵,可以通过magic()和pascal()语句直接生成魔方矩阵和帕斯卡矩阵,然后直接进行加减乘与左除、右除运算。要查看非零元素,将零元素替换为空即可。

(2)解方程组与画图

  用系数矩阵的逆矩阵乘以结果矩阵就是方程组的解。要画出平面,可以先取点,然后建立网格,最后通过MATLAB中的surf语句画出所需平面。为了同时画出三幅图,在画完图后用hold on语句防止图形重画。

(3)程序设计框图

 

图1 程序流程图

 

图2 程序流程图

3程序设计与调试

3.1基本矩阵运算

题目要求:用MATLAB生成3阶帕斯卡矩阵A,魔方矩阵B,分别计算其和差积商(A\B,A/B),并查看其非零元素;

程序代码:

A=magic(3)        %生成一个三阶魔方矩阵%

B=pascal(3)        %生成一个三阶帕斯卡矩阵%

C=A+B            %矩阵和运算%

D=A-B            %矩阵减法运算%

E=A*B            %矩阵乘法运算%

F=A\B             %矩阵左除运算%

G=A/B             %矩阵右除运算%

C(find(C==0))=[]     % 找出所有零元素并替换为空元素%

D(find(D==0))=[]     % 找出所有零元素并替换为空元素%

E(find(E==0))=[]      % 找出所有零元素并替换为空元素%

F(find(F==0))=[]      % 找出所有零元素并替换为空元素%

G(find(G==0))=[]     % 找出所有零元素并替换为空元素%

运行结果:

图3 矩阵加减运算结果                                                                                                                                        

图4 矩阵乘除运算结果

图5矩阵运算结果并查看非零元素

结果分析:用magic和pascal语句生成所需矩阵,然后分别进行加减乘“/”、“\”运算。用find语句找出所有的零元素并替换为空,运行后,若矩阵含零元素,则在一行显示所有非零元素;若矩阵不含零元素,则按原矩阵输出。

3.2求解方程组并画图

(1)解方程组

题目要求:求解方程组

程序代码:

H=[1,-1,3;3,1,-1;4,-1,1]   %生成系数矩阵%

L=[5;5;9]              %生成结果矩阵%

inv(H)*L              %用逆矩阵求解%

运行结果:

图6方程组的解

(2)画出方程表示的平面

题目要求:在一个图中分别画出每个方程表示的平面。

程序代码:

x1=linspace(-10,10,21)   %从-10到10均匀取21个点%

x2=linspace(-10,10,21)   %从-10到10均匀取21个点%

[X,Y]=meshgrid(x1,x2)   %生成平面网格%

   Z=(5-X+Y)./3           %建立x3关于x1,x2的函数。%

surf(X,Y,Z)             %画出方程表示平面%

             hold on                %不要重画图形,从而同时显示三个平面。%

Z=9-4*X+Y            %建立x3关于x1,x2的函数。%

surf(X,Y,Z)             %画出方程表示平面%

hold on                %不要重画图形,从而同时显示三个平面。%

Z=3*X+Y-5            %建立x3关于x1,x2的函数。%

surf(X,Y,Z)             %画出方程表示平面%

运行结果:

图7 方程表示的平面

结果分析:通过逆矩阵求出方程组的解为x1=2,x2=0,x3=1。因为需要求逆矩阵,所以最后结果显示为浮点数。用surf语句之前必须先取点,然后生成平面网格,最后才能画出图形;而且为了在同一个图中显示三个平面,在平面生成后用hold on语句防止图形重画。

3.3总结

MATLAB自带了许多常用的矩阵和函数,合理的使用系统自带语句可以很快很方便的完成题目要求。当然,在使用语句时,必须注意语句使用细节,否则很可能会出错。

4心得与体会

经过数天的学习,我终于完成了《MATLAB》课程设计。看着手中的设计报告,心中充满成就感。

我所选的题目并不难,但是对于刚刚接触MATLAB的我,我还是无处下手。从图书馆借了一本关于MATLAB的书,从头开始慢慢的仔细研究。但是看着满篇的公式,很快我便失去了信心。于是我重新调整切入点:从题目入手。

我注意到我的第一个题目是关于矩阵运算的。于是我找到了借的书上关于矩阵的章节。很快我便解决了第一个题目。一旦入门之后,后面的路显得容易了许多。MATLAB设计窗口简洁友好,而且编程语言也十分简单易用。仅仅几行简单的程序就解决了我的问题。然而由于刚接触不久,难免忽略了一些细节问题,而这些问题也让我吃了不少苦头。在使用surf语句的时候,忘记生成网格,结果总是出错。最后查阅课本才最终解决。

在完成了所有的题目之后,我忽然意识到:MATLAB是一个很重要的学习工具。于是我没有满足于题目要求,继续学习。随着学习的深入,我发现同样的要求可能有几种不同的解决方法。比如,最初我用NaN替换零元素,但是后来我发现直接讲零元素替换为空更加直观简便。只需使用一个solve语句就能够很轻易的解出方程组。还有画图语句也有许多种。一开始我在画第一个平面的时候使用的是plot3语句。但是我发现画出来的只是一条直线。
    在网上查阅相关资料时,我注意到有许多关于MATLAB的应用。让我眼镜为之一亮的是一片关于傅立叶变换处理图像的博文。我曾学习过傅立叶变换,但是由于太过抽象,总是提不起兴趣。于是我点开了这篇文章,我才终于意识到傅立叶变换的巨大魔力。也引起了我对傅立叶变换的好奇。我尝试着阅读了几页,我渐渐发现了MATLAB的强大。我意识到要真正的深入的学习MATLAB并非易事。

为了学好MATLAB,我找了一个熟悉编程的人来辅助我的学习。他交给了我很多编程的技巧问题。许多程序的结构设计问题,对于程序的运行效率非常有帮助。有的时候,我编出来的程序,能够运行,但是耗时太长,也就是说我的程序没有错,但是不适合实际。或者说,对于规模小的问题能够解决,但是规模大一点的问题就需要很长很长的时间,这就需要对程序的结构和算法问题进行改进。比如为了求一个函数与坐标面围成的体积,若使用将平面划分成许多网格,然后用网格面积乘以高度近似求解,那么为了达到一定精度循环的次数会很多,严重影响运行速度。但是若使用二次积分,问题迎刃而解,简洁明了。

其实如果你只是为了方便自己的工作或学习,那么你没有必要把MATLAB教程全部学会,只需要学你需要的那部分即可,比如,绘图,矩阵运算,等等。我也知道我没有这个精力,也没这个兴趣去学习所有的MATLAB功能。作为一名电信系学生,我们许多方面都需要用到MATLAB。我会尽力去学习我们常用的或者与专业相关的部分。当然还有感兴趣的部分。

5参考文献

[1]王亚芳,董楠.MATLAB仿真及电子信息应用.北京:人民邮电出版社,2011

[2]王正盛.MATLAB与科学计算.北京:国防工业出版社,2011

[3]胡晓东,董辰辉.MATLAB从入门到精通.北京:人民邮电出版社,2010

[4]马丽,崔梅萍.经济数学—线性代数.北京:高等教育出版社,2009

[5]楼顺天,陈生潭,雷虎民.MATLAB 5.x程序设计语言.西安:西安电子科技大学出版社,2000

更多相关推荐:
Matlab程序设计课程总结

Matlab程序设计课程总结学院班级学号姓名成绩1Matlab的课程总结随着对matlab的学习的深入我对其了解也更加深入MATLAB是美国MathWorks公司出品的商业数学软件用于算法开发数据可视化数据分析...

matlab课程设计报告

MATLAB课程设计报告设计课题学生姓名学生学号专业班级指导教师一课程设计的目的及其意义了解matlab的窗口工具栏的使用以及作用让matlab成为我们的日常好帮手并为将来使用matlab进行信号处理领域的各种...

matlab课程设计报告

MATLAB与仿真系统课程设计班级自动化20xx2班姓名张涛学号1105130206指导教师崔新忠地点电信实验中心第9实验室大连海洋大学课程设计报告纸学院专业班级姓名学号目录一课程设计的目的与要求1二课程设计课...

matlab课程设计报告

电子信息系统仿真设计课程设计报告课题电子信息系统仿真设计姓名学号成绩班级指导教师开课时间20xx20xx学年第1学期目录一设计题目二主要内容三具体要求四进度安排五成绩评定六正文1三维绘图2信号的时域和频域表示3...

matlab课程设计报告书

课程设计题目学院专业班级姓名指导教师Matlab应用课程设计信息工程学院电子信息工程桂林20xx年12月13日Matlab应用课程设计任务书学生姓名专业班级指导教师桂林工作单位信息工程学院题目Matlab运算与...

matlab课程设计

Matlab课程设计图像与动画班级姓名学号时间地点指导教师自动化教研室Matlab课程设计目录一课程设计目的与要求二课程设计课题的分析三课程设计的内容与安排四课程设计的步骤五课程设计的结果六参考文献七附录Mat...

Matlab课程设计报告

至诚学院MATLAB实践课程设计学生姓名学号专业班级2指导教师页MATLAB课程设计第1页共1二一四年四月三十日目录1设计目的第3页2题目分析第3页3总体设计第3页4具体设计第4页5小结和心得第15页页MATL...

matlab课程设计

滨州学院课程设计学年论文题目IIR和FIR滤波器设计系院信息工程系专业通信工程班级20xx级1班姓名肖杰学号1214110103指导教师马震职称副教授20xx年1月11日滨州学院课程设计学年论文任务书指导教师用...

matlab课程设计

题目Matlab解常微分方程的初值问题一设计目的1熟练掌握Matlab的基本编程方法及其编程风格2熟练掌握Matlab常用函数的使用3能够利用Matlab软件绘制图形并解决相关的数学问题4与常微分方程的相关知识...

matlab课程设计

武汉理工大学MATLAB原理与应用课程设计课程设计任务书学生姓名李威专业班级通信1201班指导教师刘新华工作单位信息工程学院题目利用matlab仿真软件进行图像的输入输出和格式变换要求完成的主要任务认真学习ma...

matlab课程设计

北京理工大学珠海学院计算机仿真课程设计说明书题目控制系统建模分析设计和仿真学院信息学院专业班级自动化4班学号110506011008学生姓名白力洋指导教师齐连众20xx年6月25日1目录一封面1二目录2三课程设...

matlab课程设计

石河子大学数学软件课程设计课题名称正态分布描述随机变量及其应用学生姓名李雄20xx010254徐也20xx010281专业信息与计算科学20xx级指导老师杨玲香新疆石河子石河子大学二一一年六月Matlab课程设...

matlab课程设计心得(22篇)