Esto es más una pregunta de informática, pero también es algo que me parece que los estudiantes de física se confunden bastante a menudo y no parece que se mencione tan a menudo como debería, así que no voy a votar para cerrarlo.
Básicamente, estás usando la función arctan equivocada para trazar tus resultados. Si usas la correcta, todo se verifica. La función arctan es extraña: en general, si $$\theta = \arctan\left(\frac{y}{x}\right), \tag{1} \label{1}$$ A diferencia de la mayoría de las funciones trigonométricas inversas a las que estamos acostumbrados, la información sobre qué cuadrante $y$ y $x$ ¡la mentira es importante y cambia la respuesta! En consecuencia, hay que utilizar una función arctan con dos argumentos Una para $x$ y uno para $y$ . Como ejemplo rápido, considere las siguientes dos posibilidades para $\theta$ :
- $\theta$ es el ángulo desde el $x$ al vector $(1,1)$
- $\theta$ es el ángulo desde el $x$ al vector $(-1,-1)$
Si se utiliza la fórmula dada anteriormente para estos dos casos, se obtendría el mismo ángulo ( $45^\circ$ ), pero debería ser obvio que esa es sólo la respuesta para el caso (1). Para el caso (2) la respuesta debería ser $135^\circ$ ¡!
La cuestión es que la ecuación ( \ref {1}) sólo funciona cuando $x>0$ . En su caso, ya que $r$ va de $0$ a $2$ El denominador ciertamente no es positivo para muchos de los parámetros, por lo que no se puede utilizar ingenuamente la función arctan por defecto al trazar los resultados. La mayoría de los lenguajes de programación (¿todos?) tienen una implementación de una función de "arctangente de 2 argumentos", normalmente llamada función atan2 . La página de Wikipedia explica con más detalle su existencia.
Por tanto, debes utilizar la función "atan2" de tu programa de trazado. Una pequeña nota al margen: ten en cuenta que las funciones atan2 suelen aceptar argumentos como $\texttt{atan2(x,y)}$ , por lo que el denominador es lo primero. A continuación se muestran algunos gráficos utilizando el Mathematica ( Mathematica 's $\texttt{ArcTan}$ acepta uno o dos argumentos: el caso de dos argumentos es equivalente a la función atan2):
Código de Mathematica:
f[z_] := ArcTan[ 1 - r^2, 2*z*r]
Plot[{f[0.1], f[0.25], f[0.5], f[0.7]}, {r, 0, 2}, PlotStyle -> {Black, {Gray , DotDashed}, {Gray, Dashed}, {Gray, Dotted}}, AxesLabel -> {"r", "\[Theta](r}"}]