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!