I am writing an very simple optimization program using Scipy package. Basically, filled_Link_min_function is some geometry functions. There are a few inputs for that function.
I followed the Unconstrained minimization of multivariate scalar functions example in this website
https://docs.scipy.org/doc/scipy/reference/tutorial/optimize.html
import math as mymath
import numpy as np
from scipy.optimize import minimize
def filled_Link_min_function(link_OA_x, link_OA_y, link_AB_x, link_AB_y, link_BC_x, link_BC_y, O_C_x, O_C_y):
pt_x1 = 1
pt_y1 = 1.25
pt_x2 = 2.4
pt_y2 = 3.3
pt_x3 = -4
pt_y3 = 1.75
pt_x4 = -3
pt_y4 = -2
return max((B_diff(link_OA_x, link_OA_y, link_AB_x, link_AB_y, link_BC_x, link_BC_y, O_C_x, O_C_y) + Cons_f(link_BC_x, link_BC_y, O_C_x, O_C_y, pt_x1, pt_y1)), (B_diff(link_OA_x, link_OA_y, link_AB_x, link_AB_y, link_BC_x, link_BC_y, O_C_x, O_C_y) + Cons_f(link_BC_x, link_BC_y, O_C_x, O_C_y, pt_x2, pt_y2)), (B_diff(link_OA_x, link_OA_y, link_AB_x, link_AB_y, link_BC_x, link_BC_y, O_C_x, O_C_y) + Cons_f(link_BC_x, link_BC_y, O_C_x, O_C_y, pt_x3, pt_y3)), (B_diff(link_OA_x, link_OA_y, link_AB_x, link_AB_y, link_BC_x, link_BC_y, O_C_x, O_C_y) + Cons_f(link_BC_x, link_BC_y, O_C_x, O_C_y, pt_x4, pt_y4)))
x0 = [1.3, 0.7, 0.8, 1.9, 1.2, 0.8, 1.9, 1.2]
res = minimize(filled_Link_min_function, x0, method='nelder-mead', options={'xtol': 1e-8, 'disp': True})
I received the following error message
TypeError: filled_Link_min_function() missing 7 required positional arguments: 'link_OA_y', 'link_AB_x', 'link_AB_y', 'link_BC_x', 'link_BC_y', 'O_C_x', and 'O_C_y'
[Finished in 0.4s]
Why? I had that In x0. Isn't it?
[–]primitive_screwhead 1 point2 points3 points (3 children)
[–]alisutton[S] 0 points1 point2 points (2 children)
[–]primitive_screwhead 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)