我给了 20多个点,每个点由a,b,c,u,v(绿色X,Y,Z,U,V)组成。 该方程式已在代码中,并尝试使用fsolve求解。
我还可以使用其他求解器?因为fsolve,broyden等仅在20个变量20个方程式中起作用。也很难猜出这些变量,所以我在哪里可以找到它们?
def point_equations(x):
k = (1 + x[9] * x[10]**2 + x[11] * x[10] ** 4 + x[12] * x[10] ** 6)
for i in range(10):
eq_x.append(k * (x[14] * ((x[15] * a[i] + x[16] * b[i] + x[17] * c[i] + x[18]) / (x[5] * a[i] + x[6] * b[i] + x[7] * c[i] + x[8]))) + x[19] - v[i])
eq_y.append(k * (x[0] * ((x[1] * a[i] + x[2] * b[i] + x[3] * c[i] + x[4]) / (x[5] * a[i] + x[6] * b[i] + x[7] * c[i] + x[8]))) + x[13] - u[i])
return eq_x + eq_y
predict = [10.,10.,10.0,0.,10.]
x = fsolve(point_equations,predict)