import numpy as np
from scipy.optimize import minimize
x = np.linspace(-5, 5, 100)
def function_to_minimize(*args):
function = 0
for j in range(0, 4):
a_j = args[j][0]
b_j = args[j][1]
c_j = args[j][2]
function += a_j * x**2 - b_j * x + c_j
return function
guess = []
for j in range(0, 4):
guess.append([1,1,1])
res = minimize(function_to_minimize, guess)
Вот минимальный пример кода, который я пытаюсь реализовать, где я хочу, чтобы scipy.optimize.minimize действовал на функцию, которая определена как сумма по j с тремя параметрами для каждого j, который я хочу решить, и было бы очень хорошо, если бы минимизация могла возвращать массив размера (N,3), состоящий из этих ответов. Но я, как и ожидалось, получаю сообщение об ошибке, что x0 должен иметь только одно измерение. Есть ли способ адаптировать этот код так, как я хочу?
[code]import numpy as np from scipy.optimize import minimize
x = np.linspace(-5, 5, 100)
def function_to_minimize(*args): function = 0 for j in range(0, 4): a_j = args[j][0] b_j = args[j][1] c_j = args[j][2] function += a_j * x**2 - b_j * x + c_j return function
guess = [] for j in range(0, 4): guess.append([1,1,1])
res = minimize(function_to_minimize, guess) [/code] Вот минимальный пример кода, который я пытаюсь реализовать, где я хочу, чтобы scipy.optimize.minimize действовал на функцию, которая определена как сумма по j с тремя параметрами для каждого j, который я хочу решить, и было бы очень хорошо, если бы минимизация могла возвращать массив размера (N,3), состоящий из этих ответов. Но я, как и ожидалось, получаю сообщение об ошибке, что x0 должен иметь только одно измерение. Есть ли способ адаптировать этот код так, как я хочу?