Mostrando entradas con la etiqueta Análisis Numérico. Mostrar todas las entradas
Mostrando entradas con la etiqueta Análisis Numérico. Mostrar todas las entradas

lunes, 31 de marzo de 2025

(1201) - Problemas varios al derivar

  • Si tenemos una fórmula explícita, podemos escribir utilizando cálculo simbólico una fórmula para la derivada. Para este caso no hace falta que la función original sea cerrada pues se puede dar como un sumatorio, como una serie, etc. Así se tiene una fórmula conocida para la derivada y se puede ver fácilmente cómo se compara dicha fórmula con la función original.


  • Supongamos en cambio que no tenemos una fórmula cerrado, o no para la función original, pero que dado cualquier argumento que le demos (input) nos dice cuánto es la función evaluada en dicho punto (output). Aquí podemos usar el límite de la definición de derivada para poder aproximar numéricamente la derivada en cada punto. A su vez podemos calcular la derivada una vez más donde dado un argumento nos dice cuánto vale en dicho punto. Sin embargo, como tomar el límite muchas veces solo se puede hacer desde un punto de vista simbólico, y no desde un punto de vista numérico, a la hora del cómputo lo que se suele hacer es tomar la función de evaluada de manera inteligente en ciertos nodos tal que con diferencias divididas se puede aproximar la derivada con una de precisión arbitrariamente alta.


  • Sin embargo, muchas veces se tiene que la función está tabulada, o sea, solo sabemos los outputs en terminados inputs, es decir, solo sabemos el valor de la ordenada para ciertas abscisas. Este es un caso muy diferente al anterior ya que si bien en el caso anterior aunque no tuviéramos una fórmula explícita y no pudiéramos sacar una fórmula ni para la función original ni para la derivada, sí que mediante la evaluación de la función y los puntos podíamos acercarnos al valor numérico de la derivada con la precisión quisiéramos. Aquí en cambio la función solo está tabulada para ciertos valores y uno se tiene que apañar con esos valores tabulados de tal forma que la derivada no se va a poder calcular con precisión arbitraria, pues la precisión de la derivada dependerá del número de cifras significativas que tenga y la longitud del intervalo.

    Algunos manuales de análisis numérico lo que sugieren para calcular la derivada en un punto es estimar la derivada en los puntos tabulados e interpolar entre dichos puntos al valor que se quiere. Otros sugieren que a través de los puntos de la tabla construir un polinomio interpolador, derivarlo y evaluar la derivada en dicho punto. El problema este último razonamiento es que el polinomio interpolador cuando se van añadiendo más puntos tiene el problema del fenómeno de Runge (donde hay muchas oscilaciones en torno a los extremos del intervalo). Aun así, incluso si se coge o incluso si los datos están tabulados en los nodos del Chebyshev (de tal forma que el fenómeno de Runge no ocurra y se minimice la norma infinito de error, que es la función menos el polinomio interpolador), el teorema de aproximación polinómica de Weierstrass nos asegura solo la convergencia de los polinomios a una función continua, no necesariamente derivable. De hecho, hay bastantes ejemplos de sucesiones de polinomios (todos ellos infinitamente derivables), cuyo límite es una función continua, pero no-derivable.



Autor: Đɑvɪẟ Ƒernández-De la Cruʒ.

viernes, 27 de octubre de 2023

(907) - Fórmulas de cuadratura de Newton-Cotes (Integración Numérica)

