Unable to find explicit solutions to an equation

1 view (last 30 days)
Hi,
I am trying to resolve the following equation :
x*atan(1/x)=y for x
My code is:
syms x y
eqn=(x*atan(1/x))==y
eqn=rewrite(eqn, 'log');
solx=solve(eqn, x, 'IgnoreAnalyticConstraints',1)
pretty(solx)
But I am getting the following error :
Any ideas?
Thank you in advance.

Accepted Answer

Walter Roberson
Walter Roberson on 14 Sep 2021
There is no closed form formula for that.
  2 Comments
Walter Roberson
Walter Roberson on 15 Sep 2021
y_values = sort(rand(1,10))
y_values = 1×10
0.0586 0.2845 0.3234 0.3530 0.3767 0.4559 0.5491 0.5873 0.5990 0.7952
opts = optimset('display', 'none');
x_values = arrayfun(@(Y) fsolve(@(x) x*atan(x) - Y, 0.75, opts), y_values);
X = linspace(0,1);
Y = X.*atan(X);
plot(X, Y, '-', x_values, y_values, 'r+')
For the red +, in each case the x coordinate is the calculated one for that particular y, and you can see that it matches up perfectly with the forward calculation of x*atan(x) shown by the line.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 14 Sep 2021
I'm not sure what you want to "resolve" or solve. This is what I see when I plot it:
fontSize = 20;
x = linspace(-2*pi, 2*pi, 1000);
y = x .* atan(1./x);
plot(x, y, 'LineWidth', 2);
grid on;
xlabel('x', 'FontSize', fontSize);
ylabel('y', 'FontSize', fontSize);
title('y = x .* atan(1./x)', 'FontSize', fontSize);
Now, explain exactly what is supposed to be equal to what.
  11 Comments

Sign in to comment.

Categories

Find more on 2-D and 3-D Plots in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!