Métodos Numéricos
Elena E. Álvarez Saiz
Red Educativa Digital Descartes.
Universidad de Cantabria
Título de la obra:
MÉTODOS NUMÉRICOS
Autores:
Elena E. Alvarez Saiz
Diseño del libro: Juan Guillermo Rivera Berrío
Código JavaScript para el libro: Joel Espinosa Longi, IMATE, UNAM.
Recursos interactivos: DescartesJS
Fuentes: Lato y UbuntuMono
Fórmulas matemáticas: $\KaTeX$
Primera Edición
LICENCIA
Creative Commons Attribution License 4.0.A menudo se dispone de una tabla de datos obtenida por muestreo o experimentación y se supone que los datos corresponden a los valores de una función $f$ desconocida o, aunque sea conocida, se precisa cambiarla por una más sencilla de calcular. Un caso particular de ajuste de curvas consiste en construir un polinomio $P(x)$ que pase por los puntos de esta tabla de valores.
Imaginemos por ejemplo que se tiene una tabla que relaciona la viscosidad dinámica del agua con la temperatura
T ºC | 0 | 5 | 10 | 20 |
$\mu_o$ | 1.787 | 1.519 | 1.307 | 1.002 |
¿Cómo estimar la viscosidad a una temperatura de 7.5º?
En este capítulo mostraremos dos técnicas para aproximar la función por un polinomio: la interpolación y la aproximación por mínimos cuadrados. Dentro de la interpolación veremos la interpolación de Lagrange y la de Hermite.
Ejercicio 1 propuesto del tema 3. Calcular los polinomios de base de Lagrange asociados a los nodos $x_0=-1$, $x_1=1$ y $x_2=2$. Calcula el polinomio que interpola en dichos nodos a la función $f$ real en $[-1,2]$ que satisface $f(x_0)=2$, $f(x_1)=1$ y $f(x_2)=1$.
Aunque la fórmula del teorema anterior posee un interés teórico, no es la forma eficiente de calcular el polinomio interpolador. Un método sencillo y más rápido es el siguiente.
El método consiste en construir la matriz $A$ de orden $(n+1) \times (n+1)$, el vector b de $\mathbb{R}^n$ y resolver el sistema $Aa=b$, donde $a$ es el vector de los coeficientes. Dado que el problema de interpolación de Lagrange tiene una única solución, la matriz $A$ es invertible.
Ejercicio propuesto del tema 3. Calcular el polinomio interpolador de grado 2 de una función que verifica $f(-1)=2$, $f(1)=1$ y $f(2)=1$.
Ejercicio propuesto del tema 3. . Si consideramos una función $f$ en el intervalo $[-1,2]$ cumpliendo $f(-1)=2$, $f(1)=1$ y $f(2)=1$, calcular una cota del error en $[-1,2]$ del polinomio interpolador de Lagrange que aproxima a la función en esos puntos en términos del máximo de $|f^{(n+1}(x)|$ ($n$ es el grado del polinomio, en este caso 2).
La elección de nodos que permite minimizar el valor de \[\mathop {\max }\limits_{x \in \left[ {a,b} \right]} \left| {\prod\limits_{j = 0}^n {\left( {x - {x_j}} \right)} } \right|\] se consigue con los puntos de Chebyshev.
Estos nodos en [0,1] son las raíces del polinomio del $n+1$-ésimo polinomio de Chebyshev que se define de forma recurrente: $${T_o}\left( x \right) = 1\,\,\,\,\,\,\,\,\,\,\,{T_1}(x) = x$$ $${T_k}(x) = 2x{T_{k - 1}}\left( x \right) - {T_{k - 2}}\left( x \right)\,\,\,\,\,\,\,k \ge 2$$ Se puede demostrar que $${T_{n + 1}}(x) = \cos \left( {\left( {n + 1} \right)arc\cos \left( x \right)} \right)\,$$
Nodos de Chebyshev. Los nodos de Chebyschev Pafnuti Lvóvich Tchebyschev (1821 - 1894). El más prominente miembro de la escuela de matemáticas de St. Petersburg. Hizo investigaciones en Mecanismos, Teoría de la Aproximación de Funciones, Teoría de los Números, Teoría de Probabilidades y Teoría de Integración. Sin embargo, escribió acerca de muchos otros temas: formas cuadráticas, construcción de mapas, cálculo geométrico de volúmenes, etc. en $[a,b]$ se calculan como $${x_i} = {{a + b} \over 2} + {{b - a} \over 2}\cos \left( {{{\left( {2i + 1} \right)\pi } \over {2n + 2}}} \right)\,\,\,\,\,\,\,0 \le i \le n$$
Ejercicio propuesto del tema 3.
Ejercicio propuesto del tema 3. Interpola la función $f(x)=log(x)$ en los nodos ${0.99, 1, 1.1}$ utilizando polinomios de Lagrange y obtén aproximaciones de $log(x)$ en los puntos $0.95678$ y $1.03597$. Compara los valores obtenidos con los exactos.
Aproxima también $f$ en los mismos puntos mediante el polinomio de grado 2 de Lagrange considerando los nodos de Chebyshev en el intervalo $[0.9,1.1]$.
En el caso de los métodos de interpolación, no siempre se consigue una mejor aproximación aumentado el número de puntos de interpolación (ver por ejemplo la función de Runge).
Además, cuando se considera un número grande de nodos la manipulación y evaluación el cálculo resulta muy costoso computacionalmente y puede llevar también problemas de redondeo importantes.
Con el siguiente método veremos que en el caso de que se tenga mucha información sobre la función en ciertos puntos, en lugar de aumentar de forma considerablemente el grado del polinomio en los métodos de interpolación, es más ventajoso utilizar el método de mínimos cuadrados.
La idea consiste en encontar un polinomio de grado $k$ a partir de un conjunto de $m$ puntos de forma que el polinomio tenga grado inferior al que se podría obtener pasando por todos ellos y se minimice el error que existe entre el valor del polinomio y las ordenadas de los puntos.
En la siguiente herramienta interactiva se realiza el ajuste a una recta.
Se escribe a continuación la formulación del método de mínimos cuadrados.
El problema que tratamos de resolver es encontrar el polinomio $p$ de grado menor o igual a $k$ que minimiza la siguiente expresión $$\sum\limits_{j = 0}^n {{\omega _j}} {\left( {p\left( {{x_j}} \right) - f\left( {{x_j}} \right)} \right)^2}$$
Para ver cómo se puede formular algebraicamente este problema, consideremos un polinomio $p$ de grado $k$
y las siguientes matrices
$$A = \begin{pmatrix} {\sqrt {{\omega _0}} \,x_0^k} & {\sqrt {{\omega _0}} \,x_0^{k - 1}} & {...} & {\sqrt {{\omega _0}} \,{x_0}}& {\sqrt {{\omega _0}} }\\ {\sqrt {{\omega _1}} \,x_1^k} & {\sqrt {{\omega _1}} \,x_1^{k - 1}} & {...} & {\sqrt {{\omega _1}} \,{x_1}}& {\sqrt {{\omega _1}} } \\ \vdots & \vdots & {...} & \vdots & \vdots \\ {\sqrt {{\omega _n}} \,x_n^k} & {\sqrt {{\omega _n}} \,x_n^{k - 1}} & {...} & {\sqrt {{\omega _n}} \,{x_n}}& {\sqrt {{\omega _n}} } \\ \end{pmatrix} $$ $$a = \begin{pmatrix} {{a_k}} \\ {{a_{k-1}}} \\ {{a_{k-2}}} \\ \vdots \\ {{a_0}} \\ \end{pmatrix} \,\,\,\,\,\,\,b = \begin{pmatrix} {\sqrt {{\omega _o}} \,f\left( {{x_o}} \right)} \\ {\sqrt {{\omega _1}} \,f\left( {{x_1}} \right)} \\ \vdots \cr {\sqrt {{\omega _n}} \,f\left( {{x_n}} \right)} \\ \end{pmatrix}$$ Se cumple que $$Aa - b = \begin{pmatrix} {\sqrt {{\omega _o}} \left( {p\left( {{x_o}} \right) - f\left( {{x_o}} \right)} \right)} \\ {\sqrt {{\omega _1}} \left( {p\left( {{x_1}} \right) - f\left( {{x_1}} \right)} \right)} \\ \vdots \cr {\sqrt {{\omega _n}} \left( {p\left( {{x_n}} \right) - f\left( {{x_n}} \right)} \right)} \\ \end{pmatrix}$$Teniendo en cuenta la norma euclidea $${\left\| {Aa - b} \right\|^2} = \sum\limits_{j = 0}^n {{\omega _j}} {\left( {p\left( {{x_j}} \right) - f\left( {{x_j}} \right)} \right)^2}$$ los coeficientes del polinomio $p$ que se busca serían la solución del problema: $$\mathop { (P2) \,\,\,\,{\rm{minimizar}}}\limits_{x \in {{\mathbb R}^{k + 1}}} {\left\| {Ax - b} \right\|^2}$$
Ejemplo: Ajustar un polinomio de grado 2 de la forma $y=a_o+a_1x+a_2x^2$ a un conjunto de observaciones: $(x_0,y_0)$, ($x_1,y_1)$,...,$(x_n,y_n)$ con $n \gt 2$ de manera que se minimice el "residuo", $$\sum\limits_{i = 0}^n {{{\left( {{y_i} - \left( {{a_o} + {a_1}{x_i}+{a_2}{x_i^2}} \right)} \right)}^2}} $$ Es decir, considerando $$A = \begin{pmatrix} {{x_0^2}} &{{x_0}} & 1 \\ {{x_1^2}} &{{x_1}} & 1 \\ {{...}} & {{...}}& {{...}}\\ {{x_n^2}}&{{x_n}} & 1 \\ \end{pmatrix} \,\,\, x = \begin{pmatrix} {{a_2}} \\ {{a_1}} \\ {{a_0}} \\ \end{pmatrix} \,\,\,\, b= \begin{pmatrix} {{y_0}} \\ {{y_1}} \\ {{...}} \\ {{y_n}} \\ \end{pmatrix}$$ se busca el vector $x$ de ${\mathbb R}^3$ solución del problema $$\min \left\| r \right\| = \min \left\| {Ax - b} \right\|$$
$h$ | 6 | 7 | 10 |
$F$ | 3 | 8 | 12 |
Se desea determinar L, y de paso la constante del muelle usando la ley de Hooke: $F=k(h-L)=kh-kL$ donde $F$ denota la fuerza aplicada al muelle y $h$ es la distancia desde el extremo superior del muelle. Se disponen de los siguientes datos
El problema de mínimos cuadrados consiste en encontrar el vector $x$ de ${\mathbb R}^2$ de forma que sea mínima $\left\| {Ax - b} \right\|$.
Veremos que para resolver el problema en general utilizamos la descomposición QR de la matriz $A$.
El método que se propone es el siguiente
Veamos la justificación del punto 3. Como Q es ortogonal se cumple $${\left\| {Qv} \right\|^2} = {\left( {Qv} \right)^T}\left( {Qv} \right) = {v^T}\left( {{Q^T}Q} \right)v = {v^T}Iv = {v^T}v = {\left\| v \right\|^2}$$
Por lo tanto, $${\left\| {Ax - b} \right\|^2} = {\left\| {QRx - b} \right\|^2} = {\left\| {Q\left( {Rx - {Q^T}b} \right)} \right\|^2} = $$ $${\left\| {Rx - {Q^T}b} \right\|^2} = {\left\| {\,\left( {_O^{\widehat R}} \right)x - \left( {_{{Z^T}}^{{Y^T}}} \right)b\,} \right\|^2} = {\left\| {\,\left( {_{ - {Z^T}b}^{\widehat Rx - {Y^T}b}} \right)\,} \right\|^2} = $$ $${\left\| {\,\widehat Rx - {Y^T}b\,} \right\|^2} + {\left\| {\,{Z^T}b\,} \right\|^2}$$
El mínimo valor del problema $(P_2)$ se obtiene para el valor de $x$ que hace cero el término $${\left\| {\,\widehat Rx - {Y^T}b\,} \right\|^2}$$.
De la expresión anterior se deduce que, equivalentemente, la solución del problema $(P_2)$ se obtiene calculando el valor $x$ solución del sistema $${\widehat Rx = {Y^T}b}$$
Si $k$ es el grado del polinomio buscado y $QR$ es la factorización de $A$, la matriz $\widehat R$ es la submatriz de $R$ con las primeras $k+1$ filas y la matriz $Y$ es la submatriz de $Q$ considerando las primeras $k+1$ columnas.$h$ | 6 | 7 | 10 |
$F$ | 3 | 8 | 12 |
Ejercicio 11 propuesto del tema 3.
Octave es una alternativa a Matlab con un aspecto y unos comandos y sintasis similares. Se trata de un lenguaje interpretado de alto nivel. Lo puedes descargar desde su página oficial completamente gratis. Aquí tienes el enlace de descarga.
Pero además, puedes utilizar una versión en línea desde tu móvil en el caso de que no tengas a mano tu ordenador. Esta versión la tienes aquí: Octave online.