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
を除く任意の式で方程式の両辺を乗算できる。多項方程式の解は完全でなければならない。