NSolveValues

NSolveValues[expr,vars]

尝试找到由系统 expr 的解确定的 vars 值的数值近似.

NSolveValues[expr,vars,Reals]

在实数范围内求解.

更多信息和选项

  • 系统 expr 可以是以下内容的任何逻辑组合:
  • lhs==rhs等式
    lhs!=rhs不等式
    lhs>rhslhs>=rhs 不等式
    exprdom定义域规范
    {x,y,}reg区域规范
    ForAll[x,cond,expr]通用量词
    Exists[x,cond,expr]存在量词
  • NSolveValues[{expr1,expr2,},vars] 等价于 NSolveValues[expr1&&expr2&&,vars].
  • 可以指定一个变量或变量列表.
  • 如果指定了单个变量,则结果是使 exprTrue 的变量值列表.
  • 如果指定了变量列表,则结果是使 exprTrue的变量值列表的列表.
  • 当指定单个变量且方程特根的多重性大于 1 时,NSolveValues 会提供相应解的多个副本.
  • NSolveValues[expr,vars] 默认假设不等式中以代数形式出现的量是实数,而所有其他量都是复数.
  • NSolveValues[expr,vars,Reals] 中,所有变量、参数、常数和函数值均被限定为实数.
  • NSolveValues[expr&&varsReals,vars,Complexes] 求解变量的实数值,但函数值可以是复数.
  • NSolveValues[,xreg,Reals]x 约束在区域 reg 中. 可以使用 Indexed[x,i] 引用 x 的不同坐标.
  • NSolveValues 主要处理线性和多项式方程.
  • 可以给出以下选项:
  • MaxRoots Automatic返回的最大根数
    Method Automatic应该使用什么方法
    RandomSeeding1234伪随机发生器的种子
    VerifySolutions Automatic是否验证解
    WorkingPrecision Automatic计算中使用的精度
  • 可能得 Method 设置包括 "EndomorphismMatrix""Homotopy""Monodromy",和 "Symbolic". »

范例

打开所有单元关闭所有单元

基本范例  (6)

多项式方程的近似解:

多项式方程的近似实数解:

找出高次多项式方程的三个近似解:

多项式方程组的近似解:

多项式方程组的近似实数解:

在几何区域中解方程:

范围  (48)

一元复数方程  (10)

单变量多项式方程:

不精确系数的多项式方程:

具有多个根的多项式方程:

求一个高次多项式的五个根:

代数方程:

超越方程:

求所有解:

指定返回的解的数量:

有界区域上的单变量初等函数方程:

有界区域上的单变量全纯函数方程:

在复平面中的垂直条带上具有纯虚周期的方程:

求所有解:

无限制超越函数方程:

多变量复方程组  (9)

线性方程组:

系数不精确的线性方程:

线性方程的欠定系统:

无解的线性方程:

多项式方程组:

从多项式系统的一万亿个根中找出五个:

多项式方程的欠定系统:

代数方程:

超越方程:

指定返回的解的数量:

一元实数方程  (11)

多项式方程:

具有多个根的多项式方程:

代数方程:

分段方程:

超越方程,可使用反函数求解:

超越方程,可使用特殊函数零点求解:

超越不等式,可使用特殊函数零点求解:

指数-对数方程:

高次稀疏多项式方程:

涉及高次根的代数方程:

涉及无理实指数的方程:

驯服初等函数方程:

有界区间上的初等函数方程:

有界区间上的全纯函数方程:

多变量的实数方程组和不等式组  (9)

线性系统:

多项式系统:

量化多项式系统:

代数系统:

分段系统:

超越系统,可使用反函数求解:

在第一个变量中为指数-对数,在其他变量中为多项式的系统:

量化系统:

在第一个变量中为初等和有界,在其他变量中为多项式的系统:

量化系统:

在第一个变量中为全纯和有界,在其他变量中为多项式的系统:

量化系统:

具有混合变量域的系统  (1)

混合的实变量和复变量:

几何区域  (8)

在二维特殊区域上求解:

绘图;

在三维特殊区域上求解:

绘制区域和解:

隐式定义的区域:

参数式定义的区域:

派生区域;

绘图:

取决于参数的区域:

绘图:

求参数 的值,使得圆包含给定点:

绘图:

使用 指定 是在 上的向量:

在这种情况下, 是在 上的向量:

推广和延伸  (1)

工作精度可以作为最后一个参数给出:

选项  (10)

MaxRoots  (4)

从多项式的 个根中找出其中 个:

从多项式的 个根中找出其中 个:

从一个超越系统的无穷多个解中找出 个:

在默认的 Automatic 设置下,NSolveValues 可能无法给出所有解法:

设置 MaxRootsInfinityNSolveValues 试图求出所有解:

Method  (4)

使用自动选择的方法求解平方多项式方程式:

使用 "EndomorphismMatrix" 方法:

使用 "Homotopy" 方法:

使用 "Monodromy" 方法:

使用 "Symbolic" 方法:

这个系统有 个根,严格小于 Bernstein-Khovanskii-Kushnirenko 定理提供的 个根的界限:

"Homotopy" 方法(默认使用)会返回某些根的多个重复副本:

删除多份重复副本:

"Monodromy" 方法的运行速度更快,而且不会产生多个根的重复副本:

"Monodromy" 方法返回超越系统的有限多个解:

使用 "Symbolic" 方法获得所有解:

Method 选项也可用于本地设置 "NSolveOptions" 组中的系统选项:

默认情况下 NSolveValues 为欠定复杂系统引入了切分超平面(slicing hyperplanes):

设置 Method->{"UseSlicingHyperplanes"->False}NSolveValues 给出了参数解:

VerifySolutions  (1)

NSolveValues 验证使用非等效转换获得的解:

通过设置 VerifySolutions->FalseNSolve 不验证解:

使用 VerifySolutions->False 返回的某些解是不正确的:

这将使用快速数值测试来尝试选择正确的解:

在这种情况下,简单的数值验证可提供正确的解集:

WorkingPrecision  (1)

默认情况下,NSolveValues 使用机器精度计算来求精确方程的解:

这里使用 50 位精度计算解:

应用  (17)

几何  (11)

求圆和抛物线的交点:

InfiniteLine[{0,0},{1,1}]InfiniteLine[{{0,1},{1,0}}] 的交点:

绘图:

InfiniteLine[{0,0},{1,1}]Circle[{0,0},1] 的交点:

绘图:

求五条随机直线的每一对直线的交点:

使用 BooleanCountingFunction 表示恰好有两个条件成立:

绘图:

求圆 Circle[{1/3 Cos[k 2π/5],1/3 Sin[k 2π/5]}]k=0,,4 时每一对圆的交点:

绘图:

InfiniteLine[{{-1,1,1},{1,1,1}}]InfinitePlane[{{2,0,0},{0,2,0},{0,0,2}}] 的交点:

绘图:

InfiniteLine[{{-1,1,1},{1,1,1}}]Sphere[{0,0,0},3] 的交点:

绘图:

InfiniteLine[{{-1,1/3,1/2},{1,1/3,1/2}}]Tetrahedron[{{0,0,0},{1,0,0},{0,1,0},{0,0,1}}] 的边界的交点:

绘图:

求三个随机平面的交点:

绘图:

求球 Sphere[{1/3 Cos[k 2π/3],1/3 Sin[k 2π/3],0}]k=0,1,2 时的交点:

绘图:

在 10 个随机平面中找到恰好三个平面的所有交点:

使用 BooleanCountingFunction 求三件事正好成立的条件:

绘图:

化学  (1)

某种化学反应网络平衡的多项式系统:

由于变量代表化学物质的数量,我们对所有分量均为非负的实值解感兴趣:

求解:

表观多重性是 Automatic 方法的一个伪影,该方法往往很快,但有时会夸大多重性:

机械  (3)

Gough-Stewart 自由度为 6 的平行平台的正运动学:

该解集有多个解;删除解的重复副本:

不同的方法不会生成解的重复副本:

建立一个由四个变量组成的六方程超定系统,该系统源于摄像机姿态估算程序:

使用前四个多项式就可以精确确定子系统:

对于每个解,插入解的前四个残差都很小,而后两个残差则不可忽略:

现在,将每个解作为最小化残差平方和的起点,精细化求解每个解:

平面内两根无质量缆绳悬挂重物的静态平衡方程组:

每个实值解均对应一个不同的平衡位置,共有六个这样的平衡位置:

经济  (1)

经济学中出现的简化 8 维系统;我们使用非默认方法来获得更高的精度:

求实值解:

差分方程  (1)

多项式差分方程的非线性方程组:

RSolve 无法找到解的解析形式:

建立多项式系统,找出渐近值:

求解并给出可能的实数渐近值(它们取决于初始条件):

属性和关系  (7)

解近似满足以下等式:

对于单变量方程,NSolveValues 根据解的多重性重复求解:

求指定定义域上的解:

NSolveValues 给出解的值:

NSolve 根据替换规则表示解:

NSolveValues 是一个全局方程求解器:

FindRoot 是一个局部方程求解器:

NSolveValues 给出近似结果:

使用 SolveValues 获得确切解:

使用 FindInstance 获取确切解的实例:

使用 NDSolveValue 数值式求解微分方程:

可能存在的问题  (7)

用机器精度数值计算获得的解可能不准确:

更高的 WorkingPrecision 可以产生更准确的结果:

近似解可能由于数值误差而无法满足方程:

方程在一定公差之内是成立的:

使用较高的 WorkingPrecision 将给出具有较小公差的解:

如果解集是无限的,则 NSolveValues 给出其与随机超平面的交集:

使用 ContourPlotContourPlot3D 查看解的实部:

默认情况下,NSolveValues 可能会显示有多个解,但实际计数其实应该更小:

与非默认方法进行比较:

根据另一个非默认方法进行验证:

使用特定方法求解系数较大的多项式系统:

使用相同的方法,但精度高于默认值:

在机器精度水平上,有些残差并不小:

使用更高精度的解得到的残差更小,这一点不足为奇:

尽管残差存在差异,但两个解在 MachinePrecision 的所有位数上都是一致的:

在指定了 Reals 域的情况下,如果函数的解的所有邻域都不是实数,则 NSolveValues 可能不能对这种函数求解:

这里给出所有实数解:

NSolveValues 可能不会给出所有解:

获得 个解:

巧妙范例  (1)

解方程

Wolfram Research (2021),NSolveValues,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NSolveValues.html (更新于 2024 年).

文本

Wolfram Research (2021),NSolveValues,Wolfram 语言函数,https://reference.wolfram.com/language/ref/NSolveValues.html (更新于 2024 年).

CMS

Wolfram 语言. 2021. "NSolveValues." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2024. https://reference.wolfram.com/language/ref/NSolveValues.html.

APA

Wolfram 语言. (2021). NSolveValues. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/NSolveValues.html 年

BibTeX

@misc{reference.wolfram_2024_nsolvevalues, author="Wolfram Research", title="{NSolveValues}", year="2024", howpublished="\url{https://reference.wolfram.com/language/ref/NSolveValues.html}", note=[Accessed: 21-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_nsolvevalues, organization={Wolfram Research}, title={NSolveValues}, year={2024}, url={https://reference.wolfram.com/language/ref/NSolveValues.html}, note=[Accessed: 21-November-2024 ]}