Las fórmulas de cuadratura de Newton-Cotes son un conjunto de expresiones para aproximar la integral numérica de una función dada.
Consideremos una función $f(x)\in\mathcal{C}\big([a,b]\big)$, es decir, una función continua en un intervalo genérico. Tomemos una sucesión de nodos equiespaciados (para simplificar): $$\Delta: a=x_0\leqslant x_1 \leqslant \cdots \leqslant x_i \leqslant \cdots \leqslant x_N \qquad x_i = a+\frac{b-a}{N}i \quad i=0,1,\cdots,N$$ Construyamos ahora el polinomio interpolador en los nodos ya definidos. El teorema de aproximación de Weierstrass nos afirma que hay una sucesión que polinomios que converge uniformente a cualquier función continua en el intervalo $[a,b]$ (en otros términos el conjunto de polinomios es denso en el conjunto de funciones continuas con la norma infinito). Esto nos permite acotar el error al aproximar una función por un suma ponderada de la función evaluada en los nudos: $$ \left| \int_a^b\! f(x)\;\mathrm{d}x - \int_a^b\! P_N(x)\;\mathrm{d}x \right| = \left| \int_a^b\! \big(f(x)-P_N(x)\big)\;\mathrm{d}x \right| \leqslant \int_a^b\! \big|f(x)-P_N(x)\big|\;\mathrm{d}x \leqslant \int_a^b \|f-P_N\|_\infty \;\mathrm{d}x = \|f-P_N\|_\infty (b-a) \leqslant \varepsilon\,(b-a) $$ El polinomio interpolador de Lagrange se puede escribir de la forma $$ P_N(x) = \sum_{i=0}^N f(x_i) \ell_i(x) \implies \int_a^b\! P_N(x)\;\mathrm{d}x = \int_a^b\! \sum_{i=0}^N f(x_i) \ell_i(x) \;\mathrm{d}x = \sum_{i=0}^N f(x_i) \int_a^b \ell_i(x) \;\mathrm{d}x = \sum_{i=0}^N \omega_i f(x_i) $$ Donde se satisface que: $$ \omega_i = \int_a^b\! \ell_i(x) \;\mathrm{d}x \qquad \sum_{i=0}^N \omega_i = b-a $$ La regla del trapecio ($N=1$), de Simpson $1/3$ ($N=2$), de Simpson $3/8$ ($N=4$), y de Boole ($N=5$) son ejemplos de fórmulas de cuadraturas de Newton-Cotes tomando los extremos del intervalo. Si en cambio no se toman los extremos como nodos de interpolación se tiene la regla del rectángulo/punto medio ($N=2$), la del trapecio ($N=3$) o la de Milne ($N=4$).
De hecho hay una familia de fórmulas de cuadraturas que por su similitud se podrían considerar también de Newton-Cotes como la regla adaptativa de Simpson ($N=4$), la de Hardy ($N=6$), la de Weedle ($N=6$), la de Shovelton ($N=10$), las dos de Woolhouse ($N=10,28$), o la de Durand para un $N$ genérico.


Autor: Đɑvɪẟ Ƒernández-De la Cruʒ.

miércoles, 26 de mayo de 2021

(691) - El origen numérico de los logaritmos (con Teoría de Grupos)

Ya vimos en una entrada pasada cómo se propuso la prostaféreis, un algoritmo para agilizar el producto, pero aún así era muy costoso, largo, y tedioso. Por ejemplo, para calcular el producto de cinco números había que aplicarlo por lo menos tres veces con las sucesivas pérdidas de precisión en cada iteración. El matemático escocés John Napier of Merchinston ($1550-1617$) se le ocurrió una forma mejor. En términos modernos se puede imaginar su idea como buscar una aplicación $\psi$ que transformase un producto de elementos $xy$ del dominio en una operación $\star$ de sendas imágenes [de los factores]: un producto se convertía en operación computacionalmente mucho más fácil, $\star$ [luego veremos por cuál se decantó].

La aplicación satisface: $\psi(k\,xy) = \psi(x)\star\psi(y)$ para alguna constante $k$ , que se puede entender como un parámetro de reescala.
Para proceder se usarían los valores tanto $\psi(x)$ como $\psi(y)$ para hacer $\psi(x)\star\psi(y)=\psi(k\,xy)$ , y luego ver el qué argumento da $\psi(k\,xy)$ . Así pues solo hay que tener tabulado los valores $x\overset{\psi}{\mapsto}\psi(x)$ además de $y\overset{\psi}{\mapsto}\psi(y)$ (las búsquedas directas), asimismo como $\psi(k\, xy)\overset{\psi^{[-1]}}{\longmapsto} xy$ (la búsqueda inversa). El lector habitual del blog verá la rápida conexión con la prostaféresis.
 
