기본 콘텐츠로 건너뛰기

벡터와 행렬에 관련된 그림들

미적분의 기본 용어

내용

기본 용어 정의

미적분을 시작하는 과정에 처음으로 만나는 장벽은 사용되는 기호에서 기인하는 경우가 많습니다. 그러므로 미적분에서 필수적으로 사용되는 몇몇의 용어를 소개합니다.

  • d 는 단지 '조금' 또는 '약간'을 의미합니다. 이 의미가 좀 모호하기는 하지만 전체에서 아주 작은 부분, 좀더 정확히는 무한히 작은 부분을 나타내기 위해 사용합니다. 그러므로 dx는 x의 조금, du는 u의 조금이라는 의미입니다.
  • $\mathbf{\int}$(integral)은 합계 sum의 첫 글자인 s를 길게 늘어뜨린 형태입니다. 그러므로 $\int\, dx$는 x의 작은 부분들의 합을 의미합니다. 이것을 적분이라고 합니다. 예로서 1시간은 3600초의 합입니다. 적분기호를 사용하면 다음과 같이 나타낼 수 있습니다. $$\int \text{sec} = \int ds = \text{hour}$$

'작음' 또는 '조금'을 나타내는 d는 상대적입니다. 예를 들어 1시간은 60분으로 구성되며 1시간에 비해 1분은 작은양입니다. 그러나 그보다 1초는 더 작은 양이 됩니다. 어떤 부분에서는 '작다'보다는 '미세하다'라고 나타낼 수 있습니다.

상수와 변수

미적분학에서 모든 수는 상수(constant)변수(variable)로 구분합니다. 예를 들어 갓 태어난 아기의 신장이 50cm이고 이후 아기의 성장을 기록한다고 해봅니다. 이 경우 50은 변할 수 없는 수인 상수가 되며 지속적인 성장에 의해 50에 첨가되는 수는 계속 변할 것입니다. 이렇게 지속적으로 변하는 수를 변수라고 합니다.

수학에서 수는 알파벳을 기호화하여 사용합니다. 위의 예에서 상수인 50을 a로 하고 이 값에 더해지는 변수를 x로 하여 다음과 같이 나타냅니다.

$$\text{height} =a+x$$

미적분학에서는 일반적으로 상수는 a, b, c 등과 같이 알파벳 첫자부터 사용하며 변수는 x, y, z등과 같이 마지막 부분에 있는 알파벳을 적용합니다.

함수, 변화율, 그리고 미분

위에서 정의한 변수는 다른 변수에 의존되어 변할 수 있습니다. 예를 들어 위에서 언급한 아기의 신장에서 변수는 시간, 영양 상태 등의 다른 변수들에 의존됩니다. 시간과 영양 상태 등을 다른 변수 기호 t, N 등으로 나타낸다면 위의 식은 다음과 같이 나타낼 수 있습니다.

$$\text{height} =a+x=a+(t, N,\cdots)$$

사실 위 표현에서 (t, N,...)는 여러 변수의 관계를 의미합니다.

그림 1은 밑면 x와 높이 y이고 한쪽이 30°의 사잇각을 가진 직각삼각형을 나타낸 것입니다. 이 삼각형에서 서로 의존하는 두 개의 변수 x, y를 생각해 봅시다. 두 변수 중에 변수 x를 변화시키면 y 역시 그 변화에 따라 달라질 것입니다. 예를 들어 x에 dx(x의 약간)를 첨가하면 y 역시 dy 만큼 변경될 것입니다. 물론 dx, dy는 양수 뿐만 아니라 음수가 될 수 있겠지요.

그림 1. 직각 삼각형의 밑면과 높이의 관계.

삼각형이 30°의 사잇각을 유지하면서 확장된다고 가정하고 밑변이 x + dx가 될 정도로 커지면 높이가 y + dy가 됩니다. 여기서 x를 늘리면 y가 증가합니다. 높이가 dy이고 밑이 dx인 작은 삼각형은 원래 삼각형과 비슷합니다. 그리고 두 비율 $\displaystyle \frac{dy}{dx}$와 $\displaystyle \frac{y}{x}$는 동일할 것입니다. 각도가 30°이므로 다음과 같이 나타낼 수 있습니다.

$$\frac{dy}{dx}=\frac{1}{1.73} \to \tan(30)=\frac{dy}{dx}$$

다음은 위 값을 계산하기 위한 코드입니다. 이 코드에서는 사용된 round(값, 자릿수) 함수는 값을 지정한 자릿수까지 반올림하여 반환합니다. 또한 tan(라디안)는 numpy 모듈의 함수로 tan값을 계산하여 반환합니다. 그러나 전달하는 값은 각도가 아닌 라디안(radian) 값이어야 하므로 30°를 라디안으로 전환하기 위해 numpy 모듈 함수인 deg2rad()를 적용하였습니다.

