首页/文章/ 详情

有限元基础知识:拟牛顿法与BFGS

21小时前浏览14

上次说到了完全牛顿法与修正牛顿法,又基于修正牛顿法引入了线搜索相关的知识,

有限元基础知识:牛顿法与修正牛顿法

有限元基础知识:线搜索

现在介绍另一类迭代方法,割线类迭代方法,也称之为拟牛顿法 (Quasi-Newton)

对于割线类迭代方法,也就是这里说的拟牛顿法,核心思想也比比较简单,可以这么思考:

  1. 完全牛顿法需要每个迭代步都计算切线刚度矩阵,费时费力
  2. 修正牛顿法虽然规避了上述问题,但是迭代次数往往过多
  3. 那么我们大概预估一下切线刚度矩阵吧

首先我们在第j个迭代已经计算了切线刚度矩阵的基础上计算

 

注意这里的     我们并没有更新到    , 那么基于我们计算出来的    , 我们可以执行如下计算,这里就与完全牛顿法不同,我们做一个假定:

 

而其中

 

可以看到这个和完全牛顿法中

 

在等式右侧向量是完全不同的,我们将完全牛顿法中的     替换成了    。这样我们其实是构建出了     与     步之间的一个割线方程,其得出的刚度矩阵为类似于下图的割线方向:


下面我们进行一些公式转换,可以得到多种“近似”的刚度矩阵更新办法,其中一阶形式为:

 

但是观察上面的式子我们可以看到,其虽然可以无需进行重复的单元计算去更新刚度矩阵,而还是要进行麻烦的矩阵分解 (往往最为耗时),就其实在一定程度上失去了意义。所以科学家们就提出了,直接更新刚度矩阵逆矩阵的方法,其中最出名的就是BFGS (Broyden–Fletcher Goldfarb–Shanno)更新

 

虽然上述公式看起来十分复杂,但是在真正的实现过程中,就避免了矩阵的重新计算与分解,很多vector与matrix的结果都可以储存起来用于更新,其实现过程也有很多细节,这部分则留到下次说。

现在可以得到的结论是,由于其刚度矩阵是一直更新的,但又仅仅是近似的切线刚度矩阵,拿割线代替切线,那么其收敛性往往是弱于完全牛顿法的,但一般又好于修正牛顿法,一般来说相比完全牛顿法的二次收敛,我们往往称之为superlinear收敛性,意思就是收敛ratio > 1.0。总的来说这个方法的好处,就是以相对小的代价提供了接近切线刚度矩阵的刚度更新,所以往往计算效率都能提高。

然而由于有限元分析的复杂性,有的时候割线刚度矩阵并不能很好的模拟切线,所以与其说其在有限元中用的多,近些年来BFGS这类方法反而是在优化领域用的更多。



来源:大狗子说数值模拟
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-03-20
最近编辑:21小时前
大狗子说数值模拟
博士 传播国际一流的数值模拟算法
获赞 6粉丝 11文章 49课程 0
点赞
收藏
作者推荐

我看Abaqus的一些小问题-1

这个系列我会持续的说一些Abaqus求解方面的小问题,都是我日常遇到的,帮助大家避坑的同时,也让大家感受学习有限元算法的乐趣,大家一起来“祛魅”,Abaqus虽然是一款成熟的产品,但是也不免有些小问题,我等“小辈”可以发现也或可超越。下图为一个实体单元组成的案例,案例中左端固定,右端施加点力,左侧案例采用C3D20,而右侧单元采用C3D20R (缩减积分),故意设置的单元长细比较大,但未达到报错的地步,计算出来的位移结果如下图所示: 可以看到右侧已经出现明显的沙漏现象,一般情况下二阶单元其实是对沙漏效应有一定抵抗能力的,然后当大家想调一调沙漏控制方法的时候,你会发现Abaqus对其二阶单元抵抗沙漏特别有自信,并没有给你提供沙漏控制的选项(一阶是有的),如下图所示: 所以弱小和无知不是生存的障碍,傲慢才是!(《三体》)。然后我们进一步看这个案例,当我们查看其支座反力,会发现支座区域会有明显的渲染错误,其实这种情况也好解释,证明Abaqus后处理采用的还是最简单的三角面片渲染,并没有针对六面体特别是二阶单元进行一些修正,这就会导致在中心节点处经常会出现渲染错误,而由于支座反力只在支座处存在,其他地方为0,这种效应就特别明显。比如Femap和Hyperview就没有这种问题。最后重申Abaqus是一款成熟的软件,我非常爱用,大多数问题上非常厉害(算法稳健、操作流程合理),有些小问题,大家看着当个乐,当然也不少,后续持续更新......来源:大狗子说数值模拟

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