Академический Документы
Профессиональный Документы
Культура Документы
6 DIFERENCIACIN E INTEGRACIN
NUMRICA
6.1 Diferenciacin Numrica . . . . . . . . . . .
6.2 Diferenciacin numrica en dimensiones superiores . . . . . . . . . . . . . . . . . . . .
6.2.1 Discretizacin del Laplaciano . . . .
6.2.2 Discretizacin del gradiente. . . . . .
6.3 Integracin Numrica . . . . . . . . . . . . .
6.3.1 Mtodos de Cuadratura de Gauss . .
6.3.2 Frmulas de Integracin Numrica
Compuestas . . . . . . . . . . . . . .
6.3.3 Prctica
5
(Implementacin
Mtodo de Integracin de Simpson).
6.4 Integracin numrica en dimensiones superiores. . . . . . . . . . . . . . . . . . . . . .
Contents
1 INTRODUCCIN
23
23
24
24
24
26
27
27
4 INTERPOLACIN DE FUNCIONES I
13
4.1 Interpolacin por polinomios de Lagrange. . 13
4.2 Error de interpolacin de Lagrange y polinomios de Chebychev. . . . . . . . . . . . . 14
4.3 Mtodo de diferencias de Newton para el
clculo del polinomio interpolador de Lagrange. . . . . . . . . . . . . . . . . . . . . . 15
4.4 Implementacin de funciones elementales. . 17
4.4.1 Aproximacin de la exponencial . 17
4.4.2 Prctica 3 (Aproximacin de ) . 17
4.4.3 Aproximacin
de
funciones
trigonomtricas . . . . . . . . . . . . 18
4.4.4 Aproximacin de la funcin ln() . . 18
5 ANLISIS NUMRICO MATRICIAL I
5.1 Mtodo de Gauss . . . . . . . . . . . . . . .
5.2 Estimacin del error de un mtodo para resolver sistemas. . . . . . . . . . . . . . . . .
5.3 Mtodo de Cholesky . . . . . . . . . . . . .
5.4 Prctica 4 (Mtodo de Cholesky). . . . . .
5.5 Mtodo de Crout para matrices tridiagonales
22
22
19
19
8 INTERPOLACIN DE FUNCIONES II
42
8.1 Interpolacin de Hermite. . . . . . . . . . . 42
8.2 Interpolacin por splines cbicos. . . . . . . 42
8.3 La interpolacin a travs de la funcin seno
cardinal. . . . . . . . . . . . . . . . . . . . . 44
8.4 La interpolacin a travs de polinomios
trigonomtricos. . . . . . . . . . . . . . . . . 45
8.5 Aproximacin por mnimos cuadrados. . . . 46
20
20
20
21
9 BIBLIOGRAFA BSICA
46
INTRODUCCIN
El presente documento es un texto de referencia bsico sobre los contenidos de la disciplina de Anlisis Numrico
en el contexto curricular de una Ingeniera Informtica.
Aunque el texto cubre los contenidos mnimos necesarios,
resultar de gran inters para los alumnos complementar
la informacin aqu suminisftrada con los textos de referencia bsicos mencionados en la bibliografa. Muchas
de las demostraciones de los resultados presentados se encuentran en este texto. En los casos en que las demostraciones no se incluyen, se suministra el libro y la pgina
donde se encuentra tal demostracin, para que el alumno
interesado pueda estudiarla por su cuenta. En general, todos los temas presentados aparecen bien desarrollados en
los libros de texto clsicos mencionados en la bibliografa.
La nica excepcin es el tema de aritmticas de precisin
finita, que se ha desarrollado en este texto con algo ms
de detalle y con un enfoque algo ms moderno que en los
libros clsicos, por considerar que, en el contexto de una
Ingeniera Informtica, este tema es de especial relevancia.
En el texto se proponen unas prcticas de laboratorio
para realizar a lo largo de la asignatura. El lenguaje de
programacin que se utilizar para las prcticas es el C.
Para establecer el orden de imparticin de los contenidos
presentes en este documento se ha utilizado, como criterio
preferente, la coordinacin entre el programa de prcticas
y el programa terico de la asignatura, de tal forma que,
con un desarrollo normal de la docencia, los contenidos
tericos sean presentados con antelacin al desarrollo de
las prcticas.
Para el buen seguimiento de la asignatura, resulta de
gran inters tener cierta soltura en el manejo de los conceptos elementales del Anlisis Matemtico, el lgebra,
y la programacin de Algoritmos. La materia expuesta
en esta documentacin est programada para ser impartida en un cuatrimestre a razn de 3 horas/semana en el
aula y 2 horas/semana en el laboratorio informtico, lo
que hace un total de, aproximadamente, 45 horas en aula
(3 crditos tericos) y 30 horas de laboratorio (2 crditos
prcticos). Dado el escaso tiempo disponible, se han eliminado algunos temas clsicos de un curso completo anual
de Anlisis Numrico como son las ecuaciones diferenciales
ordinarias y las ecuaciones en derivadas parciales. Normalmente, dichos temas se vern en detalle en asignaturas
posteriores. Adems, en lugar de presentar de forma exhaustiva todos los mtodos numricos que se pueden encontrar en los libros de Anlisis Numrico clsicos, se ha
1 2 3
donde = 0 o = 1, representa el valor absoluto del
nmero
| |= + 1 2 + 2 22 + + 1 21
As, utilizando 16 bits, el mayor nmero entero que
podemos representar es
1 + 2 + 22 + + 214 = 215 1 = 32767
Es decir, los nmero enteros que podemos expresar
con una aritmtica de 16 bits van desde 32767 hasta
32767
Para representar un nmero real en el ordenador
nos basaremos en el siguiente resultado:
Teorema 1 Un nmero real positivo se puede expresar
como
= 2
2
=1
1
2
1
2
2
2
=1
2
=1
2
=1
emax = 2128
24
X
1
= 3 4 1038
2
=1
1
= 1 18 1038
2
e = 2
2
=1
emax = 21024
53
X
1
= 1 78 10308
2
=1
emin = 21021
1
= 2 23 10308
2
Problema 5 (2 puntos) Dada una aritmtica de precisin finita cualquiera, calcular la distancia que hay entre
el nmero 1 y su inmediato superior, es decir, el nmero
que va despus de 1, y la distancia entre el nmero 1 y su
inmediato inferior.
= 2
{0}
2
=1
2
=2
= 2
Por ejemplo, si = 24 (reales en simple precisin)
= 224 = 5 97 108 y en doble precisin ( = 53),
= 253 = 1 1 1016
Programa 1 Pseudocdigo para calcular el nmero positivo (mayor que cero) ms pequeo
Algoritmo Menor_Numero_Positivo
variable real A1.
variable entera M0
mientras A0 hacer
AA/2
MM+1
finmientras
escribir(M)
finalgoritmo
Programa 3 Pseudocdigo para calcular la unidad de redondeo de una aritmtica. El programa devuelve un entero
tal que = 2
Algoritmo Unidad_Redondeo
variable real A1.
variable real B2
variable entera M1
mientras B1 hacer
AA/2
4
Demostracin.
Un nmero real cualquiera que
tomaremos positivo sin prdida de generalidad, se puede
expresar como
= 2
2
=1
B1+A
MM+1
finmientras
escribir(A)
finalgoritmo
X
X
1
2
2
+
2
2
2
=1
=1
| e |
1
9
5. 2
2 2
2
1
2
1
210
Problema
7 (2
2 12 + 213 + 215
+ y
puntos) Sean
=
23 12 + 216 +
1
27
Problema
9 (2 puntos) Dado un nmero e =
P
2 =1 2 en una aritmtica de precisin finita. Calcular el nmero inmediatamente inferior a l en dicha aritmtica.
Calcular
2
2
2
=1
Demostracin: Ejercicio
En muchos algoritmos, el test de parada incluye el
hecho de que dos variables estn prximas entre s. para
ello se fija un umbral o tolerancia que por supuesto
ser mayor que la unidad de redondeo y expresaremos
que las variables y estn cercanas entre s con una
tolerancia si se cumple que
| | max {| | | |}
o equivalententemente
| |
max {| | | |}
Este criterio es simtrico en el sentido de que trata de
igual modo los nmeros y Tambin se puede utilizar
un criterio ms simple, como
| e || |
| |
||
5
pero en este caso le estamos dando una significacin especial a con respecto a
Para poder verificar si la prctica est bien, a continuacin se dan los resultados que se deben obtener:
||
||
lo cual es imposible (si 1) Para evitar este comportamiento, se puede aadir al criterio un valor 0 de
la siguiente forma:
| |
(max {| | | |} + )
o bien
| |
(| | +)
1. float
2. double
3. long double
Adems con la opcin de depuracin se seguir paso
a paso la ejecucin de los programas. Para poder utilizar
las funciones de la librera matemtica hay que incluir al
principio del fichero #include math.h
nmero real. Como vimos en la seccin anterior, las aritmticas estndares de ordenador trabajan en base 2 Sin
embargo, los humanos pensamos y razonamos en trminos
de nmeros en base 10 Por ejemplo, nmeros tan naturales
para nosotros como 01 no pueden representarse de forma
exacta en una aritmtica en base 2. Esto quiere decir que,
al representar 01 el ordenador, va a producir un pequeo
redondeo, y este pequeo error de redondeo se puede ir propagando hasta producir errores apreciables. Por ejemplo,
parece razonable pensar que, cuando sumamos 100 veces
el nmero 001, el resultado sea exactamente 1, pero, no
es as. Sin embargo, si sumamos 128 = 27 veces el nmero
27 el resultado s es exactamente 1
Como conclusin de este apartado, podemos extraer
que, para ser ms precisos numricamente, cuando trabajamos con nmeros ms pequeos que la unidad deberamos pensar en trminos de 2 en lugar de 10
que es como solemos hacerlo.
Mtodo de la biseccin.
Se considera un intervalo [ ] donde la funcin () cambia de signo, es decir () () 0. El mtodo consiste en
ir dividiendo el intervalo [ ] por la mitad de la siguiente
forma:
Se toma el punto medio +
Si ( +
2 .
2 ) = 0 ya
+
hemos encontrado la raz = 2 . En caso contrario,
+
si ( +
2 ) () 0 entonces hacemos = 2 y volvemos
a subdividir el nuevo intervalo [ ] Si, por el contrario,
+
() ( +
2 ) 0, entonces hacemos = 2 y volvemos
a empezar. Las sucesivas subdivisiones del intervalo [ ]
van aproximando la raz.
2 4
=
2
una forma
de evitar la cancelacin que se produce cuando
2 4 consiste en calcular primero la raz de
mayor valor absoluto, es decir
+ () 2 4
1 =
2
Problema 12 (2 puntos) Calcular 2 iteraciones del algoritmo de la biseccin para buscar un cero de la funcin
() = 2 2 en el intervalo [2 0]
Problema 13 (2 puntos) Escribir el Pseudocdigo para
implementar el mtodo de la biseccin
Mtodo de la Regula-falsi
Este mtodo es una variacin del anterior en el sentido
siguiente: En lugar de tomar el punto medio +
2 del intervalo, se considera el punto de interseccin de la recta
que pasa por los puntos ( ()) y ( ()) con el eje .
Es decir, en el razonamiento anterior, se sustituye el valor
= +
2 por el valor
()
() ()
Problema 14 (2 puntos) Calcular 2 iteraciones del algoritmo de la regula-falsi para buscar un cero de la funcin
() = 2 2 en el intervalo [0 2]
Problema 10 (1 punto) Calcular las races del polinomio () = 2 2 + 001 evitando los errores de
cancelacin.
Mtodo de Newton-Raphson
El mtodo de la Secante
() (0 ) + 0 (0 )( 0 )
que corresponde a una aproximacin de 0 ( ) Para iniciar el algoritmo, son necesarias dos aproximaciones iniciales, 0 y 1
que corresponde a un polinomio de grado 1 y a continuacin se calcula 1 como el cero de este polinomio, es
decir:
(0 )
1 = 0 0
(0 )
Programa 4 Pseudocdigo para calcular una aproximacin de la raz cuadrada de un nmero positivo con
una tolerancia y un nmero mximo de iteraciones
max
Algoritmo Raiz_Cuadrada
variables reales A,TOL
variable entera Nmax
variables reales X0, X1
leer(A,TOL)
leer(Nmax)
si A<0 entonces
escribir(El numero A no es positivo)
devolver CODIGO DE ERROR
finsi
X0(1+A)/2.
para K1 hasta Nmax hacer
X1X0-(X0*X0-A)/(2.*X0)
si X0=X1 mod TOL entonces
escribir (LA RAIZ DE A ES,X0)
devolver X1
sino
X0X1
finsi
finpara
escribir(No mximo de iterac. excedido)
devolver CODIGO DE ERROR
finalgoritmo
Mtodo de Mller.
Este mtodo es una generalizacin del mtodo de NewtonRaphson. En lugar de quedarnos con la parte lineal del
desarrollo de Taylor de la funcin, nos quedamos con los
trminos hasta el orden 2 de tal forma que hacemos
() (1 )+ 0 (1 )(1 )+
00 (1 )
(1 )2
2
donde 1 es una aproximacin de una raz de la funcin () Para obtener una aproximacin mejor de la
raz calculamos los ceros del polinomio de segundo grado
anterior, es decir
q
0 (1 ) ( 0 (1 ))2 2 (1 ) 00 (1 )
= 1 +
00 (1 )
De las dos posibles races, nos quedamos con aqulla
que sea ms cercana a 1 . Dicha raz ser la aproximacin de la raz de () en la etapa En el caso
en que 00 (1 ) = 0 calculamos por el mtodo de
Newton-Raphson. En el caso en que no conozcamos
analticamente el valor de la primera y segunda derivada
de () podemos utilizar las siguientes aproximaciones:
00 (1 ) 2
8
(2 ) (3 )
(1 ) (2 )
2 3
1 2
3 1
0 (1 )
(1 ) (2 )
1 2
00 (1 )
(1
2
2 )
Como veremos posteriormente, la eleccin de las frmulas anteriores equivale a aproximar () por la parbola
que pasa por los puntos (3 (3 )) (2 (2 ))
y (1 (1 )), y calcular posteriormente las derivadas
de dicha parbola.
2. () = 2 2 :
(a) M1 (float) : 3 iteraciones '
108
(b) M2 (float) : 3 iteraciones '
108
(d) M1 (double) :
() ' 1016
(e) M2 (double) :
() ' 1016
1. Mtodo 1 (M1) : Newton-Raphson conociendo la funcin y su funcin derivada como funciones independientes
(f) M2 (double) :
() ' 1016
() '
() '
() '
5 iteraciones
'
5 iteraciones
'
6 iteraciones
'
( + ( + 1)) ()
( + 1)
3. () = cos() + 1
(1 ) (0 )
(1 0 )
'
313
'
313
'
313
Las funciones devuelven el nmero de iteraciones realizadas o un nmero negativo si han fallado. La raiz se
devuelve como un parmetro de entrada/salida. Adems
se tendr como parmetros el nmero mximo de iteraciones max y la tolerancia para determinar la
igualdad entre dos nmeros. En los ejemplos se tomar
siempre = 100 donde es la unidad de redondeo
de la aritmtica y max = 100000
La funcin a la que se le calculan los ceros se define en
el propio cuerpo del programa. Utilizar los mtodos para
calcular los posibles ceros de las siguientes funciones:
(d) M1 (double) :
() ' 1014
(e) M2 (double) :
() ' 1015
(f) M2 (double) :
() ' 1015
22 iteraciones
'
22 iteraciones
'
32 iteraciones
'
1. () = 2
2. () = 2 2
3. () = cos() + 1
4. () = 1
5. () = 2 + 1
=
= + +1 0
entonces se verifica que
(0 ) = 0
0 (0 ) = 1
+ 1 2
+ + 1
0
0
Demostracin Sea el polinomio () = 1 +
1 2 + + 1 . Veamos que se verifica que
() = ( 0 )() + 0
Efectivamente, dado que = +1 0 y = ,
obtenemos la igualdad anterior teniendo en cuenta que
( 0 )() + 0 =
+ (1 0 ) + + (0 1 0 )
Por ltimo, obtenemos
0 () = ( 0 )0 () + ()
de donde sale obviamente que 0 (0 ) = (0 ).
Este teorema permite calcular el polinomio y su
derivada en un punto de forma muy sencilla, como muestra
el siguiente algoritmo
=0
29
X
=0
Algoritmo Horner
variable entera N (Grado del Polinomio)
leer(N)
vector variables reales A de tamao N+1
para K0 hasta N hacer
leer(A(K))
finpara
PX=A(N)
PPX=A(N)
para KN-1 hasta 1 hacer
PX=PX*X+A(K)
PPX=PPX*X+PX
finpara
PX=PX*X+A(0)
finalgoritmo
Otros resultados interesantes de utilidad para localizar en qu zonas pueden estar las races del polinomio
son:
10
max=01 | |
max=01 | |
1 +
1
| |
| |
Demostracin Veamos que si || 1 +
entonces | ()| 0 Efectivamente,
| ()| | |
max
=01
| |
1
X
=0
max=01 | |
,
| |
) () =
|| =
1 ||
1 ||
||
=
| | || max | |
=01
|| 1
|| (| | (|| 1) max=01 | |)
=
0
|| 1
= | | ||
max
=01
!
! 1 ( 1) ! 1
+
++
( )!
( 1)!
1
| |
Los dos resultados anteriores permiten aislar las posibles races de () de la forma siguiente: Si llamamos
max=01 | |
max a 1 +
entonces las races distintas
| |
1 2 de () estn intercaladas con las
races 01 02 01 de 0 (), es decir
max 1 01 2 02 01 max
Para la estimacin del nmero de races reales negativas, se aplica el teorema anterior cambiando por .
1)
Ejemplo 3 Sea () = 34 + 103 10 3, los signos de los coeficientes son: + + . Por tanto, hay un
nico cambio de signo y hay una raz positiva. Si cambiamos por , los signos de los coeficientes son + +.
Por tanto, hay 3 cambios de signo y hay una o tres races
negativas. En este caso, las races son = 1 1 3 13 .
3. Para = 2 1
max 1
+1)
+1)
+1 max
Al final del procedimiento, habremos aislado completamente a las races de () Este procedimiento se puede
utilizar para grados relativamente pequeos ( 30),
puesto que su utilizacin requiere el clculo de factoriales, que se dispara rpidamente. Por ejemplo, 30! = 2
6 1032 Existen mtodos mejores para el clculo de races
de polinomios, pero que utilizan tcnicas ms complejas.
El mtodo presente en el siguiente programa, que combina
el aislamiento de las races del polinomio a travs de los
ceros de sus derivadas con el mtodo de Newton-Raphson,
funciona razonablemente bien para grados de polinomios
pequeos. En el caso de races mltiples los resultados
acumulan mayores errores de redondeo debido a que tanto
el polinomio como su derivada son cero en el mismo punto.
-3
-2
100
80
80
60
60
40
40
20
20
-1
-3
100
80
60
40
20
-2
-1
Polinomio 0 () = 43 32 14 + 1
100
60
40
20
-2
-1
-20
Programa 6 Pseudocdigo
de
la
funcin
( ) que devuelve las races
reales de un polinomio.
Dicha funcin tiene como
parmetros un vector real () donde estn los coeficientes
del polinomio, un vector real () donde se guardan
las races del polinomio una vez calculadas, la tolerancia con la que consideramos que dos nmeros
son iguales, el grado del polinomio y el nmero
mximo de iteraciones max para el proceso de
Newton-Raphson. Tambin se define la funcin auxiliar
( 1 2 ) que devuelve la raz del
polinomio que se obtiene aplicando el mtodo de NewtonRaphson, tomando como valor inicial el punto medio del
intervalo [1 2]
80
-3
-1
-3
-2
Polinomio 000 () = 24 6
Polinomio () = 4 3 72 + + 6
100
Polinomio 00 () = 122 6 14
ICEROPOL(A,R,TOL,N)
Algoritmo Clculo ceros polinomio
vectores de variables reales F,AP y PI de dimensin N+1
12
sino
retornar
finsi
sino
RP1=RP-PX/PPX
si (RP1 ES IGUAL A RP MODULO TOL)
entonces
RP=RP1
R(L)=0.
retornar
sino
RP=RP1
finsi
finsi
finhacer
finalgoritmo
INTERPOLACIN DE FUNCIONES I
El problema general de la interpolacin de funciones consiste en, a partir del conocimiento del valor de una funcin
(y eventualmente de sus derivadas) en un conjunto finito
de puntos, aproximar el valor de la funcin fuera de ese
conjunto finito de puntos.
RP(N,A,X1,X2,TOL,R,L)
Algoritmo Clculo raz polinomio en un intervalo
R(L)=1.
si (X1 ES IGUAL A X2) entonces
devolver(X1)
finsi
RP=(X1+X2)/2.
para K 1 hasta N hacer
EVALUAR POLINOMIO Y SU DERIVADA
POR EL METODO DE HORNER
si (PPX ES IGUAL A 0.) entonces
si (PX ES IGUAL A 0.) entonces
R(L)=0.
6= ( )
6= ( )
1 =
( ) =
0 6=
Por tanto, el polinomio interpolador de Lagrange
puede expresarse como
() =
X
=0
13
( ) ()
( + 1)( 1)
1
( 1)
2
( + 1)
2
0 () =
1 () =
2 () =
+1) ()
( )
( + 1)! =0
( + 1)
( + 1)( 1)
( 1)
+ 1
+
1
2
2
En la siguiente figura comparamos la grfica del polinomio 2 () (trazo continuo) con la grfica de la funcin
(trazo discontinuo)
Ejemplo 6
La funcin () tiene al menos + 1 ceros en los puntos y en el punto Por tanto, su funcin derivada 0 ()
tiene al menos ceros repartidos entre los ceros de ()
Anlogamente, 00 () tiene al menos 1 ceros y as sucesivamente hasta llegar a +1 () que tiene al menos 1
cero. Si llamamos a dicho cero, obtenemos
y4
3
2
+1 () = +1) () ( + 1)!
-1.4-1.2 -1.0 -0.8 -0.6-0.4-0.2 0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4
x
Problema 25 (2 puntos) Calcular la expresin del error de interpolacin al aproximar la funcin () = ()
en el intervalo [0 2] interpolando en los puntos 0 2 y
3
2 y acotarlo superiormente.
= 0
2 + 1
1 + cos
= 0
= +
2
2 + 2
14
entonces
max
[]
=0 ( ) |=
max |
e ) |
=0 (
+1
Newton. El mtodo consiste en ir calculando progresivamente los polinomios () que interpolan la funcin en
los puntos 0 de la siguiente forma:
0 () = 0
1 () = 0 () + 1 ( 0 )
2 () = 1 () + 2 ( 0 )( 1 )
() = 1 () + ( 0 )( 1 )( 1 )
[]
Por tanto, utilizando este resultado, el error de interpolacin mximo viene determinado por:
| () () |
max[] +1) ()
( + 1)!2
+1
0 () = 1
1 () = 1 + 1
Como 1 (1) debe ser igual a , despejando obtenemos
=
=
=
=
=
=
1 = 1
Por ltimo
982 96
853 55
629 41
370 59
146 45
1 703 7 102
2 () = 1 () + 2 ( 1)
2 2 + 1
( 1)
2
En el caso de que [ ] = [1 1] los valores ptimos de interpolacin dados por la frmula anterior son
las races de los denominados polinomios de Chebychev,
() construidos de la manera siguiente:
[ ] = ( )
[+1 ] [ ]
[ +1 ] =
+1
[+1 + ] [ +1 ]
[ + ] =
+
0 () = 1
1 () =
() = 21 () 2 ()
() =
=0
1
=0 ( )
15
[+1 + ] [ +1 ]
+
0.1
[ + ] = [+ ]
0.0
-0.1
() = 0 + 1 ( + ) + 2 ( + )( +1 ) +
donde
-0.2
= [+ + ]
Por la unicidad del polinomio interpolador obtenemos
que () = () y, por tanto
= [ + ] = [+ ] =
Problema 27 (2 puntos) Interpolar la funcin () =
10
2 +1 en los puntos 0 = 2 1 = 1 2 = 1 3 = 2
utilizando las diferencias de Newton y evaluar el polinomio
en = 0 utilizando el algoritmo de Horner.
1
X
=0
+ = 1
+
Problema 28 (2 puntos) Calcular el polinomio interpolador de Lagrange 3 () de la funcin () = () en
los puntos 0 2 y 3
2 utilizando las diferencias divididas
de Newton.
=1
Despejando obtenemos
=
1 1
+
= [ +1 ]
= [+ +1 ] = [+1 + ]
[0 1] = 1 1
[1 2] = 2 1
[2 3] = 3 2
2 2 + 1
[0 1 2] =
2
3 22 + 1
[1 2 3] =
2
3 32 + 31 1
[0 1 2 3] =
6
Programa 7 Pseudocdigo donde se definen las funciones IDIFNEWTON, que a partir del vector (0 : ) de
puntos de interpolacin y el vector (0 : ) de valores de
la funcin () en los puntos de interpolacin, devuelve el
vector (0 : ) de coeficientes de diferencias divididas que
definen el polinomio de Lagrange (() = [0 1 ]
), y la funcin EVDIFNEWTON(A,X,X0,N) que a partir
de los coeficientes dados por el vector (0 : ) y el conjunto de puntos de interpolacin, devuelve el valor de la
evaluacin del polinomio de Lagrange en el punto 0
3 () = 1 + ( 1) +
16
de para 0 [0 1] Utilizando como puntos de interpolacin los asociados a los polinomios de Chebychev:
1
2 + 1
=
1 + cos
= 0
2
2 + 2
FUNCTION IDIFNEWTON(A,X,F,N)
Algoritmo Clculo polinomio interpolador por diferencias de Newton
vector real B de dimensin N+1
para K 0 hasta N hacer
B(K)=F(K)
finpara
A(0)=F(0)
para K 1 hasta N hacer
para L0 hasta N-K hacer
si (X(K+L).EQ.X(L)) entonces
devolver(1)
finsi
B(L)=(B(L+1)-B(L))/(X(K+L)-X(L))
finpara
A(K)=B(0)
finpara
devolver(0)
finalgoritmo
1
| () |
0
( + 1)!2 2
FUNCTION EVDIFNEWTON(A,X,X0,N)
Algoritmo Evaluar Polinomio interpolador
EVDIFNEWTON=A(N)
para K=N-1 hasta 0 hacer
EVDIFNEWTON=EVDIFNEWTON*(X0X(K))+A(K)
finpara
finalgoritmo
1
2
2 + 1
1 + cos
14
= 0 6
0.9874
0.8909
0.7169
0.5
0.2830
0.109
0.012
Aproximacin de la exponencial
2.6844
2.4373
2.0481
1.6487
1.3271
1.1152
1.0126
| 6 ( )|
0
0
0
0
0
0
0
Precisin double
| 6 ()|
0
1
4 108
0.5 1.6487 0
1.
2.7182 6 108
2.
7.3890 6 103
3.
20.085 3 101
cos[0 4 ] ()
4
cos[0 2 ] () =
[0 4 ] ( 2 ) 4
[0 2 ] () =
cos[0] () =
[0] () =
cos[02] () =
[02] () =
cos[0 2 ] ()
cos[0 2 ] ( )
[0 4 ] ()
cos[0 4 ] ( 2 )
[0 2 ] ()
[0 2 ] ( )
Problema 33 (3 puntos) Calcular los polinomios necesarios para interpolar las funciones trigonomtricas cos()
y () en el intervalo [0 8 ] en una aritmtica de 32 bits.
=2
2
=1
cos[0] ()
cos[0] (2 )
[0] ()
[0] (2 )
1 y para 1 = 0
donde es un nmero entero, 1 =
P
2
4
2
+
+ + (1)
2
4!
(2)!
Dado que el nmero ln(2) es una constante que supondremos calculada anteriormente ( ln(2)
= 6931471806),
podemos reducir el clculo del ln() al rango de valores
1
2 1
Utilizaremos los puntos de interpolacin generados
por los polinomios de Chebychev, que para el intervalo
[ 12 1] son:
1 1
2 + 1
= +
1 + cos
= 0
2 4
2 + 2
()2+1
(2 + 1)!
| ( 1)
| ln() +1 () |
=0 ( ) |
= +1
| ln() |
( + 2) | ln() |
25+1
tan( ) 4
= 1 8 109
4 (2 5 + 1)!
Por tanto:
| ln() +1 () |
2 +1
| ln() |
( + 2)
18
+1
1
1
4
2
Problema 34 (1 punto) Cmo se puede obtener la funcin donde e son nmeros reales, utilizando las
funciones y ln()?
2 2 0
1
0
6
18 12 2 = 24
3
11 7
8
3
2 2 0
6
18 12
6
18 12 2 2 0
3
11 7
3
11 7
6
18 12
6
18
12
2 2 0 1 mn 0 4 4
3
11 7
0 2 1
6 18 12
6 18 12
0 4 4 2 mn 0 4
4
0 2 1
0 0 1
En esta primera seccin dedicada a la resolucin de sistemas de ecuaciones lineales, estudiaremos los mtodos directos clsicos para la resolucin de un sistema de ecuaciones de la forma
=
donde = ( ) es una matriz de = ( ) es un
vector de tamao que determina los trminos independientes, y = ( ) es el vector solucin buscado.
Mtodo de Gauss
Este mtodo, aunque no es de los ms rpidos, tiene la gran
ventaja de que se puede aplicar a todo tipo de matrices,
algo que, como veremos en el futuro, no ocurre con otros
mtodos ms rpidos, pero que requieren, por ejemplo,
que la matriz sea simtrica o definida positiva. El mtodo
de Gauss se basa en transformar el sistema = en
un sistema equivalente 0 = 0 tal que la solucin sea
la misma y que la matriz 0 sea triangular superior, es
decir, que tenga valores nulos de la diagonal hacia abajo.
Una vez obtenidos la matriz 0 y el vector 0 el clculo
de la solucin es inmediata, siguiendo un remonte de las
variables a travs del siguiente esquema recursivo:
=
0
de la misma forma,
forma siguiente
0
24
8
24
24
24
0 8 8
8
4
8
3
=
2 1
0
0
0
=+1
0
el vector se ha transformado de la
Problema 37 (3 puntos) Calcular el nmero de operaciones bsicas necesarias para descomponer el sistema
= en el sistema 0 = 0 utilizando el mtodo de
Gauss, teniendo en cuenta la siguiente relacin:
= 1 1
1
X
Problema 35 (2 puntos) Calcular el nmero de operaciones bsicas (sumas, restas, multiplicaciones y divisiones) necesarias para realizar un remonte como el presentado arriba en funcin de la dimensin .
=1
2 =
1 3 1 2 1
+
3
2
6
1 y se suma a la fila
de para = 2 Se hace lo mismo para el vector
19
0 1 2
1
1 2 1 2 =
2 1 0
3
el mtodo de
1
0
1
1 1 4
= 1 5 6
4 6 26
| | +
P
2
=
1
=0
Para = +1 1
P1
1
=
=0
Fin Para
Fin Para
=
=
Mtodo de Cholesky
Este mtodo slo se puede aplicar a matrices simtricas
y definidas positivas. El siguiente teorema da 3 posibles
definiciones equivalentes de una matriz definida positiva.
Problema 42 (2 puntos) Calcular el nmero de operaciones necesarias para resolver un sistema por el mtodo
de Cholesky.
11
21
=
31
1
triangular inferior.
0
22
32
0
0
33
1 1 4
6
1. 1 5 6 = 12
4 6 26
36
1 1 4
6
2. 1 1 4 = 12
4 4 17
36
2 1 0
1
3. 1 2 1 = 0
0 1 4
1 1
0
1 2
=
0
1
0
1
1 0
1 1
0
0
1 2
0 1
0
0 0 1
0
1
0 0
1
1 = 1
1 = 11
21
Para = 2 1
1 = 1
= 1 1
=
Fin Para
1 = 1
= 1 1
113 13
= 3 31
11 1
que est mucho ms prximo al valor real.
0 (1)
2
4 0
6
1 0 4 = 3
0 1 0
Problema 46 (2 puntos) Calcular el nmero de operaciones necesarias para resolver un sistema tridiagonal por
el mtodo de Crout.
DIFERENCIACIN E INTEGRACIN
NUMRICA
( )
( )
( )
+ ( ) ( )
( ) ()
Una frmula de diferenciacin numrica es un procedimiento que permite aproximar la derivada de la funcin
() en un punto utilizando el valor de () en otros
puntos vecinos a Por otro lado, una frmula de integracin numrica es un procedimiento que permite aproximar el valor de la integral en un intervalo [ ] a partir
de la evaluacin de () en algunos puntos incluidos en el
intervalo [ ]
Diferenciacin Numrica
Ejemplo 12 Veremos en este ejemplo como, utilizando la
expresin anterior para aproximar la derivada de () =
3 en = 1, la precisin es mayor que con la frmula
anterior. Por ejemplo, si tomamos = 1 y = 1 la
expresin anterior nos da
La manera habitual de aproximar la derivada de una funcin () en un punto consiste en utilizar el desarrollo
de Taylor centrado en :
() = ( ) +
0 ( )
) ( )
( ) + +
( ) +
1!
!
23 03
=4
2
Si tomamos ahora = 01
0 (1)
113 093
= 3 01
02
que est ms prximo al valor real que utilizando la
primera frmula. En general, comprobamos que, cuanto
mayor es el orden de una frmula de aproximacin, ms
preciso es el valor de la derivada.
( ) ( )
+ O (| |)
0 (1)
22
5. ( + + ) = + + + 12 (2 + 2 +
3
2 ) + O( 2 + 2 2 )
7. ( + ) = + + 12 (2 2 +
3
2 ) + O( 2 + 2 2 )
6. ( ) = + 12 (2 + 2 +
3
2 ) + O( 2 + 2 2 )
8. ( + ) = + + 12 (2 2 +
3
2 ) + O( 2 + 2 2 )
( ) ( )
( ) ( )
()
2 ()
2
2 ()
2 ()
1. ( + ) = + +
2
2
+ O(3 )
2. ( ) = +
2
2
+ O(3 )
3. ( + ) = + +
2
2
+ O(3 )
4. ( ) = +
2
2
+ O(3 )
donde es un parmetro libre a elegir. La eleccin de dicho parmetro la haremos de forma que la discretizacin
de respete lo mximo posible la invarianza por rotaciones de la funcin ( ). Para ello, consideremos una
funcin tal que en un entorno de un punto (0 0 ) tiene
los siguientes valores:
1
0
0
1
0
0
1
0
0
2
1
+ (1 ) 2
2
2
1
0
0
2 2 0
2 2
1
=
2 2
1 0 2 2
1
4
2 2
0
2 2
2 2
2 2 1
2 2
1
0
=
0
0
4
2 21
2 2
2 2
0
0
0
1
3
1
3
1
3
1
3
83
1
3
1
3
1
3
1
3
Integracin Numrica
Mtodos de Cuadratura de Gauss
Sea () una funcin definida en un intervalo [ ] vamos
a aproximar el valor de la integral de () en [ ] utilizando la evaluacin de () en ciertos puntos de [ ]
Es decir, una frmula de integracin numrica se puede
escribir como
Z
X
()
( )
(+1 1 )
= (1 )
+
2
(+1+1 1+1 + +11 11 )
+
4
X
() =
( )
(+1 1 )
+
2
(+1+1 +11 + 1+1 11 )
+
4
donde es, de nuevo, un parmetro a elegir. Teniendo
en cuenta que la norma eucldea del gradiente es invariante por rotaciones, lo ser en particular para rotaciones
de 45 grados, de donde deducimos, utilizando
el mismo
(2 2) 0 (2 2)
1
2( 2
1) 0 2( 2
1)
4
(2 2) 0 (2 2)
( )
= (1 )
2( 2 1)
0
2( 2 1)
=1
)
1 6= (
y utilizando
(2 2)
1
0
4
(2 2)
=1
(2 2)
0
(2 2)
2
05773502692
1
05773502692
1
3
07745966692
05555555556
0
08888888889
07745966692 05555555556
4
08611363116
03478548451
03399810436
06251451549
03399810436 06251451549
08611363116 03478548451
() = 21 () 2( 1)2 ()
para 2 En este caso, la frmula de integracin
numrica aproxima la integral de la siguiente forma:
Z
()
( )
=0
Teorema 15 Si
son los ceros del polinomio de Hermite
y definimos
Z
6= (
) 2
)
6= (
Problema 59 (2 puntos) Aproximar el valor de la siguiente integral, utilizando las frmulas de Legendre para
= 2 y = 3:
Z 1
3
1
0
1 772 453 851
2 0 707 106 781 0 886 226 925 5
0 707 106 781
0 886 226 925 5
2
2
1
+
2
Problema 63 (2 puntos) Utilizar el resultado del problema anterior para calcular de forma exacta la siguiente
integral:
Z 1
2
25
()
=0
( )
Teorema 16 Si
son los ceros del polinomio de Laguerre y definimos
Z
6= (
)
=
6= (
)
0
Z +1
+ +1
()
(+1 )
2
1
1
1
2
0 585 786 438
0 853 553 390 3
3 414 213 562
0 146 446 609 3
+ +1
=
2
+ +1
(+1 )
=
2
+1
()
+1
2
0
Con las frmulas que hemos visto hasta ahora, para aumentar la precisin es necesario aumentar el grado de los
polinomios, lo cual resulta complejo para valores grandes
de Una alternativa consiste en dividir previamente la
integral en subintegrales de la manera siguiente:
Z
X
=0
()
+1
+ (+1 )
( )
+1
+1
(+1 ) + ( )
=
(+1 )
2
(+1 ) + ( ) + 4
+1
()
++1
2
(+1 )
Esta frmula se deduce aproximando () por su desarrollo en serie de Taylor centrado en el punto =
++1
Es decir:
2
() =
+1
+1
Frmula de Simpson
+1
()
+1
()
00 ( )
( ) + 0 ( )( ) +
( )2 =
2
3
00
( ) +1
= ( )(+1 ) +
3
2
+1
donde = 0 1 +1 = A continuacin se
aproxima numricamente cada una de las integrales
Z +1
()
00 ( )
(+1 ) 2 ( ) + ( )
2
+1
2
26
Integral
+1
() ( )(+1 )+
(+1 ) 2 ( ) + ( ) +1
+
=
3
2
+1
(+1 ) + ( ) + 4 +
2
(+1 )
=
6
Integral
3.
2
1 2
2
N interv.
25
26
26
Error
107
0
0
sin() = 2
12
Error
104
104
104
N interv.
219
224
224
R1
Se puede tambin implementar una versin del algoritmo de Simpson que calcule de forma automtica el
nmero de intervalos. El siguiente pseudocdigo indica
una manera de hacerlo
2.
float
double
long double
12
219
float
double
long double
Aunque estas frmulas sean menos precisas que las deducidas a partir de los ceros de los polinomios de Legendre,
tienen la ventaja de que pueden ser utilizadas cuando slo
conocemos la funcin a integrar en un conjunto equiespaciado de puntos, es decir, cuando slo conocemos () en
un conjunto de la forma = 0 + Ntese que, en este
caso, la integracin a partir de los ceros de los polinomios
de Legendre no puede utilizarse.
1.
R1
=1
2
1 2
2
=1
27
( ) el rea del tringulo En funcin de los vrtices, el rea viene determinada por
1
1
1
1
( ) = 0 1 2
2
0 1 2
A continuacin presentaremos algunas frmulas de integracin numrica sobre tringulos utilizando diferentes
nmeros de puntos
y, por tanto, la exactitud en dimensin 2 la podemos deducir a partir de la exactitud en dimensin 1, que, en este
caso, viene dada, como hemos visto anteriormente, por los
polinomios de Legendre.
Z
0 + 1 + 2 0 + 1 + 2
( ) =
( )
3
3
Problema 69 (3 puntos) Deducir la frmula de integracin numrica sobre el rectngulo [1 1][1 1] resultante de aplicar la integracin numrica en una variable
en los intervalos [1 1] y [1 1].
donde
= 2 = 3 =
e1
e3
0 + 1
2
0 + 2
2
2 + 1
2
3
X
=1
(e
e )
1
3
0 + 1
2
0 + 2
e2 =
2
2 + 1
e3 =
2
e1 =
e2
( )
= ( )
( )
( )
= ( )
donde
( )
2
0 1 +
= 2 = 3 =
e1
e3
e4
=1
(e
e )
25
27
4 =
48
48
60 + 21 + 22
60 + 21 + 22
e1 =
10
10
20 + 61 + 22
20 + 61 + 22
e2 =
10
10
20 + 21 + 62
20 + 21 + 62
e3 =
10
10
0 + 1 + 2
0 + 1 + 2
e4 =
3
3
e2
4
X
28
1. k k1 1
2. k k2 1
3. k k 1
k k k k2 k k1
Dada una matriz de dimensin , se podra
definir su norma considerando la matriz como un vector
de dimensin . Sin embargo, resulta ms til definir
la norma de una matriz subordinndola a la norma de un
vector de la siguiente manera:
k k= 0 si y slo si = 0
k k=| |k k para todo y
k + kk k + k k para todo
k k= sup
6=0
k k
kk
La propiedad fundamental que verifica una norma matricial definida de esta forma es la siguiente:
k k =
=1
| |
Teorema 17 Sea una matriz y k k una norma vectorial. Entonces, para cualquier vector se verifica que
k kk k k k
! 1
k k
k k
kk
k k = max | |
29
= 1 1 + 2 2 + +
Al hacer y puesto que los son autovectores,
obtenemos que
= 1 1 1 + 2 2 2 + +
Como los autovectores son ortonormales, se cumple
() =| |
que
q
k k2 = ( 1 )2 + + ( )2
q
2
2
k k2 = (1 1 ) + + ( )
Y, por tanto,
Definicin 8 Se define el radio espectral de una matriz
como
k k2
()
k k2
() = max{| | : }
1 1 0
1 1 0
0 0 2
Teorema 19 Si los autovectores de una matriz de dimensin forman una base ortonormal de , entonces
k k2 = ()
=1
( ) ( ) =
P
k k = max
|
0 6=
1 =
k k2 ()
1 0
=
1 1
Dado que el teorema anterior determina la desigualdad en el otro sentido, tendramos la igualdad, y por tanto
el resultado del Teorema. Sea un vector cualquiera.
Puesto que posee una base ortonormal de autovectores
30
Teorema 23 Si definimos
() =k k k 1 k
entonces
Demostracin: Como ( + ) = + y = se
obtiene que = de donde = 1 y, por tanto,
kk 1 kk
kk = kk kk kk
de donde obtenemos que
1
kk
kk
kk
10 7 8 7
32
7 5 6 5 23
8 6 10 9 = 33
7 5 9 10
31
As, multiplicando esta desigualdad con la anteriormente obtenida para kk concluimos la demostracin
del teorema.
Problema 84 (2 puntos) Demostrar que, si los autovectores de una matriz de dimensin forman una base
ortonormal de entonces, para la norma 2 se cumple
que
max {| |}
() =k k2 k 1 k2 =
min {| |}
10
7
8
7
7 8 7
5 6 5
6 10 9
5 9 10
k k
k k
()
kk
kk
321
229
=
331
309
() =
3029
= 3029
001
2 2 2
= 2 1 1
2 1 1
2 1 0
= 1 2 1
0 1 2
donde () es un nmero que llamaremos condicionamiento de la matriz. Obviamente, cuanto ms pequeo sea () mejor comportamiento numrico tendr
la matriz
31
Mtodo de Jacobi.
Es decir,
cot(2) =
2 1 0
1 2 1
0 1 2
1 1
=
1 1
cot(2) =
1 0
0
0
0
0 0
0 1
0
cos
sin 0
0
() =
0
0 sin cos 0
1 0
0 0
0
0
0
0 1
Para evitar tener que evaluar funciones trigonomtricas, que son costosas computacionalmente, y simplificar el algoritmo, podemos apoyarnos en las igualdades
trigonomtricas dadas en el siguiente problema:
Problema 88 (3 puntos) Demostrar las siguientes
igualdades trigonomtricas:
q
tan() = cot(2) + (cot(2)) 1 + cot2 (2)
donde 4 4 , () = 1 si 0 y () = 1
si 0
0
0
0
y al hacer la operacin 12
12 obtenemos
10
0
707 107
0
30
707 107
707 107 707 107
20
(22 11 )
=0
212
1
12 0
2
1
0
12 = 1
cos sin
=
sin cos
cos 2
( )
=
sin 2
2
1
p
1 + tan2 ()
sin = tan() cos
cos =
( )
sin 2 + cos 2
2
= cos2 + sin2 sin 2
cot(2) =
tan() + sin(2)
2 sin2 ()
El mtodo de Jacobi se basa en ir modificando la matriz mediante el procedimiento anterior, haciendo 0 los
elementos no diagonales mayores en mdulo. Para anular
un valor 0 basta con elegir tal que
( )
sin 2 + cos 2 = 0
2
32
=
=
=
=
=
0
tan()
+ tan()
cos sin 6=
sin + cos =
6
=
=
=
=
=
0
tan()
+ tan()
cos sin
sin + cos
FIN IF
= 1 (1 + )
=
PARA = 0 1 HACER
IF ( 6= AND 6= ) HACER
= ( )
( ) = ( ) = ( )
( ) = ( ) = + ( )
FIN IF
FIN PARA
( ) = ( ) ( )
( ) = ( ) + ( )
( ) = ( ) = 0
FIN PARA
PROCEDIMIENTO TERMINADO INCORRECTAMENTE
NMERO DE ITERACIONES MXIMO EXCEDIDO
=
6
=
6
Veamos ahora cmo podemos calcular los autovectores. Al utilizar el mtodo de Jacobi, vamos transformando la matriz multiplicndola por una secuencia de
matrices de rotacin 1 de tal forma que
1
11 1 =
donde es una matriz diagonal que contiene los autovalores de en la diagonal. Denotemos por la matriz
= 1 Despejando de la anterior igualdad
obtenemos que
=
PARA = 0 1 HACER
=1
=0
= (( ))
PARA = 2 1 HACER
PARA = 0 1 HACER
IF (( )) HACER
= (( ))
=
=
FIN IF
FIN PARA
FIN PARA
IF HACER
PROCEDIMIENTO TERMINADO CORRECTAMENTE.
LOS AUTOVALORES SE ENCUENTRAN EN
LA DIAGONAL DE
SALIR
FIN IF
= (( ) ( ))(2 ( ))
IF 0 HACER
= (1 + )
ELSE
= + (1 + )
= cos() sin()
= sin() + cos()
= 1
= 1
2 0 1
= 0 1 0
1 0 1
33
0
2 2
1
1
1
2 2 2 2
2 +
0 1 6 0 0 0
1 0 2 7 0 0
6 2 0 3 8 0
4. =
0 7 3 0 4 9
0 0 8 4 0 5
0 0 0 9 5 0
Resultados:
0283 29
0745 57
002466 5
16 6
0191 25
0477 07
0314 8
1 X ( () ())
_ =
=1 ( ()) +
2 11
593 8
1 562 8
005 170
400 89
10
659 86
10 06
_ =
max _ (
)
=1
0273 98
0389 55
0524 54
0449 45
0525 54
0140 9
5 942
0556 95
0148 71
0576 44
0370 52
0186 62
0404 09
2 465
0674 87
0329 9
0222 33
008329 9
0386 41
0479 62
12 12
0224 49
0275 90
0407 79
0562 40
0307 86
0544 17
Nota: Obsrvese,
al comparar los resultados,
que los autovectores estn definidos mdulo la
multiplicacin por una constante.
Respecto al
_ (que denotaremos por
) los resultados deben ser los siguientes :
2 2 2
1. = 2 1 1
2 1 1
Resultado:
2
1
2 1
1
1
0
4 1 2
2 1 0
2. = 1 2 1
0 1 2
Resultado:
Precisin float
Error Ejemplo
Error Ejemplo
Error Ejemplo
Error Ejemplo
Error Ejemplo
Error Ejemplo
1 = 4 106
2 = 9 106
4 = 1 105
M_10 = 8 106
M_100 = 2 105
M_1000 = 9 105
Precisin double
Error Ejemplo 1 = 4 106
Error Ejemplo 2 = 9 106
Error Ejemplo 4 = 1 105
Error Ejemplo M_10 = 8 106
Error Ejemplo M_100 = 2 105
34
Mtodo de la potencia
|max |
Teorema 25 Sea una matriz que posee una base de autovectores tal que en mdulo su autovalor mximo max es
nico. Sea un vector 1 no ortogonal al subespacio engendrado por los autovectores del autovalor max , entonces, si
definimos la secuencia
=
1
1 1
1 1
max 1 + +
=
=
2
1 2
k2 1 k
max 1 + +
1 |max
1
|max |
max |
= |max |
2
2
1 max
1 + + |max |
|max |
cociente es 1 si max es positivo, o (1) si max es negativo. Por tanto, para suficientemente grande el signo de
max coincide con el signo del producto escalar ( 1 )
Adems
1
k 1 k
se verifica que
k k =
1 max
1 k k= max
|max |
|max |
=
= |max |
2
max
max
1 |max |
1 + + |max |
k k
= |max |
1
0 y
= 1 si 1
0
y por tanto
1
k k= max
1
k1 1 k
Problema 91 (3 puntos) Aplicar el mtodo de la potencia para aproximar el autovalor mximo y el autovector asociado de las siguientes matrices, realizando 3 iteraciones en el mtodo, hasta calcular 4 y partiendo de
1 = (1 1)
2 1
=
0 1
3 0
=
1 1
1
k2 1 k
= = k1 1 k =
k k
k1 1 k
2 1
k
1 1 + +
k1 1 + + k
1 1
+1
=
k k
El mtodo anterior tambin se puede utilizar para el clculo del autovalor de mdulo menor min teniendo en
cuenta que
El razonamiento anterior nos lleva al siguiente algoritmo general para calcular todos los autovectores y autovalores de una matriz cualquiera:
min =
max{0
1
1 }
1
k 1 k
verifica que
1
k k=
1
min
min
k k
Para calcular el polinomio caracterstico se puede proceder de la siguiente manera: Dada una matriz de dimensin se calcula kk1 ,lo cual es muy rpido pues
slo hay que sumar elementos de la matriz y calcular su
mximo, como todos los autovalores de cumplen que
| | kk1 ello significa que todos los autovalores estan en el intervalo [ kk1 kk1 ] Elegimos a continuacin
+ 1 valores equidistribuidos en [ kk1 kk1 ]. Para
cada uno de esos valores tenemos que
1
=
k 1 k
2 1
y el autovector correspondiente de la matriz
1 1
utilizando el mtodo de la potencia, realizando 2 iteraciones del mtodo a partir de 1 = (1 1) y tomando como
norma kk = max | |.
1
| | =
+ + 0
+ 1
0 0 1 1
| 0 |
1 1 1 | 1 |
1
1
| |
0
1
Problema 93 (2 puntos) Utilizar el mtodo de la potencia inversa para aproximar el autovalor menor de la
matriz
2 1
=
0 3
Llegar hasta 3 partiendo de = (1 1)
El mtodo de la potencia directa e inversa nos permite calcular el autovalor ms grande y ms pequeo de
una matriz. Ahora bien para calcular los autovalores que
se encuentren entre min y max necesitamos informacin
adicional como puede ser tener una aproximacin del autovalor buscado. Por ejemplo si es una aproximacin del
autovalor de tal forma que se encuentre ms cercano
a que a cualquier otro autovalor, podemos construir la
matriz 0 = Si llamamos 0min al autovalor ms
pequeo de 0 se cumple que
0 1 0
0 3 1
0 0 1
Para ello, calcular dos iteraciones del mtodo de la
potencia inversa partiendo de 1 = (1 1 1)
= ( )
= 0min
0
de donde despejando
= (0min + )
36
0 12 0
2
= 12 0 12 = 0
1
0 12 0
2
= 1 +
= +
Existen diferentes mtodos para convertir un sistema
de la forma = en una ecuacin de punto fijo =
+ . Todas se basan en descomponer de la forma
= + + donde es la matriz diagonal que corresponde a la parte diagonal de , es la matriz triangular
inferior que corresponde a la parte de situada por debajo de la diagonal, y es la matriz triangular superior
que corresponde a la parte de situada por encima de la
diagonal
= 1
= 0
= 1
1+
2
+
2
1+
2
Mtodo de Jacobi
Este mtodo consiste en tomar
Hacer iteraciones de esta ecuacin de punto fijo consiste en partir de una aproximacin inicial (1 1 1 ) y
hacer iteraciones de la forma
1 + 1
2
1 + 1
2
1 + 1
2
1 1
+ 1
12 1
2
11
23 1
2 1
+ 2
21 1
1
3
=
22
1 1
2 1
1 1
1
2
1 +
=
= 1 ( )
= 1
1+0
1
=
2
2
0+0
=0
2
1+0
1
=
2
2
.
Problema 95 (2 puntos) Calcular 3 iteraciones del
mtodo de Jacobi para resolver el sistema
1 1 0
1
1 2 0 = 3
0 1 3
05
84
98
3 = 025 8 = 73 17 = 96
05
84
98
partiendo de 1 = (0 0 0)
Mtodo de Gauss-Seidel
5
976 56
3 = 25 8 = 976 56
625
988 28
= ( + )1 ( )
= ( + )
Problema 96 (2 puntos)
Calcular
1 0
de autovectores de la matriz 0 2
1 0
1 1
+ 1
12 1
2
11
2 1
+ 2
21 1 23 1
3
=
22
1 1 2 2 1 1 +
=
=
1 1 0
1
1 2 0 = 3
0 1 3
partiendo de 1 = (0 0 0)
Mtodo de relajacin
El objetivo de este mtodo es intentar mejorar el mtodo
de Gauss-Seidel introduciendo un parmetro de relajacin
Se toman, en este caso,
= 1
= 0
= 1
1 + 1
2
+ 1
2
1 +
2
1
2
((1 ) )
= ( + )
Estas nuevas matrices permiten realizar un promediado entre el resultado obtenido por Gauss-Seidel y el
estado de la solucin en la etapa anterior, de la forma
siguiente:
= ( + )
1 1
+ 1
12 1
2
+ (1 )1
1
11
1
21 1 2 + 2
=
+ (1 )1
2
22
1 1 1 1 +
=
+ (1 )1
La eleccin del parmetro es, en general, un problema difcil. Sin embargo, en el caso de matrices tridiagonales, es decir, matrices con todos los elementos nulos
salvo la diagonal principal y sus codiagonales, el siguiente
resultado muestra la forma de calcular el valor ptimo de
.
1+0
1
=
2
2
1
1
2 +0
=
2
4
1 + 14
5
=
2
8
2
p
1 + 1 ( )2
= (1 ) = 1 (1 )
Ejemplo 20 Vamos aplicar el mtodo de relajacin al sistema del ejemplo anterior, es decir
2
+ 2
+ 2
= 1
= 0
= 1
Demostracin: En primer lugar, observamos que las matrices + y (1) son matrices triangulares y,
por tanto, su determinante es el producto de los elementos
diagonales. Adems, teniendo en cuenta que el determinante del producto de dos matrices es el producto de sus
determinantes y que el determinante de la matriz inversa
es el inverso del determinante, obtenemos que
En este caso, ( ) = 12 y = 1 17 Las iteraciones del mtodo de relajacin aplicado a este sistema
consisten en
1 + 1
+ (1 )1
2
+ 1
=
+ (1 )1
2
1 +
=
+ (1 )1
2
=
| | =
585
686
999
2 = 342 3 = 802 8 = 999
785
921
999
1 1 0
1
1 2 0 = 3
0 1 3
o
| |
6=
| |
0
12
13
1
11
11
11
21
0
23
22
22
22
12
11
0
1
11 11
1 1
1
2
1
|(1 ) |
(1 )
=
|( + )|
1 1
39
1 1 0
1
1. 1 2 0 = 3
0 1 3
2 1 0
1
2. 1 2 1 = 0
0 1 2
| |
X
6=
1 3 3
7
3. 3 1 3 = 7
3 3 1
| |
2 1 0
1 2 1
0 1 2
Precision float
Ejemplo
1
1
1
1.2
2
1
2
1.25
3
1
3
M_10
1
M_10
1.7
M_100
1
M_100
1.95
Problema 100 (2 puntos) Demostrar que, si una matriz verifica que por filas o columnas su suma es siempre
igual a 0, entonces el determinante de es cero, y por
tanto el sistema asociado a no tiene solucin.
N Iter
14
8
12
8
139
36
3322
293
Error
105
106
105
105
NO sol.
NO sol
104
104
103
103
Precision double
Ejemplo
1
1
2
2
3
3
M_10
M_10
M_100
M_100
40
1
1.2
1
1.2
1
N Iter
43
20
41
20
1
1.7
1
1.95
634
83
max
1431
Error
1014
1015
1014
1015
NO sol.
NO sol
1013
1013
1012
Error
1018
1018
1017
1018
NO sol.
NO sol
1016
1016
1015
2 2 + 1 = 0
2 = 0
La matriz gradiente de esta funcin viene dada por
2 2
( ) =
2 2
Tomemos como aproximacin inicial 1 = (1 1) El sistema que hay que resolver para pasar de una iteracin a
otra es
2 2
1
2 + 1
=
2
2 2
2
2 2
1
1
=
2 2
2
2
3 1
que tiene por solucin 4 4 Por tanto, 2 viene dado
por
3 1
1
4
2
4
=
+
=
3
1
14
4
2 + 2 + = 0
2 + = 0
2 2
1
1
1
32
34 + 1
2
4
=
3
1
6
2
2
2
16
9
3
cuya solucin es 13
40 40 . Por tanto, viene dado por
1 13
3
40
40
4
+
=
3 =
3
9
39
(1 ) = 0
partiendo de ( ) = (1 1)
Problema 103 (2 puntos) Plantear el algoritmo necesario para calcular, utilizando el mtodo de NewtonRaphson, las races complejas o reales de un polinomio de
grado 3
= (0 )
= 0 +
40
() = (0 ) + (0 ) 0 + O k 0 k2
(0 )
1
40
= ( )
= +
0 () =
partiendo de ( ) = (1 1 1)
INTERPOLACIN DE FUNCIONES II
Ejemplo 24
Esta seccin es la continuacin natural del tema interpolacin de funciones visto anteriormente. Por motivos de
coordinacin entre los programas terico y prctico de la
asignatura, el tema de interpolacin de funciones se dividi
en dos partes, siendo sta la segunda parte.
y6
Interpolacin de Hermite.
En ocasiones, resulta de inters interpolar no slo el valor
de la funcin en ciertos puntos { }=0 sino tambin
el valor de sus derivadas. Un ejemplo clsico de ello es
el desarrollo de Taylor de una funcin en un punto . En
este caso, aproximamos () por un polinomio de grado ,
() tal que () y () poseen las mismas derivadas
en el punto desde el orden 0 hasta el orden
-5
0 ()
) ()
( ) + +
( )
1!
!
El error de interpolacin viene dado por la frmula
-4
-3
-2
-1
() = () +
Para evitar este problema de oscilaciones de los polinomios de Lagrange, cuando se trabaja con muchos puntos
de interpolacin, se suele interpolar la funcin utilizando
polinomios a trozos, definiendo un polinomio distinto para
cada intervalo [ +1 ] La tcnica ms conocida es la
interpolacin por splines cbicos, que son polinomios de
grado 3 Por tanto, tendremos un polinomio de grado 3 distinto 3 () = ( )3 + ( )2 + ( ) + para
cada intervalo [ +1 ] Si hay +1 puntos, el nmero de
polinomios es Para definir estos polinomios, se imponen
las siguientes condiciones:
+1)
()
( )+1
( + 1)!
donde es un valor intermedio entre y En el caso
general, donde buscamos un polinomio () tal que l y
todas sus derivadas hasta un cierto orden coincidan con
una funcin () en los puntos { }=0 , se utilizan los
denominados polinomios base de Hermite () que son
polinomios de grado menor o igual que ( + 1)( + 1) 1
dados por las siguientes condiciones:
1 = =
(
)
=
0
6= 6=
() () =
3 ( ) = ( ) = 0 1
3 (+1 ) = (+1 ) = 0 1
A partir de los polinomios base de Hermite, el polinomio interpolador de Hermite se define como:
() =
X
=0 =0
3
(+1 ) =
2 3
(+1 ) =
2
( ) ()
3+1
(+1 ) = 0 2
+1
2 3
(+1 ) = 0 2
2
=
Vamos a introducir la notacin
+1 Ntese que, para definir los polinomios, tenemos que buscar 4 valores, es decir:
0 1 0 1 0 1 0 1
= ( ) = 0
+1
=
= 0 1
3
+1
(2 + +1 )
=
1 1 +2(1 + ) + +1 =
30
(0 ) = 0 ()
3 1
( ) = 0 ()
= 0 1
para = 1 1
Demostracin De la condicin 3 ( ) = ( ) se obtiene de forma inmediata que = ( ) De la condicin
2 3+1
2 (+1 )
2 3
2 (+1 )
0 () =
3(+1 ) 3 ( 1 )
1 0 0
(20 + 1 )
0
3
1 1
(2 1 + )
1
3
se obtiene que
2+1 = 6 + 2
de donde, despejando, obtenemos que
Ejemplo 25 Vamos a calcular los polinomios interpoladores utilizando splines cbicos al interpolar la funcin
() en los puntos = 0 1 2 y 3 sabiendo que (0) = 0
(1) = 1 (2) = 0 (3) = 2 tomando 0 = 3 = 0 En
este caso = 1. Debemos definir 3 polinomios distintos
que corresponden a los intervalos [0 1] [1 2] y [2 3] Los
trminos vienen dados por
+1
=
3
De la Condicin 3 (+1 ) = (+1 ) se obtiene que
3 + 2 + + = +1
Despejando, obtenemos que
0
0
1 1
2 = 0
2
3
+1
2 =
+1
(2 + +1 )
Finalmente, de la condicin
obtiene que
3
( )
31
( )
se
= 31 21 + 21 1 + 1
3(+1 ) 3 ( 1 )
4 1
1
6
Ejemplo 26
=
1
1 4
9
2
cuya
solucin
es
1
22
=
28
2
es
2 30
(0 ) = 0
2
2 3 1
( ) = 0
2
43
22 0
= 0733
3
28 + 22
= 1667
3
0 28
= 0933
3
0
1
2
22
= 1733
3
44 + 28
= 1
= 0467
3
56 + 0
= 2
= 0133
3
= 1
y
4
2
0
-2
0 () = 0733 + 1733
-4
Ejemplo 28
sin()
cuya grfica es
3
2
1.0
0.8
0.6
0.4
0.2
-1
-50
como puede observarse, tampoco sobre la derivada se aprecian los puntos de unin de los polinomios. Sin embargo,
sobre la grfica de la derivada segunda los puntos de unin
se detectan en los lugares donde encontramos un pico, tal
y como se muestra en la grfica de la derivada segunda
siguiente:
-40
-30
-20
-10
10
20
30
-0.2
40
50
44
sin( )
( )
=
= 0
de 0
interviene
Problema 108 (2 puntos) Calcular la funcin que interpola, utilizando la funcin sin () la funcin () =
sin() en los puntos = 2 0 2
La interpolacin
trigonomtricos.
cuya grfica es
travs
1.5
1.0
()
0.5
X
()
( ) =
5
() = ( 1) + ( 1)( 2)
6
()
2
( ) =
()
= 0
con lo que el resultado del teorema sale de forma inmediata, teniendo en cuenta que
Z
2 =
=
0 6=
1.5
1.0
0.5
0.0
donde son coeficientes, en general complejos. El siguiente resultado determina la forma de calcular dichos coeficientes :
polinomios
La base de la transformada de Fourier discreta es la utilizacin de los polinomios trigonomtricos dados por la expresin
() =
2.0
0.0
de
1 [ 2 2 ]
() =
0
[ 2 2 ]
45
=1 2
=1
P
P
P 2 P
=1
=1
=1
=1
=
2
P 2 P
=1
=1
0 =
=
2R
2
()
1
1 = 1 =
=
2
R
()2
=0
2 = 2 =
2
R
3
()
1
=
3 = 3 =
2
3
( + ) = 0
( ) = 2
=1
1
2
2
cos(3)
3 () = + cos()
2
3
( + ) = 0
( ) = 2
=1
Ejemplo 32
y 1.0
0.8
0.6
0
1
2
3
0.4
0.2
-3
-2
-1
0
1
0
2
x
BIBLIOGRAFA BSICA
[Bu-Fa] Burden R., Faires D. Anlisis Numrico, Grupo
Editorial Iberoamrica 1985. Esta obra es un clsico del
Clculo Numrico, destaca por una exposicin simple y al
mismo tiempo clara, con mltiples ejemplos y una descripcin de los algoritmos bien diseada.
[Ci] Ciarlet P.G. Introduction lanalyse numrique
matricielle et loptimisation, Masson , 1990. Con un
exquisito rigor se abordan los temas bsicos del Anlisis
Numrico Matricial y mtodos de optimizacin, incluyendo
la resolucin de sistemas a travs de mtodos directos, iterativos y mtodos tipo gradiente, as como el clculo de
autovalores y vectores propios.
[Hi] Higham N. "Accuracy and Stability of Numerical Algorithms", SIAM, 1996 Esta obra, muy reciente, da
una visin general sobre los ltimos avances en Anlisis
Numrico, haciendo especial nfasis en la precisin de los
algoritmos numricos y en la propagacin de errores, tambin resulta de inters la descripcin de las aritmticas que
utilizan los ordenadores ms recientes como la aritmtica
Standard de I.E.E.E..
X
=1
( + )
sea mnima.
46