他の既知の点からの距離だけを知っているデカルト空間の点の座標を見つけようとしています。最初に scipy.optimize.fsolve を 3 つの距離式で試してみたところ、3 つの球が最大 2 つの異なる場所で重なる可能性があるため、4 つの距離が必要であることがすぐにわかりました。
scipy.optimize.fsolve は、変数よりも方程式の数が多い場合に機能しないようです。fsolve を使用して、次のことを試しました。
from scipy.optimize import fsolve
def func1(C):
func = [(atom14[0] - C[0])**2 + (atom14[1] - C[1])**2 + (atom14[2] - C[2])**2 - Cdist1**2]
func.append((atom106[0] - C[0])**2 + (atom106[1] - C[1])**2 + (atom106[2] - C[2])**2 - Cdist2**2)
func.append((atom125[0] - C[0])**2 + (atom125[1] - C[1])**2 + (atom125[2] - C[2])**2 - Cdist3**2)
func.append((atom76[0] - C[0])**2 + (atom76[1] - C[1])**2 + (atom76[2] - C[2])**2 - Cdist4**2)
return func
solve = fsolve(func1, [0, 0, 0])
ここで、atomxxx[0:3] は、空間内の他の 4 つの点のそれぞれの既知の x、y、z デカルト座標であり、Cdist# は、それぞれから目的の点までの距離です。
私は、他の最適化オプションに圧倒されています。その多くは、私がよく知らない (このライブラリにとって初めての) 別の構文を必要とします。この 3 次元の問題を少なくとも 4 つの方程式で解くには、何を使用できますか?
ありがとう