gnuplot을 사용하여 타원을 데이터에 피팅

Oct 05 2020

멀티 미터를 사용하여 실험실에서 수집 한 데이터를 기반으로 두 전극 사이의 등전위 선 그래프를 만들어야합니다. 측정 된 전압으로 나눈 (x, y) 좌표 모음이 있습니다.

3,07V의 포인트

2.0   0.0
2.3   2.0
3.1   3.9
2.3  -2.0
3.1  -4.0

3,93 v 포인트

0.0   0.0
0.1   1.9
0.2   2.9
0.1  -1.0
0.2  -2.0

4,98V 포인트

-2.0   0.0
-2.3   2.0
-2.4   2.9
-2.3  -2.0
-2.5  -3.0

줄임표를 파라 메트릭 형식으로 작성하고 "fit"명령을 사용하여 타원을 맞추려고했지만 결과는 끔찍합니다.

set grid

set parametric
set trange [0:2*pi]

fx(t)=a*cos(t)+k
fy(t)=b*sin(t)+h
 
fit fx(t) '3,07.txt' via a,k
fit fy(t) '3,07.txt' via b,h

plot fx(t),fy(t) notitle ls 7, '3,07.txt' notitle 

x가 아닌 y에 접근하기 때문에 "fit"알고리즘이 최소 제곱 방법을 사용하는 방법과 관련이 있다고 생각합니다. 내가 맞아?

또한 일반 방정식으로 타원을 맞추려고 시도했습니다.

set grid

f(x, y) = x*x + c1*y*y + d1*x + e1*y + f1
fit f(x, y) '3,07.txt' u 1:2:(0) via ,c1,d1,e1,f1

set contour 
set view map 
unset surface 
set cntrparam levels discrete 0
set isosamples 1000,1000

set table 'contour 1.txt'
splot f(x, y)

set xr [-60:60]
set yr [-60:60]

unset table
unset contour

plot \
    'contour 1.txt'  lw 2 lc rgb 'red', \
    '3,07.txt'  w p ps 1.5 lc rgb 'black'
    

그러나 더 나쁜 결과를 얻었습니다. 누구든지 내가 무엇을 시도해야할지 알 수 있습니까?

답변

JJacquelin Oct 05 2020 at 18:22

왜 나쁜 결과를 얻었는지 이해하기 쉽습니다. 예를 들어 첫 번째 데이터 (케이스 3.07V)를 고려하십시오.

점은 타원에 가깝지 않지만 쌍곡선에 있습니다. 어떤 방법 으로든 타원을 쌍곡선에 맞추고 싶은 경우에는 결과가 좋지 않습니다.

물리적 현상이 곡선이 타원임을 확실하게 암시한다면 물론 타원을 데이터에 맞출 수 있습니다. 그러나 실험 포인트와 타원 사이의 큰 편차에 놀라지 마십시오. 이를 받아들이거나 더 정확하고 더 많은 측정으로 다시 시도해야합니다.

정보를 위해:

위에서 사용 된 fittig 방법은 타원, 쌍곡선 및 포물선에 유효합니다. 모든 포인트 (4 개 이상)에 대해 유효합니다. 이를 통해 가장 적합한 곡선 중 어느 것이 편리한 지 확인할 수 있습니다. 16 페이지 참조https://fr.scribd.com/doc/14819165/Regressions-coniques-quadriques-circulaire-spherique. 위의 표기법은이 문서의 표기법과 일치합니다.