NSolve

NSolve[expr,vars]

方程式あるいは不等式の系 expr の解を変数 vars について数値近似で求めようとする.

NSolve[expr,vars,Reals]

実領域で解を求める.

詳細とオプション

  • expr は以下の任意の論理結合でよい.
  • lhs==rhs等しい
    lhs!=rhs等しくない
    lhs>rhs または lhs>=rhs 不等式
    exprdom領域指定
    {x,y,}reg領域指定
    ForAll[x,cond,expr]全称記号
    Exists[x,cond,expr]存在記号
  • NSolve[{expr1,expr2,},vars]NSolve[expr1&&expr2&&,vars]は等価である.
  • 単一の変数または変数のリストを指定することができる.
  • NSolveは,次の形式の規則によって解を与える.
  • {}解がない
    {{x->solx,y->soly,},}複数の解
    {{}}解集合は全次元である
  • 指定された変数が1つの場合,ある方程式で特定の根が1より大きい重複性を示すときにはNSolveは相当する解の複数のコピーを返す.
  • NSolve[expr,vars]は,デフォルトで,不等式に代数的に現れる数量は実数値であるが,その他の数量は複素数値であると仮定する.
  • NSolve[expr,vars,Reals]では,変数,パラメータ,定数,関数のすべての値が実数に限られる.
  • NSolve[expr&&varsReals,vars,Complexes]は変数の実数値について解くが,関数の値は複素数値でもよい.
  • NSolve[,xreg,Reals]は,x を領域 reg 内に制限する.Indexed[x,i]を使って異なる座標の x に言及することができる.
  • NSolveは主として線形方程式と整方程式を扱う.
  • 使用可能なオプション
  • MaxRoots Automatic返す根の最大数
    Method Automatic使用されるべきメソッド
    RandomSeeding1234乱数生成器のシード
    VerifySolutions Automatic解を確かめるかどうか
    WorkingPrecision Automatic計算に使われる精度
  • Methodの可能な設定値には,"EndomorphismMatrix""Homotopy""Monodromy""Symbolic"がある. »

例題

すべて開くすべて閉じる

  (6)

整方程式の解を近似する:

整方程式の実数解を近似する:

高次整方程式の3つの近似解を求める:

整方程式系の解を近似する:

整方程式系の実数解を近似する:

幾何学領域上で方程式を解く:

スコープ  (48)

一変数複素方程式  (10)

一変数整方程式:

厳密ではない係数を持つ整方程式:

重根を持つ整方程式:

高次多項式の5つの根を求める:

代数方程式:

超越方程式:

すべての解を求める:

返す解の数を指定する:

有界領域上の一変数初等関数方程式:

有界領域上の一変数正則関数方程式:

複素平面の垂直線上の純虚数周期の方程式:

すべての解を求める:

無制限超越関数方程式:

多変数の複素方程式系  (9)

線形方程式系:

厳密ではない係数を持つ線形方程式:

線形方程式の劣決定系:

解のない線形方程式:

整方程式系:

多項式系の無数の根のうちの5つを求める:

整方程式の劣決定系:

代数方程式:

超越方程式:

返す解の数を指定する:

一変数実方程式  (11)

整方程式:

重根を持つ整方程式:

代数方程式:

区分方程式:

逆関数を使うと可解である超越方程式:

特殊関数の零点を使うと可解である超越方程式:

特殊関数の零点を使うと可解である超越不等式:

指数対数方程式:

高次の疎な整方程式:

高次の根基を含む代数方程式:

無理実数ベキを含む方程式:

平凡な初等関数方程式:

有限区間内の初等関数方程式:

有限区間内の正則関数方程式:

多変数実方程式系と実不等式系  (9)

線形系:

多項式系:

量化された多項式系:

代数系:

区分系:

逆関数を使うと可解である超越系:

第1変数が指数対数,その他の変数が多項式の系:

量化された系:

第1変数が初等で有界,その他の変数が多項式の系:

量化された系:

第1変数が正則で有界,その他の変数が多項式の系:

量化された系:

混合変数領域の系  (1)

実数と複素数の変数の混合:

幾何学領域  (8)

2D内の特殊領域上で解く:

これをプロットする:

3D内の特殊領域上で解く:

これをプロットする:

陰的に定義された領域:

パラメータで定義された領域:

派生領域:

これをプロットする:

パラメータに依存する領域:

これをプロットする:

円が指定された点を含むような,パラメータ の値を求める:

これをプロットする:

を使って 中のベクトルであると指定する:

この場合は,中のベクトルである:

一般化と拡張  (1)

以下についてはすべての変数の解が与えられる:

最後の引数として作業精度を与えることができる:

オプション  (10)

MaxRoots  (4)

多項式の個の根のうち個を求める:

多項式系の個の根のうちの個を求める:

超越方程式系の無限に多い解のうちの個を求める:

NSolveは,デフォルトのAutomatic設定ではすべての解を与えないかもしれない:

MaxRootsInfinityとすると,NSolveはすべての解を求めようとする:

Method  (4)

自動的に選択されたメソッドで平方多項式系を解く:

"EndomorphismMatrix"法を使う:

"Homotopy"法を使う:

"Monodromy"法を使う:

"Symbolic"法を使う:

この系には個の根があるが,これは,Bernstein-Khovanskii-Kushnirenkoの定理で与えられたの境界よりも厳密には少ない:

デフォルトで使われる"Homotopy"法は,いくつかの根の複数のコピーを返す:

複数のコピーを除去する:

この場合は"Monodromy"法の方が速く,根の複数のコピーも返さない:

"Monodromy"法は超越方程式系の有限個の解を返す:

"Symbolic"法を使ってすべての解を得る:

Methodオプションは,"NSolveOptions"群からシステムオプションをローカルに設定するために使うこともできる:

デフォルトで,NSolveは劣決定複合系をスライスする超平面を導入する:

Method->{"UseSlicingHyperplanes"->False}とすると,NSolveはパラメトリック解を返す:

VerifySolutions  (1)

NSolveは,非等価変換を使って得られた解を検証する:

VerifySolutions->Falseでは,NSolveは解の検証は行わない:

VerifySolutions->Falseで返される解の中には,正しくないものもある:

以下は,高速の数値検定を使って正しい解を選ぼうとする:

次では,単純な数値検証で正しい解集合が与えられる:

WorkingPrecision  (1)

デフォルトで,NSolveは機械精度計算を用いて厳密な方程式の解を求める:

次は50桁精度で解を計算する:

アプリケーション  (17)

幾何学  (11)

円と放物線の交点を求める:

InfiniteLine[{0,0},{1,1}]InfiniteLine[{{0,1},{1,0}}]の交点を求める:

これをプロットする:

InfiniteLine[{0,0},{1,1}]Circle[{0,0},1]の交点を求める:

これをプロットする:

ランダムな5本の線の間のペアの線ごとの交点をすべて求める:

BooleanCountingFunctionを使って,厳密に2つの条件が真であることを表明する:

これをプロットする:

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}}]の境界の交点を求める:

これをプロットする:

ランダムな3平面の交点を求める:

これをプロットする:

Sphere[{1/3 Cos[k 2π/3],1/3 Sin[k 2π/3],0}]の交点を k=0,1,2について求める:

これをプロットする:

ランダムな10の平面のうち,厳密に3平面のすべての交点を求める:

BooleanCountingFunctionを使って厳密に3つのことが真となる条件を求める:

これをプロットする:

化学  (1)

特定の化学反応ネットワークの平衡を表す多項式系:

変数は化学種の量を表すため,すべての成分が負ではない実数値の解に興味がある:

解を求める:

見かけの多重度はAutomaticメソッドの成果物であり,高速になる傾向があるが,多重度が誇張される場合がある:

力学  (3)

Gough-Stewart平行の自由度6のプラットフォームの順運動学:

この解集合は複数の解があるとするが,複数のコピーを削除する:

異なるメソッドを使うと解の複数のコピーは生成されない:

カメラの姿勢推定手順から生じる4変数の6つの方程式の過剰決定系を設定する:

部分系が厳密に決定されるように最初の4つの多項式を使う:

各解について,解の接続による最初の4つの残差は小さいが,最後の2つは無視できない:

次に,残差の二乗和を最小化するための開始点として使用して各解を完成させる:

平面内の2本の無質量ケーブルによって吊り下げられた重りの静的平衡を表す連立方程式:

各実数値の解は他とは異なる平衡位置に対応する.このような解は6つある:

経済  (1)

経済学に生じる縮小された8次元系.精度を高めるためにデフォルト以外の方法を使用する:

実数値解を求める:

差分方程式  (1)

多項式差分方程式の非線形系:

RSolveは解の解析的な形を求められない:

多項式系を設定して漸近的な値を求める:

これを解き,漸近的で可能な(初期条件に依存する)実漸近値を与える :

特性と関係  (8)

方程式の近似解:

解は置換規則として与えられ,代入に直接使うことができる:

NSolve{}で空の解すなわち解の不在を表す:

NSolve{{}}でユニバーサル解,つまりすべての点が方程式を満足することを表す:

一変数の整方程式について,NSolveはその多重度によって解を繰り返す:

指定の領域で解を求める:

NSolveは置換規則によって解を表す:

NSolveValuesは解の値を与える:

NSolveは大域的方程式ソルバである:

FindRootは局所的方程式ソルバである:

NSolveは近似結果を与える:

Solveを使って厳密解を得る:

FindInstanceを使って厳密解の例を得る:

NDSolveを使って微分方程式を数値的に解く:

考えられる問題  (7)

機械精度の数値計算で得られた解は正確ではないことがある:

WorkingPrecisionを高くすると,より正確な結果が生成される:

近似解は数値誤差のため方程式を満足しない場合がある:

方程式はある程度の許容度まで満足される:

WorkingPrecisionを高くすると,許容度の低い解が得られる:

多項式系解集合が無限の場合,NSolveは解集合とランダムな超平面との交点を与える:

ContourPlotContourPlot3Dを使って解の実部を見る:

NSolveは,デフォルトで,実際の数よりも多くの解を主張することができる:

デフォルト以外のメソッドと比較する:

他のデフォルト以外のメソッドで検証する:

特定のメソッドを使って係数が大きい多項式系を解く:

同じメソッドをデフォルトより高い精度で使う:

機械精度では,残差の中にそれほど小さくないものもある:

より高精度を使った解の残差は,当然のことながら,小さい:

残差の差にもかかわらず,2つの解はMachinePrecision精度におけるすべての桁が一致する:

領域としてRealsを指定すると,NSolveは解の近傍で関数が実数値ではない解は求めないかもしれない:

以下ではすべての実数解が与えられる:

NSolveはすべての解を与えないことがある:

個の解を得る:

おもしろい例題  (1)

方程式を解く:

Wolfram Research (1991), NSolve, Wolfram言語関数, https://reference.wolfram.com/language/ref/NSolve.html (2024年に更新).

テキスト

Wolfram Research (1991), NSolve, Wolfram言語関数, https://reference.wolfram.com/language/ref/NSolve.html (2024年に更新).

CMS

Wolfram Language. 1991. "NSolve." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2024. https://reference.wolfram.com/language/ref/NSolve.html.

APA

Wolfram Language. (1991). NSolve. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NSolve.html

BibTeX

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

BibLaTeX

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