Plotting atan()

12 ビュー (過去 30 日間)
Dennis
Dennis 2012 年 2 月 3 日
編集済み: Jan 2013 年 9 月 28 日
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.

回答 (2 件)

Kevin Holst
Kevin Holst 2012 年 2 月 3 日
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 件のコメント
Dennis
Dennis 2012 年 2 月 3 日
http://intmstat.com/analytic-trigonometry/arctanx.gif
Kevin Holst
Kevin Holst 2012 年 2 月 3 日
See edit above.

サインインしてコメントする。


Walter Roberson
Walter Roberson 2012 年 2 月 3 日
See the unwrap() function to avoid having it go negative.
  2 件のコメント
Walter Roberson
Walter Roberson 2012 年 2 月 3 日
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 2012 年 2 月 3 日
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.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by