Solving an equation implicitly
Solving for
satisfying
.
Contents
Define each side of the equation
clear all
f = @(x) x^3;
g = @(x) 2*x + 2;
Write objective function
Solving
is equivalent to solving 
objfn = @(x) f(x) - g(x);
Try to determine a rough guess for the solution
Solution might not be unique! Graphing can help determine uniqueness as well as initial guess, but not so much if you have many dimensions. Might have to try different initial guesses. Theory can often help give reasonable guess or otherwise restrict the domain (e.g. only non-negatives).
hold on fplot(@(x) f(x), [0 3]) fplot(@(x) g(x), [0 3]) hold off % Looks like about 1.8 or so is a good guess.
Warning: Function behaves unexpectedly on array inputs. To improve performance, properly vectorize your function to return an output with the same size and shape as the input arguments.
Solve for root of objective function
The second argument of fsolve is the guess for
.
fsolve(objfn,1.8)
Equation solved.
fsolve completed because the vector of function values is near zero
as measured by the value of the function tolerance, and
the problem appears regular as measured by the gradient.
ans =
1.7693