Я пытаюсь научиться использовать scipy.optimize.minimize для реализации двух разных методов, чтобы оценить центр вращения движущегося маятника.Мне удалось реализовать один метод, но у меня есть несколько вопросов относительно ограничений и границ, и я не знаю, как реализовать второй случай, учитывая, что целевая функция представляет собой двойное суммирование.
Описание маятника:
Маятник имеет длину 1 метр, его горизонталь направлена вправо, параллельно оси 'x', его начало - начало декартовой системы отсчета (0,0) ион может вращаться только вокруг этой же точки.
В случае, когда я использую целевую функцию № 1:
![enter image description here](https://i.stack.imgur.com/AYEGy.png)
где:
v = 'x' and 'y' coordinates of the tip of the pendulum acquired experimentally
c = 'x' and 'y' coordinates of the center of rotation that I want to estimate
r = radius of the circle
for a given time instant
с помощью следующего скрипта я получаю ожидаемый результат
import numpy as np
from scipy.optimize import minimize
def objective(x):
# Pendulum tip 'x' and 'y' coordinate
v = x[0:2]
# Circle centroid 'x' and 'y' coordinate
c = x[2:4]
# Circle radius
r = x[4:]
return (np.linalg.norm(v-c) - r**2)**2
x0 = np.array([1.01, -0.01, 0.02, 0.01, 1.0])
sol = minimize(objective, x0, method='SLSQP')
print sol.x
Так как 'r' - это длина, которую я знаю с небольшой ошибкой, я должен определить ограничение или верхнюю и нижнюю границы для этогопеременная?То же самое происходит с переменной 'c'.
В случае, когда я использую целевую функцию # 2:
![enter image description here](https://i.stack.imgur.com/7W6bj.png)
где:
v = 'x' and 'y' coordinates of the tip of the pendulum acquired experimentally
c = 'x' and 'y' coordinates of the center of rotation that I want to estimate
r = radius of the circle
for a given time instant
Как определить целевую функцию с момента ее двойного суммирования?
Спасибо за помощь.