Ya que el producto es conmutativo, la operación $\star$ también lo es: $$ \psi(k\,xy) = \psi(k\,yx) \implies \psi(x)\star\psi(y)=\psi(y)\star\psi(x) $$ Veamos que a su vez como el producto es asociativo, la operación $\star$ también lo es [usar $k^2$ sigue siendo un parámetro para simplificar resultados]: $$ \psi(k^2\,xyz) = \left\{ \begin{matrix} \psi(k\, (kxy)z) & = & \psi(kxy) \star\psi(z) & = & \big(\psi(x)\star\psi(y)\big)\star\psi(z)\\= & & = & & = \\\psi(k\, x(kyz)) & = & \psi(x) \star\psi(kyz) & = & \psi(x)\star\big(\psi(y)\star\psi(z)\big)\\ \end{matrix} \right.$$ Veamos cómo la operación $\star$ tiene un elemento neutro, $\psi(k^{-1})$ : $$ \psi(k\,tk^{-1})=\psi(t) = \psi(t)\star\psi(k^{-1}) = \psi(k^{-1})\star\psi(t)$$ Veamos ahora cómo todo elemento $\psi(t)$ tiene un elemento inverso $\psi(k^{-2}t^{-1})$ con la operación $\star$ [dada la conmutatividad de antes es tanto el inverso por la izquierda como por la derecha]: $$\psi(k\;t\,k^{-2}t^{-1})=\psi(k^{-1}) = \psi(t)\star\psi(k^{-2}t^{-1}) = \psi(k^{-2}t^{-1})\star\psi(t)$$ Sobre la aplicación $\psi$ queremos que sea inyectiva (elementos distintos tienen imágenes distintas), y además que sea biyectiva para que no haya problemas a la hora de multiplicar (que nos diera un posible producto erróneo). $$\begin{array}{ cccc }
\psi : & \mathbb{K}_1 & \longrightarrow & \mathbb{K}_2\\[2.5ex]
& t & \longmapsto & \psi(t) \\[8pt]
& k\,x_1\cdot x_2 & \longmapsto & \begin{matrix} \psi(x_1) & \star & \psi(x_2) \\ =&&= \\ y_1 & \star & y_2 \end{matrix}
\end{array} \qquad \begin{array}{ cccc }
\psi^{[-1]} : & \mathbb{K}_2 & \longrightarrow & \mathbb{K}_1 \\[2.5ex]
& z & \longmapsto & \psi^{[-1]}(z) \\[8pt]
& y_1 \star y_2 & \longmapsto & \begin{matrix} k & \psi^{[-1]}(y_1) & \cdot & \psi^{[-1]}(y_2)\\ & =&&= \\ k & x_1 & \cdot & x_2 \end{matrix}
\end{array}$$ Donde $\cdot$ es el producto usual en $\mathbb{K}_1$ , mientras que $\star$ es nuestra operación en $\mathbb{K}_2$ . La operación $\star$ realmente puede ser cualquiera que satisfaga las propiedades descritas, por lo que Napier usó $\star$ como la suma usual (según cuál se tome, cambia cómo es $\psi$ , por ejemplo con la suma se tiene que $\psi(k^{-1})=0$ para el neutro y $\psi(k^{-2}t^{-1})=-\psi(t)$ para el inverso). Llamó a su aplicación $\psi$ como logarithmus en latín, del griego antiguo λόγος (lógos) “palabra, razón” y ἀριθμός (arithmós) “número” , muy similar a la construcción número racional (también del latín) pero aquí el apellido racional indicando “razonadamente, con una razón de ser”. Napier definió su logaritmo $\operatorname{logN}$ : $$ n = 10^7\,\big(1-10^{-7}\,\big)^L \overset{\triangle}{\iff} L\overset{\text{def}}{=}\operatorname{logN} n$$ La relación entre el logaritmo de Napier , $\operatorname{logN}$ , y el logaritmo natural, $\ln$ , es: $$ \operatorname{logN} n \triangleq \frac{\displaystyle \ln\left(\frac{n}{10^7}\right)}{\ln\big(1-10^{-7}\,\big)} \iff \ln n \triangleq \ln\big(1-10^{-7}\,\big)\operatorname{logN} n + 7\ln 10$$ Es más, ambos para algún $n$ toman el mismo valor, $\displaystyle \frac{7\ln10}{1-\ln(1-10^{-7}\,)}$ . De esto se deducen las propiedades $$\begin{matrix} \displaystyle \operatorname{logN}\sqrt{x_1x_2\;} & = & \displaystyle \frac{\operatorname{logN}x_1+\operatorname{logN}x_2}{2} \\[3pt] \displaystyle \operatorname{logN}\big(10^{-7}x_1x_2\big) & = & \displaystyle \operatorname{logN}x_1+\operatorname{logN}x_2 \\[5pt] \displaystyle \operatorname{logN}\bigg(10^7\sqrt{\frac{x_1}{x_2}\;}\,\bigg) & = & \displaystyle \frac{\operatorname{logN}x_1-\operatorname{logN}x_2}{2} \\[3pt] \displaystyle\operatorname{logN}\Big(10^7\frac{x_1}{x_2}\Big) & = & \displaystyle \operatorname{logN}x_1-\operatorname{logN}x_2 \end{matrix}$$ Nótese que el logaritmo de Napier no satisface exactamente esas propiedades tan directas de los logaritmos a las que estamos muy habituados, en parte por la presencia de esa constante $10^{-7}$ . Unos pocos años después, Henry Briggs ($1561-1630$) simplifició en gran medida el trabajo de de Napier, creando el logaritmo briggsiano o común [decimal], $\log_{10}$ o también $\lg$ . Con este mero cambio, se popularizó muchísimo más el trabajo de Napier al hacerse más intuitivo, pues el logaritmo decimal de un número se puede entender como el número de cifras que tiene en su representación decimal (y las cifras del número original por cómo está entre dos unidades contiguas en una escala logarítmica decimal).
Ahora el algortimo para multiplicar $xy$ ha pasado a consultar los valores de $\log(x)$ además de $\log(y)$ [independientemente de la base], calcular $\log(x)+\log(y)$ y consultar en una búsqueda inversa el valor de $\operatorname{antilog}\big(\log(x)+\log(y)\big)$ (con respecto a la misma base que antes, siendo $\operatorname{antilog}$ la función antilogaritmo, es decir, la aplicación inversa al logaritmo). $$ xy = x\cdot y \iff xy = \operatorname{antilog}\big(\log(x)+\log(y)\big) $$ Es más, esto no se complica innecesariamente comparado con la prostaféresis, ya que: $$\prod_{k=1}^n x_k = x_1\cdot\ldots\cdot x_n \iff \prod_{k=1}^n x_k = \operatorname{antilog}\left(\sum_{k=1}^n\log(x_n)\right) $$ Que es una forma muy efectiva, útil y rápida para programar la función factorial, $x!$ , en algunos lenguajes como $R$ . Un pequeño esquema de lo que planteamos es: $$ \begin{matrix} \{x,y\} & \longrightarrow & x\cdot y \\ \underset{\text{Logartimo}}{\Downarrow} & & \underset{\text{Antilogaritmo}}{\Uparrow} \\ \big\{\log(x),\log(y)\big\} & \overset{\text{Suma}}{\implies} & \log(x)+\log(y) \end{matrix} $$ Para multiplicar varios números es mucho más efectivo usar logaritmos:
  • Para multiplicar números usando el algoritmo logarítmico, primero se hace una búsqueda directa de los logaritmos de los factores en tablas, se calcula su suma total, y por último con una búsqueda inversa se tiene el producto.
  • Para multiplicar números usando el algoritmo prostaferético, primero hay que hacer parejas y aplicar el algoritmo para cada una de las parejas (si hay un número impar de factores se omite uno y se lo lleva directamente a la próxima etapa), ahora hay que volver a hacer parejas con los productos intermedios y así recursivamente hasta que se llega al producto final.
Para multiplicar dos números en prostaféresis hay que hacer primero dos búsquedas inversas, una suma y una resta, dos búsquedas directas, y por último una suma y dividir entre $2$ , mientras que con logaritmos solo hay que hacer primero dos búsquedas directas, una suma, y por último una búsqueda inversa.


Autor: Đɑvɪẟ Ƒernández-De la Cruʒ.

martes, 3 de noviembre de 2020

(613) - Valor principal de Cauchy. Integrando al límite y al infinito

Aclaremos una cosa: esta entrada no trata el problema del valor inicial de Cauchy para ecuaciones diferenciales (en el que se halla la única solución a una ecuación diferencial dada una condición inicial concreta).

Supongamos que tenemos una función $f(x)$ de la que queremos hallar su integral en el intervalo $[a,b]$ (realmente da igual si es abierto o cerrado). Sin embargo, esta función no es continua en todo el intervalo, sino que tiene una discontinuidad en algún punto intermedio $\xi\in[a,b]$ .
  • Si fuera una discontinuidad evitable, es decir, si $\displaystyle \lim_{x\to\xi^{-}} f(x) = \lim_{x\to\xi^{+}} f(x) \not = f(\xi) $, entonces la integral sería: $\displaystyle \int_a^b \hspace{-5pt} f = \int_a^{\to\xi^{-}} \hspace{-8pt} f+ \int_{\to\xi^{+}}^b \hspace{-3.5pt} f $ .
  • Si fuera una discontinuidad inevitable de salto finito ( $\displaystyle \lim_{x\to\xi^{-}} f(x) - \lim_{x\to\xi^{+}} f(x)\lneq\infty$ ), es decir, si $\displaystyle \lim_{x\to\xi^{-}} f(x) \not = \lim_{x\to\xi^{+}} f(x) $, entonces la integral sería: o bien $\displaystyle \int_a^b \hspace{-5pt} f = \int_a^{\to\xi^{-}} \hspace{-8pt} f + \int_\xi^b \hspace{-6pt} f $ (si $\displaystyle \lim_{x\to\xi^{+}} f(x) = f(\xi) $ ), o bien $\displaystyle \int_a^b \hspace{-5pt} f = \int_a^\xi \hspace{-6pt} f + \int_{\to\xi^{+}}^b \hspace{-3.5pt} f $ (si $\displaystyle \lim_{x\to\xi^{-}} f(x) = f(\xi) $ ).
  • Si fuera una discontinuidad inevitable de salto infinito ( $\displaystyle |\lim_{x\to\xi^{-}} f(x) - \lim_{x\to\xi^{+}} f(x)| = \infty$ ) es decir, si $\displaystyle \lim_{x\to\xi^{-}} f(x) = \pm\infty = \lim_{x\to\xi^{+}} f(x) $ [particularizando al caso que queremos estudiar], entonces la integral numérica no tendría del todo sentido siempre: 
    1. Si ambos límites laterales convergen en valor absoluto a infinito y tienen el mismo signo, la integral numérica da $\pm\infty$ . 
    2. Sin embargo, si ambos convergen en valor absoluto a infinito, pero tienen distinto signo, uno podría preguntarse cómo calcular [numéricamente] el valor de la integral. La respuesta es a través de un límite: 
$$\boxed{ ―\hspace{-11.5pt}\int_a^b \hspace{-5pt} f \overset{\text{def}}{=} \lim_{\varepsilon\to 0^{+}} \Bigg( \int_a^{\xi-\varepsilon}\hspace{-5pt} f + \int_{\xi+\varepsilon}^b \hspace{-5pt} f \Bigg) }$$ 
Nótese que se está evaluando la integral en $[a,b]\setminus[\xi-\varepsilon,\xi+\varepsilon] \triangleq [a,\xi-\varepsilon) \cup (\xi+\varepsilon,b] $, y por las propiedades de la integración, la integral en ese subintervalo (bajo ciertas condiciones), $\displaystyle \int_{\xi-\varepsilon}^{\xi+\varepsilon}\hspace{-5pt} f = 2\varepsilon\cdot f(\eta) \!\underset{\varepsilon\to 0}{\longrightarrow}\! 0 $ donde $\eta\in (\xi-\varepsilon,\xi+\varepsilon)$ .
Con la definición del valor principal de Cauchy, uno puede dar un resultado numérico a integrales tipo: $ \displaystyle ―\hspace{-11.5pt}\int_{-1}^2 \frac{1}{x} \text{d}x = \ln 2 $ , o puede incluso definir funciones más difíciles como la integral logarítmica (de la que hablaremos más adelante): $$ \displaystyle \operatorname{li}(x) \overset{\text{def}}{=} ―\hspace{-11.5pt}\int_0^x \frac{1}{\ln(t)} \text{d}t $$
El valor principal de Cauchy es una generalización para ciertas integrales numéricas que sigue abarcando los casos más simples.
En cuanto a notación el valor principal de Cauchy se denota como $\displaystyle ―\hspace{-11.5pt}\int$ que corresponde al comando \fint en LaTeX , y en otras ocasiones $\displaystyle \int_L^\ast$ , $\displaystyle \mathcal{C}\int$ , $\displaystyle (CPV)\int$ , $\displaystyle P\int$ , $\displaystyle PV\int$ , $\displaystyle \operatorname{P.V.}\int$ , $\displaystyle P_v\int$ , $\displaystyle \operatorname{V.P.}\int$ , $\displaystyle \operatorname{p.v.}\int$ .


Autor: Đɑvɪẟ Ƒernández-De la Cruʒ.