利用MATLAB解决线性代数的计算问题_第1页
利用MATLAB解决线性代数的计算问题_第2页
利用MATLAB解决线性代数的计算问题_第3页
利用MATLAB解决线性代数的计算问题_第4页
利用MATLAB解决线性代数的计算问题_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、利用MATLAB 解决线性代数的计算问题摘要:本文探讨利用MATLAB来解决线性代数中的计算问题,并对线性代数一些常见的实例进行分析,阅读本文之后,你会发现平时耗费大量时间以及人力去解决的有关于线性代数的问题在MATLAB的帮助下则可以很轻松的解决掉。关键字:线性代数、矩阵运算、数据处理1. 引言MATLAB 产品家族是美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。由于其完整的专业体系和先进的设计开发思路,使得 MATLAB 在多种领域都有广阔的应用空间,特别是在 MATLAB 的主要应用方向科学计算,已经成为首选工具。线性代数是处理矩阵和向量空

2、间的数学分支,在现代科学的各个领域都有广泛的应用。随着计算机技术的发展,实现这些线性代数数值计算的计算机算法和软件也在不断发展。MATLAB的矩阵运算功能非常丰富,许多含有矩阵运算的线性代数中的计算问题,在MATLAB中很容易得到解决。下面我们将结合实例,从几个方面来阐述MATLAB 在线性代数中的应用。2. 矩阵的生成在线性代数中,我们会接触到大量的矩阵,并且经常需要用到一些特殊形式的矩阵,例如零矩阵、幺矩阵、单位矩阵等,这些特殊矩阵在应用中具有通用性。还有一类特殊矩阵在某些特定领域中得到应用,如希尔伯特矩阵、范德蒙矩阵、帕斯卡矩阵等。下面我们将展示如何用MATLAB轻松的建立一些常见的矩阵

3、。【例1】分别建立 4x4 、4x10和与矩阵B(大小自定)同样大小的零矩阵。解析:通常我们建立一个矩阵的时候往往要输入大量的数据,如果手动的输入这些矩阵,将会消耗大量的精力和时间,但是有了MATLAB后,我们就可以使用MATLAB中自带的函数来建立一些有规律的矩阵,这样可以大大的减少我们的建立矩阵的操作繁琐程度,现在我们将使用zeros函数建立4x4的零矩阵,该函数只需要输入几个简单的参数就可以完成一个你需要的大型零矩阵。解:(1) 建立一个4x4的零矩阵。zeros(4)ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(2) 建立一个4x10的零矩阵zeros(4

4、,10)ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0(3)设B为3x2矩阵,则可以用zeros(size(B)建立以个与B同样大小的零矩阵。B=10 20;30 40;50 60;zeros(size(B)ans = 0 0 0 0 0 0【例2】建立一个7x7的范德蒙矩阵并求它的逆矩阵解析:范德蒙矩阵的最后一列全为1,倒数第二列为一个指定的向量,其他各列是其后列和倒数第二列的点乘积,MTALAB的自带函数vander(V)可以帮助我们以V向量为基础向量生成范德蒙矩阵。

5、1) C=vander(1:7)C = 1 1 1 1 1 1 1 64 32 16 8 4 2 1 729 243 81 27 9 3 1 4096 1024 256 64 16 4 1 15625 3125 625 125 25 5 1 46656 7776 1296 216 36 6 1 16807 2401 343 49 7 12) 求逆矩阵可以使用MATLAB自带的函数inv(X)inv(C)ans =0.0014 -0.0083 0.0208 -0.0278 0.0208 -0.0083 0.0014-0.0375 0.2167 -0.5208 0.6667 -0.4792 0.1

6、833 -0.02920.4097 -2.2500 5.1458 -6.2778 4.3125 -1.5833 0.2431-2.3125 11.8333 -25.3958 29.3333 -19.2708 6.8333 -1.02087.0889 -32.7417 64.8333 -70.6944 44.6667 -15.4083 2.2556-11.1500 43.9500 -79.0833 82.0000 -50.2500 16.9833 -2.45007.0000 -21.0000 35.0000 -35.0000 21.0000 -7.0000 1.0000MATLAB 提供了若干能

