- 1、本文档共18页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)