Solving for Variables contained an interval
18 次查看(过去 30 天)
显示 更早的评论
采纳的回答
Paul
2023-3-11
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])
更多回答(2 个)
Askic V
2023-3-11
编辑:Askic V
2023-3-11
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 个评论
Walter Roberson
2023-3-11
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
2023-3-11
编辑:John D'Errico
2023-3-11
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Calculus 的更多信息
产品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!