【问题标题】:openmdao: how is the 'rel' step size calculated for a vector input of design variables?openmdao:如何为设计变量的向量输入计算“rel”步长?
【发布时间】:2019-01-08 21:19:25
【问题描述】:

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

例如,1e-5 的相对步长产生了 4.2e-5(常数)的实际步长,其中包含 28 个大小不同的设计变量的向量。 即design_variables = [0, 1e-2, 1e-1...]

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

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


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

【问题讨论】:

    标签: python openmdao


    【解决方案1】:

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

    【讨论】:

    • 谢谢,肯尼斯。是的,步长向量将是手动调整线搜索的一个很好的补充。祝你有美好的一天
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 2019-12-19
    • 2019-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-21
    • 1970-01-01
    相关资源
    最近更新 更多