Main Content

isolate

方程式内の変数または式の分離

説明

isolate(eqn,expr) は方程式 eqn を再割り当てするため、式 expr が左辺に出現します。結果は、expreqn について解く場合と同様です。isolateexpr を分離できない場合、expr を含むすべての項を左辺に移します。isolate の出力により、subs を使用することで expreqn から除去できます。

方程式内の変数の分離

方程式 a*x^2 + b*x + c == 0 内の x を分離します。

syms x a b c
eqn = a*x^2 + b*x + c == 0;
xSol = isolate(eqn, x)
xSol =
x == -(b + (b^2 - 4*a*c)^(1/2))/(2*a)

isolate の出力を使用することで、方程式から変数を subs を使用して削除できます。

lhs(xSol)rhs(xSol) に対して代入して xeqn から削除します。

eqn2 = subs(eqn, lhs(xSol), rhs(xSol))
eqn2 =
c + (b + (b^2 - 4*a*c)^(1/2))^2/(4*a) - (b*(b + (b^2 - 4*a*c)^(1/2)))/(2*a) == 0

方程式内の式の分離

次の方程式内の y(t) を分離します。

syms y(t)
eqn = a*y(t)^2 + b*c == 0;
isolate(eqn, y(t))
ans =
y(t) == ((-b)^(1/2)*c^(1/2))/a^(1/2)

同方程式内の a*y(t) を分離します。

isolate(eqn, a*y(t))
ans =
a*y(t) == -(b*c)/y(t)

isolate による最も簡潔な解の返却

複数の解を持つ方程式において、isolate は最も簡潔な解を返します。

sin(x) == 0 内の x を分離して、この振る舞いを説明します。この関数には 0pi3*pi/2 など複数の解があります。

isolate(sin(x) == 0, x)
ans =
x == 0

isolate は解を返すとき、特殊な場合を考慮しません。むしろ isolate は、方程式内の変数のすべての値について成り立つことが保証されない一般解を返します。

方程式 a*x^2/(x-a) == 1 内の x を分離します。x の戻り値は、特殊な場合 a = 0 では成り立ちません。

syms a x
isolate(a*x^2/(x-a) == 1, x)
ans =
x == ((-(2*a - 1)*(2*a + 1))^(1/2) + 1)/(2*a)

isolate による変数についての仮定の踏襲

isolate は方程式内の変数に課された仮定と矛盾しない結果のみを返します。

はじめに、x が負であると仮定し、方程式 x^4 == 1 内の x を分離します。

syms x
assume(x < 0)
eqn = x^4 == 1;
isolate(x^4 == 1, x)
ans =
x == -1

仮定を取り除きます。isolate は異なる解を選んで返します。

assume(x, 'clear')
isolate(x^4 == 1, x)
ans =
x == 1

ヒント

  • eqn が解を持たない場合、isolate でエラーが発生します。isolate はまた、特殊な場合を無視します。eqn の解が特殊な場合のみだったとき、isolate はそれら特殊な場合を無視してエラーを返します。

  • 返された解が、解に含まれる変数のすべての値に対して成り立つ保証はありません。

  • exprpi のような数学定数にはなりません。

入力引数

すべて折りたたむ

入力となる方程式。シンボリック方程式として指定します。

例: a*x^2 + b*x + c == 0

分離される変数または式。シンボリック変数または式として指定します。

バージョン履歴

R2017a で導入