import numpy as np
import pandas as pd
from sympy import *
import matplotlib.pyplot as plt
round(1/1.73, 2)
0.58
round(tan(np.deg2rad(30)),2)
0.58

다른 예로 그림 2는 벽에 기대어 있는 길이 $\overline{AB}$의 사다리를 나타낸 것입니다. 변수 x는 벽으로부터 A까지의 수평 거리 $\overline{OA}$, y는 벽에 닿는 높이 $\overline{OB}$를 나타냅니다. 이러한 상태에서 사다리를 움직일 경우 y는 분명히 x에 의존합니다. 즉, 하단 A를 벽에서 조금 더 당기면 상단 B가 약간 아래로 내려 오는 것을 알 수 있습니다.

그림 2. x, y 축에 기대어 있는 사다리 모습
$x\rightarrow x+dx, \; y \rightarrow y-dy$

하단 A가 벽에서 19cm 떨어져 있을 때 상단 B가 면에서 180cm인 경우 하단 A를 1cm 더 빼면 상단 B는 얼마나 내려갈까요?

이 상황에서 x, y는 각각 19, 180이 되며 x의 증분은 1cm가 됩니다. 이 증분을 dx라고 하며 전체 길이 x+dx = 19+1 = 20 cm가 됩니다. x, y의 길이의 변화에도 불구하고 AB의 길이는 변함이 없습니다. 그러므로 피타고라스 정리를 적용하여 y의 변화 즉, dy를 계산할 수 있습니다.

$$\begin{align}\overline{AB}&=\sqrt{x^2+y^2}\\ &=\sqrt{(x+dx)^2+(y+dy)^2}\\ \sqrt{19^2+181^2}&=181\\ \sqrt{20^2+(180+dy)^2}&=181\\ dy &\approx -0.11 \end{align}$$

위 과정을 코드화하기 위해서 x, y를 기호화하여 관계를 정립할 필요가 있습니다. 이러한 경우 기호를 지정하여 숫자로 치환을 가능하게 하는 파이썬의 sympy 라이브러리를 사용합니다. 그 과정은 다음과 같습니다.

  • 변수(x, y)와 기호(dx, dy)를 symbols()함수를 사용하여 지정
  • $\overline{AB}$를 위한 식을 생성(z)
  • x=1.9, y=180에서의 $overline{AB}$길이 산출(z)
  • 이 계산을 위해서 subs()메서드를 사용합니다.
  • $\sqrt{(x + dx)^2 + (y + dy)^2 − z^2} = 0$ 의 식을 생성(eq)
    $\qquad$ 위 식과 같이 한쪽이 0인 식을 동차식(homogeneous equation)이라고 합니다.
  • 동차식에서 지정한 변수의 해를 계산하기 위해 solveset()함수를 적용합니다.
x, y, dx, dy=symbols("x, y, dx, dy", real=True)
z=sqrt(x**2+y**2)
z
$\quad \small{\color{blue}{\sqrt{x^{2} + y^{2}}}}$
z1=z.subs([(x, 19), (y, 180)])
print(z1)
181
eq=sqrt((x+dx)**2+(y+dy)**2-z1**2)
eq1=eq.subs([(x, 19),(dx, 1),(y,180)])
eq1
$\quad \small{\color{blue}{\sqrt{\left(dy + 180\right)^{2} - 32361}}}$
sol=solveset(eq1, dy, Interval(-180, 180))
sol
$\quad \small{\color{blue}{\left\{-180 + \sqrt{32361}\right\}}}$
x=[N(i, 3) for i in N(sol)] #(1)
x
[-0.108]

위 예들로부터 특정 위치를 제외하고 dy와 dx는 다른 크기이며 그 값들의 변화는 dx, dy의 비율로 나타냄을 알 수 있습니다. 또한 두 변수 y와 x가 서로 관련이 있을 경우만 $\frac{dy}{dx}$의 비율을 찾을 수 있음을 알수 있습니다. 예를 들어 위 첫 번째 예에서 dy와 dx의 비는 tan(30°)으로 고정되고 두 번째 예의 경우는 $\overline{AB}$의 값이 고정된 상태이므로 dx, dy 중 하나의 변화에 대한 다른 변수의 변화를 찾아낼 수 있습니다. 길이가 길어지면 y는 감소하며 그 관계를 비율로 나타낼 수 있는 것입니다. 이러한 변수들의 관계를 정의한 식을 함수(function)라고 합니다.

그림 2의 경우 $\overline{AB}$를 상수 a로 나타낸다면 두 변수 x, y에 대한 식 $a^2=x^2+y^2$은 다음과 같이 두 가지 형식으로 나타낼 수 있습니다.

  • $y=\sqrt{a^2-x^2}$: 양함수(Explicit Function)
  • $x^2+y^2-a^2=0$: 음함수(Implicit Function)

