1、 本科 毕业论文 ( 设计 ) ( 20 届) MATLAB 软件在线性代数中的应用 所在学院 专业班级 信息与计算科学 学生姓名 学号 指导教师 职称 完成日期 年 月 本科生毕业论文(设计) I 摘要 :线性代数是一门重要的数学基础课, MATLAB软件是目前教学与科研中最具影响力、最有活力、最具可靠性的数学软件, 并应用到社会各个方面。本文首先介绍了线性代数和 MATLAB 产生的背景,以及它们的发展历程和发展方向。接着叙述了解决线性代数问题的方法及其算法。我们通过分析问题建立数学模型,使用 MATLAB 软件进行求解。最后运用线性代数和 MATLAB 来解决相关实际问题,即它们被应用的
2、过程。 关键词 :线性代数, MATLAB,数学模型 本科生毕业论文(设计) II MATLAB in linear algebra application Abstract: Linear algebra is an important basic course of mathematics, MATLAB software is the most influential , dynamic, and reliable mathematic software in the currently teaching and scientific research, and applicated t
3、o social each aspect. This paper first introduces the linear algebra and the background of MATLAB, and their development course and the development direction. Then describes the method of solving linear algebra problem and its algorithm.We establish the mathematical model through analying the proble
4、m,and use the MATLAB software to solve it. Finally using linear algebra and MATLAB to solve the related practical problems , which is that they are applied process. Keywords: Linear algebra, MATLAB, the mathematical model 本科生毕业论文(设计) III 目录 1 绪论 . 1 1.1 问题的背景、意义 . 1 1.1.1 背景 . 1 1.1.2 意义 . 1 2 线性代数概
5、论 . 2 2.1 线性代数发展历程及现状 . 2 2.2 线性代数和 MATLAB软件相结合的发展方向 . 4 3 MATLAB 环境下矩阵的建立 . 5 3.1 矩阵的创建 ( 输入 ). 5 3.2 求方阵的行列式 . 5 3.3 求逆矩阵 . 5 3.4 矩阵的基本运算 . 6 3.5 MATLAB环境下矩阵的简单运算 . 6 4 克莱姆 法则在的 MATLAB 软件上的实现 . 9 5 MATLAB 软件在线性代数中的应用实例 . 14 5.1 减肥配方的实现 6 . 14 5.2 人口迁徙模型 8 . 15 6 结论 . 17 致 谢 . 18 参考文献 . 19 本科生毕业论文(
6、设计) 1 1 绪论 1.1 问题的背景、意义 1.1.1 背景 线性代数是大学理、工、经管、医、农等学科所有专业必修的一门重要数学基础课。它作为离散性数学在工科数学中的代表,随着计算机科学日新月异的发展,许多非线性问题高精度地线性化与大型线性问题的可计算性正在加快逐步实现,因此无论从理论上还是从应用上看,线性代数的地位更趋重要。 1 MATLAB软件是目前教学与科研中最具影响力、最 有活力、最具可靠性的数学软件 2 。它起源于矩阵运算, MATLAB名字由 MATrix和 LABoratory两词的前三个字母组合而成。 3 作为高度集成的计算机语言,它携带几十个软件包,提供了强大的科学运算、
7、灵活的程序设计流程、高质量的图形可视化与界面设计,与其他语言的接口也非常便捷。在欧美的大学里,诸如应用统计分析、自动控制、数字信号处理、模拟与数字通信、时间序列分析、动态系统仿真等课程都把 MATLAB作为教学内容。 4 1.1.2 意义 线性代数作为代数的一个主要分支,以向量空间与线性变换作为研究对象,就其在数学、物理学以及经济学等分支的应用来说,线性代数的离散化思想具有非常特殊的作用,因此也成为我国大学生必修的公共基础课之一。此外,线性代数思想特别使用于计算机编程,它以坐标法和向量法作为主要的研究工具,通过矩阵和向量性质研究多变量之间的线性关系,因此, MATLAB与线性代数的紧密结合有着
8、非常广阔的前景。 6,5 本科生毕业论文(设计) 2 2 线性代数概论 2.1 线性代数发展历程及现状 线性代数是高等代数的一大分支。我们知道一次方程叫做线性方程,讨论线性方程及线性运算的代数就叫做线性代数。在线性代数中最重要的内容就是行列式和矩阵。行列式和矩阵在十九世纪受到很大的注意 , 而且写了成千篇关于这两个课题的文章。向量的概念 , 从数学的观点来看不过是有序三元数组的一个集合 , 然而它以力或速度作为直接的物理意义 , 并且数学上用它能立刻写出 物理上所说的事情。向量用于梯度 , 散度 , 旋度就更有说服力。同样 , 行列式和矩阵如导数一样(虽然 dy/dx 在数学 上不过是一个符号
9、 , 表示包括 y/ x的极限的长式子 , 但导数本身是一个强有力的概念 , 能使我们直接而创造性地想象物理上发生的事情)。因此,虽然表面上看,行列式和矩阵不过是一种语言或速记,但它的大多数生动的概念能对新的思想领域提供钥匙。然而已经证明这两个概念是数学物理上高度有用的工具。 线性代数学科和矩阵理论是伴随着线性系统方程系数研究而引入和发展的。 行列式的概念最早是由十七世纪日本数学家关孝和提出来的,他在 1683 年写了一部叫做解伏题之法的著作,意思是 “ 解行列式问题的方法 ” ,书里对行列式的概念和它的展开已经有了清楚的叙述。欧洲第一个提出行列式概念的是德国的数学家, 微积分学奠基人之一 莱
10、布 尼 兹 ( Leibnitz , 1693 年) 。 1750 年 克莱姆( Cramer ) 在他的线性代数分析导言( Introduction d lanalyse des lignes courbes algebriques )中 发表了求解线性系统方程的重要基本公式(既人们熟悉的 Cramer 克莱姆法则)。 1764 年 , Bezout 把确定行列式每一项的符号的手续 系统化了。对给定了含 n 个未知量的 n 个齐次线性方程 , Bezout 证明了系数行列式等于零是这方程组有非零解的条件。 Vandermonde 是第一个对行列式理论进行系统的阐述 ( 即把行列式理论与线性方
11、程组求解相分离 ) 的人。并且给出了一条法则,用二阶子式和它们的余子式来展开行列式。就对行列式本身进行研究这一点而言,他是这门理论的奠基人。 Laplace 在 1772 年的论文对积分和世界体系的探讨中 , 证明了 Vandermonde 的一些规则 , 并推广了他的展开行列式的方法 , 用 r 行中所含的子式和它们的余子式的集合来展开行列式,这个方法现在仍然以他的名字命名。 德国数学家雅可比( Jacobi )也于 1841 年总结并提出了行列式的系统理论。另一个研究行列式的是法国最伟大的数学家 柯西 (Cauchy) ,他大大发展了行列式的理论,在行列式的记号中他把元素排成方阵并首次采用
12、了双重足标的新记法,与此同时发现两行列式相乘的公式及改进并证明了 laplace 的展开定理。相对而言,最早利用矩阵概念的是 拉格朗日( Lagrange ) 在 1700 年后的双线性型工作中体现的。拉格朗 日期望了解多元函数的最大、最小值问题,其方本科生毕业论文(设计) 3 法就是人们知道的拉格朗日迭代法。为了完成这些,他首先需要一阶偏导数为 0 ,另外还要有二阶偏导数矩阵的条件。这个条件就是今天所谓的正、负的定义。尽管拉格朗日没有明确地提出利用矩阵。 高斯( Gauss ) 大约在 1800 年提出了高斯消元法并用它解决了天体计算和后来的地球表面测量计算中的最小二乘法问题。(这种涉及测量
13、、求取地球形状或当地精确位置的应用数学分支称为测地学。)虽然高斯由于这个技术成功地消去了线性方程的变量而出名,但早在几世纪中国人的手稿中就出 现了解释如何运用 “ 高斯 ” 消去的方法求解带有三个未知量的三方程系统。在当时的几年里,高斯消去法一直被认为是测地学发展的一部分,而不是数学。而高斯 - 约当消去法则最初是出现在由 Wilhelm Jordan 撰写的测地学手册中。许多人把著名的数学家 Camille Jordan 误认为是 “ 高斯 - 约当 ” 消去法中的约当。 矩阵代数的丰富发展,人们需要有合适的符号和合适的矩阵乘法定义。二者要在大约同一时间和同一地点相遇。 1848 年英格兰的
14、 J.J. Sylvester 首先提出了矩阵这个词,它来源 于拉丁语,代表一排数。 1855 年矩阵代数得到了 Arthur Cayley 的工作培育。 Cayley 研究了线性变换的组成并提出了矩阵乘法的定义,使得复合变换 ST 的系数矩阵变为矩阵 S 和矩阵 T 的乘积。他还进一步研究了那些包括矩阵逆在内的代数问题。著名的 Cayley- Hamilton 理论即断言一个矩阵的平方就是它的特征多项式的根,就是由 Cayley 在 1858 年在他的矩阵理论文集中提出的。利用单一的字母 A 来表示矩阵是对矩阵代数发展至关重要的。在发展的早期公式 det( AB ) = det( A )de
15、t( B ) 为矩阵代数和行列式间提供了一种联系。 数学家 Cauchy 首先给出了特征方程的术语,并证明了阶数超过 3 的矩阵有特征值及任意阶实对称行列式都有实特征值;给出了相似矩阵的概念,并证明了相似矩阵有相同的特征值;研究了代换理论 。 数学家试图研究向量代数,但在任意维数中并没有两个向量乘积的自然定义。第一个涉及一个不可交换向量积(既 v x w 不等于 w x v )的向量代数是由 Hermann Grassmann 在他的线性扩张论( Die lineale Ausdehnungslehre ) 一 书中提出的 (1844) 。他的观点还被引入一个列矩阵和一个行矩阵的乘积中,结果就
16、是现在称之为秩数为 1 的矩阵,或简单矩阵。在 19 世纪末美国数学物理学家 Willard Gibbs 发表了关于向量分析基础 ( Elements of Vector Analysis ) 的著名论述。其后物理学家 P. A. M. Dirac 提出了行向量和列向量的乘积为标量。我们习惯的列矩阵和向量都是在 20 世纪由物理学家给出的。 矩阵的发展是与线性变换密切相连的。到 19 世纪它还仅占线性变换理论形成中有限的空间。现代向量空间的定义是由 Peano 于 1888 年提出的。二次世界大战后随着现代数字计算机的发展,矩阵又有了新的含义,特别是在矩阵的数值分析等方面。 由于计算机的飞速发
17、展和广泛应用,本科生毕业论文(设计) 4 许多实际问题可以通过离散化的数值计算得到定量的解决。于是作为处理离散问题的线性代数,成为从事科学研究和工程设计的科技人员必备的数学基础。 2.2 线性代数和 MATLAB 软件相结合的发展方向 线性代数是一门应用性很强,但又在理论上进行了高度抽象的数学学科。一方面,中学生就学过了二元 一次代数方程的解法,代入法和消去法大概每个人都会记忆一辈子,这就是做简单的线性代数。当把方程的阶次提高到了三元一次以上时,它不但要求较高级的抽象思维能力,而且也要求用十分烦琐的计算步骤才能解决问题。对于数学家,他们重视前者,这无可厚非;但对于大多数工科学生,他们更需要的是
18、能应用它的理论,指导完成实际的计算。事实上,线性代数的那种单调、机械、枯燥的运算,只是由于计算机的出现才赋予了在应用方面的生命力。 7 20 世纪 80 年代,出现了个人计算机并迅速普及。新的硬件也带动了 新的软件,出现了新颖的科学计算语言,也称为数学软件,因为它具有高效、可视化和推理能力等特点。 8 计算机技术的发展已经对人们的物质生活和文化生活产生了十分巨大的影响,其最显著的功能就是高速度地进行大量计算,这种告诉计算使得许多过去无法求解的问题成为可能,因而科学计算已成为与理论研究、科学实验并列的科学研究的三大手段。 9 MATLAB是“矩阵实验室”( Matrix Laboratory)的
19、缩写,它是一种以矩阵运算为基础的交互式 程序语言,当然它特别适合于线性代数,并能更广泛地适应科学和工程计算及绘图的需求。与其他计算机语言相比, MATLAB 的特点是简捷和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。它用解释方式工作,键入程序立即得出结果,人机交互性能好,易于调试并为科技人员所乐于接受。特别是它可适应多种平台,并且随计算机硬软件的更新及时升级。 11,10 MATLAB的基本数据单元是矩阵,所有的变量都可用矩阵来表示,向量是行数为 1或列数为 1的矩阵,而标量则是 1行 1列的特 例矩阵,在编程时不必像其他语言一样为矩阵定义维数和大小。用 MATL
20、AB求解一个问题比编写 Fortran、 C或 Basic语言程序求解所用的时间要少得多。此外,它的数学表达式和运算结果也几乎和数学解析的表现形式完全 相同。 13,12 本科生毕业论文(设计) 5 3 MATLAB 环境下矩阵的建立 3.1 矩阵的创建 ( 输入 ) 在 MATLAB 中 , 输入矩阵时每一行元素 用分号分隔 , 格式为 : a, b, c;d, e, f;g, h, i 。 3.2 求方阵的行列式 求行列式是通过 det 函数求 解。 例 1 求下列矩阵的行列式 19249047858990649852146810A解 程序为 A=10,8,6,4,1;2,5,8,9,4;
21、6,0,9,9,8;5,8,7,4,0;9,4,2,9,1; D=det(A) 结果为 D=5.9720e+003=5972 3.3 求逆矩阵 用 inv 来实现 , 要注意大小写字母的区别。 例 2 设4431941351156303A ,试求其逆阵 1AV 解 按上述方法写成 MATLAB程序 A=3,0,3,-6;5,-1,-1,-5;-3,1,4,-9;1,-3,4,-4; V=inv(A) 结果为 0 3 0 3.01 5 1 5.02 4 2 4.02 4 2 4.01 0 1 0.01 7 1 7.04 7 4 7.05 8 5 9.02 5 2 5.00 7 0 7.03 1
22、3 1.05 3 5 4.00 4 0 4.01 3 1 3.00 1 0 1.00 2 3 2 3V 8 本科生毕业论文(设计) 6 3.4 矩阵的基本运算 可算加法“ +”、减法“ -”、乘法“ *” , 及数乘等。 14 3.5 MATLAB 环境下矩阵的简单运算 那么,我们先来看如下的一个矩阵3102111aaA ,问常数 a 满足什么条件时,矩阵 A可逆,并求其逆矩阵;特别给出当矩阵 A的行列式等于 -6时的逆矩阵。 解这样的带有符号变量的计算问题用手工方法是很难完成的。现编程如下: %判断符号矩阵何时可逆,并求其逆。 clear all syms a %符号变量说明 disp( 输入的矩阵是: ) A=1 1 -1;a 2 0;-1 a 3 %符号矩阵输入 D=det(A); Disp( 当参数 a不等于 ) p=solve(D) %求符号矩阵行列式值函数的零点 disp( 时其有逆阵: ) B=inv(A) %求符号逆矩阵 q=solve(D+6); %求行列式等于指定值 -6时的参数 a 的值 L=length(q); For i=1:L disp( 当参数 a 等于 ) subs(q(i) %将参数 a 的值 q 转换为实数形式 disp( 时矩阵的行列式等于指定值( -6),其逆矩阵为: )
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。