solve
方程式と連立方程式のソルバー
構文
説明
は、1 つ以上の S = solve(eqn,var,Name=Value)Name=Value 引数によって指定された追加オプションを使用します。
は、1 つ以上の Y = solve(eqns,vars,Name=Value)Name=Value 引数によって指定された追加オプションを使用します。
[ は、1 つ以上の y1,...,yN] = solve(eqns,vars,Name=Value)Name=Value 引数によって指定された追加オプションを使用します。
[ は、解のパラメーターと条件を指定する追加の引数 y1,...,yN,parameters,conditions] = solve(eqns,vars,ReturnConditions=true)parameters および conditions を返します。
例
入力引数
名前と値の引数
出力引数
ヒント
solveで解を求められずReturnConditionsがfalseである場合、関数solveは内部で数値ソルバーvpasolveを呼び出して数値解を求めようとします。シンボリック パラメーターを使用しない多項方程式や連立多項方程式では、数値ソルバーによってすべての解が返されます。シンボリック パラメーターを使用しない非多項方程式や連立非多項方程式の場合、数値ソルバーによって 1 つの解だけが返されます (解が存在する場合)。solveで解を求められずReturnConditionsがtrueである場合、solveは警告と共に空の解を返します。解が存在しない場合、solveは警告なしで空の解を返します。解にパラメーターが含まれており
ReturnConditionsがtrueである場合、solveは解のパラメーターと解の成立条件を返します。ReturnConditionsがfalseの場合、関数solveはパラメーターの値を選択して対応する値を返すか、特定の値を選択せずにパラメーター化された解を返すかします。後者の場合、solveは警告を表示すると共に、返された解に含まれるパラメーターの値も示します。いずれの条件にもパラメーターが含まれない場合、パラメーターは任意の複素値を取り得ることを意味します。
solveの出力には、solveによって生成されたパラメーターに加えて、入力方程式からのパラメーターが含まれる場合があります。solveによって導入されたパラメーターは MATLAB ワークスペースに表示されません。パラメーターを含む出力引数を使用してアクセスする必要があります。または、MATLAB ワークスペースでパラメーターを使用するため、symsを使用してパラメーターを初期化します。たとえば、パラメーターがkの場合は、syms kを使用します。変数名
parametersおよびconditionsはsolveの入力として許可されていません。微分方程式の解を求めるには、
dsolve関数を使用します。連立方程式の解を求めるときには、常に結果は出力引数に代入されます。出力引数を使用すれば、方程式の解の値にアクセスできます。
MaxDegreeでは 5 より小さい正の整数のみを受け入れます。これは、一般的に、次数が 4 を超える多項式の根には陽的表現が存在しないからです。出力変数
y1,...,yNは、solveで方程式または連立方程式を解く対象となる変数を指定しません。y1,...,yNがeqnsに含まれる変数であっても、solve(eqns)が正しい順序でy1,...,yNに解を代入する保証はありません。したがって、[b,a] = solve(eqns)を実行する際、aの解がbに代入されたり、その逆になったりする可能性もあります。返される解の順序を確定するには、変数varsを指定します。たとえば、呼び出し[b,a] = solve(eqns,b,a)は、aの解をaに、bの解をbに代入します。
アルゴリズム
IgnoreAnalyticConstraints を使用する際は、ソルバーによって以下のルールのいくつかが方程式の両辺に適用されます。
任意の a および b について、log(a) + log(b) = log(a·b) が成り立つ。特に、a、b、c のすべての値に対して、次の等式が有効である。
(a·b)c = ac·bc.
任意の a および b について、log(ab) = b·log(a) が成り立つ。特に、a、b、c のすべての値に対して、次の等式が有効である。
(ab)c = ab·c.
f および g が標準的な数学関数、かつ任意の微小な正数について f(g(x)) = x である場合、すべての複素数値 x に対して f(g(x)) = x が有効であるものとする。以下に例を示します。
log(ex) = x
asin(sin(x)) = x, acos(cos(x)) = x, atan(tan(x)) = x
asinh(sinh(x)) = x, acosh(cosh(x)) = x, atanh(tanh(x)) = x
ランベルトの W 関数のすべての分岐指標 k に対して、Wk(x·ex) = x。
ソルバーは、
0を除く任意の式で方程式の両辺を乗算できる。多項方程式の解は完全でなければならない。
