This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.


Isolate variable or expression in equation





isolate(eqn,expr) rearranges the equation eqn so that the expression expr appears on the left side. The result is similar to solving eqn for expr. If isolate cannot isolate expr, it moves all terms containing expr to the left side. The output of isolate lets you eliminate expr from eqn by using subs.


Isolate Variable in Equation

Isolate x in the equation a*x^2 + b*x + c == 0.

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)

You can use the output of isolate to eliminate the variable from the equation using subs.

Eliminate x from eqn by substituting lhs(xSol) for rhs(xSol).

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

Isolate Expression in Equation

Isolate y(t) in the following equation.

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)

Isolate a*y(t) in the same equation.

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

isolate Returns Simplest Solution

For equations with multiple solutions, isolate returns the simplest solution.

Demonstrate this behavior by isolating x in sin(x) == 0, which has multiple solutions at 0, pi, 3*pi/2, and so on.

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

isolate does not consider special cases when returning the solution. Instead, isolate returns a general solution that is not guaranteed to hold for all values of the variables in the equation.

Isolate x in the equation a*x^2/(x-a) == 1. The returned value of x does not hold in the special case 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 Follows Assumptions on Variables

isolate returns only results that are consistent with the assumptions on the variables in the equation.

First, assume x is negative, and then isolate x in the equation x^4 == 1.

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

Remove the assumption. isolate chooses a different solution to return.

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


  • If eqn has no solution, isolate errors. isolate also ignores special cases. If the only solutions to eqn are special cases, then isolate ignores those special cases and errors.

  • The returned solution is not guaranteed to hold for all values of the variables in the solution.

  • expr cannot be a mathematical constant such as pi.

Input Arguments

collapse all

Input equation, specified as a symbolic equation.

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

Variable or expression to isolate, specified as a symbolic variable or expression.

Introduced in R2017a