문제

이것이 제가해야 할 일입니다.

이 방정식이 있습니다.

도끼 = y

여기서 a는 합리적인 m*n 행렬 (m <= n)이고 x와 y는 올바른 크기의 벡터입니다. 나는 a와 y를 알고 있습니다. X가 무엇인지 모르겠습니다. 또한 AX가 정확히 y와 같은 X가 없다는 것을 알고 있습니다. Ax '가 가능한 한 y에 가까워 지도록 벡터 x'를 찾고 싶습니다. (AX '-Y)는 가능한 한 (0,0,0, ... 0)에 가깝다는 것을 의미합니다.

LSTSQ 기능 중 하나를 사용해야한다는 것을 알고 있습니다.http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#lstsq

또는 SVD 기능 :http://www.scipy.org/doc/numpy_api_docs/numpy.linalg.linalg.html#svd

문서를 전혀 이해하지 못합니다. 누군가 내 문제를 해결하기 위해 이러한 기능을 사용하는 방법을 보여줄 수 있습니까?

정말 감사합니다!!!

도움이 되었습니까?

해결책

SVD는 M <N의 경우입니다. 왜냐하면 당신은 실제로 충분한 자유도가 없기 때문입니다.

LSTSQ의 문서는 그다지 도움이되지 않습니다. 나는 그것이 m> n의 경우에 가장 적은 정사각형 피팅이라고 생각합니다.

m <n이라면 원할 것입니다 SVD.

다른 팁

그만큼 업데이트 된 문서 좀 더 도움이 될 수 있습니다 ... 당신이 원하는 것 같아요

numpy.linalg.lstsq(A, y)

행렬 A의 SVD는 직교 행렬 U 및 V 및 대각선 매트릭스 σ를 제공합니다.

= Σ V

어디 = ; V V =

따라서 if

엑스 = 와이

그 다음에

엑스 Σ V = 와이

엑스 Σ V V = 와이 V

엑스 Σ = 와이 V

엑스 Σ = 와이 V

엑스 Σ = 와이 V

엑스 = Σ -1 와이 V

엑스 = V Σ -1 와이

SVD가 주어졌습니다 당신은 얻을 수 있습니다 엑스.


일반 행렬을 위해서도 AB != , 벡터는 사실입니다 엑스 저것 x u == 엑스.

예를 들어 고려하십시오 엑스 = (x, y), = (a, b; c, d) :

엑스 = (x, y) (a, b; c, d)

= (xa+yc, xb+yd)

= (AX+CY, BX+DY)

= (a, c; b, d) (x; y)

= 엑스

값을 볼 때 상당히 분명합니다. 엑스 의도 제품입니다 엑스 그리고의 열 , 그리고 값 엑스 The의 도트 제품입니다 엑스 그리고 줄의 행 , 전치에서 행과 열의 관계

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top