누구든지 파이썬 스크립트 작성에 도움이 될 수 있습니까? 문제는 다음과 같습니다.파이썬을 사용하여 동등한 제한 최소 사각형 피팅
일부 선형 방정식의 등식 제약 선형 1 차 피팅을 수행해야합니다. 특정 선형 방정식의 경우 행렬 방정식은 [Y] {nX1} = [X] {nXm} [P] _ {mX1}과 같이 표시됩니다. 여기서 Y와 P는 벡터이고 X는 행렬이며 n, m은 행렬의 차원. 또한, Sum (P (i)) = 0.0 인 P에 대한 동등 제약이 있습니다. 누구든지 그 문제를 해결하기 위해 어떻게해야합니까? 파이썬의 어떤 기능이 이것에 적합한가? scipy.optimize.fmin_slsqp() 함수에 대한 논의는 거의 없었으나이 함수의 사용은 그리 간단하지 않습니다.
그러나 numpy를 사용하면 위의 문제에 대한 제한되지 않은 최소 제곱 피팅을 쉽게 수행 할 수 있습니다. 다음은 작은 스크립트입니다. 여기
import numpy as np
from numpy import matrix
from numpy import arange,array,ones,linalg
x = np.random.randn(500,3)
A=matrix([[3.0, 4.0, -7.0],[4.0, -5.0, 1.0],[3.0, 2.0, -5.0]])
y=A*x.T
w=linalg.lstsq(x,y.T)[0]
print w.T
I 랜덤 벡터 (X)를 생성 한 후, A와 x.T.의 행렬 곱에 의해 벡터 y를 생성 그런 다음 x와 y 벡터를 사용하여 행렬 A의 원소를 계산합니다. 위의 스크립트는 행렬 A를 완벽하게 재현합니다. 이것은 lsf가 작동한다는 확신을줍니다. 그러나, 그것은 최소한의 사각 피팅입니다. 제약 조건은 없습니다.
또 다른 문제는 제약 된 lsf 문제를 제약되지 않은 lsf 문제로 변환하는 것입니다. 그렇다면 위의 스크립트를 사용할 수 있습니다. lagrange 승수의 방법은 가능한 선택 중 하나입니다. 그러나, 나는 내 문제에 대한 승수를 평가하는 데 어려움을 겪고있다. 이는 방정식에 많은 변수가 포함되어 있기 때문입니다. 있는 경우
그런데 MATLAB에서 제약 된 lsf에 대한 유사한 기능은 lsqlin입니다.
나는 지난 주 동안 이것을 고심하고있다. 이 점에서 나를 도와주세요. 다른 제안 사항이 있으면 큰 도움이 될 것입니다.
베스트