En este capítulo vamos a estudiar técnicas para aproximar una función cualquiera por una combinación lineal de funciones simples o conocidas como pueden ser las funciones polinómicas o las funciones trigonométricas.
La Teoría de la aproximación intenta resolver dos problemas:
En los problemas anteriores, no hemos concretado un punto importante: ¿qué queremos decir cuando decimos que \(\hat{f}\) esté lo más próxima a \(f\)?
Por ejemplo, en el tema dedicado a interpolación del curso Métodos numéricos con Python. Cálculo Numérico estudiamos cómo hallar el polinomio de interpolación de grado \(m-1\), \(p_{m-1}(x)\), dada una nube de puntos \((x_k,y_k),\ k=1,\ldots,m\), es decir, hallar un polinomio de grado menor o igual que \(m-1\) tal que \(p_{m-1}(x_k)=y_k\), \(k=1,\ldots,m\).
Cuando los puntos anteriores \((x_k,y_k)\) forman parte de la gráfica de una función \(f\), \(f(x_k)=y_k\), hallar el polinomio de interpolación sería una manera muy particular de aproximar dicha función \(f\).
Por tanto, en este caso, decir que \(\hat{f}=p_{m-1}\) esté cerca de \(f\) significa que la función interpoladora \(\hat{f}=p_{m-1}\) pase por los puntos de la nube: \(\hat{f}(x_k)=f(x_k)\).
Veremos otras formas de aproximar aparte de imponer que la función de aproximación \(\hat{f}\) pase por \(m\) puntos de la gráfica de la función a aproximar \(f\).
La aproximación por mínimos cuadrados consiste en, dado un conjunto de \(m\) puntos \((x_k,y_k)\), \(k=1,\ldots,m\), donde los \(x_k\) son diferentes \(2\) a \(2\), hallar una función \(\hat{f}(x)\) tal que la función error definida por: \[ E(\hat{f})=\sum_{k=1}^m (y_k-\hat{f}(x_k))^2, \] sea mínima.
La razón de que se llame aproximación por mínimos cuadrados es la expresión de la función error que consiste en la suma de los cuadrados de los errores cometidos en cada ordenada de cada punto \((x_k,y_k): (y_k-\hat{f}(x_k))^2\).
El siguiente paso es escoger el espacio de funciones donde elegiremos la función aproximación \(\hat{f}\) de la que hallaremos el mínimo.
Cuando el espacio de funciones considerado es el conjunto de funciones lineales, es decir, funciones del tipo \[ \hat{f}(x)=a_0+a_1 x, \] donde \(a_0\) y \(a_1\) son coeficientes libres que se tienen que calcular a partir de la nube de puntos \((x_k,y_k)\), \(k=1,\ldots,m\), la aproximación por mínimos cuadrados se denomina aproximación lineal por mínimos cuadrados.
Si la nube de puntos tiene una tendencia lineal como la del gráfico siguiente, hallar la aproximación lineal por mínimos cuadrados es hallar la mejor recta (en azul) tal que la función error antes definida es mínima, es decir, hallamos los coeficientes \(a_0\) y \(a_1\) tal que la suma de los errores (en rojo) al cuadrado entre las ordenadas \(y_k\) y los valores dados por la recta \(a_0+a_1 x_k\), \((y_k-a_0-a_1 x_k)^2\) es mínima.
Para hallar los coeficientes \(a_0\) y \(a_1\), tenemos que minimizar la función error que depende de dichos coeficientes: \[ E(a_0,a_1)=\sum_{k=1}^m (y_k-\hat{f}(x_k))^2 = \sum_{k=1}^m (y_k-a_0-a_1 x_k)^2. \] Para hallar los extremos de la función error \(E(a_0,a_1)\) de dos variables, tenemos que resolver el sistema siguiente: \[ \frac{\partial E(a_0,a_1)}{\partial a_0}=0,\quad \frac{\partial E(a_0,a_1)}{\partial a_1}=0. \]
Es decir: \[ \begin{align*} \frac{\partial E(a_0,a_1)}{\partial a_0} = & \frac{\partial}{\partial a_0}\sum_{k=1}^m (y_k-a_0-a_1 x_k)^2=-2\sum_{k=1}^m (y_k-a_0-a_1 x_k)\\ = & -2\left(\sum_{k=1}^m y_k-ma_0-a_1\sum_{k=1}^m x_k\right)=0,\\ \frac{\partial E(a_0,a_1)}{\partial a_1} = & \frac{\partial}{\partial a_1}\sum_{k=1}^m (y_k-a_0-a_1 x_k)^2=-2\sum_{k=1}^m (y_k-a_0-a_1 x_k)x_k\\ = & -2\left(\sum_{k=1}^m x_k y_k-a_0\sum_{k=1}^m x_k -a_1\sum_{k=1}^m x_k^2\right)=0. \end{align*} \]
Simplificando el sistema anterior, tenemos que los coeficientes \(a_0\) y \(a_1\) deben verificar el sistema de ecuaciones siguientes llamado sistema de ecuaciones normales: \[ \begin{align*} m a_0 + \left(\sum_{k=1}^m x_k\right) a_1 = & \sum_{k=1}^m y_k,\\ \left(\sum_{k=1}^m x_k\right) a_0+\left(\sum_{k=1}^m x_k^2\right) a_1 = & \sum_{k=1}^m x_k y_k. \end{align*} \]
Si llamamos \[ \Sigma_x =\sum_{k=1}^m x_k,\ \Sigma_y =\sum_{k=1}^m y_k,\ \Sigma_{x2} =\sum_{k=1}^m x_k^2,\ \Sigma_{xy} =\sum_{k=1}^m x_k y_k, \] el sistema anterior puede escribirse como: \[ \begin{align*} m a_0 + \Sigma_x a_1 = & \Sigma_y,\\ \Sigma_x a_0+\Sigma_{x2} a_1 = & \Sigma_{xy}, \end{align*} \] cuya solución puede obtenerse por el método de Cramer: \[ a_0 = \frac{\left|\begin{matrix}\Sigma_y & \Sigma_x\\ \Sigma_{xy}& \Sigma_{x2}\end{matrix}\right|}{\left|\begin{matrix}m & \Sigma_x\\ \Sigma_{x}& \Sigma_{x2}\end{matrix}\right|}=\frac{\Sigma_y\Sigma_{x2}-\Sigma_x\Sigma_{xy}}{m\Sigma_{x2}-\Sigma_x^2},\ a_1 = \frac{\left|\begin{matrix}m & \Sigma_y\\ \Sigma_{x}& \Sigma_{xy}\end{matrix}\right|}{\left|\begin{matrix}m & \Sigma_x\\ \Sigma_{x}& \Sigma_{x2}\end{matrix}\right|}=\frac{m\Sigma_{xy}-\Sigma_x\Sigma_{y}}{m\Sigma_{x2}-\Sigma_x^2}. \]
Usando las siguientes deficiones de estadística descriptiva: \[ \overline{x}=\frac{\Sigma_x}{m},\ \overline{y}=\frac{\Sigma_y}{m},\ s_{x}^2 =\frac{\Sigma_{x2}}{m}-\overline{x}^2,\ s_{xy}=\frac{\Sigma_{xy}}{m}-\overline{x}\overline{y}, \] las expresiones para \(a_0\) y \(a_1\) pueden escribirse como: \[ \begin{align*} a_1 =& \frac{m\Sigma_{xy}-\Sigma_x\Sigma_{y}}{m\Sigma_{x2}-\Sigma_x^2}=\frac{\frac{1}{m^2}\left(m\Sigma_{xy}-\Sigma_x\Sigma_{y}\right)}{\frac{1}{m^2}\left(m\Sigma_{x2}-\Sigma_x^2\right)}=\frac{\frac{\Sigma_{xy}}{m}-\overline{x}\overline{y}}{\frac{\Sigma_{x2}}{m}-\overline{x}^2}=\frac{s_{xy}}{s_x^2},\\ a_0 = & \frac{\Sigma_y\Sigma_{x2}-\Sigma_x\Sigma_{xy}}{m\Sigma_{x2}-\Sigma_x^2}=\frac{\frac{1}{m^2}\left(\Sigma_y\Sigma_{x2}-\Sigma_x\Sigma_{xy}\right)}{\frac{1}{m^2}\left(m\Sigma_{x2}-\Sigma_x^2\right)}=\frac{\overline{y}\frac{\Sigma_{x2}}{m}-\overline{x}\frac{\Sigma_{xy}}{m}}{s_x^2}\\ =& \frac{\overline{y}\left(\frac{\Sigma_{x2}}{m}-\overline{x}^2+\overline{x}^2\right)-\overline{x}\frac{\Sigma_{xy}}{m}}{s_x^2}=\frac{\overline{y}\left(s_x^2+\overline{x}^2\right)-\overline{x}\frac{\Sigma_{xy}}{m}}{s_x^2}\\ = & \overline{y}+\overline{x}\left(\frac{\overline{x}\overline{y}-\frac{\Sigma_{xy}}{m}}{s_x^2}\right)=\overline{y}-a_1\overline{x}. \end{align*} \]
Para calcular los coeficientes \(a_0\) y \(a_1\), hemos de realizar los pasos siguientes:
Vemos que la recta por aproximación lineal por mínimos cuadrados pasa por el punto medio de la nube de puntos \((\overline{x},\overline{y})\) ya que como \(a_0=\overline{y}-a_1\overline{x}\) tenemos que \(a_0+a_1\overline{x}=\overline{y}\).
Resolviendo las ecuaciones normales, sólo hemos comprobado que los valores \(a_0\) y \(a_1\) anteriores son un extremo de la función error. Deberíamos comprobar que los valores hallados son un mínimo.
Para ver que un valor candidato a extremo \((a_0,a_1)\) de una función de dos variables \(E(a_0,a_1)\) corresponde a un mínimo, hemos de ver que la matriz Hesiana evaluada en \((a_0,a_1)\) es definida positiva o que sus valores propios son positivos.
La matriz Hesiana es la siguiente: \[ H(a_0,a_1)=\begin{bmatrix}\frac{\partial^2 E}{\partial a_0^2} &\frac{\partial^2 E}{\partial a_0\partial a_1}\\ \frac{\partial^2 E}{\partial a_0\partial a_1}& \frac{\partial^2 E}{\partial a_1^2}\end{bmatrix} =\begin{bmatrix}2m&2\sum\limits_{k=1}^m x_k \\ 2\sum\limits_{k=1}^m x_k & 2\sum\limits_{k=1}^m x_k^2\end{bmatrix}. \]
Antes de ver que la matriz anterior corresponde a un mínimo, necesitamos el lema siguiente:
Dado un conjunto de datos \(x_1,\ldots,x_m\), donde hay como mínimo dos diferentes, su varianza poblacional \(s_x^2 = \frac{\sum\limits_{k=1}^m x_k^2}{m}-\overline{x}^2\) es estrictamente positiva, \(s_x^2> 0\).
\[ s_x^2 = \frac{\sum\limits_{k=1}^m x_k^2}{m}-\overline{x}^2 =\frac{\sum\limits_{k=1}^m (x_k-\overline{x})^2}{m}> 0. \] La última igualdad se puede provar de forma sencilla: \[ \begin{align*} \frac{\sum\limits_{k=1}^m (x_k-\overline{x})^2}{m} = & \frac{\sum\limits_{k=1}^m (x_k^2-2\overline{x}x_k+\overline{x}^2)}{m}=\frac{\sum\limits_{k=1}^m x_k^2-2\overline{x}\sum\limits_{k=1}^m x_k+m\overline{x}^2)}{m}\\ = & \frac{\sum\limits_{k=1}^m x_k^2-2\overline{x}m\overline{x}+m\overline{x}^2}{m}= \frac{\sum\limits_{k=1}^m x_k^2-2m\overline{x}^2+m\overline{x}^2}{m}=\frac{\sum\limits_{k=1}^m x_k^2-m\overline{x}^2}{m}\\ = & \frac{\sum\limits_{k=1}^m x_k^2}{m}-\overline{x}^2 \end{align*} \]
Para ver que la matriz \(H(a_0,a_1)\) es definida positiva podemos usar la regla de Sylvester, que dice que si los determinantes de orden \(1\) y \(2\) son positivos, la matriz \(H(a_0,a_1)\) es definida positiva: \[ \begin{align*} H(a_0,a_1)_1 =& 2m>0,\\ H(a_0,a_1)_2 = & 4m\sum_{k=1}^m x_k^2-4 \left(\sum_{k=1}^m x_k\right)^2 =\frac{4}{m^2}\left(\frac{\sum\limits_{k=1}^m x_k^2}{m}-\overline{x}^2\right)=\frac{4}{m^2}\cdot s_x^2 >0. \end{align*} \] En la última igualdad hemos aplicado el lema anterior.
Por tanto, concluimos que el valor \((a_0,a_1)\) hallado corresponde a un mínimo de la función error \(E(a_0,a_1)\).
INPUT número de puntos de la nube
\(m\), puntos de la nube
\((x_k,y_k)\), \(k=1,\ldots,m\)Set
\(Sigmax=0\).Set
\(Sigmay=0\).Set
\(Sigmax2=0\).Set
\(Sigmaxy=0\).For k=1,...,m
Set
\(Sigmax=Sigmax+x_k\).Set
\(Sigmay=Sigmay+y_k\).Set
\(Sigmax2=Sigmax2+x_k^2\).Set
\(Sigmaxy=Sigmaxy+x_k\cdot y_k\).Set
\(\overline{x}=\frac{Sigmax}{m}\).Set
\(\overline{y}=\frac{Sigmay}{m}\).Set
\(s_x^2 = \frac{Sigmax2}{m}-\overline{x}^2\).Set
\(s_{xy}= \frac{Sigmaxy}{m}-\overline{x}\cdot \overline{y}\).Set
\(a_1=\frac{s_{xy}}{s_x^2}\).Set
\(a_0=\overline{y}-a_1\cdot\overline{x}\).Print
\(a_0,a_1\).Consideremos la nube de puntos siguientes:
\(x\) | \(y\) |
---|---|
\(1\) | \(1.6620781\) |
\(2\) | \(7.5824881\) |
\(3\) | \(2.6419837\) |
\(4\) | \(9.8076052\) |
\(5\) | \(10.2366814\) |
\(6\) | \(11.629404\) |
\(7\) | \(14.7915203\) |
\(x\) | \(y\) |
---|---|
\(8\) | \(15.7676398\) |
\(9\) | \(19.9221514\) |
\(10\) | \(20.4909214\) |
A continuación calculamos: \[ \begin{align*} \overline{x}= & \frac{\Sigma_x}{m}=\frac{55}{10}=5.5,\\ \overline{y}= & \frac{\Sigma_y}{m}=\frac{114.5324735}{10}=11.4532473,\\ s_x^2 = & \frac{\Sigma_{x2}}{m}-\overline{x}^2 =\frac{385}{10}-5.5^2 = 8.25,\\ s_{xy} = & \frac{\Sigma_{xy}}{m}-\overline{x}\cdot\overline{y}=\frac{798.8335946}{10}-5.5\cdot11.4532473= 16.8904991. \end{align*} \]
Por último, calculamos los coeficientes \(a_0\) y \(a_1\): \[ \begin{align*} a_1 = & \frac{s_{xy}}{s_x^2}=\frac{16.8904991}{8.25}=2.0473332,\\ a_0 = & \overline{y}-a_1\cdot\overline{x}=11.4532473-2.0473332\cdot 5.5=0.1929146. \end{align*} \]
La gráfica siguiente muestra los puntos junto con la recta de aproximación lineal:
El error mínimo cometido al aproximar la nube de puntos por una recta vale: \[ \begin{align*} E(a_0,a_1) = & E(0.1929146,2.0473332)=\sum_{k=1}^{10} (y_k-0.1929146-2.0473332\cdot x_k)^2\\ = & (1.6620781-0.1929146-2.0473332\cdot 1)^2+(7.5824881-0.1929146-2.0473332\cdot 2)^2\\ = & (2.6419837-0.1929146-2.0473332\cdot 3)^2+(9.8076052-0.1929146-2.0473332\cdot 4)^2\\ = & (10.2366814-0.1929146-2.0473332\cdot 5)^2+(11.629404-0.1929146-2.0473332\cdot 6)^2\\ = & (14.7915203-0.1929146-2.0473332\cdot 7)^2+(15.7676398-0.1929146-2.0473332\cdot 8)^2\\ = & (19.9221514-0.1929146-2.0473332\cdot 9)^2+(20.4909214-0.1929146-2.0473332\cdot 10)^2 \\ = & 30.06248. \end{align*} \]
Podemos comprobar también que la recta \(y=a_0+a_1x=0.1929146+2.0473332\cdot x\) pasa por el punto \((\overline{x},\overline{y})=(5.5,11.4532473)\): \[ \overline{y}=a_0+a_1\overline{x},\quad 11.4532473=0.1929146+2.0473332\cdot 5.5. \]
Vamos a generalizar el estudio anterior.
En lugar de considerar como espacio de funciones el conjunto de funciones lineales, vamos a considerar el conjunto de polinomios de grado máximo \(n\): \[ P_n(x)=a_n x^n+a_{n-1}x^{n-1}+\cdots +a_1 x+a_0, \] es decir, el problema que nos planteamos es el siguiente:
Consideramos una nube de puntos \((x_k,y_k)\), \(k=1,\ldots,m\), donde los \(x_k\) son diferentes \(2\) a \(2\). Queremos hallar el polinomio \(P_n(x)\) de grado menor o igual que \(n\), con \(n< m-1\), tal que la función error siguiente sea mínima: \[ \begin{align*} E(a_0,a_1,\ldots,a_n)= & \sum_{k=1}^m (y_k-\hat{f}(x_k))^2 \\ =& \sum_{k=1}^m (y_k-(a_n x_k^n+a_{n-1}x_k^{n-1}+\cdots +a_1x_k+a_0))^2. \end{align*} \]
La condición \(n<m-1\) se impone ya que sabemos que si \(n=m-1\) existe un polinomio denominado polinomio interpolador que cumple \(P_n(x_k)=y_k\).
Para este polinomio, tendremos que \(E(a_0,a_1,\ldots,a_n)=0\) ya que los sumandos que hay en el sumatorio de la función error son todos nulos.
En este caso, el problema quedaría resuelto usando dicho polinomio interpolador.
En resumen, intentamos solucionar el problema de aproximar de la mejor manera posible la nube de puntos por un polinomio cuyo grado no supere \(m-1\), siendo \(m\) el número de puntos de la nube.
La función error es una función de \(n+1\) variables: \(a_0,a_1,\ldots,a_n\).
Para hallar el mínimo de la misma hemos de resolver el sistema de ecuaciones siguiente: \[ \begin{align*} \frac{\partial E}{\partial a_0}(a_0,a_1,\ldots,a_n)= & 0,\\ \frac{\partial E}{\partial a_1}(a_0,a_1,\ldots,a_n)= & 0,\\ &\vdots\\ \frac{\partial E}{\partial a_n}(a_0,a_1,\ldots,a_n)= & 0. \end{align*} \]
El valor de \(\displaystyle\frac{\partial E}{\partial a_j}(a_0,a_1,\ldots,a_n)\), \(j=0,\ldots,n\) vale: \[ \begin{align*} & \frac{\partial E}{\partial a_j}(a_0,a_1,\ldots,a_n)=-2\sum_{k=1}^m (y_k-(a_n x_k^n+a_{n-1}x_k^{n-1}+\cdots +a_1 x_k+a_0))\cdot x_k^j\\ & =-2\left(\sum_{k=1}^m y_k\cdot x_k^j-a_n\sum_{k=1}^m x_k^{n+j}-a_{n-1}\sum_{k=1}^m x_k^{n-1+j}-\cdots - a_1\sum_{k=1}^m x_k^{1+j}-a_0\sum_{k=1}^m x_k^{j}\right), \end{align*} \] \(j=0,\ldots,n\).
La condición \(\displaystyle\frac{\partial E}{\partial a_j}(a_0,a_1,\ldots,a_n)=0\), \(j=0,\ldots,n\) puede escribirse de la forma siguiente: \[ \begin{align*} & \left(\sum_{k=1}^m x_k^{j}\right)a_0+\left(\sum_{k=1}^m x_k^{1+j}\right)a_1+\cdots +\left(\sum_{k=1}^m x_k^{n-1+j}\right)a_{n-1}+\left(\sum_{k=1}^m x_k^{n+j}\right)a_n\\ & \quad =\sum_{k=1}^m y_k\cdot x_k^j. \end{align*} \]
Fijémonos que el sistema anterior es lineal con \(n+1\) ecuaciones y \(n+1\) incógnitas \(a_0,a_1,\ldots,a_n\), que puede escribirse de la forma \(\mathbf{A}\mathbf{a}=\mathbf{b}\), donde \[ \begin{align*} \mathbf{A}= & (a_{ij})_{i,j=1,\ldots,n+1}=\left(\sum_{k=1}^m x_k^{i+j-2}\right)_{i,j=1,\ldots,n+1},\ \mathbf{a}=\begin{bmatrix}a_0\\ a_1\\\vdots\\ a_n\end{bmatrix},\\ \mathbf{b}= & \left(\sum_{k=1}^m y_k\cdot x_k^{i-1}\right)_{i=1,\ldots,n+1}. \end{align*} \] Para resolverlo, puede usarse un método directo como el método de Gauss con pivotaje o la descomposición \(LU\) (ver el curso Métodos numéricos con Python. Álgebra lineal numérica.)
El sistema anterior \(\mathbf{A}\mathbf{a}=\mathbf{b}\) tiene solución única.
Demostración
Hemos de ver que \(\mathrm{det}(\mathbf{A})\neq 0\).
Supongamos que \(\mathrm{det}(\mathbf{A})=0\). En este caso, la matriz \(\mathbf{A}\) tiene el valor propio \(0\).
Sea \(\mathbf{v}=(v_1,v_2,\ldots,v_{n+1})\neq\mathbf{0}\) un vector propio de valor propio \(0\) de la matriz \(\mathbf{A}\): \(\mathbf{A}\mathbf{v}=\mathbf{0}\).
Es decir: \[ \sum_{j=1}^{n+1} a_{ij}v_j=0,\ i=1,\ldots,{n+1},\ \Rightarrow \sum_{j=1}^{n+1} \sum_{k=1}^m x_k^{i+j-2} v_j=0,\ \Rightarrow \sum_{k=1}^{m}x_k^{i-1}\sum_{j=1}^{n+1}x_k^{j-1}v_j, \ i=1,\ldots,n+1. \] A continuación, consideremos el polinomio de grado \(n\) siguiente: \[ P(x)=\sum_{j=1}^{n+1} x^{j-1} v_j =v_1 +v_2 x+\cdots + v_{n+1}x^n. \]
La igualdad anterior puede escribirse de la forma siguiente en función del polinomio \(P(x)\) como: \[ \sum_{k=1}^m x_k^{i-1} P(x_k)=0,\ i=1,\ldots,n+1. \] La expresión anterior puede escribirse matricialmente de la forma siguiente:
\[ \begin{align*} \begin{bmatrix}x_{1}^0&x_{2}^0&\ldots&x_{m}^0 \\x_{1}&x_{2}&\ldots&x_{m} \\\vdots&\vdots&\ddots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{m}^n \\\end{bmatrix}\cdot\begin{bmatrix}P(x_1)\\ P(x_2)\\\vdots\\ P(x_m)\end{bmatrix}= &\begin{bmatrix}0\\ 0\\\vdots \\ 0\end{bmatrix},\Rightarrow \\ \begin{bmatrix}1&1&\ldots&1 \\x_{1}&x_{2}&\ldots&x_{m} \\\vdots&\vdots&\ddots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{m}^n \\\end{bmatrix}\cdot\begin{bmatrix}P(x_1)\\ P(x_2)\\\vdots\\ P(x_m)\end{bmatrix}= &\begin{bmatrix}0\\ 0\\\vdots \\ 0\end{bmatrix} \end{align*} \]
Usando que \(n<m-1\) o \(n+1<m\), veamos que el rango de la matriz anterior \(\begin{bmatrix}1&1&\ldots&1 \\x_{1}&x_{2}&\ldots&x_{m} \\\vdots&\vdots&\ddots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{m}^n \\\end{bmatrix}\) vale \(n+1\).
Efectivamente, el determinante del menor de orden \(n+1\) es el denominado determinante de Vandermonde, que ya resolvimos en el Curso completo de Álgebra lineal con R, Python y Octave. \[ \begin{vmatrix}1&1&\ldots&1&1 \\x_{1}&x_{2}&\ldots&x_{n}&x_{n+1} \\\vdots&\vdots&\ddots&\vdots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{n}^n&x_{n+1}^n \\\end{vmatrix} =\prod_{1\leq i<j\leq n+1}(x_j-x_i). \] Como los \(x_k\), \(k=1,\ldots,m\) son distintos dos a dos, el determinante anterior es diferente de cero y el rango de la matriz \(\begin{bmatrix}1&1&\ldots&1 \\x_{1}&x_{2}&\ldots&x_{m} \\\vdots&\vdots&\ddots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{m}^n \\\end{bmatrix}\) vale \(n+1\).
Entonces la solución del sistema homogéneo: \[ \begin{bmatrix}1&1&\ldots&1 \\x_{1}&x_{2}&\ldots&x_{m} \\\vdots&\vdots&\ddots&\vdots \\x_{1}^n&x_{2}^n&\ldots&x_{m}^n \\\end{bmatrix}\cdot\begin{bmatrix}P(x_1)\\ P(x_2)\\\vdots\\ P(x_m)\end{bmatrix}= \begin{bmatrix}0\\ 0\\\vdots \\ 0\end{bmatrix}, \] es única: \(P(x_1)=P(x_2)=\cdots =P(x_m)=0\).
Hemos obtenido un polinomio \(P(x)\) de grado \(n\) que tiene \(m>n+1\) ceros. Sabemos que un polinomio de grado \(n\) sólo puede tener \(n\) ceros distintos como máximo, es decir \(m\leq n<n+1\), lo que contradice la condición \(m>n+1\).
Deducimos por tanto que \(\mathrm{det}(\mathbf{A})\neq 0\), tal como queríamos demostrar.
INPUT número de puntos de la nube
\(m\), puntos de la nube
\((x_k,y_k)\), \(k=1,\ldots,m\), \(n\) grado del polinomio aproximador
Set
\(\mathbf{A}=\mathbf{0}\). (Inicializamos la matriz
\(\mathbf{A}\) del sistema
\((n+1)\times (n+1)\) y el vector independiente
\(\mathbf{b}\))Set
\(\mathbf{b}=\mathbf{0}\).For k=1,...,m
(Calculamos
\(a_{ij}\), las componentes de la matriz del sistema
\(\mathbf{A}\) y las componentes del vector
\(\mathbf{b}\))
For i=1,...,n+1
Set
\(b[i]=b[i]+y_k\cdot x_k^{i-1}\).For j=1,...,n+1
Set
\(A[i,j]=A[i,j]+x_k^{i+j-2}\)Solve
\(\mathbf{A}\mathbf{a}=\mathbf{b}\) (Resolvemos el sistema para hallar los coeficientes del polinomio de aproximación
\(\mathbf{a}\))Print
\(a_0,a_1,\ldots,a_n\).Vamos a hallar la aproximación cuadrática (\(n=2\)) de la nube de puntos anterior:
\(x\) | \(y\) |
---|---|
\(1\) | \(1.6620781\) |
\(2\) | \(7.5824881\) |
\(3\) | \(2.6419837\) |
\(4\) | \(9.8076052\) |
\(5\) | \(10.2366814\) |
\(6\) | \(11.629404\) |
\(7\) | \(14.7915203\) |
\(x\) | \(y\) |
---|---|
\(8\) | \(15.7676398\) |
\(9\) | \(19.9221514\) |
\(10\) | \(20.4909214\) |
La matriz del sistema \(\mathbf{A}\) y el vector independiente \(\mathbf{b}\) para la aproximación cuadrática son los siguientes: \[ \begin{align*} \mathbf{A}= & \begin{bmatrix}m & \sum\limits_{k=1}^m x_k & \sum\limits_{k=1}^m x_k^2 \\ \sum\limits_{k=1}^m x_k & \sum\limits_{k=1}^m x_k^2 & \sum\limits_{k=1}^m x_k^3 \\ \sum\limits_{k=1}^m x_k^2 & \sum\limits_{k=1}^m x_k^3 & \sum\limits_{k=1}^m x_k^4\end{bmatrix}=\begin{bmatrix}10 & 1+2+\cdots +10 & 1^2+2^2+\cdots +10^2\\ 1+2+\cdots +10 & 1^2+2^2+\cdots +10^2 & 1^3+2^3+\cdots +10^3\\ 1^2 +2^2+\cdots +10^2 & 1^3+2^3+\cdots +10^3 & 1^4+2^4+\cdots +10^4 \end{bmatrix}\\ = & \begin{bmatrix}10&55&385 \\55&385&3025 \\385&3025&25333 \\\end{bmatrix},\\ \mathbf{b} = & \begin{bmatrix}\sum\limits_{k=1}^m y_k\\ \sum\limits_{k=1}^m x_k\cdot y_k\\ \sum\limits_{k=1}^m x_k^2\cdot y_k\end{bmatrix}=\begin{bmatrix} 1.6620781+7.5824881+\cdots + 20.4909214 \\ 1\cdot 1.6620781+2\cdot 7.5824881+\cdots +10\cdot 20.4909214\\ 1^2\cdot 1.6620781+2^2\cdot 7.5824881+\cdots +10^2\cdot 20.4909214\end{bmatrix}= \begin{bmatrix}114.532473470475 \\798.833594605984 \\6283.96699294644 \\\end{bmatrix}. \end{align*} \]
La solución del sistema \(\mathbf{A}\mathbf{a}=\mathbf{b}\) es la siguiente: \[ \mathbf{a}=\begin{bmatrix}0.880909172117338 \\1.70333595525723 \\0.0312724784679324 \\\end{bmatrix}. \]
El polinomio de aproximación de grado \(2\) por mínimos cuadrados es el siguiente: \[ P(x)=0.8809092+1.703336\cdot x+0.0312725\cdot x^2. \] El gráfico siguiente muestra la nube de puntos junto con la aproximación cuadrática (en azul).
El error mínimo cometido al aproximar la nube de puntos por el polinomio cuadrático vale: \[ \begin{align*} E(a_0,a_1,a_2) = & E(0.8809092,1.703336,0.0312725)=\sum_{k=1}^{10} (y_k-0.8809092-1.703336\cdot x_k-0.0312725\cdot x_k^2)^2\\ = & (1.6620781-0.8809092-1.703336\cdot 1-1.703336\cdot 1^2)^2 \\ & \quad +(7.5824881-0.8809092-1.703336\cdot 2-1.703336\cdot 2^2)^2 \\ & \quad +(2.6419837-0.8809092-1.703336\cdot 3-1.703336\cdot 3^2)^2\\ & \quad +(9.8076052-0.8809092-1.703336\cdot 4-1.703336\cdot 4^2)^2\\ & \quad +(10.2366814-0.8809092-1.703336\cdot 5-1.703336\cdot 5^2)^2\\ & \quad +(11.629404-0.8809092-1.703336\cdot 6-1.703336\cdot 6^2)^2\\ & \quad +(14.7915203-0.8809092-1.703336\cdot 7-1.703336\cdot 7^2)^2\\ & \quad +(15.7676398-0.8809092-1.703336\cdot 8-1.703336\cdot 8^2)^2\\ & \quad +(19.9221514-0.8809092-1.703336\cdot 9-1.703336\cdot 9^2)^2\\ & \quad +(20.4909214-0.8809092-1.703336\cdot 10-1.703336\cdot 10^2)^2\\= & 29.546113. \end{align*} \] Hemos reducido el error con respecto la aproximación lineal pero no demasiado.
En ocasiones, la mejor forma de aproximar la nube de puntos no tiene por qué ser lineal e incluso polinómica.
Imaginemos una situación en que la relación entre los puntos sea exponencial con una función de tipo \(y=b\cdot\mathrm{e}^{ax}\) o potencial con una función del tipo \(y=b\cdot x^a\), donde las constantes \(a\) y \(b\) se tienen que hallar de forma que minimicen la función error \[ E(a,b)=\sum_{k=1}^m \left(y_k-b\mathrm{e}^{a x_k}\right)^2, \] en el caso de relación exponencial o, \[ E(a,b)=\sum_{k=1}^m \left(y_k-b\cdot x_k^a\right)^2, \] en el caso de relación potencial.
En el caso de relación exponencial de la nube de puntos, para hallar las “mejores” \(a\) y \(b\) tenemos que resolver el siguiente sistema de ecuaciones siguiendo el mismo procedimiento del método de mínimos cuadrados: \[ \begin{align*} & \frac{\partial E}{\partial a}(a,b)= -2\sum_{k=1}^m \left(y_k-b\mathrm{e}^{ax_k}\right)\cdot b\cdot x_k\cdot\mathrm{e}^{a x_k}=0,\ \stackrel{b\neq 0}{\Rightarrow} \\ & b\sum_{k=1}^m x_k\cdot \mathrm{e}^{2ax_k}=\sum_{k=1}^m x_k\cdot y_k\cdot\mathrm{e}^{ax_k}, \\ & \frac{\partial E}{\partial b}(a,b)= -2\sum_{k=1}^m \left(y_k-b\mathrm{e}^{ax_k}\right)\cdot \mathrm{e}^{a x_k}=0,\ \Rightarrow b\sum_{k=1}^m \mathrm{e}^{2ax_k}=\sum_{k=1}^m y_k\cdot \mathrm{e}^{ax_k}. \end{align*} \] Para hallar los coeficientes \(a\) y \(b\) que minimicen la función error, tendremos que resolver el sistema anterior.
Fijémonos que el sistema anterior es una sistema no lineal. Su resolución es en general compleja y no siempre tenemos asegurada la solución del mismo.
En el caso de relación potencial de la nube de puntos, para hallar las “mejores” \(a\) y \(b\) tenemos que resolver el siguiente sistema de ecuaciones siguiendo el mismo procedimiento del método de mínimos cuadrados: \[ \begin{align*} & \frac{\partial E}{\partial a}(a,b)= -2\sum_{k=1}^m \left(y_k-b\cdot x_k^a\right)\cdot b\cdot x_k^a\cdot\ln (x_k)=0,\ \stackrel{b\neq 0}{\Rightarrow} \\ & b\sum_{k=1}^m x_k^{2a}\cdot \ln (x_k)= \sum_{k=1}^m x_k^a\cdot y_k\cdot\ln(x_k),\\ & \frac{\partial E}{\partial b}(a,b)= -2\sum_{k=1}^m \left(y_k-b\cdot x_k^a\right)\cdot x_k^a=0,\ \Rightarrow \\ & b\sum_{k=1}^m x_k^{2a}= \sum_{k=1}^m x_k^a\cdot y_k. \end{align*} \] En este caso, para hallar los coeficientes \(a\) y \(b\) que minimicen la función error, tendremos que resolver el sistema anterior.
Fijémonos que el sistema anterior es también un sistema no lineal. Su resolución es en general compleja y no siempre tenemos asegurada la solución del mismo.
Una manera de solventar la dificultad anterior es realizar los cambios siguientes:
Consideremos la nube de puntos siguientes:
\(x\) | \(y\) |
---|---|
\(-1\) | \(0.2880602\) |
\(-0.8\) | \(0.3322101\) |
\(-0.6\) | \(0.2184138\) |
\(-0.4\) | \(0.0371855\) |
\(-0.2\) | \(0.3006439\) |
\(0\) | \(2.3602867\) |
\(0.2\) | \(4.1137981\) |
\(x\) | \(y\) |
---|---|
\(0.4\) | \(6.525545\) |
\(0.6\) | \(12.9788606\) |
\(0.8\) | \(22.1050362\) |
\(1\) | \(39.7445124\) |
Si los dibujamos, vemos que la relación entre ellos no es precisamente lineal:
Miremos si la relación es exponencial.
Para ello, consideramos los puntos \((x_k,\ln (y_k))\):
\(x\) | \(\ln(y)\) |
---|---|
\(-1\) | \(-1.2445858\) |
\(-0.8\) | \(-1.1019877\) |
\(-0.6\) | \(-1.5213638\) |
\(-0.4\) | \(-3.2918371\) |
\(-0.2\) | \(-1.2018288\) |
\(0\) | \(0.8587831\) |
\(x\) | \(\ln(y)\) |
---|---|
\(0.2\) | \(1.4143467\) |
\(0.4\) | \(1.8757245\) |
\(0.6\) | \(2.5633219\) |
\(0.8\) | \(3.0958055\) |
\(1\) | \(3.6824718\) |
Si hallamos la mejor aproximación lineal de la nube de puntos anterior obtenemos la recta siguiente: \[ \log(y)=0.4662591+3.0287189\cdot x. \] La relación exponencial buscada es la siguiente: \[ y=\mathrm{e}^{0.4662591}\cdot\mathrm{e}^{3.0287189\cdot x}=1.59402\cdot\mathrm{e}^{3.0287189\cdot x}. \]
En el gráfico siguiente se observa la nube de puntos original junto con la función exponencial hallada:
El error cometido es el siguiente: \[ \begin{align*} E(a,b) = & E(3.0287189,1.59402)=\sum_{k=1}^{11} \left(y_k-1.59402\cdot\mathrm{e}^{3.0287189\cdot x_k}\right)^2\\ = & (0.2880602-1.59402\cdot\mathrm{e}^{3.0287189\cdot (-1)})^2+(0.3322101-1.59402\cdot\mathrm{e}^{3.0287189\cdot (-0.8)})^2 \\ & \quad + (0.2184138-1.59402\cdot\mathrm{e}^{3.0287189\cdot (-0.6)})^2+(0.0371855-1.59402\cdot\mathrm{e}^{3.0287189\cdot (-0.4)})^2\\ & \quad + (0.3006439-1.59402\cdot\mathrm{e}^{3.0287189\cdot (-0.2)})^2+(2.3602867-1.59402\cdot\mathrm{e}^{3.0287189\cdot 0})^2\\ & \quad + (4.1137981-1.59402\cdot\mathrm{e}^{3.0287189\cdot 0.2})^2+(6.525545-1.59402\cdot\mathrm{e}^{3.0287189\cdot 0.4})^2\\ & \quad + (12.9788606-1.59402\cdot\mathrm{e}^{3.0287189\cdot 0.6})^2+(22.1050362-1.59402\cdot\mathrm{e}^{3.0287189\cdot 0.8})^2\\ & \quad + (39.7445124-1.59402\cdot\mathrm{e}^{3.0287189\cdot 1})^2\\= & 77.2082768. \end{align*} \] En este ejemplo, no hemos resuelto el problema original que era hallar los valores \(a\) y \(b\) que minimicen la función error: \[ E(a,b)=\sum_{k=1}^m \left(y_k-b\mathrm{e}^{a x_k}\right)^2, \] De hecho, podemos comprobar que los valores \(a\) y \(b\) hallados no son los óptimos.
Efectivamente, si consideramos \(a=3\) y \(b=2\), obtenemos un error mucho menor:
\[ \begin{align*} E(a,b) = & E(3,2)=\sum_{k=1}^{11} \left(y_k-2\cdot\mathrm{e}^{3\cdot x_k}\right)^2\\ = & (0.2880602-2\cdot\mathrm{e}^{3\cdot (-1)})^2+(0.3322101-2\cdot\mathrm{e}^{3\cdot (-0.8)})^2 \\ & \quad + (0.2184138-2\cdot\mathrm{e}^{3\cdot (-0.6)})^2+(0.0371855-2\cdot\mathrm{e}^{3\cdot (-0.4)})^2\\ & \quad + (0.3006439-2\cdot\mathrm{e}^{3\cdot (-0.2)})^2+(2.3602867-2\cdot\mathrm{e}^{3\cdot 0})^2\\ & \quad + (4.1137981-2\cdot\mathrm{e}^{3\cdot 0.2})^2+(6.525545-2\cdot\mathrm{e}^{3\cdot 0.4})^2\\ & \quad + (12.9788606-2\cdot\mathrm{e}^{3\cdot 0.6})^2+(22.1050362-2\cdot\mathrm{e}^{3\cdot 0.8})^2\\ & \quad + (39.7445124-2\cdot\mathrm{e}^{3\cdot 1})^2\\= & 2.3479569. \end{align*} \] Lo único que hemos hecho es transformar la nube de puntos \((x_k,y_k),\) \(k=1,\ldots,m\) en otra nube de puntos \((x_k,\ln y_k)\), \(k=1,\ldots,m\) de la que sabemos hallar la aproximación lineal por mínimos cuadrados.
Ahora bien, dicha aproximación lineal, tal como hemos visto, no optimiza nuestro problema original.
Para optimizar nuestro problema original, tendríamos que resolver un sistema no lineal.
En un próximo capítulo, aprenderemos técnicas para resolver sistemas no lineales.
Como ya comentamos al principio del tema, vamos a intentar resolver el problema siguiente:
Dada una función \(f\in {\cal C}[a,b]\) una función continua en un intervalo \([a,b]\), vamos a hallar una función \(\hat{f}\) en un determinado espacio de funciones tal que minimice el error cuadrático siguiente: \[ E(\hat{f})=\int_a^b (f(x)-\hat{f}(x))^2\, dx. \]
Entonces, en lugar de considerar una nube de puntos discreta \((x_k,y_k)\), \(k=1,\ldots,m\), consideramos todo un “conjunto continuo” de puntos \((x,f(x))\), \(x\in [a,b]\), y queremos hallar una aproximación \(\hat{f}(x)\), \(x\in [a,b]\) que minimice la función error anterior.
Como podemos observar, hemos “cambiado” los sumatorios por integrales ya que una integral puede definirse intuitivamente como un sumatorio continuo.
En el caso en que el espacio de funciones sea el conjunto de polinomios de grado menor o igual que un cierto \(n\), tendremos el problema de aproximación polinomial:
Dada una función \(f\in {\cal C}[a,b]\) una función continua en un intervalo \([a,b]\), vamos a hallar un polinomio \(P(x)=a_n x^n+a_{n-1}x^{n-1}+\cdots +a_1 x+a_0\) de grado menor o igual que \(n\) tal que minimice el error cuadrático siguiente: \[ E(a_0,a_1,\ldots,a_n)=\int_a^b (f(x)-P(x))^2\, dx =\int_a^b \left(f(x)-\sum_{k=0}^n a_k x^k\right)^2\, dx. \]
La función error puede escribirse como: \[ E(a_0,a_1,\ldots,a_n)=\int_a^b f(x)^2\, dx-2\sum_{k=0}^n a_k\int_a^b x^k f(x)\, dx+\int_a^b\left(\sum_{k=0}^n a_k x^k\right)^2\, dx. \]
Como la función error \(E\) depende de \(n+1\) variables, el mínimo debe verificar el sistema de ecuaciones siguiente: \[ \begin{align*} \frac{\partial E}{\partial a_j}(a_0,a_1,\ldots,a_n)= 0,\ \Rightarrow & -2\int_a^b x^j f(x)\, dx+2\sum_{k=0}^n a_k\int_a^b x^{j+k}\, dx =0,\ \Rightarrow \\ \sum_{k=0}^n a_k\int_a^b x^{j+k}\, dx = & \int_a^b x^j f(x)\, dx,\ \Rightarrow \\ \sum_{k=0}^n a_k\left[\frac{x^{j+k+1}}{j+k+1}\right]_a^b = & \int_a^b x^j f(x)\, dx,\ \Rightarrow \\ \sum_{k=0}^n \left(\frac{b^{j+k+1}-a^{j+k+1}}{j+k+1}\right)\cdot a_k = & \int_a^b x^j f(x)\, dx, \end{align*} \] para \(j=0,\ldots,n\).
Obtenemos que el vector de coeficientes \(\mathbf{a}=(a_0,a_1,\ldots,a_n)\) verifica el sistema lineal siguiente denominado sistema de ecuaciones normales: \[ \mathbf{A}\mathbf{a}=\mathbf{b}, \] donde \(\mathbf{A}=(a_{ij})_{i,j=1,\ldots,n+1}\) es una matriz \((n+1)\times (n+1)\) de componentes \(a_{ij}=\frac{b^{i+j-1}-a^{i+j-1}}{i+j-1}\) y \(\mathbf{b}=(b_i)_{i=1,\ldots,n+1}\) es el término independiente de componentes \(b_i =\int_a^b x^{i-1} f(x)\, dx\):
\[ \mathbf{A}=\begin{bmatrix}b-a&\frac{b^2-a^2}{2}&\ldots&\frac{b^{n+1}-a^{n+1}}{n+1} \\\frac{b^2-a^2}{2}&\frac{b^3-a^3}{3}&\ldots&\frac{b^{n+2}-a^{n+2}}{n+2} \\\vdots&\vdots&\ddots&\vdots \\\frac{b^{n+1}-a^{n+1}}{n+1}&\frac{b^{n+2}-a^{n+2}}{n+2}&\ldots&\frac{b^{2n+1}-a^{2n+1}}{2n+1} \\\end{bmatrix},\ \mathbf{b}=\begin{bmatrix}\int_a^b f(x)\,dx\\ \int_a^b xf(x)\,dx\\\vdots\\\int_a^b x^{n}f(x)\,dx\end{bmatrix} \]
La matriz del sistema lineal anterior se denomina matriz de Hilbert.
Dicha matriz tiene un número de condición muy elevado, hecho que hace que aumenten los errores de redondeo de la solución. Ver el curso Métodos numéricos con Python - Álgebra lineal numérica para más detalles.
La tabla siguiente muestra el número de condición de la matriz de Hilbert para \(a=0\) y \(b=1\) usando la norma euclídea:
\(n\) | \(\mu(A)\) |
---|---|
\(3\) | \(15513.7387389\) |
\(4\) | \(476607.2502425\) |
\(5\) | \(14951058.6416385\) |
\(6\) | \(475367356.540476\) |
\(7\) | \(15257575617.1347\) |
\(8\) | \(493153337423.307\) |
Vamos a resolver la aproximación polinomial de una forma computacional más eficiente.
Antes de hacerlo, necesitamos unas definiciones previas:
Sean \(f_0,f_1\ldots,f_n\), \(n+1\) funciones definidas en el intervalo \([a,b]\). Diremos que el conjunto de funciones \(\{f_0,f_1,\ldots,f_n\}\) es linealmente independiente si la igualdad siguiente: \[ \lambda_0 f_0(x)+\lambda_1 f_1(x)+\cdots +\lambda_n f_n(x)=0, \] para cualquier \(x\in [a,b]\) implica que \(\lambda_0 =\lambda_1 =\cdots =\lambda_n =0\). En caso contrario, se dice que el conjunto de funciones es linealmente dependiente.
El resultado siguiente dice que cualquier conjunto de \(n+1\) polinomios de grado diferente es linealmente independiente:
Sean \(P_0(x),P_1(x),\ldots,P_n(x)\), \(n+1\) polinomios donde el polinomio \(P_j(x)\) tiene grado \(j\), \(j=0,1,\ldots,n\). Entonces el conjunto de funciones polinómicas \(\{P_0(x),P_1(x),\ldots,P_n(x)\}\) es linealmente independiente.
Demostración
Sean \(\lambda_0,\lambda_1,\ldots,\lambda_n\), \(n+1\) números reales tal que: \[ \lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)=0, \] para cualquier \(x\in [a,b]\).
Sea \(P(x)\) el polinomio \(P(x)=\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) de grado menor o igual que \(n\) que vale \(0\) en cualquier punto del intervalo \([a,b]\).
Entonces \(P(x)\equiv 0\) ya que como tiene más de \(n\) ceros, el único polinomio de grado menor o igual que \(n\) que tiene más de \(n\) ceros es el polinomio \(P(x)\equiv 0\).
Como \(P(x)\) es el polinomio idénticamente nulo, todos los coeficientes de \(x^j\) serán \(0\) para \(j=0,1,\ldots,n\).
En particular, el coeficiente de \(x^n\) será \(0\) pero el único término que contiene \(x^n\) en la expresión \(P(x)=\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) es \(\lambda_n P_n(x)\). Por tanto, \(\lambda_n=0\).
Entonces \(P(x)=\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_{n-1}P_{n-1}(x)\). Razonando de la misma manera anterior pero en lugar de \(x^n\), consideramos \(x^{n-1}\), tendremos que \(\lambda_{n-1}=0\).
Y así sucesivamente hasta llegar a la conclusión que \(\lambda_j=0,\ j=0,1,\ldots,n\), tal como queríamos demostrar.
Una consecuencia de la proposición anterior es la siguiente:
Sean \(P_0(x),P_1(x),\ldots,P_n(x)\), \(n+1\) polinomios donde el polinomio \(P_j(x)\) tiene grado \(j\), \(j=0,1,\ldots,n\). Entonces el conjunto de funciones polinómicas \(\{P_0(x),P_1(x),\ldots,P_n(x)\}\) forman una base para el espacio vectorial formado por los polinomios de grado menor o igual que \(n\).
Hay de demostrar lo siguiente:
El conjunto de polinomios \(\{P_0(x),P_1(x),\ldots,P_n(x)\}\) es linealmente independiente que ya está probado en la proposición anterior.
Cualquier polinomio \(P(x)\) de grado menor o igual que \(n\) puede escribirse como combinación lineal de \(P_0(x),P_1(x),\ldots,P_n(x)\), es decir, existen valores reales \(\lambda_0,\lambda_1,\ldots,\lambda_n\) tal que \[ P(x)=\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x). \] Para ello, escribimos \(P_j(x)\), \(j=0,\ldots,n\) y \(P(x)\) de la forma siguiente: \[ \begin{align*} P_j(x)=& a_{j,n} x^n+a_{j,n-1}x^{n-1}+\cdots + a_{j,1}x+a_{j,0},\\ P(x)=&a_n x^n+a_{n-1}x^{n-1}+\cdots + a_1 x+a_0, \end{align*} \] donde \(j=0,\ldots,n\).
El coeficiente de \(x^n\) en la expresión \(\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) es \(\lambda_n\cdot a_{n,n}\).
Por tanto, como el coeficiente de \(x^n\) en \(P(x)\) y \(\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) deben ser iguales, tenemos que \(a_n=\lambda_n a_{n,n}\), es decir, \(\lambda_n =\frac{a_n}{a_{n,n}}\) ya que \(a_{n,n}\neq 0\) al ser \(P_n(x)\) un polinomio de grado \(n\).
En general, suponemos calculados \(\lambda_n,\ldots,\lambda_{j+1}\). El coeficiente de \(x^j\) en la expresión \(\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) es \(\lambda_n\cdot a_{n,j}+\lambda_{n-1}\cdot a_{n-1,j}+\cdots +\lambda_{j+1}a_{j+1,j}+\lambda_j a_{j,j}\).
Por tanto, como el coeficiente de \(x^j\) en \(P(x)\) y \(\lambda_0 P_0(x)+\lambda_1 P_1(x)+\cdots +\lambda_n P_n(x)\) deben ser iguales, tenemos que \[ a_j=\lambda_n\cdot a_{n,j}+\lambda_{n-1}\cdot a_{n-1,j}+\cdots +\lambda_{j+1}a_{j+1,j}+\lambda_j a_{j,j}, \] es decir, \[ \lambda_j =\frac{a_j-(\lambda_n\cdot a_{n,j}+\lambda_{n-1}\cdot a_{n-1,j}+\cdots +\lambda_{j+1}a_{j+1,j})}{a_{j,j}}, \] ya que \(a_{j,j}\neq 0\) al ser \(P_j(x)\) un polinomio de grado \(j\).
Quedan, por tanto, calculados \(\lambda_j\), \(j=0,1,\ldots,n\) tal como queríamos demostrar.
Vamos a generalizar la aproximación polinomial de una función en términos de funciones peso.
Una función peso es una función que asocia más o menos importancia a los puntos del intervalo \([a,b]\):
Diremos que una función \(w\) definida en el intervalo \((a,b)\) (¡ojo!, basta abierto) es una función peso si
Consideremos el intervalo \([-1,1]\) con la función siguiente \(w(x)=\frac{1}{\sqrt{1-x^2}}\) definida en el intervalo abierto \((-1,1)\).
Dicha función:
Si tenemos una función peso \(w(x)\) en el intervalo \([a,b]\) y una base \(P_0(x),P_1(x),\ldots,P_n(x)\) de polinomios del espacio vectorial de polinomios de grado menor o igual que \(n\), podemos generalizar el problema de aproximación polinomial de la forma siguiente:
Dada una función \(f\in {\cal C}[a,b]\) una función continua en un intervalo \([a,b]\) y una función peso \(w(x)\) vamos a hallar un polinomio \(P(x)=a_n P_n(x)+a_{n-1}P_{n-1}(x)+\cdots +a_1 P_1(x)+a_0 P_0(x)\) de grado menor o igual que \(n\) tal que minimice el error cuadrático siguiente: \[ \begin{align*} E(a_0,a_1,\ldots,a_n)= & \int_a^b w(x) (f(x)-P(x))^2\, dx \\ = & \int_a^b w(x)\left(f(x)-\sum_{k=0}^n a_k P_k(x)\right)^2\, dx. \end{align*} \]
El problema de aproximación original se obtiene considerando la función peso \(w(x)\equiv 1\) y como base de polinomios del espacio vectorial de polinomios de grado menor o igual que \(n\), \(P_j(x)=x^j\), \(j=0,\ldots,n\).
Siguiendo un procedimiento similar, podemos escribir la función error de la forma siguiente: \[ \begin{align*} E(a_0,a_1,\ldots,a_n)= & \int_a^b w(x)f(x)^2\, dx-2\sum_{k=0}^n a_k\int_a^b w(x)P_k(x) f(x)\, dx\\ & \quad +\int_a^b w(x)\left(\sum_{k=0}^n a_k P_k(x)\right)^2\, dx. \end{align*} \]
A continuación, recordemos que para hallar los coeficientes \(a_j\), \(j=0,1,\ldots,n\), hemos de resolver el siguiente sistema de ecuaciones: Como la función error \(E\) depende de \(n+1\) variables, el mínimo debe verificar el sistema de ecuaciones siguiente: \[ \begin{align*} & \frac{\partial E}{\partial a_j}(a_0,a_1,\ldots,a_n)= 0,\ \Rightarrow \\ & -2\int_a^b w(x)P_j(x) f(x)\, dx+2\sum_{k=0}^n a_k\int_a^b w(x) P_j(x)P_k(x)\, dx = 0,\ \Rightarrow \\ & \sum_{k=0}^n a_k\int_a^b w(x) P_j(x)P_k(x)\, dx = \int_a^b w(x)P_j(x) f(x)\, dx, \end{align*} \] donde \(j=0,1,\ldots,n\).
Obtenemos que el vector de coeficientes \(\mathbf{a}=(a_0,a_1,\ldots,a_n)\) verifica el sistema lineal siguiente denominado sistema de ecuaciones normales: \[ \mathbf{A}\mathbf{a}=\mathbf{b}, \] donde \(\mathbf{A}=(a_{ij})_{i,j=1,\ldots,n+1}\) es una matriz \((n+1)\times (n+1)\) de componentes \(a_{ij}=\int_a^b w(x)P_{i-1}(x)P_{j-1}(x)\, dx\) y \(\mathbf{b}=(b_i)_{i=1,\ldots,n+1}\) es el término independiente de componentes \(b_i =\int_a^b w(x) P_{i-1}(x) f(x)\, dx\):
\[ \mathbf{A}=\begin{bmatrix}\int_a^b w(x)P_{0}(x)^2\, dx&\int_a^b w(x)P_{0}(x)P_1(x)\, dx&\ldots&\int_a^b w(x)P_{0}(x)P_n(x)\, dx \\\int_a^b w(x)P_{0}(x)P_1(x)\, dx&\int_a^b w(x)P_{1}(x)^2\, dx&\ldots&\int_a^b w(x)P_{1}(x)P_n(x)\, dx \\\vdots&\vdots&\ddots&\vdots \\\int_a^b w(x)P_{0}(x)P_n(x)\, dx&\int_a^b w(x)P_{1}(x)P_n(x)\, dx&\ldots&\int_a^b w(x)P_n(x)^2\, dx \\\end{bmatrix},\ \mathbf{b}=\begin{bmatrix}\int_a^b w(x)P_0(x)f(x)\,dx\\ \int_a^b w(x)P_1(x)f(x)\,dx\\\vdots\\\int_a^b w(x)P_n(x)f(x)\,dx\end{bmatrix}. \]
Aquí viene la idea clave: si pudiésemos elegir la base de polinomios \(P_0(x),P_1(x),\ldots,P_n(x)\) tal que: \[ \int_a^b w(x)P_i(x)P_j(x)=0, \] para \(i\neq j\) y \(i,j=0,\ldots,n+1\), la matriz \(\mathbf{A}\) del sistema lineal anterior sería diagonal y la resolución del sistema sería inmediata: \[ a_j = \frac{b_{j+1}}{a_{j+1,j+1}}=\frac{\int_a^b w(x)P_{j}(x)f(x)\,dx}{\int_a^b w(x)P_{j}(x)^2\, dx}, \] \(j=0,\ldots,n\).
La base de funciones que cumplan la condición anterior \(\int_a^b w(x)P_i(x)P_j(x)=0,\) para \(i\neq j\), \(i,j=0,\ldots,n\) se denominan base de funciones ortogonales:
Diremos que un conjunto de funciones \(\{f_0,f_1,\ldots,f_n\}\) es un conjunto ortogonal de funciones en el intervalo \([a,b]\) con respecto la función peso \(w(x)\) si: \[ \int_a^b w(x)f_i(x)f_j(x)\, dx=\begin{cases}0, & \mbox{si }i\neq j,\\ c_j>0, & \mbox{si } i=j.´\end{cases} \] Si además, \(c_0=\cdots = c_n=1\), el conjunto de funciones se denomina conjunto ortonormal de funciones.
El siguiente resultado dice cómo calcular la base de polinomios ortogonales dado un intervalo \([a,b]\) y una función peso \(w(x)\).
Sea \(\{P_0,P_1,\ldots,P_n\}\) el conjunto de polinomios definidos de la forma siguiente: \[ P_0(x)\equiv 1,\ P_1(x)=x-\alpha_1, \] para \(x\in [a,b]\) y \(\alpha_1 = \frac{\int_a^b x w(x)\, dx}{\int_a^b w(x)\, dx},\) y para \(k\geq 2\), \[ P_k(x)=(x-\alpha_k)P_{k-1}(x)-\beta_k P_{k-2}(x), \] para \(x\in [a,b]\) y \(\alpha_k=\frac{\int_a^b x w(x)P_{k-1}(x)^2\, dx}{\int_a^b w(x)P_{k-1}(x)^2\, dx},\) \(\beta_k=\frac{\int_a^b x w(x)P_{k-1}(x)P_{k-2}(x)\, dx}{\int_a^b w(x)P_{k-2}(x)^2\, dx}.\)
Entonces el conjunto anterior de polinomios es un conjunto ortogonal con respecto a la función peso \(w(x)\).
Antes de demostrar el Teorema, fijémonos en lo siguiente:
Demostrar que el conjunto \(\{P_0,P_1,\ldots,P_n\}\) es ortogonal es equivalente a demostrar que para todo \(k\), \(k=1,\ldots,n\) se cumple que: \[ \int_a^b w(x)P_k(x)P_l(x)\, dx=0, \] para \(l=0,\ldots,k-1\).
Los polinomios ortogonales son únicos excepto por una constante.
Es decir, si \(\{P_0,P_1\ldots,P_n\}\) son \(n\) polinomios ortogonales definidos por el Teorema, también los son \(\{\gamma_0 P_0,\gamma_1 P_1\ldots,\gamma_n P_n\}\) donde \(\gamma_0,\gamma_1,\ldots,\gamma_n\) son \(n\) constantes arbitrarias..
El Teorema ha realizado una “normalización” eligiendo los polinomios \(P_i(x)\) mónicos, es decir, el coeficiente principal o el coeficiente de \(x^i\) siempre vale \(1\), \(i=0,1,\ldots,n\).
Ahora bien, las soluciones de las ecuaciones normales \((a_i)_{i=0,\ldots,n}\) dependen de los polinomios ortogonales elegidos, es decir, dependen de las \(\gamma_i\), \(i=0,1,\ldots,n\) de la forma siguiente:
si en lugar de considerar \(P_i\), consideramos \(\gamma_i P_i\), \(i=0,1,\ldots,n\): \[ \tilde{a}_i = \frac{\int_a^b w(x)\gamma_i P_{i}(x)f(x)\,dx}{\int_a^b w(x)\gamma_i^2 P_{i}(x)^2\, dx} =\frac{1}{\gamma_i} \frac{\int_a^b w(x)P_{i}(x)f(x)\,dx}{\int_a^b w(x)P_{i}(x)^2\, dx}=\frac{1}{\gamma_i}a_i, \] siendo \(a_i\) las soluciones de las ecuaciones normales considerando los polinomios ortogonales \(P_i\) y \(\tilde{a}_i\), las soluciones de las ecuaciones normales considerando los polinomios ortogonales \(\gamma_i P_i\), \(i=0,1,\ldots,n\).
Usando la demostración del teorema anterior, tenemos el corolario siguiente:
Sea \(\{P_0,P_1,\ldots,P_n\}\) el conjunto de polinomios ortogonales definidos según el Teorema anterior. Entonces:
Si consideramos el intervalo \([-1,1]\) y la función peso \(w(x)\equiv 1\), los polinomios ortogonales se denominan polinomios de Legendre. Calculemos los primeros: \[ \begin{align*} P_0(x)= & 1,\\ P_1(x)=& (x-\alpha_1)P_0(x)=x-\alpha_1,\ \alpha_1=\frac{\int_{-1}^1 x\,dx}{\int_{-1}^1 1\, dx}=0,\ \Rightarrow P_1(x)=x. \end{align*} \] El polinomio \(P_2(x)\) será: \[ P_2(x)= (x-\alpha_2)P_1(x)-\beta_2 P_0(x)=(x-\alpha_2)x-\beta_2, \] con \[ \begin{align*} \alpha_2 = & \frac{\int_{-1}^1 x\cdot P_1(x)^2\, dx}{\int_{-1}^1 P_1(x)^2\, dx}=\frac{\int_{-1}^1 x\cdot x^2\,dx}{\int_{-1}^1 x^2\, dx}=\frac{\int_{-1}^1 x^3\,dx}{\int_{-1}^1 x^2\, dx}=0,\\ \beta_2= & \frac{\int_{-1}^1 xP_1(x)P_0(x)\, dx}{\int_{-1}^1 P_0(x)^2\, dx}=\frac{\int_{-1}^1 x\cdot x\, dx}{\int_{-1}^1 1\, dx}=\frac{\int_{-1}^1 x^2\, dx}{\int_{-1}^1 1\, dx}=\frac{\frac{2}{3}}{2}=\frac{1}{3}. \end{align*} \] Por tanto \(P_2(x)=x^2-\frac{1}{3}\).
El polinomio \(P_3(x)\) será: \[ P_3(x)= (x-\alpha_3)P_2(x)-\beta_3 P_1(x)=(x-\alpha_3)\left(x^2-\frac{1}{3}\right)-\beta_3 x, \] con \[ \begin{align*} \alpha_3 = & \frac{\int_{-1}^1 x\cdot P_2(x)^2\, dx}{\int_{-1}^1 P_2(x)^2\, dx}=\frac{\int_{-1}^1 x\cdot \left(x^2-\frac{1}{3}\right)^2\,dx}{\int_{-1}^1 \left(x^2-\frac{1}{3}\right)^2\, dx}=0,\\ \beta_3= & \frac{\int_{-1}^1 xP_2(x)P_1(x)\, dx}{\int_{-1}^1 P_1(x)^2\, dx}=\frac{\int_{-1}^1 x\cdot \left(x^2-\frac{1}{3}\right)x\, dx}{\int_{-1}^1 x^2\, dx}=\frac{\frac{8}{45}}{\frac{2}{3}}=\frac{4}{15}. \end{align*} \] Por tanto \(P_3(x)=\left(x-0\right)\left(x^2-\frac{1}{3}\right)-\frac{4}{15} x=x^3-\frac{3}{5}x\).
Y así sucesivamente.
En el capítulo de Derivación e Integración numérica del curso Métodos Numéricos con Python. Cálculo Numérico se dan más fórmulas recurrentes y explícitas para calcular los polinomios de Legendre.
Consideremos la función \(f(x)=\cos(\pi x)\) donde \(x\in [-1,1]\).
Vamos a hallar la aproximación polinomial de grado \(3\) usando polinomios de Legendre, es decir, considerando \(w(x)\equiv 1\) como función peso.
El polinomio de aproximación de grado \(3\) será: \[ P(x)=a_3 P_3(x)+a_2 P_2(x)+a_1 P_1(x)+a_0 P_0(x), \] donde los \(P_i(x)\), \(i=0,1,2,3\) son los polinomios de Legendre: \[ P_0(x)=1,\ P_1(x)=x,\ P_2(x)=x^2-\frac{1}{3},\ P_3(x)=x^3-\frac{3}{5}x, \] y los coeficientes \(a_i\), \(i=0,1,2,3\) serán: \[ \begin{align*} a_0= & \frac{\int_{-1}^1 w(x)P_{0}(x)f(x)\,dx}{\int_{-1}^1 w(x)P_{0}(x)^2\, dx}=\frac{\int_{-1}^1 \cos(\pi x)\,dx}{\int_{-1}^1 1\, dx}=0,\\ a_1= & \frac{\int_{-1}^1 w(x)P_{1}(x)f(x)\,dx}{\int_{-1}^1 w(x)P_{1}(x)^2\, dx}=\frac{\int_{-1}^1 x\cos(\pi x)\,dx}{\int_{-1}^1 x^2\, dx}=0,\\ \end{align*} \]
\[ \begin{align*} a_2= & \frac{\int_{-1}^1 w(x)P_{2}(x)f(x)\,dx}{\int_{-1}^1 w(x)P_{2}(x)^2\, dx}=\frac{\int_{-1}^1 \left(x^2-\frac{1}{3}\right)\cos(\pi x)\,dx}{\int_{-1}^1 \left(x^2-\frac{1}{3}\right)^2\, dx}=\frac{-\frac{4}{\pi^2}}{\frac{8}{45}}=-\frac{45}{2 \pi ^2},\\ a_3= & \frac{\int_{-1}^1 w(x)P_{3}(x)f(x)\,dx}{\int_{-1}^1 w(x)P_{3}(x)^2\, dx}=\frac{\int_{-1}^1 \left(x^3-\frac{3}{5}x\right)\cos(\pi x)\,dx}{\int_{-1}^1 \left(x^3-\frac{3}{5}x\right)^2\, dx}=0,\\ \end{align*} \] El polinomio de aproximación de grado como máximo \(3\) será: \(P(x)=-\frac{45}{2 \pi ^2}P_2(x)=-\frac{45}{2 \pi ^2}\left(x^2-\frac{1}{3}\right)\).
En el gráfico siguiente se muestra en negro la función \(f(x)\) y en rojo, la aproximación polinomial de grado \(3\) como máximo.
Una de las aproximaciones más usadas es la denominada aproximación minimax que consiste en resolver el problema siguiente:
Sea \(f\in {\cal C}[a,b]\) una función continua en el intervalo \([a,b]\). Queremos hallar el polinomio \(\hat{P}_n(x)\) de grado menor o igual que \(n\) tal que minimice la norma infinito entre los polinomios de grado menor o igual que \(n\), \(P_n\) es decir: \[ \|f-\hat{P}_n\|_\infty =\max_{x\in [a,b]}|f(x)-\hat{P}_n(x)|=\min_{P_n}\|f-P_n\|_\infty =\min_{P_n}\max_{x\in [a,b]}|f(x)-P_n(x)|. \] Dicho en otras palabras, queremos hallar el polinomio \(\hat{P}_n\) de grado menor o igual que \(n\) que minimice el valor máximo del error \(|f(x)-\hat{P}_n(x)|\) dentro del intervalo \([a,b]\) de entre todos los polinomios de grado menor o igual que \(n\).
La razón que se llame aproximación minimax está en la propia definición del problema: \(\min_{P_n}\max_{x\in [a,b]}|f(x)-P_n(x)|\).
El siguiente resultado nos caracteriza el polinomio buscado \(\hat{P}_n\):
El polinomio \(\hat{P}_n\) que minimiza la norma infinito \(\|f-P_n\|_\infty\) de entre todos los polinomios de grado menor o igual que \(n\) verifica lo siguiente:
la función error \(e_n(x)=f(x)-\hat{f}(x)\) tiene como mínimo \(n+2\) abscisas \(\xi_i\), \(i=0,1,\ldots,n+1\) ordenadas en el intervalo \([a,b]\) de la forma \(a\leq\xi_0<\xi_1<\cdots <\xi_{n+1}\leq b\) verificando la propiedad de equioscilación: \[ |e_n(\xi_j)|=\|e_n\|_\infty =\max_{x\in [a,b]}|e_n(x)|=\max_{x\in [a,b]}|f(x)-\hat{P}_n(x)|, \] para \(j=0,1,\ldots,n+1\), con alternancia de signos: \[ e_n(\xi_0)=-e_n(\xi_1)=\cdots = (-1)^{n+1}e_n(\xi_{n+1}). \]
El Teorema anterior nos dice que si hallamos un polinomio de grado menor o igual que \(n\), \(\hat{P}_n\), tal que existen \(n+1\) valores reales en el intervalo \([a,b]\), \(a\leq\xi_0<\xi_1<\cdots <\xi_{n+1}\leq b\), cumpliendo \(|e_n(\xi_j)|=\|e_n\|_\infty\), \(j=0,\ldots,n+1\) y \(e_n(\xi_j)=-e_n(\xi_{j-1})\), \(j=1,\ldots,n+1\), entonces dado un polinomio cualquiera \(P_n\) de grado menor o igual que \(n\), se cumple: \[ \|f-\hat{P}_n\|_\infty\leq \|f-P_n\|_\infty. \]
La demostración se realiza por reducción al absurdo.
Supongamos que exista un polinomio \(\tilde{P}_n\) de grado menor o igual que \(n\) tal que \[ \|f-\tilde{P}_n\|_\infty < \|f-\hat{P}_n\|_\infty. \] En particular, si usamos la condición anterior en las abscisas \(\xi_j\), \(j=0,1,\ldots,n+1\), obtenemos: \[ |f(\xi_j)-\tilde{P}_n(\xi_j)|\leq \|f-\tilde{P}_n\|_\infty< \|f-\hat{P}_n\|_\infty = |f(\xi_j)-\hat{P}_n(\xi_j)|=\|e_n\|_\infty, \] para \(j=0,1,\ldots,n+1\).
A continuación consideramos el polinomio diferencia \(\tilde{P}_n(x)-\hat{P}_n(x)=(f(x)-\hat{P}_n(x))-(f(x)-\tilde{P}_n(x))\) de grado menor o igual que \(n\).
Dicho polinomio, usando que \(|f(\xi_j)-\tilde{P}_n(\xi_j)|<|f(\xi_j)-\hat{P}_n(\xi_j)|\), tiene el mismo signo en las abscisas \(\xi_j\) que la función error \(e_n(x)=f(x)-\hat{P}(x)\).
Como \(e_n(\xi_j)\) va alternando de signo en las abscisas \(\xi_j\) y como hay como mínimo \(n+2\) abscisas, podemos decir por el Teorema de Bolzano que el polinomio \(\tilde{P}_n(x)-\hat{P}_n(x)\) tiene como mínimo \(n+1\) ceros distintos.
Ahora bien, sabemos que todo polinomio de grado menor o igual que \(n\) tiene como máximo \(n\) ceros, hecho que contradice la afirmación anterior.
Por tanto, la suposición que hemos hecho es falsa y no puede existir un polinomio \(\tilde{P}_n(x)\) tal que \(\|f-\tilde{P}_n\|_\infty < \|f-\hat{P}_n\|_\infty\), tal como queríamos demostrar.
La aproximación minimax \(\hat{P}_n\) es única.
Supongamos que hubiese dos soluciones a la aproximación minimax, \(\hat{P}_{1,n}\) y \(\hat{P}_{2,n}\). En este caso, se verificaría: \[ \|e_{n,1}\|_\infty =\|f-\hat{P}_{n,1}\|_\infty =\|e_{n,2}\|_\infty =\|f-\hat{P}_{n,2}\|_\infty. \]
Entonces, consideramos la función \[ R_n(x)=\hat{P}_{1,n}(x)-\hat{P}_{2,n}(x)=(f(x)-\hat{P}_{2,n}(x))-(f(x)-\hat{P}_{1,n}(x))=e_{n,2}(x)-e_{n,1}(x). \] Dicha función es un polinomio de grado menor o igual que \(n\) cuyo valor en las abscisas \(\xi_j\), \(j=0,1,\ldots,n+1\) vale: \[ R_n(\xi_j)=e_{n,2}(\xi_j)-e_{n,1}(\xi_j)=(-1)^{j+1}(\|e_{n,1}\|_\infty-\|e_{n,2}\|_\infty)=0, \] para \(j=0,1,\ldots,n+1\).
Entonces \(R_n\) es un polinomio de grado menor o igual que \(n\) con \(n+2\) ceros. El único polinomio de grado menor o igual que \(n\) que cumple lo anterior es el polinomio idénticamente nulo: \[ R_n(x)\equiv 0,\ \Rightarrow \hat{P}_{n,1}(x)=\hat{P}_{n,2}(x), \] tal como queríamos demostrar.
Consideremos la función \(f(x)=\mathrm{e}^x\) definida en el intervalo \([0,1]\).
Vamos a hallar la aproximación minimax de grado \(1\).
Es decir vamos a hallar la recta \(\hat{P}_1(x)=\hat{a}_0+\hat{a}_1 x\) tal que: \[ \|f-\hat{P}_1\|_\infty =\max_{x\in [0,1]}|\mathrm{e}^x-(\hat{a}_0+\hat{a}_1 x)|\leq \|f-P_1\|_\infty =\max_{x\in [0,1]}|\mathrm{e}^x-(a_0+a_1 x)|, \] para cualquier polinomio \(P_1(x)=a_0+a_1 x\), o para cualquier par de coeficientes \(a_0,a_1\).
Usando el Teorema anterior, hemos de hallar tres abscisas \(\xi_0,\xi_1,\xi_2\) tal que: \[ |e_1(\xi_j)|=\max_{x\in [0,1]}|\mathrm{e}^x-(\hat{a}_0+\hat{a}_1\xi_j)|,\ j=0,1,2, \] y además \(e_1(\xi_0)=-e_1(\xi_1)=e_1(\xi_2)\), o, \[ \mathrm{e}^{\xi_0}-(\hat{a}_0+\hat{a}_1\xi_0)=-(\mathrm{e}^{\xi_1}-(\hat{a}_0+\hat{a}_1\xi_1))=\mathrm{e}^{\xi_2}-(\hat{a}_0+\hat{a}_1\xi_2). \] Como las tres absisas \(\xi_0,\xi_1,\xi_2\) tienen que ser extremos absolutos de la función \(|\mathrm{e}^x-(\hat{a}_0+\hat{a}_1 x)|\) miremos primeros cuantos extremos relativos tiene la función \(e_1(x)=\mathrm{e}^x-(\hat{a}_0+\hat{a}_1 x)\): \[ e_1'(x)=0,\ \Rightarrow \mathrm{e}^x-\hat{a}_1 =0,\ \Rightarrow x=\ln(\hat{a}_1). \]
Como la función \(e_1(x)\) sólo tiene un extremo relativo en el intervalo \((0,1)\), tendremos que necesariamente las abscisas \(\xi_0\) y \(\xi_2\) tienen que coincidir con los extremos del intervalo.
Es decir, \(\xi_0=0,\ \xi_1 =\ln(\hat{a}_1),\ \xi_2=1\).
Por tanto, \[ \begin{align*} e_1(\xi_0)= & e_1(0)=1-\hat{a}_0 =-e_1(\xi_1)=-e_1(\ln(\hat{a}_1))=-(\hat{a}_1-(\hat{a}_0+\hat{a}_1\ln(\hat{a}_1)))=\hat{a}_0-\hat{a}_1(1-\ln(\hat{a}_1))\\ = & e_1(\xi_2)=e_1(1)=\mathrm{e}-(\hat{a}_0+\hat{a}_1). \end{align*} \] De la condición \(1-\hat{a}_0 =\mathrm{e}-(\hat{a}_0+\hat{a}_1)\) podemos hallar el coeficiente \(\hat{a}_1\): \[ \hat{a}_1 =\mathrm{e}-1\approx 1.7182818. \] De la condición \(1-\hat{a}_0 =\hat{a}_0-\hat{a}_1(1-\ln(\hat{a}_1))\) y usando que \(\hat{a}_1 =\mathrm{e}-1\) podemos hallar el coeficiente \(\hat{a}_0\): \[ \hat{a}_0 =\frac{1}{2}(1+\hat{a}_1(1-\ln(\hat{a}_1)))=\frac{1}{2}(1+(\mathrm{e}-1)\cdot (1-\ln(\mathrm{e}-1)))\approx 0.8940666. \] La mejor recta en la aproximación minimax de la función \(\mathrm{e}^x\) en el intervalo \([0,1]\) es: \[ \hat{P}_1(x)=\frac{1}{2}(1+(\mathrm{e}-1)\cdot (1-\ln(\mathrm{e}-1)))+(\mathrm{e}-1)x=0.8940666+1.7182818 x. \]
El error de la aproximación minimax es relativamente sencillo de calcular: \[ \begin{align*} \|e_1\|_\infty = & \|\mathrm{e}^x-(\hat{a}_0+\hat{a}_1x)\|_\infty =|e_1(\xi_0)|=|1-\hat{a}_0|=\left|1-\left(\frac{1}{2}(1+(\mathrm{e}-1)\cdot (1-\ln(\mathrm{e}-1)))\right)\right|\\ = & \left|\frac{1}{2}(1-(\mathrm{e}-1)\cdot (1-\ln(\mathrm{e}-1)))\right|\approx 0.1059334. \end{align*} \]
La gráfica siguiente muestra la función \(f(x)=\mathrm{e}^x\) en negro y la aproximación lineal \(\hat{P}_1(x)\) en azul junto con los puntos \(\xi_i\), \(i=0,1,2\) en rojo mostrando la función error \(|e_1(\xi_i)|\), \(i=0,1,2\):
Los polinomios de Chebyschev \((T_k(x))_{k\geq 0}\) son los polinomios ortogonales correspondientes al intervalo \([-1,1]\) y a la función peso \(w(x)=\frac{1}{\sqrt{1-x^2}}\) y como veremos a continuación tienen un papel fundamental en la aproximación minimax.
En un ejemplo anterior, demostramos que dicha función peso cumplía las propiedades correspondientes.
Aunque los polinomios de Chebyschev se pueden definir a partir de la recurrencia siguiente tal como hemos visto: \[ \begin{align*} T_0(x)= & 1,\\ T_1(x)= & x-\alpha_1,\ \alpha_1 = \frac{\int_{-1}^1 \frac{x}{\sqrt{1-x^2}}\, dx}{\int_{-1}^1 \frac{1}{\sqrt{1-x^2}}\, dx}=0,\ \Rightarrow T_1(x)=x, \end{align*} \]
\[ T_k(x) = (x-\alpha_k)T_{k-1}(x)-\beta_k T_{k-2}(x), \] donde \[ \alpha_k =\frac{\int_{-1}^1 \frac{x}{\sqrt{1-x^2}}T_{k-1}(x)^2\, dx}{\int_{-1}^1 \frac{1}{\sqrt{1-x^2}} T_{k-1}(x)^2\, dx},\quad \beta_k =\frac{\int_{-1}^1 \frac{x}{\sqrt{1-x^2}}T_{k-1}(x) T_{k-2}(x)\, dx}{\int_{-1}^1 \frac{1}{\sqrt{1-x^2}} T_{k-2}(x)^2\, dx}, \] vamos a definirlos de la siguiente manera mucho más simple y más fácil de trabajar: \[ T_n(x)=\cos(n\arccos(x)),\ n\geq 0. \]
Los polinomios de Chebyschev cumplen la expresión siguiente: \[ T_n(x)=\cos(n\arccos(x)),\ n\geq 0, \] junto con la recurrencia: \[ T_{n+1}(x)=2xT_n(x)-T_{n-1}(x). \]
Queremos realizar una aclaración. Cuando decimos que los polinomios de Chebyschev se pueden escribir como \(T_n(x)=\cos(n\arccos(x))\) estamos diciendo que salvo una constante, se obtienen los polinomios de Chebyschev dados por la recurrencia general en los polinomios ortogonales.
Recordemos que los polinomios ortogonales vistos por la recurrencia general son mónicos.
Sin embargo, veremos que los polinomios dados por la expresión \(T_n(x)=\cos(n\arccos(x))\) no lo son. De hecho, veremos que el coeficiente principal o el coeficiente de \(x^n\) del polinomio \(T_n(x)\) será \(2^{n-1}\).
Pasemos, pues, a demostrar que efectivamente los polinomios de Chebyschev salvo una constante se pueden definir de la forma anterior.
Para \(n=0\), obtenemos \(T_0(x)=\cos(0\arccos(x))=\cos(0)=1\) y para \(n=1\), \(T_1(x)=\cos(\arccos(x))=x\).
Por tanto, la expresión és válida para \(n=0,1\).
A continuación, veamos que si definimos los polinomios de Chebyschev como en el Teorema, se cumple la recurrencia siguiente: \[ T_{n+1}(x)=2xT_n(x)-T_{n-1}(x). \] Efectivamente, \[ \begin{align*} T_{n+1}(x)= & \cos((n+1)\arccos(x))=\cos(n\arccos(x)+\arccos(x)),\\ T_{n-1}(x)= & \cos((n-1)\arccos(x))=\cos(n\arccos(x)-\arccos(x)). \end{align*} \] Llamando \(\theta=\arccos(x)\) y usando la relación trigonométrica \(\cos(n\theta \pm \theta)=\cos(\theta)\cos(n\theta)\mp\sin(\theta)\sin(n\theta)\), tenemos que: \[ \begin{align*} T_{n+1}(x)= &\cos(n\theta +\theta)=\cos(\theta)\cos(n\theta)-\sin(\theta)\sin(n\theta)=xT_n(x)-\sin(\theta)\sin(n\theta),\\ T_{n-1}(x)= & \cos(n\theta-\theta)=\cos(\theta)\cos(n\theta)+\sin(\theta)\sin(n\theta)=xT_n(x)+\sin(\theta)\sin(n\theta), \end{align*} \] usando que \(x=\cos(\theta).\)
Sumando las dos expresiones anteriores tenemos que: \[ T_{n+1}(x)+T_{n-1}(x)=2xT_n(x),\ \Rightarrow T_{n+1}(x)=2xT_n(x)-T_{n-1}(x), \] tal como queríamos demostrar.
Usando la recurrencia anterior, tenemos que, usando un proceso inductivo, es sencillo demostrar que \(T_n(x)\) es un polinomio de grado \(n\), ya que tanto \(T_0(x)\) como \(T_1(x)\) son polinomios.
Veamos para acabar la demostración del Teorema que los polinomios \(T_n(x)\) definidos por el Teorema son ortogonales usando la función peso \(w(x)=\frac{1}{\sqrt{1-x^2}}\) en el intervalo \([0,1]\), es decir, \[ \int_{-1}^1 \frac{T_n(x)T_m(x)}{\sqrt{1-x^2}}\, dx =0,\ \mbox{ si }n\neq m. \] Efectivamente, realizando el cambio de variable \(x=\cos\theta\), o \(\theta =\arccos x\), tenemos que: \[ \begin{align*} \int_{-1}^1 \frac{T_n(x)T_m(x)}{\sqrt{1-x^2}}\, dx = &\int_{-1}^1 \frac{\cos(n\arccos(x))\cos(m\arccos(x))}{\sqrt{1-x^2}}\, dx =\int_{\pi}^0\frac{\cos(n\theta)\cos(m\theta)}{\sin(\theta)}\, (-\sin(\theta))\,d\theta \\ = & \int_{0}^{\pi}\cos(n\theta)\cos(m\theta)\,d\theta, \end{align*} \] ya que si \(x=-1\), \(\theta =\arccos(-1)=\pi\), si \(x=1\), \(\theta =\arccos(1)=0\), \(dx=-\sin(\theta)\, d\theta\) y \(\sqrt{1-x^2}=\sqrt{1-\cos^2\theta}=\sin(\theta)\).
A continuación, usando la relación trigonométrica: \[ \cos(n\theta)\cos(m\theta) =\frac{1}{2}(\cos((n+m)\theta)+\cos((n-m)\theta), \] tenemos que: \[ \begin{align*} \int_{-1}^1 \frac{T_n(x)T_m(x)}{\sqrt{1-x^2}}\, dx = & \int_{0}^{\pi}\cos(n\theta)\cos(m\theta)\,d\theta =\frac{1}{2}\int_0^{\pi} (\cos((n+m)\theta)+\cos((n-m)\theta)\, d\theta \\ =&\frac{1}{2}\left(\int_0^{\pi} \cos((n+m)\theta)\,d\theta +\int_0^{\pi}\cos((n-m)\theta)\, d\theta\right)\\ =& \frac{1}{2}\left(\left[\frac{\sin((n+m)\theta)}{n+m}\right]_0^{\pi}+\left[\frac{\sin((n-m)\theta)}{n-m}\right]_0^{\pi}\right)=0, \end{align*} \] ya que \(\sin((n\pm m)\pi)=\sin((n\pm m)0)=0\), si \(n\neq m\), tal como queríamos demostrar.
Para \(n=m\), usando el mismo procedimiento anterior, tenemos que: \[ \begin{align*} \int_{-1}^1 \frac{T_n(x)^2}{\sqrt{1-x^2}}\, dx = & \int_{0}^{\pi}\cos(n\theta)^2\,d\theta =\int_{0}^{\pi}\left(\frac{1+\cos(2n\theta)}{2}\right)\,d\theta \\ = & \frac{1}{2}\left(\int_0^{\pi}1\,d\theta +\int_0^{\pi}\cos(2n\theta)\,d\theta\right)=\frac{1}{2}\left(\pi +\left[\frac{\sin(2n\theta)}{2n}\right]_0^\pi\right)=\frac{\pi}{2}, \end{align*} \] ya que \(\sin(2n\pi)=\sin(2n0)=0\), para todo \(n\geq 1\).
Para el caso \(n=0\), obtenemos: \[ \int_{-1}^1 \frac{T_0(x)^2}{\sqrt{1-x^2}}\, dx =\int_{-1}^1 \frac{1}{\sqrt{1-x^2}}\, dx = \int_{0}^{\pi}1\,d\theta =\pi. \]
Vamos a calcular los primeros polinomios de Chebyschev: \[ \begin{align*} T_0 (x)= & 1,\\ T_1 (x) = & x,\\ T_2 (x) = & 2xT_1(x)-T_0(x)=2x\cdot x-1=2x^2-1,\\ T_3 (x) = & 2xT_2(x)-T_1(x)=2x(2x^2-1)-x=4x^3-3x,\\ T_4 (x) = & 2x T_3(x)-T_2(x)=2x(4x^3-3x)-(2x^2-1)=8x^4-8x^2+1,\\ T_5 (x) = & 2x T_4(x)-T_3(x)=2x(8x^4-8x^2+1)-(4x^3-3x)=16 x^5-20x^3+5x, \end{align*} \] y así sucesivamente.
La gráfica siguiente muestra los polinomios de Chebyschev \(T_i(x)\), \(i=1,2,3,4,5\), donde \(T_1(x)\) está en negro, \(T_2(x)\), en morado, \(T_3(x)\), en verde, \(T_4(x)\), en azul y \(T_5(x)\) en rojo.
Veamos cuál es la relación de los polinomios de Chebyschev con la aproximación minimax. En primer lugar, necesitamos los resultados siguientes:
El polinomio de Chebyschev \(T_n(x)\) de grado \(n\) tiene los \(n\) ceros siguientes en el intervalo \([-1,1]\): \[x_k = \cos\left(\frac{(2k+1)\pi}{2n}\right),\ \mbox{para }k=0,\ldots,n-1,\] y tiene los siguientes \(n+1\) extremos relativos en el intervalo \([-1,1]\): \[\hat{x}_k=\cos\left(\frac{k\pi}{n}\right),\ \mbox{para }k=0,1,\ldots,n,\] con valores extremos \(T_n(\hat{x}_k)=(-1)^k\).
Usando que \(T_n(x)=\cos(n\arccos(x))\), podemos hallar los ceros de la forma siguiente: \[ \begin{align*} T_n(x)=& \cos(n\arccos(x))=0,\ \Rightarrow n\arccos(x)=\frac{\pi}{2}+k\pi =\frac{\pi +2k\pi}{2}=\frac{(2k+1)\pi}{2},\ \Rightarrow \\ \arccos(x) = & \frac{(2k+1)\pi}{2n},\ \Rightarrow x_k=\cos\left(\frac{(2k+1)\pi}{2n}\right),\ k\in\mathbb{Z}. \end{align*} \] Como \(\cos\left(\frac{(2k+1)\pi}{2n}\right)\in [-1,1]\), los ceros hallados están en el intervalo \([-1,1]\).
Los valores de \(k\) que dan ceros distintos son \(k=0,1,\ldots,n-1\) ya que para \(k=n\), obtenemos \[ x_n =\cos\left(\frac{(2n+1)\pi}{2n}\right)=\cos\left(\frac{\pi}{2n}+\pi\right)=\cos\left(-\frac{\pi}{2n}-\pi\right)=\cos\left(-\frac{\pi}{2n}+\pi\right)=\cos\left(\frac{(2n-1)\pi}{2n}\right)=x_{n-1}, \] volvemos a hallar \(x_{n-1}\) y se van repitiendo los ceros hallados. De hecho, la repetición sigue la pauta siguiente: \[ \begin{align*} x_{n+j}=& \cos\left(\frac{(2(n+j)+1)\pi}{2n}\right)=\cos\left(\frac{(2j+1)\pi}{2n}+\pi\right)=\cos\left(-\frac{(2j+1)\pi}{2n}-\pi\right)=\cos\left(-\frac{(2j+1)\pi}{2n}+\pi\right)\\ = & \cos\left(\frac{(2(n-j-1)+1)\pi}{2n}\right)=x_{n-j-1},\ j=0,1,\ldots \end{align*} \]
A continuación, hallemos los extremos del polinomio de Chebyschev \(T_n(x)\): \[ \begin{align*} T_n'(x)= & -\sin(n\arccos(x))\cdot n\cdot (\arccos(x))' =-\sin(n\arccos(x))\cdot n\cdot\left(-\frac{1}{\sqrt{1-x^2}}\right)=0,\ \Rightarrow\\ \sin(n\arccos(x))= & 0,\ \Rightarrow n\arccos(x)=k\pi,\ \Rightarrow \arccos(x) = \frac{k\pi}{n},\ \Rightarrow x_k =\cos\left(\frac{k\pi}{n}\right),\ k\in\mathbb{Z}. \end{align*} \] Como \(\cos\left(\frac{k\pi}{n}\right)\in [-1,1]\), los extremos hallados están en el intervalo \([-1,1]\).
Los valores de \(k\) que dan extremos distintos son \(k=0,1,\ldots,n\) ya que para \(k=n+1\), obtenemos: \[ x_{n+1} = \cos\left(\frac{(n+1)\pi}{n}\right)=\cos\left(\frac{\pi}{n}+\pi\right)=\cos\left(-\frac{\pi}{n}-\pi\right)=\cos\left(-\frac{\pi}{n}+\pi\right)=\cos\left(\frac{(n-1)\pi}{n}\right)=x_{n-1}, \] volvemos a hallar \(x_{n-1}\) y se van repitiendo los extremos hallados. De hecho, la repetición sigue la pauta siguiente: \[ x_{n+j} = \cos\left(\frac{(n+j)\pi}{n}\right)=\cos\left(\frac{j\pi}{n}+\pi\right)=\cos\left(-\frac{j\pi}{n}-\pi\right)=\cos\left(-\frac{j\pi}{n}+\pi\right)=\cos\left(\frac{(n-j)\pi}{n}\right)=x_{n-j}, \] donde \(j=1,2,\ldots\)
En el Teorema anterior se dice que el polinomio de Chebyschev de grado \(n\), \(T_n(x)\) tiene \(n+1\) extremos, \(\hat{x}_k=\cos\left(\frac{k\pi}{n}\right)\), \(k=0,\ldots,n\).
Ahora bien, si \(T_n(x)\) es un polinomio de grado \(n\), sólo puede tener \(n-1\) extremos relativos como máximo que serían los que anulan la derivada que sería un polinomio de grado \(n-1\), pero en el Teorema hemos hallado \(n+1\)!
¿Cómo es posible?
De hecho, extremos que anulen la derivada sólo hay \(n-1\): \(\hat{x}_1,\ldots,\hat{x}_{n-1}\).
Los valores \(\hat{x}_0=1\), \(\hat{x}_n=-1\) son extremos en el intervalo \([-1,1]\) en el sentido de que \(|T_n(\hat{x}_0)|=|T_n(1)|=|T_n(\hat{x}_n)|=|T_n(-1)|=1\) alcanzan el valor máximo de \(|T_n(x)|\) en el intervalo \([-1,1]\) pero no anulan la derivada \(T_n'(x)\).
Veámoslo. Recordemos que \(T_n'(x)\) vale: \[ T_n'(x)=\sin(n\arccos(x))\cdot n\cdot\left(\frac{1}{\sqrt{1-x^2}}\right). \]
Si intentamos calcular \(T_n'(\hat{x}_0)=T_n'(1)\), obtenemos: \[ T_n'(1)=\sin(n\arccos(1))\cdot n\cdot \left(\frac{1}{\sqrt{1-1^2}}\right)=\frac{n\cdot \sin(n\cdot 0)}{\sqrt{1-1^2}}=\frac{n\cdot\sin(0)}{\sqrt{1-1^2}}=\frac{n\cdot 0}{0}=\frac{0}{0}. \] Nos queda una indeterminación del tipo \(\frac{0}{0}\). Por tanto, para calcular \(T_n'(1)\) tendremos que realizar el límite \(\displaystyle T_n'(1)=\lim_{x\to 1}T_n'(x)\).
El valor de \(T_n'(\hat{x}_0)\) será, por tanto, \[ T_n'(\hat{x_0})= T_n'(1)=\lim_{x\to 1}\sin(n\arccos(x))\cdot n\cdot\left(\frac{1}{\sqrt{1-x^2}}\right)=n\lim_{x\to 1}\frac{\sin(n\arccos(x))}{\sqrt{1-x^2}}. \] Para realizar el límite anterior, hacemos el cambio \(x=\cos(\theta)\), o \(\theta=\arccos(x)\). Como \(x\to 1\), \(\theta\to\arccos(1)=0\) y \(\sqrt{1-x^2}=\sqrt{1-\cos^2(\theta)}=\sin(\theta)\), \[ T_n'(\hat{x_0})=n\lim_{\theta\to 0}\frac{\sin(n\theta)}{\sin(\theta)}=n\lim_{\theta\to 0}\frac{n\cos(n\theta)}{\cos(\theta)}=n\cdot n=n^2. \]
Si intentamos calcular \(T_n'(\hat{x}_n)=T_n'(-1)\), obtenemos: \[ T_n'(-1)=\sin(n\arccos(-1))\cdot n\cdot \left(\frac{1}{\sqrt{1-1^2}}\right)=\frac{n\cdot \sin(n\cdot \pi)}{\sqrt{1-1^2}}=\frac{n\cdot 0}{0}=\frac{0}{0}. \] Nos queda una indeterminación del tipo \(\frac{0}{0}\). Por tanto, para calcular \(T_n'(-1)\) tendremos que realizar el límite \(\displaystyle T_n'(-1)=\lim_{x\to -1}T_n'(x)\).
El valor de \(T_n'(\hat{x}_n)\) será, por tanto, \[ \begin{align*} T_n'(\hat{x_n})= & T_n'(-1)=\lim_{x\to -1}\sin(n\arccos(x))\cdot n\cdot\left(\frac{1}{\sqrt{1-x^2}}\right)=n\lim_{x\to -1}\frac{\sin(n\arccos(x))}{\sqrt{1-x^2}}\\ = & n\lim_{\theta\to \pi}\frac{\sin(n\theta)}{\sin(\theta)}=n\lim_{\theta\to \pi}\frac{n\cos(n\theta)}{\cos(\theta)}=n\cdot\frac{n\cos(n\pi)}{\cos(\pi)}=n\cdot\frac{n\cdot (-1)^n}{-1}=n^2\cdot (-1)^{n-1}=(-1)^{n+1}\cdot n^2, \end{align*} \] donde hemos realizado el cambio anterior \(x=\cos(\theta)\), \(\theta =\arccos(x)\). Como \(x\to -1\), \(\theta\to\arccos(-1)=\pi\).
El coeficiente del término de \(x^n\) del polinomio de Chebyschev de grado \(n\), \(T_n(x)\) vale \(2^{n-1}\) para \(n\geq 1\).
Demostración
Hagamos la demostración por inducción.
Como \(T_1(x)=x\), la proposición se cumple para \(n=1\): \(2^{1-1}=1\).
Supongamos ahora que el coeficiente del término de \(x^k\) de \(T_k(x)\) vale \(2^{k-1}\) para \(k=1,\ldots,n-1\).
Usando la recurrencia vista anteriormente \(T_{n}(x)=2xT_{n-1}(x)-T_{n-2}(x),\) tendremos que el coeficiente del término de \(x^n\) de \(T_n(x)\) será \(2\cdot\mathrm{coeficiente\ de\ }x^{n-1}\) de \(T_{n-1}\).
Ahora bien, por hipótesis de inducción, el coeficiente de \(x^{n-1}\) de \(T_{n-1}\) vale \(2^{n-2}\). Por tanto, el coeficiente del término de \(x^n\) de \(T_n(x)\) será \(2\cdot 2^{n-2}=2^{n-1}\), tal como queríamos demostrar.
Definimos los polinomios mónicos de Chebyschev \(\tilde{T}_n\) como los polinomios de Chebyschev divididos por su término principal de \(x^n\), \(2^{n-1}\):
El polinomio mónimo de Chebyschev \(\tilde{T}_n\) se define como: \(\tilde{T}_n=\frac{T_n(x)}{2^{n-1}}\).
Se llaman mónicos porque el coeficiente principal del polinomio mónico de Chebyschev de grado \(n\), \(\tilde{T}_n\) vale \(1\).
De esta forma podemos escribir: \(\tilde{T}_n(x) = x^n+\cdots\)
Usando que los polinomios de Chebyschev verifican la recurrencia \(T_{n}(x)=2xT_{n-1}(x)-T_{n-2}(x),\) podemos deducir la recurrencia que verifican los polinomios mónicos de Chebyschev: \[ \begin{align*} T_{n}(x)=& 2xT_{n-1}(x)-T_{n-2}(x),\ \Rightarrow \frac{T_n(x)}{2^{n-1}}=\frac{2xT_{n-1}(x)}{2^{n-1}}-\frac{T_{n-2}(x)}{2^{n-1}},\\ \frac{T_n(x)}{2^{n-1}}=&\frac{2x}{2}\cdot \frac{T_{n-1}(x)}{2^{n-2}}-\frac{1}{2^2}\cdot \frac{T_{n-2}(x)}{2^{n-3}},\ \Rightarrow \\ \tilde{T}_n = & x\cdot\tilde{T}_{n-1}-\frac{1}{4}\tilde{T}_{n-2}. \end{align*} \]
Los primeros polinomios mónicos de Chebyschev son los siguientes:
\[ \begin{align*} \tilde{T}_0(x) = & 1,\\ \tilde{T}_1(x) = & x,\\ \tilde{T}_2 (x)= & \frac{T_2(x)}{2} =\frac{2x^2-1}{2}=x^2-\frac{1}{2},\\ \tilde{T}_3 (x)= & x\tilde{T}_2(x) -\frac{1}{4}\tilde{T}_1(x) =x\left(x^2-\frac{1}{2}\right)-\frac{1}{4}x =x^3-\frac{3}{4}x,\\ \tilde{T}_4 (x)= & x\tilde{T}_3(x) -\frac{1}{4}\tilde{T}_2(x) =x\left(x^3-\frac{3}{4}x\right)-\frac{1}{4}\left(x^2-\frac{1}{2}\right)=x^4-x^2+\frac{1}{8}, \end{align*} \] y así sucesivamente.
Los primeros polinómicos mónicos de Chebyschev se muestran en la tabla siguiente:
\(n\) | \(\tilde{T}_n\) |
---|---|
\(0\) | \(1\) |
\(1\) | \(x\) |
\(2\) | \(x^2-\frac{1}{2}\) |
\(3\) | \(x^3-\frac{3x}{4}\) |
\(4\) | \(x^4-x^2+\frac{1}{8}\) |
\(5\) | \(x^5-\frac{5 x^3}{4}+\frac{5x}{16}\) |
El polinomio mónico de Chebyschev de grado \(n\), \(\tilde{T}_n\), minimiza la norma infinito en el intervalo \([-1,1]\) entre todos los polinomios mónicos de grado \(n\):
Sea \(P_n(x)\) un polinomio mónico cualquiera de grado \(n\). Entonces, \[ \frac{1}{2^{n-1}}=\|\tilde{T}_n\|_\infty =\max_{x\in [-1,1]}|\tilde{T}_n(x)|\leq \|P_n\|_\infty =\max_{x\in [-1,1]}|P_n(x)|. \] Además la igualdad ocurre sólo si \(P_n\equiv\tilde{T}_n\).
La condición \(\frac{1}{2^{n-1}}=\|\tilde{T}_n\|_\infty\) se deduce de las dos proposiciones anteriores.
Sabemos que \(T_n(x)\) y, por tanto, \(\tilde{T}_n(x) =\frac{1}{2^{n-1}}T_n(x)\) tiene \(n+1\) extremos relativos \(\hat{x}_k=\cos\left(\frac{k\pi}{n}\right)\), \(k=0,1,\ldots,n\) tal que \[ |T_n(\hat{x}_k)|=|(-1)^k|=1=\max_{x\in [-1,1]}|T_n(x)|=\|T_n\|_\infty. \] Por tanto, \[ \|\tilde{T}_n\|_\infty =\left\|\frac{1}{2^{n-1}}T_n\right\|_\infty =\frac{1}{2^{n-1}}\|T_n\|_\infty =\frac{1}{2^{n-1}}, \] tal como queríamos ver.
De cara a la demostración de que el polinomio mónico de Chebyschev de grado \(n\), \(\tilde{T}_n\), minimiza la norma infinito entre todos los polinómicos mónicos de grado menor o igual que \(n\), consideremos el problema siguiente de minimización minimax:
Sea \(f(x)=x^n\). Nos proponemos hallar el polinomio \(\hat{P}_{n-1}(x)\) de grado menor o igual que \(n-1\) que aproxima \(f(x)\) según la norma infinito en el intervalo \([-1,1]\). Es decir, queremos resolver el problema siguiente: \[ \|f-\hat{P}_{n-1}\|_\infty =\min_{P_{n-1}}\|f-P_{n-1}\|_\infty \]
Según el Teorema de caracterización de aproximación minimax, el polinomio \(\hat{P}_{n-1}\) debe cumplir lo siguiente:
si hallamos \(-1\leq\xi_0,\xi_1,\ldots,\xi_{n}\leq 1\), \(n-1+2=n+1\) valores numéricos en \([-1,1]\) tal que la función \(e_{n-1}(x)=f(x)-\hat{P}_{n+1}\) cumpla que: \[ |e_{n-1}(\xi_j)|=\|e_{n-1}\|_\infty =\max_{x\in [-1,1]}|e_{n-1}(x)|=\max_{x\in [-1,1]}|f(x)-\hat{P}_{n-1}(x)|, \] para \(j=0,1,\ldots,n\), con alternancia de signos: \[ e_{n-1}(\xi_0)=-e_{n-1}(\xi_1)=\cdots = (-1)^{n}e_{n-1}(\xi_{n}), \] tendremos resuelto nuestro problema.
El polinomio \(\hat{P}_{n-1}\) buscado vale \(\hat{P}_{n-1}(x)=x^n-\tilde{T}_n(x)\).
En primer lugar, observar que es un polinomio de grado menor o igual que \(n-1\) ya que el polinomio mónico de Chebyschev de grado \(n\) es de la forma \(\tilde{T}_n =x^n +\cdots\) y por tanto en la expresión \(x^n-\tilde{T}_n(x)\) sólo aparecerán términos de orden \(n-1\) como máximo.
En segundo lugar, la función \(e_{n-1}\) vale \(e_{n-1}(x)=x^n-(x^n-\tilde{T}_n)=\tilde{T}_n\) del que sabemos que existen \(\xi_i=\hat{x}_i=\cos\left(\frac{i\pi}{n}\right)\), \(i=0,1,\ldots,n\) cumpliendo las condiciones anteriores.
Queda, por tanto, resuelto el problema propuesto de aproximación minimax.
Veamos, para acabar la demostración, que el problema de aproximación minimax propuesto es equivalente a la tesis del Teorema.
Nuestro problema era hallar el mínimo de la norma infinito entre todos los polinomios mónicos de grado \(n\): \[ \min_{P_n\mbox{ mónico}}\|P_n\|_\infty. \] Ahora bien, cualquier polinomio mónico \(P_n\) de grado \(n\) puede escribirse como \(P_n(x)=x^n-P_{n-1}(x)\), donde \(P_{n-1}(x)\) es el polinomio de grado menor o igual que \(n-1\) siguiente: \(P_{n-1}(x)=x^n-P_n(x)\).
Nuestro problema puede reescribirse de la siguiente forma: hallar el polinomio de grado menor o igual que \(n-1\) que minimice: \[ \min_{P_{n-1}}\|x^n-P_{n-1}\|_\infty, \] que es precisamente el problema que hemos resuelto de aproximación minimax cuya solución hallada era: \(\hat{P}_{n-1}=x^n-\tilde{T}_n\). Por tanto: \[ \min_{P_n\mbox{ mónico}}\|P_n\|_\infty =\min_{P_{n-1}}\|x^n-P_{n-1}\|_\infty =\|x^n-(x^n-\tilde{T}_n)\|_\infty =\|\tilde{T}_n\|_\infty, \] tal como queríamos demostrar.
Además, la igualdad sólo ocurre si \(P_n=\tilde{T}_n\) por la unicidad de la solución del problema minimax.
En la demostración del Teorema anterior, hemos demostrado el corolario siguiente:
La aproximación minimax de la función \(f(x)=x^n\) en el intervalo \([-1,1]\) entre todos los polinomios de grado menor o igual que \(n-1\) es la función \(\hat{P}_{n-1}(x)=x^n-\tilde{T}_n(x)\), es decir: \[ \min_{P_{n-1}}\|x^n-P_{n-1}(x)\|_\infty =\|x^n-(x^n-\tilde{T}_n(x))\|_\infty. \]
Sea \(f(x)=x^3\). La aproximación minimax entre todos los polinomios de grado menor o igual que \(2\) de la función anterior es: \[ \hat{P}_2(x)=x^3-\tilde{T}_3(x)=x^3-\left(x^3-\frac{3x}{4}\right)=\frac{3}{4}x. \] Vemos que es una recta que pasa por el origen.
En la gráfica siguiente se muestra la función \(f(x)=x^3\) en negro y la aproximación \(\hat{P}_2(x)\) en rojo.
En el tema dedicado a interpolación del curso Métodos numéricos con Python. Cálculo Numérico estudiamos cómo hallar el polinomio de interpolación de grado \(m\), \(P_m(x)\), dada una nube de puntos \((x_k,y_k),\ k=1,\ldots,m\), es decir, hallar un polinomio de grado menor o igual que \(m-1\) tal que \(P_m(x_k)=y_k\), \(k=1,\ldots,m\).
Además, en el caso en que la nube de puntos provenga de la gráfica de una función \(f(x)\), es decir \(y_k=f(x_k)\), donde dicha función \(f\in {\cal C}^{m+1}\) es de clase \(m+1\), el error de interpolación se puede escribir de la forma siguiente: \[ f(x)-P_m(x)=\frac{f^{(m+1)}(\xi(x))}{(m+1)!}(x-x_0)(x-x_1)\cdots (x-x_m). \]
Notemos que el error depende del polinomio mónico \((x-x_0)(x-x_1)\cdots (x-x_m)\) de grado \(m+1\).
Si suponemos que los nodos de interpolación están en el intervalo \([-1,1]\), nos podríamos plantear cómo elegir los nodos \(x_k,\ k=0,1,\ldots,m\) en dicho intervalo de tal forma que el máximo del polinomio anterior \(|(x-x_0)(x-x_1)\cdots (x-x_m)|\) sea mínimo. Es decir, nos planteamos el problema siguiente: \[ \begin{align*} & \min_{x_0,x_1,\ldots,x_m}\max_{x\in [-1,1]}|(x-x_0)(x-x_1)\cdots (x-x_m)|\\ & \quad = \min_{x_0,x_1,\ldots,x_m}\|(x-x_0)(x-x_1)\cdots (x-x_m)\|_\infty. \end{align*} \] El problema anterior es equivalente a hallar el polinomio mónico de grado \(m+1\) que minimice la norma infinito en el intervalo \([-1,1]\).
Dicho problema ya está resuelto eligiendo el polinomio mónico de Chebyschev de grado \(m+1\), \(\tilde{T}_{m+1}\).
Por tanto, los nodos \(x_k,\ k=0,1,\ldots,m+1\) se tienen que elegir de tal forma que se cumpla: \[ \tilde{T}_{m+1}(x)=(x-x_0)(x-x_1)\cdots (x-x_m), \] es decir, los nodos \(x_k,\ k=0,1,\ldots,m\) deben ser los ceros del polinomio de Chebyschev \(T_{m+1}(x)\): \[ x_k = \cos\left(\frac{(2k+1)\pi}{2(m+1)}\right),\ k=0,1,\ldots,m. \]
Hemos demostrado el corolario siguiente:
Sea \(f\in {\cal C}^{m+1}\) una función de clase \(m+1\) y sea \(P_m(x)\) el polinomio de interpolación en los ceros \(x_k=\cos\left(\frac{(2k+1)\pi}{2(m+1)}\right),\ k=0,1,\ldots,m\) del polinomio de Chebyschev de grado \(m+1\). Entonces, \[ \max_{x\in [-1,1]}|(x-x_0)(x-x_1)\ldots (x-x_m)|=\|\tilde{T}_{m+1}\|_\infty = \frac{1}{2^m}. \]
Además el error de interpolación \(f(x)-P_m(x)\) en cualquier \(x\in [-1,1]\) se puede acotar por: \[ \begin{align*} \max_{x\in [-1,1]}|f(x)-P_m(x)|= & \max_{x\in [-1,1]}\left|\frac{f^{(m+1)}(\xi(x))}{(m+1)!}(x-x_0)(x-x_1)\cdots (x-x_m)\right|\\\leq &\frac{1}{2^m\cdot (m+1)!}\max_{x\in [-1,1]}\left|f^{(m+1)}(\xi(x))\right|\leq \frac{\|f^{(m+1)}\|_\infty}{2^m\cdot (m+1)!} \end{align*} \]
El fenómeno de Runge que vimos en el curso Métodos Numéricos con Python. Cálculo Numérico que ocurría cuando interpolamos la función \(f(x)=\frac{1}{1+5x^2}\) en el intervalo \([-1,1]\) desaparece cuando consideramos como nodos de interpolación los ceros del polinomio de Chebyschev correspondiente.
Supongamos que tenemos una función \(f\in {\cal C}^{m+1}\) de clase \(m+1\) en un intervalo cualquiera \([a,b]\) y consideramos \(t_0,t_1,\ldots,t_m\), \(m+1\) puntos en dicho intervalo.
Sea \(P_m(t)\) el polinomio de interpolación de grado menor o igual que \(m\) en los puntos anteriores, es decir \(P_m(t_k)=f(t_k),\ k=0,1,\ldots,m\)
Sabemos que el error de interpolación (ver tema de interpolación del curso Métodos numéricos con Python. Cálculo Numérico) tiene la expresión siguiente: \[ f(t)-P_m(t)=\frac{f^{m+1}(\xi(t))}{(m+1)!}(t-t_0)(t-t_1)\cdots (t-t_m). \]
A continuación, nos planteamos la misma cuestión que hacíamos en el intervalo \([-1,1]\): ¿existe alguna manera de elegir los nodos \(t_k,\ k=0,1,\ldots,m\) que minimice la norma infinito de la parte del error de interpolación que depende de dichos nodos, \(\|(t-t_0)(t-t_1)\cdots (t-t_m)\|_\infty =\max_{t\in [a,b]}|(t-t_0)(t-t_1)\cdots (t-t_m)|\)?
Para responder a dicha pregunta, basta considerar los ceros del polinomio de Chebyschev de grado \(m\), \(T_m(x)\) pero considerados en el intervalo \([a,b]\).
Es decir, hay que considerar la siguiente aplicación que pasa del intervalo \([-1,1]\) al intervalo \([a,b]\), \(t=\frac{1}{2}((b-a)x+a+b)\) y transformar los ceros del polinomio de Chebyschev de grado \(m\) usando dicha transformación.
Como los ceros del polinomio de Chebyschev de grado \(m\) en el intervalo \([-1,1]\) son \(x_k=\cos\left(\frac{(2k+1)\pi}{2(m+1)}\right)\), los nodos que minimizan la norma infinito de la parte del error de interpolación que depende de dichos nodos serán: \[ t_k =\frac{1}{2}((b-a)x_k+a+b)=\frac{1}{2}\left((b-a)\cos\left(\frac{(2k+1)\pi}{2(m+1)}\right)+a+b\right), \] para \(k=0,1,\ldots,m\).
El valor de la norma infinito \(\|(t-t_0)(t-t_1)\cdots (t-t_m)\|_\infty\) en los nodos anteriores será: \[ \begin{align*} & \|(t-t_0)(t-t_1)\cdots (t-t_m)\|_\infty =\max_{t\in [a,b]}|(t-t_0)(t-t_1)\cdots (t-t_m)|\\ & \quad =\max_{t\in [a,b]}\prod_{k=0}^m |t-t_k|=\max_{x\in [-1,1]}\prod_{k=0}^m \left|\frac{1}{2}((b-a)x+a+b)-\frac{1}{2}((b-a)x_k+a+b)\right|\\ & \quad = \left(\frac{b-a}{2}\right)^{m+1}\max_{x\in [-1,1]}\prod_{k=0}^m |x-x_k|=\left(\frac{b-a}{2}\right)^{m+1}\|\tilde{T}_{m+1}\|_\infty \\ & \quad =\left(\frac{b-a}{2}\right)^{m+1}\cdot\frac{1}{2^{m}}=\frac{(b-a)^{m+1}}{2^{2m+1}}. \end{align*} \]
Consideremos la función \(f(x)=\sin(x^2)\) definida en el intervalo \([0,\pi]\).
Vamos a hallar el polinomio de interpolación de grado \(m=3\) en los nodos que minimizan la norma infinito de la parte del error de interpolación que depende de dichos nodos.
En nuestro caso \(a=0\) y \(b=\pi\). Los nodos a considerar serán: \[ \begin{align*} t_k =& \frac{1}{2}\left((\pi-0)\cos\left(\frac{(2k+1)\pi}{2\cdot (3+1)}\right)+0+\pi\right)=\frac{1}{2}\left(\pi\cos\left(\frac{(2k+1)\pi}{8}\right)+\pi\right)\\= &3.0220229, 2.1719141, 0.9696786, 0.1195698 \end{align*} \] A continuación hallamos el polinomio de interpolación usando el enlace del curso Métodos numéricos con Python. Cálculo Numérico:El polinomio interpolador es el siguiente: \[ \begin{align*} P_3(x)= & 0.93332141411505\cdot x+(0.141976674265924-1.18739576603727\cdot x)(x−0.9696786)\\ & \quad +(0.915868383580237\cdot x-0.109510199451012)(x-2.1719141)(x-0.9696786)\\ & \quad -0.0973006047991673. \end{align*} \]
La gráfica siguiente muestra la función \(f(x)=\sin(x^2)\) en negro junto con el polinomio interpolador en rojo:
El valor de \(\|(t-t_0)(t-t_1)(t-t_2)(t-t_3)\|_\infty\) vale en este caso: \[ \|(t-t_0)(t-t_1)(t-t_2)(t-t_3)\|_\infty =\max_{t\in [0,\pi]}|(t-t_0)(t-t_1)(t-t_2)(t-t_3)|=\frac{(\pi-0)^{3+1}}{2^{2\cdot 3+1}}=\frac{\pi^4}{2^7}=0.7610085. \] El error de interpolación en cualquier valor \(t\) del intervalo \([0,\pi]\) se puede acotar por: \[ \begin{align*} |f(t)-P_3(t)|= & \left|\frac{f^{(4)}(\xi(t))}{4!}(t-t_0)(t-t_1)(t-t_2)(t-t_3)\right|\leq \frac{1}{24}\|f^{(4)}\|_\infty\cdot \frac{\pi^4}{2^7}=\frac{\pi^4}{3072}\|f^{(4)}\|_\infty \\ = & 0.0317087\cdot \|f^{(4)}\|_\infty. \end{align*} \]