첨부파일로 올리는 이미지 참고하시구요.
우선 해결 방법은 이렇습니다.
이전에 올린 엑셀파일은 미분한번만 한거구요
미분을 한번 더해서 처리할수 있더군요
하지만 제가 올려드린 데이터를 X축 값을 1씩 증가하면서 계산해서는
안되구요
대략 10정도의 차이를 두고 계산했습니다.
물론 2차 미분할때도 마찬가지구요
Y(n+10) - Y(n) 으로 얻어진 값을 일단 취한 다음
이걸 다시 같은 방법으로 2차 미분한 결과를 첨부해서 올리는 이미지에서 확인하실수 있습니다.
도움주신분들 정말정말 감사하구요..
특히 장성호님.. 감사합니다.
혹시 서울 홍대쪽에 오실일 있으시면 저한테 연락해주세요..
찐하게 밥한끼 + 알파.. 제가 쏘겠습니다.
감사합니다.
장성호 님이 쓰신 글 :
: 그쪽 분야의 전문가도 아니고 , 일도 제대로 해본적이 없으니..
: 그냥 의견으로만 들으십시요
:
:
:
:
보간법이란
:
:
: 여러개의 data가 있는데..
:
: 특정 지점( 대게 data들의 중간에 )의 data가 없을경우
:
: 그 지점의 값을 유추해 내는 알고리즘이라 할수 있습니다.
:
: 님께서 제시한 값은
: x값이 없다고 했는데... 그렇다면 x값이 1씩 균등하게 증가한다고 보면...
:
: 보간법이 적용되는 것은 0.3 , 0,7 등 data가 없는 지점의 값을 찾고자 하는것이죠
:
:
: 라그랑제 , 스플라인, 뉴튼 보간법등은 ..
:
: 주어진 점(데이타)를 모두 지나가는 n차의 방정식을 구해서
: 특정지점( data가 없는지점)의 값을 구해주는 방법입니다.
:
:
원하는 형태의 곡선을 그리려면..
:
: ; 솔찍히 정확히 님께서 원하는 곡선의 형태가 정확히 이해를 못했습니다.
:
: ; 그냥 자연스러운 곡선을 원한다고 생각하겟습니다.
: ; 그러기 위해선 정확히 데이타에 근거하여 곡선을 그리면 안되구..
:
: 데이타를 분석해서.. 적당히 빼거나 , 중간값을 추가해(선형보간) 서..
: 그려야 할것입니다.
:
: 1) 먼저 기존의 방식대로 차이값을 구한다음에...
:
: 2) 적당히 데이타를 조작합니다.
: * 특정 값이 여러개가 나오면 시작할때 1개 , 끝날때 1개를 남기고 중간엔 빼버립니다.
: * 그리고 값이 급격히 변하면 적당히 중간값을 몇개 넣어줍니다.
:
: 3) 그리고 보간법을 적용해서 그려봅니다.
: 인터넷에서 보간법을 검색해보세요
: 생각건데 님께서 원하시는것은
베지어 곡선에 가깝지 않나 하는 생각이 듭니다.
:
: 참조
:
: 베지어 스플라인
http://blog.naver.com/daroobil?Redirect=Log&logNo=58151178
:
http://www.gamedev.net/reference/articles/article888.asp
:
:
http://blog.naver.com/ivory82?Redirect=Log&logNo=40021101433
:
: 라그랑제
http://blog.naver.com/duru1024?Redirect=Log&logNo=70038308328
:
: 3차 스플라인
http://blog.naver.com/duru1024?Redirect=Log&logNo=70038335230
: 상차분
http://blog.naver.com/duru1024?Redirect=Log&logNo=70038335209
:
: 뉴튼
http://blog.naver.com/y12133?Redirect=Log&logNo=120029451723
:
:
:
:
:
:
:
: 김정모 님이 쓰신 글 :
: : ㅠㅠ 위에 글에도 올렸듯이 X(n+1) - X(n)은 항상 1입니다.
: : 그렇다보니 Y(n+1) - Y(n)값만 입력이 된겁니다. 당연히 소숫점은 있을래야 있을수 없는 상황입니다.
: :
: :
: : 크레브 님이 쓰신 글 :
: : : 제 생각엔 엑셀에서 기울기 그래프는 제대로 나온것 같은데
: : : 엑셀에 입력하신 값이 정수형이라 그런것 같습니다.
: : : 소숫점 아래자리까 정확한 값을 입력하시면
: : : 기울기 그래프가 좀 부드러운 곡선이 될듯하네요
: : :
: : :
: : : 김정모 님이 쓰신 글 :
: : : : 감사합니다. 성호님 알려주신덕에 이제 개념은 잡았습니다.
: : : : 그런데 아직도 문제가 해결되지는 않더군요
: : : : 죄송하지만 다시 한번 여쭤보겠습니다.
: : : : 제가 말씀 드렸듯이 X축값은 없습니다.
: : : : 무조건 처음 들어오는 데이터부터 1,2,3,4,5....
: : : : 이런식으로 늘어납니다.
: : : : 그러니까 아래 기울기 구하는 공식에서 X(n+1) - X(n)은 항상 1이 되겠죠
: : : : 그럼 Y(n+1) - y(n)을 구하는것만 가능한데
: : : : 어쨌거나 기울기값은 Y값으로 구해집니다.
: : : : 그런데 생각대로 그려지지는 않더군요
: : : : 제가 올려드린 그래프의 실제 데이터를
: : : : 엑셀로 입력해서 챠트를 그려봤습니다.
: : : : 첨부파일로 올려드리는 파일을 열어보시면 첫번째가 그래프 A열 데이터로
: : : : 그린겁니다. 순수한 들어오는 값 그대로 그린겁니다.
: : : : B열 데이터는 성호님 말씀 공식대로 기울기 값을 엑셀에서 계산해서
: : : : 넣은 겁니다. 이걸로 그린 챠트는 두번째 입니다.
: : : : 보시면 아시겠지만 챠트가 이상합니다.
: : : : 마지막으로 세번째 챠트는 구해진 기울기 값을 다시한번 또 기울기를 구해서
: : : : 그려봤습니다.
: : : : 역시나 이상합니다.
: : : : 어째서 그런걸까요?
: : : : 다시한번 부탁 드립니다.
: : : : 자꾸 귀찮게 해드려서 죄송합니다.
: : : :
: : : :
: : : :
: : : :
: : : : 장성호 님이 쓰신 글 :
: : : : : 일정한 시간 간격에 , 데이터가 충분하다면 그렇게 하는게 훨씬 좋을것 같네요
: : : : :
: : : : : 다음과 같이 연속적으로 데이타가 들어온다고 가장하고
: : : : :
: : : : : ...... {X(n-1) , Y(n-1)} , {X(n) , Y(n) } , { X(n+1) , Y(n+1) } ....
: : : : :
: : : : :
: : : : : X(n) 과 X(n+1) 사이의 기울기는?
: : : : :
: : : : : Y(n+1) - Y(n)
: : : : : 기울기 A(n) = ----------------
: : : : : X(n+1) - X(n)
: : : : :
: : : : :
: : : : : 미분 좌표값은 = { X(n) + ( X(n+1) - X(n) ) / 2 , A(n) }
: : : : :
: : : : :
: : : : : 뭐 저런식으로 값을 구해서 선을 그리면... 계산 간단하고 ... 좋을것 같네요
: : : : :
: : : : : .......
: : : : :
: : : : : 김동욱 님이 쓰신 글 :
: : : : : : 데이터 양이 충분하다면 굳이 보간법을 쓸 필요가 없을듯 한데요 ^^;
: : : : : :
: : : : : : 시간에 따라 지속적으로 처리해줘야 한다면 보간법은 사족일듯 싶습니다.
: : : : : :
: : : : : : 시간 간격이 일정하다면 간단하게 빼기를 하면 미분이 되니까요 ㅋㅋ
: : : : : :
: : : : : : f(n + 1) - f(n) <= 이거면 충분할것 같은데요.
: : : : : :
: : : : : : 정확한 값을 원한다면 시간도 고려해야겠지만 그래프만 그린다면 간단하게 하는것이 좋겠군요
: : : : : :
: : : : : : 장성호 님이 쓰신 글 :
: : : : : : : 이건 순전히 제 생각입니다.
: : : : : : : 관련 일이나 전공지식도 없으니 참조만 하세요
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : : : 음 들어오는 데이타는 이산이잖아요
: : : : : : : 그걸 직선으로 연결해도 연결되는 지점에서 각도가 팍 꺽기나까 .. 미분가능한 곡선이 안되겠죠?
: : : : : : :
: : : : : : : 즉 먼저 들어오는 데이타를 받아서 그걸 미분가능한 방정식으로 만들어야 할것 같습니다.
: : : : : : : 이때
보간법이라는걸 사용합니다.
: : : : : : :
: : : : : : :
보간법에는 여러가지가 있는데...
: : : : : : :
: : : : : : : 점과 점을 직선으로 연결하는것은 선형보간 ==> 근데 이건 모든x 값에 대해
미분은 불가능하구..
: : : : : : :
: : : : : : : 그밖에 라그랑제 , 뉴튼 , 스플라인 등의 보간 법이 있습니다.
: : : : : : : 위 보간법도 여러가지로 또 나눠지구요
: : : : : : : 전부다 미분가능한 것은 아닙니다
: : : : : : :
: : : : : : :
: : : : : : : 만약 보간법으로 방정식을 구했다면...
: : : : : : :
: : : : : : : F(x) = aX^n + bX^(n-1) ..... + val ;
: : : : : : :
: : : : : : : 기울기는 한번만 미분하면 되니까..
: : : : : : :
: : : : : : : f'(x) = a*n*X^(n-1) ....
: : : : : : :
: : : : : : :
: : : : : : :
: : : : : : : 여튼 제말은
보간법이라는걸 적용해보시면 어떨까 하는 생각입니다.
: : : : : : :
: : : : : : : 그럼
: : : : : : :
: : : : : : :
: : : : : : : 김정모 님이 쓰신 글 :
: : : : : : : : 첨부된 그림중 위에 그래프처럼 데이터가 날아옵니다.
: : : : : : : : 이걸 아래 그림처럼 미분해서 가속도 형태의 그래프로 표현하고자 합니다.
: : : : : : : : 수학적 지식이 부족하다보니 도움이 필요합니다.
: : : : : : : : 위의 그래프 데이터 형은 단순히 1차원 배열형태로 들어옵니다.
: : : : : : : : 그래프를 그리는 방법은 각종 챠트 컴포넌트를 이용하던지 아님 직접 그릴 예정인데
: : : : : : : : x축 값은 일정한 간격이지만 y축 값을 계산하는 방법이 궁금합니다.
: : : : : : : : 부드러운 그래프 표현을 위해서는 Laplacian of Gaussian Filter를 이용하라고 하던데
: : : : : : : : 구현 방법이 궁금합니다. 어떤 내용이든 관계 없습니다. 도움주시면 정말 감사하겠습니다