【问题标题】:Error with square root function and powers in Matlab R2014b [closed]Matlab R2014b中平方根函数和幂的错误[关闭]
【发布时间】:2025-04-22 15:20:01
【问题描述】:

我正在使用 sqrt() 函数进行一系列计算。我和我的同事注意到,当使用相同的输入时,我们会得到不同的结果。有没有人遇到过这个问题?

这是一个例子:

input1 = 4;
input2 = 8;

result = sqrt(input1^2 + input2^2)

Result 然后显示与我的同事结果不同的值。我们已就此问题联系 MathWorks,但尚未收到回复。

【问题讨论】:

  • input 未定义。你的意思是input2?你同事的结果是什么?显示minimal, complete, verifiable example!
  • 是的,抱歉,这是一个错字,现在已修复。
  • 您和您的同事得到了什么结果?您确定没有重新定义任何变量/函数吗?特别是sqrt真的是MATLAB的计算平方根的内置函数吗?
  • 我测试了它,我和我的同事得到了完全相同的结果,所以它似乎不依赖于同事。 :)(抱歉,只是个玩笑)。

标签: matlab indices square-root


【解决方案1】:

我和我的团队在一两年前遇到了同样的问题。

MathWorks 解释说 sqrt() 函数在添加幂时存在问题。为了克服这个问题并获得相同的结果,请在 sqrt() 函数之外对每个项进行平方:

input1 = 4^2;
input2 = 8^2;

result = sqrt(input1 + input2)

这为我和我的团队解决了这个问题。MathWorks 没有澄清问题的原因,但告诉我们他们正在更新他们的文档(目前还没有看到任何东西)。

【讨论】:

  • 非常感谢您的帮助。似乎已经解决了问题。
  • @CharlotteTaylor 你能发布一个最小的例子,计算内部和外部的力量sqrt 会得到不同的结果吗?
  • @LuisMendo 我想问同样的事情
  • @LuisMendo @roni 听起来 MWE 在这里实际上是不可能的,因为不同机器的行为应该是不同的。我的猜测是sqrt 函数已在 OP 的机器上被覆盖。但是,如果这是一个“真正的”问题,那听起来很严重,因为它根本不是您期望的 sqrt / power 函数的那种行为。我不得不说,这个公认的答案听起来更像是处理症状而不是根本原因,不管它可能是什么。
最近更新 更多