[간단한 질문] Numerical derivative 중에서...

글쓴이
사색자
등록일
2002-11-07 11:37
조회
5,427회
추천
0건
댓글
10건
다들 아시죠? numerical derivative... 웬만한 텍스트에는 다 나와있을겁니다.

그런데, 고차 미분 end points에서는 미분값이 많이 부정확해지는데요... 예를 들어, 매틀랩으로 설명을 드린다면,

dydx=diff(x)/h => 1차 미분입니다.
d2ydx2=diff(dydx)/h => 2차 미분입니다.
d3ydx3=diff(d2ydx2)/h => 3차 미분입니다.

로 점점 원함수를 미분해나가면 특히 양끝단점에서 정확도가 많이 떨어지게 됩니다.
(실질적으로 x가 100 포인트가 주어지면 한번 미분할때마다 계산포인트는 줄어들죠. 위의 예에서는 그 점은 고려하지 않았습니다.)

여하튼, 그래서 3 point, 5 point등을 이용한 numerical derivative scheme들이 나왔는데, 결론적으로는 2차, 3차 미분으로 들어갈수록 전체 정확도는 둘째치고 양끝단 정확도가 많이 떨어지게 됩니다.

기타 polynomial로 점 몇개를 근사하는 커브식을 만든다음 그것으로 미분값을 계산할 수도 있는데 - 제가 쓰는 방법입니다... 저는 점 5개를 그룹으로 묶은다음 parabolic curve로 근사한 다음 미분값을 냅니다만, 역시 양끝단점들이 문제가 됩니다. 양끝단 문제점이라면 n points가 있으면 1, n번째 점에서의 1,2,3차 미분값, 특히 3차 미분값이 analytic 값과 많이 틀린 것을 말합니다.

전산유쳬 하신분들은 이런 고차미분에서의 양끝단 문제를 어떤식으로 해결하시는지 한번 조언을 듣고 싶네요. :)
  • 인과응보 ()

      양끝단 문제해결은 사색자님의 방법과 동일합니다. 수치미분문제는 Peric의 공개코드를 분석해보시면 답을 얻을수 있을 것입니다.

  • 사색자 ()

      peric 이라면 CFD 책을 지은 그 사람을 말씀하시는거 같은데, 좀더 미분문제에 대한 고견을 하사해주실 수 있으시겠습니까?

  • 푸푸 ()

      그게 forward, backward 냐 central 이나 하는 문제입니다. 경계 근방이 경우 central scheme을 쓸 수 없기 때문에 forward나 backward를 쓰게 됩니다. 즉, 2차 정확도의 2차 미분같은 경우 5점을 구할때는 4점과 6점을 쓰는데요. 아님 경우에 따라서 4,5,6 세가지 점을 사용하는데요. 1점의 경우 backward를 적용하면 1,2,3 점이 되겠지요. 1,2,3 점에 대한 가중치는 사용하는 각 schme에 따라 달라지고요. 이게 수학적으로는 같은 정확도를 가지지만 아무래도 중앙차분법보다는 결과의 정확도가 떨어질거 같네요.

  • 푸푸 ()

      다른 방법도 있는데요. 1점이 경계이면 경계 밖에 ghost point를 만들어 사용하는 경우도 있습니다. 즉 -1, 0 점과 같이 실제 도메인 밖에 임의의 점을 주는 방법이지요. 거기는 경계조건과 함께 도메인 내부이 점을 이용하여 extrapolation을 이용하여 값을 주면 내부의 점과 같은 똑같은 scheme을 쓰겠지요. 여기서 중요한 것은 외삽을 이용하여 값을 부여할때 외삽의 정확도도 같은 정확도를 이용해야 겠지요. 그런데 아마 이게 한방향 차분법(forward나 backward)을 사용한 결과하고 같은 이산화 방정식이 될것입니다.

  • 사색자 ()

      extrapolation을 하더라도 경계에서의 3차 미분값의 accuracy는 많이 낮아집니다. 한번 besselj(0,x)를 놓고 미분을 해보시면, 1차는 잘 나오는데 3차미분에서 경계포인트에서의 미분값은 정확도가 많이 떨어집니다. 더 골치아픈 문제는 경계에서 singularity가 나오는 경우인데요, 예를 들어 반원을 그려놓고 원의 양끝단점에서 1차미분값이 infinity가 되죠? 이럴 경우에는 외삽값도 쓸수없는데, 물론 이런 singular point를 피하기 위해 경계 바로 안쪽에서 계산을 해줍니다만, 그래도 3차 미분값은 굉장히 작은값을 가집니다.(0에 가까운 값이 아니고 - 무한대에 가까운값) 이럴 경우 아주 작은 값의 차이라도 3차미분값에서는 꽤 큰 차이가 나타나거든요.

  • 사색자 ()

      한번 besselj(0,x)의 그래프를 x=0..10의 범위에서 데이타포인트 50개정도로 그린다음 3차 미분값을 구해보시면 양끝단에서 정확도가 꽤 떨어짐을 발견하실겁니다. 하다못해 sinusoidal curve도 마찬가지 현상이 벌어지는데... 한번 시험해보시길... :) 간단한듯 하면서도 골치아프네요. 좋은 아이디어 가지신분 안계신가요?

  • 푸푸 ()

      특이점이나 경계치에서 변화율 값이 매우 큰 경우 그 변화율을 정확히 구할 수 있는 해상도 문제가 아닌가 싶습니다. 내부 도메인 문제에서도 사인파 같은 경우 0에서 360도를 구할때 180도 근방도 비슷한 경우로 마찬가지가 아닌가 싶네요.

  • 푸푸 ()

      참 그리고 "예를 들어 반원을 그려놓고 원의 양끝단점에서 1차미분값이 infinity가 되죠? 이럴 경우에는 외삽값도 쓸수없는데"라고 하셨는데 미분값 자체를 외삽하신다는 말씀이신지요. 보통의 경우 미분전의 값을 이용하여 1차, 2차, 3차 고차의 미분값을 구하는 것으로 알고 있거든요. 원래 질문의 의도가 그렇게 구한다는 말씀이신지. 에구 잘 모르겠네요. 참 그리고 수치적인 문제에서는 특이점을 피해가면서 계산해야 합니다.

  • 사색자 ()

      푸푸님의 여러 조언에 감사드립니다. 어떤 커브의 3차 미분값을 구하는데 양끝단에서의 부정확함을 보정할 수 있는 방법에 대한 설명중 extrapolation이 나오길래 (1) 반원과 같이 끝단점에서 굉장히 큰 변화율을 가지는 경우 (2) 끝단점이 singularity의 문제점을 가지는 경우를 들어 extrapolation 방법이 최선의 방법은 아니란 것을 말씀드렸습니다. 그리고, 외삽법이 만능이 아닌게, curve가 regular하지 않을때, 즉 어느 점에서 급격한 변화율을 보이면 3차 미분값은 고사하고 2차미분값도 부정확해집니다. 그런데, besselj(0,x)이나 sin(x)의 경우에는 어느정도 regular하다고 말할 수 있지만, 그래도 양끝단점에서는 부정확해집니다. 5 point를 잡고 계산을 해도

  • 사색자 ()

      끝단점에서는 central differencing method를 쓰지 못해서 안쪽으로 편향되게 포인트를 잡고 미분을 하기때문에 끝단점에서는 항상 부정확한값이 나오게 마련인데요, polynomial fitting을 해도 결국은 마찬가지 현상이 발생합니다. 저는 singular point가 있어서 좀 골치아프지만, 이 문제는 일단 넘어가고 한번 3차 미분값을 구하는 루틴을 만들어보시면 제 말의 의미가 나오지 싶네요. 그냥 간단히 sin, bessel, parabolic, quarter circle 을 3차까지 미분해보는 매틀랩 루틴을 아래 올려볼터이니 실행해보세요. :)

