\documentclass[12pt]{article}
%\include{amsfonts}
\usepackage{amssymb,amsmath,latexsym,epsfig,euscript,multicol}
\usepackage{enumitem}
\usepackage[utf8x]{inputenc}

% Caracteres especiales
\def\A{\mathbb{A}}
\def\C{\mathbb{C}}
\def \N{\mathbb{N}}
\def \P{\mathbb{P}}
\def \Q{\mathbb{Q}}
\def \R{\mathbb{R}}
\def \Z{\mathbb{Z}}
\def \sen{\textrm{sen}}

\newtheorem{ejer}{Ejercicio}
\newcommand{\bej}{\begin{ejer}\rm}
\newcommand{\fej}{\end{ejer}}

\def\dt{\Delta t}
\def\dx{\Delta x}

\topmargin-2cm \vsize 29.5cm \hsize 21cm
\setlength{\textwidth}{16.75cm}\setlength{\textheight}{23.5cm}
\setlength{\oddsidemargin}{0.0cm}
\setlength{\evensidemargin}{0.0cm}


\begin{document}

%----------------------------------------------------------
%Encabezado:

\centerline{{\small Universidad de Buenos Aires - Facultad de Ciencias Exactas y Naturales - Depto. de Matemática}}
 
 \vskip 0.2cm
 \hrulefill
 \vskip 0.2cm

 \centerline{{\bf\Large{\sc Elementos de Cálculo Numérico / Cálculo Numérico}}}
 \vskip 0.2cm
 \centerline{\ttfamily Primer Cuatrimestre 2016}
 \hrulefill

 \bigskip
 \centerline{\bf Práctica N$^\circ$ 1: Aritmética de Punto Flotante.}
 \bigskip



%----------------------------------------------------------
% 1

\bej  Sea $(a_n)_{n \in \N}$ una sucesi\'on de n\'umeros reales
con l\'\i mite $l$. Demostrar que si existen $p, c \in \R, \ p, c
> 0$ tal que
$$ \lim_{n \to \infty} \frac{|a_{n+1} - l|}{|a_{n} - l|^p} = c,$$
entonces el orden de convergencia de la sucesi\'on es exactamente
$p$.
\fej


%----------------------------------------------------------
% 2

\bej 
Hallar el l\'\i mite y calcular el
orden de convergencia de las siguientes sucesiones:
$${\rm (i)} \quad a_n = \Big(\frac12\Big)^n \quad \quad
{\rm (ii)} \quad b_n = \Big(\frac56\Big)^{n^2} \quad \quad {\rm
(iii)} \quad c_n = \Big(\frac{9}{10}\Big)^{2^n} \quad \quad$$
\fej

%----------------------------------------------------------
% 3

\bej Demostrar que:
\begin{enumerate}[label = \alph*)]
\item $\cos(x) = 1 - \frac{x^2}{2} + O(x^4) \quad \quad \quad  \ \
(x \to 0)$ \item $\sen(x) = x - \frac{x^3}{6} + O(x^5) \quad \quad
\quad  \ \ (x \to 0)$
\end{enumerate}
\fej

%----------------------------------------------------------
% 4
\bej {\bf Algunos experimentos: } Realizar las siguientes operaciones en \verb+Octave+. Comparar el resultado esperado con el obtenido. (Notamos $\varepsilon$ al épsilon de la máquina. Puede obtenerse con el comando \verb+eps+).

\begin{enumerate}[label = \alph*)]
\item Tomando $p=10^{34}$, $q=1$, calcular $p+q-p$.
\item Tomando $p=100$, $q=10^{-15}$, calcular $(p+q)+q$ y $((p+q)+q)+q$. Comparar con $p+2q$ y con $p+3q$ respectivamente. 
\item \verb%0.1+0.2 == 0.3%
\item \verb%0.1+0.3 == 0.4%
\item Estimar el valor de $f(x)=\frac{1-cos(x)}{x^2}$ para $x$ cercano a $0$. Graficar $f$ en el intervalo $I=[-4e-8,4e-8]$. ¿Qué sucede?
\item $(1 + \frac \varepsilon 2) + \frac
\varepsilon 2$
\item $1 + (\frac \varepsilon 2 + \frac \varepsilon 2)$
\item $\big((1 + \frac \varepsilon 2) + \frac \varepsilon 2\big)
- 1$
\item $\big( 1 + (\frac \varepsilon 2 + \frac
\varepsilon 2)\big) -1$
\end{enumerate}
\fej

