Solve

Solve[expr,vars]

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

Solve[expr,vars,dom]

領域 dom 上で解く.領域 dom は一般にRealsIntegersComplexesのいずれかである.

詳細とオプション

  • expr は以下の任意の論理結合でよい.
  • lhs==rhs等式
    lhs!=rhs左辺と右辺は等しくない
    lhs>rhs または lhs>=rhs 不等式
    exprdom領域指定
    {x,y,}reg領域指定
    ForAll[x,cond,expr]全称記号
    Exists[x,cond,expr]存在記号
  • Solve[{expr1,expr2,},vars]Solve[expr1&&expr2&&,vars]は等価である.
  • 単一の変数または変数のリストを指定することができる.
  • Solveは,以下の形式の規則の形で解を与える.
  • {}解はない
    {{x->solx,y->soly,},}複数の解
    {{}}全次元の解集合
  • 指定された変数が1つの場合,ある方程式で特定の根が1より大きい重複性を示すときは,Solveは相当する解の複数のコピーを返す.
  • Solve[expr,vars]は,デフォルトで,不等式に代数的に現れる数量は実数値であるが,その他の数量は複素数値であると仮定する.
  • Solve[expr,vars,dom]はすべての変数とパラメータが領域 dom に属するように制限する.
  • domRealsであるかIntegersRationalsのようにその部分集合である場合,すべての定数と関数の値もまた実数に限られる.
  • Solve[expr&&varsReals,vars,Complexes]は変数の実数値について解くが,関数の値は複素数値でもよい.
  • Solve[expr,vars,Integers]は整数領域でディオファントス(Diophantine)方程式を解く.
  • Solve[,xreg,Reals]は,領域 reg 内になるような x を含んでいる.x についての異なる座標はIndexed[x,i]で言及することができる.
  • expr 中の代数的変数で vars および互いを含まないものは,独立パラメータとして扱われる.
  • Solveは主として線形方程式と整方程式を扱う.
  • expr が実領域あるいは複素領域で整方程式と整不等式のみを含むとき,Solveは理論的には常に vars について直接解くことができる.
  • expr が超越条件や整数領域を含むとき,Solveはその結果に追加的なパラメータを導入する.
  • Solveは整数領域上のすべての線形方程式と不等式の解の明示的な表現を与えることができ,文献に見られるディオファントス方程式の大部分を解くことができる.
  • expr が実数と複素数の領域上で多項式条件のみを含むとき,Solve[expr,vars]は常に限定子を除くことができる.
  • Solveは一般的な解のみを与える.連続的なパラメータが方程式を満足する場合にのみ有効な解は除かれる.条件付きで有効なその他の解はConditionalExpressionオブジェクトとして表される.
  • ConditionalExpressionの解に含まれる条件には,不等式,Element文,非連続的なパラメータについての方程式や非等式,全次元の解を持つ方程式が含まれることがある.連続パラメータと変数についての非等式とNotElement条件は除かれる.
  • Solveは不等価変換を使って超越方程式の解を求める.このため,求まらない解があるかもしれず,求まった解の有効性についても厳密な条件が求められない場合もある.そのような場合はエラーメッセージが出される.
  • Solveは,近似数値係数を持つ線形方程式の疎な系の扱いに特別の効率的な技術を用いることがある.
  • 使用可能なオプション
  • Assumptions $Assumptionsパラメータについての仮定
    Cubics Automaticすべての三次方程式を解くために明示的な累乗根を使うかどうか
    GeneratedParameters C生成されたパラメータにどのように命名するか
    InverseFunctions Automatic記号的逆関数を使うかどうか
    MaxExtraConditions 0連続パラメータにいくつの追加的方程式条件を許すか
    MaxRoots Infinity返される根の最大数
    Method Automaticどのメソッドを使うべきか
    Modulus 0整数に対して取る法
    Quartics Automatic四次方程式を解くために明示的な累乗根を使うかどうか
    VerifySolutions Automatic不等価の変換を使って得られた解を検証するかどうか
    WorkingPrecision Infinity計算に使う精度
  • MaxExtraConditions->Automaticとすると,連続パラメータについて最少数の方程式条件を必要とする解のみが含まれる.
  • MaxExtraConditions->Allとすると,パラメータについての任意の条件を必要とする解がすべての条件とともにが与えられる.
  • MaxExtraConditions->k とすると,連続パラメータについての最高で k 個の方程式条件を必要とする解のみが含まれる.
  • Method->Reduceとすると,Solveは等価変換のみを用い,すべての解を求める.
  • Solve[eqns,,Modulus->m]m を法とする整数上で方程式を解く.Modulus->Automaticとすると,Solveは方程式に解がある法で最大のものを求めようとする.

