对于作业,我需要绘制一个物体的惯性椭圆体。 为此,我绘制了惯性对角度旋转的倒数值。完成后,我需要用椭圆拟合图。
但是我无法在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
提前感谢您的帮助,对不起我的语法错误,英语是我的第二语言/第三语言,尽管我能够很好地理解,但我仍然有时难以用一种可以理解的方式表达自己
答案 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%)