当前位置:文档之家› 广州大学matlab大作业

广州大学matlab大作业

广州大学机电学院电气101MATLAB大作业MATLAB是由美国公司发布主要面对科学计算、可视化以的计算环境。

它可以将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个视窗环境中,为科学研究众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB在以下的领域里解决各种问题是一个十分有效的工具:• 工业研究与开发。

• 数学教学,特别是线性代数。

所有基本概念都能涉及。

• 在数值分析和科学计算方面的教学与研究。

能够详细地研究和比较各种算法。

• 在诸如电子学、控制理论和物理学等工程和科学学科方面的教学与研究。

• 在诸如经济学、化学和生物学等有计算问题的所有其他领域中的教学与研究。

这学期我们做了诸多matlab实验,从符号计算及程序设计到一维、二维数组实验,还有图形显示等实验,我们初步掌握了matlab操作方法。

我会在后文中用三个例子在三个应用方面着重汇报我的matlab使用心得。

本报告将以如下顺序进行叙述:一、MATLAB在线性代数方面的应用1.简单的矩阵的生成2.常用矩阵的生成3. 线性方程求解二、MATLAB在经济学中的应用价格平衡模型分析三、MATLAB在三维图形绘制中的应用1.函数PLOT3命令2.如何改变视角四、心得体会一、MATLAB在线性代数方面的应用1980年,MATLAB的首创者Cleve Moler博士在New Mexico大学讲授线性代数课程时,看到了用高级语言编程解决工程计算问题的诸多不便,因而构思开发了用Fortran语言编写而成,集命令翻译、工程计算功能于一身的MATLAB软件。

在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。

矩阵概念在生产实践中也有许多应用,比如矩阵图法以及保护个人帐号的矩阵卡系统等等。

在第一次上机实验课中我们就做了简单的矩阵实验,下面稍作探讨:1.简单的矩阵的生成在MATLAB中,可以采用多种不同的方式生成矩阵。

(1)直接输入矩阵元素对于较小的简单的矩阵,从键盘上直接输入矩阵是最常用、最方便和最好的数值矩阵创建方法。

直接从键盘输入一系列元素生成矩阵,只要遵循下面几个基本原则:1、矩阵每一行的元素必须用空格或逗号分开;2、在矩阵中,采用分号或回车表明每一行的结束;3、整个输入矩阵必须包含在方括号“[]”中。

输入:A=[4,5,7,8;6,1,2,5;3,5,4,6;4,2,4,8]显示:A = 4 5 7 86 1 2 53 54 64 2 4 8(2)生成大矩阵在MATLAB中,可以将小矩阵连接起来生成一个较大的矩阵。

事实上,前面直接输入法生成矩阵就是将单个元素连接起来生成矩阵。

方括号“[]”就是连接算子。

输入:B=[A,A+1;A+2,A+3]显示:B =4 5 7 8 5 6 8 96 1 2 57 2 3 63 54 6 4 65 74 2 4 85 3 5 96 7 9 10 7 8 10 118 3 4 7 9 4 5 85 76 8 6 87 96 4 6 107 5 7 112.常用矩阵的生成下面介绍一些常用矩阵的生成命令:zeros,ones,eye,rand和randn。

(1)zeros生成全0阵调用格式为:B=zeros(n):生成n n的全0矩阵;如果n不是标量将给出出错信息。

B=zeros(m,n):生成m n的全0矩阵。

B=zeros(size(A)):生成与矩阵A大小相同的全0阵。

(2)ones生成全1阵调用格式为:Y=ones(n):生成n n的全1矩阵;如果n不是标量将给出出错信息。

Y=ones(m,n):生成m n的全1阵。

Y=ones(size(A)):生成与矩阵A大小相同的全1阵。

(3)eye生成单位阵调用格式为:Y=eye(n):生成n n的单位阵。

Y=eye(m,n):生成m n的矩阵,其对角线元素为1,其它元素为0。

Y=eye(size(A)):生成一个与矩阵A大小相同的单位阵。

3. 线性方程求解当然,在线性代数中不止矩阵的运算,还有线性方程组运算等。

在工程计算中,一个很重要的问题是线性方程组的求解。

在矩阵表示方法中,上述问题可以表述为:给定两个矩阵A和B,求X的唯一解使得:AX=B或XA=BMATLAB求解这种问题时并不计算矩阵的逆。

尽管在标准数学中没有矩阵除法概念,在此MATLAB求解线性方程组时,采用前面介绍的除法运算“\”和“/”求解。

X=A\B:表示求矩阵方程AX=B的解。

X=B/A:表示求矩阵方程XA=B的解。

对于X=A\B,要求矩阵A和B有相同的行数,X和B有相同的列数,它的行数等于矩阵A的列数。

对于X=B/A,则行和列的角色相互交换。

实际上,线性方程形式AX=B比形式XA=B出现的频率更高一些,相应地,左除“\”比右除“/”用得更多一些。

并且由于(B/A)T=(AT\BT),因此下面仅讨论“\”(左除)。

矩阵A并不要求是方阵,如果矩阵A的维数是m n,则有三种情况:1 m=n:适定方程组,寻求精确解;2 m>n:超定方程组,寻求最小二乘解;3 m<n:不定方程组,寻求基本解,其中至多有m个非零元素。

针对不同的情况,左除算子采用不同的算法求解。

