\documentclass[10pt]{article}
\usepackage{amsfonts}
\usepackage{amsmath}

%% Escrevendo em português
\usepackage[brazil]{babel}
\usepackage[latin1]{inputenc}

\usepackage[colorlinks,backref]{hyperref} 

%% Tamanho da página
\setlength{\textwidth}{17cm}
\setlength{\textheight}{24cm}

%% Parágrafo
\setlength{\parindent}{5mm}
\setlength{\parskip}{1mm}

%% Empurra para cá empurra para lá
\evensidemargin -0.3cm
\oddsidemargin -0.3cm
\topmargin -0.7in

\newcommand{\ymoldura}[1]{{\noindent\fbox{\parbox[t]{10cm}{ #1 }} \vspace*{.5cm}\\}}
\newcommand{\moldura}[1]{{\noindent\fbox{\parbox[t]{15.75cm}{ #1 }} \vspace*{.5cm}\\}}
\newcommand{\dmoldura}[1]{{\noindent\fbox{\fbox{\parbox[t]{11.0cm}{ #1 }}}\vspace*{.5cm}}}

\def\nl {\medskip \noindent} %\smallskip\noindent}

\def\CC{{\mathbb C}}

\pagestyle{empty}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\hfill {\small Departamento de Ciência da Computação -- IME-USP}


\begin{center}
  \textbf{\large MAC 115 -- Introdução à Ciência da Computação}

  \smallskip

  \textsc{Instituto de Física - Primeiro Semestre de 2004}
\end{center}

\noindent
Segundo Exercício-Programa (EP2)\hfill 
Entregue até 31/5/2004, no pelo
\href{http://panda2.arca.ime.usp.br/panda/index.html}{Panda}. 

\bigskip
\bigskip

\begin{center}
\dmoldura{
\centerline {\phantom{a} }
\centerline{\bf {\Large {\sc ~  O Método de Newton em~$\CC$ ~ }}}
\centerline{\phantom{a}}
}
\end{center}

%\vspace{2ex}

\noindent  
O objetivo desse EP é implementar o método de Newton para encontrar raízes
complexas de equações.  

Já conhecemos o método de Newton para equações reais~$f(x)=0$.  Começamos com
um valor arbitrário~$x_0$ e iteramos
\begin{equation}
  \label{eq:Newton.1}
  x_n=x_{n-1}-{f(x_{n-1})\over f'(x_{n-1})}
\end{equation}
para todo~$n\geq1$.  Este processo define uma seqüência de
reais~$x_0,x_1,x_2,\dots$ que converge (em geral) para uma raiz de~$f(x)=0$.  

O fato crucial para este EP é que \textit{o processo acima também funciona
  quando fazemos as contas em~$\CC$}.  

\subsection*{Exemplo}
Suponha que queremos encontrar todas as raízes da equação
\begin{equation}
  \label{eq:exemplo}
  z^4-1=0.
\end{equation}
(Naturalmente, sabemos que as raízes são~$\pm1$ e~$\pm i$,
mas~\eqref{eq:exemplo} é apenas um \textit{exemplo}.)  Suponha que definimos
a seqüência~$z_0,z_1,z_2,\dots$, colocando
\begin{equation}
  \label{eq:Newton.CC}
  z_n=z_{n-1}-{f(z_{n-1})\over f'(z_{n-1})}
\end{equation}
para todo~$n\geq1$, e colocando~$z_0=a$, $b$, $c$, e~$d$, onde
\begin{equation}
  \label{eq:abcd}
  a=2+i\qquad b=1+3i\qquad c=-1-i/2
\end{equation}
e
\begin{equation}
  \label{eq:de}
  d=-2+i\qquad e=-1-3i.
\end{equation}
Note que obtemos assim~$5$ seqüências.  Estas seqüências convergem para 
as raízes~$\pm1$ e~$\pm i$.  (Qual seqüência converge para qual raiz?)

\subsection*{O que seu programa deve fazer}
O seu programa deve receber como entrada um inteiro~$n$ e números
complexos~$a_0,a_1,\dots,a_n$ representando o polinômio
\begin{equation}
  \label{eq:p(z)}
  p(z)=a_0+a_1z+\dots+a_nz^n
\end{equation}
de grau~$n$ ($a_n\neq0$).  A saída do seu programa deve ser composta pelas~$n$
raízes de~$p(z)$.

No caso do exemplo acima, teremos a entrada e a saída abaixo.

\subsubsection*{Entrada}
A entrada para representar~\eqref{eq:exemplo} deve ser
\begin{verbatim}
 4
-1.0  0.0
 0.0  0.0
 0.0  0.0
 0.0  0.0
 1.0  0.0
\end{verbatim}

\subsubsection*{Saída}
A saída poderia então ser
\begin{verbatim}
 1.000  0.000
 0.000  1.000
-1.000  0.000
 0.000 -1.000 
\end{verbatim}

\section*{Computação com complexos}
Você deve estudar estes programas para implementar aritmética de números
complexos: 
\href{http://www.ime.usp.br/~yoshi/2004i/mac115/EPs/EP2/prog2.9.c}{prog2.9.c},   
\href{http://www.ime.usp.br/~yoshi/2004i/mac115/EPs/EP2/prog2.9.Complex.c}{prog2.9.Complex.c}.   

%\newpage

\bigskip
\begin{center}
  \underline{\Large \sc Observações Importantes sobre os Exercícios-Programas}
\end{center}

\smallskip

%\footnotesize

Todos os exercícios-programas devem ter o seguinte cabeçalho:

\begin{verbatim}
           /********************************************************/
           /* Fulano de Tal                                        */
           /* Exercicio-Programa xx                                */
           /* Curso yy  - Turma zz  -- Professor:  Ciclano de Tal  */
           /* Computador: .....                                    */
           /* Compilador: .....                                    */
           /********************************************************/
\end{verbatim}

\begin{enumerate}

\item O exercício-programa é \textbf{estritamente individual}. Exercícios
  copiados (com ou sem eventuais disfarces) receberão\ nota ZERO.


\item \textbf{Exercícios atrasados não serão aceitos.}

 \item  Exerc\'\i cios com erros de sintaxe (ou seja, erros de compilação)
 receberão nota ZERO.


\item  É \textbf{muito importante} que seu programa tenha comentários e
   esteja bem indentado, ou seja,
  digitado de maneira a ressaltar a estrutura de subordinação dos comandos
  do programa (conforme visto em aula).  A avaliação dos
  exercícios-programas levará isto em conta. 
  
\item Cada programa deve ser executado tantas vezes quantas forem necessárias
  para testar todos os casos possíveis para as entradas.  Você pode dizer no
  seu programa (em comentários), quais dados você usou para testar seu
  programa.  \textit{A escolha desses dados também influirá na sua nota.}
  
\item  Guarde com voc\^e at\'e o final do semestre, em seus
  disquetes, os arquivos de seus programas, pois eles podem ser
  solicitados pelo professor caso surja alguma d\'uvida. 

\item  Entregue o seu programa pelo sistema
  \href{http://panda2.arca.ime.usp.br/panda/index.html}{Panda}. 

\end{enumerate}


\end{document}


