isolate
方程式内の変数または式の分離
説明
例
方程式内の変数の分離
方程式 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)
に対して代入して x
を eqn
から削除します。
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
を分離して、この振る舞いを説明します。この関数には 0
、pi
、3*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
はそれら特殊な場合を無視してエラーを返します。返された解が、解に含まれる変数のすべての値に対して成り立つ保証はありません。
expr
はpi
のような数学定数にはなりません。
入力引数
バージョン履歴
R2017a で導入