为什么使用acos会得到一个复数?

辐射危险

例如,如果我使用以下代码来计算两个向量x之间的角度p

x = [1 1 -1];
p = [-1 -1 1];

angle = acos(dot(x,p) / (norm(x) * norm(p)));

它显示angle = 3.141592653589793 - 0.000000021073424i,这是一个复数。

但是,我们都知道的点积xp为-3,规范的产品x,并p为3,那么angle = acos(-3/3),这样的角度应该完全PI,3.14159。MatLab为什么给出一个复数,我如何使结果成为实数?

丹尼尔

您的问题始于规范化:

norm(x) * norm(p)

在这里,您得到的值与3您期望的值略有不同

> (norm(x) * norm(p))-3
ans =   -4.4409e-16

错误会传播,您最终会遇到acos(x),其中x略大于1。

sqrt是可能导致错误结果的操作。用纸和笔求解时,应保持平方根并先进行乘法。用这种方式重写它可以得到更好的数值概率:

angle = acos(dot(x,p) / sqrt(sum(x.^2)*sum(p.^2)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么在使用 ResultSet 时会得到一个额外的结果为 null?

来自分类Dev

为什么我在添加字符时会得到一个数字?

来自分类Dev

Android-为什么我会得到一个nullpointer异常(SQLite)

来自分类Dev

为什么我会得到一个被截断的 .txt 文件

来自分类Dev

为什么从字符串创建 JSONObject 时会得到一个空对象?

来自分类Dev

为什么我会得到一个 IndexOutOfBoundsException 迭代列表?

来自分类Dev

为什么在同一个类上使用不同的(shared_ptr和普通)指针构造函数会得到不同的结果?

来自分类Dev

我有一个用 python 训练的 XGBoost 模型,但是当它加载到 Scala 并使用相同的功能时会得到不同的预测,为什么?

来自分类Dev

将.csv导入数据库时,为什么会得到“最后一个预期列之后的额外数据”?

来自分类Dev

从WCHAR转换为char时,为什么还会得到一个额外的null终止符?

来自分类Dev

将.csv导入数据库时,为什么会得到“最后一个预期列之后的额外数据”?

来自分类Dev

为什么同一设计会得到两个不同的结果?

来自分类Dev

为什么用非空对象调用Meteor.method时服务器会得到一个空对象?

来自分类Dev

为什么我在 VSCode 中运行 Java 代码时会得到一个多余的 %(百分号)?

来自分类Dev

纸牌游戏程序在进程中。不知道为什么我会得到一个随机数 -858993460

来自分类Dev

如果我在 openshift origin 上多次调用同一个 rest Api,为什么我会得到 readystate undefined 和 status 0?

来自分类Dev

Mac,git:当从 Bitbucket 而不是目录进行 git 克隆时,为什么我会得到一个应用程序/包?

来自分类Dev

使用Linq遍历所有控件只会得到第一个控件

来自分类Dev

使用 PIL.resize 调整 JPG 大小会得到一个完全黑色的图像

来自分类Dev

为什么在使用SHFileInfo时会得到错误的SpecialFolder图标?

来自分类Dev

为什么在Swift中使用pow会得到错误的答案?

来自分类Dev

为什么以这种方式使用issubclass时会得到False?

来自分类Dev

为什么我使用Carbon会得到无效的数字?

来自分类Dev

为什么使用withMutations会得到不同的结果?

来自分类Dev

为什么使用toString方法后仍然会得到[]?

来自分类Dev

为什么在Swift中使用pow会得到错误的答案?

来自分类Dev

为什么使用此VBA会得到重复的图表粘贴?

来自分类Dev

为什么使用Carbon会得到无效的数字?

来自分类Dev

为什么我得到一个StringFormat错误?

Related 相关文章

  1. 1

    为什么在使用 ResultSet 时会得到一个额外的结果为 null?

  2. 2

    为什么我在添加字符时会得到一个数字?

  3. 3

    Android-为什么我会得到一个nullpointer异常(SQLite)

  4. 4

    为什么我会得到一个被截断的 .txt 文件

  5. 5

    为什么从字符串创建 JSONObject 时会得到一个空对象?

  6. 6

    为什么我会得到一个 IndexOutOfBoundsException 迭代列表?

  7. 7

    为什么在同一个类上使用不同的(shared_ptr和普通)指针构造函数会得到不同的结果?

  8. 8

    我有一个用 python 训练的 XGBoost 模型,但是当它加载到 Scala 并使用相同的功能时会得到不同的预测,为什么?

  9. 9

    将.csv导入数据库时,为什么会得到“最后一个预期列之后的额外数据”?

  10. 10

    从WCHAR转换为char时,为什么还会得到一个额外的null终止符?

  11. 11

    将.csv导入数据库时,为什么会得到“最后一个预期列之后的额外数据”?

  12. 12

    为什么同一设计会得到两个不同的结果?

  13. 13

    为什么用非空对象调用Meteor.method时服务器会得到一个空对象?

  14. 14

    为什么我在 VSCode 中运行 Java 代码时会得到一个多余的 %(百分号)?

  15. 15

    纸牌游戏程序在进程中。不知道为什么我会得到一个随机数 -858993460

  16. 16

    如果我在 openshift origin 上多次调用同一个 rest Api,为什么我会得到 readystate undefined 和 status 0?

  17. 17

    Mac,git:当从 Bitbucket 而不是目录进行 git 克隆时,为什么我会得到一个应用程序/包?

  18. 18

    使用Linq遍历所有控件只会得到第一个控件

  19. 19

    使用 PIL.resize 调整 JPG 大小会得到一个完全黑色的图像

  20. 20

    为什么在使用SHFileInfo时会得到错误的SpecialFolder图标?

  21. 21

    为什么在Swift中使用pow会得到错误的答案?

  22. 22

    为什么以这种方式使用issubclass时会得到False?

  23. 23

    为什么我使用Carbon会得到无效的数字?

  24. 24

    为什么使用withMutations会得到不同的结果?

  25. 25

    为什么使用toString方法后仍然会得到[]?

  26. 26

    为什么在Swift中使用pow会得到错误的答案?

  27. 27

    为什么使用此VBA会得到重复的图表粘贴?

  28. 28

    为什么使用Carbon会得到无效的数字?

  29. 29

    为什么我得到一个StringFormat错误?

热门标签

归档