- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于MATLA的线性方程组数值算法实现
基于MATLAB的线性方程组数值算法实现
摘要:MATLAB 图形用户界面(GUI)编程技术是当今计算机数值计算的重大成就之一,它在软件编程上具有着友好性、直观性、易懂性的优点而被广泛应用。本文主要介绍图形用户界面在求解线性方程组中的应用,同时介绍了求解大型线性方程组的主要迭代算法。首先,对一些经典迭代法(Jacobi方法、Gauss- Seidel方法)进行了详细的讨论,并从理论上给出了迭代公式。最后通过用MATLAB 图形用户界面(GUI)编程对求解线性方程组的设计一个用户与计算机直接交互界面,实现简单的求解线性方程组的应用软件。
关键字:图形用户界面;线性方程组;直接求解法;迭代法
引言
MATLAB 以强大的科学计算与可视化功能、简单易用、开放式可扩展环境,成为计算机辅助设计和分析、算法研究和应用开发的基本工具和首选平台。MATLAB 的附带功能图形用户界面(GUI)更具有友好性、直观性、易懂性的优点而被广泛应用[1]。与此同时, 数值计算软件的发展与成熟,在强调数值计算方法的原理、思想和基本理论的同时, 适当淡化了算法的细节和繁杂的理论证明,并在一个通用的软件平台上开展。
而在当今社会中,线性方程组被广泛应用,如一个实际问题中归纳出来的数学模型中出现的函数、方程或不等式都是线性的。线性模型在社会经济中的数据计算、信息处理、均衡生产、减少消耗、增加产出等方面有着广泛的应用,是我们改善企业生产管理、提高经济的有效工具。由于线性方程组在各学科的广泛应用,其重要性是显而易见的,有必要对线性方程组的求解进行讨论.但随着社会的发展,线性模型即线性方程组的求解也越来越复杂,针对解线性方程组有几种很好的经典算法,如Jacobi迭代法、Guass-Seidel迭代法和SOR迭代法等。
本文根据人们需要方便快捷,通俗易懂的原则,设计了一个求解线性方程组的软件应用界面,在GUI上实现解线性方程组的直接法、Jacobi迭代法、Guass-Seidel迭代法。
建立线性方程组
设线性方程组有解,则方程组有如下形式:
假设其中
即有:;
有系数矩阵: ; 右端向量: ;
直接解法
关于线性方程组的直接解法是数值分析研究的一个核心内容,通常所采用的直接解法大多基于Gauss消去法、选主元消去法、平方根法、追赶法等。在MATLAB中,只需用一个“/”或“ \ ”就解决问题。虽然表面上只是一个简简单单的符号,而它的内部却包含着许许多多的自适应算法,程序会自动根据输入的系数矩阵判断选用哪种方法进行求解。
左除运算符的直接解法
对于线性方程组,可以利用左除运算“\”求解:
当系数矩阵A为的方阵时,MATLAB会自行用高斯消元法求解方程组。可以直接获得方程组的数值解x。
利用矩阵LU分解求方程组的解
通LU分解方法来求解大型的方程组非常有用。通过分解方法求解的有运算速度快、可以节省磁盘空间、节省内存优点。
LU分解又称为GAUSS消去法,可把任意方阵分解为下三角矩阵的基本变换形式和上三角矩阵的乘积。既,L为下三角阵,U为上三角阵。
则有 变换成,有.而且在MATLAB中有LU的调用格式。
迭代法
在MATLAB中,迭代解法非常适合求解大型系数矩阵的方程组。先给定一个解的初始值,然后按照一定的迭代格式进行逐步的逼近,求解出更精确的近似解。在数值分析中,迭代解法的两种经典算法Jacobi迭代法,Gauss-Serdel迭代法。
Jacobi迭代法
对于线性方程组,如果系数矩阵A为非奇异的方阵,即,则可将A分解为,其中D为对角阵,其中元素为A的对角元素,L与U分别为A的严格下三角和严格上三角。
则可表示为:
于是转化为 :
与之对应的迭代公式为:
其中,。
这就是Jacobi迭代公式。如果序列收敛于x ,则x 必是方程的解。
Gauss-Serdel迭代法
在上述Jacobi迭代结果中,给出的可以改进为:
则得Gauss-Serdel迭代法公式为:
其中,。
该Gauss-Serdel迭代法和Jacobi迭代法相比,Gauss-Serdel迭代法用新分量代替旧分量,精度会高些。
实例应用
用左除直接法求解方程组
在输入框分别输入; ;
单击LU直接法按钮,可得到如图1所示结果:
用LU直接法求解方程组
在输入框分别输入 ; ;
单击LU直接法按钮 ,可得到如图2所示结果:
用Jacobi跌代法求解方程组
在输入框分别输入 ; ; ;单击Jacobi跌代法按钮 ,可得到如图3所示结果:
用Gauss迭代法求解上述方程组
在输入框分别输入 ; ; ;
单击Jacobi跌代法按钮 ,可
文档评论(0)