在组件上使用复杂步骤必须满足哪些要求

  • 本文关键字:满足 组件 复杂 openmdao
  • 更新时间 :
  • 英文 :


组件必须满足哪些要求才能使用复杂的步骤来近似组件的偏导数?

首先,函数的定义必须使其能够接受复杂的输入并提供相应的输出numpy中的许多函数都支持这一点。一个值得注意的例外是arctan2

你可以自己演示,让我们使用np.sin并通过复杂的步骤计算其导数:

>>> import numpy as np
>>> x = 3.231662
>>> np.sin(x)
-0.08994761472861613
>>> dx = 0+1E-16j
>>> # The complex step solution
>>> (np.sin(x+dx) - np.sin(x))/1.0E-16j
(-0.995946497862527-0j)
>>> # The analytic solution
>>> np.cos(x)
-0.995946497862527

基本上,组件中的数学需要包含干净处理复数而不截断虚部的函数。例如,如果只使用实数进行表查找,这意味着如果输入的虚部发生变化,则响应不会发生变化。

其次,函数必须是复分析。这基本上意味着它们在复平面的两个方向上都是连续可微的。绝对值是一个不是复杂解析函数的例子。您可以在此处阅读有关复杂分析函数的更多信息:https://en.wikiversity.org/wiki/Complex_analytic_function

最新更新