내용
1. 접선과 외선
한 점 x에서의 함수 f(x)의 접선(tangent line)은 그 점에서 함수의 그래프를 스쳐지나가는 직선으로 그 점과 평행입니다.
위 그림에서 직선 y는 곡선 f(x)위의 점 A(0.3, f(0.3))에 대한 접선입니다. 이 접선은 곡선의 다른 점 B를 통과합니다. 이와같이 어떤 점의 접선이 동일한 함수의 다른 점과 교점을 이루는 선을 외선(scant line)이라고 합니다. 위의 경우 직선 y의 식은 접점(점A)과 외선을 이루는 점B를 알 수 있으므로 쉽게 계산할 수 있습니다.
예 1)
x=1에서 $f(x)=15-2x^2$의 접선?
위 그림에서 f(x) 위의 접점 A를 지나는 접선 a의 식을 계산하기 위해서는 a를 지나는 다른 점을 알거나 그 직선의 기울기를 알아야 합니다. 위 그림에서는 두 가지 모두 미지수입니다. 그러나 함수 f(x)위의 두 점 A와 B를 지나는 직선을 계산할 수 있습니다. 이 직선을 이용하여 접선을 추정할 수 있습니다.
위 그림에서 b의 기울기는 다음과 같이 계산할 수 있습니다.
$$\frac{f(0.5)-f(1.32)}{0.5-1.32}$$import numpy as np import pandas as pd from sympy import *
x=symbols("x") f=5-2*x**2 s1=(f.subs(x,0.5)-f.subs(x, 1.32))/(0.5-1.32) N(s1, 2)
−3.6
그림 2의 점 B가 점 A쪽으로 근접할수록 직선 b는 직선 a와 근사해질 것입니다.(그림 3)
A로 수렴하는 여러 점들에 대한 기울기를 계산하면 다음과 같습니다.
x_p=np.linspace(0.51, 1, 5) np.around(x_p, 2)
array([0.51, 0.63, 0.76, 0.88, 1. ])
slope=[] bias=[] for j, i in enumerate(x_p): slope.append((f.subs(x, 0.5)- f.subs(x, i))/(0.5-i)) bias.append(f.subs(x, i)-slope[j]*i) equ=np.array([x_p, slope, bias], dtype=np.float64).T np.around(equ, 3)
array([[ 0.51 , -2.02 , 15.51 ], [ 0.633, -2.265, 15.633], [ 0.755, -2.51 , 15.755], [ 0.878, -2.755, 15.878], [ 1. , -3. , 16. ]])
rng=np.linspace(0, 1, 100) plt.figure(figsize=(10, 7)) plt.plot(rng, [f.subs(x, i) for i in rng], color="red") plt.scatter(0.5, f.subs(x, 0.5), color="red") plt.plot() for k, i,j in equ: plt.plot(rng, i*rng+j, linestyle="--", label=f"solpe={round(i,3)}") plt.scatter(k, f.subs(x, k)) plt.legend(loc="best") plt.show()
그림 3과 같이 좌표가 A에 수렴할 수록 기울기는 -2에 수렴됩니다. 그러므로 점 A의 접선의 기울기는 -2라고 추정할 수 있습니다. 즉, 어떤 점 P(a, f(a))에 대한 접선은 그 점에 근접한 점 Q(x, f(x)=y)와의 선으로부터 추정할 수 있습니다. P와 Q사이에 직선은 식 1과 같이 표현할 수 있습니다.
$$\begin{equation}\tag{1}m=\frac{y-f(a)}{x-a} \rightarrow y=f(a)+m(x-a) \qquad \end{equation}$$2. 극한(limit)
식 1에서 적절한 기울기의 추정은 그림 4와 같이 나타낼 수 있습니다.
즉, 그림 4와 같이 점 a로 접근하는 점들은 a와 차이 h로 나타낼 수 있습니다. h의 부호에 따라 접근 방향의 차이를 보이지만 결국 h의 절대값이 작아질수록 점 a로 접근하며 그 두 점 사이의 직선은 점 a에서의 접선에 접근할 것입니다. 이 관계는 다음 식으로 표현됩니다.
$$\begin{equation}\tag{2}\frac{f(x)-f(a)}{x-a}= \frac{f(a+h)-f(a)}{a+h-a}=\frac{f(a+h)-f(a)}{h}\end{equation}$$식 2를 일반화하기 위해 특정한 값 a를 변수 x로 치환하면 어떤 점에 대한 접선의 기울기에 대한 식 3의 공식으로 나타낼 수 있습니다.
$$\begin{equation}\tag{3}\frac{f(x+h)-f(x)}{h}\end{equation}$$식 3을 보다 정확하게 표현하면 h가 0에 접근할수록 정확한 접선의 기울기에 접근합니다. 그러므로 식 4와 같이 나타냅니다.
$$\begin{equation}\tag{4}\lim_{h \to 0} \frac{f(x+h)-f(x)}{h} =l\end{equation}$$식 4의 표현을 극한(limit)이라고 합니다. 즉, x=h에서의 극한값은 l이라고 합니다.
예 2)
다음 극한의 표현을 봅시다.
위 식은 $f(x) = 2x^2$ 함수가 x=1인 점과 그에 근접한 점사이의 기울기를 의미합니다.
f=(2-2*x**2)/(x-1) rng=np.linspace(0.95, 1.05, 10) slope=np.array([[i, f.subs(x, i)] for i in rng], dtype=np.float32) np.around(slope, 3)
array([[ 0.95 , -3.9 ], [ 0.961, -3.922], [ 0.972, -3.944], [ 0.983, -3.967], [ 0.994, -3.989], [ 1.006, -4.011], [ 1.017, -4.033], [ 1.028, -4.056], [ 1.039, -4.078], [ 1.05 , -4.1 ]], dtype=float32)
x가 1에 근접하면 결과는 -4와 가까워짐을 알수 있습니다. 그러므로 다음과 같이 나타낼 수 있습니다.
$$\lim_{x \to 1} \frac{2-2x^2}{x-1}=-4$$위와 같은 계산은 python의 모듈 sympy의 limit(함수, 변수, 접근값)
에 의해 계산할 수 있습니다.
limit(f, x, 1)
−4$$\begin{align} 2.\; f(t) &= t^3-6t^2+30, \quad t=5\\ & \lim_{t \to 5} \frac{f(t)-f(5)}{t-5} \end{align}$$
t=symbols("t") f=t**3-6*t**2+30 rng=np.linspace(4.9, 5.1, 10) slope=np.array([[i, f.subs(t, i)] for i in rng], dtype=np.float32) np.around(slope, 3)
array([[4.9 , 3.589], [4.922, 3.887], [4.944, 4.194], [4.967, 4.51 ], [4.989, 4.834], [5.011, 5.168], [5.033, 5.51 ], [5.056, 5.861], [5.078, 6.222], [5.1 , 6.591]], dtype=float32)
limit(f, t, 5)
5
위 계산 결과에 의하면 x가 5에 근접할수록 결과는 5에 수렴됩니다. 그러므로 위의 식은 다음과 같이 나타낼 수 있습니다.
$$\lim_{x \to 5} \frac{f(x)-f(5)}{x-5}=5$$위의 예 1, 2에서 각 x 값에 대응하는 y값은 함수에 의해 나타낼 수 있습니다. 즉, 함수에 존재하는 위치에서의 극한값입니다. 그러나 다음 예 3과 같이 어떤 함수가 특정한 x 값을 포함하지 않는다면 그 점에서의 극한값을 계산할 수 없을 것입니다.
예 3)
$$\begin{align}&\lim_{x \to 2} g(x)\\ &g(x) = \begin{cases} \frac{x^2+4x-12}{x^2-2x}& \text{if}\; x\neq 2\\ 6 &\text{if}\; x=2 \end{cases}\end{align}$$위 함수의 점 x=2의 접선의 기울기를 계산합니다.
x=symbols("x") g=(x**2+4*x-12)/(x**2-2*x) g$$\qquad \color{blue}{\frac{x^{2} + 4 x - 12}{x^{2} - 2 x}}$$
x1=np.r_[np.linspace(1, 1.99, 10), np.linspace(2.01, 3, 10)] y1=np.array([g.subs(x, i) for i in x1], dtype=float) np.around(np.array([x1, y1]).T, 3)
array([[1. , 7. ], ⋮, ⋮ [1.99 , 4.015], [2.01 , 3.985], [2.12 , 3.83 ], ⋮, ⋮ [3. , 3. ]]))
limit(g, x, 2)
4
위 결과에 의하면 x=1에 근접할 수록 결과는 4에 접근한다고 할 수 있습니다. 즉,
$$\lim_{x \to 2}\frac{g(x) -g(2)}{x-2} = 4$$이는 위의 g 함수를 다음과 같이 인수분해 한후 x=2를 대입한 결과와 같습니다.
g1=g.simplify() g1$$\qquad \color{blue}{\frac{x + 6}{x}}$$
그러나 위 함수의 조건은 g(2)=6이므로 위의 극한값은 정당하지 않습니다. 결과적으로 극한값이 존재하기 위해서는 계산하려는 값의 구간에서 그 함수가 연속적이어야 합니다.
위 그림의 g(x)는 점 2에서 이어지지 않습니다. 즉, x=2에 대한 y의 값은 6으로 특정되어있으므로 극한값 4와는 일치하지 않습니다. 이러한 경우를 "g(x)는 x=2에서 불연속"된다고 표현합니다.이러한 불연속점의 경우 극한 값을 계산할 수 없습니다.
예) 4
다음 함수의 x=0에서의 극한값?
0에서 극한값이 존재하기 위해서는 이 점에서 위 함수가 연속적이어야 합니다. 일반적으로 0으로 나누어진 경우는 무한대로 불연속적입니다. 그러나 위 함수는 0에서 분자 역시 0이 되므로 그 점에서 연속적입니다. 위 함수에 대한 그래프는 다음과 같습니다.
t=symbols("theta") f=(1-cos(t))/t f$\quad \color{blue}{\frac{1 - \cos{\left(\theta \right)}}{\theta}}$
x=np.linspace(-20, 20, 100) y=np.array([f.subs(t, i) for i in x], dtype=float) plt.figure(dpi=100) plt.plot(x, y, label=r'f=$\frac{1-\cos(\theta)}{\theta}$') plt.xlabel('x', size=12, weight="bold") plt.ylabel('f(x)', size=12, weight="bold") plt.legend(loc='best') plt.show()
x=np.r_[np.linspace(-0.5, -0.001, 10), np.linspace(0.001, 0.5, 10)] y=np.array([f.subs(t, i) for i in x], dtype=float) coord=np.array([x, y]).T np.around(coord, 3)
array([[-0.5 , -0.245], [-0.445, -0.219], ⋮, ⋮ [-0.001, -0. ], [ 0.001, 0. ], [ 0.056, 0.028], ⋮, ⋮ [ 0.5 , 0.245]])
limit(f, t, 0)
예) 5
다음의 극한값?
다음 코드 결과와 같이 x=0에서 함수의 값이 존재하지 않습니다. 즉, 이 점에서 불연속적입니다. 그러므로 극한값이 존재하지 않습니다.
f=cos(pi/t) f
cos(𝜋𝜃)
f.subs(t, 0)
NaN
limit(f, t, 0)
⟨−1,1⟩
위 결과는 최소값 -1, 최대값 1사이에서 발산함을 나타내는 것으로 값이 없음을 의미합니다.
예) 6
$$\begin{align}&\lim_{x \to 0}h(x)\\ &h(x) =\begin{cases}0 & \text{if}\; x<0 \\ 1 &\text{if}\; x\geq 0 \end{cases} \end{align}$$위 함수 h(x) 역시 x=0에서 불연속입니다. 그러므로 그 점에서는 극한값을 계산할 수 없습니다.
위 그림에서 x=0에서 불연속입니다. 즉, 점 0을 기준으로 왼쪽에서 접근할 경우의 값은 0이지만 오른쪽에서 접근할 경우는 1입니다. 이러한 서술을 다음과 같이 나타낼 수 있습니다.
$$\begin{align}\lim_{x \to 0^-}=0 &\qquad \text{Left-handed limit}\\ \lim_{x \to 0^+}=1 &\qquad \text{Right-handed limit}\end{align}$$즉, 어떤 점에서 Left-handed limit와 Right-handed limit값이 일치하지 않는다면 불연속점이며 그 점에서의 극한값은 존재할 수 없습니다.
결론적으로 어떤점에서의 극한값은 다음과 같이 정의 할 수 있습니다.
$$\lim_{x \to a^+}f(x) = \lim_{x \to a^-}f(x)=L \Leftrightarrow \lim_{x \to a}f(x)=L$$위의 서술을 그래프로 나타내면 다음과 같습니다.
x와 a의 차이가 δ보다 작을 경우는 f(x)의 극한값 L과의 차이는 위 그래프의 나타낸 ε보다 작다는 것을 의미합니다.
댓글
댓글 쓰기