Это достижимо. Вы можете использовать функцию fsolve библиотеки scipy . Пример
import numpy as np
import scipy.optimize as so
def f(t, x_v, x_1, x_2, y_v, y_1, y_2):
return np.sum(np.abs([
x_v*t - (x_1 - x_2),
y_v*t - (y_1 - y_2),
]))
и тогда вы бы сделали
sol_object = so.fsolve(
func = f, # the function that returns the (scalar) 0 you want.
x0 = 1, # The starting estimate
args = (1, 2, 3, 1, 2, 3), # Other arguments of f, i.e. x_v, x_1, x_2, y_v, y_1, y_2
full_output = True
)
sol = sol_object[0]
message = sol_object[-1]
print(sol)
print(message)
Выход
[-1.]
The solution converged.
Как упомянуто в комментарии jdhesa, это можно было бы сделать, используя методы решения с линейными параметрами. Тот, который я использую выше
a priori , работает с любым видом преобразования.