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

Python NumPy로 복소근을 가진 라게르(Laguerre) 급수 생성하는 방법

주어진 근(roots)으로부터 라게르(Laguerre) 급수를 생성하려면 Python NumPy에서 제공하는 laguerre.lagfromroots() 메서드를 사용하면 됩니다. 이 메서드는 계수들로 구성된 1차원 배열을 반환합니다. 모든 근이 실수이면 결과는 실수 배열이 되지만, 일부 근이 복소수이면 결과 계수가 모두 실수 값이라 하더라도 배열 전체는 복소수(complex) 타입으로 반환됩니다. 매개변수 roots에는 생성하고자 하는 다항식의 근들을 담은 시퀀스를 전달합니다.

구현 단계

1. 필요한 라이브러리 임포트

먼저 NumPy의 라게르 다항식 모듈을 가져옵니다.

from numpy.polynomial import laguerre as L

2. lagfromroots() 메서드로 라게르 급수 생성

허수 단위 j를 정의한 뒤, 켤레 복소근인 (-j, j)를 전달하여 라게르 급수를 생성합니다.

j = complex(0,1)
print("Result...\n",L.lagfromroots((-j, j)))

3. 데이터 타입(dtype) 확인

print("\nType...\n",L.lagfromroots((-j, j)).dtype)

4. 배열 형태(shape) 확인

print("\nShape...\n",L.lagfromroots((-j, j)).shape)

전체 예제 코드

from numpy.polynomial import laguerre as L

# 주어진 근으로 라게르 급수를 생성하려면 laguerre.lagfromroots() 메서드를 사용합니다.
# 반환값은 계수로 구성된 1차원 배열입니다. 모든 근이 실수면 실수 배열,
# 일부 근이 복소수면 계수가 모두 실수 값이더라도 복소수 배열로 반환됩니다.

# 매개변수 roots에는 근들을 담은 시퀀스를 전달합니다.
j = complex(0, 1)

print("Result...\n", L.lagfromroots((-j, j)))

# 데이터 타입 확인
print("\nType...\n", L.lagfromroots((-j, j)).dtype)

# 배열 형태 확인
print("\nShape...\n", L.lagfromroots((-j, j)).shape)

실행 결과

Result...
    [ 3.+0.j -4.+0.j 2.-0.j]

Type...
complex128

Shape...
(3,)

실행 결과를 살펴보면, 허수 단위 ±j 두 개를 근으로 갖는 라게르 급수의 계수가 [3, -4, 2]로 계산된 것을 확인할 수 있습니다. 또한 근에 복소수가 포함되어 있기 때문에 각 계수가 사실상 실수 값임에도 불구하고 배열의 데이터 타입은 complex128로 지정되며, 근이 두 개이므로 계수 배열의 형태는 (3,), 즉 3개의 요소를 가진 1차원 배열이 됩니다.