2013-02-06 5 views
2

gnuplot에서 두 변수가있는 함수를 플롯하고 맞출 수 있습니까? 예를 들어, 신체 기능의 T 의존성 만 계산하지만 플롯되지 될 위치를 높이 h 및 온도 T에 의존한다는 것을 (f 들어 hT 실험 데이터가 존재)gnuplot : 두 변수로 두 번째 함수를 플롯하고 맞추기

f(h,T) = a * h * (1 + alpha * T) + f0 

af0는 다음과 같다 피팅에 의해 결정되어야하며, alpha이 알려져있다. 결국 y 축에는 f, x 축에는 h 인 음모가 필요합니다. 전체적으로 T 의존성이 적절하게 처리되어야하지만, splot으로 표시 할 필요는 없습니다.

다음은 내가 시도한 것이며 실패한 것입니다.

set term png; 
set output 'test.png'; 
set dummy h; 
set dummy T; 
f(h,T) = a * h * (1 + alpha * T) + f0; 
fit f(h,T) 'data.txt' using 2:4:1 via a, f0; 
plot f(h,T); 

undefined variable: h 제공 : 하나는 두 개의 더미 변수를 설정할 수 없기 때문에 나는 가정합니다. 어떤 아이디어?

설명서의 예에서
+0

당신이 '설정 dummy' 물건을 제거하는 노력이 바로'적합 할 f (x, y) 'data.txt'를 사용하여 2 : 4 : 1 : (1)을 통해 a, f0'? – mgilson

답변

3

: 당신은 단순히 한 경우에 나는 당신의 스크립트를 기대

Examples: 
     f(x) = a*x**2 + b*x + c 
     g(x,y) = a*x**2 + b*y**2 + c*x*y 
     FIT_LIMIT = 1e-6 
     fit f(x) 'measured.dat' via 'start.par' 
     fit f(x) 'measured.dat' using 3:($7-5) via 'start.par' 
     fit f(x) './data/trash.dat' using 1:2:3 via a, b, c 
     fit g(x,y) 'surface.dat' using 1:2:3:(1) via a, b, c 

작동합니다 :

set term png 
set output 'test.png' 
f(h,T) = a * h * (1 + alpha * T) + f0 
fit f(x,y) 'data.txt' using 2:4:1:(1) via a, f0 

set view 90,0 #possibly `set view 0,90` or `set view map`? 
splot f(x,y) 
+0

": (1)"은 "사용"에서 무엇을 의미합니까? –

+0

각 포인트를 부여해야하는 가중치입니다 (예 : 오류). gnuplot에서'help fit'을보십시오. 이것은 각 포인트의 무게를 동일하게합니다. – mgilson

+0

아, 그래. 그럼에도 불구하고. 모든 것을 x와 y로 바꾸고 더미를 제거하면'line 5 : undefined variable : y' (5 행은'plot') 오류가 발생합니다. 먼저 다중 변수 그래프를 어딘가에 활성화해야합니까? 피팅은 잘 작동하는 것처럼 보이지만 (적절한 값을 얻음) 플로팅은 그렇지 않습니다. –