%----------------------------------------------------------
% 5

\bej
Utilizando el método de redondeo, hallar el número de máquina más próximo a $129$ y a $128.75$ 
si se trabaja con base $10$ y mantisa de $2$ dígitos. 

\begin{enumerate}[label = \alph*)]

\item  {\rm Verificar, para $x=128.75$, la conocida cota para el error relativo
\[
\Big|\frac{x-fl(x)}x\Big|\leq \varepsilon
\]
si $\varepsilon=1/2\beta ^{1-d}$ donde $\beta$ es la base y $d$ la longitud de la mantisa. }

\item  ¿Cuánto vale $\displaystyle{\Big|\frac{129-128.75-fl(fl(129)-fl(128.75))}{129-128.75}\Big|}$?

\item Repetir los cálculos utilizando el método de redondeo con base 2 y mantisa de 8 dígitos. Recordar que la escritura en base $2$ de estos números es $129=(10000001)_2$ y $128.75=(10000000.11)_2$.

\end{enumerate}

\fej

%----------------------------------------------------------
% 6

\bej

\begin{enumerate}[label = \alph*)]
  \item
    Sean $a$ y $b$ dos números de máquina. Demostrar que el error relativo que se comete al calcular $a^2b$ 
    con aritmética de punto flotante se puede acotar por
    $2\varepsilon+O(\varepsilon^2)$,
    donde $\varepsilon$ es el épsilon de máquina asociado a una aritmética de punto flotante.

  \item 
    Demostrar que si en cambio $a,b\in\R$ son dos números reales arbitrarios, entonces dicho error 
    se puede acotar por $5\varepsilon+O(\varepsilon^2)$.
 \end{enumerate}
\fej


%----------------------------------------------------------
% 7
\bej Hallar una forma de calcular sin pérdida de dígitos significativos las siguientes cantidades, para $x \sim 0$:

\begin{enumerate}[label = \alph*)]
\item $(\alpha +x)^n-\alpha ^n $
\item $  \alpha -\sqrt{\alpha^2- x }$
\item $ \cos x - 1$
\item $ \sen (\alpha +x)-\sen (\alpha )$
\end{enumerate}
\fej


%----------------------------------------------------------
% 8

\bej Dada la ecuación:
\begin{equation*}
ax^2 +bx+ c=0,
\end{equation*}
con $a=5\times 10^{-8}$, $b=1000$ y $c=5\times 10^{-5}$. Estimar con \verb+Octave+ el valor de las raíces $r_1$ y $r_2$ utilizando la fórmula tradicional. 

Recordar que valen las relaciones: $b=-a(r_1+r_2)$ y $c=ar_1r_2$. ¿Se cumplen en el ejemplo? ¿Por qué?

Proponer una fórmula alternativa para calcular la raíz de menor módulo, y verificar si los resultados mejoran.
\fej

%----------------------------------------------------------
% 9

\bej
Escribir una función $redondeo(n,d)$ que redondee el número decimal $n$ a una expresión de $d$ dígitos. 

Utilizando esta función, repetir el experimento del ejercicio anterior usando una aritmética de $3$ dígidos, en base $10$, tomando $a=1$, $b=-40$ y $c=\frac{1}{4}$.
\fej

%----------------------------------------------------------
% 10
\bej  Se pretende calcular las sumas $S_N =\sum_{k=1}^N a_k$ con $N\in\N$. Llamemos $\widehat{S_N}$ al valor calculado que se obtiene haciendo $fl(\widehat{S_{N-1}} + a_N)$. Dada $S_N=\sum_{k=1}^N\frac 1k$, mostrar que $\widehat{S_N}$ se estaciona a partir de algún $N$ suficientemente grande. Deducir que a partir de entonces $S_N\neq \widehat{S_N}$.
\fej

%----------------------------------------------------------
% 11
\bej\label{ej:suma}
Escribir un programa que reciba como input o bien una función $f:\N_0\to\R$ y un número $N$, o bien un vector $f$ (de longitud $N$) y calcule, término a término, la suma:
$$\sum_{k=0}^N f(k).$$
\fej

