I need to make a plot of this function:
f = atan((x*.8441/4)/(.8441^2-x^2))
What happens is that there is an asymptote at atan(infinity) and the values after that are negative. Is there anyway I could make the graph having atan() go from 0 to pi and instead of an asymptote have it have a value of pi/2?
Thanks.

Antworten (2)

Kevin Holst
Kevin Holst am 3 Feb. 2012

1 Stimme

Not sure I'm understanding the question, are you wanting to replace any values > pi/2 with pi/2? (and any values < -pi/2 with -pi/2?)
if you're just looking to plot the function from 0 to pi, you can use the same method that I suggested on your previous question:
f = @(x) atan((x*.8441/4)/(.8441^2-x^2))
fplot(f,[0,pi])
EDIT
I think I see what you're wanting, although I couldn't open your link at work. The unwrap function is very interesting; hadn't heard of it until now, but I couldn't get it to work for this application for some reason.
There are many ways to do this, so I'll go ahead and show you one.
x = 0:0.01:2;
y = atan((x*.8441/4)./(.8441^2-x.^2));
y(y<0) = y(y<0) + pi;
plot(x,y);
note that I had to add some extra '.'s in your equation to make it work.

3 Kommentare

Dennis
Dennis am 3 Feb. 2012
Ah I probably should have pointed out more. x should go from 0 to 2 while f should have values from 0 to pi. Like this graph but having a value of 0 at negative infinity.
Dennis
Dennis am 3 Feb. 2012
http://intmstat.com/analytic-trigonometry/arctanx.gif
Kevin Holst
Kevin Holst am 3 Feb. 2012
See edit above.

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 3 Feb. 2012

0 Stimmen

See the unwrap() function to avoid having it go negative.

2 Kommentare

Walter Roberson
Walter Roberson am 3 Feb. 2012
This works (visually at least):
x = linspace(-3,3,100);
f = atan((x.*0.8441/4)./(0.8441^2-x.^2));
plot(x, unwrap(f*2)/2)
Note the use of ./ and .^ in order to process a vector of x.
Kevin Holst
Kevin Holst am 3 Feb. 2012
Walter, when I plot what you posted, I get f from 0 to 2pi. Unwrap appears to be accounting for a discontinuity at -0.8 and another at 0.8, and they're cumulative. if you make your linspace from 0 to 3, it is fixed.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Graphics Performance finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 3 Feb. 2012

Bearbeitet:

Jan
am 28 Sep. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by