(그림을 클릭하면 Gauss-Legendre Integration페이지로 바로 이동)
Gauss-Legendre Integration
보통의 적분 한 두개가 들어간 계산은 구간을 잘게 쪼개서 DO구문을 돌리면 충분히 좋은 값을 얻을 수 있다. 하지만 적분의 수가 늘어나고 계산시간과 정확도에 압박을 받을 때는 좀 더 효과적인 적분법을 고려할 필요가 있다.
그러한 수치적분법 중에 가장 많이 쓰이는 것 중의 하나가 Gauss-Legendre Integration이다. 이 적분법은 유한한 적분구간에 사용되는 방법인데 적분구간에 무한대 경우에는 다른 방법이 사용되는데 그런 것들을 모두 Gaussian Qudrature라고 부른다. 자세한 것은 아래 링크를 방문해 보자.
http://www.efunda.com/math/num_integration/num_integration.cfm
사용관련 의견
이 글의 맨 위의 그림에서도 보이듯이 필요한 점만큼 사이트에서 만들어 내서 코드에 적용하면 된다. 계산하고자 하는 적분식은 맨 왼쪽과 같은 표현이지만 계산 프로그램에서는 오른쪽과 같이 변형시켜야 하겠다.
적분되는 함수가 급격히 변화하지 않을 경우는 30 포인트 이상이면 대개 충분히 좋은 결과를 얻을 수 있다. 함수가 완만한 변화를 가질 경우는 10 포인트 부근으로도 괜찮은 결과를 얻을 수 있다.
이 방법을 이용한 수치계산에 확신을 얻으려면 포인트 수를 늘릴 수록 적분값이 수렴하는지 확인해야 한다.
나의 경우는 여러 포인트의 값들을 위의 사이트에서 받아서 외부파일로 저장해 놓고 입력값으로 포인트 수가 다른 적분을 수행하여 적분의 안정도를 확인하곤 한다. 여러 적분이 섞여 있는 경우는 함수의 성질에 따라 최적화된 두 세가지의 다른 포인트 수의 적분을 수행하는 것도 시간을 아끼는 방법이다.
'과학 연구용 도구 > Fortran' 카테고리의 다른 글
수치적분에서 선형적인 적분변수를 선택하라 (0) | 2012.11.09 |
---|---|
[F95]고급 프로그래밍으로 가기 위해 필수적인 외부파일 제어 (1) | 2012.10.31 |
포트란: 파일연결에서 채널 6은 사용금지 (3) | 2012.10.29 |
포트란: 계산 끝을 알리는 소리알람 명령줄 (0) | 2012.10.28 |
포트란: 계산시간 확인하기 : cpu_time (1) | 2012.10.27 |