이전
[질문]자기유도현상
다음
[re] 매틀랩 예제입니다.


과학기술Q&A

게시판 리스트
번호 제목 글쓴이 등록일 조회 추천
344 1차의 글 유종완 11-15 4647 0
343 이 디스플레이 정보 좀 주세요. 댓글 7 로켓연구가 11-15 4687 0
342 검은 온실효과 관련... 댓글 1 유종완 11-15 4062 0
341 답변글 [re] 검은 온실효과 관련... 댓글 1 소요유 11-15 4067 0
340 경우의 수에 관한 질문입니다. 댓글 8 권석준 11-14 4980 0
339 물수제비 현상은 어떻게 일어나는거에요?? 댓글 7 루리루리 11-14 6262 1
338 [질문]원자력공학이나 플라즈마 물리학전공하시는분? 댓글 8 Barney 11-13 8269 0
337 [질문:DNA 추출기] 혈액의 물성치 댓글 30 허크 11-12 7120 0
336 답변글 [re] [질문:DNA 추출기] 혈액의 물성치 사색자 11-13 4182 1
335 이게 뭔 말이죠? 미국이 한국 기술에 딴지를 걸다니... 댓글 5 익명좋아 11-11 4205 1
334 전자기학 질문요.. 댓글 3 이광수 11-10 5572 0
333 답변글 흑흑 댓글 5 이광수 11-10 5123 3
332 답변글 [re] 전자기학 질문요.. 댓글 2 정진호 11-11 6630 0
331 지구 자체의 자기장? 댓글 1 노력파 11-10 4974 2
330 [질문] 대학 준비생이 읽어볼만한 책들좀 추천해주세요. 댓글 19 Who? 11-09 4335 0
329 [질문]자기유도현상 댓글 6 FLAME 11-07 6179 0
열람중 [간단한 질문] Numerical derivative 중에서... 댓글 10 사색자 11-07 5428 0
327 답변글 [re] 매틀랩 예제입니다. 댓글 5 사색자 11-08 8070 1
326 답변글 고차미분항에서 higher order scheme 사용방법의 문제 댓글 7 푸푸 11-10 5909 0
325 전산해석 vs. 실험 댓글 26 강나루 11-07 8997 4


랜덤글로 점프
과학기술인이 한국의 미래를 만듭니다.
© 2002 - 2015 scieng.net
모바일 버전으로 보기