【问题标题】:NSolve function in MathematicaMathematica 中的 NSolve 函数
【发布时间】:2014-12-13 13:52:17
【问题描述】:

我想使用 NSolve 函数来求解方程组。所以我写了一行:

NSolve[{0.1 == Exp[-((0.01 - y)^2/(2 x^2))]/(Sqrt[2 [Pi]] x), 0.3 == Exp[-((0.04 - y)^2/(2 x^2))]/(Sqrt[2 [Pi]] x)}, {x, y}]

在评估之后,Mathematica 给了我相同的形式,没有任何关于 x 和 y 的结果。你有什么想法吗?我认为我的语法有些问题。

【问题讨论】:

  • 尝试 FindRoot 而不是 NSolve。 FindRoot 非常具有侵略性,当 Solve 和 NSolve 不能时,通常可以得到答案。查看文档以了解如何使用它。

标签: wolfram-mathematica numerical-methods


【解决方案1】:

@Bill 是正确的,FindRoot 通常在 NSolve 不成功时成功,这就是其中一种情况。但是,首先您必须将[Pi] 替换为Pi。通过此更改,解决方案是{x->0.0717056,y->0.213291}。为确保没有更多的根,请考虑将 y 绘制为两个方程的 x 的函数,并查看曲线相交的位置。

在这一切中,我认为你只是在寻找真正的根源。如果您也对复数根感兴趣,请使用 FindRoot 进行复数初始猜测。

【讨论】:

  • 我不相信他输入了[Pi],而是输入和编辑过程吃掉了希腊pi左括号前的反斜杠。这种在输入时丢失反斜杠的情况,在编辑时更常见,在论坛软件中似乎太常见了。
  • 阻止 unix shell、正则表达式和类似的转义结构可能是一种清理。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 2011-08-02
  • 1970-01-01
相关资源
最近更新 更多