上次说到了完全牛顿法与修正牛顿法,有限元基础知识:牛顿法与修正牛顿法
修正牛顿法往往与线搜索(Line search)算法共同使用,线搜索这个算法,顾名思义,就是沿着当前这条线进行搜索,这条线在改进牛顿法中就是已经计算好的 (回顾上文可知,这个 可能是每隔好多个迭代步才会更新的),那是搜索什么呢?答案就是:沿着这个方向去搜索多大的步长才能达到势能最低。也就是说现在前进的方向由 固定了,具体沿着这条路走多远则由线搜索确定。 在没有引入线搜索的时候:
那么在引入线搜索后,就变成了
所以可以发现这里我们引入了一个额外的系数 , 去对位移增量进行一定的放缩,也就是沿着这条方向决定步长。
由于我们希望在线搜索后系统达到势能最小,那么也就是
即残余的载荷向量与增量位移向量相正交。由这些公式我们就可以计算得到 , 然而呢,准确的得到 首先是会非常繁琐,其次在大多数情况下也没有必要,我们实际中往往是根据一些迭代算法取得一些相较当前步长更优的解也就足够了,所以我们一般情况下会定义
而当在不断的线搜索迭代中,当我们得到了
也就是说当 有所减小的时候就认为可以了, 其中 是个系数一般取为 .
一般来说上述line search的内部迭代可以选用以下几种方法(后续可以详细介绍):
在完全牛顿法中,我们其实无需要使用线搜索方法,因为每一步的切线刚度都是给予当前状态进行计算的,已经达到了步长最优,而在改进牛顿法、拟牛顿法法等牛顿法的改进型,由于 方面的简化计算,我们往往都需要用线搜索方法来确定一个最合适的增量。
在Abaqus等商软中,其实也是可以去修改线搜索的一些默认参数,如下图所示,可以从 Others >> Gerneral Solution Controls >> Line Search Control 这里修改线搜索的参数,其中