2012-10-14 5 views
0

나는 원본 (x, y) 데이터를 합성하고 싶은 몇 개의 그래프 이미지를 가지고있다. 나는 원래의 데이터를 가지고 있지 않다. 단지 그래프 일 뿐이다.특정 모양의 데이터를 어떻게 만들 수 있습니까?

이상적으로는 수학 함수를 사용하여 곡선의 모양을 근사 할 수있어서 조금 다른 출력을 생성하는 함수를 다양하게 만들 수 있고 간단한 재현성을 가질 수 있기를 바랍니다.

첫 번째 이미지는 몇 가지 곡선을 보여줍니다. 즉, 최근 몇 년 동안의 평균으로부터의 온도 편차를 표시합니다. 현재까지 20,000 년 전으로 거슬러 올라갑니다. 두 번째 이미지는 10,000 년 전의 변화 (로그 스케일)를 보여주는 단계 함수를 보여줍니다. (반대 방향의 x 축 방향도 있음을 알 수 있습니다.)

이들 각각에 대해 최종 결과 데이터는 텍스트 파일로 10 년 또는 100 년마다 온도 이상 값이 있습니다.

모든 해결책을 환영합니다.

enter image description here enter image description here

+0

"일치시킬 합성 데이터 생성 중"이란 무엇을 의미합니까? 만약 당신이 올바르게 당신을 이해, 음모를 꾸미는 그래프에 대한 데이터 세트를 생성하고자 ... – tamasgal

+0

어떤 종류의 구체적인 데이터가 있으면,이 문제는 가능하지만, 당신이 가진 모든 그래프는 아마도 그렇지 않습니다. –

+0

안녕하세요, @septi 예, 맞습니다. 약간 다른 데이터를 생성 할 수 있도록 약간의 제어권을 갖고 싶습니다. 따라서 그것을 설명하는 수학 함수에 대한 나의 희망. 어쩌면 사인과 코사인의 조합 일 수도 있습니다. –

답변

0

대수를 사용하여 커브를 생성하는 방법에 대한 세부 정보로 대답하기로했습니다.

주기적 유형 커브의 경우 사인이나 코사인을 사용하고 특정 상황에 맞는 진폭과 주파수로 바이올린을 사용합니다. 예를 들어, y = A sin (2x), 여기서 진폭은 A이고, 기간은 x의 내부 함수 (괄호 안의 비트)와 관련됩니다. 의 gnuplot이 시도 : X의 변화는 단지 진폭의 X 값의 전력 용어 또는 지수 용어를 추가

A=2 
f(x) = A*sin(2*x) 
set xrange[-pi:pi] 
plot f(x), sin(x), cos(x) 

진폭을 변경하려면 : 등등

f(x) = A*exp(0.5*x)*sin(2*x) 
set xrange[-2*pi:2*pi] 
plot f(x), sin(x) 
# add an initial value (offset) 
f(x) = 5+A*exp(0.5*x)*sin(2*x) 
plot f(x), sin(x) 

그리고있다.

1

나는 완전히 당신의 질문을 이해하지 확신합니다. 그러나 당신이 할 수있는 일은 데이터를 디지털화하고 (윈도우 용 windig는 리눅스 용), 포인트 사이에서 데이터 보간을하는 것입니다.

거의 항상 작동하는 사소한 보간법은 연속되는 두 점 사이의 직선에 불과합니다. 더 정교한 접근법은 2 차 미분을 연속으로 유지하는 3 차 스플라인 (예 : B- 스플라인 http://en.wikipedia.org/wiki/B-spline)입니다.

+0

감사합니다. @ rpsml, engauge는 유망 해 보입니다. 나는 그것을 밖으로 시도 할 것이다. –

+0

현재 소프트웨어를 디지털화하는 위키피디아에 대한 페이지가 있습니다. http://en.wikipedia.org/wiki/Converting_scanned_graphs_to_data에서 g3data/g3data2를 사용해 보았습니다. –

관련 문제