资源描述:
《安徽建筑工程学院计算结构力学》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章线性代数方程组的求解计算结构力学第六章线性代数方程组的求解结构刚度方程[K]{Δ}={P}求解方法有直接法和迭代法两大类。直接法从Gauss消元法衍生而来,在程序设计中又称为消元分解法。解:由5—3中例可知刚度方程为Gauss消元法解线性方程组的步骤:第一步:(令[K](1)=[K])除K11外,使第1列的元素为零,即(1)式中第二式+第一式6-1Gauss消元法例:消元法求解结构刚度方程由于,故第三行类似的运算就不必进行,式中上标(1)、(2)表示消元序号。经过第一步消元后得:将第1列主元以下的元素变
2、为0第二步,除上三角外,使第二列元素均变为零,即在(2)中的第三式+第二式经过第二步消元后得:将第2列主元以下的元素变为0,当该矩阵的下三角为零时,便完成了Gauss消元法的消元过程。注意:每步消元后的[K]仍是正定对称的。由(3)式的最后一式定得:将(4)代入(3)的第二式得:将(4)式与(5)式代入(3)的第一式得:以上的运算称为Gauss消元法的回代过程。对于n阶线性方程组:第r步消元,就是要把第r列主元以下的元素消为零,并同时处理荷载项,消元公式为:回代过程:由(10)式倒数第一式,得:消元完毕,(8)
3、式成为:再代入(10)式倒数第二式,得:故有通常将(10)式中的[K(n)]记成[S],若从主元开始对各行进行规格化,即用主元除各行元素,则得到对角线为1的单位上三角阵,记为:。SUBROUTINESOLV(ZK,P,N)REAL*8ZK(50,50),P(50),CDO20K=1,N-1DO20I=K+1,NC=ZK(K,I)/ZK(K,K)DO10J=1,N10ZK(I,J)=ZK(I,J)-C*ZK(K,J)20P(I)=P(I)-C*P(K)P(N)=P(N)/ZK(N,N)Gauss消元法的程序设计为
4、:DO40K=1,N-1I=N-KDO30J=I+1,NP(I)=P(I)-ZK(I,J)*P(J)30CONTINUE40P(I)=P(I)/ZK(I,I)WRITE(*,*)'THISISDISPLACEMENT*OFTHESTRUCTURE'WRITE(*,100)(P(I),I=1,N)100FORMAT(/,2X,6F12.8)RETURNEND6-2消元分解法的矩阵表示由线性代数可知,第r步消元就相当于[K(r)]左乘初等阵[Lr]-1式中:对于n阶情形:且[Lr]与[Lr]-1相比,仅区别于第r列
5、的负号!由式(4)可知:[K]=[L][S](5)在上式中由初等阵的性质可知:代入(5)式:由于[D]是对角阵,由[K]的对称性可知:由(8)式可得:[K]=[L][D][L]T(10)我们把(10)式称为对[K]的正消(分解),这样通过消元公式自然可把[K]分解为三个矩阵的乘积,而不必再找[Lr]做乘法了。(10)式亦称为消元分解法的消元过程。现利用矩阵运算求解刚度方程:[K]{Δ}={P}由(10)式:[L][D][L]T{Δ}={P}(11)设:[L][Y]={P}(12)则有:[D][L]T{Δ}={Y
6、}(13)由(12)式对{P}进行正消,则可得{Y},这说明对{P}的正消与对[K]的消元可以分开进行,而不必“同时”进行。∵[L]=[L1][L2]……[Ln-1][Ln-2](14)∴{Y}=[Ln-1]-1[Ln-2]-1……[L2]-1[L1]-1{P}(15)由此可知:{Y}={P1(1)P2(2)……Pn(n)}(16)对(13)式回代就得到{Δ}:[L]T{Δ}=[D]-1{Y}(17)(10)~(17)式是消元分解法的全过程,又称为[L][D][L]T法。本质上仍是Gauss消元法,但消元法要同
7、时处理[K]和{P},进行正消与回代。[L][D][L]T法可分别处理[K]和{P},见(10)式、(12)式,当得到[S]即[D][L]T阵后再处理{P},亦即可将[K]、{P}分开处理,这样对同一结构的[K]只要进行一次分解,便可对多组荷载进行计算,实现了方程的再解功能。程序存贮的是[K]的上三角,消元后存贮的是[D]-1与[L]T,这样方便回代,见(17)式。[L][D][L]T法的程序设计如下:[L][D][L]T法与Gauss消元法的比较SUBROUTINESOLV(IND,ZK,P,N)!IND:入
8、口参数REAL*8ZK(50,50),P(50),C!IND<0[K]的消元分解IF(IND)15,15,50!IND>0{P}的正消回代15DO20K=1,N-1DO20I=K+1,NC=ZK(K,I)/ZK(K,K)DO10J=1,N10ZK(I,J)=ZK(I,J)-C*ZK(K,J)20CONTINUEGOTO20050DO60K=1,N-1DO60I=K+1,NC=ZK(K,