那么为什么说随着设计变量数量的增加,伴随的成本却是不变的?这似乎不协调。
答案 0 :(得分:2)
为了了解伴随方法的计算成本,您需要首先了解如何使用线性求解来计算总导数。您应该阅读OpenMDAO theory manual来获得简短(但更完整)的摘要。您也可以阅读seminal paper,了解各种计算导数的方法。 非常,当您要计算总导数时,将执行线性求解(Ax = b),其中A矩阵由偏导数组成。
偏导数便宜且相对容易计算。其总数昂贵且难以计算。如果使用直接方法,那么一旦预先设计变量(类似于有限差分),就需要解决形成的特定线性系统(Ax = b)。使用伴随方法,您可以解决一个不同的系统(A ^ T x = c),每个系统只需要解决一次即可。
因此,对于伴随方法,更改设计变量的数量时,执行的线性求解的数量不会改变。由于这个原因,我们经常说它的成本与设计变量的数量无关。在某些情况下,当线性系统的大小随着您更改设计空间的大小而发生显着变化时(即,如果要使FEM变大并具有更多独立的元素),这可能有点不精确。在那种情况下,任何一个线性求解的成本都在增加,但是线性求解的数量仍然保持不变。
广义上讲,线性求解的数量是总体计算成本中最重要的因素,因此对于一阶近似而言,可以合理地说基于伴随的方法的成本与设计空间的大小无关。