Я пытаюсь использовать scipy odeint
для решения некоторых обыкновенных дифференциальных уравнений. Единственная проблема заключается в том, что я хочу только определить один аргумент, и кажется, что для создания кортежа вам нужно как минимум два значения.
Мой код выглядит так:
def system(state, t, inputs)
x = state[0]
u = inputs
a = -4
b = 2
dxdt = [a * x + b * u]
return dxdt
inputs = 5
x_next = odeint(system, x, t, args=(inputs))
Это вернет ошибку, потому что args
должен быть кортежем, а (input) является int/float, а не кортежем. Один из способов преодолеть это - положить a, b как часть аргументов. Но это всего лишь бандаж на рану.
Мне было интересно, есть ли способы определить args как одно значение.
Поскольку ошибка говорит, что args
должен быть tuple
. Вы можете легко превратить текущую версию в кортеж, используя
args=(inputs,)
Обратите внимание на дополнительную запятую.
args=(inputs,)
. Обратите внимание на дополнительную запятую.