例題

すべて開くすべて閉じる

  (5)

二次方程式を解く:

連立方程式を について解く:

方程式を実数上で解く:

方程式を正の整数上で解く:

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

スコープ  (85)

基本的な用法  (6)

解は置換リストとして与えられる:

ReplaceAll (/.)を使って を解で置換する:

解が方程式を満足することを確かめる:

Solve{}を使って空の解すなわち解がないことを表す:

Solve{{}}を使って普遍解,すなわち方程式を満足するすべての点を表す:

指定された領域上で解を求める:

記号パラメータを含む係数を持つ方程式を解く:

yについての解の実部をパラメータaの関数としてプロットする:

実数上でのこの方程式の解には,パラメータについての制約が必要である:

xを解で置換して結果を簡約する:

Normalを使って制約を除く:

正の整数上でのこの方程式の解には,新たなパラメータの導入が必要である:

最初10個の解をリストする:

一変数複素方程式  (15)

累乗根で可解な整方程式:

一般的な公式を使って三次方程式を解きたければCubicsTrueと設定するとよい:

デフォルトで,SolveRootオブジェクトを使って数値係数を持つ一般的な三次方程式の解を表す:

一般的な整方程式:

多重根を持つ整方程式:

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

記号係数を持つ整方程式:

代数方程式:

超越方程式:

Solveは,ここではすべての解を求めることはできない:

3つの解を求める:

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

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

次では,Solveはいくつかの解を求めることはできるがそれ以外の解がないことは証明できない:

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

無制限の複素方程式の解を指定された数だけ求める:

記号関数:

非解析的複素方程式:

多変数複素方程式系  (12)

線形方程式系:

記号係数を持つ線形方程式:

線形方程式の劣決定系:

解のない線形方程式:

整方程式系:

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

記号係数を持つ整方程式:

代数方程式:

超越方程式:

超越方程式の解を指定の数だけ求める:

有界ボックス上の二乗解析系:

非解析的方程式:

一変数実数方程式  (13)

整方程式:

多重根を持つ整方程式:

記号係数を持つ整方程式:

代数方程式:

区分方程式:

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

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

特殊関数の零点を使って可解の超越不等式:

指数対数方程式:

高次の疎な整方程式:

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

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

重根を持つ方程式:

平凡な初等関数方程式:

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

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

実領域上の周期初等関数方程式:

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

線形系:

多項式系:

量化された多項式系:

代数系:

区分系:

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

第1変数が指数対数でその他の変数が多項式である系:

量化された系:

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

量化された系:

第1変数が解析的で有界,その他の変数が多項式である系:

量化された系:

有界領域上の解析方程式の二乗系:

ディオファントス方程式  (11)

方程式の線形系:

方程式と不等式の線形系:

一変数整方程式:

二変数二次方程式:

トゥエ(Thue)方程式:

二乗方程式の和:

ピタゴラス(Pythagoras)の方程式:

方程式と不等式の有界の系:

解のない高次の系:

超越ディオファントス系:

合同の多項式系:

モジュール方程式  (4)

線形系:

一変数整方程式:

整方程式と整非等式の系:

量化された多項式系:

有限体上の方程式  (3)

一変量方程式:

線形方程式系:

整方程式系:

変数領域の混合系  (2)

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

実数変数と整数変数の混合:

幾何学領域制約がある系  (9)

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

これをプロットする:

3Dにおける特殊領域上で解く:

これをプロットする:

数量化された系:

陰的に定義された領域:

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

派生領域:

これをプロットする:

領域の直積上で限定子を除去する:

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

この答はパラメータ値 に依存する:

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

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

一般化と拡張  (1)

すべての変数について解く:

オプション  (28)

Assumptions  (4)

