Gnuplot:将椭圆拟合到极坐标中的数据集

时间:2018-02-18 22:04:40

标签: gnuplot ellipse polar-coordinates

对于作业,我需要绘制一个物体的惯性椭圆体。 为此,我绘制了惯性对角度旋转的倒数值。完成后,我需要用椭圆拟合图。

但是我无法在deg模式下绘制我的数据集,只能在rad模式下绘制,我不知道为什么我的代码不起作用。我还需要帮助绘制椭圆。

这是我的代码:

set terminal png
set output 'tisch.png'

set angles radians
set polar
show polar
set parametric
set grid polar
set size square
set trange [0:360]
set rrange [0:0.5]

plot 'A3-daten.txt'  

这是我的数据集:

0       0.494012339
30      0.510681467
60      0.461169413
90      0.42190106
120     0.408044505
150     0.442066272
180     0.496961666

提前感谢您的帮助,对不起我的语法错误,英语是我的第二语言/第三语言,尽管我能够很好地理解,但我仍然有时难以用一种可以理解的方式表达自己

1 个答案:

答案 0 :(得分:3)

在极地模式下,gnuplot可以拟合并绘制r(t)形式的函数,其中t是距离原点的角度和r。这意味着我们必须使用这种形式表示一个椭圆。

接下来我们咨询Wikipedia。这里我们要小心:维基百科用于椭圆参数表示的t gnuplot使用的角度t,他们称之为“古怪的异常” 。改为使用tw,参数表示为:

x = a*cos(tw)
y = b*sin(tw)

我们可以采用这些方程并将它们转换为gnuplot所需的极坐标表示(从笛卡尔坐标到极坐标的已知变换):

r = sqrt( x**2 + y**2 )
  = sqrt( (a*cos(tw))**2 + (b*sin(tw))**2 )

tan(t) = y/x
       = (b*sin(tw)) / (a*cos(tw))

我们需要tw,所以我们解决了第二个等式:

sin(tw) / cos(tw) = (a*sin(t)) / (b*cos(t))
          tan(tw) = (a*sin(t)) / (b*cos(t))
               tw = atan2( a*sin(t), b*cos(t))

可以使用t-phi代替t来旋转椭圆。

现在我们完成了转换数学方程式,我们可以从gnuplot开始。该剧本直截了当:

datafile = "A3-daten.txt"                                  

set terminal pngcairo                                      
set output "ellipse.png"                                   
set size square                                            

tw(t) = atan2(a*cos(t-phi),b*sin(t-phi))                
r(t) = sqrt( (a*cos(tw(t)))**2 + (b*sin(tw(t)))**2 ) 

set polar
set angles degrees                                         

fit r(t) datafile via a,b,phi                              
plot datafile title datafile ls 7, r(t) title "Fit"

我到达:

Final set of parameters            Asymptotic Standard Error
=======================            ==========================
a               = 0.408469         +/- 0.001589     (0.3889%)
b               = 0.51369          +/- 0.001782     (0.3469%)
phi             = 21.0673          +/- 0.7251       (3.442%)

fitted ellipse