의 과잉 결정 시스템을 푼다난 형태의 방정식 비교적 간단한 시스템이 선형 방정식
1*A + 0*B + x2*C + y2*D = x1
0*A + 1*B + y2*C + x2*D = y1
여기서 쌍 (x1,y1)
길이 N
의 (x2,y2)
공지되어 플로트 (시스템이 결정 과잉 임) , A, B, C, D
매개 변수를 해결해야합니다.
나는 numpy.linalg.lstsq
으로 놀고 있었지만 매트릭스의 모양을 제대로 파악할 수없는 것 같습니다. 내가 잘못
numpy.linalg.linalg.LinAlgError: 3-dimensional array given. Array must be two-dimensional
를하고있는 중이 야 무엇 : 이것은 내가 실패하는
import numpy as np
N = 10000
x1, y1 = np.random.uniform(0., 5000., (2, N))
x2, y2 = np.random.uniform(0., 5000., (2, N))
# 1*A + 0*B + x2*C + y2*D = x1
# 0*A + 1*B + y2*C + x2*D = y1
l1 = np.array([np.ones(N), np.zeros(N), x2, y2])
l2 = np.array([np.zeros(N), np.ones(N), y2, x2])
M1 = np.array([l1, l2])
M2 = np.array([x1, y1])
ABCD = np.linalg.lstsq(M1, M2)[0]
print(ABCD)
이 무엇인가?
니스! 모든 열을 연결하는 방법에 대해 생각했지만 훨씬 더 짧습니다. :-) – Omni
실제로 작동합니다. 고맙습니다! – Gabriel