Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I Fundamentos Teóricos 1
1 Análisis de Errores 3
3 Interpolación Polinomial 35
3.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Polinomio interpolador de Lagrange . . . . . . . . . . . . . . . 36
3.3 Polinomio interpolador de Newton . . . . . . . . . . . . . . . . 41
3.4 Error en el polinomio de interpolación . . . . . . . . . . . . . 45
3.5 Interpolación a trozos . . . . . . . . . . . . . . . . . . . . . . . 48
3.5.1 Interpolación lineal a trozos . . . . . . . . . . . . . . . 48
3.5.2 Interpolación de Hermite . . . . . . . . . . . . . . . . . 50
3.5.3 Interpolación esplı́n cúbica . . . . . . . . . . . . . . . . 52
iii
iv ÍNDICE GENERAL
1
Capı́tulo 1
Análisis de Errores
Los Métodos Numéricos es la rama de las Matemáticas que tiene como ob-
jetivo el diseño y el desarrollo de procedimientos que permitan obtener de
manera efectiva soluciones numéricas aproximadas a problemas matemáticos
puesto que en multitud de ocasiones se carece de los métodos analı́ticos ex-
actos para la obtención de tales soluciones.
Por regla general estos métodos se basan en la discretización del pro-
blema y en la aplicación de sencillos algoritmos iterativos que dan lugar a
aproximaciones sucesivas a la solución.
Además, como en la mayor parte de los casos el número y magnitud de los
cálculos a realizar es muy grande, se hace preciso la utilización del ordenador
o de la calculadora para llevarlos a cabo con rapidez y eficacia.
Consecuentemente, la estructura que se sigue a la hora de resolver un
problema es la siguiente:
3
4 CAPÍTULO 1. ANÁLISIS DE ERRORES
Errores en los datos. Sobre este tipo de errores, si se dan, nada pode-
mos decir pues se deben a factores externos como son la precisión de los
instrumentos de medida, etc.
Dado que la mantisa es tal que 1 ≤ m < (10)2 , hace que la primera cifra de
m (la que se encuentra a la izquierda del punto) sea siempre 1 y dado que
éste será común a todas las mantisas no se guarda y, consecuentemente, los
23 bits dedicados a la mantisa representarán las 24 primeras cifras. Además
el rango del exponente se encuentra entre −127 y 128.
Consecuentemente, al usar palabras de 32 bits sólo se pueden representar
una cantidad finita de números: 232 − 224 = 4278190080 (obsérvese que no
serı́a 232 ya que el exponente +0 y el exponente −0 dan lugar a los mismos
números). A estos números, representables en el ordenador de manera exacta,
se les llamará números máquina.
A este tipo de representación se la denomina de precisión simple. En ge-
neral las computadoras también pueden trabajar con doble precisión en la que
para representar un número se emplean dos palabras (64 bits) distribuidos
como sigue: 1 bit para el signo, 11 bits para el exponente y 53 bits para la
mantisa.
Los errores que pueden aparecer en el ordenador cuando hace cálculo con
números almacenados pueden provenir de dos fuentes:
trabaja no son exactamente los de partida, sino que se trabaja con sus
redondeos. De esta forma el resultado de una operación con números
máquina no tiene porqué ser un número máquina y habrá, por lo tanto,
que redondearlo. Consecuentemente, la aritmética estándar en coma
flotante se desarrolla mediante operaciones ⊕, ª, ⊗, ®, tales que
x ⊕ y = r (x + y) , x ⊗ y = r (x × y) ,
x ª y = r (x − y) , x ® y = r (x ÷ y) ,
donde r (x) representa el redondeo de x. Para llevar a cabo una suma
o resta de dos números máquina se procede de la siguiente manera:
(a) Se igualan los exponentes al mayor de ambos.
(b) Se realiza la operación de forma exacta.
(c) Se normaliza el resultado (modificando, si es necesario, el expo-
nente de forma que la mantisa esté entre 1 y 2, es decir, de la
forma ±1.m × 2E ).
(d) Se redondea en caso de que sea necesario.
(e) Se normaliza si es necesario.
Para realizar la multiplicación o división de dos números no es necesario
igualar los exponentes, basta con multiplicar las dos mantisas y se
suman los dos exponentes, normalizando posteriormente el resultado y
redondeándolo si fuera necesario.
Hay que hacer notar que en algunas ocasiones se pueden producir situa-
ciones anómalas derivadas del hecho de estar trabajando con una pre-
cisión determinada. Por ejemplo si tomamos
x = +4.61903 · 10−1 , y = +3.21864 · 10−4 ,
entonces
x ⊕ y = 4.62224 · 10−1 .
Consecuentemente
(x ⊕ y) ª x = 3.21000 · 10−4 6= y.
Ejercicio Propuesto
Ejercicio 1. Calcular el código decimal y el código binario del número 3.75.
8 CAPÍTULO 1. ANÁLISIS DE ERRORES
Capı́tulo 2
Resolución de Ecuaciones en
una Variable
2.1 Introducción
En multitud de ocasiones surge el problema de la búsqueda de las soluciones
de una ecuación. En la mayor parte de los casos no se trata de una labor
sencilla ya que pocas son las ecuaciones para las que se conoce un método
exacto de cálculo de sus soluciones.
En nuestro estudio nos vamos a encontrar con dos tipos de ecuaciones:
ecuaciones algebraicas y ecuaciones trascendentes. Algunas ecuaciones alge-
braicas son, por ejemplo, las siguientes:
0 = x − 3,
0 = x2 − 2x + 1,
0 = x101 − x51 + x25 − x12 + x3 − x + 2.
Por otra parte, algunas ecuaciones trascendentes son, por ejemplo, estas
otras:
0 = ex − 2,
0 = ex + x,
0 = sen (x) − 1,
0 = sen(x) + x − 1.
9
10CAPÍTULO 2. RESOLUCIÓN DE ECUACIONES EN UNA VARIABLE
a+b
1. Se calcula el punto medio del intervalo [a, b]: c = .
2
Se estudia el valor de dicho punto medio:
a1 + b1
2. Se calcula el punto medio del intervalo [a1 , b1 ]: c1 = .
2
Se estudia el valor de dicho punto medio:
a2 + b2
3. Se calcula el punto medio del intervalo [a2 , b2 ]: c2 = .
2
Se estudia el valor de dicho punto medio:
4. . . .
b−a
< ε.
2k
1
< 10−3 ⇔ 1000 < 2k ⇔ k ≥ 10.
2k
k ak ck bk
0 0 0.5 1
1 0.5 0.75 1
2 0.5 0.625 0.75
3 0.5 0.5625 0.625
4 0.5625 0.59375 0.625
5 0.5625 0.578125 0.59375
6 0.5625 0.570313 0.578125
7 0.5625 0.566406 0.570313
8 0.566406 0.568359 0.570313
9 0.566406 0.567383 0.568359
1
√
434
− √314 − 10 < 0, luego la función y = F (x) es de la forma:
¾
F (−2) = 8 > 0
à [−2, −1]
F (−1) = −8 < 0
F (0) = −10 < 0
¾
F (1) = −10 < 0
à [1, 2]
F (2) = 4 > 0
Luego hay una raiz negativa en el intervalo [−2, −1] y una raiz positiva en
el intervalo [1, 2]. La que nos piden calcular es la negativa.
Dado que hemos de calcularla con una precisión de dos cifras decimales
exactas, entonces ε ≤ 0.5 · 10−3 (en general, si se requiere una precisión de m
cifras decimales exactas, entonces ε ≤ 0.5 · 10−(m+1) ), con lo que el número
de iteraciones necesarias viene dado por:
−1 + 2
< 0.5 · 10−3 ⇔ 2000 < 2k ⇔ k ≥ 11.
2k
k ak ck bk
0 −2 −1.5 −1
1 −2 −1.75 −1.5
2 −1.75 −1.625 −1.5
3 −1.75 −1.6875 −1.625
4 −1.75 −1.71875 −1.6875
5 −1.71875 −1.70313 −1.6875
6 −1.70313 −1.69531 −1.6875
7 −1.70313 −1.69922 −1.69531
8 −1.69922 −1.69727 −1.69531
9 −1.69922 −1.69824 −1.69727
10 −1.69824 −1.69775 −1.69727
Ejercicios Propuestos
y1 (x) = x2 − 1, x > 0,
y2 (x) = sen (x) , x > 0.
x2 − 1 = sen (x) ,
Como estamos suponiendo x > 0, dicha solución debe ser positiva. Busque-
mos pues, un intervalo que satisfaga el Teorema de Bolzano2 y que tenga
longitud 1. Ası́ probando:
F (0) = −1 < 0,
F (1) = −sen (1) ' −0.84 < 0,
F (2) = 3 − sen (2) ' 2.09 > 0,
1 + sen (x) p ¡ ¢
G1 (x) = , G2 (x) = 1 + sen (x), G3 (x) = arcsen x2 − 1 .
x
• Finalmente hemos de ver que G2 ([1, 2]) ⊂ [1, 2]. Demostrar ésto
es fácil a partir de los siguiente hechos:
p
Pues bien, una vez que hemos comprobado que y = G (x) = 1 + sen (x)
verifica las condiciones del Teorema de Banach, podemos aplicar el
método del punto fijo con cuatro iteraciones como pide el enunciado.
2.3. CÁLCULO DE LAS RAÍCES 25
(0.5)4
²≤ · 0.3570081 ' 4.4626 · 10−2 .
0.5
Si por el contrario usamos como semilla x0 = π/2, la cota del error cometido
al suponer x4 = 1.4094235 como solución aproximada de la ecuación es:
(0.5)4 ¯¯ π ¯¯
²≤ · ¯1 − ¯ ' 7.135 · 10−2 .
0.5 2
En la siguiente figura se observa la gráfica de la función y = x2 −1−sen (x)
junto con la raiz de la misma:
F (−1) = e + 1 > 0,
F (0) = 1 > 0,
1
F (1) = − 1 < 0.
e
Como se puede apreciar el intervalo [0, 1] satisface las condiciones del Teore-
ma de Bolzano y, consecuentemente, en él se encontrará la única raiz de la
ecuación.
En segundo lugar hemos de buscar una función y = G (x) que verifique
las condiciones del método del punto fijo. Podemos considerar:
y = G (x) = e−x .
2. Como
¯ ¯ 1
|G0 (x)| = ¯−e−x ¯ = x ≤ 1, ∀x ∈ [0, 1],
e
entonces la función no es contractiva en este intervalo, pues k = 1 y no
se puede encontrar una cota más pequeña. Consecuentemente, hemos
de buscar otro intervalo, ası́ probando:
F (0) = 1 > 0,
F (0.5) = e−0.5 − 0.5 ' 0.10653 > 0,
F (1) = e−1 − 1 < 0,
1 1
|G0 (x)| = < √ < 1,
ex e
ya que y = G0 (x) es
√ decreciente y positiva en [0.5, 1]. Luego es con-
tractiva con k = 1/ e.
2.3. CÁLCULO DE LAS RAÍCES 27
3. Veamos, por último, que G ([0.5, 1]) ⊂ [0.5, 1]. Como G0 (x) = −e−x <
0, entonces y = G (x) es decreciente. Además, dado que G (x) > 0, es
obvio que G (1) ≤ G (x) ≤ G (0.5), es decir:
1 1
≤ G (x) ≤ √ ,
e e
con lo que
· ¸
1 1
G ([0.5, 1]) = , √ = [0.3679, 0.6065] Ã [0.5, 1].
e e
Consecuentemente el intervalo que tenemos, [0.5, 1], no nos sirve pues
no se verifica esta última condición. Busquemos pues, otro. Como
µ ¶
1 1 1
F = e− 3 − ' 0.3832 > 0,
3 3
−1
F (1) = e − 1 < 0,
entonces en [ 13 , 1] se verifica el Teorema de Bolzano. Es fácil también
demostrar que la función es contractiva en él con k = e−1/3 , y además,
utilizando un argumento similar al anterior caso se tiene:
µ· ¸¶ · ¸ · ¸
1 1 1 1
G ,1 = , 1/3 ⊂ , 1 .
3 e e 3
£ ¤
Por lo tanto G (x) = e−x en 13 ,£1 verifica
¤ las condiciones del Teorema de
1
Banach, luego escogiendo un x0 ∈ 3 , 1 , se tendrá que Gn (x0 ) es la solución
aproximada requerida.
Ası́ pues tomando x0 = 1/3, es fácil ver que el número de iteraciones a
realizar para obtener la precisión dada en el enunciado es n ≥ 22, con lo que
un sencillo cálculo muestra que:
x22 = 0.567142.
Ejercicios Propuestos
Ejercicio 1. Dar un esquema del algoritmo del método del punto fijo suponien-
do que se usa la cota del error dada por la ecuación (2.2).
Ejercicio 2. Calcular la raiz negativa de F (x) = x4 − x − 10 = 0 con una
precisión de dos cifras decimales exactas.
√
Ejercicio 3. Calcular 7 con dos cifras decimales exactas usando el método
del punto fijo.
28CAPÍTULO 2. RESOLUCIÓN DE ECUACIONES EN UNA VARIABLE
Teorema. Sea y = F (x) una función tal que F ∈ C 2 ([a, b]), y además:
m ≤ |F 0 (x)| , (2.5)
M ≥ |F 00 (x)| , (2.6)
de tal forma que sendas cotas del error cometido al considerar a xn como
solución de la ecuación F (x) = 0 son, respectivamente:
|F (xn )|
ε ≤ , (2.7)
m
M
² ≤ (xn − xn−1 )2 . (2.8)
2m
Consecuentemente el algoritmo definido por el método de Newton-Raphson
para calcular la solución de y = F (x) en el intervalo [a, b] consiste en lo sigu-
iente:
0 = F 0 (x) = 5x4 + 5 ⇔ 0 = x4 + 1,
que no tiene solución en R, luego a lo sumo existe una única raiz real de
0 = F (x). Busquemos un intervalo en el que se verifique el Teorema de
Bolzano. Como
F (x) = x5 + 5x + 8,
F 0 (x) = 5x4 + 5,
F 00 (x) = 20x3 < 0 ∀x ∈ [−2, −1].
Ahora hemos de buscar un punto x0 ∈ [−2, −1] tal que F (x0 )·F 00 (x0 ) > 0.
Para ello basta con tomar x0 = −2.
30CAPÍTULO 2. RESOLUCIÓN DE ECUACIONES EN UNA VARIABLE
x0 = −2 ⇒ |F (−2)| = 34 ≮ 10−2 ,
F (x0 )
x1 = x0 − = −1.6 ⇒ |F (−1.6)| ' 10.48 ≮ 10−2 ,
F 0 (x0 )
F (x1 )
x2 = x1 − 0 = −1.3224 ⇒ |F (−1.3224)| ' 2.65 ≮ 10−2 ,
F (x1 )
F (x2 )
x3 = x2 − 0 = −1.1915 ⇒ |F (−1.1915)| ' 0.36 ≮ 10−2 ,
F (x2 )
F (x3 )
x4 = x3 − 0 = −1.1677 ⇒ |F (−1.1677)| ' 0.9 · 10−3 < 10−2 .
F (x3 )
−1 − (−2) −3 1
≤ 10 ⇔ ≤ 10−3 ⇔ 103 ≤ 2n ⇔ n ≥ 10.
2n 2n
√
Ejemplo 8. Calcula 1 + 3 con un error inferior a 10−4 usando el método
de Newton-Raphson.
2.3. CÁLCULO DE LAS RAÍCES 31
√ √
Para calcular 1 + 3 serı́a suficiente con que calculáramos 3 pues bas-
tarı́a con sumarle un 1 al resultado aproximado
√ obtenido para conseguir el
objetivo deseado. Ası́ pues, es obvio que 3 es la raiz positiva de la ecuación
0 = F (x) = x2 − 3.
√
Sabemos que 3 ∈ [1.5, 2] y que este intervalo satisface el Teorema de
Bolzano. Además:
Por otra parte, la constate m que nos da una cota del error es m = F 0 (1.5) =
3 ya que F 0 (x) = 2x es positiva y creciente en [1.5, 2]. Ası́ pues:
|F (xn )|
²≤ ≤ 10−4 ⇔ |F (xn )| ≤ 3 · 10−4 .
3
Consecuentemente:
x0 = 2 ⇒ |F (2)| = 1 ≮ 3 · 10−4 ,
F (x0 )
x1 = x0 − = 1.75 ⇒ |F (1.75)| ' 6.25 · 10−2 ≮ 3 · 10−4 ,
F 0 (x0 )
F (x1 )
x2 = x1 − 0 = 1.73214 ⇒ |F (1.73214)| ' 3.19 · 10−4 ≮ 3 · 10−4 ,
F (x1 )
F (x2 )
x3 = x2 − 0 = 1.73205 ⇒ |F (1.73205)| ' 2.79 · 10−6 < 3 · 10−4 .
F (x2 )
32CAPÍTULO 2. RESOLUCIÓN DE ECUACIONES EN UNA VARIABLE
Como:
ex > 0, ∀x ∈ (0, ∞) ,
log (x) < 0, ∀x ∈ (0, 1) , log (x) ≥ 0, ∀x ∈ [1, ∞),
1
> 0, ∀x ∈ (0, ∞) ,
x
3x2 > 0, ∀x ∈ (0, ∞) ,
existe uno, log (x), que toma valores negativos. Si demostramos que h (x) =
log (x) + x1 es positivo en (0, 1), habremos acabado. Ası́ dado que
1 1 x−1
h0 (x) = − 2 = < 0, ∀x ∈ (0, 1) ,
x x x2
entonces h (x) es decreciente en (0, 1), y como h (1) = 1 > 0, se tendrá que
h (x) > 0, ∀x ∈ (0, 1), con lo que se concluye. Luego consecuentemente, la
ecuación 0 = F (x) = ex log (x) + x3 − 2 posee una única raiz positiva que,
además, se encontrará en el intervalo [1, 2].
Ahora calcularemos dicha raiz usando el Método de Newton. Ası́ y en
primer lugar se tiene que para todo punto x ∈ [1, 2], se verifica:
µ ¶
00 x 2 1 2 1 2x − 1 2x − 1 1
F (x) = e log (x) + − 2 + 6x ≥ − 2 = 2
> ≥ > 0.
x x x x x 4 4
Ejercicios Propuestos
3.1 Introducción
En múltiples ocasiones nos encontraremos ante series finitas de datos, fruto
unas veces de mediciones experimentales y otras de valores tomados por
cierta función y = f (x), de la forma:
{(x0 , y0 ) , (x1 , y1 ) , . . . , (xn , yn )} ,
de tal manera que se necesite encontrar una “ley general” que sirva para
su tratamiento de manera sencilla. Dicha “ley general” a la que se adap-
tan los datos no es otra cosa que una cierta función que toma los valores
predeterminados.
Este es precisamente el objetivo de la interpolación: dada una tabla de
datos, se ha de encontrar una función que tome los valores requeridos en los
puntos dados; en el caso que nos ocupa, la función buscada será de carácter
polinómico. La tabla de datos puede proceder o bien de mediciones realizadas
experimentalmente, o bien de una función cuyos valores sólo se conocen en
ciertos puntos.
35
36 CAPÍTULO 3. INTERPOLACIÓN POLINOMIAL
x x0 x1 ... xn
y y0 y1 ... yn
(x − x0 ) · (x − x1 ) · . . . · (x − xi−1 ) · (x − xi+1 ) · . . . · (x − xn )
Li (x) = .
(xi − x0 ) · (xi − x1 ) · . . . · (xi − xi−1 ) · (xi − xi+1 ) · . . . · (xi − xn )
Este método para el cálculo del polinomio interpolador tiene dos incon-
venientes: las operaciones que hay que realizar para calcularlo son muchas
y no se pueden aprovechar dichas cuentas si introducimos un nuevo punto
(xn+1 , yn+1 ) en la tabla de datos, debiéndose calcular desde el principio todos
los coeficientes Li (x).
3.2. POLINOMIO INTERPOLADOR DE LAGRANGE 37
x −1 0 1 2
y −2 −2 0 4
donde:
(x − x1 ) · (x − x2 ) · (x − x3 )
L0 (x) =
(x0 − x1 ) · (x0 − x2 ) · (x0 − x3 )
(x) · (x − 1) · (x − 2) x3 − 3x2 + 2x
= =− ,
(−1 − 0) · (−1 − 1) · (−1 − 2) 6
(x − x0 ) · (x − x2 ) · (x − x3 )
L1 (x) =
(x1 − x0 ) · (x1 − x2 ) · (x1 − x3 )
(x + 1) · (x − 1) · (x − 2) x3 − 2x2 − x + 2
= = ,
(0 + 1) · (0 − 1) · (0 − 2) 2
(x − x0 ) · (x − x1 ) · (x − x3 )
L2 (x) =
(x2 − x0 ) · (x2 − x1 ) · (x2 − x3 )
(x + 1) · (x) · (x − 2) x3 − x2 − 2x
= =− ,
(1 + 1) · (1 − 0) · (1 − 2) 2
(x − x0 ) · (x − x1 ) · (x − x2 )
L3 (x) =
(x3 − x0 ) · (x3 − x1 ) · (x3 − x2 )
(x + 1) · (x) · (x − 1) x3 − x
= = .
(2 + 1) · (2 − 0) · (2 − 1) 6
Consecuentemente:
x3 − 3x2 + 2x ¡ 3 ¢ 2¡ 3 ¢
P3 (x) = − x − 2x2 − x + 2 + x −x
3 3
= x2 + x − 2.
Ejemplo 12. Dada la función f (x) = cos (πx), hallar el polinomio que
interpola a f en los puntos {0, 0.5, 1, 1.5}.
La tabla de datos que se tendrá en este caso es la siguiente:
x 0 0.5 1 1.5
y 1 0 −1 0
X
3
P3 (x) = Li (x) yi ,
i=0
donde:
de manera que:
Ejercicios Propuestos
x −1 1 2
y 2 1 2
2
Ejercicio 2. Aproximar la función y = ex en el intervalo [0, 2] mediante
un polinomio de grado 2 sabiendo que toma los siguientes valores:
x 0 1 2
y 1 2.718 54.598
√
Estimar, usando dicho polinomio, el valor de 4 e y compararlo con el valor
obtenido por medio de la calculadora o el ordenador.
x −2 −1 0 1 2
y 2 −2 −2 0 4
2
Este problema se ha sacado del libro “ Cálculo I. Teorı́a y problemas de
Análisis Matemático en una variable”, de G. Rodrı́guez et al., 2a ed., Ed. CLAGSA.
3.3. POLINOMIO INTERPOLADOR DE NEWTON 43
y1 − y0
y01 =
x1 − x0
y12 − y01
y012 =
x2 − x0
y2 − y1 y123 − y012
y12 = y0123 =
x2 − x1 x3 − x0
y23 − y12 y1234 − y0123
y123 = y01234 =
x3 − x1 x4 − x0
y3 − y2 y234 − y123
y23 = y1234 =
x3 − x2 x4 − x1
y34 − y23
y234 =
x4 − x2
y4 − y3
y34 =
x4 − x3
P4 (x) = 2 − 4 (x + 2) + 2 (x + 2) (x + 1)
1 1
− (x + 2) (x + 1) x + (x + 2) (x + 1) x (x − 1)
3 12
7 11 1 1
= −2 + x + x2 − x3 + x4 .
6 12 6 12
x 0 0.5 1 1.5
y 1 0 −1 0
Ejercicios Propuestos
x −1 1 2
y 2 1 2
x 0 1 2
y 1 2.718 54.598
√
Estimar, usando dicho polinomio, el valor de 4 e y compararlo con el valor
obtenido por medio de la interpolación de Lagrange.
f (n+1) (δ x ) Y
n
f (x) − Pn (x) = (x − xi ) .
(n + 1)! i=0
¯ ¯
Además, si ¯f (n+1) (x)¯ ≤ M para todo x ∈ (a, b), se tiene la siguiente cota
para el error:
¯ n ¯
M ¯¯Y ¯
¯
|f (x) − Pn (x)| = ¯ (x − xi )¯ .
(n + 1)! ¯ i=0
¯
Ejemplo 15. Para funciones del tipo y = f (x) = sen (x) ó y = f (x) = ex ,
se verifica que al aumentar
¯ (n+1) el ¯número de puntos n, el error disminuye ya que
la cota superior de ¯f (x)¯ tiende hacia 0 cuando n tiende hacia infinito.
Veámoslo. Si tomamos por ejemplo f (x) = sen (x), se obtiene:
©¯ ¯ ª
max ¯f (n+1) (x)¯ : x ∈ [a, b]
lim = 0,
n→∞ (n + 1)!
ya que
1
lim = 0,
n→∞ (n + 1)!
¯ ¯
y ¯f (n+1) (x)¯ ≤ 1, puesto que
( n+1
(n+1) (−1) 2 sen (x) si n + 1 es par
f (x) = n−1
(−1) 2 cos (x) si n + 1 es impar
3.4. ERROR EN EL POLINOMIO DE INTERPOLACIÓN 47
Ejemplo 16. Calcular una cota del error que se comete al aproximar en el
intervalo [−1, 1] la función f (x) = ex por el polinomio interpolador en los
puntos −1, 0, 1.
El polinomio interpolador de Newton que pasa por estos tres puntos es
de grado 2, P2 (x), y una cota del error cometido es la siguiente:
M M ¯¯ 3 ¯
|f (x) − P2 (x)| ≤ |(x + 1) x (x − 1)| = x − x¯ ,
3! 6
donde |f 000 (x)| ≤ M para todo x ∈ (−1, 1). Ası́, dado que f 000 (x) = ex e
y = f 000 (x) es una función creciente en (−1, 1), entonces |f 000 (x)| ≤ f 000 (1) = e
para todo x ∈ (−1, 1). Consecuentemente se tendrá:
¯ ¯
e ¯¯ 3 ¯ ¯ e (x3 − x) ¯
¯ ¯ ¯.
|f (x) − P2 (x)| ≤ x − x = ¯ ¯
6 6
Por otra parte, como
e (x3 − x)
y = g (x) =
6
√ √
posee un máximo en el punto − 3/3, un mı́nimo en 3/3, y además
¯ Ã √ !¯ ¯ Ã √ !¯ √
¯ 3 ¯¯ ¯¯ 3 ¯¯ 3
¯
¯g − ¯ = ¯g ¯=e ,
¯ 3 ¯ ¯ 3 ¯ 27
entonces:
¯ ¯ √
¯ e (x3 − x) ¯ e 3
¯ ¯≤ ∀x ∈ (−1, 1) ,
¯ 6 ¯ 27
con lo que
|f (x) − P2 (x)| < 0.2.
Ejercicios Propuestos
Ejercicio 2. Calcular una cota del error que se comete al utilizar el poli-
nomio de Newton de grado 2 que interpola la función f (x) = 1/x en los
puntos x0 = 2, x1 = 2.5 y x2 = 4.
48 CAPÍTULO 3. INTERPOLACIÓN POLINOMIAL
Este error se puede hacer tan pequeño como se quiera sin más que elegir
los puntos lo suficientemente próximos entre sı́ y siempre que f 00 (x) esté
acotada en [a, b]. La desventaja de este método radica en el hecho de la
no diferenciabilidad en los extremos de los diferentes subintervalos ya que
a menudo las condiciones fı́sicas requieren de esa condición, esto es, que la
función que aproxima sea continuamente diferenciable.
1. En [−π, −π/2] los extremos son (−π, −1) y (−π/2, 0), luego la recta
que los une es
x+π y+1
π = ,
−2 + π 0+1
con lo que el polinomio buscado es:
2
y = P0 (x) = x + 1.
π
2. En [−π/2, 0] los extremos son (−π/2, 0) y (0, 1), luego la recta que los
une es
x + π2 y−0
π = ,
0+ 2 1−0
con lo que el polinomio buscado es:
2
y = P1 (x) = x + 1.
π
3. En [0, π/2] los extremos son (0, 1) y (π/2, 0), luego la recta que los une
es
x−0 y−1
π = ,
2
−0 0−1
con lo que el polinomio buscado es:
2
y = P2 (x) = − x + 1.
π
cuyas variables son los coeficientes del polinomio P (x), esto es ai con 0 ≤
i ≤ 9. La solución del mismo es:
a0 = 1, a1 = a3 = a5 = a7 = a9 = 0,
Ejercicios Propuestos
y = Pi (x) = ai + bi x + ci x2 + di x3 ,
x a = x0 x1 ... b = xn
y y0 y1 ... yn
se define un esplı́n cúbico para dicha tabla como una función S : [a, b] → R
con las siguientes condiciones:
Consecuentemente:
S0 (x) si x ∈ [x0 , x1 ]
y = S (x) = .
.. ..
.
S
n−1 (x) si x ∈ [xn−1 , xn ]
Ejemplo 20. Determinar el esplı́n cúbico que interpola los valores siguientes:
x 0 1 2 3
y 1 0 0.5 1
y calcular S (0.5), S (1.5) y S 0 (3).3
Según (1), el esplı́n cúbico y = S (x) buscado debe ser de la forma:
S0 (x) si x ∈ [0, 1]
S (x) = S1 (x) si x ∈ [1, 2]
S2 (x) si x ∈ [2, 3]
donde
Si (x) = ai x3 + bi x2 + ci x + di , 0 ≤ i ≤ 2.
Ahora, imponiendo las condiciones (2)-(6) se obtiene el siguiente sistema de
ecuaciones:
1 = S0 (0) , 0 = S0 (1) , 0.5 = S1 (2) , 0.5 = S2 (2) , 1 = S2 (3)
S00 (1) = S10 (1) , S10 (2) = S20 (2)
0 = S000 (0) = S200 (3) , S000 (1) = S100 (1) , S100 (2) = S200 (2)
cuyas soluciones son las siguientes:
2 7
a1 = , b1 = 0, c1 = − , d1 = 1,
5 5
1 27 41 19
a2 = − , b2 = , c2 = − , d2 = ,
2 10 10 10
1 9 31 29
a3 = , b3 = − , c3 = , d3 = − .
10 10 10 10
Consecuentemente los polinomios buscados poseen las siguientes expresiones
explı́citas:
2 3 7
S0 (x) = x − x + 1,
5 5
1 3 27 2 41 19
S1 (x) = − x + x − x + ,
2 10 10 10
1 3 9 2 31 29
S2 (x) = x − x + x− .
10 10 10 10
3
Este problema se ha sacado del libro “ Cálculo I. Teorı́a y problemas de
Análisis Matemático en una variable”, de G. Rodrı́guez et al., 2a ed., Ed. CLAGSA.
56 CAPÍTULO 3. INTERPOLACIÓN POLINOMIAL
Por lo tanto:
7 11 2
S (0.5) = , S (1.5) = , S 0 (3) = .
20 80 5
Ejercicios Propuestos
x −1 1 2
y 2 1 2
Supongamos en primer lugar que los datos con los que contamos son una
tabla de puntos:
x a = x0 x1 ... b = xn
y y0 y1 ... yn
correspondientes a los valores que toma una cierta función, y = f (x), cuya
expresión desconocemos. Entonces una aproximación del valor f 0 (c), con
57
58 CAPÍTULO 4. DIFERENCIACIÓN E INTEGRACIÓN NUMÉRICA
M Y
n
0
ε = |f (xi ) − Pn0 (xi )| ≤ (xi − xj ) ,
(n + 1)! j=0
j6=i
¯ ¯
donde ¯f (n+1) (x)¯ ≤ M, para todo x ∈ [a, b].
Por otra parte, podrı́amos también utilizar el desarrollo de Taylor para
calcular f 0 (c) siempre y cuando conozcamos los valores de dicha función en
los puntos c y c + h. Ası́, utilizando el desarrollo de Taylor de segundo orden
obtenemos:
f 0 (c) f 00 (ξ) 2
f (c + h) = f (c) + h+ h, ξ ∈ [c, c + h].
1! 2!
Despejando el valor deseado, conseguimos:
f (c + h) − f (c) h 00
f 0 (c) = − f (ξ) ,
h 2
con lo que podemos poner:
f (c + h) − f (c)
f 0 (c) ' ,
h
siendo el error cometido:
¯ ¯
¯ h 00 ¯ h
¯
ε = ¯ f (ξ)¯¯ ≤ M, |f 00 (x)| ≤ M ∀x ∈ [c, c + h].
2 2
Se puede encontrar una fórmula más exacta para la derivada f 0 (c), siem-
pre y cuando se conozca el valor de la función en los puntos c − h, c y c + h.
En este caso, utilizando sendos desarrollos de Taylor de tercer orden:
y restándolos, se obtiene:
f 000 (ξ) + f 000 (η) 3
f (c + h) − f (c − h) = 2f 0 (c) h + h,
6
de donde podemos tomar:
f (c + h) − f (c − h)
f 0 (c) ' ,
2h
siendo el error cometido:
¯ 000 ¯ ¯ ¯
¯ f (ξ) + f 000 (η) 2 ¯ ¯ f 000 (δ) 2 ¯
ε = ¯¯ h ¯¯ = ¯¯ h ¯¯ , δ ∈ [ξ, η] ⊆ [c − h, c + h].
12 6
Nota. En esta última igualdad hemos aplicado el Teorema de los valores in-
termedios, según el cual si y = F (x) es una función continua en [a, b],
entonces toma todos los valores intermedios entre F (a) y F (b). En
particular, existirá un c ∈ [a, b], tal que
F (a) + F (b)
F (c) = .
2
Por lo tanto podemos poner que una cota del error es:
¯ 2 ¯
¯ h 000 ¯ h2
¯
ε = ¯ f (η)¯¯ ≤ M, |f 000 (x)| ≤ M ∀x ∈ [c − h, c + h].
6 6
Ejercicios Propuestos
Ejercicio 1. Dada la siguiente tabla de puntos correspondientes a una cierta
función y = f (x),
x −1 1 2
y 2 1 2
Calcular f 0 (1) y f 0 (0.5).
Ejercicio 2. Dada la siguiente tabla de puntos correspondientes a la función
y = f (x) = x2 + x,
x −1 0 1 2
y 0 0 2 6
Calcular f 0 (1) y f 0 (0.5). Estimar el error cometido en ambos casos.
Ejercicio 3. Demostrar que se tiene la siguiente aproximación para la se-
gunda derivada de una función, y = f (x) ,en un punto c:
f (c + h) − 2f (c) + f (c − h)
f 00 (c) ' ,
h2
¯ 4 ¯
¯ h (4) ¯ h4 ¯ (4) ¯
ε = ¯ f (η)¯¯ ≤ M,
¯ ¯f (x)¯ ≤ M ∀x ∈ [c − h, c + h].
12 12
Métodos de Newton-Côtes
Existen multitud de procedimientos basados en el esquema descrito anterior-
mente; no obstante en esta sección expondremos aquellos que estan basados
en el uso del polinomio interpolador, y = Pn (x), de la función y = f (x) en
los puntos x0 , . . . , xn , de tal forma que:
Z b Z b
f (x) dx ' Pn (x) dx.
a a
h3
ε≤ M, |f 00 (x)| ≤ M para todo x ∈ [a, b].
12
h5 ¯ (4) ¯
ε≤ M, ¯f (x)¯ ≤ M para todo x ∈ [a, b].
90
Ejemplo 22. Dada la función y = f (x), tal que f (0) = 1, f (1.5) = 0.5 y
f (3) = 1, calcular
Z 3
f (x) dx
0
(b − a)3
ε≤ M, |f 00 (x)| ≤ M para todo x ∈ [a, b].
12n2
donde
b−a
h= ,
n
y xj = a + jh con 0 ≤ j ≤ n. Una cota del error que se comete es la
siguiente:
(b − a)5 ¯ (4) ¯
¯f (x)¯ ≤ M para todo x ∈ [a, b].
ε≤ M,
180n4
x 0 1 2 3 4
y 1 0 0.5 1 1.5
Calcular
Z 4
f (x) dx
0
Ejercicios Propuestos
65
66 CAPÍTULO 5. RESOLUCIÓN NUMÉRICA DE EDOS
es decir, es el error cometido en cada paso (la diferencia entre el valor ex-
acto de la solución, suponiendo exacta la anterior aproximación, y el valor
aproximado).
Por regla general, el error global será mayor que la suma de los errores
locales, ya que en cada paso se comete un error local partiendo de unos
valores anteriores que ya no son exactos.
Una cota del error local que se comete con este método es:
h2 M
|ei | ≤ , M= sup |y 00 (ξ)| .
2 ξ∈(xi−1 ,xi )
Ejemplo 25. Usar el método de Euler para aproximar la solución del sigu-
iente PVI:
0 4x
y = −xy + , 0 ≤ x ≤ 1
y
y (0) = 1
con h = 0.25.1
Dado que h = 0.25, hemos de obtener los valores aproximados de la curva
solución y = y (x) en los puntos:
h2 00 hk
yi+1 = yi + hfi + f (xi , yi ) + . . . + f (k (xi , yi ) , (5.2)
2! k!
para todo 0 ≤ i ≤ n. Una cota para el error local cometido con este método
es la siguiente:
hk+1 M ¯ (k+1 ¯
|ei | ≤ , M= sup ¯y (ξ)¯ .
(k + 1)! ξ∈(xi−1 ,xi )
Ejemplo 26. Usar el método de Taylor de orden 2 con h = 0.1 para aprox-
imar la solución del PVI:2
½ 0
y = 1 + xsen (xy) , 0 ≤ x ≤ 0.5
y (0) = 0
Si hemos de usar el método de Taylor de orden 2, entonces la fórmula
(5.2) en nuestro caso particular será:
h2 0
yi+1 = yi + hf (xi , yi ) + f (xi , yi ) ,
2
donde:
Por otro lado, como h = 0.1, los puntos en los que hemos de aproximar la
solución son los siguientes:
yi+1 = yi + hΦ (xi , yi , h) , 0 ≤ i ≤ n − 1,
xi yi k1 k2 xi y (xi )
1 −1 1 0.834628 1 −1
1.1 −0908269 0.827193 0.700871 1.1 −0909091
1.2 −0.831865 0.695666 0.597 1.2 −0.833333
1.3 −0.767232 0.593249 0.514719 1.3 −0.769231
1.4 −0.711834 0.51195 0.448427 1.4 −0.714286
1.5 −0.663815 0.446338 0.394228 1.5 −0.666667
1.6 −0.621787 0.392623 0.349348 1.6 −0.625
1.7 −0.584688 0.348095 0.311764 1.7 −0.588235
1.8 −0.551695 0.310772 0.279975 1.8 −0.555556
1.9 −0.522158 0.279179 0.252847 1.9 −0.526316
2 −0.495557 2 −0.5
donde
k1 = f (xi , yi ) ,
µ ¶
h h
k2 = f xi + , yi + k1 ,
2 2
µ ¶
h h
k3 = f xi + , yi + k2 ,
2 2
k4 = f (xi+1 , yi + hk3 ) .
k1 = x2i − 3yi ,
2 − 3h 2 6 − 9h h2
k2 = xi + hxi + yi + ,
2 2 4
4 − 6h + 9h2 2 2h − 3h2 −12 − 18h + 27h2 2h2 − 3h3
k3 = xi + xi + yi + ,
4 2 4 8
2 −12h + 18h2 − 27h3 2 6h2 − 9h3
k4 = xi+1 − 3yi + xi − xi
4 2
36h + 54h2 − 81h3 6h3 − 9h4
+ yi − .
4 8
Consecuentemente, se obtiene el siguiente resultado:
xi yi k1 k2 k3 k4
0 1 −3 −2.5475 −2.61537 −2.20538
0.1 0.741147 −2.21344 −1.86892 −1.9206 −1.60726
0.2 0.551151 −1.61345 −1.34893 −1.38861 −1.14686
0.3 0.413894 −1.15168 −0.946429 −0.977217 −0.788516
0.4 0.317435
Por otra parte, la EDO del PVI del enunciado es lineal, luego existe un
procedimiento para el cálculo explı́cito de la solución exacta. Dicha solución
4
Este problema se ha sacado del libro “ Cálculo I. Teorı́a y problemas de
Análisis Matemático en una variable”, de G. Rodrı́guez et al., 2a ed., Ed. CLAGSA.
5.1. MÉTODOS DE PASO SIMPLE 73
es:
µ ¶
25 −3x 1 2 2 2
y (x) = e + x − x+ .
27 3 3 9
La tabla de valores de dicha solución exacta en los puntos para los que hemos
obtenido solución aproximada es:
xi y (xi )
0 1
0.1 0.741127
0.2 0.551121
0.3 0.413860
0.4 0.317402
Como se puede apreciar la solución aproximada dada por el método de Runge-
Kutta de orden 4 es bastante buena.
Ejercicios Propuestos
de tal forma que aplicando esta fórmula en el intervalo [xi−p , xi+1 ], se obtiene:
Z xi+1
yi+1 = yi−p + f (x, y (x)) dx.
xi−p
R xi+1
Ahora la expresión xi−p f (x, y (x)) dx se aproxima integrando el polinomio
interpolador de orden r, Pr (x), utilizando la tabla de valores:
x xi xi−1
y fi fi−1
Consecuentemente:
fi − fi−1
P1 (x) = fi + (x − xi ) .
h
Integrando se obtiene que el método de Adams-Bashford de orden 2 da la
siguiente aproximación:
h
yi+1 = yi + (3fi − fi−1 ) .
2
Ya hemos comentado que los métodos multipaso no se autoinician. En-
tonces, en el presente método necesitamos calcular y1 previamente. Normal-
mente suele utilizarse como algoritmo de arranque el método de Runge-Kutta
de orden 2 y con él se calcula y1 , después:
h
y2 = y1 + (3f1 − f0 ) ,
2
y se sigue sin problemas.
76 CAPÍTULO 5. RESOLUCIÓN NUMÉRICA DE EDOS
i xi yi
0 0 1
1 0.2 0.961533
2 0.4 0.862052
3 0.6 0.735278
4 0.8 0.609752
5 1 0.500007
2. Vamos a usar la fórmula dada por (5.5) con h = 0.2. Dado que el
cálculo de yi+1 requiere de la evaluación de la función f en (xi , yi ),
(xi−1 , yi−1 ), (xi−2 , yi−2 ), (xi−3 , yi−3 ), el primer elemento que se puede
calcular con esta fórmula es y4 y se usarán para inicial el método los
valores obtenidos en el apartado anterior. El resultado de aplicar el
5
Este problema se ha sacado del libro “ Cálculo I. Teorı́a y problemas de
Análisis Matemático en una variable”, de G. Rodrı́guez et al., 2a ed., Ed. CLAGSA.
78 CAPÍTULO 5. RESOLUCIÓN NUMÉRICA DE EDOS
Hay que indicar que se puede corregir sólo una vez o aplicar varias veces
la fórmula correctora para ası́ obtener correcciones sucesivas.
x xi xi+1
y fi f¯i+1
Consecuentemente, se obtiene:
h¡¯ ¢
ỹi+1 = yi + fi+1 + fi .
2
Ejemplo 31. Resolver mediante un método de predicción-corrección de orden
2 el siguiente PVI:
½ 0
y = sen (y) + x, 0 ≤ x ≤ 1
y (0) = 0
siendo h = 0.1.
Usando el método descrito anteriormente hemos de inicializar el método
calculando y1 . Para ello, dado que estamos usando como fórmula predictora
el método de Adams-Bashford de orden 2, entonces usaremos el método de
Runge Kutta de orden 2 para el cálculo de y1 . Posteriormente utilizaremos
el método descrito anteriormente para el cálculo de ỹi+1 . Ası́ se obtiene la
siguiente tabla de resultados:
i xi ỹi ȳi
0 0 0 −
1 0.1 0.005 −
2 0.2 0.212874 0.02075
3 0.3 0.0498122 0.0492303
4 0.4 0.0918563 0.0912167
5 0.5 0.148822 0.148126
6 0.6 0.222219 0.221477
7 0.7 0.313628 0.312865
8 0.8 0.424619 0.423885
9 0.9 0.556607 0.555989
10 1 0.710624 0.710254
siendo h = 0.1.
Utilizando el método de Adams-Moulton de orden 4 se obtiene la siguiente
solución:
i xi ỹi ȳi
0 1 1 −
1 1.1 1.04881 −
2 1.2 1.09545 −
3 1.3 1.14018 −
4 1.4 1.18322 1.18321
5 1.5 1.22475 1.22474
6 1.6 1.26491 1.26491
7 1.7 1.30384 1.303804
8 1.8 1.34164 1.34164
9 1.9 1.37841 1.37841
10 2 1.41422 1.41421
Ejercicios Propuestos
siendo h = 0.1.
siendo h = 0.25.
siendo h = 0.1.
siendo h = 0.2.
Capı́tulo 6
6.1 Introducción
Es muy frecuente encontrar sistemas de ecuaciones lineales en multitud de
problemas de la Ingenierı́a. Consecuentemente es necesario disponer de las
herramientas matemáticas suficientes para frontar con éxito su resolución.
En la presente sección veremos como los métodos para la resolución de los
sistemas de ecuaciones lineales se dividen en dos grandes grupos: los métodos
directos y los métodos indirectos (o iterativos). Veremos como los primeros
permiten calcular la solución de forma exacta mediante un número finito de
operaciones; éstos son adecuados cuando el número de ecuaciones del sistema
es razonable. Ahora bien, cuando el cálculo de la solución exacta del sistema
se hace inviable, debido fundamentalmente al gran número de ecuaciones
que posee, se hace imprescindible recurrir a los métodos iterativos que dan
la solución con un error previamente acordado.
Se denomina sistema de m ecuaciones lineales con n incógnitas, x1 , . . . , xn ,
al siguiente conjunto de ecuaciones:
a11 x1 + a12 x2 + . . . + a1n xn = b1
a21 x1 + a22 x2 + . . . + a2n xn = b2
..
.
a x + a x + ... + a x = b
m1 1 m2 2 mn n m
A · X = B, (6.1)
83
84 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
donde
a11 a12 · · · a1n x1 b1
a21 a22 · · · a2n x2 b2
A= .. .. ... .. , X= .. , B= .. ,
. . . . .
am1 am2 · · · amn xn bm
x1 = 0, . . . , xn = 0.
X = A−1 · B.
de donde:
−1
x1 0 1 2 1 1
x2 1 2 1 3 0
·
x3 = 1 1 −1 1 5
x4 0 1 8 12 2
4 −11/2 13/2 1/2 1
−4/3 8/3 −8/3 −1/3 0
=
5/3 −11/6 11/6 1/6 · 5
−1 1 −1 0 2
75/2
−46/3
=
67/6 .
−6
El método de Cramer
Según este método, las soluciones del sistema de ecuaciones lineales compat-
ible determinado A · X = B se calculan con las siguientes fórmulas:
det (Ai )
xi = , 1 ≤ i ≤ n,
det (A)
b1 b2 bn
x1 = , x2 = , . . . , xn = .
a11 a22 ann
1
Recordemos que una matriz cuadrada de orden n, A = (aij ), es triangular superior
cuando aij = 0 para i > j, y triangular inferior cuando aij = 0 para i < j.
88 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
tendremos:
a11 x1 + a12 x2 + a13 x3 + . . . + a1n xn = b1
a22 x2 + a23 x3 + . . . + a2n xn = b2
triangular superior : a13 x3 + . . . + a1n xn = b3
..
.
a x =bnn n n
a11 x1 = b1
a21 x1 + a22 x2 = b2
triangular inferior : a21 x1 + a22 x2 + a33 x3 = b3
..
.
a x + a x + a x + ... + a x = b
n1 1 n2 2 n3 3 nn n n
6x3 + 10 = 4 ⇒ x3 = −1.
−2x2 − 7 − 8 = −7 ⇒ x2 = −4.
4x1 + 4 − 2 + 6 = 20 ⇒ x1 = 3.
Estrategias de pivoteo
Obsérvese que en el ejemplo anterior utilizamos el elemento aii de la ma-
triz de coeficientes para “hacer ceros” en los elementos ak,i con k > i. El
problema aparece cuando alguno de estos elementos es nulo, es decir, cuando
existe un i tal que aii = 0. En este caso hemos de recurrir a la denominada
estrategia del pivoteo trivial, consistente en intercambiar la ecuación i-ésima
por la ecuación inmediatamente posterior tal que el coeficiente de xi de la
misma fuera no nulo. En caso de que esto no fuera posible, entonces nos
encontrarı́amos con que la matriz de coeficientes del sistema, A, serı́a no
singular y, consecuentemente, el sistema serı́a compatible indeterminado.
Como los ordenadores usan una aritmética con una precisión previamente
fijada, es posible que cada vez que se realice una operación aritmética, se
introduzca un pequeño error. En el siguiente ejemplo se pone de manifiesto
cómo el uso de la estrategia del pivoteo trivial en la eliminación gaussiana
puede llevar aparejado un error apreciable en la solución de un sistema de
ecuaciones lineales calculada con un ordenador:
Ejemplo 37. Calcular la solución del siguiente sistema de ecuaciones lin-
eales:
½
1.133x + 5.281y = 6.414
24.14x − 1.210y = 22.93
Calcularemos la solución de este sistema con cinco cifras decimales exactas
mediante el método de la eliminación gaussiana. Ası́, como:
µ ¶ µ ¶
1.133 5.281 6.414 E21 (−21.31) 1.133 5.281 6.414
à ,
24.14 −1.210 22.93 0 −113.7 −113.8
entonces bastará con resolver el sistema:
½
1.133x + 5.281y = 6.414
−113.7y = −113.8
cuya solución es:
−113.8
y = = 1.001,
−113.7
6.414 − 5.281 · 1.001
x = = 0.9953.
1.133
92 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
donde es obvio que a11 = 0.0030 < a22 = 5.291, luego siguiendo la estrate-
gia del pivoteo parcial, hemos de intercambiar las filas primera y segunda,
obteniéndose ası́ la matriz equivalente:
µ ¶
5.291 −6.130 46.78
.
0.003000 59.14 59.17
6.2. MÉTODOS DIRECTOS 93
y = 1.000, x = 10.00.
Ejercicios Propuestos
6.2.4 Factorización LU
En esta sección vamos a introducir un nuevo método para la resolución de un
sistema de ecuaciones lineales (compatible determinado), A · X = B, basado
en la denominada factorización triangular de la matriz de coeficientes.
La factorización triangular o factorización LU de una matriz no singular
(invertible) A consiste en descomponerla como producto de otras dos matri-
ces: A = L · U, de tal forma que la matriz L es triangular inferior, cuyos
coeficientes de la diagonal principal son todos iguales a 1, y la matriz U
es triangular superior, cuyos coeficientes de la diagonal principal son todos
distintos de 0.
En este caso, es decir, en el caso en que la matriz de los coeficientes de
un sistema de ecuaciones lineales admita una factorización LU, la resolución
de dicho sistema se reduce a la resolución de dos sistemas triangulares: uno
superior y otro inferior:
½
U ·X =Y
A·X =B ⇔L·U · X} = B ⇔
| {z L·Y =B
Y
P · A · Q = Ã,
donde la matriz P (resp. Q) se obtiene de la matriz Id sin más que hacerle las transfor-
maciones F1 , . . . , Fm (resp. C1 , . . . , Cl ).
6.2. MÉTODOS DIRECTOS 97
4 12 10 6
Ahora, para obtener la matriz L bastará con que hagamos las siguientes
transformaciones a la identidad:
Id
z }| {
1 0 0 0 1 0 0 0
0 1 0 0 2 1 0 0
C12 Ã
(2)
0 0 1 0 C13 (3),C14 (4) 3 0 1 0
0 0 0 1 4 0 0 1
1 0 0 0 1 0 0 0
C23 (1) 2 1 0 0 (2) 2 1 0 0
à C34 à .
C24 (1) 3 1 1 0 3 1 1 0
4 1 0 1 4 1 2 1
| {z }
L
Consecuentemente, A = L · U .
98 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
Ejercicios Propuestos
6.2.5 Factorización P A = LU
Obsérvese que en el anterior procedimiento, las únicas transformaciones ele-
mentales de tipo fila para obtener la matriz U , que se utilizan son las de la
forma Fij (k). No obstante, en algunas ocasiones no será posible conseguir
una factorización LU utilizando sólo dichas transformaciones, como se puede
apreciar en el siguiente ejemplo:
Consecuentemente:
1 0 0 1 0 0
F23
Id = 0 1 0 Ã 0 0 1 = P,
0 0 1 0 1 0
1 0 0 1 0 0
C12 (1)
Id = 0 1 0 Ã 1 1 0 = L.
C13 (1)
0 0 1 1 0 1
Por lo tanto
½
L·Y =P ·B
A·X =B ⇔P ·A·X =P ·B ⇔L·U · X} = P · B ⇔
| {z U ·X =Y
Y
Ası́ pues, los dos sistemas triangulares que hemos de resolver son los sigu-
ientes:
y1 = 1 y1 = 1
y1 + y2 = 0 ⇒ y2 = −1
y1 + y3 = 2 y3 = 1
x1 + 2x2 + 3x3 = y1 (= 1) x1 = 10/9
−3x2 − x3 = y2 (= −1) ⇒ x2 = 4/9
−3x3 = y3 (= 1) x3 = −1/3
Ejercicios Propuestos
102 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
A = C · C t,
Para cada i, 1 ≤ i ≤ n :
v
u
u X
i−1
c = ta − c2ik
ii ii
k=1
(6.2)
à !
1 X
i−1
cji = cii aij −
cik cjk , i+1≤j ≤n
k=1
Pues bien, una vez que conocemos la matriz C, la resolución del sistema
A · X = B se lleva a cabo resolviendo dos sistemas triangulares:
½
t C ·Y =B
A·X =B ⇔C ·C
| {z· X} = B ⇔ Ct · X = Y
Y
x1 − x2 + x3 = 4
−x1 + 2x2 − x3 + 2x4 = −3
x1 − x2 + 5x3 + 2x4 = 16
2x2 + 2x3 + 6x4 = 8
1 −1 1 0 x1 4
−1 2 −1 2 x2 −3
=
1 −1 5 2 · x3 16 ,
0 2 2 6 x4 8
104 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
Por lo tanto
1 0 0 0
−1 1 0 0
C=
1
,
0 2 0
0 2 1 1
6.3. MÉTODOS ITERATIVOS 105
de donde el sistema del inicio se reduce a resolver los siguientes dos sistemas
triangulares:
1 0 0 0 y1 4 y1 = 4
−1 1 0
0 y2 −3 y =1
· = ⇒ 2
1 0 2 0 y3 16 y3 = 6
0 2 1 1 y4 8 y4 = 0
1 −1 1 0 x1 4 x1 = 2
0 1 0 2 x2 1
· = ⇒ x2 = 1
0 0 2 1 x3 6 x3 = 3
0 0 0 1 x4 0 x4 = 0
Ejercicios Propuestos
k k2 : Rn → R
q
X →
7 kXk2 = x21 + . . . + x2n
k k∞ : Rn → R
X 7→ kXk∞ = max {|x1 | , . . . , |xn |}
n 0
© (k) ªdos normas cualesquiera de R , k k y k k , se verifica que si
Teorema. Dadas
la sucesión X 0≤k<∞
converge hacia X respecto a k k, entonces también
convergerá hacia X respecto a la norma k k0 .
Definición. Se denomina norma matricial sobre el espacio vectorial Mn (R),
de las matrices cuadradas de orden n con coeficientes reales, a toda aplicación:
k k : Mn (R) → R
A 7→ kAk
tal que se satisfacen las siguientes propiedades:
1. kAk ≥ 0 para toda A ∈ Mn (R).
2. kAk = 0 si y sólo si A = 0.
3. kαAk = |α| kAk para todo α ∈ R y A ∈ Mn (R).
4. kA + Bk ≤ kAk + kBk para toda A, B ∈ Mn (R).
5. kA · Bk ≤ kAk · kBk para toda A, B ∈ Mn (R).
Definición. Se define la distancia entre dos matrices A, B ∈ Mn (R) re-
specto de la norma matricial k k como kA − Bk.
Teorema. Si k k es una norma vectorial de Rn , entonces la aplicación
k k : Mn (R) → R
A 7→ kAk = max kA · Xk
kXk=1
¡ ¢
siendo Ak ij el coeficiente (i, j) de la matriz Ak = A · .(k. . · A.
5
Obsérvese que puede ocurrir que algunos de ellos q sean iguales entre sı́. Además,
recuérdese que si λj = αj + β j i ∈ C, entonces |λj | = α2j + β 2j .
110 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
y se tiene que:
1 1
lim = lim = 0.
k→∞ 2k k→∞ 22k
4. ρ (A) < 1
A · X = B,
X = TJ · X + CJ ,
donde TJ ∈ Mn (R) y CJ ∈ Rn .
La matriz TJ y el vector CJ se calculan como sigue: Descomponemos la
matriz A de la forma:
A = D − L − U,
(D − L − U ) · X = B ⇔ D · X = (L + U) · X + B,
es decir:
X = D−1 · (L + U) · X + D−1 · B.
TJ = D−1 · (L + U) , CJ = D−1 · B.
Es fácil ver que la solución exacta del mismo viene dada por X = (1, 2, −1, 1)t .
Ahora bien, veamos qué obtenemos si aplicamos el metodo iterativo de Ja-
cobi. Ası́, matricialmente tenemos:
10 −1 2 0 x1 6
−1 11 −1 3 x2 25
2 −1 10 −1 · x3 = −11 ,
0 3 −1 8 x4 15
| {z } | {z } | {z }
A X B
donde
A = D − L − U,
siendo
10 0 0 0 0 0 0 0 0 1 −2 0
0 11 0 0 1 0 0
0 0 0 1 −3
D= ,L =
0 0 10 0 ,U = .
−2 1 0 0 0 0 0 1
0 0 0 8 0 −3 1 0 0 0 0 0
0 − 38 1
8
0
3
5
25
·B = .
−1 11
CJ = D
− 11
10
15
8
6.3. MÉTODOS ITERATIVOS 113
10x1 − x2 + 2x3 = 6
x2 = 25+x1 +x3 −3x4
−x1 + 11x2 − x3 + 3x4 = 25 11
⇒
2x 1 − x2 + 10x 3 − x4 = −11
x3 = −11+x4 −2x1 +x2
10
3x2 − x3 + 8x4 = 15 15−3x2 +x3
x4 = 8
donde
4 −1 1
A = 4 −8 1
−2 1 5
4 0 0 0 0 0 0 1 −1
= 0 −8 0 − −4 0 0 − 0 0 −1
0 0 5 2 −1 0 0 0 0
= D − L − U.
Si partimos del punto inicial X (0) = (1, 2, 2)t , entonces obtenemos la siguiente
tabla:
−2x + y + 5z = 15
4x − 8y + z = −21
4x − y + z = 7
con lo que, un sencillo cálculo nos muestra que el proceso iterativo vendrá
dado por:
(k+1)
0 1 5 (k)
−5
x
3 x3
y (k+1) = 1 0 · y (k) + 21 .
1
2 8 8
z (k+1) −4 1 0 z (k) 7
116 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
donde
4 0 0 0 0 0 0 1 −1
A = 0 −8 0 − −4 0 0 − 0 0 −1 .
0 0 5 2 −1 0 0 0 0
| {z } | {z } | {z }
D L U
con lo que:
A = D − L − U,
siendo
10 0 0 0 0 0 0 0 0 1 −2 0
0 11 0 0 0
D= 1 0 0 , U = 0 0 1 −3 .
0 0 10 0 , L = −2 1 0 0 0 0 0 1
0 0 0 8 0 −3 1 0 0 0 0 0
X (k) = T · X (k−1) + C,
converge a la única solución del sistema X = T ·X +C si y sólo si ρ (T ) < 1.
Del apartado (i) del último corolario se deduce que conviene seleccionar
el método iterativo que reduzca al mı́nimo a ρ (T ) < 1. No existen resultados
generales que nos digan cuál de los dos métodos vistos es más eficaz en un
sistema de ecuaciones arbitrario; no obstante en algunos casos especiales es
posible decidir:
3. ρ (TG ) = ρ (TJ ) = 0.
4. ρ (TG ) = ρ (TJ ) = 1.
6
Recordemos que una matriz cuadrada de orden n, A = (aij )1≤i,j≤n , es estrictamente
dominante en sentido diagonal cuando
n
X
aii > |aij | .
j=1
j6=i
Esto es, cuando en valor absoluto, el coeficiente de la diagonal principal es mayor que la
suma de los valores absolutos del resto de coeficientes de la fila a la que pertenece.
122 CAPÍTULO 6. SISTEMAS DE ECUACIONES LINEALES
con lo que
Ejercicios Propuestos
7.1 Introducción
En algunos problemas que aparecen en la Ingenierı́a se plantean importantes
cuestiones que, en términos matemáticos se formulan como sigue:
T : Rn → Rn ,
125
126CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
n
Definición. Un vector, © Z(1)∈ R , se(k)
pone
ª como combinación lineal de un
conjunto de vectores, X , . . . , X , cuando existen k escalares, λ1 ∈
R, . . . , λk ∈ R, tales que Z = λ1 X + . . . + λk X (k) .
(1)
Definición. Se dice que los vectores X (1) , . . . , X (k) son linealmente indepen-
dientes cuando se verifica la siguiente implicación:
0 = c1 X (1) + . . . + ck X (k) ⇒ c1 = . . . = ck = 0,
Y = c1 X (1) + . . . + cn X (n) .
donde
El teorema anterior sugiere una estrategia para encontrar los valores pro-
pios de una matriz A: basta con encontrar una matriz semejante a ella, B,
cuya estructura sea mucho más adecuada para calcular dichos valores pro-
pios. En particular, si B es una matriz diagonal o triangular, el cálculo de
los valores propios es inmediato pues, como sabemos, no son más que los
coeficientes de la diagonal principal. De esta manera se verifica el siguiente
resultado:
Colorario.
P
n
Obsérvese que cada disco Di es un cı́rculo de centro aii y radio |aij |.
j=1,j6=i
A estos discos se les denomina cı́rculos de Gershgorin.
Además se verifica también que la unión de cualesquiera k de estos dis-
cos que no corte a los (n − k) restantes contendrá exactamente k (contando
multiplicidades) de los valores caracterı́sticos.
Definición. Se dice que los vectores X (1) , . . . , X (k) son ortogonales cuando
X (i) • X (j) = 0, i 6= j,
(i) (j) (i) (j)
siendo X (i) • X (j) = x1 x1 + . . . + xn xn el producto escalar de X (i) por
X (j) .
(1)
Definición. Se dice que los vectores X
° (i) , .°. . , X (k) son ortonormales cuando
son ortogonales y de norma unidad: °X ° = 1 para todo i.
Ejercicios Propuestos
Ahora, como |λ1 | > |λj | para todo j > 1, entonces |λj | / |λ1 | = |λj /λ1 | < 1,
de donde:
µ ¶k
λj
lim = 0, ∀j > 1.
k→∞ λ1
de donde, definiendo:
¡ ¢ ¡ ¢
ϕ X (k+1) ϕ (U1 ) + ϕ ε(k+1)
rk = = λ1 ,
ϕ (X (k) ) ϕ (U1 ) + ϕ (ε(k) )
se tiene que
lim (rk ) = λ1 .
k→∞
X (k)
X (k+1) = A · .
kX (k) k∞
(rk − rk−1 )2
sk = rk − ,
rk − 2rk−1 + rk−2
Obsérvese que el vector propio de valor propio 6 obtenido es (−1, −1, −1),
ó si se prefiere, (1, 1, 1).
Ejemplo 54. Calcular el valor propio más pequeño (en módulo) de la sigu-
iente matriz:
4 −1 1
A = −1 3 −2 .
1 −2 3
k
X (k) = (A−1 ) · X (k−1) , de tal forma que es necesario calcular explı́citamente
el valor de A−1 . No obstante, este hecho se podrı́a evitar de la siguiente
k
manera: la ecuación X (k) = (A−1 ) · X (k−1) es equivalente a la ecuación
Ak · X (k) = X (k−1) , y el cálculo del vector X (k) puede resultar más sencillo si
resolvemos este sistema. Para ello, basta con calcular la factorización LU de
la matriz A: A = L · U, y resolver el sistema:
Ejemplo 55. Calcular el valor propio de la siguiente matriz más alejado del
2.
6 5 −5
A = 2 6 −2 .
2 5 −1
4 5 −5
A − 2 · Id = 2 4 −2 ,
2 5 −3
Ejercicios Propuestos
142CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
1 1 2 4
Rotaciones planas
Sea X un vector de un espacio vectorial n-dimensional (básicamente, Rn ó
Cn ). Consideremos la aplicación lineal dada por la expresión Y = R · X,
donde R es la siguiente matriz de orden n:
1 ··· 0 ··· 0 ··· 0
.. .. .. ..
. . . .
0 · · · cos (φ) · · · sen (φ) · · · 0 ← fila p
. .. .. ..
R= . . . . .
0 · · · −sen (φ) · · · cos (φ) · · · 0 ← fila q
. .. .. ..
.. . . .
0 ··· 0 ··· 0 ··· 1
↑ col. p ↑ col. q
Hay que destacar que en la matriz R, todos los coeficientes que se encuentran
fuera de la diagonal principal son nulos salvo los de las posiciones (p, q) y
(q, p) que toman los valores sen (φ) y −sen (φ), respectivamente. Además,
todos los términos de la diagonal son 1 salvo los que se encuentran en las
posiciones (p, p) y (q, q), cuyo valor es cos (φ).
Si escribimos Y = (y1 , . . . , yn ), X = (x1 , . . . , xn ), la anterior transforma-
ción es como sigue:
yj = xj , si j 6= p, j 6= q
yp = xp cos (φ) + xq sen (φ)
yq = −xp sen (φ) + xq cos (φ)
Obsérvese que dicha aplicación lineal es una rotación de ángulo φ en el plano.
Eligiendo de manera adecuada dicho ángulo podemos conseguir que yp = 0
ó yq = 0. Consecuentemente a toda matriz R de la anterior forma se la
denomina matriz de rotación de ángulo φ.
Por otra parte, es fácil ver que R−1 = RT (es decir, RT R = Id), con lo
que R es una matriz ortogonal. En consecuencia, existe aplicación inversa:
X = R−1 Y , que es una rotación de ángulo −φ en el plano.
El método de Jacobi
Consideremos una matriz simétrica A. A partir de ella construiremos una
sucesión de matrices de rotación {Ri }i≥1 mediante la cual se definirá una
nueva sucesión de matrices, {Di }i≥0 , satisfaciendo las siguientes condiciones:
½
D0 = A
Di = RiT · Di−1 · Ri , i ≥ 1
λ1 0 ··· 0
... ..
0 λ2 .
lim Di = D = .. ... ... ,
i→∞ . 0
0 ··· 0 λn
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS145
siendo a = cos (φ) y b = sen (φ). Recuérdese que todos los elementos de la
diagonal principal de Ri son 1 salvo los que se encuentran en las posiciones
(p, p) y (q, q) que toman el valor a; además, todos los coeficientes de la
matriz Ri que están fuera de la diagonal principal son nulos salvo los que
se encuentran en las posiciones (p, q) y (q, p) que toman los valores b y −b
respectivamente.
Un sencillo argumento nos muestra que al computar RiT ·Di−1 ·Ri , la matriz
que se obtiene (que es Di ) posee los mismos coeficientes que la matriz Di−1
salvo los que se encuentran en las filas p-ésima, q-ésima, y en las columnas
p-ésima y q-ésima. Es más, se verifican las siguientes igualdades:
(i) (i)
djk = dkj , ∀j, k
(i) (i−1)
djk = djk , j 6= p, q, k 6= p, q
(i) (i−1) (i−1)
djp = adjp − bdjq , j 6= p, q
(i) (i−1) (i−1)
djq = adjq + bdjp , j 6= p, q (7.2)
(i) (i−1) (i−1) (i−1)
dpp = a2 dpp + b2 dqq − 2abdpq
(i) (i−1) (i−1) (i−1)
dqq = b2 dpp + b2 dqq + 2abdpq
³ ´
(i) 2 2 (i−1) (i−1) (i−1)
dpq = (a − b ) dpq + ab dpp − dqq
Dado que t = tan (φ), la menor de las raı́ces de la anterior ecuación corre-
sponde al menor ángulo φ que podemos tomar cumpliendo |φ| < π/4. La
forma especial que tiene la anterior ecuación de segundo grado nos permite
trabajar con la siguiente fórmula para hallar la menor de sus raı́ces:
p sign (θ)
t = −θ ± θ2 + 1 = p ,
|θ| + θ2 + 1
donde
½
1, si θ ≥ 0
sign (θ) =
−1, si θ < 0
Una vez que conocemos el valor de t, podemos calcular a y b sin más que
aplicar las siguientes fórmulas:
1
a = √ ,
t2 + 1
b = at.
(i)
En resumidas cuentas, para anular el elemento dpq (y, por simetrı́a, el
(i) (i−1)
coeficiente dqp ) hay que elegir la fila p y la columna q de manera que dpq 6=
0; posteriormente se determinan los siguientes valores preliminares:
(i−1) (i−1)
dqq − dpp
θ = (i−1)
,
2dpq
sign (θ)
t = p ,
|θ| + θ2 + 1
1
a = √ ,
2
t +1
b = at.
³ ´
(i)
Finalmente para determinar todos los coeficientes de la matriz Di = djk ,
1≤j,k≤n
148CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
(i)
Obsérvese que anteriormente hemos dicho que anulamos el término dpq
(i−1)
para el que dpq 6= 0. Ahora bien, para ser rigurosos no podemos elegir
uno de tales coeficientes al azar sino que, para garantizar la convergencia del
método, hemos de tener en cuenta una serie de condiciones.
La velocidad de convergencia del método de Jacobi se estima mediante
la suma de los cuadrados de los elementos que no pertenecen a la diagonal
principal. Ası́, tendremos las siguientes dos magnitudes:
n ¯
X ¯ n ¯
X ¯
¯ (i−1) ¯2 ¯ (i) ¯2
Si−1 = ¯djk ¯ , Si = ¯djk ¯ .
j,k=1 j,k=1
j6=k j6=k
Es fácil ver que la sucesión {Si }i≥0 es monótona decreciente y acotada infe-
riormente por el cero.
(i)
En el algoritmo original debido a Jacobi (1846), el elemento dpq que debe-
mos anular es el elemento no perteneciente a la diagonal principal que tiene
mayor valor absoluto, con lo que se ha de calcular el siguiente valor
©¯ (i−1) ¯ ª
max ¯dpq ¯ tal que p < q .
entonces
¯ (i−1) ¯2
Ti = Ti−1 + 2 ¯dpq ¯ .
En consecuencia
1 0 0
R3 = 0 0.984253 −0.176766 ,
0 0.176766 0.984253
y
−0.891287 0.024687 0.13746
D3 = R3T · D2 · R3 = 0.024687 2.65522 0.000000 .
0.13746 0.000000 4.28876
n¯ ¯ ¯ ¯ ¯ ¯o ¯ ¯
¯ (3) ¯ ¯ (3) ¯ ¯ (3) ¯ ¯ (3) ¯
• Como max ¯d12 ¯ , ¯d13 ¯ , ¯d23 ¯ = ¯d13 ¯ = 0.13746, entonces tendremos
(4) (4)
p = 1, q = 3, con lo que hemos de hacer d13 = d31 = 0. Calculando
los distintos parámetros obtenemos:
En consecuencia
0.999649 0 0.026508
R4 = 0 1 −0.176766 ,
−0.026508 0 0.999649
y
−0.894932 0.0246783 0.000000
D4 = R4T · D3 · R4 = 0.0246783 2.60253 0.000654 .
0.000000 0.000654 4.2924
λ1 = −0.414214, λ2 = 2.41421, λ3 = 4.
de donde
r
T0
ε = 0.081.
3
¯ ¯ p ¯ ¯ p ¯ ¯
¯ (0) ¯ ¯ (0) ¯ ¯ (0) ¯
Como ¯d12 ¯ = 0 < ε T0 /3, ¯d13 ¯ = 1 > ε T0 /3 y ¯d23 ¯ = 3 >
p
ε T0 /3, entonces tenemos dos posibles candidatos. Elegiremos aquel
de mayor valor absoluto, es decir, el elemento que anularemos será el
la posición (2, 3), esto es p = 2, q = 3. En consecuencia, un sencillo
cálculo nos muestra que
con lo que
1 −0.646375 0.76302
D1 = R1T · D0 · R1 = −0.646375 −3.54138 0.000000 .
0.76302 0.000000 2.54138
• Como
¯ ¯2 ¯ ¯2 ¯ ¯2
¯ (1) ¯ ¯ (1) ¯ ¯ (1) ¯
T1 = ¯d11 ¯ + ¯d22 ¯ + ¯d33 ¯ = 20,
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS153
entonces
r
T1
ε = 0.0258.
3
¯ ¯ ¯ ¯ ¯ ¯
¯ (1) ¯ ¯ (1) ¯ ¯ (1) ¯
Entonces ¯d12 ¯ > 0.0258, ¯d13 ¯ > 0.0258 y ¯d23 ¯ < 0.0258, entonces
vuelve a haber dos candidatos. El de mayor valor absoluto es el la
posición (1, 3), esto es p = 1, q = 3. En consecuencia, un sencillo
cálculo nos muestra que
con lo que
0.68618 −0.597789 0.000000
D2 = R2T · D1 · R2 = −0.597789 −3.54138 −0.245863 .
0.000000 −0.245863 2.8552
con lo que
0.769083 0.000000 0.0337738
D3 = R3T · D2 · R3 = 0.000000 −3.62428 −0.243532 .
0.0337738 −0.243532 2.8552
0 0 0 1
De esta forma, tendremos:
5.458619 −2.055770 0 −1.409395
−2.055770 6 0.879665 0
D1 = R1T · D0 · R1 =
.
0 0.879665 11.541381 0.116645
−1.409395 0 0.116645 7
(2)
A continuación si anulamos el término d12 , se obtiene:
3.655795 0 0.579997 −1.059649
0 7.802824 0.661373 0.929268
D2 = 0.579997 0.661373 11.541381 0.116645
.
−1.059649 0.929268 0.116645 7
Siguiendo con el proceso y después de 10 iteraciones obtenemos:
3.295870 0.002521 0.037859 0
0.002521 8.405210 −0.004957 0.066758
D10 =
0.037859 −0.004957 11.704123 −0.001430 .
Ejercicios Propuestos
el método de Jacobi
4 3 2 1
3 4 3 2
A =
2 3 4 3 ,
1 2 3 4
2.25 −0.25 −1.25 2.75
−0.25 2.25 2.75 1.25
B =
−1.25 2.75
.
2.25 −0.25
2.75 1.25 −0.25 2.25
A = (aij )1≤i,j≤30 ,
donde
½
i + j, si i = j
aij =
i · j, si i 6= j
½
cos (sen (i + j)) , si i = j
aij =
i + i · j + j, si i 6= j
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS157
Y = P · X,
donde:
P = Id − 2W · W T ,
siendo
X −Y
W = .
kX − Y k2
Obsérvese que como la matriz P es ortogonal y simétrica, entonces P =
P −1 .
Por otra parte, la aplicación Y = P · X consiste en en reflejar X tomando
la dirección Z = 12 (X + Y ) como eje de reflexión.
158CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
que es simétrica, tridiagonal y que tiene los mismos valores propios que A.
A esta matriz se la denomina forma de Hessemberg de A.
Veamos cómo podemos construir las matrices de Householder Pk , 1 ≤
k ≤ n − 2. Para simplificar la notación, supondremos n = 5.
Ası́, la primera transformación será P1 · A · P1 , donde P1 se construye
aplicando al anterior corolario siendo X la primera columa de la matriz A.
Ası́, es fácil ver que
1 0 0 0 0
0 ∗ ∗ ∗ ∗
P1 = 0 ∗ ∗ ∗ ∗ ;
0 ∗ ∗ ∗ ∗
0 ∗ ∗ ∗ ∗
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS159
en consecuencia:
a11 v1 0 0 0
u1 w1 ∗ ∗ ∗
P1 · A · P1 =
0 ∗ ∗ ∗ ∗ ,
0 ∗ ∗ ∗ ∗
0 ∗ ∗ ∗ ∗
La submatriz identidad que aparece en P2 garantiza que los ceros que se han
conseguido ya en el primer paso no se van a ver modificados en este segundo
paso. Por lo tanto, se obtiene:
a11 v1 0 0 0
u1 w1 v2 0 0
P2 · A1 · P2 =
0 u2 w2 ∗ ∗ = A2 .
0 0 ∗ ∗ ∗
0 0 ∗ ∗ ∗
1 1 1 2
Consideremos pues, en el primer paso, la matriz
4 2 2 1
2 −3 1 1
A0 = 2
.
1 3 1
1 1 1 2
Entonces se tendrá que:
³ ´q √
(0) (0),2 (0),2 (0),2
S = sign a21 a21 + a31 + a41 = 4 + 4 + 1 = 3,
q √ √
(0)
R = 2a21 S + 2S 2 = 12 + 18 = 30,
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS161
con lo que:
7.4.3 La factorización QR
Como sabemos, mediante el método de Householder, dada una matriz simétrica
A, podemos calcular una matriz semejante, tridiagonal y simétrica, An−2 .
Como A y An−2 son semejantes, entonces tendrán los mismos valores pro-
pios. Para calcular los valores propios de la matriz An−2 emplearemos el
denominado método de la factorización QR. Según este método, podemos
factorizar toda matriz A, de la forma A = Q · R, donde Q es una matriz
ortogonal, y R es una matriz triangular superior.
Grosso modo, el procedimiento para calcular los valores propios consisten
en el siguiente algoritmo iterativo:
A2 = R1 · Q1 = QT1 · A1 · Q1 ,
• ...
Ak = Rk · Qk = QTk · Ak−1 · Qk .
• ...
• Posteriormente calculamos
Ai+1 = Ri · Qi
para i = 1, 2, . . . , kj , donde {sj } es una sucesión cuyo suma se aproxima
al valor propio λj . Obsérves que la matriz ası́ obtenida, Akj +1 , es
semejante a la matriz A − (s1 + . . . + sj ) Id.
El valor adecuado para la traslación, si , se calcula en cada paso utilizando
los elementos de la esquina inferior derecha de la matriz considerada en dicho
paso. Ası́, para el primer valor propio, λ1 , se calcularán los dos valores propios
de la submatriz cuadrada de orden 2 extraı́da de la esquina inferior derecha:
à !
(1) (1)
an−1,n−1 an−1,n
(1) (1) .
an,n−1 ann
Los valores propios asociados a esta matriz son las raı́ces de la siguiente
ecuación se segundo grado:
³ ´
(1) (1) (1),2
x2 − an−1,n−1 + a(1) (1)
nn x + an−1,n−1 ann − an−1,1 = 0.
Entonces se toma como valor s1 del primer desplazamiento, aquella raı́z que
(1)
esté más cercana de ann .
(k1 )
Hay que indicar que la iteración QR se repite hasta que tengamos an−1,n ≈
0. Si esto ocurre en el paso k1 , entonces tomamos como aproximación al
primer valor propio a s1 + . . . + sk1 ≈ λ1 .
Aplicamos el mismo proceso pero utilizando la submatriz que resulta de
eliminar la última fila y la última columna tantas veces (por ejemplo k2 )
como sean necesarias para que an−2,n−1 ≈ 0, con lo que obtendremos una
aproximación del segundo valor propio.
Seguiremos realizando las sucesivas iteraciones hasta que obtengamos
a12 ≈ 0, en cuyo caso obtendremos una aproximación del valor propio λn−2 .
Finalmente, los valores propios restantes son los valores propios de la
matriz de orden 2 que queda.
Ejemplo 61. Calcular los valores propios de la siguiente matriz:
4 2 2 1
2 −3 1 1
A= 2 1 3 1 .
1 1 1 2
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS165
x1 = −1.4142,
x2 = 1.4142,
(1)
de las cuales elegimos la má cercana a a44 , como valor del primer desplaza-
miento. Ası́ s1 = 1.4142. En consecuencia, la primera matriz trasladada
es:
2.5858 −3 0 0.0
−3 0.5858 3.1623 0.0
A1 − s1 Id =
.
0 3.1623 −2.8142 −0.2
0 0 −0.2 −0.0142
A1 − s1 Id = Q1 · R1 ,
donde
−0.6529 −0.3886 −0.5553 0.3381
0.7575 −0.3349 −0.4787 0.2914
Q1 =
,
0 0.8584 −0.4382 0.2661
0 0 0.5201 0.8541
−3.9601 2.4023 2.3953 0
0 3.6840 −3.4748 −0.1717
R1 =
.
0 0 −0.3846 0.0802
0 0 0 −0.0655
166CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
En consecuencia:
4.4055 2.7905 0 0
2.7905 −4.2166 0.0191 0
A2 = R1 · Q1 =
.
0 0.0191 0.2917 0.0003
0 0.0003 0.0002
λ1 = s1 + s2 + s3 = 1.3543.
Finalmente, en el último paso del método hay que calcular los valores
propios de la matriz de orden 2 que ocupa la esquina superior izquiera de A5 ,
es decir:
µ ¶
4.2608 −2.6572
.
−2.6572 −4.5523
7.4. CÁLCULO DE LOS VALORES PROPIOS DE MATRICES SIMÉTRICAS167
x2 + 0.2915x − 26.4575 = 0.
Las raı́ces de esta ecuación son x1 = 5 y x2 = −5.2915, con lo que los dos
últimos valores propios vienen dados por:
λ3 = λ2 + x1 = 6.6457,
λ4 = λ2 + x2 = −3.6457.
Ejercicios Propuestos
1 2 3 4
168CAPÍTULO 7. APROXIMACIÓN DE VALORES Y VECTORES PROPIOS
Capı́tulo 8
Factorización SVD
Teorema. Dada una matriz cualquiera A ∈ Mm×n (R), existe una factor-
ización de la misma como sigue:
A = U · D · V T,
Q · QT = QT · Q = Id,
QT = Q−1 ,
T
(Q · X) · (Q · X) = X T · Y, ∀X, Y ∈ Rn ,
kQ · Xk = kXk , ∀X ∈ Rn .
Además se verifica también que los vectores filas de Q son también ortonormales.
169
170 CAPÍTULO 8. FACTORIZACIÓN SVD
con lo que:
½
¡ T ¢ σ k , si i = j = k ≤ r
U · A · V ij = uTi · A · vj =
0, en otro caso
A = U · D · V T,
A · A+ · A = A
A+ · A · A+ = A+
¡ ¢T
A · A+ = A · A+
¡ + ¢T
A ·A = A+ · A
A+ = V · D+ · U T ,
donde
µ−1
1 0 ··· ··· ··· 0
... ... ..
0 .
. ..
. ... ...
. µ−1 .
D+ = . r
... . . . .. ∈ Mn×m (R) .
.. 0 .
.. ... ...
. 0
0 ··· ··· ··· 0 0
• (A1 · A2 )+ 6= A+ +
2 · A1
• A+ · A 6= Id.
2
Se dice que una matriz A, es una matriz de proyección cuando satisface las siguientes
dos condiciones:
1. A es idempotente: A2 = A.
2. A es simétrica: A = AT .
Capı́tulo 9
Ajuste de Datos
x x0 x1 ... xm
y y0 y1 ... ym
y = ax + b,
donde a, b ∈ R.
En este caso, es imposible que dicha recta pase por todos los puntos
(x0 , y0 ) , . . . , (xm , ym ) ,
177
178 CAPÍTULO 9. AJUSTE DE DATOS
donde X = (x1 , . . . , xn ).
9.1. EL MÉTODO DE LOS MÍNIMOS CUADRADOS 179
∂Φ = 0
∂b
que en nuestro caso se reflejan en el siguiente sistema de dos ecuaciones con
dos incógnitas:
Pm
0 = xk (axk + b − yk )
k=0
P
m
(axk + b − yk )
0=
k=0
µm ¶
P P
m
xk a + (m + 1) b = yk
k=0 k=0
donde
à m !2
X
m X
d = (m + 1) x2k − xk .
k=0 k=0
{(1, y1 ) , . . . , (n, yn )} ,
180 CAPÍTULO 9. AJUSTE DE DATOS
Ejemplo 70. Calcular la recta que mejor ajusta la siguiente tabla de datos:
X
m X
m X
m
xk = 60.3, yk = 463.6, xk yk = 4035,
k=0 k=0 k=0
Ãm !2
X
m X
x2k = 463.6, xk = 3636,
k=0 k=0
con lo que
y = 11.23x − 19.41
9.1. EL MÉTODO DE LOS MÍNIMOS CUADRADOS 181
x x0 x1 ... xm
y y0 y1 ... ym
X
m
Φ (a, b, c) = (a ln (xk ) + bexk + cxk − yk )2 .
k=0
Por lo tanto:
∂Φ Xm
0 = =2 (a ln (xk ) + bexk + cxk − yk ) ln (xk ) ,
∂a k=0
∂Φ Xm
0 = =2 (a ln (xk ) + bexk + cxk − yk ) exk ,
∂b k=0
∂Φ Xm
0 = =2 (a ln (xk ) + bexk + cxk − yk ) xk ,
∂c k=0
Un sencillo cálculo nos muestra que las ecuaciones normales en este caso
son:
0 = −1961.27 + 60.70a + 436742.85b + 234.50c
0 = −2.06 · 107 + 436742.85a + 8.28 · 109 b + 1.95 · 106 c
0 = −8072.35 + 234.50a + 1.95 · 106 b + 929.18c
con lo que:
a = −35.84,
b = 0,
c = 16.92.
c0 g0 (x) + . . . + cn gn (x) = 0
c0 = . . . = cn = 0.
Como las funciones base, {g0 (x) , . . . , gn (x)} son funcionalmente indepen-
dientes, entonces formarán una base del espacio vectorial G. Ahora bien,
recuérdese que un espacio vectorial tiene infinitas bases, entonces resulta ra-
zonable preguntarse qué base, {g0 (x) , . . . , gn (x)}, es la mejor para buscar
una función, g (x) = c0 g0 (x) + . . . + cn gn (x), que ajuste de la manera más
precisa una determinada tabla de datos.
Obsérvese que serı́a conveniente que el sistema de ecuaciones normales,
·m ¸
Pn P Pm
g 0 (xk ) gj (xk ) cj = yk g0 (xk )
j=0 k=0 k=0
..
.
· ¸
Pn Pm Pm
g (x ) g (x ) c = yk gn (xk )
n k j k j
j=0 k=0 k=0
G = Rn [x] = {a0 + a1 x + . . . + an xn , a0 , . . . , an ∈ R} ,
X
n
g (x) = ck gk (x) = c0 + c1 x + . . . + cn xn .
k=0
No obstante, aunque esta base es muy natural, no es muy adecuada para nue-
stros propósitos ya que sus elementos son bastante parecidos entre sı́. Como
consecuencia de ello, si tratamos de ajustar una tabla de datos mediante una
función de la forma g (x) = c0 g0 (x) + . . . + cn gn (x), no es sencillo determi-
nar los coeficientes c0 , . . . , cn . En la siguiente figura vemos representados los
polinomios xk , con 1 ≤ k ≤ 11.
T0 (x) = 1,
T1 (x) = x,
Tk (x) = 2xTk−1 (x) − Tk−2 (x) , x ≥ 2.
188 CAPÍTULO 9. AJUSTE DE DATOS
9.2.2 El algoritmo
En consecuencia, teniendo en cuenta todo lo dicho anteriormente, a contin-
uación se presentará un algoritmo para calcular el polinomio de grado menor
o igual que n + 1 que mejor ajusta la tabla de datos
x x0 x1 ... xm
y y0 y1 ... ym
donde se supone que m >> n.
El algoritmo es como sigue:
1. Determinar el mı́nimo intervalo [a, b] en el que se encuentran x0 , . . . , xm .
Se tendrá:
a = min {x0 , . . . , xm } ,
b = max {x0 , . . . , xm } .
x x0 x1 ... xm
y y0 y1 ... ym
pN (x) = a0 + a1 x + . . . + aN xN ,
yi = pN (xi ) + εi , 0 ≤ i ≤ m,
1 X
m
ε2 + . . . + ε2m
σ 2n = (yi − pn (xi ))2 = 0 .
m − n i=0 m−n
Este resultado nos sugiere una estrategia para calcular el polinomio cuando
N es desconocida. Para ello bastará con ir calculando las diferentes varianzas
σ 20 , σ 21 , σ 22 , . . . Ası́ se formará una sucesión decreciente de tal forma que cuando
se alcance un ı́ndice N tal que σ 2N ≈ σ 2N +1 ≈ σ 2N+2 ≈ . . . , entonces pararemos
y consideraremos a pN (x) como el polinomio buscado.
Ahora bien, si las varianzas σ 20 , σ 21 , σ 22 , . . . son calculadas directamente
utilizando su definición, entonces en cada paso tendremos que calcular el
polinomio pi (x) para poder calcular la siguiente varianza. Esto conlleva
mucho esfuerzo computacional y no resulta muy efectivo. No obstante existe
un procedimiento alternativo que nos evita calcularnos todos los polinomios
salvo el deseado. Antes de ver dicho procedimiento, hemos de introducir
algunos conceptos teóricos:
X
m
hf, gi = f (xi ) g (xi ) .
i=0
q0 (x) = 1,
q1 (x) = x − α0 ,
qn+1 (x) = (x − αn ) qn (x) − β n qn−1 (x) , n ≥ 1,
donde
hxqn (x) , qn (x)i hxqn (x) , qn−1 (x)i
αn = , βn = .
hqn (x) , qn (x)i hqn−1 (x) , qn−1 (x)i
Se verifica que el sistema de polinomios ortogonales {q0 (x) , . . . , qm−1 (x)}
es una base del espacio vectorial Rm−1 [x]. Además, de la propia construcción
de los polinomios se deduce que cada polinomio qk (x) es de la forma:
donde
hpn (x) , qk (x)i
ck = , 0 ≤ k ≤ m − 1.
hqk (x) , qk (x)i
Una vez que hemos introducido los anteriores conceptos teóricos, volva-
mos al problema que nos ocupaba. Supongamos pues, que F (x) es una
función tal que F (xk ) = yk , con 0 ≤ k ≤ m. Entonces el polinomio, pn (x),
que minimiza la expresión
X
m
(F (xk ) − pn (xk ))2
k=0
donde
hF (x) , qk (x)i
ck = .
hqk (x) , qk (x)i
9.2. SISTEMAS ORTOGONALES Y POLINOMIOS DE CHEBYSHEV193
Por otro lado, las varianzas pueden ser fácilmente calculadas mediante la
siguiente fórmula:
ρn
σ 2n = ,
m−n
donde
X
m
ρn = (yk − pn (xk ))2 .
k=0
hF (x) , q0 (x)i2
ρ0 = hF (x) , F (x)i − ,
hq0 (x) , q0 (x)i
hF (x) , qn (x)i2
ρn = ρn−1 − , n ≥ 1.
hqn (x) , qn (x)i
Ejercicios Propuestos
x −1 2 3
y 5/4 4/3 5/12
x −1 0 1
y 3.1 0.9 2.9
194 CAPÍTULO 9. AJUSTE DE DATOS
x −1 2 3
y 5/4 4/3 5/12
T 1 2 3 4 5 6 7
V 2.31 2.01 1.80 1.66 1.55 1.47 1.41
x −1 −0.5 0 0.5 1
y −1 0 1 2 1
x −2 −1 0 1 2
y 2 1 1 1 2
Este sistema es un sistema de n+1 ecuaciones lineales con n+1 incógnitas que
será compatible siempre que tenga rango máximo la matriz de los coeficientes.
196 CAPÍTULO 9. AJUSTE DE DATOS
Hay métodos especı́ficos para resolver este problema sin acudir al método
general descrito anteriormente, y que ganan en eficiencia y precisión. Uno
de tales algoritmos para resolver el sistema incompatible A · X = B, consiste
en factorizar la matriz A como A = Q · R, donde Q es una matriz de orden
(m + 1) × (n + 1) y ortogonal, y R es una matriz cuadrada de orden n + 1
tal que rii > 0 y rij = 0 para j < i. Entonces, la solución en el sentido de los
mı́nimos cuadrados se obtiene utilizando un algoritmo denominado proceso
modificado de Gram-Schmidt.
Otro algoritmo más elaborado utiliza la descomposición en valores singu-
lares de la matriz A. Ası́, se tendrá que A = U ·D·V T , donde U es una matriz
cuadrada de orden m + 1 y ortogonal, V es una matriz cuadrada de orden
n + 1 y ortogonal, y D es una matriz diagonal con coeficientes no negativos
de orden (m + 1) × (n + 1). En este caso se procederá como sigue:
9.3. OTRAS APLICACIONES DE LOS MÍNIMOS CUADRADOS 197
Definamos
ρ = inf {kA · X − Bk tal que X ∈ Rn } .
Entonces la solución mı́nima de nuestro sistema es el punto de menor norma
en el conjunto
{X ∈ Rn tal que kA · X − Bk = ρ} .
Si el sistema es consistente, entonces ρ = 0, y estaremos buscando simple-
mente el punto de menor norma entre todas las soluciones del sistema. Si el
sistema es inconsistente, entonces nosotros queremos que A · X sea lo más
próximo posible a B, esto es kA · X − Bk = ρ. Si hay más de un punto sat-
isfaciendo esta propiedad, entonces elegiremos aquél que esté más próximo
al origen.
Consecuentemente, la solución mı́nima buscada del sistema A · X = B es
A · B, donde A+ = V · D+ · U T es la matriz pseudoinversa de la matriz A.
+
···
n hR
P i Rb
b
g (x) g (x) w (x) dx cj = a f (x) gn (x) w (x) dx
a n j
j=0
9.3. OTRAS APLICACIONES DE LOS MÍNIMOS CUADRADOS 199
∂Φ Xm
0= =2 (ecxk − yk ) ecxk xk .
∂c k=0
2
Nótese que si una colección de funciones no nulas, g0 , . . . , gn , es ortogonal de acuerdo
a esta definición, entonces la secuencia λ0 g0 , . . . , λn gn será ortonormal para los valores
"Z #−1/2
b
2
λi = gj (x) w (x) dx .
a
200 CAPÍTULO 9. AJUSTE DE DATOS
es trivial y se obtiene:
z0 x0 + z1 x1 + . . . + zm xm
c= .
x20 + x21 + . . . + x2m
2. Supongamos, por otro lado, que la tabla de datos se quiere ajustar
mediante la función
y = a sen (bx) .
¿Podemos usar el método de los mı́nimos cuadrados para determinar
los parámetros a y b? Obsérvese en primer lugar que que el parámetro b
aparece en la anterior función en forma no lineal. De acuerdo al método
de los mı́nimos cuadrados, se debe minimizar la función:
Xm
(a sen (bxk ) − yk )2 .
k=0
201
Capı́tulo 10
Consideraciones generales
ans =
5
ans = ans =
-2 -4.6667
203
204 CAPÍTULO 10. CONSIDERACIONES GENERALES
À cos(pi)
ans =
-1
À ans
-1
À x = sin(3*pi/2)
ans =
-1
Àx
-1
À z = log(3);
Àz
ans =
1.0986
7. MatLab puede trabajar con números complejos sin ningún tipo de prob-
lema. La unidad imaginaria se representa por la variable i ó por la
variable j:
À sqrt(-2) À 2*i-i^4
ans = ans =
0+1.4142i -1.000+2.000i
205
À exp(2.3)
ans =
9.9742
À format long
À exp(2.3)
ans =
9.97418245481472
À who
Yourvariables are:
ans x z
À whos
instrucción clear:
À z = log(3)
ans =
1.0986
À clear z
Àz
Vectores y matrices
En esta sección veremos cómo MatLab puede trabajar con vectores y ma-
trices. De hecho, MatLab interpreta todas las variables como matrices1
(en particular, los escalares son matrices 1 × 1), y las operaciones habituales
(suma: +, resta: −, producto: ∗) las entiende por defecto como operaciones
matriciales.
MatLab trabaja con vectores y matrices siguiendo las siguientes direc-
trices:
1. Las matrices se indican mediante corchetes, de tal forma que los ele-
mentos de una misma fila se separan por comas (,) o espacios ( ), y las
distintas filas vienen separadas mediante punto y coma (;)
À M=[1,2,3;4 5 6;7, 8 9]
M=
1 2 3
4 5 6
7 8 9
2. Dado que los vectores son matrices de una sóla fila o columa, entonces
1
Obsérvese que el nombre MatLab procede de Matrix Laboratory.
207
208 CAPÍTULO 11. VECTORES Y MATRICES
À V=[1,2,3]
V=
1 2 3
À W=[1;2;3]
W=
1
2
3
À M(1,3)
ans =
3
À V(2)
ans =
2
À M(2,3)=0
M=
1 2 3
4 5 0
7 8 9
<inicio>:<incremento>:<fin>
209
À U=23:2:32
U=
23 25 27 29 31
À 1.2:-1.4:-4
ans=
1.2000 − 0.2000 − 1.6000 − 3.0000
ans=
25 27 29
À M(4:7)
ans =
2 5 8 3
À M(1:2,2:3)
ans =
2 3
5 0
À M(1,:)
ans =
1 2 3
À M(:,3)
ans =
3
0
9
À M(1:2,[1,3])
ans =
1 3
4 0
211
À diag(U)
À eye(3)
ans =
ans =
23 0 0 0 0
1 0 0
0 25 0 0 0
0 1 0
0 0 27 0 0
0 0 1
0 0 0 29 0
0 0 0 0 31
À ones(3)
À diag(diag(M))
ans =
1 1 1
ans =
1 1 1
1 0 0
1 1 1
0 5 0
0 0 9
À zeros(3)
À tril(M)
ans =
0 0 0
ans =
0 0 0
1 0 0
0 0 0
4 5 0
7 8 9
À zeros(3,4)
À triu(M)
ans =
0 0 0 0
ans =
0 0 0 0
1 2 3
0 0 0 0
0 5 0
0 0 9
À rot90(M)
À rand(2,3)
ans =
3 0 9
ans =
2 5 8
0.9501 0.6068 0.8913
1 4 7
0.3211 0.4860 0.7621
À A=[1,2;3,4];B=ones(2);
À W=A(:,1);
ans =
2 4
6 8
À A’ % Calcula la transpuesta
ans =
1 3
2 4
ans =
2 3
4 5
ans =
3 3
7 7
ans =
7
15
213
À A*W’
ans =
−2.0000 1.0000
1.5000 −0.5000
ans =
0
ans =
5743 8370
12555 18298
ans =
98
ans=
3 3
214 CAPÍTULO 11. VECTORES Y MATRICES
ans=
2 1
ans=
5
À A.*B
ans=
1 2
3 4
À B./A
ans=
1.000 0.5000
0.3333 0.2500
À A.^3
ans=
1 8
27 64
215
ans=
0 0.6931
1.0986 1.3863
À sin(W)
ans=
0.8415
0.1411
Problemas Propuestos
Problema 1. Calcular la norma euclı́dea2 de un vector arbitrario V.
M = (mij )1≤i,j≤n ,
tal que
½
1, si |i − j| = 1
mij =
0, en otro caso
2
Recuérdese que la norma euclı́dea de un vector v = (v1 , . . . , vn ), es:
q
2 2
kvk2 = |v1 | + . . . + |vn |
216 CAPÍTULO 11. VECTORES Y MATRICES
Capı́tulo 12
À f=’cos(x)’
f=
cos(x)
À g=’x^2+3*x-1’
g=
xˆ2 + 3 ∗ x − 1
Hay que destacar que MatLab considera simbólica cualquier expresión que
venga definida entre comillas simples. Las variables de estas expresiones son
variables simbólicas, es decir, sin valor numérico asignado. Utilizaremos la
instrucción symvar para conocer qué variables simbólicas posee una determi-
nada expresión:
À symvar(g)
ans =
’x’
217
218 CAPÍTULO 12. CÁLCULO DIFERENCIAL E INTEGRAL
À diff(f)
ans =
-sin(x)
À diff(g)
ans =
2*x+3
À h=’2*sin(x)-4*log(y)’;
À diff(h,’x’)
ans =
2*cos(x)
ÀÀ diff(h,’y’)
ans =
-4/y
ÀÀ diff(diff(h,’x’),’y’)
ans =
0
À diff(h,’x’,3)
ans =
-2*cos(x)
À int(h,’x’)
ans =
-2*cos(x)-4*log(y)*x
À int(h,’y’)
ans =
2*sin(x)*y-4*y*log(y)+4*y
À int(int(h,’x’),’y’)
ans =
-2*cos(x)*y-4*x*y*log(y)+4*x*y
À funcion=’tan(x)-x^2’
À int(funcion,’x’,1,2)
ans =
-log(-cos(2))-7/3+log(cos(1))
À int(int(h,’x’,1,2),’y’,2,3)
ans =
-2*cos(2)-12*log(3)+4+2*cos(1)+8*log(2)
220 CAPÍTULO 12. CÁLCULO DIFERENCIAL E INTEGRAL
Capı́tulo 13
Representación gráfica de
funciones
221
222 CAPÍTULO 13. REPRESENTACIÓN GRÁFICA DE FUNCIONES
variable curva. Cuantos más puntos tomemos, más “suave” será la función
construida:
À t=(0:0.5:10);
À curva=cos(t);
À plot(t,curva)
À X=[1:20];
À Y=X.^3;
À plot(X,Y)
223
Otra función, mucho más versatil que la anterior, y que también permite
representar funciones en el plano es fplot:
À fplot(’tan(x)’,[-1,1])
À fplot(’tan(x)’,[-1,1,0,4])
224 CAPÍTULO 13. REPRESENTACIÓN GRÁFICA DE FUNCIONES
À funciones=’[cos(x),sin(x),x^2]’
À fplot(funciones,[0,pi])
Por otro lado la instrucción básica utilizada por MatLab para representar
225
superficies es plot3:
À X=[1:20];
À Y=X.^2;
À Z=X.^3;
À plot3(X,Y,Z)
©¡ ¢ ª
x0 , x20 , x30 , x0 = 1, 2, . . . , 20 ,
À [X,Y]=meshgrid(-7.5:0.5:7.5);
À Z = sin(sqrt(X.ˆ2 + Y.ˆ2))./sqrt(X.ˆ2 + Y.ˆ2);
À surf(X, Y, Z)
226 CAPÍTULO 13. REPRESENTACIÓN GRÁFICA DE FUNCIONES
Manipulación de ecuaciones
ans =
[1]
[i]
[-i]
À solve(’cos(x) − x’,’x’)
ans =
.73908513321516064165531208767387
227
228 CAPÍTULO 14. MANIPULACIÓN DE ECUACIONES
À [x,y,z]=solve(’x+y+z=1’,’3*x+y=3’,’x-2*y-z=0’,’x’,’y’,’z’)
x=
4/5
y=
3/5
z=
−2/5
À fzero(’xˆ2 − 4’,1)
ans =
2
À fzero(’xˆ2 − 4’,-1)
ans =
−2
À [fzero(’x*sin(x)-1/2’,2), fzero(’x*sin(x)-1/2’,4)]
ans =
0.7408 2.9726
representará el polinomio
an xn + an−1 xn−1 + . . . + a1 x + a0 .
En este caso podemos utilizar la instrucción roots para calcular las raı́ces
229
ans =
-1.0000+1.4142i
-1.0000-1.4142i
Podemos expandir lo máximo posible una expresión algebraica, realizando
totalmente los productos y potencias mediante la instrucción expand. Es
necesario indicarle a MatLab las variables simbólicas utilizadas mediante la
instrucción syms.
À syms x y
À expand((x-1)^4)
ans =
x^4-4*x^3+6*x^2-4*x+1
À expand((cos(x+y))^2)
ans =
cos(x)^2*cos(y)^2-2*cos(x)*cos(y)*sin(x)*sin(y)+sin(x)^2*sin(y)^2
À expand(exp((x+y)^2))
ans =
exp(x^2)*exp(x*y)^2*exp(y^2)
ans =
(x-y)*(x^2+x*y+y^2)
À factor(x^4-4*x^3+6*x^2-4*x+1)
ans =
(x-1)^4
230 CAPÍTULO 14. MANIPULACIÓN DE ECUACIONES
À syms x y z
À simplify(exp(z*log(sqrt(x+y))))
ans =
(x+y)^(1/2*z)
À simplify(sin(x)^2+cos(x)^2)
ans =
1
À syms x y z
À collect(2*x-2*x*y,x)
ans =
(2-2*y)*x
À collect(y*x*z-x*z^3+x*y^2-2*x^2+y^2*z^4-log(z))
ans =
-2*x^2+(y*z-z^3+y^2)*x+y^2*z^4-log(z)
Hay que destacar que MatLab permite trabajar de manera muy eficiente
con polinomios ya que, como hemos visto anteriormente, el tratamiento de
los mismos lo hace como vectores. MatLab posee instrucciones particulares
para trabajar con ellos (como hemos visto con la instrucción roots para el
cálculo de sus raı́ces). Otras instrucciones especı́ficas para el tratamiento de
polinomios son las siguentes:
À vector=[1,2,3]
À poly(vector)
ans =
1 -6 11 -6
À matriz=[1,2,3;4,5,6;7,8,9]
À poly(matriz)
ans =
1.0000 -15.0000 -18.0000 -0.0000
À polinomio=[2,3,1,0,6]
À polyval(polinomio,3)
ans =
258
À p=[1,2,3,4,5]
À q=[5,4,3,2,1]
À conv(p,q)
ans =
5 14 26 40 55 40 26 14 5
À p=[1,2,3,4,5]
À poly2sym(p)
ans =
x^4+2*x^3+3*x^2+4*x+5
232 CAPÍTULO 14. MANIPULACIÓN DE ECUACIONES
À polinomio=x^2+x+1
À sym2poly(polinomio)
ans =
1 1 1
À polyder(p)
ans =
4 6 6 4
Capı́tulo 15
Programación en MatLab
233
234 CAPÍTULO 15. PROGRAMACIÓN EN MATLAB
#cuerpo de la f unción#
Cuando los parámetros de salida son más de uno, se escriben entre corchetes
y separados por comas. Si los parámetros de entrada son más de uno, se sep-
aran por comas. El cuerpo de la función es la sintaxis que la define, y debe
incluir comandos o instrucciones que asignen valores a los parámetros de sal-
ida. Cada comando o instrucción del cuerpo suele ir en una lı́nea que finaliza
con una coma o con un punto y coma en caso de que se definan variables
(para evitar repeticiones en las salidas al ejecutar la función). Una vez que la
función ha sido construida, se guarda en un M-fichero denominado #nombre
de la función#.m para su uso posterior.
Obsérvese que es recomendable guardar las funciones como M-ficheros
cuyo nombre sea igual al nombre de la propia función y en un subdirectorio
que esté reconocido por MatLab. Para ver los subdirectorios reconocidos
por MatLab, se ha de “cliquear” en File→Set Path. Si se quiere añadir
uno nuevo, basta con “cliquear” en Add Folder... (si sólo se quiere añadir el
directorio especificado a continuación), o en Add with Subfolders (si se quiere
añadir el directorio especificado a continuación con todos sus subdirectorios).
function m = media(vector)
% Esta función calcula la media aritmética
m = sum(vector)/length(vector)
Ası́ pues, si queremos calcular la media aritmética de los valores {1, 2, 3},
bastará con que tecleemos desde la ventana de comandos del MatLab:
À media([1,2,3])
ans=
2
15.3. VARIABLES LOCALES Y GLOBALES 235
À help media
Ası́
À feval(’media’,[1,2,3])
ans=
2
Problema. Construir una función que calcule las dos raı́ces de un polinomio
de segundo grado.
Los operadores relacionales de los que dispone MatLab son los siguientes:
< menor
<= menor o igual
> mayor
>= mayor o igual
== igualdad
∼= desigualdad
M = (mij )1≤i,j≤n ,
tal que
i−j
mij = .
i+j
15.5. CONTROL DE FLUJO 237
À matij(3)
ans=
0 -0.3333 -0.5000
0.3333 0 -0.2000
0.5000 0.2000 0
Problema. Construir una función que calcule la matriz de Hilbert de orden
n, siendo dicha matriz de la siguiente forma:
1
H = (hij )1≤i,j≤n , hij = .
i+j−1
Ası́, si lo ejecutamos:
À factorizacion
ans=
70
Problema. Construir, usando la instrucción while, una función que calcule
el número entero más grande, n, tal que
1 + 2 + . . . + n < 10100
15.5.3 La instrucción if
Mediante esta instrucción se pueden ejecutar secuencias de comandos si se
cumplen determinadas condiciones. La sintaxis de este bucle es la siguiente:
if condición
comandos
end
En este caso particular, se ejecutan los comandos si la condición es cierta.
No obstante podemos tener una sintaxis un poco más general:
if condición
comandos 1
else
comandos 2
end
En este caso se ejecutan los comandos 1 si la condición es verdadera, y se
ejecutan los comandos 2 si la condición es falsa.
Además, se pueden anidar varias instrucciones if, utilizándose para ello
la instrucción elseif:
if condición 1
comandos 1
elseif condición 2
comandos 2
elseif condición 3
comandos 3
··· ···
else
end
15.5. CONTROL DE FLUJO 239
M = (mij )1≤i,j≤n ,
tal que
½
1, si |i − j| = 1
mij =
0, en otro caso
siguiente:
switch expresión
case valor 1
comandos 1
case valor 2
comandos 2
···
otherwise
comandos finales
end
function valdet(m)
% Esta función calcula el valor del
% determinante de una cierta matriz.
switch det(m)
case 0
disp(’determinante igual a 0’)
case 2
disp(’determinante igual a 2’)
otherwise
disp(’determinante distinto de 0 y 2’)
end
15.6 Subfunciones
Las funciones construidas mediante M-ficheros pueden contener dentro de
su código definidas otras funciones. La función principal en el M-fichero se
15.6. SUBFUNCIONES 241
243