Solving for Variables contained an interval
조회 수: 9 (최근 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에서 Symbolic Math Toolbox에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!