基于C语言实现大规模节点方程的LU分解算法.doc

基于C语言实现大规模节点方程的LU分解算法.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于C语言实现大规模节点方程的LU分解算法

基于C语言实现大规模节点 方程的LU分解算法 班级 : 0403205班 学号 : 040320510 姓名 : 邵汉钦 完成日期 : 2006-03-25 基于C语言实现大规模节点方程的LU分解算法 [实验目的及主要内容] 通过编程实现基于C语言的大规模节点方程的LU分解算法,熟悉在电路仿真中运用的节点分析法计算机实现过程,对算法的收敛性、效率、计算过程中节省内存的手段和重要性有清晰的认识,从而能更好地运用商用大规模仿真软件或自己动手编写仿真软件。 [实验原理] 对复杂网络所建立的节点方程组,常常是高阶线性方程组,所以说,对线性电路的稳态分析,最终可归结为高阶线性方程组得求解问题。 线性方程组的解法很多,一般可以分为两大类:直接法和迭代法。直接法是通过对方程组直接进行一系列的运算而得到方程的解;迭代法是一开始就给出一个近似的解,然后通过逐次逼近来求LAE较好的近似解,迭代过程要一直进行到近似解达到预定的精度为止(即收敛到精确解)。直接法的两个基本方法是高斯消元法和LU分解法,它们也是稀疏矩阵技术的基础。 LU分解是矩阵三角化分解法之一,也称三角分解法。它是把方程中的系数矩阵分解成下三角矩阵L和上三角矩阵U的乘积 A=LU 式中,L为主对角线以上的元素均为零的下三角矩阵;U为主对角线以下的元素均为零,且主对角线元素均为1的上三角矩阵。上式展开就是: = 则方程变为: AX=LUX=B 一旦A分解成功,我们就可以设UX=Y,方程就变成一个下三角形系统LY=B,解此方程可以用所谓“前代”的方法,即从第1个方程求出,进而从第2个方程求出,依次类推,直到求出,,…,代入第n个方程求出。然后求解上三角系统UX=Y,这样就可以用回代的方法求出X来。 LU分解法的优点主要表现在当系数矩阵A不变,即只是网络元件参数 不变,仅仅是右手边向量B变化时,即外加激励信号变化时,可以减少解方程的计算工作量。因为一旦系数矩阵分解成L和U的乘积,就可以把L,U存储起来,每次右手边向量变化时,只需做前代和回代,即可完成方程的求解。它在灵敏度计算中需要求转置的方程组时也方便得多。 下面推导对A矩阵进行LU分解的方法。 在以上推导过程中得到下式: = 将其按矩阵乘法展开,就可以推导出 L矩阵的第1列元素 U矩阵的第1行元素 L矩阵的第2列元素 U矩阵的第2行元素 若按此方式对列和行依次交换计算下去,最终即将求出 L和U矩阵的全部元素,其通用公式为: 以上公式给出了对A矩阵进行LU分解的基本方法,在此基础上就可以编程实现LU分解法解线性方程组。 [程序设计] 按以上公式可以归纳出如下的求解线性代数方程组得LU分解算法: 输入:A,非奇异矩阵n×n。 令m=1。 计算L的第m列: 若m=n,则分解结束。 计算U的第m行: m=m+1,返回第2步。 前代: 回代: LU分解法的计算工作量约为。 由上述步骤可以得出如下的程序流程图: [程序源代码] //******************************************************************************** //------------------------基于C语言实现大规模节点方程的LU分解算法--------------- //------------------------ 0403205班 040320510 邵汉钦 --------------- //------------------------ 完成日期:2006年3月25日 --------------- //******************************************************************************** //程序功能描述: //设n元线性方程组的矩阵形式为 AX=B //输入矩阵A和B,根据LU分解法求解方程组,得到矩阵X //******************************************************************************** //--------------------------------------------------------------------------- #include vcl.h #pragma hdrstop #include Unit1.h #include stdio.h #include iostream.h #include iomanip.h #include stdl

文档评论(0)

pangzilva + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档