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

Python NumPy lagsub() 메서드로 라게르(Laguerre) 급수 뺄셈하기

Python NumPy에서 한 라게르(Laguerre) 급수를 다른 급수에서 빼려면 polynomial.laguerre.lagsub() 메서드를 사용합니다. 이 메서드는 두 라게르 급수의 차이(c1 - c2)를 나타내는 계수 배열을 반환합니다.

계수 배열은 낮은 차수 항부터 높은 차수 항 순으로 정렬됩니다. 예를 들어 [1, 2, 3]은 다음과 같은 급수를 의미합니다.

P_0 + 2·P_1 + 3·P_2

매개변수 c1과 c2는 각각 낮은 차수에서 높은 차수 순으로 정렬된 라게르 급수 계수의 1차원 배열입니다.

구현 단계

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

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

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

2. 라게르 급수 계수 배열 생성

두 개의 1차원 배열로 라게르 급수 계수를 생성합니다.

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

3. 배열 출력 및 속성 확인

생성한 배열과 그 속성(데이터 타입, 차원, 형상)을 확인합니다.

print("Array1...\n",c1)
print("\nArray2...\n",c2)

print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

4. lagsub() 메서드로 뺄셈 수행

polynomial.laguerre.lagsub() 메서드를 호출하여 두 라게르 급수의 차이를 계산합니다.

print("\nResult (difference)....\n",L.lagsub(c1, c2))

전체 예제 코드

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

# 라게르 급수 계수의 1차원 배열 생성
c1 = np.array([1,2,3])
c2 = np.array([3,2,1])

# 계수 배열 출력
print("Array1...\n",c1)
print("\nArray2...\n",c2)

# 데이터 타입 출력
print("\nArray1 datatype...\n",c1.dtype)
print("\nArray2 datatype...\n",c2.dtype)

# 차원 확인
print("\nDimensions of Array1...\n",c1.ndim)
print("\nDimensions of Array2...\n",c2.ndim)

# 형상 확인
print("\nShape of Array1...\n",c1.shape)
print("\nShape of Array2...\n",c2.shape)

# lagsub() 메서드로 두 라게르 급수의 차이 계산
print("\nResult (difference)....\n",L.lagsub(c1, c2))

실행 결과

Array1...
    [1 2 3]

Array2...
    [3 2 1]

Array1 datatype...
int64

Array2 datatype...
int64

Dimensions of Array1...
1

Dimensions of Array2...
1

Shape of Array1...
(3,)

Shape of Array2...
(3,)

Result (difference)....
    [-2. 0. 2.]

실행 결과를 보면 두 입력 배열의 데이터 타입은 int64였지만, lagsub() 메서드의 결과는 부동소수점(float) 배열로 반환되는 것을 확인할 수 있습니다. 이는 내부적으로 연산 과정에서 실수형 변환이 일어나기 때문입니다.