\documentclass[11pt,twoside,a4paper,spanish]{article}
\usepackage[T1]{fontenc}
\usepackage{a4wide}
\usepackage{calc}
\usepackage[latin1]{inputenc}
\usepackage{isolatin1}
\usepackage{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
% ---------------------------
\setlength{\textheight}{\topmargin+\headheight+\headsep+\textheight}
\setlength{\topmargin}{0pt}
\setlength{\headheight}{0pt}
\setlength{\headsep}{0pt}
\setlength{\parindent}{0pt}
\setlength{\parskip}{1 ex plus 0.5 ex minus 0.2 ex}
% ------------------------------
\DeclareMathOperator{\sign}{sign}
% ----------
\begin{document}
\begin{center}\textbf{COMPUTACIÓN 2003 -- ASTRONOMIA}\end{center}
\begin{center}\textbf{PRACTICA 1b}\end{center}
\bigskip

\begin{enumerate}


\item Todo número complejo $z = (x,y) = x + iy$ no nulo admite
  exactamente $n$ raíces $n$-ésimas distintas dadas por
  \begin{displaymath}
    w_k = \sqrt[n]{r} \left [ \cos \left( \frac{\theta+2k\pi}{n}\right
      ) + i\,
      \sin \left ( \frac{\theta+2k\pi}{n} \right) \right ]
  \end{displaymath}
  donde $k = 0,1,2,\dots,n-1$, y 
  \begin{displaymath}
    r = \sqrt{x^2+y^2}, \quad \tan \theta = y/x
  \end{displaymath}

  Confeccionar un programa que calcule tales raíces dado un número
  complejo $z$. Verificar el programa calculando las raíces $n$-ésimas
  de la unidad para $n = 1,2,3$.


\item El \emph{máximo común divisor} $(a,b)$ de dos número enteros
  positivos  $a$ y $b$, con $a \ge b$ puede ser calculado por el
  \emph{algoritmo de Euclides}, según el cual el máximo común divisor
  es igual al último resto no nulo que se obtiene por aplicación
  sucesiva de la división entera entre el divisor y el resto del paso
  anterior. Esto es,
  \begin{displaymath}
    (a,b) = (b,r_1) = (r_1,r_2) = \dots = (r_{n-1},r_n) = (r_n,0) =
    r_n
  \end{displaymath}
  
  Implementar este algoritmo para calcular el máximo común divisor de
  dos números enteros \emph{cualesquiera} dados, contemplando la
  posibilidad de que alguno de ellos, o ambos, sea negativo o cero.
  (\emph{Ayuda}: $(a,b) = (|a|,|b|)$ y $(a,0) = 0$, pero $(0,0)$ no
  está definido).

  Verificar el programa calculando (25950,1095) = 15, (252,-1324) = 4.

\item El ejercicio anterior hace uso de la operación módulo,
  implementada en \texttt{FORTRAN} mediante la función \texttt{MOD}.
  ?`Podría decir por que el siguiente programa, si bien compila, da un
  resultado equivocado?

\begin{verbatim}
      PROGRAM BUG
      INTEGER I,J
      I = 7
      J = I MOD 4
      WRITE (*,*) J
      END
\end{verbatim}

  Si no encuentra el error recurra a la sentencia \texttt{IMPLICIT
  NONE}.



\item En la ecuación cúbica general de tercer grado
\begin{displaymath}
x^3 + a_2 x^2 + a_1 x + a_0 = 0
\end{displaymath}
poniendo $x = x' - a_2/3$, obtenemos una ecuación cúbica sin
término cuadrático, cuyas raíces son las de la primera,
incrementadas en $-a_2/3$. Alcanza, pues, con considerar las
ecuaciones cúbicas del tipo
\begin{displaymath}
x^3 + p x + q = 0
\end{displaymath}
donde, para simplificar, supondremos que $p$ y $q$ son números
reales. Se sigue entonces del teorema fundamental del algebra,
que esta ecuación tiene: o bien una única raíz real, o
bien tres raíces reales (pudiendo coincidir dos de ellas).
Estas raíces reales pueden ser calculadas \emph{exactamente}
como sigue.

Sea
\begin{displaymath}
\Delta = \frac{q^2}{4} + \frac{p^3}{27}
\end{displaymath}
el \emph{discriminante} de la ecuación cúbica.

Si $\Delta > 0$, entonces existe una única raíz real,
$x_1$, dada por $x_1 = u_1 + v_1$, donde
\begin{displaymath}
u_1 = \sign\left(-\frac{q}{2} + \sqrt{\Delta}\right) \left|-\frac{q}{2}
+ \sqrt{\Delta}\right|^{1/3}, \quad
v_1 = \sign \left(-\frac{q}{2} - \sqrt{\Delta}\right) \left|-\frac{q}{2}-
\sqrt{\Delta}\right|^{1/3} 
\end{displaymath}

Si $\Delta = 0$, tendremos tres ra\'{\i}ces reales (siendo dos
iguales), $x_1$ , $x_2 = x_3$, dadas por
\begin{displaymath}
x_1 = 2 u_1, \quad x_2 = x_3 = - u_1
\end{displaymath}
donde
\begin{displaymath}
u_1 = \sign \left(-\frac{q}{2} \right) \left|-\frac{q}{2}\right|^{\frac{1}{3}}
\end{displaymath}

Finalmente, si $\Delta < 0$, habrá tres raíces reales
(distintas) $x_1, x_2, x_3$, dadas por

\begin{displaymath}
x_1 = 2 \rho^{1/3} \cos{\left(\frac{\theta}{3}\right)}, \quad
x_2 = 2 \rho^{1/3} \cos{\left(\frac{\theta}{3} + \frac{2}{3} \pi\right)}, \quad
x_3 = 2 \rho^{1/3} \cos{\left(\frac{\theta}{3} + \frac{4}{3} \pi\right)}
\end{displaymath}
donde
\begin{displaymath}
\rho = \sqrt{-\frac{p^3}{27}}, \quad
\cos{\theta} = -\frac{q}{2\rho}
\end{displaymath}

a) Teniendo en cuenta lo anterior, confeccionar un
programa que calcule las raíces reales de las ecuaciones
cúbicas del tipo
\begin{displaymath}
x^3 + p x + q = 0
\end{displaymath}

b) Compruebe el programa con los siguientes casos
triviales:
\begin{displaymath}
x^3 = 0, \quad x^3 -1 = 0, \quad x^3 -x = 0
\end{displaymath}

c) Encuentre las raíces reales de la ecuación
\begin{displaymath}
x^3 - 3.5292 x + 2.118176 = 0
\end{displaymath}

\begin{small}
(\emph{Rta:} Redondeado a cinco decimales, las raíces son
$x_1 = 1.43162, x_2 = -2.1272, x_3 = 0.69552$)
\end{small}

\end{enumerate}
\end{document}