一般形式的线性方程组为:Ax=b或AX=B其中A是个方阵,b是一个列向量,B是个方阵,X是一个与A,B同样大小的方阵。

它们的求解命令为:x=A\b或X=A\B如果A是奇异的,则AX=B的解或者不存在,或者存在但不唯一。

当A接近奇异时,A\B将给出警告信息,如果发现A是奇异的,一方面给出警告信息,另一方面给出结果为inf。

如果A是正定的,可进行Cholesky分解A=RT*R,从而可对线性方程组A*x=b 进行如下替换;RT*Rx=b由于左除算子可以处理三角矩阵,因此可以快速的解出:x=R\(RT\x)如果A可进行LU分解A=L*U,则线性方程组A*x=b,可如下进行快速计算:x=U\((L\b)正式凭借MATLAB的这些突出的优势,它现在已成为世界上应用最广泛的工程计算软件。

在大学里MATLAB是一种必须掌握的基本工具,而在研究设计单位,更是研究和解决计算问题的一种标准软件。

二、MATLAB在经济学中的应用经济学在现代社会中起着重要的作用,在分析经济学的历程中,数学上都是用线性代数对其进行建模。

但是随着经济发展,人们的经济行为越来越丰富,单靠线形分析有其局限性。

而众多经济分析软件的问世,为经济分析提供了很好的工具,因此通过MATLAB来对经济续模型进行研究,对现代经济学分析有着重要意义。

价格平衡模型分析在 Leontiff 成为诺贝尔奖金获得者的历史中,线性代数曾起过重要的作用,如今来看他的基本思路;假定一个国家或区域经济可以分解为n 个部门,这些部门都有生产产品或服务的独立功能。

设单列n 元向量vx 是这个n 个部门的产出,组成在Rn 空间的产出向量。

先假定该社会是自给自足的经济,这个是一个最简单的情况。

因此各经济的本名生产出的产品,完全被自己部门和其他部门所消费。

Leontiff 提出的问题是,各生产部门的实际产出的价格P 应该是多少,才能使各部门的收入和消耗相等,以维持持续的生产。

举一个最简单的例子,假如一个自给自足的经济体由三个部门组成,它们是煤炭业、电力业和钢铁业。

它们的单位消耗列向量和销售收入列向量P 如下表:这就是说,电力业产出了个点位的产品,有40 个单位会被煤炭业消耗,10 单位被自己消耗,而被钢铁业消耗的是个单位,各行业付出的费用为::这就是内部消耗的计算方法,把几个部门都算上,可以写出消耗成本其中总的价格平衡方程可以写成为:此等式右端常数项为零,使一个齐次方程。

它有非零解的条件是系数行列式等于零,可以用行阶阶梯简化来求解。

用MATLAB 语句写出其解得表达式:V=[0,0.4,0.6;0.6,0.1,0.2;0.4,0.5,0.2], H=rref([eye(3)-V,zeros(3,1)]) 其中eye 为生成单位矩阵,计算结果如下:这个结果是合理的,简化行阶梯形式只有两行,说明[I-V]的秩是2,所以它的行列式必定为零。

由于现在有三个变量可以作为自由变量。

记住H 矩阵中各列的意义,它们分别是原方程中pe,pc,ps, 的系数,所以简化行阶梯矩阵H 表示的是下列方程:这里取钢铁业价格PS 为自由变量,所以煤炭业和电力业的价格应该为钢铁业价格的0.94 和0.85 倍。

如果钢铁业产品价格总计为100 万元,则煤炭业的产品价格总计为94 万,电力业的价格总计为85 万。

采用vm 文件,m 文件名为price pilo vexjuan.m,程序代码为:V=[0,0.4 ,0.6;0.6,0.1,0.2;0.4,0.5,0.2]; H=rref([eye(3)-V,zeros(3,1)]); Ps=100; Pc=H(1,3)*Ps; Pe=H(2,3)*ps三、MATLAB在三维图形绘制中的应用为了显示三维图形,MATLAB 提供了各种各样的函数。

有一些函数可在三维空间中画线,而另一些可以画曲面与线格框架。

另外,颜色可以用来代表第四维。

1.函数PLOT3命令plot3 命令将绘制二维图形的函数plot 的特性扩展到三维空间。

函数格式除了包括第三维的信息(比如Z 方向)之外,与二维函数plot 相同。

plot3 一般语法调用格式是plot3(x1,y1,z1,S1,x2,y2,z2,S2,…),这里xn,yn 和zn 是向量或矩阵,Sn 是可选的字符串,用来指定颜色、标记符号和/或线形。

总的来说,plot3 可用来画一个单变量的三维函数。

如下为一个三维螺旋线例子:» t=0:pi/50:10*pi;» plot3(sin(t),cos(t),t)»title( ‘Helix ‘),xlabel( ‘sint(t) ‘),ylabel( ‘cos(t) ‘ ),zlabel( ‘ t ‘ )» text(0,0,0, ‘ Origin ‘ )» grid» v = axisv =-1 1 -1 1 0 40输出见图从上例可明显看出,二维图形的所有基本特性在三维中仍都存在。

axis 命令扩展到三维只是返回Z 轴界限(0 和40),在数轴向量中增加两个元素。

函数zlabel 用来指定z 轴的数据名称,函数grid 在图底绘制三维网格。

相关主题