有限元一维变带宽存储的刚度方程的LDLT求解用C++实现(一)

本文介绍了在有限元分析中,使用LDLT分解法解决一维变带宽存储刚度矩阵的直接解法。详细阐述了LDLT分解原理,并给出了一维变带宽存储的刚度方程C++实现步骤,讨论了避免临时二维数组以优化存储的方法。
摘要由CSDN通过智能技术生成

在有限元程序中,刚度方程[K]建立完毕,节点力向量F经过了非齐次边界条件处理、等效节点力处理后,都搞成了已知量。此时,就可以解F=KD方程组,来求节点位移向量D了。

求解F=KD方程组的方法有很多,主要可以分为精确解法和迭代解法两种。顾名思义,精确解法就是直接解出D向量的精确值。迭代法则用于复杂的方程组,在精确解难以求出或求解成本太高时,通过一次次迭代近似求解,逼近精确解,当达到可接受的精度时,迭代停止。

对于商用有限元软件,由于模型太大太复杂,一般都使用迭代求解。

本篇介绍适用于小型方程组且能够得到精确解答的情况,使用LDLT方法解刚度方程F=KD,并用C++实现。

(1)LDLT方法的原理

LDLT分解法是一种基本的线性方程组直接解法。其优势是可以节约内存空间和减少计算量,其公式推导的资料在网上有一大堆,有兴趣的同学可以自行查找。此处仅简要说明。

对于对称正定矩阵A(例如,刚度矩阵[K]),可以将A分解为A =LDLT.并且该分解是唯一的。其中L是单位下三角矩阵,D为对角线矩阵,且对角线元素不为零。其中各矩阵的形式为:

A=

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值