Ax = b를 풀어야합니다. 결정된 시스템에서 해결할 파이썬 라이브러리/결정된 방정식 시스템은 다르다고 나는 믿는다. python에서 행렬의 종속 행/열을 제거하여 행렬의 계급에서 적절하게 방정식을 풀 수있는 라이브러리 함수가 있습니까파이썬에서 행렬의 독립적 인 행 또는 열을 제거하십시오.
0
A
답변
1
numpy
을 사용하면 과학 계산을 수행 할 수 있습니다. 예컨대 :
In [23]: import numpy as np
In [24]: a=np.arange(16).reshape((4,4))
In [25]: a
Out[25]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
In [26]: np.delete(a, 2, axis=1) #delete the 3rd column
Out[26]:
array([[ 0, 1, 3],
[ 4, 5, 7],
[ 8, 9, 11],
[12, 13, 15]])
In [27]: np.rank(a) #this returns the number of dimensions of an array,
#not the concept "rank" in linear algebra,
Out[27]: 2
In [40]: np.linalg.matrix_rank(a) #this returns matrix rank of array using SVD method
Out[40]: 2
창에, 당신은 unofficial installer here를 얻을 수 있습니다.
또 다른 포스트 : Calculate Matrix Rank using scipy
2
당신은 +로 표시 (A)의 pseudoinverse 매트릭스를 사용할 수 있습니다. 용액에 존재하는 경우와 AA + B = B 모든 용액 X = A가 주어진 경우에만 + B + (I - + A) U는
이것은 NumPy와 함께 할 수 * .linalg
예 :
또는>>> A = np.array([[1, 2, 3], [4, 5, 6],[8, 10, 12]])
>>> b = np.array([22., 7., 14.])
>>> Ap = np.linalg.pinv(A)
# Check if a solution exist
>>> np.testing.assert_allclose(A.dot(Ap).dot(b),b,rtol=1e-5, atol=0)
>>> x = Ap.dot(b)
>>> print A.dot(x)
[ 22., 7., 14.]
당신은 numpy.linalg.lstsq 사용할 수 있습니다
예 :
>>> A = np.array([[1, 2, 3], [4, 5, 6],[8, 10, 12]])
>>> b = np.array([22., 7., 14.])
>>> x = np.linalg.lstsq(A,b)[0]
>>> print np.dot(A,x)
[ 22., 7., 14.]
도구, 라이브러리 또는 좋아하는 오프 사이트 리소스를 추천하거나 찾도록 요청하는 질문은 오타가있는 답변과 스팸을 끌어 당기는 경향이 있으므로 스택 오버플로에 대한 주제와 관련이 없습니다. 대신 문제를 설명하고 지금까지 해결 된 문제를 설명하십시오. – Christian
numpy를 사용하면이 종류의 작업에 꽤 유용합니다. – drabo2005
기본적으로 Ax = b를 해결해야합니다. 그러나 제 경우에는 시스템이 결정되거나 과도하게 결정될 수 있습니다. 나는 결정된 시스템은 최소 제곱 법을 사용하여 풀 수 있고 최소 노름 법을 사용하여 결정할 수 있음을 알았다. 따라서 방정식 시스템을 풀기 전에 행렬의 순위를 알아야합니다. 그러므로 나의 질문은이 방향이었다. 내가 틀렸다면 모두에게 나를 바로 잡으라고 요청합니다. – nantitv