7、产生其元素值有一定规律的特殊矩阵的函数,这类特殊矩阵在有关特定领域中是很有用的。除了以上例子中的两个之外,还有较为常见的:ones 函数:产生幺矩阵;eye 函数:产生单位矩阵;rand 函数:产生 01 均匀分布的随机矩阵;randn函数:产生标准正太分布随机矩阵;magic函数:产生魔方矩阵;Hilbert函数:产生西伯尔特矩阵;Toeplitz函数:产生一个对称的托普利兹矩阵;Pascal函数:产生一个帕斯卡矩阵。由于篇幅有限,在此就不一一列举出这些函数的例子,如果需要了解某个函数的使用方法,可以在MATLAB 命令窗口中输入“help + 函数名”形式的命令,就可以得到对应函数的帮助信

8、息。3. 矩阵分析在线性代数中,矩阵的分析包括矩阵求值、矩阵结构变换、矩阵的特征值和特征向量。下面将通过一个例子展示MATLAB中强大的数值计算及矩阵操作功能。【例3】 (1)求一个5x5的帕斯卡矩阵并求将其逆时针旋转900后的矩阵;(2)求出帕斯卡矩阵及旋转矩阵的全部特征值构成向量E1和E2。解:(1)在MATLAB的命令窗口中输入如下命令:P=pascal (5)A=rot90(P)结果如右图所示:(2)继续在命令窗口中输入:E1=eig(P)E2=eig(A)最终结果如右图所示,此处为了节省篇幅,将E1和E2用转置形式表示。4. 求解方程在科学计算和工程应用中,有许多问题都涉及线性代数方

9、程组数值的求解。例如,房建及桥梁结构的应力分析、用差分法解偏微分方程、用最小二乘法原理对测量数据进行数据拟合等。在MATLAB中,求解一个线性方程组是非常方便的。结合上文提到的各种分析矩阵的方法,我们可以轻松的解决下面例题中提到的问题。【例4】利用求逆方法解任意三元线性方程组。aX1-bX2+cX3 = d iX1 +jX2+kX3 = leX1- fX2+gX3 = h解析:在求解齐次线性方程组时需要先判断方程组是否有解,若有解再去求通解,因此,解方程组的步骤为:第一步:判断Ax=b 是否有解,若有解则进行第二步;第二步:求Ax=b 的一个特解;第三步:求Ax=b 的通解;解:新建一个M文件

10、,写入如下内容fprintf(请按照 na b c; e f g; i j k n的格式输入系数矩阵);a=input(:);b=input(请输入常数矩阵b;h;l:);R1=rank(a),R2=rank(b);m=size(a,2);if(R1 = R2 & R1 = m) fprintf(方程组有唯一解n); x=inv(a)*belseif(R1=R2 & R1 请输多项式的系数矩阵a b c d e f:3 -7 0 5 2 -18计算结果如下: X= 2.1837 1.0000 + 1.0000i 1.0000 - 1.0000i -0.9252 + 0.7197i -0.925

11、2 - 0.7197i5. MATLAB中其他与线性代数有关的功能MATLAB中的数学运算函数,如sqrt,exp,log 等都是作用在矩阵的各元素上,如果对一个大型的矩阵进行这些操作,代码编写将变得很繁琐,使用也不方便,于是MATLAB中提供了一组“超越函数”,这些函数可以直接作用在矩阵上,如矩阵对数函数logm、矩阵平方根 sqtrm ,但要注意的是这些函数对应的参数必须为一个矩阵。线性代数在数据统计处理中也有很广泛的应用,在MATLAB中提供了一系列用于进行与矩阵有关的数据统计处理函数,如:max 函数:求一个数据序列最大值的函数;sum 函数:求一个数据系列的和函数;mean 函数:求一个数据系列的算术平均值;cumsum 函数:求一系列数的累加;std 函数:求一系列数的标准方差。【例6】比较两位同学的成绩,并画出成绩波动曲线。同学170998085898891929993同学289909985868587959690解:新建一个M文件,输入如下代码:A=1 2 3 4 5 6 7 8 9 10;B=90 89 90 99 85 86 85 87 95 96;C=70 99 80 85 89 88 91 92 99 93;fprintf(同学1的平均成绩为:n);a=mean(B)fprintf(同学2的平均成绩为:n);b=mean(C)p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论