# Solving for Variables contained an interval

17 views (last 30 days)

Show older comments

##### 0 Comments

### Accepted Answer

Paul
on 11 Mar 2023

syms x real

y = sin(x)*(2*cos(x) - 1) / ((1 + 2*cos(x)) * (1 - cos(x)))

fplot(y,[0 1]) % don't know why the plot shows up below and not here?

Find the inverse function

fx = (finverse(y))

Sub so that we get a function of the form where we input y and output x

syms yy real

fx(yy) = subs(fx,x,yy)

Imaginary part is zero

imag(fx)

So all we need is the real part

fx = real(simplify(fx,100))

Check a value

fx(25)

copyobj(gca,figure)

hold on

yline(25);

xline(double(fx(25)))

axis([0 0.1 0 50])

### More Answers (2)

Askic V
on 11 Mar 2023

Edited: Askic V
on 11 Mar 2023

fun = @(x) (sin(x) .* (2.* cos(x) - 1)) ./ (1 + 2 .* cos(x)); % function

x0 = [0.1 2]; % initial interval

x = fzero(fun,x0)

t = linspace(0,2);

y = fun(t);

plot(t,y)

grid on

The function has value zero at x = 0, and the next one is at 1.0472. Therefore in the interval between 0 and 1 there is only a solution at 0.

##### 4 Comments

Walter Roberson
on 11 Mar 2023

syms x y real

eqn = y == sin(x)*(2*cos(x) - 1) / ((1 + 2*cos(x)) * (1 - cos(x)))

sol = solve(eqn, x, 'returnconditions', true)

sx = simplify(sol.x, 'steps', 20)

sol.conditions

b1L = solve(sx(1) == 0, sol.conditions(1), 'returnconditions', true)

b1U = solve(sx(1) == 1, sol.conditions(1), 'returnconditions', true)

sk = simplify(b1U.k, 'steps', 20)

sy = simplify(b1U.y, 'steps', 20)

vpa(sy)

b2L = solve(sx(2) == 0, sol.conditions(2), 'returnconditions', true)

b2U = solve(sx(2) == 1, sol.conditions(2), 'returnconditions', true)

b3L = solve(sx(3) == 0, sol.conditions(3), 'returnconditions', true)

b3U = solve(sx(3) == 1, sol.conditions(3), 'returnconditions', true)

So out of the three analytic branches for the equation, only one of them can be probed for boundaries. The first of them has no y boundary at x == 0 because the equation goes to infinity. It does have a y boundary at x == 1 of roughly 0.0709

John D'Errico
on 11 Mar 2023

Edited: John D'Errico
on 11 Mar 2023

syms x

y = (sin(x) * (2* cos(x) - 1)) / (1 + 2 * cos(x));

xsol = solve(y == 0)

There are only three primary solutions.

xsol = solve(y == 0,'returnconditions',true)

As you can see, now solve treturns a more complete result.

xsol.x

xsol.conditions

So, for integer k, the set of all solutions is one of those given in xsol.x, parameterized by the integer value of k.

That first positive solution is at pi/3, whhich falls just slightly outside of the interval [0,1]. So the only solution in that interval is 0 itself.

pi/3

##### 0 Comments

### See Also

### Categories

### Products

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!