Processing math: 100%

2013년 11월 29일 금요일

gnuplot - 미적분학 테일러 (매클로린) (급수) 전개 답 확인 방법

대학에서 미적분학을 배우다 보면 테일러 급수 (혹은 매클로린 급수) 를 배우게 된다.
관련 숙제도 풀게 될 것이고..
그러다보면, 자신이 전개한 식이 맞는지 궁금한 경우가 많을 것이다.

이 글에선, 자기가 한 테일러 (매클로린) 전개가 맞는 지를 쉽게 확인하는 방법으로써 gnuplot을 이용하는 방법에 대해 설명하겠다.

예시로 이용할 문제는:

x=1 에서, f(x)=3+x2 의 테일러 전개 구하기

이다.

gnuplot은 리눅스 상에서 그래프를 그릴 때 많이 쓰이는 공짜 프로그램이다.
이걸로 테일러 전개의 답을 어떻게 확인하냐면..
그려서 확인할 것이다.

일단, 위 문제를 풀어보면: f(x)=x(3+x2)12 f(x)=x2(3+x2)32+(3+x2)12 f(x)=3x3(3+x2)523x(3+x2)32 그러므로, x=1 에서의 테일러 전개는: 3+x2=2(x+1)21!+3(x+1)2232!+9(x+1)3253!+

위의 풀이를 그리는 법은 간단하다.

일단 gnuplot에 넘길 입력 파일(plot.gp)을 만든다:

set terminal png 
set output "output.png"

plot sqrt(3 + x**2)
위와 같이 plot 뒤에 그리고 싶은 식을 써 넣으면 된다.
(그 위의 두 줄은 결과 그래프를 output.png 파일로 만들기 위한 코드이다.)
이 때의 리눅스 명령은:
gnuplot plot.gp
이고, 그 결과 (output.png) 는:

이제, 풀이 쪽을 그려보자.
입력 파일 (plot.gp) 은:

set terminal png 
set output "output.png"

plot sqrt(3 + x**2), 2 - (x + 1) / 2 + 3 * (x + 1)**2 / 16 + 9 * (x + 1)**3 / 192
명령은 위와 마찬가지로:
gnuplot plot.gp
이번 입력 파일에서는, 그래프를 두 개 그렸다.
(plot 뒤의 두 식을 , (쉼표) 로 구분지음에 주의: 첫 번째 식은 원래 문제에서 주어진 식이고, 두 번째 식은 앞에서 구한 테일러 전개식 (네 번째 항까지) 이다.)
그럼, 결과 (output.png) 는:

위 그래프의 x축, y축 범위를 처음 그래프와 비슷하게 해 보자. 위의 입력 파일 (plot.gp) 에서, 다음과 같이 plot 명령에 범위 옵션 ([-10:10][1:11]) 을 주면 된다:
plot [-10:10][1:11] sqrt(3 + x**2), 2 - (x + 1) / 2 + 3 * (x + 1)**2 / 16 + 9 * (x + 1)**3 / 192
처음 입력 파일처럼 범위를 안 주면, gnuplot이 자동으로 x축과 y축의 범위를 설정한다.
옵션의 뜻은, 10x10, 1y11 에서의 그래프를 그리라는 것이다.
범위 설정 후의 결과는:

보다시피, x=1 주위에서 두 그래프가 거의 똑같음을 알 수 있다.
그러면 이 테일러 전개는 맞게 된 거라 생각하면 된다.

사족으로, 첫 째 항까지, 둘 째항까지, 셋 째 항까지, 그리고 넷 째 항까지의 테일러 전개를 같이 그리면 다음과 같다:
(아, 물론 원래 그래프인 3+x2 도 같이 그렸다.)


멋있지 않은가?
새로운 (고 차의) 테일러 전개 항들이 추가될 때마다, x=1 에서, 각 그래프가 원래의 그래프 (빨간 선) 에 점점 닮아감을 알 수있다.

gnuplot에 관한: 이전 글 다음 글 (Coming soon)