# The roots for an equation containing tangent

2 views (last 30 days)

Show older comments

I'm going to find the roots of an equation containing tangent. like x*1.4 - atan(0.28*x)=37.5

I dont know how to write the code to find x in above equation.

##### 1 Comment

James Tursa
on 4 Oct 2020

You say "like". Is that your actual equation? Or is your actual equation something else?

### Accepted Answer

Image Analyst
on 5 Oct 2020

Assuming it's not your homework, try this:

x = linspace(0, 40, 10000);

y = x*1.4 - atan(0.28*x);

plot(x, y, 'b-', 'LineWidth', 2);

grid on;

yline(37.5, 'LineWidth', 2, 'Color', 'r');

diffs = abs(y - 37.5);

[minDiff, index] = min(diffs)

xCrossing = x(index)

caption = sprintf('y crosses 37.5 at x = %f', xCrossing);

title(caption, 'FontSize', 18);

xlabel('x', 'FontSize', 18);

ylabel('y', 'FontSize', 18);

xline(xCrossing, 'LineWidth', 2, 'Color', 'g');

### More Answers (3)

Alan Stevens
on 5 Oct 2020

If x*1.4 - atan(0.28*x)=37.5 is the equation then fixed point iteration will work.

Rewrite the equation as x(n+1) = (37.5+atan(0.28*x(n)))/1.4, use an initial guess for x, say, x(1) = 20, then use a while loop until x(n+1) and x(n) are the same (or within some tolerance).

##### 3 Comments

Alan Stevens
on 6 Oct 2020

The following is what I mean:

% Fixed point iteration

% If the equation is 1.4x - atan(0.28x) = 37.5 rearrange it as

% x = (37.5 + atan(0.28x))/1.4

tol = 1^-8; % Set desired tolerance

x = 20; % initial guess

flag = true; % Set to false when converged

while flag

xold = x;

x = (37.5 + atan(0.28*xold))/1.4;

if abs(x-xold)<tol

flag = false;

end

end

disp(x)

However, if you have a different equation in mind, you might have to manipulate it in a few different ways in order to find an arrangement that converges.

An alternative is to look up the Newton-Raphson method.

Bruno Luong
on 6 Oct 2020

>> fzero(@(x) x*1.4 - atan(0.28*x) - 37.5, 0)

ans =

27.8165

##### 2 Comments

Image Analyst
on 7 Oct 2020

### See Also

### Community Treasure Hunt

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

Start Hunting!