%----------------------------------------------------------
% 12
\bej
Recordemos la fórmula para la suma de una serie geométrica: 
\[
G_N=\sum_{k=0}^Nr^k=\frac{(1-r^{N+1})}{1-r}=Q_N
\]
donde $r< 1$. 

Tomar un $r$ próximo a 1 (por ejemplo $r=1-10^{-14}$), y un $N$ grande. Calcular el valor de $G_N$ con el programa del ejercicio anterior. Comparar con el valor de $Q_N$. \textquestiondown Cuál de los dos valores obtenidos es más confiable? Analizar.
\fej


%----------------------------------------------------------
% 13
\bej  El desarrollo de Taylor de la función $e^x$ proporciona una forma muy inestable de calcular este valor cuando $x$ es negativo. Utilizar el programa del Ejercicio \ref{ej:suma} para evaluar el desarrollo de Taylor hasta grado $n$ de la función $e^x$ en $x = -12$, para $n = 1, \dots, 100$. Comparar con el valor exacto: $0.000006144212353328210\ldots $ \ >Cuáles son las principales fuentes de error? Proponer un método alternativo para estimar $e^{-12}$. Verificar si la aproximación obtenida es mejor.
\fej


%----------------------------------------------------------
% 14

\bej {\rm Calcular en {\tt Octave} los valores: $\sen(\pi /2+2\pi 10^j$) con $1\leq j\leq 25$. \textquestiondown Cuánto debería dar? \textquestiondown Qué está pasando?}
\fej


\end{document}
%---------------------------------------------------------
%---------------------------------------------------------


%---------------------------------------------------------
%	VIEJOS:
%----------------------------------------------------------
% 3
% 
% \bej Sea $\{x_n\}_{n \in \N}$ una sucesión de números reales.
% Demostrar que $x_n =
%  x + o(1)$ si y s\'olo si $\lim\limits_{n \to
% \infty} x_n = x.$
% \fej
\bej Considerar la sucesión: $x_k = 1000\pi$. Se desea calcular la suma $$\sum_{k=1}^{10^6}x_k.$$
¿Cuál es el resultado exacto?

Calcular el resultado utilizando el programa del Ejercicio \ref{ej:suma}.

Implementar el método de Kahan, dado por el pseudo-código:

\begin{center}
\begin{verbatim}
  s = x[1] 
  c = 0
  Para cada k:
      y = x[k] - c
      t = s + y
      c = (t-s) - y
      s = t
  Devolver s      
\end{verbatim}
\end{center}

Realizar la suma anterior con este programa. ¿Cuál es el error relativo del resultado? ¿A qué cree que se debe?

Repetir el experimento con la sucesión: $(y_k)$ tal que $y_0 = 100$ e $y_k=1e-15$ para $k>1$.  
\fej 

