ChatGPT로 코드 오류

ChatGPT 파이썬 코드

나는 그것으로 오류를 찾으려고 노력했습니다.

예전에는 개발자들이 코딩을

오류가 발생하는 경우

구글이나 스택 오버플로.

오늘은 ChatGPT에 물어봤습니다.

.


.

LinAlgError 역추적(마지막 호출 마지막). ~에 —-> 1e = np.linalg.inv(a) 2 print(e) <__array_function__ internals> inv(* args, **kwargs) 1 프레임 /usr/local/lib/python3.8/dist-packages/numpy/linalg/linalg.py in _raise_linalgerror_singular(err, flag) 86 87 def _raise_linalgerror_singular(err, flag) : — > 88 raise LinAlgError(“특이 행렬”) 89 90 def _raise_linalgerror_nonposdef(err, flag): LinAlgError: 특이 행렬

.


이 오류 메시지는 불가능한 특이 행렬의 역 계산을 시도하고 있음을 나타냅니다. 특이 행렬은 역행렬이 없고 결정자가 0인 정사각 행렬입니다.

행렬이 특이 행렬일 수 있는 몇 가지 가능한 이유가 있습니다.

  1. 행렬이 전체 순위가 아님: 이는 행렬의 일부 행 또는 열이 다른 행 또는 열에 선형적으로 종속되어 있으므로 행렬이 전체 순위가 아님을 의미합니다. 이 경우 일부 정보가 중복되어 행렬을 반전할 수 없습니다.
  2. 행렬의 조건이 나쁨: 행렬의 결정 요인이 매우 작아서 역수를 계산할 때 수치적 불안정성을 초래할 수 있음을 의미합니다.
  3. 행렬은 뒤집을 수 없습니다. 어떤 경우에도 역행렬이 없는 행렬이 있습니다.

이 오류를 방지하기 위해 행렬의 속성을 사용해 볼 수 있습니다. 역 계산을 시도하기 전에 순위 또는 결정 요인을 확인합니다. 작업 중인 매트릭스 유형에 더 적합한 다른 방법이나 알고리즘을 사용해 볼 수도 있습니다.

.


a = np.array((1,2,3)) b = np.array(((1,2,3),(4,5,6))) c = np.array(((1,2, 3),(4,5,6)),((3,2,1),(6,5,4))) TypeError 역추적(마지막 호출 마지막). ~에 1 a = np.array((1,2,3)) 2 b = np.array(((1,2,3),(4,5,6))) —-> 3 c = np . array(((1,2,3),(4,5,6)),((3,2,1),(6,5,4))) TypeError: 배열 요소는 2- 또는 3-튜플이어야 합니다. , ‘(3, 2, 1)’


방법에 버그가 있기 때문에 오류가 발생합니다 배열이 정의됩니다. 처음 두 차원이 동일한 목록의 값을 갖는 형식 (2, 2, 3)의 3차원 배열을 정의하는 올바른 방법은 다음과 같습니다.

파이썬

c = np.array((((1,2,3),(4,5,6)),((3,2,1),(6,5,4))))

여기서 배열 각 요소는 각각 3개 요소의 2차원 목록인 2요소 목록으로 정의됩니다. 이러한 2차원 목록 자체는 (2, 2, 3) 형식의 3차원 배열로 그룹화됩니다.

.

몇 가지 테스트 결과

예상보다 코드 오류

아주 좋아 보인다.