2025. 3. 22. 15:54ㆍ공학/컴퓨터
파이썬 모듈 개념의 기능과 특징을 처음 살펴보기 위해, 먼저 키워드와 같은 방식으로 다섯 가지 모듈을 설명합니다. 모듈 대신에, 라이브러리라는 용어도 보통 사용합니다. 파이썬의 기능은 간단한 본보기 프로그램을 사용하여 가장 잘 설명할 수 있습니다. 물론, 여기서 표시된 소스 코드를 이해할 필요는 없습니다. ;
1) NumPy
NumPy(numerical Python)를 사용하면 광범위한 수치 계산을 수행할 수 있습니다. 예를 들어, 복소수를 포함한 선형 방정식 시스템을 풀 수 있습니다. 다음은 간단한 벡터 미적분 프로그램을 보여줍니다.
import numpy as np
A=np.array([1, 2, 3])
B=np.array([4, 5, 6])
print("Vector A:",A)
print("Vector B:",B)
print("Total A+B:",A+B)
print("Product A*B:",A*B)
print("Cross product :",np.cross(A,B))
print("Scalar product:",np.dot(A,B))
출력
Vector A: [1 2 3]
Vector B: [4 5 6]
Total A+B: [5 7 9]
Product A*B: [ 4 10 18]
Cross product : [-3 6 -3]
Scalar product: 32
2) Matplotlib
Matplotlib를 사용하면 수학 함수, 히스토그램, 그리고 여러 가지 다른 유형의 도표를 표시할 수 있을 뿐 아니라 물리적 과정을 시뮬레이션하고 애니메이션화할 수 있습니다. 그래픽 디자인 옵션은 매우 다양하고 세부적인 면에서 풍부합니다. 다음 코드는 다항식의 함수 그림의 간단한 예를 보여줍니다.
import numpy as np
import matplotlib.pyplot as plt
x=np.arange(-2,6,0.01)
y=x**3-7*x**2+7*x+15
plt.plot(x,y)
plt.show()
출력

3) SymPy
Sympy(Symbolic Python)를 사용하면 적분이나 미분을 기호로 계산하거나 미분 방정식을 기호로 풀 수 있습니다. 수학 용어의 단순화도 가능합니다(그 외에도 다양한 기능이 있습니다). 목록 1.3은 기호적 미분과 적분의 간단한 예를 보여줍니다.
from sympy import *
x=symbols("x")
y=x**3-7*x**2+7*x+15
y_1=diff(y,x,1)
y_2=diff(y,x,2)
y_3=diff(y,x,3)
Y=integrate(y,x)
print("1. Derivative:",y_1)
print("2. Derivative:",y_2)
print("3. Derivative:",y_3)
print(" Integral :",Y)
출력
1. Derivative: 3*x**2 - 14*x + 7
2. Derivative: 2*(3*x - 7)
3. Derivative: 6
Integral : x**4/4 - 7*x**3/3 + 7*x**2/2 + 15*x
4) SciPy
SciPy(Scientific Python)를 사용하면 수치로 미분, 적분을 풀거나 미분 방정식을 풀 수 있습니다. SciPy는 포괄적이고 다재다능합니다. 다음은 수치적 적분 프로그램의 간단한 예를 보여줍니다.
import scipy.integrate as integral
def f(x):
return x**2
A=integral.quad(f,0,5)
print("Area A=",A[0])
출력
Area A= 41.66666666666666
4) VPython
VPython을 사용하면 3D 뷰에서 필드를 표시하거나 3D 공간에서 필드의 움직임을 애니메이션으로 만들 수 있습니다. 버전 7부터는 프로그램이 시작되면 표준 브라우저에 애니메이션이 표시됩니다. 다음 코드는 튀는 공의 애니메이션을 프로그래밍하는 방법을 보여주는 예입니다.
from vpython import *
r=1. #radius
h=5. #height
scene.background=color.white
scene.center=vector(0,h,0)
box(pos=vector(0,0,0),size=vector(2*h,r/2,h), color=color.green)
ball = sphere(radius=r, color=color.yellow)
ball.pos=vector(0,2*h,0) #drop height
ball.v = vector(0,0,0) #initial velocity
g=9.81
dt = 0.01
while True:
rate(100)
ball.pos = ball.pos + ball.v*dt
if ball.pos.y < r:
ball.v.y = -ball.v.y
else:
ball.v.y = ball.v.y - g*dt
출력

'공학 > 컴퓨터' 카테고리의 다른 글
PROPEP 소개 (개인용 컴퓨터용 추진제 평가 프로그램) (0) | 2025.03.23 |
---|---|
공학용 프로그래밍 언어, 이제는 포트란이 아니라 파이썬 (0) | 2025.03.22 |
[Python] 모든 분야에 사용할 수 있는 언어, 파이썬 (0) | 2025.03.13 |
하모니카 리눅스에 Salome-Meca 설치하기 (0) | 2025.02.19 |
어쨌든 대한민국 OS, 하모니카 리눅스 (0) | 2025.02.16 |