Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

NumPy를 활용한 파이썬 라게르(Laguerre) 다항식 계수의 컴패니언 행렬 구하기

라게르(Laguerre) 다항식 계수로 이루어진 1차원 배열의 스케일링된 컴패니언 행렬(companion matrix)을 반환하려면 Python NumPy의 laguerre.lagcompanion() 함수를 사용합니다.

라게르 다항식의 일반적인 컴패니언 행렬은 c가 기저(basis) 라게르 다항식일 때 이미 대칭 형태이므로 별도의 스케일링이 적용되지 않습니다. 이 함수는 (deg, deg) 크기의 컴패니언 행렬을 반환하며, 매개변수 c는 차수가 낮은 것부터 높은 순서로 정렬된 라게르 급수 계수의 1차원 배열입니다.

구현 단계

1단계: 필요한 라이브러리 임포트

먼저 필요한 라이브러리를 가져옵니다.

import numpy as np
from numpy.polynomial import laguerre as L

2단계: 계수 배열 생성 및 속성 확인

라게르 급수 계수로 구성된 1차원 배열을 생성하고, 배열의 주요 속성들을 확인해 보겠습니다.

c = np.array([1, 2, 3])

# 배열 출력
print("Our Array...\n", c)

# 차원 확인
print("\nDimensions of our Array...\n", c.ndim)

# 데이터 타입 확인
print("\nDatatype of our Array object...\n", c.dtype)

# 형상(shape) 확인
print("\nShape of our Array object...\n", c.shape)

3단계: 컴패니언 행렬 계산

이제 lagcompanion() 함수를 호출하여 라게르 다항식 계수 배열의 컴패니언 행렬을 반환받습니다.

print("\nResult...\n", L.lagcompanion(c))

전체 예제 코드

import numpy as np
from numpy.polynomial import laguerre as L

# 1차원 계수 배열 생성
c = np.array([1, 2, 3])

# 배열 출력
print("Our Array...\n", c)

# 차원 확인
print("\nDimensions of our Array...\n", c.ndim)

# 데이터 타입 확인
print("\nDatatype of our Array object...\n", c.dtype)

# 형상(shape) 확인
print("\nShape of our Array object...\n", c.shape)

# lagcompanion()으로 컴패니언 행렬 반환
print("\nResult...\n", L.lagcompanion(c))

실행 결과

Our Array...
    [1 2 3]

Dimensions of our Array...
1

Datatype of our Array object...
int64

Shape of our Array object...
(3,)

Result...
    [[ 1.         -0.33333333]
     [-1.          4.33333333]]

참고 사항

위 예제에서 계수 배열 [1, 2, 3]은 2차 라게르 다항식에 해당하며, 결과적으로 2×2 크기의 컴패니언 행렬이 생성됩니다. 반환되는 행렬의 데이터 타입은 부동소수점(float)으로 변환됨에 유의하세요. 컴패니언 행렬의 고유값은 원래 다항식의 근(root)과 연관되어 있으므로, 다항식 방정식 풀이나 수치 해석 분야에서 유용하게 활용됩니다.