【问题标题】:Perl: Converting Formula To Perl Code What Should It Look Like?Perl:将公式转换为 Perl 代码 它应该是什么样子?
【发布时间】:2021-04-20 18:59:00
【问题描述】:

我有以下公式:

我尝试将其转换为 perl 代码,它看起来像这样:

$stuck = (360 / $pi2);
$stuck2 = sin($stuck * $Eccent * $M);

其中 $Eccent = 0.016713 和 $M = 202.065469250756 和 $pi2 = 3.1415927

我得到 -0.542630163200668

答案应该是:-0.719461

任何帮助将不胜感激,因为我不知道它应该是什么样子!

【问题讨论】:

  • 应该是(360/pi) * e * sin M?因为这不是你的 Perl 代码所说的,所以它说 sin( (360/pi) * e * M)
  • 为什么持有 pi 的 var 命名为$pi2?我希望它包含 2π
  • 因为 $pi 用于更多位数。这本书只要求 pi 的前 8 位数字。因此,$pi2 是 $pi 的较短版本。只是在书中编写示例,而不是此处的生产代码。

标签: perl math


【解决方案1】:

公式取 M 的正弦,仅此而已。

use Math::Trig qw( pi );

my $Ec = 360 / pi * $e * sin($M);

有一个问题:您的 M 值以度为单位,而 sin 需要弧度。

use Math::Trig qw( pi deg2rad );

my $Ec = 360 / pi * $e * sin(deg2rad($M));

这相当于

use Math::Trig qw( deg2rad rad2deg );

my $Ec = rad2deg(2 * $e * sin(deg2rad($M)));

【讨论】:

    猜你喜欢
    • 2017-05-06
    • 2011-03-14
    • 1970-01-01
    • 2010-11-08
    • 2013-01-05
    • 1970-01-01
    • 2020-01-18
    • 2010-09-28
    • 2011-05-19
    相关资源
    最近更新 更多