Assumptionsを使ってパラメータについての条件を指定する:

デフォルトで,方程式を満足するのにパラメータを必要とする解は生成されない:

パラメータが仮定として与えられている方程式の場合は解が返される:

解の変数を含む仮定は解く系の一部であるとみなされる:

Assumptionsを使わない同等の文:

パラメータが離散集合に属すと仮定される場合は,任意の条件を含む解が返される:

Cubics  (4)

デフォルトで,Solveは,記号的なパラメータが存在する場合にのみ,一般的な公式を使って三次方程式を累乗根で解く:

数値係数がある多項式については,Solveは公式を使わない:

Cubics->Falseとすると,Solveは決して公式を使わない:

Cubics->Trueとすると,Solveは常に公式を使う:

既約三次関数の実根は,casus irreducibilis(還元不能性)のためにその代数形にはIを含んでいる:

機械精度の数値評価は偽の虚部を与える:

任意精度評価でもなお虚部が残る:

デフォルト設定のCubicsAutomaticを使うと,明示的な実数の結果が取得できる:

GeneratedParameters  (1)

Solveは解を表すために新たなパラメータを導入することがある:

GeneratedParametersを使ってパラメータが生成される方法を制御する:

InverseFunctions  (3)

デフォルトで,Solveは逆関数を使うが警告メッセージを出力する:

NumericFunction属性を持つ記号については,記号による逆関数は使われない:

InverseFunctions->Trueとすると,Solveは逆関数の警告メッセージを出力しない:

記号による逆関数はすべての記号に用いられる:

InverseFunctions->Falseとすると,Solveは逆関数を使わない:

代数方程式を解くのには逆関数を使う必要はない:

次では,逆関数を使う必要がないため,Reduceに基づいたメソッドが使われている:

MaxExtraConditions  (4)

デフォルトで,追加の条件が必要な解は生成されない:

ただし,パラメータが離散的な場合は例外である:

デフォルト設定のMaxExtraConditions->0では,条件が必要な解は返されない:

MaxExtraConditions->1とするとパラメータに関する方程式が1つ必要であるものまで返される:

MaxExtraConditions->2とすると,パラメータに関する方程式が2つ必要であるものまで返される:

必要とするパラメータ方程式の数が最小の解を返す:

すべての解を返す:

デフォルトで,Solveは連続パラメータについての非同値条件は除去する:

MaxExtraConditions->Allとすると,Solveがすべての条件を含むようになる:

MaxRoots  (4)

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

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

超越系の解をつ求める:

系に記号パラメータが含まれる場合はオプション値が無視される:

Method  (1)

デフォルトで,Solveは多項式ではない複素方程式を解くのに逆関数を使う:

Method->Reduceとすると,SolveReduceを使って完全な解集合を求める:

Modulus  (2)

9を法とする整数について方程式を解く:

方程式系が解を持つ法を求める:

Quartics  (3)

デフォルトで,Solveは,記号的なパラメータがある場合についてのみ累乗根を使って四次方程式を解く際に一般的な公式を使う:

記号係数がある多項式については,Solveは公式を使わない:

Quartics->Falseのときは,Solveは決して公式を使わない:

Quartics->Trueのときは,Solveは常に公式を使う:

VerifySolutions  (1)

Solveは不等値変換を使って得た解を検証する:

VerifySolutions->Falseとすると,Solveは解を検証しない:

VerifySolutions->Falseによって返される解には正しくないものもある:

次は,正しい解を選ぶために高速の数値テストを使っている:

この場合,数値検証で正しい解集合が得られる:

WorkingPrecision  (1)

デフォルトで,Solveは方程式の厳密解を求める:

百桁精度の数を使って解を計算する方が速い:

結果は最初の百桁分は厳密解と一致している:

機械数を使って解を計算する方がはるかに速い:

結果はそれでも厳密解にかなり近い:

アプリケーション  (7)

二次方程式を解く:

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

四次方程式のすべての根が等しくなる条件を求める:

Subresultantsを使った方法:

限定子の消去を使った方法:

陰的記述で与えられた空間曲線をプロットする:

{x,y}平面への空間曲線の投影をプロットする:

ピタゴラスの三数を求める:

ピタゴラスの三数の数列を求める:

