梁示例的伴随成本

时间:2018-08-11 19:00:19

标签: openmdao

经常说,伴随方法的计算成本不会随着设计变量数量的增加而增加。但是,似乎问题的增加会带来一些计算上的影响。例如,通过增加''Beam optimization Using the Adjoint Method''示例中输入的元素数量,FEM矩阵的大小将增加,并且应该有更多的关联计算成本。

那么为什么说随着设计变量数量的增加,伴随的成本却是不变的?这似乎不协调。

1 个答案:

答案 0 :(得分:2)

为了了解伴随方法的计算成本,您需要首先了解如何使用线性求解来计算总导数。您应该阅读OpenMDAO theory manual来获得简短(但更完整)的摘要。您也可以阅读seminal paper,了解各种计算导数的方法。 非常,当您要计算总导数时,将执行线性求解(Ax = b),其中A矩阵由偏导数组成。

偏导数便宜且相对容易计算。其总数昂贵且难以计算。如果使用直接方法,那么一旦预先设计变量(类似于有限差分),就需要解决形成的特定线性系统(Ax = b)。使用伴随方法,您可以解决一个不同的系统(A ^ T x = c),每个系统只需要解决一次即可。

因此,对于伴随方法,更改设计变量的数量时,执行的线性求解的数量不会改变。由于这个原因,我们经常说它的成本与设计变量的数量无关。在某些情况下,当线性系统的大小随着您更改设计空间的大小而发生显着变化时(即,如果要使FEM变大并具有更多独立的元素),这可能有点不精确。在那种情况下,任何一个线性求解的成本都在增加,但是线性求解的数量仍然保持不变。

广义上讲,线性求解的数量是总体计算成本中最重要的因素,因此对于一阶近似而言,可以合理地说基于伴随的方法的成本与设计空间的大小无关。