\bej *\textbf{Aproximaci\'{o}n de la derivada de una funci\'{o}n}:

\begin{enumerate}
\item Llamamos derivada discreta de $f$ en $x = 1$ al valor
$$d_hf(1) =
\frac{f(1+h)-f(1)}h.$$Utilizando el desarrollo de Taylor,
demostrar que
\[
|f^{\prime }(1)-d_hf(1)| \le |f^{\prime \prime }(1)|\frac{h}2+o(h)
\quad \quad \quad (h\to 0)
\]
siempre que $f$ sea suficientemente derivable.

\item Considerar la funci\'on $f(x) = x^2$. Hacer un programa en
{\tt Octave} que calcule los valores de $d_hf(1)$ para aproximar
$f'(1)$, d\'andole a $h$ los valores $10^{-18},$ $10^{-17.9},$
$10^{-17.8}, \dots,$ $10^{-1}$ y grafique los resultados
obtenidos. Decidir si \'estos se contradicen con el resultado del
\'\i tem anterior. Hacer un an\'alisis de los c\'alculos
efectuados para calcular $d_hf(1)$, teniendo en cuenta que la
m\'aquina utiliza aritm\'etica de punto flotante.

\item Repetir el \'\i tem anterior, d\'andole
otros valores a $h$, de modo que el resultado resulte m\'as
confiable.

%\item  Repetir el an\'alisis anterior para la siguiente aproximaci\'{o}n de
%$f^{\prime }$:
%\[
%f^{\prime }(x)\sim \frac{f(x+h)-f(x-h)}{2h}
%\]
%conocida como diferencia centrada y comparar.

%\item Repetir el item anterior con $f(x)=x^3$.
% Analice el error de la aproximaci\'on. >Cu\'al es ahora el mejor valor de $h$?}

\end{enumerate}
\fej


\bej * \textbf{Las funciones de Bessel $J_n$}: Se pueden definir del
siguiente modo:
\[
J_n(x)=\frac 1\pi \int_0^\pi \cos(x \sen\theta -n\theta )d\theta.
\]
y verifican que $|J_n(x)|\leq 1$. Se sabe adem\'as que $%
J_{n+1}(x)=2n/xJ_n(x)-J_{n-1}(x)$. Con los valores estimados
$J_0(1)\sim 0.7651976865$, $J_1(1)\sim 0.4400505857$ y la
recurrencia dada, hacer un programa en {\tt Octave} para calcular
$J_2(1)$, $J_3(1)$, $\ldots, J_{10}(1) $. Decidir si la condici\'{o}n $%
|J_n(x)|\leq 1$ deja de satisfacerse. \textquestiondown Qu\'{e}
esta sucediendo? 
\fej

\bej * Dada la funci\'on $\Phi:\zR \to \zR$ definida por
\[ \Phi(x)=\sum_{k=1}^\infty \frac{1}{k(k+x)}, \]
consideramos las siguiente dos maneras de estimar num\'ericamente
el valor de $\Phi(x)$ para un $x$ fijo:
\begin{itemize}
\item sumar los primeros $n$ t\'erminos de la serie $\Phi(x)$,
\item teniendo en cuenta que $\Phi (1)=1$, definir
$$
\Psi(x) = \Phi(x)-\Phi(1) = \sum_{k=1}^\infty (\frac{1}{k(k+x)} -
\frac{1}{k(k+1)}) = \sum_{k=1}^\infty \frac{1-x}{k(k+1)(k+x)},
$$
luego expresar $\Phi(x) = 1 + \Psi(x)$ y, de este modo, estimar
$\Phi(x)$ como $1$ m\'as la suma de los primeros $n$ t\'erminos de
la serie $\Psi(x)$.
\end{itemize}

Predecir cu\'al de las dos maneras converge m\'as r\'apidamente.
Luego, hacer un programa que calcule y grafique el resultado
obtenido con los dos m\'etodos propuestos para calcular $\Phi(0)$,
con $n = 1, \dots, 100$. Comparar con el resultado exacto, que es
$\frac{\pi^2}6$.
\fej

\bej *\textbf{Algoritmo para calcular $\pi $}:

Comenzar inicializando las variables $a, b, c, d$ y $e$ del
siguiente modo: $a=0$, $b=1$, $c=1/\sqrt{2}$, $d=1/4$, $e=1$.
Luego, iterar $n$ veces en el orden dado las siguientes
f\'{o}rmulas:
\[
a=b,\ \ \ \ b=\frac{b+c}2,\ \ \ \ c=\sqrt{ca},\ \ \ \
d=d-e(b-a)^2,\ \
 \ \ e=2e.
\]
Finalmente, el valor de $\pi$ puede estimarse como $f=b^2/d$,  o
como $g=(b+c)^2/(4d)$.

Hacer un programa que calcule los valores de $\pi$ estimados por
$f$ y $g$ cuando $n = 1, 2, \dots, 10$. \textquestiondown Qu\'e
estimaci\'on converge m\'{a}s r\'{a}pido? \textquestiondown
Cu\'{a}n precisos son sus resultados? El valor de $\pi $ correcto
hasta 36 d\'{\i }gitos es
\[
\pi =3.14159265358979323846264338327950288
\]

\fej

\bej
Hacer un programa que pretenda estimar el valor de Para $x=0$,graficar las sumas parciales de los tres m\'etodos. El valor$\frac{\pi^2}{6}$ equivale a $\Phi(0)$, donde

Intentar una manera m\'as astuta de hacer la suma usando que:

\[ \frac{1}{k(k+1)}=\frac{1}{k}-\frac{1}{k+1} \]
para probar que $\Phi (1)=1$. Luego expresar $\Phi(x)-\Phi(1)$
como una serie infinita $\Psi(x)$, que converja m\'as r\'apidamente que la que define $\Phi(x)$.
Repetir este mecanismo para obtener una serie que converja a\'un con mayor velocidad que $\Psi(x)$ usando $\Psi(2)$.
\fej




