Я могу установить начальное условие y (0) = 5 в Gekko с помощью y = m.Var(5)
, но как мне установить значение, которое не является начальным условием, например y (3) = 6, где значение в момент времени = 3 равно 6, как показано Красная точка?
from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt
m = GEKKO(remote=False)
m.time = np.linspace(0,10,11)
x = m.Var(np.ones(11)*6)
m.Equation(5*x.dt() == -x)
m.options.IMODE = 4
m.solve()
plt.plot(m.time, x.value)
plt.plot([3],[6],'ro',MarkerSize=5)
plt.show()
У меня есть проблема моделирования, когда мне нужно решение, чтобы получить промежуточные значения на временном горизонте m.time = [0,1,2,3,4,5,6,7,8,9,10]
. Когда я инициализирую x=m.Var(np.ones(11)*6)
, значения позже меняются решателем. Могу ли я исправить одно из значений не в исходном состоянии? Это похоже на краевую задачу, в которой начальная или конечная точки фиксированы, но в этом случае заданное значение является внутренним по отношению к временному горизонту.