2ドル27セントの郵送料を,10セント,23セント,37セントの切手の組合せで払う方法を求める:

IntegerPartitionsを使っても同じタスクを行うことができる:

複素解析関数の根を200個求める:

根を関数の複素プロット上に示す:

特性と関係  (15)

解は方程式を満足する:

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

Solveは空の解すなわち解がないことを表すのに{}を使う:

Solve{{}}を使って普遍解すなわち方程式を満足するすべての点を表す:

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

代数方程式の解は,しばしばRootオブジェクトで与えられる:

Nを使ってRootオブジェクトの数値近似を計算する:

Rootオブジェクトはパラメータを含むことがある:

Seriesを使ってRootオブジェクトの級数展開を計算する:

級数は11階まで方程式を満足する:

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

Reduceは方程式と不等式のブール値の組合せで解を表す:

Solveは高速のヒューリスティックを用いて超越方程式を解くが,解は不完全であるかもしれない:

Reduceは使うメソッドは遅いことが多いが,すべての解とすべての必要条件を求める:

FindInstanceを使って解の例を求める:

Reduceのように,FindInstanceにも不等式と領域指定を与えることができる:

DSolveを使って微分方程式を解く:

RSolveを使って再帰方程式を解く:

SolveAlwaysは,複素方程式が常に真となるパラメータ値を与える:

ForAllを使って同じ問題を表し,SolveまたはReduceを使って解くこともできる:

Resolveは限定子を除去するが,結果の限定子を含まない系を解かないこともある:

Eliminateは複素方程式系から変数を除去する:

以下で,Resolveを使って同じ問題を解く:

ReduceSolveは加えて結果の方程式も解く:

方程式 が各 について厳密に1つの解を持つときかつそのときに限り,は全単射である:

FunctionBijectiveを使って関数が全単射かどうかを調べる:

FunctionAnalyticを使って関数が解析的かどうかを調べる:

解析的関数は閉じた有界領域内では有限個の零点しか持てない:

考えられる問題  (9)

Solveは一般的な解を与える.パラメータ上の方程式を含む解は与えられない:

Reduceは,パラメータ上の方程式を必要とする解も含め,すべての解を返す:

MaxExtraConditions->Allとすると,Solveもまた一般的ではない解を与える:

Solveの結果は入力式の中にパラメータしか含まないものがあるかどうかに依存しない.次の2つの系は等価で一般的な解を持たない:

MaxExtraConditionsを使って許容されるパラメータ条件の数を指定する:

Exists限定子を使ってパラメータaのある値についてのみ有効な解を求める:

Solveは一般的に正しくも正しくなくもない解を除外しない:

この解はでは正しくでは正しくない:

超越方程式の場合,Solveはすべての解を与えない場合がある:

Reduceを使ってすべての解を得る:

SolveMethod->"Reduce"と一緒に使うと,Reduceを使って解が求められるが,置換規則が返される:

逆関数を使うようにするとSolveがある種の解を求めるのが速くなる:

完全解を求めるのには,はるかに時間がかかり,解自体も大きくなることがある:

次は,x==2が解となるnの値を求める:

仮定の解釈は仮定の文法的特性に依存する.以下では,仮定で制約されたパラメータ空間で解は一般的である:

以下の数学的に同値の仮定は解の変数を含んでおり,解の系の一部として扱われる:

入力は以下のように解釈されるので,これには一般解はない:

この解は方程式を満足するパラメータを必要とするので,一般解ではない:

パラメータが離散集合に制限される場合は,一般的という概念がうまく定義できず,すべての解が返される:

一般に,入力方程式の可除特異点は有効な解とはみなされない:

しかし,解には自動簡約によって削除される可除特異点が含まれることがある:

における可除特異点は評価によって削除された:

以下では における可除特異点が方程式の前処理に使われたTogetherによって削除されている:

MaxRootsの値は数値係数を持つ系にしか使われない:

記号パラメータがある場合は,オプション値が無視される:

変数として与えられた式は原子オブジェクトとして扱われ,その部分式の関数としては扱われない:

事実上,変数は方程式を解く前に新たなシンボルに置き換えられる:

結果は以下で与えられる:

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

テキスト

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

CMS

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

APA

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

BibTeX

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

BibLaTeX

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