Cuaderno Pares
Cuaderno Pares
Cuaderno Pares
ESPE
Métodos Numéricos
NRC:3256
Cuaderno Teórico
21 de febrero de 2018
1
Métodos Numéricos Cuaderno Digital NRC:3256
Índice
1. Capítulo 1 9
1.1. Introducción a LATEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.1. Estructura de un documento . . . . . . . . . . . . . . . . . . . . . 9
1.1.2. Fórmulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3. Listas y enumeraciones . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.4. Arreglos y tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1.5. Tablas(tabular) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2. Conceptos Generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3. Teorema de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.4. Error y Orden de Aproximación . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5. Análisis del Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.1. Error Absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.2. Error Relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.5.3. Error de truncamiento . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.4. Error de redondeo . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5.5. Propagación del Error . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.6. Solución numérica de ecuaciones no Lineales . . . . . . . . . . . . . . . . 20
1.6.1. Método de la Bisección . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.6.2. Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.6.3. Método de la Secante . . . . . . . . . . . . . . . . . . . . . . . . . . 24
h2 h4
cos(h) = 1 − + + O(h6 )
2! 4!
h h2 h3 h4
e =1+h+ + + + O(h5 )
2! 3! 4!
h3
sen(h) = h − + O(h5 )
3!
h2 h4
cos(h) = 1 − + + O(h6 )
2! 4!
h3 h5
sen(h) = h − + + O(h7 )
3! 5!
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.6. ¿Qué ocurrirá si susamos el método de bisección con
1
f (x) =
x+2
en: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.7. el intervalo [3,7]? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.3.8. el intervalo [1,7]? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.9. Supongamos que usamos el método de bisección para hallar un
cero de f (x) en el intervalo [2, 7]. ¿Cuántas bisecciones hay que
hacer para asegurar que la aproximación cN tiene una precisión
de 5 × 10−9 ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3.10. El polinomio f (x) = (x − 1)3 (x − 2)(x − 3) tiene tres ceros: x = 1
de multiplicidad 3 y x = 2 y x = 3, cada uno de ellos de multi-
plicidad 1. Si a0 y b0 son números reales tales que a0 < 1 y b0 > 3
se eligen tales que cn = an +b2
n
no es igual a 1, ni a 2 ni a 3 para
ningun n ≥ 1, entonces el método de biseccion nunca convergerá
a ¿cuál o cuáles ceros?¿por qué? . . . . . . . . . . . . . . . . . . . 41
2.4. Deber 4: Problemas 1,2,3,5,7,11,20 de la Pág 93-94 . . . . . . . . . . . . . 41
2.4.1. Sea f (x) = x2 − x + 2 . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.2. Determine la fórmula de Newton-Raphson pk = g(pk−1 ) . . . . . 41
2.4.3. Empiece con p0 = −1,5 y calcule p1 , p2 y p3 . . . . . . . . . . . . . 41
2.4.4. Sea f (x) = x2 − x − 3 . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4.5. Determine la fórmula de Newton-Raphson pk = g(pk−1 ) . . . . . 41
2.4.6. Empiece con p0 = 1,6 y calcule p1 , p2 y p3 . . . . . . . . . . . . . . 42
2.4.7. Empiece con p0 = 0,0 y calcule p1 , p2 , p3 y p4 ¿Qué puede conjetu-
rarse sobre esta sucesón? . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4.8. Sea f (x) = (x − 2)4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.4.9. Determine la fórmula de Newton-Raphson pk = g(pk−1 ) . . . . . 42
2.4.10. Empiece con p0 = 2,1 y calcule p1 , p2 , p3 y p4 . . . . . . . . . . . . . 42
2.4.11. Esta sucesión, ¿converge linealmente o cuadráticamente? . . . . . 42
2pk−1 + A/p2k−1
pk =
3
para k = 1, 2, ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.4.22. Pruebe que la fórmula (27) del método de la secante es algebrai-
camente equivalente a
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3. Capítulo 2 44
3.1. Solución de sistemas lineales . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.1. Método Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.1.2. Método de Gauss-Jordan . . . . . . . . . . . . . . . . . . . . . . . 46
3.1.3. Método de factorización LU . . . . . . . . . . . . . . . . . . . . . . 47
3.1.4. Descomposición en valores singulares: SVD . . . . . . . . . . . . 48
3.2. Interpolación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.1. Interpolación de Newton . . . . . . . . . . . . . . . . . . . . . . . 50
3.2.2. Interpolación de Lagrange . . . . . . . . . . . . . . . . . . . . . . . 51
3.2.3. Interpolación Spline . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5. Capítulo 3 101
5.1. Derivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.2. Integración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
5.2.1. Integración Punto Medio . . . . . . . . . . . . . . . . . . . . . . . 103
5.2.2. Integración numérica por el método del trapecio . . . . . . . . . . 104
5.2.3. Integración numérica por el método de Simpson . . . . . . . . . . 105
5.2.4. Integración numérica por el método de Simpson Compuesta . . . 106
1. Capítulo 1
1.1. Introducción a LATEX
El sistema TEX fue diseñado y desarrollado por Donald Knuth en la
década del 70. Es un sofisticado programa para la composición tipo-
gráfica de textos científicos; en realidad es la mejor opción disponible
para edición de textos con contenido matemático tales como artículos,
reportes, libros, etc.
TEX es en la práctica un estándar para publicaciones científicas en
áreas como matemática, física, computación, etc. LATEX es un conjun-
to de macros TEX preparado por Leslie Lamport . LATEX no es un pro-
cesador de textos, es un lenguaje que nos permite preparar automá-
ticamente un documento de apariencia estándar y de alta calidad. En
general,solo necesitamos editar texto y algunos comandos y LATEX se
encarga de componer automáticamente el documento.
\documentclass{article}
\begin{document}
\tableofcontents
\newpage
Mi primer documento.
\end{document}
documentclass{article} Es la clase de documento, article se refiere al archivo article.cls
y se utiliza para hacer artículos. En vez de ?article? se puede utilizar ?report? o ?book?
para un reporte o un libro.
1.1.2. Fórmulas
Vamos a mostrar distintas formas de escribir símbolos o fórmulas.
Símbolo de dolar $
Esta forma es útil cuando se escribe en el mismo párrafo.
Ejemplo:
El código:
Símbolos [...]
Esta forma es útil cuando se escribe en el mismo párrafo.
Ejemplo: El código:
a2 + b 2 = c 2
Utilizando un ambiente(equation)
Esta forma es útil cuando se escribe en el mismo párrafo.
Ejemplo: El código:
a2 + b 2 = c 2 (1)
Observación: una de las propiedades de los ambientes es el hecho de que nos permite
utilizar etiquetas (label),con etiquetas podemos se pueden realizar llamados. Ejemplo:
El código:
\begin{equation}\label{ec.3}
A_c =\pi r^2
\end{equation}
La ecuaci\’on (\ref{ec.3}) es la f\’ormula
para la superficie de la circunferencia.\\
Produce:
Ac = πr2 (2)
La ecuación (2) es la fórmula para la superficie de la
circunferencia.
\begin{itemize}
\item perro
\item gato
\item vaca
\end{itemize}
Lista dentro de lista
\begin{itemize}
\item perro
\begin{itemize}
\item golden
\item pastor
\item labrador
\end{itemize}
\item gato
\item vaca
\end{itemize}
Produce:
perro
gato
vaca
perro
• golden
• pastor
• labrador
gato
vaca
\begin{enumerate}
\item perro
\item gato
\item vaca
\end{enumerate}
Lista dentro de lista
\begin{enumerate}
\item perro
\begin{enumerate}
\item golden
\item pastor
\item labrador
\end{enumerate}
\item gato
\item vaca
\end{enumerate}
Produce:
1. perro
2. gato
3. vaca
1. perro
a) golden
b) pastor
c) labrador
2. gato
3. vaca
\begin{description}
\item[Presidente.-] El que manda.
\item[Secretario.-] El que escribe.
\item[Tesorero.-] El del dinero.
\end{description}
Produce:
Arreglos (array)
Se recomienda utilizar modo array cuando se utilizan fórmulas o símbolos en su
mayoría.
Ejemplo 1
El Código:
\[\begin{array}{ccc}
2 & 3 & 4\\
5 & 6 & 7
\end{array}\]
%%
\[A= \left(\begin{array}{ccc}
2 & 3 & 4\\
5 & 6 & 7
\end{array}\right)\]
Produce:
2 3 4
5 6 7
2 3 4
A=
5 6 7
Ejemplo 2
El Código:
\[B= \left[\begin{array}{cc}
\sin(x) & \int_a^b e^x dx \\
2 & \frac{x^2+3x+5}{6}
\end{array}\right]\]
Produce:
" Rb #
sin(x) a
ex dx
B= x2 +3x+5
2 6
Ejemplo 3
El código:
\[f(x)=\left\{\begin{array}{lcr}
x^2+x-1 & si & x\geq 1\\
x & \mbox{si} & x<1
\end{array}\right.\]
Produce:
x2 + x − 1 si x ≥ 1
f (x) =
x si x < 1
1.1.5. Tablas(tabular)
Se recomienda utilizar el modo tabular cuando se utiliza textos.
Ejemplo 1. Tabla sin formato
Con el código:
\begin{tabular}{cccccc}
H&L&M&X&J&V\\
7-9&x& & &x& \\
9-11 & & x & &x&x \\
11-13 & & x & &x& \\
\end{tabular}\\
Produce:
H L M X J V
7-9 x x
9-11 x x x
11-13 x x
\begin{tabular}{cccccc}
H&L&M&X&J&V\\ \hline
7-9&x& & &x& \\ \hline
9-11 & & x & &x&x \\ \hline
11-13 & & x & &x& \\ \hline
\end{tabular}\\
Produce:
H L M X J V
7-9 x x
9-11 x x x
11-13 x x
\begin{tabular}{|c|c|c|c|c|c|} \hline
H&L&M&X&J&V\\ \hline
7-9&x& & &x& \\ \hline
9-11 & & x & &x&x \\ \hline
11-13 & & x & &x& \\ \hline
\end{tabular}\\
Produce:
H L M X J V
7-9 x x
9-11 x x x
11-13 x x
\begin{table}[h!]
\begin{center}
\begin{tabular}{|c|c|c|c|c|c|} \hline
H&L&M&X&J&V\\ \hline
7-9&x& & &x& \\ \hline
9-11 & & x & &x&x \\ \hline
11-13 & & x & &x& \\ \hline
\end{tabular}\\
\end{center}
\caption{Este es un ejemplo de horario}
\end{table}\label{tb.1}
Produce:
H L M X J V
7-9 x x
9-11 x x x
11-13 x x
Además otros autores consideran que los métodos numéricos nos vuelven aptos
para entender esquemas numéricos a fin de resolver problemas matemáticos, de
ingeniería y científicos en una computadora, reducir esquemas numéricos bási-
cos, escribir programas y resolverlos en una computadora y usar correctamente
el software existente para dichos métodos y no solo aumenta nuestra habilidad
para el uso de computadoras sino que también amplia la pericia matemática y la
comprensión de los principios científicos básicos.
2. Cifras Significativas
Es el número de dígitos en que se pueden usar en una variable.
3. Precisión
Es el número de cifras significativas que representan una cantidad.
4. Exactitud
Se refiere a la aproximación de un número o de una medida, al valor numérico
que se supone representa.
Por ejemplo:
π = 3, 15 es impreciso e inexacto
π = 3, 14 es impreciso pero exacto
π = 3, 151692 es preciso pero inexacto
π = 3, 141593 es preciso y exacto
5. Convergencia y estabilidad
Convergencia se refiere a ir al punto al que se debe, y la estabilidad es la trayec-
toria en ir a ese punto. Un método numérico termina por acercarse cada vez más
al valor buscado de lo contrario se desecha.
6. Series
a) Definición de serie.
Una serie es la generalización de la noción de suma a los términos de una
∞
X
an
n=1
n
X
lı́m Sn = ak = S
n→∞
k=1
Se dice que la serie converge; caso contrario diverge.
2. Polinomio
Entonces, se deduce que existe una constante real M > 0 y un número n ∈ N tal que
|f (h) − p(h)|
≤M
hn
Ep = |p − p0 |
p = pb + Ep
Propagación del error en multiplicación:
p+q pb + Ep pb − Ep
qb + Eq pb + qb + (Ep + Eq) pb + qb + (Eq − Ep)
qb − Eq pb + qb + (Ep − Eq) pb + qb − (Eq + Ep)
f (x) = 0
Los métodos encontrarán raíces de funciones continuas y derivables en un intervalo
[a, b]. Entre los métodos que existen están son los siguientes:
Representación geométrica
Programa en Matlab
clc
clear all
f=@(x)(x^3-1);
a=-1;
b=1;
e=0.1
i=1;
if f(a)*f(b)>0
error(’No hay raiz’);
end
while abs(b-a)>e
c=(b+a)/2;
if f(c)==0
raiz=c;
break
end
r(i)=c
if f(a)*f(c)<0
b=c;
else
a=c;
end
i=i+1;
end
raiz=c;
raiz
f (xn )
xn+1 = xn −
f 0 (xn
El método de newton se obtiene mediante la siguiente demostración en función de
la Serie de Taylor para un punto Xn
f 00 (xn )
f (x) = f (xn ) + f 0 (xn )(x − xn ) + (x − xn )2 + ...
2!
Si se trunca el desarrollo a partir del término de grado 2, y evaluamos en xn+1 :
f (xn )
xn+1 = xn −
f 0 (xn )
Procedimiento
1. Definir el punto inicial x0 , cercano a la raíz buscada y el error.
f (x0 )
x1 = x0 −
f 0 (x0 )
x0 = x 1
f (x0 ) ≤ Error
Representación geométrica
Programa en Matlab
clc
clear all
f=@(x)(x^2-5*x+6);
df=@(x)(2*x-5);
x=0;
e=0.001;
while abs(f(x))> e
x1=x-(f(x)/df(x));
if f(x1)==0
raiz=x1;
break
else
x=x1;
end
end
raiz=x1
xn − xn−1
xn+1 = xn − f (xn )
f (xn ) − f (xn−1 )
Procedimiento
1. Definir los puntos iniciales x0 y x1 , cercanos a la raíz buscada y el error.
f (x0 )(x1 − x0 )
x2 = x0 −
f (x1 ) − f (x0 )
f (x2 ) ≤ Error
Representación geométrica
Programa en Matlab
clc
clear all
f=inline(’x^2-5*x+6’);
x0=0;
x1=1;
e=0.001;
x2=x1-(f(x1)*(x1-x0)/(f(x1)-f(x0)));
if f(x2)==0
raiz=x2;
end
while abs(f(x2))>e
x0=x1;
x1=x2;
x2=x0-(f(x0)*(x1-x0)/(f(x1)-f(x0)));
end
raiz=x2
donde:
n
X f (R) (x0 )(x − x0 )R
Pn (x) =
R=0
R!
1 1
f i (x) = √ =⇒ f 0 (1) =
2 x 2
3
ii x− 2 1
f (x) = − =⇒ f ii (1) = −
4 4
5
iii3x− 2 3
f (x) = =⇒ f iii (1) =
8 8
7
iv 15x− 2 15
f (x) = − =⇒ f iv (1) = −
16 16
9
v 105x− 2
f (x) =
32
clc
x=0:0.1:2;
f=(x).^(1/2);
f1=1+(x-1)/2;
f2=1+((x-1)/2)-(((x-1).^2)/8);
f3=1+((x-1)/2)-(((x-1).^2)/8)+(((x-1).^3)/16);
f4=1+((x-1)/2)-(((x-1).^2)/8)+(((x-1).^3)/16)-5*(((x-1).^4)/128);
plot(x,f,x,f1,x,f2,x,f3,x,f4)
legend(’0’,’p1’,’p2’,’p3’,’p4’)
grid
Corrida de escritorio:
f v (x) = 120
clc
x=-1:0.1:1;
f=x.^5+4*(x.^2)+3*x+1;
f1=1+3*x;
f2=1+3*x+4*(x.^2);
plot(x,f,x,f1,x,f2)
legend(’0’,’p1’,’p2’)
grid
Corrida de escritorio:
f v (x) = −sen(x)
clc
x=-1:0.1:1;
f=cos(x);
f1=1;
f2=1-((x.^2)/2);
f3=1-((x.^2)/2)+((x.^4)/24);
plot(x,f,x,f1,x,f2,x,f3)
legend(’0’,’p1’,’p2’,’p3’)
grid
Corrida de escritorio:
h2 h4
cos(h) = 1 − + + O(h6 )
2! 4!
1 2 4
1−h
− cos(h) = h + 3h2 + h3 − h4! + O(h4 )
El orden de aproximación es: O(h4 )
Orden de aproximación del producto.
h2 h4
1 2 3 4
6
(cos(h)) = 1 + h + h + h + O(h ) 1 − + + O(h )
1−h 2! 4!
h2 h4 h3 h5 h4 h6
=1− + + O(h6 ) + h − + + hO(h6 ) + h2 − + + h2 O(h6 )
2! 4! 2! 4! 2! 4!
h5 h7 h2 h4
+ h3 − + + h3 O(h6 ) + O(h4 ) − O(h4 ) + O(h4 ) + O(h4 )O(h6 )
2! 4! 2! 4!
h6
2 1 4 1 1 3 1 5 1 1
=1+h 1− +h − +h+h 1− +h − +
2! 4! 2! 2! 4! 2! 4!
7
h 1 1
+ + O(h6 ) + O(h7 ) + O(h8 ) + O(h9 ) + O(h4 ) − O(h6 ) + O(h8 ) + O(h1 0)
4! 2! 4!
h2 h3
=1+ +h+ + O(h4 )
2 2
h2 h3
=1+h+ + + O(h4 )
2 2
El orden de aproximación es: O(h4 )
Orden de aproximación de la división.
h2 h4
1− 2!
+ 4!
+ O(h6 ) ÷ 1 + h + h2 + h3 + O(h4 )
1
−1 − h − h2 − h3 − O(h4 ) 1 − h + h2
2
___________________________
3 h4
−h − h2 − h3 + + O(h4 )
2 24
h + h2 + h3 + h4 + O(h5 )
___________________________
h2 25h4
− + + O(h4 )
2 24
h2 h3
+ + O(h4 )
2 2
___________________________
Por lo tanto orden de aproximación es: O(h4 )
h2 h3 h4
eh = 1 + h + + + + O(h5 )
2! 3! 4!
h3
sen(h) = h − + O(h5 )
3!
h2 h3 h4 h3
h 5 5
e (sen(h)) = 1 + h + + + + O(h ) h− + O(h )
2! 3! 4! 3!
h3 h4 h3 h5 h2
=h− + O(h5 ) + h2 − + O(h6 ) + − + O(h5 )
3! 3! 2! 3!2! 2!
h4 h6 h3 h5
h 7
h4
h3
+ − + O(h5 ) + − + O(h5 ) + hO(h5 ) − O(h5 ) + O(h5 )O(h5 )
3! 3!3! 3! 4! 4!3! 4! 3!
6 7
1 1 1 1 h h 1
= h − h3 − + h2 + h5 − − − + O(h5 ) + O(h7 ) + O(h7 )
2! 3! 4! 3!2! 3!3! 4!3! 2!
1 1 1
+ O(h8 ) + O(h9 ) + O(h6 ) − O(h8 ) + O(h6 )
3! 4! 3!
1 3 2 5
= h + h + h + O(h )
3
El orden de aproximación es: O(h5 )
Orden de aproximación de la división.
h2 h3 h4 3
1+h+ + + + O(h5 ) ÷ h − h3! + O(h5 )
2! 3! 4!
h2 1 1
−1 + − h O(h ) 5
h
+ 1 + 7h
6
3!
___________________________
h3 h4
2 1 1
h+h + + + + O(h5 )
2! 3! 3! 4!
h3
−h + − O(h5 )
3!
___________________________
2h3 h4
7
h2 + + 4! + O(h5 )
6
6
7 4
−h 2
+ 7h36
+ 76 hO(h5 )
6
___________________________
Por lo tanto orden de aproximación es: O(h5 )
h2 h4
cos(h) = 1 − + + O(h6 )
2! 4!
h3 h5
sen(h) = h − + + O(h7 )
3! 5!
h2 h4 h3 h5
6 7
(sen(h)) (cos(h)) = 1 − + + O(h ) h− + + O(h )
2! 4! 3! 5!
h3 h5 7 h3 h5 h7 h2 7 h5 h7 h9 h4
=h− + + O(h ) − + − − O(h ) + − + + O(h7 )
3! 5! 2! 2!3! 2!5! 2! 4! 3!4! 4!5! 4!
3 5
h h
+ hO(h6 ) − O(h6 ) + O(h6 ) + O(h6 )O(h6 )
3! 5!
h3 h5 h3 h5 h5
=h− + − + + + O(h6 )
3! 5! 3! 2!3! 4!
h3
5 1 1 1
=h− +h + +
2 5! 2!3! 4!
x̂
x − y
x x̂ ŷ
= +
y ŷ ŷ + y
x x̂ ŷx − x̂y
− =
y ŷ ŷ(ŷ + y )
x x̂ x x̂y
− = −
y ŷ ŷ + y ŷ(ŷ + y )
x x̂ x̂
− x Ery
y ŷ y ŷ
x = x − x
y y
y
Por lo tanto la propagación de errores será la siguiente:
Erx/y =Erx-Ery
Erx/y =Erx+Ery
Ahora con x2 :
√ √
−b − b2 − 4ac −b + b2 − 4ac b2 − b2 + 4ac
x2 = √ = √
2a −b + b2 − 4ac 2a(−b + b2 − 4ac)
−2c
x2 = √
b − b2 − 4ac
2.2.6. Use la fórmula adecuada para calcular x1 y x2 , tal como se explica en el Ejer-
cicio 12, para hallar las raíces de las siguientes ecuaciones de segundo grado.
x2 − 1000,001x + 1 = 0
x2 − 10000,0001x + 1 = 0
x2 − 100000,00001x + 1 = 0
x2 − 1000000,000001x + 1 = 0
Resolución: x2 − 1000,001x + 1 = 0
√ p
b2 − 4ac = 2
√ (1000,001) − 4(1)(1) ≈ |b|
−b + b2 − 4ac
x1 = = 1000
2a
−2c
x2 = √ = 0,001
b − b2 − 4ac
Resolución: x2 − 10000,0001x + 1 = 0
√ p
b2 − 4ac = 2
√ (10000,0001) − 4(1)(1) ≈ |b|
−b + b2 − 4ac
x1 = = 10000
2a
−2c
x2 = √ = 0,0001
b − b2 − 4ac
Resolución: x2 − 100000,00001x + 1 = 0
√ p
b2 − 4ac = 2
√ (100000,00001) − 4(1)(1) ≈ |b|
−b + b2 − 4ac
x1 = = 100000
2a
−2c
x2 = √ = 0,00001
b − b2 − 4ac
Resolución: x2 − 1000000,000001x + 1 = 0
√ p
b2 − 4ac = 2
√ (1000000,000001) − 4(1)(1) ≈ |b|
−b + b2 − 4ac
x1 = = 1000000
2a
−2c
x2 = √ = 0,000001
b − b2 − 4ac
Se realiza una tabla para observar el cambio de signo, dando valores a la variable in-
dependiente.
x Signo f(x)
-2 +
-1 +
0 +
1 +
2 +
3 +
4 -
Por lo tanto se observa un cambio de signo en x = 3 y x = 4, es decir el intervalo es
x ∈ [3, 4]
2.3.2. Denotamos por [a0 , b0 ], [a1 , b1 ], ..., [an , bn ] los intervalos que se generan en el
método de bisección.
2.3.3. Pruebe que a0 ≤ a1 ≤ ... ≤ an ≤ ... y que ... ≤ bn ≤ ... ≤ b1 ≤ b0
Se conoce que:
b 0 + a0
a1 =
2
Ademas:
2[a1 − a0 ] = b0 − a0
Por lo tanto despejando a1
b 0 − a0
a1 = + a0 > a0
2
Y queda demostrado.
b 0 − a0
b 1 − a1 =
2
Ademas:
b 1 − a1 b 0 − a0
b 2 − a2 = =
2 4
b 2 − a2 b 1 − a1 b 0 − a0
b 3 − a3 = = =
2 4 8
Por lo tanto generalizando:
b 0 − a0
b n − an =
2n
2.3.5. Sea cn = (an + bn )/2 el punto medio de cada intervalo. Pruebe que:
lı́m bn = lı́m an
n→∞ n→∞
Y se concluye que:
f (3) ∗ f (7)?0
(1) ∗ 0,2 < 0
Por lo tanto en este intervalo no hay raíz.
f (1) ∗ f (7)?0
(−1) ∗ 0,2 < 0
Según el teorema si hay raíz.
1+7
c0 = =4
2
Se tienen dos intervalos: [1, 4] ∨ [4, 7]
f (1) ∗ f (4)?0
f (1,75) ∗ f (2,5)?0
1,75 + 2,5
c3 = = 2,125
2
Como se observa la raíz va convergiendo a 2, sin embargo este valor equivale a la
asintota de la función, por lo tanto se concluye que no hay raíces en este intervalo.
2.3.9. Supongamos que usamos el método de bisección para hallar un cero de f (x)
en el intervalo [2, 7]. ¿Cuántas bisecciones hay que hacer para asegurar que la
aproximación cN tiene una precisión de 5 × 10−9 ?
Se conoce la fórmula:
ln(b − a) − ln(error)
n=
ln(2)
Reemplazando en la fórmula:
f (pk−1 )
pk = g(pk−1 ) = pk−1 −
f 0 (pk−1 )
Como f 0 (x) = 2x − 1 entonces:
2pk−1 + A/p2k−1
pk =
3
para k = 1, 2, ...
Como f 0 (x) = 3x2 entonces:
3. Capítulo 2
3.1. Solución de sistemas lineales
3.1.1. Método Gauss
Este método consiste en transformar un sistema de ecuaciones en otro equivalente
de forma que este sea escalonado.
Este método es una generalización del método de reducción.
Consiste en trabajar directamente con los coeficientes del sistema inscritos en una ma-
triz de forma que cada fila de esta matriz contiene los coeficientes de las incógnitas y
Siendo:
y : Orden de la matriz.
Precedimiento de resolución
Programa en Matlab
clc
clear all
A=[1,(1/2),(1/3);(1/2),(1/3),(1/4);(1/3),(1/4),(1/5)];
b=[2;0;-1];
[m,n]=size(A);
%ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Resolucion de sistema de ecuaciones triangulares superirores
X=zeros(n,1);
X(n)=b(n)/A(n,n);
for k=n-1:-1:1
X(k)=(b(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
X
A=hilb(12);
b=A*[1;1;1;1;1;1;1;1;1;1;1;1];
[m,n]=size(A);
%Ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Ceros sobre la diagonal
for i=m:-1:2
for j=i-1:-1:1
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Calculo vector resultante
X=zeros(n,1);
for k=1:m
X(k)=b(k,1)/A(k,k);
end
X
LU x = b
Lz = b
Uniendo las matrices L y b formando L|b encontrando el valor de z.
Igualando:
Ux = z
Encontrando la solución del sistema en la matriz x.
Procedimiento de análisis
1. Se hacen ceros bajo la diagonal determinando asi la matriz U.
2. Se arma la matriz L.
Programa en Matlab
clc
clear all
A=[1 1 1;1 2 4; 1 3 9];
b=[1;-1;1];
[m,n]=size(A);
%se determina la matriz L
L=eye(m);
for i=1:m-1
for j=i+1:m
L(j,i)=(A(j,i)/A(i,i));
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Se resuelve Ly=b
[m,n]=size(L);
Y=zeros(n,1);
Y(1)=b(1)/L(1,1);
for i=2:n
Y(i)=(b(i)-L(i,i:-1:1)*Y(i:-1:1))/L(i,i);
end
Y
%
U=A;
[m,n]=size(U);
X=zeros(n,1);
X(n)=Y(n)/U(n,n);
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1:n)*X(i+1:n))/U(i,i);
end
X
A=U VT
P
P
donde U y V son matrices ortogonales y es una matriz diagonal. Para entender en
que consiste esta factorización se presentan a continuación las siguientes definiciones:
Definición (Valores singulares). Sea una matriz Amxn los valores singulares de A son las
raices cuadradas de los autovalores de (AT A)nxn y se denotan mediante σ1 , σ2 . . . , σn .
Es decir:
√
σi = λi
σ1 ≥ σ2 ≥ . . . σn
Teorema (Descomposición en valores singulares). Sea Amxn con valores singulares σ1 ≥
σ2 ≥ . .P
. σn 6= 0. Existe una matriz Um×m ortogonal, una matriz Vn×n ortogonal y una
matriz m×n , tal que:
X
A=U VT
P
Donde la matriz m×n se puede ver de manera informal de la siguiente manera:
σ 1 ··· 0
X .
= .. . . . ...
0 · · · σi
Aplicación: Sistemas lineales mal condicionados Para la resolución de sistemas de
ecuaciones mal condicionados donde el número de condicionamiento(por ejemplo de
una matriz A, cond(A) =k A kk AT k) es mucho mayor que 1, haciendo así que pe-
queños cambios en los elementos de la matriz A produzcan grandes cambios en las
soluciones del sistema lineal Ax = b.
La solución del sistema sería de la siguiente manera:
x = A−1 b
Donde la factorización de A sería:
VT
P
A=U
por lo tanto A−1 sería:
P−1
A−1 = V UT
P
Para eliminar las perturbaciones en la matriz se impone un número denotado por
δ, con el cual los se impone
P la condición δ 6 N donde todos los valores singulares
(valores de la diagonal de ) que cumplan con esta, tomarán el valor de cero. El nú-
mero N se impondrá observando los valores singulares de la matriz que podrían ser
los causantes de las perturbaciones en la matriz. Algoritmo El siguiente algoritmo tie-
ne como datos de entrada A, b, δ y resuelve sistemas mal condicionados considerando
que la condicion de la matriz es mayor que 20, caso contrario resolverá el sistema por
el método de Gauss:
clc
clear all
A=[1 2 1;10 18 12;20 22 40];
b=[8;78;144];
[m,n]=size(A);
cond(A)
%X=A\b
d=1;
li=20;
if cond(A)>li
%SVD
[U,S,V]=svd(A);
for l=1:m
if S(l,l)<=d
S(l,l)=0;
else
S(l,l)=1/S(l,l);
end
end
Ain=V*S*U’;
X=Ain*b;
else
%Gauss
%ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Resolucion de sistema de ecuaciones triangulares superirores
X=zeros(n,1);
X(n)=b(n)/A(n,n);
for k=n-1:-1:1
X(k)=(b(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
end
X
3.2. Interpolación
3.2.1. Interpolación de Newton
Método de interpolación para encontrar un polinomio que satisfaga una serie de
puntos dados el cual consiste en los siguiente:
Se considera el polinomio escrito de la forma:
p(x) = a0 + a1 x + a2 x2 + . . . + an xn
Pueden obtenerse los coeficientes resolviendo el sistema:
(x0 , f0 ) : c0 + = f0
(x1 , f1 ) : c0 + c1 (x1 − x0 ) = f1
(x2 , f2 ) : c0 + c1 (x2 − x0 )+ c2 (x2 − x0 )(x2 − x1 ) = f2
Pn Qi−1
(xn , fn ) : c0 + i=1 ci j=0 xn − xj = fn
c0 = f 0
f1 − f0
c1 =
x1 − x0
f2 −f1
x2 −x1
− xf11 −f
−x0
0
c2 =
x2 − x0
...
n
X i−1
Y
pn (x) = f (x0 ) + f (x0 , . . . , xi ) (x − xj )
i=1 j=0
(x0 , f (x0 )), (x1 , f (x1 )), (x2 , f (x2 )), . . . , (xn , f (xn ))
El objetivo es encontrar una función polinómica de grado n que pase por esos n + 1
puntos.
Donde:
N
Y x − xj
LN,k (x) =
j=0,k6=j
xk − xj
sΓ (x− i ) = sΓ (x+ i ), ∀i = 1, . . . , n − 1
sΓ (x−
0
i ) = sΓ (x+
0
i ), ∀i = 1, . . . , n − 1
.. .. .. ..
. . . .
sm−1
Γ (x− + m−1
i ) = sΓ (xi ) , ∀i = 1, . . . , n − 1
Interpolación con splines grado 1 Las funciones spline de grado 1 son funciones li-
neales a trozos y continuas.
function [m,b]=spline(X)
n=length(X(1,:));
for i=1:n-1;
m(i)=(X(2,i+1)-X(2,i))/(X(1,i+1)-X(1,i));
b(i)=X(2,i);
x=X(1,i):X(1,i+1);
y=m(i)*(x-X(1,i))+b(i);
hold on;
plot(x,y,?b?);
end
for i=1:n;
hold on;
plot (X(1,i),X(2,i),?*?,?MarkerEdgeColor?,?r?,?LineWidth?,1);
title(?Interpolaci´on por "splines" de orden 1.?);
end
Interpolación con splines de grado 2 Las funciones spline polinómicas de grado ma-
yor que uno siguen una filosofía á las de grado uno, sólo que al aumentar el grado se
puede conseguir mayor regularidad global, sin que cambie mucho la dimensión del
espacio vectorial.
Un ejemplo para la interpolación spline de grado 2 es el siguiente:
2
s1 (x) : ax2 + bx + c x ∈ [x0 , x1 [
2
s (x) = s2 (x) : dx2 + ex + f x ∈ [x1 , x2 [
22
s3 (x) : gx2 + hx + i x ∈ [x2 , x3 ]
En el cual se cumple las siguientes condiciones:
(2).JPG
(2).JPG
(2).JPG
%
U=A;
[m,n]=size(U);
X=zeros(n,1);
X(n)=Y(n)/U(n,n);
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1:n)*X(i+1:n))/U(i,i);
end
X
clc
clear all
A=[1 2 1;10 18 12;20 22 40];
b=[8;78;144];
[m,n]=size(A);
%cond(A)
%X=A\b
d=1;
li=20;
if cond(A)>li
%SVD
[U,S,V]=svd(A);
for l=1:m
if S(l,l)<=d
S(l,l)=0;
else
S(l,l)=1/S(l,l);
end
end
Ain=V*S*U’;
X=Ain*b;
else
%Gauss
%ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Resolucion de sistema de ecuaciones triangulares superirores
X=zeros(n,1);
X(n)=b(n)/A(n,n);
for k=n-1:-1:1
X(k)=(b(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
end
X
clc
clear all
figure(1)
A0=imread(’color3.png’,’png’);
imagesc(A0); colormap(gray);
A0=double(A0);
Aux=A0;
R=A0; G=A0; B=A0;
%matriz red
R(:,:,2)=0;
R(:,:,3)=0;
imshow(R)
R1=R(:,:,1);
%imshow(R1)
R2=R1(:,:);
%matriz green
G(:,:,1)=0;
G(:,:,3)=0;
G1=G(:,:,2);
G2=G1(:,:);
%matriz blue
B(:,:,1)=0;
B(:,:,2)=0;
B1=B(:,:,3);
B2=B1(:,:);
%Datos de matriz R2
R2=double(R2);
[ma0,na0]=size(R2);
[U0, S0, V0]=svd(R2);
[mu0, nu0]=size(U0); [ms0, ns0]=size(S0); [mv0, nv0]=size(V0);
%Datos de matriz G2
G2=double(G2);
[ma1,na1]=size(G2);
[U1, S1, V1]=svd(G2);
[mu1, nu1]=size(U1); [ms1, ns1]=size(S1); [mv1, nv1]=size(V1);
%Datos de matriz B2
B2=double(B2);
[ma2,na2]=size(B2);
[U2, S2, V2]=svd(B2);
[mu2, nu2]=size(U2); [ms2, ns2]=size(S2); [mv2, nv2]=size(V2);
%SVD
figure(2)
for k=1:6
r0=2^k;
%Matriz R
imaR=U0(:,1:r0)*S0(1:r0,1:r0)*V0(:,1:r0)’;
comp=(mu0+nv0+1)*r0;
total=ma0*na0;
disp([ k r0 total comp])
imaR=uint8(imaR);
% Matriz G
imaG=U1(:,1:r0)*S1(1:r0,1:r0)*V1(:,1:r0)’;
comp2=(mu1+nv1+1)*r0;
total2=ma1*na1;
disp([ k r0 total2 comp2])
imaG=uint8(imaG);
% matriz B
imaB=U2(:,1:r0)*S2(1:r0,1:r0)*V2(:,1:r0)’;
comp3=(mu2+nv2+1)*r0;
total3=ma2*na2;
disp([ k r0 total3 comp3])
imaB=uint8(imaB);
%SUMANDO MATRICES
T=imaR+imaG+imaB;
%T2=[T(:,:),3];
subplot(2,3,k);
imagesc(T); colormap(gray);
end
clc
clear all
x=[0 1 2]
y=[1 4 6];
w = length(x);
acum=zeros(1,w)
for k=1:w
V = 1;
for j = 1:w
if k ~= j
V = conv(V,poly(x(j)))/(x(k)-x(j));
end
end
Z=y(k)*V;
acum=acum+Z;
end
acum
x1=min(x):0.1:max(x);
y1=polyval(acum,x1);
plot(x1,y1,’r’,x,y,’o’)
grid
clc
clear all
%
A=[1,(1/2),(1/3);(1/2),(1/3),(1/4);(1/3),(1/4),(1/5)];
b=[2;0;-1];
[m,n]=size(A);
%ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Resolucion de sistema de ecuaciones triangulares superirores
X=zeros(n,1);
X(n)=b(n)/A(n,n);
for k=n-1:-1:1
X(k)=(b(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
X
(180)F3
1
1 0 − | 8
6
0 1 1 | −12
0 0 1 | −120
F2 = F2 − F3
1
F1 = F1 + F3
6
1 0 0 | −12
0 1 0 | 108
0 0 1 | −120
4.5.2. Ejercicio 2
Escríbase una función de Matlab [L, U, P ] = f ac_LU P (A) que calcule la factoriza-
ción LU de una matriz A utilizando el algoritmo propuesto. La matriz L debe ser una
matriz triangular inferior n × n, U una triangular superior n × n y P una matriz de
permutación de las mismas dimensiones que A, tales que se cumpla L ∗ U = P ∗ A.
function [L,U,P]=fac_LUP(A)
B=A;
[m,n]=size(A);
L=eye(n);
P=eye(n);
for j=1:n
for i=j+1:m
if A(j,j)~=0
L(i,j)=A(i,j)/A(j,j);
A(i,:)=A(i,:)-L(i,j)*A(j,:);
else
k=j-1;
[mx c]=max(A(j:m,j)) % Busco el maximo entre la columna
A([c+k,j],:)=A([j,c+k],:); % Intercambio filas
P([c+k,j],:)=P([j,c+k],:); % Construyo la matriz de pivotes
L(i,j)=A(i,j)/A(j,j); % Matriz triangular inferior
% de coeficientes
A(i,:)=A(i,:)-L(i,j)*A(j,:); % Hago ceros a los elementos
% de la columna (Gauss)
end
end
end
U=A;
L
U
P
4.5.3. Ejercicio 3
Dado el sistema lineal de ecuaciones Ax = b, donde la matriz de coeficientes A ∈
nxn
R es una matriz no singular, un método para resolver dicho sistema consiste en
calcular la factorización LU de la matriz A. Si para resolver el sistema utilizamos el
algoritmo del apartado anterior entonces, podemos obtener la solución x resolviendo
los dos sistemas triangulares siguientes:
Ly = P b
Ux = y
Escríbase una función de Matlab X = sollu(A, b) que calcule la solución del sistema de
ecuaciones Ax = b mediante el procedimiento descrito.
function [X]=sollu(A,b)
B=A;
[m,n]=size(A);
L=eye(n);
P=eye(n);
for j=1:n
for i=j+1:m
if A(j,j)~=0
L(i,j)=A(i,j)/A(j,j);
A(i,:)=A(i,:)-L(i,j)*A(j,:);
else
k=j-1;
[mx c]=max(A(j:m,j)) % Busco el maximo entre la columna
A([c+k,j],:)=A([j,c+k],:); % Intercambio filas
4.5.4. Ejercicio 4
Sea A ∈ Rnxn una matriz no singular, la matriz inversa puede calcularse resolviendo
el sistema matricial AX = In, donde x ∈ Rnxn e In es la matriz identidad n × n.
Escríbase una función de Matlab X=inversa(A) que calcule la matriz inversa de A.
function [C]=inversa(A)
Q=A;
[m,n]=size(A);
C=zeros(m,n);
I=eye(n);
for l=1:n
A=Q;
I1=I(:,l);
b=I1;
%%
L=eye(m);
for i=1:m-1
for j=i+1:m
L(j,i)=(A(j,i)/A(i,i));
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%
[m,n]=size(L);
Y=zeros(n,1);
Y(1)=b(1)/L(1,1);
for i=2:n
Y(i)=(b(i)-L(i,i:-1:1)*Y(i:-1:1))/L(i,i);
end
Y;
%
U=A;
[m,n]=size(U);
X=zeros(n,1);
X(n)=Y(n)/U(n,n);
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1:n)*X(i+1:n))/U(i,i);
end
%%
C(:,l)=X;
end
A=Q;
4.5.5. Ejercicio 5
La matriz de Hilbert es un clásico ejemplo de una matriz mal condicionada, ésta se
define de la siguiente manera:
1 1 1
1 ···
1 2 3 n
1 1 1
2 ···
Hn = 3 4 n+1
.. .. .. .. ..
. . . . .
1 1 1 1
···
n n+1 n+2 2n − 1
Esta matriz puede ser fácilmente generada en Matlab, utilizando el comando hilb(n),
donde n es el orden de la matriz. En el presente ejercicio se pide:
clc
clear all
%
% A=[1,(1/2),(1/3);(1/2),(1/3),(1/4);(1/3),(1/4),(1/5)];
% b=[2;0;-1];
A=hilb(12)
b=A*[1;1;1;1;1;1;1;1;1;1;1;1]
[m,n]=size(A);
%ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
Resolucón por LU
clc
clear all
% A=[1 1 1;1 2 4; 1 3 9];
% b=[1;-1;1];
A=hilb(12)
b=A*[1;1;1;1;1;1;1;1;1;1;1;1]
[m,n]=size(A);
%se determina la matriz L
L=eye(m);
for i=1:m-1
for j=i+1:m
L(j,i)=(A(j,i)/A(i,i));
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Se resuelve Ly=b
[m,n]=size(L);
Y=zeros(n,1);
Y(1)=b(1)/L(1,1);
for i=2:n
Y(i)=(b(i)-L(i,i:-1:1)*Y(i:-1:1))/L(i,i);
end
Y
%
U=A;
[m,n]=size(U);
X=zeros(n,1);
X(n)=Y(n)/U(n,n);
for i=n-1:-1:1
X(i)=(Y(i)-U(i,i+1:n)*X(i+1:n))/U(i,i);
end
X
clc;
clear all;
% A=[1 1 1;1 2 4; 1 3 9];
% b=[1;-1;1];
A=hilb(12);
b=A*[1;1;1;1;1;1;1;1;1;1;1;1];
[m,n]=size(A);
%Ceros bajo la diagonal
for i=1:m-1
for j=i+1:m
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Ceros sobre la diagonal
for i=m:-1:2
for j=i-1:-1:1
b(j,1)=b(j,1)-(A(j,i)/A(i,i))*b(i,1);
A(j,1:n)=A(j,1:n)-(A(j,i)/A(i,i)).*A(i,1:n);
end
end
%Calculo vector resultante
X=zeros(n,1);
for k=1:m
X(k)=b(k,1)/A(k,k);
end
X
X Y
-1 -1
0 0
1 1
P2 (x) = x
X Y
-1 -1
0 0
1 1
2 8
(x − x0 )(x − x1 )(x − x2 )
+y3
(x3 − x0 )(x3 − x1 )(x3 − x2 )
(x)(x − 1)(x − 2) (x + 1)(x)(x − 2) (x + 1)(x)(x − 1)
P3 (x) = −1 +0+1 +8
(−1)(−1 − 1)(−1 − 2) (1 + 1)(1)(1 − 2) (2 + 1)(2)(2 − 1)
1 1 4
P3 (x) = (x3 − 3x2 + 2x) − (x3 − x2 − 2x) + (x3 − x)
6 2 3
3
P3 (x) = x
4.6.2. Modificar el código dado para que realice el gráfico de los nodos (puntos) y
el polinomio interpolador.
function[C,L]=Lagrange(x,y)
w=length(x);
n=w-1;
L=zeros(w,w);
for k=1:n+1
V=1;
for j=1:w
if k~=j
V=conv(V,poly(x(j)))/(x(k)-x(j));
end
end
L(k,:)=V;
end
C=y*L;
xp=x(1):0.001:(x(w)+1);
f=0;
b=1;
for m=n:-1:0
f=xp.^m*C(b)+f;
b=b+1;
end
plot(xp,f);
hold on
for h=1:w
plot(x(h),y(h),’*r’)
hold on
end
title(’Interpolacion de Lagrange’)
xlabel(’eje x’)
ylabel(’eje y’)
grid on
hold off
X Y
-1 -1
0 0
1 1
2 8
C =
1.0000 0 0 0
L =
function [ ] = lagrangeG(x,y)
w = length(x);
x1=sym(’x’);
u = 1;
P = 0;
while(u<=w)
aux = 1;
for i = 1:w
if(i~=u)
aux = aux*(x1-x(i))/(x(u)-x(i));
end
end
P = P+aux*y(u);
u = u+1;
end
P = simplify(P);
P = expand(P)
hold on
grid on
for i=1:w
plot(x(i),y(i),’*’,’markersize’,6,’markeredgecolor’,’r’)
end
ezplot(P)
xlabel(’x’)
ylabel(’y’)
title(’INTERPOLACION DE LAGRANGE’)
hold off
end
Corrida en Matlab
>> x=[1 2 3 4]
x =
1 2 3 4
>> y=[3 5 7 2]
y =
3 5 7 2
>> lagrangeG(x,y)
P =
>>
4.6.4. En el cuadro 2 se muestran temperaturas que fueron medidas cada hora, du-
rante un lapso total de 5 horas.
H T
13 18
14 18
15 17
16 16
17 15
18 14
>> [C,L]=lagrange(H,T)
C =
1.0e+003 *
Columns 1 through 3
Columns 4 through 6
L =
1.0e+004 *
Temperatura
ER = 0, 0204
Usando el polinomio se tiene que el error relativo 0,0204; que para los ensayos de
temperatura en ingeniería en general, es muy aceptable, ya que el error admisible
para temperaturas es de ±0, 05
X Y
-1 -1
0 0
1 1
X Y
-1 -1
0 0
1 1
2 8
(x − x0 )(x − x1 )(x − x2 )
+y3
(x3 − x0 )(x3 − x1 )(x3 − x2 )
(x)(x − 1)(x − 2) (x + 1)(x)(x − 2) (x + 1)(x)(x − 1)
P3 (x) = −1 +0+1 +8
(−1)(−1 − 1)(−1 − 2) (1 + 1)(1)(1 − 2) (2 + 1)(2)(2 − 1)
1 1 4
P3 (x) = (x3 − 3x2 + 2x) − (x3 − x2 − 2x) + (x3 − x)
6 2 3
3
P3 (x) = x
4.6.7. Modificar el código dado para que realice el gráfico de los nodos (puntos) y
el polinomio interpolador.
function[C,L]=Lagrange(x,y)
w=length(x);
n=w-1;
L=zeros(w,w);
for k=1:n+1
V=1;
for j=1:n+1
if k~=j
V=conv(V,poly(x(j)))/(x(k)-x(j));
end
end
L(k,:)=V;
end
C=y*L;
xp=x(1):0.001:(x(w)+1);
f=0;
b=1;
for m=n:-1:0
f=xp.^m*C(b)+f;
b=b+1;
end
plot(xp,f);
hold on
for h=1:w
plot(x(h),y(h),’*r’)
hold on
end
title(’Interpolacion de Lagrange’)
xlabel(’eje x’)
ylabel(’eje y’)
grid on
hold off
X Y
-1 -1
0 0
1 1
2 8
C =
1.0000 0 0 0
L =
function [ ] = lagrangeG(x,y)
w = length(x); % Toma la dimension de x
x1=sym(’x’);
u = 1;
P = 0;
while(u<=w)
aux = 1;
for i = 1:w
if(i~=u)
aux = aux*(x1-x(i))/(x(u)-x(i));
end
end
P = P+aux*y(u);
u = u+1;
end
P = simplify(P);
P = expand(P)
hold on
grid on
for i=1:w
plot(x(i),y(i),’*’,’markersize’,6,’markeredgecolor’,’r’)
end
ezplot(P)
xlabel(’x’)
ylabel(’y’)
title(’INTERPOLACION DE LAGRANGE’)
hold off
end
Corrida en Matlab
>> x=[1 2 3 4]
x =
1 2 3 4
>> y=[3 5 7 2]
y =
3 5 7 2
>> lagrangeYo(x,y)
P =
>>
4.6.9. En el cuadro 2 se muestran temperaturas que fueron medidas cada hora, du-
rante un lapso total de 5 horas.
(a) Construir el polinomio interpolador de Lagrange correspondiente a los datos
del cuadro 4.
(H − 14)(H − 15)(H − 16)(H − 17)(H − 18) (H − 13)(H − 15)(H − 16)(H − 17
T (H) = 18 +18
(13 − 14)(13 − 15)(13 − 16)(13 − 17)(13 − 18) (14 − 13)(14 − 15)(14 − 16)(14 − 17
(H − 13)(H − 14)(H − 16)(H − 17)(H − 18) (H − 13)(H − 14)(H − 15)(H − 17)(H −
+17 +16
(15 − 13)(15 − 14)(15 − 16)(15 − 17)(15 − 18) (16 − 13)(16 − 14)(16 − 15)(16 − 17)(16 −
H T
13 18
14 18
15 17
16 16
17 15
18 14
>> [C,L]=lagrange(H,T)
C =
1.0e+003 *
Columns 1 through 3
Columns 4 through 6
L =
1.0e+004 *
Para estimar la temperatura media, se saca una media aritmética de los valores
dados:
18 + 18 + 17 + 16 + 15 + 14
T̂ =
6
T̂ = 16, 3333
Temperatura
16, 333 − 16
ER =
16, 333
ER = 0, 0204
Usando el polinomio se tiene que el error relativo 0,0204; que para los ensayos de
temperatura en ingeniería en general, es muy aceptable, ya que el error admisible
para temperaturas es de ±0, 05
Funciones a analizar
xk f (xk ) f [xk−1 , xk ] f [xk−2 , xk−1 , xk ] f [xk−3 , xk−2 , xk−1 , xk ] f [xk−4 , xk−3 , xk−2 , xk−1 , xk ]
x0 =4 2
x1 =5 2.23 0.23
x2 =6 2.44 0.21 -0.01
x3 =7 2.64 0.20 -0.005 0.001667
x4 =8 2.82 0.18 -0.01 -0.001667 -0.000833
xk f (xk ) f [xk−1 , xk ] f [xk−2 , xk−1 , xk ] f [xk−3 , xk−2 , xk−1 , xk ] f [xk−4 , xk−3 , xk−2 , xk−1 , xk ]
x0 =0 0
x1 =1 0.75 0.75
x2 =2 2.25 1.50 0.375
x3 =3 3.00 0.75 -0.375 -0.250
x4 =4 2.25 -0.75 -0.750 -0.125 0.03125
P1 (x) = 2 + 0,23(x − 4)
P2 (x) = 2 + 0,23(x − 4) − 0,01(x − 4)(x − 5)
P3 (x) = 2 + 0,23(x − 4) − 0,01(x − 4)(x − 5) + 0,001667(x − 4)(x − 5)(x − 6)
P4 (x) = 2 + 0,23(x − 4) − 0,01(x − 4)(x − 5) + 0,001667(x − 4)(x − 5)(x − 6) −
0,000833(x − 4)(x − 5)(x − 6)(x − 7)
P1 (x) = 0,75x
P2 (x) = 0,75x + 0,375(x)(x − 1)
P3 (x) = 0,75x + 0,375(x)(x − 1) − 0,25(x)(x − 1)(x − 2)
P4 (x) = 0,75x+0,375(x)(x−1)−0,25(x)(x−1)(x−2)+0,03125(x)(x−1)(x−2)(x−3)
(c) Calcular los valores de los polinomios hallados, en el apartado anterior, para
los valores de x dados.
x = 4,5
P1 (4,5) = 2,115
P2 (4,5) = 2,1175
P3 (4,5) = 2,118125
P4 (4,5) = 2,118906
x = 7,5
P1 (7,5) = 2,805
P2 (7,5) = 2,7175
P3 (7,5) = 2,739375
P4 (7,5) = 2,733907
x = 1,5
P1 (1,5) = 1,125
P2 (1,5) = 1,40625
P3 (1,5) = 1,5
P4 (1,5) = 1,517578
x = 3,5
P1 (3,5) = 2,625
P2 (3,5) = 5,90625
P3 (3,5) = 2,625
P4 (3,5) = 2,830078
f (4,5) = 2,121320
f (7,5) = 2,738613
f (1,5) = 1,5
f (3,5) = 2,799038
donde P [x0 , x], P [x0 , x1 , x],..., P [x0 , x1 , ..., xn−1 , x] son polinomios de grado N-1,N-
2,...,0, respectivamente. Por tanto, las diferencias divididas de grado N+1 son cero
y las de orden superior también por construcción, hasta la M-ásima.
(b) Pruebe que si las (N +1)−ésimas diferencias divididas son cero, entonces existe
un polinomio PN (x) de grado N tal que:
ak = f (x0 , x1 , ..., xk )
Suponiendo que x0 , x1 , ..., xN son N + 1 números distintos en [a, b], existe un po-
linomio PN (x), que se aproxima a la función f (x).
Si los puntos dados tienen valores distintos en el eje de las abscisas, f (xj ) = yj ,
esos puntos son usados para construir un polinomio único de grado ≤ N que
pasa por N + 1 puntos. En consecuencia:
for k=0:N
A(k) = y(k);
end
for j=1:N
for k=N:-1:j
A(k) = (A(k)-A(k-1))/(x(k)-x(k-j));
end
end
C = A(N);
for k=N-1:-1:1
C = conv(C,poly(x(k)));
m = length(C);
C(m) = C(m) + A(k);
end
C =
D =
2.0000 0 0 0 0
2.2300 0.2300 0 0 0
2.4400 0.2100 -0.0100 0 0
2.6400 0.2000 -0.0050 0.0017 0
2.8200 0.1800 -0.0100 -0.0017 -0.0008
>> [C,A]=newtonpoly2(x,y)
C =
A =
C =
D =
0 0 0 0 0
0.7500 0.7500 0 0 0
2.2500 1.5000 0.3750 0 0
3.0000 0.7500 -0.3750 -0.2500 0
2.2500 -0.7500 -0.7500 -0.1250 0.0313
Usando la función newtonpoly2.m:
>> [C,A]=newtonpoly2(x,y)
C =
A =
DIFERENCIAS:
Con los 2 codigos,obtenemos dos matrices, la matriz C, nos da los coeficientes del
polinomio de Newton desarrollado;
En la primera funcion es:
En el primer código se obtiene una la matriz D, que nos da como resultado la tabla
de diferencias divididas, cuya diagonal son los valores de a0 , ..., a1 , que permite
construir el polinomio de Newton
Para el segundo código, se observa que nos da como resultado una matriz A, que
son los coeficientes a0 , ..., a1 , para hacer el polinomio de Newton.
function [a,b,c]=spline2(X)
n=length(X(1,:));
for i=1:n;
a(i)=X(2,i);
end
for i=1:n-1;
h(i)=X(1,i+1)-X(1,i);
end
for i=1:n-1;
lambda(i)=(X(2,i+1)-X(2,i))/h(i);
end
b(1)=0;
for i=2:n;
b(i)=2*lambda(i-1)-b(i-1);
end
for i=1:n-1;
c(i)=(lambda(i)-b(i))/h(i);
end
c(n)=0;
for i=1:n-1;
x=X(1,i):0.1:X(1,i+1);
y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2;
hold on;
plot(x,y,’b’);
end
for i=1:n;
hold on;
plot (X(1,i),X(2,i),’*’,’MarkerEdgeColor’,’r’,’LineWidth’,1);
title(’Interpolacion por "spline cuadrtico".’);
end
4.8.2. Consultar y desarrollar una metodología para las funciones spline cubicas.
El objetivo de los del spline cúbico es obtener un polinomio de tercer grado para
cada intervalo entre los nodos:
fi x = ai x3 + bi x2 + ci x + di
Los valores de la función deben ser iguales en los nodos interiores .
La primera y la última función deben pasar a travÃ
s
c de los puntos extremos.
Las primeras derivadas en los nodos interiores deben ser iguales.
Las segundas derivadas en los nodos interiores deben ser iguales.
Las segundas derivadas en los nodos extremos son cero.
Los cinco tipos de condiciones anteriores proporcionan un total de 4n ecuaciones re-
queridas para encontrar 4n coeficientes.
En base a las condiciones expuestas, se elabora un algoritmo que permita obtener
la interpolación mediante spline cÃo bico.
MetodologÃa
Los polinomios Si−1 y Si interpolan el mismo valor en el punto ti, es decir, se cumple:
por lo que se garantiza que S es continuo en todo el intervalo. Además, se supone que
S’ y S” son continuas, condición que se emplea en la deducción de una expresión para
la función del spline cúbico.
6 6
hi−1 zi−1 + 2(hi + hi−1 )zi + hi zi+1 = (yi+1 − yi ) − (yi − yi−1 )
hi−1 hi−1
en donde:
hi = ti+1 − ti
h2i−1
ui = 2(hi + hi−1 ) −
ui−1
6
bi = (yi+1 − yi )
hi
hi−1 νi−1
νi = bi − bi−1 −
ui−1
Este sistema de ecuaciones, que es tridiagonal, se puede resolver mediante elimina-
ción gaussiana sin pivoteo. El código acepta como entrada un conjunto de nodos (ti ) y
el conjunto de los valores de la función correspondiente (yi ) y produce un vector con
los vectores zi . Por ’ultimo, el valor del spline S en un punto x cualquiera interpolado
se puede calcular de forma eficiente empleando la siguiente expresión:
en donde:
1
Ai = (zi+1 − zi )
6hi
zi
Bi =
2
hi hi 1
Ci = − zi+1 − zi + (yi+1 − yi )
6 3 hi
function [a,b,c,d]=spline3(X)
n=length(X(1,:));
for i=1:n;
a(i)=X(2,i);
end
for i=1:n-1;
h(i)=X(1,i+1)-X(1,i);
end
for i=2:n-1;
alfa(i)=3/h(i)*(a(i+1)-a(i))-3/h(i-1)*(a(i)-a(i-1));
end
l(1)=1;
mu(1)=0;
z(1)=0;
for i=2:n-1;
l(i)=2*(X(1,i+1)-X(1,i-1))-h(i-1)*mu(i-1);
mu(i)=h(i)/l(i);
z(i)=(alfa(i)-h(i-1)*z(i-1))/l(i);
end
l(n)=1;
z(n)=0;
c(n)=0;
for i=n-1:-1:1;
c(i)=z(i)-mu(i)*c(i+1);
b(i)=(a(i+1)-a(i))/h(i)-h(i)*(c(i+1)+2*c(i))/3;
d(i)=(c(i+1)-c(i))/(3*h(i));
end
for i=1:n-1;
x=X(1,i):0.1:X(1,i+1);
y=a(i)+b(i)*(x-X(1,i))+c(i)*(x-X(1,i)).^2+d(i)*(x-X(1,i)).^3;
hold on;
plot(x,y,’b’);
end
for i=1:n;
hold on;
plot (X(1,i),X(2,i),’*’,’MarkerEdgeColor’,’r’,’LineWidth’,1);
title(’Interpolacion por "splines cubicos".’);
end
4.8.4. Resolver
(a) Interpolar por splines de grado 1, 2 y 3 la función f (x) = x1 en tomando los
puntos (0, 1; 10), (0, 2; 5), (0, 5; 2), (1; 1), (2; 0, 5), (5; 0, 2) y (10; 0, 1).
>> [m,b]=spline(X)
m =
b =
>> [a,b,c]=spline2(X)
a =
Columns 1 through 6
Column 7
0.1000
b =
Columns 1 through 6
Column 7
83.1600
c =
Columns 1 through 6
Column 7
>> [a,b,c,d]=spline3(X)
a =
Columns 1 through 6
Column 7
0.1000
b =
c =
Columns 1 through 6
Column 7
d =
a =
b =
c =
d =
Ejemplo
f1 (1) = f2 (1)
6x = 3(x − 1) + 2a, x = 1
6(1) = 3(1 − 1) + 2a, x = 1
a=3
1 2 153120 1600
2 4 153120 3200
3 6 153120 4800
4 8 153120 6400
5 10 153120 8000
6 12 153120 9600
r0 = 3k :
1 3 153120 2400
2 9 153120 7200
3 27 153120 21600
4 81 153120 64800
r0 = 3 ∗ k:
1 3 153120 2400
2 6 153120 4800
3 9 153120 7200
4 12 153120 9600
5 15 153120 12000
6 18 153120 14400
5. Capítulo 3
5.1. Derivación
Las fórmulas de derivación numérica son importantes en el desarrollo de algorit-
´ y ciencias.
mos que resuelvan aplicaciones de ingenier?a
En calculo se aprende y se deduce la siguiente fórmula:
f (x + h) − f (x)
f 0 (x) = lı́m
h→0 h
Como introducción se implementará esta fórmula para f (x) = 3x2 con diferentes valo-
res de h armando la siguiente tabla.
Otra fórmula que se suele utilizar en cálculo
f (x) − f (x − h)
f 0 (x) = lı́m
h→0 h
Armando la siguiente tabla:
Estas fórmulas se pueden deducir a partir de la fórmula de Taylor:
h f’(x)
10 36
5 21
1 9
0.5 7.5
0.1 6.3
0.011 6.03
h f’(x)
10 -24
5 -9
1 -3
0.5 4.5
0.1 5.7
0.011 5.97
f (x + h) − f (x)
f 0 (x) = + O(h1 )
h
La cual se define como fórmula de diferencias finita con esquema adelantado.
De la segunda también se puede despejar f 0 (x) obteniendo:
f (x) − f (x − h)
f 0 (x) = + O(h1 )
h
La cual se define como fórmula de diferencias finita con esquema retardado.
Si se suma la primera con la segunda ecuación se y se despeja f 0 (x) obtiene:
f (x + h) − f (x − h)
f 0 (x) = + O(h2 )
2h
Esta fórmula es más precisa debido a que es de orden 2.
Algoritmo El siguiente programa recibe un vector X y un f (X) calculando la primera
function [C]=dfx(X,Y)
n=length(X);
C=zeros(n,1);
for i=1:n
if i<n
C(i,1)=(Y(i+1)-Y(i))/(X(i+1)-X(i));
else
if i==n
C(i,1)=(Y(i)-Y(i-1))/(X(i)-X(i-1));
end
end
end
C
5.2. Integración
5.2.1. Integración Punto Medio
Método para estimar la integral de una fuención la cual se basa en:
Sea una función continua en [a, b].La regla del punto medio para aproximar la integral
viene dada por:
b n
b−aX b−a
Z
f (x)dx ≈ f (xi ) = [f (x1 ) + f (x2 ) + · · · + f (xn )]
a n i=1 n
donde:
ESTIMACIÓN DE ERRORES
Cuando se trabaja con aproximaciones es importante conocer con que precisión es-
tamos calculando el valor de la integral. Ademas, es posible que algún método sea
sensiblemente mejor que los demás, si bien puede que sea bajo ciertas hipótesis. A
continuación enunciamos los errores que se cometen en las reglas de aproximación
mas usuales.
Si f es continua en [a, b] entonces el error EM cometido al aproximar esta integral por
la regla del punto medio es
M (b − a)3
|EM | ≤
24n2
(B + b)h
A=
2
Análogamente en una función definida en el intervalo [a, b] la fórmula sería:
Z b
b−a
f (x)dx = [f (a) + f (b)]
a 2
Esta fórmula se puede deducir a partir del polinomio interpolador de Lagrange obte-
niendo lo siguiente:
Usando la aproximación:
Z x1 Z x1
f (x)dx = P1 (x)dx
x0 x0
Reemplazando:
x1 x1
x − x1 x − x0
Z Z
P1 (x)dx = f0 + f1 dx
x0 x0 x0 − x1 x1 − x0
Z x1 Z x1
x − x1 x − x0
= f (x0 ) dx + f (x1 ) dx
x0 x 0 − x 1 x0 x 1 − x 0
x1 x 1
f (x0 ) x2 f (x1 ) x2
= − x1 x + − x0 x
x0 − x1 2 x0 x1 − x0 2 x0
2 2
f (x0 ) x1 x
= − x21 − 0 − x1 x0
x0 − x1 2 2
2
x20
f (x1 ) x1 2
+ − x 0 x1 − + x0
x1 − x0 2 2
(1/2)(x1 − x0 )2 (1/2)(x1 − x0 )2
= f (x0 ) + f (x1 )
x1 − x0 x1 − x0
Z x1
x1 − x0
f (x)dx = (f (x0 ) + f (x1 ))
x0 2
Si el intervalo [a, b] se subdivide en un finito número de espacios iguales definidos por
los puntos a = x0 , x1 , . . . , xn = b se obtendría la siguiente integral:
Z xn Z x1 Z x2 Z xn
f (x)dx = f (x)dx + f (x)dx + · · · + f (x)dx
x0 x0 x1 xn−1
clc
clear all
a=0;
b=pi;
n=100;
f=@(x)sin(x);
h=(b-a)/n;
int=0;
aux=a;
for i=2:n-1
aux=aux+h;
int=int+2*f(aux);
end
int=(h/2)*(f(a)+int+f(b))
M
hX
S(f, h) = f (x2k−2 + 4f (x2k−1 ) + f (x2k ))
3 k=1
h
S(f, h) = (f0 + 4f1 + 2f2 + 4f3 + . . . + 2f2M −2 + 4f2M −1 + f2M )
3
M −1 M
h 2h X 4h X
S(f, h) = (f (a) + f (b)) + f (x2k ) + f (x2k−1 )
3 3 k=1 3 k=1
ESTIMACIÓN DE ERRORES:
El término de error ES (f, h) para la regla compuesta de Simpson es de orden O(h4 ).
Cuando las derivadas de f (x) se conocen, la fórmula
Z b Z b
I= f (x)dx ∼
= f3 (x)dx
a a
Para obtener
3
I = h[f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )]
8
Donde:
b−a
h=
3
+f (xn−1 ) + f (xn ))
n−1 n
!
Z xn
h X X
f (x)dx = f (x0 ) + 4 f (x2i−1 ) + 2 f (x2i + f (xn ))
x0 3 i=1 i=1
clc
clear all
clc
clear all
a=0;
b=1;
n=10000;
f=@(x)((x^2)*(exp(-x)));
h=(b-a)/n;
int1=0;
int2=0;
aux=a;
j=0;
k=0;
for i=2:2:n-1
if j==0
aux=aux+h;
int1=int1+4*f(aux);
j=j+1;
else
aux=aux+2*h;
int1=int1+4*f(aux);
end
end
aux=0;
for i=3:2:n-1
if k==0
aux=aux+h;
int2=int2+2*f(aux);
k=k+1;
else
aux=aux+2*h;
int2=int2+2*f(aux);
end
end
int=(h/3)*(f(a)+int1+int2+f(b))
Xi F (xi )
x0 f (x0 )
x1 f (x1 )
x2 f (x2 )
P2 (x) = f (x0 )LN,0 (x) + f (x1 )LN,1 (x) + f (x2 )LN,2 (x)
Ahora se determinan los polinomios LN,i (x):
QN
j=0,j6=i (x − xj )
LN,i (x) = QN
j=0,j6=i (xi − xj )
(x − x1 )(x − x2 )
L2,0 (x) =
(x0 − x1 )(x0 − x2 )
(x − x0 )(x − x2 )
L2,1 (x) =
(x1 − x0 )(x1 − x2 )
(x − x0 )(x − x1 )
L2,2 (x) =
(x2 − x0 )(x2 − x1 )
Reemplazando estos polinomios en el polinomio interpolador se obtiene:
P2 (x) = f (x0 ) (x(x−x 1 )(x−x2 )
0 −x1 )(x0 −x2 )
+ f (x1 ) (x(x−x 0 )(x−x2 )
1 −x0 )(x1 −x2 )
+ f (x2 ) (x(x−x 0 )(x−x1 )
2 −x0 )(x2 −x1 )
Se procede a hallar la integral:
Z x2 Z x2
f (x)dx = P2 (x)dx
x0 x0
x2 x2
(x − x1 )(x − x2 ) (x − x0 )(x − x2 ) (x − x0 )(x − x1 )
Z Z
P2 (x)dx = f (x0 ) +f (x1 ) +f (x2 ) dx
x0 x0 (x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
Para facilitar el cálculo, aprovechando la linealidad del operador Integral se puede es-
tablecer que:
Z x2
I= P2 (x)dx = I1 + I2 + I3
x0
f (x0 )
A=
(x0 − x1 )(x0 − x2 )
f (x1 )
B=
(x1 − x0 )(x1 − x2 )
f (x2 )
C=
(x2 − x0 )(x2 − x1 )
Se tendría:
Rx
I1 = A x02 (x − x1 )(x − x2 )dx
Rx
I2 = B x02 (x − x0 )(x − x2 )dx
Rx
I3 = C x02 (x − x0 )(x − x1 )dx
Ahora se procede a resolver cada integral:
Para I1
Z x2 Z x2
I1 = A (x − x1 )(x − x2 )dx = A x2 − (x2 )x − (x1 )x + (x1 )(x2 )dx
x0 x0
x3 x2
=A − (x2 + x1 ) + (x1 )(x2 )x|xx20
3 2
x32 x22 x30 x20
=A − (x2 + x1 ) + (x1 )(x2 )x2 − + (x2 + x1 ) − (x1 )(x2 )x0
3 2 3 2
3 1 1 2 −1 3 −1 2 1 2 1
= A x2 − + (x1 )(x2 ) + 1 + (x0 ) + (x2 )(x0 ) + (x1 )(x0 ) − (x1 x2 x0 )
3 2 2 3 2 2
x0 + x2
Resolviendo esto y reemplazando x1 = se obtiene lo siguiente:
2
3
x2 x0 x22 x20 x2 x30
I1 = A − + −
12 4 4 12
A 3
x2 − 3x0 x22 + 3x20 x2 − x30
=
12
Aplicando propiedad del binomio al cubo:
A
(x2 − x0 )3
=
12
Reemplazando el valor de A
f (x0 )
(x2 − x0 )3
I1 =
12(x0 − x1 )(x0 − x2 )
x0 + x2
Reemplazando x1 = :
2
f (x )(x − x )3
I1 = x 0 x 2 0
0 2
12 − (x0 − x2 )
2 2
f (x0 )(x2 − x0 )3
I1 =
6(x0 − x2 )(x0 − x2 )
f (x0 )(x2 − x0 )3
I1 =
6(x2 − x0 )2
f (x0 )(x2 − x0 )
I1 =
6
Para I2
Z x2 Z x2
I2 = B (x − x0 )(x − x2 )dx = B x2 − (x0 )x − (x2 )x + (x0 )(x2 )dx
x0 x0
3
x2
x
=B − (x0 + x2 ) + (x0 )(x2 )x|xx20
3 2
x32 x22 x30 x20
2
=B − (x0 + x2 ) + (x0 )(x2 )x2 − + (x2 + x0 ) − (x0 ) (x2 )x0
3 2 3 2
3 1 1 2 −1 3 −1 1 2 1
= B x2 − + (x0 )(x2 ) + 1 + (x0 ) + + (x2 )(x0 ) −1
3 2 2 3 2 2
3
x2 (x0 )(x22 ) (x2 )(x20 ) (x30 )
=B − + − +
6 2 2 6
B 3
x2 − 3x0 x22 + 3x20 x2 − x30
=−
6
B
= − (x2 − x0 )3
6
Reemplazando el valor de B
f (x1 )(x2 − x0 )3
I2 =
(x1 − x0 )(x1 − x2 )
x0 + x2
Reemplazando x1 = :
2
f (x1 )(x2 − x0 )3
I2 = − x x2 x0 x2
0
− + −
2 2 2 2
2f (x1 )(x2 − x0 )
I2 =
3
Nombre: Gonzalo Echeverría 110
Métodos Numéricos Cuaderno Digital NRC:3256
Para I3
Realizando un procedimiento similar a los anteriores, se determina que:
f (x2 )(x2 − x0 )
I3 =
6
Sumando I1 , I2 , I3
Z x2
I= P2 (x)dx = I1 + I2 + I3
x0
x2 x2
f (x0 )(x2 − x0 ) 2f (x1 )(x2 − x0 ) f (x2 )(x2 − x0 )
Z Z
P2 (x)dx = f (x)dx = + +
x0 x0 6 3 6
x2
x2 − x0
Z
f (x)dx = [f (x0 ) + 4f (x1 ) + f (x2 )]
x0 6
x2 − x 0 x0 + x2
Considerando que h = y que x1 = , La fórmula quedaría expresada de
2 2
la siguiente manera:
Z x2
h x0 + x2
f (x)dx = f (x0 ) + 4f ( ) + f (x2 )
x0 3 2
La cual se conoce como la fórmula de Simpson.
Si se determinan mas puntos se llega a la fórmula de Simpson compuesta, la cual es la
siguiente:
Z x2 n/2−1 n/2
h X X
f (x)dx = f (x0 ) + 2 f (x2j + 4 f (x2j−1 + f (xn )
x0 3 j=1 j=1
function [C]=dfx(X,Y)
n=length(X);
C=zeros(n,1);
for i=1:n
if i<n
C(i,1)=(Y(i+1)-Y(i))/(X(i+1)-X(i));
else
if i==n
C(i,1)=(Y(i)-Y(i-1))/(X(i)-X(i-1));
end
end
end
Corrida de escritorio:
6.2.2. Ejercicio 2
Aplicar la fórmula de dos puntos adelantada al cálculo de la derivada primera de
f (x) = sin(x) en x = 2,13432. Comprobar que al ir reduciendo h el error se reduce de
manera aproximadamente lineal con h.
Resolución Primero obtenemos el valor real:
sin(2,13432 + 1) − sin(2,13432)
f 0 (x) = = −0,838106
1
El error sería:
f1 − f0
hi h f 0 (x) = error
hi
h0 1 -0.838103 0.303938
h1 0.1 -0.575512 0.041343
h2 0.01 -0.538386 0.004217
h3 0.001 -0.534590 0.000422
h4 0.0001 -0.534212 0.000042
h5 0.00001 -0.534172 0.000004
6.2.3. Ejercicio 3
Repetir el ejercicio anterior comparando la precisión de la fórmula de diferencia
adelanta con la retrasada. Aplicar también ambas fórmulas al cálculo de la derivada
de la función g(x) = 1/(1 + ex ) en x = 1/2.
Resolución
Primero obtenemos el valor real:
f 0 (0,5) = −0,235004
El esquema adelantado para la primera derivada es el siguiente:
f1 − f0
f 0 (x) =
h
Primero se aplica la fórmula para un h=1
1 1
0,5+1
−
f 0 (x) = 1 + e 1 + e0,5 = −0,195115
1
El error sería:
f1 − f0 f0 − f−1
hi h f 0 (x) = error1 error2
hi h
h0 1 -0.195115 0.039889 -0.244919 0.009915
h1 0.1 -0.231969 0.003033 -0.237716 0.002712
h2 0.01 -0.234714 0.000289 -0.235289 0.000286
h3 0.001 -0.235000 0.000028 -0.235032 0.000028
h4 0.0001 -0.235003 0.000002 -0.235006 0.000002
h5 0.00001 -0.235003 0.000000 -0.235003 0.000000
6.2.4. Ejercicio 4
Supongamos que se conoce el valor de la derivada mediante la fórmula de dife-
rencia adelantada para tres valores de h diferentes. Es posible estimar el valor del h
óptimo? Es posible estimar el error que se comete en el cálculo en cada uno de los ca-
sos?. Aplicarlo al cálculo de la derivada de la función f (x) = sin(x) en x = 0,6, usando
h = 0,1, h = 0,01 y h = 0,0000000001
Resolución
Se puede estimar un h óptimo observando los valores númericos, si la derivada de la
función comienza tender a cero es porque el h es muy pequeño y por lo tanto el h óp-
timo sería el inmediato anterior del valor en el que comienza a tender a cero.
Primero obtenemos el valor real:
6.2.5. Ejercicio 5
Calcular la derivada de la funcón f (x) = tan(x) en x = 3,14 usando h = 0,1 y
h = 0,01. Comparar el resultado con el valor exacto. Es buena la aproximación? Por
qué?.
Resolución Primero obtenemos el valor real:
1
f 0 (3,14) = =1
(cos(3,14))2
El esquema centrado para la primera derivada es el siguiente:
f1 − f−1
f 0 (x) =
2h
6.2.6. Ejercicio 6
Consulta: Calcular cotas para el error de truncación que se comete al aproximar las
derivadas de las funciones f (x) = 1/(1 + sin(x)) y g(x) = ln(1 + 2x). Calcular las cotas
teniendo en cuenta el error de redondeo y comprobar que los errores reales están por
debajo de lo permitido por la cota.
Resolución
El error de truncación en el esquema adelantado y retrasado se define como:
hf (2) (c)
Etrun = O(h1 ) =
2
Matemáticamente la cota máxima es:
−cos(x)
f 0 (x) =
[1 + sen(x)]2
Ahora se determina f 00 (x):
2 + cos2 (x)
f 00 (x) =
[1 + sen(x)]4
Primeramente se analiza el rango de esta función:
−1 ≤ cos(x) ≤ 1
cos2 (x) ≤ 1
2 + cos2 (x) ≤ 3
En f 00 (x) hay que considerar que:
[1 + sen(x)]4 6= 0
1 + sen(x) 6= 0
sen(x) 6= −1
Ahora si se considera considera que:
2 + cos2 (x)
h(x) = f 00 (x) =
[1 + sen(x)]4
Se maximiza esta función con el objetivo de hallar una cota superior para el error de
truncación:
Como se observa en el gráfico no hay máximos si no mínimos por esta razón se tomará
como cota la función evaluada en el punto donde se quiere calcular la derivada.
En el punto π2
2 + cos2 (π/2)
h(π/2) = = 2,691743
[1 + sen(π/2)]4
Se procede a calcular la cota M
1
M = f 00 (x)
2
1
M = (2,691743) = 1,3458
2
Con h=0.01 se calcula el residuo:
R = hM
R = 0,013458
Ahora se comprueba:
Valor teórico:
f 0 (x) = 0 Valor obtenido con fórmula con esquema adelantado:
f1 − f0
f 0 (x) = = 0,00125
h
Error = |0 − 0,00125| = 0,00125
2
g 0 (x) =
1 + 2x
4
g 00 (x) = −
(1 + 2x)2
La derivada con esquema adelantado es la siguiente:
g1 − g0 h 00
g 0 (x) = + g (c)
h 2
Donde el residuo sería:
h 00
Residuo = g (c) = hM
2
La función g 00 (x) no presenta máximos ni mínimos. Por lo tanto la cota sería:
g 00 (1)
M= = 0,2222
2
Se comprueba que es la cota máxima.
Valor teórico:
2
g 0 (1) = = 0,6667
1 + 2x
Valor con fórmula de esquema adelantado con h=0.01:
g1 − g0
g 0 (x) = = 0,6644
h
El error sería:
6.2.7. Ejercicio 7
Construir una tabla de derivadas primeras de la función g(x) definida por la si-
guiente tabla en los puntos xi con la mayor precisión posible mediante fórmulas de
tres puntos.
x g(x)
1,0 1,000000
1,2 0,997502
1,4 0,990025
1,8 0,960398
2,0 0,940678
Resolución
Para la resolución se arma la siguiente tabla considerando un 0,01.
6.2.8. Ejercicio 8
Usando la fórmula de diferencia centrada
√ calcular la derivada primera de la fun-
ción f (x) = arctan(x) en el punto x = 2 (el valor correcto es 1/3). Utilizar diferentes
valores de h y estudiar los efectos de los errores de redondeo y de truncación.
Resolución
Con h=0.1
f1 − f−1
f 0 (x) =
2h
√ √
0 arctan( 2 + 0,1) − arctan( 2 − 0,1)
f (x) = = 0,333950
2 ∗ 0,1
Haciendo el truncamiento en 4 cifras:0,3339
Calculando el error de truncamiento.
Con h=0.00001
f1 − f−1
f 0 (x) =
2h
√ √
arctan( 2 + 0,00001) − arctan( 2 − 0,00001)
f 0 (x) = = 0,333333
2 ∗ 0,00001
Haciendo el truncamiento en 4 cifras:0,3333
Calculando el error de truncamiento.
6.2.9. Ejercicio 9
Deducir una fórmula de cinco puntos que utilice los valores de la función en los
0
puntos x, x + h, x + 2h, x + 3h y x − h para calcular f (x).
Resolución
La deducción se hace mediante el desarrollo de la fórmula de Taylor. Se la aplica a los
puntos dados obteniendo:
h2 00
f (x + h) = f (x) + hf 0 (x) + f (x)
2
h2
f (x − h) = f (x) − hf 0 (x) + f 00 (x
2
f (x + 2h) = f (x) + 2hf (x) + 2h2 f 00 (x)
0
9h2 00
f (x + 3h) = f (x) + 3hf 0 (x) + f (x)
2
9
Si se procede a sumar de la forma: f (x + 3h) − f (x + 2h) + f (x − h) − f (x + h)
4
Se obtendrá:
9 −5 7
f (x + 3h) − f (x + 2h) + f (x − h) − f (x + h) = f (x) − hf 0 (x)
4 4 2
0
Despejando f (x) se obtiene:
−5 9
2 f (x) − f (x + 3h) + f (x + 2h) − f (x − h) + f (x + h)
0 4 4
f (x) =
7h
6.2.10. Ejercicio 10
Se conocen los valores de la función de Bessel J0 (x) en los puntos J0 (0, 0) = 1, 00000000,
J0 (0, 1) = 0, 99750156, J0 (0, 2) = 0, 99002497, J0 (0, 3) = 0, 97762625, J0 (0, 4) = 0, 96039823
y J0 (0, 5) = 0, 93846981. Construir una tabla de derivadas en esos puntos con la mayor
precisión posible usando las fórmulas de tres puntos más apropiadas.
Resolución
Recordando la fórmula de 3 puntos adelantada:
−f2 + 4f1 − 3f0
f 0 (x) =
2h
Y la fórmula de 3 puntos retrasada:
3f0 − 4f−1 + 3f−2
f 0 (x) =
2h
Ahora se arma la siguiente tabla:
6.2.11. Ejercicio 11
Calcular la derivada primera de la funcioń f (x) = |x − 2|cos(x) en x = 2 usando las
fórmulas de diferencias centradas y adelantadas. Comparar los resultados.
Resolución
Se aplica la definición de valor absoluto:
(x − 2)cos(x) si x > 0
f (x) =
−(x − 2)cos(x) si x ≤ 0
Como el punto x = 2 es mayor que cero entonces se analiza la función en ese intervalo
es decir la función a analizar es la siguiente:
6.2.12. Ejercicio 12
Considérese la función
0 si −1 < x < 4/5
f (x) = −x2
e si 4/5 ≤ x < 1
Para calcular f 0 (4/5) ¿será mejor usar una fórmula adelantada o una centrada?
Resolución
2
Como el punto 4/5 esta ubicado en el intervalo donde f (x) = e−x entonces se aplicará
la fórmula con este valor de la función.
El esquema mas apropiado de utilizar es el adelantado debido a que cuando x < 4/5,
f (x) tiene el valor de 0.
La fórmula del esquema adelanto con 3 puntos es (con h=0.01):
−f2 + 4f1 − 3f0
f 0 (x) =
2h
2 2 2
0 −e−(4/5+0,02) + 4e−(4/5+0,01) − 3e−(4/5)
f (x) = = −0,843763
2 ∗ 0,01
6.2.13. Ejercicio 13
Deducir las foŕmulas centradas y adelantadas para la derivada tercera.
Resolución
f (x + h) − f (x − h)
f 0 (x) =
2h
Derivando esto se tiene que:
f 0 (x + h) − f 0 (x − h)
f 00 (x) =
2h
f (x + h) − f (x)
f 0 (x) =
h
Derivando esto se tiene que:
f 0 (x + h) − f 0 (x)
f 00 (x) =
h
Reemplazando con la fórmula de la primera derivada.
f (x + 2h) − f (x + h) f (x + h) − f (x)
− f (x + 2h) − 2f (x + h) + f (x)
f 00 (x) = h h =
h h2
Se calcula la tercera derivada.
f 0 (x + 2h) − 2f 0 (x + h) + f 0 (x)
f 000 (x) =
h2
f (x + 3h) − 3f 0 (x + 2h) + 3f (x + h) − f (x)
f 000 (x) =
h3
6.2.14. Ejercicio 14
Al calcular la derivada segunda de una función, ¿qué fórmula tendrá menor in-
fluencia del error de redondeo, la centrada de tres puntos o la centrada de cinco pun-
tos? Razonar la respuesta y comprobar la hipot́esis con el empleo de la función f (x) =
ex . Comparar los errores de redondeo con los que aparecen al calcular f 0 (x). ¿Cuáles
son mayores?
Resolución
6.2.15. Ejercicio 15
Estudiar el efecto de los errores de truncación y redondeo en la fórmula centrada
de cinco puntos para f 00 . Particularizar para f (x) = 1/(1 + x2 ) en x = 1.
Resolución
2(3x2 − 1)
f 00 (x) =
(x2 + 1)3
1
f 00 (x) =
2
La fórmula centrad de 5 puntos estada por la ecuación:
Con h=0.1
−f2 + 16f1 − 30f0 + 16f−1 − f−2
f 00 (x) =
16h2
1 1 1 1 1
− + 16 − 30 + 16 −
1 + (1 + 2 ∗ 0,1)2 1 + (1 + 0,1)2 1 + 12 1 + (1 − 0,1)2 1 + (1 − 2 ∗ 0,1)2
f 00 (x) = 2
=0
16(0,1)
Truncamos el resultado en 4 cifras:
f 00 (x) = 0,5000
Redondeamos a 4 cifras:
f 00 (x) = 0,5000
Con h=0.01
−f2 + 16f1 − 30f0 + 16f−1 − f−2
f 00 (x) =
16h2
1 1 1 1 1
− 2
+ 16 2
− 30 2
+ 16 2
−
1 + (1 + 2 ∗ 0,01) 1 + (1 + 0,01) 1+1 1 + (1 − 0,01) 1 + (1 − 2 ∗ 0,01)2
f 00 (x) =
16(0,01)2
f 00 (x) = 0,5000
Redondeamos a 4 cifras:
f 00 (x) = 0,5000
Se observa que el error de truncamiento y de redondeo son muy bajos casi tienden a
cero.
6.2.16. Ejercicio 16
Deducir el término de error O(h5 ) en la fórmula de cinco puntos para f 000 . Resolu-
ción
Para el esquema adelantado se obtiene los siguientes 5 puntos:
3f (x + 2h) 8f (x + 3h) 3f (x + 4h) 19615f (x) 1549f 0 (x) 28 00 10f 000 (x)
24f (x+h)− + − = + + f (x)+
2 27 32 864 72 3 3
Reemplazando los valores de la segunda y tercera derivada:
(an + bn )/2
Es decir en: [1,5, 4,5, 7,5, 10,5]
Método del trapecio en tres intervalos
Z b
(b − a)
f (x)dx = [f (a) + f (b)]
a 2
Es decir [0, 4, 8, 12]
Método de Simpson en dos intervalos
Z b
(b − a) a+b
f (x)dx = [f (a) + 4f ( ) + f (b)]
a 6 2
En an , bn y (an + bn )/2
Es decir en [0, 3, 6, 9, 12]
6.3.2. Ejercicio 2
Calcular la cuadratura compuesta para dos intervalos de la integral
Z π
sin(x)dx
0
π−0
Tomando un tamaño de paso h = = 0,7853 se arma la siguiente tabla:
4
h f (x) 2f (x)
0,0000 0 —
√
0,7853 — 2
1,5708 — √2
2,3562 — 2
3,1415
P 0 —
0 4.8284
6.3.3. Ejercicio 3
Calcular la cuadratura compuesta para dos intervalos de la integral
Z 2
3x2 dx
0
por el método de Simpson tres octavos.
Resolución
La fórmula de Simpson 3/8 es la siguiente:
Z b
3h
f (x)dx = (f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 ))
a 8
b−a
donde h =
3
Aplićandola en el ejemplo tenemos un:
2−0
h= = 0,66667
3
Armando una tabla se tendría los siguientes valores para la función:
x f (x)
0 0
2/3 4/3
4/3 16/3
2 12
Aplicando la fórmula
Z 2
3(2/3)
3x2 dx = (f (x0 ) + 3f (x1 ) + 3f (x2 ) + f (x3 )) = 8
0 8
6.3.4. Ejercicio 4
Comparar el método del rectángulo con el método de Simpson en el cálculo de la
integral
Z b
sin(x)dx
a
El error sería:
(b − a)2 0
Erect = f (θ)
2
donde θ es un punto del intervalo que maximiza el error, θ = 0 =⇒ Erect = 0,5 Por el
Método de Simpson
Z 1
sin(x)dx = 0,4598621899
0
El error sería:
(b − a)5 (4)
ESimp = f (θ)
2
donde θ es un punto del intervalo que maximiza el error, θ = 1 =⇒ Erect = 0,01111
6.3.5. Ejercicio 5
Aplicar la regla del punto medio, la regla del trapecio y la regla de Simpson para
aproximar la integral
Z 1
x2 e−x dx
0
Obtener en cada caso una cota del error y comparar el error con el error real.
Resolución
(b − a)3 00
f (θ)
EP medio =
24
(1)3 00
EP medio = f (θ)
24
1
EP medio = f 00 (θ)
24
Ahora se determina la cota máxima:
−0,367879441 ≤ f 00 (θ) ≤ 2
1 1 1
(−0,367879441) ≤ f 00 (θ) ≤ (2)
24 24 24
−0,01532831) ≤ EP medio ≤ 0,083333
Se determina el error:
(b − a)3 00
Etrap = f (θ)
12
(1 − 0)3 00
Etrap = f (θ)
12
1
Etrap = f 00 (θ)
12
f (x) = 2e − 4xe−x + x2 e−x
00 −x
f 00 (0) = 2e0 − 0 + 0 = 2
f 00 (1) = −0,367879441
Aplicando la relación:
−0,367879441 ≤ f 00 (θ) ≤ 2
1 1 1
(−0,367879441) ≤ f 00 (θ) ≤ (2)
12 12 12
−0,03065662 ≤ EP medio ≤ 0,166666
Regla de Simpson:
Z b
(b − a) a+b
f (x)dx = f (a) + 4f + f (b)
a 6 2
Z 1
2 −x (1 − 0) 0+1
x e dx = f (0) + 4f + f (1)
0 6 2
0,162401683
(b − a)5 4
Esimp = f (θ)
90
1
Esimp = f 4 (θ)
90
Se calcula la cuarta derivada:
Valor Real
1
−(x2 + 2x + 2) 1
Z
x2 e−x dx = |0 ≈ 0,160602794
0 ex
6.3.6. Ejercicio 6
En los casos que se relacionan a continuación se considera la integración de la fun-
ción dada f (x) sobre el intervalo [0, 1]. Aplique la regla trapecio, la regla se Simpson,
la regla se Simpson 3/8 y la regla de Boole. Utilice cinco evaluaciones de la función en
nodos equiespaciados con incremento h = 1/4.
f (x) = sin(πx)
Resolución
f (x) = sin(πx)
a) Regla del trapecio La formula de cuadratura compuesta para el trapecio es:
Z b n−1
!
h X
f (x)dx = f (a) + 2 f (a + ib) + f (b)
a 2 i=1
h f (x) 2f (x)
0 0 —
√
1/4 — 2
1/2 — √2
3/4 — 2
P1 0 —
0 4.8284
Aplicando la fórmula:
Z 1
sin(πx)dx = 0,461294
0
x f (x)
0 √0
1/4 2/2
1/2 √ 1
1 2/2
h f (x) 2f (x)
0 2 —
1/4 — 2,84158
1/2 — 1,49519
3/4 — 1,06472
P1 0,759538 —
2.759538 1.02013
x f (x)
0 2
1/4 1,42079
1/2 0,757594
3/4 0,532361
1 0,759538
Aplicando la fórmula:
Z 1
1 + e−x cos(4x)dx = 1,07057
0
h f (x) 2f (x)
0 0 —
1/4 — 0,958851
1/2 — 1,299270
3/4 — 1,523520
P1 0,841471 —
0.841471 3.78164
x f (x)
0 0
1/4 0,479426
1/2 0,649637
3/4 0,76176
1 1
Aplicando la fórmula:
Z 1 √
sin( x)dx = 0,605335
0
6.3.7. Ejercicio 7
Integrando el polinomio de interpolación de Lagrange
x − x1 x − x0
P1 (x) = f0 + f1
x0 − x1 x1 − x0
en el intervalo [x0 , x1 ], deduzca la regla del trapecio.
Resolución
Usando la aproximación:
Z x1 Z x1
f (x)dx = P1 (x)dx
x0 x0
Reemplazando:
x1 x1
x − x1 x − x0
Z Z
P1 (x)dx = f0 + f1 dx
x0 x0 x0 − x1 x1 − x0
Z x1 Z x1
x − x1 x − x0
= f (x0 ) dx + f (x1 ) dx
x0 x 0 − x 1 x0 x 1 − x 0
x1 x 1
f (x0 ) x2 f (x1 ) x2
= − x1 x + − x0 x
x0 − x1 2 x0 x1 − x0 2 x0
2
x20 f (x1 ) x21 x20
f (x0 ) x1 2 2
= − x1 − − x1 x0 + − x0 x1 − + x0
x0 − x1 2 2 x1 − x0 2 2
(1/2)(x1 − x0 )2 (1/2)(x1 − x0 )2
= f (x0 ) + f (x1 )
x1 − x0 x1 − x0
Z x1
x1 − x0
f (x)dx = (f (x0 ) + f (x1 ))
x0 2
6.3.8. Ejercicio 8
Una fórmula de cuadratura en un intervalo [a, b] puede obtenerse a partir de una
fórmula de cuadratura en un intervalo [c, d] haciendo el cambio de variable dado por
la función lineal
x = g(t) = b−a
d−c
t + ad−bc
d−c
, con dx = b−a
d−c
dt
Compruebe que x = g(t) es la línea recta que pasa por los puntos (c, a) y (b, d).
Primero se verifica que efectivamente es una recta, ya que viene dado por la for-
ma y = mx + b.
Ahora se va a comprobar que la recta pasa por el punto (c, a); para ello en la fun-
ción x = g(t), hacemos que x = g(c) y debe dar como resultado a:
b−a ad − bc
g(t) = t+
d−c d−c
b−a ad − bc
g(t) = (c) +
d−c d−c
bc − ac ad − bc
g(t) = +
d−c d−c
bc − ac + ad − bc
g(t) =
d−c
a(d − c)
g(t) =
d−c
g(t) = a
Ahora para comprobar el otro punto realizamos lo mismo solo que e con x = g(d)
b−a ad − bc
g(t) = t+
d−c d−c
b−a ad − bc
g(t) = (d) +
d−c d−c
bd − ad ad − bc
g(t) = +
d−c d−c
bd − ad + ad − bc
g(t) =
d−c
b(d − c)
g(t) =
d−c
g(t) = b
Compruebe que la regla del trapecio tiene el mismo grado de precisión en cual-
quier intervalo [a, b] que en el intervalo [0, 1]. Como se sabe la fórmula del tra-
pecio viene dad por:
Z b
(b − a)
f (x)dx = (f (a) + f (b))
a 2
Se va a comprobar que la regla del trapecio tiene el mismo grado de precision en
el intervalo [0, 1] mediante el cambio de variable expuesto en el encabezado del
ejercicio, con la fórmula del trapecio:
Z 1 Z 1
b−a a
g(t)dt = f t+ (b − a)
0 0 1−0 1
Z 1 Z 1
b−a
g(t)dt = f t + a (b − a)
0 0 1
1 1
b−a
Z Z
g(t)dt = (b − a) f t+a
0 0 1
Z 1
1−0 b−a b−a
g(t)dt = (b − a) [f ∗0+a +f ∗1+a ]
0 2 1 1
Z 1
b−a
g(t)dt = [f (a) + f (b − a + a)]
0 2
Z 1
(b − a)
g(t)dt = (f (a) + f (b))
0 2
Compruebe que la regla del Simpson tiene el mismo grado de precisión en
cualquier intervalo [a, b] que en el intervalo [0, 2]. Se va a comprobar que la re-
gla de Simpson tiene el mismo grado de precisión em el intervalo [0,2] mediante
el cambio de variable expuesto en el encabezado del ejercicio, con la fórmula de
Simpson:
Z 2 Z 2
b−a 2a (b − a)
g(t)dt = f t+
0 0 2−0 2 2
Z 2 Z 2
b−a (b − a)
g(t)dt = f t+a
0 0 2 2
Z 2 Z 2
(b − a) b−a
g(t)dt = f ∗t+a
0 2 0 2
Z 2
(b − a) 1 b−a b−a
g(t)dt = [f ∗0+a +f ∗1+a ]
0 2 3 2 2
Z 2
b−a b+a
g(t)dt = [f (a) + 4f + f (b − a + a)]
0 6 2
Z 2
(b − a) b+a
g(t)dt = (f (a) + 4f + f (b))
0 6 2
Compruebe que la regla del Boole tiene el mismo grado de precisión en cual-
quier intervalo [a, b] que en el intervalo [0, 4]. La fórmula de Boole es:
Z b
2h
f (x)dx = [7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )]
a 45
Se va a comprobar que la regla de Simpson tiene el mismo grado de precisión em
el intervalo [0,4] mediante el cambio de variable expuesto en el encabezado del
ejercicio, con la fórmula de Boole:
Z 4 Z 4
b−a 4a (b − a)
g(t)dt = f t+
0 0 4−0 4 4
Z 4 Z 4
b−a (b − a)
g(t)dt = f t+a
0 0 4 4
4
(b − a) 2
b−a
Z Z
g(t)dt = f ∗t+a
0 4 0 4
Z 2
(b − a) 2 ∗ 1 b−a b−a b−a
g(t)dt = [7f ∗ 0 + a +32f ∗ 1 + a +12f ∗ 2 + a +32f
0 2 45 4 4 4
Z 2
2h
g(t)dt = [7f (a) + 32f (h + a) + 12f (2h + a) + 32f (3h + a) + 7f (b)]
0 45
Z b
2h
f (x)dx = [7f (x0 ) + 32f (x1 ) + 12f (x2 ) + 32f (x3 ) + 7f (x4 )]
a 45
syms x
fun=sin(pi*x);
a=0;
b=1/4;
ba2=zeros(4,1);
fa=zeros(4,1);
fb=zeros(4,1);
fx=zeros(4,1);
nodotrap=zeros(4,2);
r=0;
for i=1:4
ba2(i,1)=(b-a)/2;
fa(i,1)=subs(fun,x,a);
fb(i,1)=subs(fun,x,b);
nodotrap(i,1)=a;
nodotrap(i,2)=b;
fx(i,1)=(b-a)/2*(fa(i,1)+fb(i,1));
a=b;
b=b+1/4;
r=r+fx(i,1);
end
trapecio=zeros(4,4);
trapecio(:,1)=ba2;
trapecio(:,2)=fa;
trapecio(:,3)=fb;
trapecio(:,4)=fx;
trapecio
nodotrap
Simpson
clear all
syms x
fun=sin(pi*x);
a=0;
b=1/4;
ba2=zeros(4,1);
fa=zeros(4,1);
fm=zeros(4,1);
fb=zeros(4,1);
fx=zeros(4,1);
r=0;
nodosimp=zeros(4,2);
for i=1:4
ba2(i,1)=(b-a)/6;
fa(i,1)=subs(fun,x,a);
fb(i,1)=subs(fun,x,b);
fm(i,1)=subs(fun,x,((a+b)/2));
nodosimp(i,1)=a; nodosimp(i,2)=b;
fx(i,1)=ba2(i,1)*(fa(i,1)+fb(i,1)+4*fm(i,1));
a=b; b=b+1/4;
r=r+fx(i,1);
end
final=zeros(4,5);
final(:,1)=ba2;
final(:,2)=fa;
final(:,3)=fm;
final(:,4)=fb;
final(:,5)=fx;
simpson=final
nodosimp
r
Rectángulo
clear all
syms x
fun=sin(pi*x);
a=0;
b=1/4;
ba8=zeros(4,1);
f0=zeros(4,1);
f1=zeros(4,1);
f2=zeros(4,1);
f3=zeros(4,1);
fx=zeros(4,1);
r=0;
h=(b-a)/3;
nodosimp38=zeros(4,4);
for i=1:4
ba8(i,1)=3*h/8;
f0(i,1)=subs(fun,x,a);
f1(i,1)=subs(fun,x,(a+h));
f2(i,1)=subs(fun,x,(a+2*h));
f3(i,1)=subs(fun,x,b);
nodosimp38(i,1)=a;
nodosimp38(i,2)=a+h;
nodosimp38(i,3)=a+2*h;
nodosimp38(i,4)=b;
fx(i,1)=ba8(i,1)*(f0(i,1)+3*f1(i,1)+3*f2(i,1)+f3(i,1));
a=b;
b=b+1/4;
r=r+fx(i,1);
end
simpson38=zeros(4,6);
simpson38(:,1)=ba8;
simpson38(:,2)=f0;
simpson38(:,3)=f1.*3;
simpson38(:,4)=f2.*3;
simpson38(:,5)=f3;
simpson38(:,6)=fx;
simpson38
nodosimp38
r
6.4.2. Ejercicio 2
Aproxime cada una de las siguientes integrales, utilizando los programas desarro-
llados.
R −1
1
(1 + x2 )−1 dx
R2
0
2xcos(x)dx
Rπ
0
sin(2x)e−x dx
Resolución
R −1
Para la integral: 1 (1 + x2 )−1 dx Se armo la siguiente tabla con los resultados de
los diferentes métodos con un n = 1000:
Métodos Resultado
Rectángulo 1,570795993461562
Trapecio 1,570795993461562
Simpson 1,570796326793627
R2
Para la integral: 0 2xcos(x)dx Se armo la siguiente tabla con los resultados de los di-
ferentes métodos con un n = 1000:
Métodos Resultado
Rectángulo 0,806558465059901
Trapecio 0,804893877713713
Simpson 0,804896034209521
Rπ
Para la integral: 0 sin(2x)e−x dx Se armo la siguiente tabla con los resultados de los
diferentes métodos con un n = 1000:
Métodos Resultado
Rectángulo 0,382712858844211
Trapecio 0,382712858844211
Simpson 0,382714432695526
6.4.3. Ejercicio 3
Considere las siguientes funciones
f (x) = x3 para 0 ≤ x ≤ 1
f (x) = sin(x) para 0 ≤ x ≤ π/4
f (x) = e−x para 0 ≤ x ≤ 1
Teniendo presente que:
(b − a)h 0
Erec = f (θ)
2
(b − a)h2 00
Etrap = f (θ)
12
(b − a)h4 (4)
Esimp = f (θ)
180
Se procede a resolver:
R1
Para la integral: 0 x3 dx Se armo la siguiente tabla con los resultados de los diferentes
métodos con un n = 1000:
Análisis de Error
Z 1 √
longitud = 1 + 9x4 dx
0
Con un θ = 0,5 se obtiene:
g 0 (0,5) = 1,8
g 00 (0,5) = 8,208
g (4) (0,5) = −119,88
Para el área:
Z 1 √
área = 2π x3 1 + 9x4 dx
0
Con un θ = 0,5 se obtiene:
h0 (0,5) = 1,1625
Análisis de Error
Z π/4 p
longitud = 1 + cos2 (x)dx
0
Con un θ = π/8 se obtiene:
g 0 (π/8) = −0,2596
g 00 (π/8) = −0,5689
g (4) (π/8) = 1,9084
Para el área:
Z π/4 p
área = 2π sen(x) 1 + cos2 (x)dx
0
Con un θ = π/8 se obtiene:
g 0 (π/8) = 7,2786
g 00 (π/8) = −7,6564
g (4) (π/8) = 38,6602
R1
Para la integral: 0 e−x dx Se armo la siguiente tabla con los resultados de los diferentes
métodos con un n = 1000:
Análisis de Error
Z 1 q
longitud = 1 + e( − 2x)dx
0
g 0 (0,5) = −0,3145
g 00 (0,5) = 0,5444
g (4) (0,5) = 0,8749
Para el área:
Z 1 q
3
área = 2π x 1 + e( − 2x)dx
0
h0 (0,5) = −5,6558
h00 (0,5) = 8,9296
h(4) (0,5) = 37,5192
6.4.4. Ejercicio 4
Determine las constantes w0 , w1 y w2 de manera que
Z 2
g(t)dt = w0 g(0) + w1 g(1) + w2 g(2)
0
2 = w0 + w1 + w2
2 = w1 + 2w2
8
= w1 + 4w2
3
Resolviendo esto se obtiene:
1 4 1
w0 = , w1 = , w2 =
3 3 3
6.4.5. Ejercicio 5
Use la relación f (x0 + ht) = g(t) y el cambio de variable x = x0 + ht con dx = hdt
para trasladar la regla de Simpson desde [0, 2] hasta el intervalo [x0, x2].
Resolución Z 2Z x2
f (x)dx = g(t)dt
0 x0
Se conoce que:
b
(b − a)
Z
b+a
f (x)dt = (f (a) + 4f + f (b))
a 6 2
A partir de esto se hace el reemplazo y se obtiene:
Z x2
h x2
Z
x0 1 − x0 2 − x0
f (x0 + ht)hdt = f( ) + f( ) + f( ) dt
x0 6 x0 h h h
6.4.6. Ejercicio 6
Determine en cada uno de los siguientes casos, el número m y el tamaño de los
subintervalos h de manera que la regla del trapecio y la de Simpson (considerar cada
regla por separado) con m subintervalos nos permita obtener la integral dada con una
precisión de 5 × 10−9 .
R π/6
−π/6
cos(x)dx
(b − a)h2 00
Etrap = − f (c)
12
2π
( )(−cos(0))h2
5 × 10− 9 = − 6
12
v
u 5 × 10− 9 ∗ 12
htrap = u
t 2π
6
htrap = 2,39 × 10−4
b−a
htrap =
m
mtrap = 4382
Para Simpson:
(b − a)h4 (4)
Esimp = − f (c)
180
2π
( )h4 ∗ cos(0)
Esimp = − 6
180
hsimp = 0,03044762856
msimp = 34,39
R3 1
2
dx
5−x
(b − a)h2 00
Etrap = − f (c)
12
(1)h2 00
5 × 10− 9 = − f (c)
12
R2
0
xe−x dx
(b − a)h2 00
Etrap = − f (c)
12
(2)f (1)h2
5 × 10− 9 = −
12
(2)(−0,367579)h2
5 × 10− 9 = −
12
htrap = 2,85 × 10−4
mtrap = 7904
Para Simpson:
(b − a)h4 (4)
Esimp = − f (c)
180
2π
( )h4 ∗ f (4) (1)
Esimp = − 6
180
hsimp = 0,03325
msimp = 60,13
I = I(h) + E(h)
donde E(h) es el error de truncamiento que se comete al aplicar la regla trapecial. El
método de extrapolación de Richardson combina dos aproximaciones de integración
numérica, para obtener un tercer valor más exacto. El algoritmo más e?ciente dentro
de éste método, se llama Integración de Romberg, la cual es una fórmula recursiva. Su-
pongamos que tenemos dos aproximaciones: I = I(h1) e I = I(h2), con subintervalos
h1 y h2 respectivamente.
I = I(h1 ) + E(h1 )
⇒ I(h1 ) + E(h1 ) = I(h2 ) + E(h2 )
I = I(h2 ) + E(h2 )
donde f 00 (ξ) es un promedio de la doble derivada entre ciertos valores que pertene-
cen a cada uno de los subintervalos. Ahora bien, si suponemos que el valor de f 00 es
constante, entonces:
(b − a) 2
h1 − h1 ∗ f n h2
= 12 ≈ 21
h2 (b − a) 2 h2
− h2 ∗ f n
12
2
h1
∴ E(h1 ) ≈
h2
Sustituyendo esto último en nuestra primera igualdad, tenemos que:
2
h1
I(h1 ) + E(h2 ) ≈ I(h2 ) + E(h2 )
h2
2
h1
∴ I(h1 ) − I(h2 ) ≈ E(h2 ) − E(h2 )
h2
" 2 #
h1
I(h1 ) − I(h2 ) = E(h2 ) 1 −
h2
De aquí podemos despejar E(h2 )
I(h1 ) − I(h2 )
E(h2 ) ≈ 2
h1
1−
h2
4 I(h1 )
∴ I = I(h2 ) −
3 3
Esta fórmula es solo una parte del algoritmo de Romberg. Para entender el método, es
conveniente pensar que se trabaja en niveles de aproximación. En un primer nivel (que
llamamos 0), es cuando aplicamos la regla del Trapecio, y para poder usar la fórmula
anterior, debemos de duplicar cada vez el número de subintervalos: as?, ´ podemos co-
menzar con un subintervalo, luego con dos, cuatro, ocho, etc., hasta donde se desee.
Posteriormente, pasamos al segundo nivel de aproximación (el 1), que es donde se usa
la fórmula anterior, tomando las parejas contiguas de aproximación del nivel anterior,
y que corresponden cuando h2 = h1/2 . Después pasamos al tercer nivel de aproxi-
mación (el 2), pero aquí cambia la fórmula de Romberg, y así sucesivamente hasta el
último nivel, que se alcanza cuando solo contamos con una pareja del nivel anterior.
Desde luego, el número de niveles de aproximación que se alcanzan, depende de las
aproximaciones que se hicieron en el nivel 0. En general, si en el primer nivel, iniciamos
con n aproximaciones, entonces alcanzaremos a llegar hasta el nivel de aproximación
n. Hacemos un diagrama para explicar un poco más lo anterior.
Algunos detalles del algoritmo requieren mirarlo con cuidado. Para muchos casos, es-
timar el error de la integral sobre un intervalo para un función f no es obvio. Una
solucioń popular es usar dos reglas de integración distintas, y tomar su diferencia co-
mo una estimación del error de la integral. El otro problema consiste en decidir qué es
((demasiado grande)) o ((demasiado pequeño)). Un criterio posible para ((demasiado
grande)) es que el error de la integral no sea mayor que t, donde t, un número real, es la
tolerancia que queremos tener para el error global. Pero también, si h es ya minúsculo,
puede no valer la pena hacerlo todavía más pequeño si el error de la integral es apa-
rentemente grande. Este tipo de análisis de error usualmente se llama ((a posterior)) ya
function I = adapsimp(f,a,b,tol,nivel)
h = (b-a)/2; % Paso inicial
c = a+h; % Punto medio
fa = feval(f,a);
fc = feval(f,c);
fb = feval(f,b);
int = h/3*(fa+4*fc+fb); % Simpson simple tol = 10*tol;
I = refina(f,a,c,fa,fc,fb,int,tol,nivel);
Elección de nodos x1, x2, . . . , xn para aumentar el grado de precisión. Máximo grado
de exactitud.
Una fórmula de cuadratura con n nodos es exacta para polinomios de grado < 2n?1 si
y sólo si:
La fórmula es interpolatoria, y
los nodos son las raices del n-ésimo polinomio ortogonal respecto del producto
escalar inducido por w(x) en [a,b].
No existe ninguna foŕmula con n nodos exacta para todos los polinomios de grado 2n.
Fórmula de cuadratura
Z b n
X
w(x)f (x)dx = ci f (xi )
a i=1
Z b
1 Tn (x)
ci = 0 w(x)dx ⇒ i = 1, 2, 3, . . . , n
Tn a x − xi
f 2n (ξ) b 2
Z
E(f ) = T (x)w(x)dx ⇒ a < ξ < b
(2n)! a n
p0 = 1
p1 = x
n = 1, 2, 3 . . .
1
pn+1 (x) =[(2n + 1)xpn (x) − npn−1 (X)]
n+1
pn (x) tiene n raices reales distintas,
1 1 4k − 1
xk = 1 − 2 + 3 cos + O(n−4 ) ⇒ k = 1, 2, . . . , n
8n 8n 4k + 2
Y los coeficientes de a fórmula de cuadratura:
1 n
x − xj
Z Y 2
ci = dx = 2
⇒ i = 1, 2, . . . , n
−1 j=1,j6=i xi − xj (1 − xi )(pn (xi ))2