고등학교 수학의 '극한값' 관련 문제를 파이썬으로 해결
개요
함수의 극한값에 관한 문제(고등학교 수학)를 Python으로 해결해 갑니다. 연습 문제와 해답 예의 작성 지원을 목적으로 하고 있습니다(교원용입니다).
질문 1
다음 극한값을 구하라.
$$\lim_{x\to -\infty}\frac{5x^2-x}{4-2x^2} $$
질문 1을 풀는 방법(참고)
분자 분모를 $x^2$ 로 나눕니다.
$$\lim_{x\to -\infty}\frac{5x^2-x}{4-2x^2} =\lim_{x\to -\infty}\frac{5-\frac{1}{ x}}{\frac{4}{x^2}-2} = -\frac{5}{2}$$
질문 1의 해를 주는 Python 프로그램
sympy를 사용하여 해결합니다. sympy는 기호 계산 (수식 처리) 패키지입니다. 무한대 $\infty$ 는 sympy.oo
로 주어집니다.
파이썬from sympy import oo, limit, Symbol
x = Symbol('x')
fx = ( 5*x**2 - x ) / ( 4 - 2*x**2 )
ans = limit(fx, x, -oo)
print(f'解:{ans}')
실행 결과
解:-5/2
덤 1
분수 함수 $\frac{5x^2-x}{4-2x^2} $ 의 그래프를 그려 보겠습니다. $x\to -\infty$ 를 보려면 $x$ 축을 로그 스케일로 만듭니다.
import numpy as np
import matplotlib.pyplot as plt
from sympy import Symbol,solve
# 定義域を確認
g = ( 4 - 2*x**2 ) # 分母
sx = solve(g)
tmp = ', '.join(map(str,sx))
print(f'分母 ( {g} ) がゼロになるのは(定義域から除外されるのは) x= {tmp} ')
# グラフの描画 ここからは numpy を利用
x1 = -np.logspace(-2, 4, num=100)[::-1] # -10e4 ~ -10e-2
x2 = np.logspace(-2, 4, num=100) # 10e-2 ~ 10e4
x = np.concatenate([x1,x2])
f = lambda x : ( 5*x**2 - x ) / ( 4 - 2*x**2 )
y = f(x)
plt.figure(dpi=120)
plt.plot(x, y, marker='.')
plt.ylim(-10,10)
plt.xscale('symlog') # 対称ログスケール
plt.show()
덤 1 실행 결과
分母 ( -2*x**2 + 4 ) がゼロになるのは(定義域から除外されるのは) x= -sqrt(2), sqrt(2)
그래프에서도, $x\to -\infty$ 로, $-2.5$ 에 수렴하는 것을 추측할 수 있습니다.
덤 2
정의 영역에서 벗어나는 $x=\pm\sqrt{2}$ 에서 어떤 값에 접근하는지 살펴보겠습니다. 여기에서는 $\sqrt{2}$ 에 대해, 오른쪽($\sqrt{2}+\delta$)으로부터와 좌측($\sqrt{2}-\delta$)으로부터의 접근했을 때의 값을 보자 합니다. 즉, $x\to\sqrt{2}^{+}$, $x\to\sqrt{2}^{-}$일 때의 극한값을 구합니다.
sympy.limit()
의 네 번째 인수를 '+'
또는 '-'
로 설정합니다.
파이썬from sympy import limit, Symbol,sqrt
x = Symbol('x')
fx = ( 5*x**2 - x ) / ( 4 - 2*x**2 )
ans1 = limit(fx, x, sqrt(2), '+')
ans2 = limit(fx, x, sqrt(2), '-')
print(f'解:{ans1}, {ans2}')
덤 2 실행 결과
그래프 결과와 일치합니다.
解:-oo, oo
질문 2
다음 극한값을 구하라.
$$\lim_{x\to\infty} (\sqrt{x^2+1}-x ) $$
질문 2를 풀는 방법(참고)
\begin{align}
\lim_{x \to \infty} (\sqrt{x^2+1}-x ) & = \lim_{x \to \infty} \frac{(\sqrt{x^2+1}-x)(\sqrt{x^2+1}+x)}{\sqrt{x^2+1}+x} \\
& = \lim_{x \to \infty} \frac{(x^2+1)-x^2}{\sqrt{x^2+1}+x} \\
& = \lim_{x \to \infty} \frac{1}{\sqrt{x^2+1}+x} \\
& = 0
\end{align}
질문 2의 해를 주는 Python 프로그램
파이썬from sympy import oo, limit, Symbol, sqrt
x = Symbol('x')
fx = sqrt(x**2+1)-x
ans = limit(fx, x, oo)
print(f'解:{ans}')
실행 결과
解:0
Reference
이 문제에 관하여(고등학교 수학의 '극한값' 관련 문제를 파이썬으로 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/code0327/items/1fd0df574c8c8357af5a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from sympy import oo, limit, Symbol
x = Symbol('x')
fx = ( 5*x**2 - x ) / ( 4 - 2*x**2 )
ans = limit(fx, x, -oo)
print(f'解:{ans}')
解:-5/2
import numpy as np
import matplotlib.pyplot as plt
from sympy import Symbol,solve
# 定義域を確認
g = ( 4 - 2*x**2 ) # 分母
sx = solve(g)
tmp = ', '.join(map(str,sx))
print(f'分母 ( {g} ) がゼロになるのは(定義域から除外されるのは) x= {tmp} ')
# グラフの描画 ここからは numpy を利用
x1 = -np.logspace(-2, 4, num=100)[::-1] # -10e4 ~ -10e-2
x2 = np.logspace(-2, 4, num=100) # 10e-2 ~ 10e4
x = np.concatenate([x1,x2])
f = lambda x : ( 5*x**2 - x ) / ( 4 - 2*x**2 )
y = f(x)
plt.figure(dpi=120)
plt.plot(x, y, marker='.')
plt.ylim(-10,10)
plt.xscale('symlog') # 対称ログスケール
plt.show()
分母 ( -2*x**2 + 4 ) がゼロになるのは(定義域から除外されるのは) x= -sqrt(2), sqrt(2)
from sympy import limit, Symbol,sqrt
x = Symbol('x')
fx = ( 5*x**2 - x ) / ( 4 - 2*x**2 )
ans1 = limit(fx, x, sqrt(2), '+')
ans2 = limit(fx, x, sqrt(2), '-')
print(f'解:{ans1}, {ans2}')
解:-oo, oo
다음 극한값을 구하라.
$$\lim_{x\to\infty} (\sqrt{x^2+1}-x ) $$
질문 2를 풀는 방법(참고)
\begin{align}
\lim_{x \to \infty} (\sqrt{x^2+1}-x ) & = \lim_{x \to \infty} \frac{(\sqrt{x^2+1}-x)(\sqrt{x^2+1}+x)}{\sqrt{x^2+1}+x} \\
& = \lim_{x \to \infty} \frac{(x^2+1)-x^2}{\sqrt{x^2+1}+x} \\
& = \lim_{x \to \infty} \frac{1}{\sqrt{x^2+1}+x} \\
& = 0
\end{align}
질문 2의 해를 주는 Python 프로그램
파이썬
from sympy import oo, limit, Symbol, sqrt
x = Symbol('x')
fx = sqrt(x**2+1)-x
ans = limit(fx, x, oo)
print(f'解:{ans}')
실행 결과
解:0
Reference
이 문제에 관하여(고등학교 수학의 '극한값' 관련 문제를 파이썬으로 해결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/code0327/items/1fd0df574c8c8357af5a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)