Python openmdao:x27;rel';为设计变量的矢量输入计算的步长?

Python openmdao:x27;rel';为设计变量的矢量输入计算的步长?,python,openmdao,Python,Openmdao,我目前正在使用高保真流解算器(SU2)在OpenMDAO中测试基于梯度的优化,但我使用的形状参数化方法似乎对有限差分近似的步长高度敏感。这可能是因为目标函数对某些设计变量比其他变量更敏感,所以我一直使用相对步长而不是绝对步长。然而,我期望步长与向量中的每个设计变量相关,但对于应用于所有设计变量的恒定步长,情况似乎并非如此 例如,相对步长为1e-5时,实际步长为4.2e-5(常数),向量为28个大小不同的设计变量。 i、 e.design_变量=[0,1e-2,1e-1…] 问题:如何计算大小不同

我目前正在使用高保真流解算器(SU2)在OpenMDAO中测试基于梯度的优化,但我使用的形状参数化方法似乎对有限差分近似的步长高度敏感。这可能是因为目标函数对某些设计变量比其他变量更敏感,所以我一直使用相对步长而不是绝对步长。然而,我期望步长与向量中的每个设计变量相关,但对于应用于所有设计变量的恒定步长,情况似乎并非如此

例如,相对步长为
1e-5
时,实际步长为
4.2e-5
(常数),向量为28个大小不同的设计变量。 i、 e.
design_变量=[0,1e-2,1e-1…]

问题:如何计算大小不同且包含零的设计变量向量的相对步长

注:设计变量按比例(相等)缩放,并共享相同的(%)上限和下限。此外,这个数字似乎随下限和上限而变化



更新:查看
有限差分.py
脚本后,问题部分解决。取输入的范数并乘以步长。然而,代码表明(
step*=scale
)缩放值也是一个标量,因此在所有设计变量中都是常量,这是否正确?

是的,这就是向量步长的计算方法——对于相对有限差分步长,步长是按向量的范数缩放的。但是,您提出了一个很好的观点,即向量在其元素中可能具有非常不同的大小,因此我们可能需要添加对指定fd步长向量的支持。

谢谢,Kenneth。是的,步长向量对于手动调整行搜索是一个很好的补充。祝您今天过得愉快