2011-07-06 3 views
10

gnuplot에서 생성 된 그림에 자동으로 적합 매개 변수를 인쇄하는 방법이 있습니까? 예를 들어, 나는 데이터 테이블 사용gnuplot- 자동으로 적합 매개 변수 인쇄하기

1 1 
2 2 
3 3 

맞는 경우

a=1 
b=1 
f(x) = a*x + b 
fit f(x) 'data' using 1:2 via a, b 

을 나는 결과 a=1b=0에게 있습니다. 어떻게 당신이하려고하는 것은 아주 잘 수

답변

10

... 난 당신이 나에게 약간의 팁을 줄 수있는 희망 때문에 작동하지 않습니다

set label 'a=$a, b=$b' at (1,1) 
show label 

것처럼 $ 트릭 뭔가를 사용하여 인쇄 할. 발생하는 문제는 특이한 행렬 반전으로 인해 피팅 알고리즘이 충돌한다는 것입니다. 몇 가지 방법으로 문제를 해결할 수 있습니다. 가장 쉬운 방법은 피팅 커브를 찾기 위해 반복되는 양을 제한하는 것입니다. 따라서이 스크립트는

a=1 
b=1 
FIT_MAXITER = 1 
f(x) = a*x + b 
ti = sprintf("%.2fx+%.2f", a, b) 
fit f(x) 'data' using 1:2 via a, b 
plot [0:3] f(x) t ti, "data" w l 

과 같이 정확히 목표로하고 있습니다.

데이터가 시끄 럽거나 설정 기능이 데이터와 정확히 일치하지 않을 때 단수의 행렬 반전 문제가 발생하지 않아야합니다. 예를 들면 다음과 같습니다.

f(x) = a*x**2 + b 

함수는 반복 횟수를 제한하지 않고 잘 작동합니다.

피팅 프로세스를 제어하는 ​​다른 방법은 gnuplot 문서 (gnuplot.pdf 또는 help set fit)에 설명되어 있습니다.

0

문제점을 해결할 수있는 매우 흥미로운 것을 발견했습니다 here. 해결책은 문자열에 인쇄하려면 sprintf 함수와 C의 일반적인 구문을 사용하는 것 같습니다. I. E., 링크와 동일 :

f(x) = m*x + c 
fit f(x) "file" using 3:1 via m,c 
set label 1 sprintf("m = %3.4f",m) at 510,75 font ",18" 
set label 2 sprintf("c = %3.4f",c) at 510,70 font ",18"