위 식에서 y는 x에 의해 결정되므로 x를 독립변수(independent variable), y를 종속변수(independent variable)로 간주합니다. 위에서 나타낸 것과 같이 독립변수와 종속변수가 등호('=')를 기준으로 분리하여 나태낸 함수를 양함수(explicit function)라고 합니다. 반면에 독립변수와 종속변수의 분리 없이 함께 나타낸 함수를 음함수(implicit function)라고 합니다.

일반적으로 함수는 F(), f(), φ()등과 같이 다양한 기호로 나타낼 수 있으며 이 경우 양함수와 음함수는 다음과 같이 표시됩니다.

양함수와 음함수
  • y=F(x, a) 또는 x=F(y, a) : 양함수(explicit function)
  • F(x, y, a)=0 : 음함수(implicit function)

위 예로부터 산출된 두 변수의 비율 $\frac{dy}{dx}$를 x에 관한 y의 미분계수라고 합니다. 또한 이 미분계수를 산출하는 과정을 미분(differentiating)이라 합니다. 다시 말하면 미분의 결과는 극소 구간에서의 두 변수의 비율이 됩니다.

댓글

이 블로그의 인기 게시물

[Linear Algebra] 유사변환(Similarity transformation)

유사변환(Similarity transformation) n×n 차원의 정방 행렬 A, B 그리고 가역 행렬 P 사이에 식 1의 관계가 성립하면 행렬 A와 B는 유사행렬(similarity matrix)이 되며 행렬 A를 가역행렬 P와 B로 분해하는 것을 유사 변환(similarity transformation) 이라고 합니다. $$\tag{1} A = PBP^{-1} \Leftrightarrow P^{-1}AP = B $$ 식 2는 식 1의 양변에 B의 고유값을 고려한 것입니다. \begin{align}\tag{식 2} B - \lambda I &= P^{-1}AP – \lambda P^{-1}P\\ &= P^{-1}(AP – \lambda P)\\ &= P^{-1}(A - \lambda I)P \end{align} 식 2의 행렬식은 식 3과 같이 정리됩니다. \begin{align} &\begin{aligned}\textsf{det}(B - \lambda I ) & = \textsf{det}(P^{-1}(AP – \lambda P))\\ &= \textsf{det}(P^{-1}) \textsf{det}((A – \lambda I)) \textsf{det}(P)\\ &= \textsf{det}(P^{-1}) \textsf{det}(P) \textsf{det}((A – \lambda I))\\ &= \textsf{det}(A – \lambda I)\end{aligned}\\ &\begin{aligned}\because \; \textsf{det}(P^{-1}) \textsf{det}(P) &= \textsf{det}(P^{-1}P)\\ &= \textsf{det}(I)\end{aligned}\end{align} 유사행렬의 특성 유사행렬인 두 정방행렬 A와 B는 'A ~ B' 와 같...

[sympy] Sympy객체의 표현을 위한 함수들

Sympy객체의 표현을 위한 함수들 General simplify(x): 식 x(sympy 객체)를 간단히 정리 합니다. import numpy as np from sympy import * x=symbols("x") a=sin(x)**2+cos(x)**2 a $\sin^{2}{\left(x \right)} + \cos^{2}{\left(x \right)}$ simplify(a) 1 simplify(b) $\frac{x^{3} + x^{2} - x - 1}{x^{2} + 2 x + 1}$ simplify(b) x - 1 c=gamma(x)/gamma(x-2) c $\frac{\Gamma\left(x\right)}{\Gamma\left(x - 2\right)}$ simplify(c) $\displaystyle \left(x - 2\right) \left(x - 1\right)$ 위의 예들 중 객체 c의 감마함수(gamma(x))는 확률분포 등 여러 부분에서 사용되는 표현식으로 다음과 같이 정의 됩니다. 감마함수는 음이 아닌 정수를 제외한 모든 수에서 정의됩니다. 식 1과 같이 자연수에서 감마함수는 factorial(!), 부동소수(양의 실수)인 경우 적분을 적용하여 계산합니다. $$\tag{식 1}\Gamma(n) =\begin{cases}(n-1)!& n:\text{자연수}\\\int^\infty_0x^{n-1}e^{-x}\,dx& n:\text{부동소수}\end{cases}$$ x=symbols('x') gamma(x).subs(x,4) $\displaystyle 6$ factorial 계산은 math.factorial() 함수를 사용할 수 있습니다. import math math.factorial(3) 6 a=gamma(x).subs(x,4.5) a.evalf(3) 11.6 simpilfy() 함수의 알고리즘은 식에서 공통사항을 찾아 정리하...

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$$ 실수...