기본 콘텐츠로 건너뛰기

라벨이 solve인 게시물 표시

[matplotlib]quiver()함수

삼각함수의 주기적 특성

삼각함수 주기적 특성 삼각함수는 일정한 범위를 기준으로 반복되는 주기함수(periodic function) 입니다. 예로 cos(x)와 cos(2x)의 그래프를 그려보면 그림 1과 같습니다. 그림 1. cos(x)와 cos(2x) x=np.linspace(0, 3*np.pi, 100) y=np.cos(x) y2=np.cos(2*x) fig, ax=plt.subplots(figsize=(4,2)) ax.plot(x, y, color="b", label="cos(x)") ax.plot(x, y2, color="r", label="cos(2x)") ax.vlines(2*np.pi, 0, 1, ls="dotted", color="b") ax.hlines(0.5, 0, 2*np.pi, ls="dotted", color="b", label="period for cos(x)") ax.hlines(0.3, 0, np.pi, ls="dotted", color="r", label="period for cos(2x)") ax.vlines(np.pi, -1, 1, ls="dotted", color="g", label="amplititude") ax.spines['left'].set_position(("data", 0)) ax.spines['bottom'].set_position(("data", 0)) ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) x1=[0, np.pi/2, np.pi,3*np.pi/2, 2*np.pi,5*np...

[Linear Algebra] 동차선형결합(Homogeneous Linear Combination)

동차 선형결합(Homogeneous Linear Combination) 동차선형결합(Homogeneous Linear Combination) 은 선형 결합에서 상수 벡터가 0 벡터인 경우입니다. 즉, 표준 행렬 A와 변수 벡터 x 사이에 식 1이 성립합니다. Ax = 0 (식 1) 동차 선형 결합에서 갖는 해는 두 종류로 구분할 수 있습니다. 자명한해(trivial solution) : 유일한 해를 가지는 동차선형결합 자명하지 않은 해(nontrivial solution) : 다양한 해를 가지는 동차선형결합 그러므로 동차 선형결합에서 최소 한개 이상의 자유변수(Free variable) 를 가진다면 하나 이상의 다양한 해를 가지는 것을 의미하는 것으로 자명하지 않은 해(nontrivial solution) 를 가지는 시스템이 됩니다. 예 1) 다음은 동차 선형결합입니다. 이 결합의 해를 계산해봅니다. \begin{align} 3x_1 + 5x_2 - 4x_3 &= 0\\ -3x_1 - 2x_2 + 4x_3 &= 0\\  6x_1 + x_2 - 8x_3 &= 0\end{align} 위 각 식의 계수들을 행렬로 표현하는 표준행렬(A)을 다음과 같습니다. 위 식의 수와 각 식의 계수의 수가 같습니다. 즉 다음 결과와 같이 표준행렬(A)은 정방행렬입니다. 이 행렬의 역행렬 존재 여부를 판단하기 위해 행렬식을 조사해 봅니다. A=np.array([[3, 5, -4],[-3, -2, 4],[6, 1, 8]]) print(A) [[ 3 5 -4] [-3 -2 4] [ 6 1 8]] la.det(A) 144.0 행렬식이 0이 아니므로 가역행렬입니다. 즉, 역행렬에 의한 각 변수의 해를 계산할 수 있습니다. 이 경우 즉, 표준행렬이 가역행렬인 경우 그 해는 numpy.linalg.solve() 함수로 계산할 수 있습니다. b=np.array([[0],[0],[0]]) print(la...

sympy.solvers로 방정식해 구하기

sympy.solvers로 방정식해 구하기 대수 방정식을 해를 계산하기 위해 다음 함수를 사용합니다. sympy.solvers.solve(f, *symbols, **flags) f=0, 즉 동차방정식에 대해 지정한 변수의 해를 계산 f : 식 또는 함수 symbols: 식의 해를 계산하기 위한 변수, 변수가 하나인 경우는 생략가능(자동으로 인식) flags: 계산 또는 결과의 방식을 지정하기 위한 인수들 dict=True: {x:3, y:1}같이 사전형식, 기본값 = False set=True :{(x,3),(y,1)}같이 집합형식, 기본값 = False ratioal=True : 실수를 유리수로 반환, 기본값 = False positive=True: 해들 중에 양수만을 반환, 기본값 = False 예 $x^2=1$의 해를 결정합니다. solve() 함수에 적용하기 위해서는 다음과 같이 식의 한쪽이 0이 되는 형태인 동차식으로 구성되어야 합니다. $$x^2-1=0$$ import numpy as np from sympy import * x = symbols('x') solve(x**2-1, x) [-1, 1] 위 식은 계산 과정은 다음과 같습니다. $$\begin{aligned}x^2-1=0 \rightarrow (x+1)(x-1)=0 \\ x=1 \; \text{or}\; -1\end{aligned}$$ 예 $x^4=1$의 해를 결정합니다. solve() 함수의 인수 set=True를 지정하였으므로 결과는 집합(set)형으로 반환됩니다. eq=x**4-1 solve(eq, set=True) ([x], {(-1,), (-I,), (1,), (I,)}) 위의 경우 I는 복소수입니다.즉 위 결과의 과정은 다음과 같습니다. $$x^4-1=(x^2+1)(x+1)(x-1)=0 \rightarrow x=\pm \sqrt{-1}, \; \pm 1=\pm i,\; \pm1$$ 실수...