【问题标题】:GEKKO Inconsistent result with MODE 4 and 7GEKKO 模式 4 和 7 的结果不一致
【发布时间】:2021-10-10 02:50:53
【问题描述】:

用 2 个节点解决问题。

给定问题

    m = GEKKO()
    m.time = np.linspace(0, 5, 2)
    x = m.Var(1)
    m.Equation(x.dt() == 1)

如果使用 MODE 7 求解

    m.options.IMODE = 7
    m.options.SOLVER = 2
    m.solve(disp=False)

    x = [1.0, 1.0]

如果使用 MODE 4 求解

    m.options.IMODE = 4
    m.options.SOLVER = 2
    m.solve(disp=False)
    
    x = [1.0, 6.0]

【问题讨论】:

    标签: gekko


    【解决方案1】:

    IMODE=7 只有 1 个时间步时,Gekko 报告解决方案的方式似乎存在错误。切换到两个时间步可以为IMODE=7IMODE=4 提供一致且正确的解决方案。

    from gekko import GEKKO
    import numpy as np
    m = GEKKO()
    m.time = np.linspace(0, 5, 3)
    x = m.Var(1)
    m.Equation(x.dt() == 1)
    m.options.IMODE = 7
    m.options.SOLVER = 2
    m.solve(disp=False)
    print(x.value)
    

    IMODE=4 时解也是[1.0, 3.5, 6.0]

    【讨论】:

    猜你喜欢
    • 2021-07-11
    • 2015-08-22
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2021-01-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多