【问题标题】:MatLab returning different trigonometric answers than calculator?MatLab 返回与计算器不同的三角函数答案?
【发布时间】:2013-11-27 04:56:34
【问题描述】:

我很难理解 Matlab 和我的计算器从正弦函数返回的答案。

首先,我认为pi/290 deg 是类似的,但是当我将它们传递给余弦函数时,我得到了这两个输出:

  • 计算器:cos(90) = 0
  • 计算器:cos(pi/2) = 0.9996242169
  • Matlab:cos(90) = -0.4481
  • Matlab:cos(pi/2) = 6.1232e-17

我一直在参考单位圆,但事情似乎并没有堆积起来。我对数学相当陌生,所以也许我做错了什么。我一直在练习正弦函数,这更接近我的计算器结果:

  • Matlab:sin(90) = 0.8940
  • Matlab:sin(pi/2) = 1

【问题讨论】:

  • 您的计算器以度为单位测量角度,而 matlab 以弧度为单位测量角度。所以,计算器上的90 度与matlab 中的pi/2 角度相同。考虑到浮点计算的限制,06.1232e-17 实际上是同一个数字。
  • 具体来说,PI 是不合理的,这就是为什么 cos(pi/2) 在 Matlab 中不完全是 0
  • 谢谢,我没有意识到 matlab、计算器等工具最初是为 pi 或 degree 设置的。正如你们都可能猜到的那样,我认为您可以将其中任何一个作为参数传递并得到完全相同的答案。 6.1232e-17 使用笔和纸后确实来到0.000000000000000061232,所以现在很有意义。

标签: matlab


【解决方案1】:

如果您想以度为单位提供角度,则使用 cosdsind,如果角度以弧度为单位,则使用 cos

cos(0) 和 cosd(0) 在我的计算机上生成 1。然而 cos(pi/2) 产生 6.1232e-17 而 cosd(0) 产生 0。

您可以查看 matlab 规范中哪个数字接近 0。

【讨论】:

    【解决方案2】:

    只有当你的计算器或你用来计算的任何东西处于正确的模式时,它们才是类似的。例如,如果你的计算器是度数,那么是的 cos(90) 将等于 0。所以你的计算器似乎是度数而不是弧度。我很长时间没有使用 matlab,所以我不知道该设置是如何设置的,但这是您遇到的问题。您必须知道在对任何计算器进行任何三角计算时,无论是实际计算器还是 matlab 之类的程序,它是否希望您输入以度数或弧度为单位的参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-26
      • 2017-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      相关资源
      最近更新 更多