Beruflich Dokumente
Kultur Dokumente
Segunda edición
D ‹µ š ]•vW ž :>&K
&}š}PŒ (_ µ ] Œš W ž rrrr
]• y} ‰}Œš W ž D Œš Z} Œ_Pµ Ì
/^ EW
h µ o‹µ] Œ (}Œu Œ ‰Œ} µ ]•vU ]•šŒ] µ ]•vU }uµv] ]•v ‰· o] } šŒ v•(}Œu ]•v
•š } Œ ••o} ‰µ • Œ Œ o]Ì }v o µš}Œ]Ì ]•v •µ• š]šµo Œ •U • oÀ} Æ ‰ ]•v
‰Œ À]•š ‰}Œ o o ÇX ]Œ_i • ZK ~ všŒ} •‰ y}o Œ Z}• Z ‰Œ}PŒ (] }•• •] v •]š
(}š} }‰] Œ } • v Œ oP·v (Œ Pu vš} •š } Œ ~ÁÁÁX }vo] v ] X }uV õí óìî íõ óì l
õï îóî ìð ðó•Xi
I
II
Índice
Capítulo 20. Integración de ecuaciones diferenciales ordinarias con condiciones de Contorno o Frontera 477
20.1 El método del disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
20.2 Método de las diferencias finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
20.3 Métodos de colocación y de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
20.3.1 Método de colocación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
20.3.2 Método de los elementos finitos de Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
Apéndices 511
Bibliografía 677
E STE libro tiene que ver con el análisis numérico y la computación científica e ingenieril. Una rama de las matemá-
ticas que proporciona herramientas y métodos para resolver problemas de forma numérica siguiendo procedimien-
tos/algoritmos que lo garantizan.
El objetivo que persigue es desarrollar procedimientos computacionales detallados, capaces de ser implementados
en ordenadores digitales, y estudiar sus características de rendimiento y velocidad, con el fin de resolver problemas
concretos que surgen de la realidad cotidiana, en las ciencias y la ingeniería. Aquí presento su segunda edición, que
consolida mucho la anterior y amplía y mejora el alcance de los procedimientos y técnicas que he considerado.
El conjunto del libro es una síntesis de una exhaustiva recopilación —a modo de guía práctica profesional— de
muchos años dedicado a estudiar, investigar y enseñar lo practicado y aprendido en el desempeño de mi profesión de
ingeniero eléctrico y económico. En esencia, en todo lo que tiene que ver con las técnicas y algoritmos numéricos que nos
permiten, mediante el Cálculo y Análisis Matemático, y la Ingeniería de sus Métodos Numéricos, modelizar y simular
la realidad con la que nos enfrentamos a diario para identificarla y tratar de resolver los diversos problemas prácticos
que nos acucian y que la inteligencia humana decide enfrentar. Bastantes de los ejemplos que se exponen se refieren a
la ingeniería eléctrica —o están basados en ella–, aunque son extensibles a otros muchos campos del conocimiento y la
ciencia como trato de exponer.
Basándose en el mayor rigor cronológico y matemático posible, el contenido que cubre el libro se orienta hacia la
práctica con ordenador de los algoritmos y métodos que se presentan en diversas áreas del cálculo y análisis para resolver
problemas matemáticos numéricos de la envergadura que hoy se requiere. El instrumento de ayuda que propongo utilizar
para hacerlo con el máximo aprovechamiento práctico es M ATLAB. Su potencia de cálculo y aplicaciones en muchos
ámbitos de la ciencia, la ingeniería y las disciplinas sociales hace que con él se pueda resolver cualquier problema que
se le presente a un ingeniero o científico en la práctica o, cuando no lo pueda abarcar, sí diseñar a escala modos de
tratarlo por partes para integrarlos en sistemas más potentes. Hay alternativas a M ATLAB, por supuesto, pero con ésta se
puede llegar a casi cualquier resquicio de la computación científica, ingenieril y social, de forma relativamente sencilla
y compacta.
La forma de abordar cada unos de los capítulos, y su objetivo de derivar utilidades o programas que funcionen, no
aboca a dictar las recetas correspondientes para tal o cual cuestión concreta, sino que se sigue un procedimiento basado
en la disección de los asuntos generales, el análisis pormenorizado de sus componentes desde el rigor matemático más
adecuado según las referencias disponibles y, al final, en la elaboración de un programa o código que lo resuelve,
tratando de hacerlo de la forma más eficaz posible. Los diversos módulos o códigos listados se pueden combinar para
tratar problemas más grandes o que conlleven diversas etapas en su tratamiento. De esta manera sigo la máxima de
Confucio, 551-479 a.C., que ha presidido habitualmente mi trayectoria vital: “Me lo contaron y lo olvidé; lo vi y lo
entendí; lo hice y lo aprendí.”
Con lo que expone el libro también pretendo hacer mucho más intuitivas y fáciles de comprender cómo funcionan las
matemáticas y los algoritmos detrás de muchos de los procedimientos y métodos que hoy en día están presentes en los
desarrollos del Big Data, optimización matemática y otras cuestiones de la economía digital con la que convivimos todos
los días. Con los del libro como referencia básica se puede tratar de mejorarlos, hacerlos evolucionar o imaginar otros
para desarrollar las nuevas herramientas de optimización no lineal, integración de ecuaciones diferenciales complicadas,
etc. que se necesitan en estos desafíos y otros que se pondrán por delante muy pronto en el devenir de la ingeniería y las
ciencias sociales.
El resultado que es materialmente este libro no habría sido posible sin el concurso, inconsciente o perfectamente
consciente, de muchas personas individuales y colectivas. Me gustaría mencionar aquí las contribuciones concretas de
XIII
XIV j Prefacio a la segunda edición
autores —a los que he seguido fundamentalmente— como Stephen Boyd, colega de la Universidad de Stanford, David
Nualart, Ignacio Villanueva, Timothy Sauer, David Luenberger, Francisco Javier Sayas, David Aledo y Manuel Contre-
ras. Como decía Isaac Newton, gracias por permitirme auparme a sus hombros de gigantes. También a mis compañeros
del Departamento de Ingeniería Matemática de la Universidad Politécnica de Madrid. Sobre su esfuerzo me he permitido
elevar mis humildes conocimientos. Me gustaría también agradecer sus materiales e inmateriales aportaciones a todos
mis alumnos de la Escuela Técnica Superior de Ingenieros Industriales de Madrid, de los que he aprendido muchísimas
cosas en mi tarea como profesor en la cotidianidad de las clases en las que trato de transmitirles lo que creo es bueno
para su formación, además del conocimiento práctico sobre el que baso mis aportaciones.
A través de mi sito web trato de devolver modestamente todas esas aportaciones poniendo en el dominio público todas
mis lecciones académicas, el propio libro en su totalidad y los programas de ordenador que en él se utilizan o listan, así
como otros que he desarrollado a lo largo de los últimos años. El número de visitas del sitio demuestra no estar del todo
errado.
La elaboración palpable de este libro ha sido posible gracias esencialmente a LATEX. Un software, sistema de prepara-
ción de documentos, gran instrumento tipográfico para escritura científica e ingenieril —como se desee— que, junto a
un gran número de programas y aplicaciones que lo soportan y potencian, constituye una maravilla de la técnica digital
moderna de tipografía. Desde estas humildes líneas agradezco al Profesor Donald Knuth, de la Universidad de Stanford,
a quien tuve el privilegio de seguir en clase en esa formidable universidad, el prodigio que concibió, TEX, que constituye
su base esencial, y el ponerlo desde el primer momento en el dominio público. También he utilizado WinEdt, un editor
muy completo diseñado durante los últimos años para sacar el máximo partido de TEX y LATEX.
Esta edición profundiza bastante más que la anterior en los rudimentos matemáticos que fundamentan los algoritmos
que se presentan y las teorías que los soportan. Todos ellos están contenidos en el apéndice A. También mejora un gran
número de algoritmos y cómo usarlos con M ATLAB de forma más eficiente. Incorpora, igualmente, nuevos procedi-
mientos numéricos y mejoras en los incluidos en la edición anterior, de acuerdo con las últimas mejoras investigadas
y probadas. También se ha incluido un Índice de Materias para dar más consistencia al manejo del libro como obra de
consulta esporádica, o de conceptos básicos de matemáticas, estadística y economía que tienen que ver con la temática
general estudiada en el libro. Las referencias incluidas al final del volumen se han complementado y depurado según su
disponibilidad y actualidad.
¡Que les pueda ser útil!
Contenido
1.1 Por dónde empezar y qué herramientas vamos a manejar . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Algunos conceptos y principios básicos de los algoritmos numéricos . . . . . . . . . . . . . . . . . 3
1.3 Formato binario estándar IEEE para representar números. Precisión doble, palabra de 64 bits y
sistema normalizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.4 La aritmética en un ordenador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 Fuentes de errores en los algoritmos y modelos numéricos. Evaluación y análisis . . . . . . . . . . 14
1.6 Operaciones de cálculo numérico con vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . 22
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
E N nuestro quehacer diario, consciente e inconscientemente, realizamos muchas operaciones numéricas que confia-
mos ciegamente a los algoritmos numéricos, ordenadores y máquinas a nuestro alcance.
Como los ingenieros somos los que producimos una parte importante de esos procedimientos numéricos, es primordial
que sepamos con cierto detalle qué hacen, cuáles son sus cimientos y cómo lo hacen. Los algoritmos siguen unos
procedimientos formales en las máquinas donde funcionan que son fuente de muchas posibles mejoras, fallos latentes, y
problemas prácticos de implementación, interpretación y precisión. Es importante conocer todo este entorno para poder
interpretar adecuadamente los resultados que obtienen. Vamos a ello.
y luego
4 3 2
1 1 1 1 1 5
p D2 C3 3 C5 1D :
2 2 2 2 2 4
El número total de multiplicaciones en este caso es 3, para las potencias de 12 , más 4 después. Las sumas y restas son
las mismas.
Es evidente que, si esto hay que hacerlo muchas veces, el ahorro en tiempo de esta segunda forma de proceder puede
ser muy significativo.
¿Se puede hacer mejor aún? Probablemente. Consideremos el polinomio reescrito así
p.x/ D 1 C x 5 3x C 3x 2 C 2x 3
D 1Cx 5Cx 3 C 3x C 2x 2
D 1Cx 5Cx 3 C x 3 C 2x
D 1Cx 5Cx 3Cx 3Cx2
Horner
La mayoría de las ideas fundamentales de la ciencia son esencialmente sencillas y, por regla general,
pueden ser expresadas en un lenguaje comprensible para todos
Albert Einstein, 1879-1955.
En igualdad de condiciones la solución más sencilla es probablemente la correcta
Guillermo de Ockham, 1285-1347.
La línea de exposición que acabamos de presentar es el paradigma conceptual que destacaremos en este libro. En
resumen:
4 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
Nonlinear optimization: motivation, past and perspectives History
años 800 y 825 la obra Quitab Al Jabr Al Mugabala, donde se recogía el sistema de numeración indio y el concepto de
cero.
Al-Khwarizmi
La velocidad de los algoritmos para realizar operaciones numéricas, sus prestaciones y precisión dependen en gran
Philippe Toint (Namur) April 2009 30 / 323
medida de la exactitud con la que se pueden representar en la máquina donde se han de procesar los números, datos y
las operaciones a llevar a cabo.
Para diseñar algoritmos y codificarlos en un lenguaje que la máquina donde van a funcionar interprete adecuada-
mente, es aconsejable conocer cómo opera la aritmética de esa máquina y los parámetros esenciales de su sistema de
numeración.
Los ordenadores y calculadoras guardan la información numérica y alfanumérica que se les suministra mediante una
aproximación numérica, o codificación, de ella. En general, lo hacen empaquetándola en grupos de bits —unidad básica
de información—, denominados bytes (grupos de 8 bits).
Los ordenadores tienen varias formas estándar de representar un dato numérico:
Formato entero —sin decimales (integer)— o
Formato de coma o punto flotante (real): nuestro formato decimal, cuyo origen indo-arábigo se sitúa entre los
siglos IV y VI de nuestra era, y que fue transmitido a Europa gracias a la Escuela de Kerala, en la India.
Además de estos formatos se pueden gestionar otros tipos de datos, algunos de los cuales se indican en la tabla del
cuadro 1.1.
Cuadro 1.1
La representación de cualquier número entero en un ordenador en formato entero es exacta, siempre y cuando su valor
esté comprendido dentro de los límites que admite la máquina.
En formato real sólo es posible representar un conjunto finito de números de la recta real, F , (F R). Este conjunto
está formado por elementos de la forma
d1 d2 dp
f D˙ C 2 C C p ˇe
ˇ ˇ ˇ
D ˙0; d1 d2 dp ˇ e
La ristra de dígitos d1 , d2 , : : :, dp se denomina mantisa. En la tabla del cuadro 1.2 se pueden ver los parámetros esen-
ciales de los sistemas de numeración de varias máquinas y procesadores tradicionales.
1.2 Algunos conceptos y principios básicos de los algoritmos numéricos j 5
Máquina Precisión ˇ p L U
Simple 2 24 126 127
IEEE st. 754-1985 normali. Doble 2 53 1022 1023
Extendida 2 64 16381 16384
Simple 16 6 64 63
IBM mainframe Doble 16 14 64 63
Extendida 16 28 64 63
Simple 2 48 8192 8191
Cray (superordenador)
Doble 2 96 16383 16384
Calculadoras HP 10 12 499 499
1.2.1 Normalización
Un sistema de numeración se dice normalizado si al representar cualquier número que no es cero el primer dígito de la
mantisa es siempre distinto de cero.
Ventajas: I. En binario el primer dígito es siempre 1, por lo que no es necesario guardarlo. Cualquier otro
número sería ˙1;bbb : : : bb 2p .
II. Una única representación de un número.
III. No se malgastan dígitos (ceros) a la izquierda del primero no cero.
En un sistema normalizado un número distinto de cero f está acotado de la siguiente manera:
ˇ L jf j ˇ U C1 .1 ˇ p
/:
El conjunto F de números representables exactamente en una máquina no es evidentemente infinito: tiene un número
de elementos fijo igual a
2.ˇ 1/ˇ p 1 .U L C 1/ C 1:
Los distintos factores de esta expresión son:
2: pues dos son las opciones de signo.
ˇ 1: número de posibles valores distintos del dígito más significativo de la mantisa.
ˇ: posibles valores por cada uno de los p 1 dígitos restantes de la mantisa, incluyendo el cero.
U L C 1 valores posibles del exponente.
Estos elementos no están igualmente espaciados sobre la recta real sino en potencias sucesivas de ˇ.
Si el número que se quiere representar es uno de estos elementos se guardaría en toda su exactitud; si no, una aproxi-
mación.
Ejemplo 1.1 Si se trabaja en una máquina normalizada en la que ˇ D 2, p D 2 (realmente habría 3 dígitos), L D 1
y U D 1, los 25 elementos del conjunto F de esa máquina, y sus valores, son los representados por muescas en la recta
de la figura que sigue.
En el sistema de “juguete” anterior, el vacío central se podría rellenar con elementos cuya mantisa no empieza por 1.
Se podrían añadir 3 más a cada lado del cero, siendo el más pequeño positivo representable el .0;01/2 2 1 D
.0;125/10 . En el sistema de “juguete” anterior, el vacío central se podría rellenar con
La desnormalización amplía
elementos cuyael mantisa
rango de no
números representables,
empieza aunque la
por 1. Se podrían precisión
añadir de esos
3 más de más
a cada ladoes menor que la
general al tener del
menos dígitos no cero.
cero, siendo el más pequeño positivo representable el
1
.0;01/2 2 D .0;125/10.
1.2.2 Sistema binario de numeración
Es el sistemadeLa
numeración universal amplía
desnormalización con el que trabajan
el rango decasi todas las
números máquinas de cálculo
representables, aunqueelectrónicas
la y los ordena-
dores a nuestra disposición. 19/133
En este sistema, cualquier número se expresa mediante una ristra de dígitos bi de la forma
a b c 1 2 3 b2 b1 b0 ,b 1b 2
d e f g 9 4 6 5
Se ve que el proceso llega un momento que se repite indefinidamente cada cuatro pasos. Es decir,
0;7 D 0;101102 :
En resumen, el número 53;710 es en binario 110101;101102 .
Las máquinas con las que trabajamos habitualmente hacen esto de forma recurrente y muy eficazmente.
Para convertir cualquier número del sistema binario al decimal, con el mismo esquema formal, habría que hacer esto:
Parte entera Se suman las sucesivas potencias de 2. Por ejemplo, 101012 D 124 C023 C122 C021 C120 D 2110 .
Parte fraccionaria Si es finita, se procede de forma similar, por ejemplo
1 1 1 1 1 1 11
0;10112 D C 3 C 4 D C C D :
2 2 2 2 8 16 16 10
Si es infinita, lo más fácil es usar el desplazamiento por potencias de 2.
Por ejemplo, si se quiere convertir a base 10 el número x D 0;10112 , primero se multiplica por 24 , lo que desplaza
la coma cuatro posiciones a la derecha; luego se resta el original:
24 x D 1011;1011
x D 0000;1011:
Restando
24 1 x D 10112 D 1110 :
Luego se despeja x, quedando que x D 11=1510 :
Otro ejemplo: x D 0;10101.
Primero se multiplica por 22 : y D 22 x D 10;101. La parte entera es 2 y con la parte fraccionaria, z D 0;101, se
procede como antes:
23 z D 101;101
z D 000;101:
De aquí, restando, 7z D 5, por lo que la parte fraccionaria es z D 5=7.
El resultado 22 x D y D 2 C 5=7, por lo que x D 2 2 y D 19=2810 .
El cuadro 1.3 lista los formatos habituales con los que un ordenador presenta a un usuario la información que guarda
en binario de un número cualquiera.
Por ejemplo, comprobemos en una sesión de trabajo de M ATLAB como éste nos devuelve en hexadecimal ciertos datos
que le damos. El resultado se puede ver en le cuadro 1.4.
8 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
Cuadro 1.4
63 62 52 51 0
S Exponente Mantisa
El bit de signo es S : 0 para números positivos; 1 para los negativos. El exponente (11 bits) no tiene bit de signo: cualquier
exponente1 es 0 Exp 2047. Para que sea siempre positivo tiene un sesgo, el número 1023 D 210 1.
La representación con este estándar de cualquier dato numérico es:
0 01111111111 0000000000000000000000000000000000000000000000000000
C1; 0000000000000000000000000000000000000000000000000001 20 ;
0 10000000010 0010 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1101 D
D 4022C C C C C C C C C C CD:
1 2047 D 211 1
1.3 Formato binario estándar IEEE para representar números. Precisión doble, palabra de 64 bits y sistema normalizado j 9
Cuadro 1.5
La mantisa se ha troceado en grupos de 4 bits para hacerlos corresponder con el formato hexadecimal. El exponente
es 1023 C 3 D 1026 D .10000000010/2 . Añadiendo el bit de signo, los doce primeros bits, en hexadecimal, resultan
40216 . Hay que tener en cuenta que al ajustar un número a lo que admite una máquina muchas veces se pierde algo de
información como veremos inmediatamente.
Los resultados de la sesión con M ATLAB de la parte izquierda del cuadro 1.5 corroboran la representación interna de
1=0 D 1 y 0=0 D NaN.
Si jugamos un poco más con las posibilidades que nos permite M ATLAB, para comprobar qué pasa en la realidad con
estos conceptos y con ciertos números dentro de la máquina, se obtiene el resto de lo que se muestra en dicho cuadro 1.5.
Definición 1.2 Se denomina epsilon de una máquina, maq K , a la distancia entre 1 y el número más pequeño mayor
52
que uno del sistema de numeración de esa máquina. Si éste es el IEEE estándar de precisión doble, maq
K D2 :
Para calcular el epsilon de una máquina se puede utilizar epsilon.m, un script de M ATLAB que se lista a continua-
ción.
function eps=epsilon
eps=1;
while 1+eps~=1
eps=eps/2;
end
eps=eps*2;
end
>> eps1=epsilon
eps1 =
2.220446049250313e-016
>> eps % El de MATLAB
eps =
2.220446049250313e-016
Los números positivos más grande y más pequeño que M ATLAB puede representar en precisión doble son:
Con la utilidad vpa() de M ATLAB, que nos permite realizar operaciones con la precisión que queramos, se obtiene
lo que expresa el cuadro 1.6 a la izquierda. Si se hacen algunas comprobaciones con M ATLAB utilizando realmax y
realmin resulta lo que se indica en ese cuadro a la derecha.
10 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
>> realmin
ans =
2.225073858507201e-308
>> realmax
>> digits(35) Variable Precision Arithmetic
ans =
>> vpa(’(1-2^(-53))*2^1024’) 1.797693134862316e+308
>> realmax*2
ans = ans =
1.7976931348623157081452742373170436*10^308 Inf
>> (1-2^(-53))*2^1024 >> realmin/2
ans =
ans = 1.112536929253601e-308
Inf >> realmin/(2^52)
ans =
>> 2^(-1022) 4.940656458412465e-324
ans = >> ans/2
2.225073858507201e-308 ans =
0
>> vpa(’2^(-1028)’)
ans =
3.4766779039175021610784886208318814*10^(-310)
Cuadro 1.6
Los valores típicos con los que se trabaja en esta precisión son los de la tabla del cuadro 1.7. La tabla del 1.8 explicita
una comparación de los parámetros más significativos de las precisiones doble y sencilla en un ordenador estándar.
S E xp M Valor
0 11111111 00000100000000000000000 NaN
1 11111111 00100010001001010101010 NaN
0 11111111 00000000000000000000000 1
0 10000001 10100000000000000000000 C1 2129 127 1;101 D 6; 5
0 10000000 00000000000000000000000 C1 2128 127 1;0 D 2
0 00000001 00000000000000000000000 C1 21 127 1;0 D 2 126
0 00000000 10000000000000000000000 C1 2 126 0;1 D 2 127
0 00000000 00000000000000000000001 C1 2 126 2 23 D 2 149
0 00000000 00000000000000000000000 0
1 00000000 00000000000000000000000 -0
1 10000001 10100000000000000000000 1 2129 127 1;101 D 6; 5
1 11111111 00000000000000000000000 1
Cuadro 1.7: Valores de cómo representa diversos números un ordenador en precisión sencilla
con los primeros 52 bits de la mantisa encuadrados o encajados en el compartimento reservado por la máquina para él.
Ahora bien, ¿cómo se encaja adecuadamente una ristra infinita de decimales binarios en el sistema de numeración de
IEEE?
1.3 Formato binario estándar IEEE para representar números. Precisión doble, palabra de 64 bits y sistema normalizado j 11
maqui
K na 21 24 10 7 21 53 10 16
Cuadro 1.8: Diferencias más significativas entre IEEE en precisión sencilla y precisión doble
¿Truncándola o cortándola? Es decir, abandonando o ignorando los que no caben en esa “caja”.
¿Redondeándola? En otras palabras, haciendo algo más inteligente para que se pierda la menor cantidad de infor-
mación de ese número.
El modelo general de cómo un ordenador representa en coma flotante (formato decimal) un número lo definen
En una máquina ficticia que trabajase con ˇ D 10 y con p D k el efecto de redondeo y truncamiento sería:
Truncando, el número real
x D C0;d1 d2 d3 : : : dk dkC1 dkC2 : : : 10n
perdería los dígitos dkC1 ; : : : quedando C0;d1 d2 d3 : : : dk 10n .
Redondeando, se añadiría 5 10n .kC1/ al número en cuestión y luego se truncaría.
Si por ejemplo en una máquina ficticia p D 3, el número 0;3246 se representaría con 0;324 truncando y con 0;325
redondeando. El error de redondeo interno de una máquina es debido a ese truncamiento o redondeo.
La técnica o regla de redondeo al más cercano de IEEE consiste en sumar un 1 al bit número 52 si el 53 es 1, o
no hacer nada –redondear por lo bajo– en el 52 si el 53 es 0.
Excepción: Si los bits que siguen al 52 son 10000 : : : (a medio camino entre el valor superior e inferior) se redondea de
tal manera que el 52 sea siempre 0.
Con este criterio el número 9;4 quedaría así:
C1; 0010110011001100110011001100110011001100110011001101 23 :
52
Se ha desechado la ristra 0;1100 2 23 D 0;0110 2 51
23 D 0;4 2 48
y se ha sumado 2 52
23 D 2 49
al
redondear.
En resumen
f l.9;4/ D 9;4 C 2 49 0;4 2 48
D 9;4 C 1 0;8 2 49
D 9;4 C 0;2 2 49 :
12 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
49
Se ha cometido así un error de redondeo al guardarlo de 0;2 2 .
Definición 1.3 El error absoluto de la representación x del número x en un ordenador es jx
x j.
El error absoluto de la representación de un número x en el sistema de coma, o punto, flotante de un ordenador es
jx f l.x/j.
Definición 1.4 El error relativo de la representación x del número x en un ordenador es
jx x j
:
jxj
El error relativo de redondeo del sistema de numeración IEEE, f l.x/, está acotado de la siguiente manera
jx xj 1
maq
K :
jxj 2
El redondeo afecta a la representación de todos los resultados de las operaciones pues f l.x/ D x.1 C ı/, jıj <
1
K .
2 maq
Cuadro 1.9: Operación de suma de los números 3 y 14 dentro de un ordenador binario moderno
>> x=2^30
x =
1.073741824000000e+009
>> 2^-22
ans =
2.384185791015625e-07
>> x+2^-22==x
ans =
0
>> x+2^-23==x
ans =
1
>> 2^-23
ans =
1.192092895507813e-07
Cuadro 1.10
1.4 La aritmética en un ordenador j 13
El sistema de numeración de un ordenador, F , tiene definidas entre sus elementos todas las operaciones aritméticas
habituales. Dada la finitud de F son operaciones aritméticas de precisión finita.
Si ✷ designa cualquiera de las cuatro operaciones aritméticas elementales C, , y , y ja✷bj pertenece al conjunto
G, antes definido, el resultado de cualquier cómputo o cálculo en ordenador con ellas dará como resultado f l.a✷b/.
Cualquier operación aritmética en ordenador cumple que
f l.a✷b/ D .a✷b/.1 C ı/
1
donde jıj < maq
2 K :
Si las operaciones aritméticas elementales en una máquina se representan por ˚, , ˝ y ˛, el resultado de aplicarlas
será siempre:
a ˚ b D f l.f l.a/ C f l.b//I
a b D f l.f l.a/ f l.b//I
a ˝ b D f l.f l.a/ f l.b// y
a ˛ b D f l.f l.a/ f l.b//:
El error relativo de cualquiera de estas operaciones es siempre entonces
ja✷b f l.a✷b/j 1
maq
K :
ja✷bj 2
Para ver lo que esto implica en una máquina ficticia con ˇ D 10, p D 3, en la que la representación se hace mediante
truncamiento:
La operación aritmética .10 3 C 1/ 1 dará como resultado
3
f lŒf l.10 C 1/ 1 D 0:
El error relativo es 1 (el 100 %). Por el contrario,
3 3
f lŒ10 C f l.1 1/ D 10 ;
da un resultado exacto.
La aritmética de coma flotante, por consiguiente, no es asociativa: .1 C =2/ C =2 D 1, pero 1 C .=2 C =2/ > 1.
Ni distributiva: .a C b/ c ¤ a c C b c.
Juguemos un poco con M ATLAB otra vez para comprobar qué pasa en la realidad interna de una máquina normal.
Recordemos que
f l.x/ D 1 si 1 < x 1 C M
f l.x/ D 1 C 2m si 1 C m < x < 1 C 2m :
Una sesión de trabajo llevando la mantisa a sus límites y actuando sobre el número 9;4, podría resultar en algo como lo
que se ve en el cuadro 1.11.
El error en la codificación de 3;4 era 0;2 2 49 . Cuando se le resta 9 el error sigue siendo el mismo pues la represen-
tación de este número es exacta. El número 0;4 tiene un error de representación de f l.0;4/ D 0;4 C 0;1 2 52 , lo que
hace que el error final sea
0;2 2 49 0;1 2 52 D 0;1 2 52 24 1 D 3 2 53 :
1 5
Ejemplo 1.2 Supongamos que se quiere operar con los números x D 3
ey D 7
en una máquina con ˇ D 10 y p D 5
que usa truncamiento.
La representación en esa máquina de esos números será
f l.x/ D 0,33333 100 y f l.y/ D 0,71428 100 :
Los resultados de diversas operaciones y sus errores son:
Operación Resultado Valor Real Error Absoluto Error Relativo
1 4 4
x˚y 0,10476 10 22=21 0,190 10 0,182 10
y x 0,38095 100 8=21 0,238 10 5
0,625 10 5
>> e = 1 - 3*(4/3 - 1)
e = >> 1+(2^53-2^53)
2.2204e-016 ans =
>> a = 0.0; 1
for i = 1:10 >> sin(pi)
a = a + 0.1; ans =
end 1.2246e-016
a == 1 >> format long
ans = >> x=9.4
0 x =
>> b = 1e-16 + 1 - 1e-16; 9.400000000000000
c = 1e-16 - 1e-16 + 1; >> y=x-9
b == c y =
ans = 0.400000000000000
0 >> z=y-0.4
>> (2^53 + 1) - 2^53 z =
ans = 3.330669073875470e-016
0 >> 3*2^-53
>> 1+2^53-2^53 ans =
ans = 3.330669073875470e-016
0
Cuadro 1.11
Como el error máximo relativo es 0;267 10 4 , la aritmética de ese ordenador para estos cálculos produce errores
satisfactorios.
Usemos ahora estos números: u D 0;714251, v D 98765;9 y w D 0;111111 10 4 .
Su representación en esa máquina será
Hagamos unas operaciones sencillas. Como muestra la tabla de resultados que sigue, y u produce un error absoluto
pequeño pero un error relativo bastante grande:
La división posterior por w y multiplicación por v amplifica el error absoluto sin modificar el error relativo.
Por el contrario, la adición del número grande v y el pequeño u produce un error absoluto grande pero no un gran
error relativo.
El error de cancelación, o de pérdida de relevancia o significancia, se refiere a la pérdida de dígitos que conlleva la
representación final de ciertas operaciones —resta esencialmente— entre números de magnitud similar, o muy grandes
y muy pequeños, que dan un resultado con un número de dígitos representable muy pequeño.
Como acabamos de ver, para llevar a cabo sumas y multiplicaciones de dos números, primero son convertidos a un
formato de exponente común. Si el desplazamiento que ello conlleva en uno de los dos supera los dígitos significativos
que la máquina permite, se puede perder toda la información de ese número, o introducir una nueva, incontrolable, que
afecte mucho al resultado final. Por ejemplo, el resultado de las operaciones que siguen de M ATLAB puede llamar a
engaño.
>> format long
>> a=0.483525656234498
a =
0.483525656234498
>> b=0.483525534699123
b =
0.483525534699123
>> a-b
ans =
1.215353749861592e-007
Veamos qué pasa en M ATLAB con x=1.e-15 tal como se hace en el cuadro 1.12. Al añadirse a 1:e 15 un 1, la mantisa
Cuadro 1.12
resultante sólo tiene un dígito significativo, o poco más, con respecto a la información originalmente suministrada.
Ejemplo 1.3 Considérese ahora la función f .x/ D .1 cos x/=x 2 . Si x D 1;2 10 5
, el valor de cos x, redondeado a
diez2 dígitos significativos, es
c D 0;9999999999
por lo que
1 c D 0;0000000001:
La representación por el ordenador de 1 c sólo posee un dígito real.
2 El valor con treinta dígitos es 0,999999999928000000000863999999.
16 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
Utilicemos ahora la rutina vpa() de M ATLAB con distintos números de dígitos significativos:
>> vpa(’1-cos(0.000012)’,10)
ans =
.1e-9
>> vpa(’1-cos(0.000012)’,30)
ans =
.71999999999136000000e-10
Para evitar de una forma inteligente el error de cancelación de este caso, como cos x D 1 2 sen2 .x=2/, es fácil ver
que
1 sen.x=2/ 2
f .x/ D :
2 x=2
Calculando f .x/ mediante esta fórmula y aproximando sen.x=2/ con 10 dígitos significativos, el resultado es f .x/ D
0;5, que se aproxima al valor exacto en 10 dígitos.
>> vpa(’sin(0.000012/2)^2’,10)/vpa(’(0.000012/2)^2’,10)/2
ans =
.50000000000000000000000000000000
>>
En general, no es buena práctica dar por buenos números de magnitud muy pequeña resultado de una diferencia de
números mucho más grandes.
La representación en el entorno de 0 de
.1 cos x/ 1 sen.x=2/ 2
f .x/ D y g.x/ D :
x2 2 x=2
es la de la figura 1.1. La impresión de un cierto caos de precisión cerca de 0 es indudable.
1 − cos2 x sin2 x
f (x) = , g(x) =
x2 1.5 Fuentes de errores en los algoritmos
x2 y modelos numéricos. Evaluación y análisis j 17
1.001
f
g
0.999
−0.01 0 0.01
.1 cos x/
results of cos xFigura
and1.1:
sinOscilaciones de f .x/ D to 10
x were rounded en el entorno de 0
x 2 decimal digits; other
calculations are exact
La suma de términos se trunca después del 25, pues los siguientes no aportan dígitos significativos a la precisión del
resultado. Problem conditioning and stability of algorithms 17-7
El valor real de e 5,5 es 0,00408677. Como se puede comprobar, la diferencia con 0,0026363 es muy importante:
absoluta y relativamente.
El problema con esta forma de calcular e 5,5 surge de la suma y resta de valores relativamente próximos en magnitud,
con la consiguiente pérdida de dígitos significativos por cancelación.
Una alternativa mejor es obtener el desarrollo en serie de e 5;5 y luego calcular el recíproco. Sería:
5;5 1 1
e D D D 0;0040865:
e 5;5 1 C 5;5 C 15;125 C
Lo que lista el cuadro 1.13 es un programa de M ATLAB para calcular e x por desarrollo en serie y determinar los
errores que se cometen y cuándo ocurren.
Cuadro 1.13
En el cuadro 1.14 se lista la sesión interactiva con M ATLAB que utilizamos para calcular e 10 con el código anterior
(con una precisión mínima de 5e 12) y el gráfico del error absoluto respecto del número de términos considerado en
la serie.
Para k < 48 el error que se comete al evaluar la serie con la fórmula lo determina el truncamiento de la misma. A
partir de k > 48 es el error de redondeo interno el que evita que se pueda mejorar el resultado.
Este ejemplo pone de manifiesto la interdependencia entre los errores de redondeo internos de la máquina por la
representación de números y los errores debidos al truncamiento de series de cálculos que llevan a efecto determinados
18 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
4
10
2
>> expSeriesPlot(-10,5e-12) 10
Aproximación en serie de exp(-10.000000)
k término k suma Error abs. serie 0
10
1 -1.000e+001 1.000e+000 1.000e+000
2 -1.000e+001 -9.000e+000 9.000e+000 −2
10
3 5.000e+001 4.100e+001 4.100e+001
Error absoluto
. −4
10
.
49 8.055e-014 4.540e-005 1.258e-013 −6
50 -1.644e-014 4.540e-005 1.422e-013 10
algoritmos. Lo que añade no poca incertidumbre adicional a los resultados de cualquier algoritmo numérico.
La forma de evitarlo consiste en usar el signo de b para determinar cuál de las expresiones de (1.1) o (1.2) produciría
menor error de cancelación, y usarla para calcular la raíz de mayor valor absoluto, de acuerdo con la fórmula
p
b C signo.b/ b 2 4ac
x1 D :
2a
Como ax 2 C bx C c D a.x x1 /.x x2 /, lo que implica que ax1 x2 D c, la otra raíz se podría calcular usando la
expresión
c
x2 D :
ax1
1.5 Fuentes de errores en los algoritmos y modelos numéricos. Evaluación y análisis j 19
x1 D 100000;00 y x2 D 0;00001
Taylor
se tiene que
f .x C h/ D f .x/ C f 0 .x/h C f 00 . /h2 =2;
para algún 2 Œx; x C h. Es decir,
Esta expresión nos dice que el error de la aproximación por diferencias finitas, resultado del truncamiento de esa
fórmula a partir del tercer término, estará acotado pues M h=2, donde M acota jf 00 .t/j en un t cerca de x.
Suponiendo por otro lado que el error interno del cálculo de la función es , el error de redondeo interno de evaluar la
derivada por la fórmula de diferencias finitas estará acotado por 2= h.
El error total del cálculo en la derivada está acotado en consecuencia por la suma de los dos posibles componentes de
error,
Mh 2
C :
2 h
El primer término decrece, y el segundo se incrementa, al decrecer h
Haciendo la derivada de esta suma con respecto a h igual a cero, se obtiene que la misma se minimiza cuando
p
h 2 =M :
Para la función f .x/ D sen.x/, en x D 1, tomandopM D 1, el error total de la aproximación por diferencias finitas se
representa en la figura 1.2. Su mínimo es 10 8 .
El error de truncamiento en la aproximación por diferencias finitas puede reducirse usando la fórmula centrada:
f .x C h/ f .x h/
f 0 .x/ :
2h
En términos generales, los errores de redondeo tienden a prevalecer en los cálculos algebraicos de algoritmos que
llegan a una solución en un número de pasos finito, mientras que los de truncamiento sobresalen en los que se utilizan
derivadas, integrales, y no linealidades en general. Éste suele ser el caso de los algoritmos de procesos infinitos o cuasi
infinitos.
20 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
2
10
0
10
−2
10
−4
10
total error
−6
10
error
−8
10
−10
10
−12
10
−14
10 truncation error rounding error
−16
10
−18
10
−16 −14 −12 −10 −8 −6 −4 −2 0
10 10 10 10 10 10 10 10 10
step size
Figura 1.2: Error total de la aproximación por diferencias finitas de f .x/ D sen.x/
Si se utilizan 1010 términos, el valor que se obtiene con este código de M ATLAB es
Analicemos, por último, con la utilidad vpa(), esta variante del problema
>> i=vpa(’1’,30)
i =
function suma = Suma_de_serie_3(i,j)
1.0
%
>> tic, Suma_de_serie_3(i,200000), toc
suma=i*0;
ans =
for i1=i:j, suma=suma+1/i1/i1; end
1.6449290668607264156390818334169
end
Elapsed time is 282.695168 seconds.
>>
El tiempo en los cálculos se dispara pues la utilización de vpa() tiene un coste elevadísimo en términos de operaciones
a realizar.
Wilkinson
Si se expande
w.x/ D x 20 210x 19 C 20615x 18 1256850x 17 C 53327946x 16 1672280820x 15 C
C40171771630x 14 756111184500x 13 C 11310276995381x 12
135585182899530x 11 C 1307535010540395x 10 10142299865511450x 9 C
C63030812099294896x 8 311333643161390640x 7 C
C1206647803780373360x 6 3599979517947607200x 5 C
C8037811822645051776x 4 12870931245150988800x 3 C
C13803759753640704000x 2 8752948036761600000xC
C2432902008176640000:
Saquemos partido durante un rato a este polinomio mediante una sesión de M ATLAB en la que utilizamos también las
herramientas de la matemática simbólica del mismo, todo ello según se indica el cuadro 1.15.
Veamos qué pasa si codificamos la expresiones anteriores en una function() y probamos más cosas para tratar de
resolver la ecuación con el polinomio de Wilkinson. El resultado está en el cuadro 1.16. La diferencia que debería dar
fzero(), según nuestro código, es cero, pues 16 es una de sus raíces.
22 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
>> n = 20;
>> syms x % ENTRAMOS EN LOS CÁLCULOS SIMBÓLICOS DE MATLAB
>> P20 = prod(x-(1:n))
P20 =
(x - 1)*(x - 2)*(x - 3)*(x - 4)*(x - 5)*(x - 6)*(x - 7)*(x - 8)*(x - 9)*(x - 10)*(x - 11)*
(x - 12)*(x - 13)*(x - 14)*(x - 15)*(x - 16)*(x - 17)*(x - 18)*(x - 19)*(x - 20)
>> P = expand(P20)
P =
x^20 - 210*x^19 + 20615*x^18 - 1256850*x^17 + 53327946*x^16 - 1672280820*x^15 +
40171771630*x^14 - 756111184500*x^13 + 11310276995381*x^12 - 135585182899530*x^11 +
1307535010540395*x^10 - 10142299865511450*x^9 + 63030812099294896*x^8 -
311333643161390640*x^7 + 1206647803780373360*x^6 - 3599979517947607200*x^5 +
8037811822645051776*x^4 - 12870931245150988800*x^3 + 13803759753640704000*x^2 -
8752948036761600000*x + 2432902008176640000
Cuadro 1.15
Cuadro 1.16
i
n
yi D aij xj :
j D1
Œm n Œn 1 D Œm 1 :
— – —
A x y
1.6 Operaciones de cálculo numérico con vectores y matrices j 23
Producto y D Ax
Hacer y D 0
for i D 1 to m
for j D 1 to n
y.i/ D y.i/ C a.i; j /x.j /
end
end
Cuadro 1.17
En la zona de trabajo de M ATLAB se haría sin más que dar la instrucción >> y=A*x.
Si el algoritmo lo programamos con un conjunto de instrucciones como las que “entiende” M ATLAB se obtendría algo
así:
function y=Ax(A,x)
[m n]=size(A);
y=zeros(m,1);
for i=1:m
for j=1:n
y(i)=y(i)+A(i,j)*x(j);
end
end
end
En este script —o guión de instrucciones para M ATLAB— el bucle con el índice j materializa el producto interior de
la fila i de A por el vector x.
También se podría hacer algo un poco más sofisticado como lo que sigue.
function y = MatVecF(A,x)
[m n] = size(A);
y = zeros(m,1);
for i=1:m
y(i) = A(i,:)*x;
end
end
Éste sería el algoritmo programado en su versión por filas: una sucesión de productos interiores: los vectores fila de A,
A(i,:) en código de M ATLAB, por el vector x.
El algoritmo por columnas materializa que la operación Ax es equivalente a efectuar una combinación lineal de los
vectores columna de A. Por ejemplo,
2 3 2 3 2 3 2 3 2 3
12 17C28 1 2 23
7
y D Ax D 4 3 4 5 D 4 3 7 C 4 8 5 D 7 4 3 5 C 8 4 4 5 D 4 53 5 :
8
56 57C68 5 6 83
function y = MatVecC(A,x)
[m n] = size(A);
y = zeros(m,1);
for j=1:n
y = y + A(:,j)*x(j);
end
end
La operación Ax conlleva realizar O.mn/ multiplicaciones e igual número de sumas/restas. El que lleven más o menos
tiempo de ordenador dependerá de cómo se realiza la operación y la forma de almacenar en la memoria la matriz A.
Si la matriz se guarda por columnas (lo habitual por defecto), la operación en su forma por columnas requerirá menos
tiempo que la versión por filas, pues los coeficientes a los que se accede están contiguos en la memoria y se pueden
conseguir de una sola vez: una ristra de ellos: row, o renglón.
24 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
Para realizar la operación y T D x T A, en vez de y D Ax, los programas anteriores se convertirían en los que siguen.
i
r
cij D ai k bkj ;
kD1
para todo 1 i m y 1 j n. El algoritmo y su codificación directa en M ATLAB son los que se presentan en el
cuadro 1.18.
i i i
j j j j
= =
cij
r r
Figura 1.4 A b( j ) c( j )
a'(i ) b( j ) cij
La matriz resultado C también se puede ver como la suma de r matrices de rango uno, cada una resultado del producto
Según esto,
i
r
Todos estos métodos realizan O.mnr/ multiplicaciones e igual número de sumas/restas. El procedimiento más ade-
cuado para programarlo en ordenador dependerá de cómo se almacenan en él las matrices. El más eficaz suele ser el que
denominábamos MatMatVec. Lo veremos más adelante con un ejemplo.
Strassen
Esta operación, en términos de bloques, necesita 8 multiplicaciones y 4 sumas en su forma tradicional. Strassen propone
reagrupar las operaciones de tal manera que sólo se necesiten 7 multiplicaciones y 18 sumas. Para ello, haciendo las 7
multiplicaciones
C 11 D P 1 C P 4 P5 C P7
C 12 D P 3 C P 5
C 21 D P 2 C P 4
C 22 D P 1 C P 3 P 2 C P 6:
Generalizando, si las 7 multiplicaciones son de matrices n n, como las submatrices son .n=2/ .n=2/, se requieren
7 3 7 2 9 2
n multiplicaciones C n .n 2/ C n sumas:
8 8 2
function C = strass(A,B)
% Calcula C=AxB mediante la fórmula de Strassen
% A,B matrices n x n; n potencia de 2.
%
n = length(A);
if n-2^(log2(n))~=0, error(’n no es pot. de 2’); end
if n <= 16, C = A*B;
else
m = n/2; u = 1:m; v = m+1:n;
P1 = strass(A(u,u)+A(v,v),B(u,u)+B(v,v));
P2 = strass(A(v,u)+A(v,v),B(u,u));
P3 = strass(A(u,u),B(u,v)-B(v,v));
P4 = strass(A(v,v),B(v,u)-B(u,u));
P5 = strass(A(u,u)+A(u,v),B(v,v));
P6 = strass(A(v,u)-A(u,u),B(u,u) + B(u,v));
P7 = strass(A(u,v)-A(v,v),B(v,u)+B(v,v));
C = [P1+P4-P5+P7 P3+P5; P2+P4 P1+P3-P2+P6];
end
end
Cuadro 1.19
Para conocer los tiempos de cálculo y prestaciones de estas fórmulas y los anteriores algoritmos de multiplicación,
utilizaremos un programa, TiemposAxB, que multiplica dos matrices cuadradas de un tamaño dado con todos los algo-
ritmos presentados. Sus resultados se listan en el cuadro 1.20. Como se puede observar en él, al ir doblando el tamaño
de las matrices, los tiempos se multiplican aproximadamente por 23 . Las precisiones son muy parecidas.
>> TiemposAxB(256)
Error en Int: 7.105427e-014
Error en Exte: 1.705303e-013
Error en Vec: 1.705303e-013
Error en Strass: 7.531753e-013
Tiempos: Int: 0.374; Exte: 0.827; Vec: 0.016; Strass: 0.109; MATLAB: 0.000
>> TiemposAxB(512)
Error en Int: 1.136868e-013
Error en Exte: 3.694822e-013
Error en Vec: 3.694822e-013
Error en Strass: 3.041123e-012
Tiempos: Int: 1.607; Exte: 2.730; Vec: 0.172; Strass: 0.640; MATLAB: 0.062
>> TiemposAxB(1024)
Error en Int: 3.410605e-13
Error en Exte: 1.108447e-12
Error en Vec: 1.108447e-12
Error en Strass: 1.642775e-11
Espacios normados
3.1
Tiempos: Int: 10.516; Exte: 17.906; Vec: 0.625; Strass: 2.891; MATLAB: 0.188
>> TiemposAxB(2048)
Error en Int: 5.684342e-13
Error en Exte: 3.069545e-12
Si en un espacio vectorial E sobre K (R o C) se define una norma vectorial com
Error en Vec: 3.069545e-12 k k W E ! R que verifica
Error en Strass: 7.560175e-11
Tiempos: Int: 90.000; Exte: 170.953; Vec: 12.938; Strass: 17.234; MATLAB: 0.750
>> TiemposAxB(4096) kvk D 0 H) v D 0 y x ¤ 0 H) kxk > 0;
Error en Int: 9.094947e-13
Error en Exte: 8.867573e-12
Error en Vec: 8.867573e-12 k˛vk D j˛jkvk para ˛ 2 K y v 2 E;
Error en Strass: 3.319656e-10
ku C 5.609
Tiempos: Int: 4537.313; Exte: 970.969; Vec: 108.250; Strass: 78.938; MATLAB: vk kuk C kvk 8u; v 2 E;
se Cuadro
dice que1.20
E es un espacio vectorial normado.
La condición kuCvk kukCkvk es la desigualdad de Minkowski; se conoce tam
del triángulo. Es una generalización del hecho de que un lado de un triángulo no pue
2) k˛vk D j˛jkvkla suma
para de ˛
los2otros
K ydos:
v 2ver
E;figura. Una variante de esta regla es la siguiente:
3) ku C vk kuk C kvk 8u; v 2 E: ku vk kuk kvk:
La condición ku C vk kuk C kvk se conoce como regla del triángulo. Su expresión gráfica es la de la figura 1.5. Es
v
uCv
u
Figura 1.5
Figura 3.1: Representación gráfica de la regla del triángulo
1=p
denominadas
p normas p p de Hölder. Casos particulares lo constituyen las correspond
kxkp D pjxD
1 j 2:C C jxn j ;
X n
kxk D
denominadas normas p de Hölder, o normas `p . Su formulación se debe a Otto Hölder, Alemania,
1 jxi1859-1937.
j
i D1
p
kxk2 D jx1 j2 C C jxn j2 :
Esta última se denomina en Rn norma euclídea. También en Kn es una norma la da
Hölder kxk1 D mKax jxi j :
1in
7
1.6 Operaciones de cálculo numérico con vectores y matrices j 29
Se demuestra que para toda norma matricial es posible construir una norma vectorial consistente. Recíprocamente, a
toda norma vectorial sobre Rn se le puede asociar una norma matricial consistente. Una norma matricial es una norma
vectorial compatible con el producto.
Una norma matricial consistente con una cierta norma vectorial k k se construye mediante la definición
kAxk
kAk D sup :
0¤x2Rn kxk
Si k k es la norma inducida por una cierta norma vectorial y k k0 es una norma matricial cualquiera consistente con
esa norma vectorial, se cumple, para toda matriz A, que kAk kAk0 .
Un ejemplo importante de norma matricial es la norma de Frobenius, por Ferdinand Georg Frobenius, Alemania
1849-1917.
Frobenius
30 j Capítulo 1. Fundamentos de la ingeniería matemática y sus algoritmos
Se define como X
kAk2F D 2
aij D traza A H A ;
1i;j n
Pn
donde la traza de una matriz A de orden n es iD1 ai i .
La norma de Frobenius cumple que kABkF kAkF kBkF .
La norma espectral y la norma de Frobenius cumplen que kAk2 kAkF .
Ejemplo 1.4 El efecto que produce aplicar la transformación lineal basada en la matriz
12
AD
02
al círculo unidad, con las normas k k1 , k k2 y k k1 en R2 , es el de la figura 1.7.
[2, 2]T
[0, 1]T
A1 = 4
[1, 0]T
norma
norma11
[1, 0]T
A2 ≈ 2,9208
norma
norma22
A∞ = 3
norma1
norma ∞
– La
Figura 1.7: aplicación
Efecto transforma
de una aplicación el vector
lineal sobre la bola unidad Œ1; 0Tunidad)
e 1 D (círculo en sícon
mismo y normas
diferentes
T T
e 2 D Œ0; 1 en Œ2;
2 . 39/63
términos de la norma 1, es 4. a b c 1 2 3
Tomando la norma 2, el vector unitario que más se amplifica es el que se representa en la figura con una recta discon-
d e f g 9 4 6 5
Para la norma
1, igualmente, el vector unitario
que más se amplifica es el que se representa también con la recta
discontinua: 11 , que pasa a transformarse en 32 . El factor de amplificación correspondiente es en este caso 3 ya que
1
D1
1
1
3
D 3:
2 1
Contenido
2.1 Formulación del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Indagación geométrica. El método de la Bisección . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Error hacia delante y hacia atrás de los algoritmos numéricos . . . . . . . . . . . . . . . . . . . . 34
2.4 La iteración de punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.5 Velocidad de convergencia de una sucesión y proceso iterativo . . . . . . . . . . . . . . . . . . . . 38
2.6 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.7 Métodos iterativos sin derivadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.8 Raíces de un polinomio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
E N términos matemáticos,
bi ai
ei D jr ci j ; i D 0; 1; 2; : : :
2
Teorema 2.2 Al aplicar el método de la bisección a una función f W R ! R, continua en un intervalo Œa b en el que
f .a/f .b/ < 0, después de n iteraciones, en las que se habrán evaluado la función n C 2 veces, se habrá obtenido un
valor de la solución cn tal que su error
b a
jr cn j nC1 ;
2
donde r es el valor real de la solución.
Definición 2.1 Una solución es correcta en p posiciones decimales si el error es menor que 0;5 10 p
.
Ejemplo 2.1 La codificación del método de la bisección en esta function de M ATLAB que sigue sirve para calcular
x sen.x/ 1 D 0 en 1 x 2 (radianes).
function sol=Bisec_0(fun,a,b,tol)
% Método de la Bisección para resolver f(x)=0
if nargin<4, tol=sqrt(eps); end
fa=fun(a); fb=fun(b);
if sign(fa)*sign(fb)>=0, error(’ El intervalo (a,b) no contiene la solución\n’), end
while abs(b-a)/2 > tol
c=(a+b)/2;
fc = fun(c);
if fc==0, break, end
if sign(fc)*sign(fa) < 0
b=c; fb=fc;
else
a=c; fa=fc; % No es necesario hacer fa=fc;
end
fprintf(’ %17.15f %17.15f\n’,a,b);
end
sol = (a+b)/2;
end
Los valores de los extremos del intervalo Œa b que se obtienen al hacer en M ATLAB
Cuadro 2.1: Proceso iterativo para resolver con Bisec_0() el problema x sen.x/ 1D0
En la figura 2.3 se representa geométricamente cómo procede el método de la bisección para llegar a la solución del
problema de este ejemplo.
34 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
,QWHUYDOR LQLFLDO
El problema es la entrada, o el dato, que se proporciona a esa función de transferencia que es el algoritmo. La
solución, la salida.
En lo que estudiamos en este capítulo, el problema es una ecuación de una variable; el algoritmo, o función de
transferencia, cualquiera de los que veremos.
Definición 2.2 Si f .x/ es una función y r una raíz de la misma, f .r/ D 0. Supongamos que xa es una aproximación
a r obtenida por un algoritmo. El error hacia atrás del algoritmo con la aproximación xa es jf .xa /j y el error hacia
delante es jr xa j.
El error hacia atrás está en el lado izquierdo del esquema anterior, o a la entrada. Es la cantidad que tendría que cambiar
el problema (la función) para hacer que la ecuación se equilibre con la aproximación xa de la salida. Es jf .xa /j.
El error hacia delante está en el lado derecho, o a la salida (solución del problema). Es la cantidad que tendría que
cambiar la solución aproximada para que sea correcta, es decir, jr xa j.
Ejemplo 2.2 Estudiemos x 3 2x 2 C 34 x 8
27
D 0. Podemos comprobar que f .0/f .1/ D . 8=27/.1=27/ < 0.
Apliquemos el método de la bisección.
Con M ATLAB en una sesión interactiva se obtiene lo que lista el cuadro 2.2. La raíz auténtica es 0;6666666666666 : : :.
Aunque se aumente la precisión, el proceso es el mismo y sólo consigue 5 dígitos significativos de la misma, ¿por qué?
No es culpa del método de la bisección, sino de la incapacidad de la aritmética de precisión doble de la máquina para
calcular el valor de la función f con precisión suficiente cerca de la raíz. Cualquier método que se base en esta aritmética
de maquina está destinado al mismo “fracaso”.
2.4 La iteración de punto fijo j 35
Cuadro 2.2
La razón se esquematiza en la figura 2.4. Si la aritmética de la máquina muestra que la función es igual a cero en un
1.3 Limits
valor que no es exactamente una raíz, no hay manera de que el método o algoritmo puedaof recuperarse
Accuracy ni | 45
hacer mucho
más.
Figure 1.7 The shape of a function near a multiple root. (a) Plot of f (x) =
El error hacia atrás
x 3 − es
2x 2cercano
+ 4/3x a−8/27.
máq (b)2;2 10 16 , mientras
Magnification quethe
of (a), near el error
root rhacia
= 2/3.delante es aproximadamente 10 5 .
There are
Como el error hacia
manyatrás no puede
floating point disminuirse por 10
numbers within debajo
–5 of de
2/3un error
that are relativo
roots aspor
far debajo del épsilon de la máquina,
as the computer
tampoco es posible disminuir el error hacia delante.
is concerned. We know from calculus that 2/3 is the only root.
Hay que destacar que este ejemplo es bastante especial pues la función tiene una raíz triple en r D 2=3,
this chapter; for now, wef .x/
justDneed 4 8 2 3
x 3 to2xfeed
2
C it the function
D x and a: starting guess. It has no
better luck: 3 27 3
>> fzero(’x.ˆ3-2*x.ˆ2+4*x/3-8/27’,1)
Definición 2.3 Si una función continua y derivable m veces tiene en r una raíz, f .r/ D 0, y 0 D f .r/ D f 0 .r/ D
D=f .m 1/ .r/, pero f .m/ .r/ ¤ 0, se dice que f tiene una raíz de multiplicidad m en r. Se dice que f
f 00 .r/ D ans
tiene una raíz múltiple en r si la multiplicidad es mayor que uno. La raíz es simple si la multiplicidad es igual a uno.
0.66666250845989
2.4 Laclear
iteración de punto fijo
The reason that all methods fail to get more than five correct digits for this example is
from Figure 1.7. The only information any method has is the function, computed in
double
Es otra forma precision.
de atacar If the computer
el problema arithmetic
que queremos resolver.isObservemos
showing theelfunction to be
cuadro 2.3. Lazero at a nonroot,
sucesión de puntos de iterar
la función coseno parece que converge a un punto concreto, r.
there is no way the method can recover. Another way to state the difficulty is to say that
an approximate solution can be as close as possible to a solution as far as the y-axis is
concerned, but not so close on the x-axis.
These observations motivate some key definitions.
DEFINITION 1.8 Assume that f is a function and that r is a root, meaning that it satisfies f (r) = 0. Assume
that xa is an approximation to r. For the root-finding problem, the backward error of the
approximation xa is |f (xa )| and the forward error is |r − xa |. ❒
36 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
Cuadro 2.3
La iteración de punto fijo sirve para resolver problemas de punto fijo f .x/ D x. Se puede usar para resolver f .x/ D 0
si la función se puede expresar como g.x/ D x. Un algoritmo que siguiese esta idea y su codificación en M ATLAB
podrían ser como los que siguen.
function xc=fpi(g,x0,k)
Esquema general de la Iteración de Punto Fijo % fpi: Calcula la solución de f(x)=x; it. punto fijo
Dados Un x WD x0 y una tol. Hacer f ound WD f al se % Input: inline function g, partida x0, itera. k
while (not f ound ) and (k < kmax ) % Output: Solución x
Hacer xk WD f .xk 1 ) x(1)=x0;
for i=1:k
if (xk xk 1 < tol), f ound WD true, end x(i+1)=g(x(i));
k WD k C 1 end
end xc=x(k+1);
end
Para el caso de f .x/ D cos.x/, haciendo hasta treinta iteraciones en una sesión de M ATLAB, daría:
>> f=@(x)cos(x);
>> xc = fpi(f,1,15)
xc =
0.738369204122323
>> xc = fpi(f,1,30)
xc =
0.739087042695332
Ejemplo 2.3 Resolvamos la ecuación x 3 C x 1 D 0. Expresémosla de varias formas con el formato g.x/ D x:
xD1 x3;
3x 3 C x 1 D 2x 3
3x 2 C 1 x D 1 C 2x 3
1 C 2x 3
xD
1 C 3x 2
height g(xi ) across to the diagonal line y = x. This geometric illustration of a Fixed-Point
Iteration is called a cobweb diagram. 2.4 La iteración de punto fijo j 37
y y y
1 1 1
x x x
x2 x0 r x1 1 x0 r x1 1 x0 r 1
x2
Figura 2.5: Distintas formas de acercarse a la solución, o alejarse, en iteraciones de punto fijo
Figure 1.3 Geometric view of FPI. The fixed point is the intersection of g(x) and the
0
mucho más rápidamente. Veamos
diagonal line. Threepor qué. Aparentemente,
examples of g(x) are shown la pendiente
togetherdewith
la función,
the firstgfew cercaofdel punto fijo, tiene
.x/,steps
algo que ver. Volveremos sobre esto.
3
FPI. (a) g(x) = 1 – x (b) g(x) = (1 – x) 1 /3 3 2
(c) g(x) = (1 + 2x )/(1 + 3x )
Consideremos ahora la ecuación
x 3 sen.x/ D 0:
In Figure 1.3(a), the path starts at x0 = 0.5, and moves up to the function and horizontal
Al tratarse de una
to the pointfunción
(0.875,senoidal,
0.875)habrá
on thevarios puntoswhich
diagonal, para los
is cuales
(x1 , x1f)..x/ x1Calcularemos
D 0.
Next, el más próximo a
should be substituted
x D 1.
into g(x). This is done the same way it was done for x , by moving vertically to the function.
Si seguimos una estrategia de punto fijo, buscaremos una función0g W R ! R, un xN tal que xN D g.x/ N y aplicaremos
This yields
un procedimiento x2 ≈a0.3300,
iterativo partir deand after moving
la relación horizontally
de recurrencia xkC1 Dtog.x move /. the y-value
¿Qué formas detox an
D x-value,
g.x/, y por tanto
k
relación we continue the
de recurrencia, se same way to
nosppueden get xpara
ocurrir 3 , x4utilizar?
, . . . . As we saw earlier, the result of FPI for this g(x)
La primera
is notpodría ser x D 3 sen.x/:
successful—the La relación
iterates eventually de recurrencia
tend toward correspondiente
alternating sería
between 0 and 1, neither
of which are fixed points. p
xkC1 D 3 sen.xk /:
Fixed-Point Iteration is more successful in Figure 1.3(b). Although the g(x) here looks
Si comenzamos
roughlyelsimilar
procesoto
iterativo
the g(x)desde 1 (radianes),
x0 D(a),
in part there is asesignificant
tendrá que difference,
en los distintos pasos,
which we will clarify
p
in the next section. You may want x1 toD speculate
3 on0;944
sen.x0 / D what the difference is. What makes FPI
spiral in toward the fixed point in (b), p and spiral out away from the fixed point in (a)?
x2 D 3 sen.0;944/ D 0;932
Figure 1.3(c) shows an example of very p fast convergence. Does this picture help with your
speculation? If you guessed that it x3has 3
sen.0;932/toDdo
D something 0;929
with the slope of g(x) near the fixed
point, you are correct. :
::
g1 (x) − 1 = − 23 (x − 1)
xi+1 − 1 = − 23 (xi − 1). (1.8)
38 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
Figura 2.6: Diferentes formas de converger con una iteración de punto fijo
Si se analiza el comportamiento de diversas relaciones de recurrencia se puede constatar una relación directa entre
el comportamiento del proceso iterativo y las pendientes de g en el entorno de x:
N
Si jg 0 .x/j
N D v < 1 y el punto de partida está cerca de x,
N el proceso converge linealmente a velocidad v. Si
jg 0 .x/j
N > 1, diverge.
p
En el caso de xkC1 D 3
sen.xk /,
2=3
.sen.x//
g 0 .x/ D cos.x/:
3
En xN 0;929, g 0 .0;929/ 0;23.
Por el contrario, para xkC1 D sen.xk /=xk2 ,
cos.x/ sen.x/
g 0 .x/ D 2 :
x2 x3
En xN 0;929, g 0 .0;929/ 1;23.
Teorema 2.3 Si f W R ! R es una función continua y derivable, f .r/ D r y S D jf 0 .r/j < 1, la iteración de punto
fijo, para estimaciones iniciales lo suficientemente próximas a r, converge linealmente hacia el punto r, con razón S .
Definición 2.7 Un método iterativo xiC1 D f .xi /; i D 1; 2; : : :, que parte de un punto x0 , se dice que tiene una
velocidad de convergencia de orden r cuando la sucesión fxi g1
iD0 converge con orden r hacia la solución x.
2.5 Velocidad de convergencia de una sucesión y proceso iterativo j 39
Si la convergencia es lineal y
jxi C1 x j
lKım D ˇ D 0;
i !1 jxi xj
la convergencia es superlineal.
Ejemplo 2.4 Consideremos la sucesión escalar definida por
k
xk D c 2 ;
k k
k c2 .c D 0; 99/ c2 .c D 2; 2/ 1=k k
0 0,9900000000000000 2,200000000000000 1,000000000000000
1 0,9801000000000000 1,483239697419133 0,250000000000000
2 0,9605960099999999 1,217883285630907 0,037037037037037
3 0,9227446944279201 1,103577494166543 0,003906250000000
4 0,8514577710948755 1,050512967157732 0,000320000000000
5 0,7249803359578534 1,024945348376065 0,000021433470507
6 0,5255964875255620 1,012395845692812 0,000001214265678
7 0,2762516676992083 1,006178833852518 0,000000059604644
8 0,0763149839065938 1,003084659364561 0,000000002581174
9 0,0058239767686636 1,001541142122759 0,100000000000000E-10
10 0,0000339187054019 1,000770274400054 0,350493899481392E-12
11 0,1150478576143195E-08 1,000385063063246 0,112156654784615E-13
12 0,1323600954164474E-17 1,000192513000995 0,330169095523011E-15
13 0,1751919485865107E-35 1,000096251868287 0,899927452978128E-17
14 0,3069221884953861E-71 1,000048124776146 0,228365826052116E-18
15 0,9420122979079730E-143 1,000024062098581 0,542101086242752E-20
16 0,8873871694098596E-286 1,000012030976918 0,120883864830239E-21
con c 0.
Analicemos su orden de convergencia:
.kC1/
jxkC1 1j c2 1
lKım D lKım
k!1 jxk
k
1j k!1 c 2 1
.kC1/
c2 1
D lKım .kC1/
.kC1/
k!1 c 2 1 c2 C1
1 1
D lKım .kC1/
D :
k!1 c2 C1 2
40 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
Converge linealmente. Esta convergencia significa que cada iteración añade un número de dígitos constante a la
solución final: concretamente, log10 ˇ dígitos por iteración.
Ejemplo 2.6 Analicemos por último la sucesión que define
1
xk D :
kk
Converge a cero. En la columna 4 de la tabla se pueden ver los primeros puntos de esta sucesión.
Estudiemos su orden de convergencia:
1
jxkC1 j .k C 1/kC1 1
lKım D lKım D lKım D 0:
k!1 jxk j k!1 1 k!1 1 kC1
kk k 1C
k
k Error Convergencia
1 10 2 ; 10 3 ;10 4 ; 10 5 ; : : : Lineal, con ˇ D 10 1
2 10 2 ; 10 4 ;10 6 ; 10 8 ; : : : Lineal, con ˇ D 10 2
3 10 2 ; 10 3 ;10 5 ; 10 8 ; : : : Superlineal: entre lineal y cuadrática
4 10 2 ; 10 4 ;10 8 ; 10 16 ; : : : Cuadrática
5 10 2 ; 10 6 ;10 24 ; : : : Cúbica
La convergencia de una sucesión de vectores necesita de una función que los convierta en un número para poderla
medir. Lo usual es usar algún tipo de norma.
Sería deseable disponer de una vía sistemática y fiable de construir un modelo x D g.x/ para hallar la
solución xN de la ecuación f .x/ D 0, comenzando desde cualquier x0 próximo a la solución y sin
preocuparnos de que jg 0 .x/j
N < 1.
Isaac Newton, Inglaterra, 1642-1727, la persona con una de las mentes más portentosas que ha dado la Humanidad,
fue el primero que ideó esa vía y la forma de llevarla a la práctica de manera sencilla.
Newton
Su idea consiste en reemplazar la función f .x/ en cada punto del proceso iterativo por el modelo de ella que define
su recta tangente en ese punto (linealizar la función en un punto).
2.6 Método de Newton-Raphson j 41
x2 x1 x
f (x )
La relación general de recurrencia del método de Newton, o Newton-Raphson (por Joseph Raphson, Inglaterra, 1648-
1715),
Raphson
f .xk /
xkC1 D xk .
f 0 .xk /
En el cuadro 2.5 se lista un código de M ATLAB para resolver por el método de Newton un problema, y concretamente
x 3 sen.x/ D 0. Si se parte de x0 D 1;4, con la instrucción >> Newton(@Newt_1,1.4) los puntos que se obtienen
con ese código son los de la tabla a la izquierda de la figura 2.9, en la que también se ven los pasos del método hacia la
solución.
42 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
function raiz=Newton(fun,x,tol)
%Newton para una variable
x0=0; if nargin<3, tol=eps^0.5; end
while abs(x-x0)>tol function [f df]=Newt_1(x)
x0=x; f = x^3-sin(x);
[f df] = fun(x0); if nargout<2, return, end
x=x0-f/df; df = 3*x*x-cos(x);
fprintf(’ %18.15f\n’, x); end
end
raiz=x;
end
Cuadro 2.5
Método de Newton
2.5
2
k xk
1 1.092024491974 1.5
2 0.958975041400
f(x)
3 0.929997813651
1
4 0.928629313033
5 0.928626308746 Solución
0.5
6 0.928626308732
0
32 1 0
0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5
x
Figura 2.8
El teorema garantiza la convergencia del método de Newton sólo si se inicia desde un punto x0 aceptable.
El método puede no funcionar si jx0 xj N es grande. Por ejemplo, considérese el problema clásico de hallar la solución
de arctan.x/ D 0 que ilustra la figura 2.10.
Partiendo de cualquier punto del intervalo [1,39 1,40] el método cicla obteniéndose x1 D x0 , x2 D x0 , x3 D x0 ,
: : : Si x0 < 1;39, el procedimiento converge; si x0 > 1;40, diverge.
El teorema anterior también impone que f 0 .r/ debe ser distinta de cero para que el método de Newton converja
cuadráticamente a r.
Teorema 2.5 Si una función f , continua y derivable m C 1 veces en Œa b, tiene en r una raíz de multiplicidad m, el
método de Newton converge linealmente a r y el error en el paso i , ei D jxi rj satisface
ei C1 m 1
lKım D :
i!1 ei m
2.6 Método de Newton-Raphson j 43
f (x) = arctan(x)
−x 0 x0
Veamos el efecto de una raíz múltiple en la convergencia del método de Newton-Raphson. Apliquémoslo simultánea-
mente a f1 .x/ D x 2 1 D 0 y f2 .x/ D x 2 2x C 1 D 0. f2 tiene una raíz múltiple en x D 1. Partiendo de x0 D 2 se
obtienen los resultados de la tabla que sigue.
f1 .x/ D x 2 1D0 f2 .x/ D x 2 2x C 1 D 0
2 x0 2
1,25 x1 1,5
1,025 x2 1,25
1,0003048780488 x3 1,125
1,0000000464611 x4 1,0625
1,0 x5 1,03125
El error en la convergencia de f2 es
e5 1;03125 1 m 1
D D 0;5 D ;
e4 1;0625 1 m
lo que verifica que la multiplicidad es m D 2.
Teorema 2.6 Si una función continua y derivable m C 1 veces en Œa; b tiene en r una raíz de multiplicidad m > 1, el
método de Newton modificado mediante esta fórmula de recurrencia
mf .xi /
xi C1 D xi
f 0 .xi /
converge cuadráticamente a r.
function x0=Newton_multiple_modificado_1
>> x=Newton_multiple_modificado_1
%Newton para una variable raíz triple
0.164770719582242
x0=0; x=1; tol=0.000001;
0.016207337711438
while abs(x-x0)>tol
0.000246541437739
x0=x;
0.000000060720923
x=x0-(sin(x0)+x0^2*cos(x0)-x0^2-x0)*3/(cos(x0)+2*x0*cos(x0)-x0^2*sin(x0)-2*x0-1);
-0.000000002389877
fprintf(’ %18.15f\n’, x);
x =
end
6.0721e-08
end
Cuadro 2.6
Si el paso completo xkC1 xk produce un aumento, disminuirlo hasta que jf .xkC1 /j < jf .xk /j.
Lo esquematiza la figura 2.11. En ella se ilustra el caso de cómo el mecanismo apuntado salva las dificultades que
x ′k +1
xk (x ′k +1 + x k )/2
x k +1
0
surgirían de aplicar el procedimiento de Newton sin él. El punto xkC1 , que sería el que determinaría el paso de Newton,
0
no valdría. Tampoco .xkC1 C xk /=2. Sí, al final,
0
xkC1 Cxk
xk C 2
xkC1 D :
2
f .xk /
xkC1 D xk :
ak
Teorema 2.7 Sea la función f W D ! R con dominio de definición en un intervalo abierto D y derivada continua en
él. Supóngase que, para todo x 2 D, jf 0 .x/j para algún > 0. Si f .x/ D 0 tiene solución xN 2 D, existen unas
constantes positivas y 0 tales que si fhk g es una sucesión de números reales tales que 0 < jhk j 0 y si jx0 xj
N < ,
la sucesión fxk g que define
f .xk / f .xk C hk / f .xk /
xkC1 D xk ; con ak D ; k D 0; 1; : : :
ak hk
converge linealmente a x. N Si lKımk!1 hk D 0, la convergencia es superlineal. Si existe alguna constante c1 tal que
N o, de forma equivalente, una constante c2 tal que jhk j c2 jf .xk /j, la convergencia es cuadrática.
jhk j c1 jxk xj,
Si existe alguna constante c3 tal que jhk j c3 jxk xk 1 j, la convergencia es al menos cuadrática cada dos pasos.
La elección de h es crítica para el buen funcionamiento del procedimiento: no debe ser muy pequeño, de tal manera
que
f l.xk C h/ ¤ f l.xk /
ni que, dado que f es continua y su derivada también, al evaluar la función en dos puntos muy próximos, ocurra que
Cuando existen problemas de precisión se puede recurrir a la aproximación de f 0 .xk / dada por
f .xk C h/ f .xk h/ p
ak D con h D 3 maq:
K :
2h
¡OJO! El número de veces que se evalúa la función se duplica.
Ejemplo 2.9 Calculemos la solución de f .x/ D x 2 1, partiendo de x D 2, mediante Newton y Newton por diferencias
finitas. Los resultados obtenidos con uno y otro código del cuadro 2.7 son los de la tabla que se ve en el mismo cuadro.
Como se puede observar, son prácticamente los mismos.
En la práctica, si se acondicionan los parámetros convenientemente, el método de Newton y el de Newton por diferen-
cias finitas funcionan casi igual.
% Newton de x^2-1=0
% Newton dif. finitas de x^2-1=0 Newton Newton Dif. Fin.
x=2.0; x0=0.0;
x=2.0; x0=0.0; h=sqrt(eps); 1,250000000000000 x0 1,250000000000000
fx=@(x)x^2-1;
fx=@(x)x^2-1;
derfx=@(x)2*x; 1,025000000000000 x1 1,025000001341105
while abs(x-x0)>eps
while abs(x-x0)>eps 1,000304878048780 x2 1,000304878371890
x0=x;
x0=x; 1,000000046461147 x3 1,000000046463329
x=x0-fx(x0)/((fx(x0+h)-fx(x0))/h);
x=x0-fx(x0)/derfx(x0); 1,000000000000001 x4 1,000000000000001
fprintf(’ %18.15f\n’,x)
fprintf(’ %18.15f\n’,x) 1,000000000000000 x5 1,000000000000000
end
end
Cuadro 2.7
x3 x2 x1 x0 x
f (x )
Si utilizamos esta variante para resolver x 3 sen.x/ D 0, partiendo de x0 D 1;1, los puntos del proceso que se
obtienen son los de la tabla del cuadro 2.8, en el cual también se incluye el código utilizado.
k xk
0 1,100000000000000 x1=1.1; tol=sqrt(eps);
1 1,000000000000000 dx = 3*x1*x1-cos(x1); x2=1;
2 0,950091669305211 fx = @(x)x^3-sin(x); % función
.. while abs(x2-x1)>tol
fprintf(’ %18.15f\n’, x1);
12 0,928627359757290 x1=x2;
13 0,928626701921047 x2=x1-fx(x1)/dx;
14 0,928626455824360 end
15 0,928626363759310
.x x1 /2
0 D f .x1 / C f 0 .x1 /.x x1 / C f 00 .x1 / :
2
2.7 Métodos iterativos sin derivadas j 47
function raiz=Newton_composite(fun,x,tol)
% Newton composite: misma der. dos iteraciones
in=1; x1=0; x2=2;
if nargin<3, tol=eps^0.5; end >> raiz=Newton_composite(@Newt_1,1.4)
if nargin==2, x1=0; x2=x; end 1.092024491973809
while abs(x2-x1)>tol 1.019398480362132
x1=x2; 0.939380250610315
if in 0.930994424066045
[f df] = fun(x1); in = 0; 0.928635243248317
else 0.928626375994235
[f] = fun(x1); in = 1; 0.928626308731742
end 0.928626308731734
x2=x1-f/df; raiz =
fprintf(’%18.15f\n’, x2); 0.928626308731734
end
raiz=x2;
end
Cuadro 2.9
Halley
Con una convergencia cúbica, su relación general de recurrencia para encontrar una solución de la ecuación f .x/ D 0
es esta
2f .xk /f 0 .xk /
xkC1 D xk
2Œf 0 .xk /2 f .xk /f 00 .xk /
Una variante muy similar de este algoritmo es debida a Pafnuty Lvovich Chebyshev, Rusia, 1821-1894. Su fórmula de
recurrencia es
f .xk / f .xk /f 00 .xk /
xkC1 D xk 1 C
f 0 .xk / 2Œf 0 .xk /2
La codificación en M ATLAB del algoritmo de Halley para resolver x C ln.x/ D 0 se lista en el cuadro 2.10.
function HalleysMethod_log1
% Método de Halley para resolver f(x) = x+ln(x) = 0
i = 1; p0 = 1; % condiciones iniciales
N = 100; % máximo número de iteraciones
error = 0.000000001; % precisión de la solución
syms ’x’
f(x) = x + log(x); % La función que se estudia
dx = diff(f); ddx = diff(dx); % primera y segunda derivada de f(x)
while i <= N
p = p0 - (f(p0)/dx(p0))*(1 - (f(p0)*ddx(p0)/dx(p0)^2))^(-1); % relación de recurrencia
if (abs(p - p0)/abs(p)) < error % para cuando la diferencia entre dos puntos del proceso menor que tolerancia
fprintf(’Solución: %15.13f; %3.0f iteraciones.\n’, double(p),i)
return
end
i = i + 1; p0 = p; % adapta p0
end
fprintf(’No converge en %d iteraciones; precision buscada %d \n’, N, error)
end
x k +1 xk x k −1 x
f (x )
xk xk 1
xkC1 D xk f .xk /.
f .xk / f .xk 1/
p
El método de la secante converge superlinealmente a la solución con orden ˛ D .1 C 5/=2 D 1; 618 (la razón
áurea). De hecho, si r es la solución,
ˇ 00 ˇ
ˇ f .r/ ˇ˛ 1 ˛
ei C1 ˇ 0 ˇˇ
ˇ ei :
2f .r/
Resolvamos con este método y M ATLAB la ecuación x 3 sen.x/ D 0. Codificamos para ello lo necesario y resolvemos
mediante una sesión interactiva. El resultado es el cuadro 2.11.
function raiz=Newton_sec(fun,x,tol)
>> Newton_sec(@Newt_sec_1,1.4)
%Newton para una variable
1.065107226548895
x1=x; x2=x-0.1; if nargin<3, tol=eps^0.5; end
function [f df]=Newt_sec_1(x0,x1) 0.978070204938512
while abs(x2-x1)>tol
fx = @(x)x^3-sin(x); 0.937387385189276
x0=x1; x1=x2;
f = fx(x1); 0.929273092828631
[f df] = fun(x0,x1);
if nargout<2, return, end 0.928635284046901
x2=x1-f/df;
df = (fx(x1)-fx(x0))/(x1-x0); 0.928626318027714
fprintf(’ %18.15f\n’, x2);
end 0.928626308731868
end
ans =
raiz=x2;
0.9286
end
Cuadro 2.11
En determinadas circunstancias desfavorables, tanto el método de la secante como el de la falsa posición pueden
presentar problemas de convergencia. Es el caso de la figura 2.14b, donde se representa un ejemplo de convergencia
“lenta”.
x2
x2 f (x )
x3
x4 f (x )
x
x1 x1 x3
(a) El método de la falsa posición (b) Convergencia lenta de los métodos de la secante y falsa posi-
ción
Figura 2.14
Para remediar estas deficiencias de ambos métodos, en los años 50 del siglo XX se desarrolló una variante de regula
falsi denominada de Illinois. La idea es usar como puntos para trazar la recta secante, además del calculado .xiC1 ; fiC1 /:
1. Si fi C1 fi < 0, el punto .xi 1 ; fi 1 / se reemplaza por .xi ; fi /.
2. Si fi C1 fi > 0, el punto .xi 1 ; fi 1 / se reemplaza por .xi 1 ; fi 1 =2/.
Donde corte esta secante al eje de las x será el nuevo punto del proceso iterativo. El algoritmo de Illinois programado en
M ATLAB, así como una sesión de trabajo para resolver cos.x/ x 3 D 0, se listan en el cuadro 2.12.
Cuadro 2.12
2.7 Métodos iterativos sin derivadas j 51
Cuadro 2.13
Obsérvese que el número de iteraciones, para la precisión que se obtiene, decrece apreciablemente comparándolo con
el de otros métodos.
Si hay que calcular una de las raíces complejas de x 3 C x 2 C x C 1 con este método, una sesión de M ATLAB resultaría
como se lista en el cuadro 2.14.
>> Muller_2(@Muller_2_2,0,0.1,1)
-0.21428571428571+0.65595130066457i 0.668124392614188 1
-0.16304914264115+1.15401500391091i 0.178872980763637 2
0.03069686090353+0.97963558152672i-0.016395820078345 3
0.00106074539714+1.00049046815007i-0.003104663615609 4
-0.00000339553880+1.00000042898932i 0.000005933119030 5
-0.00000000004554+0.99999999997470i 0.000000000141669 6
-0.00000000000000+1.00000000000000i 0.000000000000000 7
>>c=[1 1 1 1];
>> roots(c)
ans =
-1.0000
-0.0000 + 1.0000i
-0.0000 - 1.0000i
Cuadro 2.14: Convergencia del método de Muller con una raíz compleja
Brent
52 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
Anteriormente fue propuesto, en la década de 1960, por Dekker y Van Wijngaarden del Mathematical Center de Ams-
terdam. 1.5 Root-Finding without Derivatives | 65
Se aplica a un intervalo Œa; b en cuyos extremos la función adopta signos distintos. Sigue la pista a un punto xi , que
es el mejor en el sentido
Quadratic delInterpolation
error haciamethod
atrás, yisaattempted,
un intervalo
andŒa bi para
i ; result
the la raíz.
is used to replace one of xi , ai , bi
Aplica una interpolación cuadrática
if (1) the backward errorinversa
improves (no D the
andy(2) p.x/ sino x D
bracketing p.y/)is acut
interval los
at tres
leastpuntos
in half. .f .xi /; xi /, .f .ai /; ai /
If not,
y .f .bi /; bi / conthe
el fin de reemplazar
Secant uno de ellos
Method is attempted withcon
theaquel
same —único— donde
goal. If it fails x Dap.y
as well, D 0/.Method
Bisection
En la figura 2.16 stepseiscompara la geometría
taken, guaranteeing thatdel
themétodo de Muller
uncertainty is cut atconleastlainde la interpolación cuadrática inversa. Si el
half.
xIQI
x0 x2 x x1 x
M
problema anterior, x 3 2x 2 C 43 x 8
27
D 0, se obtiene lo que recogen las distintas partes del cuadro 2.16.
Cuadro 2.16
El haberlo hecho supone una deflación o división sintética. Si se consigue, las raíces del polinomio que quedan por
calcular serían las de pn 1 .x/. Una deflación gradual, paso a paso, que calcule sucesivamente una raíz de los pn 1 .x/
que se vayan obteniendo progresivamente es lo que conseguirá calcular todas las raíces del polinomio que se estudia. Si
se tiene que
pn 1 .x/ D b1 x n 1 C b2 x n 2 C C bn 1 x C bn ;
54 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
b1 D a1 b2 D a2 C rb1 bn D an C rbn 1
lo que conduce al algoritmo de deflación de Horner que se indica, codificado en M ATLAB, en el cuadro 2.17.
function b = deflpoly(a,r)
% Horner’s deflation:
% a(1)*x^n + a(2)*x^(n-1) + ... + a(n+1) =
% = (x-r)[b(1)*x^(n-1) + b(2)*x^(n-2) + ... + b(n)]
n = length(a) - 1; b = zeros(n,1); b(1) = a(1);
for i = 2:n, b(i) = a(i) + r*b(i-1); end
end
p0 .x/ D a1
p1 .x/ D a2 C xp0 .x/
p2 .x/ D a3 C xp1 .x/
p3 .x/ D a4 C xp2 .x/
::
:
pn .x/ D anC1 C xpn 1 .x/
Cuadro 2.18: Algoritmo para evaluar un polinomio y sus derivadas primera y segunda
2.8 Raíces de un polinomio j 55
Laguerre
Si se considera un caso especial de polinomio de grado n en el que una raíz es x D r y las n 1 restantes es una raíz
múltiple x D q, dicho polinomio se podría expresar así
Es decir,
pn0 .x/ 1 n 1
D C : (2.1)
pn .x/ x r x q
Si derivamos de nuevo,
2
pn00 .x/ pn0 .x/ 1 n 1
D : (2.2)
pn .x/ pn .x/ .x r/2 .x q/2
Si introducimos la notación que sigue
n 1
1
g.x/ D C
x
r x q
1 n 1
h.x/ D C :
.x r/2 .x q/2
Si despejamos de la primera de estas dos ecuaciones x q y lo sustituimos en la segunda, obtenemos una función
cuadrática de x r, la solución de la cual es la denominada fórmula de Laguerre. Tiene por expresión
n
x rD p :
g.x/ ˙ .n 1/Œnh.x/ g 2 .x/
El algoritmo de Laguerre para calcular las raíces de un polinomio es el del cuadro 2.19. Su convergencia es cúbica. Si
se escribe en M ATLAB resulta lo que se indica en el cuadro 2.20. En el centro están las raíces que calcula de la ecuación
polinómica x 4 5x 3 9x 2 C 155 250 D 0. A la derecha las raíces calculadas del polinomio de Wilkinson mediante
el algoritmo de Laguerre y roots() de M ATLAB. Se comparan en este caso mediante la norma las desviaciones de los
valores obtenidos y los que deberían dar.
Se podría utilizar un procedimiento parecido a éste, Newton-Horner, de convergencia cuadrática, en el que el algoritmo
de Newton sustituiría al de Laguerre. Lo demás sería igual.
56 j Capítulo 2. Resolución de ecuaciones no lineales de una variable
1. –
Comenzar con un número cualquiera como raíz x de pn .x/ D 0
2. Evaluar pn .x/, pn0 .x/ y pn00 .x/ mediate evalpoly()
–
3. –
Calcular el valor de g.x/ y h.x/.
4. –
Determinar una raíz mejor r con la fórmula de Laguerre (adecuando el signo correspondiente de la
raíz cuadrada).
5. – Hacer x r y repetir los pasos 2 a 5 hasta que jpn .x/j < tol o jx rj < tol, siendo tol una
precisión dada.
Cuadro 2.19: Algoritmo de Laguerre para calcular las raíces de pn .x/ D 0
Cuadro 2.20: Algoritmo de Laguerre para obtener las raíces de pn .x/ D 0 y dos aplicaciones prácticas
Contenido
3.1 El problema y sus principios teóricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.2 Métodos directos de resolución numérica. Eliminación de Gauss . . . . . . . . . . . . . . . . . . . 61
3.3 Condicionamiento de sistemas de ecuaciones lineales . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.4 Fuentes de errores en la eliminación de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.5 Matlab y los sistemas de ecuaciones lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.6 Factorización LU de la matriz del sistema de ecuaciones . . . . . . . . . . . . . . . . . . . . . . . 79
3.7 Solución de sistemas de ecuaciones lineales modificados . . . . . . . . . . . . . . . . . . . . . . . 85
3.8 Refinamiento iterativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.9 Sistemas de ecuaciones lineales con matrices simétricas . . . . . . . . . . . . . . . . . . . . . . . . 87
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
S E trata de obtener el vector solución x que cumple un conjunto, o sistema, de ecuaciones lineales como
a11 x1 C a12 x2 C C a1n xn D b1
a21 x1 C a22 x2 C C a2n xn D b2
:: :: :: ::
: : : :
am1 x1 C am2 x2 C C amn xn D bm :
Los números aij son los coeficientes del sistema y b D Œb1 ; : : : ; bm T el término independiente.
Hay que obtener el valor del vector x D Œx1 ; : : : ; xn T que hace que se cumplan simultáneamente todas las igualdades.
Si se introducen las matrices y vectores
2 3 2 3 2 3
a11 a12 a1n x1 b1
6 a21 a22 a2n 7 6 x2 7 6 b2 7
6 7 6 7 6 7
AD6 : : : 7; x D 6 : 7 y b D 6 : 7;
4 :: :: :: 5 4 :: 5 4 :: 5
am1 am2 amn xn xm
el sistema se puede representar de forma más compacta por
Ax D b:
58 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
2a 2b
2a 2b
m<n m<n
m<n · = m<n · =
rango(A) = m < n · = rango(A) < m < n · =
m<n m<n
rango(A) = m < n = rango(A) < m < n =
· ·
rango(A) = m < n rango(A) < m < n
3a 3b 5/101
Figura 3.1: Casos posibles de sistemas de ecuaciones lineales según la estructura y rango de la matriz A
3a 3b
Recordemos para empezar algunos resultados de la teoría de álgebra lineal.
a c
Teorema 3.1
b
Compatibilidad de un1 sistema
2 3
de ecuaciones lineales. La ecuación Ax D b admite solución si y sólo si
g
d e f 9 4
rango.Ajb/
6 5
D rango.A/:
h i j 10 8 7
Teorema 3.3 Si x0 es una solución de Ax D b, el conjunto de soluciones de la ecuación está dado por x0 C ker.A/.
Teorema 3.5 La ecuación Ax D 0, A mn , n > m, siempre tiene una solución no trivial.
Teorema 3.6 Si A es una matriz cuadrada de orden n, las siguientes condiciones son equivalentes:
1. rango.A/ D n.
2. ker.A/ D ;.
3. Los vectores columna de A son linealmente independientes.
4. Los vectores fila de A son linealmente independientes.
5. Existe una matriz de orden n, A 1 , tal que A 1 A D AA 1 D I
Ejemplo 3.1 Hay que modelizar el sistema de refrigeración de una tarjeta electrónica para poder usar un reloj de
Thermal Model of an IC Package (1)
aire
Q1 Q2
c Τp Τw
Qc
R2
Q3 R3 Q4 R4 Q5 R5
Tp
Tw
Τa Τa Τa
temperatura exterior Ta
Si el sistema necesita Qc watios de potencia y se supone un modelo resistivo del flujo de aire entre los nudos del
sistema, aplicando los principios de conservación de la energía se obtienen estas ecuaciones:
1 1
Q1 D .Tc Tp / Q4 D .Tp Ta / Qc D Q1 C Q3
R1 R4
1 1
Q2 D .Tp Tw / Q2 D .Tw Ta / Q1 D Q2 C Q4
R2 R5
1
Q3 D .Tc Ta /:
R3
NMM: Solving Systems of Equations page 7
Se conocen Qc y Ta . Las resistencias se pueden conocer sabiendo el material de las placas y sus propiedades. Las
incógnitas son entonces Q1 , Q2 , Q3 , Q4 , Tc , Tp y Tw .
Como hay siete ecuaciones, reagrupando las ecuaciones para aislar las incógnitas:
R1 Q1 Tc C T9 D 0
R2 Q2 Tp C Tw D 0
R3 Q3 Tc D Ta
R4 Q4 Tp D Ta
R5 Q2 Tw D Ta
Q1 C Q3 D Qc
Q1 Q2 Q4 D 0:
Cuadro 3.1
Analicemos ahora geométricamente el problema de resolver un sistema de dos ecuaciones lineales con dos incógnitas:
a11 x1 C a12 x2 D b1
a21 x1 C a22 x2 D b2 :
Cada una de las ecuaciones que componen el sistema representa una recta en el espacio euclídeo de dimensión dos.
Se ve en la figura 3.3.
x2
a11 x 1 + a12 x 2 = b1
a21 x 1 + a22 x 2 = b2
x1
El proceso de obtener la solución del sistema tiene como objeto determinar las coordenadas del punto donde se
cortan.
Las expresiones gráficas de las diversas formas que pueden adoptar los sistemas de ecuaciones lineales son, esquemá-
ticamente, las tres de la figura 3.4.
Generalizando a Rn , la resolución de un sistema de ecuaciones lineales consiste en determinar las coordenadas del(los)
punto(s) de intersección de los hiperplanos asociados a cada una de las ecuaciones. En R3 , por ejemplo, el sistema
x1 2x2 C x3 D 0
2x2 8x3 D 8
4x1 C 5x2 C 9x3 D 9
62 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
b1
b2
a11
a21
a12
a22
El más clásico es el debido a Gauss —por Carl Friedrich Gauss, Alemania, 1777-1855—,
Gauss
quien lo aplicó por primera vez en 1809 con motivo de unos estudios sobre órbitas de cuerpos celestes.
Supondremos que la matriz cuadrada A es de rango completo –regular–, por lo tanto invertible, y que si eventualmente
no lo es el procedimiento deberá detectarlo. La mecánica del método consiste en aplicar al sistema
9
a11 x1 C a12 x2 C C a1n xn D b1 >
>
>
a21 x1 C a22 x2 C C a2n xn D b2 =
:: :: :: :: > Ax D b
: : : : >
>
;
an1 x1 C an2 x2 C C ann xn D bn
n 1 transformaciones lineales que lo conviertan en otro más fácil de resolver. Concretamente, en uno triangular
superior de la forma 9
u11x1 C u12x2 C C u1nxn D b10 =
u22x2 C C u2nxn D b20 0
::: ::: U xxDD
U b0 : b :
;
unnxn D bn0 ;
1. Una multiplicación de una de las ecuaciones del sistema por un número distinto de cero.
2. Una sustitución de una ecuación del sistema (o varias) por la que resulta de sumarle otra multiplicada por un factor.
3. Una posible permutación del orden en que aparecen en el sistema las ecuaciones del mismo.
Para introducir de forma práctica el método lo vamos a hacer resolviendo sobre la marcha un sistema en el que se
presentan las diversas opciones y variantes. Concretamente
2x1 C x2 C 4x4 D 2
4x1 2x2 C 3x3 7x4 D 9
4x1 C x2 2x3 C 8x4 D 2
3x2 12x3 x4 D 2:
Escrito en la forma matricial Ax D b, los distintos elementos son
2 3 2 3 23
2 1 0 4 2 x1
6 4 2 3 77 6 7 6 x2 7
AD6 7; b D 6 97 y xD6 7
4 4 1 2 8 5 4 25 4 x3 5 :
0 3 12 1 2 x4
Reconfiguremos inicialmente la matriz A añadiéndole a su derecha la columna del término independiente b —matriz
b es decir,
aumentada—, y llamemos a la nueva matriz A;
2 3
2 1 0 4 2
6 3 7 97
b D ŒAjb D 6 4 2
A 7:
4 4 1 2 8 25
0 3 12 1 2
Apliquemos ahora la mecánica del método en 3 etapas.
Etapa 1
Comprobemos el valor del coeficiente aO 11 —denominado elemento pivote—. Si es distinto de cero, pivotando sobre él,
hagamos cero los coeficientes de la primera columna por debajo de ese aO 11
Para ello, calculamos para cada fila 2; 3; : : : ; n los factores o multiplicadores
aO i1
ri D ; i D 2; : : : ; n:
aO 11
A continuación, restamos de las filas i D 2; 3; : : : ; n, la primera multiplicada por ri . El resultado será que todos los
coeficientes debajo de la diagonal principal de la columna 1 se harán cero.
Los demás coeficientes de A b debajo de la primera fila se verán afectados como indica esta expresión:
aO ij aO ij ri aO 1j ; i D 2; : : : ; nI j D 2; : : : ; n C 1:
En el ejemplo, los multiplicadores son
r2 D aO 21 =aO 11 D 4=2 D 2
r3 D aO 31 =aO 11 D 4=2 D 2
r4 D aO 41 =aO 11 D 0=2 D 0:
b que cambian de valor y cómo lo hacen se apunta en la fórmula 3.1. La nueva matriz A
Los coeficientes de la matriz A b1,
b
resultado de transformar A, es:
2 3
2 1 0 4 2
6 3 1 57
Ab1 D 6 0 0 7:
40 1 2 0 25
0 3 12 1 2
64 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
en la 2a fila: aO 21 0
aO 22 aO 22 r2 aO 12 D 2 C 21 D 0
aO 23 aO 23 r2 aO 13 D 3 C 20 D 3
aO 24 aO 24 r2 aO 14 D 7 C 24 D 1
aO 25 aO 25 r2 aO 15 D 9 C 22 D 5I
en la 3a fila: aO 31 0
aO 32 aO 32 r3 aO 12 D 1 21 D 1
aO 33 aO 33 r3 aO 13 D 2 20 D 2
aO 34 aO 34 r3 aO 14 D 8 24 D 0
aO 35 aO 35 r3 aO 15 D 2 22 D 2I
en la 4a fila: aO 41 0
aO 42 aO 42 r3 aO 12 D 3 01 D 3
aO 43 aO 43 r4 aO 13 D 12 00 D 12
aO 44 aO 44 r4 aO 14 D 1 04 D 1
aO 45 aO 45 r4 aO 15 D 2 02 D 2:
Fórmula 3.1
b
Se puede comprobar fácilmente que se hubiese obtenido exactamente el mismo resultado de haber premultiplicado A
por la denominada transformación de Gauss, definida por la matriz triangular inferior unitaria
2 3
1000
6 2 1 0 07
L1 D 6 4 2 0 1 05;
7
0001
denominada matriz de transformación de Gauss. En efecto,
2 32 3 2 3
1000 2 1 0 4 2 2 1 0 4 2
6 2 1 0 076 4 2 3 7 7
97 60 6 0 3 1 57
bD6
L1 A 76 D 7:
4 2 0 1 054 4 1 2 8 25 40 1 2 0 25
0001 0 3 12 1 2 0 3 12 1 2
0 0
Su inversa es 2 3
1000
6 2 1 0 07
L1 1 D6 7
4 2 0 1 05:
0001
La única diferencia de esta matriz con L1 es el signo de los coeficientes de la primera columna debajo de la diagonal
b 1 D L1 A.
principal. En resumen, A b
Etapa 2
Hagamos cero los coeficientes debajo de la diagonal principal de la 2a columna de A
b1.
3.2 Métodos directos de resolución numérica. Eliminación de Gauss j 65
1
Al tratar de hacerlo, vemos que el coeficiente pivote aO 22 es cero, lo que nos impide proceder como en la etapa anterior.
1
Comprobemos entonces si algún coeficiente de la columna 2 por debajo de aO 22 no es 0:
Si no hay ninguno, esta columna es combinación lineal de la primera y por tanto la matriz es singular.
Si hay varios, escojamos el de mayor valor absoluto e intercambiemos la fila de ese coeficiente con la segunda.
En el ejemplo, el coeficiente de mayor valor absoluto debajo de la diagonal principal en la segunda columna, 3, se
encuentra en la fila 4. Intercambiamos esa fila 4 con la 2. Se obtendrá
2 3
2 1 0 4 2
6 0 3 12 1 27
b 01 D 6
A 7:
40 1 2 0 25
0 0 3 1 5
b 1 por la permutación
Esto mismo se obtiene premultiplicando A
32
1000
60 0 0 17
P1 D 6 7
40 0 1 05:
0100
b 0 , es:
Recapitulemos lo hecho hasta ahora: la matriz con la que vamos a operar a continuación, A 1
b 01 D P 1 L1 A:
A b
Apliquemos ahora a la columna 2 la misma idea que a la columna 1 y hagamos cero sus coeficientes 3 a n. Los nuevos
multiplicadores saldrán de la expresión
0
aO 1
ri D 1i 20 ; i D 3; 4:
aO 22
b 0 por debajo de la segunda fila se obtendrán aplicando la expresión
Los nuevos valores de los coeficientes de la matriz A 1
10 10 10
aO ij aO ij ri aO 2j ; i D 3; 4I j D 3; : : : ; 5:
1 0 1 0
r3 D aO 32 =aO 22 D 1=3 y
1 0 1 0
r4 D aO 42 =aO 22 D 0:
b 0 resultante:
Los nuevos coeficientes de la matriz A 1
en la 3a fila: 1 0
aO 32 0
10 10 1 0 1
aO 33 aO 33 r3 aO 23 D 2C 3
12 D 2
10 10 10 1
aO 34 aO 34 r3 aO 24 D 0C 3
1 D 1=3
10 10 10 1
aO 35 aO 35 r3 aO 25 D 2 3
2 D 8=3I
en la 4a fila: 10
aO 42 0
10 10 1 0
aO 43 aO 43 r4 aO 23 D 3 0 12 D 3
10 10 10
aO 44 aO 44 r4 aO 24 D 1 01 D 1
10 10 10
aO 45 aO 45 r4 aO 25 D 5 02 D 5:
Al ser r4 D 0 los cálculos para adaptar la cuarta fila podrían haberse evitado.
66 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
b 2 D L2 P 1 L1 A;
A b
2 3
1 000
60 1 0 07
donde L2 D 6
40
7.
1=3 1 0 5
0 001
Etapa 3
2
Para conseguir transformar el sistema original en uno triangular superior sólo resta anular el coeficiente aO 43 .
2
El coeficiente de la diagonal principal aO 33 es distinto de cero, luego procedemos a calcular el multiplicador r4 :
2 2
r4 D aO 43 =aO 33 D 3=2:
donde 2 3
10 0 0
60 1 0 07
L3 D 6
40 0
7:
1 05
00 3=2 1
En conclusión, la matriz original que definía el sistema, A, se puede transformar en la triangular superior U aplicán-
b Es decir,
dole las mismas transformaciones que a A.
U D L3 L2 P 1 L1 A:
3.2 Métodos directos de resolución numérica. Eliminación de Gauss j 67
Como a b también se le han efectuado las mismas transformaciones llegándose a b0 , resolver el sistema de ecuaciones
original es equivalente a resolver
U x D b0
En el ejemplo,
2 32 3 2 3
2 1 0 4 x1 2
60 3 12 1 7 6 7 6 27
6 7 6 x2 7 D 6 7:
40 0 2 1=3 5 4 x3 5 4 8=3 5
0 0 0 1=2 x4 1
La solución se lleva a cabo mediante sustitución inversa:
x4 D 2;
3.2.1 Pivotación
Veamos qué ocurre si resolvemos con el procedimiento estudiado, en una máquina teórica con sólo tres dígitos signifi-
cativos y que redondea, el pequeño sistema
10 4 1 x1 1
D
1 1 x2 2
™ „ƒ‚… „ƒ‚…
A x b
de solución exacta Œ0;99989999; 1;00010001T . Aplicando la mecánica y los pasos apuntados, como 10 4
no es cero,
en una primera etapa se obtendrían una nueva matriz A1 y un nuevo vector b1 ,
10 4 1 1
A1 D y b 1 D :
0 1 104 2 104
Ahora bien, el número 1 104 D 9999 la máquina lo redondearía a 104 ; de la misma forma procedería con 2 104 .
La solución del sistema que daría la máquina sería
104
x2 D D1
104 muy distinta de la real.
1 x2
x1 D D0
10 4
68 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
La elección del pivote, y su uso, además de que el multiplicador no sea un posible ai i D 0, también tiene por objeto
que ese multiplicador no tenga una magnitud muy diferente a 1. Su sentido es aumentar la estabilidad numérica del
procedimiento. Es por esto por lo que siempre se prefiere escoger el coeficiente pivote de mayor magnitud de entre los
de debajo de la diagonal principal.
En este último ejemplo, en la primera etapa, en vez de operar sobre la matriz anterior, como el valor absoluto del
coeficiente a21 es mayor que el del a11 , se debería intercambiar la fila 1 con la 2 obteniéndose
1 1 2
A0 D 4 y b 0
D :
10 1 1
Continuando con el procedimiento normal, después de la primera etapa, se llegará a
0 1 1 0 2
A1 D y b1 D :
0 1 10 4 1 2 10 4
Por redondeos internos, la máquina representaría estas matrices así:
11 2
A10 D y b01 D :
01 1
La solución de este sistema de ecuaciones sería
x1 1
D ;
x2 1
mucho mejor que la anterior, pues la real como apuntábamos es
0,9998
x2 D D 0,99989999
0,9999
x1 D 1,00010001:
La diferencia entre las dos formas de proceder anteriores es fundamental desde el punto de vista numérico en un
ordenador. En la primera, al usar el multiplicador 104 , el efecto de restar 104 veces la ecuación superior de la ecuación
inferior hace que la primera domine la ecuación final.
Aunque al principio del proceso había dos ecuaciones, o fuentes de información independientes, actuando de la manera
inicial, después de la primera eliminación quedaron en esencia dos copias de la ecuación superior pues la inferior, a
efectos prácticos, había desaparecido. La solución obtenida con esa forma de actuar, como es lógico, no satisface la
ecuación inferior como sería deseable. A este efecto o fenómeno se le conoce en análisis numérico como dominancia.
El proceso de pivotación descrito de intercambiar filas se conoce como pivotación parcial. Su por qué radica en la
aritmética de precisión finita con la que trabajan todos los ordenadores (que desafortunadamente domina el entorno
de cálculo científico e ingenieril actual) y en el hecho de que los factores o multiplicadores antes introducidos son
inversamente proporcionales al coeficiente pivote: si éste es demasiado pequeño puede amplificar los errores de redondeo
a lo largo del proceso de solución y favorecer la dominancia que se ha descrito.
Una segunda estrategia de pivotación es la denominada pivotación total. Consiste en buscar en una etapa i el co-
eficiente de mayor valor absoluto en la submatriz Ai Wn;iWn . Es lo que describe la figura 3.7a. La pivotación total es la
estrategia óptima desde el punto de vista de minimizar errores.
Una tercera estrategia de pivotación es la denominada rook pivoting. Consiste en encontrar los coeficientes de la
submatriz Ai Wn;iWn que sean máximos en su fila y columna y luego decidir, de acuerdo con algún criterio, cuál de ellos
sería el pivote. En la matriz de la figura 3.7b (Higham [2002]) se escogería el 9 en la primera pivotación.
En la práctica, la pivotación parcial produce muy buenos resultados y excelentes prestaciones numéricas por lo que
rara vez se usa otra.
Full Pivoting
To avoid division by zero, swap the row having the zero pivot
with one of the rows below it. 3.2 Métodos directos de resolución numérica. Eliminación de Gauss j 69
g : _ e?**7Â 17'77Â Â oV£VHÂ !H7* _Bg
>> A=randn(4000);
>> A=[2 1 0 4;-4 -2 3 -7;4 1 -2 8;0 -3 -12 -1]; >> x=ones(4000,1);
>> Gauss(A,b) >> b=A*x;
ans = >> tic,norm(x-Gauss(A,b)),toc
3.0000 ans = 4.2042e-11
4.0000 Elapsed time is 173.586543 seconds.
-1.0000 >> tic,norm(x-A\b),toc
-2.0000 ans = 6.6135e-11
Elapsed time is 0.827066 seconds.
Como se ve, la utilización de ese código frente al procedimiento estándar de M ATLAB, para un sistema relativamente
grande, 4000 4000, es muy desfavorable en tiempo de cálculo. No así en la precisión obtenida.
Desde el punto de vista de la codificación del algoritmo, conviene mejorar dos aspectos:
No es realmente necesario intercambiar las filas una vez elegido el coeficiente pivote de cada etapa; basta con tener
constancia en cada momento dónde están las filas que se intercambian.
Tal como está estructurado el programa sólo se podría resolver un sistema (el definido por el b dado) y no, como es
lo más habitual, distintos sistemas con la misma matriz A y diversos términos independientes.
El primero se puede paliar mediante la introducción de un vector índice, IPIV, de dimensión el número de ecuaciones,
70 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Cuando haya que intercambiar dos filas en un etapa, no se hará intercambiando físicamente los coeficientes de esas
dos filas, sino las correspondientes de IPIV.
Si en una primera etapa hay que utilizar como pivote el de la cuarta fila, el vector índice después de esa etapa quedaría
2 3
4
627
637
6 7
IPIV D 6 1 7 :
6:7 48/128
4:5
:
Si al final de un proceso de resolución de unn sistema
de cinco ecuaciones con
cinco incógnitas, el vector puntero resultase
Si al final de un proceso de resolución de un sistema 5 52
el vector
3 puntero resultase
24 3
6247
6
6 277
IPIV D
IPIV D 6
657
6 5
7;
7;
4
415 5 1
33
lamatrizA 0 queseobtendríanoresultaría serestrictamentetriangular superior.
0
la matriz ATendríalaforma
que se obtendría noquesigue.
resultaría ser estrictamente triangular superior. Tendría la forma que sigue.
Para obtener Ax D b habría que aplicar esas mismas manipulaciones de filas a b, o tenerlo en cuenta.
Para obtener Ax D b habría que aplicar esas mismas manipulaciones de filas a
Para evitar el segundo inconveniente habría que guardar adecuadamente la información que definen los multiplicado-
res asociadosb,a ocada
tenerlo
fila deen cuenta.
cada etapa. Los i 1 multiplicadores se pueden alojar en los lugares vacíos —o mejor dicho,
que se hacen cero— que provocan las transformaciones que propician: en la etapa i , debajo de la diagonal principal en
la columna i.
En el ejemplo, con esta idea, al final del proceso:
a b c 1 2 3
2 3
2 1 0 4
d e f g 9 4 6 6 2 3 12 1 7
5
h i j 10 8 7
AD6 7
4 2 1=3 2 1=3 5 :
0 0 3=2 1=2
Cuadro 3.3
La cantidad de tiempo necesaria para completar los cálculos y operaciones que conlleva.
Ambos factores dependen del número de operaciones aritméticas necesarias para la aplicación del algoritmo.
Los tiempos necesarios para realizar en un ordenador la multiplicación y la división de dos números son aproximada-
mente iguales y considerablemente mayores, en términos relativos, que los requeridos para realizar la suma o diferencia,
que también son muy semejantes entre sí.
La eliminación de Gauss para resolver un sistema de ecuaciones lineales, en la primera etapa, realiza las operaciones
que se representan simbólicamente en la figura 3.8.
Figura 3.8: Operaciones que se realizan en la primera etapa de la Eliminación de Gauss y coeficientes afectados
El símbolo ✷ designa los coeficientes de la matriz que se ven afectados en esa etapa y que, en principio, son distintos
de cero.
Si en la etapa i se está transformando una matriz n n, las operaciones que en ella se realizan son:
Multiplicaciones y divisiones:
n
X1 n
X1 n
X1 n
X1
.n i/.n i C 2/ D .n2 C 2n/ 1 2.n C 1/ iC i2
i D1 i D1 iD1 iD1
.n 1/n
D .n2 C 2n/.n 1/ 2.n C 1/
2
.n
1/n.2n 1/
C
6
2n3 C 3n2 5n
D
6
Sumas y restas:
n
X1 n
X1 n
X1 n
X1
.n i/.n i C 1/ D .n2 C n/ 1 .2n C 1/ iC i2
i D1 i D1 i D1 i D1
.n 1/n
D .n2 C n/.n 1/ .2n C 1/
2
.n 1/n.2n 1/
C
6
n3 n
D :
3
Fórmula 3.2
y
n 1
X n2 n
..n i 1/ C 1/ D sumas y restas.
2
iD1
Contando la totalidad de la transformación de la matriz del sistema y la sustitución inversa, la eliminación de Gauss
requiere
2n3 C 3n2 5n n2 C n n3 C 2n2 n
C D multiplicaciones y divisiones
6 2 3
y
n3 n n2 n 2n3 C 3n2 5n
C D sumas y restas.
3 2 6
Para valores de n elevados, estas expresiones tienden a
1 3
n WD O.n3 =3/
3
Jordan
Li D I ˛i eiT ;
donde 2 3 2 3
0 0
6 :: 7 6:7
6 : 7 6 :: 7
6 7 6 7
6 i i 7 6 7
˛i D 6 ai C1 i =ai i 7 fila i C 1 y ei D 6 1 7 fila i :
6 :: 7 6:7
6 7 6:7
4 : 5 4:5
i
ani =aii i 0
En la etapa i de este método, la matriz de transformación de Gauss-Jordan es
Ti D I ˛i eiT ;
donde 2 3 2 3
i
a1i =aii i 0
6 :: 7 6:7
6 : 7 6 :: 7
6 7 6 7
6 i 7 6 7
˛i D 6 1=ai i 7 fila i y ei D 6 1 7 fila i :
6 :: 7 6:7
6 7 6:7
4 : 5 4:5
i
ani =aii i 0
Si se tiene en cuenta que A 0 D A y A n D I, se concluye que
Tn 1 T 2 T 1 A D I;
Aumentando la carga en pequeñas cantidades el cable sufre unos pequeños estiramientos proporcionales a los in-
crementos de esa carga.
Alcanzado el umbral de la zona de fluencia del material del cable, incrementos muy pequeños de la carga suponen,
proporcionalmente, grandes estiramientos del cable.
Antes de este umbral, el problema estiramiento/carga se puede decir que está bien condicionado; en la zona de
fluencia el problema está mal condicionado.
El condicionamiento de un sistema de ecuaciones lineales Ax D b lo caracterizará la sensibilidad del vector solución
x a pequeños cambios, tanto en el término de la derecha, b, como en los coeficientes que definen la matriz A.
Como sabemos, el ordenador o máquina que resuelve Ax D b, al no trabajar más que con una precisión determinada,
resolverá una aproximación
.A C A/x D b C b:
Si el algoritmo utilizado es estable y el sistema también, el resultado obtenido debe ser muy parecido al real.
Si el sistema está mal condicionado, sin embargo, o el algoritmo no es numéricamente estable, la solución puede
diferir sustancialmente de la real.
Ejemplo 3.2 Consideremos los dos sistemas de ecuaciones lineales
8 5 x1 3
Ax D b ! D
4 10 x2 14
y
b xO D bO ! 0;66 3;34 xO 1 4
A D :
1;99 10;01 xO 2 12
La solución de ambos es el vector Œ1; 1T .
Si introducimos una pequeña perturbación b D Œ 0,04; 0,06T en el término independiente del primer sistema,
su solución pasará a ser Œ0,993; 0,9968T . El cambio relativo en la norma euclídea del vector b es
q
kbk2 0;042 C 0;062
D p 0,0050:
kbk2 32 C 142
Por lo que respecta al vector solución, ese cambio relativo en la norma euclídea es
q
kxk2 .1 0;993/2 C .1 0;9968/2
D p 0;0054:
kxk2 12 C 12
Como se puede ver, un pequeño cambio en el vector b induce un cambio pequeño en el vector solución.
Introduciendo el mismo cambio bO D Œ 0,04; 0,06T en el término independiente del segundo sistema, b,
O su
solución pasa a ser Œ6; 0T . Es decir, un cambio relativo en la norma euclídea de bO igual a
q
0;042 C 0;062
p D 0,0057;
42 C 122
produce un cambio en el vector solución igual a:
p
52 C 12
p D 3,6055:
12 C 12
Evidentemente, el segundo sistema es mucho más sensible a cambios en el término independiente que el primero como
se puede ver en la figura 3.9. A su izquierda se representa el primer sistema; el segundo a la derecha.
Las dos rectas que representan las ecuaciones del primer sistema se cortan nítidamente en el punto Œ1; 1T .
En el caso del segundo sistema, aun usando una resolución gráfica mayor, apenas se diferencian las dos rectas y
mucho menos dónde se cortan.
3.3 Condicionamiento de sistemas de ecuaciones lineales j 75
x2 x2
x1 x1
Figura 3.9
A.x C x/ D b C b y Ax D b;
1 kAk
: (3.2)
kxk kbk
Combinando (3.1) y (3.2) se deduce que el error relativo, kxk=kxk, de la solución del sistema Ax D b al modificar
el término independiente de b a b C b es
kxk 1 kbk
kAk kA k :
kxk kbk
Definición 3.1 Sea k k una norma matricial consistente con una norma vectorial. Asociado a esa norma, el número
de condición de una matriz invertible A, .A/, es:
1
.A/ D kAk kA k:
El número de condición de una matriz expresa lo cerca que esa matriz está de la singularidad
Las matrices con números de condición próximos a la unidad, se dicen bien condicionadas; las que tienen números de
condición altos, mal condicionadas.
76 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Si los datos de un sistema Ax D b son exactos con la precisión de la máquina, el error relativo de la solución cumple
que
jjx xjj
.A/:
jjxjj
El concepto de número de condición de una matriz se generaliza a cualquier matriz A (no necesariamente cuadrada)
de rango completo mediante la expresión
.A/ D kAk kA k;
donde A es la matriz pseudoinversa de la matriz A.
El número de condición de una matriz A es un indicador del error de amplificación que produce en un vector x el
someterlo a la transformación que define dicha matriz A.
Concretamente, si la esfera unidad se somete a esa transformación, según se indica en la figura 3.10, el número de
condición 2 asociado a la norma euclídea será igual al cociente de las longitudes de los semiejes mayor y menor, 1 y
2 , del hiperelipsoide resultante de esa transformación.
σ2 σ1
[ $[
Figura 3.10
Estudiemos ahora la sensibilidad a pequeñas perturbaciones en los coeficientes de A. Comparemos las soluciones de
Ax D b y .A C A/.x C x/ D b:
1
La segunda igualdad, haciendo x D A A.x C x/, despreciando el producto A x, con Ax D b, queda
1
kxk kA k kAk kxk:
kxk 1 kAk
kA k kAk :
kxk kAk
Así pues el error relativo en la solución que resulta de perturbar ligeramente los coeficientes de la matriz del sistema
Ax D b está también acotado en términos del número de condición de la matriz A.
Teorema 3.7 Para toda matriz A de rango completo:
1. Su número de condición .A/ 1.
2. .A/ D .A /.
3. .˛A/ D .A/ para todo escalar ˛ ¤ 0.
.A/
4. 2 .A/ D n , donde n y 1 son, respectivamente, los valores singulares mayor y menor de la matriz A.
1 .A/
mKaxi ji .A/j
5. 2 .A/ D mKın j .A/j , si A es simétrica.
i i
6. 2 .A T A/ D 22 .A/.
7. Su número 2 .A/ D 1 si la matriz es la identidad o se trata de una matriz ortogonal.
8. Su número de condición 2 .A/ es invariante frente a transformaciones ortogonales.
3.4 Fuentes de errores en la eliminación de Gauss j 77
Los distintos números de condición de una matriz A 2 Rnn asociados con las normas matriciales más habituales
cumplen que:
2 .A/=n 1 .A/ n 2 .A/I
1 .A/=n 2 .A/ n 1 .A/I
1 .A/=n2 1 .A/ n2 1 .A/:
Volvamos al ejemplo que utilizábamos para concretar estos conceptos. La matriz
8 5
AD ;
4 10
cuya inversa es
1 0;10 0;05
A D ;
0;04 0;08
1
tiene un número de condición 1 .A/ D kAk1 kA k1 D 15 0,14 D 2,1. El de
b D 0,66 3,34 ;
A
1,99 10,01
cuya inversa es
b 1 250,25 83,5
A D ;
49,75 16,5
b D kAk
es 1 .A/ b 1 kA b 1 k1 D 13,35 300 D 4.005: tres órdenes de magnitud superior.
Un error que se comete con frecuencia es asimilar el concepto de número de condición de una matriz con el de su
determinante y que, en ese sentido, a mayor determinante, mayor número de condición. Nada más lejos de la realidad.
Ejemplo 3.3 Sea A una matriz diagonal de orden 100 definida por
y
3
2
x
–1 1
Figura
Figure 3.11: Representación
2.2 The geometry del sistema
behind lineal de2.11.
Example ecuaciones
Systemmal condicionado
(2.17) del ejemplo
is represented by 3.5
the lines x2 = 2 – x1 and x2 = 2.0001 – 1.0001x1 , which intersect at (1,1). The point
El factor de magnificación o amplificación
( –1, 3.0001) nearly delon
misses lying error
bothpara Ax
lines b es laa razón
D being
and de los
solution. Thedos:
differences
between the lines is exaggerated in the figure—they are actually much closer. kx xa k
error relativo hacia delante kxk
factor de amplificación del error D D :
error realtivo hacia atrás krk
Denote the residual by r = b − Axa . The relative backward error ofkbk
system Ax = b
is defined to becon normas infinito, el error relativo hacia atrás es
Para el sistema anterior,
0;0001 ||r||∞
2;0001
0;00005 , D 0;005 %
||b||∞
El número de condición de una matriz cuadrada es el factor de magnificación del error máximo, sobre todos los
posibles b, de resolver Ax D b.
Podemos utilizar un script como el diseñado —guardado en Gauss.m—, con el fin de comprobar y experimentar:
>> Gauss(A,b)
ans =
3.0000
4.0000
-1.0000
-2.0000
>> linsolve(A,b)
ans =
3.0000
4.0000
-1.0000
-2.0000
Las utilidades y funcionalidades que proporciona M ATLAB para resolver sistemas de ecuaciones lineales, o estudiarlos,
son múltiples. Sus orígenes fueron, precisamente, los de resolver y analizar este tipo de problemas. Las expuestas aquí
son sólo una mínima parte.
primero Ly D b y luego U x D y:
Esto es extremadamente útil cuando se requiere resolver sistemas de ecuaciones en los que la matriz A es siempre
la misma y sólo cambia es el término independiente.
80 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Ln 1P n 1 L1 P 1 A D U :
se puede comprobar (de forma no trivial aunque accesible) que se obtiene la factorización
PA D LU :
Lema 3.9 La matriz A admite una factorización LU si y sólo si se cumple que det.Ak / ¤ 0; k D 1; : : : ; n:
Teorema 3.10 Si una matriz regular A de orden n admite una factorización A D LU , donde L es una matriz triangular
inferior de coeficientes diagonales 1 y U una triangular superior, esa factorización es única.
Crout
Supongamos que se desea obtener la factorización en la forma LU 1 , donde U 1 designa una matriz triangular superior
en la que todos los coeficientes de la diagonal principal son 1.
Si la matriz A es de orden 3 y se quiere factorizarla de la forma
2 3 2 32 3
a11 a12 a13 l11 0 0 1 u12 u13
4 a21 a22 a23 5 D 4 l21 l22 0 5 4 0 1 u23 5 ;
a31 a32 a33 l31 l32 l33 0 0 1
l11 u12 D a12
2a fila de U : ! u1j D a1j = l11 ; j D 2; 3I
l11 u13 D a13
a l21 u12 C l22 D a22
2 col. de L: ! li 2 D ai 2 li1 u12 ; i D 2; 3I
l31 u12 C l32 D a32
2a fila de U : l21 u13 C l22 u23 D a23 ! u2j D .a2j l21 u1j /= l22 ; j D 3I
i 1
X
3a col. de L: l31 u13 C l32 u23 C l33 D a33 ! li 3 D ai 3 lij uj i ; i D 3:
j D1
En general, las fórmulas de recurrencia que se pueden deducir de este proceso, denominado factorización LU de
Crout, son:
li1 D ai1 ; i D 1; 2; : : : ; n;
u1j D a1j = l11 ; j > 1;
Pk 1
li k D ai k pD1 lip upk ; i k;
Pk 1 ı
ukj D akj pD1 l kp upj lkk ; j > k:
nn
El algoritmo de Crout para factorizar una matriz regular A D LU 1 y su codificación en M ATLAB son estos.
Como apuntábamos en la eliminación de Gauss, se puede aprovechar la estructura de la matriz A para guardar en ella
las nuevas matrices L y U . El mismo código de M ATLAB quedaría así.
function [L U]=Crout_1(A)
% Factorización LU por Crout
n=size(A,1);
for k=1:n
i=k:n; A(i,k)=A(i,k)-A(i,1:k-1)*A(1:k-1,k);
i=k+1:n; A(k,i)=(A(k,i)-A(k,1:k-1)*A(1:k-1,i))/A(k,k);
end
L=tril(A,0); U=triu(A,1)+eye(n,n);
end
h 10 10 20 i h 10 ih1 1 2i
Con lo que ya sabemos, factoricemos la matriz 20 25 40 , cuyo resultado es LU D 20 5 1 0 . Numérica-
30 50 61 30 20 1 1
mente se puede conseguir en una sencilla sesión de trabajo de M ATLAB usando Crout_1() como indica el cuadro 3.4.
Ejemplo 3.6 Se desea factorizar en una máquina con cuatro dígitos significativos la matriz
2 3
0,001 2,000 3,000
A D 4 -1,000 3,712 4,623 5
-2,000 1,072 5,643
Cuadro 3.4
l21 D -1,000I
l31 D -2,000I
2,000
u12 D f l D 2000I
0,001
3,000
u13 D f l D 3000I
0,001
l22 D f l Œ3,712 C .1,000/.2000/ D 2004I
l32 D f l Œ1,072 C .2,000/.2000/ D 4001I
4,623 C .1,000/.3000/
u23 D f l D 1,500 y
2004
l33 D f lŒ5,643 C (2,000)(3,000) (4,001)(1,500) D 5,642:
¡Ojo! El cálculo de l33 conlleva la pérdida de tres dígitos por redondeo: el valor que debería dar es 5,922.
Pivotación
El ejemplo pone de manifiesto que, aunque se sepa que una matriz no es singular y que su factorización LU teóricamente
existe, los errores de redondeo que se pueden producir al trabajar en una máquina pueden dar al traste con el resultado.
Es aconsejable realizar pivotación pues.
Al final de un proceso con pivotación se obtendría
PA D LU
Cuadro 3.5
3.6 Factorización LU de la matriz del sistema de ecuaciones j 83
h 10 10 20 i
la matriz 20 25 40 con este algoritmo, al final de este proceso el vector IPVT./ que indica las pivotaciones realizadas
30 50 61
T
es Œ3, 2, 1 , como se ve en este cuadro.
El algoritmo de Crout requiere O.n3 =3/ multiplicaciones/divisiones y sumas/restas para la factorización de la matriz.
operando:
1a fila de U : u11 D a11
u12 D a12
u13 D a13 I )
l u D a21
1a col. de L: 21 11 ! li1 D ai1 =u11 ; i D 2; 3I
l31 u11 D a31
)
a l21 u12 C u22 D a22
2 fila de U : ! u2j D a2j l21 u1j ; j D 2; 3I
l21 u13 C u32 D a23
2a col. de L: l31 u12 C l32 u22 D a32 ! li 2 D .ai 2 li1 u12 /=u22 ; i D 3I
jX1
3a fila de U : l31 u13 C l32 u23 C u33 D a33 ! u3j D a3j l3i uij ; j D 3:
i D1
Las fórmulas de recurrencia que se pueden deducir de este proceso son:
u1j D a1j ; j D 1; 2; : : : ; n;
li1 D ai1 =u11 ; j > 1;
Pk 1
ukj D akj pD1 lkp upj ; j k;
Pk 1 ı
li k D ai k pD1 lip upk ukk ; i > k:
El algoritmo de Crout para factorizar —sin pivotación— una matriz regular A nn en la forma L1 U , su codificación
en M ATLAB y el resultado con la matriz precedente son los incluidos en el cuadro 3.6.
La versión en M ATLAB de ese algoritmo incorporando la pivotación es la del cuadro 3.7.
Si comparamos en una sesión de M ATLAB lo que se consigue con este último algoritmo y con los recursos del propio
software para lo mismo, lu(), se obtiene lo que se ve en el cuadro 3.8. Las respuestas son idénticas.
84 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Cuadro 3.6
function [L,U,P]=CroutP1(a)
% Factorización L1U por Crout con pivotación
n=size(a,1); p=1:n;
for k=1:n-1
[r,m]=max(abs(a(k:n,k)));
m=m+k-1;
if a(m,k)==0, continue, end
if k~=m, a([k m],:)=a([m k],:); p([k m])=p([m k]); end
i=k+1:n;
a(i,k)=a(i,k)/a(k,k); a(i,i)=a(i,i)-a(i,k)*a(k,i);
end
L=tril(a,-1)+eye(n,n); U=triu(a); P=eye(n); P=P(p,:);
end
Cuadro 3.7
Cuadro 3.8
3.7 Solución de sistemas de ecuaciones lineales modificados j 85
Cuadro 3.9
para ponerlo a priueba con diversos sistemas de tamaño creciente se lista en el cuadro 3.10. En él se ven los tiempos de
ese código y el que utiliza el propio M ATLAB, así como la precisión de los resultados obtenidos en ambos casos.
>> A=rand(20);
>> max(max(A*InvLU_1(A)-eye(20)))
ans = 2.109423746787797e-015
>> A=rand(1000);
>> tic, max(max(A*InvLU_1(A)-eye(1000))), toc
ans = 5.251354906476990e-013
Elapsed time is 4.017733 seconds.
>> tic, max(max(A*inv(A)-eye(1000))), toc
ans = 5.207778652760453e-013
Elapsed time is 0.447034 seconds.
>> tic, max(max(A*(A\eye(1000))-eye(1000))), toc
ans = 3.934630399271555e-013
Elapsed time is 0.393214 seconds.
Cuadro 3.10
Cuadro 3.11
Ay D A.x0 C z1 /
D Ax0 C Az1
D Ax0 r1
D b:
La solución x0 C z1 sería la exacta del sistema original. Aunque esa solución exacta no lo fuera del todo, el vector y sí
sería mejor que x0 .
Si el nuevo vector de residuos r2 no cumpliese unos requisitos de precisión, se puede resolver el sistema Az2 D r2
y hacer
y D x1 C z2 ;
lo que hará que la solución se aproxime un poco más a x que x0 .
Si es necesario, se calcula un nuevo vector de residuos, r3 y se continua el proceso hasta que la solución se aproxime
tanto como se quiera a la esperada. El script de M ATLAB del cuadro 3.12 lleva a cabo este proceso a mano. El vector
Cuadro 3.12
de residuos debe calcularse con más precisión que la usada para calcular la solución inicial. Un pequeño código para
probar estas ideas y una sesión de M ATLAB se indican en el cuadro 3.13.
Cuadro 3.13
Lema 3.12 Si todas las submatrices principales de una matriz A 2 Rnn son regulares, existen dos matrices triangula-
res inferiores unitarias únicas, L y M , y otra diagonal también única, D D diag.d1 ; : : : ; dn /, tales que A D LDM T .
Para derivar unas fórmulas de recurrencia para obtener la factorización LDLT vamos a partir de un ejemplo simbólico
de orden 3, 2 3 2 32 32 3
a11 a21 a31 1 0 0 d11 1 l21 l31
4 a21 a22 a32 5 D 4 l21 1 0 5 4 d22 5 4 0 1 l32 5 :
a31 a32 a33 l31 l32 1 d33 0 0 1
Operando de acuerdo con las reglas de multiplicación matricial y ordenando convenientemente los resultados se llega a
que
a11 D d11
a21 D l21 d11
a31 D l31 d11
2
a22 D l21 d11 C d22
a32 D l31 l21 d11 C l32 d22
2 2
a33 D l31 d11 C l32 d22 C d33 :
Generalizando, se formula el algoritmo del cuadro 3.14. Este algoritmo requiere O.n3 =6/ multiplicaciones y divisiones
y sumas y restas. Si no se efectúan pivotaciones, el procedimiento numérico puede fallar por la posible presencia de
coeficientes pivote muy pequeños, o por la acumulación de errores de redondeo o de cancelación importantes.
Cuadro 3.14
A D GT G;
donde G es una matriz triangular superior con todos sus coeficientes de la diagonal principal positivos. Estas matrices
se presentan muy frecuentemente en
Ajuste de funciones por mínimos cuadrados.
Análisis de estructuras mecánicas.
Problemas relacionados con el análisis de sistemas eléctricos de generación y transporte de energía.
En muchos procedimientos de optimización lineal y no lineal, etc.
En general, en todas aquellas aplicaciones donde al modelizar un sistema la expresión x T Ax mide la energía presente,
o disponible, o cualquier otra magnitud física que sólo admite cantidades positivas en un entorno determinado.
3.9 Sistemas de ecuaciones lineales con matrices simétricas j 89
Lema 3.13 Las submatrices principales de una matriz definida positiva son definidas positivas.
Teorema 3.14 Si A es una matriz definida positiva de orden n, tiene una descomposición de la forma LDM T , siendo
todos los coeficientes de la matriz diagonal D positivos.
Teorema 3.15 Si A es una matriz simétrica definida positiva de orden n, existe una única matriz triangular superior,
G , con todos sus coeficientes diagonales positivos, tal que A D G T G .
Esta factorización fue formulada por André Louis Cholesky, Francia, 1875-1918, durante su estancia como coman-
dante del ejército francés en la ocupación internacional de Creta entre 1906 y 1909.
Cholesky
Procedamos a simular el algoritmo con la descomposición simbólica de una matriz 3 3. Si se desea obtener la
factorización
2 3 2 32 3
a11 a12 a13 g11 0 0 g11 g12 g13
4 a12 a22 a23 5 D 4 g12 g22 0 5 4 0 g22 g23 5 ;
a13 a23 a33 g13 g23 g33 0 0 g33
operando de acuerdo con las reglas de multiplicación matricial se obtiene lo que sigue.
2
a11 D g11
a12 D g11 g12
a13 D g11 g13
2 2
a22 D g12 C g22
a23 D g12 g13 C g22 g23
2 2 2
a33 D g13 C g23 C g33 :
Generalizando se llega a formular el algoritmo y su traducción a código de M ATLAB del cuadro 3.15. El algoritmo
Factorización de Cholesky A D G T G
for i D 1 to n s function G=Chols_1(A)
iX1 % Factorización de Cholesky
g.i; i/ a.i; i/ g 2 .k; i/ n=size(A,1);
for i=1:n, j=i+1:n;
kD1
A(i,i)=sqrt(A(i,i));
for j D i C 1 to
0n 1 A(i,j)=A(i,j)/A(i,i);
iX1 A(j,j)=A(j,j)-A(i,j)’*A(i,j);
g.i; j / @a.i; j / g.k; i/g.k; j /A g.i; i/ end
kD1 G=triu(A);
end end
end
Cuadro 3.15
requiere O.n3 =6/ operaciones de multiplicación+división y de suma+resta. Con él y ese código, la factorización de una
matriz A dada y sus resultados son los del cuadro 3.16.
90 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Cuadro 3.16
>> x=G\(G’\b)
x =
1.0000
2.0000
3.0000
4.0000
Cuadro 3.17
Si el algoritmo de Cholesky se aplica a una matriz semidefinida positiva y en una de sus etapas el coeficiente akk es
cero, este teorema garantiza que aj k D 0; j D k; : : : n, por lo que no habría que hacer nada más en la columna k. En la
práctica, los errores de redondeo internos impiden los ceros exactos por lo que se recurre a la pivotación.
3.9 Sistemas de ecuaciones lineales con matrices simétricas j 91
3.9.5 Pivotación
Para mantener la simetría de la matriz correspondiente las pivotaciones han de ser simétricas: si se intercambian dos
filas también hay que intercambiar las columnas simétricas: A PAP T . La pivotación en Cholesky se lleva adelante
así:
En cada etapa k del proceso se determina el coeficiente de mayor valor de la diagonal principal,
mKaxkj n ajj :
Si no es cero se intercambian las filas/columnas p y k, siempre y cuando k ¤ p;
si es cero, el resto de la matriz por factorizar sería nula y no se haría nada más, o se emitiría un mensaje de
alerta.
El algoritmo de Cholesky con pivotación para matrices semidefinidas positivas es el del cuadro 3.18. En M ATLAB y con
un ejemplo se obtiene lo que indica el cuadro 3.19.
Cuadro 3.18
PAP T D LBLT
Cuadro 3.20
De esos algoritmos, el más significado es el de James R. Bunch y Linda Kaufman, 1977. En alguna de sus variantes
es el mayoritariamente presente en los códigos profesionales y comerciales para factorizar matrices simétricas. Una
92 j Capítulo 3. Sistemas de ecuaciones lineales. Métodos directos de resolución
Cuadro 3.19
codificación en M ATLAB se puede ver en el cuadro 3.21 de la página 93. El parámetro rho que devuelve la rutina es el
factor de crecimiento máximo de los pivotes a lo largo del proceso. El código trata de minimizarlo.
Con una matriz de Hankel, Hermann Hankel, Alemania, 1839-1873, ideal para probar este tipo de algoritmos, funciona
como se puede ver en el cuadro 3.22 de la página 93.
Contenido
4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
4.2 Principios teóricos de la resolución del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.2.1 Sistemas de ecuaciones lineales incompatibles. Ecuaciones normales . . . . . . . . . . . . . 100
4.2.2 Sistemas de ecuaciones lineales indeterminados . . . . . . . . . . . . . . . . . . . . . . . . . 100
4.3 Resolución numérica del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.3.1 Método de Gram-Schmidt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.3.2 Método de Gram-Schmidt modificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
4.3.3 Factorización QR de la matriz del sistema de ecuaciones lineales . . . . . . . . . . . . . . . 106
4.3.4 Descomposición en valores singulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.3.5 Comparación de los diversos métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.4 Matlab y el problema de mínimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
4.1 Introducción
M UCHOS modelos matemáticos que usan técnicas de estimación, regresión y optimización se han convertido en
herramientas fundamentales de la ciencia, la ingeniería, el marketing y otras disciplinas para ayudar a la toma de
decisiones y el análisis.
Para dotarse de datos a gran escala o conocer y controlar en tiempo real el estado y funcionamiento de diversos sistemas
de operación, control o predicción, del tipo que sean, es necesario primero tomar medidas fielmente de los mismos y
posteriormente actuar a partir de determinados modelos o estimadores.
Cualquier medida siempre está sujeta a errores, por pequeños que sean estos, por el desajuste físico de la calibración
del aparato que la realiza, su propia imperfección, las condiciones ambientales, las vibraciones, el envejecimiento de la
maquinaria, etc. En el caso de datos sociales, por la falta de homogeneidad de la muestra, dispersión de la población,
circunstancias de quiénes las toman, etc.
Par mitigar el efecto de esos errores en los datos, aislarlos, identificarlos y filtrarlos se toma un número de medidas de
los parámetros que definen un sistema bastante mayor del estrictamente necesario –redundante–.
La redundancia de medidas conduce normalmente, en los modelos matemáticos que determinan cómo se relacionan
los parámetros y las variables de funcionamiento de un sistema, a sistemas de ecuaciones incompatibles con muchas
más ecuaciones que incógnitas. La falta de suficientes medidas, lleva a sistemas indeterminados.
Para obtener la solución más probable que represente un sistema y que mejor se aproxime a la ideal si no se diesen
esos errores, se proyecta el problema en un subespacio de menor dimensión al que representa el universo inicial, con el
fin de filtrar, aislar o desechar los datos irrelevantes o poco significativos.
96 j Capítulo 4. Mínimos cuadrados lineales
La proyección más común es la ortogonal, que determinan entre otros el método de los mínimos cuadrados. Su funda-
mento está en el Teorema de la Proyección de la página 528. Otras proyecciones con otras métricas —como las de PCA,
Casos posibles de sistemas lineales, una vez más
norma 1, etc.— se pueden consultar en el apéndice A.
Como enunciamos en capítulos anteriores, los casos posibles de estructuras de sistemas lineales son los de la figura 4.1.
m=n
m=n · = m=n
rango(A) = m = n
m =n · = m= n · =
rango(A) = m = n rango(A) < m = n
· = · =
rango(A) = m = n rango(A) < m = n
1a 1b
1a 1b
m>n · = m>n · =
m>n · = m>n · =
rango(A) = n < m rango(A) < n < m
m>n · = m>n · =
r ango(A) = n < m rango(A) < n < m
2a 2b
2a 2b
m<n m<n
m<n · = m<n · =
rango(A) = m < n · = rango(A) < m < n · =
m<n m<n
rango(A) = m < n = rango(A) < m < n =
· ·
rango(A) = m < n rango(A) < m < n
3a 3b 5/101
Figura 4.1: Casos posibles de sistemas de ecuaciones lineales según la estructura y rango de la matriz A
3a 3b
En este capítulo estudiaremos problemas Ax D b sin solución (tradicional numérica), pues rango.Ajb/ ¤ rango.A/,
a b c 1 2 3
como se expresa en la figura 4.2. Esto es así cuando b … Im.A/.
d e f g 9 4 6 5
i j 10 8 7
b
h
a8
01234 a6
Al no existir esa solución podemos estimar una pseudosolución que cumpla un criterio que la aproxime a una tradi-
cional; en concreto, el de minimizar la norma kAx bk2 . En la figura 4.3 se puede ver la geometría de lo que tratamos
de resolver y qué significa el mínimo de esa norma.
IRU DOO [ LQ Rn
7KH PRVW LPSRUWDQW DVSHFW RI WKH OHDVW VTXDUHV SUREOHP LV WKDW QR PDWWHU ZKDW [ ZH
VHOHFW WKH YHFWRU A[ ZLOO QHFHVVDULO\ EH LQ WKH FROXPQ VSDFH &RO A 6R ZH VHHN DQ [
WKDW PDNHV A[ WKH FORVHVW SRLQW LQ &RO A WR E 6HH )LJ 2I FRXUVH LI E KDSSHQV WR EH
LQ &RO A WKHQ E LV A[ IRU VRPH [ DQG VXFK DQ [ LV D ´OHDVW VTXDUHV VROXWLRQ µ 4.1 Introducción j 97
Ax̂ Ax
0
Im(A) Ax
'*(63&
Figura 4.3: Distintas 7KH YHFWRU
pseudosoluciones E LVDFORVHU
de Ax b y la de AO[ WKDQ
WR mínima norma kAx bk2
WR A[ IRU RWKHU [
También veremos cómo resolver problemas con muchas soluciones. De todas las posibles, estudiaremos y obtendre-
mos:
Aquella, o aquellas x, cuya norma euclídea, kxk2 , es mínima.
Otro tipo de solución, por ejemplo:
m ˇ
X ˇ
ˇ T ˇ
Que minimice ˇaj x bj ˇ :
j D1 ˇo
nˇ
ˇ ˇ
Que minimice mKax ˇajT x bj ˇ :
j
El hecho de que se minimice la norma euclídea –raiz cuadrada positiva de la suma de los cuadrados de las desvia-
ciones entre dos vectores de valores reales– es lo que da nombre a los procedimientos para resolver esos problemas:
mínimos cuadrados. Formalmente el problema que trataremos de resolver es:
Dada una matriz A 2 Rmn , de rango k mKın.m; n/, y un vector b 2 Rm , encontrar un vector x 2 Rn que
minimice kAx bk2 .
El ejemplo por excelencia de las técnicas de mínimos cuadrados consiste en ajustar a un conjunto de m pares de
puntos .ti ; bi / una función f .x; t/ de n parámetros independientes x1 ; x2 : : : xn .
Los pares de puntos los pueden definir unas mediciones, bi , obtenidas en unos tiempos, ti .
Si la función es lineal en x1 ; : : : ; xn se tiene un problema de mínimos cuadrados lineales en el que, si los n pa-
rámetros se disponen como los coeficientes de un vector n-dimensional, x, y los datos obtenidos en otro vector
m-dimensional b (usualmente m n), se llega a una relación de la forma Ax D b, donde A 2 Rmn , x 2 Rn y
b 2 Rm .
Ejemplo 4.1 Supongamos que queremos ajustar al conjunto de pares de puntos f.ti ; bi /g = f.1; 2/; .2; 3/; .3; 5/ , .4; 6/g
la función
f .x1 ; x2 ; x3 ; t/ D x1 C x2 t C x3 t 2 ;
según la idea que representa la figura del cuadro 4.1.
Para los datos y parámetros de este ejemplo el sistema Ax D b queda así:
2 3 2 3
11 1 2 3 2
61 2 4 7 x 1 637
6 7 4 5 6 7
4 1 3 9 5 x2 D 4 5 5 :
x3
1 4 16 6
™– ” x
A b
Usando el apoyo de M ATLAB y una táctica de “ajuste” por mínimos cuadrados, se podría hacer lo que sigue.
b
f (x 1 , x 2 , x 3 , t ) = x 1+ x 2 t + x 3 t 2
5
>> Am=[1 1 1;1 2 4;1 3 9;1 4 16];
4 >> b=[2 3 5 6];
>> Am\b
ans =
3 0.50000000000000
1.40000000000000
-0.00000000000000
2
1 2 3 4 5 6 7 t
Cuadro 4.1: Datos y ajuste en una sesión de M ATLAB de una función polinómica de segundo grado a los datos del ejemplo 4.1
Si se quiere profundizar un poco en el problema dibujando los datos y la función ajustada, habría que hacer lo que se ve
en la figura 4.4.
>> x1=linspace(0,5,150); 4
>> y1=polyval(p,x1);
>> plot(x,y,’o’,x1,y1,’-’)
3
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
Figura 4.4: Linea y D 0; 5 C 1; 4t que mejor ajusta M ATLAB a los cuatro puntos dados
Hay innumerables sistemas de la ciencia, ingeniería, economía, etc. que recurren a modelos de mínimos cuadrados.
En la bibliografía se pueden consultar algunos muy técnicos de éxito en áreas de conocimiento y prácticas muy variadas.
Las fórmulas para obtener las matrices de proyección ortogonal sobre los cuatro subespacios fundamentales de A son
P Im.A/ D AA
P ker.AT / D I AA
P Im.AT / D AA
P ker.A/ D I AA
a) Si A 2 Rmn , m n y rango.A/ D n,
A D .A T A/ 1
AT :
b) Si A 2 Rmn , m n y rango.A/ D m,
A D A T .AA T / 1
:
a) es el problema de mínimos cuadrados resultante de un sistema de ecuaciones incompatible, con matriz de rango
completo.
b) es el de un sistema de ecuaciones compatible indeterminado con matriz de rango completo: resuelve este pro-
blema:
minimizar kxk2 ; donde S D fx W Ax D bg:
x2S
100 j Capítulo 4. Mínimos cuadrados lineales
Teorema 4.3 Sean X e Y dos espacios vectoriales de dimensiones finitas n y m sobre el cuerpo R y A una transforma-
ción lineal representada en dos bases de X e Y por la matriz A. Para un vector dado b 2 Y , el vector x 2 X minimiza
kAx bk2 si y sólo si A T Ax D A T b.
Demostración. Sean Im.A/ D fAx W x 2 Rn g y ker.A/ D fx W Ax D 0g. El complemento ortogonal del conjunto
Im.A/ será:
.Im.A//? D fr W r T z D 0; 8z 2 Im.A/g D fr W r T A D 0T g
D fr W A T r D 0g D ker.A T /:
r = b − Ax ∈ (Im(A))⊥ ⇒ A T (b − Ax ) = 0
El vector de residuos, r D b Ax, es ortogonal a Im.A/ y a los vectores que lo definen, a1 y a2 . Es decir, se cumple
que A T .Ax b/ D 0.
El vector solución de las ecuaciones normales, x, es único si A T A es invertible (si y sólo si la transformación lineal
A es inyectiva: rango.A/ D n). En este caso
x D .A T A/ 1
A T b:
Si la matriz A T A es invertible,
rDb Ax D .I P Im.A/ /b;
donde P Im.A/ D A.A T A/ 1
A T es la matriz de proyección ortogonal sobre Im.A/ paralelamente a ker.A T /.
Teorema 4.4 Sean X e Y dos espacios vectoriales de dimensiones n y m sobre el cuerpo R y A una transformación
lineal representada en dos bases de X e Y por la matriz A. El vector x de norma euclídea mínima que satisface la
ecuación Ax D b es el dado por x D A T z, donde z es una solución de la ecuación AA T z D b.
Demostración. Si x1 es una solución de la ecuación Ax D b, cualquier solución de la misma se puede expresar como
x D x1 C u, donde u 2 ker.A/; es decir, estará en la variedad lineal x1 C ker.A/.
El teorema de la proyección de la página 528 garantiza la existencia en esta variedad lineal de un único x tal que su
norma kxk2 es mínima y además pertenece a .ker.A//? .
Como x 2 .ker.A//? , pertenecerá a Im.A T /, es decir, se podrá expresar como x D A T z para algún z 2 Y . Como
Ax D b, entonces AA T z D b.
Cuando la matriz AA T es invertible, la solución óptima es
x D A T .AA T / 1
b:
u
x 9 x7
x
80123A
x7 3
0123A3
Figura 4.6: Geometría de los sistemas de ecuaciones lineales indeterminados
Ejemplo 4.2 Se quiere obtener la solución de norma euclídea mínima de la ecuación indeterminada Œ 1 2 xx12 D 3.
Cualquier solución se podrá expresar como x1 C ker.A/, donde x1 es cualquier vector solución (por ejemplo Œ 1 1 T )
y ker.A/ es el que se ve en la figura 4.7. La solución que se busca es
1
1 1 1 3 1 3=5
T
x DA AA T bD 12 3D D :
2 2 5 2 6=5
2
x2 Im.A T /
1.5
(3/5, 6/5) = x
1
(1, 1) = x1
subespacio de soluciones
(3, 0)
1 2 x1 3
ker.A/
El número de operaciones del método es O.mn2 / sumas+restas y multiplicaciones+divisiones y O.n/ raíces cuadra-
das.
Los diversos vectores ortonormales de la base de Im.A/ se obtienen como se apunta en la figura 4.8.
e 1
a1 |e 1
a 3
e1 D I −
ka1 k2 e3
a3 a 3 − a 3 |e 1 e 1 − a 3 |e 2 e 2
Este método se debe al trabajo de Jorgen Pedersen Gram, Dinamarca, 1850-1916 y Erhard Schmidt, Alemania, 1876-
1959.
Gram Schmidt
El algoritmo para ortogonalizar los vectores columna de una matriz general A mn es el siguiente.
El algoritmo hace A D E U , donde E mn es la matriz de columnas ei y U nn la matriz triangular superior de los
productos interiores auxiliares uij . Sustituyendo esta expresión de A en las ecuaciones normales, A T Ax D A T b,
resulta que
U T ET EU x D U T ET b
Rice
Según avanza, el método de Gram-Schmidt en la práctica va perdiendo ortogonalidad en los vectores ei por errores
numéricos y, especialmente, si alguno de los vectores columna aj está próximo al subespacio generado por los vectores
anteriores e1 ; : : : ; ej 1 .
Pj 1
En ese caso, los sumandos de la expresión aj iD1 haj jei iei pueden llegar a ser muy pequeños, o muy distantes
unos de otros pero con un resultado final que puede ser muy pequeño, por lo que el error numérico que se va produciendo
es relativamente grande. Al dividir el resultado por su norma (también muy pequeña) los errores se amplificarán aún más.
En 1966 J.R. Rice modificó el orden de las operaciones del método haciendo que en una etapa k en vez de sustraer
del vector ak sus proyecciones sobre los k 1 vectores ei ya calculados, el vector ek se hace igual a ak al principio
y luego se le van sustrayendo su proyección en e1 , pasando el resultado a ser el nuevo ek , el cual se proyecta luego en
e2 , y así sucesivamente en cada uno de los k 1 ei anteriores. El resultado es sustancialmente mejor numéricamente
aunque formalmente casi idéntico como se ve en el cuadro 4.2.
Cuadro 4.2
Los códigos de las versiones clásica y modificada del algoritmo, escritas en M ATLAB, son las del cuadro 4.3. La única
diferencia está en la cuarta línea del código: el vector e reemplaza al correspondiente aj .
El “cara a cara” del método clásico y el modificado en un código M ATLAB supercompacto es este.
Si los probamos para verificar sus prestaciones con un problema difícil y con el del ejemplo inicial, todo ello en una
sesión de M ATLAB, resulta lo que refleja el cuadro 4.4.
Comprobemos ahora la ortogonalidad de los resultados que obtiene el procedimiento original y el modificado. Lo
programamos para usar una matriz de Hilbert 77 —muy mal condicionada— y lo probamos en una sesión. El resultado
es lo del cuadro 4.5.
4.3 Resolución numérica del problema j 105
Cuadro 4.3
>> n=7; A=hilb(n); >> A=[1 1 1;1 2 4;1 3 9;1 4 16] >> [x r2]=Grmsch_3(A,b) % MODIFICADO
>> [Q, R]=gs_c(A); A = x =
>> norm(Q’*Q-eye(n)) 1 1 1 0.5000
ans = 1 2 4 1.4000
0.156453367259543 1 3 9 -0.0000
>> [Q1, R]=gs_m(A); 1 4 16 r2 =
>> norm(Q1’*Q1-eye(n)) >> b=[2;3;5;6] 0.2000
ans = b = >> A\b
1.090139262380597e-009 2 ans =
>> cond(A) 3 0.5000
ans = 5 1.4000
4.753673562966472e+008 6 -0.0000
Cuadro 4.4
>> Script_GRSCH_1
ans = 4.7537e+08
Clásico:
x =
1.1983
-7.1874
81.7515
-318.3887
594.3144
-517.0744
172.5582
e =
% Script_GRSCH_1.m_Script de Ortogonalidad Gram Schmidt clásico y modificado
0.8133 -0.5438 0.1991 -0.0551 0.0120 -0.0020 -0.0011
format short
0.4067 0.3033 -0.6886 0.4760 -0.1974 0.0541 0.0298
0.2711 0.3939 -0.2071 -0.4901 0.6108 -0.3269 -0.1579
n=7; A=hilb(n);
0.2033 0.3817 0.1124 -0.4396 -0.2542 0.6411 0.1833
% Matriz de Hilbert (muy mal condicionada)
0.1627 0.3514 0.2915 -0.1123 -0.4992 -0.2022 0.3445
cond(A), pause
0.1356 0.3202 0.3892 0.2309 -0.1506 -0.5418 -0.8078
0.1162 0.2921 0.4407 0.5206 0.5013 0.3805 0.4115
b=A*ones(n,1); % Término independiente para x=1.
ans = 870.8917
disp(’Clásico:’), [x r2 e]=Grmsch_2(A,b); % Gram Schmidt clásico
ortogonalidad = 0.6954
x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
Modificado:
x =
ortogonalidad=norm(e’*e-eye(n)), pause % Ortogonalidad matriz e
1.0052
0.7926
disp(’Modificado:’), [x r2 e]=Grmsch_3(A,b);% Gram Schmidt modificado
3.0065
x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
-6.8260
15.3845
ortogonalidad=norm(e’*e-eye(n)) % Ortogonalidad matriz e
-11.4559
5.0969
e =
0.8133 -0.5438 0.1991 -0.0551 0.0120 -0.0020 0.0002
0.4067 0.3033 -0.6886 0.4760 -0.1974 0.0541 -0.0091
0.2711 0.3939 -0.2071 -0.4901 0.6108 -0.3269 0.0907
0.2033 0.3817 0.1124 -0.4396 -0.2542 0.6410 -0.3626
0.1627 0.3514 0.2915 -0.1123 -0.4992 -0.2022 0.6800
0.1356 0.3202 0.3892 0.2309 -0.1506 -0.5418 -0.5984
0.1162 0.2921 0.4407 0.5206 0.5013 0.3805 0.1995
ans = 21.0752
ortogonalidad = 1.9358e-08
Cuadro 4.5
106 j Capítulo 4. Mínimos cuadrados lineales
La idea de lo que sigue es usar transformaciones ortogonales para convertir el problema en otro más sencillo de
resolver numéricamente.
Si A 2 Rmn , m > n, b 2 Rm , rango.A/ D n y se han efectuado una serie de transformaciones ortogonales que
refleja un matriz ortogonal Q 2 Rmm tal que
R1 n
QA D R D
0 m n
q
D kR 1 x ck22 C kdk22 ; para cualquier x 2 Rn .
kR 1 x ck22 C kdk22 :
Como kdk22 es constante, la solución será la que haga mínimo el otro sumando: cuando R 1 x D c .
Resolviendo este sistema por sustitución inversa se llega a la solución del problema de mínimos cuadrados.
La suma de residuos al cuadrado será kdk22 y el vector de residuos
0
r D QT :
d
Householder
Aplicar una transformación de Householder a un vector cualquiera equivale a obtener su reflejo respecto al subespacio
.Im.w//? , como se ve en la figura 4.9.
8
7 w 9a w
w
0120w 445
8
Ha
7 w 9a w
En efecto
H a D .I 2wwT /a D a 2wwT a D a 2.wT a/w:
El vector .wT a/w es la proyección de a sobre w; es decir, H a es igual al vector a menos dos veces su proyección sobre
w.
Lo esencial de estas transformaciones es su capacidad de hacer cero determinados coeficientes de un vector dado
—modificarlo ortogonalmente—:
Si x e y son dos vectores no nulos de igual norma euclídea y se hace
1
wD .x y/;
kx yk2
entonces .I 2wwT /x D y.
Comprobémoslo:
!
.x y/T x x y
.I 2wwT /x D x 2 p p D
.x y/T .x y/ .x y/T .x y/
108 j Capítulo 4. Mínimos cuadrados lineales
xT x y T x
Dx 2 .x y/
.x y/T .x y/
T
x x yT x
Dx 2 .x y/ D y:
2.x T x y T x/
Esto es así pues, al tener x e y la misma norma euclídea, .x y/T .x y/ D x T x y T x xT y C y T y D
2.x T x y T x/, pues x T x D y T y y y T x D x T y.
Este resultado, geométricamente, se deduce inmediatamente de la reflexión antes mencionada.
El vector w es colineal con el vector x y.
Como x e y tienen la misma longitud, la reflexión de x respecto a .Im.w//? es y.
678
3
01203445
8
Figura 4.10: Transformación de Householder para convertir un vector x en uno dado y
Para un sistema Ax D b se pueden construir transformaciones de Householder que anulen los coeficientes que se
deseen de cada vector columna de A dejando los demás como estaban.
La ilustración de la figura 4.11 representa los cuatro pasos del proceso de reducir una matriz A 64 a una triangular
superior R 64 .
Figura 4.11
x2
w
w alt
a
y′ a1 − y a1 y a1 + y x1
Cuadro 4.6
function [x r2 Q R]=Qrdes_3(A,b)
>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
% Resolución de Ax=b mediante transformaciones de Householder; calcula Q y R
A =
[m n]=size(A); x=zeros(n,1); Q=eye(m);
1 1 1
for j=1:n
1 2 4
w=Housv(A(j:m,j)); % Householder de a(j:m,j)
1 3 9
A(j:m,j:n)=A(j:m,j:n)-2*w*(w’*A(j:m,j:n));
1 4 16
b(j:m)=b(j:m)-2*w*(w’*b(j:m));
>> b=[2;3;5;6]
Qk=eye(m);
b =
Qk(j:m,j:m)=eye(m+1-j)-2*(w*w’);
2
Q=Qk*Q;
3
end
5
for i=n:-1:1 % Rx=b
6
x(i)=(b(i)-x(i+1:n)’*A(i,i+1:n)’)/A(i,i);
>> [x r]=Qrdes_3(A,b)
end
x =
r2=norm(b(n+1:m))^2; % Residuos al cuadrado
0.5000
R=triu(A); Q=Q’; % Matrices R y Q
1.4000
end
-0.0000
r =
function w = Housv(x)
0.2000
% Transformación de Householder del vector x.
>> A\b
m=max(abs(x)); w=x/m;
ans =
sw=1; if w(1)<0, sw=-1; end
0.5000
w(1)=w(1)+sw*norm(w);
1.4000
w=w/norm(w); w=w(:);
-0.0000
end
Cuadro 4.7
Paso 2 La matriz original A será A D R T ; 0T QT . Si se sustituye en la ecuación Ax D b, se tendrá que
T T T
R ; 0 Q x D b:
4.3 Resolución numérica del problema j 111
0 m−r
En cada etapa k de este proceso se calcula la norma euclídea de ak , k; : : : ; n, limitándose a sus coeficientes
k; : : : ; m y se intercambia la columna k con la de mayor norma.
Paso 2 Del Paso anterior se ha llegado a
R 11R 12 r c r
QAP D R D y Qb D ;
0 R 22 m r d m r
r n r
donde kR 22 k2 1 kAk2 . A partir de aquí hay dos opciones:
Que r D n (rango completo). La solución sale de resolver R 11 x D c.
Que r < n (rango incompleto). Se construyen unas transformaciones ortogonales, Q1nn , tales que R 11 ; R 12 Q1 D
W ; 0 , donde W rr es triangular superior. ¿Cómo hacerlo? Se actúa sobre ŒR 11 , R 12 T y se llega a b).
a) b)
r
n−r 0
r
Eso se hace en r etapas como se ve a continuación. En una de ellas, k, se premultiplica por una transformación
de Householder que haga cero los elementos r C 1 a n de la columna k y que deje inalterados del 1 al k 1
y del k C 1 a r.
112 j Capítulo 4. Mínimos cuadrados lineales
× × × × ×
× × × × × × × × × ×
× × × 1 × × × 2 × × × 3 × × × 4 × × ×
× × × × × × × × × × × × × × × × × × × ×
× × × ⊗ × × ⊗ 0 × ⊗ 0 0 ⊗ 0 0 0 0 0 0 0
× × × ⊗ × × ⊗ 0 × ⊗ 0 0 ⊗ 0 0 0 0 0 0 0
El óvalo indica el elemento que se utiliza para definir cada transformación. Los que se hacen cero con ella
mediante el signo ˝.
Paso 3 De los dos pasos anteriores se tendrá que
Traducido todo el proceso de resolución del problema en código de M ATLAB y aplicado en una sencilla sesión de
M ATLAB a un problema sintético (construido para que la matriz del problema sea de rango incompleto y haya muchas
más ecuaciones que incógnitas), podría resultar algo como lo que muestra el cuadro 4.8. Si utilizamos el código de ese
mismo cuadro para resolver el ejemplo que estamos analizando para introducir los diversos métodos resultará lo que se
indica también en el cuadro 4.8.
Givens
4.3 Resolución numérica del problema j 113
>> a=rand(200,4);
>> b=a*ones(4,1);
>> A=[a a(:,1)*2+a(:,2)*0.5...
a(:,3)*2+a(:,4)*0.5...
function [x r res]=Mincua_QR(A,b) a(:,2)*2+a(:,3)*0.5];
% Resolución de Ax=b general mediante transformaciones de Householder >> size(A)
% Posible rango incompleto r ans = 200 7
[m n]=size(A); x=zeros(n,1); tol=sqrt(eps); W=zeros(n,m); ip=1:n; r=n; >> format long
for j=1:n >> [x r res]=Mincua_QR(A,b)
jm=j; c=0; x =0.168704156479218
for k=j:n 0.156479217603912
h=norm(A(j:m,k)); 0.009779951100245
if h>c, c=h; jm=k; end 0.792176039119804
end 0.415647921760391
if jm~=j, A(:,[j jm])=A(:,[jm j]); ip([j jm]) = ip([jm j]); end 0.415647921760391
if j==m, break, end 0.317848410757946
w=Housv(A(j:m,j)); % Householder de A(j:m,j); luego a A y b r = 4
A(j:m,j:n)=A(j:m,j:n)-2*w*(w’*A(j:m,j:n)); b(j:m)=b(j:m)-2*w*(w’*b(j:m)); res = 1.205973193713402e-029
end %
for j=1:n % Ver rango % Comprobación del resultado
if abs(A(j,j))<=tol, r=j-1; break, end %
end >> x-pinv(A)*b
res=norm(b(r+1:m))^2; w1=zeros(r,n-r+1); ans = 1.0e-015 *
W(1:n,1:r)=A(1:r,1:n)’; % Trasp. de A = W -0.111022302462516
if r~=n 0.333066907387547
for i=r:-1:1 0.194289029309402
w1(i,1:n-r+1)=Housv([W(i,i);W(r+1:n,i)]); % Householder hacia W -0.333066907387547
W([i r+1:n],i:-1:1)=W([i r+1:n],i:-1:1)-2*w1(i,:)’*(w1(i,:)*W([i r+1:n],i:-1:1)); 0.166533453693773
end -0.943689570931383
end 0.499600361081320
for i=r:-1:1 % Resol. Wx=c
x(i)=(b(i)-x(i+1:r)’*W(i+1:r,i))/W(i,i); >> A=[1 1 1;1 2 4;1 3 9;1 4 16];
end >> b=[2;3;5;6];
if r~=n >> [x r res]=Mincua_QR(A,b)
x(r+1:n)=0; % Aplicar a x ultimas Householder hacia W x = 0.500000000000000
for i=1:r, x([i r+1:n])=x([i r+1:n])-2*w1(i,:)’*(w1(i,:)*x([i r+1:n])); end 1.400000000000000
end 0
x(ip)=x(:); % Deshacer perm. col. r = 3
end res = 0.200000000000001
>> A\b
ans = 0.5000
1.4000
-0.0000
Cuadro 4.8
2 3
x1
::
6 : 7
6 xi 1 7
6 7
6 xi cos C xj sen 7 i
6 xi C1 7
6 :: 7
G .i; j /x D 6
6 : 7
7
6 xj 1 7
6 7
6 xi sen C xj cos 7 j
6 xj C1 7
4 :: 5
:
xn
xj
tan D ;
xi
114 j Capítulo 4. Mínimos cuadrados lineales
o, lo que es equivalente,
xi
c D cos D q
xi2 C xj2
y
xj
s D sen D q :
xi2 C xj2
Ejemplo 4.4 En la figura 4.13 se describe, en el espacio euclídeo tridimensional, la rotación del vector
2 3
1
x D 415
1
en el plano z y para anular su tercer coeficiente.
z ....
....
....
....
....
....
...
...
...
...
..
..
...
...
...
x ..
..
1 ..
..
..
..
..
..
..
..
..
..
...
...
...
...
...
1 ..
..
..
y
..........................
...... ...
... ..
... ...
... .
... 1
...
....
.
...
x′
............
Figura 4.13: Transformación o rotación del vector x en otro de su misma magnitud con su coeficiente x3 D 0
Como el ángulo que hay que rotar x es 45ı , la matriz de Givens que hay que utilizar es,
2 3
1 p0 p0
G .2; 3/ D 4 0 p2=2 p2=2 5 :
0 2=2 2=2
El nuevo vector será 3 2
p1
G x D x0 D 4 2 5 :
0
p
Las normas euclídeas de éste y del original son 3.
Mediante transformaciones de Givens se puede reducir la matriz de un problema de mínimos cuadrados, en n etapas,
a una triangular superior R. En cada una de esas etapas, j , se harían cero, uno a uno, los coeficientes j C 1 a m.
0
Ejemplo 4.5 Las operaciones necesarias para transformar la matriz
en R 0 0 , son las de la figura 4.14.
0 0 0
Los símbolos ✷, y 5 indican que el coeficiente al que se hace referencia ha experimentado 1, 2 ó 3 transformaciones
desde su valor inicial .
El algoritmo numérico completo para resolver Ax D b usando transformaciones de Givens es el que describe el
cuadro 4.9. El número de operaciones que requiere para transformar A es:
O.2mn2 2n3 =3/ sumas+restas y multiplicaciones+divisiones
O.mn=2/ raíces cuadradas y
O.n2 =2/ sumas+restas y multiplicaciones+divisiones para efectuar la sustitución inversa.
Su traducción a código de M ATLAB y una sesión utilizándola se listan en del cuadro 4.10.
4.3 Resolución numérica del problema j 115
3 2 2 3
✷✷✷
6 0 ✷ ✷7 6 0 ✷ ✷7
A1 D G .1; 2/A D 6 7
4 5 ; A2 D G .1; 3/A1 D
6 7
4 0 ✷ ✷5;
2 3 2 3
555 555
6 0 ✷ ✷7 60 7
A3 D G .1; 4/A2 D 6 7
4 0 ✷ ✷ 5 ; A4 D G .2; 3/A3 D
6
40 0
7;
5
0 ✷ ✷ 0 ✷ ✷
2 3 2 3
555 555
6 0 5 57 6 0 5 57
A5 D G .2; 4/A4 D 6
40 0
7 ; A6 D G .3; 4/A5 D
5
6 7
4 0 0 55:
0 0 0 0 0
Figura 4.14
Las transformaciones de Givens, con precisiones semejantes, son el doble de caras que las de Householder. La pre-
gunta entonces es obvia, ¿cuándo utilizar Givens y no Householder, y viceversa? La respuesta se deduce de considerar
la estructura de la matriz A del problema:
Si ésta es densa, es decir, muchos de sus coeficientes son distintos de cero, el método de Householder es el más
aconsejable;
Si la estructura de A es dispersa, o con muy pocos coeficientes distintos de cero, convendrá centrarse en hacer cero
sólo aquellos elementos no nulos en las columnas correspondientes, por lo que, a priori, el método de Givens deberá
ser más ventajoso.
Cuadro 4.9
116 j Capítulo 4. Mínimos cuadrados lineales
function [x r2]=Givens(A,b)
% Resolución de Ax=b mediante transformaciones de Givens
>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
[m,n]=size(A); x=zeros(n,1);
A =
for i=1:n % Factorización de A
1 1 1
for k=i+1:m
1 2 4
if 1+abs(A(k,i))==1, continue, end
1 3 9
if abs(A(k,i))>=abs(A(i,i))
1 4 16
t=A(i,i)/A(k,i); s=1/sqrt(1+t*t);
>> b=[2;3;5;6]
c=s*t;
b =
else
2
t=A(k,i)/A(i,i); c=1/sqrt(1+t*t);
3
s=c*t;
5
end
6
A(i,i)=c*A(i,i)+s*A(k,i);
>> [x,r]=Givens(A,b)
q(i+1:n)=c*A(i,i+1:n)+s*A(k,i+1:n);
x =
A(k,i+1:n)=-s*A(i,i+1:n)+c*A(k,i+1:n);
0.5000
A(i,i+1:n)=q(i+1:n);
1.4000
q1=c*b(i)+s*b(k); % Transformar b
-0.0000
b(k)=-s*b(i)+c*b(k);
r =
b(i)=q1;
0.2000
end
>> A\b
end
ans =
for i=n:-1:1 % Sustitución inversa
0.5000
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);
1.4000
end
-0.0000
r2=norm(b(n+1:m))^2; % Residuos al cuadrado
end
Cuadro 4.10
MA D S
es la factorización QR de A. h i h i
Si se eligen adecuadamente esas M a partir de unas matrices básicas M 1 D ˇ11 ˛11 y M 2 D ˇ12 ˛12 , que cum-
plan que 1 ˛i ˇi 0, denominadas transformaciones rápidas de Givens, una reordenación de los cálculos de la
factorización puede conseguir la velocidad de las transformaciones de Householder con las ventajas de las de Givens.
Para cualquier matriz A mn , de rango completo o incompleto, la solución del problema de menor norma euclídea es
X uT b
i
xD vi :
i
i ¤0
4.4 Matlab y el problema de mínimos cuadrados j 117
A D U †V T
2 0;3546 0;6887 0;5700 0;1764 0;2096
32 35;1272 0 0
3
0;3987 0;3756 0;7455 0;2235 0;3071 0 2;4654 0
0;2017 0;8903 0;4082
6 7 6 7
D4 0;4428 0;0624 0;1702 0;3652 0;7985 5 4 0 0 0;0000 5 0;5168 0;2573 0;8165 :
0;4870 0;2507 0;2966 0;7652 0;1627 0 0 0 0;8320 0;3757 0;4082
0;5311 0;5638 0;0490 0;4472 0;4445 0 0 0
uT1 b uT b
xD v1 C 2 v2
1 " 2 # " # " #
0;2017 0;8903 0;5
11;0709 1;5606
D 35;1272
0;5168 C 2;4654
0;2573 D 0;0 :
0;8320 0;3757 0;5
El código que se lista a continuación resuelve el ejemplo llamando a svd() de M ATLAB para obtener la descompo-
sición en valores singulares de A. Lo acompaña una sesión para resolver el problema del ejemplo.
function [x S r] = Svdre(A,b)
>> A=[1 1 1;1 2 4;1 3 9;1 4 16];
% Resolución ||Ax-b|| mediante la desc. en valores singulares de A
>> b=[2;3;5;6];
[m,n] = size(A); tol=sqrt(eps); tmp=zeros(m); x=zeros(n,1);
>> [x,S,r]=Svdre(A,b)
[U S V]=svd(A); S=diag(S); r=0;
x =
for j=1:n
0.5000
if S(j)>=tol
1.4000
r=r+1;
-0.0000
tmp(r)=dot(U(:,j),b)/S(j);
S =
end
19.6214
end
1.7121
for j=1:r
0.2663
x=x+tmp(j)*(V(:,j));
r =
end
3
end
Método Operaciones
mn2 3
Ecuaciones Normales 2
C n6
3
Transformaciones de Householder mn2 n3
Transformaciones de Givens 2mn2 23 n3
2
Método de Gram Schmidt mn
Método de Gram Schmidt Modificado mn2
Método de Golub-Reinsch (SVD) 2mn2 C 4n3
Método de Golub-Reinsch-Chan (SVD) mn2 C 17
3
n3
Cuadro 4.11
Como no disponemos de datos reales, vamos a generar unos sintéticos haciendo c1 D 5 y c2 D 3. Generaremos 300
puntos y los perturbaremos con un ruido aleatorio normalizado de media 0.
Utilizaremos como métodos para obtener los parámetros c1 y c2 , en un modelo linealizado, con ayuda de las rutinas
de M ATLAB:
El operador n
Las ecuaciones normales
La descomposición QR
El método de Gram-Schmidt
La descomposición en valores singulares y
La matriz pseudoinversa,
Para linealizar el modelo original, haremos los cambios v D ln.y=x/, u D x, ˇ D ln c1 y ˛ D c2 , resultando
v D ˛u C ˇ:
Los resultados son prácticamente idénticos. Habría que utilizar también las rutinas de tiempos para tener otro indicador
sobre el esfuerzo bruto invertido en cada caso.
Los gráficos finales, con 100 y 300 puntos sintéticos, la función original y la ajustada, son los de la figura 4.15.
Pasando el diary anterior a un script.m de M ATLAB para generar las alternativas que sea (con las instrucciones para
200 puntos), se llega al cuadro 4.12.
0.7 0.7
original original
+ruido +ruido
0.6
0.6 ajustado
ajustado
0.5 0.5
y
y
0.3 0.3
0.2 0.2
0.1 0.1
0 0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x x
function demoXexp(n)
% demoXexp Ajuste datos sintéticos a y = c(1)*x*exp(c(2)*x)
%
% Dato: n = (opcional) número de puntos sintéticos a generar.
% defecto=200
%
if nargin<1, n=200; end
x0=0.01;
x=linspace(x0,2,n); % Construcción de los datos
y=5*x.*exp(-3*x); %
yn=abs(y+0.05*(rand(size(x))-0.5)); % con cambio de variable
v=log(yn./x); %
x=x(:); v=v(:); % para linealizar el
A=[ones(size(x)) x]; % modelo
c=A\v; %
% Factorización QR
[Q,R]=qr(A,0); c2=R\(Q’*v);
fprintf(’con [Q,R]=qr(A); c1 = %18.15f c2 = %18.15f\n’,exp(c2(1)),c2(2));
% Gram.Schmidt modificado
[Q,R]=gs_m(A); c3=R\(Q’*v);
fprintf(’con [Q,R]=gr_m(A); c1 = %18.15f c2 = %18.15f\n’,exp(c3(1)),c3(2));
% Matriz pseudoinversa
c4=pinv(A)*v;
fprintf(’con pinv(A)*b; c1 = %18.15f c2 = %18.15f\n’,exp(c4(1)),c4(2));
Las referencias básicas de lo presentado son: Burden y Faires [2011]; Eldén et al. [2004]; Ciarlet [1988]; Golub y Van
Loan [2013]; Heath [2002]; Sauer [2012]; Stoer y Bulirsch [1980]; Strang [1976] y Wilkinson [1965].
Las de autores clásicos de mínimos cuadrados: Björk [1996] y [2015]; Gill, Murray y Wright [1991]; Quarteroni et
al. [2000]; Lawson y Hanson [1974] y [1995]. Sobre todos, destaca, según mi modesto entender, Björk. Tanto a escala
europea como americana, que es lo mismo que decir a escala mundial.
Los programas de ordenador los he ido puliendo a lo largo de los años. Son la traducción —mejorados– en M ATLAB
de otros en Fortran o C que se pueden encontrar en mis libros y en multitud de sitios de Internet.
Capítulo 5
Contenido
5.1 Interpolación
Examples versus aproximación . . . . . . . . .Polynomial . . . . . . . . . . . . . . . . . . . . . 121
. . . . . interpolation Piecewise po
5.2 Interpolación numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
5.3 Interpolación polinómica . . . . . . . . . . . . . . . . . . .Basic . . . . . . . . . . . . . . . . . 123
. . . . . motivations
5.3.1 Polinomios de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
5.3.2 Polinomios de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.3.3 Polinomios Ortogonales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
5.4 Interpolación polinómica por trozos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
5.4.1 Interpolación de Hermite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
◮ Plotting a smooth curve through discrete data points
5.4.2 Splines cúbicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
5.4.3 Curvas de Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Suppose we have a sequence of data points
5.4.4 B-splines (basis spline) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Referencias, fuentes y lecturas complementarias . . . . Coordinates
. . . . . . . . . . . . .x.1. . . x. .2 . . . ·. ·. ·. . . x
139
n
Function y1 y2 ··· yn
5.1 Interpolación versus aproximación
L AS diferencias entre la interpolación y la aproximación matemática, grosso modo, son las que plasma la figura 5.1a.
En general,v.s. Curve Fitting
Interpolation
Try to
◮y ajuste.
Interpolación vs. aproximación plot a smooth curve (a continuous differentiable function)
yy known data
Datos conocidos connecting these discrete points.
curve fit aproximada
Función
interpolation
Interpolación
x
x
Curve fitting:
El ajuste,(a) fit function
en Interpolación & data
general, buscay predecirnot exactly agree
una tendencia o el
aproximación matemáticas (b) Interpolación de unos puntos por una función
comportamiento de datospasses
Interpolation: function de acuerdo
exactlycon un modelo
through known dado;
data
la interpolación, que la función, o funciones,
Figuraa5.1:
queInterpolación
de lugar incluya
versus aproximación
todos los datos conocidos, habitualmente buenos. 8/83
e f g
h i j 10 8 7
la aproximación o ajuste busca predecir una tendencia o el comportamiento de unos datos de acuerdo con un modelo
establecido;
la interpolación, que la función, o funciones, que se obtenga de ella incluya todos los datos conocidos, habitualmente
considerados buenos.
La interpolación tiene como objetivo la obtención de nuevos puntos de una sucesión, o conjunto de ellos, que obe-
dece a algún patrón determinado —ver figura 5.1b—. Busca obtener una función que se verifique en todos los puntos
conocidos y que permita calcular tantos nuevos como se desee. Algo tan aparentemente intuitivo como lo que expresa
esa figura, en la que los datos son los círculos rellenos y el resultado la función que permite dibujar la curva que los
realiza a todos. El conseguirlo no es tan fácil.
Un ejemplo habitual cercano a esta idea sería el de encontrar el valor de y para un x cualquiera en un experimento en
el que se han obtenido un conjunto de duplas .x; y/, como se razona en la figura 5.2.
La aproximación busca una función que de resultados tan cercanos como sea posible a los de otra, o a un conjunto de
datos, no necesariamente “pasando” por, o cumpliéndose para todos ellos.
También, aproximar una función a otra para evitar tener que evaluar su “complicada” expresión; por ejemplo la de la
distribución normal estándar, ˇ x
1 y 2 =2
N.x/ D p e dy:
2
1
LaEn
interpolación tieneobtener
muchos casos, como los
objeto la obtención
parámetros de función
de una nuevos puntos
teórica apreestablecida que mejor se ajusta a puntos empíricos.
partir del conocimiento
Interpolation between de un
data conjunto
points discreto de ellos.
El ajuste por mínimos cuadrados del capítulo anterior sería todo el aparato teórico y practico puesto a disposición de
este propósito.
Por ejemplo,
Consider
También, encontrar
a setpoder
of xy data el valor
collected
derivar de y an
during
o integrar para un dados
x cualquiera
experiment.
valores en formaen un
de tabla, hacer pasar por datos discretos, o cerca de ellos,
experimento
funciones en el technique
continuas
We use interpolation que se han obtenido
y derivables, unxconjunto
: : : y at
to estimate de puntos
where there’s no data.
.x; y/.
y
y Datos
knownconocidos
data
x 5/82
d e f g 9 4 6 5
BASIC IDEAS
h i j 10 8 7
x y y F(x)
Para1 obtener
1
una función de interpolación, f .x/, un primer acercamiento al problema consiste en obtenerla mediante
M M
una combinación lineal de un conjunto de funciones estándar o funciones base fáciles de obtener.
xi se considera
Si y i interpolate
un conjunto de n funciones
ŷ base, j , j D 1; : : : ; n, se pretende que
xˆ → yˆ
x i +1 y i +1
n
X
M M
f .x/ D cxj j .x/:
xn yn x̂
j D1
Determining coefficient a1, a2, . . . , an of basis function F(x)
Las funciones base —no triviales de presuponer en cualquier caso— pueden ser diversas:
F(x) = a1Φ1(x) + a2Φ2(x) + . . . + anΦn(x)
Polinomios, polinomios por trozos o porciones de ellos.
Funciones racionales.
Polynomials are often used as the basis functions.
Funciones trigonométricas, :::
F(x) = a + a x + a x2 + . . . + a xn-1
1 2 3 n
5.3 Interpolación polinómica j 123
El proceso de interpolar lo desencadena un muestreo de un modelo, o de un experimento, del que se obtienen m datos
a los que se quiere hacer corresponder una función que se cumpla en todos esos datos.
Por experiencia, intuición, o inteligencia operativa, se escogen n funciones base j para combinarlas y, mediante un
proceso algebraico que desmenuzaremos, se llega a un sistema de ecuaciones lineales de la forma
i
n
cj j .xi / D f .xi /; i D 1; : : : ; m:
j D1
Este sistema:
Si m > n lo normal es que sea incompatible y habría que resolverlo mediante técnicas de mínimos cuadrados.
Si m < n tendrá muchas soluciones y habrá que considerar alguna de ellas por el criterio que sea adecuado.
Si m D n se puede determinar una única solución.
Para empezar con la exposición de las técnicas a emplear, vamos a ejecutar y analizar, a modo de prueba, el guión o
script de M ATLAB, Interpolacion_eje1.m. Su listado y resultados en una sesión de M ATLAB se pueden ver en la
figura 5.3. Lo iremos viendo en lo que sigue.
>> Interpolacion_eje1
p =
-0.0022 0.1802 0.3544
p =
-0.0000 0.0017 -0.0529 0.6705 -0.6192
% Interpolacion_eje1.m
6
xdat = [1 5 10 30 50];
ydat = log(xdat);
plot(xdat,ydat, ’o’)
5
hold on
pause 4
p = polyfit(xdat,ydat,2) % grado 2
xvet=1:0.1:50; 3
plot(xvet,polyval(p,xvet))
hold on
2
pause
p = polyfit(xdat,ydat,4) % grado 4 1
plot(xvet,polyval(p,xvet))
0
-1
0 5 10 15 20 25 30 35 40 45 50
pause 142
x1 = 2007:1:2012; 140
y = interp1(year,precio,x1,’linear’);
plot(year,precio,’o’,x1,y,’-’) 138
hold on
136
pause 134
ys = year-mean(year); 132
A = vander(ys);
a = A\precio; 130
ds = x - mean(year);
p = polyval(a,ds); 128
2006 2006.5 2007 2007.5 2008 2008.5 2009 2009.5 2010 2010.5 2011
plot(year,precio,’o’,x,p,’-’);
Lagrange
Dados dos puntos .x1 ; y1 / y .x2 ; y2 /, el polinomio lineal que los interpola es
p1 .x/ D c1 C c2 x;
siendo y1 x2 y2 x1 y2 y1
c1 D y c2 D :
x2 x1 x2 x1
5.3 Interpolación polinómica j 125
Cada una de las funciones `j .x/ son polinomios de grado n 1 y cumplen que
(
1 si i D j
`j .xi / D ıij D ; i; j D 1; : : : ; n:
0 si i ¤ j
En la figura se ven las funciones base de Lagrange para
En la figura 5.5 se pueden verx las
D funciones base de
Œ0 0;25 0;50 Lagrange
0;75 1T . para cinco puntos.
Funciones base de Lagrange para x=[0.00, 0.25, 0.50, 0.75, 1.00]
1.2
1 l2 l4
0.8
l3
0.6
l1 l5
0.4
lk(x)
0.2
−0.2
−0.4
−0.6
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Figura 5.5: Funciones base de Lagrange para cinco puntos igualmente espaciados de 0 a 1
15/83
Con esta base, la matriz A para elaborar la interpolación ya no es de Vandermonde sino la identidad, I, y el polinomio
de interpolación a b c 1 2 3
h i j 10 8 7
Un posible código de M ATLAB para obtener la interpolación de unos puntos con polinomios de Lagrange y un script
para su utilización se listan en el cuadro 5.1. El resultado que se obtiene de ejecutar en una sesión de M ATLAB ese
script con la instrucción >>do_Lagrange_int es el de la figura de ese cuadro.
Volvamos al problema de los precios del gas natural y utilicemos otro script de M ATLAB, como el del cuadro 5.2,
que ejecutamos y obtenemos la figura que se ve en él.
% do_Lagrange_int.m
x = [-2 -1 1 2]; y=[-6 0 0 6];
l = lagrang_int(x,y);
xx = [-2:0.02:2]; yy = polyval(l,xx);
plot(xx,yy,’b’,x,y,’o’)
function [l,L]=lagrang_int(x,y)
% Calcula el polinomio de interpolación de Lagrange 6
% x e y vectores de datos, l coef. polinomio resultante
% L polinomio base
4
N=length(x)-1; l=0;
for m=1:N+1
P=1; 2
for k=1:N+1
if k~=m, P=conv(P,poly(x(k)))/(x(m)-x(k)); end
end 0
L(m,:)=P; % Polinomios de Lagrange base
l=l+y(m)*P; % Coef. polinomio resultante
−2
end
end
−4
−6
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
Cuadro 5.1
145
% do_Lagrange_int_gas_1.m 140
year = [2007 2008 2009 2010 2011 2012]’;
precio= [133.5 132.2 138.7 141.5 137.6 144.2]’;
ys = year-mean(year);
l = lagrang_int(ys,precio)
x = linspace(min(year),max(year),200); 135
ds = x - mean(year);
p=polyval(l,ds); plot(year,precio ,’o’,x,p,’-’);
2.5
1.5
Newk(x)
1
1
0.5 2 3 4 5
−0.5
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
x
Figura 5.6: Funciones base de Newton para cinco puntos igualmente espaciados de 0 a 2
22/58
a b c 1 2 3
d e f g 9 4 6 5
h i j 10 8 7
5.3 Interpolación polinómica j 127
El polinomio de interpolación entonces pn 1 .x/ D d1 1 .x/ C d2 2 .x/ C C dn n .x/. En la figura 5.6 se ven las
T
funciones base para x D Œ0 0;50 1;00 Pn 1;50 2 .
El que p.xi / D f .xi / hace que j D1 dj j .xi / D f .xi /, i D 1; : : : ; n, lo que lleva a un sistema de ecuaciones
lineales de los di . Para i < j , j .xi / D 0, por lo que la matriz A es triangular inferior, con aij D j .xi /.
Ejemplo 5.2 Calculemos el polinomio de interpolación de Newton para los puntos . 2; 27/, .0; 1/ y .1; 0/. El
sistema que hay que resolver es
2 32 32 3
1 0 0 d1 y1
41 x2 x1 0 5 4d2 5 4y2 5 :
1 x3 x1 .x3 x1 /.x3 x2 / d3 y3
Sustituyendo
2 32 32 3
100 d1 27
41 2 05 4d2 5 4 15 :
133 d3 0
cuya solución es d D Œ 27 13 4T . El polinomio es por consiguiente
p.x/ D 27 C 13.x C 2/ 4.x C 2/x:
El cálculo polinomio de interpolación de Newton se puede optimizar usando las denominadas diferencias divididas.
Para ello, volviendo a la expresión matricial general anterior para un polinomio de segundo grado,
2 32 3 2 3
1 0 0 c1 y1
4 1 x2 x1 0 5 4 c2 5 D 4 y2 5 ;
1 x3 x1 .x3 x1 /.x3 x2 / c3 y3
si se sustrae de la segunda fila la primera, y de la tercera también la primera, se tiene que
2 32 3 2 3
1 0 0 c1 y1
4 0 x 2 x1 0 5 4 c2 5 D 4 y2 y1 5 :
0 x3 x1 .x3 x1 /.x3 x2 / c3 y3 y1
Si se divide la segunda fila por .x2 x1 / y la tercera por .x3 x1 / se llega a
2 32 3 2 3
10 0 c1 y1
40 1 0 5 4c2 5 6 y y 7
4 x2 x 1 5 :
2 1
0 1 x3 x2 c3 y3 y1
x3 x1
donde
f Œx1 ; x3 f Œx1 ; x2 no trivial f Œx2 ; x3 f Œx1 ; x2
f Œx1 ; x2 ; x3 D :
x3 x2 x3 x1
Lo no trivial
y3 y1 y2 y1 y y y2 y1 y
x1 / x3 x1 y2 Cy2 2 y1
f Œx1 ;x3 f Œx1 ;x2 x3 x1 x2 x1 .x3
3 1 x2 x1 y3 y1 x2 x1 .x3 x2 Cx2 x1 /
x3 x2 D x3 x2 D .x3 x2 /.x3 x1 / D .x3 x2 /.x3 x1 /
3
x 1 2
0 2
13 5
y 3 4
3 3
El polinomio es entonces
p3 .x/ D 3 C 12 .x 1/ C 13 .x 1/ x 32 2.x 1/ x 23 x
10 16
D3 x C x 2 2x 3 :
3 3
El programa de M ATLAB de la parte de arriba del cuadro 5.3 realiza la interpolación de Newton. Debajo de él hay un
script con un ejemplo que invoca el anterior. Los resultados de ejecutarlo se presentan en el recuadro y en la figura
más abajo.
function [n,DD]=Newton_int_1(x,y)
% Interpolación con polinomios de Newton
% Vectores de entrada x e y; salida: coef. en n y dif. en DD
N = length(x)-1;
DD = zeros(N+1,N+1); DD(1:N+1,1) = y(:);
for k=2:N+1
for m=1:N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m)); % Difer. divididas
end
end
a = DD(1,:); n = a(N+1);
for k=N:-1:1
n = [n a(k)] - [0 n*x(k)]; % n(x)*(x-x(k-1))+a_k-1
end
end
%do_newton_int_1.m
x=[-2 -1 1 2 4]; y=[-6 0 0 6 60]; % datos ordenados
[n,DD] = Newton_int_1(x,y)
n0 = lagrang_int(x,y) % por comparar con Lagrange
x = [1 2 4 -1 -2]; y=[0 6 60 0 -6]; % orden aleatorio datos
[n1,DD]= Newton_int_1(x,y)
xx = [-2: 0.02 : 4]; yy = polyval(n,xx);
clf, plot(xx,yy,’b-’,x,y,’o’) % se dibuja último caso
60
>> do_newton_int_1 50
n = 0 1 0 -1 0
DD =
-6 6 -2 1 0 40
0 0 2 1 0
0 6 7 0 0
6 27 0 0 0 30
60 0 0 0 0
n0 = 0.0000 1.0000 0.0000 -1.0000 0
20
n1 = 0 1 0 -1 0
DD =
0 6 7 1 0 10
6 27 5 1 0
60 12 1 0 0
0 6 0 0 0 0
-6 0 0 0 0
−10
−2 −1 0 1 2 3 4
Cuadro 5.3: Código para llevarla a cabo y ejemplo de interpolación con polinomios de Newton
Si en una sesión de M ATLAB, por otro lado, resolvemos manualmente el ejemplo 5.3 mediante la tabla de diferencias
divididas, resulta lo que se lista en el cuadro 5.4
Cuadro 5.5
También se usan frecuentemente para aproximar por mínimos cuadrados funciones mediante polinomios de cualquier
grado, pues la ortogonalidad hace que la matriz del sistema que se resuelve sea diagonal.
Los polinomios de Chebyshev son otra familia de polinomios ortogonales fundamental. En su forma trigonométrica
se definen, para x 2 Œ 1; 1, por la identidad
además de que T0 .x/ D 1 y T1 .x/ D x. Los cinco primeros los representa la gráfica de la figura 5.8 en la que se lista
también el programa que los calcula. Su fórmula de recurrencia de tres términos es TkC1 .x/ D 2xTk .x/ Tk 1 .x/. Los
primeros son,
1; x; 2x 2 1; 4x 3 3x; 8x 4 8x 2 C 1; 16x 5 20x 3 C 5x; : : : ;
Chebyshev
La propiedad quizás más interesante de esta familia de polinomios es la equialternancia, o equioscilación, pues los
sucesivos puntos extremos tienen igual magnitud pero signo distinto, como se aprecia en la figura anterior.
En interpolación polinómica de puntos de una función continua, el error máximo en un intervalo se minimiza si se
escogen como puntos de interpolación las raíces de los extremos de un polinomio de Chebyshev de grado adecuado: los
nudos o puntos de Chebyshev.
Los puntos de un polinomio de Chebyshev Tk son los k ceros o raíces de ese polinomio, es decir,
2i 1
xi D cos ; i D 1; : : : ; k
2k
cs412: introduction to numerical analysis 10/12/10
132 j Capítulo 5. Funciones de interpolación y aproximación
\
else
Last timeforwe talked briefly about using Chebyshev points for polynomial interpolation. The idea is
i=2:n
that our choice of0]-[0
p =2*[p2 interpolation
0 p1]; points can have a large impact on the error3 of our interpolant. Recall
p1=p2;
the expression
p2=p; for error in polynomial interpolation (Given f the function we are approximating,
interval end
[a, b], interpolation points ~x = (x0 , x1 , . . . , xn ), and interpolant pn ):
3
end
end
à n
!
f (n+1) (c) Y
E(t) = f (t) − pn (t) = · (t − xi ) (for [ some c ∈ [a, b]) (1)
(n + 1)!
Figura 5.8: Cinco primeros polinomios i=0
| de Chebyshev
{z y el
} código que los genera
(a)
y los k C 1 puntos extremos (máximos y mínimos), incluidos los de los extremos del intervalo, es decir
If we know a great deal about the function f , then we may be able to choose points so as to
i
reduce the error. If we don’t have such cos
xi D information D 0; : : : ;the
; i about k: function, however, the best we can
k
do is to reduce the product (a). The Chebyshev points effectively minimize the maximum value of
Los puntos de Chebyshev son las abcisas de los puntos igualmente espaciados a lo largo de la semicircunferencia de
the radio
product
1 en R(a).
2
como se ve en la figura 5.9.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Figure
Si por ejemplo queremos usar puntos 1: Choosing
de Chebyshev Chebyshev
como abcisas Points e interpolar en el intervalo Œ 1; 1
de interpolación
puntos de la función de Runge
Recall the process for selecting Chebyshev points
f .x/ D
1 over an interval [a, b], as shown in Figure 1:
1 C 25x 2
1. Draw
(debida theDavid
a Carl semicircle on [a,Alemania,
Tolmé Runge, b] centered at the midpoint ((a + b)/2).
1856-1927),
1
5.4 Interpolación polinómica por trozos j 133
a través de puntos igualmente espaciados en las abcisas —fenómeno de Runge— y de Chebyshev, el resultado que se
obtiene con polinomios de Newton es el de la figura 5.10.
2 1.2
1
1.5
0.8
1
0.6
0.5 0.4
0.2
0
0
−0.5 −0.2
−1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1
% Chebyshev_ejemplo_1.m
f = @(x)1./(1+25*x.^2); n = 11;
xe = linspace(-1,1,n);
xc = cos((2*(1:n)-1)*pi/2/n);
t = -1:.01:1;
c = Newton_int_1(xe,f(xe)); t1 = polyval(c,t);
subplot(121), plot(t,f(t),’b’,t,t1,’r’,xe,f(xe),’o’)
c = Newton_int_1(xc,f(xc)); t1 = polyval(c,t);
subplot(122), plot(t,f(t),’b’,t,t1,’r’,xc,f(xc),’o’)
Figura 5.10: Fenómeno de Runge sin usar puntos de Chebyshev y con ellos. El programa que se ha usado para obtener estos
gráficos
Se puede probar que el polinomio de Chebyshev de grado n que mejor interpola puntos de una función f .x/ usando
puntos de Chebyshev es:
nC1 in
nC1
!
1 X 2 X
p.x/ D f .xi / C Tk .xi /f .xi / Tk .x/:
nC1 nC1
i D1 iD1
› kD1 Ÿ
c0 ck
Para calcular el valor de ese p.x/ en determinados puntos se puede usar el algoritmo de Clenshaw —por Charles
William Clenshaw, Reino Unido, 1926-2004, del NPL—, una generalización de la regla de recurrencia de Horner. Su
expresión es
Xn
ck Tk .x/ D u0 xu1 ;
kD0
>> f = @(x)1./(1+25*x.^2);
>> [c,x] = chebpol_int(f,11);
>> t = -1:.01:1;
>> plot(t,f(t),’b’,t,chebpol_clenshaw(c,t),...
function u = chebpol_clenshaw(c,x) ’r’,x,f(x),’ok’)
function [c,x] = chebpol_int(fn,n) n = length(c); 1.2
x = cos((2*(1:n)’-1)*pi/2/n); u = c(n)*ones(size(x));
y = fn(x); if n > 1
1
T = [zeros(n,1) ones(n,1)]; ujp1 = u;
c = [sum(y)/n zeros(1,n-1)]; u = c(n-1) + 2*x*c(n);
0.8
a = 1; for j = n-2:-1:1
for k = 2:n ujp2 = ujp1;
0.6
T = [T(:,2) a*x.*T(:,2)-T(:,1)]; ujp1 = u;
c(k) = sum(T(:,2).* y)*2/n; u = c(j)+2*x.*ujp1-ujp2;
0.4
a = 2; end
end u = u-x.*ujp1;
end end 0.2
end
0
−0.2
−1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1
Cuadro 5.6
Hermite
Supongamos que se quiere aproximar mediante interpolación f .x/ en el intervalo Œxi ; xd con un polinomio de tercer
grado
p.x/ D a C b.x xi / C c.x xi /2 C d.x xi /2 .x xd /;
y que f .xi / D yi , f .xd / D yd , p.xi / D yi , p.xd / D yd , p 0 .xi / D si y p 0 .xd / D sd .
Necesitaremos calcular a, b, c y d . La derivada del polinomio es
p 0 .x/ D b C 2c.x xi / C d 2.x xi /.x xd / C .x xi /2 :
a D yi a C b.xd xi / C c.xd xi /2 D yd
b D si b C 2c.xd xi / C d.xd xi /2 D sd :
Si se tienen n nudos o datos, hará falta determinar 4.n 1/ parámetros de los polinomios. El que se requiera que
166 | CHAPTER 3 Interpolation
interpolen esos n datos añade 2.n 1/ ecuaciones, pues cada n 1 cúbica debe verificar los valores en sus extremos. El
que tengan derivadas continuas añade otras n 2 ecuaciones para cada punto de unión.
El total de
2. ecuaciones es 3n program
Build a Matlab 4, lo que deja 4.nthe1/
to evaluate cosine n parámetros
C 4 D correct
3nfunction libres. places
to 10 decimal La interpolación
using por tanto no
es única, por loChebyshev
que se pueden fijar másStart
interpolation. condiciones para esos
by interpolating ongrados de libertad:
a fundamental monotonicidad,
domain convexidad, etc.
[0, π/2], and extend
La función que yourrealiza
answeresta aproximación
to inputs en M
between −10 104 . es
ATLAB
4 and Youpchip. Unatosesión
may want de trabajo
use some con un code
of the Matlab ejemplo sencillo la
5.7. in this chapter.
refleja el cuadrowritten
4. >>Let
x = -3:3; |x|
f (x) = e . Compare evenly spaced 0.2 interpolation with Chebyshev interpolation by
>> y = [-1 -1 -1 0 1 1 1];
plotting degree
>> t = -3:.01:3; n polynomials of both types on the interval [−1, 1], for n = 10 and 20. For
0
>>evenly
p = pchip(x,y,t);
spaced interpolation, the left and right interpolation base points should be −1 and 1. By
>> plot(x,y,’o’,t,p,’-’) −0.2
sampling at a 0.01 step size, create the empirical interpolation errors for each type, and plot a
>> legend(’datos’,’pchip’,3)
comparison. Can the Runge phenomenon −0.4 be observed in this problem?
−0.6 2
5. Carry out the steps of Computer Problem 4 for f (x) = e−x .
−0.8 datos
pchip
−1
−3 −2 −1 0 1 2 3
y y
4 4
3 3
2 2
1 1
x x
1 2 3 4 5 1 2 3 4 5
Figura
(a) 5.11: Interpolación con spline lineal y spline (b)
cúbica
Figure 3.12 Splines through four data points. (a) Linear spline through (1,2), (2,1),
El desarrollo histórico de las splines y los protagonistas del mismo se indican en la figura 5.12.
(4,4), and (5,3) consists of three linear polynomials given by (3.15). (b) Cubic spline
through the same points, given by (3.16).
136 j Capítulo 5. Funciones de interpolación y aproximación
Splines
Paul de Faget de Casteljau 1930-
French mathematician/physicist
1958-1992: Citroën; unpublished work in 1958
Pierre Bezier 1910-1999
1933-1975: engineer at Renault
1960: beginning of CADCAM work, Bezier curves
Figura 5.12: Desarrollo histórico de los splines y sus principales protagonistas. Trefethen [2005]
Como en el caso de Hermite, las splines cúbicas para interpolar n puntos de una función imponen 3n 4 condiciones,
más n 2 adicionales por requerirse la continuidad de la segunda derivada.
Los dos grados de libertad adicionales se fijan si, por ejemplo,
Las primeras derivadas en los extremos izquierdo y derecho se fijan en sendos valores.
Las segundas derivadas en los extremos son cero.
Las primeras y segundas derivadas en los extremos son iguales dos a dos, etc.
Ejemplo 5.4 Estudiemos la interpolación de tres puntos .x1 ; y1 /, .x2 ; y2 / y .x3 ; y3 /. Los polinomios de los dos tramos
podrían ser
p1 .x/ D ˛1 C ˛2 x C ˛3 x 2 C ˛4 x 3
p2 .x/ D ˇ1 C ˇ2 x C ˇ3 x 2 C ˇ4 x 3 :
Se necesitan 8 ecuaciones para determinar los parámetros.
El que las cúbicas pasen por los puntos dados impone las siguientes condiciones
˛1 C ˛2 x1 C ˛3 x12 C ˛4 x13 D y1
˛1 C ˛2 x2 C ˛3 x22 C ˛4 x23 D y2
ˇ1 C ˇ2 x2 C ˇ3 x22 C ˇ4 x23 D y2
ˇ1 C ˇ2 x3 C ˇ3 x32 C ˇ4 x33 D y3 :
Por definición, se impone que las segundas derivadas en los extremos sean cero, lo que hace que
1.5
x = -3:3; 0.5
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t); 0
s = spline(x,y,t);
plot(x,y,’o’,t,p,’-’,t,s,’-.’)
−0.5
legend(’datos’,’pchip’,’spline’,4)
−1 datos
pchip
spline
−1.5
−3 −2 −1 0 1 2 3
Figura 5.13
Una cuadrática definida por tres puntos de control P0 D .x0 ; y0 /, P1 D .x1 ; y1 / y P2 D .x2 ; y2 / es la curva
B.t/ D .1 t/2 P0 C 2.1 t/tP1 C t 2 P2 ; 0 t 1:
Curva de Bézier de grado 2
Una cúbica definida por cuatro puntos de control P0 D .x0 ; y0 /, P1 D .x1 ; y1 /, P2 D .x2 ; y2 / y P3 D .x3 ; y3 / es
138 j Capítulo 5. Funciones de interpolación y aproximación
AZUL
CYAN
Polinomios de Bernstein en t 2 Œ0; 1 para las
curvas de Bézier y0 D .1 t/3 , azul, y1 D
VERDE
3.1 t/2 t , verde, y2 D 3.1 t/t 2 , rojo y y3 D
ROJO
t 3 , cyan.
Bernstein
Figura 5.14
B.t/ D .1 t/3 P0 C 3.1 t/2 tP1 C 3.1 t/t 2 P2 C 3t 2 P3 ; 3.51: Bézier Curves | 179
0t
Curva de Bézier de grado 3
15.
Compile a list of 121 hourly temperatures over five consecutive days from a weather data
Una de cuarto grado en Bézier de grado 4. Let
website. más, Bézier de
De x0=0:6:120 grado
denote 5. and y0 denote the temperatures at hours
hours,
La curvas de Bézier se pueden conectar
0, 6, 12,unas conCarry
. . . , 120. otrasout
con diversas
steps (a)–(c)continuidades y ampliarse
of Computer Problem paraadapted.
14, suitably definir superficies
en 3D.
3.5
Ejemplo 5.5 A BÉZIER
partir de los puntos de inicio y final .1; 1/ y .2; 2/, con los de control .1; 3/ y .3; 3/, vamos a calcular la
CURVES
curva de Bézier correspondiente. Vamos a utilizar las curvas de Bézier en forma paramétrica
Bézier curves are splines that allow the user to control the slopes at the knots. In return for
2 the first
the extrax.t/ D x1the
freedom, Csmoothness
bx t C cx t of C dx t 3 and second derivatives across the knot, which
are automatic
y.t/ D features
y1 Cofbythe tCcubic
cy t splines
2
C dyof t 3the
: previous section, are no longer guaranteed.
Bézier splines are appropriate for cases where corners (discontinuous first derivatives) and
abrupt changes in curvature (discontinuous second derivatives) are occasionally needed.
donde
Pierre Bézier developed the idea during his work for the Renault automobile com-
pany. The same bx Didea 3.xwas2 x1 /
discovered independently by Paul de Casteljau, working for
Citroen, a rival D 3.x3 xcompany.
cx automobile 2/ bx It was considered an industrial secret by both com-
panies, and the D xthat
dx fact 4 bothx1 had bx developed
cx the idea came to light only after Bézier pub-
lished his research.
by D 3.y Today the y Bézier
/ curve is a cornerstone of computer-aided design and
2 1
manufacturing.
c y D 3.y
Each piece of a planar 3 y2 / Bézier
by spline is determined by four points (x , y ),
1 1
(x2 , y2 ), (x3 ,dyy3 ),D(xy4 ,4y4 ).y1The bfirst
y cy : last of the points are endpoints of the spline
and
curve, and the middle two are control points, as shown in Figure 3.14. The curve leaves
En el caso que nos ocupa, .x1 ; y1 / (x
D1 ,.1;
y1 ) 1/, .xthe
along 2 / D .1;
2 ; ytangent 3/, .x(x3 ;2 y−3 /x1D
direction , y2.3; y1 )yand
− 3/ .xends
4 ; y4at D4 ,.2;
/ (x y4 )2/. Lathe
along curva y las
tangent
ecuaciones de x e y son las indicadas en la figura
direction (x4 − 5.15.
x3 , y4 − y3 ). The equations that accomplish this are expressed as a para-
metric curve (x(t), y(t)) for 0 ≤ t ≤ 1.
y
3 (x2, y2) (x3, y3)
2
x.t/ D 1 C 6t 2 5t 3 (x4, y4)
y.t/ D 1 C 6t 6t 2 C t 3 :
1
(x1, y1)
x
1 2 3
Bézier curve
bx = 3(x2 − x1 )
cx = 3(x3 − x2 ) − bx
5.4 Interpolación polinómica por trozos j 139
Schoenberg
Son curvas hechas con trozos polinómicos de grado p. En la de la figura 5.16 se representa una curva de Bézier frente a
una B-spline con los mismos
370
puntos de control.
8 Polynomial Interpolation
370 8 Polynomial Interpolation
Figura
Fig. 8.15. 5.16:
Fig. Curva de Béziercurve
8.15.ofComparison
Comparison a Bézier y aB-spline
of Bézier con(left)
(left)curve
and aidénticos
and a puntos de B-spline
parametric
parametric control
B-spline (right).(right).
The vertices of The
the vertices of the characteristic
characteristic polygon arepolygon
denoted areby
denoted
◦ by ◦
Las B-splines pueden ser evaluadas de una manera numéricamente estable por el algoritmo de C. de Boor. Su extensión
son las NURBS: Non-uniform rational B-splines. Un ejemplo es el de la figura 5.17.
Contenido
6.1 Funciones trigonométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
6.2 Interpolación trigonométrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
6.3 Elementos de números complejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
6.4 Transformada Discreta de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.5 Transformada Rápida de Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
6.5.1 Interpolación trigonométrica con la Transformada Rápida de Fourier . . . . . . . . . . . . . . 150
6.5.2 Aplicaciones prácticas: Sonido, ruido, filtrado, ... . . . . . . . . . . . . . . . . . . . . . . . . 153
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
L AS señales y datos que nos llegan o vemos a diario pueden ser digitales o analógicos. El término analógico se
refiere a la información que es continua. El digital se refiere a la información que tiene estadios discretos.
El procesamiento digital de señales —DSP, Digital Signal Processing— es uno de los elementos primordiales de la
economía digital que viene desarrollándose tan rápidamente en nuestra economía y sociedad desde hace años. El núcleo
básico de todo ello está cimentado en lo que tratamos en este capítulo.
para un periodo T .
La representación de una función continua o discreta mediante combinaciones lineales de senos y cosenos permite
descomponerla en su espacio de frecuencias —como se esquematiza en la figura 6.1— lo que ayuda a un análisis más
preciso de algunos de sus parámetros básicos, o más útiles para determinados fines.
También se pueden analizar de esa manera las distintas frecuencias de señales luminosas, sonido y muchos otros tipos
de mediciones como pretende esquematizar la figura 6.2.
Gran parte de lo que estudiamos en este capítulo se debe al genio creador del matemático y físico Jean-Baptiste Joseph
6.2 Interpolación trigonométrica j 143
Leonhard Euler, Basilea 1707-San Petersburgo 1783, es otro de los formidables genios —gigantes, como apuntaba
Newton— con los que nos encontramos una vez más, de las varias que lo hacemos a lo largo de este libro.
Euler
C1 a0 D 1;7
2
1 C1 D 1
a0
T
! D 2f D 2=T D 2=.1;5s/
1θ A0 Fase, D =3 D 1;0472 radianes .0;25s/
T
θ 1 2 t, s Frec. fundamental, f D 1=T D 1=.1;5s/ D 0;6667 Hz
0 π1 2π 2 3π t, s ωt, rad
0 π (a)2π 3π ωt, rad
Descompuesta en sus tres(a)componentes se ve así:
2
2 A0
a0
1 1
b 1 sen(ωB 1 sin (ω0t)
0t) a1 D 0;5
0 0 b1 D 0;866
a 1 cos(ω0A
t) cos (ω t)
1 0 y.t / D a0 C a1 cos.!0 t/ C b1 sen.!0 t/
⫺1
⫺1
(b)
En general,
n la parte (a) se representa la funciónmuchas . En este decaso
las señales
A0 D 1;7 habituales
, C1 D 1, que ! Drecibimos
2f D 2=T frutoD de2=.1;5s/
las comunicaciones, o del comportamiento de
a parte
la fase (a) se representa
D =3 FIGURE
D distintos
1;0472 la función
16.2.0;25s/
radianes . En . este caso A0 fDD1;7
La frecuencia 1=T, CD 1 D 1, ! DD2f
1=.1;5s/ 0;6667 D Hz.
2=T D 2=.1;5s/
(aFIGUREobjetos
) A plot of 16.2 que las
the sinusoidal emiten,
function incorporan armónicos o componentes que es interesante estudiar para conocerlas mejor
nfase D la=3
ve D 1;0472 radianes .0;25s/ . Las),yfrecuencia
(t) = A 0 + C1 cos(
y.t/ D D0A
fradianst+ ). ForD
1=T
C A
this1=.1;5s/
case, A0 = 1.7,
cos.! t / C BD1 sen.!
0;6667 Hz.
(b) se expresión deC(1la
o tratarlas
a)=Afunción
para
1,plot
0 = of en
thesus
su
2/ T =tres componentes:
utilización
2/(1.5
sinusoidal comercial.
and y(t=
function AEl
) =/3 0 + la
C figura
1 cos(
=
0 6.3
1.0472
0t +
1 se
(=
). presenta
0.25
For
0 s).
this una
Other
case, A 0 = 0 t /periódica general, aproximación de una
señal
1.7,
(b)Ase
on Dve la
0;5 expresión
y B D de
0;866 la
parameters
. función
used en
to sus
describetres
the componentes:
curve are the frequency
C1 = 1, 0 = 2/T = 2/(1.5 s), and = /3 radians 0= 1.0472
digital, y sus descomposición y.t/
f = D A
/(2), C A
which for cos.!
this
1 (= 0.25case t/
is C B
0 s). Other 1 sen.!0 t/
s) = 0.6667 Hz anden armónicos ens.el(btiempo y enexpression
frecuencias.
1 1 0
1 cycle/(1.5
A1 D 0;5 y B1 D parameters
0;866 . is yused to describe thethecurve
period T = 1.5
are the frequency) An alternative
f = 0/(2), whichoffor
the
this case is
same curve (t) = A0 + A1 cos(0t) + B1 sin(0t). The three components of this function
1 cycle/(1.5
are depicted in (bs)), = 0.6667
where A1 = Hz
0.5 and
and Bthe period T = 1.5 s. (b) An alternative expression of6/35
the
1 = –0.866. The summation of the three curves in
(bsame
) yieldscurve is y(tcurve
the single ) = Ain (a).A1 cos(0t) + B1 sin(0t). The three components of this function
0 +
6.2 are
Interpolación trigonométrica
6/35
depicted in (b), where A = 0.5 and B = –0.866. The summation of the three curves in
1 1
(b) yields the single curve in (a).
clear-cut convention for choosing either function, and in any case, the results will be iden-
a b c 1 2 3
Se pretende conthe
tical because ella representar
two functions aremediante
simply offsetuninpolinomio
time by π/2de gradoFor
radians. en Œ0;
m this 2/ una función periódica de la que se conocen
chapter,
g weclear-cut
will use convention
the6 cosine, for choosing
which either function,
can be expressed and in any case, the results will be iden-
generally as
n datos9 1igualmente espaciados —tren en ese intervalo. Se hará así
e
de impulsos—
f
d
b c
4
2 3
5
fx ;
0 1x ; : : : ; x n 1 g
tical because+the
10 f (t)8 = A7
two functions are simply offset in time by π/2 radians. (16.2)
For this chapter,
h i j 0 C1 cos(ω0 t + θ)
we9 will use the6 cosine, which can be expressed m m
a generally
X as X
e f g 4 5
Inspection of Eq. (16.2) indicates that four 0 serve to uniquely characterize the
8 = 16.2a):
10 f (t) A70 + C1 cos(ω0 t + θ)
p.t/parameters
D C aj cos.jt/ C bj sen.jt/;
(16.2)
i j sinusoid (Fig. 2
j D1 j D1
The meanofvalue
• Inspection Eq. A(16.2)
0 sets the average that
indicates heightfour
above the abscissa.
parameters serve to uniquely characterize the
The amplitude
• sinusoid C1 specifies the height of the oscillation.
(Fig. 16.2a):
• The angular frequency ω0 characterizes how often the cycles occur.
• • The
The mean
phase value
angle (orAphase
0 setsshift)
the average height above
θ parameterizes thetoabscissa.
the extent which the sinusoid is
• shifted horizontally.C1 specifies the height of the oscillation.
The amplitude
• The angular frequency ω0 characterizes how often the cycles occur.
• The phase angle (or phase shift) θ parameterizes the extent to which the sinusoid is
shifted horizontally.
144 j Capítulo 6. Funciones trigonométricas de interpolación y ajuste. La Transformada de Fourier
Figura 6.3: Descomposición característica de una función periódica compuesta en sus armónicos y en su espectro de frecuen-
cias
n 4 o
2.n 1/
cumpliéndose en los puntos .0; x0 /; 2
n
; x1 ; n
; x2 ; : : : ; n
; xn 1 .
El grado m del polinomio depende del tamaño de la muestra, n. Si n es par, sería m D n=2; si es impar, m D .n 1/=2.
Para obtenerlo de la manera que conocemos habría que determinar 2m C 1 parámetros: a0 , ai , bi , i D 1, : : : ; m.
Para obtener los coeficientes a0 , a1 , a2 , b1 y b2 planteamos un sistema de ecuaciones lineales del tipo Ax D b, en el
que la matriz A es del tipo Vandermonde, y b D Œ1; 3; 5; 2T .
El sistema que hay que resolver, en forma matricial, es
2 1 1
3
2 1 2 0 2 0 3
6 a0 7 2 3
6 1 21 1 21 21 7 21 1
6 2 cos 1 4 cos 2
2 4 sen 1 sen 2
4 766 a1 4
7
7 6 37
6 7 6 a2 7D6 7
6
6 1
7
746 7 4 5 5:
6 2 cos 1 22
4
1
2 cos 2 22
4 sen 1 22
4 sen 2 22
4 7 b1 5
4 5 b2 2
1
2 cos 1 23
4
1
2 cos 2
23
4 sen 1 23
4 sen 2 23
4
6.3 Elementos de números complejos j 145
Recordando que e i' D cos ' C i sen ', apla que se conoce como identidad de Euler, en su forma polar se escribe
z D re i' D r cos ' C i sen ' , donde r D x 2 C y 2 y ' D arctan.y=x/.
10.1 The Fourier Transform | 469
La circunferencia de radio unidad en el plano complejo es el lugar geométrico de los números complejos con r D 1.
y
iπ
e2 = i
iπ
e4
e iπ= –1 + 0i e0= 1 + 0i
x
Figure 10.2 Unit circle in the complex plane. Complex numbers of the form eiθ for some
angle θ have magnitude one and lie on the unit circle.
z = a + bi = reiθ , (10.1)
√
146 j Capítulo 6. Funciones trigonométricas de interpolación y ajuste. La Transformada de Fourier
Moivre
Están localizados en la circunferencia del plano complejo de radio la unidad: forman los vértices de un polígono regular
de n lados con un vértice en 1. En la figura 6.4 se ilustran cinco raíces. Una raíz n-ésima de la unidad se denomina
)LIWK URRWV RI XQLW\
íL
primitiva si no es una raíz k-ésima para k < n. Así, 1 es una raíz segunda primitiva de la unidad y cuarta no primitiva
de ella. De otra manera, la raíz n-ésima de la unidad ˛ es primitiva, si sólo si sus k-ésimas potencias, k D 0; 1; : : : ; n 1
son distintas. Las raíces cuartas de 1 son: 1, 1, i , i . En el caso de 1 sus potencias de grado 0, 1, 2 y 3 son iguales;
no es raíz primitiva. Para i , se calcula que las potencias de grado 0, 1, 2, 3 son, respectivamente, 1, i , 1, i, distintas,
luego i es una raíz cuarta primitiva de 1.
Es fácil ver que, para una n cualquiera, el número complejo !n D e i 2=n es una raíz n-ésima primitiva de la unidad
(también lo es !n D e i 2=n ). En la figura 6.5 se pueden ver la raíz cuarta primitiva de la unidad !4 D e i 2=4 y las
otras tres. Son, en general, las potencias !4k , k D 0; 1; 2; 3. Las !nk se denominan también factores twiddle.
Se puede verificar que la raíz n-ésima de la unidad, ! D e i 2=n , con n > 1, cumple que
1 C ! C !2 C !3 C C !n 1
D 0;
2 4 6 2.n 1/
1 C ! C ! C ! C C ! D 0;
ILOH ' 'URSER[ (VFXHOD $B7UDEDMRB(VFXHOD 2QH 5RRW VYJ
1 C ! 3 C ! 6 C ! 9 C C ! 3.n 1/
D 0;
148 j Capítulo 6. Funciones trigonométricas de interpolación y ajuste. La Transformada de Fourier
2 3
!0 !0 !0 !0
6! 0 ! 1 !2 !n 1 7
6 7
6 0 2 7
Fn D p1n 6 ! ! !4 ! 2.n 1/ 7
6 : :: :: :: 7
6 : 7
4 : : : : 5
1/2
! 0 ! n 1 ! 2.n 1/
! .n
se la denomina matriz de Fourier. Todas sus filas y columnas, excepto las primeras, suman cero. La inversa de la matriz
de Fourier es
2 0 3
! !0 !0 !0
6! 0 ! 1 ! 2 ! .n 1/ 7
6 7
6 7
Fn 1 D p1n 6 !0 ! 2 ! 4 ! 2.n 1/ 7
6 : :: :: :: 7
6 : 7
4 : : : : 5
0 .n 1/ 2.n 1/ .n 1/2
! ! ! !
Fn 1 D F n :
La matriz de Fourier es una matriz unitaria, F F D I, por lo que, recordemos, al multiplicarla por cualquier vector,
éste conserva su norma.
Aplicar la Transformada Discreta de Fourier requiere O.n2 / operaciones, concretamente n2 multiplicaciones y n.n 1/
sumas; aplicar la inversa lo mismo.
Si utilizamos la rutina de M ATLAB para hacer TDF, fft, hay que tener en cuenta que su normalización es un poco
diferente, y hay que usar fft(x)/sqrt(n). Para la inversa ifft(y)*sqrt(n). En una sesión de M ATLAB se consigue
lo que sigue.
cientes reales, los de su transformado, y, son los siguientes, para por ejemplo n D 8,
2 3
x0 2 3 2 3
6 x1 7 a0 y0
6 7 6 a1 C i b1 7 6 :: 7
6 x2 7 6 7 6 7
6 7 6 a C ib 7 6 : 7
6x 7 6 2 27 6 yn 7
6 37 6 7 6 17
6 7 6 a C i b3 7 6 2 n 7
F8 6 x 4 7 D 6 3 D y
7 6 2 7:
6 7 6 a4 7 6 7
6 x5 7 6 7 6yn 7
6 7 6 a3 i b3 7 6 2 1 7
6 x6 7 6 7 6 : 7
6 7 4 a2 i b2 5 4 :: 5
4 x7 5
a1 i b1 y1
x8
Este algoritmo sigue una estrategia del divide y vencerás para hacer mucho más rápido la TDF. Requiere O.n log n/
operaciones. Su aportación fundamental es haber convertido el tratamiento de señales de lo analógico a lo digital,
ampliando casi hasta el infinito su campo de aplicación.
Si expresamos la TDF, Fn x, de la forma
2 3 2 3
y0 x0
6 :: 7 1 6 : 7
4 : 5 D p M n 4 :: 5 ;
n
yn 1 xn 1
donde
2 3
!0 !0 !0 !0
6 !0 !1 !2 !n 1 7
6 7
6 0 2 7
Mn D 6 ! ! !4 ! 2.n 1/ 7 ;
6 : :: :: :: 7
6 : 7
4 : : : : 5
1/2
! 0 ! n 1 ! 2.n 1/
! .n
2 3 2 0 32 3
z0 ! !0 !0 !0 x0
6 z1 7 6 ! 0 !1 !2 !3 7 6 x1 7
6 7D6 76 7:
4 z2 5 4 ! 0 !2 !4 ! 6 5 4 x2 5
z3 !0 !3 !6 !9 x3
150 j Capítulo 6. Funciones trigonométricas de interpolación y ajuste. La Transformada de Fourier
Reordenando las operaciones de tal manera que los términos pares aparezcan primero se tiene que
z 0 D ! 0 x0 C ! 0 x2 C ! 0 ! 0 x1 C ! 0 x3
z 1 D ! 0 x0 C ! 2 x2 C ! 1 ! 0 x1 C ! 2 x3
z 2 D ! 0 x0 C ! 4 x2 C ! 2 ! 0 x1 C ! 4 x3
z 3 D ! 0 x0 C ! 6 x2 C ! 3 ! 0 x1 C ! 6 x3 :
donde D ! 2 , la segunda raíz de la unidad. Los vectores u D Œu0 ; u1 T y v D Œv0 ; v1 T son básicamente
x
u D M2 0
x2
x1
v D M2
x3
por lo que el original M 4 x es
z0 D u0 C ! 0 v0
z1 D u1 C ! 1 v1
z2 D u0 C ! 2 v0
z3 D u1 C ! 3 v1 :
La TDF.4/ original
p se ha transformado en un par de TDF.2/ más algunas pocas multiplicaciones y sumas. Si ignora-
mos el término 1= n una TDF.n/ se puede reducir al cálculo de dos TDF.n=2/ más 2n 1 operaciones adicionales.
Esta expresión la podemos ver como la que materializa, mediante TDF, una interpolación de los puntos .tj ; xj / con
funciones de base trigonométricas
i2k.t c/
e d c
p ; k D 0; : : : ; n 1
n
6.5 Transformada Rápida de Fourier j 151
i
n 1
1 2k.t c/ 2k.t c/
Q.t / D p .ak C i bk / cos C i sen ;
n d c d c
kD0
si los xj son reales, la función trigonométrica de orden n que interpola los puntos .tj ; xj / es
i
n 1
1 2k.t c/ 2k.t c/
Pn .t/ D p ak cos bk sen :
n d c d c
kD0
Ejemplo 6.4 Obtengamos el polinomio trigonométrico de interpolación de x D Œ 2;2 2;8 6;1 3;9 0;0
1;1 0;6 1;1T en el intervalo Œ0; 1. La Transformada de Fourier es
2 3
5;5154
6 1;0528 C 3;6195i 7
6 7
6 1;5910 1;1667i 7
6 7
6 7
6 0;5028 0;2695i 7
yD6 7:
6 0;7778 7
6 7
6 0;5028 C 0;2695i 7
6 7
4 1;5910 C 1;1667i 5
1;0528 3;6195i
C 1;5910
p cos 4 t C 1;1667
p sen 4 t
2 2
0;5028
p cos 6 t C 0;2695
p sen 6 t 0;7778
p cos 8 t
2 2 8
-1
-2
y
-3
-4
-5
-6
-7
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo
Figura 6.6
Una consecuencia práctica muy importante del hecho de que en el polinomio trigonométrico de interpolación Pn .t/
las funciones de base sean ortogonales es que si m < n entonces
m
2 1
i
a0 2 2k.tj c/ 2k.tj c/ am =2 n.t c/
Pm .t/ D p C p ak cos bk sen C p cos
n n d c d c n d c
kD0
2 2
1 1
0 0
-1 -1
-2 -2
-3 -3
-4 -4
-5 -5
-6 -6
-7 -7
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Figura 6.7
6.5 Transformada Rápida de Fourier j 153
0.2
0.15
0.2
0.1
0.15
0.05
0.1
0
0.05
0 -0.05
-0.05
-0.1
-0.1
-0.15
-0.15
-0.2
-0.2
-0.25 -0.25
0 50 100 150 200 250 300 0 50 100 150 200 250 300
>> sound(y,Fs)
>> xp=dftfilter([0,1],y,10000,73113,73113);
>> sound(xp,Fs)
>> xp=dftfilter([0,1],y,73112,73113,73113);
>> sound(xp,Fs)
Contenido
7.1 Matrices dispersas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
7.2 Almacenamiento en ordenador de matrices dispersas . . . . . . . . . . . . . . . . . . . . . . . . . 157
7.3 Operaciones algebraicas de matrices dispersas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa . . . . . . . . . . . . . . . . . . . . 160
7.5 Problemas de mínimos cuadrados lineales de grandes dimensiones . . . . . . . . . . . . . . . . . 178
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
M UCHOS de los modelos matemáticos que en la actualidad interpretan y simulan fenómenos reales de diversa
complejidad, o sirven de ayuda para tomar decisiones, abocan a sistemas de ecuaciones de gran tamaño con
decenas, cientos de miles y muchos millones de variables.
Esas matrices de gran tamaño suelen tener muchos de sus coeficientes cero y muy “dispersos” en su estructura (espa-
cial), por lo que se ha acuñado el término dispersas para referirse a ellas.
En lo que sigue y a lo largo de todo este libro consideraremos dispersa a una matriz que teniendo pocos coeficientes
distintos de cero merece la pena aplicarle procedimientos diseñados para ello. Algunos autores, no obstante, definen una
C1
matriz nn como dispersa si el número de coeficientes no nulos es n
C1 , donde
< 1. La densidad sería n n2 D n
1 .
Valores típicos de ese parámetro suelen ser:
D 0;2 para problemas de análisis de sistemas eléctricos de generación y
transporte de energía;
D 0;5 para matrices en banda asociadas a problemas de análisis de estructuras; etc.
200
TURES OF 400
800
1200
1400
1600
3 Dynamic Calculation in Structures; BCSSTM13 Chemical Engineering; WEST0381 Economic Modelling; ORANI678
se definen los tres vectores ifi, ico y val: los dos primeros basta que sean integer; val debe ser real.
vec = 0;
for ii=ia(i):ia(i+1)-1
vec(ico(ii))=val(ii);
end
vec=0;
for j=1:m
for ii=ia(j):ia(j+1)-1
if ico(ii)==k vec(j)=val(ii), break
elseif ico(ii)>k break
end
end
158 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
Definición 7.2 El ancho de banda (o de semibanda) de una matriz simétrica B 2 Rnn , ˇ, se define como
ˇ D mKax ˇi ; ˇi D i fi ;
1i n
almacenados como dispersos según el esquema de filas. Lo más eficaz es definir un vector ip, de dimensión n, en el que
se guardan los punteros de los coeficientes no nulos de vala o valb.
Por ejemplo, si el vector a está definido por
Coeficientes
el vector ip, una vez alma- Coeficientes
Vector 1 2 3 4
cenados los punteros, queda- Vector 1 2 3 4 5 6 7 8 9 10 11
icoa 10 3 7 4 ría ip 0 0 2 4 0 0 3 0 0 1 0
vala 0,2 0,3 0,4 -0,5
ip = 0
for i=1:na, ip((icoa(i)) = i; end
h = 0.0;
for i=1:nb
if ip(icob(i))~=0
h=h+vala(ip(icob(i)))*valb(i);
end
end
Hacer ip( )=0 es costoso numéricamente: es necesario realizar muchas operaciones, aunque triviales, si n es grande.
Si un vector se multiplica por otros muchos (caso por ejemplo de productos de matrices), evidentemente, sólo es
necesario inicializar ip a cero una vez.
for i=1:m
iai=ia(i); iai1=ia(i+1)-1;
s = val(iai:iai1)*b(ico(iai):ico(iai1));
c(i) = s;
end
Cuadro 7.1
c1 D b1 a11 C b2 a21
a11 a12 a13
Œc1 c2 c3 D Œb1 b2 ! c2 D b1 a12 C b2 a22
a21 a22 a23
c3 D b1 a13 C b2 a23 :
Si la matriz está almacenada por filas, reescribamos las ecuaciones y traduzcamos todo a código de M ATLAB
c = 0;
c1 b1 a11 c1 c1 C b2 a21 for i=1:n
bi = b(i);
c2 b1 a12 y c2 c2 C b2 a22 for ii=ia(i):ia(i+1)-1
j = ico(ii); c(j) = c(j)+val(ii)*bi;
c3 b1 a13 c3 c3 C b2 a23 end
end
En este caso se puede acceder a los coeficientes secuencialmente por filas e ir acumulando los resultados de las opera-
ciones en los propios coeficientes de c.
Cuadro 7.2: Algoritmo general para resolver grandes sistemas de ecuaciones lineales
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa j 161
Figura 7.3: Matriz 14 14, dispersa, y el patrón de sus coeficientes distintos de cero
Si se utiliza la eliminación de Gauss para resolver dicho sistema, en el transcurso de dicha factorización se harán
distintos de cero 46 coeficientes —coeficientes de relleno (fill-in en la literatura anglosajona)—: los que en la figura 7.4
aparecen sombreados.
Si las filas y las columnas del mismo sistema se reordenan de acuerdo con el algoritmo de grado mínimo (que estu-
diaremos) se obtiene un patrón de coeficientes distintos de cero que se ve en la figura 7.5.
Si esta matriz se factoriza también mediante eliminación de Gauss el número de nuevos coeficientes distintos de cero
que se crean en el proceso es cero.
Reordenar las matrices para reducir el número de coeficientes de relleno presenta tres ventajas fundamentales:
Una disminución del número de posiciones de memoria que se han de reservar para los nuevos coeficientes que se
harán distintos de cero en un proceso de factorización.
Una disminución del número de operaciones a realizar y, por lo tanto, el tiempo total de cálculo para factorizar la
matriz y resolver el correspondiente sistema.
Una mejora de la estabilidad numérica del proceso global de resolución del sistema al disminuir el número de
coeficientes que habrá que considerar y por tanto disminuir la probabilidad de encontrar grandes diferencias entre
ellos, errores de cancelación, etc.
El número de operaciones que habría que realizar para factorizar la matriz del ejemplo mediante eliminación de Gauss
y luego resolver el sistema correspondiente, si se operase con esta matriz como densa, como dispersa sin reordenar filas
y columnas y como si fuese dispersa reordenando filas y columnas, sería el que indica el cuadro 7.3.
Si las filas y las columnas del mismo sistema se reordenan de acuerdo con el
algoritmo de grado mínimo (que estudiaremos) se obtiene un patrón de
162 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
coeficientes distintos de cero como este.
h i j 10 8 7
50 50
350 350
400 400
450 450
También existen diversas formas de ordenar matrices dispersas de estructura simbólica no simétrica. Entre las más
usadas está la que ordenar la matriz A de tal forma que se consiga una estructura triangular inferior en bloques del
tipo que se indica en la figura.
A11
A = A21 A22
Si se dividen los vectores x y b como A, el sistema se tratará mucho más eficazmente resolviendo los subsistemas
i 1
X
Ai i xi D bi Aij xj ; i D 1; 2; 3:
j D1
Para ello sólo es necesario factorizar las submatrices Ai i pues los bloques o submatrices Aij , i > j , sólo se han de
multiplicar por los subvectores xj . Los nuevos coeficientes distintos de cero sólo se podrán crear en esas submatrices en
la diagonal principal.
Si como ejemplo consideramos una matriz simétrica 1616 como la que se muestra en la figura 7.6, se puede conseguir
una reordenación en triangular inferior en bloques de ella como se indica.
Figura 7.6: Matriz dispersa 16 16 antes y después de ordenarla para hacerla triangular inferior en bloques
0 0 0 0
50 50 50 50
0 0 100 100 200 200 300 300 400 400 0 0 100 100 200 200 300 300 400 400
el = el
7551
= 7551 el = el = 30366
30366
00 0 0
50
50 50 50
100
100 100 100
150
150 150 150
200
200 200 200
250
250 250 250
300
300 300 300
350
350 350 350
400
400 400 400
450
450 450 450
00 100
100 200
200 300
300 400
400 0 0 100 100 200 200 300 300 400 400
el == 7551
el 7551 el = 9196
el = 9196
Figura 7.7: Matriz dispersa 480 480 antes y después de factorizarla con y sin reordenaciones previas
Figura 7.8: Matriz dispersa 480 480 ordenada con el algoritmo de Cuthill-McKee y el factor L que queda
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa j 165
1 10
6 8
5
9 11 5
2 4 7 3 1 2 3 4
Un arco es un par de nudos. Si los arcos de un grafo son ordenados, el grafo se denomina digrafo o grafo dirigido; si
no, grafo a secas o grafo no dirigido.
El grado de un nudo es el número de arcos que tienen uno de sus extremos en ese nudo; o el número de nudos a él
unidos.
Un grafo no dirigido se puede ver como un digrafo en el que si el arco e D .u; v/ 2 E, también e 0 D .v; u/ 2 E.
Si e D .i; j / 2 E, este arco une un nudo de origen o cola i D t.e/ con otro de destino, final o cabeza j D h.e/.
El número de elementos, o cardinal de V o E, se designa jV j o jEj. Un grafo G D .V; E/ se dice numerado si existe
una biyección ˛ W f1, 2; : : : ; jN jg ! V . En lo sucesivo supondremos el grafo numerado.
A cualquier matriz cuadrada, A, se le puede asociar un grafo. Si A es cuadrada de orden n, de estructura
simbólica simétrica, con todos sus coeficientes diagonales distintos de cero, se define el grafo asociado a A, G A D
.V A ; E A /, como el grafo no dirigido numerado de n nudos V A D fv1 , v2 ; : : : ; vn g y arcos o aristas E A definidas de
tal forma que
.vi ; vj / 2 E A , aij ¤ 0; aj i ¤ 0:
El que los coeficientes diagonales sean distintos de cero hace que no sea necesario representar los bucles que unen cada
nudo consigo mismo. En la figura 7.9 se puede ver la estructura simbólica de una matriz simétrica 11 11 y su grafo
asociado. 1 2 3 4 5 6 7 8 9 10 11
1 × × ×
2 × × 1 2 3 4 5 6 7 8×9 1011
2 3
1 1 10
3 × 6× × 7×
2
6 7
4 × ×3 6
6
× 7
7
5 × 45 6× × 7× 6 8
6 7
6 7
× AD 6 6 ×
×
A= 6
6
7
7 7
7 × ×8 6
× 7
× 9 11 5
6 7
6 7
8 9 6× × 7 ×
4 5
10
2 4 7 3
9
× 11 × × ×
10 × × ×
11 × × × × × ×Figura
× 7.9
El grafo asociado a una matriz simétrica permanece invariable, salvo la numeración de sus nudos, al
aplicársele una permutación simétrica.
Considérese el grafo de la figura 7.10a y su matriz simbólica asociada de acuerdo con esa numeración. Si en ese grafo
la numeración fuese otra, concretamente la de la figura 7.10b, la matriz simbólica asociada sería la de ese último gráfico,
en la que no se produciría ningún coeficiente de relleno al factorizarla.
166 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
1 2 3 4 5 6 7 1 2 3 4 5 6 7
2 3 2 3
1 2 1
2 6 7 1 3 2 6 7
6 7 6 7
3 6 7 3 6 7
6 7 6 7
6 7 7 6 7
4 6 7 4 6 7
6 7 6 7
5 6 7 5 6 7
6 7 4 6 6 7
6 4 5 6 4 5
7 5 7
(a) (b)
Figura 7.10
Simulemos con M ATLAB paso a paso la manipulación de esta matriz para conseguir la numeración indicada, y reco-
jámoslos todos en un fichero script —en Demo_sparse_1.m— tal como se indica en el cuadro 7.4.
% Demo_sparse_1.m
>> A=eye(7);
A=eye(7);
>> A(1,:) = A(1,:) + ones(1,7)
A(1,:) = A(1,:) + ones(1,7)
>> A(:,1) = A(:,1) + ones(7,1)
A(:,1) = A(:,1) + ones(7,1)
>> spy(A)
spy(A), pause
>> [L U P] = lu(A);
[L U P] = lu(A);
>> spy(L)
spy(L), pause
>> r=amd(A); % Ordenación grado mínimo
r=amd(A); % Ordenación grado mínimo
>> spy(A(r,r))
spy(A(r,r)), pause
>> [L U P] = lu(A(r,r));
[L U P] = lu(A(r,r));
>> spy(L)
spy(L)
Cuadro 7.4
Retomemos de nuevo la teoría de grafos y añadamos algunos conceptos más. Un camino de un nudo u1 a otro umC1
es un conjunto ordenado de nudos fu1 , u2 ; : : : ; umC1 g tal que ui y ui C1 son adyacentes para i D 1, 2; : : : ; m.
La longitud de ese camino es m.
El nudo inicial de un camino se suele denominar de partida; el final, de llegada.
Un camino también se puede definir como un conjunto ordenado de m arcos .u1 ; u2 /, .u2 ; u3 /; : : : ; .um ; umC1 /.
Dos nudos dados, u y v, se dicen unidos por un camino, si existe un camino de u a v.
Un camino es un ciclo cuando u1 D umC1 .
La distancia, d.u; v/, entre dos nudos, u y v, es la longitud del camino más corto entre ambos nudos.
Dado un nudo u, a la mayor distancia entre ese nudo y cualquier otro del grafo se la denomina excentricidad, e.u/,
del nudo u.
Un grafo se dice conexo si cada par de nudos distintos se puede unir por un camino; inconexo en caso contrario.
La mayor excentricidad de un grafo se denomina diámetro. Un nudo periférico es aquel cuya excentricidad es al
diámetro.
Volvamos a la matriz A de la figura 7.9 y su grafo asociado. En la misma, los nudos 1 y 3 están unidos por los caminos
f1, 10, 11, 3g y f1, 6, 9, 11, 3g, de longitudes 3 y 4. La distancia entre los nudos 1 y 3 es 3. El camino f5, 8, 11, 3, 5g es
un ciclo. El diámetro de este grafo es 4. Los nudos periféricos: 1, 2, 4, 5 y 6. Su excentricidad es igual a 4.
Un grafo conexo que no tiene ciclos —como el de la figura 7.11— se denomina árbol. En un árbol sólo existe un
camino entre cualquier par de nudos. Una matriz cuyo grafo asociado es un árbol se puede reordenar de forma que al
factorizarla mediante eliminación de Gauss no experimente relleno alguno.
9 19 3
2 10
17 18 11
12 4 14 16 1 7
13 15 5 20
En esta etapa k se determinan unos multiplicadores y se restan, de las filas que tienen un elemento distinto de cero
en la columna k debajo de la diagonal principal, la fila k multiplicada por el multiplicador correspondiente.
Este proceder puede crear nuevos coeficientes distintos de cero en la submatriz k C 1; : : : ; n.
Consideremos la submatriz activa en la etapa k: la de coeficientes aijk
, donde i, j k. Sea G k el grafo de elimina-
ción de esa submatriz activa:
Para obtener el grafo de eliminación G kC1 a partir de G k , borrar en éste el nudo k y añadir todos los nuevos
arcos que sea posible entre nudos que sean adyacentes a ese nudo k.
Los arcos que se añaden determinan qué coeficientes nuevos distintos de cero se producirán en la matriz en un proceso
de eliminación de Gauss, o similar.
Apliquemos esta idea al grafo de la figura 7.12. En la figura 7.13 se pueden ver varias etapas del proceso que tendría
7 8 9 10 11Al final de ese proceso la matriz simbólica será la que se ve en esa figura 7.12.
lugar.
×
×
21 2 3 4 5 6 7 8 9 10 113
1 10 1
× ×
2 6 7
6 7
× 3 6
6
7
7
˝
6 8 4 6 7
× ×
5 6 ˝ 7
6 7
× 6 ˝ 7
6 6 7
9 11 5 7 6 ˝ ˝˝ 7
× × 6 7
8 6 ˝ ˝ 7
6 7
× × 9 6 ˝ ˝ ˝ ˝ 7
4 ˝ 5
2 4 7 3 10 ˝
× ×
11
× ×
Figura 7.12
× × × × ×
Los grafos de eliminación permiten realizar, independientemente de los valores numéricos de la matriz, una eli-
minación de Gauss simbólica y determinar qué nuevos coeficientes distintos de cero cómo máximo se van a crear.
Reservando posiciones de memoria para esos nuevos coeficientes se puede realizar la factorización numérica posterior
como es habitual.
168 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
Etapa 1
1 2 3 4 5 6 7
10 11 8 9
1 × ××
2
× × ×
1 10
3
× × × ×
4 × × ×
5
× × × ×
6 8
A2 = 6
× × ⊗
7
× × × × 9 11 5
8
× × ×
9
× × × ×
2 4 7 3
10 ⊗ × ×
11 × × × × × × × G2
Etapa 2
1 2 3 4 5 6 7 8
10 11 9
1 × × ×
2
× × ×
1 10
3
× × × ×
4 × × ⊗
5
× × × ×
6 8
A3 = 6
× × ⊗
7
× × × × 9 11 5
8
× × ×
9
⊗ × × ×
2 4 7 3
10 ⊗ × ×
11 × × × × × × × G3
Etapa 3
1 2 3 4 5 6 7 8 9
10 11
1 × × ×
2
× × ×
1 10
3
× × × ×
4 × × ⊗
5
× ⊗ × ×
6 8
A4 = 6
× × ⊗
7
× ⊗ × × 9 11 5
8
× × ×
9
⊗ × × ×
2 4 7 3
10 ⊗ × ×
11 × × × × × × G4
Etapa : : :
Figura 7.13: Proceso de factorización simbólica mediante el grafo de eliminación de una matriz
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa j 169
Fue formulado por Tinney y Walker en 1967. Es el más más extendido y sencillo para reducir el número de rellenos
que produce la eliminación de Gauss, u otra similar, en una matriz de estructura simétrica. La idea que sigue es:
Si en la etapa k de la factorización hay coeficientes no cero a la derecha de la diagonal principal de la fila k, al
sumar un múltiplo de esta fila a cualquiera de las filas k C 1 a n lo normal es que se produzcan nuevos coeficientes
no nulos en esas filas.
Si se determina la fila ` de la submatriz activa con el menor número de coeficientes distintos de cero y se intercambia
con la k, al igual que las columnas ` y k, el número de nuevos no cero en esa submatriz será mínimo.
El nombre de grado mínimo viene de que en el grafo de eliminación G k , el coeficiente de la diagonal principal en la
fila k representará el nudo que está unido al menor número de nudos.
Para ilustrar la idea consideremos el grafo de la figura 7.14, asociado a una matriz simétrica 7 7.
a c
b d
f g
Figura 7.14
En el cuadro 7.6 se describen las 7 etapas de que consta la aplicación del algoritmo de grado mínimo a este grafo.
Al final se consigue lo que se ve en la figura 7.15.
1 2
1 2 3 4 5 6 7
2 3
1
2 6 7 5 3
3 6 7
6 7
AD 4 6 7
6 7
5 6 ˝7 4
6 4 5
7 ˝
6 7
Figura 7.15
El algoritmo de grado mínimo produce muy buenos resultados prácticos. Cuando el grafo que se quiere reordenar es
un árbol, el resultado no producirá coeficientes de relleno al efectuar la factorización ulterior.
No obstante, no siempre da lugar a la ordenación óptima: aquella con el menor número de rellenos. Si se aplica al
212 j Chapter 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
a❧ c❧
❅
❅ ❧
b d❧
1 a 1
e❧
❅
❅ ❧
f g❧
c❧
b❧ d❧
2 c 1
e❧
❅
❅ ❧
f g❧
b❧ d❧
3 e❧ d 2
❅
❅ ❧
f g❧
b❧
❆
4 e❧ ❆ e 2
❅ ❆
❅ ❧ ❆❧
f g
b❧
❆
5 ❆ b 2
❆
❆
f❧ g❧
6 f❧ g❧ f 1
7 g❧ g 0
Cuadro 7.6: Ejemplo de aplicación del algoritmo de grado mínimo
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa j 171
1 2 3 4 5 6 7 8 9
2 3
1
2 7 2 6 7
6 7
3 6 7
4 6 7
1 4 5 6 9
6 7
5 6 7
6 7
6 6 7
6 7
3 8 7 6 7
8 4 5
9
Figura 7.16
grafo de la figura 7.16, el algoritmo elegirá el nudo 5 como el inicial, lo que traerá como consecuencia que se produzca
un relleno posterior en las posiciones .4; 6/ y .6; 4/. Con la numeración de la figura, en cambio, no se producen rellenos.
Definición 7.3 Se dice que una matriz simétrica tiene un perfil monótono si para todo k y `, k < `, se cumple que
lk l` .
1 2 3 4 5 6 7 1 2 3 4 5 6 7
Teorema 7.1 La numeración dada por el algoritmo de Cuthill-McKee conduce a un perfil monótono.
Ejemplo 7.3 Apliquemos el algoritmo de Cuthill-McKee al grafo de la figura 7.17. Empezando a numerar por el nudo
a, en la parte derecha de la figura se puede ver la numeración final que se obtiene con el algoritmo.
Los nudos 5 y 6 podrían invertir su numeración según el algoritmo. Se ha escogido ésta por estar el 5 antes en la
pseudonumeración inicial.
Con la numeración obtenida, los coeficientes distintos de cero y ceros en la envolvente de la matriz simbólica asociada,
considerando sólo su parte triangular inferior, serán los de esa figura 7.17. El ancho de banda de esta matriz es 5. La
envolvente tiene 33 coeficientes; 7 de ellos cero.
172 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
1 2 3 4 5 6 7 8 9 10
2 3
1
a b c 1 2 3 2 6 7
6 7
3 6 7
6 7
4 6 7
g 5 6 7
d e f 8 4 5 6 6 0 7
6 6 0 7
6 7
7 6 7
8 6 7
j 6 0 0 0 7
h i 10 9 7 9 4 0 0 5
10
Figura 7.17
Ahora bien, si se comienza a numerar el grafo por el nudo e, el resultado de aplicar el algoritmo de Cuthill-McKee es
el de la figura que sigue, con los coeficientes distintos de cero que se muestran.
1 2 3 4 5 6 7 8 9 10
2 3
a c 1
b 7 1 2 2 4 3 2 6 7
6 7
3 6 0 7
6 7
4 6 0 7
6 7
d e f g 3 9 1 4 9 6 10 5 5 6
6
0 0 7.
7
6 6 0 0 0 7
7 6 7
6 0 0 0 0 7
8 6 0 0 0 7
6 7
h i j 8 10 5 8 6 7 9 4 0 0 0 5
10 0 0 0
El ancho de banda de esta matriz es 6. El número de coeficientes de la envolvente es 46; de ellos, 20 cero. La elección
del nudo inicial, una vez más, es una cuestión crítica.
Apliquemos este procedimiento al ejemplo comenzando por cualquier nudo, por ejemplo e. Los resultados de las tres
etapas de que consta se muestran en la figura 7.18. Los números al lado de los nudos del grafo indican su excentricidad
tomando como raíz el que se indica como 0.
2 1 1 0 1 2 4 3 3
a b c a b c a b c
0 2 2
1 d e 2 f g 2 3 d e 3 f g 3 1 d e 3 f g 3
h i j h i j h i j
2 1 1 4 3 3 0 1 2
Figura 7.18: Ejemplo de aplicación del procedimiento para seleccionar el nudo de partida en el algoritmo de Cuthill-McKee
7.4 Solución de sistemas de ecuaciones lineales de matriz dispersa j 173
Obsérvese que del resultado del algoritmo se desprende que tanto el nudo a como el h podrían utilizarse como nudos
de partida pues tienen la misma excentricidad: 4.
g
c e
b d
f
1 2 3 4 5 6 7 1
2 3
1
3 7
2 6 7
3 6 0 0 0 07
6 7 2
AD 4 6 0 0 0 07
6 7
5 6 0 0 0 07
6 4 0 0 0 05 4 6
7 0 0 0 0 5
Figura 7.19
Por el contrario, utilizando el algoritmo de Cuthill-McKee inverso se conseguiría el efecto de la figura 7.20. Como
21 2 3 4 5 6 73 7
1
6 7 5 1
2 6 7
3 6 7
6 7 6
AD 4 6 7
5 6 7
6 7 4 2
6 4 5
7 3
Figura 7.20
se puede observar, desaparecen todos los posibles ceros que aparecían antes, que se podrían crear en una factorización
numérica, ahorrándose así las correspondientes posiciones de memoria para guardarlos.
174 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
Si al grafo que se utilizaba para introducir el algoritmo de Cuthill-McKee se le aplicada el algoritmo inverso, el
resultado que se obtiene es el que describe la figura 7.21. En este caso el ancho de banda sigue siendo 5 y la Env.A/
pasa a ser 29, de los que sólo 3 coeficientes son cero.
1 2 3 4 5 6 7 8 9 10
2 3
1
2 6 7
6 7 10 9 8
3 6 7
6 7
4 6 7
5 6 7 2 7 5 6
6 7
6 6 7
6 7
7 6 0 0 7
8 6 7 1 3 4
6 7
9 4 5
10
Figura 7.21: Resultado del algoritmo inverso de Cuthill-McKee para reordenar la matriz 10 10
By D c;
Figura 7.22: Matriz dispersa no simétrica reordenada en forma triangular inferior en bloques
Si .u ! v/ es un arco, el nudo v se dice adyacente al u. Un camino dirigido, es un conjunto ordenado de nudos fu1 ,
u2 , : : : ; umC1 g tal que ui C1 es adyacente a ui , i D 1, 2; : : : ; m. Su longitud es m.
Un ciclo de un digrafo, o ciclo dirigido, es un camino, con al menos dos arcos, que sale y llega al mismo nudo.
Si en un digrafo el nudo v es accesible desde u, la distancia desde u a v es la longitud del camino más corto de u a v
(la distancia desde v a u puede ser distinta o incluso indefinida).
Un digrafo se dice conexo si lo es el grafo no dirigido que se obtiene al suprimir las direcciones en los arcos del
digrafo.
A cualquier matriz general, A, n n, se le puede asociar un digrafo de n nudos
En dicho digrafo G A D .V A ; E A /, los arcos E A son tales que
.vi ; vj / 2 E A , aij ¤ 0:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
A cualquier coeficiente diagonal ai i ¤ 0 también le corresponde
un arco que parte y llega a vi . Cuando todos son
1 × ×
no nulos –transversal completo–, no se representan.
2
×En×la figura 7.23 se puede ver una matriz no simétrica 15
15 y su digrafo asociado. Los nudos 6, 7 y 9 son adyacentes
3 × × ×
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3
4 × ×
2 6
7
5 × ×
3 6 7 1 2 3 4
6 7
4 6 7
6
6
× 5×6 7
7
6 6 7
5 6
7 6
× 7 6× 7
7
6 7
6 7
× × × ×
8 6
8
9 6
7
7
6 7 7 8 9 10 11
10 6 7
9
6 × × 7
11 6 7
12 6 × × 7
10 6 × 7 12 13 14 15
13 6 7
4 5
11 14 × ×
15
12 × × × ×
× Figura 7.23: Una× matriz 15 15no simétrica y su digrafo asociado
13
× ×
14 × ×
al nudo 8; si W D f8, 13g, el conjunto de nudos adyacentes a los de W es Adj.W / D f6, 7, 9, 12, 14g; el nudo 5 tiene
15 un grado de entrada de 2 y de salida de 1; el nudo 4 × ×
es accesible desde el 8.
Cualquier matriz regular A se puede reordenar mediante permutaciones no simétricas de tal forma que el resultado,
PAQ, tenga un transversal completo. Si la matriz es singular esto puede no cumplirse.
Con transversal completo, la matriz puede reordenarse mediante permutaciones simétricas para conseguir una estruc-
tura triangular inferior en bloques:
Si esa estructura de bloques existe, se dice que A es una matriz reducible.
Si una matriz no tiene transversal completo pero puede reordenarse de tal forma que entonces sí lo tenga, y así
reordenada es reducible, se dice birreducible.
Éste comienza en la posición .9; 9/, sigue por la fila 9 hasta encontrar el coeficiente distinto de cero de la columna 5; continúa por la columna
5 hasta encontrar el correspondiente coeficiente distinto de cero de la diagonal principal; sigue por la fila 5 hasta encontrar el coeficiente distinto
de cero de la columna 2; continúa por la columna 2 hasta encontrar el coeficiente distinto de cero de la diagonal principal en la fila 2; sigue por la
fila 2 hasta encontrar el coeficiente distinto de cero de la columna 4; continúa por la columna 4 hasta alcanzar el coeficiente distinto de cero de la
diagonal principal en la fila 4; sigue por la fila 4 hasta encontrar el coeficiente distinto de cero de la columna 7; continúa por la columna 7 hasta
alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 7; sigue por la fila 7 encontrándose que el único coeficiente distinto de
cero de esta fila está en la columna 5 que ya se ha visitado; esto obliga a borrar las filas 7 y 4 del camino (no de la lista de posiciones ya visitadas)
y reemprender la marcha allí donde se abandonó en la fila 2.
Por la fila 2 se llega hasta la columna 6 donde está el siguiente coeficiente distinto de cero; continúa en la columna 6 hasta la diagonal principal
en la fila 6; sigue por esa fila 6 hasta llegar al coeficiente distinto de cero de la columna 1; continúa por la columna 1 hasta alcanzar el coeficiente
distinto de cero de la diagonal principal en la fila 1; sigue por la fila 1, parándose al llegar al primer coeficiente distinto de cero que encuentra en
la columna 12 por estar en la submatriz que nos interesa.
El camino es pues
f9; 5; 2; 6; 1; 12g:
Encontrado el camino, se efectúan los intercambios que trasladan el coeficiente distinto de cero .1; 12/ a la posición .9; 12/. Es decir, la fila 9
con la 5, la 5 con la 2, la 2 con la 6, la 6 con la 1, la 1 con la 12 y la 12 con la 9
Si el coeficiente .6; 1/ fuese cero, hubiésemos encontrado que las filas 9, 5, 2, 4, 7 y 6 tienen coeficientes distintos de cero sólo en las columnas
5, 2, 4, 7 y 6, lo que significaría que la matriz es singular.
5
1 2 3 4
Figura 7.25: Grafo dirigido con dos ciclos fuertes y su matriz asociada
Markowitz
k
matriz mediante eliminación de Gauss con pivotación, escogiendo como elemento pivote en una etapa k uno aij de A
que sea numéricamente aceptable y que minimice el producto
donde rik es el número de coeficientes no cero en la fila i de la submatriz activa y cjk el de los no cero en la columna j .
En la figura 7.26 se ilustra la situación para el caso en que n D 7 y k D 3.
1
1 U
Obsérvese que es más conveniente usar .rik 1/.cjk 1/ que rik cjk pues de esta manera
1 rT
× ×× × se fuerza a que se elija un coeficiente k
aij tal que en su fila o columna sólo exista él
× ×× × como coeficiente distinto de cero.
L c
× ×× ×
× ×× ×
Figura 7.26
minimizar
n
kAx bk2 ” A T .Ax b/ D 0:
x2R
Teorema 7.3 Supóngase que no se producen errores numéricos de cancelación en el cálculo de A T A, entonces,
A T A j k ¤ 0 , aij ¤ 0 y ai k ¤ 0
para al menos una fila i D 1, 2; : : : ; m.
Este resultado permite saber dónde se producirán coeficientes de relleno al obtener A T A. Un algoritmo general básico
para resolver un problema de mínimos cuadrados con matriz dispersa de grandes dimensiones es el del cuadro 7.7.
donde R 1 2 Rnn es una matriz triangular superior y c 2 Rn . La solución del problema de mínimos cuadrados se
obtiene de R 1 x D c; la suma de residuos al cuadrado es kdk22 .
El algoritmo de George y Heath [1980] lleva a cabo este proceso de transformaciones ortogonales secuencialmente en
las filas de A:
I. R i 1 designa la matriz triangular superior que se obtiene después de procesar las filas a1T ; : : : ; aiT 1 .
Al procesar la fila aiT D Œai1 , ai 2 ; : : : ; ai n se buscan de izquierda a derecha los coeficientes distintos de cero.
Para cada aij ¤ 0, i > j , se define una transformación de Givens que involucre a la fila j de R i 1 y anule aij .
Procediendo así se pueden crear nuevos coeficientes distintos de cero en R i 1 y en la fila aiT .
II. Si al tratar la fila i, al llegar al coeficiente j.j < i / éste no es cero y rjj D 0, la fila j en R i 1 todavía no se ha
visto afectada por ninguna rotación y debe ser toda cero: Lo que resulta de la fila i debe insertarse en la fila j .
Un ejemplo de este proceso actuando sobre los coeficientes de la fila 9 de una matriz 9 8 es el de la figura 7.27. Los
símbolos ˝ designan los coeficientes que intervienen en la eliminación de a9T . Los que se crean de relleno en R 8 y a9T
durante la eliminación se designan mediante ˚.
Obsérvese que los tres últimos coeficientes de la fila 9, una vez anulados del 1 al 5, reemplazan a los de la fila 6, que
eran 0.
0 0 0 0 0
˝0˚ 0 0 0
0 0 0
˝˚ 0 0 0
˝˝ 0 0
˚ ˚ 0
0
0 0 ˚˚ 0 ˝
Figura 7.27
2 3 9 2 3 9
> >
6 >
7 > 6 7 >
>
6 7 = 6 7 =
6: 7 m 6: 7 m
6: 7 > 6: 7 > Si el índice de columna del último coeficiente distinto de
6: 7 >
> 6: 7 >
>
6 7 ; 6 7 ;
6 7 9 6 7 9 cero de la fila aiT es `i y el primero fi , ordenar primero las
6 7 6 7
A D 6 7 >
> y PA D 6 7 >
> filas cuyos índices fi , i D 1, 2; : : : cumplan que fi fk
6 7 > 6 7 >
6 7 >
> 6 7 >
> si i < k y luego, para cada grupo de filas tales que fi D k,
6 7 = 6 7 =
6 7 6 7 k D 1; : : : ; mKaxi fi , ordenar las filas según `i crecientes.
6 7 >n 6 7 >
n
6 7 >
> 6 7 >
>
4 5 >>
;
4 5 >
>
;
Cuadro 7.8
Paso 1 – Llevar a cabo los Pasos 1 a 3 del algoritmo básico del cuadro 7.7 de la página 179.
Paso 2 – Determinar una permutación de filas P tal que las filas de PAQ tengan unos índices de columnas `i
crecientes.
Paso 3 – Calcular numéricamente R 1 y c procesando las filas de ŒPAQ, Pb mediante transformaciones de
Givens.
Paso 3 – Resolver Ry D c. Hacer x D Qy.
pero adaptadas y completadas para ser coherentes con las que se exponen en las partes del texto relativas a programación
lineal y entera.
La interpretación mediante grafos de la eliminación de Gauss en matrices simétricas dispersas sigue a Pissanetzky
[1984]. El algoritmo de grado mínimo para reordenar ese tipo de matrices está basado en George y Liu [1981]; el de
Cuthill-McKee en George y Liu [1981] y Lascaux y Théodor [1986]; el de Cuthill-McKee inverso utiliza la descripción
de Duff, Erisman y Reid [1986]. Los métodos de disección aparecen muy bien descritos en Duff, Erisman y Reid [1986]
y en Pissanetzky [1984]; en la exposición presentada se ha hecho un resumen de la de éste último.
El algoritmo de Hall se puede encontrar en varias de las referencias mencionadas; la exposición hecha en el texto se
ha basado parcialmente en la de Pissanetzky [1984].
Lo que hace referencia a mínimos cuadrados dispersos se puede encontrar muy bien tratado en Björk [1990] y [1996],
George y Heath [1980] y George y Ng [1985].
182 j Capítulo 7. Sistemas lineales de grandes dimensiones. Matrices dispersas
Capítulo 8
Contenido
8.1 Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
8.2 Método Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
8.3 Métodos de relajación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.3.1 Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
8.3.2 Método SSOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
8.4 Métodos estacionarios para matrices dispersas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
8.5 Métodos no estacionarios. De dirección de descenso . . . . . . . . . . . . . . . . . . . . . . . . . . 192
8.5.1 Obtención de direcciones de descenso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
8.5.2 Método de los gradientes conjugados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.6 Métodos de subespacios de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
8.6.1 Métodos GMRES para matrices no simétricas . . . . . . . . . . . . . . . . . . . . . . . . . . 206
8.6.2 Métodos de proyección para matrices simétricas . . . . . . . . . . . . . . . . . . . . . . . . 209
8.7 Comparación numérica de algunos métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Parten de un punto relativamente cercano a la solución y convergen a ella en una determinada sucesión de nuevos puntos
que veremos cómo obtener.
Un proceso iterativo busca acercarse a la solución mediante pasos en los que se realizan operaciones sencillas: pro-
ductos de matrices por vectores o similares.
El método convergerá si lKımk!1 x .k/ D x o el error e .k/ D x .k/ x tiende a cero. El acercarse adecuadamente a la
solución lo medirá una métrica como jjb Axjj, u otra similar.
La forma más simple de proceso iterativo es la que define la fórmula de recurrencia
x .kC1/ D M x .k/ C Nb
184 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Jacobi
function [x k]=Jacobi_2(A,b)
% Resuelve Ax=b por Jacobi function [x k]=Jacobi_NEW_1(A,b)
n=size(A,1); x=zeros(n,1); y=x; sm=1; k=0; % Resuelve Ax=b por Jacobi (compacto)
while sm>=0.001 n=length(b); x=zeros(n,1); k=0; sm=1;
k=k+1; d=diag(A); r=A-diag(d);
for i=1:n while sm>0.001
j = [1:i-1 i+1:n]; y = (b-r*x)./d;
y(i)=(b(i)-A(i,j)*x(j))/A(i,i); sm=max(abs(x-y))/max(abs(y));
end x = y;
sm=max(abs(x-y))/max(abs(y)); k = k+1;
x=y; end
end end
end
Ejemplo 8.1 Resolvamos con el algoritmo de Jacobi este sistema de ecuaciones lineales:
10x1 x2 C 2x3 D 6
x1 C 11x2 x3 C 3x4 D 25
2x1 x2 C 10x3 x4 D 11
3x2 x3 C 8x4 D 15:
Partiendo de x .0/ D Œ0; 0; 0; 0T , aplicando la relación de recurrencia formulada se tendrá que
x1.1/ D 1 .0/
x
10 2
1 .0/
x
5 3
C 3
5
D 0,6000
x2.1/ D 1 .0/
x
11 1
C 1 .0/
x
11 3
3 .0/
x
11 4
C 25
11
D 2,2727
x3.1/ D 1 .0/
x
5 1
C 1 .0/
x
10 2
C 1 .0/
x
10 4
11
10
D 1,1000
x4.1/ D 3 .0/
x
8 2
C 1 .0/
x
8 3
C 15
8
D 1,8750:
El criterio de llegada al óptimo puede ser cualquiera; aquí hemos forzado a que
.k/
x x .k 1/
1
< 10 3 :
x .k/
1
En k D 9 se cumple que
kx .9/ x .8/ k1 8,0 10 4
3
D D 0;0003999 < 10 :
kx k1
.9/ 2,0004
Utilicemos el código Jacobi_2.m para resolver el ejemplo en una sesión con M ATLAB.
10x1 C x2 D 11
2x1 C 10x2 D 12
partiendo del punto x .0/ D Œ0; 0T . La solución exacta es Œ1; 1T .
Los puntos que se generan en el proceso iterativo son los de esta tabla.
k 0 1 2 3 4 5
.k/
x1 0,0000 1,1000 0,9800 1,0020 0,9996 1,00004
.k/
x2 0,0000 1,2000 0,9800 1,0040 0,9996 1,00008
x1 C 10x2 D 11
10x1 C 2x2 D 12
cuya solución es también Œ1; 1T . Partiendo de x .0/ D Œ0; 0T , los primeros puntos que se generan son:
k 0 1 2 3 4 5
.k/
x1 0,0000 11 -49 501 -2499 25001
.k/
x2 0,0000 6 -49 251 -2499 12501
El proceso diverge.
Definición 8.1 Se dice que una matriz A nn (compleja o real) es de diagonal estrictamente dominante por filas
cuando cumple que X
jai i j > jaij j; i D 1; : : : ; n:
j ¤i
Teorema 8.1 Si en el sistema Ax D b la matriz A es de diagonal estrictamente dominante y regular, para todo b y
toda estimación inicial x .0/ el método iterativo de Jacobi converge a su única solución.
La dominancia diagonal estricta es sólo una condición suficiente. El método puede converger aún en su ausencia.
188 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
function [x k]=Gauss_Seidel_1_1(A,b)
% Resolución por Gauss-Seidel
n=size(A,1); x=zeros(n,1); sm=1; k=0; function [x k]=Gauss_Seidel_NEW(A,b)
while sm>0.001 % Resolución por Gauss-Seidel (compacto)
k=k+1; sm=0; D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1);
for i=1:n n=size(A,1); x=zeros(n,1); k=0; sm=1;
j=[1:i-1 i+1:n]; while sm>0.001
xi=(b(i)-A(i,j)*x(j))/A(i,i); y = (D-L)\(U*x + b);
sm=max(abs(x(i)-xi),sm); sm=norm(abs(y-x),inf); k=k+1;
x(i)=xi; x = y;
end end
sm=sm/max(abs(x)); end
end
end
Cuadro 8.1
10x1 x2 C 2x3 D 6
x1 C 11x2 x3 C 3x4 D 25
2x1 x2 C 10x3 x4 D 11
3x2 x3 C 8x4 D 15:
Aplicando la relación general de recurrencia de Gauss-Seidel a este caso, partiendo del punto inicial x .0/ D Œ0; 0; 0; 0T ,
se tiene que
.1/ 1 .0/ 1 .0/ 3
x1 D 10 x2 5 x3 C 5 D 0,6000
.1/ 1 .1/ 1 .0/ 3 .0/ 25
x2 D 11 x1 C 11 x3 11 x4 C 11 D 2,3273
.1/ 1 .1/ 1 .1/ 1 .0/ 11
x3 D 5 x1 C 10 x2 C 10 x4 10 D 0,9873
.1/ 3 .1/ 1 .1/ 15
x4 D 8 x2 C 8 x3 C 8 D 0,8789:
Las iteraciones que se generan son las de la tabla.
k 0 1 2 3 4 5
.k/
x1 0,0000 0,6000 1,0302 1,0066 1,0009 1,0001
.k/
x2 0,0000 2,3273 2,0369 2,0036 2,0003 2,0000
.k/
x3 0,0000 -0,9873 -1,0145 -1,0025 -1,0003 -1,0000
.k/
x4 0,0000 0,8789 0,9843 0,9984 0,9998 0,9999
Obsérvese que con este método la resolución del problema, con el mismo criterio de convergencia, necesita 5 itera-
ciones; el de Jacobi lo hacía en 9. Con Gauss_Seidel_1_1.m en una sesión de M ATLAB para resolverlo:
En cinco iteraciones efectivamente converge con una milésima de precisión, que es el criterio elegido de finalización.
Teorema 8.3 El método de Gauss–Seidel para resolver Ax D b converge a su solución si la matriz de coeficientes es
de diagonal estrictamente dominante.
8.3 Métodos de relajación j 189
Teorema 8.5 El método iterativo de Gauss–Seidel es convergente para todo sistema de ecuaciones cuya matriz de
coeficientes es simétrica y definida positiva.
Teorema 8.6 Si A es una matriz simétrica y definida positiva el método iterativo de Jacobi es convergente si y sólo si
2D A es definida positiva.
Vistos así, Jacobi y Gauss-Seidel llegan a la solución mediante unos pasos, en cada uno de los cuales se mejora la
solución una cantidad r .k/ . Pn .k/
.k/
bi j D1 aij xj
En el método de Jacobi, ri D .
ai i
Pi 1 .kC1/ P n .k/
bi j D1 aij xj j Di aij xj
En Gauss-Seidel, ri.k/ D :
ai i
Los métodos —también estacionarios— de relajación buscan mejorar las prestaciones de convergencia en cada itera-
ción potenciando la relación de recurrencia mediante un factor ! de ri.k/ , así
de tal forma que se avance un paso más amplio, ! > 1, o más corto, ! < 1, según convenga en la resolución del
problema que se estudia. A ! se le conoce como parámetro de relajación.
1 1
x .kC1/ D .D !L/ ..1 !/D C !U / x .k/ C ! .D !L/ b:
190 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
1
La matriz del método es G .!/ D .D !L/ ..1 !/D C !U / El esquema del algoritmo SOR es el que sigue.
4x1 C 3x2 D 24
3x1 C 4x2 x3 D 30
x2 C 4x3 D 24:
Aplicando la relación general de recurrencia del método, partiendo del punto inicial x .0/ D Œ1; 1; 1T , con ! D 1;25,
se obtienen los resultados de la siguiente tabla.
k 0 1 2 3 4 5 6 7
.k/
x1 1,0000 6,3125 2,6223 3,1333 2,9570 3,0037 2,9963 3,0000
.k/
x2 1,0000 3,5195 3,9585 4,0102 4,0074 4,0029 4,0009 4,0002
.k/
x3 1,0000 -6,6501 -4,6004 -5,0966 -4,9734 -5,0057 -4,9982 -5,0003
Juguemos un poco en M ATLAB con el parámetro ! para ver qué resultados se obtienen. El resultado se ve en el
cuadro 8.2. Desde el mismo punto de partida, con ! D 2,25, el proceso diverge, tal como indica la tabla que sigue.
k 0 1 2 3 4 5 6 7
.k/
x1 1,0000 10,5625 3,0588 1,3328 -10,8367 12,2136 10,9919 18,5938
.k/
x2 1,0000 -1,6367 4,9442 13,4344 8,7895 -7,5608 -11,1607 11,9961
.k/
x3 1,0000 -15,6706 8,8695 -17,0300 12,7316 -33,6674 22,3064 -34,6352
Teorema 8.7 Ostrowski-Reich. Para un sistema de ecuaciones con matriz simétrica y definida positiva, el método
iterativo de relajación SOR converge si y sólo si el parámetro de relajación cumple que 0 < ! < 2.
Cuadro 8.2
de uno SOR hacia adelante seguido de otro SOR hacia atrás. Si se descompone una vez más la matriz A de la forma
A D D L U , el esquema iterativo del método SSOR en forma matricial tiene esta expresión
1 1
x .kC1/ D B1 B2 x .k/ C!.2 !/ .D !U / D .D !L/ b
Cuadro 8.3
Este método, o mejor su matriz de iteración, se usa principalmente en la actualidad como acondicionador previo de
otros métodos iterativos.
directos. La factorización LU necesita O n3 =3 operaciones mientras que el método de Jacobi, por iteración, sólo
n. Si se parte de un punto próximo a la solución se puede llegar a ésta en un tiempo corto.
Si la matriz de coeficientes del problema tiene muy pocos coeficientes distintos de cero, la factorización LU puede
causar que muchos se hagan distintos de cero en los factores. El método de Jacobi, si es adecuado aplicarlo, al no
factorizar la matriz, puede sacar mucha ventaja de esa estructura de dispersidad en problemas de gran tamaño.
Ejemplo 8.5 Vamos a resolver un sistema lineal de hasta 1:000:000 de ecuaciones en el que la matriz tiene esta estruc-
tura: 2 3 1
3 1 0 0 0 0 0 0 0 2
6 1 3 1 0 0 0 0 0 1
07
6 2 7
6 0 1 3 1 0 0 0 1
0 07
6 2 7
6 0 0 1 3 1 0 1
0 0 07
6 2 7
6 0 0 0 1 3 1 0 0 0 07
AD6
6
7
6 0 0 0 0 1 3 1 0 0 077
6 0 0 0 1
0 1 3 1 0 07
6 2 7
6 0 0 1
0 0 0 1 3 1 07
6 2 7
4 0 1
0 0 0 0 0 1 3 15
2
1
2 0 0 0 0 0 0 0 1 3
El vector b D Œ2;5; 1;5 : : : 1;5; 1;0; 1;0; 1;5 : : : 1;5; 2;5. Hay n 4 repeticiones de 1;5 y 2 repeticiones de 1;0.
Utilizaremos Jacobi.
Vamos a usar los códigos de los cuadros 8.4 y 8.5. El resultado de probarlos está en el mismo cuadro 8.5.
Cuadro 8.4
>> n=100000;
>> [a,b]=sparsesetup_J(n);
>> tic; [a,b]=sparsesetup_J(n); toc
Elapsed time is 0.053800 seconds.
>> tic; x=jacobi_S_1(a,b); toc
Elapsed time is 0.056983 seconds.
>> n=1000000; % Un millón
>> [a,b]=sparsesetup_J(n);
function x = jacobi_S_1(a,b)
>> tic; x=jacobi_S_1(a,b); toc
% Jacobi para matriz dispersa
Elapsed time is 0.786218 seconds.
% Inputs: Matriz A y vector b
>> norm(abs(x-ones(n,1)))
% Output: solución x n=length(b);
ans =
d=diag(a); % diagonal de A
1.4450e-05
r=a-diag(d); % A sin diagonal principal
>> n=10000000; % Diez millones
x=zeros(n,1); k=0; sm=1; % Vector x de partida
>> [a,b]=sparsesetup_J(n);
while sm>0.00001 % iteraciones de Jacobi
>> tic; x=jacobi_S_1(a,b); toc
y=(b-r*x)./d;
Elapsed time is 8.002969 seconds.
sm=max(abs(x-y))/max(abs(y)); k=k+1;
>> norm(abs(x-ones(n,1)))
x = y;
ans =
end
1.4450e-05
end
>> n=40000000; % Cuarenta millones
>> tic; [a,b]=sparsesetup_J(n); toc
Elapsed time is 25.589597 seconds.
>> tic; x=jacobi_S_1(a,b); toc
Elapsed time is 32.461714 seconds.
>> norm(abs(x-ones(n,1)))
ans =
1.4450e-05
Cuadro 8.5
cuya información esencial se representa en la figura 8.1. El gradiente siempre apunta en la dirección de máxima pen-
diente, hacia arriba, y es ortogonal a las líneas de nivel.
Otros gráficos de formas cuadráticas son los ilustrados en la figura 8.2. En (a) la matriz A es definida positiva, en (b)
definida negativa, en (c) semidefinida positiva (singular) y en (d) indefinida.
El algoritmo general de dirección de descenso para minimizar f W Rn ! R que vamos a estudiar se lista en el
cuadro 8.6. Sus diversas versiones e diferencian entre sí en la forma de calcular la dirección p.k/ .
8.5 Métodos no estacionarios. De dirección de descenso j 195
La amplitud de paso óptima ˛ en cada punto del proceso se determina minimizando Q.x/ a lo largo de la dirección
p.k/ como se ve a continuación.
Q(x (k ) ) q(α)
mKın Q x .k/ C ˛p.k/
˛
x (k ) x (k ) + αk p (k )
En si mismo, éste es un problema de optimización en una única variable, ˛, que puede resolverse explícitamente para
funciones cuadráticas. Suprimiendo superíndices,
La forma q.˛/ se minimiza cuando q 0 .˛/ D 0. Como la matriz A es definida positiva, pT Ap > 0, el que q 0 .˛/ D 0 se
da cuando
T
p.k/ b Ax .k/
˛D T
p.k/ Ap .k/
P
En la expresión anterior de ˛ con estas direcciones eiT Aei D ai i y eiT .Ax b/ D jnD1 aij xj bi . En una iteración
k, el siguiente punto x .kC1/ estará dado por
0 1
X n
1 @ .k/
x .kC1/ D x .k/ C ˛k ei D x .k/ aij xj bi A ei ;
ai i
j D1
˛k D ! ˛O k ;
Figura 8.3
El método de la máxima pendiente lo introdujo el ingeniero y matemático francés Augustin Louis Cauchy, Francia
1789-1857, en 1847.
Cauchy
En la función cuadrática de referencia Q x .k/ , la dirección de máxima pendiente en x .k/ es
p .k/ D rQ x .k/ D Ax .k/ b D r .k/ ;
donde r .k/ es el vector de residuos. La fórmula de recurrencia que se obtiene con esa máxima pendiente es entonces
Si A es diagonal, sus coeficientes iguales a uno y ˛k D 1, la fórmula de recurrencia define una iteración del método de
Jacobi.
8.5 Métodos no estacionarios. De dirección de descenso j 197
El valor de ˛k que minimiza Q.x/ a lo largo de la máxima pendiente es (sustituyendo en la fórmula general que vimos
la dirección por r .k/ )
T
r .k/ r .k/
˛k D T :
r .k/ Ar .k/
La convergencia del método de la máxima pendiente para minimizar una función cuadrática es al menos lineal y se
cumple que
.kC1/
x x
.A/ 1
2 < 1:
x .k/ x
2 .A/ C 1
Cuanto más grande sea 2 .A/ más lenta será la convergencia, pues recuérdese que si A es simétrica y definida positiva
2 .A/ D n1 , donde 1 es el valor propio mayor (valor propio dominante) y n el menor.
Convergencia lenta en funciones con un perfil como el que estamos estudiando en este apartado quiere decir lo que
indica la figura 8.4. La búsqueda de la solución va dando bandazos en el valle hacia la solución en una función relativa-
mente mal condicionada.
x(0)
Figura 8.4: Proceso de búsqueda de una solución en un problema cuadrático mal condicionado
El algoritmo de la máxima pendiente, un script de M ATLAB que lo traduce en instrucciones y una sesión de éste
para resolver uno de los ejemplos anteriores son los que refleja el cuadro 8.7. Como se puede observar, este método
Cuadro 8.7
p
necesita más iteraciones que con alguno de los métodos anteriores pero la precisión es más elevada: .
Retomemos la forma cuadrática del cuadro 8.8 y apliquémosle el algoritmo de máxima pendiente. Necesita demasiadas
iteraciones desde Œ0 0T , a pesar de que el número de condición de A es bueno. Calculemos los valores y vectores
propios de A en otra minisesión de M ATLAB:
>> [v lambda]=eig(A)
v =
-0.8944 0.4472
0.4472 0.8944
lambda =
2.0000 0
0 7.0000
198 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Cuadro 8.8
No escalados, los vectores propios son Œ 2 1T y Œ1 2T . Se describen en la figura 8.5. Están orientados como los ejes
del paraboloide que conforma la función
Los vectorescuadrática. Cada
propios de A están valor
orientados comopropio esparaboloide
los ejes del proporcional
que a la inclinación de la pendiente
de la función en la dirección de su conforma
correspondiente vector
la función cuadrática. Cada propio.
valor propio es proporcional a la
inclinación de la pendiente de la función en la dirección de su correspondiente
2
vector propio.
4 x2
-4
x11
-2 2 4 6
7
-2 2
-4
-6 66/110
Para obtener el mínimo de Q.x/ partamos ahora de sendos puntos más alejados del óptimo en las direcciones de los
vectores propios: concretamente de Œ 2 0T y Œ6 6T . En M ATLAB,
El procedimiento converge en una sola iteración. Si todos los valores propios fuesen iguales el procedimiento convergería
en una iteración.
Se puede ensayar con otros puntos más o menos alejados en esas direcciones y el resultado será el mismo. Partamos
ahora del punto Œ 2 2T . Ocurre lo que parcialmente se ve en la figura 8.6. El camino hacia el óptimo, resultado de
la correspondiente sesión de M ATLAB, es el que se ve en la figura 8.7.
Definición 8.2 Dos vectores p y q que cumplen
p T Aq D 0
son ortogonales con respecto al producto interior de A, hxjAyi D x T Ay, definido por la matriz A, diciéndose de
ellos que son conjugados respecto a A, A conjugados e incluso A ortogonales.
Proposición 8.9 Sea A una matriz simétrica definida positiva. Si p.0/ , p .1/ ; : : : ; p.k/ son vectores A conjugados, son
linealmente independientes.
Si A D I, la conjugación es equivalente a la ortogonalidad tradicional.
x2 (a)
figura. (b)
4
x1 150✎✑✏ ✓✒
-4 -2 2 100 Q.x/
✤✣ ✧ ✯ ✣ ✧ x
4 6
2.5 50
x .0/0 -2
0 0
x2 0 5
-4 8.5 Métodos no estacionarios.-2.5 2.5 j 199
De dirección de descenso
0
-5 -2.5 x11
Partamos ahora del punto Œ 2 2T . Ocurre lo que parcialmente se ve en la-6
figura.
x2 (a) (b)
✎✑✏ ✤✣✦✥★✧ ✁ ✢✪✩✫✣✬✥★✧✭✒ x22 (d)
4 Q x .k/ C ˛k r .k/ (c) 4
140
2 2
120
x1 150 ✓✒ 100
x
-4 -2
✤✣.0/0✧
2
✯ ✣ ✧ x
4 6 100 Q.x/
50
80 -4 -2 ✮✣ .1/
1
✧2 4 6 11
x -2 2.5
0
60
-2 x
0 0 40
x2 -2.5 5
-4 2.5 20
-5 0 x11 ˛ -4
-2.5 0.2 0.4 0.6
-6 -6
✎✑✏ ✤✣✦✥★✧ ✁ ✢✪✩✫✣✬✥★✧✭✒ x2 (d) Figura 8.6
Q x .k/ C ˛ r .k/ k (c) 4 The
El camino hacia
method
el óptimo of Steepest
es el que indica la figura. Descent. 61/97
140 2
120 2 4
x2
100 a b c 1 2 3
80 -4 -2 ✮✣ ✧ 2 4 d
x
6 11 e f g 2 9 4 6 5
>> A=[3 2;2 6]; .1/ 1
60
b=[2;-8]; -2 x h i j 10 8 7
40 >> [x k]=Steep(A,b,[-2; -2]) -4 -2 2 4 6
x1
˛✢
20 x = -4
2.0000 ✮✣ ✧
x .0/
0 -2 x
0.2 0.4 0.6 -2.0000
k = -6
10427 C H A P T E R 5 . C O N J U G A T E G R A D I E N T M E T H O D -4S
-6
If xk is generated by algorithm (5.6), (5.7), then
The method we have
of Steepest Descent.
a c
Figura 8.7
b 1 2 3
xk x0 + α0 p0 + α1 p1 + · · · + αk−1 pk−1 .
a
d
b
e
c
f g
1
9
2
4
3
6 5
d e f g 9 4 6 5 h i j 10 8 7
h i j 10 8 7
By premultiplying this expression by pkT A and using the conjugacy property, we have that
e2
. x*
x0
. . x1
e1
Figura 8.8: Función cuadrática cuyos contornos tienen ejes alineados con los ejes coordenados
Figure 5.1 Successive minimizations along the coordinate directions find the
minimizer of a quadratic with a diagonal Hessian in n iterations.
8.5 Métodos no estacionarios. De dirección de descenso j 201
-1
-2
-3
-4
-2 -1 0 1 2 3 4 5 6
-1
-2
-3
-4
-2 -1 0 1 2 3 4 5 6
3 -1
p.1/ D
2 -2
-3
-4
-2 -1 0 1 2 3 4 5 6
202 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
T
Comprobar que p.1/ Ap .0/ D 0 es inmediato:
20 1
Œ3; 2 D 0:
03 1
x2
2 0 x1 4
Figura 8.10: Pasos seguidos para resolver 0 3 x2
D
1
Teorema 8.11 Sea A una matriz n n simétrica definida positiva y xO la solución de la ecuación Ax D b. Los vectores
p .k/ generados por el algoritmo de los gradientes conjugados son A conjugados, es decir,
T
p.k/ Ap.j / D 0; 0 j < k; k D 1; : : : ; n 1;
Teorema 8.12 Sean p.0/ , p.1/ ; : : : ; p.n 1/ los vectores de dirección que genera el algoritmo de los gradientes conju-
gados y r .0/ , r .1/ ; : : : ; r .n 1/ los vectores residuo. Se cumple que
Ap .i/ 2 p .0/ p .1/ : : : p.i C1/ ; i D 0; : : : ; n 2I
r .i/ 2 p .0/ p .1/ : : : p.i/ ; i D 0; : : : ; n 1I
.0/ .1/
p p : : : p.i/ D p .0/ Ap .0/ : : : A i p.0/
D r .0/ Ar .0/ : : : A i r .0/ ; i D 0; : : : ; n 1:
8.5 Métodos no estacionarios. De dirección de descenso j 203
Teorema 8.13 Si A tiene sólo m valores propios distintos el método de los gradientes conjugados converge en un
máximo de m iteraciones.
Teorema 8.14 El punto obtenido en la iteración k del método de los gradientes conjugados cumple que
p
2 1 k
x x .k/
2 p
x x .0/
A 2 C 1 A
p
.k/
p 2 1 k
x x
2 2 p
x x .0/
;
2 2 C 1 2
1
donde kxkA D x T Ax y 2 D n
es el número de condición 2 de A.
Los dos primeros de estos cuatro últimos resultados son fundamentales para entender geométricamente el método de
los gradientes conjugados. Los vectores p y residuo r de cada iteración no son ortogonales entre si. Los residuos de una
iteración son siempre ortogonales a los residuos y a los vectores p de las previas. Los p son A ortogonales. Al comienzo
el vector p coincide con el vector de residuos. En tres dimensiones se ve en la figura 8.11.
Figura 8.11
Los vectores p y de residuos r forman bases ortogonales en los sucesivos subespacios de Krylov que se generan en el
proceso iterativo.
Debido a ello, la propiedad de que el método converge en un número fijo de pasos no se cumple en la
práctica estrictamente, por lo que el método de los gradientes conjugados se considera un método iterativo.
La implementación más habitual del algoritmo y su codificación en M ATLAB se listan en el cuadro 8.9. Utilicemos
este código para resolver uno de los ejemplos habituales. La sesión de M ATLAB correspondiente se incluye en ese mismo
cuadro 8.9. La 4 iteraciones que se consiguen contrastan con las 19 del método de la máxima pendiente.
x1
4Si
también se resuelve con ese código el problema que ha permitido ilustrar geométricamente el método, 0 3 x2 D
20
1 , el resultado que se obtiene es el del cuadro 8.10. Las dos últimas columnas indican los coeficientes 1 y 2 del vector
p .k/ . Coinciden en dirección (y en magnitud) con las que se obtuvieron a mano:
1 2 3 0;48
p.0/ D p.1/ D :
1 2 2 0;32
204 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
T
x .0/ p 0I r .0/ b Ax .0/ I 0 r .0/ r .0/ I k D 0I p .0/ r .0/
while k > 0 do
k kC1
w Ap.k 1/ T
˛ k 1 = p.k 1/ w
x .k/ x .k 1/ C ˛p.k 1/
r .k/ r .k 1/ ˛w
T
k r .k/ r .k/
ˇ k =k 1
p.k/ r .k/ C ˇ p .k 1/
end
function [x k]=CGr(A,b,x0)
% Gradientes Conjugados
if nargin<3, x0=zeros(length(b),1); end >> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8];
k=0; x=x0; r=b-A*x; d=r’*r; p=r; tol=sqrt(eps)*d; >> b=[6;25;-11;15];
while d>tol >> [x k]=CGr(A,b,zeros(4,1))
k=k+1; x =
1.0000
v=A*p; alpha=d/(p’*v); 2.0000
x=x+alpha*p; -1.0000
r=r-alpha*v; 1.0000
beta=d; d=r’*r; beta=d/beta; k =
p=r+beta*p; 4
end
end
Cuadro 8.9
Cuadro 8.10
x =1.022375670668624
1.686451892308063
>> A=[4 -1 0 -1 0 0;-1 4 -1 0 -1 0;0 -1 4 0 0 -1;... 1.022375670668624
-1 0 0 4 -1 0;0 -1 0 -1 4 -1;0 0 -1 0 -1 4] 2.060919567884898
A = 0.831099776243293
4 -1 0 -1 0 0 2.060919567884898
-1 4 -1 0 -1 0
0 -1 4 0 0 -1
x =0.990783282047593
-1 0 0 4 -1 0 1.991635137653980
0 -1 0 -1 4 -1 0.990783282047593
0 0 -1 0 -1 4 2.005324506299807
>> b=[0;5;0;6;-2;6]; 1.011824606037220
>> [x k]=CGr(A,b) 2.005324506299807
x = 0 x =1.000000000000000
1.069915254237288
0
2.000000000000000
1.283898305084746 1.000000000000000
-0.427966101694915 2.000000000000000
1.283898305084746 1.000000000000000
2.000000000000000
k = 4
Cuadro 8.11
En la implementación práctica, la diferencia con y sin acondicionado previo es la resolución en cada iteración el
sistema M z D r, donde M D C T C . Su listado y el código correspondiente en M ATLAB se indican en el cuadro 8.12.
Cuadro 8.12
Si probamos a verificar que la idea funciona numéricamente con una sesión de M ATLAB, podemos obtener lo que
expresa el cuadro 8.13.
>> A=rand(400);
>> A=A+A’; % Matriz A simétrica
>> B=A*A;
>> b=B*ones(400,1); % Vector solución de unos
>> [k tol]=PCGr(B,b,zeros(400,1),eye(400)) % Se resuelve sin precondicionado
k = 740
tol = 7.1453e-010
>> [k tol]=PCGr(B,b,zeros(400,1),A) % Con precondicionado perfecto
k = 1
tol = 7.1453e-010
Cuadro 8.13
206 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Krylov
Los métodos de proyección en subespacios de Krylov (no estacionarios) mejoran una estimación inicial de la solución
proyectándola, en cada iteración k, en el subespacio de Krylov generado por el vector residuo inicial y sus k 1 sucesivos
productos por la matriz A. En ese Kk .A; r0 /, con rk D b Axk , calculan el mejor xk que haga:
1. mKın kAxk bk2 en Kk . Si A es simétrica los algoritmos se denominan MINRES y SYMMLQ; si no GMRES.
2. rk ?Kk , condición de Galerkin. Como rk D b Axk D A .xk x/ D Aek , eso equivale a Aek ?Kk . Si A
no es simétrica los algoritmos se denominan FOM; si es simétrica definida positiva, CG.
3. Otros: Biortogonalización, Gradiente Biconjugado, : : : con subespacio de proyección Kk .A T ; r0 /, etc.
Como al multiplicar una matriz por un vector éste tiende a orientarse en la dirección del vector propio dominante de
esa matriz, en un subespacio de Krylov los vectores de base tienden a una dirección común cuando k es grande. Obtener
una buena base de ese subespacio necesitará del mejor método para ortogonalizar los vectores correspondientes.
En la figura 8.12 se esquematiza la forma más práctica de elegir qué método puede resultar más adecuado para los
diversos problemas que se pueden presentar.
Figura 8.12: Esquema de decisiones a tomar para elegir el mejor método para resolver Ax D b
Cuadro 8.14
El vector xk D x0 C xad que minimice kAxk bk2 en Kk .A; r0 /, con xad D Qk c, saldrá de resolver el problema de
mínimos cuadrados
mKın kAxk bk2 D mKın kA.x0 Cxad / bk2 D mKın kAQk c r0 k2 D mKın kQkC1 H k c r0 k2 D mKın kH k c QTkC1 r0 k2 :
Como q1 D r0 = kr0 k2 y todas las columnas de QkC1 son ortogonales respecto a r0 ,
QTkC1 r0 D Œkr0 k2 0 0 0T :
El problema de mínimos cuadrados de cada iteración es
2 3
h11 h12 h1k 2 3 2 3
6h h h 7 c1 kr0 k2
6 21 22 2k 76 7 6
6 7 6 c2 7 6 0 7
6 h32 h3k 76 : 7 D 6 : 7
6 74 : 5 4 : 7
6 :: :: 7 : : 5
4 : : 5
ck 0
hkC1;k
208 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Cuadro 8.15
>> tic,gmres_pru_1(1),toc
x =
-0.9839
. . .
0.1130
0.2380
normrn =
43.3631 9.4160 2.3040 0.5540 0.1420 0.0359 0.0093 0.0023 0.0005
0.0001 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
ans = 2.1480e-09
Elapsed time is 0.202705 seconds.
>> tic,gmres_pru_1(2),toc
x =
1.3233 + 0.0862i
. . . . . .
0.8958 - 0.0122i
normrn =
35.6532 18.7445 14.1824 11.5050 9.5051 7.4059 5.7802 4.6176 3.6286
2.7824 2.1495 1.6563 1.2601 0.9463 0.7550 0.5899
ans = 0.1104
Elapsed time is 0.479878 seconds.
Cuadro 8.16
Figura 8.13
Figura 8.14
El listado del cuadro 8.19 de la página 211 es el de un código mucho más robusto y completo, nada trivial, que
implementa el método GMRES.
r D Axk b ? Kk .A; r0 /:
Utilizan como base de los cálculos el algoritmo de Lanczos. Si la matriz es definida positiva, los métodos que resultan
son casi idénticos al de los gradientes conjugados. De hecho, éste es el de Lanczos aplicado al vector de partida r0 =kr0 k.
Galerkin Lanczos
210 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Cuadro 8.17
function gmres_pru_1_precon(n)
% Prueba de gmres
m=500; maxiter = 15;
if n==1 % example 35.1 from Trefethen + Bau
>> tic,gmres_pru_1_precon(2),toc A=eigmat(2,.5,m);
x = else % example 35.2 from Trefethen + Bau
-2.3449 - 0.0000i th = (0:m-1)*pi/(m-1); d=(-2+2*sin(th))+sqrt(-1)*cos(th);
. . . . . . A=eigmat(2,.5,m)+diag(d);
0.0737 + 0.0000i end
normrn = lam=eig(A); figure(1), plot(lam,’x’);
22.9513 6.8163 2.4022 0.8430 0.2955 axis square, title(’eigenvalues of A’)
0.1046 0.0372 0.0132 0.0045 0.0016 ylabel(’imag part’), xlabel(’real part’), grid
0.0006 0.0002 0.0001 0.0000 0.0000 xtrue=randn(m,1); b = A*xtrue;
0.0000 figure(2)
ans = 6.3526e-07 [x,normrn]=Gmres_1_precon(A,b,maxiter,diag(diag(A)))
Elapsed time is 0.547985 seconds. max(abs(x-xtrue))
end
function A=eigmat(n,n1,m)
A=n*eye(m)+n1*randn(m)/sqrt(m);
end
Cuadro 8.18
Figura 8.15
8.6 Métodos de subespacios de Krylov j 211
r = M \ ( b-A*x );
error = norm(r)/bnrm2; if( error < tol ), return, end
Cuadro 8.19
212 j Capítulo 8. Sistemas de ecuaciones lineales. Algoritmos de resolución iterativos
Cuadro 8.20
Si hacemos alguna prueba con él en una sesión interactiva con M ATLAB resulta lo del cuadro 8.21.
>> A=rand(10);
>> A=A*A’; % Matriz simétrica def. positiva
>> b=A*ones(10,1);
>> [x] = Lanczos_1_1(A,8,b) % 8 iteraciones de Lanczos
>> norm(x)-norm(ones(10,1))
ans = -0.001890199589387
>> [x] = Lanczos_1_1(A,11,b) % 11 iteraciones de Lanczos
>> norm(x)-norm(ones(10,1))
ans = 2.463820703013653e-09
Cuadro 8.21
Un algoritmo más completo y robusto, del Systems Optimization Laboratory (Stanford University), se lista en el
apéndice B, en la página 665. Su longitud impide hacerlo aquí.
>> SdyCg(1.6)
cond(A) Mp_i Gc_i GS_i SOR_i Jac_i Mp_tim Gc_tim GS_tim SOR_tim Jac_tim Res^2_Mp Res^2_Cg Res^2_GS Res^2_SOR Res^2_Jac
1 1 1 2 29 2 0.000124 0.000092 0.006561 0.008331 0.001398 7.944076e-28 7.944076e-28 3.630856e-28 6.788011e-11 1.649459e-28
10 71 27 30 34 69 0.003159 0.001476 0.007254 0.008618 0.014539 8.579430e-13 8.912196e-13 9.432146e-11 1.933698e-10 1.034252e-09
100 685 84 205 48 761 0.039224 0.005740 0.015905 0.013556 0.196298 9.298963e-13 9.870799e-13 4.477812e-08 1.616879e-08 1.107515e-07
1000 6155 142 1644 566 70489 0.309429 0.009098 0.065275 0.122751 15.220156 9.954203e-13 6.167283e-13 2.765230e-06 1.118498e-06 NaN
10000 66389 162 7178 1564 99999 3.402865 0.009311 0.356074 0.351750 21.980691 9.994093e-13 7.437201e-13 5.815914e-04 2.265461e-04 2.941935e+26
Cuadro 8.22
Figura 8.16
% Gauss-Seidel
tic; k0=0; x=x0; c2=(D+L)\b; G_GS=(D+L)\(-U); d=max(abs(b-A*x));
function SdyCg(omega) while d>tol && k<maxits
% Test de diversos métodos iterativos de solución de sistemas lineales k0=k0+1;
n=500; x1=G_GS*x+c2;
condA=[1 10 100 1000 10000]; s=max(abs(x1));
x0=zeros(n,1); d=max(abs(x1-x))/s;
tol=1e-6; x=x1;
maxits=99999; end
disp([’cond(A) Mp_i Gc_i GS_i SOR_i Jac_i Mp_tim Gc_tim time_GSe=toc;
GS_tim SOR_tim’...
’ Jac_tim Res^2_Mp Res^2_Cg Res^2_GS GS(i)=k0; Res^2_Jac’]);
Res^2_SOR
for i=1:5 r=b-A*x;
[Q,R]=qr(rand(n)); d3=r’*r;
A=Q’*diag(linspace(1,condA(i),n))*Q; b=A*ones(n,1); % SOR
D=diag(diag(A)); L=tril(A,-1); U=triu(A,1); tic; l=0; x=x0; M=omega*L+D; N=-omega*U+(1-omega)*D;
% Máxima pendiente d=max(abs(b-A*x));
tic; j=0; x=x0; r=b-A*x; d=r’*r; s=r; while d>tol && l<maxits
while sqrt(d)>tol && j<maxits l=l+1;
j=j+1; x1=M\(N*x+omega*b);
v=A*s; s=max(abs(x1));
alpha=d/(s’*v); d=max(abs(x1-x))/s;
x=x+alpha*s; x=x1;
r=r-alpha*v; end
d=r’*r; time_SOR=toc;
s=r; SO(i)=l;
end r=b-A*x;
time_Mp=toc; d4=r’*r;
Mp(i)=j; % Jacobi
d1=d; tic; l1=0; x=x0; M=D; N=D-A;
% Gradientes conjugados d=max(abs(b-A*x));
tic; k=0; x=x0; r=b-A*x; d=r’*r; p=r; while d>tol && l1<maxits
while sqrt(d)>tol && k<maxits l1=l1+1;
k=k+1; x1=M\(N*x+b);
v=A*p; s=max(abs(x1));
alpha=d/(p’*v); d=max(abs(x1-x))/s;
x=x+alpha*p; x=x1;
r=r-alpha*v; end
beta=d; time_Jac=toc;
d=r’*r; Ja(i)=l1;
beta=d/beta; r=b-A*x;
p=r+beta*p; d5=r’*r;
end fprintf(’ %5d%6d%6d%6d%6d%6d %10.6f %10.6f %10.6f %10.6f %10.6f %e %e %e %e %e\n’,...
time_Gc=toc; condA(i),j,k,k0,l,l1,time_Mp,time_Gc,time_GSe,time_SOR,time_Jac,d1,d2,d3,d4,d5);
Gc(i)=k; end
d2=d; loglog(condA, Mp,’b-x’,condA,Gc,’r:+’,condA,GS,’g-.x’,condA,SO,’c-+’,condA,Ja,’k:x’)
xlabel(’Condición’),ylabel(’Iteraciones’)
h = legend(’Mp’,’Gc’,’GSe’,’SOR’,’Jac’,2);
Cuadro 8.23
Capítulo 9
Contenido
9.1 El problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
9.1.1 Estudios de cargas en sistemas de generación y transporte de energía eléctrica . . . . . . . . . 215
9.2 Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
9.2.1 Modificaciones del Método de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . 218
9.3 Métodos cuasi Newton. Método de Broyden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
9.3.1 Implementación práctica del método de Broyden . . . . . . . . . . . . . . . . . . . . . . . . 221
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
9.1 El problema
E N términos matemáticos,
dada f W Rn ! Rm ; hallar un xN tal que f .x/
N D 0.
La función vectorial f se supone continua y derivable en algún conjunto abierto de Rn , con derivadas parciales continuas
en ese abierto.
Los algoritmos que estudiamos son iterativos. En cada iteración se resolverá un sistema de ecuaciones lineales resul-
tante de una simplificación del problema original en el entorno de cada punto del proceso.
Los estudios de circulación o flujo de cargas determinan las tensiones en los nudos de la red, en
módulo y argumento, los flujos de potencia activa y reactiva por todos los elementos del sistema, la
intensidad por las líneas, las pérdidas en éstas, etc.
216 j Capítulo 9. Sistemas de ecuaciones no lineales
Las leyes esenciales que gobiernan los flujos de electricidad en redes de transporte y distribución de energía las formuló
Gustav Robert Kirchhoff, Alemania (Prusia, Königsberg) 1824-1887.
Kirchhoff
Si se supone que los parámetros físicos de un sistema eléctrico permanecen constantes, existen cuatro variables asocia-
das a cada nudo i —en el de la figura hay 3— de ese sistema:
la tensión, en módulo, Vi , y argumento, i ;
la potencia activa inyectada, Pi , y
la potencia reactiva inyectada, Qi .
Las potencias inyectadas en el nudo i dependen de su tensión y de las de los a él unidos. Las expresiones que las
relacionan, si no hay transformadores, son
n
X n
X
2
Pi D jVi j Gpij C Gsij jVi j jVj j Gsij cos.i j / C Bsij sen.i j /
j D1 j D1
j ¤i j ¤i
n
X n
X
Qi D jVi j2 Bpij C Bsij jVi j jVj j Gsij sen.i j / Bsij cos.i j /
j D1 j D1
j ¤i j ¤i
Cuadro 9.1
Consideremos de nuevo el pequeño sistema eléctrico de antes. Si se elige como nudo de holgura el 1, el 2 es PV y
el 3, PQ. La función vectorial f .x/ que definiría el sistema no lineal de ecuaciones con el que determinar el estado de
funcionamiento de esa pequeña red eléctrica es la siguiente:
2 3
V2
6 X X 7
6 V22 .Gp2j C Gs2j / V2 Vj G2j cos.2 j / C B2j sen.2 j / 7
6 7
6 j D1;3 j D1;3
7
6 X X 7
f .x/ D 66 7:
V 2
.Gp C Gs / V 3 Vj G 3j cos.3 j / C B3j sen.3 j / 7
6 3 3j 3j 7
6 j D1;2 j D1;2 7
6 X X 7
4 2 5
V3 .BC C Bp3j C Bs3j / V3 Vj G3j sen.3 j / B3j cos.3 j /
j D1;2 j D1;2
Si se resuelve el sistema lineal f .xk / C J .xk /.x xk / D 0, su solución dará un avance a un nuevo punto del proceso
iterativo. La relación de recurrencia del método es
1
xkC1 D xk J .xk / f .xk /
218 j Capítulo 9. Sistemas de ecuaciones no lineales
I – Definir un x0 2 Rn ; hacer k D 1 y xk x0 .
II – Resolver el sistema lineal J .xk /.xkC1 xk / D f .xk /
III – Si kf .xkC1 /k2 < T ol, parar: el problema está resuelto
Si no, hacer k D k C 1, xk D xkC1 e ir al paso II
Ejemplo 9.1 Resolvamos mediante Newton-Raphson, partiendo del punto Œ1; 1; 1T , el sistema de ecuaciones no linea-
les
1
3x1 cos.x2 x3 / D0
2 2
1
x12 81 x2 C C sen.x3 / C 1;06 D 0
10
10 3
e x1 x 2 C 20x3 C D 0:
3
Un código de M ATLAB para hacerlo debería constar de, al menos, estas dos rutinas:
function [x,dnor,iter]=Newt_Rap(funcion,x0,tol,maxiter)
% Newton-Raphson para cualquier sistema no lineal
if nargin<4, maxiter=99999; end function [f J]=NRP_1(x)
if nargin<3, tol=sqrt(eps); end f(1) = 3*x(1)-cos(x(2)*x(3))-0.5;
dnor=1.0; iter=0; A=[]; Dnor=[]; f(2) = x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;
while dnor>tol && iter<maxiter f(3) = exp((-x(1)*x(2)))+20*x(3)+(10*pi-3)/3;
iter=iter+1; if nargout<2, return, end
[f,J]=funcion(x0); J(1,1) = 3.0;
p=J\f’; J(1,2) = sin(x(2)*x(3))*x(3); J(1,3) = sin(x(2)*x(3))*x(2);
x=x0-p; [f]=funcion(x); J(2,1) = 2.0*x(1); J(2,2) = -162.0*(x(2)+0.1); J(2,3)=cos(x(3));
dnor=norm(f,inf); A=[A;x’]; x0=x; Dnor=[Dnor;dnor]; J(3,1) = -exp((-x(1)*x(2)))*x(2); J(3,2)=-exp((-x(1)*x(2)))*x(1);
end J(3,3) = 20.0;
s=’ %15.10e’; for i=1:size(x0)-1 s=[s’ %15.10e’]; end end
for i=1:iter, fprintf([s ’ %15.10en’], A(i,:),Dnor(i)); end
end
El código del cuadro de la izquierda es para cualquier problema; el de la derecha, para este ejemplo. Resolvamos:
>> [x,dnor,iter]=Newt_Rap(@NRP_1,[1;1;1])
9.1968721308e-001 4.6082245570e-001 -5.0338763550e-001 2.4087256490e+001
5.0100048532e-001 1.8743347767e-001 -5.2086923301e-001 5.8788006806e+000
5.0054293549e-001 6.1153453678e-002 -5.2200096420e-001 1.2916807111e+000
5.0010443627e-001 1.1617105749e-002 -5.2329514612e-001 1.9876169457e-001
5.0000551037e-001 6.0561572295e-004 -5.2358293632e-001 9.8214794394e-003
5.0000001666e-001 1.8263674473e-006 -5.2359872783e-001 2.9529468423e-005
5.0000000000e-001 1.6710515026e-011 -5.2359877560e-001 2.7018031860e-010
x =
0.5000
0.0000
-0.5236
dnor = 2.7018e-010
iter = 7
Con la instrucción >> Newtrp_df_1(@NRP_1_dif,x), en una sesión de M ATLAB, se obtiene el proceso de conver-
gencia que indica el cuadro 9.2. Las tres primeras columnas son los coeficientes del vector x y la última kf .xk /k2 .
>> x=[1;1;1];
>> Newtrp_df_1(@NRP_1_dif,x)
9.1968721314e-01 4.6082245826e-01 -5.0338763389e-01 2.4087256721e+01
5.0100048524e-01 1.8743348339e-01 -5.2086923236e-01 5.8788009464e+00
5.0054293556e-01 6.1153459243e-02 -5.2200096436e-01 1.2916808565e+00
5.0010443628e-01 1.1617109794e-02 -5.2329514576e-01 1.9876176740e-01
5.0000551039e-01 6.0561685407e-04 -5.2358293631e-01 9.8214978438e-03
5.0000001666e-01 1.8264191607e-06 -5.2359872782e-01 2.9530304459e-05
5.0000000000e-01 1.6847869395e-11 -5.2359877560e-01 2.7240041680e-10
Cuadro 9.2: Convergencia de ejemplo 9.1 con el algoritmo de Newton por diferencias finitas
Para resolver el problema podemos también usar diferencias finitas centradas mediante la rutina del cuadro 9.3, que
calcula la información precisa, resultando lo que a continuación ilustra el propio cuadro.
function [f J]=NRP_1_dif_1(x)
global h
f(1) = 3*x(1)-cos(x(2)*x(3))-0.5;
>> Newtrp_df_1_c(@NRP_1_dif_1,[1;1;1])
f(2) = x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;
9.1968721308e-001 4.6082245570e-001 -5.0338763551e-001 2.4087256490e+001
f(3) = exp((-x(1)*x(2)))+20*x(3)+(10*pi-3)/3;
5.0100048532e-001 1.8743347768e-001 -5.2086923301e-001 5.8788006807e+000
if nargout<2, return, end
5.0054293549e-001 6.1153453680e-002 -5.2200096420e-001 1.2916807112e+000
for i=1:3
5.0010443627e-001 1.1617105749e-002 -5.2329514612e-001 1.9876169458e-001
x(i)=x(i)+h; f1=NRP_1_dif_1(x);
5.0000551037e-001 6.0561572299e-004 -5.2358293632e-001 9.8214794401e-003
x(i)=x(i)-2*h; f2=NRP_1_dif_1(x);
5.0000001666e-001 1.8263674477e-006 -5.2359872783e-001 2.9529468429e-005
J(1:3,i)=(f1-f2)/(2*h);
5.0000000000e-001 1.6710502161e-011 -5.2359877560e-001 2.7018009656e-010
x(i)=x(i)+h;
end
end
Cuadro 9.3
9.2.1.3 Jacobi
La matriz Jacobiana se aproxima mediante los coeficientes de su diagonal principal. La relación de recurrencia es:
xkC1 D xk D k 1 f .xk /,
donde diki D Jiki . Si la matriz J es diagonal dominante, esta estrategia puede ser suficiente.
220 j Capítulo 9. Sistemas de ecuaciones no lineales
9.2.1.4 Gauss-Seidel
La matriz del sistema es la parte triangular inferior de la Jacobiana. La relación de recurrencia es:
xkC1 D xk Lk 1 f .xk /
Broyden
Estos procedimientos extienden la aproximación al problema del método de la secante pero a n dimensiones. Su primera
aproximación al respecto se la publicó en 1965.
En general el método se centra en escoger J .xk / de tal forma que se minimice el valor de la función que se obtendría
en un mismo punto mediante sus dos aproximaciones Ak y Ak 1 y que además se cumpla que Ak .xk xk 1 / D
f .xk / f .xk 1 /.
Si sk 1 D xk xk 1 y yk 1 D f .xk / f .xk 1 /, lo cumple la aproximación de J .xk / que sigue esta recurrencia:
T
.yk 1 Ak 1 sk 1 /sk 1
Ak D Ak 1 C
skT 1 sk 1
III – Si kjf .xk /k2 < T ol, PARAR: el problema está resuelto.
Si > T ol, hacer xkC1 xk C sk
yk f .xkC1 / f .xk /
T
.yk Ak sk /sk
AkC1 Ak C T
sk sk
k kC1
y volver al paso II.
La A0 se puede obtener por una aproximación parcial o total: por diferencias finitas, por ejemplo. La convergencia
del método a que da lugar es superlineal.
9.3 Métodos cuasi Newton. Método de Broyden j 221
Ejemplo 9.2 Partiendo del punto Œ1; 1; 1T , resolvamos este sistema con Newton y fórmula de Broyden.
1
3x1 cos.x2 x3 / 2
D0
1 2
x12 81 x2 C 10 C sen.x3 / C 1;06 D 0
e x1 x2
C 20x3 C 103 3 D 0:
En código de M ATLAB, con la rutina específica correspondiente, es el del cuadro 9.4. Como matriz A0 se utiliza la
function Broyden_3(fx,x)
% Método cuasi Newton con la fórmula de Broyden
tol=sqrt(eps); n=length(x); dnor=1.0; J=zeros(n,n); f=fx(x);
J(1,1)=3; J(2,2)=-178.2; J(3,3)=20; % Trampa
while dnor >tol
p=J\f’;
x1=x-p; f=fx(x1);
dnor=norm(f);
fprintf(’ %15.10e %15.10e %15.10e %15.10e\n’,x,dnor);
J=broy(J,f,p); x=x1;
end
end
function J=broy(J,f,p)
prod=p’*p;
J=J-(1/prod)*f’*p’; % igual que J=J-(1/prod)*(y’+J*p)*p’ ver Quarteroni p.289
end
Cuadro 9.4
Cuadro 9.5
Contenido
10.1 Definición del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
10.2 Estimación del estado de sistemas eléctricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
10.3 Resolución numérica del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.3.1 Método de Gauss-Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
10.3.2 Método de Levenberg-Marquardt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
10.3.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
donde el vector de residuos1 es r.x/ W Rn ! Rm D Œr1 .x/; : : : ; rm .x/T . Cada ri .x/, i D 1; : : : ; m, m n, es una
función no lineal de Rn en R.
El problema real surge de la imposibilidad de encontrar la solución al sistema de ecuaciones r.x/ D 0 y se quiere
adaptar una pseudosolución que mejor la aproximase —de existir— de acuerdo con la norma euclídea.
El ejemplo paradigmático es el ajuste de funciones no lineales a datos diversos. Se trata de aproximar una función
f .x; t/ no lineal a unos datos, definidos por ejemplo por un par yi (valor) y ti (tiempo), .yi ; ti /, i D 1; : : : ; m. Si ri .x/
representa el error en la predicción que hace el modelo de la observación i,
ri .x/ D yi f .x; ti /; i D 1; : : : ; m;
y se quiere minimizar la suma de los cuadrados de las desviaciones entre los valores reales y los predichos con el modelo,
se llega a un problema del tipo
1
minimizar
n 2
ky f .x/k22
x2R
En la operación, análisis y planificación de sistemas eléctricos de energía como el de la figura, uno de los asuntos de
más relevancia técnica y económica es el de la estimación del estado de funcionamiento del sistema de generación y
transporte.
Para estimar el estado del sistema se instalan en su red física unos aparatos de medida que proporcionan el valor de
diversas magnitudes de funcionamiento: tensiones en diversos puntos, flujos de potencia activa y reactiva por elementos
de transporte, potencias activa y reactiva inyectadas, etc.
Si todas estas medidas fuesen perfectas en un estado de operación concreto, las relaciones matemáticas que modelizan
las leyes físicas que rigen su funcionamiento permitirían determinar la solución única de ese estado.
Los errores aleatorios que incorporan los aparatos de medida introducen una incompatibilidad matemática en aque-
llas relaciones, por lo que el cálculo de la solución exacta no es posible teniendo que sustituirse por una estimación de
la más probable.
Con el fin de aumentar la bondad de la estimación, así como poder identificar mediciones erróneas, el número de
medidas que se efectúa suele ser, como apuntábamos, redundante: bastante superior al estrictamente necesario para
determinar el estado de funcionamiento real. Un ejemplo es el de la figura 10.1. Recordemos las expresiones
n
X n
X
Pi D jVi j2 Gpij C Gsij jVi j jVj j Gsij cos.i j / C Bsij sen.i j /
j D1 j D1
j ¤i j ¤i
n
X n
X
Qi D jVi j2 Bpij C Bsij jVi j jVj j Gsij sen.i j / Bsij cos.i j /
j D1 j D1
j ¤i j ¤i
10.2 Estimación del estado de sistemas eléctricos j 225
Figura 10.1
Pij D jVi j2 Gsij jVi jjVj jGsij cos.i j / jVi jjVj jBsij sen.i j / C jVi j2 Gpij
Qij D jVi j2 Bsij jVi jjVj jGsij sen.i j / C jVi jjVj jBsij cos.i j / jVi j2 Bpij :
En términos matemáticos, si se tiene una muestra b1 ; b2 ; : : : ; bm que define una medida en un mismo instante de todos
los aparatos, el sistema de ecuaciones que relaciona estas mediciones con las variables de estado x1 ; x2 ; : : : ; xn , se puede
expresar como
f1 .x1 ; x2 ; : : : ; xn / D b1
f2 .x1 ; x2 ; : : : ; xn / D b2
::
:
fm .x1 ; x2 ; : : : ; xn / D bm ;
donde m n. Se supone que cada uno de los elementos de la función vectorial f .x/ es exacto.
Este sistema, debido a la imprecisión de los aparatos, suele ser matemáticamente incompatible, aunque esta incompa-
tibilidad suele ser muy pequeña al ser pequeñas esas imprecisiones.
Para el ejemplo de tres nudos de la figura anterior, tomando 1 D 0 como referencia de ángulos, los parámetros que
definen el sistema son los de la tabla del cuadro 10.1.
Al no existir solución exacta del sistema, para poder estimar una que se acerque en algún sentido a esa ideal inalcan-
zable, es necesario definir un criterio, métrica (o estimador) en Rn que evalúe la bondad de una pseudosolución de ella.
Los más usados son:
El de mínimos cuadrados.
El de máxima verosimilitud.
226 j Capítulo 10. Mínimos cuadrados no lineales
b x f .x/
V1
V2
X X
V1 V12 .Gp1j C Gs1j / V1 Vj .G1j cos.1 j / C B1j sen.1 j //
V2 j D2;3 j D2;3
X X
P1 V12 .Bp1j C Bs1j / V1 Vj .G1j sen.1 j / B1j cos.1 j //
j D2;3 j D2;3
Q1 X X
V22 .Gp2j C Gs2j / V2 Vj .G2j cos.2 j / C B2j sen.2 j //
P2 V1
j D1;3 j D1;3
P3 V2 X X
V32 .Gp3j C Gs3j / V3 Vj .G3j cos.3 j / C B3j sen.3 j //
Q3 2 j D1;2 j D1;2
X X
2
P12 V3 V3 .Bp3j C Bs3j / V3 Vj .G3j sen.3 j / B3j cos.3 j //
Q12 3 j D1;2 j D1;2
P21 V12 Gs12 V1 V2 Gs12 cos.1 2 / C Bs12 sen.1 2 / C V12 Gp12
Q21 V12 Bs12 V1 V2 Gs12 sen.1 2 / Bs12 sen.1 2 / V12 Bp12
P23 V22 Gs21 V1 V2 Gs21 cos.2 1 / C Bs21 sen.2 1 / C V22 Gp21
Q23 V22 Bs21 V1 V2 Gs21 sen.2 1 / Bs21 sen.2 1 / V22 Bp21
V22 Gs23 V2 V3 Gs23 cos.2 3 / C Bs23 sen.2 3 / C V22 Gp23
V22 Bs23 V2 V3 Gs23 sen.2 3 / Bs23 sen.2 3 / V22 Bp23
Cuadro 10.1
minimizar
n
ˆ.x/
x2R
El de máxima verosimilitud es idéntico al de mínimos cuadrados cuando los errores de las mediciones tienen una dis-
tribución de probabilidad N.0; /: Ambos convergen en probabilidad a x, son asintóticamente normales y consistentes
para m ! 1.
Si un determinado aparato suministra la medida b, siendo b real la que debería dar si la precisión de la medición fuese
total, se tendrá que
b D b real C ;
donde es el error aleatorio propio del aparato de medida.
Si no está sesgado, su función de densidad de probabilidad
1 2
FDP ./ D p e 2 2
2
es la normal de media cero y desviación típica .
Como la media de se supone cero, la media de la muestra real de b es b real . La función de densidad de probabilidad
de b es
2
1 .b breal /
FDP .b/ D p e 2 2
2
10.3 Resolución numérica del problema j 227
Si se tiene un vector de m medidas, b, en el que cada uno de sus elementos o coeficiente tiene una función de densidad
de probabilidad como la descrita, la función de densidad de probabilidad conjunta de la muestra b1 ; : : : ; bm , supuestas
todas las medidas independientes unas de otras, es
m
Y
FDP .b1 ; : : : ; bm / D FDP .b1 / FDP .b2 / FDP .bm / D FDP .bi /:
i D1
A esta función se la denomina verosimilitud de los parámetros (los bireal ) y se designa por L.b1real ; : : : ; bm
real
/D
real
L.b /.
Si se quiere hacer máxima la verosimilitud (probabilidad) de que se obtenga como medida real la de la muestra b,
m 2
X bi bireal
m
Y
1 2i2
L.breal / D p e i D1 ;
iD1
i 2
habrá que maximizar L o, lo que debe conseguir el mismo efecto, ln L.breal /. Ahora bien, maximizar la función
ln L.breal / es lo mismo que
2 3
im i m 2
6 p bi bi real
7
maximizar 4 ln.i 2/ 5:
2i2
i D1 i D1
Pm p
Como iD1 ln.i 2/ es constante, este problema equivale a
2 3
i
m 2
6 bi bireal 7
minimizar 4 5:
2i2
i D1
Los parámetros breal se relacionan a través de las variables de estado por la función no lineal antes mencionada
breal D f .x/;
donde x es el vector de variables de estado: las tensiones en los nudos de la red y las tomas de los transformadores con
regulación.
El problema expresado en forma matricial resulta
minimizar
n
Œb f .x/T ‚ 1
Œb f .x/ ;
x2R
donde la matriz 2 3
12
6 :: 7
‚D4 : 5
2
m
es la matriz de covarianzas de las mediciones.
1
Como esta matriz es definida positiva, su inversa se puede expresar de la forma ‚ D W T W , dando lugar a la
formulación
minimizar
n
kW .b f .x//k22
x2R
por lo que se puede resolver con los métodos que conocemos para mínimos cuadrados lineales: ecuaciones normales,
factorización QR, descomposición en valores singulares, etc.
Ejemplo 10.1 Mediante Gauss-Newton, resolviendo los subproblemas mediante el operador n de M ATLAB, determinar
x1 y x2 de la función e x1 Ctx2 que mejor ajuste los pares de puntos
f.ti ; yi /g D f. 2; 1=2/; . 1; 1/; .0; 2/; .1; 4/g:
La función r.x/ es R2 ! R4 ; su matriz Jacobiana es
2 3
e x1 2x2 2e x1 2x2
6 e x1 x 2 e x1 x 2 7
J .x/ D 6
4 e x1
7:
5
0
e x1 Cx2 e x1 Cx2
Desde x0 D Œ1, 1T , el código M ATLAB que lo puede resolver en particular es este.
El proceso hasta la solución, x D Œln 2; ln 2T , con la instrucción >> GN111(@GaNew,[1;1]), en una sesión de
M ATLAB, es el del cuadro 10.2. Las tres primeras columnas son los coeficientes del vector x y la última kf .xk /k2 .
10.3 Resolución numérica del problema j 229
>> GN111(@GaNew,[1;1])
7.5406407955e-01 7.8581936683e-01 1.2019085869e+01 3.1296749716e-01
6.9782818219e-01 6.9931189370e-01 4.6113768156e-01 1.2370370632e-01
6.9317290132e-01 6.9317774998e-01 2.0073845116e-03 8.8493084521e-03
6.9314718126e-01 6.9314718139e-01 5.3683607855e-08 4.4101156284e-05
6.9314718056e-01 6.9314718056e-01 3.9452547217e-17 1.1940285355e-09
Cuadro 10.2
Cuadro 10.3
Partiendo
Partiendo de de 0 D30;
xŒ200;
x0 D Œ200;
0;4T30; 0;4MTATLAB
, el código , el código Matlab
que lo resuelve es este.que lo resuelve es este.
function Levmar_99
% Levenberg-Marquardt
m=12; n=3; x=[200;30;-0.4]; mu=0.01; J=zeros(m,n);
function J=derf(x)
jtj=zeros(n,n); dnor=1; f=fx(x);
J(1,1) =1/(1+x(2)*exp(x(3)));
tol=sqrt(eps)*norm(x,inf); update=1;
J(1,2) =-x(1)*exp(x(3))/(1+x(2)*exp(x(3)))^2;
J(1,3) =-x(1)*x(2)*exp(x(3))/(1+x(2)*exp(x(3)))^2;
while dnor>tol
J(2,1) =1/(1+x(2)*exp(2*x(3)));
if update==1
J(2,2) =-x(1)*exp(2*x(3))/(1+x(2)*exp(2*x(3)))^2;
f=fx(x); J=derf(x);
J(2,3) =-x(1)*x(2)*exp(2*x(3))*2/(1+x(2)*exp(2*x(3)))^2;
jtj=J’*J;
J(3,1) =1/(1+x(2)*exp(3*x(3)));
res=norm(f)^2;
J(3,2) =-x(1)*exp(3*x(3))/(1+x(2)*exp(3*x(3)))^2;
end
J(3,3) =-x(1)*x(2)*exp(3*x(3))*3/(1+x(2)*exp(3*x(3)))^2;
a=jtj+mu*eye(n);
J(4,1) =1/(1+x(2)*exp(4*x(3)));
s=a\(J’*f);
J(4,2) =-x(1)*exp(4*x(3))/(1+x(2)*exp(4*x(3)))^2;
b=x-s;
J(4,3) =-x(1)*x(2)*exp(4*x(3))*4/(1+x(2)*exp(4*x(3)))^2;
f1=fx(b);
J(5,1) =1/(1+x(2)*exp(5*x(3)));
res1=norm(f1)^2;
J(5,2) =-x(1)*exp(5*x(3))/(1+x(2)*exp(5*x(3)))^2;
if res1<res
J(5,3) =-x(1)*x(2)*exp(5*x(3))*5/(1+x(2)*exp(5*x(3)))^2;
x=b; f=f1;
J(6,1) =1/(1+x(2)*exp(6*x(3)));
dnor=norm(s,inf)/norm(x,inf);
J(6,2) =-x(1)*exp(6*x(3))/(1+x(2)*exp(6*x(3)))^2;
fprintf(’%15.10e %15.10e %15.10e %15.10e %15.10e %15.10e\n’,...
J(6,3) =-x(1)*x(2)*exp(6*x(3))*6/(1+x(2)*exp(6*x(3)))^2;
x,res1,mu,dnor);
J(7,1) =1/(1+x(2)*exp(7*x(3)));
mu=mu/10; update=1;
J(7,2) =-x(1)*exp(7*x(3))/(1+x(2)*exp(7*x(3)))^2;
else
J(7,3) =-x(1)*x(2)*exp(7*x(3))*7/(1+x(2)*exp(7*x(3)))^2;
mu=mu*10; update=0;
J(8,1) =1/(1+x(2)*exp(8*x(3)));
end
J(8,2) =-x(1)*exp(8*x(3))/(1+x(2)*exp(8*x(3)))^2;
end
J(8,3) =-x(1)*x(2)*exp(8*x(3))*8/(1+x(2)*exp(8*x(3)))^2;
end
J(9,1) =1/(1+x(2)*exp(9*x(3)));
J(9,2) =-x(1)*exp(9*x(3))/(1+x(2)*exp(9*x(3)))^2;
function f=fx(x)
J(9,3) =-x(1)*x(2)*exp(9*x(3))*9/(1+x(2)*exp(9*x(3)))^2;
f=zeros(12,1);
J(10,1)=1/(1+x(2)*exp(10*x(3)));
f(1) = x(1)/(1+x(2)*exp(x(3)))-5.308;
J(10,2)=-x(1)*exp(10*x(3))/(1+x(2)*exp(10*x(3)))^2;
f(2) = x(1)/(1+x(2)*exp(2*x(3)))-7.24;
J(10,3)=-x(1)*x(2)*exp(10*x(3))*10/(1+x(2)*exp(10*x(3)))^2;
f(3) = x(1)/(1+x(2)*exp(3*x(3)))-9.638;
J(11,1)=1/(1+x(2)*exp(11*x(3)));
f(4) = x(1)/(1+x(2)*exp(4*x(3)))-12.866;
J(11,2)=-x(1)*exp(11*x(3))/(1+x(2)*exp(11*x(3)))^2;
f(5) = x(1)/(1+x(2)*exp(5*x(3)))-17.069;
J(11,3)=-x(1)*x(2)*exp(11*x(3))*11/(1+x(2)*exp(11*x(3)))^2;
f(6) = x(1)/(1+x(2)*exp(6*x(3)))-23.192;
J(12,1)=1/(1+x(2)*exp(12*x(3)));
f(7) = x(1)/(1+x(2)*exp(7*x(3)))-31.443;
J(12,2)=-x(1)*exp(12*x(3))/(1+x(2)*exp(12*x(3)))^2;
f(8) = x(1)/(1+x(2)*exp(8*x(3)))-38.558;
J(12,3)=-x(1)*x(2)*exp(12*x(3))*12/(1+x(2)*exp(12*x(3)))^2;
f(9) = x(1)/(1+x(2)*exp(9*x(3)))-50.156;
f(10) = x(1)/(1+x(2)*exp(10*x(3)))-62.948;
end
f(11) = x(1)/(1+x(2)*exp(11*x(3)))-75.995;
f(12) = x(1)/(1+x(2)*exp(12*x(3)))-91.972;
end
La matriz jacobiana se ha calculado analíticamente. Cuando la complejidad de su cálculo es mayor, se puede aproximar
por diferencias finitas. 27/41
Los puntos del proceso iterativo que se obtienen con una sesión de M ATLAB son los del cuadro 10.4.
>> Levmar_99
1 1.4756872319e+02 3.0915753991e+01 -3.3304661156e-01 3.2095285441e+02 1.0000000000e-02 3.5530074172e-01
a b c 2 1.7485492970e+02
1 4.1322472852e+01
2 3 -3.1183181926e-01 1.9720323863e+01 1.0000000000e-03 1.5605054173e-01
3 1.9441635874e+02 4.8327112423e+01 -3.1344957806e-01 2.6657614929e+00 1.0000000000e-04 1.0061616816e-01
d e f g4 1.9613176244e+02
9 4.9079231125e+01
4 6 5 -3.1359042350e-01 2.5873011226e+00 1.0000000000e-05 8.7461799758e-03
5 1.9618553722e+02 4.9091542376e+01 -3.1357009855e-01 2.5872773966e+00 1.0000000000e-06 2.7410166257e-04
6 1.9618625588e+02 4.9091638512e+01 -3.1356973267e-01 2.5872773953e+00 1.0000000000e-07 3.6631679415e-06
h i j 10 8 7
7 1.9618626172e+02 4.9091639449e+01 -3.1356972996e-01 2.5872773953e+00 1.0000000000e-08 2.9764224702e-08
Cuadro 10.4
10.3 Resolución numérica del problema j 231
Con la matriz Jacobiana obtenida por diferencias finitas, partiendo de x D Œ10; 1; 1T y utilizando estos códigos del
cuadro 10.5 se obtiene lo que lista resumidamente el cuadro 10.6.
function Levmar_99_1
% Levenberg-Marquardt
function f=fx(x)
global h
f = zeros(12,1);
n=3; x=[10;1;1]; mu=0.01; h=sqrt(eps); dnor=1; k=0;
f(1) = x(1)/(1+x(2)*exp(x(3)))-5.308;
tol=h*norm(x,inf); update=1;
f(2) = x(1)/(1+x(2)*exp(2*x(3)))-7.24;
while dnor>tol
f(3) = x(1)/(1+x(2)*exp(3*x(3)))-9.638;
if update==1
f(4) = x(1)/(1+x(2)*exp(4*x(3)))-12.866;
f=fx(x); J=derf(x);
f(5) = x(1)/(1+x(2)*exp(5*x(3)))-17.069;
jtj=J’*J;
f(6) = x(1)/(1+x(2)*exp(6*x(3)))-23.192;
res=norm(f)^2;
f(7) = x(1)/(1+x(2)*exp(7*x(3)))-31.443;
end
f(8) = x(1)/(1+x(2)*exp(8*x(3)))-38.558;
a=jtj+mu*eye(n);
f(9) = x(1)/(1+x(2)*exp(9*x(3)))-50.156;
s=a\(J’*f);
f(10) = x(1)/(1+x(2)*exp(10*x(3)))-62.948;
b=x-s;
f(11) = x(1)/(1+x(2)*exp(11*x(3)))-75.995;
f1=fx(b); res1=norm(f1)^2;
f(12) = x(1)/(1+x(2)*exp(12*x(3)))-91.972;
if res1<res
end
x=b; f=f1;
dnor=norm(s,inf)/norm(x,inf); k=k+1;
function J=derf(x)
fprintf(’%3.0f %15.10e %15.10e %15.10e’,...
global h
’%15.10e %15.10e %15.10e\n’,k,x,res1,mu,dnor);
J =zeros(12,3);
mu=mu/10; update=1;
J(1:12,1)=(fx([x(1)+h;x(2);x(3)])-fx([x(1)-h;x(2);x(3)]))/2/h;
else
J(1:12,2)=(fx([x(1);x(2)+h;x(3)])-fx([x(1);x(2)-h;x(3)]))/2/h;
mu=mu*10; update=0;
J(1:12,3)=(fx([x(1);x(2);x(3)+h])-fx([x(1);x(2);x(3)-h]))/2/h;
end
end
end
end
Cuadro 10.5
>> Levmar_99_1
1 2.3152737458e+001 1.8021498292e+001 -1.3632831505e+001 1.1044395775e+004 1.0000000000e-002 7.3518297019e-001
2 3.5521957325e+001 1.8106135944e+001 -1.2119438256e+001 9.2052245497e+003 1.0000000000e-002 3.4821335305e-001
. . .
16 1.9617433148e+002 4.9090128611e+001 -3.1357474036e-001 2.5872794922e+000 1.0000000000e-005 4.2870467197e-003
17 1.9618630640e+002 4.9091641090e+001 -3.1356969799e-001 2.5872773953e+000 1.0000000000e-006 6.1038510228e-005
18 1.9618621815e+002 4.9091635363e+001 -3.1356975593e-001 2.5872773953e+000 1.0000000000e-007 4.4983495179e-007
19 1.9618623975e+002 4.9091640103e+001 -3.1356974850e-001 2.5872773953e+000 1.0000000000e-002 1.1005699249e-007
>>
Cuadro 10.6
Un código un poquito más sofisticado, para mejorar la elección de , y el resultado que consigue, se listan en el
cuadro 10.7.
i
m
1 1
minimizar f .x/ D ri2 .x/ D kr.x/k22 :
x2R n 2 2
iD1
Si la función es continua y tiene derivadas parciales hasta segundo orden continuas, el método se basa en el modelo
de f .x/ del desarrollo de Taylor hasta segundo orden de derivadas, es decir, en
1
f .x C p/ D f .x/ C rf .x/T p C pT r 2 f .x/ p C O kpk3 :
2
En esta última expresión,
T
@f .x/ @f .x/ @f .x/
rf .x/ D ::: ;
@x1 @x2 @xn
232 j Capítulo 10. Mínimos cuadrados no lineales
function [x k] = LevenbergMarquardt_2
global h
eta1=sqrt(eps); eta2=eta1; x=[10;1;1]; n = length(x); k=1; h=eta1;
f = fx(x); J = derf(x);
A = J’*J; g = J’*f; ng = norm(g,inf);
F = (f’*f)/2; mu = eta1 * max(diag(A)); nu = 2; stop = 0;
function f=fx(x)
f = zeros(12,1);
while ~stop
f(1) = x(1)/(1+x(2)*exp(x(3)))-5.308;
if ng <= eta2, stop = 1;
f(2) = x(1)/(1+x(2)*exp(2*x(3)))-7.24;
else
f(3) = x(1)/(1+x(2)*exp(3*x(3)))-9.638;
p = (A + mu*eye(n))\-g; np = norm(p,inf);
f(4) = x(1)/(1+x(2)*exp(4*x(3)))-12.866;
nx = eta2 + norm(x,inf);
f(5) = x(1)/(1+x(2)*exp(5*x(3)))-17.069;
if np <= eta2*nx, stop = 2; end
f(6) = x(1)/(1+x(2)*exp(6*x(3)))-23.192;
end
f(7) = x(1)/(1+x(2)*exp(7*x(3)))-31.443;
if ~stop
f(8) = x(1)/(1+x(2)*exp(8*x(3)))-38.558;
xnew = x + p;
f(9) = x(1)/(1+x(2)*exp(9*x(3)))-50.156;
fn = fx(xnew); Jn = derf(xnew);
f(10) = x(1)/(1+x(2)*exp(10*x(3)))-62.948;
Fn = (fn’*fn)/2;
f(11) = x(1)/(1+x(2)*exp(11*x(3)))-75.995;
dL = (p’*(mu*p - g))/2; dF = F - Fn;
f(12) = x(1)/(1+x(2)*exp(12*x(3)))-91.972;
if dL > 0 && dF > 0 % Se adapta x y mu
end
x = xnew; F = Fn; J = Jn; f = fn;
A = J’*J; g = J’*f; ng = norm(g,inf);
function J=derf(x)
mu = mu * max(1/3, 1-(2*dF/dL-1)^3);% Fórmula adapt. mu
global h
nu = 2;
J =zeros(12,3);
else
J(1:12,1)=(fx([x(1)+h;x(2);x(3)])-fx([x(1)-h;x(2);x(3)]))/2/h;
mu = mu*nu; nu = 2*nu;
J(1:12,2)=(fx([x(1);x(2)+h;x(3)])-fx([x(1);x(2)-h;x(3)]))/2/h;
end
J(1:12,3)=(fx([x(1);x(2);x(3)+h])-fx([x(1);x(2);x(3)-h]))/2/h;
k = k + 1;
end
dnor=norm(p,inf)/norm(x,inf);
fprintf(’%3.0f %12.5e %12.5e %12.5e %12.5e’...
’%12.5e %12.5e\n’,k,x,Fn,mu,dnor);
end
end
end
>> [X]=LevenbergMarquardt_2
2 1.00000e+001 1.00000e+000 1.00000e+000 6.09210e+007 3.20327e-007 3.21187e+002
3 1.00000e+001 1.00000e+000 1.00000e+000 6.05210e+007 1.28131e-006 3.20139e+002
4 1.00000e+001 1.00000e+000 1.00000e+000 5.82011e+007 1.02505e-005 3.13992e+002
. . .
45 1.96186e+002 4.90916e+001 -3.13570e-001 1.29364e+000 5.67150e-005 1.27412e-006
46 1.96186e+002 4.90916e+001 -3.13570e-001 1.29364e+000 4.53720e-004 1.25034e-006
47 1.96186e+002 4.90916e+001 -3.13570e-001 1.29364e+000 7.25951e-003 1.06488e-006
48 1.96186e+002 4.90916e+001 -3.13570e-001 1.29364e+000 2.32304e-001 3.00599e-007
X =
1.0e+002 *
1.961862713737317
0.490916428999001
-0.003135697293093
Cuadro 10.7
es el vector gradiente, y
2 3
@2 f .x/ @2 f .x/ @2 f .x/
6 @2 x1
6 @x1 @x2 @x1 @xn 77
6 7
6 @2 f .x/ 2
@ f .x/ @ f .x/ 7
2
6 7
2 6 7
r f .x/ D 6 @x2 @x1 2
@ x2 @x2 @xn 7
6 :: :: :: :: 7
6 : 7
6 : : : 7
6 7
4 @2 f .x/ 2
@ f .x/ @ f .x/ 5
2
@xn @x1 @xn @x2 @2 xn
la matriz Hessiana: La matriz Jacobiana del vector gradiente. En el caso de la función f .x/ D 21 kr.x/k22 ,
m
X
rf .x/ D rj .x/rrj .x/ D J .x/T r.x/;
j D1
m
X m
X
r 2f .x/ D rrj .x/rrj .x/T C rj .x/r 2 rj .x/
j D1 j D1
10.3 Resolución numérica del problema j 233
m
X
D J .x/T J .x/ C rj .x/r 2 rj .x/:
j D1
La condición necesaria de óptimo, rf .x / D 0, despreciando el término O kpk3 , conduce a un sistema lineal,
Ax D b, en este caso
rf .x/ C r 2 f .x/p D 0
El método de Gauss-Newton se puede ver como una modificación del de Newton con la simplificación r 2 f .x/
J T J y rf .x/ D J T r.x/:
Resolver por Newton el ajuste no lineal de e x1 Ctx2 , de antes, sería tan fácil como indica el cuadro 10.8. En él también
se recoge la function que calcula los datos de la función, el gradiente de ésta y la matriz Hessiana.
function LSQ_New_1(fx,x)
% Mínimos cuadrados Newton
tol=sqrt(eps); p=ones(2,1); [f grad Hess] = fx(x);
while abs(grad’*p)>tol
p=-Hess\grad; x=x+p;
[f grad Hess] = fx(x);
fprintf(’ %15.10e %15.10e %15.10e\n’,x,f);
end
end
function [f g H] = Newt_Ls(x)
f=(exp(x(1)-2*x(2))-0.5)^2+(exp(x(1)-x(2))-1.0)^2+(exp(x(1))-2.0)^2+(exp(x(1)+x(2))-4.0)^2;
g = [2*(exp(x(1)-2*x(2))-0.5)*exp(x(1)-2*x(2))+2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+...
2*(exp(x(1))-2)*exp(x(1))+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2));...
-4*(exp(x(1)-2*x(2))-0.5)*exp(x(1)-2*x(2))-2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+...
2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2))];
H=[2*exp(x(1)-2*x(2))^2+2*(exp(x(1)-2*x(2))-1/2)*exp(x(1)-2*x(2))+2*exp(x(1)-x(2))^2+...
2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+2*exp(x(1))^2+2*(exp(x(1))-2)*exp(x(1))+...
2*exp(x(1)+x(2))^2+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2)), ... % Coeficiente (1,1)
-4*exp(x(1)-2*x(2))^2-4*(exp(x(1)-2*x(2))-1/2)*exp(x(1)-2*x(2))-2*exp(x(1)-x(2))^2-...
2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+2*exp(x(1)+x(2))^2+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2)); %Coef (1,2)
-4*exp(x(1)-2*x(2))^2-4*(exp(x(1)-2*x(2))-1/2)*exp(x(1)-2*x(2))-2*exp(x(1)-x(2))^2-...
2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+2*exp(x(1)+x(2))^2+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2)),... %Coef (2,1)
8*exp(x(1)-2*x(2))^2+8*(exp(x(1)-2*x(2))-1/2)*exp(x(1)-2*x(2))+2*exp(x(1)-x(2))^2+ ...
2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+2*exp(x(1)+x(2))^2+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2))]; %Coef (2,1)
end
>> LSQ_New_1(@Newt_Ls,[1;1])
8.1564455682e-001 8.6820863544e-001 2.0026578055e+000
7.3026817718e-001 7.4718705926e-001 1.5293213074e-001
6.9788477856e-001 6.9905288119e-001 1.9358782157e-003
6.9322068406e-001 6.9323478800e-001 4.3977229201e-007
6.9314719772e-001 6.9314720089e-001 2.3813689172e-014
Cuadro 10.8
Como se puede observar, la complicación de obtener la matriz Hessiana es muy considerable. Pero su cálculo se puede
llevar a cabo por diferencias finitas como se explicita en el cuadro 10.9. Para casos relativamente accesibles como el de
este ejemplo, se puede, con precaución, actuar como lo que se indica en el cuadro 10.10.
Por último, usando la potencia del cálculo simbólico de M ATLAB se puede conseguir algo como lo que se aprecia
en el cuadro 10.11. En él se incluye una sesión trivial para poner en evidencia sus prestaciones. Esta última es una
234 j Capítulo 10. Mínimos cuadrados no lineales
function [f g H] = Newt_Ls_1(x)
global h
f=(exp(x(1)-2*x(2))-0.5)^2+(exp(x(1)-x(2))-1.0)^2+(exp(x(1))-2.0)^2+(exp(x(1)+x(2))-4.0)^2;
if nargout<2, return, end
g = [2*(exp(x(1)-2*x(2))-0.5)*exp(x(1)-2*x(2))+2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+...
2*(exp(x(1))-2)*exp(x(1))+2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2));...
-4*(exp(x(1)-2*x(2))-0.5)*exp(x(1)-2*x(2))-2*(exp(x(1)-x(2))-1)*exp(x(1)-x(2))+...
2*(exp(x(1)+x(2))-4)*exp(x(1)+x(2))];
if nargout<3, return, end
x1=[x(1)+h;x(2)]; [f1 g1]=Newt_Ls_1(x1); H(1:2,1)=(g1-g)/h;
x1=[x(1);x(2)+h]; [f1 g1]=Newt_Ls_1(x1); H(1:2,2)=(g1-g)/h;
end
Cuadro 10.9
Cuadro 10.10
Cuadro 10.11
10.3 Resolución numérica del problema j 235
aproximación un poco grosera, pero seguro que se puede estructurar un programa mucho mejor para sacar partido de las
posibilidades del método en si y del concurso de M ATLAB al respecto.
Contenido
11.1 Principios teóricos y algunas propiedades de los valores y vectores propios . . . . . . . . . . . . . 239
11.1.1 Valores propios de matrices destacadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
11.1.2 Triangularización de Schur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
11.2 Localización de valores propios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
11.3 Obtención numérica de los valores y vectores propios . . . . . . . . . . . . . . . . . . . . . . . . . 245
11.3.1 Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
11.3.2 Método de la iteración de la potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
11.3.3 Método de la iteración inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
11.3.4 Iteración mediante cociente de Rayleigh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
11.3.5 Deflación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
11.3.6 Iteración simultánea o de subespacio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.3.7 Iteración QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
11.3.8 Iteración QR con desplazamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
11.3.9 Subespacios de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
11.3.10 Comparación de los métodos presentados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
11.4 Cálculo de los valores singulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
11.4.1 Algoritmo de Golub y Reinsch. Primera fase: Bidiagonalización . . . . . . . . . . . . . . . . 265
11.4.2 Algoritmo de Golub y Reinsch. Segunda fase . . . . . . . . . . . . . . . . . . . . . . . . . . 265
11.4.3 Algoritmo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
A PARTE de que su conocimiento y estudio en muchas partes de las matemáticas es esencial, los valores y vectores
propios adquieren día a día una relevancia destacada para analizar asuntos de la vida cotidiana en los que están
presentes fenómenos como las oscilaciones y la resonancia. Su conocimiento es básico en:
Sistemas eléctricos de corriente alterna.
Modos de vibración natural de estructuras.
Instrumentos musicales.
Mecánica cuántica.
Lasers.
Resonancia Magnética Nuclear (NMR), etc.
238 j Capítulo 11. Valores y vectores propios. Valores singulares
Su cálculo e interpretación es esencial para muchas situaciones prácticas cotidianas, en especial para el análisis de
sistemas de generación, transporte y demanda de energía eléctrica a los que nos referimos recurrentemente en este libro
por ser el banco de pruebas más propicio para el autor de todos los algoritmos e ideas expuestos en él.
Simulation Models for System Components, Machines, Controllers and Control Units
Uno de los casos históricos en los que la errónea consideración de la importancia de los valores propios dio lugar a
una importante catástrofe se puede consultar en:
Hundimiento del Puente Tacoma 1, Washington, EE.UU.
Hundimiento del Puente Tacoma 2, Washington, EE.UU.
No obstante, la superación de los mismos ha dado lugar en la situación actual a esta maravilla de la ingeniería y la
técnica:
11.1 Principios teóricos y algunas propiedades de los valores y vectores propios j 239
El escalar es un valor propio de A y x su correspondiente vector propio. Siempre existen n valores propios de
A 2 Cnn , reales o complejos. No siempre existen n vectores propios.
Para que exista una solución distinta de la trivial x D 0 el valor propio deberá ser raíz del polinomio característico
de grado n asociado a A, es decir,
det.A I/ D 0:
Lo que es igual a n g1 n 1 C g2 n 2 C . 1/n gn D 0:
Igual que cualquier matriz tiene asociado un polinomio característico, cualquier polinomio tiene asociado una matriz
compañera. La matriz compañera de un polinomio mónico p.t/ D c0 C c1 t C C cn 1 t n 1 C t n es
2 3
0 0 ::: 0 c0
61 0 ::: 0 c1 7
6 7
6 7
C .p/ D 60 1 ::: 0 c2 7:
6 :: :: :: :: :: 7
4: : : : : 5
0 0 ::: 1 cn 1
Los valores propios de esta matriz C .p/ son las raíces del polinomio p.t/.
El polinomio mínimo q.t/ de la matriz A es el polinomio mónico único de grado mínimo tal que q.A/ D 0. Los
vectores propios de A pertenecen al subespacio nulo de Ax I, ker.Ax I/, y no están unívocamente determinados:
Si v es un vector propio, ˛v también lo es.
La multiplicidad algebraica del valor propio de A es la multiplicidad de la raíz correspondiente del polinomio ca-
racterístico asociado a A. La multiplicidad geométrica de es el número de vectores propios linealmente independientes
que se corresponden con .
Teorema 11.1 La multiplicidad geométrica de un valor propio es menor o igual que su multiplicidad algebraica.
Por ejemplo, si A D I, D 1 es un valor propio con multiplicidad algebraica y geométrica n. El polinomio caracte-
rístico de A es p.z/ D .z 1/n y ei 2 Cn , i D 1; : : : ; n, sus vectores propios.
Si el valor propio tiene una multiplicidad geométrica menor que la algebraica, se dice defectuoso. Se dice que una
matriz es defectuosa si tiene al menos un valor propio defectuoso. Si una matriz A 2 Cnn no es defectuosa dispone de
n vectores propios linealmente independientes. La matriz
2 3
210
A D 40 2 15
002
tiene un valor propio de multiplicidad algebraica 3 y multiplicidad geométrica 1. En el cuadro 11.1 se ve a través de una
sesión de M ATLAB.
Si V 2 Cnn tiene como vectores columna los n vectores propios de A y D D diag.1 ; : : : ; n /, entonces Avi D
i vi , i D 1; : : : ; n, es equivalente a AV D V D. Si A no es defectuosa,
1
A D V DV
1 Transformación lineal u aplicación lineal de un espacio vectorial V en si mismo. Ej. la ecuación de Schrödinger H E DE E.
7KXV IRU ODUJH k D VFDODU PXOWLSOH RI Ak [ GHWHUPLQHV DOPRVW WKH VDPH GLUHFWLRQ DV WKH
HLJHQYHFWRU c1 Y1 6LQFH SRVLWLYH VFDODU PXOWLSOHV GR QRW FKDQJH WKH GLUHFWLRQ RI D YHFWRU
Ak [ LWVHOI SRLQWV DOPRVW LQ WKH VDPH GLUHFWLRQ DV Y1 RU Y1 SURYLGHG c1 ¤ 0
1:8 :8 4
240 j Capítulo 11. Valores y vectores propios. Valores singulares
:5
&9".1-& /HW A D Y1 D DQG [ D 7KHQ A KDV
:2 1:2 1 1
HLJHQYDOXHV DQG DQG WKH HLJHQVSDFH
>> A=[2 1 0;0 IRU D 2 LV WKH OLQH WKURXJK DQG Y1 )RU
2 1;0012];
k
k D 0; : : : ; 8 FRPSXWH A [ DQG VFRQVWUXFW
= WKH OLQH WKURXJK DQG Ak [ :KDW KDSSHQV DV
>> [V D]=eig(A)
Teorema
5"#-& 11.3
Dos matrices PG
*UFSBUFT semejantes
B 7FDUPStienen el mismo polinomio característico y, por consiguiente, los mismos
valores propios.
k
Definición
11.3 Elespectro
de esel conjunto
A,ƒ.A/, de sus valores
propios:
k :5 :1 :7 2:3 5:5 11:9 24:7 50:3 101:5
A [ ƒ.A/ D f 2 C W det.A I/ D 0g:
1 1:1 1:3 1:7 2:5 4:1 7:3 13:7 26:5
Definición 11.4 El radio espectral, .A/, de la matriz A es el valor máximo de los módulos de sus valores propios:
.A/ D max.i 2ƒ.A/ ji j:
Es el radio 4
7KHdelYHFWRUV
menor círculo
[ Adel
[; plano
:::;A [ DUHcentrado
complejo VKRZQenLQel )LJ
origen que7KH
contiene todosYHFWRUV
RWKHU sus valores
DUHpropios.
JURZLQJ
WRR
Al ORQJ WRa GLVSOD\
aplicársele +RZHYHU
cualquier vector OLQH VHJPHQWV
la transformación DUH GUDZQ
que representa A, ese VKRZLQJ WKH
vector tiende GLUHFWLRQV
a orientarse haciaRIlaWKRVH
dirección
delYHFWRUV
vector propio dominante de A. Si ese vector está en la dirección de alguno de los vectores
,Q IDFW WKH GLUHFWLRQV RI WKH YHFWRUV DUH ZKDW ZH UHDOO\ ZDQW WR VHH QRW WKH YHF propios de A, se expande
o contrae por un factor que determina el correspondiente valor propio.
WRUV WKHPVHOYHV 7KH OLQHV VHHPWR EH DSSURDFKLQJ WKH OLQH UHSUHVHQWLQJ WKH HLJHQVSDFH
Ejemplo
VSDQQHG 11.1 E\
Estudiemos
Y1 0RUH la matriz A D 1;8 WKH0;8 cuyosEHWZHHQ
valores propios son 1VXEVSDFH
D 2 y 2 D 1. El vector propio
4 SUHFLVHO\ 0;2 1;2DQJOH WKH OLQH 0;5 GHWHUPLQHG E\
correspondiente
Ak [ DQG WKH a OLQH 1 . Si se multiplica
1 es HLJHQVSDFH A y sus potencias
GHWHUPLQHG E\ Y1 JRHV ]HURxDVDk !1 1el resultado es el de la
por elWRvector
figura 11.1.
x2
A4 x
Ax A3x
A2 x Espacio de v1
x 1 v1
x1
1 4 10
Figura 11.1: Efecto de multiplicar una matriz A de vector propio dominante v1 , y sus potencias, por un vector x
'*(63& 'LUHFWLRQV GHWHUPLQHG E\ [ A[ A2 [; : : : ; A7 [
10 1 0 1;5 0;5
Ejemplo 11.2 Otros ejemplos. Si A D , 1 D 1; x1 D ; 2 D 2 y x2 D : Si A D ,
02 0 1 0;5 1;5
1 1 01 1 i
1 D 2; x1 D ; 2 D 1 y x2 D : Si A D , 1 D i; x1 D ; 2 D i y x2 D , donde
1 1 10 i 1
p
iD 1.
Teorema 11.6 Los valores propios de una matriz triangular son los coeficientes de su diagonal principal.
Teorema 11.7 Una matriz es singular si y sólo si tiene un valor propio igual a 0.
Teorema 11.8 Si los valores propios de una matriz A son i , 1 i n, los de A ˛I son i ˛; 1 i n. Sus
vectores propios son idénticos.
Teorema 11.9 Los valores propios de las potencias de A son las potencias de los de A; los vectores propios son los
mismos.
Demostración. Si consideramos la definición,
Ax D xI A 2 x D Ax D 2 xI A n x D n x
S 1
AS D ƒI S 1
ASS 1
AS D ƒ2 ) S 1
A 2 S D ƒ2 :
1 1 1 1
Las potencias negativas también, Ax D xI A Ax D A x ) A xD x:
det.A I/ D 2 2 C .1 2 / D 2 2 C 1I
QQT D I:
242 j Capítulo 11. Valores y vectores propios. Valores singulares
A D AH :
2
R
R
En una matriz hermítica los vectores propios correspondientes a dos valores propios distintos son ortogonales
entre sí. En efecto,
)
Ax1 D 1 x1 x2H A H x1 D 1 x2H x1
.1 2 /x2H x1 D 0:
Ax2 D 2 x2 x2H A H x1 D 2 x2H x1
x2H x1 D 0:
Si los vectores propios se normalizan, x H x D 1, la matriz de vectores propios se convierte en una matriz
ortogonal.
Unitarias Son matrices cuya inversa es su compleja conjugada:
U H U D U U H D I:
La matriz " p p #
i p2=2 p 2=2
2=2 i 2=2
es unitaria.
Las matrices unitarias son una extensión de las matrices ortogonales al campo complejo. Todos los valores
propios tienen módulo unidad.
Una matriz unitaria no modifica ni los ángulos ni las normas:
.U x/H .U y/ D x H U H U y D x H y
si y D x; jjU xjj2 D jjxjj2 :
Schur
Teorema 11.11 Triangularización de Schur. Para cualquier A 2 Cnn existe una matriz unitaria U y una triangular
superior T tales que
U H AU D T :
Los valores propios de A son entonces los coeficientes de la diagonal principal de T .
Teorema 11.12 Para cualquier matriz hermítica A 2 Cnn existe una unitaria U tal que
U H AU D D;
donde D es una matriz diagonal. Además, los valores propios de A son números reales y se pueden obtener vectores
propios de A que sean ortonormales.
Corolario 11.13 Si A 2 Rnn es simétrica, existe una matriz ortogonal Q y una diagonal D tales que QT AQ D D.
Teorema 11.14 Los valores propios de una matriz hermítica definida positiva son todos positivos. Recíprocamente, si
todos los valores propios de una matriz son positivos, debe ser definida positiva.
Teorema 11.15 Forma canónica de Jordan. Para una matriz A 2 Cnn existe una matriz T regular tal que
2J 3
1
6 0 7
T 1 AT D J D 6 4
::
:
7;
5
0
Jn
donde 2 3
i 1
6 i 1 0 7
Ji D 64 7 5
0 1
i
es una matriz de Jordan y los i son los valores propios de A.
La matriz de Jordan lleva ese nombre por Marie Ennemond Camille Jordan, Francia, 1838-1922.
Jordan
Para el cálculo numérico de valores y vectores propios las transformaciones por semejanza juegan un papel esencial.
La tabla del cuadro 11.2 resume las posibles transformaciones por semejanza.
244 j Capítulo 11. Valores y vectores propios. Valores singulares
A T BDT 1 AT
Cuadro 11.2
Gers̆gorin
Teorema 11.16 Gers̆gorin. Los valores propios de una matriz A 2 Cnn se encuentran en la unión de los n discos de
Gershgorin, cada uno de los cuales está centrado en akk , k D 1; : : : ; n, y tiene de radio
Xn
rk D jakj j
j D1
j ¤k
Demostración. Sea un valor propio de A y x su vector propio asociado. De Ax D x y .I A/x D 0 se tiene que
n
X
. akk /xk D akj xj ; k D 1; : : : ; n;
j D1
j ¤k
El programa de M ATLAB del cuadro 11.3 calcula los círculos o discos de Gershgorin y los dibuja.
246 j Capítulo 11. Valores y vectores propios. Valores singulares
gersh(gallery(’lesp’,12)) gersh(gallery(’hanowa’,10))
20
5
10
0 0
−10
−5
−20
−40 −30 −20 −10 0 −5 0 5
gersh(gallery(’ipjfact’,6,1)) gersh(gallery(’smoke’,16,1))
0.5
2
0 0
−1
−2
−0.5
−0.2 0 0.2 0.4 0.6 0.8 −2 −1 0 1 2
Figura 11.2
Utiliza transformaciones por semejanza basadas en rotaciones, idénticas a las de Givens, para hacer cero pares de
elementos simétricamente dispuestos respecto a la diagonal principal.
Partiendo de A0 D A, cada iteración conforma una transformación
AkC1 D J Tk Ak J k ;
c s
donde cada matriz J k D se calcula de tal manera que
sc
2 3
c 2 app 2csapq C s 2 aqq apq .c 2 s 2 / C cs.app aqq /
c s app apq c s 6 7
D4 5
s c apq aqq sc
apq .c 2 s 2 / C cs.app aqq / c 2 aqq C 2csapq C s 2 app
sea diagonal. Para lograrlo, apq .c 2 s 2 / C cs.app aqq / ha de ser cero. Haciendo
aqq app
D y t D s=c; tangente del ángulo de rotación,
2apq
se obtiene la ecuación de segundo grado
t 2 C 2 t 1 D 0:
De las dos posibles raíces, p
tD ˙ 1 C 2;
p
se escoge la más pequeña para que jj =4. Luego se obtienen c D 1= 1 C t 2 y s D c t. En M ATLAB todo esto
puede codificarse como lista el cuadro 11.4.
Mediante unos “barridos”, que apliquen sistemáticamente estas transformaciones a todos los coeficientes que no estén
en la diagonal principal de la matriz que tengan un valor mayor que una tolerancia, se conseguirá ir convirtiendo la
matriz en una diagonal.
La convergencia del proceso es cuadrática. El proceso termina cuando
qX X n n
2
off .A/ D aij > tol kAkF :
iD1 j D1
j ¤i
11.3 Obtención numérica de los valores y vectores propios j 247
function J=Jac_Rot(A,b,d)
% Cálculo de la rotación de Jacobi para anular un coef. de A de coordenadas (b,d)
if A(b,d)~=0
tau=(A(d,d)-A(b,b))/2/A(b,d);
if tau>=0
t=1/(tau+sqrt(1+tau^2));
else t=-1/(-tau+sqrt(1+tau^2)); end
c=1/sqrt(1+t^2);
s=c*t;
else
c=1; s=0;
end
J=[c s; -s c]; % Igual que Givens
end
Cuadro 11.4
y luego
2 3
3;388 0;0733 0
A4 D J T3 A3 J 3 D 4 0;0733 1;780 0;0051 5 :
0 0;0051 1;167
El proceso continuaría hasta llegar a conseguir una aproximación a los valores propios deseados.
El código de M ATLAB programado para poder calcular una rotación de Jacobi 2 2 y aplicarla luego a la matriz
original completa, pre y post multiplicándola, es el del cuadro 11.5.
function J=jacrot(A,i,j)
% Transf. de Jacobi del coeficiente (i,j) y (j,i) de A
n=length(A);
J1=Jac_Rot(A,i,j); J=eye(n); % Calcula qué rotación 2x2 elemental aplicar
J([i j],[i j])=J1([1 2],[1 2]); % Se adapta a la propia A
end
function J=Jac_Rot(A,b,d)
% Cálculo de rotación de Jacobi 2x2 en la matriz A.
if A(b,d)~=0
tau=(A(d,d)-A(b,b))/2/A(b,d);
if tau>=0
t=1/(tau+sqrt(1+tau^2));
else t=-1/(-tau+sqrt(1+tau^2)); end
c=1/sqrt(1+t^2);
s=c*t;
else
c=1; s=0;
end
J=[c s; -s c]; % Igual que Givens
end
Cuadro 11.5
Hagamos ahora a mano, con la ayuda de M ATLAB, un ejercicio con una matriz simétrica aleatoria 44, y comprobemos
cómo evolucionan las distintas rotaciones de Jacobi. El resultado completo se puede ver en el cuadro 11.6. Conjuntando
todo lo expuesto en un programa de M ATLAB para realizar el proceso de Jacobi se llega al cuadro 11.7 de la página 250.
Probándolo con el ejemplo que hemos hecho paso a paso se obtiene lo del cuadro 11.8. Una sesión de M ATLAB con la
matriz de la sesión interactiva anterior hecha a mano es la que muestra el cuadro 11.9.
La magnitud jjyk 1 jj1 converge al valor propio dominante, 1 , y el vector xi lo hace al vector propio dominante, v1 .
La convergencia de este método está ligada a j2 =1 j : a menor valor mejor convergencia.
Ejemplo 11.5 Partiendo de x0T D Œ0; 1, calculemos el valor propio dominante de
1;5 0;5
:
0;5 1;5
Utilicemos una pequeña sesión de M ATLAB como la del cuadro 11.10 de la página 251. Los resultados y el comporta-
miento gráfico de las iteraciones se ven en ese cuadro. El punto inicial
11.3 Obtención numérica de los valores y vectores propios j 249
Cuadro 11.6
0 1 1
x0 D D1 C1
1 1 1
es una combinación lineal de los dos vectores propios v1 y v2 . La multiplicación sucesiva por A causa que el coeficiente
en el primer vector propio sea el que domine, por lo que la sucesión converge a ese vector propio.
El método de la iteración de la potencia puede fallar por diversas razones:
Porque haya más de un valor propio con el mismo módulo, en cuyo caso las iteraciones puede que converjan a una
combinación lineal de los correspondientes vectores propios. Este caso es bastante habitual pues esos dos valores
propios pueden ser un par complejo conjugado.
Porque el vector de partida puede que tenga coeficiente cero en el valor propio dominante. El error de redondeo en
la práctica puede que introduzca un pequeño valor, por lo que este peligro rara vez ocurre.
Porque para una matriz real y un punto de partida también real, puede que nunca se converja a un vector complejo.
Un código de M ATLAB para llevar a cabo el método de la potencia puede ser el del cuadro 11.11. Su utilización en
una sesión de M ATLAB para la matriz A de antes se adjunta en ese mismo cuadro.
function [V D it]=Jacobi_val_12_2(A)
% Cálculo por Jacobi de valores y vectores propios de una MATRIZ SIMÉTRICA A
tol=sqrt(eps)*norm(A,’fro’); D=A; n=length(A); V=eye(n);
[m1 p]=max(triu(abs(D),1)); % En (p,q) elemento mayor valor no en diagonal
[~, q]=max(m1); % Posición fila máximo valor no cero en L(A)
p=p(q); it=0; % Posición columna máximo anterior
while off(D)>tol % Procesos iterativo; necesita rutina off
J=Jac_Rot(D,p,q); % Se hacen cero Dpq y Dqp (p debe ser < q)
D([p q],:)=J’*D([p q],:);
D(:,[p q])=D(:,[p q])*J;
V(:,[p q])=V(:,[p q])*J;
[m1 p]=max(triu(abs(D),1));
[~, q]=max(m1);
p=p(q);
it=it+1;
end
[D I]=sort(diag(D)); V=V(:,I);
end
function a=off(A)
% Calcula off de la matriz cuadrada A: raiz cuadrada de la suma
% de los cuadrados de los coeficientes de A no en la
% diagonal principal; también sqrt(sum(sum(triu(a.^2,1)))).
n=length(A); a=0;
for k=1:n-1
a=a+sum(A(k,k+1:n).^2);
end
a=sqrt(a);
end
Cuadro 11.7
Cuadro 11.8
>> [v d it]=Jacobi_val_12_2(A)
v = >> [v d]=eig(A)
-0.3673 0.3703 -0.6272 0.5785 v =
0.9032 0.1289 -0.0831 0.4009 0.3673 -0.3703 0.6272 0.5785
-0.1590 -0.7022 0.2688 0.6399 -0.9032 -0.1289 0.0831 0.4009
-0.1549 0.5944 0.7263 0.3086 0.1590 0.7022 -0.2688 0.6399
d = 0.1549 -0.5944 -0.7263 0.3086
-0.2134 d =
0.1238 -0.2134 0 0 0
0.9569 0 0.1238 0 0
4.2346 0 0 0.9569 0
it = 0 0 0 4.2346
16 >> A*v-v*d
>> A*v-v*diag(d) ans =
ans = 1.0e-014 *
1.0e-010 * -0.0222 -0.0444 -0.0333 -0.0444
-0.0096 0.3780 0.0061 0.2292 -0.0056 0.0097 -0.0305 -0.0444
-0.0034 0.2318 0.0042 0.0812 -0.0479 0.0180 -0.0444 -0.1332
0.0183 0.4117 0.0067 -0.4444 -0.0069 -0.0083 -0.0111 0
-0.0155 0.2006 0.0032 0.3862
Cuadro 11.9
Geometric Interpretation
11.3 Obtención numérica de los valores y vectores propios j 251
En el ejemplo que estamos utilizando, si se hace D 1, la relación anterior se hace cero y el método converge en una
iteración. (Desafortunadamente, no siempre se puede escoger un desplazamiento tan bueno.)
>> x=[0;1];
A=[1.5 0.5;0.5 1.5];
for i=1:6
v=A\x, m=max(abs(v)), x=v/m k xkT jjyk jj1
end
v =-0.2500 0 0,000 1,0
0.7500 1 -0,333 1,0 0,750
m = 0.7500
x =-0.3333
2 -0,600 1,0 0,833
1.0000 3 -0,778 1,0 0,900
. . . 4 -0,882 1,0 0,944
v =
-0.9545 5 -0,939 1,0 0,971
0.9848 6 -0,969 1,0 0,985
m = 0.9848
x =-0.9692
1.0000
Cuadro 11.12
Cuadro 11.13
Este procedimiento debe su nombre a John William Strutt, Lord Rayleigh, Reino Unido, 1842-1919.
Rayleigh
Dada una matriz A 2 Rnn y uno de sus vectores propios, x, la mejor estimación del correspondiente valor propio
se puede considerar un problema de mínimos cuadrados n 1 como lo es encontrar un que resuelva x Ax. De
sus ecuaciones normales, x Tx D x TAx, la solución que se obtiene es
x TAx
D :
x Tx
11.3 Obtención numérica de los valores y vectores propios j 253
El cociente de Rayleigh puede utilizarse como desplazamiento para acelerar la convergencia de los métodos iterativos
que hemos visto.
El algoritmo de la iteración inversa con cociente de Rayleigh quedaría así.
0;5
Ejemplo 11.6 El método de la iteración de potencia con cociente de Rayleigh aplicado paso a paso a la matriz 1;5
0;5 1;5
obtiene los resultados del cuadro 11.14. El código correspondiente en M ATLAB y las instrucciones para ejecutarlo con
este problema se pueden ver en el cuadro 11.15.
Cuadro 11.14
Cuadro 11.15
11.3.5 Deflación
Su idea: calculados un valor y un vector propios, obtener otros por deflación. Es decir, como cuando una vez conocida
una de las raíces, x1 , de un polinomio de grado n éste se divide por x x1 obteniéndose otro de grado n 1.
Si x es el vector propio asociado al valor propio dominante de A, 1 , y H es una matriz de Householder, tal que
H x D ˛e1 , la transformación de semejanza que define consigue transformar A así
1 bT
A1 D H AH 1 D ;
0 A2
254 j Capítulo 11. Valores y vectores propios. Valores singulares
donde A2 es una matriz de orden n 1 cuyos valores propios son 2 ; : : : ; n , los restantes de A. Luego, trabajando con
A2 y calculado 2 , si y2 es un vector propio asociado, el vector
1 ˛ bT y2
x2 D H ; donde ˛ D ;
y2 2 1
function u = Housv(x)
% Transformación de Householder del vector x.
m = max(abs(x));
u = x/m;
function [l2 v2 B] = defl_1(A, v1) if u(1) == 0, su = 1; else su = sign(u(1)); end
% B resulta de A por deflación de vec. propio v1. u(1) = u(1)+su*norm(u);
% Calcula el valor propio l2 y vec. propio v2. u = u/norm(u);
n = length(A); u = u(:);
v1 = Housv(v1); end
C = Houspre(v1,A);
B = zeros(n,n); function P = Houspre(u, A)
for i=1:n % Producto P = H*A, donde H is una transformación de Householder
B(:,i)=Housmvp(v1,C(i,:)); % definida por el vector u.
end n = length(A);
l1 = B(1,1); v = u/norm(u); v = v(:);
b = B(1,2:n); P = zeros(n,n);
B = B(2:n,2:n); for j=1:n
[l2 y] = ItInvRayleigh_2(B); aj = A(:,j);
if l1~=l2 P(:,j)=aj-2*(v’*aj)*v;
a = b*y/(l2-l1); end
v2 = Housmvp(v1,[a;y]); end
else
v2 = v1; function p = Housmvp(u, x)
end % Producto p = H*x, donde H es la transformación de Householder
end % definida por u.
u = u(:); x = x(:);
v = u/norm(u);
p = x - 2*(v’*x)*v;
end
Cuadro 11.16
Cuadro 11.17
11.3 Obtención numérica de los valores y vectores propios j 255
X 0 D matriz n p de rango p
for k D 1, 2, : : :
X k D AX k 1
end
La Im A k x1 A k x2 : : : A k xp converge al subespacio invariante de los vectores propios de A correspondien-
tes a sus p mayores valores propios: j1 j > jp j > jpC1 j jpC2 j: La velocidad de convergencia es O.pC1 =p /.
Para optimizar prestaciones y conseguir una buena ortogonalidad se usa la factorización QR de X k , ortonormalizando
así las columnas de X k . Se obtendría una Q como base de Im.X k /.
X 0 D matriz n p de rango p
for k D 1, 2, : : :
Qk R k D X k 1
X k D AQk
end
Las iteraciones convergen a una matriz triangular, si sólo hay valores propios reales, o a una triangular en bloques 22
en la diagonal principal cuando haya valores propios complejos conjugados.
Como hemos hecho otras veces, hagamos paso a paso una sesión de M ATLAB para trabajar con una matriz simétrica
la iteración simultánea. Obtendremos algo parecido al cuadro 11.18.
A =
>> A=randn(5); A=A*A’ 20.8020 -0.0035 0.0000 0.0000 0.0000
A = -0.0035 10.6595 0.0000 0.0000 0.0000
2.8486 -2.5688 0.1741 3.5081 -0.1959 0.0000 0.0000 2.2265 0.0000 0.0000
-2.5688 2.8789 -0.3177 -4.0552 -2.2033 0.0000 -0.0000 0.0000 0.1085 0.0000
0.1741 -0.3177 2.3957 1.4227 -2.3486 -0.0000 -0.0000 0.0000 0.0000 0.0165
3.5081 -4.0552 1.4227 6.2012 2.7463 >> % Mejora; hagamos 10 más
-0.1959 -2.2033 -2.3486 2.7463 19.4886 >> for i=1:10, [Q R]=qr(A); A=R*Q; end
>> A0=A; >> A
>> % Hagamos ahora 10 iteraciones de la iteración ortogonal A =
>> for i=1:10, [Q R]=qr(A); A=R*Q; end 20.8020 -0.0000 0.0000 0.0000 0.0000
>> A -0.0000 10.6595 -0.0000 0.0000 0.0000
A = 0.0000 0.0000 2.2265 0.0000 0.0000
20.8010 -0.0997 0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 0.1085 -0.0000
-0.0997 10.6605 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 0.0000 0.0165
0.0000 0.0000 2.2265 0.0000 0.0000 >> % Comparemos todos con los de la matriz original
0.0000 -0.0000 0.0000 0.1085 0.0000 >> eig(A0)
-0.0000 -0.0000 0.0000 0.0000 0.0165 ans = 0.0165
>> % Otras 5 iteraciones más 0.1085
>> for i=1:5, [Q R]=qr(A); A=R*Q; end 2.2265
>> A 10.6595
20.8020
Cuadro 11.18
El código IterSimul del cuadro 11.19 obtiene los r valores propios máximos de una A simétrica. A su lado está una
prueba de él con un problema sintético.
11.3.7 Iteración QR
Generalizando la iteración simultánea (ortogonal) se pueden calcular todos los valores propios de A, así como los
correspondientes vectores propios.
256 j Capítulo 11. Valores y vectores propios. Valores singulares
function [i r1]=IterSimul(A,r)
>> A=rand(20); A=A*A’;
% Máximos valores propios de A (simétrica); itera. simultánea
>> [i r]=IterSimul(A,6)
% ortogonal 0.002436587767534
Valores calculados con eig()
n=length(A); if nargin<2, r=5; end 0.001713272489506
1.0e+002 *
tol=sqrt(eps); B=A; i=0; itmax=400; 0.001168137691697
1.006294230413485
Q=eye(n,r); R=eye(r); vprn=1; err=1; 0.000605614254568
0.052804894629075
while i<itmax && err>tol 0.000238729619383
0.039516583781399
vpr=vprn; 0.000012007660353
0.032191801462925
Z=A*Q; i = 44
0.031157323965477
[Q,R]=qr(Z,0); % QR reducida de n x r r =
0.026806664806072
vprn=min(diag(R)); 1.0e+002 *
0.022597606348368
i=i+1; 1.006294230413484
0.019827755676060
err=abs((vprn-vpr)/vprn); 0.052804894629054
0.013685589405813
end 0.039516583695056
0.012217263560720
format long 0.032053644988988
0.009791335827920
r1=diag(R); % fprintf(’%i Valores propios máximos:\n’,r); 0.031291616159557
0.005048187809920
disp(’Valores calculados con eig()’); 0.026806665421155
0.004282145342196
disp(-sort(eig(-B)));
0.003460064312945
end
Cuadro 11.19
Esta forma de actuar fue propuesta por John G.F. Francis, Reino Unido 1934 y Vera Kublanovskaya, Rusia 1920-2012.
family until his death. At first, Kantorovich’s group developed analytic computational tools in Prorab
for algebraic and trigonometric polynomials, for integer arithmetic and series, etc. When Vera joined,
Downloaded from http://imajna.oxfordjournals.org at Università di Bologna - Sistema Bibliotecario d'Ateneo on March 30, 2010
her task was to select and classify matrix operations that are useful in numerical linear algebra. Linear
algebra subroutines were included in Prorab much later. This experience brought Vera close to numerical
algebra and computation. In 1972 she obtained her secondary doctorate (Habilitation). More extended
biographies of Vera’s life, achievements and long and productive career are available in Golub et al.
(1990) and Konkova et al. (2003), for example.
Francis Kublanovskaya
In the Russian literature the QR algorithm was initially called the method of one-sided rotations. Vera
Kublanovskaya started to develop her version of the QR algorithm in 1958 after reading Rutishauser’s
LR algorithm paper (Rutishauser, 1958). She represented a matrix A = L · Q as the product of a lower
triangular matrix L and an orthogonal matrix Q that she suggested to compute as the product of
elementary rotations or reflections. Her eigenvalue algorithm factors A = A1 = L 1 · Q 1 , reverse
order multiplies A2 = Q 1 · L 1 and then factors A2 again as A2 = L 2 · Q 2 , etc. In 1959 she performed
numerical experiments with her LQ decomposition-based algorithm on an electromechanic ‘Mercedes’
A0 D AI U 0 D I
for k D 1, 2, : : :
Qk 1 R k 1 D Ak 1 , obtener factorización QR
Ak D R k 1 Qk 1 ; U k D U k 1 Qk 1
end
Las matrices Ak convergerán a una matriz triangular, si todos los valores propios son reales, o con bloques 22 en la
diagonal, si hay valores propios complejos. U k convergerá a los vectores propios.
Las matrices Ak son ortogonalmente semejantes a las anteriores del proceso y a A:
Es decir, todas las Ak tendrán los valores propios de A D A0 . Las columnas de Qk forman una base ortonormal del
subespacio Im.Ak /. Si A es simétrica, las iteraciones conservan la simetría y las Ak convergerán a una matriz triangular
y simétrica: diagonal. Trabajemos un poco “a mano” con el algoritmo con la ayuda de M ATLAB. Obtenemos lo que lista
el cuadro 11.21.
11.3 Obtención numérica de los valores y vectores propios j 257
D = diag([4 3 2 1]);
rand(’seed’,0); format short e
S=rand(4); S = (S - .5)*2; % Se perturba un poco
A = S*D/S % A_0 = A = S*D*S^{-1}
for i=1:6
[Q R] = qr(A); A = R*Q % Iteración QR
end
A =
4.1475e+00 -7.7246e-01 -7.3819e-01 -4.1172e+00
-4.9214e-03 3.2731e+00 -1.8990e-01 1.9440e+00
6.2706e-01 -1.9699e-01 2.2190e+00 -6.0845e-01
1.5691e-01 -4.1310e-01 -6.3508e-01 3.6039e-01
A =
3.9304e+00 -2.7682e-01 1.5214e-01 4.4847e+00
4.0097e-02 3.0595e+00 -6.9040e-01 -2.1283e+00
3.5144e-01 -3.8535e-02 2.3156e+00 -4.8346e-01
-2.7163e-02 8.4395e-02 1.9457e-01 6.9447e-01
A =
3.9287e+00 -1.6932e-01 4.1119e-01 -4.4113e+00
-1.6308e-02 3.0078e+00 -8.8862e-01 2.1571e+00
2.1041e-01 -3.4259e-02 2.2044e+00 1.0227e+00
5.9415e-03 -2.3299e-02 -8.1008e-02 8.5905e-01
A =
3.9514e+00 -1.3627e-01 4.9740e-01 4.3484e+00
-5.7605e-02 2.9981e+00 -9.6432e-01 -2.1072e+00
1.1812e-01 -2.7149e-02 2.1181e+00 -1.3251e+00
-1.4093e-03 7.1443e-03 3.8096e-02 9.3241e-01
A =
3.9696e+00 -1.1610e-01 5.3907e-01 -4.3288e+00
-7.1970e-02 2.9977e+00 -9.8790e-01 2.0192e+00
6.3115e-02 -1.8643e-02 2.0658e+00 1.4919e+00
3.4472e-04 -2.2854e-03 -1.8738e-02 9.6688e-01
A =
3.9817e+00 -9.8200e-02 5.6721e-01 4.3356e+00
-6.9838e-02 2.9984e+00 -9.9032e-01 -1.9242e+00
3.2744e-02 -1.2095e-02 2.0362e+00 -1.5816e+00
-8.5395e-05 7.4567e-04 9.3684e-03 9.8360e-01
Cuadro 11.21
Qk 1Rk 1 D Ak 1 k 1I
Ak D R k 1 Qk 1 C k 1 I:
El desplazamiento k 1 debe ser una buena aproximación de un valor propio. Los desplazamientos más usados son:
Rayleigh. El valor de ann de Ak 1 : buena aproximación a priori de n .
Wilkinson. Del bloque diagonal inferior 22 de Ak 1 (si no es diagonal), el valor propio de esa submatriz que esté
más cerca de ann .
El código de M ATLAB del cuadro 11.22 es el método de la iteración QR con desplazamiento de Rayleigh para matrices
con valores propios reales: simétricas, hermíticas, etc.
Vamos a usarlo en varios trozos de una sesión de M ATLAB con diversos tipos de matrices, más o menos controladas,
para comprobar qué nos obtiene. Utilizaremos la function de M ATLAB que obtiene los valores propios —eig()—
para contrastar el resultado obtenido y su precisión. El resultado se puede ver en el cuadro 11.23.
Hagamos ahora una sesión en M ATLAB utilizando la iteración QR para una matriz sin estructura especial generada
aleatoriamente. Se obtendrá lo del cuadro 11.24.
Cuadro 11.22
>> a=rand(20);
>> [lambda it]=IteracionQR(a’*a)
>> eig(a’*a)
lambda =
ans =
0.0010
0.0010
0.0175
>> ab=ones(5)+eye(5) 0.0175
0.1107
ab = 0.1107
0.1496
2 1 1 1 1 0.1496
0.2232
1 2 1 1 1 0.2232
0.4124
1 1 2 1 1 0.4124
0.7861
1 1 1 2 1 0.7861
0.8132
1 1 1 1 2 0.8132
0.9430
>> [lambda it]=IteracionQR(ab) 0.9430
1.2765
lambda = 1.2765
1.4153
1.0000 1.4153
1.7930
1.0000 1.7930
1.9123
1.0000 1.9123
2.2906
1.0000 2.2906
2.6955
6.0000 2.6955
2.9732
it = 2.9732
3.7114
4 3.7114
4.9037
4.9037
5.3983
5.3983
100.1106
100.1106
it =
48
Cuadro 11.23
Se usan los dos valores propios, y N , de la submatriz 22 del bloque inferior,
Qk 1Rk 1 D Ak 1 k 1I
Ak D R k 1 Qk 1 C k 1I
Qk R k D Ak N k 1 I
AkC1 D R k Qk C N k 1I
haciendo así un paso doble con desplazamiento en dos etapas. Este doble paso se puede simplificar si
M D .Ak 1 k 1 I/ .Ak 1 N k 1 I/
D .Qk 1 Qk / .R k R k 1/
D Ak2 1 sAk 1 C t I;
>> A=randn(5)
>> % Mejora, aunque no suficientemente; otras 50
A =
>> for i=1:50, [Q R]=qr(A); A=R*Q; end
0.1303 1.0169 -0.2750 0.7688 0.2815
>> A
-0.3857 0.5583 0.2378 -0.2941 1.2163
A =
-0.5498 -0.1324 0.3125 0.8049 -0.2401
-1.8095 -0.7895 -0.9613 0.3250 -0.1298
0.2869 -1.1517 -0.0024 -1.7196 -0.4955
0.0657 -1.8993 -0.1186 0.6697 -1.0556
-0.3503 0.4211 0.9847 -0.6632 -1.3721
0 -0.0000 0.7945 -1.0629 0.0612
>> A=hess(A) % VEREMOS por qué
0 0 0.6651 0.9179 0.1223
A =
0 0 0 0.0000 -0.0941
0.1303 -0.1471 1.0342 -0.5765 -0.5971
>> % Intentemos unas 50 últimas
0.8100 0.6165 -0.1303 0.5381 0.9983
>> for i=1:50, [Q R]=qr(A); A=R*Q; end
0 -1.0393 0.3560 0.3942 0.6386
>> A
0 0 1.3485 -1.9025 -0.0670
A =
0 0 0 0.4372 -1.2908
-1.8704 -0.7919 -0.1944 1.0214 -0.2176
>> A0=A;
0.0632 -1.8384 0.5215 0.3733 -1.0411
>> % Hagamos ahora 10 iteraciones de la iteración QR
0 -0.0000 0.7034 -0.7224 0.1361
>> for i=1:10, [Q R]=qr(A); A=R*Q; end
0 0 1.0056 1.0089 0.0134
>> A
0 0 0 0.0000 -0.0941
A =
-1.9640 -1.2063 -0.1339 0.3196 -0.3104
>> % Hay dos bloques 2x2 en la diagonal
0.1231 0.3343 -0.7129 1.0207 -0.4763
>> % El último parece claro que es -0.0941
0 -1.5358 -0.9798 -0.1630 -0.8736
0 0 1.1031 0.6130 0.2523
>> % Calculemos los valores propios de esos bloques
0 0 0 0.0000 -0.0941
>> eig(A(1:2,1:2))
>> for i=1:10, [Q R]=qr(A); A=R*Q; end % 10 it. más
ans =
>> A
-1.8544 + 0.2232i
A =
-1.8544 - 0.2232i
-1.6585 -0.7415 0.3436 -0.8538 0.1063
>> eig(A(3:4,3:4))
0.1202 -2.0481 -0.4571 -0.6504 -1.0568
ans =
0 -0.0322 0.6956 -0.7333 -0.1472
0.8562 + 0.8385i
0 0 1.0035 1.0146 -0.0113
0.8562 - 0.8385i
0 0 0 0.0000 -0.0941
>> % Mejora; hagamos 50 más
>> % Comparemos todos con los de la matriz original
>> for i=1:50, [Q R]=qr(A); A=R*Q; end
>> eig(A0)
>> A
ans =
A =
0.8562 + 0.8385i
-1.7423 -0.7746 -0.7995 -0.5685 -0.0297
0.8562 - 0.8385i
0.0805 -1.9665 -0.6724 0.2789 -1.0632
-0.0941
0 -0.0000 1.0634 -0.8844 -0.0561
-1.8544 + 0.2232i
0 0 0.8436 0.6489 0.1247
-1.8544 - 0.2232i
0 0 0 0.0000 -0.0941
Cuadro 11.24
Definición 11.6 Una matriz de Hessenberg es una matriz triangular excepto por una subdiagonal adyacente a la
diagonal principal.
0
Cualquier matriz se puede reducir a la forma de Hessenberg mediante transformaciones de Householder o Givens. Si
la matriz original es simétrica, al reducirla a la forma de Hessenberg se obtendrá una tridiagonal.
Si se parte de una matriz con la forma de Hessenberg, el algoritmo QR más actual necesita un número de operaciones
O.n2 /, implementándose en dos fases:
Cuadro 11.25
Un conjunto de rutinas sencillas para reducir cualquier matriz mediante transformaciones de Householder a la forma
de Hessenberg seria el que describe el cuadro 11.26.
function [A V] = Hessred(A)
% Reducción de A a Hessenberg con Householder
% En V vectores de transf. sucesivas de Householder
[m,n] =size(A);
if A == triu(A,-1), V = eye(m); return, end
V = [];
for k=1:m-2
x = A(k+1:m,k); v = Housv(x);
A(k+1:m,k:m)=A(k+1:m,k:m)-2*v*(v’*A(k+1:m,k:m));
A(1:m,k+1:m)=A(1:m,k+1:m)-2*(A(1:m,k+1:m)*v)*v’;
v = [zeros(k,1);v]; V = [V v];
end
end
function u = Housv(x)
% Transf. Householder del x; vector en u.
m = max(abs(x));u = x/m;
if u(1) == 0, su = 1; else su = sign(u(1)); end
u(1) = u(1)+su*norm(u);
u = u/norm(u); u = u(:);
end
Cuadro 11.26
Consideraciones finales en torno al algoritmo o método QR para el cálculo de valores y vectores propios de una matriz
A.
Para matrices muy grandes, el algoritmo es costosísimo en número de operación a realizar. Además, requiere mucha
memoria de ordenador, aunque la matriz sea grande y dispersa.
Si sólo se necesitan unos pocos valores y vectores propios, especialmente para n grandes, el método no saca partido
de ello.
Las transformaciones por semejanza introducen muchos elementos no nulos por lo que se destruye una posible
estructura de dispersidad.
El que se lista en el cuadro 11.27 es un programa del algoritmo QR para matrices simétricas con reducción inicial
a forma Hessenberg y desplazamiento sencillo de Wilkinson. Se prueba con una matriz 20 20, simétrica, generada
aleatoriamente. Por fin, en el cuadro 11.28 se lista el código en M ATLAB del algoritmo QR para matrices generales, con
reducción inicial a Hessenberg y doble desplazamiento implícito tipo Francis.
Los resultados de una sesión de M ATLAB para estudiar una matriz 25 25 y otra de 1000 1000 son los del cua-
dro 11.29 de la página 262. Los resultados que se obtienen en clave de tiempos de ejecución no son en absoluto compe-
titivos con respecto a los de la function eig() de M ATLAB, pero las condiciones son absolutamente distintas. Uno es un
programa hecho para verificar que el método funciona como predice la teoría; el otro lleva mucho desarrollo y esfuerzo
los últimos años para optimizar sus prestaciones.
>> A=rand(20);
function [D itt]=It_QR_3(A)
>> A=(A+A’)/2;
% Iteración QR con despla. de Wilkinson para una matriz simétrica >> eig(A)
>> [D it]=It_QR_3(A)
n=length(A); tol=off(A)*1.e-8; k=n; D=zeros(n,1); it=0; ans =
D =
A=Hessred(A); % Reducir a Hessenberg -1.2714
10.5361
while k>1 -1.2618
1.5883
while abs(A(k,k-1))>tol -1.0250
1.5200
%Calcular desplazamiento Wilkinson -0.8895
1.1285
s=eig2x2(A(k-1:k,k-1:k)); -0.8182
1.0568
[i j]=min(abs(A(k,k)*[1 1]’-s)); % Mejor desp. Wilkinson -0.6692
0.9498
[Q R]=qr(A(1:k,1:k)-s(j)*eye(k)); -0.6220
0.6448
A(1:k,1:k)=R*Q+s(j)*eye(k); it=it+1; -0.4263
0.5156
end -0.1461
0.2413
k=k-1; -0.0201
0.1139
end 0.1139
-0.0201
D=sort(diag(A),’ascend’); if nargout==2, itt=it; end 0.2413
-0.1461
end 0.5156
-0.4263
0.6448
-0.6220
function [L]=eig2x2(a) 0.9498
-0.6692
tra=a(2,2)+a(1,1); 1.0568
-0.8182
sqtd=sqrt(tra*tra-4*(a(2,2)*a(1,1)-a(1,2)*a(2,1))); 1.1285
-0.8895
L(1)=(tra+sqtd)/2; 1.5200
-1.0250
L(2)=(tra-sqtd)/2; 1.5883
-1.2618
L=L(:); 10.5361
-1.2714
end
it = 36
Cuadro 11.27
Cuadro 11.28
262 j Capítulo 11. Valores y vectores propios. Valores singulares
Cuadro 11.29
Si A tiene n valores propios distintos, 1 ; : : : ; n , con vectores propios asociados x1 ; : : : ; xn ortonormales (base
ortonormal de Rn ), cualquier vector de Rn se puede escribir como combinación lineal de esos vectores propios; en
particular, uno b D c1 x1 C c2x2 C C cn xn .
La matriz de Krylov, K j D b Ab : : : A j 1 b , de dimensión n j , se puede escribir
2 3
1 1 j1 1
6 j 17
6 1 2 2 7
K j D Œc1 x1 c2 x2 cn xn nn 66 :: :: : : : 77 :
4: : : :: 5
1 n jn 1
nj
C n D K n 1 AK n D R 1
QH H 1
n AQn R n ! Qn AQn D R n C n R n H (matriz de Hessenberg):
expresión que relaciona el vector qkC1 con los anteriores q1 ; : : : ; qk . Si se premultiplica por qjH , teniendo en cuenta la
ortonormalidad,
hj k D qjH Aqk ; j D 1; : : : ; k:
Estas expresiones dan lugar a la ya estudiada iteración de Arnoldi del cuadro 11.30. Obtiene una matriz unitaria Qn y
una Hessenberg H n , columna a columna, haciendo sólo productos de A por vectores y productos interiores de estos.
Si se requieren con precisión los valores propios de H k se pueden calcular por otro método –por ejemplo la iteración
QR–, siendo una tarea menor si k n.
El coste en cálculos de la iteración de Arnoldi es elevado: cada nuevo qk se debe ortogonalizar respecto a todos los
vectores columna de Qk , por lo que se reinicializa periódicamente desde un nuevo vector escogido adecuadamente.
11.4 Cálculo de los valores singulares j 263
Ortogonalización de A
por Iteración de Arnoldi Según progresa el algoritmo, en la iteración k, si Qk D Œq1 ; : : : ; qk , la matriz H k D
Dado x0 cualquiera
q1 D x0 = kx0 k2 QHk
AQk es Hessenberg y sus valores propios, denominados valores de Ritz, por
for k D 1; 2; : : :
uk D Aqk
for j D 1 to k
Walther Ritz, Suiza, 1878-1909,
hj k D qjH uk
uk D uk hj k qj
end
hkC1;k D kuk k2
if hkC1;k D 0 stop son muy buenas aproximaciones de los valores propios de A. Si y es un vector propio
qkC1 D uk = hkC1;k de H k , Qk y es un aproximación de un vector propio de A.
end
Cuadro 11.30
Si la matriz A es simétrica o hermítica se utiliza la iteración de Lanczos que consigue una matriz tridiagonal.
Ortogonalización de A
por Iteración de Lanczos
q0 D 0; ˇ0 D 0 y x0 (cualquiera)
q1 D x0 = kx0 k2
for k D 1; 2; : : :
uk D Aqk
Lanczos
˛k D qkH uk
uk D uk ˇk 1 qk 1 ˛ k qk
ˇk D kuk k2
if ˇk D 0 stop
qkC1 D uk =ˇk
end
Si ˇk D 0 los valores de Ritz son los valores propios exactos de A. Codificado todo este conjunto de posibilidades en
M ATLAB se obtiene lo que representa el cuadro 11.31.
El resultado del ejemplo arngo.m con 30 iteraciones de Arnoldi es el de la figura 11.3. Las crucecitas en él son los
valores propios auténticos; los círculos, menos intensos, los valores de Ritz que los aproximan. A la derecha de la figura
está la sesión de M ATLAB que obtiene esos resultados.
Cuadro 11.31
>> arngo
residual =
2000 8.432475148361903e-013
orthocheck =
1.251900907447703e-015
1500 ritz =
1.0e+003 *
0.000009213557470 + 1.700662320900872i
1000 0.000009213557470 - 1.700662320900872i
-0.100885103219523 + 0.066606248354400i
-0.100885103219523 - 0.066606248354400i
-0.007240150911503 + 0.120672187071397i
500
-0.007240150911503 - 0.120672187071397i
0.108125258880896 + 0.054065937658482i
0.108125258880896 - 0.054065937658482i
0 -0.023312919813425 + 0.070655152714405i
-0.023312919813425 - 0.070655152714405i
0.059637449793072 + 0.043628336812077i
−500 0.059637449793072 - 0.043628336812077i
0.074697281694741
0.046089595120268 + 0.039266047684087i
−1000 .
.
.
−1500 -0.040459377125795 - 0.030311689517999i
-0.074653210517090
-0.047756691067739 + 0.011809670790806i
-0.047756691067739 - 0.011809670790806i
−2000 Elapsed time is 0.076879 seconds.
−150 −100 −50 0 50 100 150
Elapsed time is 0.226753 seconds.
Figura 11.3
11.4 Cálculo de los valores singulares j 265
se pueden llevar a cabo aplicando a A T A alguno de los métodos expuestos para obtener los valores propios de matrices
simétricas.
Existen no obstante algoritmos más especializados basados en iteraciones QR de la matriz A. Veamos uno.
Golub
Consiste en transformar la matriz A 2 Cmn con transformaciones de Householder en otra triangular superior bidiago-
nal; así
B1
QB A…B D B D ;
0
donde 2 3 9
d1 f 2
6 d f 0 7 >
>
6 2 3 7 >
>
>
6 :: :: 7 =
6 : : 7 n
6 7
BD6 7 >
>
6 :: 7 >
6 0 : fn 7 >
>
6 7 ;
4 dn 5
m n
0
y QB D Qn Q1 2 Rmm , …B D …1 …n 2 2 Rnn . El esquema operativo que sigue esta diagonalización con
una matriz A 64 es el de la figura 11.4.
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0
Q1 0 …1 0 Q2 0 0 …2 0 0 Q3 0 0 Q4 0 0
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0
Figura 11.4: Operativa de la bidiagonalización de una matriz 6 4
BkC1 D U Tk Bk V k ; k D 1; 2; : : : ;
266 j Capítulo 11. Valores y vectores propios. Valores singulares
Cuadro 11.32
ETSII-UPM
U D Q diag.U ; I / yV D… ‘
V : B k m n B k ETSII-UPM
‰SVD de una matriz bidiagonal B, de tamaño n×n:
›
¾ Se puede aplicar el método QR ‰ conSVD de una matriz
kD:::;2;1
desplazamiento bidiagonal
a la matriz T=BTB. B, de tamaño n×n:
kD1;2:::
TB.
¾ También se pueden aplicar una serie (teóricamente infinita) de rotacioneslas
En la figura se esquematiza cómo se hace (nos recordará de alguna manera ideas el algoritmo
¾ Se puede aplicar el método QR condedesplazamiento a la de Jacobi
matriz T=B para el
cálculo de los valores propios de matrices
Givens a B para hacerla diagonal: simétricas,
¾ También pues
se se
puedenhace algo
aplicar parecido).
una serie (teóricamente infinita) de rotaciones de
ª 0 0 0º ª 0 0 0 0º ª
Givens
0 0º
a B
ª
para hacerla
0 0 0º
diagonal:
ª 0 0 0º
« 0 0 »» BG «« 0 0 »» G B «« 0 ª 0 0 » 0 0« 0 0 º ª 0 00 » 0 0«0 0 º ª 0 »» 0 0º ª 0 0 0º ª 0 0 0º
«0 «0 » BG13 « » « » G32B « » « 0 0 »» BG «« 0 0 0 »» G B ««0 0 »»
12 21
« 0 0» o «0 0» o o« o«
« 0 0 « 0 0 « 0 0 0 » « 0 0 » « 0 0 0 »
«0 0 0 » «0 0 0 » «0 0 0 « » 0
« » 0
« » » » »
«¬0 0 0 0 »¼ «¬ 0 0 0 0 »¼ «¬ 0 0 0 «00 0 »¼ 0 «¬ 0 0» 0 « 00 0 »¼ 0 «¬0 0» 0 « 00 0 »¼ 0 » « 0 0 0 » « 0 0 0 »
«¬0 0 0 0 ¼» «¬ 0 0 0 0 ¼» «¬ 0 0 0 0 ¼» «¬ 0 0 0 0 ¼» «¬0 0 0 0 »¼
ª 0 0 0º ª 0 0 0º ª 0 0 0º ª 0 0 0º
«0 » «
0 0 » G B «0 »
0 0 » BG «0 « »
ª 0 0 0 00 0 º « »
ª 0 0 0 0 0º ª 0 0 0º ª 0 0 0º
BG 24 « » G54B « »
43 35 «0 0«0 00»» G B ««0 0 » 0 0 »» BG ««0 0 0 »» G B ««0 0 0 »»
o« « 0 0 0 »
»
o« « 0 0 »
»
o« « 0 0 BG 24 « 0 »
»
o« 43
»
35 54
«0 0 o «0 0» o o« o«
« 0 0 0 » « 0 0 » « 0 0 0 » « 0 0 0»
«0 0 » «0 0 0 » 0
« » 0
« » » » »
«¬0 0 0 0 »¼ «¬0 0 0 0 »¼ «¬0 0 0 «0 0 »¼ «¬0 0» 0 «00 0 »¼ 0 » « 0 0 0 » « 0 0 0 »
¬«0 0 0 0 ¼» ¬«0 0 0 0 ¼» ¬«0 0 0 ¼» ¬«0 0 0 0 »¼
¾
El Se comprueba
código que losque
de M ATLAB elementos
hace tododeel¾
latrabajo
supra-diagonal tienden
se lista enque
Seacomprueba el los a cero
cuadro (desde
11.33.
elementos
el
Utilicemos
de el algoritmo
la supra-diagonal en una
tienden pequeña
a cero (desde el
n-1 hasta el primero) y los de la diagonal
sesión de M ATLAB como indica el cuadro 11.34. los valores singulares.
¾ Latiempos
convergencia puede serqueacelerada n-1 hasta
utilizando el primero) y los de la diagonal a los valores singulares.
1Los y la precisión se consiguen son desplazamiento.
los del cuadro 11.35. Para una matriz complicada como M D
0002 ¾ La convergencia puede ser acelerada utilizando desplazamiento.
0 0 3 0 0 se puede conseguir lo que lista el cuadro 11.36.
00000
04000
function [S U V it t t1 F]=svd_GolRein_1(A)
% Se calcula al descomposición en valores singulares, [U S V]=U*S*V=A,
% de una matriz cualquiera m x n.
% Sigue casi exactamente el "paper" de Golub y Reinsch, "Singular Value x=q(l); y=q(k-1); g=e(k-1); h=e(k); % Cálculo despl. con 2x2
% Decomposition and Least Squares Solutions", Numeri. Math., 14, 1970. f=((y-z)*(y+z)+(g-h)*(g+h))/(2*h*y); g=sqrt(f*f+1);
[m n]=size(A); tol=norm(A,’fro’)*sqrt(eps); itr=0; tic; f=((x-z)*(x+z)+h*(y/(f+(sign(f)+(f==0))*g)-h))/x;
if n>m, A=A’; [m n]=size(A); itr=1; end % Necesario m>=n c=1; s=1; % Comienzo iteración QR
% Bidiagonaliza A por Householder: U*B_n*V’ = A for i=l+1:k
g=e(i); y=q(i); h=s*g; g=c*g;
[U B_n V] = bidiag_Hansen(A); t1=toc; tic; e(i-1)=sqrt(f*f+h*h); z=e(i-1); c=f/z; s=h/z;
q=B_n(:,1); e=[0; B_n(1:n-1,2)]; U1=eye(m); V1=eye(n); f=x*c+g*s; g=-x*s+g*c; h=y*s; y=y*c;
k=n; it=0; V1(:,[i-1 i])=V1(:,[i-1 i])*[c -s;s c];
while k>0 % Bucle principal proceso itera. q(i-1)=sqrt(f*f+h*h); z=q(i-1); c=f/z; s=h/z;
caso=1; f=c*g+s*y; x=-s*g+c*y;
for l=k:-1:1 U1(:,[i-1 i])=U1(:,[i-1 i])*[c -s;s c];
if abs(e(l)) <=tol, e(l)=0; caso=0; break, end end
e(l)=0; e(k)=f; q(k)=x;
if abs(q(l-1))<=tol, q(l-1)=0; break, end it=it+1;
end end
if caso U=U*U1; V=V1’*V’;
c=0; s=1; l1=l-1; % Cancelación columna l-1: Givens S=zeros(m,n); % Valores singulares en S y salida resul.
for i=l:k for i=1:n
f=s*e(i); e(i)=c*e(i); ssn=q(i); S(i,i)=abs(ssn); if ssn<0, V(i,:)=-V(i,:); end,
if abs(f)<=tol, break, end end
[q ix]=sort(diag(S),’descend’);
g=q(i); h=sqrt(f*f+g*g); c=g/h; s=-f/h; q(i)=h; for i=1:n, S(i,i)=q(i); end % Valores sing. en S de + a -
U1(:,[l1 i])=U1(:,[l1 i])*[c -s;s c]; ix1=1:m; P1=eye(m); ix1(1:n)=ix; P1=P1(:,ix1); U=U*P1; V=V(ix,:);
end F=max(max(U*S*V-A)); t=toc; % Chequeo precisión resul.
end if itr==1, S=S’; Te=U; U=V’; V=Te’; end % Si m<n, trasponer
z=q(k); % Comprobar convergencia if nargout==1, S=diag(S); end
if l==k end
if z<0, q(k)=-z; V1(:,k)=-V1(:,k); end
k=k-1; continue
end
Cuadro 11.33
>> A=[1 2 3;3 4 5;6 7 8]; >> A=[1 2 3;3 4 5;6 7 8];
>> [S U V]=svd_GolRein_1(A) >> [V S U]=svd(A)
S = V =
14.5576 0 0 -0.2500 -0.8371 -0.4867
0 1.0372 0 -0.4852 -0.3267 0.8111
0 0 0.0000 -0.8379 0.4389 -0.3244
U = S =
-0.2500 -0.8371 -0.4867 14.5576 0 0
-0.4852 -0.3267 0.8111 0 1.0372 0
-0.8379 0.4389 -0.3244 0 0 0.0000
V = U =
-0.4625 -0.5706 -0.6786 -0.4625 0.7870 0.4082
0.7870 0.0882 -0.6106 -0.5706 0.0882 -0.8165
0.4082 -0.8165 0.4082 -0.6786 -0.6106 0.4082
>> U*S*V >> V*S*U’
ans = ans =
1.0000 2.0000 3.0000 1.0000 2.0000 3.0000
3.0000 4.0000 5.0000 3.0000 4.0000 5.0000
6.0000 7.0000 8.0000 6.0000 7.0000 8.0000
Cuadro 11.34
>> A=rand(1000);
>> A = (A - .5)*2;
>> tic, [S U V]=svd_GolRein_1(A); toc
Elapsed time is 13.971564 seconds.
>> tic, [V S U]=svd(A); toc
Elapsed time is 0.315793 seconds.
>> norm(diag(S-S1))
ans = 1.1278e-08
Cuadro 11.35
268 j Capítulo 11. Valores y vectores propios. Valores singulares
Cuadro 11.36
Cuadro 11.37
Algo más sofisticado que el que hemos presentado, aunque en lo esencial igual, es este algoritmo que se lista en el
cuadro 11.38.
function [U S V] = svd_J(A,tol)
% SVDJ Singular value decomposition using Jacobi algorithm. A = A * G;
if nargin == 1, tol = eps; end % Tolerancia por defecto V = V * G;
[M,N] = size(A); K = min(M,N); % K es el núm. de valores sing. end
On = 0; end
for c=A, On=On + sum(abs(c).^2); end end
On=On./N; % Suma coef.^2/N end
Previous_Off = Inf; V = eye(N); end
while true end
R = 0; % Contar las rotaciones if R == 0, error(’No rotations performed during sweep.’), end
for r = 1:N - 1 % Calculate the sum of the off-diagonal elements of the matrix B.
for c = r + 1:N B = A’ * A;
% Calculate the three elements of the implicit matrix B that are Off = sum(sum(abs(triu(B,1))))/(N.^2); % Normalise by the matrix size!
% needed to calculate a Jacobi rotation. Since B is Hermitian, theif (Off/On) < tol, break; end % Off-diagonal sum is small enough to stop.
% fourth element (b_cr) is not needed. if Previous_Off < Off
b_rr = sum(abs(A(:,r)).^2); % Real value. warning(’QTFM:information’, ...
b_cc = sum(abs(A(:,c)).^2); % Real value. ’Terminating sweeps: off diagonal sum increased on last sweep.’)
b_rc = A(:,r)’ * A(:,c); % Same type as A. break;
% Calculate a Jacobi rotation (four elements of G). The two valuesend
% that we calculate are a real value, C = cos(theta) and S, a value
Previous_Off = Off;
% of the same type as A, such that |S| = sin(theta). end
m = abs(b_rc); % Extract and sort the singular values. The vector T may be longer than the
if m ~= 0 % If the off-diagonal element is zero, we don’t rotate.% number of singular values (K) in cases where A is not square.
tau = (b_cc - b_rr)/(2*m); % tau is real and will be zero if [T,IX] = sort(sqrt(abs(diag(B))),’descend’);
% the two on-diagonal elements areif nargout == 0 || nargout == 1 % .. only the singular values are needed.
% equal. In this case G will be an U = T(1:K);
% identity matrix, and there is noend
% point in further calculating it.if nargout == 3 % .. the singular vectors and singular values are needed.
if tau ~= 0 A = A(:, IX); % Map the columns of A and V into the same order as the
R = R + 1; % Count the rotation we are about to perform. V = V(:, IX); % singular values, using the sort indices in IX.
t = sign(tau)./(abs(tau) + sqrt(1+tau.^ 2)); % Construct the left singular vectors. These are in A but we need
C = 1./sqrt(1 + t.^ 2); % to divide each column by the corresponding singular value. This
S = (b_rc.* t.* C)./ m; % calculation is done by replicating T to make a matrix which can
% Initialize the rotation matrix, which is the same size as the % then be divided into A element-by-element (vectorized division).
% implicit matrix B. U = A./ repmat(T’,M,1);
% We have to create an identity matrix here of the same type as A, S = diag(T); % Construct a diagonal matrix of singular values from
% that is, quaternion if A is a quaternion, double if A is double. % the vector T, because when there are three output
% To do this we use a function handle (q.v.) constructed from the % parameters, S is required to be a matrix.
% class type of A. This was done before the loop, since the typeend
% of A is invariant. end
G = eye(N); G(r,r) = C; G(c,c) = C; G(r,c) = S; G(c,r) =-conj(S);
Cuadro 11.38
Capítulo 12
Contenido
12.1 El problema de la optimización sin condiciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
12.2 Condiciones para la existencia de un punto mínimo . . . . . . . . . . . . . . . . . . . . . . . . . . 271
12.3 Obtención de la solución. Métodos de dirección de descenso . . . . . . . . . . . . . . . . . . . . . 273
12.3.1 Amplitud de paso (linesearch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
12.3.2 Método de la dirección del gradiente o de la máxima pendiente . . . . . . . . . . . . . . . . . 275
12.3.3 Método de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
12.3.4 Métodos de Newton Amortiguado y de Región de Confianza . . . . . . . . . . . . . . . . . . 281
12.3.5 Algoritmo de los gradientes conjugados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
12.3.6 Métodos cuasi Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
12.3.7 Ejemplo general de recapitulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
sujeta a ci .x/ D 0; i 2 E;
cj .x/ 0; j 2 I:
El esquema general de cómo se lleva a cabo un proyecto de optimización, y de simulación numérica en general, se
aproxima mucho al de la figura 12.1.
The function f (x
x∗ + 2pπ , where
bles we giving the minimal function value inside a certain region, see Figure 1.3.
function y
x* x
x∗ )2 − 2 cos(x − x∗ ). x
Figure 1.3: y = 0.015(x − x*
x∗ is the One global minimizer and many local minimizers.
12.2 Condiciones para la existencia
∗ 2
de un punto
∗
mínimo
Figure 1.3: y = 0.015(x − x ) − 2 cos(x − x ).
ermined
x is the
∗ La meta de cualquier método de optimización es encontrar
One global el mínimo
minimizer and many de laminimizers.
globallocal función, si existe, o un mínimo local.
The ideal situation for optimization computations is that the objective func-
tion has a unique minimizer. We call this the global minimizer.
nd appli-
ermined In some
The idealcases the objective
situation function
for optimization has several (or
computations even
is that theinfinitely
objectivemany)
func-
l design minimizers. In such problems it may be sufficient to find
tion has a unique minimizer. We call this the global minimizer. one of these mini-
nd appli- mizers.
In some cases the objective function has several (or even infinitely many)
l design In many objective
minimizers. In suchfunctions
problemsfrom applications
it may wetohave
be sufficient findaone
global minimizer
of these mini-
function
and several local minimizers. It is very difficult to develop methods which
mizers.
272 j Capítulo 12. Optimización. Programación no lineal sin condiciones 7.4 Convex and Concave Functions 193
y = f(x)
y
x
convex
(a)
Teorema 12.1 Condiciones de convexidad de primer orden. Una función f W Rn ! R derivable —es decir, su
gradiente, rf .x/, existe para todo x 2 Rn — es convexa si para todo x; y 2 Rn se cumple que
f
f .y/ f .x/ C rf .x/T .y x/:
3.1 Basic properties and examples 69
f ( y)
f (x ) + ∇ f (x )T ( y − x )
(x, f (x ))
1
In a similar way we can extend a concave function by defining it to be −∞
outside its domain.
0
2 2
3.1.3 First-order conditions x
1 nonconvex 0
y
Suppose f is differentiable (i.e., its gradient ∇f exists
(c) at each point in dom f , x
which is open). Then f is convex if and only if dom0f is−2convex and
Fig. 7.3 Convex and nonconvex functions
f (y) ≥Figure
f (x) +3.3 T
Graph
∇f (x) x)f (x, y) = x2 /y.
(y −of (3.2)
Teorema 12.3 Condiciones necesarias de mínimo local de primer orden. Si x es un mínimo local de f W Rn ! R,
se cumple queholds for all x, y ∈ dom f . This inequality is illustrated in figure 3.2.
The affine function of y given by f (x)+∇f (x)T (y−x)
is, of course, the first-order
Taylor approximation of f near x. The inequalityrf .x (3.2)
/ D 0:states that for a convex
• Negative entropy. x log x (either on R global
function, the first-order Taylor approximation is in fact a++
, or underestimator
on R+ , defined of
as 0 for x = 0)
the is
function.convex.
Un punto x en el que rf .x/ D 0 se denomina punto estacionario de f .x/.
Conversely, if the first-order Taylor approximation of a function is
always a global underestimator of the function, then the function is convex.
TheConvexity or concavity
inequality (3.2) of these
shows that from examplesabout
local information can abe shown
convex by verifying the ba-
function
(i.e.,
sic its value and derivative
inequality (3.1), oratby a point) we can
checking derive
that theglobal information
second (i.e., ais nonnegative or
derivative
global underestimator of it). This is perhaps the most important property of convex
nonpositive. For example, with f (x) = x log x we have
functions, and explains some of the remarkable properties of convex functions and
convex optimization problems. As ′
one simple example, the ′′ inequality (3.2) shows
that if ∇f (x) = 0, then for all yf∈(x)
dom =f log x≥
, f (y) + f1,(x), i.e.,fx (x) = 1/x,
is a global minimizer
of the function f .
so that f ′′ (x) > 0 for x > 0. This shows that the negative entropy function is
(strictly) convex.
We now give a few interesting examples of functions on Rn .
274 j Capítulo 12. Optimización. Programación no lineal sin condiciones
2.5 2.5
2 2
1.5 1.5
1 1
0.5 0.5
0 0
Figura 12.2: (the objective function f (x) = x22 and the iterates xk+1 = xk + αk pk generated by the descent
objective function f (x) = x2 Direcciones
and thedepiterates
directions
descenso en la función
k = −1 andx
k+1 x xque
steps α=
k+
k = 1/2
no producen
αkfrom
k+1
avances adecuados
pk generated
x0 = 2).
e descent directions
kC1 pk = (−1)k+1 and steps αk = 2+3/2k+1 from x0 = 2)
˛k D 1=2 , al partir también de x0 D 2, que producen lo que se ve en la parte derecha de esa figura 12.2.
Del desarrollo de Taylor de la función a minimizar se tiene que
y de él que, en ˛ D 0, ' 0 .0/ D pT rf .x/. La figura 12.3 muestra una posible evolución de '.˛/. La expresión de
' 0 .0/ es la recta A: tangente
108 a f .x C ˛p/ en ˛ D 0. La recta D es '.0/. El descenso implica simultáneamente que
D f .xC˛p/
f f.x/
(x k )
( )
A C
˛11
α ˛22
α
α
˛
Figura 12.3: Posibles casos (a)
de evolución de la función '.˛/
La recta C es f .x C ˛p/ D f .x/ C .1 %/˛rf .x/Tp cuya pendiente abarca la zona sombreada desde rf .x/Tp a
1
2
˛rf .x/Tp.
a b c 1 2 3
d e f g 9 4 6 5
h i j 10 8 7
αL α1 α* α0 α2
α
(b)
Figure 4.14. (a) The Goldstein tests. (b) Goldstein tests satisfied.
12.3 Obtención de la solución. Métodos de dirección de descenso j 275
Los criterios de Armijo y Goldstein de descenso suficiente dicen que el ˛ 2 .0; 1/ que se escoja debe ser tal que, para
0 < % < 12 < < 1, por ejemplo % D 0;0001 y D 0;9,
También denominada de curvatura. Indica que la pendiente de la función debe ser menor en el nuevo punto.
El procedimiento numérico inexacto más extendido para calcular la amplitud de paso ˛ se conoce como backtracking.
Comienza con un paso completo, ˛ D 1, y lo va reduciendo mediante un factor constante, ˇ ˛, ˇ 2 .0; 1/, hasta
que se cumplan los criterios de Armijo y Goldstein, o uno de los dos: preferentemente el de Armijo. Sólo funciona si
f .x C ˛p/0˛D0 D rf .x/T p < 0 (la dirección es de descenso).
denominada de máxima pendiente. En la figura 12.4 se ven esas máximas pendientes a lo largo de una dirección pk .
El algoritmo de la máxima pendiente, de convergencia lineal, y su codificación en M ATLAB, son los del cuadro 12.1.
Ejemplo 12.1 Probemos el método de la máxima pendiente resolviendo minimizar e x1 C3x2 0;1
Ce x1 3x2 0;1
Ce x1 0;1
.
x2R2
Su ejecución con el programa anterior en una sesión de M ATLAB da como resultado lo que lista el cuadro 12.2
En los gráficos de la figura 12.5 se puede ver el comportamiento del proceso iterativo. El cálculo de la amplitud se
hace mediante backtracking y, exactamente, por el método de la bisección. Si bien el número de iteraciones es superior
con el cálculo inexacto de la amplitud de paso, el tiempo en obtener la solución puede ser bastante menor.
La función objetivo y su gradiente están calculadas, aparte, en la rutina que sigue. Se incluye en el listado del código
anterior, al final. El grueso del programa valdría para tratar cualquier otra función.
function [f g]= objfun_min1(x)
% f(x) = sum(exp(A*x+b))
A = [1 3; 1 -3; -1 0]; b = -0.1*[1;1;1];
f = sum(exp(A*x+b));
g = A’*exp(A*x+b);
end
Si utilizamos para resolver este problema el solver de M ATLAB para minimización de funciones sin condiciones,
fminunc, una sesión al respecto daría como resultado lo que se explicita en el cuadro 12.3.
3 Line search methods
276 j Capítulo 12. Optimización. Programación no lineal sin condiciones
Iteration: xk+1 = xk + αk pk , where αk is the step length (how far to move along pk ), αk > 0; pk
is the search direction.
2.5
1.5
pk
xk
1
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2
Figura 12.4: Diversas pendientes
T de la función a minimizar a loπlargo de una dirección de descenso
Descent direction: pk ∇fk = kpk k k∇fk k cos θk < 0 (angle < 2
with −∇fk ). Guarantees that f
can be reduced along pk (for a sufficiently smooth step):
6
>> [x f]=Maxima_pendiente_unc(@objfun_min1,[-1;1])
1 -1.26517900e+000 -2.50497831e-001 9.16207023e+000 6.25000000e-002
2 -6.29000734e-001 6.51924176e-002 3.86828053e+000 2.50000000e-001
3 -4.50514899e-001 -7.72284882e-002 2.68052760e+000 2.50000000e-001
4 -4.21089848e-001 2.38719166e-002 2.60419641e+000 1.25000000e-001
5 -3.97610304e-001 -8.05335008e-003 2.56942254e+000 1.25000000e-001
6 -3.65030711e-001 1.39821003e-002 2.56295544e+000 2.50000000e-001
.
.
21 -3.46582187e-001 -4.11844758e-006 2.55926670e+000 1.25000000e-001
22 -3.46579437e-001 1.81036718e-006 2.55926670e+000 1.25000000e-001
23 -3.46577566e-001 -7.95799575e-007 2.55926670e+000 1.25000000e-001
x =
-0.346577566436640
-0.000000795799575
f =
2.559266696682093
Cuadro 12.2
12.3 Obtención de la solución. Métodos de dirección de descenso j 277
5
10
0
10
error
−5 inexacta: backtracking
10
−10
10
line search exacta: bisecc.
−15
10
0 5 10 15 20 25
k
Figura 12.5: Proceso de resolución de minimizarx2R2 e x1 C3x2 0;1 Ce x1 3x2 0;1 C e x1 0;1 con la máxima pendiente y
backtracking o no
>> x0=[-1;1];
>> options = optimset(’Display’,’iter’,’GradObj’,’on’,’LargeScale’,’off’);
>> [x,fval,exitflag,output] = fminunc(@objfun_min1,x0,options)
First-order
Iteration Func-count f(x) Step-size optimality
0 1 9.16207 20
1 2 3.57914 0.0499801 2.5
2 3 3.31537 1 2.11
3 4 2.60267 1 0.548
4 5 2.56573 1 0.349
5 6 2.55954 1 0.0613
6 7 2.55928 1 0.011
7 8 2.55927 1 0.000144
8 9 2.55927 1 1.88e-007
Optimization terminated: relative infinity-norm of gradient less than options.
TolFun.
x =
-0.3466
-0.0000
fval =
2.5593
exitflag =
1
output =
iterations: 8
funcCount: 9
stepsize: 1
firstorderopt: 1.8773e-007
algorithm: ’medium-scale: Quasi-Newton line search’
message: [1x85 char]
Cuadro 12.3
278 j Capítulo 12. Optimización. Programación no lineal sin condiciones
! ! !
rf .x/ C r 2f .x/p D g C H p D 0.
Este es un sistema lineal de ecuaciones cuya solución es la dirección de Newton hacia el óptimo.
Si la matriz H D r 2 f .x/ es definida positiva (x T H x > 0 para cualquier x ¤ 0), la dirección de Newton es una
dirección de descenso pues
0 < pT H p D pT g;
cumpliéndose así que p T g < 0, como dedujimos.
El algoritmo de Newton para minimizar f .x/ y un código de M ATLAB para llevarlo a cabo son los del cuadro 12.4.
Si la Hessiana es definida positiva, la convergencia del método de Newton es cuadrática. Funciona especialmente bien
en las proximidades del óptimo o un punto estacionario.
Para resolver con él otra vez minimizarx2R2 e x1 C3x2 0;1 C e x1 3x2 0;1 C e x1 0;1 en una sesión de M ATLAB, se
haría lo que apunta el cuadro 12.5.
La convergencia del método y el error vs iteración son los de la figura 12.6.
La gráfica de esta función en 3D y sus curvas de nivel son las de la figura 12.7.
Programado en M ATLAB el problema, partiendo de un punto alejado, con el código anterior en una sesión de M ATLAB
se obtiene lo que muestra el cuadro 12.7 de la página 281.
12.3 Obtención de la solución. Métodos de dirección de descenso j 279
function [f g H] = objfun_min2(x)
A = [1 3; 1 -3; -1 0]; b = -0.1*[1; 1; 1];
f = sum(exp(A*x+b)); if nargout<2, return, end
g = A’*exp(A*x+b); H = A’*diag(exp(A*x+b))*A;
end
Cuadro 12.4
>> [x f]=Newton_unc(@objfun_min2,[-1;1])
1 -5.23625188e-002 3.53998022e-001 9.16207023e+000 1.00000000e+000
2 -1.05634526e-001 1.05820897e-001 3.73378771e+000 1.00000000e+000
3 -3.18485379e-001 2.52139713e-002 2.71665315e+000 1.00000000e+000
4 -3.45138214e-001 7.18724132e-004 2.56404324e+000 1.00000000e+000
5 -3.46572427e-001 1.03191597e-006 2.55927231e+000 1.00000000e+000
x =
-0.346572427027644
0.000001031915967
f =
2.559266696666079
Cuadro 12.5
5
10
0
10
error
−5
10
−10
10
−15
10
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
k
Figura 12.6: Proceso de resolución de minimizarx2R2 e x1 C3x2 0;1 Ce x1 3x2 0;1 C e x1 0;1 con Newton y backtracking
280 j Capítulo 12. Optimización. Programación no lineal sin condiciones
function [x f i] = Newton_mp(fun,x)
% Método híbrido Newton-máxima pendiente
global h
rho = 0.1; beta = 0.5; % Parámetros de line search
maxit = 100; h=sqrt(eps);
for i=1:maxit % Proceso iterativo
[f g H] = fun(x);
[R npd] = chol(H); % Cholesky comprueba si H es definida positiva
if ~npd
p = -R\(R’\g); % Dirección de Newton_mp
else
p = -g; % Dirección de máxima pendiente
end
if abs(p’*g)<1e-8, break, end
* Máxima pendiente y Newton alpha = 1;
if H .x/ es definida positiva for k=1:10 % Backtracking de amplitud de paso
xnew = x+alpha*p;
p D pN
fxnew = fun(xnew);
else if fxnew < f+alpha*rho*g’*p, break
else alpha=alpha*beta;
p D pmp end
end end
x = x + alpha*p;
x WD x C ˛p fprintf(’%3.0f %13.5e %13.5e %13.5e %13.5e %2.0f\n’,i,x,f,alpha,npd);
end
end
function [f g H] = objfun_min3(x)
% Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2
global h
f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout<2, return, end
g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];
if nargout<3, return, end
x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1);
H(1:2,1)=(g1-g)/h;
x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1);
H(1:2,2)=(g1-g)/h;
end
Cuadro 12.6
0.5 15
15
5
0.4 10 10
5 15 43
4 2
0.3 3 10
1
5
5 4
0.2 4 3
3 3 2
2
1
0.1 2 2
4
1
5
x2
0 3 4 5
1
10
3 2
2
−0.1
15 4
3 10
5 4 5
−0.2
15
10
−0.3 10
15
15
−0.4
−0.5
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
x
1
Figura
Figure 5: Contour plot of Rosenbrock’s 12.7:
banana Función de Rosenbrock
function.
>> [x f k] = Newton_mp(@objfun_min3,[0;15])
1 1.56250e-002 -8.43750e+000 2.25010e+004 7.81250e-003 1
2 1.62080e-002 2.62358e-004 7.12052e+003 1.00000e+000 0
3 2.62139e-001 8.23454e-003 9.67847e-001 2.50000e-001 0
4 3.18480e-001 9.82550e-002 9.10251e-001 1.00000e+000 0
5 5.26915e-001 2.32607e-001 4.65478e-001 5.00000e-001 0
function [f g H] = objfun_min3(x)
6 5.74193e-001 3.27462e-001 4.26601e-001 1.00000e+000 0
% Función de Rosenbrock: 100(x2-x1^2)^2+(1-x1)^2
7 7.21323e-001 4.97541e-001 1.81811e-001 5.00000e-001 0
global h
8 7.71508e-001 5.92706e-001 1.29485e-001 1.00000e+000 0
f = 100*(x(2)-x(1)^2)^2+(1-x(1))^2; if nargout<2, return, end
9 8.47484e-001 7.11197e-001 5.28430e-002 5.00000e-001 0
g = [-200*(x(2)-x(1)^2)*2*x(1)-2*(1-x(1));200*(x(2)-x(1)^2)];
10 9.10865e-001 8.25658e-001 2.82056e-002 1.00000e+000 0
if nargout<3, return, end
11 9.60290e-001 9.19713e-001 9.55884e-003 1.00000e+000 0
x1=[x(1)+h;x(2)]; [f1 g1]=objfun_min3(x1);
12 9.86967e-001 9.73391e-001 2.17363e-003 1.00000e+000 0
H(1:2,1)=(g1-g)/h;
13 9.98376e-001 9.96624e-001 2.20516e-004 1.00000e+000 0
x1=[x(1);x(2)+h]; [f1 g1]=objfun_min3(x1);
14 9.99959e-001 9.99915e-001 4.33199e-006 1.00000e+000 0
H(1:2,2)=(g1-g)/h;
x =
end
0.999958778201435
0.999915052848790
f =
2.326866095161381e-009
k =
15
Cuadro 12.7
def 1
f .x C p/ ' M.p/ D f .x/ C p T c C p T Bp;
2
donde c 2 Rn y la matriz B 2 Rnn es simétrica. La idea es utilizar esos modelos para calcular direcciones de descenso
que se puedan modular a voluntad, y con amplitudes de paso D 1. Estudiaremos dos variantes.
La primera se conoce como Newton amortiguado. Calcula en cada punto del proceso iterativo un paso
def 1
pNa D mKın M.p/ C p T p ;
p 2
donde es un parámetro de amortiguación que, aplicado como se indica, penaliza pasos amplios.
La segunda, la de región de confianza,
def
prc D mKın M.p/;
kpk
pues se restringe el modelo a una región donde se confía que plasme bien las características del problema.
Si la función decrece convenientemente en cualquiera de estas direcciones, se hace x C p como el nuevo punto del
procedimiento y se adapta o .
Si no decrece lo suficiente, y no se ha llegado al óptimo, se modifica o para que en la próxima iteración el avance
hacia el óptimo mejore. Esta forma de actuar la plasma la figura 12.8.
La calidad del modelo elegido se evalúa mediante el indicador ganancia
f .x/ f .x C p/
%D ;
M.0/ M.p/
es decir, la relación entre lo que decrece la función desde x y lo que preveía el modelo que haría.
Con el modelo región de confianza, si % < 41 , la ganancia es pequeña y se deberían reducir los pasos según un
parámetros, por ejemplo a la mitad, mientras que si % > 43 se podrían aumentar en otro. Los factores 2 y 3 de esta
searches along the step to the minimizer of m k (shown), but this direction will yield at most
a small reduction in f , even if the optimal steplength is used. The trust-region method
steps to the minimizer of m k within the dotted circle (shown), yielding a more significant
reduction in f and better progress toward the solution.
In this chapter, we will assume that the model function m k that is used at each
iterate xk is quadratic. Moreover, m k is based on the Taylor-series expansion of f around
Región de confianza
Trust region
Paso de Newton
Line search direction
Paso
Trust de región
region step de
confianza Contornos
contours of f de f .x/
Figura 12.8: Esquema de actuación de los métodos de Newton amortiguado y de región de confianza
Figure 4.1 Trust-region and line search steps.
a b c 1 2 3
e f g 9 4 6
if %5 < 0;25
d
h i j 10 8 7
WD =2
elseif % > 0;75
WD mKax f; 3 kpkg
end
Si con el modelo Newton amortiguado % es pequeño, se debería aumentar el parámetro de amortiguación, , au-
mentando así la penalización por dar pasos grandes. Un % grande, por el contrario, indicará que M.p/ es una buena
aproximación de f .x C p/ y se puede reducir .
if % < 0;25
WD 2
elseif % > 0;75
WD =3
end
if % > 0 ˚
WD mKax 31 ; 1 .2% 1/3
else
WD 2
end
En la literatura especializada en optimización sin condiciones se puede encontrar una gran variedad de tácticas de mejora
como estas.
.B C I/ pNa D c:
Si es suficientemente grande, la matriz simétrica B C I es definida positiva, por lo que pNa es un mínimo del
modelo M.p/.
En Newton amortiguado B D H y c D g, y el sistema de ecuaciones es
8̂ 1
<si es suficientemente grande,pNa g y la dirección es próxima a la de
.H C I/ pNa D g: En él máxima pendiente.
:̂
si es pequeño, la dirección es casi la de Newton.
El algoritmo de Newton amortiguado para minimizar f .x/ y su codificación en M ATLAB están en el cuadro 12.8.
function [x f k] = Newton_amortiguado(fun,x)
% Método de Newton amortiguado con paso completo
global h
k=0; kmax=500; eps1=1e-9; eps2=1e-12; n=length(x); h=eps1;
[f g H] = fun(x); ng = norm(g,inf); mu = 1; found = ng<=eps1;
Dados Un x WD x0 y tol. Hacer D 1; D 2 y f ound WD f while ~found
posdef = 0;
while (not f ound ) and (k < kmax )
while ~posdef
Resolver dirección de descenso .H C I/ p D g [R p] = chol(H+mu*eye(n));% comprueba si H es def. pos.
if (p no existe) or (tol) if p, mu=2*mu; else posdef = 1; end
f ound WD true end
else p = -R\(R’\g); nh = norm(p); % Cálculo de paso
Calcular % D .f .x/ f .x C p// = .M.0/ M.p// if norm(g,inf)<eps1||nh<=eps2*(eps2+norm(x)), found=2;% Ópt.
else % Modificar región de conf.
if % > 0 ˚ xnew = x + p; dL = -p’*g-p’*(H*p)/2;
WD mKax 31 ; 1 .2% 1/3 [fn gn Hn] = fun(xnew); df = f-fn; r=df/dL;
x WD x C p if r>0
else x = xnew; f = fn; g = gn; H = Hn;
WD 2 ng = norm(g,inf);
end mu = mu*max(1/3,1-(2*r-1)^3);
end else
mu = mu*2;
k WD k C 1 end
end k = k + 1;
if ng <= eps1, found = 1; elseif k > kmax, found = 3; end
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8e\n’,k,x,f,mu);
end
end
end
Cuadro 12.8
El gráfico de la función que queremos minimizar y una sesión de M ATLAB para resolverlo son los del cuadro 12.9. La
rutina de M ATLAB que calcula la función, su gradiente y la matriz Hessiana es la que sigue.
function [f g H]=fun5_2(x)
f=0.5*x(1)^2*(x(1)^2/6+1)+x(2)*atan(x(2))-0.5*log(x(2)^2+1);
g=[x(1)^3/3+x(1); atan(x(2))];
H(1,1)=x(1)^2+1;
H(1,2)=0;
H(2,1)=0;
H(2,2)=1/(1+x(2)^2);
end
>> [x f k] =Newton_amortiguado(@fun5_2,[2;2])
2 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001
3 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001
4 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002
5 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002
6 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003
7 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003
8 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004
70 CHAPTER 4. TRUST-REGION METHODS x =
1.0e-009 *
0.418117641894218
0.010673670797581
Theorem 4.1. f =
The vector p ∗ is a global solution of the trust-region problem 8.752510847988606e-020
k =
minn m( p) f + g T p + 12 p T Bp, s.t. p ≤ , (4.7)8
p∈IR
Cuadro
if and only if p ∗ is feasible and there is a scalar λ ≥ 0 such that the following conditions are 12.9
satisfied:
(B + λI ) p ∗ −g, (4.8a)
Teorema 12.5 El∗ vector p es la solución de
λ( − || p ||) 0, (4.8b)
def def 1
(B + λI ) mKın M.p/(4.8c)
is positive semidefinite.
prc D D f .x/ C g T p C pT Bp
kpk 2
We delay the proof of this result until Section 4.3, and instead discuss just its key
si y sólo si p es factible y existe un escalar 0 tal que
features here with the help of Figure 4.2. The condition (4.8b) is a complementarity condition
se cumple que
1. .B C
that states that at least one of the nonnegative I/pλand
quantities D ( g, − p ∗ ) must be zero.
Hence, when the solution lies strictly 2.
. kp k/ D 0 y when 1 in
inside the trust region (as it does
Figure 4.2), we must have λ 0 and so Bp ∗ −g with B positive semidefinite, from (4.8a)
3. .B C I/ es semidefinida positiva.
and (4.8c), respectively. In the other cases and , we have p ∗ , and
2 3
B es
so λ is allowed la matriz
to take a positiveHessiana, r 2f(4.8a)
value. Note from .x/,thato una aproximación.
La variable λp
∗es el
−Bpmultiplicador
∗
− g −∇m( p ∗de
). Lagrange de la condición que impone la región de confianza. Interpretemos esas
tres condiciones con la ayuda de la figura 12.9.
∆1
∆2
Indica que cuando p está estrictamente dentro
∆3 de la región de confianza (como es el caso en la
Contornos
contours of m del modelo M.p/ figura de D 1 ), se debe cumplir que D 0 y
p*1 p*2 p*3
por tanto que Bp D g, siendo B semidefinida
positiva.
Indica
que
Figure 4.2 cuando
Solution ofp está estrictamente
trust-region subproblemFigura dentro
12.9:
for different de , la
Condiciones
radii 1 2 región de la región de confianza
, 3 . que impone
confianza (como es el caso en la figura de D 1), se debe
cumplir que D 0 ycondición,
La segunda por tantodeque Bp D g, siendo
complementariedad, B que D 0 ó kp k D . Cuando D 2 y D 3 , se
establece
tiene que
semidefinida kp k D y será > 0. De la primera condición se deduce que p D Bp g D rM.p /. Es decir,
positiva. 49/80
cuando > 0, la solución p es colineal con el negativo del gradiente de M (máxima pendiente) y perpendicular a sus
perfiles de contorno, como en la figura.
a b
Las soluciones de los subproblemas M.p/ se pueden aproximar con alguna de estas variantes:
c 1 2 3
d e f g 9 4 6 5
h i j 10 8 7
Punto de Cauchy: Mínimo a lo largo de p D g, acotada a
Dogleg (pata de perro): si B es definida positiva
Minimización en un subespacio de dimensión 2: Si B es indefinida
Steihaug: Si B es simétrica, otras...
k
pkC −τk gk , (4.11)
gk
where
1 if gkT Bk gk ≤ 0;
τk (4.12)
min gk 3 /(k gkT Bk gk ), 1
otherwise.
Figure 4.3 illustrates the Cauchy point for a subproblem in which Bk is positive
definite. In this example, pkC lies strictly inside the trust region.
12.3 Obtención de la solución. Métodos de dirección de descenso j 285
The Cauchy step pkC is inexpensive to calculate—no matrix factorizations are
required—and is of crucial importance in deciding if an approximate solution of the
trust-region subproblem is acceptable. Specifically, a trust-region method will be globally
Punto de Cauchy
Región
Trust region de confianza
Contornos
contours of del
mk modelo M .p/
k
pkck
pC
—gk gk
Figura
Figure 12.10:
4.3 The Dirección
Cauchy point. que define el punto de Cauchy
T
<1 si gk Bgk 0
k D kgk k3
: mKın ; 1 si gkT Bgk > 0:
a b c 1 2 3
d e f g 9 4 .k gkT Bk gk /
6 5
h i j 10 8 7
DogLeg
Hemos visto que si la matriz B del modelo M.p/ es definida positiva, el mínimo de ese modelo hace pB D B 1 g.
Es decir, cuando kpB k, p ./ D pB .
B
Si es pequeña
74 conC H respecto
A P T E R 4al
. paso
T R UpS T -, RlaE Gcondición
I O N M E Tkpk S hace que el término cuadrático del modelo M.p/
H O D
g
tenga poco efecto en su solución. En este caso, se puede aproximar p ./ kgk :
Para otros valores la solución p ./ sigue una trayectoria curvilínea como se puede apreciar en la figura 12.11.
Región
Trust regionde confianza
Trayectoria óptima
Optimal trajectory p (∆ ) de p./
B
p (paso
pB ( full step ) completo)
pUp: (mínimo
U en la dirección
unconstrained g
min along —g)
—g g
direccióndogleg
DogLegpath
p 0 1
Q /D
p.
pU,Cthe
For intermediate values of 1/ ppB∗ ()pU
.solution 1
typically 2:
follows a curved trajectory like
the
a
one
b
inc Figure 4.4. 1 2 3
e g
d
Thef dogleg method
9
finds
4
an approximate
6 5
solution by replacing the curved trajectory
∗i j
for p () with a path consisting of two line segments. The first line segment runs from the
h 10 8 7
gT g
pU − g, (4.15)
g T Bg
286 j Capítulo 12. Optimización. Programación no lineal sin condiciones
La intersección de esta trayectoria con la región de confianza es el punto que se busca; concretamente el que resuelve
la ecuación kpU C . 1/.pB pU /k2 D 2 :
El algoritmo de minimización de una función mediante el método de región de confianza DogLeg con modelo de
Newton se lista en el cuadro 12.10. Un código de M ATLAB que lo implementa se puede ver en el cuadro 12.11 de la
página 287.
Mediante una simple sesión de M ATLAB llegaríamos a la solución como lista el cuadro 12.12.
La idea es extender a problemas no lineales generales el método que vimos para minimizar funciones cuadráticas y
resolver así sistemas de ecuaciones lineales.
Fue propuesto porAlgoritmo
12.3.5 los profesores debritánicos R. Fletcher,
los gradientes Reino Unido, 1939, y C. Reeves en 1964.
conjugados
La idea es extender a problemas no lineales generales el método que vimos para minimizar funciones cuadráticas y
resolver así sistemas de ecuaciones lineales.
Fue propuesto por los profesores británicos R. Fletcher, Reino Unido, 1939, y C. Reeves en 1964.
Fletcher
Fletcher
La dirección de descenso que propone este método es p D rf .x/ C ˇppr , donde la nueva dirección p y la previa,
ppr , han de La conjugadas
serdirección con que
de descenso respecto
proponeaeste
la matriz
método esHessiana.
p D rf .x/ C ˇppr , donde la nueva dirección p y la previa,
ppr , ˇ
El parámetro ser conjugadas
hansededetermina conmanera
de tal respecto que
!"#$%&'()*"$+%,) a la !"#$%&'()*"$+%,)
matriz Hessiana.
minimice una forma!"#$%&'()*"$+%,)
cuadrática de la matriz Hessiana pues suficiente-
!"#$%&'()*"$+%,)
El parámetro ˇ se determina de tal manera que minimice una forma cuadrática de la matriz Hessiana pues suficiente-
mente cercamente
del óptimo las funciones continuas se aproximan muy bien a formas cuadráticas como ya hemos apuntado.
cerca del óptimo las funciones continuas se aproximan muy bien a formas cuadráticas como ya hemos apuntado.
! ! !
12.3 Obtención de la solución. Métodos de dirección de descenso j 287
Cuadro 12.11
>> [x f]=Dogleg_UBC_yo(@fun5_2,[2;2]);
k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2
0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001
1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000
2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000
3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000
4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000
5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001
6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019
Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020.
Función: f(x) = 1.1115053813167661e-027.
Cuadro 12.12
288 j Capítulo 12. Optimización. Programación no lineal sin condiciones
La primera fórmula para obtener esa ˇ fue sugerida por Fletcher y Reeves:
rf .x/T rf .x/
ˇD .
rf .xpr /T rf .xpr /
Con esas dos fórmulas, el algoritmo de los gradientes conjugados para minimizar f .x/ podría tener la forma que
sigue.
Dados La función f .x/, un punto de partida x0 y una tol.
Calcular ppr D rf .x0 /
Repetir Mientras la aproximación a la solución > tolerancia:
1. Calcular dir. de descenso: p D rf .x/ C ˇ ppr ,
rf .x/T rf .x/
con ˇ D
rf .xpr /T rf .xpr /
T
rf .x/ rf .xpr / rf .x/
oˇ D .
rf .xpr /T rf .xpr /
2. Calcular la amplitud de paso, ˛, en esa dirección.
3. Calcular el nuevo punto x WD x C ˛p.
Ninguna de las dos fórmulas para ˇ requiere calcular la matriz Hessiana. Si la función a minimizar es cuadrática las dos
fórmulas coinciden.
Ejemplo 12.5 Calculemos para probar estos métodos el mínimo de la función de Rosenbrock
2
minimizarx2R2 100 x2 x12 C .1 x1 /2 :
0.5 15
15
5
0.4 10 10
5 15 43
4 2
0.3 3 10
1
5
5 4
0.2 4 3
3 3 2
2
1
0.1 2 2
4
1
5
2
0 3 4 5
x
1
10
3 2
2
−0.1
15 4
3 10
5 4 5
−0.2
15
10
−0.3 10
15
15
−0.4
−0.5
−0.5 −0.4 −0.3 −0.2 −0.1 0 0.1 0.2 0.3 0.4 0.5
x1
Utilicemos para ello el código de M ATLAB del cuadro 12.13. Se parte del punto x D Œ 1;2 1. El óptimo es
x D Œ1 1. La función enmatrix
2Dis yreferred
el tocamino
as the moment,hacia
or measure el associated withtambién en 2D son los de la figura 12.12.
óptimo
where K is the cone of 6 × 6 PSD matrices. Following the terminology introduced in
[7, 8], the above matrix
the LMI relaxation. Because the above moment matrix contains relaxations of monomials
Con la toleranciaofupper-left
ydegree
los parámetros
up to 2+2=4, it is referred todados, la convergencia
as the second-degree moment matrix. The above es la de la tabla que sigue.
3x3 submatrix contains relaxations of monomials of degree up to 1+1=2, so it
is referred to as the first-degree moment matrix.
Método
Now replacing the monomials in the criterion by their relaxed variables, the first LMI
relaxation of Rosenbrock’s banana function minimization reads
Número de iteraciones
max −1
+ 2y10 − y20 − 100y02 + 200y
1 y10 y01 y20 y11 y02
Polak–Ribière
21 − 100y40 103
y10 y20 y11 y30 y21 y12
Fletcher–Reeves 514
y01 y11 y02 y21 y12 y03
s.t. ∈ K.
y20 y30 y21 y40 y31 y22
y11 y21 y12 y31 y22 y13
y02 y12 y03 y22 y13 y04
For a comprehensive description of the way LMI relaxations are build (relaxations of
higher orders, moment matrices of higher degrees and moment matrices associated with
constraints), the interested reader is advised to consult [7, 8]. All we need to know here
is that an LMI relaxation of a non-convex optimization problem can be expressed as a
17
12.3 Obtención de la solución. Métodos de dirección de descenso j 289
function [x f] = Grad_Conjugados_unc(fun,x,par)
% Método de los gradientes conjugados para minimizar f(x)
rho = 0.01; beta = 0.1; % Parámetros de line search
maxit = 1000;
[f g]= fun(x); ppr=-g; gpr=g; pbeta=0; % Comienzo con máx. pendiente
for i=1:maxit % Proceso iterativo
if i>1
[f g] = fun(x);
if par==1, pbeta=(g’*g)/(gpr’*gpr); % Fletcher-Reeves
else pbeta=((g-gpr)’*g)/(gpr’*gpr);% Polak-Ribière
end
end
p = -g+pbeta*ppr;
if (norm(g,inf) < 1e-6), break, end % Condición de mínimo
alpha = 1;
for k=1:10 % Backtracking amplitud de paso
xnew = x+alpha*p; fxnew = fun(xnew);
if fxnew <= f + alpha*rho*g’*p
break
else alpha = alpha*beta;
end
end
x = x + alpha*p; ppr=p; gpr=g;
fprintf(’%4.0f %13.8e %13.8e %13.8e %13.8en’,i,x,f,alpha);
end
end
Cuadro 12.13
x2
2
300
x2
100 1
30
10
3 0.3
1
−1.5 1.5 x −1.2 1 x1
1
−0.5 1
Probemos todo con una sesión de M ATLAB tal como se ve en el cuadro 12.14.
Cuadro 12.14
ds
function [x,i,f,nfeval]=quasi_newton_1(fun,x,metodo)
% Método cuasi Newton
rho = 0.01; beta = 0.1; % Parámetros de line search
[f,g] = fun(x); H=eye(length(x)); eps1=1e-5; eps2=1e-8;
maxit = 1000; nfeval = 1;
for i=1:maxit
xp = x; gp = g;
p = -H*g; nh = norm(p); % Nueva dirección: cuasi Newton
if norm(g,inf)<eps1||nh <= eps2*(eps2 + norm(x)), break, end
alpha = 1;
Dados f .x/, un x0 , una tolerancia y H 0 for k=1:10 % Backtracking amplitud de paso
xnew = x+alpha*p;
Repetir Mientras no se satisfaga la tolerancia de solución:
fxnew = fun(xnew); nfeval = nfeval+1;
1. Determinar la dirección de descenso: if fxnew < f+alpha*rho*g’*p, break
Obtener pk D H k rf .xk / else alpha=alpha*beta;
end
2. Calcular la amplitud de paso, ˛k , en esa dirección end
3. Calcular nuevo punto xkC1 D xk C ˛k pk y H kC1 x = x + alpha*p; s = x - xp; ns = norm(s);
[f,g] = fun(x);
y = g - gp; ys = y’*s; nfeval = nfeval+1;
if ys > sqrt(eps)*ns*norm(y) % Recalcular H
v = H*y; yv = y’*v;
if metodo == 1, H=H - (v/yv)*v’ + (s/ys)*s’; % DFP
else H = H + (1+yv/ys)*(s*s’)/ys - (s*v’+v*s’)/ys;% BFGS
end
end
end
end
Cuadro 12.15
Cuadro 12.16
Cuadro 12.17
292 j Capítulo 12. Optimización. Programación no lineal sin condiciones
Con Newton se obtiene lo del cuadro 12.18. Con el de la Máxima Pendiente lo del 12.19. Con el método de los gradientes
>> [x f]=Newton_unc(@fun5_2,[2;2])
1 1.53333333e+000 -7.67871794e-001 4.74291181e+000 5.00000000e-001
2 7.17182434e-001 2.73081655e-001 1.90728360e+000 1.00000000e+000
3 1.62394466e-001 -1.33801795e-002 3.16058360e-001 1.00000000e+000
4 2.78174708e-003 1.59690475e-006 1.33334500e-002 1.00000000e+000
5 1.43502115e-008 -2.71495235e-018 3.86906467e-006 1.00000000e+000
x =
1.0e-007 *
0.143502114982597
-0.000000000027150
f =
1.029642850223918e-016
Cuadro 12.18
>> [x f]=Maxima_pendiente_unc(@fun5_2,[2;2])
1 -3.33333333e-001 1.44642564e+000 4.74291181e+000 5.00000000e-001
2 1.23456790e-002 4.80532665e-001 8.89243872e-001 1.00000000e+000
3 -6.27225474e-007 3.25798596e-002 1.11454631e-001 1.00000000e+000
4 8.22680750e-020 1.15199317e-005 5.30629777e-004 1.00000000e+000
5 0.00000000e+000 5.09598738e-016 6.63544598e-011 1.00000000e+000
x =
1.0e-015 *
0
0.509598737990710
f =
2.596908737617245e-031
Cuadro 12.19
conjugados lo del cuadro 12.20. Con cuasi Newton el 12.21. Con el método de región de confianza DogLeg, con modelo
>> [x f] = Grad_Conjugados_unc(@fun5_2,[2;2],2)
1 1.53333333e+000 1.88928513e+000 4.74291181e+000 1.00000000e-001
2 -1.24817638e-001 1.06078252e+000 2.92446293e+000 1.00000000e+000
3 -2.60972425e-002 2.32534554e-001 4.95278202e-001 1.00000000e+000
4 -1.98278513e-002 1.70462426e-001 2.71382019e-002 1.00000000e+000
5 -1.20583962e-003 1.35873959e-002 1.46557482e-002 1.00000000e+000
6 -1.37365260e-003 1.15727268e-002 9.30328488e-005 1.00000000e+000
7 2.08186271e-005 2.50443071e-004 6.79059687e-005 1.00000000e+000
8 -2.88173500e-005 2.33979887e-004 3.15775731e-008 1.00000000e+000
9 1.90328536e-006 6.31282977e-007 2.77885134e-008 1.00000000e+000
10 -4.91063765e-008 3.73003496e-007 2.01048075e-012 1.00000000e+000
x =
1.0e-006 *
-0.049106376456762
0.373003496268343
f =
7.072634268876572e-014
Cuadro 12.20
de Newton, el cuadro 12.22. Con el método de Newton amortiguado, para finalizar, el cuadro 12.23.
12.3 Obtención de la solución. Métodos de dirección de descenso j 293
>> [x i f nf]=quasi_newton_1(@fun5_2,[2;2],2)
x =
1.0e-005 *
-0.466633393077767
0.043763046313533
i =
10
f =
1.098304435204189e-011
nf =
20
Cuadro 12.21
>> [x f] = Dogleg_UBC_yo(@fun5_2,[2;2])
k x_k(1) x_k(2) f(x_k) Delta |dx|/Del ro e_1 e_2
0 2.0000e+000 2.0000e+000 4.7429e+000 5.00e-001
1 1.5135e+000 1.8846e+000 2.8658e+000 1.00e+000 0.5000 1.040 2.8e+000 1.4e+000
2 5.8687e-001 1.5086e+000 1.0754e+000 2.00e+000 0.5000 1.233 2.6e+000 1.4e+000
3 -4.1104e-001 -2.2464e-001 1.1188e-001 4.00e+000 0.5000 0.781 2.1e+000 1.6e+000
4 -3.9606e-002 7.4824e-003 8.1253e-004 4.00e+000 0.1095 1.045 1.0e+000 1.9e+000
5 -4.1354e-005 -2.7927e-007 8.5513e-010 4.00e+000 0.0101 1.001 1.0e+000 1.1e-001
6 -4.7149e-014 1.4505e-020 1.1115e-027 4.00e+000 0.0000 1.000 1.0e+000 1.5e-019
Óptimo: x’ = -4.7148815071357958e-014 1.4505439221729893e-020.
Función: f(x) = 1.1115053813167661e-027.
x =
1.0e-013 *
-0.4715
0.0000
f =
1.1115e-027
Cuadro 12.22
>> [x f] = Newton_amortiguado(@fun5_2,[2;2])
1 1.22222222e+000 1.07737607e+000 1.43392805e+000 3.33333333e-001
2 5.74640142e-001 4.41028668e-002 1.75164488e-001 1.11111111e-001
3 1.32066691e-001 4.36656594e-003 8.75568971e-003 3.70370370e-002
4 6.09495146e-003 1.55898129e-004 1.85864837e-005 1.23456790e-002
5 7.44750479e-005 1.90119424e-006 2.77507370e-009 4.11522634e-003
6 3.05225879e-007 7.79177968e-009 4.66421303e-014 1.37174211e-003
7 4.18117642e-010 1.06736708e-011 8.75251085e-020 4.57247371e-004
x =
1.0e-009 *
0.4181
0.0107
f =
8.7525e-020
Cuadro 12.23
294 j Capítulo 12. Optimización. Programación no lineal sin condiciones
Capítulo 13
Contenido
13.1 Formulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
13.2 Definiciones y formas de programas lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
13.3 Desarrollo histórico de la Programación Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
13.4 Formulación de problemas de Programación Lineal . . . . . . . . . . . . . . . . . . . . . . . . . . 297
13.5 Consideraciones geométricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
13.6 Politopos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
13.7 Puntos extremos y soluciones básicas factibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
13.1 Formulación
minimizar f .x/
sujeta a g.x/ D 0
h.x/ 0
minimizar c1 x1 C c2 x2 C C cn xn
sujeta a a11 x1 C a12 x2 C C a1n xn b1
a21 x1 C a22 x2 C C a2n xn b2
:: :: ::
: : :
am1 x1 C am2 x2 C C amn xn bm
y x1 ; x2 ; : : : ; xn 0:
F D fx 2 Rn W Ax b; x 0g
min. c T x
s. a Ax b
x 0:
En forma estándar,
min. c T x
s. a Ax D b
x 0:
En el programa lineal de la figura 13.1 las variables de decisión del problema son x1 y x2 . La función objetivo
2x1 C 5x2 . Las restricciones conforman la región factible (sombreada) de la figura.
Un problema de programación lineal cualquiera
min. c T x
s. a Ax b
x 0;
13.4 Formulación de problemas de Programación Lineal j 297
x0
356
8
min. 2x1 C 5x2
s. a x1 C x2 6
356
x1 2x2 18 7
3146
x1 ; x2 0;
376 5
5 1
x1
0
9
Figura 13.1
se puede expresar en la forma estándar sin más que sustraer un vector y, denominado de variables de holgura, de las
condiciones Ax b:
min. cT x
s. a Ax yDb
x; y 0:
Si las condiciones fuesen Ax b, añadiendo un vector y se obtendría la forma estándar: Ax C y D b.
Si alguna de las variables xi no está restringida a ser no negativa, se puede reemplazar por otras dos, xi0 y xi00 , tales que
xi D xi0 xi00 ;
donde xi0 0 y xi00 0, y el problema pasa a ser uno con formulación estándar.
Si se trata de maximizar una función objetivo, se puede transformar en minimizar esa función teniendo en cuenta que
mKax c T x D mKın c T x:
Para plantear el problema, supongamos que existen en el mercado n alimentos distintos, a unos costes unitarios
c1 ; : : : ; cn , y que se quiere programar una dieta que contenga al menos b1 ; : : : ; bm unidades de m ingredientes nutritivos.
Si el alimento j contiene aij unidades del ingrediente i , y se desea programar el vector dieta x T D Œx1 ; x2 ; : : : ; xn
que fije las cantidades que hay que comprar cada día de cada alimento de tal forma que el coste total sea mínimo, la
formulación del problema en términos matemáticos es esta:
minimizar c1 x1 C c2 x2 C C cn xn
sujeta a a11 x1 C a12 x2 C C a1n xn b1
a21 x1 C a22 x2 C C a2n xn b2
:: ::
: :
am1 x1 C am2 x2 C C amn xn bm
x1 ; x2 ; : : : ; xn 0:
De acuerdo con estos presupuestos, ¿cuál es el plan óptimo de equipamiento de la empresa para esos diez años? ¿Qué
número de centrales son necesarias para hacer frente a la demanda, minimizando el coste actualizado neto necesario para
abordar dicho plan? Las restricciones adicionales son:
No se pueden gastar en total más de 25.500 MM de euros.
Por cuestiones medioambientales, no se pueden construir más de 50 unidades de gas, 10 hidráulicas y 50 unidades
de carbón.
Solución Designando por x1 ; x2 ; x3 ; x4 el número de unidades de cada tipo de generación posible, el problema de
Programación Lineal se puede plantear como se indica en la fórmula 13.1.
Para hacernos una idea de cómo resolver este tipo de problemas con el software disponible, vamos a utilizar los vehícu-
los que nos proporciona M ATLAB. Disponemos de varios instrumentos para abordarlo y los conocimientos suficientes
como para intentarlo. Lo haremos de CINCO MANERAS distintas en las páginas que siguen:
1. Primero utilizamos linprog, el software especializado en Programación Lineal de M ATLAB. Una sesión al res-
pecto con dicho programa se muestra en el cuadro 13.1 de la página 300 que sigue.
2. Segundo, con otro software de M ATLAB, fmincon, para resolver problemas generales de optimización con con-
diciones. La sesión correspondiente es la del cuadro 13.2 de la página 301.
13.4 Formulación de problemas de Programación Lineal j 299
Fórmula 13.1
>> A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...
24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];
>> b=[20;30;1750;25500];
>> c=[240 95 1300 50 0 0 0 0];
>> l=[0 0 0 0 0 0 0 0 ];
>> u=[50 10 50 1000 100000 100000 100000 1000000];
>> options = optimset(’LargeScale’, ’off’, ’Simplex’, ’on’, ’Display’, ’Iter’);
>> [x fval exitflag output lambda]=linprog(c,[],[],A,b,l,u,[],options)
Phase 1: Compute initial basic feasible point.
Iter Infeasibility
0 268.75
1 43.8864
2 28.1167
3 5.34911
4 0.227273
5 -0
Phase 2: Minimize using simplex.
Iter Objective Dual Infeasibility
f’*x A’*y+z-w-f
0 29730.3 1.52213
1 29561.1 1.12263
2 28575 0
Optimization terminated.
x =
50.0000
10.0000
7.1429
126.7857
4.4821
0
0
257.1429
fval =
2.8575e+004
exitflag =
1
output =
iterations: 2
algorithm: ’medium scale: simplex’
cgiterations: []
message: ’Optimization terminated.’
constrviolation: 3.6380e-012
lambda =
ineqlin: [0x1 double]
eqlin: [4x1 double]
upper: [8x1 double]
lower: [8x1 double]
>> lambda.eqlin
ans =
1.0e+003 *
0
-1.2353
-0.0029
0
>> lambda.upper
ans =
265.1471
37.3529
0
0
0
0
0
0
Cuadro 13.1: El problema de la planificación de la generación de energía eléctrica resuelto con linprog()
13.4 Formulación de problemas de Programación Lineal j 301
>> A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0; 24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];
>> b=[20;30;1750;25500]; l=[0 0 0 0 0 0 0 0 ]; u=[50 10 50 1000 100000 100000 100000 1000000];
>> fun = @(x) 240*x(1)+95*x(2)+1300*x(3)+50*x(4);
>> options=optimset(’Display’,’iter-detailed’);
>> x = fmincon(fun,zeros(8,1),[],[],A,b,l,u,[],options)
Max Line search Directional First-order
Iter F-count f(x) constraint steplength derivative optimality Procedure
0 9 0 2.55e+04 Infeasible start point
1 18 28987 3.553e-15 1 225 112
2 27 28925.5 2.274e-13 1 -7.51 3.69 Hessian modified
3 36 28899.5 7.105e-15 1 -4.08 2.54 Hessian modified
4 45 28792.9 6.57e-17 1 -2.63 5.13 Hessian modified twice
5 54 28792 2.274e-13 1 -0.914 0.909 Hessian modified twice
6 63 28750.2 3.638e-12 1 -0.914 0.914 Hessian modified twice
7 72 28575 2.274e-13 1 -0.914 9.27e-05 Hessian modified
Optimization completed: The first-order optimality measure, 8.216127e-13, is less
than options.TolFun = 1.000000e-06, and the maximum constraint violation, 2.273737e-13,
is less than options.TolCon = 1.000000e-06.
>> A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...
24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];
>> b=[20;30;1750;25500];c=[240 95 1300 50 0 0 0 0];
>> l=[0 0 0 0 0 0 0 0 ];u=[50 10 50 1000 100000 100000 100000 1000000];
>> Opt = opti(’f’,c,’eq’,A,b,’bounds’,l,u)
------------------------------------------------------
Linear Program (LP) Optimization
min f’x
s.t. rl <= Ax <= ru
lb <= x <= ub
------------------------------------------------------
Problem Properties:
# Decision Variables: 8
# Constraints: 20
# Linear Equality: 4
# Bounds: 16
------------------------------------------------------
Solver Parameters:
Solver: CLP
------------------------------------------------------
>> [x,fval,exitflag,info] = solve(Opt)
x =
50.0000
10.0000
7.1429
126.7857
4.4821
0
0
257.1429
fval =
28575
exitflag = 1
info =
Iterations: 2
Time: 0.0023
Algorithm: ’CLP: Automatically Chosen Solver’
Status: ’Proven Optimal’
Lambda: [1x1 struct]
Cuadro 13.3: El problema de la planificación de la generación de energía eléctrica resuelto con OPTI
302 j Capítulo 13. Optimización Lineal. Introducción a la Programación Lineal
>> A=[0.33 0.1 0.8 0.01 -1 0 0 0; 0.35 0.1 0.9 0.04 0 -1 0 0;...
24.75 3 64 0.2 0 0 -1 0;210 80 1100 48 0 0 0 1];
>> b=[20;30;1750;25500];
>> c=[240 95 1300 50 0 0 0 0];
>> l=[0 0 0 0 0 0 0 0 ];
>> u=[50 10 50 1000 100000 100000 100000 1000000];
>> Ejemplo_generacion
Cuadro 13.4: El problema de la planificación de la generación de energía eléctrica resuelto con CVX
13.4 Formulación de problemas de Programación Lineal j 303
min. 240x1 C 95x2 C 1:300x3 C 50x4 var x{i in 1..4} >= 0, <= ub[i];
s. a 0;33x1 C 0;1x2 C 0;8x3 C 0;01x4 20
minimize coste: sum{j in 1..4} c[j]*x[j];
0;35x1 C 0;1x2 C 0;9x3 C 0;04x4 30
24;75x1 C 3x2 C 64x3 C 0;2x4 1:750 subject to res1 {i in 1..3}: sum{j in 1..4} a[i,j]*x[j] >= b[i];
210x1 C 80x2 C 1:100x3 C 48x4 25:500 subject to res2: sum{j in 1..4} a[4,j]*x[j] <= b[4];
0 x1 50 data;
param b := 1 20 2 30 3 1750 4 25500;
0 x2 10 param c := 1 240 2 95 3 1300 4 50;
0 x3 50 param a: 1 2 3 4 :=
0 x4 1 0.33 0.1 0.8 0.01
2 0.35 0.1 0.9 0.04
3 24.75 3 64 0.2
4 210 80 1100 48 ;
param ub := 1 50 2 10 3 50 4 infinity;
Cuadro 13.5: Resolución del problema de la planificación de la generación de energía eléctrica con OPTI al que se pasan los
datos mediante AMPL (recuadro arriba a la derecha)
Si planteamos el problema otra vez con AMPL, haciendo que las variables de 23/67
decisión
304 j Capítulo debanLineal.
13. Optimización serIntroducción
enteras, a la Programación Lineal
!
! "
!
$&"' % ( ) - .
$&"' ,% (,) -
$&"' +% (+) - .
! " %
,
, +
+ /.
,..
! %
,
, 0.
+ +
.
! % , + %
++ 1
, +. 0
+ , /. + 2 ,
, 1 1
Cuadro 13.6: Resolución del problema de la planificación de la generación de energía eléctrica con OPTI al que se pasan los
datos en AMPL, obligando a una solución con todas las variables enteras (recuadro de arriba)
13.4 Formulación de problemas de Programación Lineal j 305
13.4.3 Optimización deflujos
!"#$%&' ()$"*$#$)
en redes_Network flows
+,-./012/./3-45467-4/8
JKLKJMNO
J PQRNSKMQNR
Se expresa gráficamente de esta forma.
; b
@De =
bcA @bGd T
T
9 : b l b@Bf
@Ci kEb
@ b@Hj ? 9 TT
@bIg T
l
T
< b @Fh > T
T
T eléctrica, material,
Se trata de encontrar, entre los nudos 1 y 6, el máximo caudal o flujo de gas, petróleo, energía
t D x Cx
JKLKJM0NOJ
PQRNSKMQNRPQN`XKSJR
x 3
1 2 1
x1 C x3 D x4 0 x2 2
aMQXKSPLNMUMWKNMPQ 2 C x5 D x3 C x6
x 0 x3 1
4 C x8 D x5 C x7
Linear programmingxformulation 0 x4 2
x6 D x8 C x9 0 x5 1
maximize t t D x7 C x9 0 x6 3
subject to t = x1 + x2, x1 + x3 = x4, et cetera
0 x7 3
0 ≤ x1 ≤ 3, 0 ≤ x2 ≤ 2, et cetera
0 x8 1
(t = x1 + x2 is equivalent to inequalities t ≤ x01
+ xx92,t ≥
1: x1 + x2, . . . )
La solución óptima de este “sencillo” problema es la que se esquematiza en la figura que sigue.
Solution
2
2 4
2 3
4 1 1 6 4
2 1
3 5
2
Solución Si designamos por x1 ; x2 ; x3 y x4 las cantidades de deuda en miles de millones de euros que tiene que emitir
cada uno de los cuatro años, y por y1 ; y2 e y3 las que hay que depositar el segundo, tercer y cuarto año en cuentas a
plazo fijo, el problema se puede formular matemáticamente de la siguiente manera:
minimizar 20 0;04x1 C 20 0;03x2 C 20 0;035x3 C 20 0;0375x4
sujeta a x1 y1 D2
x2 C 1;015y1 y2 D4
x3 C 1;0125y2 y3 D 8
Transporte de mercancı́as
x4 C 1;01y3 D 5
na empresa dispone de m fábricas capaces de producir ; x4 ; y1 ; y2 ; y3 0:
x1 ; x2 ; x3mensual-
ente a1, a2, . . . , am cantidades de una mercancı́a. El producto ha de
r enviado13.4.5 Transporte
en cantidades b1, b2de
, . . mercancías_Transportation
. , bn a n almacenes. and logistics management
el coste El
desector
enviardel transporte
una unidad y logística es uno de losde
de producto quelamás utiliza la
fábrica PL almacén
i al para optimizar recursos.
Una empresa dispone de fábricas capaces de producir
es cij , se trata de determinar las cantidades xij que habrá aque
m mensualmente 1 ; a2 ; : : : ; am cantidades de una mercancía
que tiene que ser enviada a n almacenes en cantidades b1 ; b2 ; : : : ; bn , respectivamente. El coste de enviar una unidad de
nviar de cada fábrica a cada almacén de tal forma que el coste del
producto de la fábrica i al almacén j es cij . Hay que determinar las cantidades xij que hay que enviar de cada fábrica a
ansporte cada
seaalmacén
mı́nimo paraysatisfacer
se satisfagan los yrequerimientos
las demandas de envı́os
que el coste del transporte total seaamínimo.
alizar. El esquema de lo que se pretende y la formulación matemática del problema son los que siguen.
Fábrica Almacén i
minimizar cij xij
a1 1 1 b1
ij
n
X
a2 2 2 b2 sujeta a xij D ai ; para i D 1; : : : ; m
j D1
X m
xij D bj ; para j D 1; : : : ; n
i D1
am m n bn xij 0; para i D 1; : : : ; m
j D 1; : : : ; n:
Pm Pn 16
Además, i D1 ai D j D1 bj : la cantidad total producida tiene que ser igual a la suma de las que llegan a los almacenes.
x1 5 3
6
4 0
5 1
-x09x 1 8 9
4 En el punto óptimo, x D Œ4=3; 14=3T , denominado punto
extremo o vértice, es imposible, manteniendo la factibilidad,
mover más z D x1 3x2 en la dirección de c.
346
3 6 5
c
90
8 9 0 x0
Figura 13.2
13.5.1 Convexidad
Definición 13.1 Un conjunto C Rn se dice convexo si y sólo si para todo par de puntos x1 ; x2 2 C todas las
combinaciones de la forma x D x1 C .1 /x2 , 0 1 están en C .
Cuando para cada par de puntos del conjunto convexo todos los puntos del segmento de recta que los une están en
el conjunto (ver variantes y formaciones en la figura 13.3). La expresión x D x1 C .1 /x2 , 0 1, define la
combinación convexa de x1 y x2 . Si 0 < < 1, es decir 2 .0; 1/, la combinación es estrictamente convexa.
El concepto de combinación convexa se puede generalizar a cualquier número finito de puntos de la siguiente manera:
p
X
xD i xi ;
i D1
Pp
donde i D1 i D 1; i 0; i D 1; : : : ; p:
Teorema 13.1 El conjunto de soluciones de un programa lineal, K D fx 2 Rn W Ax D b; x 0g, es un conjunto
convexo.
308 j Capítulo 13. Optimización Lineal. Introducción a la Programación Lineal
Definición 13.2 Un conjunto C Rn se dice un cono si para todo x 2 C , x 2 C , para todo escalar no negativo
2 R ( 0). Un cono que también es convexo se denomina cono convexo.
El conjunto fx 2 Rm W x D A˛; A 2 Rmn ; ˛ 2 Rn ; ˛ 0g es un cono convexo generado por los vectores columna
de la matriz A.
Definición 13.3 x es un punto extremo, o vértice, de un conjunto convexo C si y sólo si no es interior a un segmento
de recta contenido en C . Es decir, si y sólo si x D .1 ˇ/y C ˇz con 0 < ˇ < 1 y y; z 2 C ) x D y D z:
54678
123 54678 13
0 0
Figura 13.4
01234516789
1
5
8
276
5
8
!!!!4
! "#$
Soluciones óptimas alternativas En este caso el punto óptimo es cualquiera de los puntos de una denominada faceta,
o cara, de la región factible como muestra la figura 13.5 En (a) la región factible está acotada mientras que en (b) no.
% %
' "#$!&)' Figura 13.5
Solución óptima no acotada Este caso se presenta cuando la configuración región factible-función objetivo tiene la
forma de la figura 13.6. Es posible desplazarse tanto como se desee dentro de la región factible en la dirección c sin
encontrar un punto extremo o cara de la región factible que bloquee dicho desplazamiento.
*+
Región factible vacía La de la figura 13.7, por ejemplo. Su región factible es el conjunto vacío, ;, pues no hay ningún
x D Œx1 ; x2 T que satisfaga todas las condiciones. El problema se dice no factible o inconsistente.
!!"# $
!%$
!&'($
!)!)*%$
13.5 Consideraciones geométricas j 309
'
Su región factible es el ∅ pues no hay ningún x = [x1, x2]T que satis-
Figura 13.6
faga todas las condiciones. -.
2x 1 − x 2 ≤ 3 −x 1 + 2x 2 ≤ 2
0
3
min. 2x1 C 3x2
x2 ≥ 3
s. a x1 C 2x2 2
0 8/3
2x1 x2 3 7/3
1
x1 0
x2 3:
3/2
0
Figura 13.7 25
n
X 05 698
min. cj xj
04 03 05 03
j D1 04
n
X
s. a aj xj D b
j D1 2 01
x1 ; : : : ; xn 0: 01 2
donde aj es el vector columna j de A.
El óptimo será un vector de escalares no negativos de dimensión n que defina una combinación de los vectores columna
de A de tal forma que b pertenezca al cono convexo generado por estos vectores columna y que minimice la función
objetivo.
En la figura 13.8 se representan los casos de un problema con región factible no vacía y otro con región factible vacía.
En el segundo caso, (b), los vectores a1 , a2 , a3 y a4 no se pueden combinar convexamente de ninguna manera que
contenga a b.
310 j Capítulo 13. Optimización Lineal. Introducción a la Programación Lineal
05 678 698
04 03 05 03
04
2 01
01 2
Figura 13.8: Problemas de PL con región factible no vacía y vacía
Consideremos como ejemplo las regiones factibles que determinan los dos conjuntos de condiciones que siguen.
En (a) se puede ver que b está contenido en ese cono convexo; en (b) no: el primer problema es factible; el segundo es
inconsistente.
Si existe solución factible, la intersección del cono convexo que generan a1 ; : : : ; an y el conjunto de vectores menores o
iguales que b será no vacía como se aprecia en la figura 13.9.
y se minimice z.
Se busca poder expresar el vector Œz, bT T en el cono convexo que generan los vectores Œc1 ; a1T T ; : : : ; Œcn ; anT T con
el valor más pequeño posible del escalar z.
13.6 Politopos j 311
a4
a4
a1 a2 a1 a2
b
b
En (a) la región factible es no vacía; en (b)
vacía. vacía.
567 587
Figura 13.9
2
Ejemplo 13.2 Sea ahora min. 2x1 3x2
s. a x1 C 2x2 2
x1 ; x2 0:
Si se sustrae de la primera condición la variable de holgura x3 , el problema es el de encontrar unos escalares
x1 ; x2 ; x3 0 tales que se cumpla que
z 2 3 0
D x1 C x2 C x3
2 1 2 1
13.6 Politopos
Definición 13.4 Llamaremos hiperplano H de vector característico a 2 Rn ; a ¤ 0, al conjunto H D fx 2 Rn W
aT x D c , con c 2 R.
312 j Capítulo 13. Optimización Lineal. Introducción a la Programación Lineal
03
7890
3 5
46
5
0453
2 En el cono que generan los vectores Œ 2, 1T , Œ 3, 2T y Œ0, 1T se
pueden encontrar puntos de la forma Œz, 2T , con z tan pequeña como
013 queramos: el valor óptimo de la función objetivo tiende, por consiguien-
-2
te, a 1. El problema no está acotado.
Figura 13.10
H+
y
x̄
H−
a H
Figura 13.11: El hiperplano x1 C 4x2 D 11, sus características y las regiones que define
HC y H es el espacio Rn .
Definición 13.7 Un politopo es un conjunto formado por la intersección de un número finito de semiespacios cerrados.
314 j Capítulo 13. Optimización Lineal. Introducción a la Programación Lineal
2 432
2 1 ÿ 5
Figura 13.13
Si esas m columnas son las primeras y forman la submatriz B de A, ésta queda como ilustra la figura 13.13. Como
B es regular, la ecuación BxB D b se puede resolver de forma única. El vector x T D ŒxBT ; 0T es una de las múltiples
soluciones de Ax D b.
Definición 13.10 Sea B cualquier submatriz no singular m m resultante de agrupar m columnas linealmente inde-
pendientes de A.
Si todos los n m coeficientes del vector x no asociados a las columnas de B, a los que se denominarán variables
no básicas, se hacen cero y se resuelve la ecuación Ax D b en los m restantes coeficientes, denominados variables
básicas, la solución resultante de denomina solución básica asociada a la matriz básica, o base, B.
Las n m columnas de A que no forman parte de B se las agrupa en una matriz m .n m/ denominada matriz
no básica N (asociada a las variables no básicas); en correspondencia, las variables no básicas forman xN .
x7
0 23 0 43
4 4
0 13
2
x6
definido por x1 C x2 6, x2 3 y x1 ; x2 0.
Si añadimos las variables de holgura x3 y x4 a la primera y segunda desigualdad, respectivamente, resulta:
x1 C x2 C x3 D6
x2 C x4 D 3
x1 ; x2 ; x3 ; x4 0:
La matriz de los coeficientes es A D Œa1 ; a2 ; a3 ; a4 D 10 11 10 01 . Las posibles matrices B que se pueden extraer de
A y sus correspondientes soluciones básicas son las del cuadro 13.7.
La cuarta de estas soluciones no vale por ser uno de sus coeficientes negativo; es no factible. Las soluciones básicas
factibles son pues 2 3 2 3 2 3 2 3
3 6 0 0
3 0 3 0
x1 D 4 0 5 ; x2 D 4 0 5 ; x3 D 4 3 5 y x4 D 4 6 5 :
0 3 0 3
Obsérvese que estos puntos determinan con sus dos primeros coeficientes los cuatro puntos extremos de la figura
anterior.
13.7 Puntos extremos y soluciones básicas factibles j 315
x1 1 1 6 3
xB D D B 1b D D
11 x2 0 1 3 3
B D Œa1 ; a2 D
01 x3 0
xN D D
x 0
4
x1 10 6 6
xB D D B 1b D D
10 x4 0 1 3 3
B D Œa1 ; a4 D
01 x2 0
xN D D
x 0
3
x2 0 1 6 3
xB D D B 1b D D
11 x3 1 1 3 3
B D Œa2 ; a3 D
10 x1 0
xN D D
x 0
4
x2 10 6 6
xB D D B 1b D D
10 x4 11 3 3
B D Œa2 ; a4 D
11 x1 0
xN D D
x 0
3
x3 10 6 6
xB D D B 1b D D
10 x4 0 1 3 3
B D Œa3 ; a4 D
01 x1 0
xN D D
x2 0
Cuadro 13.7: Posibles matrices B que se pueden extraer de A y sus correspondientes soluciones básicas
Definición 13.11 Si una o más de las variables básicas de una solución básica de
Ax D b
x 0;
es cero, la solución se denomina básica degenerada. Una solución básica en la que todos sus coeficientes son no
negativos se denomina solución básica factible; si algún coeficiente es cero, la solución se dice básica factible dege-
nerada.
Dos soluciones básicas factibles del politopo P D fx 2 Rn W Ax D b; x 0g se dicen adyacentes si m 1 de sus
coeficientes son comunes.
Dos soluciones adyacentes o puntos extremos están unidos por una arista. Suponiendo no degeneración, cualquier
variable básica (y su correspondiente punto extremo) tiene exactamente n m adyacentes.
Teorema 13.2 Equivalencia entre puntos extremos y soluciones básicas. Sean A 2 Rmn una matriz de rango m,
b 2 Rm y el politopo convexo P D fx 2 Rn W Ax D b; x 0g. Un x 2 P es un punto extremo o vértice de P si y
sólo si los vectores columna de A asociados a los coeficientes positivos de x son linealmente independientes.
x7
023 043
4 4
x1 C x2 6
x2 3
x1 C 2x2 9
013
x1 ; x2 0:
2
x6
Figura 13.14
Si añadimos las variables de holgura x3 , x4 y x5 a la primera, segunda y tercera desigualdad, respectivamente, resulta
x1 C x2 C x3 D6 2 3
11100
x2 C x4 D3
x1 C 2x2 C x5 D 9 I A D Œa1 ; a2 ; a3 ; a4 ; a5 D 4 0 1 0 1 0 5
12001
x1 ; x2 ; x3 ; x4 ; x5 0:
Œx1 x2 x3 x4 x5 T D Œ3 3 0 0 0T :
La correspondencia entre soluciones básicas factibles y puntos extremos no es en general biunívoca: A cada solución
básica factible le corresponde un único punto extremo en P , pero puede que a cada punto extremo de P le corresponda
más de una solución básica factible.
Cuando A no tiene rango completo, P puede ser el conjunto vacío o alguna de las condiciones es redundante. En lo
sucesivo supondremos que A 2 Rmn tiene m vectores fila/columna linealmente independientes.
13.7 Puntos extremos y soluciones básicas factibles j 317
Un problema de programación lineal se denomina no degenerado si todas sus soluciones básicas factibles son no
degeneradas. La correspondencia en este caso entre puntos extremos y soluciones básicas factibles sí es biunívoca.
Si el politopo P no está acotado, para caracterizar del todo las soluciones del problema de Programación Lineal hay
que introducir las direcciones.
Definición 13.12 Una dirección del politopo P D fx 2 Rn W Ax D b; x 0g es un vector no nulo d 2 Rn tal que
para todo x0 2 P el rayo fx 2 Rn W x D x0 C d; 0g pertenece a P .
Un politopo P no está acotado si y sólo si tiene una dirección. d ¤ 0 es una dirección de P si y sólo si Ad D 0 y
d 0, pues cualquier punto a lo largo de esa dirección cumple las condiciones y mejora la función objetivo sin límite.
Teorema 13.6 Teorema de la representación. Todo punto del politopo P D fx 2 Rn W Ax D b; x 0g de soluciones
de un PL se puede expresar de la forma X
xD i vi C d;
i 2I
P
donde fvi W i 2 I g es el conjunto de puntos extremos de P , i 2I i D 1, i 0, y d, o es una dirección de P , o
d D 0.
más teórico y Gill, Murray y Wright [1991], mucho más práctico, con un perfecto engarce con la teoría afín de álgebra
lineal. También se puede consultar Boyd y Vandenberghe [2004] y Nocedal y Wright [2006].
Otra buenas referencias clásicas sobre programación lineal son Chvátal [1983], Dantzig [1963], Darst [1991], Dorf-
man, Samuelson y Solow [1958], Fourer, Gay y Kernigham [1993], Hillier y Lieberman [1995], Karloff [1991], Minoux
[1986], Murty [1983], Nash y Sofer [1996], Padberg [1995], Panik [1996], Saigal [1995], Sierksma [1996], Simonnard
[1972] y [1973] y Van de Panne [1976]. Más recientemente la de Luenberger mencionada y todas aquellas que convergen
en Programación No Lineal, de las que hablaremos en el capítulo correspondiente entre las que destacan la de Nocedal
y Boyd y Vandenberghe [2004].
Capítulo 14
Contenido
14.1 Condiciones de punto óptimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
14.2 Mejorar una solución básica factible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
14.3 El algoritmo Símplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
14.4 Solución básica factible inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
14.5 Análisis de sensibilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
14.6 El método Símplex para variables acotadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
14.7 Implementaciones divulgativas o “comerciales” del Símplex . . . . . . . . . . . . . . . . . . . . . 356
14.8 Complejidad computacional del algoritmo Símplex . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
min. c T x
s. a Ax D b
x 0;
se podrían estudiar, uno a uno, los vértices o puntos extremos del politopo
P D fx 2 Rn W Ax D b; x 0; A 2 Rmn ; b 2 Rn g
y determinar aquél en el que la función objetivo se hace mínima. Para m y n grandes, considerar todos es prohibitivo
pues son mŠ.nnŠ m/Š :
En 1947 George B. Dantzig, EE.UU. 1914-2005,
Dantzig
Encontrar un vértice desde el que comenzar: solución básica factible del politopo P ;
Desplazarse desde ese punto extremo a otro, a lo largo de alguna arista de P , mejorando con ello la función objetivo.
Repetir el paso anterior cuantas veces sea necesario hasta que se alcance la solución óptima o la arista escogida
lleve a 1.
La condición i es la de factibilidad del problema tal como está planteado. La Función de Lagrange del problema es
L.x; ; / D c T x T .Ax b/ T x:
cN D N C N T ; N 0:
having come to the United States from Bialystok which was then under Russian
control. (It is now in Poland.) As a child, William was known as “Willie;”
his older brother Fred was called “Freddie” [39]. They eventually had two
younger siblings, Jack and Esther. Of the four, only Esther is still living. Willie
outgrew this diminutive name and became known as “Will.” He attended
public schools in Chicago, graduating from Murray F. Tuley High School in
June, 1934. From that point on, his Bachelor of Science, Master of Science,
and Doctor of Philosophy were all earned at the University of Chicago in 1938,
1939, and 1942, respectively [18].
Based on an entry in the 17th Edition of American Men & Women of Science
[1, p. 215], the table below gives a summary of the positions held by William
Karush. The table does not make explicit the fact that during World War
II, Karush worked on the Manhattan Project which culminated in the atomic
14.2 Mejorar una solución básica factible j 321
Es decir, a que
cN NTB T
cB 0
Este vector se denomina de costes reducidos; tiene que ser no negativo en el punto óptimo.
Vectores y condiciones clave en PL:
xB D B 1 b
N D cN N T B T
cB 0
D B T cB
min. c T x
s. a Ax D b
x 0:
Al suponer xB > 0, un cambio suficientemente pequeño 4b en b no debe modificar la base óptima B; la solución
óptima sería
xO B B 1 .b C 4b/
xO D D :
0 0
El valor de i indica cómo cambia la función objetivo al incrementar una unidad la cantidad disponible del
recurso bi de la condición i-ésima.
Su valor es un precio o valor marginal del recurso i -ésimo en el óptimo: el máximo que se puede estar
dispuesto a pagar por incrementar una unidad su disponibilidad.
BxB C NxN D b:
Despejando xB ,
1 1
xB D B b B NxN
322 j Capítulo 14. Programación lineal. El método Símplex
cNj D cj cBT B 1
aj ; j >m
que sea negativo, pues hará decrecer la función objetivo aumentando el valor de la variable no básica correspondiente.
Si por ejemplo cNj < 0, la función objetivo decrece al ritmo que marca el incremento desde cero de la variable no básica
xj .
Como a coste reducido más negativo, decrecimiento más rápido, se escoge para entrar en la base aquella variable no
básica que tenga el coste reducido más negativo.
¡OJO! Si la solución es básica degenerada, pues el valor de alguna variable básica es cero, puede ocurrir que en
alguna dirección cualquier desplazamiento haga que
x. / D x C y
viole la factibilidad del problema. Esto ocurre pues en una solución básica degenerada confluyen más de m hiperplanos
como se ve en la figura 14.1. En este caso d1 es una dirección de movimiento factible; d2 no.
x3
d3
d2
P
x2
x2
79
79 7 c
d2
3 d1
78 x1
----c 9
Figura 14.2: Solución básica inicial del ejemplo 14.1
La función objetivo decrece siguiendo la dirección (d2 en la figura) que determina el coste reducido cN3 : la de incre-
mentar la variable no básica x3 .
Las variables básicas se deben mover de la forma
1 1
xB D B b B a3 I
El valor de la variable no básica xq se verá incrementado después de este paso desde cero a xN q , pasando a ser básica
en detrimento de la variable xBp , que pasará a ser no básica y por tanto cero.
Para completar una iteración del método Símplex resta reemplazar el vector ap por el aq en la base, es decir, hacer
N D B C .aq
B ap /epT :
quedando
N D ŒaB ; aB ; : : : ; aB
B ; aq ; aBpC1 ; : : : ; aBm :
1 2 p 1
1
La solución inicial, xB D B b, xN D 0, es pues
2 3 2 3
x1 0
6 x2 7 6 0 7 6
6 7 D 6 7 y la función objetivo z D c T B 1
b D Œ0; 0 D 0:
4 x3 5 4 6 5 B
1
x4 1
Iteración 1. Paso 1
Calculemos los multiplicadores símplex resolviendo B T D cB :
1
10 0 0
D D :
01 0 0
Todavía no se ha llegado al óptimo pues los costes reducidos de las variables no básicas son negativos.
Iteración 1. Paso 2
Elijamos la variable no básica x2 como aquella que ha de entrar en la base pues tiene el coste reducido más negativo.
Resolvamos el sistema By D a2 :
1
10 3 3
yD D :
01 1 1
Iteración 1. Paso 3
La variable básica a salir de la base se obtendrá de calcular
xB1 xB2 6 1
D mKın ; D mKın ; D 1:
y1 y2 3 1
Iteración 1. Paso 4
Readaptemos la solución y las estructuras correspondientes:
x2 D1
x3 x3 y1 D 6 13D3
x4 x4 y2 D 1 1 1 D 0:
14.3 El algoritmo Símplex j 327
Iteración 2. Paso 1
Calculemos los nuevos multiplicadores símplex resolviendo B T D cB :
1
10 0 10 0 0
D D D :
31 3 31 3 3
Iteración 2. Paso 2
Elegimos la única variable no básica capaz de mejorar la función objetivo, x1 , como aquella que ha de entrar en la base.
Resolvamos el sistema By D a1 :
1
13 2 1 3 2 5
yD D D :
01 1 0 1 1 1
Iteración 2. Paso 3
La variable básica a salir de la base se obtendrá de calcular
xB1 3 3
D mKın D mKın D :
y1 5 5
Iteración 2. Paso 4
Readaptemos la solución y las estructuras correspondientes:
3
x1 D 5
3 8
x2 x2 y2 D 1 5
. 1/ D 5
3
x3 x3 y1 D 3 5
5 D 0:
La solución queda:
2 3 2 3
x1 3=5
6 x2 7 6 8=5 7
6 7D6 7
4 x3 5 4 0 5
x4 0
con
23 10
B D Œa1 ; a2 D y N D Œa3 ; a4 D :
11 01
Iteración 3. Paso 1
Calculemos los nuevos multiplicadores símplex resolviendo B T D cB :
1 " 1 1
#
2 1 1 5 5 1 4=5
D D 3 2
D :
3 1 3 3 3=5
5 5
Todos los costes reducidos son positivos por lo que se ha llegado al único óptimo del problema.
La solución óptima es
2 3 2 3
x1 3=5
6 x2 7 6 8=5 7
6 7D6 7
4 x3 5 4 0 5 :
x4 0
La función objetivo
T 6 27
zD cBT B 1 b D b D Œ 4=5; 3=5 D :
1 5
Las soluciones básicas factibles que se han ido obteniendo en el proceso se indican en la figura 14.3.
14.3 El algoritmo Símplex j 329
569
8
x2 9
x1 C x2 C x4 D 1
x1 ; x2 ; x3 ; x4 0:
3
568 x1
7
4
Figura 14.3: Camino hacia la solución del ejemplo 14.2
Resolver este problema con el ya presentado ProgLineal_3 y con el solver linprog de M ATLAB, en una sesión de
este software, sería como sigue.
Obsérvese que con Linprog() no sería necesario suministrar el problema en forma estándar pues admite dos conjun-
tos de condiciones: de igualdad y desigualdad. Si, en cambio, hay que explicitar que las cotas inferiores de las variables
son cero.
min. x1 3x2
s. a x1 2x2 4
x1 C x2 3
x1 ; x2 0:
330 j Capítulo 14. Programación lineal. El método Símplex
La solución inicial, xB D B 1 b, xN D 0, es
2 3 2 3
x1 0
6 x2 7 6 0 7 4
6 7 D 6 7; T
de función objetivo z D cB B 1
b D Œ0; 0 D 0:
4 x3 5 4 4 5 3
x4 3
La región factible de este problema es la que se ilustra en la figura 14.4.
x2
9
P
6
x1
45 78
79
Iteración 1. Paso 1
Calculemos los multiplicadores símplex resolviendo B T D cB :
1
10 0 0
D D :
01 0 0
Los costes reducidos de las variables no básicas son
1
cN1 D c1 T a 1 D 1 Œ0; 0 D 1 y
1
2
cN2 D c2 T a2 D 3 Œ0; 0 D 3:
1
Al ser negativos los costes reducidos, esta solución no es óptima.
Iteración 1. Paso 2
Elegimos la variable no básica x2 como aquella que ha de entrar en la base pues su coste reducido es el más negativo.
Resolvamos el sistema By D a2 :
1
10 2 2
yD D :
01 1 1
14.3 El algoritmo Símplex j 331
Iteración 1. Paso 3
La variable básica a salir de la base se obtendrá de calcular
xB2 3
D mKın D mKın D 3:
y2 1
Es decir saldrá xB2 D x4 .
Como venimos haciendo, esto también de puede comprobar a partir de la expresión
xB1 x3 1 4 2
D D B b y D ;
xB2 x4 3 1
Iteración 1. Paso 4
Readaptemos la solución y las estructuras correspondientes:
x2 D3
x3 x3 y1 D 4 3 . 2/ D 10
x4 x4 y2 D 3 3 1 D 0:
La solución queda:
2 3 2 3
x1 0
6 x2 7 6 3 7
6 7D6 7
4 x3 5 4 10 5
x4 0
con
1 2 10
B D Œa3 ; a2 D y N D Œa1 ; a4 D :
0 1 11
Iteración 2. Paso 1
Calculemos los multiplicadores símplex resolviendo B T D cB :
1
10 0 10 0 0
D D D :
21 3 21 3 3
Iteración 2. Paso 2
Elegimos la única variable no básica posible, x1 , como aquella que ha de entrar en la base. Resolvamos el sistema
By D a1 :
1
1 2 1 12 1 1
yD D D :
0 1 1 01 1 1
332 j Capítulo 14. Programación lineal. El método Símplex
Como todos los yi ; i D 1; 2 son negativos, hay un rayo de soluciones factibles a lo largo del cual c T x ! 1. La
solución es pues no acotada.
Ejemplo 14.4 Soluciones óptimas alternativas. Hay que resolver:
Iteración 1. Paso 1
Calculemos los multiplicadores símplex resolviendo B T D cB :
1
1 1 2 11 2 2
D D D :
0 1 0 01 0 0
Hemos llegado a un punto óptimo. Este óptimo, sin embargo, no es único. El por qué de lo cual se puede apreciar en
la figura 14.5.
14.3 El algoritmo Símplex j 333
x2
!"#
$"#
48
34567849
%
x1
Figura 14.5
Fue expuesto por E.M.L. Beale en 1955 y muestra cómo el método Símplex puede quedar atrapado en un ciclo infinito
si se escoge como variable a entrar en la base aquella que posee el coste reducido más negativo y para salir de ella una
de las que proporcionan el mínimo .
Si se comienza a resolver partiendo de la base B D Œa1 ; a2 ; a3 , siguiendo el método Símplex ordinario se obtienen
las bases Œa4 ; a2 ; a3 , Œa4 ; a5 ; a3 , Œa6 ; a5 ; a3 , Œa6 ; a7 ; a3 , Œa1 ; a7 ; a3 y otra vez Œa1 ; a2 ; a3 .
Si se vuelve a utilizar la misma sucesión de variables a entrar y salir de la base, el método entra en un ciclo infinito.
334 j Capítulo 14. Programación lineal. El método Símplex
Bland
Mediante esta regla —la más sencilla de usar— se elige como variable que ha de entrar en la base, de entre las de
coste reducido negativo, aquella con menor índice.
Para salir de la base, si el ratio es igual en varias, también aquella con menor índice.
Ax C xh D b
x; xh 0:
x1 C 2x2 4
x1 C x2 1
x1 ; x2 0:
x1 C 2x2 C x3 D4
x1 C x2 C x4 D 1
x1 ; x2 ; x3 ; x4 0:
x1 C x2 C x3 6
2x1 C 3x2 C 3x3 3
x2 ; x3 0:
Cuando como aqui x1 una variable no está restringida a tomar valores no negativos, podemos sustituirla por xi0 xi00 ,
xi0 0, xi00 0. Si lo hacemos e introducimos las variables de holgura x4 y x5 , las condiciones quedan:
x10 x100 C x2 C x3 C x4 D6
2x1 C 2x100 C 3x2 C 3x3
0
x5 D 3
x10 ; x100 ; x2 ; x3 ; x4 ; x5 0:
No es inmediato determinar una base B que nos permita obtener una solución inicial básica factible.
Ejemplo 14.7 Estudiemos ahora las siguientes condiciones:
x1 C x2 2x3 3
2x1 C x2 C 3x3 7
x1 ; x2 ; x3 0:
Si para hacer todos los coeficientes del vector b no negativos multiplicamos la primera condición por 1 e introducimos
las variables de holgura x4 y x5 , las condiciones quedarán así
x1 x2 C 2x3 x4 D3
2x1 C x2 C 3x3 C x5 D 7
x1 ; x2 ; x3 ; x4 ; x5 0:
Tampoco de aquí se puede determinar de una manera sencilla una base inicial del problema.
Ax C xa D b;
con x 0 y xa 0.
Si se quiere conseguir una solución factible del problema original habrá que forzar a que los coeficientes del vector
xa sean cero. Es decir, resolver también con el método Símplex el problema inicial
m
X
min. xai
i D1
s. a Ax C xa D b
x; xa 0:
Si el problema original admite una solución factible, en la solución del transformado se tendrá que xa D 0.
Si tal solución factible no existe, el problema transformado acabará con algún coeficiente de xa positivo.
336 j Capítulo 14. Programación lineal. El método Símplex
s. a BxB C NxN D b
xB ; xN 0:
El algoritmo Símplex revisado, completo, consta así de las dos fases que se indican en el cuadro 14.3.
Al final de la Fase I, si la solución tiene alguna variable artificial en la base y xai D 0 (degenerada), dicha variable se
puede intercambiar por una no básica —de las originales— xj , o suprimirse sin más que eliminar la condición redundante
correspondiente. Concretamente:
Si la variable básica xak D 0 y se cumple que ekT B 1 aj ¤ 0, la variable xak se puede reemplazar por la xj .
Si para todo aj 2 N , ekT B 1 aj D 0, el sistema Ax D b tiene una condición redundante y se puede eliminar la
fila k-ésima de la matriz A original (así como la fila y columna k-ésima de B).
Circunstancias de este tipo se evitan habitualmente con un mecanismo de preproceso para aligerar el problema de
redundancias, incoherencias, etc.
Ejemplo 14.8 Hay que resolver el siguiente problema:
min. x1 2x2
s. a x1 C x2 2
x1 C x2 1
x2 3
x1 ; x2 0:
min. x1 2x2
s. a x1 C x2 x3 D 2
x1 C x2 x4 D 1
x2 C x5 D 3
x1 ; x 2 ; x 3 ; x 4 ; x 5 0:
Como la base de partida no es de fácil obtención, introducimos las variables artificiales y planteamos el siguiente pro-
blema dentro de la fase I:
min. x6 C x7
s. a x1 C x2 x3 C x6 D2
x1 C x2 x4 C x7 D 1
x2 C x5 D3
x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 0:
14.4 Solución básica factible inicial j 337
1
La solución inicial, xB D B b, xN D 0, es:
2 3 2 3 1 2 3 2 32 3 2 3
x5 010 2 001 2 3
4 x6 5 D 4 0 0 1 5 415 D 41 0 05415 D 425:
x7 100 3 010 3 1
Por tanto,
2 3 2 3
x1 0
6 x2 7 6 0 7
6 7 6 7
6x 7 607
6 37 6 7
6 7 6 7
6 x4 7 D 6 0 7 :
6 7 6 7
6 x5 7 6 3 7
6 7 6 7
4 x6 5 4 2 5
x7 1
2 3 1 2 3 2 32 3 2 3
001 0 010 0 1
D 41 0 05 415 D 40 0 15415 D 415:
010 1 100 1 0
x2 D1
x5 x5 y1 D 3 11D2
x6 x6 y2 D 2 11D1
x7 x7 y3 D 1 1 1 D 0:
x1 D D 21
1 3
x5 D x5 y1 D 2 2
1D 2
1
x6 D x6 y2 D 1 2
2D0
1
x2 D x2 y3 D 1 2
. 1/ D 32 :
con 2 3 2 3
0 01 1 1
B D Œa5 ; a4 ; a2 D 4 0 1 1 5 y N D Œa3 ; a1 D 4 0 15:
1 01 0 0
La nueva solución es 2 3 2 3
x1 0
6x 7 637
6 27 6 7
6 7 6 7
6 x3 7 D 6 1 7 :
6 7 6 7
4 x4 5 4 2 5
x5 0
Las nuevas matrices: 2 3 2 3
1 01 0 1
B D Œa3 ; a4 ; a2 D 4 0 1 1 5 I N D Œa5 ; a1 D 4 0 15:
0 01 1 0
s. a Ax C xa D b
x; xa 0:
La constante M se elige “suficientemente grande” de tal forma que esté muy penalizado que en el óptimo xa ¤ 0.
Eventualmente, si existe solución factible del problema original, las variables artificiales tenderán a cero en el proceso
de obtención del óptimo de este problema.
Esta alternativa tiene dos inconvenientes relevantes:
344 j Capítulo 14. Programación lineal. El método Símplex
528 568
x
7 7
3
58 59
68
9 7
6
x1
4
Figura 14.6: Camino seguido hacia la solución del problema del ejemplo 14.8
La necesidad de escoger un determinado valor fijo de M que asegure que las variables artificiales no van a estar en
la base de la solución óptima. Un valor excesivamente grande de M, con respecto a los coeficientes del vector c
y de la matriz A, puede hacer que los errores de redondeo de los cálculos y la inestabilidad numérica del proceso
lleguen a ser importantes.
Que el número de variables del problema se incrementa notablemente.
Resolvamos con esta técnica un ejemplo anterior ya preparado para hacerlo:
Con un pequeño esfuerzo, una vez obtenida la solución con el método Símplex se puede conocer hasta qué punto ese
óptimo seguirá siéndolo y qué pueden representar, en costes o beneficios, determinadas variaciones de los parámetros
del problema.
Esto es frecuente estudiarlo cuando los costes de producción de un artículo deben variar en el tiempo al fluctuar el
precio de una materia prima o, en general, cuando los datos del problema son estimaciones más o menos imprecisas de
una realidad en la que oscilan con determinados márgenes. Estudiemos cómo afecta a la solución de un problema de PL
el que varíen los coeficientes de la función objetivo c o el vector b.
min. Œc C T x
s. a Ax D b
x 0:
La base B de la solución óptima del problema original (sin los parámetros) seguirá siéndolo mientras los costes
reducidos de las variables no básicas sigan siendo no negativos; es decir, mientras que
ŒcN C N T ŒcB C B T B 1
N 0T :
Consideraremos los dos casos más generales: 1. Que la variable cuyo coeficiente de coste varía no está en la base; 2.
Que está en la base.
1. La variable cuyo coeficiente de coste varía no está en la base. Para que los costes reducidos sigan siendo
óptimos, es decir,
ŒcN C N T cBT B 1
N 0T ;
Esto obliga a que el coeficiente del vector coste sólo pueda variar hacia abajo (decrecer), en una cantidad i
igual al coste reducido de la variable i que varía. Es decir
i cNi :
i D mKax mKax f cNk =dk ; dk > 0g ; 1
1kn m
mKın mKın f cNk =dk ; dk < 0g ; 1 D i
1kn m
T
1
expresión en la que d D B.i;W/ N es el vector fila i -ésimo del producto de la inversa de B por N .
346 j Capítulo 14. Programación lineal. El método Símplex
donde bN D B 1 b y B es la base óptima. Esa base seguirá siendo óptima en tanto y cuando sus coeficientes sigan siendo
no negativos.
Para cada modificación ıi del coeficiente i del vector b, si
2 3
0
6:7
6 :: 7
6 7
6 7
d D B 1 617 i D B 1 ei ; vector columna i-ésimo de la
6:7 inversa de la base
6:7
4:5
0
La solución completa es
2 3
2
637 60 80 120 80
6 7
xB D 4 5 ; B D ; B 1
D 1
;
0 160 120 5600 160 60
0
1 0 1 368 1 368
N D ; D 560
y cN D 560
:
0 1 2 2
Esto se cumple en Œ ; D Œ 1=4; 92=3. El coeficiente de x puede moverse pues en el rango Œ39;75 70;67
para que la solución siga siendo óptima.
2. ¿Cuánto puede variar el coeficiente 360 del término independiente sin que cambie la base óptima, es decir
b1 b1 C ı?
El vector d es en este caso
1 1 1 120
d DB D ;
0 5600 160
2 1 120
por lo que xB C ı 5600 .
3 160
La base óptima original seguirá siendo óptima mientras xB sea positiva; es decir, mientras
120
˚2 ı0
5600
160
3C 5600
ı 0:
Esto se cumple en el intervalo Œı; ı D Œ 105 280=3, por lo que el coeficiente 360 puede variar entre
360 105 y 360 C 280=3 sin que cambie la solución óptima del problema original.
El valor del multiplicador símplex 1 indica cómo varía la función objetivo cuando coeficiente 360 se mueve
en ese rango de valores:
368 33
z zC ı D 239 C ı:
560 35
Resolvamos este pequeño problema con ProgLineal_3(). El resultado de hacerlo se puede ver en el cuadro 14.4.
Hemos acelerado el proceso dando directamente la base final que conocemos.
Ahora le vamos a aplicar la rutina de M ATLAB del cuadro 14.5, que calcula la sensibilidad de la solución a cambios
en los coeficientes de costes y en el término independiente. El resultado es lo que muestra el cuadro 14.6. Confirma, y
amplía, los cálculos hechos a mano en este ejemplo.
Cuadro 14.4
function Sensitivity_ProgLineal_2(c,A,b,pi,cr,B,N,Binv,f)
% Analiza la sensibilidad de la solución de un programa lineal
% min. c’x sujeto a Ax=b, x >= 0 (problema estándar)
% B indices de columnas de A en la base
% N indices de columnas de A fuera de la base
if nargin<9, f=1; end
if f~=1, f=fopen(’Salida_sensitivity’,’w’); end
[m n]=size(A); Nn=length(N); Bm=length(B); c=c(:); b=b(:); pi=pi(:); cr=cr(:);
ss=char(ones(n,80)*single(’ ’)); % Definir una matriz string para tabla
Cuadro 14.5
14.6 El método Símplex para variables acotadas j 349
>> Sensitivity_ProgLineal_2(c,A,b,la,c_r(N),B,N,Binv)
Cuadro 14.6
min. cT x
s. a Ax Db
Actuando así, el número de variables se triplica y
x C x1 Du
el número de condiciones pasa a ser m C 2n.
x x2 Dl
x; x1 ; x2 0:
Ax D b
l x u;
Ax D b
l x u;
La función objetivo:
z D c T x D cBT xB C cN
T T
x C cN
l Nl
x
u Nu
350 j Capítulo 14. Programación lineal. El método Símplex
D cBT B 1
B 1 Nl xNl
b B 1
Nu xNu C cN T
x C cN
l Nl
T
x
u Nu
D cBT B 1 b C cN
T
l
cBT B 1 T
N l xN l C c N u
cBT B 1 Nu xNu :
œ œ
cost. re cost. re
ducido ducido
s s
Supongamos que partimos de una solución básica factible.
En ese punto se examinan los costes reducidos de las variables no básicas (en uno de sus límites).
Si puede ser mejorada —en un problema de minimización—, alguna variable no básica que esté en su límite inferior
tendrá un coste reducido negativo, u otra en su límite superior un coste reducido positivo.
La función objetivo se puede mejorar, en este caso decrementar, si
cj cBT B 1 aj < 0 para alguna xj D lj o
T 1
cj cB B aj > 0 para alguna xj D uj :
Si se elige una variable no básica, xq por ejemplo, como aquella que ha de mejorar la función objetivo, y su valor
se modifica desde la cota en el que esté en la dirección hacia la otra cota, la función objetivo mejorará (decrecerá)
mientras se puedan modificar las variables básicas de tal manera que persista la factibilidad del problema (se satisfagan
las condiciones); es decir, hasta que:
1. Una variable básica llegue a uno de sus límites, en cuyo caso se hará no básica, pasando a ocupar su sitio en la
base la no básica que se modifica;
2. La variable no básica que se modifica llegue al límite opuesto del que parte antes de que ocurra lo anterior. La
base entonces no se modifica.
Si ocurren estas dos circunstancias a la vez, la solución es básica factible degenerada.
Si Nl es el conjunto de los índices de las variables no básicas en su límite inferior y Nu el de las no básicas en su
límite superior, y se modifica xq , se tendrá que
xB D B 1b B 1N 1N B 1a
l xNl B u xNu q
D bO y;
El último paso consiste en modificar las estructuras de datos correspondientes, a fin de reflejar los cambios habidos en
la base.
Todos los códigos comerciales del método Símplex lo hacen para variables acotadas. En un ordenador, una variable
en forma estándar, xj 0, en realidad se trata como si 0 xj 1020 , por ejemplo, ya que en una máquina que trabaje
con precisión finita la cantidad 1020 es suficientemente grande.
14.6 El método Símplex para variables acotadas j 351
En la tabla del cuadro 14.7 se expone el algoritmo Símplex revisado para variables acotadas. En el apéndice B,
página 667, se lista un programa que lo implementa directamente: Rsimplex_1. Su longitud y múltiples matices impiden
hacerlo aquí.
Como es inmediato obtener una solución factible y una base de partida, entramos directamente en la fase II del método
Símplex.
Partiremos de
10
B D Œa4 ; a5 D ; Nl D Œa1 ; a2 ; a3 ; Nu D ;
01
Iteración 1. Paso 1
Calculemos los multiplicadores símplex:
T 10 0 0
DB cB D D :
01 0 0
Todavía no se ha llegado al óptimo del problema pues las variables x1 , x2 y x3 están en sus límites inferiores y sus costes
reducidos son negativos.
Iteración 1. Paso 2
Se elige la variable x2 para entrar en la base por ser la no básica de coste reducido más negativo. Se resuelve By D a2 :
1 10 1 1
yDB a2 D D :
01 1 1
Iteración 1. Paso 3
La variable a salir de la base saldrá de calcular el incremento :
8 9
< 1 D mKın xB1 lB1 ; xB2 lB2 D 9 0 ; 5 0 =
D mKın y1 y2 1 1 D 5:
: ;
u2 l2 D 6 0
Saldrá, por tanto, la variable de número de índice 2 en la base, x5 , pues es la que antes llega a su límite inferior.
Iteración 1. Paso 4
Readaptemos la solución y las estructuras de datos:
x2 l2 C D 0 C 5 D 5
x4 x4 y1 D 9 5 1 D 4
x5 x5 y2 D 5 5 1 D 0:
Iteración 2. Paso 1
Calculemos los multiplicadores símplex:
1
T 10 0 10 0 0
DB cB D D D :
11 4 11 4 4
Como la variable x3 está en su límite inferior y su coste reducido es negativo, todavía no se ha llegado al óptimo.
Iteración 2. Paso 2
Se elige la variable x3 para entrar en la base. Se resuelve By D a3 :
1 1 1 2
y D B 1 a3 D D :
0 1 1 1
Iteración 2. Paso 3
La variable a salir de la base saldrá de calcular :
8̂ nx l
o ˚ 9
ˆ 1 D mKın B1y1 B1 D 4 2 0 > >
ˆ
ˆ >
>
ˆ
< >
=
nx u
o ˚
D mKın 2 D mKın B 2 B 2
D 5 6 D 1:
ˆ
ˆ y2 1 >
>
ˆ
ˆ >
>
:̂ >
;
u3 l 3 D 4 1
Saldrá, por tanto, la variable de número de índice 2 en la base, x2 , pues es la que antes llega a uno de sus límites: el
superior.
Iteración 2. Paso 4
Readaptemos la solución y las estructuras de datos:
x3 l3 C D 1 C 1 D 2
x4 x4 y1 D 4 1 2 D 2
x2 x2 y2 D 5 C 1 1 D 6:
Iteración 3. Paso 1
Calculemos los multiplicadores símplex:
1
T 1 0 0 1 0 0 0
DB cB D D D :
1 1 1 1 1 1 1
Como las variables x1 y x5 , que están en sus límites inferiores, tienen costes reducidos negativos, todavía no se ha
llegado al óptimo del problema.
Iteración 3. Paso 2
Se elige la variable x1 para entrar en la base. Se resuelve By D a1 :
1
1 1 1 2 1 1 2 3
yDB a1 D D D :
0 1 1 0 1 1 1
Iteración 3. Paso 3
La variable a salir de la base saldrá de calcular :
8̂ nx l
o ˚ 9
ˆ 1 D mKın B1y1 B1 D 2 3 0 > >
ˆ
ˆ >
>
ˆ
< >
=
nx uB2
o ˚ 2
D mKın 2 D mKın B 2
D 2 4 D :
ˆ
ˆ y2 1 >
> 3
ˆ
ˆ >
>
:̂ >
;
u1 l1 D 4 0
Iteración 3. Paso 4
Readaptemos la solución y las estructuras de datos:
x1 l1 C D 0 C 2=3 D 2=3
x4 x4 y1 D 2 .2=3/ 3 D 0
x3 x3 y2 D 2 C .2=3/ 1 D 8=3:
También,
2 1
B D Œa1 ; a3 D ; Nl D Œa4 ; a5 y Nu D Œa2 :
1 1
La nueva función objetivo es 28.
Iteración 4. Paso 1
Calculemos los nuevos multiplicadores símplex:
1
T 2 1 2 1=3 1=3 2 1
DB cB D D D :
1 1 1 1=3 2=3 1 0
Los costes reducidos de las variables no básicas en sus límites inferiores, x4 y x5 , son 1 y 0, y el de la variable en su
límite superior, x2 , es -3.
Se ha llegado, por tanto, a un óptimo del problema, aunque no es el único. En efecto, si se incrementa x5 , manteniendo
x2 D 6 y x4 D 0 fijos, las variables x1 y x3 se modificarán de la forma:
x1 1 1 2=3 1=3
DB b B a5 x5 D x5 :
x3 8=3 2=3
Para otro ejemplo mucho más grande, referido al modelo de energía usado en EE.UU. denominado ETA-MACRO,
con 400 restricciones y 816 variables, esto otro que sigue.
1 1
xB 0 I B N B b
Si TD designa Término de la Derecha y T es una matriz cuyos coeficientes son los del tableau, en realidad éste
representa el sistema de m C 1 ecuaciones lineales y n C 1 variables, las n de x y z,
2 3
z
6 xB 7
T6 7
4 xN 5 D 0:;
TD
La gran diferencia con lo expuesto en este capítulo es que el cálculo de y cN N del Paso 1, y el de y del Paso 2 se
eliminan, y el Paso 4 de pivotación se lleva a cabo directamente en el tableau.
Si suponemos que las variables básicas que entran y salen de la base en una determinada iteración son la q y la p, y
que las filas y las columnas del tableau de esa iteración están numeradas partiendo de cero, la operación de pivotación
conlleva:
1. Dividir la fila p de T por tpq , el coeficiente que ocupa la fila p y la columna q de la matriz T ;
2. Para 0 i m, i ¤ p, restar de la fila i la p multiplicada por ti q a fin de hacer cero el elemento q de esa fila.
Los costes reducidos, cN N , y el vector de variables básicas, B 1 b, se obtienen directamente del tableau.
Iteración 1
El primer tableau es
z x1 x2 x3 x4 x5 x6 TD
z1 1 1 4 0 0 0 0
x4 0 1 1 2 1 0 0 9
x5 0 1 1 1 0 1 0 2
x6 0 1 1 ① 0 0 1 4
La variable que entra en la base es la no básica cuyo coste reducido es más negativo: x3 .
El ① indica que de entre las relaciones posibles, 9/2 y 4/1, (la otra afecta a un número negativo) se elige esta última,
por lo que saldrá de la base aquella variable que pivota en la tercera fila: x6 .
Iteración 2
Operando lo indicado se llega a este segundo tableau:
z x1 x2 x3 x4 x5 x6 TD
z1 3 5 0 0 0 4 16
x4 0 ③ 1 0 1 0 2 1
x5 0 0 2 0 0 1 1 6
x3 0 1 1 1 0 0 1 4
Iteración 3
Siguiendo con la mecánica apuntada se obtiene esto:
z x1 x2 x3 x4 x5 x6 TD
z1 0 4 0 1 0 2 17
1 1 2 1
x1 0 1 3
0 3
0 3 3
x5 0 0 2 0 0 1 1 6
2 1 1 13
x3 0 0 3
1 3
0 3 3
Se ha llegado a un punto en el que todos los costes reducidos de las variables no básicas son positivos por lo que se ha
conseguido el óptimo del problema.
La solución final es por tanto
Œx1 ; x2 ; x3 ; x4 ; x5 ; x6 T D Œ1=3; 0; 13=3; 0; 6; 0T :
El valor de la función objetivo es z D 17.
z x1 x2 x3 x4 x5 x6 TD
z1 0 4 0 1 0 2 17
x1 0 1 13 0 31 0 32 13
x5 0 0 2 0 0 1 1 6
x3 0 0 23 1 31 0 31 133
358 j Capítulo 14. Programación lineal. El método Símplex
La inversa de B es la submatriz que en el tableau final ocupa el lugar que en el inicial ocupaba la submatriz identidad;
es decir, 2 3
1=3 0 2=3
B 1 D 4 0 1 1 5:
1=3 0 1=3
Bk 1 D E k E k 1 E 1B 1
:
Para implementar este esquema operativo se requiere guardar los valores de los coeficientes de la columna de la matriz
E i que la hace diferente de la matriz identidad, y el propio valor del índice i .
Para evitar errores de redondeo, conforme avanza el proceso es aconsejable refactorizar periódicamente la matriz
B 1.
La variante del método Símplex que incluye esta forma de actuar es la de la tabla del cuadro 14.8.
Paso 1 – Operación BTRAN (backward transformation). Calcular los multiplicadores símplex a partir de
T D cB T
B 1D cBT
Ek Ek 1 E1 :
Cuadro 14.8: El algoritmo Símplex con la inversa de la base en forma de productos matriciales
De acuerdo con esto, en el peor de los casos, parece lógico temerse un número de iteraciones exponencial.
Un problema clásico para probarlo es el estudiado por Klee y Minty [1972]:
maximizar xn
s. a 0 x1 1
ıxi 1 xi 1 ıxi 1; i D 2; : : : ; n; 0 < ı < 1=2;
xi 0; i D 1; 2; : : : ; n:
Tiene 2n puntos extremos. Para n D 2 y n D 3 es el de la figura 14.7. Comenzando en x D 0 (factible), con precisión
absoluta, el método recorrería los 2n puntos extremos.
x2 x2
x (3) = 0
1 x (7)
x (6)
x (2) = 1
1−δ
x (5)
x (4)
x3
x (1) = 1
δ
x (3) x (2)
x (1)
x (0) x1 x (0) x1
La práctica de casi setenta años, en que el método Símplex ha permanecido plenamente operativo, ha permitido
constatar que los casos extremos, como el ejemplo de Klee y Minty, rara vez ocurren en la realidad práctica.
Grosso modo, en problemas de tamaño moderado, según referencias relativamente recientes al final del libro, el
método Símplex requiere un número de iteraciones real comprendido entre 4m y 6m.
En problemas muy grandes, el número de iteraciones que cabe esperar llevar a cabo para resolverlos es, según las
mismas referencias, ˛ m, donde e ˛ < log2 .2 C n=m/.
Para concluir, la complejidad computacional práctica esperada del método Símplex es del O.m2 n/. Teniendo en
cuenta el efecto que el tratamiento de la dispersidad de los problemas puede acarrear en la complejidad del método, di-
versos estudios dedicados al efecto han concluido que la complejidad real del método la define la ecuación Km˛ nd 0;33 ,
donde K es una constante, 1;25 < ˛ < 2;5 y d es el número de elementos distintos de cero en la matriz A, dividido por
nm.
L.x; ; / D c T x T .Ax b/ T x;
donde L.x; ; / W Rn Rm Rn ! R.
El gradiente de esta función con respecto a x es
c AT :
max. bT
s. a c AT D0
0:
Recordemos una vez más las condiciones en las que se dan los óptimos de los problemas de Programación Lineal.
Entre ellas se incluye la factibilidad del dual, que acabamos de enunciar.
Teorema 15.1 Condiciones de Karush-Kuhn-Tucker. x 2 Rn es el óptimo del problema primal
min. c T x
s. a Ax D b
x 0;
si y sólo si existen vectores y , óptimos del problema dual, tales que
Ax D b; x 0; (factibilidad del problema primal)
A T C D c; 0; (factibilidad del problema dual)
i xi D 0; i D 1; : : : ; n; (complementariedad o gap de dualidad)
Su función de Lagrange es
cT x T .Ax b/ T x:
El gradiente de esta función con respecto a x es
2 3 2 3 2 3
1 1 0 1
617 6 17 6 7
6 7 6 0 7 6 27
T 6 7 6 7 1 6 7
c A D 657 6 1 17 6 3 7 :
6 7 6 7 2 6 7
405 4 1 05 4 4 5
0 0 1 5
15.1 Dualidad j 363
max. 1 C 22
s. a 1 1 D 1
2 2 D 1
1 2 3 D 5
1 4 D 0
C 2 5 D 0
1 ; 2 ; 3 ; 4 ; 5 0:
max. 1 C 22
max. 1 C 22
s. a 1 1
reorganizando
s. a 1 1
2 1 ! 2 1
1 2 5
1 C 2 5
1 0
1 ; 2 0:
2 0
En el subespacio Im.A/ y en el plano .1 ; 2 / los problemas se ven como indica la figura 15.1. Cada vector columna
ai del primal define una condición del dual. El óptimo es un punto extremo del dual, en el cual hay dos condiciones
activas, que corresponden a una base óptima del primal. b es una combinación lineal positiva de a1 y a2 .
Ejemplo 15.2 Un empresario quiere vender b1 ; b2 ; : : : ; bm unidades de m productos. Para ello contacta con un fabri-
cante que se los puede elaborar realizando para ello n actividades distintas en sus fábricas. El coste (precio) unitario de
cada actividad j se lo fija el fabricante al empresario en cj unidades. P
Si aij representa la cantidad del producto i que obtiene una unidad de la actividad j , jnD1 aij xj son las unidades
que se producen de i con todas las actividades, que deben ser mayores o iguales que la cantidad requerida de bi .
is maximized at an extreme point of the dual feasible region. At this point exactly
two dual constraints are active. These active constraints correspond to an optimal
basis of the primal. In fact, the vector defining the dual objective is a positive linear
combination of the vectors. In the specific example, b is a positive combination
of a1 and a2 . The weights in this combination are the xi ’s in the solution of the
primal.
λ2
a2
a2
b
a1
b
a3
λ1
a1
a3
a4
a4
Fig. 4.3 The dual in activity space
Fig. 4.2Figura
The15.1: Interpretación
primal de un problema
requirements space primal y dual es sus subespacios característicos
b
El Programa primal trata en este caso sobre valores económicos. Garantizadas unas ventas mínimas de productos
a unos precios, qué esquema concreto de producción
a1 minimiza el coste total, o maximiza el valor económico de
la
a3producción.
El Programa dual de cantidades físicas. Con un esquema de costes λ1 unitario dado, qué cantidades de productos
producir a unos precios conocidos para maximizar el beneficio de su venta.
La teoría de dualidad es un elemento importante más para ayudar a analizar la sensibilidad de los problemas de PL,
pues ayuda a responder preguntas como: ¿De qué forma habrá que modificar nuestra cadena de producción los próximos
seis meses si el beneficio de nuestro producto estrella cae un 20 %? O, dada nuestra disponibilidad de recursos, ¿qué
a4 vender de un nuevo producto para hacerlo rentable?
beneficio o cuántas unidades deberíamos
No todas las variables no básicas que cumplan que ˛pj < 0, j 2 N son candidatas a entrar en la base remplazando a
la básica no factible.
Han de cumplir las condiciones de factibilidad del dual (óptimas del primal) en términos de costes reducidos. Si xj es
la que entra, los nuevos costes reducidos, cNi , en función de los antiguos, cOi , saldrán de esta fórmula:
˛pl
cNl D cOl cOj ; l D 1; : : : ; n .cNl D 0 si l D j /:
˛pj
Como todos los costes reducidos han de ser no negativos, la relación jcOj =˛pj j que sea menor, con ˛pj < 0, determina
el coste reducido que antes alcanza cero y, por lo tanto, la variable xq que entra en la base.
El algoritmo dual del Símplex es el de la tabla 15.1. Codificado en M ATLAB, el del cuadro 15.2.
Paso 1 – Calcular el vector de multiplicadores símplex resolviendo el sistema B T D cB . Determinar los costes reduci-
dos de las variables no básicas: cNj D cj T aj , para todo j 2 N .
Paso 1’ – Comprobar la factibilidad del programa primal: Si xB 0, PARAR; la solución es óptima. Si no, continuar.
Paso 2 – Determinar la variable básica xjp que debe salir de la base: Escoger jp 2 fji 2 B W xji < 0g:
Paso 3 – Comprobar la no factibilidad del problema: Calcular u resolviendo el sistema B T u D ep y hacer ˛j D
uT aj , para todo j 2 N . Si ˛j 0 para todo j 2 N , PARAR; el problema no tiene solución.
Paso 4 – Determinar la variable no básica xq que ha de entrar en la base: Calcular (para que sus costes reducidos
sigan siendo de óptimo en todas menos en la qque pasará a 0)
cNq cNj
D mKın W ˛j < 0; j 2 N D
:
˛q ˛j
Paso 5 – Recalcular costes reducidos: Hacer cNj cNj
˛j , j 2 N , j 6D q y cNp
.
Paso 6 – Adaptar la solución y la matriz B: Calcular w resolviendo Bw D aq y hacer
xq D xjp =˛q
xji xji wi ; 1 i m; i 6D p
B B C .aq ajp /epT
B B [ fqgnfjp g
N N [ fjp gnfqg
jp q:
Ir al paso 1’.
Vamos a resolverlo en una sesión de M ATLAB con ProgLineal_3() según indica el cuadro 15.3. Ahora añadamos
una nueva columna al problema de tal manera que quede así:
Cuadro 15.3
Cuadro 15.4
368 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
Una solución de partida puede ser la del problema original Œ2 2 0 0T , con un nuevo coeficiente que verifique la nueva
condición; es decir,
x D Œ2 2 0 0 1T :
Como esta solución no es factible del primal, pero la base es óptima en el primal, reoptimizamos con
dual_simplex(). Vemos lo que ocurre en el cuadro 15.5.
>> c2 = [c 0];
>> b2 = [b; 5];
fobj =
>> B2=[1 2 5];
-5.0000
>> A2=[A [0;0]; 1 1 0 0 -1]
pi =
A2 = 3 2 1 0 0
-4.0000
5 3 0 1 0
0.0000
1 1 0 0 -1
7.0000
>> [x fobj pi cr it B N]=dual_simplex(c2,A2,...
cr =
b2,sqrt(eps),B2)
16.0000
It. Sale B Entra B Pinf Ninf
7.0000
1 5 4 -0.000000 1
it = 1
x = -0.0000
B = 1 2 4
5.0000
N = 3 5
0
1.0000
Cuadro 15.5
Cuadro 15.6
Por último, vamos a estudiar un cambio en la función objetivo: el coeficiente de x3 pasa de ser 12 a 9.
min. 5x1 x2 C 9x3
s. a 3x1 C 2x2 C x3 D 10
5x1 C 3x2 C x4 D 16
x1 ; x2 ; x3 ; x4 0:
15.3 El algoritmo dual del Símplex j 369
Cuadro 15.7
FACTOR DE CRECIMIENTO
H ARINA DE SOJA
S OJA EN GRANO
M INERALES
V ITAMINAS
P ESCADO
A LFALFA
C ARNE
S AL
Función objetivo 5,80 2,63 3,08 1,13 1,00 2,26 35,72 6,00 7,00
Cuadro 15.8
Hagamos un poco de ingeniería algorítmica: Si introducimos las variables de holgura y no utilizamos la Fase I, se
podría aplicar el método dual del Símplex añadiendo una variable artificial a la condición de igualdad e introduciéndola
en la función objetivo con una gran penalización (pondremos 1.000). La matriz de condiciones quedaría como se indica
en el cuadro 15.9. Si definimos como base de partida las columnas 10 a 22, tendremos una solución no factible pero con
costes reducidos óptimos.
370 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
10
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0 0 r1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 r1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 r1 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 r1 0 0 0 0 0 0 0 0 0
0.55 0.45 0.5 0 0 0.17 0.25 0.25 0.63 0 0 0 0 r1 0 0 0 0 0 0 0 0
0.26 0.13 0.12 0 0 0.7 41.6 2 0.2 0 0 0 0 0 r1 0 0 0 0 0 0 0
0.23 0.09 0.045 0 0 0.14 20.4 0.4 0.25 0 0 0 0 0 0 r1 0 0 0 0 0 0
0.2 0.055 0.06 0 0 0.14 9 0.4 0.04 0 0 0 0 0 0 0 r1 0 0 0 0 0
0.4 0.065 0.06 0.26 0 0.02 0.1 0.05 0.3 0 0 0 0 0 0 0 0 r1 0 0 0 0
0.8 0.025 0.02 3 0 0.15 0.05 0.05 0.5 0 0 0 0 0 0 0 0 0 r1 0 0 0
0.1 0 0 0.9 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 r1 0 0
0.1 0 0 0.9 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
Cuadro 15.9
Apliquemos pues el algoritmo dual de Símplex. Cargamos los datos desde con load vitaminas-dual, y llevamos a
cabo una sesión de M ATLAB como se ve en el cuadro 15.10.
Cuadro 15.10
Con el problema en la memoria de la zona de trabajo, aplicamos el algoritmo dual del Símplex obteniéndose lo del
cuadro 15.11.
0.9198
>> [x fobj pi cr iter B N ]=dual_simplex(cv,... 1.5889
10.9772
Avf,bv,sqrt(eps),B0) 5.0000
-0.0000
It. Sale B Entra B Pinf Ninf 5.0000
1.7305
1 15 3 -556.516667 8 0
0
2 22 2 -6057.100000 9 0.4889
3.3186
3 3 6 -121.100000 9 0
0.8790
4 16 15 -889.600000 7 0
0.3703
5 2 7 -86.908193 6 0
0
6 14 2 -68.423548 5 20.2534
cr =
7 19 4 -49.470279 6 0
1.0e+003 *
8 10 3 -24.806534 4 7.4017
0.0033
9 20 5 -15.791616 3 0
1.0027
10 18 1 -12.295514 3 0
0.0017
11 12 8 -5.000000 1 0
0.0009
12 13 9 0.000000 0 5.0000
0.0004
x = 0
0.0027
15.9679 fobj = 396.3783
0.0110
58.4301 pi =
0.0051
5.9138 -2.7032
0.0009
5.8891 2.6566
iter = 12
1.2103 0
B = 3 11 8 9 2 6 15 17 1 4 5 21 7
1.0000 5.0568
N = 18 22 16 19 20 10 14 12 13
Cuadro 15.11
Con el fin de disponer de más medios sencillos para conocer y resolver problemas de programación lineal y las
posibilidades de ésta para analizar la sensibilidad de esos problemas y sus evolución, he desarrollado el programa
PL_pd_simplex_1 que se lista en el cuadro 15.12. Es un programa mixto que utiliza parte de los recursos de M ATLAB,
15.3 El algoritmo dual del Símplex j 371
Cuadro 15.12
para poner el problema a interpretar en un estadio donde se puedan aplicar los algoritmos vistos en este capítulo, y luego
usar estos algoritmos, u otros disponibles. Lleva a cabo estos pasos:
1. Analiza el problema —que puede leerse con varios formatos— y lo transforma en forma estándar, si es el caso.
2. Calcula una solución cualquiera del sistema de ecuaciones de las condiciones mediante el operador \ de M ATLAB.
3. Resuelve el problema de optimización mediante el método primal o dual según esa solución sea factible o no.
Con el concurso de este programa vamos a resolver el problema de la Dieta una vez más, pero ahora sin la variable
artificial que introducíamos para aplicar el algoritmo dual del Símplex. El resultado se indica en el cuadro 15.13. Luego
vamos a analizar la sensibilidad de lo obtenido a variaciones en los coeficientes de coste de la función objetivo y en el
término independiente de las condiciones. El resultado es lo que lista el cuadro 15.14.
0
cr =
0.4889
>> load vitaminas 0
3.3186
>> Av_d=full(Av); 10.9772
0
>> [sol fobj pi cr iter B N]=... 2.6566
0
5.0568
PL_pd_simplex_1(cv,Av_d,bv) 20.2534
0.9198
Dual 0
0.3703
It. Sale B Entra B Pinf Ninf 7.4017
1.7305
1 16 19 -1579.781993 4 0
0.8790
0
2 3 15 -43.883180 2 0
iter =
3 14 2 -34.832613 2 6
5.0000
4 19 21 -92.210155 3 B =
fobj =
15
5 20 3 -4.839145 1 396.3783
4
6 18 1 0.000000 0 pi =
5
sol = -2.7032
6
15.9679 2.6566
7
0
58.4301 5.0568
8
5.9138 9
0.9198
5.8891 11
10.9772
2
1.2103 0
21
1.0000 1.7305
17
1.5889 0
1
5.0000 3.3186
3
0.8790
5.0000 0.3703
N =
18 14 10 12 13 20 16 19
0
Cuadro 15.13
Cuadro 15.14
15.3 El algoritmo dual del Símplex j 373
Cuadro 15.15
Cuadro 15.16
Cuadro 15.17
374 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
>> lb=zeros(1,21); 0
>> options = optimset(’LargeScale’, ’off’, ’Simplex’, ’on’, ’Display’, ’Iter’) -0.0000
>> [x,fval,exitflag,output,lambda]=linprog(cv,[],[],Av_d,bv,lb,[],[],options) 0
Phase 1: Compute initial basic feasible point. 5.0000
Iter Infeasibility fval = 396.3783
0 378.1 exitflag = 1
1 297.36 output = iterations: 10
2 255.173 algorithm: ’medium scale: simplex’
3 215.273 cgiterations: []
4 166.74 message: ’Optimization terminated.’
5 152.354 lambda =
6 150.459 ineqlin: [0x1 double]
7 80.7105 eqlin: [13x1 double]
8 39.7026 upper: [21x1 double]
9 37.6039 lower: [21x1 double]
10 35.2884 >> lambda.eqlin
11 11.1807 ans =
12 6.17907 2.7032
13 3.78533 -2.6566
14 0.34 0
15 -0 -5.0568
Phase 2: Minimize using simplex. -0.9198
Iter Objective Dual Infeasibility -10.9772
f’*x A’*y+z-w-f 0
0 708.542 9.77527 -1.7305
1 602.242 77.2953 0
2 570.823 7.28754 -3.3186
3 567.359 8.73213 -0.8790
4 548.379 3.1832 -0.3703
5 442.335 5.6131 0
6 436.35 3.29995 >> lambda.lower
7 403.21 4.08198 ans =
8 400.495 0.596593 0
9 397.745 0.231097 0
10 396.378 0 0
Optimization terminated. 0
x = 15.9679 0
58.4301 0
5.9138 0
5.8891 0
1.2103 0
1.0000 2.6566
1.5889 0
5.0000 5.0568
5.0000 0.9198
0 10.9772
0.4889 0
0 1.7305
0 0
0 3.3186
20.2534 0.8790
0 0.3703
7.4017 0
Cuadro 15.18
Karmarkar
Basan su estrategia en la búsqueda del óptimo a través de caminos que recorren la zona interior de la región factible;
de ahí su nombre. Los más eficientes aplican en sucesivas etapas el método de Newton-Raphson al sistema de ecuaciones
15.4 Métodos de punto interior j 375
que resulta de aplicar las condiciones KKT al problema. Los desarrollos algorítmicos a que han dado lugar han hecho
converger en la práctica la Programación Lineal y la No Lineal.
Mediante un procedimiento iterativo de dirección de descenso, desde un punto interior de la región factible
obtenido de la resolución por Newton-Raphson del sistema de ecuaciones no lineales que definen las
condiciones KKT del problema, se obtienen direcciones que progresen a nuevos puntos interiores que se
acerquen al óptimo lo más posible.
minimizar c T x
sujeta a Ax D b
0x u
donde c; x; u 2 Rn ; b 2 Rm y A 2 Rmn . Si los límites inferiores de las variables no son cero, se pueden escalar para
que así lo sean. El dual de Wolfe de ese problema es
max. L.x; y; z; w/
s. a rx L.x; y; z; w/ D 0
z; w 0:
maximizar y T b wT u
sujeta a A T y Cw zCc D 0
w; z 0
donde y 2 Rm ; w 2 Rn ; z 2 Rn .
Las condiciones de KKT del problema primal y dual, incorporando un vector de variables de holgura s, son
AT y C w zCc D 0
Ax D b
xCs D u
xi zi D 0; i D 1; : : : ; n
si wi D 0; i D 1; : : : ; n
x; z; s; w 0:
El cuarto y quinto conjunto de igualdades son no lineales. Son las condiciones de complementariedad de holguras. Las
condiciones de no negatividad de las variables son las que complican bastante la mecánica de los métodos de puntos
interiores.
Para resolver este sistema de ecuaciones, dado que es no lineal, se puede usar Newton-Raphson, siempre que desde
el principio se cumpliesen estrictamente y, de un punto a otro del proceso, las condiciones de no negatividad de las
variables.
También hay que tener cuidado en el proceso si la ecuación sw D 0 se linealiza, como se hace en Newton-Raphson,
pues en ese caso se tiene que
sw C sw C ws D 0:
Si una variable, digamos wi , es cero, la ecuación de Newton queda si wi D 0, por lo que el paso wi D 0.
Desde ese momento esa variable quedaría bloqueada en cero en todo el proceso, como esquematiza la figura 15.2,
lo que es muy perjudicial para el algoritmo pues éste no podría recuperarla para ayudar a mejorar, junto con las
demás, el camino al óptimo.
14.1. PRIMAL-DUAL METHODS 401
376 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
x2 s2
1 iteraciones 0
2
central path C
x1 s1
Figura 15.2: Posible efecto no deseado de bloqueo de alguna variable de holgura en el camino al óptimo en el método de
Figure 14.2 Iterates of Algorithm 14.2, plotted in (xs) space.
punto interior
(14.3a), (14.3b), and (14.3d).) In the unusual geometry of Figure 14.2, the search directions
Es crucial pues, en todo el proceso
(x , λiterativo, mantener todasthan las variables estrictamente positivas, aunque sea muy
k k k
, s ) transform to curves rather straight lines.
As Figure 14.2 shows (and the analysis confirms), the lower bound σmin on the
poco, digamos una cantidad . Es igualmente importante que todas las holguras complementarias
centering parameter ensures that each search direction starts out by moving away from the si wi converjan a
cero al mismo ritmo: boundary of N−∞ (γ ) and into the relative interior of this neighborhood. That is, small
steps along the search direction
k improve the centrality. Larger values of α take us outside
sik wikagain,
the neighborhood
D !0 cuando k ! 1:
since the error in approximating the nonlinear system (14.15) by
the linear step equations (14.16) becomes more pronounced as α increases. Still, we are
Con estos propósitos se modifica cada condición
guaranteed si wi haciendo
that a certain minimum step can bestaken D
i wi before 0 para
we reach the tratar
boundaryde of “centrar” algo la trayectoria
a seguir en el proceso, evitando Nasí
−∞ (γ acercarse a the
), as we show in esos valores
analysis below. cero de las variables. Es lo que esquematiza la indicada
The analysis of Algorithm 14.2 appears in the next few pages. With judicious choices
figura 15.2 para x1 s1 y x2 s2 . of σk , this algorithm is fairly efficient in practice. With a few more modifications, it becomes
En cada punto del proceso se hace
the basis of a truly competitive method, as we discuss in Section 14.2.
Our aim in the analysis below is to show that given some small tolerance ǫ > 0, the
algorithm requires O(n| log ǫ|) iterations to reduce theTduality measure
xN zN C sN T w N by a factor kof ǫ,k that
ka D k k , λk , s k ) for which µk ≤ ǫµ
g; donde g D 0 . For small ǫ, the; point (x , λ , s )
k
is, to identify point (x
2n
satisfies the primal-dual optimality conditions except for perturbations of about ǫ in the
right-hand side of (14.3c), so it is usually very close to a primal-dual solution of the
siendo el numerador la denominada brecha o gap de dualidad, y el denominador
original linear program. The O(n| log ǫ|) estimate is a worst-case bound on the los
grupos de n variables quedos
number
of iterationskrequired; on practical problems, the number of iterations required appears
contribuyen al gap. es un porcentaje, 2 .0; 1/ 0;9995, de lo que se desea reducir el gap en cada iteración.
En cada etapa del proceso iterativo los métodos de puntos interiores resuelven ligeras variantes del sistema no lineal
KKT 8̂
ˆ AT y C z w D c
La fórmula más aceptada –de Mehrotra– ˆ
ˆ de combinar estas dos
ˆ
< Ax Db
opciones sobre qué dirección de avance seguir, consiste en llevar a
f .x; y; z; s; w/ xCs D u
cabo dos pasosx;z;s;w> ˆ
en una0etapa, denominados
ˆ predictor y
ˆ
ˆ X Z D e
corrector: :̂
W S D e
Predictor: se resuelve la aproximación lineal: la dirección de
donde X , S , Z y W son matrices
descenso diagonales con coeficientes
puro de Newton, xj , sj afín,
o de escalado , zj ycon
wj, respectivamente,
D 0. y e es el vector de
coeficientes 1.
De estas resoluciones, si Corrector y 1centrado: para compensar camino
la linealización
centralanterior
¤4000,C se
H A P va
T E R obteniendo elI N denominado
4. INTERIOR-PO T METHODS —central path— hacia el óptimo,
introduciendo más información de segundo
evitándose así caer en valores cero de las variables. Algo como lo que esquematiza orden y centrar en 15.3.
la figura
torno al camino central (central path), mediante el parámetro .
central path neighborhood
Camino central
Figura 15.3: Camino central hacia el óptimo en los métodos de punto interior 62/72
Figure 14.1 Central path, projected into space of primal variables x, showing a
typical neighborhood N .
A este planteamiento —visión moderna— del procedimiento de resolución se llega también mediante otro más clásico,
a b c 1 2 3
g
si en el problema original se incorporan las condiciones de las variables xi y si de no acercarse a cero mediante un
d e f 9 4 6 5
Here and in later analysis, we use the notation
h i j 10 8 7
def
(x k (α), λk (α), s k (α)) (x k , λk , s k ) + α(x k , λk , s k ), (14.19a)
def
µk (α) x k (α)T s k (α)/n. (14.19b)
término en la función objetivo que se haga muy grande —barrera— cuando esas variables estén muy próximas a cero.
Se emplea su logaritmo, por ejemplo.
Así, el problema que se plantea es
0 1
n
X n
X
minimizar c T x @ log xj C log sj A
j D1 j D1
sujeta a Ax D b
xCs D u
x; s > 0:
Problema denominado de barrera logarítmica del primal, para un escalar . La función de Lagrange de este problema
es, simplificando la notación,
donde z D X 1 e; w D S 1 e. Estas condiciones son casi idénticas a las del planteamiento anterior.
Cuando ! 1, las soluciones del problema de barrera son el(a)
centro
µ= analítico de la región(b)
factible
µ=1 del problema
8
µ=0.01
µ=1
µ=
8
µ= µ=1 µ=0.01
8
camino central
Figura 15.4: Evolución del problema de barrera logarítmica, y su solución, para distintos valores de
µ=0.01
El algoritmo reduce paso a paso según se aproxima FelIGURE
proceso iterativo
16.1. Partsal(a)óptimo del(c)
through primal.
show Al !
level sets0,oflathe
solución
barrier
del problema barrera converge al centro analítico
µ=1
del conjunto de las soluciones óptimas del primal (camino central).
function for three values of µ. For each value of µ, four level sets
are shown. The maximum value of the barrier function is attained
inside the innermost level set. The drawing in part (d) shows the
µ=
8
Volviendo a la resolución del sistema de ecuaciones f .x; y; z; s; w/ D 0, el nuevo punto hacia la solución de ese
sistema D Œx; y; z; s; wT , saldrá de resolver mediante Newton-Raphson el modelo de desarrollo de Taylor de primer
µ=0.01 3 It is instructive to have in mind a geometric picture of the barrier function. Recall
orden (c)
a b c 1 2(d) camino central
g
that,
for
problems expressed in standard form, the set of feasible solutions is a poly-
C f 0 with
f . k /hedron
5 k
kC1face being
k
d e f 9 4 6
each Dcharacterized
0; by the property that one of the variables
j
h i 10 8
is zero.
7
Hence,
F IGURE 16.1. Parts (a) through (c) show level sets of the barrier the barrier function is minus infinity on each face of the polyhedron.
Furthermore, it kis finite in the interior of the polyhedron,
andk ity approaches
f 0 k laminus in-
1
function for three values
es decir, la ecuación v D f k of µ. 0 Fork each valuek of µ, four level sets
f . /; siendo v la dirección de Newton en la iteración
finity as the boundary is approached. Figure 16.1 shows some level sets for the barrier
matrizarejacobiana
shown. The maximum value of the barrier function is attained
del sistema.
function for
inside the innermost level set. The drawing in part (d) shows thea specific problem and a few different choices of µ. Notice that, for each
central path. µ, the maximum is attained at an interior point, and as µ gets closer to zero this interior
point moves closer to the optimal solution of the original linear programming problem
(which is at the top vertex). Viewed as a function of µ, the set of optimal solutions
to the barrier problems forms a path through the interior of the polyhedron of feasible
It is instructive to have in mind a geometric picture of the barrier function. Recall
that, for problems expressed in standard form, the set of feasible solutions is a poly-
hedron with each face being characterized by the property that one of the variables
378 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
s D u x s x de la tercera
z D X 1 . e XZe Z x/ de la cuarta
w D S 1 . e SW e W ru C W x/ de la quinta
Como la matriz ADA T es simétrica y definida positiva o semidefinida positiva, se puede factorizar por Cholesky, aunque
hay que cuidar mucho cómo se hace.
Este procedimiento que se lista a continuación sigue todo lo apuntado (con rxz D e X Z e y rsw D e S W e).
1
1 1W
1. Formar la matriz D D X Z CS
2. Hacer rc rc X 1 rxz C S 1 .r sw W ru /
3. Resolver mediante Cholesky ADA T y D rb C ADrc
4. Calcular x D D.A T y rc /
z D X 1 . Z x C rxz /
s D ru x
w D S 1 . W s C rsw /
Una iteración se completaría determinando las amplitudes de paso, ˛P y ˛D , en “predictor” y “corrector”, adaptando
y comprobando óptimo. El algoritmo completo es el de la tabla del cuadro 15.19.
El listado de una variante compacta de este algoritmo en código de M ATLAB, en el que se leen los datos de cualquier
fichero (incluido .MPS), es el del cuadro 15.20.
Si se resuelve con este algoritmo un problema de programación lineal a través de una sesión de M ATLAB, el resultado
es lo que detalla el cuadro 15.21.
Si lo utilizamos para acometer de nuevo el problema de la “Dieta”, se obtiene el cuadro 15.22. El mismo problema
leído desde su fuente en .MPS es lo que lista el cuadro 15.23.
En el cuadro 15.24 se presenta el resultado de tratar un problema muy muy grande de la biblioteca de Internet Netlib:
MarosR7, con 3,136 condiciones, 9,408 variables y nz D 151:120. Se hace con el código presentado, con el código
propio PLip_1 de la página 669 y con LIPSOL, el original de M ATLAB de hace unos años.
Paso 4 – Terminar iteración y comprobar óptimo. Hacer Œx kC1 ; skC1 D Œx k ; sk C ˛P Œx; s y
Œy kC1 ; zkC1 ; wkC1 D Œy k ; zk ; wk C ˛D Œy; z; w.
Comprobar condiciones de óptimo. Si no, seguir.
En Dantzig [1987] —relatados por su autor— se puede encontrar una interesante y detallada relación de los avatares
históricos del método simplex y cómo desembocaron en su publicación en 1947. Para una excelente y pormenorizada
relación de la historia de la programación lineal y su contexto técnico e histórico recomendamos consultar Schrijver
[1986].
El procedimiento actual de más éxito comercial y académico que implementa las técnicas de punto interior mediante
puntos interiores es IPOPT. Yo he tratado de reproducirlo a pequeña escala en todas sus ramificaciones, en especial las
de Programación Lineal, sin éxito por su complejidad y por la cantidad de procedimiento heurísticos que emplea. Ver
también https://en.wikipedia.org/wiki/IPOPT
Creo que M ATLAB es el software ideal para profundizar en los métodos de puntos interiores para Programación Lineal
y todas sus variantes más eficaces y modernas. Como decía en el capítulo anterior, me gusta especialmente cómo explica
la Programación Lineal en su parte más computacional y próxima a la Programación No Lineal Biegler [2010]. Para
implementar una revisión bastante completa del algoritmo de Mehrotra, PLip_1, he utilizado como base una versión,
L IPSOL, del software que usa M ATLAB. Estoy muy satisfecho por sus prestaciones, rapidez y sencillez.
El software de OPTI, http://www.i2c2.aut.ac.nz/Wiki/OPTI/, también cuenta con diversas formas de métodos de
puntos interiores para resolver problemas de Programación Lineal y No Lineal.
15.4 Métodos de punto interior j 381
function [x y z A b c n0]=ProgLineal_InP_MPS_sc(file)
% Resuelve min c’x s.t. Ax=b, x>=0, cuyo dual es max b’y s.t. A’y+z=c, z>=0. Interior Point.
eval([’!copy ’ file ’ ’ ’D:\MATLAB2010b\work\tmp\in.mps’]); LIPSO = ’D:\MATLAB2010b\work’;
ar=mps2mat(LIPSO); fprintf(’\n’); load D:\MATLAB2010b\work\tmp\default;
[m,n]=size(A); x=sqrt(n)*ones(n,1); y=zeros(m,1); % Sol. inicial no negativa en x
z = x; bc = 1+max(norm(b),norm(c)); t0=cputime;
p = symamd(A*A’); % Reordenación grado mínimo
fprintf(’\n No fac. No fac. Brecha Error’);
fprintf(’\n primal dual dual relati.\n’);
fprintf(’ Iter A*x-b A’’*y+z-c x’’*z total\n’);
fprintf(’ ---------------------------------------------------\n’);
for iter = 1:100
Rd=A’*y+z-c; rrd=norm(Rd); % No factibilidad dual
Rp=A*x-b; rrp=norm(Rp); % No factibilidad priaml
Rc=x.*z; % No factibilidad complementariedad
residuo=norm([Rd;Rp;Rc])/bc;
gap=mean(Rc); % Brecha dual
fprintf(’%5i %15.2e %10.2e %11.2e %10.2e\n’,iter,rrd,rrp,gap,residuo);
if residuo<5.e-10, break, end
Rc=Rc-min(.1,100*gap)*gap;
d=min(5.e+15,x./z);
B=A*sparse(1:n,1:n,d)*A’;
R=cholinc(sparse(B(p,p)),’inf’); % Cholesky incompleto
t1=x.*Rd - Rc; t2=-(Rp+A*(t1./z));
dy=zeros(m,1);
dy(p)=R\(R’\t2(p)); % Resuelve sistema
dx=(x.*(A’*dy)+t1)./z;
dz=-(z.*dx+Rc)./x;
tau=max(.9995,1-gap);
ap=-1/min(min(dx./x),-1); % Amplitud de paso primal
ad=-1/min(min(dz./z),-1); % Amplitud de paso dual
ap=tau*ap; ad=tau*ad;
x=x+ap*dx; z=z+ad*dz; y=y+ad*dy;
end
fprintf(’Termina bien!\t[m n] = [%g %g]\tCPU = %g\n’,m,n,cputime-t0);
f=c’*x; fprintf(’Fun. Obje.= %18.14f\n’,f);
end
Cuadro 15.20: El algoritmo de punto interior primal dual para resolver problemas de Programación Lineal
Cuadro 15.21
382 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
0.000000000073392
x =
1.730542784359990
15.967948585969863
0.000000000200754
58.430071825246408
3.318574196209014
5.913766767060357
0.879025638141999
5.889057162222607
0.370319363423242
1.210305369941197
-0.000000000295456
>> load vitaminas 1.000000000555506
z =
>> Av_d=full(Av); 1.588850287092843
0.000000000093028
>> IntPointLP_1(Av_d,bv,cv’) 5.000000000293239
0.000000000025392
5.000000001617829
iter 1: gap=2.10e+001, error tot. rel.=1.32e+00 obj= 2.961260e+2 0.000000000252844
0.000000000555506
iter 2: gap=1.27e+001, error tot. rel.=8.62e-01 obj= 3.454134e+2 0.000000000252264
0.488850287092842
iter 3: gap=7.00e+000, error tot. rel.=4.80e-01 obj= 3.635193e+2 0.000000001229760
0.000000000293247
iter 4: gap=2.47e+000, error tot. rel.=1.81e-01 obj= 3.884943e+2 0.000000001490820
0.000000001617851
0.000000000934941
iter 5: gap=6.83e-001, error tot. rel.=2.62e-02 obj= 4.007237e+2 0.000000000134912
0.000000000297167
iter 6: gap=1.63e-001, error tot. rel.=6.61e-03 obj= 3.974000e+2 20.253399926042366
0.000000000297698
iter 7: gap=1.93e-002, error tot. rel.=6.62e-04 obj= 3.965177e+2 0.000000000856644
2.656560069064640
7.401722257701704
iter 8: gap=1.94e-003, error tot. rel.=6.04e-05 obj= 3.963934e+2 0.000000003039794
0.000000000450807
iter 9: gap=1.95e-004, error tot. rel.=6.06e-06 obj= 3.963798e+2 5.056784405320646
0.000000001677626
iter 10: gap=3.83e-006, error tot. rel.=1.19e-07 obj= 3.963783e+2 0.919806312736561
0.000000004009333
iter 11: gap=1.49e-009, error tot. rel.=4.62e-11 obj= 3.963783e+2 10.977248484804672
4.999999995990669
0.000000000073392
Termina![m n] = [13 21] CPU = 0.109201 y =
1.730542784359990
-2.703193632507613
0.000000000200754
2.656560069064640
3.318574196209014
0.000000003039794
0.879025638141999
5.056784405320645
0.370319363423242
0.919806312736561
0.000000000295456
10.977248484804672
Fun, Obj= 396.378265
Cuadro 15.22
Cuadro 15.23
15.4 Métodos de punto interior j 383
>> runlipsol(’marosr7’)
Running mps2mat ...
NAME done
ROWS done
>> ProgLineal_InP_MPS_sc(’marosr7.mps’); COLUMNS done
1 archivo(s) copiado(s). RHS done
NAME done ROWS done COLUMNS done RHS done RANGES done ... RANGES done
BOUNDS done
reading done
No fac. No fac. Brecha Error
mps2mat done
primal dual dual relati. Status=0mps2mat successful
Iter A*x-b A’*y+z-c x’*z total Loading tmp\default.mat ...
--------------------------------------------------- Preprocessing ...
1 9.34e+003 4.09e+005 9.41e+003 2.41e+000 (m=3136, n=9408)
2 9.24e+003 3.99e+005 9.10e+003 2.35e+000 Dense columns (nnz/m > 0.1): 0
3 9.03e+003 3.70e+005 8.93e+003 2.33e+000
<<<<< This is MIIP algorithm >>>>>
4 8.45e+003 3.37e+005 8.04e+003 2.12e+000
min-degree ordering ... Done. CPU seconds: 0.015625
5 7.47e+003 2.66e+005 6.73e+003 1.80e+000 calling symfct.mex* ... Done. CPU seconds: 0
6 5.78e+003 1.36e+005 5.06e+003 1.33e+000
7 2.99e+003 6.81e+001 2.71e+003 6.82e-001 Residuals: Primal Dual U-bounds Gap TR_error
8 9.40e+001 3.40e-002 2.29e+002 6.04e-002 ---------------------------------------------------------
9 4.62e+001 1.15e-003 1.13e+002 2.93e-002 Iter 0: 6.54e+05 1.01e+04 0.00e+00 4.15e+09 4.41e+05
10 2.56e+001 4.36e-004 6.43e+001 1.67e-002 Iter 1: 6.17e-10 2.80e+03 0.00e+00 1.08e+09 1.15e+05
Iter 2: 7.53e-09 7.37e+00 0.00e+00 3.04e+07 3.23e+03
11 1.68e+001 1.75e-004 3.97e+001 1.05e-002
Iter 3: 1.13e-09 6.24e-01 0.00e+00 5.70e+06 6.06e+02
12 8.07e+000 6.40e-005 2.02e+001 5.34e-003 Iter 4: 6.37e-10 2.29e-01 0.00e+00 2.24e+06 2.38e+02
13 4.69e+000 2.91e-005 1.17e+001 3.14e-003 Iter 5: 4.19e-10 6.35e-02 0.00e+00 9.35e+05 9.94e+01
14 2.43e+000 1.14e-005 6.15e+000 1.66e-003 Iter 6: 4.02e-10 1.21e-02 0.00e+00 3.85e+05 4.09e+01
15 1.55e+000 5.66e-006 3.84e+000 1.06e-003 Iter 7: 5.03e-10 1.96e-03 0.00e+00 1.39e+05 1.48e+01
16 7.76e-001 1.97e-006 1.92e+000 5.40e-004 Iter 8: 6.54e-10 3.68e-04 0.00e+00 4.47e+04 4.75e+00
17 4.03e-001 8.41e-007 1.04e+000 2.92e-004 Iter 9: 1.12e-09 1.01e-04 0.00e+00 1.63e+04 1.73e+00
Iter 10: 1.19e-09 2.09e-05 0.00e+00 3.95e+03 4.20e-01
18 1.60e-001 3.06e-007 4.63e-001 1.27e-004
Iter 11: 1.75e-09 2.04e-06 0.00e+00 7.28e+02 7.74e-02
19 5.96e-002 1.21e-007 2.05e-001 5.40e-005 Iter 12: 1.81e-09 2.49e-07 0.00e+00 2.42e+02 2.58e-02
20 1.76e-002 5.00e-008 8.44e-002 2.08e-005 Iter 13: 1.69e-09 1.77e-08 0.00e+00 2.63e+01 2.80e-03
21 4.67e-003 1.38e-008 2.85e-002 6.91e-006 Iter 14: 2.00e-09 1.99e-14 0.00e+00 1.43e-01 1.52e-05
22 1.45e-003 8.21e-009 1.33e-002 3.16e-006 Iter 15: 1.32e-09 3.51e-14 0.00e+00 7.14e-05 7.59e-09
23 2.95e-004 6.09e-009 2.97e-003 7.10e-007 MAROSR7
24 1.48e-007 9.15e-009 2.98e-004 6.96e-008 <* Converged! *>
Results (unprocessed) in results.mat
25 4.40e-011 3.02e-009 8.96e-006 2.09e-009
Solution xsol (processed) in solution.mat
26 1.66e-014 3.57e-009 8.10e-009 1.89e-012 Primal Obj = 1.4971851665e+06
Termina bien! [m n] = [3136 9408] CPU = 28.829 [m n] = [3136 9408], nnz(A) = 144848, nnz(L) = 1198243
Fun. Obje.= 1497185.16653047850000 CPU seconds: 0.48 ... loading
0.02 ... preprocessing
7.20 ... solving
0.00 ... postprocessing
7.70 ... total
>> PLip_1(’marosr7.mps’)
1 archivo(s) copiado(s).
NAME done, ROWS done, COLUMNS done, RHS done, RANGES done, BOUNDS done
reading done, mps2mat done, Status=0
Preprocesado ... (m=3136, n=9408)
<<<<< Alg_IP: Algoritmo de Punto Interior Predictor-Corrector>>>>>
Residuos: Primal Dual U-bounds d-Gap Err_rel_max
-----------------------------------------------------------------
Iter 0: 6.54e+05 1.01e+04 0.00e+00 4.149e+09 4.410e+05
Iter 1: 6.41e-10 2.80e+03 0.00e+00 1.079e+09 1.147e+05
Iter 2: 5.19e-09 7.37e+00 0.00e+00 3.038e+07 3.229e+03
Iter 3: 7.99e-10 6.24e-01 0.00e+00 5.704e+06 6.063e+02
Iter 4: 6.15e-10 2.29e-01 0.00e+00 2.241e+06 2.382e+02
Iter 5: 3.42e-10 6.35e-02 0.00e+00 9.351e+05 9.939e+01
Iter 6: 3.22e-10 1.21e-02 0.00e+00 3.845e+05 4.087e+01
Iter 7: 3.84e-10 1.96e-03 0.00e+00 1.392e+05 1.480e+01
Iter 8: 5.73e-10 3.68e-04 0.00e+00 4.469e+04 4.750e+00
Iter 9: 7.16e-10 1.01e-04 0.00e+00 1.628e+04 1.730e+00
Iter 10: 8.46e-10 2.09e-05 0.00e+00 3.950e+03 4.198e-01
Iter 11: 1.62e-09 2.04e-06 0.00e+00 7.279e+02 7.737e-02
Iter 12: 1.68e-09 2.49e-07 0.00e+00 2.423e+02 2.575e-02
Iter 13: 2.39e-09 1.77e-08 0.00e+00 2.630e+01 2.795e-03
Iter 14: 1.43e-09 1.98e-14 0.00e+00 1.428e-01 1.518e-05
Iter 15: 1.89e-09 3.52e-14 0.00e+00 7.144e-05 7.594e-09
MAROSR7 <* Converge! *>
Resultados (sin procesar) en results.mat
Solución xsol (procesada) en solution.mat
Primal Obj = 1.4971851665e+06
[m n] = [3136 9408], nnz(A) = 144848
CPU seconds: 0.45 ... carga de datos
0.09 ... preprocessado
9.34 ... resolución
0.00 ... postprocesado
9.89 ... total
Cuadro 15.24: Problema de NETLIB MarosR7: 3,136 condiciones, 9,408 variables y nz D 151:120
384 j Capítulo 15. Dualidad en Programación Lineal. Métodos de puntos interiores
Capítulo 16
Contenido
16.1 Formulación del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
16.2 Condiciones de Karush-Kuhn-Tucker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
16.3 Algoritmos de PNL con condiciones. Programación cuadrática . . . . . . . . . . . . . . . . . . . 390
16.4 Programación Cuadrática Secuencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
16.5 Métodos de puntos interiores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
minimizar f .x/
x2Rn
sujeta a ci .x/ D 0; i 2 E;
cj .x/ 0; j 2 I:
Las función objetivo f y las condiciones —las funciones vectoriales ci y cj — son, en general, no lineales, continuas
y tienen derivadas parciales continuas hasta al menos primer orden. Los conjuntos E y I contienen los índices de las
condiciones de igualdad y de desigualdad, o inecuaciones.
La región factible o conjunto de puntos factibles de un problema de Programación No Lineal —PNL o NLP— es
˚
D x W ci .x/ D 0; i 2 EI cj .x/ 0; j 2 I :
x2
∆ ∆
c1 c1
∆
f
∆
f x1
∆
Figure 12.3
∆ f
f Problem (12.9), showing
x*
constraint and function
∆
c1 gradients at various feasible
points.
Figura 16.1: Región factible y gradientes de la función objetivo y condición
En el óptimo, el vector gradiente de la condición, rc1 .x /, es paralelo (de hecho, colineal) al de la función objetivo,
rf .x /, aunque con sentido opuesto. Existe un escalar 1 , en este caso 1 D 1=2, tal que rf .x / D 1 rc1 .x /.
Otra manera de ver por qué x es el óptimo. Si en cualquier punto factible x del proceso de optimización se lleva a
cabo un pequeño desplazamiento s, para conservar la factibilidad deberá cumplirse que c.x C s/ D 0.
Por desarrollo en serie de Taylor,
T T
0 DC Hc.x
308 A P T EC
R 1s/
2. T Hc.x/
EORY C
O F rc.x/
C O N S T R A I NsE DDOrc.x/ s:N
PTIMIZATIO
∆
f
∆
f x1
∆
Figure 12.3
∆ f
f Problem (12.9), showing
x*
constraint and function
∆
c1 gradients at various feasible
points.
The main difference between problems (12.9) and (12.18) comes in the handling of the
feasibility condition. As in (12.13), the step s improves the objective function, to first order,
if ∇ f (x)T s < 0. Meanwhile, s retains feasibility if
s. a 2 x22
x12s −α∇ 0:
f (x),
El óptimo sigue siendo el mismo. Su región factible es la circunferencia anterior y su interior: la superficie geométrica
plana (círculo) contenida en ella.
∆
f
x
∆ ∆
c1 f
s
x
s
As before, we conjecture that a given feasible point x is not optimal if we can find a
Elsmall
gradiente
step s that de
bothla condición
retains en decreases
feasibility and cualquier punto function
the objective del extremo
f to first exterior
order. de la región factible apunta hacia su interior.
The main difference between problems (12.9) and Figure
12.4
(12.18) comesImprovement directions
in the handling
of the s fromtwo feasible points x for the problem
La condición de óptimo rf .x / D 1
(12.18)rcat 1 .x
which /
these satisface
constraint is con
active
feasibility condition. As in (12.13), the step s improves the objective function, to first order, and 1 D 1=2,
inactive, signo opuesto al del problema anterior.
respectively.
Razonando
if ∇ f (x)T s < como antes,
0. Meanwhile, cualquier
s retains xifno será óptimo si se puede dar un paso s al final del cual se conserve la factibilidad
feasibility
de la condición y se mejore la función objetivo. Es decir, si rf .x/T s < 0 y se cumple que
0 ≤ c1 (x + s) ≈ c1 (x) + ∇c1 (x)T s,
0 c.x C s/ c.x/ C rc.x/T s:
so, to first order, feasibility is retained if
Consideraremos dos casos según se Taprecia en la figura anterior:
c1 (x) + ∇c1 (x) s ≥ 0. (12.19)
Caso 1. El punto x está estrictamente dentro de la región factible, c1 .x/ > 0. Cualquier paso s suficientemente pequeño
seguirá In cumpliendo
determining whetherestaa inecuación
step s exists that(como
satisfiesratifica la figura).
both (12.13) Dewehecho, supuesta rf .x/ ¤ 0, para cualquier ˛ positivo
and (12.19),
T
suficientemente
consider the following pequeño el paso
two cases, which s D ˛rf
are illustrated in Figure 12.4.satisface la condición anterior y que rf .x/ s < 0.
.x/
Caso
Case I:2.Consider
Si x esta en case
first the el extremo
in which x oliesfrontera de the
strictly inside la región factible,
circle, so that c1 .x/ D 0.
the strict
Las condiciones
inequality c1 (x) > 0 para
holds. mejorar
In this case,la
anyfunción
step vectorobjetivo serán
s satisfies the condition (12.19),
provided only that its length is sufficiently small. In fact, whenever ∇ f (x) 0, we can
obtain a step s that satisfies both (12.13) and (12.19) by setting T
rf .x/ s < 0 y rc1 .x/T s 0:
s −α∇ f (x),
La primera determina un subespacio abierto y la segunda uno cerrado. Cualquier dirección en el cono que genera la
intersección de ambos, como se ve en la figura 16.2, mejorará la función objetivo. Si rf .x/ y rc1 .x/ apuntan en la
∆
f 1
x
∆ ∆
c1 f
s
x 1 0
39ÿ73
ÿ68
95ÿ3
ÿÿ882ÿ!
546
Figure 12.4 Improvement directions s from two feasible points x for the problem
2
345
67
389
ÿ78ÿ34
7ÿ84254 "#$%&'
(12.18) at which the constraint is activeFigura 16.2:
and inactive, Región factible y cono
respectively. de direcciones factibles
El signo del multiplicador es importante en este caso pues si la condición anterior se cumpliese con un valor negativo
de 1 , rf .x/ y rc1 .x/ apuntarían en direcciones opuestas y constituirían el subespacio completo.
Por lo razonado, las condiciones de óptimo se pueden plasmar en
La segunda es la de complementariedad. Plasma el hecho de que el multiplicador de Lagrange 1 sólo debe ser estricta-
mente positivo cuando la condición esté activa: es decir, c1 .x/ D 0. Para el ejemplo que consideramos:
En el Caso 1, c1 .x/ > 0, por lo que se requiere que 1 D 0. La otra condición de óptimo hace que rf .x / D 0.
En el Caso 2, la segunda condición permite que 1 tome valores no negativos y la primera hace rf .x/ D
1 rc1 .x/.
Analicemos un poco una variante más del ejemplo que estudiamos:
minimizar x1 C x2
314 C H A P T sujeta
E R 1 2a. T 2H E OxR2Y F 2C
Ox ON0;S T R xA 2I NE D0:O P T I M I Z A T I O N
1 2
∆
c2
∆
f
Figure 12.6
∆ Problem (12.24), illustrating the
c1
gradients of the active constraints
x*
and objective at the solution.
p
La solución es x D Œ 2; 0T : Las dos condiciones están activas
Desde el óptimo, cualquier dirección d a lo largo de T
la cual la función objetivo mejore, deberá cumplir que rci .x/T d
0; i 2 I D f1; 2g y rf .x/ d < 0. La condición rcithe
T where λ (λ 1 , λ 2 ) is .x/vector
T
d of0, Lagrange
i D 1; 2,multipliers.
se cumpleThesi dextension of condition
está dentro del cuadrante
(12.22) to this case is T
que definen rc1 .x/ y rc2 .x/, pero cualquier vector en él cumple que rf .x/ d 0.
La función de Lagrange del problema es ∗ ∗ ∗
∇x L(x , λ ) 0, for some λ ≥ 0, (12.26)
L.x; / D f .x/ 1 c1 .x/ 2 c2 .x/:
where the inequality λ∗ ≥ 0 means that all components of λ∗ are required to be nonnegative.
La condición de óptimo, rx L.x By
; applying algún 0.condition
the complementarity
/ D 0 para
p 1 c1constraints,
(12.23) to both inequality
La de complementariedad,
.x / D 0 yweobtain
2 c2 .x / D
0. En el punto óptimo, x D Œ 2; 0T , se tiene que
1 1 2 2λ∗ c (x ∗ ) 0, λ∗ c (x ∗ ) 0. (12.27)
" p #
1 ∗ √ T 2 2 0
rf .x / D
When x ; rc
(−1 .x / D, we have ; rc2 .x / D
2, 0) ;
1 0 1
√
∗
1 ∗
2 2 ∗
0
por lo que si ∇ f (x ) , ∇c1 (x ) , ∇c2 (x ) ,
1 2 1
3 0 1
p
2 2
D 4 5
so that it is easy to verify that ∇x L(x ∗ ,;λ∗ ) 0 when we select λ∗ as follows:
1
√
se cumple que rx L.x ; / D 0. Todos los coeficientes de λtambién
∗
1/(2 2)
son positivos.
.
Generalizando, en el óptimo, el gradiente de la función objetivo está (debe 1 estar) en el cono que generan los vectores
gradiente de las condiciones.
Veamos este problema Note that both components of λ∗ are positive, so that (12.26) is satisfied.
We consider
min.now
.x1 some
1/2other
C .xfeasible
1/2points that are not solutions of (12.24), and
2
examine the properties of the √Lagrangian and its gradient at these points.
For the s. a xx
point 1 ( 2x 2,20)T , we
1 again have that both constraints are active (see
Figure 12.7). However,2xit1s easy identify
x2 to 1; vectors d that satisfies (12.25): d (−1, 0)T
is one such vector (there are many others). For this value of √ x it is easy to verify that the
condition ∇x L(x, λ) 0 is satisfied only when λ (−1/(2 2), 1)T . Note that the first
component λ1 is negative, so that the conditions (12.26) are not satisfied at this point.
Finally, we consider the point x (1, 0)T , at which only the second constraint c2 is
active. Since any small step s away from this point will continue to satisfy c1 (x + s) > 0, we
need to consider only the behavior of c2 and f in determining whether s is indeed a feasible
✔ Consideremos por ejemplo el problema
cuyo óptimo es 3 3
.
x2
∆ x1
h(x*)T
18/100
d e f g 9 4 6 5
˚ ˚
T D v W rci .x/T v D 0; i 2 E [ j 2 I W cjh(.x/
x) = 0D 0 :
S
Se ve en la figura 16.3. (a)
∆
c(x*)T
Plano tangente
c(x) = 0
T
it is easy to verify that the vector d − 12 , 41 satisfies (12.28) and is therefore a de
direction.
To show that optimality conditions (12.26) and (12.27) fail, we note first from (1
390 j Capítulo 16. Optimización. Programación no lineal con condiciones
minimizar
n
f .x/
x2R
sujeta a ci .x/ D 0; i 2 E;
ci .x/ 0; i 2 I:
Existe un vector de multiplicadores de Lagrange, , con coeficientes i , i 2 E [ I, tal que se cumple que
rx L.x ; / D rf .x / T c.x / D 0;
ci .x / D 0; para todo i 2 E;
ci .x / 0; para todo i 2 I;
i 0; para todo i 2 I;
i ci .x / D 0; para todo i 2 E [ I:
Consideraciones sobre los signos de los multiplicadores Si se mantiene la coherencia con la notación y
convención de signos adoptada para los multiplicadores , si hubiese inecuaciones o condiciones del tipo 0,
éstas se introducirían en la función de Lagrange también con signo negativo, pero las condiciones de punto
óptimo exigirían que fuesen 0.
Es por esto que en muchas publicaciones la función de Lagrange incorpora las condiciones con el
multiplicador precedido del signo C, pero luego exigen que si la inecuación es 0, el multiplicador
correspondiente debe ser 0. Igualmente, si la inecuación es 0, su multiplicador ha de ser 0.
Retomando la idea original de los multiplicadores de Lagrange, al introducir estos en la función objetivo se
busca que se penalice el que no se cumplan las condiciones de desigualdad. Si estas exigen , y no se
cumplen, el valor en la función objetivo de lo que no se cumple, que sería una cantidad positiva, lógicamente,
debería estar afectado con un multiplicador de signo positivo para penalizar la minimización que se está
tratando de conseguir. Si las condiciones son , lo contrario lógicamente.
Si en x la matriz rx2 L.x ; / es definida positiva, ese punto es el mínimo local único del problema.
donde G nn es una matriz simétrica y g, x y ai ; i 2 E [ I, vectores Rn ! R. La Programación Cuadrática guarda una
relación muy estrecha con la Programación Lineal
Si G es definida positiva, el problema puede resolverse algebraicamente. Si G es semidefinida positiva, el problema
en convexo y puede resolverse casi como un problema de Programación Lineal.
1 T
L.x; / D x G x C xT g T .Ax b/ :
2
Las condiciones de punto óptimo de Karush, Kuhn y Tucker son
rx L.x; / D G x C g AT D 0
Ax b D 0:
En forma matricial,
G AT x g
D :
A 0 b
Es fácilmente demostrable que si G es definida positiva y A de rango completo, la solución única de este problema es
1
x G AT g
D :
A 0 b
La solución mediante una sesión de M ATLAB que plasme las ecuaciones algebraicas correspondiente y con quadprog()
son las del cuadro 16.1. . Con fmincon() la del cuadro 16.2.
392 j Capítulo 16. Optimización. Programación no lineal con condiciones
Cuadro 16.1
>> options=optimoptions(’fmincon’,’Display’,’iter-detailed’);
>> x = fmincon(@Q1fun,[0;0;0],[],[],A,b,[],[],[],options)
First-order Norm of
Iter F-count f(x) Feasibility optimality step
0 4 0.000000e+00 3.000e+00 2.667e+00
1 9 1.347222e+00 1.500e+00 1.117e+01 2.614e+00
2 13 -3.198427e+00 8.882e-16 2.430e+00 2.949e+00
3 17 -3.497660e+00 4.441e-16 3.369e-01 4.059e-01
4 21 -3.500000e+00 0.000e+00 1.850e-07 3.286e-02
Cuadro 16.2
Si utilizamos el software disponible en Internet que ya hemos visitado, OPTI Toolbox de Jonathan Currie, del In-
dustrial Information & Control Centre (I 2 C 2 ), de la AUT University, Auckland, New Zealand, la sesión de M ATLAB
correspondiente es la que presenta el cuadro 16.3.
>> xy=(A*Y)\b
>> G=[6 2 1;2 5 2;1 2 4];
xy =
>> c=[-8;-3;-3];
-2.1213
>> A=[1 0 1;0 1 1];
1.2247
>> b=[3;0];
>> xyy=R(1:m,:)’\b % alternativa
>> [Q R]=qr(A’)
xyy =
Q =
-2.1213
-0.7071 0.4082 -0.5774
1.2247
0 -0.8165 -0.5774
>> xz=-(Z’*G*Z)\(Z’*G*Y*xy+Z’*c)
-0.7071 -0.4082 0.5774
xz =
R =
-6.1489e-16
-1.4142 -0.7071
>> x=Y*xy+Z*xz
0 -1.2247
x =
0 0
2.0000
>> Y=Q(:,1:m)
-1.0000
Y =
1.0000
-0.7071 0.4082
>> la=(A*Y)’\(Y’*(c+G*x))
0 -0.8165
la =
-0.7071 -0.4082
3.0000
>> Z=Q(:,m+1:n)
-2.0000
Z =
>> la=R(1:m,:)\(Y’*(c+G*x))
-0.5774
la =
-0.5774
3.0000
0.5774
-2.0000
Con el “solver” quadprog de M ATLAB otra vez, para obtener el vector de multiplicadores , se obtiene lo que expresa
el cuadro 16.4.
output =
iterations: 1
constrviolation: 4.440892098500626e-016
>> [x fval exitflag output lambda] = quadprog(G,c,[],[],A,b)
algorithm: [1x58 char]
Optimization terminated: relative (projected) residual
firstorderopt: 0
of PCG iteration <= OPTIONS.TolFun.
cgiterations: 1
x =
message: [1x91 char]
2.000000000000000
lambda =
-1.000000000000000
eqlin: [2x1 double]
1.000000000000000
ineqlin: []
fval =
lower: []
-3.500000000000000
upper: []
exitflag =
>> lambda.eqlin
1
ans =
-2.999999999999999
2.000000000000000
Cuadro 16.4
Gx C g AT y CTz D 0
Ax b D 0
Cx d 0
z 0
zi .C x d/i D 0; i D 1; : : : ; mC :
Si se introduce el vector de variables de holgura s en C x d 0 las condiciones KKT quedan así:
Gx C g AT y CTz D0
Ax b D0
s Cx C d D0
si zi D0
.z; s/ 0:
Ahora vamos a aplicar, como hacíamos en Programación Lineal, un procedimiento de punto interior predictor correc-
tor para ir resolviendo el sistema de ecuaciones f .x; y; z; s/, que es
2 3
G x C g AT y C T z
6 Ax b 7
f .x; y; z; s/ D 6
4
7 D 0:
5
z;s>0 s Cx C d
SZe
La ecuación de Newton-Raphson para resolver este sistema es
2 3
x
6 y 7
J6 7
4 z 5 D f .x; y; z; s/;
s
donde J es la matriz jacobiana del sistema de ecuaciones. Desarrollando queda
2 32 3 2 3
G AT C T 0 x rL
6 A 0 0 07 6 7 6 7
6 7 6 y 7 D 6 rA 7 ;
4 C 0 0 I 5 4 z 5 4 rC 5
0 0 S Z s rsz
donde
rL D g C G x AT y CTz
rA D Ax b
rC D s Cx C d
rsz D e S Z e:
El vector e evita que s y z se acerquen demasiado a 0.
Como en el caso predictor-corrector de PL, primero se calcula la dirección de escalado afín, Œx af ; y af ; zaf ,
saf , o dirección pura de Newton (o dirección predictor), resolviendo este último sistema.
Una vez calculada esa dirección, se determina una amplitud de paso ˛ af a lo largo de la misma de tal manera que se
cumpla la factibilidad de z y s, es decir, que
z C ˛ af x af 0
s C ˛ af saf 0;
396 j Capítulo 16. Optimización. Programación no lineal con condiciones
teniendo en cuenta las ideas del central path de PL. Luego, para seguir con la dirección corrector hay que obtener
primero el parámetro de centrado, , para aproximarse al central path. Para ello se calcula la brecha dual, o lo que no se
T
cumple de la condición de complementariedad de s y z, D smCz , así como la que predecía el paso avanzado, esto es,
T
af s C ˛ af saf z C ˛ af zaf
D ;
mC
af 3
haciéndose por fin D .
La dirección corrector, con información de segundo orden, se calcula resolviendo
2 32 3 2 3
G AT C T 0 x rL
6 A 0 7 6 y 7 6 rA 7
6 0 0 76 7D 6 6 7
4 C 0 7:
0 I 5 4 z 5 4 rC 5
0 0 S Z s rsz C S af Z af e e
Por último se calcula una amplitud de paso global de la iteración, ˛, que cumpla la factibilidad de s y z llegándose,
mediante un último parámetro de seguridad o amortiguación, , al nuevo punto
ŒxkC1 ykC1 zkC1 skC1 T D Œxk yk zk sk T C ˛Œx y z sT :
La mayor cantidad de trabajo de este procedimiento está en resolver los sistemas de ecuaciones que definen las direc-
ciones predictor y corrector. En este sentido, la cuarta ecuación del sistema matricial predictor anterior es
1
S z C Z s D rsz y de ahí s D Z .rsz C S z/ :
Despejando en la tercera
C T x s D rC ) C T x Z 1
.rsz C S x/ D rC
por lo que
C T x Z 1
S z D rC C Z 1
rsz :
El sistema queda así
2 32 3 2 3
G AT CT x rL
4 A 0 0 5 4 y 5 D 4 rA 5:
C 0 Z 1S z rC Z 1 rsz
El programa de M ATLAB que lo implementa es el del cuadro 16.5.
Ejemplo 16.4 Resolvamos el problema
2 3 2 3
4 0 0 8
minimizar 21 x T 4 0 1 1 5 x C xT 4 6 5
0 1 1 6
sujeta a x1 C x2 C x3 D 3
x0
Utilizamos el script de M ATLAB anterior y le suministramos la información en una sesión interactiva, obteniéndose
lo que plasma el cuadro 16.6.
Con los “solver” quadprog y fmincon de M ATLAB se obtiene el cuadro 16.7. La función que calcula los valores de
la función objetivo para fmincon es la que sigue.
function f=Q2fun(x)
% Ejemplo optimización cuadrática 1
f=0.5*[x(1) x(2) x(3)]*[4 0 0;0 1 -1; 0 -1 1]*[x(1); x(2); x(3)]+...
[x(1) x(2) x(3)]*[-8;-6;-6];
end
16.4 Programación Cuadrática Secuencial j 397
% Cálculo de alpha_a
alpha_a = 1;
function [x_f, y_f, z_f, s_f, fo, k] = pcQP_gen_2(G, g, A, b, C, d, x, y, z, s)
idx_z = find(dz_a<0);
% Resuelve el problema de Programación Cuadrática
if isempty(idx_z)==0, alpha_a = min(alpha_a,min(-z(idx_z)./dz_a(idx_z))); end
% min 0.5x’Gx + g’x
idx_s = find(ds_a<0);
% s. a Ax = b A=nA x n
if isempty(idx_s)==0, alpha_a = min(alpha_a,min(-s(idx_s)./ds_a(idx_s))); end
% Cx >= d C=nC x n
mu_a = ((z+alpha_a*dz_a)’*(s+alpha_a*ds_a))/nC; % Affine duality gap
% mediante el método predictor corrector de punto interior. Parte de (x,y,z,s)
sigma = (mu_a/mu)^3; % Centering parameter
[nA n]=size(A); [nC ncc]=size(C); e=ones(n,1); % ¡OJO! n==ncc
% Se resuelve dirección corrector
k=0 ; maxk=200; eps_L=1e-9; bc=1+max(norm(b),norm(d));
rsz = rsz + ds_a.*dz_a - sigma*mu*e;
if nargin<7, s=ones(nC,1); y=ones(nA,1); z=ones(nC,1); x=sqrt(n)*ones(n,1); end
rhs = [-rL; -rA; -rC+rsz./z];
% Residuos
dxyz = P*(L’\(D\(L\(P’*rhs))));
rL = G*x + g - A’*y - C’*z;
dx = dxyz(1:length(x));
rA = -A*x + b;
dy = dxyz(length(x)+1:length(x)+length(y));
rC = -C*x + s + d;
dz = dxyz(length(x)+length(y)+1:length(x)+length(y)+length(z));
rsz = s.*z;
ds = -((rsz+s.*dz)./z);
mu = mean(rsz); residuo=norm([rL;rA;rC;rsz])/bc;
% Cálculo de alpha
alpha = 1;
fprintf(’\n No fac. Error Brecha Error’);
idx_z = find(dz<0);
fprintf(’\n primal Lagrang. dual relati.\n’);
if isempty(idx_z)==0, alpha = min(alpha,min(-z(idx_z)./dz(idx_z))); end
fprintf(’ Iter A*x-b, C*x-s-d G*x+g-A’’*y-C’’*z z’’*s total\n’);
idx_s = find(ds<0);
fprintf(’ --------------------------------------------------------------\n’);
if isempty(idx_s)==0, alpha = min(alpha,min(-s(idx_s)./ds(idx_s))); end
while k<=maxk & residuo>eps_L
% Obtención nuevo punto
% Se resuelve el sistema para determinar dirección de Newton pura: predictor
tau=max(.9995,1-mu)*alpha; % Con factor eta=0.9995
Mat = [G -A’ -C’ ; ...
x = x+tau*dx; y = y+tau*dy; z = z+tau*dz; s = s+tau*ds; k = k+1;
-A zeros(nA,nA) zeros(nA,nC) ; ...
% Recalcular residuos en nuevo punto, brecha dual e imprimir iteración
-C zeros(nC,nA) sparse(-diag(s./z))];
rL = G*x + g - A’*y - C’*z;
rhs = [-rL; -rA; -rC+rsz./z];
rA = -A*x + b;
[L D P] = ldl(Mat);
rC = -C*x + s + d; nrC=norm([rA;rC]);
dxyz_a = P*(L’\(D\(L\(P’*rhs))));
rsz = s.*z;
dx_a = dxyz_a(1:length(x));
mu = mean(rsz); residuo=norm([rL;rA;rC;rsz])/bc;
dy_a = dxyz_a(length(x)+1:length(x)+length(y));
fprintf(’%5i %15.2e %17.2e %13.2e %10.2e\n’,k,nrC,norm(rL),mu,residuo);
dz_a = dxyz_a(length(x)+length(y)+1:length(x)+length(y)+length(z));
end
ds_a = -((rsz+s.*dz_a)./z);
x_f = x; y_f = y; z_f = z; s_f = s; fo = 0.5*x’*G*x+g’*x;
end
Cuadro 16.5
Cuadro 16.6
398 j Capítulo 16. Optimización. Programación no lineal con condiciones
Cuadro 16.7
minimizar
n
f .x/
x2R
sujeta a ci .x/ D 0; i 2 E;
ci .x/ 0; i 2 I:
La idea de los métodos SQP (Sequential Quadratic Programming) es desarrollar un proceso iterativo en el que en cada
punto .xk ; k / se modeliza el problema mediante uno de programación cuadrática
minimizar
n
fk C rfkT p C 12 pT rxx
2
Lk p
p2R
sujeta a rci .xk /T p C ci .xk / D 0; i 2 E;
rci .xk /T p C ci .xk / 0; i 2 I;
cuyo óptimo llevará a .xk C p; kC1 /, el nuevo punto. El algoritmo esquemático sería así:
La función de Lagrange es
Lk D x14 2x24 x34 x12 x22 x12 x32 1 x14 C x24 C x34 25 2 8x12 C 14x22 C 7x32 56 :
y
" 12x12 2x22 2x32 121 x12 162 4x1 x2 4x1 x3
#
2
rxx Lk D 4x1 x2 24x22 2x12 121 x22 282 0
4x1 x3 0 12x32 2x12 121 x32 142
Para resolverlo, utilizaremos el script de M ATLAB que se lista en el cuadro 16.8. El subproblema cuadrático se
resuelve con el procedimiento del subespacio imagen de A para programación cuadrática con condiciones de igualdad.
Si le aplicamos los datos del problema y comprobemos que el punto obtenido es un mínimo local, en el cuadro 16.9 de
la página 400 se ve lo que resulta.
Vamos a resolver el mismo caso con el software IPOPT, que pasa por ser el mejor de los actualmente en el mercado
para Programación No Lineal. A este programa tendremos que informarle sobre dónde están las funciones que calculan
la función objetivo, y su gradiente, si queremos, y las condiciones y los gradientes de estas.
Usaremos el “pequeño” programa que se lista en el cuadro 16.10 de la página 401 para hacerlo. Partiremos del mismo
punto x0 . El script con lo que se le suministra al software y los resultados que se obtienen son los que siguen en los
dos recuadros. El resultado se puede ver en el cuadro 16.11.
Ahora resolveremos el mismo caso con la función fmincon de M ATLAB. Le informaremos dónde están las funciones
que calculan la función objetivo, y su gradiente si queremos, y las condiciones y los gradientes de estas.
En este caso la función objetivo y su gradiente están calculados en fg_ejsqp1.m y las condiciones y sus gradientes
en cg_ejsqp1.m. Estas funciones y el resultado correspondiente, partiendo del mismo punto x0 , se pueden ver en el
cuadro 16.12 de la página 403.
function z = f_ejsqp1(x)
% Función objetivo y condiciones de Ejemplo SQP1
x1 = x(1); x2 = x(2); x3 = x(3);
fk = -x1^4-2*x2^4-x3^4-x1^2*x2^2-x1^2*x3^2;
ak = [x1^4+x2^4+x3^4-25; 8*x1^2+14*x2^2+7*x3^2-56];
z = [fk; ak];
end
function z = g_ejsqp1(x)
% Gradientes de f.o. y condiciones de Ejemplo SQP1
x1 = x(1); x2 = x(2); x3 = x(3);
gk = [-4*x1^3-2*x1*x2^2-2*x1*x3^2; -8*x2^3-2*x1^2*x2; -4*x3^3-2*x1^2*x3];
Ak = [4*x1^3 4*x2^3 4*x3^3; 16*x1 28*x2 14*x3];
z = [gk Ak’];
end
Cuadro 16.8
>> x0=[3;1;3];
>> lmd0 = [-1 -1]’;
>> [xs,lmds,fs,k]=SQP_e(’f_ejsqp1’,...
’g_ejsqp1’,’w_ejsqp1’,x0,lmd0)
Vector solución:
>> A=[4*xs(1)^3 4*xs(2)^3 4*xs(3)^3; 16*xs(1) 28*xs(2) 14*xs(3)] % Jaco. en el óptimo
xs =
A =
1.874065458268392
26.327781168218593 0.404308983401344 26.779398394895583
0.465819644836092
29.985047332294279 13.042950055410584 26.386086226382556
1.884720444741611
>> kA=null(A) % Sub. núcleo de A
Función objetivo:
kA =
fs =
-0.696840008344593
-38.284827869947819
0.222860949715932
Número de iteraciones:
0.681723550907565
k =
>> L = w_ejsqp1([xs;lmds]) % Hess. en el óptimo
7
L =
xs =
6.278649119268822 -3.491906024680684 -14.128357935929984
1.874065458268392
-3.491906024680684 -1.347992348176401 0
0.465819644836092
-14.128357935929984 0 6.350246509661261
1.884720444741611
>> kA’*L*kA
lmds =
ans =
-1.223463560484408
20.441122695387470
-0.274937102065629
fs =
-38.284827869947819
k =
7
Cuadro 16.9
16.4 Programación Cuadrática Secuencial j 401
function x = IPOPT_ejsqp1
x0=[3; 1; 3]; % Punto de partida
options.ub=[Inf;Inf;Inf]; % Cotas superiores de las variables
options.lb=[-Inf;-Inf;-Inf]; % Cotas inferiores de las variables
options.ipopt.print_level = 5;
options.ipopt.hessian_approximation = ’exact’; % Matriz Hessiana si
options.ipopt.derivative_test = ’first-order’;
options.ipopt.derivative_test = ’second-order’;
Cuadro 16.10
402 j Capítulo 16. Optimización. Programación no lineal con condiciones
>> IPOPT_ejsqp1
This is Ipopt version trunk, running with linear solver mumps.
Number of Iterations....: 7
(scaled) (unscaled)
Objective...............: -2.2788588017827323e+001 -3.8284827869949901e+001
Dual infeasibility......: 7.4606987254810520e-013 1.2533973858808168e-012
Constraint violation....: 1.3816108750890836e-012 1.4921397450962104e-012
Complementarity.........: 0.0000000000000000e+000 0.0000000000000000e+000
Overall NLP error.......: 1.3816108750890836e-012 1.4921397450962104e-012
Cuadro 16.11
16.4 Programación Cuadrática Secuencial j 403
x =
1.874064803822328
-0.465819854015786
1.884721085084425
fval =
-38.284827873204847
mflag =
1
output =
iterations: 11
funcCount: 33
algorithm: ’sequential quadratic programming’
message: [1x782 char]
constrviolation: 2.473605320574279e-009
stepsize: 1
firstorderopt: 3.709210533962449e-005
lambda =
eqlin: [0x1 double]
eqnonlin: [2x1 double]
ineqlin: [0x1 double]
lower: [3x1 double]
upper: [3x1 double]
ineqnonlin: [0x1 double]
grad =
-40.455060168650469
4.080648472401320
-40.018154736754951
hessian =
14.871537376429519 -4.562119880847577 -10.877223066124762
-4.562119880847577 7.568783635756974 -0.927972279190895
-10.877223066124762 -0.927972279190895 10.903957285682973
Cuadro 16.12
404 j Capítulo 16. Optimización. Programación no lineal con condiciones
Los diversos vectores y matrices necesarios para conocer más del problema son
2 3
x1 x3 " #
6x x4 7 x1 =2 C 0;5 2x2 0 0
6 2 7
rfk D 6 7; Jk D y
4 x3 x1 5 0 0 .5x3 C 3x4 /=4 C 11=2 .3x3 C 5x4 /=4 C 13=2
x4 x2 2 3
1 C 1 =2 0 1 0
6 0 1 C 21 0 1 7
2 L D6
rxx
7
k 6 7:
4 1 0 1 C 52 =4 32 =4 5
0 1 33 =4 1 C 52 =4
Para resolver los subproblemas cuadráticos utilizaremos un método de punto interior primal dual un poco más simple
que el predictor-corrector que acabamos de ver.
El programa codificado en el cuadro 16.13 puede resolver este tipo de problemas.
Cuadro 16.13
La parte correspondiente a la resolución de los subproblemas con un solver de punto interior lo hace el otro código que
se lista en el cuadro 16.14. Si le aplicamos los datos del problema a este programa, a través de una sesión de M ATLAB,
resulta lo que lista en la parte derecha de ese cuadro.
Ahora, para seguir comparando métodos y prestaciones, resolveremos el mismo problema con la función fmincon de
M ATLAB. La función objetivo y su gradiente están en fg_ejsqp2.m; las condiciones y sus gradientes en cg_ejsqp2.m.
Partiendo del mismo punto x0 , y con los mismos parámetros de optimización, los resultados que se obtienen son los que
lista el cuadro 16.15.
16.4 Programación Cuadrática Secuencial j 405
Cuadro 16.14
minimizar
n
f .x/
x2R
sujeta a ci .x/ D 0; i 2 E;
ci .x/ 0; i 2 I:
Cuadro 16.15
16.4 Programación Cuadrática Secuencial j 407
Cuadro 16.16
Cuadro 16.17
Las funciones a las que llama el script anterior para calcular la función objetivo, las condiciones, gradientes y
jacobianas de este ejemplo son las del cuadro 16.18.
408 j Capítulo 16. Optimización. Programación no lineal con condiciones
Cuadro 16.18
Si resolvemos el mismo problema con fmincon de M ATLAB. La función objetivo y su gradiente están en este caso,
debido a los requisitos de este solver, en fg_ejsqp3.m y las condiciones y sus gradientes en cg_ejsqp3.m.
Partiendo del mismo punto x0 , y con los mismos parámetros de optimización, los resultados que se obtienen son los
del cuadro 16.19.
minimizar f .x/
minimizar
n
f .x/ x;s
x2R
sujeta a cE .x/ D 0
sujeta a ci .x/ D 0; i 2 E;
cI .x/ s D 0
ci .x/ 0; i 2 I:
s 0:
debiendo ser D 0, s 0 y z 0.
Las matrices AE y AI son las jacobianas de las condiciones cE .x/ y cI .x/, respectivamente, y los vectores y y z
sus multiplicadores de Lagrange. S es una matriz diagonal cuyos coeficientes son los de s. La segunda ecuación, con
D 0, es la de complementariedad.
Como razonábamos en Programación Lineal, para solventar la dificultad que supone la no negatividad de esas va-
riables, se introduce un > 0 –denominado parámetro barrera– que haga que Sz D e a lo largo del proceso de
optimización, lo que permitirá que s y z se mantengan estrictamente positivas. Recalculando de iteración en iteración,
y haciendo que tienda a cero en el global del proceso se acabará consiguiendo cumplir las condiciones KKT.
16.5 Métodos de puntos interiores j 409
Cuadro 16.19
Si esto lo acompasamos con la mejora de una función de mérito que equilibre la minimización de f .x/ con el que se
cumplan las condiciones, esa convergencia llevará a un mínimo local o global del problema.
A este mismo enfoque se llega si, como en Programación
P lineal una vez más, se considera el problema barrera del
original en el que la función objetivo es f .x/ m iD1 log si.
Si se aplica el método de Newton para resolver el sistema de ecuaciones que determinan las condiciones KKT del
problema, se tiene en cada iteración un sistema como éste
2 2 32 3 2 3
rxx L 0 AET .x/ AIT .x/ px rf .x/ AET .x/y AIT .x/z
6 0 Z 0 S 76 ps 7 6 Sz e 7
6 76 7D 6 7;
4 AE .x/ 0 0 0 54 py 5 4 cE .x/ 5
AI .x/ I 0 0 pz cI .x/ s
donde L es la función de Lagrange del problema
L.x; s; y; z/ D f .x/ y T cE .x/ zT .cI .x/ s/ :
Después de obtenida la solución de ese sistema de ecuaciones, se determina un nuevo punto del proceso iterativo
.x C ; sC ; y C ; zC / tal que
x C D x C ˛smax ps ; sC D s C ˛smax ps
C max
y D y C ˛z py ; zC D z C ˛zmax pz ;
410 j Capítulo 16. Optimización. Programación no lineal con condiciones
donde
˛smax D mKax f˛ 2 .0; 1 W s C ˛ps .1 /sg ;
˛zmax D mKax f˛ 2 .0; 1 W z C ˛pz .1 /zg ;
con 2 .0; 1/: normalmente 0;995.
El proceso pararía cuando el error
˚
E.x; s; y; zI / D mKax krf .x/ AET .x/y AIT .x/zk; kSz ek;
kcE .x/k; kcI .x/ skg
donde ‰ D S 1 Z .
El algoritmo básico de punto interior para programación no lineal es el que explicita el cuadro 16.20.
Cuadro 16.20
Uno de las cuestiones siempre presente en todos los procedimientos que estudiamos es el dar el paso más adecuado
en la dirección de búsqueda. En el caso del método primal-dual, para calcular esa amplitud de paso se usa una función
de mérito en términos de la función barrera:
m
X
ˆ .x; s/ D f .x/ log si C kcE .x/k C kcI .x/ sk:
i D1
Las normas pueden ser la 1 o la 2 y un parámetro que pondere el peso del incumplimiento de los factores a los que
afecta con el de los logaritmos.
En la determinación de la amplitud de paso, una vez calculado el paso p.x; s/ y los ˛smax y ˛zmax , mediante backtrac-
king se calculan unos
˛s 2 .0; ˛smax ; ˛z 2 .0; ˛zmax
que proporcionen un decremento suficiente en la función de mérito anterior. El nuevo paso será
x C D x C ˛s ps ; sC D s C ˛s ps
y C D y C ˛z p y ; zC D z C ˛z pz :
16.5 Métodos de puntos interiores j 411
Bk xk xkT Bk lk lkT
BkC1 D Bk C ;
xkT Bk xk lkT xk
donde
xk D xk xk 1 y
lk D rx L.xk ; sk ; yk ; zk / rx L.xk 1 ; sk ; yk ; zk /:
minimizar
n
f .x/
x2R
sujeta a c.x/ 0:
El caso en el que haya además condiciones de igualdad es esencialmente similar, aunque complica un poco la formula-
ción. Lo que sigue es una adaptación de la estrategia del programa LOQO.
Escrito con variables de holgura, el problemas es
minimizar f .x/
x;s
sujeta a c.x/ sD0
s 0:
rf .x/ A T .x/ D 0
D
c.x/ s D 0
si i D 0
s 0:
Para evitar la condición de no negatividad del vector s se introduce esta formulación equivalente del problema (tradi-
cional como vimos en PL) X
minimizar f .x/ ln si
x;s
sujeta a c.x/ s D 0;
P
cuya función de Lagrange es L.x; s; ; / D f .x/ ln si T .c.x/ s/ : Sus condiciones KKT son
rf .x/ A T .x/ D 0
c.x/ s D 0
S 1 e C D 0;
que, si nos fijamos bien, son idénticas a las anteriores, salvo el escalar (que no el vector ) que es el que tiene como
objetivo que las variables del vector s no se acerquen mucho a cero. Si a la tercera ecuación se le multiplica por S se
llega al conocido sistema primal-dual, básico en el algoritmo que implementamos.
412 j Capítulo 16. Optimización. Programación no lineal con condiciones
La matriz de este sistema no es simétrica pero puede hacerse así: multipliquemos la primera ecuación por I y la
segunda por Sk 1 :
2 32 3 2 3
Hk 0 AkT xk k
4 0 Sk 1 ƒk I 54 sk 5 D4
k 5 ;
Ak I 0 k k
P
donde H k D H .x; / D r 2 f .x/ i r 2 ci .x/
Ak D rc.x/
k D rf .x/ AkT k D gk AkT k
k D Sk 1 e k
k D sk ck :
El vector k mide la no factibilidad del problema primal. Por analogía con Programación Lienal, k mide lo lejos que
está .xk ; k / de ser un punto factible del problema dual.
El algoritmo procedería iterativamente a partir de la dirección Œxk ; sk ; k T , supuesto que sea de descenso,
obteniéndose un nuevo punto
xkC1 D xk C ˛k xk
skC1 D sk C ˛k sk
kC1 D k C ˛k k
calculando para ello la amplitud de paso ˛k que minimiza una función de mérito adecuada. Luego se usa la función de
mérito
X ˇ
‰ˇ; .x; s/ D f .x/ ln si C ks c.x/k22 ;
2
donde cambia de iteración en iteración, tendiendo a cero, y ˇ es una constante que penalice la no factibilidad del
primal y que haga que la dirección sea realmente de descenso en ‰ˇ; .x; s/ si el problema no es convexo.
Si el problema no es convexo, la matriz hessiana de la función de Lagrange del problema hay que modificarla en cada
iteración para que sea definida positiva. Para ello se hace
O k D H k .xk ; k / C I;
H
Partiremos del punto x0 D Œ2; 2T . Como hay una condición de igualdad, vamos a resolver
Cuadro 16.21
414 j Capítulo 16. Optimización. Programación no lineal con condiciones
Las functions para calcular la función objetivo, condiciones, gradientes, jacobianas y hessianas son las del cua-
dro 16.22. En ese mismo cuadro se lista una sesión de M ATLAB con NLP_IP_nc() y con esas funciones.
Cuadro 16.22
Con el solver fmincon de M ATLAB, para el que construimos un script que luego ejecutamos, se obtiene lo del
cuadro 16.23.
>> Script_fmincon_ex158
First-order Norm of
Iter F-count f(x) Feasibility optimality step
0 1 1.000000e+000 4.000e+000 1.332e+000
1 2 5.198962e-001 7.344e-001 6.048e-001 1.107e+000
2 3 1.280727e+000 6.368e-002 2.827e-001 4.740e-001
3 4 1.498705e+000 0.000e+000 5.490e-002 1.000e-001
4 5 1.416079e+000 0.000e+000 1.215e-002 3.685e-002
5 6 1.393937e+000 0.000e+000 2.554e-004 1.009e-002
6 7 1.393468e+000 0.000e+000 1.417e-006 2.146e-004
Local minimum found that satisfies the constraints.
Optimization completed because the objective function is non-decreasing in
feasible directions, to within the default value of the function tolerance,
and constraints were satisfied to within the default value of the constraint tolerance.
Cuadro 16.23
416 j Capítulo 16. Optimización. Programación no lineal con condiciones
Capítulo 17
Contenido
17.1 El problema de la Programación Entera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
17.2 Resolución gráfica del problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419
17.3 Resolución numérica. Relajaciones en la formulación . . . . . . . . . . . . . . . . . . . . . . . . . 420
17.4 Algoritmo de planos o cortes de Gomory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
17.5 Algoritmos Branch and Bound - ramificación y acotación . . . . . . . . . . . . . . . . . . . . . . 423
17.6 Programación no lineal con variables Enteras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
L A programación entera se ocupa del estudio y solución de los problemas de optimizar funciones de diversas
variables sujetas a condiciones de igualdad y/o desigualdad, restringiéndose además a que todas o alguna de esas
variables sólo tomen valores enteros.
Sus orígenes se remontan a los años 50 del siglo XX. El pionero fue Ralph Gomory, EE.UU. 1929.
Gomory
Las áreas de aplicación práctica son muchas allí donde hay que asignar recursos sólo disponibles en cantidades discre-
tas: distribución de mercancías, programación de la producción en factorías, secuenciación de maquinaria en procesos
industriales y productivos, asignación de grupos generadores de energía eléctrica, cadenas de suministro, logística, pro-
gramación de rutas de vuelos, etc.
maximizar
n p
c T x C hT y
x2Z y2R
sujeta a Ax C G y b
x; y 0:
8.10. OPTIMISATION WITH INTEGER CONSTRAINTS 405
x variable
In all these cases, the decision 0; must be an integer, since we cannot stop 1.3 times or
build 2.7 distillation columns, or in the latter existence/non-existence example, the variable
will be a binary decision variable. Constrained optimisation problems where the decision
se le conoce como programa entero puro, programa lineal en variables enteras o, simplemente, programa entero. Un
variables are integers are known as integer programming, or a binary linear program if the
caso particular de programa entero es aquel en elare
variables queconstrained
las variables sólo pueden
to be either tomar
zero or one, valores
or finally 0 some
if only ó 1. are required to be
En programación entera no existe un integers,
métodothen universal,
it is knowncomo el Símplex
as a mixed-integer enprogramming
linear programación lineal,
or MILP que obtiene la
problem.
solución sirviéndose de las propiedades de convexidad
Surprisingly binarydelorproblema a resolver.
integer programming En programación
problems are much harder entera lathan
to solve convexidad
opti-
desaparece, no pudiéndose utilizar por tanto la noción
misation dewith
problems gradiente parasolutions.
real number caracterizar y buscar
The reason elisóptimo
for this dediscrete,
that being un problema.
we
cannot use gradients or search directions, and therefore the number of possible solutions
Se hace necesario emplear métodos de 406
resolución específicos del aspecto combinatorio de las
grows combinatorially. Explicit enumeration therefore is quickly CHAPTER
variables enteras.
8. OPTIMISATION
out of the question. One
Ls programas enteros, como muestran maylos dos primeros
be tempted ejemplos
in this desimply
instance to la figura, si sethe
first solve quiere maximizar
LP problem y, o minimizar
in the normal man-
y, no tienen por qué tener el óptimo decision
cerca delvariables,
ner, and óptimo
then del
subsequentlyprograma
(circles in Fig.con
round this variables
optimum
8.57), see continuas,
weresult to the nearestniintegers.
in fact there issiquiera el óptimo
However,
no feasible as es
region at all,
8.10. OPTIMISATION WITH INTEGER CONSTRAINTS 405be reasonable, or even feasible.
illustrated in Fig. 8.56 that solution may not
un entero próximo a ese óptimo continuo (la segunda
despite figura).
the fact that the relaxed linear problem did have a non-zero feasible region.
ToThere
solvecan
integer linear
be other programming
complications as well.problems we example
Consider the could do an exhaustive
shown search over all
in Fig. 8.57 which
and También puede
worth to place quesmall
in our la región
suitcasefactible no
theshows
to maximise registre
feasible ni ’knapsack’
a perfectly
value, (the un For
integers. sólo
valid linear entero
large factible,
problems,
optimisation
problem), and thisexistiendo
problemis with dicho
combinatorially
a convex espacio
large,
feasible enaClearly
so
region. el sentido
better solution
tradicional.
whether somewhere
we should or should not install a newstrategy,
pump between in two
in fact that region
of the there
onestorage tanks,
only will be can’t
(you
known an optimum,
practical irrespective
solution of whatis our
strategies, particular
to use what is known
install half a pump!). as objective
a branchfunction
and boundhappens to be. However
technique, when we restrict
[45, p411–415]. Here our
we attention
start by to just integer
solving a relaxed ver-
sion of the original problem, namely we simply ignore the integer constraints, and solve
17.1.1 Ejemplos
In all these cases, the decision variable must be an integer, since we cannot stop 1.3 times or
the linear program as usual. The term ‘relaxed’ means that we have deliberately relaxed
build 2.7 distillation columns, or in the latter existence/non-existence example, the variable
some of the constraints in order to achieve a solution, albeit perhaps an infeasible one. If
will be a binary decision variable. Constrained optimisation problems where the decision
Enunciaremos dos de los más significados y clásicos.
we happen
variables are integers are known as integer programming, fortuitously
or to stumble
a binary linear program across
if the an integer solution, we are done. However in
mostorcases,
variables are constrained to be either zero or one, finallywe will some
if only not get
arean integertosolution,
required be but we do have an under-estimator of the
minimum cost function. In
integers, then it is known as a mixed-integer linear programming or MILP problem. the case of Fig. 8.56, we can see that the real-valued optimum
17.1.1.1 El problema de la mochila
is about x = 3.5, y = 5.8. In this case we can take one of the non-integer variables, say x
Surprisingly binary or integer programming problems are much
and resolve harder
the linear to solvetwice,
program than opti-
but this time with an additional constraint, the first
Es posiblemente
misation el más
problems with clásicosolutions.
real number de la programación forentera.
The reasonadds
re-solution this
theisbound
that being
x >discrete, we second adds x < 3.
4, and the
cannotTrata
usede un transportista
gradients que dispone
or search directions, andde un vehículo
therefore the number(o mochila) consolutions
of possible capacidad volumétrica de transporte b, en el que
This
grows combinatorially. Explicit enumeration therefore
se pueden alojar diferentes objetos j de continual aspawning
is quickly
volúmenes out of theof optimisation
question. Oneproblems is known as branching and would soon
j y valores económicos cj , y que quiere maximizar el valor de lo
may be tempted in this instance to simply first solve the LP
overwhelm us problem
if we were in the
notnormal man- do some pruning. Obviously if any of the new
to somehow
transportado
ner, en cada viaje.
and then subsequently round this optimum result toare
solutions theinteger,
nearest we integers. However,that
can terminate as particular branch (or prune), or if the objective
Su formulación
illustrated es solution may not befunction
in Fig. 8.56 that reasonable, or even
is worse X feasible.
than an integer solution already established, then we can also termi-
max.as well.
nate that branch cj xjThis strategy continues until we have fathomed all the possible
branches. Note however,
j that we have not necessarily solved an LP at every possible com-
X
bination; that is something we are trying hard to avoid.
s. a aj xj b
j
Problem 8.3 An integer LP example
xj D 0 ó 1:
If we minimise J (x) = −53x1 − 94x2
subject to:
−x1 + 5x2 ≤ 99
5x1 + 8x2 ≤ 210
Figure 8.56: Note that integer opti-4x1 − x2 ≤ 21
mum is not simply the truncated or
rounded version of the real-valued
−5x 1 + x2 ≤ −10
3
max. x
2 1
C x2 A
x∗ C
s. a x1 C 4x2 16
x1 C x2 10
5x1 C x2 36 5x 1 + x 2 ≤ 36
x1 ; x 2 0
x1 y x2 enteras. f. O.
D
0 x1
Sin tener en cuenta la condición de que las variables han de ser enteras, la región factible es el poliedro convexo que
generan los vértices 0; A; B; C y D de la figura. El valor máximo de la función objetivo en este poliedro se alcanza en
C . Como la auténtica región factible la constituyen los puntos interiores enteros de ese poliedro, el máximo del problema
se alcanza en el punto x D Œ6; 4T .
420 j Capítulo 17. Optimización. Programación entera
Proposición 17.1 Si el problema (PR) no es factible, tampoco lo es (PE). Si (PR) es factible, los valores de las
funciones objetivo cumplen que zPE zPR .
.1/ .1/
Paso 0 – Inicialización Hacer i D 1, w D 1 y z D 1. Escoger un SR S tal que zR c T x para x 2 S .
Paso 1 – Relajación Resolver el problema PE relajado:
n o
.i/ .i/
R.i/ max. zR .x/ W x 2 SR :
Paso 2 – Comprobación de óptimo Sea x .i/ la solución del problema anterior. Si x .i/ 2 S : PARAR; ésta es la solución
óptima de .PE/ con función objetivo w D c T x .i/ D z ; si no, seguir.
.i/
Paso 3 – Mejora de la solución Hacer w D zR , z D c T x .i/ si x .i/ 2 S y i i C 1.
.i C1/ .iC1/ .i/ .i C1/ .i C1/ .i/
Escoger SR tal que S SR SR y zR .x/ tal que c T x zR .x/ zR .x/ para x 2 S con
.i C1/ .i/ .iC1/ .i/
SR ¤ SR o zR .x/ ¤ zR .x/.
Ir al paso 1
donde ˚
S .0/ D x0 2 Z; x 2 Zn W x0 c T x D 0; Ax D b; x 0 :
Supondremos que se dispone de una solución y base óptimas de la relajación lineal del programa entero.
El problema se puede escribir así:
maximizar x0
X
s. a xBi C aN ij xj D aN i 0 para i D 0; 1; : : : ; m
j 2H
xB0 2 Z; xBi 2 ZC ; para i D 1; : : : ; m
xj 2 ZC para j 2 H;
Las x0 D xB0 y xBi ; i D 1; : : : ; m, son las variables básicas, y xj , j 2 H N D f1; : : : ; ng, las no básicas
xB D B 1 b B 1 NxN y z D cB B 1 b C .cN cB B 1 N /xN .
Como esta base es factible en el programa primal y dual se cumple que aN i 0 0 para i D 1; : : : ; m, y que aN 0j 0,
para j 2 H .
Suponiendo existe un i tal que aN i 0 … Z, se tiene el siguiente resultado.
P
Proposición 17.3 Corte fraccionario de Gomory. Si aN i 0 … Z, j 2H fij xj D fi 0 C xnC1 , xnC1 2 ZC , es una
condición válida en S .0/ , donde fij D aN ij baN ij c para j 2 H y fi 0 D aN i 0 baN i 0 c.
Cuando se añade un corte de Gomory, la nueva base, que incluye xnCi como variable básica, es factible del dual. La
factibilidad del primal se incumple sólo en que xnCi es negativa. Para reoptimizar el problema lo más adecuado es usar
el método dual del simplex.
Si PR.i/ es no acotado, el programa entero, PE, es no acotado o no factible.
En el cuadro 17.2 se lista el algoritmo para programación entera de los planos cortantes de Gomory.
.1/
i D 1 y zR D x0 .
Paso 1 – Resolución de la relajación lineal Resolver el programa entero relajado
n o
.i/
.PR.i/ / max. x0 W Œx0 ; x T T 2 SR :
T
.i/
Si PR.i/ es factible y tiene solución óptima, Œx0 ; x .i/ T , continuar.
Paso 2 – Comprobación de óptimo Si x .i/ 2 ZnC , ésta es la solución óptima del programa entero.
Paso 3 – Comprobación de no factibilidad Si PR.i/ no es factible, el programa entero original no es factible.
P .i/ .i/ .i/
Paso 4 – Adición de un corte de Gomory Escoger una fila xBi C j 2H .i / aN ij xj D aN i 0 con aN i 0 … Z. Hacer
X
fkj xj xnCi D fk0 ; k D 1; : : : ; m; xnCi 2 ZC ;
j 2H .i /
Hacer i i C 1 e ir al paso 1.
Ejemplo 17.3 Siguiendo con el ejemplo 17.2, la última solución de PR.1/ a la que hacíamos referencia era
3 16 332
x0 C x
11 3
C x
11 4
D 11
1 2 36
x1 x
11 3
C x
11 4
D 11
5 1 40
x2 C x
11 3
C x
11 4
D 11
8 6 75
x
11 3
C x
11 4
C x5 D 11
;
17.5 Algoritmos Branch and Bound - ramificación y acotación j 423
h T i
donde x3 D x4 D 0. Es decir x0.1/ ; x .1/ D Œx0.1/ ; x1.1/ ; : : : ; x5.1/ D 332
11
; 36 40
; ;
11 11
0; 0; 75
11
. El corte de Gomory
5 1 7 .1/
respecto de la tercera ecuación es x
11 3
C x
11 4
D 11
C x6 , x6 2 ZC . Añadiéndolo a PR se obtiene PR.2/ cuya
solución es
x0 C 57 x4 C 3
x
5 6
D 149
5
x1 C 51 x4 1
x
5 6
D 17
5
x2 C x6 D 3
2 8 29
x
5 4
C x5 C x
5 6
D 5
1 11 7
x3 C x
5 4 5 6
x D 5
:
x0 C x4 C x7 D 29
1 1 11
x1 C x
3 4
x
3 7
D 3
2 5 5
x2 x
3 4
C x
3 7
D 3
5 11 13
x
3 4
C x5 x
3 7
D 3
2 8 11
x3 x
3 4
C x
3 7
D 3
2 5 4
x
3 4
C x6 x
3 7
D 3
:
2
˘
El siguiente corte se elige de la fila x2 x
3 4
C 53 x7 D 53 . Si recordamos que 2
3
D 2
3
. 3
3
/ D 31 , es
1 2 2
x4 C x7 D C x8 ; x8 2 ZC :
3 3 3
En términos de las variables originales, los tres cortes añadidos al problema son x2 3, 2x1 Cx2 9 y 3x1 Cx2 12.
En la figura 17.1 se ve el proceso seguido en este ejemplo.
x2
x (1)
x(2)
3
Corte 1
2
x (3)
Corte 3 Corte 2
x (4)
x1
1 2 3 4
Figura 17.1: Diversos cortes de Gomory añadidos al problema del ejemplo 17.2
S = S (0)
S (1) S (2)
S (11) S (22)
S (12) S (13) S (21)
S (121) S (122)
x1 = 0 x1 = 1
S (0) S (1)
x2 = 0 x2 = 1 x2 = 0 x2 = 1
x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1 x3 = 0 x3 = 1
Figura 17.3: División de una región factible S cuando las variables son 0 ó 1
.i/ .i/
Para no tener que resolver PE .i/ se resuelve su relajación lineal: esto es, PL.i/ con S .i/ SPL y zPL .x/ c T x
.i/
para x 2 S .
Proposición 17.5 El árbol de búsqueda puede podarse a partir del nudo correspondiente a S .i/ si se cumple cualquiera
de las condiciones siguientes:
1. El programa PL.i/ no es factible.
.i/ .i/ .i/ .i/
2. El óptimo xPL de PL.i/ cumple que xPL 2 S .i/ y que zPL D c T xPL .
.i/
3. zPL zPE , donde zPE es alguna solución factible de PE.
Ejemplo 17.4 Considérese el siguiente programa entero, y la división y su árbol de búsqueda a que dan lugar tal como
se puede ver en la figura 17.4.
x1 = 0 x1 = 1
x3 = 0 x3 = 1
S (110) S (111)
Figura 17.4
La solución de la relajación lineal es Œ1=2; 1; 1T ; la función objetivo es 58. Usando la última proposición para podar
426 j Capítulo 17. Optimización. Programación entera
el árbol de búsqueda,
S .0/ D fx 0 W x1 D 0; x2 0; x3 0; x2 C x3 1g D ;;
por lo que el nudo S .0/ se desecha.
La condición de óptimo de los nudos S .110/ y S .111/ se cumple pues estos conjuntos contienen las soluciones
.110/ .111/ .111/
Œ1; 1; 0T y Œ1; 1; 1T , respectivamente. Como, zPE < zPE D 8, se tendrá que zPE D zPE D 8.
.10/ .10/
Aplicando la tercera condición de la mencionada proposición al nudo S se ve que zPL D 64 < zPE , por lo que
se desecha.
Como resultado final se obtiene que x D Œ1; 1; 1T es la solución óptima del programa entero. El valor de su función
objetivo es ZPE D 8.
En el cuadro 17.3 se lista el Algoritmo Branch and Bound general para programación entera.
.i/
L designa una colección de programas enteros, PE .i/ . Cada uno tiene la forma zPE D max. fc T x W x 2 S .i/ g, donde
.i/
S S.
y la forma de resolverlos
Mediante relajación lineal, el conjunto factible, S , se reemplaza por
.0/
SPL D fx 2 Rn W x 0; Ax bg;
13.2.1.2 División
Se trata de que desde el nudo que define una solución, si ésta no tiene como entero alguno de sus elementos que debe
Como seserlo,
usa relajación lineal en cada nudo del árbol enumerativo, la división se debe hacer
j , se establezca una dicotomía que haga partir de esa solución dos nuevas ramas: una en la que ese xj se acote
añadiendo condiciones
superiormente por su lineales. Unainferior
entero inmediato forma evidente
y otra que se acotedeinferiormente
hacer esto esentero
por su tomar S = S (1) ∪ S (2) con
superior.
T
S (1) = S ∩Los ℜn :programas
{xdos∈nuevos x ≥ 0,sedpueden
x ≤resolver S (2) =
d0 } ymediante, porSejemplo, ℜn :dual
∩ {xel∈método x≥ 0, dT xEl≥
del símplex. tamaño
d0 +de 1},
la basedonde
T Tseguirán+1
igual. (0)
[d , d0 ] ∈ Z . Si x es la solución del programa lineal (relajación inicial) inicial:
(P L(0) ) 17.5.1.2 Selección del nudo a estudiar
T n
max. c x : x ∈ ℜ , x ≥ 0, Ax ≤ b ,
Proposición 17.6 Si P D fx 2 Rn W Ax b; x 0g es acotado, el árbol de búsqueda desarrollado a partir de la
T T (0)
el vector [d , d0 ]deT las
dicotomía sevariables
puede P esescoger de tal manera
finito. En particular, si !j D dmK que
axfxj dW 0x < ningún<camino
2 Pdge,x d0 +del 1.árbol
Proceder ası́ es lo
de búsqueda
puede contener más de j 2N !j ramas. (1) (2)
más recomendable pues se obtiene un x(0) ∈ / SP L ∪ SP L , lo que permite la posibilidad de que,
(i) (i) (0)
para i = 1, 2, zP L 17.7
Proposición = max. {cTtxdel: árbol
Si el nudo x ∈ deSPbúsqueda
L} < z con .
P Lconjunto de condiciones S .t/ es tal que max. fc T x W x 2
.t/
PL g > zPE ,sólo
En la Spráctica ese nudo
se no se puede
usan [dT , d0 ]T muy concretos:
podar o rechazar.
vectores
Una cuestión importante es, dada una lista L de subárboles del árbol de búsqueda con nudos no rechazados, qué nudo
• Dicotomı́as
elegir como elde variables.
próximo a examinar.En Hayeste caso d = ej para algún j ∈ N . El punto x(0) será no
dos opciones:
Analizar uno siguiendo unas reglas preestablecidas; o (0)
factible en las relajaciones resultantes si x ∈ / Z y d0 =
Escogerlo según la información disponible en ese puntoj sobre cotas de las
⌊xj ⌋ número
variables,
(ver figura 13.5). Nótese
de nudos activos, etc.
que si xj ∈ B la rama izquierda hace xj = 0 y la derecha xj = 1.
x j ≤ ⌊x j ⌋ x j ≥ ⌊x j ⌋ + 1
Figura 17.5: División en nuevas ramas a partir de la acotación de cada variable no entera
Figura 13.5
División, por dicotomı́a de la variable xj , en un árbol enumerativo
Una importante ventaja práctica de esta división es que las condiciones que se añaden
a la relajación lineal correspondiente son simples cotas inferiores o superiores. Sólo será
7
Usaremos indistintamente estos términos.
428 j Capítulo 17. Optimización. Programación entera
Existen varias reglas preestablecidas que se pueden utilizar. La más extendida es la denominada LIFO (del inglés Last
In First Out).
LIFO: Primero analizar todos los nudos “hijos"de uno determinado y luego volver hacia atrás y escoger otro del
mismo nivel del nudo “padre” que no haya sido analizado. Es lo que apunta la figura 17.6. Los nudos subrayados son
2 5
3 4 6 9
7 8
>> c3=[1;10]
>> A3=[-66 -14;82 -28]
>> b3=[-1430;-1306]
>> [xreal,jreal]=linprog(c3,A3,b3)
Optimization terminated.
minimizar x1 C 10x2 xreal =
7.261682243025319
s. a 66x1 C 14x2 1430 67.909212283785493
82x1 C 28x2 1306 jreal =
6.863538050808803e+002
x1 ; x2 enteras; 0: >> [xint,j]=ilp_bb_1(c3,A3,b3)
xint =
7
70
j =
707
Cuadro 17.5
Con la herramienta OPTI Toolbox la sesión sería la que explicita el cuadro 17.6. La gráfica de la evolución hacia la
solución es la de la figura 17.7.
Resolvamos el mismo problema ahora con el software BBMI de programación entera y lineal desarrollado por el
autor. El fichero de datos que requeriría este problema es el del cuadro 17.7.
La gráfica de cómo opera BBMI es la de la figura 17.8. El resultado completo impreso de lo que obtiene BBMI se
lista a continuación.
430 j Capítulo 17. Optimización. Programación entera Ejercicios 665
x 2 = 73
c
x 2 = 72
x 2 = 71 4 1
x 2 ≥ 68 x 2 ≤ 67
∗
x 2 = 70 8
3
2
11
x 2 = 69 6=7 x1 ≥ 8 x1 ≤ 7
x1 = 7
3 6 7
x 2 = 68 2
1 x 2 ≥ 71 x 2 ≤ 70 x1 ≤ 6 x 2 ≥ 70 x 2 ≤ 69
x 2 = 67 4 8
5 10 9
x1 = 6 x1 = 7 x1 = 8 x1 = 9
Figura 17.8
Figura 12.10
Región factible y árbol enumerativo del problema del ejemplo 12.4
Problema Ej12.2.3
*** FILAS
No. ..Fila.. en ....Valor.... ...Holgura... .Lí.Inferior. .Lí.Superior. Val.Dual.
*** COLUMNAS
No. .Columna en ....Valor.... Coste en F.O. .Lí.Inferior. .Lí.Superior. Cos.Red.
* Nueva solución entera; z(PE)= 718.00000; Tiempo desde última: .0001 seg.
*** FILAS
No. ..Fila.. en ....Valor.... ...Holgura... .Lí.Inferior. .Lí.Superior. Val.Dual.
*** COLUMNAS
No. .Columna en ....Valor.... Coste en F.O. .Lí.Inferior. .Lí.Superior. Cos.Red.
* Nueva solución entera; z(PE)= 707.00000; Tiempo desde última: .0001 seg.
*** FILAS
No. ..Fila.. en ....Valor.... ...Holgura... .Lí.Inferior. .Lí.Superior. Val.Dual.
*** COLUMNAS
No. .Columna en ....Valor.... Coste en F.O. .Lí.Inferior. .Lí.Superior. Cos.Red.
*** FILAS
No. ..Fila.. en ....Valor.... ...Holgura... .Lí.Inferior. .Lí.Superior. Val.Dual.
*** COLUMNAS
No. .Columna en ....Valor.... Coste en F.O. .Lí.Inferior. .Lí.Superior. Cos.Red.
Para analizar las prestaciones de estos algoritmos con casos reales, resolvemos un problema relativamente difícil de
programación entera con 50 variables, todas enteras, y cuya matriz de condiciones tiene el esquema de la figura 17.9.
10
15
20
25
30
35
40
0 10 20 30 40 50
nz = 221
Con ilp_bb_1 se obtiene lo que se ve en el cuadro 17.8. El tiempo empleado con este programa es absolutamente
inaceptable. La estrategia es mala al no considerar ninguna forma de ahorrarse visitar todos los nudos del árbol de
búsqueda.
También utilizamos el software Intlinprog de M ATLAB y el solver OPTI Toolbox de programación entera. La
sesión de M ATLAB para utilizar Intlinprog es la del cuadro 17.9 de la página 433.
Con OPTI Toolbox se llega a lo del cuadro 17.10 de la página 434.
>> tic,[xint,j]=ilp_bb_1(-prob.f,A,prob_1.ru,prob_1.lb,prob_1.ub),toc
xint =
1 1 0
1 1 1
1 1 0
1 0 0
0 0 0
1 1 0
1 1 0
0 0 1
1 1 0
0 1 0
0 0 1
1 1 0
1 1 0
1 1 0
1 1 1
0 1 0
1
1
j =
-1.0460e+03
Elapsed time is 7295.551641 seconds.
Cuadro 17.8
Cuadro 17.9: Resultados con IntLinprog() del problema entero con 50 variables de la figura 17.9
434 j Capítulo 17. Optimización. Programación entera
Cuadro 17.10
P
la función objetivo es x0 D aN 00 C jnDmC1 aN 0j . xj /: Los aN 0j , j D m C 1; : : : ; n, son los costes reducidos de las
variables no básicas.
El paso de escoger qué variable va a definir después la ramificación o división que parta de i es crítico para las
prestaciones del procedimiento. Apuntemos alguna estrategia general de mejora.
donde np0 designa la parte entera de xp , bxp c, y fp0 la parte fraccionaria. Recordemos que b3; 22c D 3 y b 4; 12c D 5.
La división que definirá la variable xp es
xp np0 C 1 y xp np0 :
Del algoritmo dual del simplex podemos deducir que la imposición de la nueva cota xp np0 C 1 a la variable xp
implicará un empeoramiento (reducción) del valor de la función objetivo.
Como la variable básica xp , realizando una iteración del método dual del simplex, pasaría como mínimo a ser no
básica, otra variable no básica, xj , que estuviese en uno de sus límites, se incrementaría o decrementaría según
estuviese en el inferior o superior.
Es decir, se reduciría el valor de la función objetivo en una cantidad o penalización que vendría dada por la
expresión
aN 0j
˚ mKın ; si xj D lj ; o por
j;aNpj <0 .1 fp0 / aNpj
PU D aN 0j
mKınj;aNpj >0 .1 fp0 / aNpj
; si xj D uj :
Razonando de manera similar, la imposición de la nueva cota xp np0 a la variable xp implicará un empeoramiento
17.5 Algoritmos Branch and Bound - ramificación y acotación j 435
(reducción) del valor de la función objetivo que vendrá dado por la expresión
aN 0j
˚ mKın si xj D lj ;
j;aNpj >0 fp0 aNpj ;
PD D aN
mKınj;aNpj <0 fp0 aNpj
0j
; si xj D uj :
Cualquier solución entera que se pudiese obtener partiendo del nudo i estaría por consiguiente acotada superiormente
por
mKaxfx0 PU ; x0 PD g:
Se podrá conseguir una mejor solución desde el nudo i si y sólo si
para cada variable básica que no sea entera debiendo serlo. Si esta condición no se cumple se abandona la búsqueda que
parta del nudo i.
Si todas las variables xp cumplen esa condición, la cuestión siguiente que se tiene que solventar es qué variable de
ramificación se elige:
Se puede elegir aquella con la penalización asociada más pequeña.
O una variable con una penalización asociada más grande y comenzar imponiendo el límite opuesto al que determina
esa penalización.
Si, por ejemplo, la penalización más grande asociada a una variable xp es PU , se puede comenzar analizando el
problema que resulte de imponer a esa variable la nueva cota np0 e incluir en la lista de nudos que hay que analizar más
adelante el que resulte de imponer la cota np0 C 1.
Si se almacenan las peores soluciones, una vez que se encuentre una buena, se rechazarán rápidamente buena parte de
los nudos que queden en la lista.
†
que se habría de satisfacer en cualquier solución que se obtuviese partiendo del problema actual. Asociado a ese corte
de Gomory se puede derivar la penalización
8̂ 9
ˆ fp0 aN 0j =aNpj si aNpj 0 j 2 M > >
< .1 f /aN =. aN / si aN < 0 j 2 M >
ˆ =
p0 0j pj pj
mKınj si xj D lj I
ˆ
ˆ fp0 aN 0j =fpj si fpj fp0 j 2 J > >
>
:̂ ;
.1 fp0 /aN 0j =.1 fpj / si fpj > fp0 j 2 J
PG D 8̂ 9
ˆ fp0 aN 0j =aNpj si aNpj 0 j 2 M >>
ˆ
< .1 f /aN =. aN / >
p0 0j pj si aNpj > 0 j 2 M =
mKınj si xj D uj :
ˆ
ˆ fp0 . aN 0j /=fpj si fpj fp0 j 2 J >
>
>
:̂ ;
.1 fp0 /. aN 0j /=.1 fpj / si fpj > fp0 j 2 J
PG x0 zPE :
.0/
donde x3 D x4 D 0. De aquí que zPL D x0 D 332=11 y x .0/ D Œ36=11; 40=11; 0; 0; 75=11T .
Trabajemos con las penalizaciones que incluye BBMI. Las variables básicas son x1 , x2 y x5 . Esta última no se
requiere que sea entera. Las variables no básicas de la solución obtenida están todas en su límite inferior.
Para empezar, como todavía no tenemos ninguna solución factible de zPE , determinemos las penalizaciones por
bifurcar a:
x1 3 W P1D0
D mKınj; aNpj >0 faN 0j fp0 =aNpj ; j 2 M g D mKın 16
11 11
3 2
11
D 24
11
I
0C 3 3 1
x1 4 W P1U D mKınj; aNpj <0 faN 0j .1 fp0 /=. aNpj /; j 2 M g D mKın 11 .1 11 / 11 D 24
11
I
x2 3 W P2D0
D mKınj; aNpj >0 faN 0j fp0 =aNpj ; j 2 M g D mKın 16 7
11 11
1
; 3 7
11 11 11
5
11
D 21
55
:
0C
La penalización P2D la podemos considerar 1 pues de la solución del programa lineal anterior se observa que al
incrementar la variable x2 , x3 y x4 decrecen.
De las penalizaciones calculadas, la mejor (menos mala) se obtiene al hacer x2 3. Añadamos esa condición, es
decir, x2 D 40
11
5
x
11 3
1
x 3.
11 4
17.6 Programación no lineal con variables Enteras j 437
Después de una iteración del método dual del simplex se llega a la solución óptima siguiente:
x0 C 57 x4 C 3
x
5 6
D 149
5
x1 C 51 x4 1
x
5 6
D 17
5
x2 C x6 D 3
2 8 29
x
5 4
C x5 C x
5 6
D 5
1 11 7
x3 C x
5 4 5 6
x D 5
:
.1/
De aquí que zPL D x0 D 149=5 y x .1/ D Œ17=5; 3; 7=5; 0; 29=5T , con x6 D 0. La única variable que debe ser entera
en esta solución y no lo es x1 .
Calculemos ahora las penalizaciones por bifurcar a:
7 2 1
x1 3 W 1
P1D D mKınj; aNpj >0 faN 0j fp0 =aNpj ; j 2 M g D mKın 5
5 5
D 14
5
1C 3 2
x1 4 W P1U D mKınj; aNpj <0 faN 0j .1 fp0 /=. aNpj /; j 2 M g D mKın 5
.1 5
/ 51 D 59 :
17 1
De estas penalizaciones la mejor se obtiene al hacer x1 4. Añadamos la condición x1 D 5
x
5 4
C 15 x6 4. La
relajación lineal resultante anterior más esta condición queda:
x0 C 57 x4 C 3
x
5 6
D 149
5
x1 C 51 x4 1
x
5 6
D 17
5
x2 C x6 D 3
2 8 29
x
5 4
C x5 C x
5 6
D 5
1 11 7
x3 C x
5 4
x
5 6
D 5
1 1 3
x
5 4
C x
5 6
x7 D 5
:
Otra iteración del dual del simplex obtiene la primera solución factible entera x .2/ D Œ4; 0; 8; 0; 1T , con zPE D 28.
Después se analizaría el nudo 3, rechazándose inmediatamente pues del cálculo anterior de penalizaciones se vería
1
que la función objetivo obtenible sería 149=5 P1D D 135=5 D 27 < 28. Posteriormente también se rechazaría el
nudo 4. El esquema de la figura 17.10 representa todas estas consideraciones.
x2 ≤ 3 x2 ≥ 4
1 4
x1 ≤ 3 x1 ≥ 4
3 2
Solución entera
(2)
x = [4, 0, 8, 0, 1]T
(2)
zP L = z P E = zP E = 28
Cuadro 17.11
Capítulo 18
Contenido
18.1 Derivación numérica de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
18.1.1 Fórmulas centradas con error de segundo y cuarto orden . . . . . . . . . . . . . . . . . . . . 444
18.1.2 Extrapolación de Richardson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
18.1.3 Fórmulas basadas en el polinomio de interpolación de Newton . . . . . . . . . . . . . . . . . 445
18.1.4 Derivación simbólica con Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
18.2 Integración numérica de funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
18.2.1 Fórmulas de Newton-Cotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
18.2.2 Fórmulas abiertas y cerradas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450
Numerical Differentiation
18.2.3 Método de Romberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
18.2.4 Cuadratura de Gauss-Legendre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
18.2.5 Cuadratura adaptativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
Differentiation is inherently sensitive, as small
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
perturbations in data can cause large changes
in result La derivada de una función en un punto es el valor del límite, si existe, del cociente incremental de dicha
función en el punto cuando el incremento de la variable tiende a cero.
df .x/ f .x C h/ f .x/
Differentiation is inverse of integration,f 0 .x/ D which
D lKım
dx h!0 h
is inherently stable because of smoothing ef-
Es una medida de la rapidez con la que cambia el valor de dicha función según cambie el valor de su variable
fect independiente.
L
For example,
Mientras
A integración, proceso inverso de la derivación, se basa en la idea de sumar todas las partes constituyentes de un
todo. two functions shown below have
que la integración produce un efecto
very similar definite integrals but verydedifferent
amortiguación de las oscilaciones en los datos, la derivación eviden-
cia esas oscilaciones.
................ ................... ....
.
........................ ..... .......... ............... ..
. .............
................ ....
Las dos funciones de la figura tienen integrales muy parecidas
.......... ............
.......
.
.
..........
.. ...... mientras que sus derivadas en distintos puntos pueden diferir
. .. ...........
..... ........ bastante.
. .......... ....
.............................................................................................................................................................................................
. .
La derivación numérica evalúa la derivada de una función en un punto a partir de valores numéricos de dicha función,
sin necesidad por tanto de conocer la expresión analítica de dicha derivada. Es muy sensible a pequeñas perturbaciones
en los datos o a la precisión de estos.
46
442 j Capítulo 18. Derivación e integración de funciones
Si se necesita derivar funciones cuyos valores se conocen sólo en un conjunto dado de puntos concretos, lo más
aconsejable es ajustar alguna función continua a esos puntos y derivar luego la función obtenida. Si los datos presentan
un cierto patrón de continuidad, se puede interpolar una función´y luego derivarla. Si se sabe que tienen ruido, lo más
probable es que se requiera una aproximación mediante mínimos cuadrados o splines.
f(x+h) f(x)
f(x+h)
Si despejamos
d e fde lagprimera igualdad
9 4 f .x/
6 se5 obtiene la fórmula hacia adelante de su aproximación,
0
h i j 10
f8 .x C
7
h/ f .x/ f 00 .x/ f .x C h/ f .x/
f 0 .x/ D h C ;
h 2 h
más un resto, o error de primer orden, O.h/.
Si despejamos de la segunda igualdad, igualmente f 0 .x/, se obtiene la fórmula hacia atrás de su aproximación,
f .x C h/ f .x h/ f 000 .x/ 2 f .x C h/ f .x h/
f 0 .x/ D h C :
2h 6 2h
El resto en este caso tiene un error de segundo orden, O.h2 /.
18.1 Derivación numérica de funciones j 443
Sumando las dos desigualdades y despejando f 00 .x/ se obtiene la fórmula centrada de la segunda derivada,
Como vimos al hablar de errores de cálculo en ordenador, en el cálculo numérico de la derivada esos errores dismi-
nuyen a medida que aumenta h desde valores próximos a la precisión de la máquina (2;22e 16), alcanzan un mínimo,
aproximadamente en h D log10 .eps/=2 para la derivada adelantada y atrasada, y luego aumentan otra vez debido a los
errores de redondeo y la precisión de la máquina en las operaciones.
En la figura 18.1 se lista un pequeño script de M ATLAB para calcular esa tabla y ver gráficamente la evolución del
error.
end 10-6
fclose(’all’);
h=0.5; R=zeros(32,3);
for i=1:32 10-8
fd=(exp(1+h)-e)/h;
cd=(exp(1+h)-exp(1-h))/(2*h);
R(i,:)=[h abs(fd-e) abs(cd-e)]; 10-10
h=h/2;
end 10-12
loglog(R(:,1),R(:,2),’+’,R(:,1),R(:,3),’or’) 10-10 10-8 10-6 10-4 10-2 100
legend(’Derivadas avanzadas’,’Derivadas centradas’,’Location’,’NorthWest’); h
xlabel(’h’); ylabel(’error’); %axis([0 1 0.95 2]);
Figura 18.1: Cálculo de e x , sus derivadas y los errores en los que se incurre
444 j Capítulo 18. Derivación e integración de funciones
y de aquí a que
f .x C 2h/ C 8f .x C h/ 8f .x h/ C f .x 2h/
f 0 .x/ D C O.h4 /:
12h
Otras fórmulas centradas con error de segundo y cuarto orden son las que lista el cuadro 18.1 (notación fk D f .x C
kh/, k D 3, 2, 1, 0, 1, 2, 3).
Fórmulas centradas de error de orden O.h2 / Fórmulas centradas de error de orden O.h4 /
f1 f 1 f2 C8f1 8f 1 Cf 2
f 0 .x/ 2h
f 0 .x/ 12h
f1 2f0 Cf 1 f2 C16f1 30f0 C16f 1 f 2
f 00 .x/ h2
f 00 .x/ 12h2
f2 2f1 C2f 1 f f3 C8f2 13f1 C13f 1 8f 2 Cf 3
f 000 .x/ 2h3
2
f 000 .x/ 8h3
f2 4f1 C6f0 4f f f3 C12f2 39f1 C56f0 39f 1 C12f f
f .4/ .x/ h4
1 2
f .4/ .x/ 6h4
2 3
Cuadro 18.1: Fórmulas centradas de derivadas de hasta cuarto orden con errores de segundo y cuarto orden
Se pueden también obtener fórmulas parecidas para las derivadas adelantadas y atrasadas.
Richardson
18.1 Derivación numérica de funciones j 445
Su idea era extrapolar el valor de f .0/ calculando el valor de f a varios pasos de una distancia h de f .0/ y así tratar
de conocer el comportamiento de esa función cuando h ! 0.
Supongamos que para algún p y r, r > p, la función es f .h/ D a0 C a1 hp C O.hr / según tiende h ! 0. También
que se conocen los valores de p y r, pero no los de a0 y a1 (precisamente f .0/ D a0 es lo que se quiere obtener).
También supondremos que se ha calculado ya f para dos pasos h y h=q, siendo q cualquier entero positivo. Se tendrá
que
f .h/ D a0 C a1 hp C O.hr /
f .h=q/ D a0 C a1 .h=q/p C O.hr / D a0 C a1 q p p
h C O.hr /:
Éste es una sistema de dos ecuaciones lineales con dos incógnitas: a0 y a1 . Si se resuelve, se obtiene que
f .h/ f .h=q/
a0 D f .h/ C p
C O.hr /;
q 1
cuya precisión ahora es O.hr /, mejor que la anterior O.hp /, pues r > p.
Ejemplo 18.1 Usaremos la extrapolación de Richardson para mejorar la precisión con la que se calcula la derivada de
sen.x/ en x D 1.
Utilizando la fórmula adelantada de derivación
Examplese tiene queContinued
F .h/ D a0 C a1 h C O.h2 /
21/63
57
18.1.3 Fórmulas basadas en el polinomio de interpolación de Newton
a b c 1 2 3
A esos datos, .x0 ; f .x0 //, .x1 ; f .x1 // ; : : :, se les interpola el polinomio de Newton
p.x/ D b0 C b1 .x x0 / C b2 .x x0 /.x x1 /
donde
f .x2 / f .x1 / f .x1 / f .x0 /
f .x1 / f .x0 / x 2 x1 x1 x 0
b0 D f .x0 /; b1 D y b2 D :
x1 x0 x2 x0
Luego se deriva el polinomio y se evalúa para los distintos puntos:
p 0 .x/Db1 Cb2 .x x0 /C.x x1 / que para xDx0 ; p 0 .x0 /Db1 Cb2 .x0 x1 /:
Las derivadas adelantadas, centradas y atrasadas, en x0 por ejemplo, se pueden calcular haciendo en ese polinomio
x1 D x0 C h y x2 D x0 C 2h. Con la notación abreviada,
f2 f 1 f1 f0
f1 f0 h h f0 2f1 C f2
b1 D ; b2 D D :
h 2h h2
A partir de ahí,
f1 f0 f0 2f1 C f2
p 0 .x0 / D b1 Cb2 .x0 x1 / D b 1 b2 h D 2 hD
2h 2h2
3f0 C 4f1 f2
D ;
2h
que es la fórmula adelantada.
Para x1 D x0 C h y x2 D x0 h se tendría la fórmula centrada y con x1 D x0 h y x2 D x0 2h la atrasada.
En la figura 18.3 se puede ver qué permite obtener la rutina gradient() de M ATLAB y cómo usarla.
Figura 18.4
Se denomina grado de precisión de la fórmula de integración al máximo grado de los polinomios que son integrados
exactamente por dicha fórmula.
Para calcular numéricamente el valor de una integral se recurre por lo general a un sumatorio de ciertos valores de
la función, o de una aproximación de ella, en unos puntos llamados nodos, xi , multiplicados por unos coeficientes de
ponderación denominados pesos, wi . Concretamente,
l b i n
f .x/ dx D wi f .xi /:
a
i D1
Esta sustitución supone cambiar un sumatorio infinito (la integral) por un sumatorio finito, por lo que se producirá un
error de truncamiento.
Cotes
Obtenidas a partir del polinomio de interpolación de Newton de la función a integrar con argumentos igualmente
espaciados (fórmula de diferencias finitas). Las más habituales son
Z x1
Regla del trapecio h h3 00
f .x/dx .f0 C f1 / error D 12 f ./
polinomio de primer grado x0 2
Z x1
Regla de Simpson h h5 .4/
f .x/dx .f0 C 4f1 C f2 / error D 90 f ./
polino. segundo grado x0 3
Z x1
Regla de Simpson 38 3h 3h5 .4/
f .x/dx .f0 C 3f1 C 3f2 C f3 / error D 80 f ./
polino. tercer grado x0 8
Z x1
Regla de Boole 2h 8h7 .6
f .x/dx .7f0 C 32f1 C 12f2 C 32f3 C 7f4 / error D 945 f ./
polino. cuarto grado x0 45
donde fk indica f .x0 C kh/.
Fórmulas de Newton-Cotes (4/4)
ETSII-UPM
El cálculo de los errores de las restantes18.2fórmulas de deNewton-Cotes
Integración numérica funciones j 449
Figura 18.5: Esquema de cómo actúa la fórmula del trapecio para integración con uno y cuatro subintervalos
Así,
ˇ l
b im xi
h h
f .x/ dx D f .x/ dx .f0 Cf1 / C C .fm 1 Cfm /
2 2
a xi 1
i D1
h
D .f0 C 2f1 C 2f2 C C 2fm 1 C fm / :
2
El error que se comete es
ˇ 0 1
Fórmulas b
h Babiertas Cy bcerradas
f .x/ dx D @
i
.f C f /A
a
m
h f ./: i 1 i
2 00
2 12 ETSII-UPM
a i D1
ConceptoZ de
1
fórmula de integración abierta
1
En un script de M ATLAB para Se llama abierta dx
¾ calcular a una fórmula
—que de integración
es ln.2/—, con hasta 256 numérica que
subintervalos, no evalúa
resulta lo que la
0 .1 C x/
indica el cuadro 18.2. función integrando en uno o en los dos extremos del intervalo.
¾Las fórmulas abiertas son útiles cuando>>no se conoce la función en un extremo
for k=0:8
o tiene un valor infinito (integrales impropias).disp(trapezrule(@intfun_1,0,1,2^k))
end
function T = trapezrule(f,a,b,m)
¾ Un caso de gran interés práctico son las fórmulas
% Integración trapecio compuesto de Adams, que utilizan n
0.750000000000000
0.708333333333333
x = linspace(a,b,m+1); % puntos,
subintervalos
pero sólo desean
function f calcular la
= intfun_1(x) integral en el último
0.697023809523809 tramo (ver figuras)
T = (f(a)+f(b))/2; % comienzo y final
% Función que se integra 0.694121850371850
for i = 1:m-1
f = 1./(1+x); 0.693391202207527
T = T + f(x(i+1)); % interior intervalo abierta
end 0.693208208269249 cerrada
end
0.693162438883403
T = T*(b-a)/m; % multiplica por h
0.693150995228108
end
0.693148134232443
Newton-Cotes >> log(2)
ans = 0.693147180559945
Cuadro 18.2
abierta cerrada
18.2.1.2 Fórmula compuesta del Simpson
Adams
Debida a Thomas Simpson, Inglaterra, 1710-1761.
Simpson
Regla de Simpson compuesta
¾ M subintervalos de 3 puntos cada uno de ellos
2M+1 puntos de abscisas xk=a+kh, k=0,1,...,2M
Fórmulas de Newton-Cotes (4/4)
¾
¾ Distancia entre puntos h=(bía)/2M
ETSII-UPM
El cálculo de los errores de las restantes fórmulas de Newton-Cotes
es bastante laborioso
450 j Capítulo 18. Derivación eyintegración
no sede incluye
funciones en estas trasparencias.
Interpretación gráfica de la regla trapezoidal y las dos reglas de
Sigue la misma estrategia de la fórmula del trapecio, pero ajustando una parábola a tres puntos de cada subintervalo
Simpson:
según
¾ seError
apunta deenlalaregla
figurade Simpson compuesta:
18.6.
¾ Interpretación geométrica:
h
Fórmulas abiertas
3 y2fcerradas
D .f C 4f C C 4f C 2f C C 2f
0 1 2 3 4 2m 2 C 4f2m 1 C f2m / :
ETSII-UPM
El error que se comete,
Concepto de fórmula de
ˇ
integración0 abierta 1
¾
b i numérica que no evalúa la
Se llama abierta a una fórmula de integración
m
hB C b a 4 .4/
f .x/ dx D @ .f2i 2 C 4f2i 1 C f2i /A h f ./:
función integrando en uno o en los dos 3 extremos del intervalo. 180
a D1
¾ Las fórmulas abiertas son útiles cuando ino se conoce la función en un extremo
o tiene un valor infinito (integrales impropias). Z 1
1
Hagamos este proceso con una rutina de M ATLAB para dx.
¾ Un caso de gran interés práctico son las fórmulas de0 Adams, 1 C x que utilizan n
puntos, pero sólo desean calcular la integral en el último tramo (ver figuras)
function I = simpson_1(f,a,b,n)
% Integración de f en [a,b] con la regla de Simpson en n+1
abierta cerrada function f = intfun_1(x)
% puntos igualmente espaciados
% Función que se integra
h = (b-a)/n;
f = 1./(1+x);
xi = a:h:b;
end
I = (h/3)*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));
Newton-Cotes end
Si lo probamos en una sesión de M ATLAB, como la del cuadro 18.3, con hasta 256 subintervalos, vemos que la precisión
es sensiblemente superior a la que se obtenía con la fórmula del trapecio.
abierta cerrada
Adams
18.2.2 Fórmulas abiertas y cerradas
Se llama abierta a una fórmula de integración numérica que no evalúa la función integrando en uno o en los dos extremos
del intervalo. Se esquematiza en la figura 18.7 para el caso de Newton-Cotes.
Las fórmulas abiertas son útiles cuando no se conoce la función en un extremo o tiene un valor infinito (integrales
impropias).
Para aplicarlas se recurre a la regla del punto medio. Es aplicable a funciones cuya segunda derivada es continua en
Œa; b. Dice que l x1
h3
f .x/ dx D hf .w/ C f 00 .c/;
24
x0
Fórmulas abiertas y cerradas 18.2 Integración numérica de funciones j 451
ans =
¾ Un caso de granFórmulas
18.2.2 interés abiertas
prácticoy son las fórmulas de Adams, que utilizan n
cerradas 0.693147180559945
Newton-Cotes
Figura
Las fórmulas abiertas son útiles cuando no se conoce 18.7 en un extremo o tiene un valor infinito (integrales
la función
impropias).
La regla del punto medio es muy útil para estos casos. Es aplicable a funciones cuya segunda derivada es continua en
Œa; b:
Adams donde h D .x1 x0 /, w es el punto medio (es l xdecir
1 x0 C h=2) y c está
h3
entre x0 y x1 . Su versión compuesta es
f .x/ dx D hf .w/ C f 00 .c/;
0 1 24
l b x0 m i 2
donde h D .x1 x0 /, w es el punto .b xa/h
B x0 C h=2 y cCestá entre
f .x/medio,
dx Deshdecir
@ f .wi /A C 0 y x1f
. Su
00 versión compuesta es
.c/:
24
a l b i
0 1
m
iD1 2
C .b a/h 00
f .x/ dx D h @ f .wi /A C f .c/:
B
R 1 sen.x/ 24
Ejemplo 18.2 Aproximemos 0 x a dx mediante la i D1regla del punto medio compuesta, con m D 10 subintervalos.
Otra regla aplicable a las fórmulas de Newton-Cotes que se menciona habitualmente en la literatura especializada es
Fórmulas abiertas y cerradas ˇ x4
4h
14h5 .4/
f .x/ dx D 2f .x1 / f .x2 / C 2f .x3 / C f .c/; ETSII-UPM
3 45
Concepto de fórmula de integración abierta x0
¾ Undonde
casox0de < x6 . interés práctico son las fórmulas de Adams, que utilizan n
< cgran
John Couch por
Adams, Reino Adams, Reino Unido, 1819-1892.
Un caso de singular interés lo constituyen las fórmulas de Adams, John Couch
puntos, pero sólo desean calcular la integral en el último
Unido, 1819-1892. tramo (ver figuras)
Adams
Un caso de apreciable interés práctico son las fórmulas de Adams que utilizan n
Newton-Cotes
puntos, pero sólo desean calcular la integral en el último tramo (como se aprecia
en la figura).
Utilizan n puntos, pero sólo desean calcular la integral en el último tramo, como por ejemplo el que se ve la figura 18.8.
Adams
Figura 18.8
a b c 1 2 3
d e f g 9 4 6 5
Romberg
h i j 10 8 7
b a h1
R11 D .f .a/ C f .b// D .f1 C f9 /
2 2
h2 aCb h2
R21 D f .a/ C f .b/ C 2f D .f1 C 2f5 C f9 /
2 2 2
1
D R11 C h2 f5
2
h3
R31 D .f1 C 2f3 C 2f5 C 2f7 C f9 /
2
1
D R21 C h3 .f3 C f7 /
2
h4
R41 D f1 C 2f2 C 2f3 C 2f4 C 2f5 C 2f6 C 2f7 C f9
2
1
D R31 C h4 .f2 C f4 C f6 C f8 / :
2
Las extrapolaciones que se hacen son, a partir de Richardson,
22 R21 R11
R22 D
3
22 R31 R21
R32 D
3
22 R41 R31
R42 D
3
Con una fórmula de recurrencia para cada coeficiente j k, k > 1,
4k 1
Rj;k 1 Rj 1;k 1
Rj k D :
4k 1 1
Al final se llega a una tabla general
R11
R21 R22
R31 R32 R33
R41 R42 R43 R44
:: ::
: :
El siguiente código de M ATLAB lleva a cabo los pasos del método de Romberg para cualquier función.
function R = romberg(f, a, b, n)
% Calcula una integral definida en el intervalo [a,b]
% con la tabla de n filas de la fórmula de Romberg
R = zeros(n,n);
h = (b-a)./(2.^(0:n-1));
R(1,1) = (b-a)*(f(a)+f(b))/2;
for i = 2:n
subtotal = 0;
for j=1:2^(i-2)
subtotal = subtotal + f(a+(2*j-1)*h(i));
end
R(i,1) = R(i-1,1)/2+h(i)*subtotal;
for k=2:i
R(i,k)=(4^(k-1)*R(i,k-1)-R(i-1,k-1))/(4^(k-1)-1);
end
end
end
454 j Capítulo 18. Derivación e integración de funciones
así como una serie de comprobaciones posteriores, da lugar a lo que refleja el cuadro 18.5.
>> romberg(@log,1,2,4)
ans =
0.346573590279973 0 0 0 >> 2*log(2)-1-ans(5,5) % Compro. resultado numérico
0.376019349194069 0.385834602165434 0 0 ans = 1.8772e-010
0.383699509409442 0.386259562814567 0.386287893524509 0 >> syms x; % Todo de forma simbólica
0.385643909952095 0.386292043466313 0.386294208843096 0.386294309086248 >> f = log(x)
>> 2*log(2)-1 f = log(x)
ans = 0.386294361119891 >> F = int(f, x)
>> format short e F = x*(log(x) - 1) % Primitiva de la integral
>> romberg(@log,1,2,5) >> int(f, x, 1, 2)
ans = ans = log(4) - 1
3.4657e-001 0 0 0 0 >> format long
3.7602e-001 3.8583e-001 0 0 0 >> log(4)-1
3.8370e-001 3.8626e-001 3.8629e-001 0 0 ans = 0.386294361119891
3.8564e-001 3.8629e-001 3.8629e-001 3.8629e-001 0
3.8613e-001 3.8629e-001 3.8629e-001 3.8629e-001 3.8629e-001
Cuadro 18.5
18.2.4Método
Cuadraturade Gauss-Legendre
de Gauss-Legendre (1/6)
ETSII-UPM
Además de al trabajo de Gauss, también se debe a Andrien-Marie Legendre, Francia, 1752-1833.
‰ Características del método de Gauss-Legendre
Se permite variar la posición de los nodos para mejorar el orden del método.
¾
Se trabaja en un intervalo de integración normalizado [í1, 1].
¾
Legendre
¾ Con n puntos de integración y n pesos por determinar se pueden satisfacer 2n
condiciones, como por ejemplo integrar exactamente las 2n primeras potencias
de x (desde x0 a x2ní1). Con esto el método será de orden 2ní1 pues integrará
exactamente cualquier polinomio de dicho grado.
En este procedimiento se permite variar
¾ Las siguientes la posición
figuras muestrande cómo
los nodos para mejorar
se puede obtenerla precisión del resultado.
mejor aproximación
En la figura 18.9con
se muestra
dos nodos haciendo que no sean los extremos del intervalo. nodos haciendo que no sean
cómo se puede obtener una mejor aproximación con sólo dos
los extremos del intervalo. Se trabaja en un intervalo de integración normalizado: Œ 1; 1.
-1 1 -1 [ [ 1
Figura 18.9: Cambio de posición de los nodos para integrar mediante Gauss-Legendre
f .x/ dx ci f .xi /;
1
iD1
18.2 Integración numérica de funciones j 455
donde los nodos, xi , son las raíces de los polinomios de Legendre de grado n en el intervalo Œ 1; 1. Los coeficientes, o
pesos, ci , están tabulados para integrar exactamente polinomios de hasta grado 2n 1.
Con n puntos de integración, y n pesos por determinar, se pueden satisfacer 2n condiciones, como por ejemplo integrar
exactamente las 2n primeras potencias de x, desde x 0 a x 2n 1 . En este caso el método tendrá una precisión de orden
2n 1, pues integrará exactamente cualquier polinomio de dicho grado. En la tabla del cuadro 18.6 se explicitan distintos
nodos y coeficientes, o pesos, para n puntos de integración.
n nodos xi coeficientes ci
p
- 1=3 = -0,57735026918963 1 = 1,00000000000000
2 p
1=3 = 0,57735026918963 1 = 1,00000000000000
p
- 3=5 = -0,77459666924148 5=9 = 1,55555555555555
3 0 = 0,00000000000000 8=9 = 1,88888888888888
p
3=5 = -0,77459666924148 5=9 = 1,55555555555555
q p p
- 15C2 30
= -0,86113631159405 90 5 3
= 0,34785484513745
q 35p 180p
15 2 30 90C5 3
- = -0,33998104358486 = 0,65214515486255
q 35p 180p
4 15 2 30 90C5 3
= 0,33998104358486 = 0,65214515486255
q 35p 180p
15C2 30 90 5 3
35 = 0,86113631159405 180 = 0,34785484513745
-0,93246951420315 0,17132449237917
-0,66120938646626 0,36076157304814
-0,23861918608320 0,46791393457269
5 0,23861918608320 0,46791393457269
0,66120938646626 0,36076157304814
0,93246951420315 0,17132449237917
Cuadro 18.7
de la cuadratura de Gauss-Legendre es
l 1
x2 p p
e 2 dx c1 f .x1 / C c2 f .x2 / D 1 f . 1/3/ C 1 f . 1/3/ 1,69296344978123:
1
p p
Con tres nodos 59 f . 3/5/ C 89 f .0/ C 95 f . 3/5/ 1,71202024520191. Con cuatro c1 f .x1 / C c2 f .x2 / C c3 f .x3 / C
c4 f .x4 / 1,71122450459949.
Para calcular en Œa; b los n nodos y pesos de Gauss-Legendre podríamos usar una rutina de M ATLAB, nada trivial,
como la del cuadro 18.8.
456 j Capítulo 18. Derivación e integración de funciones
function [x,w]=lgwt(N,a,b)
% Calcula los N nodos y pesos de Gauss-Legendre en el intervalo [a,b]
% para el cálculo de integrales definidas.
% Si se quiere calcular la integral de f(x) es ese intervalo
% calcular el valor de f(x) en todos los puntos del vector x.
% La integral es sum(f.*w);
N=N-1; N1=N+1; N2=N+2; xu=linspace(-1,1,N1)’;
y =cos((2*(0:N)’+1)*pi/(2*N+2))+(0.27/N1)*sin(pi*xu*N/N2);
L =zeros(N1,N2); % Matriz Legendre-Gauss Vandermonde
Lp=zeros(N1,N2); % Derivada de LGVM
% Calcula ceros del Polinomio de Legendre de orden N+1 (Newt.-Rap)
y0=2;
while max(abs(y-y0))>eps % Tolerancia de nuevos puntos: eps
L(:,1)=1; Lp(:,1)=0; L(:,2)=y; Lp(:,2)=1;
for k=2:N1
L(:,k+1)=((2*k-1)*y.*L(:,k)-(k-1)*L(:,k-1))/k;
end
Lp = (N2)*( L(:,N1)-y.*L(:,N2) )./(1-y.^2);
y0 = y; y = y0-L(:,N2)./Lp;
end
x=(a*(1-y)+b*(1+y))/2; % Pasar de [-1,1] to [a,b]
w=(b-a)./((1-y.^2).*Lp.^2)*(N2/N1)^2; % Cálculos de pesos
end
Cuadro 18.8
l 1
x2
Calculemos con este código la integral del ejemplo anterior, e 2 dx.
1
>> [x,w]=lgwt(8,-1,1);
>> [x,w]=lgwt(6,-1,1); Con 8 nodos, y con la rutina de integra- >> sum(exp(-(x.^2)/2).*w)
>> f=exp(-(x.^2)/2);
ción quad de M ATLAB para comparar, ans = 1.711248783780728
>> sum(f.*w)
se obtiene esto: >> quad(’exp(-(x.^2)/2)’,-1,1,1.e-14)
ans = 1.711248771041351
ans = 1.711248783784298
Para aproximar una integral en un intervalo cualquiera Œa; b, haremos uso de la aproximación
l b n !
b a X .b a/ zi C .b C a/
f .x/ dx ci f :
2 2
a iD1
l 2
ln.x/ dx
1
Haciendo uso de la expresión de la integral para un intervalo cualquiera, resulta lo que sigue.
Xn n
X Xn X
n
D ci cj f .i ; j / D ci cj f .i ; j /:
i D1 j D1 iD1 j D1
y si no lo es, se dividen los dos subintervalos Œa; m y Œm; b en dos cada uno hasta que se llegue a la precisión adecuada.
Pasemos a M ATLAB esta forma de operar.
function q = quadstep(f,a,b,tol,fa,fc,fb)
% Subfunction recurrente de quadadapt
function [q fnct] = quadadapt(f,a,b,tol) global fnct
% Evalua la integral de f(x) en [a,b] h = b-a; c = (a+b)/2;
global fnct % Veces que se evalúa la función fd = f((a+c)/2); fe = f((c+b)/2);
if nargin<4 || isempty(tol), tol=1.e-6; end fnct = fnct+2;
fnct = 0; q1 = h/6 * (fa+4*fc+fb);
c = (a+b)/2; q2 = h/12 * (fa+4*fd+2*fc+4*fe+fb);
fa = f(a); if abs(q2-q1) <= tol
fc = f(c); q = q2+(q2-q1)/15;
fb = f(b); else
fnct = fnct+3; qa = quadstep(f,a,c,tol,fa,fd,fc);
q = quadstep(f,a,b,tol,fa,fc,fb); qb = quadstep(f,c,b,tol,fc,fe,fb);
end q = qa + qb;
end
end
458 j Capítulo 18. Derivación e integración de funciones
l 2
1 3
Si utilizamos estos códigos para integrar sen C dx se obtiene lo que lista el cuadro 18.9.
2 x 2
7
sin(1/x)+3/2
>> f1_Heath_2=@(x)sin(1./x)+3/2;
>> [q fnct]=quadadapt(f1_Heath_2,2/(7*pi),2/pi,1.e-14) 2.5
q = 0.984511912667507
fnct = 3949
%% Comprobación con cuadratura adaptativa de Simpson de Matlab
2
>> [q2 fnct1]=quad(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q2 = 0.984511912667507
fnct1 = 2069
%% Cuadratura adaptativa de Lobatto de Matlab 1.5
>> [q2 fnct1]=quadl(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q2 = 0.984511912667507
fnct1 = 1308
%% Con el cálculo simbólico de Matlab 1
>>syms x a b
>> f=sin(1./x)+3/2;
>> I=int(f,2/(7*pi),2/pi);
0.5
>> double(I)
ans = 0.984511912667507
0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6
x
Cuadro 18.9
Como se puede apreciar en ese cuadro, el número de veces que se evalúa la función en los métodos probados es
sensiblemente diferente.
Contenido
19.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
19.2 Integración numérica de ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . . . . 460
19.2.1 Método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
19.2.2 Mejoras del método de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
19.2.3 Método de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
19.2.4 Métodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
19.2.5 Métodos implícitos y problemas rígidos o stiff . . . . . . . . . . . . . . . . . . . . . . . . . 470
19.2.6 Métodos multipaso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
19.3 Sistemas de ecuaciones diferenciales ordinarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
19.4 Ecuaciones diferenciales de orden superior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
19.1 Introducción
dy
D y 0 D f .t; y/; siendo y.0/ D y0 :
dt
Su solución es Z x
y.x/ D y0 C f .t; y/ dt:
0
y 0 D cy.1 y/:
460 j Capítulo 19. Integración de ecuaciones diferenciales ordinarias
Modeliza el crecimiento del tamaño de una población, el cual es proporcional a su tamaño actual, y, y a la capacidad
remanente de recursos disponibles para su sustento. Su ecuación diferencial tiene infinitas soluciones. Si se le especifica
una condición de partida inmediatamente se identifica de qué solución se trata.
Para poder integrar una ecuación diferencial es necesario definir las condiciones de contorno.
Un problema de valor inicial es el que define la ecuación diferencial y una condición, o valor inicial, en un intervalo
a t b. En conjunto, una ecuación diferencial definida completamente tiene esta forma:
0
˚ y D f .t; y/
y.a/ D ya
t 2 Œa; b:
Resulta útil visualizar la evolución de una ecuación diferencial en el tiempo como la de un cuerpo sometido a un
campo de fuerzas o de pendientes como el de la figura que sigue, referida a la ecuación logística.
y´ = 5*y*(1-y) y´ = 5*y*(1-y)
1,2 1,2
1 1
0,8 0,8
0,2
y.0/ D 1;26 son estas: 0,2
0 0
-0,2 -0,2
-0,4 -0,4
0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2 0 0,2 0,4 0,6 0,8 1 1,2 1,4 1,6 1,8 2 2,2
t t
Los de paso múltiple calculan la solución en ti C1 a partir del valor de la función en ti , ti 1 ; : : : ; ti nC1 . Por
ejemplo, en el método de Heun
h
yi C1 D yi C f .ti ; yi / C f ti C1 ; yi C hf .ti ; yi / :
2
Métodos explícitos e implícitos Los métodos explícitos permiten hallar yi C1 directamente sin tener que resolver un
sistema de ecuaciones no lineales.
Por ejemplo, Runge-Kutta de orden dos
yi C1 D yi C .a1 k1 C a2 k2 / h;
donde
k1 D f .ti ; yi /
k2 D f .ti C p1 h; yi C q11 k1 h/:
Los métodos implícitos necesitan resolver un sistema de ecuaciones no lineales pues yiC1 aparece a ambos lados
de la ecuación.
Por ejemplo, la regla trapezoidal
1
yiC1 D yi C f .ti ; yi / C f .ti C1 ; yi C1 / h:
2
Euler
Sigue la idea intuitiva de la geometría de los gráficos de los campos de fuerzas o pendientes. En este sentido, ¿por qué
no “resolver” una ecuación diferencial “siguiendo” las flechas, partiendo de un punto inicial?
Desde el punto de arranque se mueve la solución una pequeña distancia, siguiendo una pendiente, llegándose a un
nuevo punto .t1 ; y1 / en el que se revalúa la pendiente, luego hay que moverse con esa nueva pendiente otro poco, etc.
La aproximación será buena si la pendiente no cambia mucho súbitamente.
La relación general de recurrencia del método de Euler la define
yi C1 D yi C f .ti ; yi /h
en la que f .ti ; yi / es la pendiente en cada punto —su derivada— y h el paso que se da con esa inclinación. La interpre-
tación geométrica de lo que sucede es la de la figura 19.1.
En el proceso se producen errores de truncamiento en cada punto, por retener sólo dos términos en el desarrollo de
Taylor, y en el total, así como de redondeo en los cálculos del proceso. El error global es O.h/.
Ejemplo 19.1 Se trata de resolver y D ty C t
0 3
y.0/ D y0
t 2 Œ0; 1;
que discurre en el campo de “fuerzas” de la parte izquierda de figura 19.2, partiendo de y.0/ D 1. Si plasmamos el
procedimiento de Euler en un script de M ATLAB resulta lo del cuadro 19.1 de la página 462.
Con lo hacemos funcionar con pasos h D 0;1 y h D 0;01 se obtiene lo que explicita la figura 19.3 de la página 463.
Con h D 0;1 los errores son apreciables.
‰ (V HO PpWRGR GH LQWHJUDFLyQ QXPpULFD PiV VHQFLOOR
‰ 6H XWLOL]D OD GHULYDGD HQ HO SXQWR WL \L SDUD DYDQ]DU XQ SDVR
YDORU H[DFWR
HUURU
YDORU DSUR[LPDGR
\L \L I WL \L K
\L K
WL WL
Figura 19.1
y´ = t*y+t³
2
y´ = t*y+t³ 2
1,8
1,8
1,6
1,6
1,4
1,4
1,2
1,2
y y 1
1
0,8
0,8
0,6
0,6
0,4
0,4
0,2
0,2
0
0
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1
t t
Figura 19.2: Aplicación del método de Euler a la ecuación y 0 D ty C t 3 . A la derecha la solución exacta y más abajo la
aproximada con el método de Euler y h D 0;1
Cuadro 19.1
19.2 Integración numérica de ecuaciones diferenciales ordinarias j 463
y*(t), y(t)
t=0.400, y(t)=1.0899, y*(t)=1.0647 1.5
t=0.500, y(t)=1.1494, y*(t)=1.1137
t=0.600, y(t)=1.2317, y*(t)=1.1819 1.4
t=0.700, y(t)=1.3429, y*(t)=1.2744
t=0.800, y(t)=1.4914, y*(t)=1.3979 1.3
t=0.900, y(t)=1.6879, y*(t)=1.5610
t=1.000, y(t)=1.9462, y*(t)=1.7744 1.2
1.1
h
yi C1 D yi C f .ti ; yi / C f .tiC1 ; yiC1 / :
2
El método se conoce como predictor-corrector. El error es O.h3 /. Fue formulado por Karl Heun, Alemania, 1859-1929.
Heun
Figura 19.4
19.2 Integración numérica de ecuaciones diferenciales ordinarias j 465
Taylor
Si se desarrolla en serie de Taylor y.t/ en el punto ti , suponiendo que y.t/ tiene derivadas continuas hasta orden nC1,
se tiene que
h2 h3 hn .n/
y.tiC1 / D y.ti / C hy 0 .ti / C y 00 .ti / C y 000 .ti / C C y .ti / C O.hnC1 /:
2Š 3Š nŠ
Si f es derivable,
y 0 D f .t; y/
y 00 D f 0 D f t C fy y 0 D f t C fy f
y 000 D f 00 D f t t C 2f ty f C fyy f 2 C f t fy C fy2 f
::
:
Sustituyendo estas expresiones en el desarrollo en serie se obtiene el método de Taylor del orden de precisión que se
desee. El gran inconveniente de este proceder es que las derivadas de orden superior a uno —en este caso sería el método
de Euler— pueden ser muy complicadas de calcular.
Runge Kutta
Consiguen la precisión del método de Taylor sin necesidad de calcular derivadas de orden elevado. El avance se realiza
mediante una expresión general
yiC1 D yi C h; con D a1 k1 C a2 k2 C C an kn ;
466 j Capítulo 19. Integración de ecuaciones diferenciales ordinarias
donde los coeficientes ai son unos pesos de aproximaciones ki de las distintas derivadas por medio de la función f .t; y/
evaluada en distintos puntos.
Los valores de las ki se obtienen mediante unas fórmulas de este corte:
k1 D f .ti ; yi /
k2 D f ti Cp1 h; yi Cq11 k1 h
k3 D f ti Cp2 h; yi Cq21 k1 hCq22 k2 h
::
:
kn D f ti Cpn h; yi Cqn 1;1 k1 hCqn 1;2 k2 hC C qn 1;n 1 kn 1 h :
Cada valor de ki depende de los ks ya calculados, por lo que la evaluación de estas fórmulas es sencilla si se conocen
los coeficientes.
Los ps y qs son coeficientes numéricos que se calculan imponiendo la condición de que el error sea del mismo orden
que en el método de Taylor de orden similar.
h2 00 h2
yi C1 D yi C hy 0 .ti / C y .ti / D yi C hfi C f ti C fyi fi :
2Š 2
Desarrollando en serie las fórmulas de Runge-Kutta se tiene que
yiC1 D yi C.a1 k1 Ca2 k2 /h D yi C a1 f .ti ; yi /Ca2 f .ti Cp1 h; yi Cq11 k1 h/ h
D yi Ca1 fi h C a2 fi Cf ti p1 hCfyi fi q11 k1 h h:
Comparando las dos expresiones se llega a estas tres ecuaciones con cuatro incógnitas:
1 1
a1 C a2 D 1; a2 p1 D y a2 q11 D :
2 2
Dando valores a a2 se obtienen distintas fórmulas de Runge-Kutta de orden 2 (con error local de truncamiento O.h3 /).
En concreto:
1
1.- a2 D 2
! p1 D q11 D 1: Método de Heun
yiC1 D y1 C h2 k1 C k2
k1 D f .ti ; yi /
k2 D f .ti C h; yi C k1 h/:
Para aumentar en una unidad el orden del Runge-Kutta clásico de orden cuatro hacen falta dos evaluaciones de función
adicionales.
En general no se suelen utilizar fórmulas de Runge-Kutta de orden muy elevado porque el aumento de precisión no
compensa el trabajo adicional.
Ejemplo 19.3 Para recapitular lo presentado hasta aquí, vamos a integrar la ODE y 0 D y 1t 2t , empleando Euler,
Heun, Runge-Kutta y la rutina de M ATLAB ode45, que usa Runge-Kutta.
La condición de partida es que y 0 D 0, en t D 0. La fórmula analítica de este problema no se conoce, por lo que se
suple con la integración numérica. El script de M ATLAB que lo lleva a cabo es el del cuadro 19.3.
function test_ode45_1(relerr,abserr)
% Comparación de métodos explícitos para igual evaluaciones de f
clear all, close all
ecdif=@ec04; % ecuación diferencial a integrar: en ec04.m function [T,Y]=heun(f,tspan,y0,h) % Método de Heun
tspan=[0,2]; y0=0; h=.25; n=(tspan(2)-tspan(1))/h+1;
% Diversos métodos con mismas llamadas a f T=tspan(1)*zeros(n,1); Y=y0*zeros(n,length(y0));
[T1,Y1]=eulere(ecdif,tspan,y0,h/4); % Euler y=y0; t=tspan(1);
[T2,Y2]=heun(ecdif,tspan,y0,h/2); % Heun for i=2:n
t1=t+h;
[T3,Y3]=rk4(ecdif,tspan,y0,h); % Runge-Kutta orden 4
yp=f(t,y); % predictor con Euler explícito
options = odeset(’RelTol’,1.e-9,’AbsTol’,1.e-12); y1=y+h*yp;
[T4,Y4]=ode45(ecdif,tspan,y0,options); % Exacto: R-K de Matlab y1n=y+h*(yp+f(t1,y1))/2; % corrector con regla trapezoidal
% T(i,:)=t1; Y(i,:)=y1n; % tiempo valor de la función
plot(T1,Y1,’:r’); axis([tspan(1),tspan(2),0,.6]); % ejes t=t1; y=y1; % se actualizan t e y
xlabel(’tiempo’); ylabel(’y’); hold on; grid end
plot(T2,Y2,’--g’); plot(T3,Y3,’-.b’); plot(T4,Y4,’-k’); end
end
function [T,Y]=rk4(f,tspan,y0,h) % Runge-Kutta orden 4
n=fix((tspan(2)-tspan(1))/h+1);
function yprima=ec04(t,y) T=tspan(1)*zeros(n,1); Y=y0*zeros(n,length(y0));
% solución exacta desconocida y=y0; t=tspan(1);
if t==0, yprima=1; else yprima=y*(-2*t+1/t); end for i=2:n
end t1=t+h;
k1=h*f(t,y); % cálculo coeficientes k
k2=h*f(t+h/2,y+k1/2);
function [T,Y]=eulere(f,tspan,y0,h) % Método de Euler
k3=h*f(t+h/2,y+k2/2);
n=fix((tspan(2)-tspan(1))/h+1); k4=h*f(t+h,y+k3);
T=tspan(1)*zeros(n,1); Y=y0*zeros(n,length(y0)); y1=y+(k1+2*k2+2*k3+k4)/6;
y=y0; t=tspan(1); T(i,:)=t1; Y(i,:)=y1; % tiempo valor de la función
for i=2:n t=t1; y=y1; % se actualizan t e y
y1=y+h*f(t,y); t1=t+h; % Fórmula de Euler end
T(i,:)=t1; Y(i,:)=y1’; % tiempo valor de la función end
t=t1; y=y1; % se actualizan t e y
end
end
Cuadro 19.3
k1 D hf .ti ; yi /
470 j Capítulo 19. Integración de ecuaciones diferenciales ordinarias
1 1
k2 D hf ti C h; y1 C k1
5 5
3 3 9
k3 D hf ti C h; y1 C k1 C k2
10 40 40
4 44 56 32
k4 D hf ti C h; y1 C k1 k2 C k3
5 45 15 9
8 19372 25360 64448 212
k5 D hf ti C h; y1 C k1 k2 C k3 k4
9 6561 2187 6561 729
9017 355 46732 49 5103
k6 D hf ti C h; y1 C k1 k2 C k3 C k4 k5
3168 33 5247 176 18656
35 500 125 2187 11
ziC1 D yi C k1 C k3 C k4 k5 C k6
384 1113 192 6784 84
k7 D hf .ti C h; zi C1 /
5179 7571 393 92097 187 1
yiC1 D yi C k1 C k3 C k4 k5 C k6 C k7 :
57600 16695 640 339200 2100 4
Si ˛ es un número real grande, la solución varía rápidamente hasta que el componente exponencial se desvanece o
amortigua. A partir de entonces prevalece el componente polinómico de variación lenta.
En la figura 19.8 se observa lo apuntado. La línea continua (azul) es la solución de la ecuación, la discontinua verde
—el componente exponencial— es la que se desvanece hacia cero antes. La roja corresponde al componente polinómico,
de variación en el tiempo mucho más lenta.
Si se introduce una pequeña perturbación del componente t 2 en t D 0;4, la solución exacta se restablece enseguida. En
cambio, el método de Euler produciría, con un h D 2, una perturbación importante que se iría restableciendo después.
19.2 Integración numérica de ecuaciones diferenciales ordinarias j 471
1.4 1
0.9
1.2
0.8
1 0.7
0.6
0.8
0.5
y
y
0.6
0.4
0.3
0.4
0.2
0.2
0.1
0 0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
t t
FiguraFigure
19.82.2.2:at Euler
introduced
solution dash-dot due to a perturbation dashed of = 2 solid
time = 0 4. t :
y t
Stiness not only depends on the dierential equation under consideration, but the in-
19.2.5.1 El método de Euler hacia atrás terval of interest, the accuracy criteria, and the region of absolute stability of a numerical
method. For nonlinear systems
Actúa de la siguiente manera:
y
0
= f t y
y0 D y.0/
yiC1 D yi C hfstiness
.tiC1will; be
yirelated
C1 / :to the magnitudes of the eigenvalues of the Jacobian fy y. t
These eigenvalues may have vastly dierent sizes that vary as a function of . Thus, t
0
La segunda expresión se obtiene de utilizar la aproximacióndetecting
atrasadastiness de laa derivada
can be C1 , es decir y .tiC1 /, en
enintiitself.
signicant problem vez
de la avanzada en ti como el método de Euler. In order to solve sti problems we'll need a numerical method with a weaker stability
La información que se considera en cada paso tiene en cuenta los than
restriction dosEuler's
ladosmethod.
del intervalo
Implicit methods" Ch.theEuler
Œti ; tiprovide currentlyhacia
acceptedatrás es
approach
implícito, lo que significa que no da directamente una fórmula paraandlawe'll begin with
nueva the simplest implicitymethod,sino
aproximación the backward
que or implicit
ésta se obtiene
i C1
mediante un proceso más elaborado. 21
Ese proceso, para la ecuación diferencial anterior, sería
yi C1 D yi C h ˛ yiC1 t 2 C 2t D yi h˛yiC1 C h ˛t 2 C 2t :
Al final
yi C h ˛t 2 C 2t
yiC1 D :
1 C ˛h
Si a esta fórmula se le aplica un método iterativo de punto fijo –el de Newton por ejemplo–, tal que
y C h ˛t 2 C 2t
y ! g.y/ D ;
1 C ˛h
como g 0 .y/ D 1=.1 C ˛h/ < 1, para cualquier ˛ positivo, el proceso convergerá a un punto estacionario.
Codificadas estas ideas en M ATLAB resulta lo del cuadro 19.4. De ejecutar >> back_euler_1(0,1,1.1,8); en la
zona de trabajo resulta el gráfico de ese cuadro.
1.4
function [wi, win, y, ti] = back_euler_1(t0,x0,tf,N,TOL,Nmax) Back. Euler
% Euler atrás y’=-alpha(y-t^2)+2t; de t0, x0 a tf; puntos N Euler
Exacto
if nargin<6, Nmax=100; end, if nargin<5, TOL=0.00001; end 1.2
close all
ti = [t0 zeros( 1,N )]; wi = zeros(1,N+1); win = zeros(1,N+1); 1
wi(1) = x0’; win(1) = x0’; x01 = x0; y(1) = x0; h = ( tf-t0)/N;
for i = 1:N
0.8
w0 = x0;
for j = 1:Nmax
top = (w0 - x0) - h*beuler_1(t0+h,w0); 0.6
bot = 1 - h*dbeuler_1(t0+h,w0);
y
dw = top/bot; w0 = w0-dw; Back. Euler
0.4
if abs(dw)<TOL, break; end;
end; 0.2
x0 = w0; x01 = x01+h*beuler_1(t0,x01); Exacto
t0 = t0 + h; ti(i+1) = t0;
0
wi(i+1) = x0’; win(i+1) = x01;
y(i+1) = y(1)*exp(-10*t0)+t0^2;
Euler
end -0.2
plot(ti,wi,ti,win,ti,y), xlabel(’Tiempo’); ylabel(’y’)
legend(’Back. Euler’, ’Euler’, ’Exacto’) -0.4
end 0 0.2 0.4 0.6 0.8 1 1.2 1.4
Tiempo
function f = beuler_1(t, p)
f = -10*(p-t^2)+2*t;
end
function df = dbeuler_1(t, p)
df = -10;
end
Cuadro 19.4
Los métodos que hemos analizado hasta ahora son monopaso, o de paso sencillo. El valor de yi C1 se calcula a partir
de la información de un único punto.
Los multipaso utilizan la información de más puntos anteriores. Su objetivo es hacer menos evaluaciones de la función
para el mismo orden de error.
Necesitan la ayuda de otros para dar los primeros pasos y no se adaptan bien a discontinuidades en la solución:
discontinuidades en las fuerzas aplicadas, impactos, enlaces que aparecen o desaparecen, etc. Tienen la forma general
m
X m
X
yiC1 D ˛j yiC1 j Ch ˇj f ti C1 j ; yi C1 j :
j D1 j D0
Para calcular ˛1 , ˇ1 y ˇ2 se interpola forzando a que la fórmula sea exacta para los primeros tres monomios: 1, t y t 2 .
Si y.t/ D 1, entonces y 0 .t/ D 0 y se consigue así la primera ecuación
1 D ˛1 1 C h .ˇ1 0 C ˇ2 0/ :
Estas tres ecuaciones se deben cumplir para cualesquiera valores de ti , por lo que se puede hacer ti 1 D 0, h D 1
(entonces ti D 1 y tiC1 D 2) y se resuelve el sistema lineal resultante 3 3 dando ˛1 D 1, ˇ1 D 32 , ˇ2 D 12 .
19.2 Integración numérica de ecuaciones diferenciales ordinarias j 473
Para calcular ˛1 , ˇ0 y ˇ1 forzaremos como antes a que la fórmula resultante sea exacta para los primeros tres mono-
mios: 1, t y t 2 . Se obtienen estas tres ecuaciones
1 D ˛1 1 C h ˇ 0 0 C ˇ 1 0
tiC1 D ˛1 ti C h ˇ0 1 C ˇ1 1
2
tiC1 D ˛1 ti2 C h ˇ0 2ti C1 C ˇ1 2ti :
Haciendo ti D 0 y h D 1 (por lo que tiC1 D 1), y resolviendo el sistema 3 3 resultante se llega a que ˛1 D 1,
ˇ0 D 21 y ˇ1 D 21 . La fórmula resultante es
h 0
yiC1 D yi C y C yi0 ;
2 iC1
que da lugar al método implícito conocido como el método del trapezoide, o Método de Adams-Moulton de un paso.
Algunas de las fórmulas más utilizadas son las de las tablas del cuadro 19.5.
Cuadro 19.5
h
yiC1 D yi C 55fi 59fi 1 C 37fi 2 9fi 3 :
24
Evalúa la función en el nuevo punto ti C1 ; yi C1
fiC1 D f ti C1 ; yiC1 :
El método de Milne-Simpson:
Utiliza como predictor
4h
yiC1 D yi 3 C 2fi fi 1 C 2fi 2 :
3
Como corrector
h
yiC1 D yi 1 C f C 4fi C fi 1 :
3 i C1
También se usa como corrector el de Hamming:
9yi yi 2 C 3h fiC1 C 2fi 2fi 1
yi C1 D :
8
Utilicemos y 0 D 4 t t 3 y 2 para probar el método predictor–corrector de Adams-Bashforth-Moulton de segundo
orden, con las condiciones iniciales y.0/ D 0;5 y en el intervalo de tiempo Œ0; 2. El siguiente programa de M ATLAB
hace el trabajo.
function [t,y]=Adams_Bas_Moul(inter,ic,n)
% Predictor-corrector de orden 2, Adams-Bashforth-Moulton
h=(inter(2)-inter(1))/n; y(1)=ic; t(1)=inter(1); s=2; function y=trapstep(t,x,h) % Un paso con trapezoide
for i=1:s-1 % Trapezoide de un paso para z1=ydot(t,x); g=x+h*z1; z2=ydot(t+h,g);
t(i+1)=t(i)+h; % inicialización y=x+h*(z1+z2)/2;
y(i+1)=trapstep(t(i),y(i),h); end
f(i)=ydot(t(i),y(i));
end function z=ab2step(t,i,y,f,h) % Paso Adams-Bashforth orden 2
for i=s:n % Método multipaso z=y(i)+h*(3*f(i)-f(i-1))/2;
end
f(i)=ydot(t(i),y(i));
t(i+1)=t(i)+h; function z=am1step(t,i,y,f,h) % Paso Adams-Moulton orden 2
y(i+1)=ab2step(t(i),i,y,f,h); z=y(i)+h*(f(i+1)+f(i))/2;
f(i+1)=ydot(t(i+1),y(i+1)); end
y(i+1)=am1step(t(i),i,y,f,h);
end function z=ydot(t,y) % Función que se integra
[T4,Y4]=ode45(@ydot,inter,ic); close all, plot(t,y,T4,Y4) z=4*(t-t^3)*y^2;
end
xlabel(’Tiempo’); ylabel(’y’)
legend(’Adams-Bash.-Moul.’, ’ode45’)
end
1
Adams-Bash.-Moul.
0.9 ode45
0.8
0.7
0.6
0.5
y
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2 2.5
Tiempo
Figura 19.9: Integración de y 0 D 4 t t 3 y 2 por Adams-Bashforth-Moulton de segundo orden
Ejemplos de ello son los puntos moviéndose en el plano o en el espacio, el movimiento de un sólido rígido sin
restricciones, diversos mecanismos, vehículos, etc.
En general, un sistema de ecuaciones diferenciales ordinarias tiene la forma
9
y10 D f1 t; y1 ; y2 ; : : : ; yn >
>
>
y20 D f2 t; y1 ; y2 ; : : : ; yn =
:: y 0 D f .t; y/:
: >
>
>
;
yn0 D fn t; y1 ; y2 ; : : : ; yn
Se pueden aplicar los métodos vistos hasta ahora pero hay que tener en cuenta que la variable dependiente y, la función
f —y los coeficientes ki si se usa Runge-Kutta— son vectores.
El método de Euler se aplicaría en la forma vectorial
y 0 D f .t; y/ ! yi C1 D yi C hf .ti ; yi /:
y.t0 / D y0
y 0 .t0 / D y00
y 00 .t0 / D y000
::
:
y .n 1/
.t0 / D y0.n 1/
476 j Capítulo 19. Integración de ecuaciones diferenciales ordinarias
Esta ecuación se puede transformar en un sistema de n ecuaciones diferenciales de orden uno. Para ello, si se introducen
las nuevas variables
y1 D y; y2 D y 0 ; y3 D y 00 ; : : : ; yn D y .n 1/
se tendrá que y10 D y2 , y20 D y3 , y30 D y4 , : : : ; yn0 1 D yn y yn0 D f .x; y1 ; y2 ; : : : ; yn /. Expresado de forma
más compacta, que y 0 D f .t; y/, obteniéndose así un sistema de n ecuaciones diferenciales de primer orden con n
incógnitas, al que habría que añadirle las condiciones iniciales y.t0 / D y0 .
Contenido
20.1 El método del disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
20.2 Método de las diferencias finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
20.3 Métodos de colocación y de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
20.3.1 Método de colocación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
20.3.2 Método de los elementos finitos de Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487
E N este capítulo analizamos los problemas que se pueden modelizar mediante una ecuación diferencial de segundo
orden con condiciones en dos puntos dados, extremos de un intervalo de estudio Œa; b.
Son los denominados problemas de ecuaciones diferenciales con valores en la frontera, o problemas de contorno. Se
formulan así:
y 00 D f .t; y; y 0 /; y.a/ D ˛; y.b/ D ˇ:
Para definir la solución se necesitan dos condiciones de contorno:
Si se dan para un mismo punto, se tiene un problema de valor inicial como los que hemos estudiado.
Si se dan para dos puntos, se tiene un problema de valores en la frontera.
Solution of Bo
Shooting
478 j Capítulo 20. Integración de ecuaciones diferenciales ordinarias con condicionesmethod
de Contorno o Frontera Shooting meth
1. Guess a va
2. Solve the i
3. Check if th
the guess a
Use interpo
It is an iter
BVP
F .s/ D 0:
Para resolver esta ecuación se puede utilizar el método de la bisección, por ejemplo,
ChE-401: Computational Methods ininformando
Chem. Eng. al programa corres-
pondiente al partir qué dos valores s0 y s1 hacen que F .s0 /F .s1 / < 0.
Ejemplo 20.1 Resolvamos mediante el método del disparo este problema:
Solution of Boundary-Value Problems - Shooting method Shooting meth
y 00
D 4y ɺyɺ − 4 y + 4
Boundary-Value Initial-value
y.0/ D1
convert problem y (0) = 0,
Problem
y.1/ D 3:
1. Convert the ODE to a system of
Escribamos la ecuación diferencial como un sistema de dos ecuaciones de orden uno
first order ODE
2. guess the initial conditions that
0
BVP y D v
are not available.
Find y ( x ) to solve
3. Solve the Initial-value problem
ɺyɺ + 2 yɺ + y = x 2 v 0 D 4y:
4. Check if the known boundary
y ( 0 ) = 0 . 2 , y (1 ) = 0 . 8 conditions are satisfied
En M ATLAB podría programarse así: 5. If needed modify the guess and
resolve the problem again
function z=F(s) 0
a=0; b=1; yb=3;
Chemical Engineering Dep. ydot = @(t,y) [y(2); 4*y(1)];
Prof. Ibrahim S. Al-Mutaz King Saud University ٢٧ Chemical Engineering Dep.
Comprobamos que para s D 1, F . 1/ 1;0512 y F .0/ 0;7622, por lo que podemos invocar el programa
Bisec_y.m en el intervalo Œ 1; 0. El resultado de la evolución en el tiempo de y e y 0 es el de la figura 20.2.
y(t)
y'(t)
5
4
y'(t)
>> [ss,t,y]=Bisec_y(@F,[-1,0]);
>> ss 3
ss =
y
-0.4203
2
| CHAPTER 7 >> plot(t,y)
Boundary Value Problems
>> xlabel(’Tiempo’); ylabel(’y’)
y(t)
>> legend(’y(t)’, ’y’’(t)’,’Location’,’NorthWest’) 1
1 w1
w2
ya y1
y2 wn–1
wn
yn–1
yn yb
t
t0 t1 t 2 ... tn–1 tn tn+1
Si el problemaFigure
de contorno
7.6 Theoriginal
Finite es lineal el problema
Difference Method forse BVPs.
convierte entonces en w
Approximations resolver
i , i = 1, .un
. . , sistema
n for de ecuaciones
lineales; si es nothe
lineal, en lo propio.
correct values yi at discrete points ti are calculated by solving a linear system of
Ejemplo 20.2 Resolvamos
equations. mediante diferencias finitas este problema:
00
D 4y situations. If the original boundary value
After the substitutions, there are twoypossible
problem was linear, then the resulting system
y.0/ Dof 1 equations is linear and can be solved by
Gaussian elimination or iterative methods. y.1/ If the original problem was nonlinear, then
D 3:
the algebraic system is a system of nonlinear equations, requiring more sophisticated
La solución exacta de este
approaches. Weproblema tiene
begin with la forma
a linear y.t/ D c1 e 2t C c2 e 2t . Las dos constantes, calculadas teniendo en
example.
cuenta los valores en los puntos y.0/ e y.1/, hacen que
◮ EXAMPLE 7.8 Solve the BVP (7.7) 3 e 2 2t e2 3 2t
y.t/ D e C e :
e 2 e y2′′ = 4y e 2 e 2
4y y(0)
La aproximación de la ecuación diferencial y 00 D = 1,
por diferencias finitas en ti es
y(1) = 3
wiC1 2wi C wi 1
using finite differences. 4wi D 0;
h2
Consider the discrete form of the differential equation y ′′ = 4y, using the centered-
o, wi 1 C 4h2 2 wi C wiC1 D 0:
difference form for the second derivative. The finite difference version at ti is
wi+1 − 2wi + wi−1
− 4wi = 0
h2
or equivalently
wi−1 + (−4h2 − 2)wi + wi+1 = 0.
480 j Capítulo 20. Integración de ecuaciones diferenciales ordinarias con condiciones de Contorno o Frontera
Si se divide el intervalo de estudio en tres tramos, n D 3, el parámetro h D 1=.n C 1/ D 1=4, por lo que habrá tres
ecuaciones. Introduciendo que w0 D 1 y que w4 D 3 se llega al sistema
rcl1 C 4h2 2 w1 C w2 D 0
w1 C 4h2 2 w2 C w3 D 0
w2 C 4h2 2 w3 C 3 D 0:
Sustituyendo el valor de h en este sistema se llega a otro Ax D b, con matriz tridiagonal, como este
2 9 32 3 2 3
4
1 0 w1 1
4 1 9 15 4w2 5 D 4 05 :
4
0 1 49 w3 3
Resolviéndolo se obtiene la solución que se ve más abajo. Las diferencias que se obtienen son O.10 2 /. Para obtener
más precisión habría que aumentar n.
En general, si h D .b a/=.n C 1/ D 1.n C 1/ el sistema de matriz tridiagonal que se obtiene en este ejemplo es de
la forma 2 3
4h2 2 1 0 0 0 0 2 3
2 3 1
6 1 4h 2 2 1 0 0 0 7 w 1
6 7 6 07
6 0 1 4h 2 2 0 0 0 7 6 w2 7 6 7
6 76 7 6 7
6 :: :: :: :: :: 7 6 w3 7 6 0 7
6 : : : : 0 : 7 6 7 6 :7
6 7 6 :: 7 D 6 :: 7 :
6 : : 7 6 7 6 7
6 0 0 0 :: :: 1 0 76 : 7 6 07
6 7 4 wn 1 5 6 7
6 : 7 4 05
4 0 0 0 : : 4h2 2 1 5 wn
3
0 0 0 0 1 4h2 2
Si recogemos todo lo necesario para el cálculo de este ejemplo en un fichero .m codificado en M ATLAB y resolvemos el
problema con la instrucción >> [c,y]=fidifm_1([0 1],[1 3],3), se llega a la solución que se ve en el cuadro 20.1.
La tabla en él incluida refleja el intervalo de integración, las condiciones de contorno y los valores aproximados por el
método en ese intervalo, así como los exactos.
i ti wi yi
function [c,y]=fidifm_1(inter,bv,n) 0 0;00 1;0000 1;0000
% Diferencias finitas de ejemplo sencillo 1 0;25 1;0249 1;0181
% inter, intervalo de integración; bv, valores de contorno; 2 0;50 1;3061 1;2961
% n, número de pasos.
3 0;75 1;9138 1;9049
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2); e=ones(n,1);
h=(b-a)/(n+1); 4 1;00 3;0000 3;0000
alfa=-4*h*h-2;
M=spdiags([e alfa*e e],-1:1,n,n); >> [c,y]=fidifm_1([0 1],[1 3],3)
d=zeros(n,1); d(1)=-ya; d(n)=-yb; c =
t=0:h:b; e1=exp(2)-exp(-2); 1.0249
y=(3-exp(-2))*exp(2*t)/e1+(exp(2)-3)*exp(-2*t)/e1; 1.3061
c=M\d; 1.9138
end y =
1.0000 1.0181 1.2961 1.9049 3.0000
Cuadro 20.1
Los errores que se producen en este método vienen de la aproximación de las derivadas y de la resolución del sistema
de ecuaciones. Para valores de h mayores que la raíz cuadrada de la precisión de la máquina, , prevalecen los de la
aproximación, O.h2 /.
Ejemplo 20.3 Resolvamos ahora mediante diferencias finitas este otro problema:
y 00
D y y2
y.0/ D 1
y.1/ D 4:
20.3 Métodos de colocación y de elementos finitos j 481
En este caso tenemos un sistema de ecuaciones no lineales que podemos resolver mediante Newton-Raphson con esta
fórmula de recurrencia:
wkC1 D wk J .wk / 1 f .wk /:
La función vectorial es 2 3
ya 2 C h2 w1 C h2 w12 C w2
6 7
6 w1 2 C h2 w2 C h2 w22 C w3 7
6 7
f .wk / D 6
6
:: 7;
7
6 : 7
4 wn 2 2 C h2 wn 1 C h2 wn2 1 C wn 5
wn 1 2 C h2 wn C h2 wn2 C yb
donde ya D 1 y yb D 4. Su matriz Jacobiana
2 2 2
3
2h w1 2Ch 1 0 0
6 : :: :: 7
6
6 1 2h2 w1 2 C h2 : : : : 7
7
6 :: 7
J D6 0 1 : 1 0 7:
6 7
6 :: :: :: 7
4 : : : 2h2 w1 2 C h2 1 5
0 0 1 2h2 wn 2 C h2
donde las i son funciones base definidas en el intervalo Œa; b y los ci parámetros que hay determinar. Las funciones
base pueden ser polinomios, funciones trigonométricas, splines u otras funciones simples.
La determinación de una solución aproximada de la ecuación diferencial se reduce a encontrar los valores de los ci .
El enfoque de la colocación consiste en usar la aproximación de y.t/ en un conjunto de n puntos a D t1 < <
tn D b, denominados puntos de colocación, en los que se fuerza a que la solución aproximada y.t/ satisfaga la ecuación
diferencial. Esto lleva a un sistema de ecuaciones lineales, o no lineales, en los que se calculan los ci . La idea es parecida
a la de la interpolación.
El método de los elementos finitos aproxima mediante mínimos cuadrados los ci de tal forma que se minimice la suma
al cuadrado de las desviaciones entre los valores exactos en unos puntos de la ecuación diferencial y los aproximados.
482 j Capítulo 20. Integración de ecuaciones diferenciales ordinarias con condiciones de Contorno o Frontera
4.5
function w1=nlbvpfd(inter,bv,n)
% Diferencias finitas no lineal para resolver BVP
% inter, intervalo de integración; bv, valores de contorno; 4
% n, número de pasos.
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2); 3.5
h=(b-a)/(n+1); w=zeros(n,1); w1=w+0.01;
while abs(w1-w)>sqrt(eps) % Iteraciones de Newton-Raphson
w=w1; 3
w1=w-jac(w,h,n)\f7(w,h,bv,n);
end
2.5
close all, plot ([a a+(1:n)*h b],[ya w1’ yb]);
end
2
function y=f7(w,h,bv,n)
y=zeros(n,1); function a=jac(w,h,n)
y(1)=bv(1)-(2+h^2)*w(1)+h^2*w(1)^2+w(2); a=zeros(n,n); 1.5
end a(i,i+1)=1;
end a(i+1,i)=1;
end
end
Cuadro 20.2
Se formularán n ecuaciones con las n incógnitas c1 ; : : : ; cn . La primera y la última son las condiciones en la frontera:
n
X
c1 D cj j .0/ D y.0/ D 1
j D1
X n
c1 C C cn D cj j .1/ D y.1/ D 3:
j D1
Las otras
Pnn 2 ecuaciones resultan de evaluar la ecuación diferencial y 00 D f .t; y; y 0 / en ti , 2 i n 1, siendo
j 1
y.t/ D j D1 cj t . Es decir
0 1
Xn Xn X n
j 3
j 1 j 2 cj t D f @t; cj t j 1 ; cj j 1 t j 2 A :
j D1 j D1 j D1
En el ejemplo,
n h
X i
j 1 j 2 tij 3
4tij 1
cj D 0; i D 2; : : : ; n 1:
j D1
Las n ecuaciones forman un sistema Ac D b, donde la matriz de coeficientes A está definida así,
‚1 0 0 0 fila i D 1
Aij D j 1 j 2 tij 3
4tij 1 filas i D 2; : : : ; n 1
1 1 1 1 fila i D n
20.3 Métodos de colocación y de elementos finitos j 483
i 1 i 1
ti D a C .b a/ D (en el caso del ejemplo a) :
n 1 n 1
El gráfico-resultado para el ejemplo es el de la figura 20.3. La solución exacta y la obtenida casi se confunden.
3
Exacta
y(t)=1+2t
y(t)=1-0.1886t+1.0273t2+1.1613t3
2.5
2
y(t)=1+2t
Exacta
y
1.5
2 3
y(t)=1-0.1886t+1.0273t +1.1613t
0.5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
Tiempo
El ejemplo que hemos utilizado para introducir el método es lineal, pues así lo es la ecuación diferencial. Si fuese no
lineal, habría que utilizar el método de Newton-Raphson para resolver el sistema de ecuaciones no lineales que resultase.
Igual que hemos utilizado monomios como funciones base para aplicar el método, se puede recurrir a cualesquiera
otras: polinomios de Chebyshev, funciones trigonométricas, etc.
484 j Capítulo 20. Integración de ecuaciones diferenciales ordinarias con condiciones de Contorno o Frontera
Galerkin
Minimiza el cuadrado del error de la aproximación de la ecuación diferencial a lo largo de la solución. Aboca también
a un sistema de ecuaciones lineales, aunque un poco diferente del de la colocación.
Si en el procedimiento general anterior se usan como funciones base unos splines estamos refiriéndonos entonces al
método de los elementos finitos. Las splines son distintas de cero en un corto espacio de t.
En el caso de la colocación, los ci se obtenían forzando a que la solución aproximada satisficiese exactamente las
condiciones de contorno y los puntos de colocación.
El método de los elementos finitos para resolver
y 00
D f .t; y; y 0 /
y.a/ D ya
y.b/ D yb ;
escoge una solución aproximada y de tal forma que el residuo r D y 00 f sea lo más pequeño posible.
Análogamente a como vimos para mínimos cuadrados, esto se consigue eligiendo y de tal forma que el vector de
residuos sea ortogonal al espacio vectorial del conjunto de las soluciones de la ecuación diferencial.
Para un intervalo Œa; b se define el espacio vectorial de las funciones integrables cuadradas
( ˇZ b )
ˇ
L Œa; bD funciones y.t/ en Œa; bˇˇ
2 2
y.t/ dt existe y es finita :
a
f .t; y; y 0 /i .t/ dt D i .b/y 0 .b/ i .a/y 0 .a/ y 0 .t/i0 .t/ dt:
a a
t
t0 t1 t2 t 3 ... tn–1 tn tn+1
Figura 20.4: B-splines lineales por tramos que se usan como elementos finitos
Figure 7.10 Piecewise-linear B-splines used as finite elements. Each φi (t), for
Para ello, en 1los≤ puntos
i ≤ n, has
t0 <support
t1 < on
<the interval
tn < from el
tnC1 sobre ti−1
ejetot, tpara
i+1 . i D 1; : : : ; n, se define
„ t ti 1
para ti < t ti
ti ti 1 1
for each i that can be solved for the c in the functional
para t < tform
i ti C1 t
<t
i .t/ D tiC1 ti i i C1
1 if i = j
φi (tj ) = . (7.24)
0 if i = j
P
o sustituyendo y.t/ por ci i .t/, llegándose a que
Z b X X Z b X
i .t/f t; cj j .t/; cj j0 .t/ dt C i0 .t/ cj j0 .t/ dt D 0:
a a
Suponiendo que los puntos en t están uniformemente espaciados un paso h, hay que calcular todas estas integrales
para cada i D 1; : : : ; n:
Z b Z b Z b ˇ 3 ˇh
t t t t2 t2 ˇ t ˇ h
i .t/i C1 .t/ dt D dt D D ˇ ˇ
1
h h2
dt ˇ 3h2 ˇ D 6
a a h h a 2h 0
Z b Z h 2
2 t 2
i .t/ dt D 2 dt D h
a 0 h 3
Z b Z h
1 1 1
i0 .t/i0 C1 .t/ dt D dt D
a 0 h h h
Z b Z h 2
0
2 1 2
i .t/ dt D 2 dt D :
a 0 h h
Si la ecuación diferencial es lineal, las ecuaciones de los ci también.
Ejemplo 20.4 Mediante elementos finitos, resolvamos
y 00
D 4y
y.0/ D 1
y.1/ D 3:
i
nC1
Z 1 Z 1
D cj 4 i .t/j .t/ dt C j0 .t/i0 .t/ dt :
0 0
j D0
Usando las expresiones de las B-splines para i D 1; : : : ; n y teniendo en cuenta que c0 D f .a/ y cnC1 D f .b/, las
ecuaciones que resultan son estas:
2
3
h h1 c0 C 38 h C h2 c1 C 23 h h1 c2 D 0
2
3
h h1 c1 C 38 h C h2 c1 C 23 h h1 c1 D 0
::
:
2 1
8 2
2 1
3
h h cn 1 C 3 h C h cn C 3 h h cnC1 D 0:
donde
8 2 2 1
˛D hC y ˇD h :
3 h 3 h
Recopilando todo lo necesario para el cálculo de este caso en un fichero .m de M ATLABy resolviendo con la instrucción
>> c=Galerkin_ef_1([0 1],[1 3],3) se llega a la solución que se ve en el cuadro 20.3. La tabla en él incluida
refleja el intervalo de integración, las condiciones de contorno y los valores aproximados por el método en él, así como
los exactos. Las diferencias son O.10 2 /. Para obtener más precisión habría que aumentar n.
i ti ci yi
function [c,y]=Galerkin_ef_1(inter,bv,n) 0 0;00 1;0000 1;0000
% Elementos finitos de ejemplo sencillo 1 0;25 1;0109 1;0181
% inter, intervalo de integración; bv, valores de contorno; 2 0;50 1;2855 1;2961
% n, número de pasos.
3 0;75 1;8955 1;9049
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2); e=ones(n,1);
h=(b-a)/(n+1); 4 1;00 3;0000 3;0000
alfa=(8/3)*h+2/h; beta=(2/3)*h-1/h;
M=spdiags([beta*e alfa*e beta*e],-1:1,n,n); >> [c,y]=Galerkin_ef_1([0 1],[1 3],3)
d=zeros(n,1); d(1)=-ya*beta; d(n)=-yb*beta; c =
t=0:h:b; e1=exp(2)-exp(-2); 1.0109
y=(3-exp(-2))*exp(2*t)/e1+(exp(2)-3)*exp(-2*t)/e1; 1.2855
c=M\d; 1.8955
end y =
1.0000 1.0181 1.2961 1.9049 3.0000
Cuadro 20.3
Contenido
21.1 Ecuaciones en derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489
21.1.1 Ejemplos de EDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
21.2 Resolución de ecuaciones parabólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
21.2.1 Resolución por diferencias adelantadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
21.2.2 Resolución por diferencias atrasadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
21.2.3 El método Crank–Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
21.3 Resolución de ecuaciones hiperbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
21.4 Resolución de ecuaciones elípticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498
21.4.1 Método de las diferencias finitas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
21.4.2 Método de los elementos finitos, FEM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
21.5 Resolución de EDP no lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Referencias, fuentes y lecturas complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
F .u C w/ D F .u/ C F .w/
y
F .ku/ D k F .u/:
Las EDP se emplean en la formulación de modelos matemáticos de procesos y fenómenos de la física y otras ciencias
humanas y sociales que suelen presentarse distribuidos en el espacio y el tiempo.
490 j Capítulo 21. Resolución numérica de ecuaciones en derivadas parciales
Se modelizan de esta forma la propagación del sonido o del calor, la electrostática, la electrodinámica, la dinámi-
ca de fluidos, la elasticidad, la mecánica cuántica, las emisiones de contaminantes, los fenómenos meteorológicos, la
valoración de opciones y derivados financieros y muchos otros.
Una solución de una EDP es una función que resuelve la ecuación, o que la convierte en una identidad cuando se
sustituye en la ecuación.
Excepto en casos de concepción geometría analítica sencilla, las ecuaciones en derivadas parciales son muy difíci-
les de resolver analíticamente. Numéricamente, sin embargo, si se pueden resolver muchos problemas de geometría
complicada y muy cercana a la de los problemas reales.
Dada una función u.x; y/, en las EDP es muy común significar las derivadas parciales empleando subíndices (notación
tensorial). Esto es:
@u.x; y/
ux D
@x
2
@ u.x; y/ @ @u.x; y/
uxy D D
@y @x @y @x
@2 u.x; y/
uxx D
:
@x 2
Si la función u es continua en un cierto dominio y tiene derivadas parciales continuas hasta orden 2, por el teorema de
Schwarz„ por Karl Hermann Amandus Schwarz, Prusia 1843-Alemania 1921,
Schwarz
se sabe que
uxy D uyx :
En la física matemática se usa el operador nabla, que en coordenadas cartesianas se escribe como r D .@x ; @y ; @z /
para las derivadas espaciales, y con un punto, u,
P para las derivadas que tienen que ver con el tiempo.
La diferencia práctica de estos tipos de ecuaciones es que las parabólicas e hiperbólicas están definidas en un intervalo
o región abierto. Para resolverlas se imponen condiciones de contorno a una variable —en general al tiempo— en la
frontera de uno de sus extremos y se parte de él. Las elípticas tienen condiciones de contorno en toda la frontera de esa
región.
para todo
„u D Duxx
t a x b; t 0
u.x; 0/ D f .x/ para todo axb
u.a; t/ D l.t/ para todo t 0
u.b; t/ D r.t/ para todo t 0:
La función f .x/ define la distribución de temperaturas en la barra al comienzo del tiempo de estudio en el
intervalo Œa; b.
l.t/ y r.t/, para t 0, designan las temperaturas en los extremos de la barra.
La constante D es la que gobierna la velocidad de transferencia del calor.
0 x
a b
j+1
i–1 i i+1
Las condiciones de contorno y las iniciales dan valores a wi 0 ; i D 0; : : : ; M y w0j y wMj ; j D 0; : : : ; N .
Figure 8.2matricial,
En forma Stencillosfor Forward
valores de wi;j Difference Method. The open circle represents wi,j+1
C1 en el tiempo tj C1 se determinan mediante la fórmula wj C1
, which
D Aw j C sj , o
can be determined from the2 values wi−1,j , wij , and wi+1,j3 at the closed circles by (8.7).
1 2 0 0
23 6
6 1 2 : :: 7 2 3 2 3
w 6
:: : 77 w1j w0;j that this method is
that is not explicit
6 is
1;jcalled
::
C1
7 6 implicit. The stencil
::
of the
76 method
74 :: 7 6shows
:: 7
4 5D6
6 0 1 2 : 0 7 5C 4 5:
explicit. In matrix wterms, we
: 6 can
:
get the values wi,j +1 7 at
w
: time tj +1
w
by computing
: a matrix
m;j C1 6 : : :: : :: : :: 7 mj mC1;j
4 :
multiplication wj +1 = Awj + sj , or 5
0 0 1 2
function w=heatbd(xl,xr,yb,yt,M,N)
% Ecuación del calor por diferencias avanzadas
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x)sin(2*pi*x).^2;
l=@(t)0*t; r=@(t)0*t; D=1;
h=(xr-xl)/M; k=(yt-yb)/N; m=M-1; n=N;
sigma=D*k/h/h;
a=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
a=a+diag(-sigma*ones(m-1,1),-1);
lside=l(yb+(0:n)*k); rside=r(yb+(0:n)*k);
w(:,1)=f(xl+(1:m)*h)’;
for j=1:n
w(:,j+1)=a\(w(:,j)+sigma*[lside(j); zeros(m-2,1); rside(j)]);
end
w=[lside; w; rside];
x=(0:m+1)*h; t=(0:n)*k;
mesh(x,t,w’), view(60,30); axis([xl xr yb yt -1 1])
end
Cuadro 21.2
cuadro. Obsérvese que el k que se utiliza ahora es 0;1 en vez del anterior 0;004. El método es estable para cualesquiera
h y k, con D > 0.
Crank Nicolson
Es un especie de combinación de los dos anteriores, explícito e implícito, con un error O.h2 / C O.k 2 /.
Usa la diferencia atrasada para la derivada respecto del tiempo y una combinación ponderada uniformemente de
derivada atrasada y adelantada para el resto de la ecuación. En concreto, reemplaza u t por la fórmula de la diferencia
atrasada
1
wij wi;j 1
k
y uxx por la diferencia mixta
1 wiC1;j 2wij C wi 1;j 1 wi C1;j 1 2wi;j 1 C wi 1;j 1
C :
2 h2 2 h2
Haciendo otra vez D Dk= h2 , la ecuación del calor se puede reordenar así
h i
2wij 2wi;j 1 D wi C1;j 2wij C wi 1;j C wi C1;j 1 2wi;j 1 C wi 1;j 1 ;
o bien
wi 1;j C .2 C 2 /wij wi C1;j D wi 1;j 1 C .2 2 /wi;j 1 C wiC1;j 1:
496 j Capítulo 21. Resolución numérica de ecuaciones en derivadas parciales
˚
Formulada en su totalidad para especificar una solución concreta sería:
u t t D c 2 uxx para todo a x b; t 0
u.x; 0/ D f .x/ para todo axb
u t .x; 0/ D g.x/ para todo axb
u.a; t/ D l.t/ para todo t 0
u.b; t/ D r.t/ para todo t 0:
Para resolverlo se puede aplicar diferencias adelantadas a partir de una malla como la de la figura 21.2. Los puntos
son i ; tj /, donde x
PTER 8 Partial.xDifferential i D a C ih y tj D j k, con pasos h y k. La aproximación a la solución u.xi ; tj / se representa
Equations
mediante wij .
t
0 x
a b
El gradiente del campo está relacionado con la densidad de carga, , por la ecuación de Maxwell
rE D ;
"
donde " es la permisividad eléctrica. La formuló James Clerk Maxwell, Reino Unido, 1831-1879.
Maxwell
En conjunto,
u D r ru D ;
"
ecuación de Poisson del potencial u. En el caso de que la carga sea cero, el potencial satisface la ecuación de Laplace
u D 0.
Dirichlet
1
Ai C.j 1/m;i 1C.j 1/m D
h2
1
Ai C.j 1/m;i Cj m D 2
k
1
Ai C.j 1/m;i C.j 2/m D 2:
k
El término de la derecha del nudo .i; j / es biC.j 1/m D f .xi ; yj /. Sólo quedan por introducir en la formulación las
condiciones de contorno.
En M ATLAB, estructurar todo para resolver la ecuación de Poisson con m D n D 5 en el rectángulo Œ0; 1 Œ1; 2 y
con las condiciones de Dirichlet
u.x; 1/ D ln.x 2 C 1/
u.x; 2/ D ln.x 2 C 4/
u.0; y/ D 2 ln y
u.1; y/ D ln.y 2 C 1//
lleva al cuadro 21.6.
function w=Poisson(xl,xr,yb,yt,M,N)
% Ecuación de Poisson por diferencias adelantadas
% Entrada: [xl,xr], tiempo[yb,yt], pasos M, tiempos N
f=@(x,y) 0; g1=@(x) log(x.^2+1); g2=@(x) log(x.^2+4);
g3=@(y) 2*log(y); g4=@(y) log(y.^2+1);
%g1=@(x) sin(x.*pi); g2=@(x) sin(x.*pi); g3=@(y) 0; g4=@(y) 0; VERSIÓN Poisson_1
m=M+1; n=N+1; mn=m*n; close all
h=(xr-xl)/M; h2=h^2; k=(yt-yb)/N; k2=k^2;
x=xl+(0:M)*h; y=yb+(0:N)*k;
A=zeros(mn,mn); b=zeros(mn,1);
for i=2:m-1, for j=2:n-1
A(i+(j-1)*m,i-1+(j-1)*m)=1/h2; A(i+(j-1)*m,i+1+(j-1)*m)=1/h2;
A(i+(j-1)*m,i+(j-1)*m)=-2/h2-2/k2;
A(i+(j-1)*m,i+(j-2)*m)=1/k2; A(i+(j-1)*m,i+j*m)=1/k2;
b(i+(j-1)*m)=f(x(i),y(j));
end, end
for i=1:m
j=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g1(x(i));
j=n; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g2(x(i));
end
for j=2:n-1
i=1; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g3(y(j));
i=m; A(i+(j-1)*m,i+(j-1)*m)=1; b(i+(j-1)*m)=g4(y(j));
end
v=A\b;
w=reshape(v(1:mn),m,n); mesh(x,y,w’)
end
Cuadro 21.6: Código de M ATLAB para resolver la ecuación de Poisson por diferencias finitas
Si lo utilizamos para el problema propuesto con la instrucción >> w=Poisson(0,1,1,2,4,4); se llega a la solución
de la figura 21.6a.
Ejemplo 21.1 Calculemos el potencial electrostático en el rectángulo Œ0; 1 Œ0; 1, suponiendo que no hay carga en el
interior y se dan las siguientes condiciones de contorno
u.x; 0/ D sen.x/
u.x; 1/ D sen.x/
(21.1)
u.0; y/ D 0
u.1; y/ D 0:
Cambiamos ligeramente en el programa Poisson las funciones de partida —incluidas en comentarios— y hacemos
>> w=Poisson_1(0,1,0,1,10,10);. Resulta el gráfico de la figura 21.6b.
1 The model problem
All along this course we will be working with a simple model boundary value problem,
which will allow us to put the emphasis on the numerical method rather than on the
intricacies of the problem itself. For some of the exercises and in forthcoming lessons we
will complicate things a little bit.
In this initial section there is going to be a lot of new stuff. Take your time to read it
carefully, because we will be using this material during the entire course.
SD
SN
Figura 21.7 Figure 1.1: The domain Ω and the Dirichlet and Neumann boundaries
We are thus given a polygon in the plane R2 . We call this polygon Ω. Its boundary
is a closed polygonal curve Γ. (There is not much difference if we suppose that there is
que volvemos a definir como
ˇ“ 3
ˇ
2 ˇ 2
L .R/D funciones .x; y/ enRˇ .x; y/ dx dy existe y es finita ;
R
minimizaremos el cuadrado del error de la ecuación elíptica forzando a que el residuo u.x; y/ C r.x; y/u.x; y/
f .x; y/ sea ortogonal a un subespacio de L2 .R/.
Designaremos mediante L20 .R/ el subespacio de L2 .R/ de las funciones que son cero en el borde o frontera S de la
región R.
Si las funciones 1 .x; y/; 2 .x; y/; : : : ; P .x; y/ son una base del subespacio L2 .R/, la condición de ortogonalidad
tiene esta forma “
u C ru f p dx dy D 0
R
o “ “
u C ru p dx dy D f p dx dy;
R R
para cada 1 p P . A esta forma de la condición se le denomina forma débil de la ecuación elíptica. También
primera identidad de Green, por George Green, Reino Unido 1793-1841.
Green
Dice que si R es una región, con frontera S continua a trozos, u y v funciones continuas (la función v se denomina de
prueba) y n el vector unitario normal hacia afuera a lo largo de la frontera,
“ Z “
@u
vu D v dS ru rv:
R S @n R
La derivada direccional es @u
@n
D ru nx ; ny , donde .nx ; ny / es el vector unitario normal hacia afuera en la frontera
S de R.
’ ’
La identidad de Green aplicada a la forma débil . R u C ru p dx dy D R f p dx dy/ es
Z “ “ “
@u
p dS ru rp dx dy C rup dx dy D f p dx dy: (21.2)
S @n R R R
P
vq ∇φq · ∇φp dx dy − rφq φp dx dy = − f φp dx dy. (8.50)
q=1 R R R
504 j Capítulo 21. Resolución numérica de ecuaciones en derivadas parciales
For each φp belonging to L2 (R), we have developed a linear equation in the unknowns
0
y después determinar las constantes vq .
v 1 , . . . , v P . In matrix form, the
2 equation is Av = b, where the entries of the pth row of A
Supongamos para ello que p pertenece a L0 .R/, es decir, p .S / D 0. Con la aproximación por w.x; y/ en el
and bla are
resultado de aplicar identidad de Green (21.2), para cada p en L20 .R/,
s P
! s X P
! s
X
vq rqA rp dx dy C
∇φq r· ∇φpvqdx q dy dx dy D rφqfφpp dx
p− dx dy
dy: (8.51)
pq =
R qD1 R R qD1 R R
Figure 8.16
Esta triangularización .m D Finite
M C element
1; n D N C solver of elliptic
1/ da lugar a P Dequation
mn funcioneswith lineales
Dirichlet
forboundary
tramos, p conditions.
, cada una de las
cuales toma el (a)
valor 1 enisunsame
Mesh puntoasdeused
la malla y 0 endifference
for finite los mn 1solver.
restantes.
(b) A possible triangulation of the region. Each
Usando la numeración
interior pointintroducida
is a vertex al of
presentar esta malla,
six different las 1 ; : : : ; mn se determinan mediante la igualdad
triangles.
iC.j 1/m .xi ; yj / D 1 y i C.j 1/m .xi 0 ; yj 0 / D 0 para los demás puntos de la malla .xi 0 ; yj 0 /, si son lineales en
los triángulos.
Cada p .x; y/ es derivable, excepto en los bordes o aristas de los triángulos, por lo que son funciones de L2 .R/
integrables de Riemann.
Se cumple además para las aproximaciones que
m X
X n
w.xi ; yj / D viC.j 1/m iC.j 1/n .xi ; yj / D vi C.j 1/m ;
i D1 j D1
Para completar la exposición del procedimiento FEM queda el cálculo de los coeficientes de la matriz A y del término
independiente b.
Para ello definimos el baricentro de una región del plano como el punto .x; N donde
N y/
’ ’
x dx dy y dx dy
xN D ’R ; yN D ’R :
R 1 dx dy R 1 dx dy
@f @f
f .x; y/ D f .x;
N y/
N C N y/.x
.x; N N C
x/ N y/.y
.x; N N
y/
@x @y
N 2 ; .x x/.y
C O .x x/ N N .y y/
y/; N 2
D L.x; y/ C O .x N 2 ; .x
x/ N
x/.y N .y
y/; N 2 :
y/
En consecuencia,1
“ “ “
f .x; y/ dx dy D L.x; y/ dx dy C O .x N 2 ; .x
x/ N
x/.y N .y
y/; N 2 dx dy
y/
R R R
D área.R/ L.x; N C O.h4 / D área.R/ f .x;
N y/ N C O.h4 /;
N y/
5
(xi 1,y j ) 6 4 (xi+1,y j )
1 3
(xi 1,y j 1) 2 (xi ,y j 1)
Figura 21.8
Figure 8.17 Detail of the (i, j) interior point from Figure 8.16(b). Each interior point (xi , yj )
is surrounded by six triangles, numbered as shown. The B-spline function φi+(j−1)m is linear,
Para obtener A, consideremos el .xi ; yj / en el interior del perímetro hexagonal de la figura 21.8. que no está en la
takes the value 1 at the center, and is zero outside of these six triangles.
frontera S del rectángulo mallado considerado. Está rodeado de seis triángulos. La función B-spline iC.j 1/m es lineal
y toma el valor 1 en el centro y 0 fuera de esos triángulos.
Como p D q D i C .j 1/m el coeficiente Ai C.j 1/m;i C.j 1/m está compuesto de dos integrales, que son cero fuera
de esos seistriangles
The triángulos.have horizontal and vertical sides h and k, respectively. For the first integral,
Lossumming
6 triángulosfrom
tienentriangle
lados horizontales h y verticales
1 to triangle k. La primera
6, respectively, use desde
integral,
we can Lemma el triángulo
8.10(c)1toal sum
6, es the
six contributions k 2 h2 h2 C k 2 k2 h2 h2 C k 2 2 h2 C k 2
C C C C C D :
2hk 2hk2 2hk 2hk 22hk 2hk hk
k2 h2 h + k2 k2 h h2 + k 2 2(h2 + k 2 )
Los baricentros de los+ seis triángulos
+ son + + + = . (8.54)
2hk 2hk B12hk 2hk
D xi 2hk 2 1 2hk hk
3 h; yj 3 k
Burgers
Está presente en mecánica de fluidos, flujo de tráfico, acústica, etc. Si D > 0, modeliza fluidos viscosos; si D D 0,
fluidos
6 | CHAPTER invíscidos
8 Partial o sin viscosidad.
Differential Equations
Utilizaremos una discretización o malla como la de la ecuación del calor.
t
0 x
a b
withF error
k and the forward-difference
h2 uxxxx (c1 , t)/12;
i .z1 ; : : : ; zm / D zi C zi ziC1 zi 1 ziC1 formula
2zi C zifor1 the wfirst derivative
i;j 1 D 0;
used for the time variable gives 2h
para i D 1; : : : ; m. El término wi;j 1 se conoce de la1 etapa anterior.
La primera y la última de estas ecuaciones ut (x,se
t) ≈reemplazan por
(u(x, t + k)las condiciones
− u(x, t)), de contorno apropiadas.
(8.5) Así, para el
k
caso de la ecuación de Burgers con condiciones de Dirichlet
with error kutt (x, c2 )/2, where
8̂ x − h < c1 < x + h and t < c2 < t + h. Substituting into
u t C uux D Duxx
< (xi , tj ) yields
the heat equation at the point
ˆ
u.x; 0/ D f .x/ para xl x xr
D ˆ u.x ; t/ D l.t/ para todo1 t 0
:̂ −l 2wij + wi−1,j ) ≈ (wi,j +1 − wij ),
(wi+1,j (8.6)
h2 u.xr ; t/ D r.t/ para todo k t 0;
with the local truncation errors given by O(k) + O(h2 ). Just as in our study of ordinary
differential equations, the local truncation errors will give a good picture of the total errors,
as long as the method is stable. We will investigate the stability of the Finite Difference
Method after presenting the implementation details.
Note that initial and boundary conditions give known quantities wi0 for i = 0, . . . , M,
and w0j and wMj for j = 0, . . . , N , which correspond to the bottom and sides of the rectangle
in Figure 8.1. The discrete version (8.6) can be solved by stepping forward in time. Rearrange
21.5 Resolución de EDP no lineales j 509
0 1
t C uux D Duxx
„u
sen.x/
u.x; 0/ D 2Dˇ
˛Cˇ cos.x/
para 0 x 1
u.0; t/ D 0 para todo t 0
u.1; t/ D 0 para todo t 0:
El código que lo hace está en el cuadro 21.8. Con la instrucción >> w=Burgers(0,1,0,2,250,250); se obtiene el
gráfico de la figura 21.10.
function w=Burgers(xl,xr,tb,te,M,N)
% Ecuación de Burgers; diferencias atrasadas; In [xl,xr], tiempo[tb,te], M, N
alfa=5; beta=4; D=0.05;
f=@(x) 2*D*beta*pi*sin(pi*x)./(alfa+beta*cos(pi*x));
l=@(t) 0*t; r=@(t) 0*t;
m=M+1; n=N; close all
h=(xr-xl)/M; k=(te-tb)/N; sigma=D*k/h/h;
w(:,1)=f(xl+(0:M)*h)’; w1=w;
for j=1:n
for it=1:4
DF1=diag(1+2*sigma*ones(m,1))+diag(-sigma*ones(m-1,1),1);
DF1=DF1+diag(-sigma*ones(m-1,1),-1);
DF2=diag([0;k*w1(2:m-1)/(2*h)],1)-diag([k*w1(2:m-1)/(2*h);0],-1);
DF=DF1+DF2;
F=-w(:,j)+(DF1+DF2/2)*w1;
DF(1,:)=[1 zeros(1,m-1)]; DF(m,:)=[zeros(1,m-1) 1];
F(1)=w1(1)-l(j); F(m)=w1(m)-r(j);
w1=w1-DF\F; % Newton-Raphson
end
w(:,j+1)=w1;
end
x=xl+(0:M)*h; t=tb+(0:n)*k; mesh(x,t,w’)
Cuadro 21.8
Los programas de M ATLAB que se listan son una pequeña extensión de los de Sauer [2012]. Para diseño de procedi-
mientos ad-hoc, como casi siempre, M ATLAB C ENTRAL es un buen punto de partida.
Apéndices
Apéndice A
E STE apéndice trata de aportar ciertos fundamentos, principios matemáticos y orígenes del contexto conceptual que
se abordado en el libro. La notación que se introduce, de forma sistemática y natural, es la que se trata de usar en
todas los capítulos del libro. Es un medio para uniformizar todo el contexto de la exposición y aprendizaje, si ello es
posible. Si algún lector al leer tal o cual cosa en los diferentes capítulos se siente huérfano de algún concepto o desarrollo
que crea necesario conocer, es probable que lo encuentre en este apéndice. Si no, seguro, en las múltiples referencias en
el apartado de bibliografía, al final.
A.1 Conjuntos
Los algoritmos —como agrupación ordenada y finita de operaciones y reglas que permiten hallar la solución de un
problema, o realizar una actividad relativamente compleja— y las matemáticas modernas, tienen mucho que ver con
colecciones abstractas de objetos como lo es un conjunto.
Definición A.1 Un conjunto es una construcción matemática que se refiere a una colección de objetos considerada
en si misma un objeto: los números naturales, las soluciones de un problema determinado, los municipios de una
provincia, etc.
Un conjunto se identifica por una letra mayúscula: el conjunto S , el conjunto de los números naturales N, el de los
enteros Z, el de los reales R, complejos C, racionales Q, etc.
“Conjuntos” es un concepto primitivo, en el sentido de que no es posible definirlos en términos de nociones más
elementales, por lo que su estudio puede realizarse de manera informal, apelando a la intuición y a la lógica. Son el
concepto fundamental de las matemáticas modernas: mediante ellos puede formularse el resto de objetos matemáticos,
como los números y las funciones, entre otros. Su estudio detallado requiere pues la introducción de axiomas y conduce
a la teoría de conjuntos.
El proponente o inventor de la teoría de conjuntos fue Georg Ferdinand Ludwig Philipp Cantor —Rusia 1845, Ale-
mania 1918—. Lo hizo en la segunda mitad del siglo XIX.
Cantor
Cada uno de los objetos de la colección a la que se refiere un conjunto es un elemento o miembro del conjunto. Si un
elemento a pertenece a un conjunto C se indica a 2 C . Los conjuntos se definen mediante la enumeración entre llaves
_SKgK, 2SK_ej22AyK HS46[,46E_A>ES++ _A1A6KES_>XA6>S_q,2SKS2x,K,E>iKS_
L{H6XS_AXX,2ASK,E6_ 2SK_c^2bA1E6_H64A,Kb6X6>E,q2SHUt_KS 46_-XXSEE.XSK E,KS2AyK46K{H6XSX6,E
2SHSExHAb646_g26_ASK6_46LgH6X8_X,2ASK,E6_
{H6XSAH,>AK-XAS ES_K{H6XS_AH,>AK,XAS_ =6XSKg_,4S_ 4gX-Mb66E_A>ES+*6KE,AKm6_bA>,2AyK46
E,__SEg2ASK6_46,E>gK,_X,x26_USEAKyHA2,_ U6XSKS=6XSK_A_b6H,bAs,4S_@,_b,Ht_b-X46 K6E_A>ES
+*E,KS2AyK46K{H6XS_2SHUE6CS_6X,1A6K2SKS2A4,q@,1x,_A4Sg_,4,q,6K6E_A>ES,Kb6XASX 'AK
6H1,X>SE,KS2AyK,K,ExbA2,46ES_K~H6XS_2SHUE6CS_2SHS6pb6K_AyK46ES_K~H6XS_X6,E6_6HUE6,4S_
6K,KtEA_A_H,b6HtbA2S _6 <XH,EAsy 46 H,K6X, 2SHUE6b, 6K 6E _A>ES ++ g6 6K 6_b, wUS2, 4SK46 _6
2SK_bXgr6XSKHg2@,_>6K6X,EAs,2ASK6_46ES_L{H6XS_X6,E6_6KbX66EE,_
S_
6HUE6,4S_46H,K6X,Ht_SH6KS_2SKbAKg,4,46_466E_A>ES+*6K6E
_A>ES++_SK<XH,EAs,4S_46KeS46E,KtEA_A_H,b6HtbA2S2SHS6pb6K_AyK46ES_X6,E6_
514 j Apéndice A S_2g,b6IASK6_ UXSUg6_bS_USX%So-K,HAEbSKU.X,X6_SEm6X4Am6X_S_UXS1E6H,_>6SHwbXA2S_
_SKgK,2SK_bYg22AyKWg6>6K6X,EAs,,_gm6s,ES_L}H6XS_2SHUE6CS_
{H6XS_@AU6X2SHUE6CS_>6K6X,EAs,KE,2SK_bXj22AyK46,HAEbSK46ES_2g,b6IASK6_
pb6K_ASK6_ e,_26K46Kb6_ 46 X6,E6_ q 2SHUE6CS_ $S_b6XASXH6Kb6 4Am6X_,_ 6pb6K_ASK6_ _gX>A4,_ 46E
de sus elementos, C D fa; b;,KtEA_A_H,b6HtbA2S2X6.YSK6pb6K_ASK6_bX,_26Kb6Kb6_KS,E>61X,A2,_Wg6AK2Egx,M,ES_
: : : g, o especificando, también entre llaves, la propiedad que los caracteriza. Por ejemplo,
C D fx W x 2 R; x 2g designa los números
reales
menores
o iguales que dos; el conjunto C de los números reales x
E, KS2AyK46L{H6XSAK:KAb6_AH,E,_x2SHS,E>gK,_A46,_46
6A1KAs ,KbA2AU,1,K gK, 2SK_eg22AyK Ht_ ,EEt 46 ES_ K{H6XS_ X6,E6_ SX4AK,XAS_ =6XSK
que son mayores que 1 y menores<XH,EAs,4S_:K,EH6Kb62SHSgKHS46ES_KS6_buK4,X
que 0 se designa de esta manera: C D fx46246ES_ R W ,pASH,_46
x > 1; x ES_K{H6XS_
< 0g. X6,E6_
El conjunto sin elementos se denomina vacío, designándose mediante el símbolo ;.
H64A,Kb66Eb6SX6H,46S`
{H6XS__gXX6,E6_
Si S y S 0 son dos conjuntos y todos los elementos del conjunto S 0 lo son de S, se dice que S 0 es un subconjunto del
H6XS__gXX6,E6_
conjunto S, o que está contenido en S , expresándose S 0 S o S S 0 . El conjunto de los números, por ejemplo, se
0
1DWXUDOHV
XQR
1DWXUDOHV SULPRV
(QWHURV
1DWXUDOHV &RPSXHVWRV
5DFLRQDOHV &HUR
&RPSOHMRV
5HDOHV (QWHURV QHJDWLYRV
)UDFFLyQ SURSLD
)UDFFLRQDULRV
)UDFFLyQ LPSURSLD
,UUDFLRQDOHV
,UUDFLRQDOHV DOJHEUDLFRV
7UDVFHQGHQWHV
,PDJLQDULRV
Figura A.1: Clasificación de los números en diversos subconjuntos. Fuente: W IKIPEDIA mas pequeños ajustes del autor
La unión de dos conjuntos S y T , expresada S [ T , es el conjunto formado por los elementos que pertenecen a S o a
T . La intersección de S y T , expresada S \ T , es el conjunto formado por los elementos que pertenecen a S y a T .
'A_b6H,46
gbAEAs,4S_U-X,6pUX6_,XES_K{H6XS_)K'A_b6H,46KgH6X,2AyKUS_A2ASK,E USX
Si S 0 es un subconjunto de S, el complemento del subconjunto
6C6HUES6_bt46:KA4SUSXE,1,_6Wg6gbAEAs, S 0 en S es el conjunto formado por los elementos de
,1,_646iK_A_b6H,46KgH6X,2AyK6_6EK~H6XS46_xH1SES_
0
S que no pertenecen a S4A9X6Kb6_S>g,YA_HS_K626_,YAS_U.X,X6UX6_6Kb.XgKK{H6XS2g,E
. A6X,46ES_AK:KAbS_US_A1E6_6K6E_A_b6H,
E_A_b6H,46 KgH6X,2AyKHt_gbAEAs,4S6KE,,2bl,EA4,46_6E -Xv1A>SS462AH,EUSXWg66HUE6,# _xH1SES_
Si a y b son númerosU,X,X6UX6_6Kb,XbS4S_ES_K{H6XS_#
reales, es decir, a 2 R, b 2 R, y a b, el conjunto de números x de la recta real tales que
a x b se indica Œa; b. El formado por los x tales que a < x b, por .a; b. El de los x que verifican que
a < x < b, por .a; b/.
Si S es un conjunto no vacío de números reales acotados superiormente —mayorados—, existe un número real mínimo
y tal que x y para todo x 2 S. Al número y se le denomina cota superior mínima o supremo de S ; se expresa así:
De forma similar se define la cota inferior máxima —o ínfimo— de un conjunto S no vacío de números reales acotados
inferiormente o minorados:
Kınf .x/ o Kınf fx W x 2 Sg :
x2S
Una aplicación se dice biyectiva si es inyectiva y suprayectiva. Ejemplo, si Jn es el conjunto de los números enteros
de 1 a n, Jn D f1; : : : ; ng, y se define una aplicación W Jn ! Jn que modifica el orden de disposición de los elementos
de Jn —estas aplicaciones se denominan permutaciones—, tal aplicación es biyectiva.
Un conjunto S se dice numerable si existe una biyección entre N y S: a cada unos de los n elementos k, 1 k n,
se le asocia un elemento ak 2 S , esto es: k 7! ak .
Una sucesión de elementos de un conjunto T es una aplicación de N en T : a cada elemento n 1 se le hace
corresponder un x .n/ 2 T : n 7! x .n/ . Tal sucesión se designa x1 ; x2 ; : : : xn ; : : :, o fx .1/ ; x .2/ ; : : : g. También en algunos
casos fx .n/ gn1 e incluso fxn g1 nD1 .
Si fxi g es una sucesión de números reales y existe un número real S tal que 1: para cada " > 0 existe un N tal que
para todo n > N se tiene que xn < S C y 2: para cada " > 0 y M > 0 existe un n > M tal que xn > S ", entonces S
se denomina límite superior de la sucesión fxn g, escribiéndose S D lKım supn!1 xn . Si fxn g no está acotada por arriba
—mayorada— se escribe lKım sup xn D C1. El límite inferior de la sucesión fxn g es lKım inf xn D lKım sup. xn /. Si
lKım sup xn D lKım inf xn D S , entonces lKım xn D S .
Los conjuntos dotados de ciertas leyes de composición o asociación interna —adición, multiplicación, división o
cualquier otra—, se dice que poseen una estructura algebraica. Alguna estructuras algebraicas fundamentales son el
grupo, el anillo (Z por ejemplo), el cuerpo (R y C, por ejemplo), el espacio vectorial, el álgebra, etc.
Ejemplo A.1 Quizás el espacio vectorial más simple y utilizado es el conjunto de los números reales. Es un espacio
516 j Apéndice A
vectorial con la adición definida en los términos usuales y el producto o, multiplicación por escalares (reales), definido
por la multiplicación ordinaria. El vector nulo es el número real cero. Las propiedades de adición ordinaria y multipli-
cación de números reales satisfacen las propiedades de la definición anterior. Este espacio vectorial se suele denominar
el espacio unidimensional de números reales, o simplemente la recta real. Se designa por R. Todo lo dicho se aplica
igualmente al espacio vectorial de los números complejos, C.
En las aplicaciones que se estudian habitualmente en este libro los casos más importantes ocurren cuando K D R o
K D C. Con la notación K designaremos a cualquiera de los cuerpos R o C y por x un vector cualquiera de un espacio
vectorial.
Ejemplo A.2 La extensión natural del anterior, y paradigma de espacio vectorial en este libro, lo constituye el formado
por sucesiones ordenadas de n elementos cualesquiera de K, o n-uplas x D Œx1 ; : : : ; xn , definiendo la suma de vectores
mediante
Œx1 ; : : : ; xn C Œy1 ; : : : ; yn D Œx1 C y1 ; : : : ; xn C yn
y el producto por un escalar mediante
˛Œx1 ; : : : ; xn D Œ˛x1 ; : : : ; ˛xn :
Si los elementos están definidos en R, el espacio vectorial se denomina Rn , si lo están en C, el espacio vectorial es Cn .
En general, cuando en el libro nos refiramos a un espacio vectorial, salvo que se indique lo contrario, podemos sobre-
entender que nos estamos refiriendo a Rn .
Ejemplo A.3 Si se denota por RN el conjunto cuyos vectores son las sucesiones infinitas de números reales, es decir,
˚
RN D x D fxn g1 nD1 W xn 2 R para todo n 2 N ;
éste tiene estructura de espacio vectorial sobre el cuerpo R. Análogamente, el conjunto CN de todas las sucesiones de
números complejos tiene estructura de espacio vectorial. La adición y la multiplicación en estos espacios vectoriales se
definen elemento a elemento como en el ejemplo A.2. Se dice que una sucesión está acotada si existe una constante M
tal que fxn g1
nD1 < M para todo n. La colección de todas las sucesiones infinitas acotadas también conforman un espacio
vectorial ya que la suma de dos sucesiones acotadas o el múltiplo escalar de una sucesión acotada están acotadas. Este
espacio se suele denominas espacio de sucesiones de números reales acotadas.
Ejemplo A.4 El conjunto de sucesiones infinitas de números reales que convergen a cero es un espacio vectorial ya
que la suma de dos sucesiones convergentes a cero o el múltiplo escalar de una sucesión que converge a cero también
converge a cero.
Ejemplo A.5 Si consideramos un intervalo Œa; b en la recta real. El conjunto de todas las funciones continuas de valores
reales en este intervalo forman un espacio vectorial. Escribamos x D y si x.t/ D y.t/ para todo t 2 Œa; b y sea el vector
nulo la función idénticamente igual a cero en Œa; b. Si x e y son vectores de este espacio vectorial y ˛ es un escalar
(real), las funciones .x C y/.t/ D x.t/ C y.t/ y .˛x/.t/ D ˛x.t/ son obviamente continuas por lo que la estructura de
espacio vectorial es clara. Este espacio se conoce como el espacio vectorial de funciones continuas reales en Œa; b.
Ejemplo A.6 El conjunto Pn de polinomios de grado n,
n
X
pn .x/ D ak x k ;
kD0
con coeficientes ak reales —definidos en toda la recta real o en un intervalo Œa; b—, o complejos, también conforman
sendos espacios vectoriales. El vector nulo y la adición o suma, así como la multiplicación por un escalar, se definen de
la misma manera que en el ejemplo anterior. La suma de dos polinomios y un múltiplo escalar de cualesquiera de ellos
son obviamente polinomios.
Dejamos aquí de momento los ejemplos pues otros que enunciaremos y utilizaremos en el libro requieren la introduc-
ción de otras estructuras adicionales en los espacios vectoriales como son una norma y el producto interior. Seguiremos
enunciando ejemplos al introducir estas estructuras.
A.2 Espacios vectoriales j 517
Definición A.3 Un subespacio vectorial M de un espacio vectorial E sobre un cuerpo K es un subconjunto no vacío
que es un espacio vectorial sobre K. Es decir, es cerrado respecto de las operaciones de adición y producto por un
escalar por lo que cumple que
8x; y 2 M H) x C y 2 M;
8x 2 M y 8 2 K H) x 2 M:
k
X
i xi D 0 H) i D 0; 0i k:
i D1
Definición A.8 Una base de un espacio vectorial E es cualquier subconjunto B de E que sea, simultáneamente, una
parte libre y generadora de E; dicho de otra forma, una base de un espacio vectorial es un conjunto —normalmente se
supone ordenado (numerado)— de vectores linealmente independientes que generan (o engendran) dicho espacio.
Se demuestra que cualquier espacio vectorial tiene una base y que todas las bases de un mismo espacio tienen la misma
cardinalidad —se pueden poner en biyección—. Cuando el cardinal de las bases es un número natural, n 2 N, se dice
que el espacio es de dimensión finita n.
Definición A.9 En un espacio vectorial K n , los vectores
2 3 2 3 2 3
1 0 0
607 61 7 60 7
e1 D 6 7 6 7 6 7
4 ::: 5 ; e2 D 4 ::: 5 ; : : : ; en D 4 ::: 5 ;
0 0 1
forman una base en dicho espacio; éste, por tanto, tiene dimensión n. Esta base se denomina base canónica o base
estándar de K n . En esta base, cualquier vector x T D Œx1 ; x2 ; : : : ; xn se puede expresar de la siguiente forma:
2 3 2 3 2 3 2 3
x1 1 0 0
6x2 7 607 617 607
6 : 7 D x1 6 : 7 C x2 6 : 7 C C xn 6 : 7 :
4 :: 5 4 :: 5 4 :: 5 4 :: 5
xn 0 0 1
518 j Apéndice A
Es decir Rn D Genfe1 ; : : : ; en g, por tanto Rn está generado por los vectores e1 ; : : : ; en . La base estándar de Pn es
S D f1; t; t 2 ; : : : ; t n g.
A C B D fa C b W a 2 A; b 2 Bg :
V
x0
M
−
→
First, (x0 , y0 ) + U ⊆ U , since ax0 + by0 = c and au1 + bu2 = 0 for all
−
→
(u1 , u2 ) ∈ U . Second, if (x, y) ∈ U , then ax + by = c, and since we also
have ax0 + by0 = c, by subtraction, we get
a(x − x0 ) + b(y − y0 ) = 0,
−
→ −
→
which shows that (x − x0 , y − y0 ) ∈ U , and thus (x, y) ∈ (x0 , y0 ) + U .
−
→ −
→
Hence, we also have U ⊆ (x0 , y0 ) + U , and U = (x0 , y0 ) + U .
A.2 Espacios vectoriales j 519
Definición A.11 Si en un espacio vectorial E sobre K (R o C) se define una norma vectorial como una aplicación
k k W E ! R que verifica
3.1 Espacios normados
kvk D 0 H) v D 0 y x ¤ 0 H) kxk > 0;
k˛vk D j˛jkvkSi en para
un espacio y v 2 E;E sobre K (R o C) se define una norma vectorial com
˛ 2 K vectorial
k k W E ! R que
ku C vk kuk C kvk 8u; v 2 E;verifica
v
uCv
Figura
Figura A.3: Representación gráfica de la regla del 3.1: Representación gráfica de la regla del triángulo
triángulo
Si laCbola
mKax jx.t/ C y.t/j mKax.jx.t/j cerrada
jy.t/j/ mKunidad enC
ax jx.t/j es
axeljy.t/j:
R2mK conjunto fx 2 R2 W kxk 1g, sus forma
vectoriales 1, 2, 1, y p son las que representa la figura 3.2.
Finalmente, la propiedad que falta se deduce de
7
mKax j˛x.t/j D mKax j˛j jx.t/j D j˛j mKax jx.t/j:
520 j Apéndice A
Ejemplo A.8 El espacio vectorial DŒa; b de todas las funciones continuas en el intervalo Œa; b de la recta real, con
derivadas continuas de primer orden, junto con la norma definida así, kxk D mKaxatb jx.t/j C mKaxat b jx.t/j,
P es un
espacio vectorial normado.
Ejemplo A.9 El espacio euclídeo n dimensional, denotado como n n
pR o E , es el espacio vectorial normado por ex-
celencia con la norma euclídea dada por la expresión kxk2 D jx1 j C C jxn j2 . Sus elementos lo constituyen
2
sucesiones ordenadas de n elementos cualesquiera de K, o n-uplas x D Œx1 ; : : : ; xn . Si los elementos son complejos se
tendría el espacio Cn .
En el espacio vectorial K n , para 1 p < 1, se tiene la familia de normas
p
p
kxkp D jx1 jp C C jxn jp
Hölder
Esta última es una vez más la norma euclídea en Rn . Toma su nombre de Euclides de Alejandría, Grecia, 325-265 a.C.
También en K n es una norma la dada por
kxk1 D mKax jxi j :
1in
Esta norma también se conoce como norma infinito o norma del supremo.
Estas normas cumplen, cualquiera que sea x 2 K n , que
Si la bola cerrada unidad en R2 es el conjunto fx 2 R2 W kxk 1g, su forma en espacios vectoriales normados por la
1, 2, 1 y p son las que representa la figura A.4.
i 2
2
kxk
x11 D
= |xijx
| ij D1
i=1
iD1
q
√ q
x22 D
kxk |x11|j22+C|xjx
= jx 2 2
j DxT xx T x D 1
2 | 2=
∞ D mK
kxk1 ax jx
i ij D 1
1≤i≤2 1i2
d e f g 9 4 6 5
h i j 10 8 7
Definición A.13 Sea S un conjunto de puntos del espacio vectorial normado X. Un punto y 2 S es un punto interior
de S si existe un " > 0 tal que todos los vectores x que satisfacen kx yk < " pertenecen a S . En otras palabras,
existe una bola abierta S.y; "/ de centro y y radio " contenida íntegramente en S. El conjunto de todos los puntos
V
interiores del conjunto S se denomina interior de S y se designa mediante S.
El interior de un conjunto puede, evidentemente, ser vacío. Por ejemplo un conjunto con un único punto, una línea en
R2 o un plano del espacio R3 .
Definición A.14 Un conjunto, o subconjunto S de un espacio normado, se dice abierto si coincide con su interior:
S D SV . Es decir, si alrededor de todo punto de S existe una bola abierta contenida íntegramente en S .
Dos ejemplos: la bola abierta unidad, S.x; 1/ D fx W kxk < 1g y el espacio Rn en su totalidad. En general los
subconjuntos o conjuntos abiertos se caracterizan por no tener límites definidos o ser disjuntos de su frontera (ver más
adelante la definición del concepto frontera).
Definición A.15 Un entorno de un punto x, E.x/, es un conjunto abierto que contiene a x. En otras palabras, E.x/ es
un entorno de x si contiene una bola abierta de centro x.
Definición A.16 Se dice que un punto x es un punto de acumulación del subconjunto S si en todo entorno de x existen
un número infinito de puntos de S.
Definición A.17 Un punto x se denomina punto de adherencia de un subconjunto S de un espacio vectorial cuando
todo entorno de dicho punto x contiene al menos un punto de S; es decir, para todo " existe un y 2 S tal que
kx yk < ". El conjunto de todos los puntos de adherencia de S se denomina adherencia —en la literatura anglosajona
N La adherencia de la bola abierta
y latinoamericana, se denomina clausura cl.S / o cerramiento—. Se designa por S.
N
S.x; 1/ D fx W kxk < 1g es la cerrada S.x; 1/ D fx W kxk 1g.
Definición A.18 Se denomina frontera o borde de un conjunto a la parte de la adherencia que no está en el interior.
A.2.1.1.2 Convergencia
La adherencia de cualquier conjunto S es el conjunto cerrado más pequeño que contiene a S . Se puede demostrar que
un conjunto es cerrado si y sólo si toda sucesión convergente de elementos de S tiene un límite en ese conjunto.
522 j Apéndice A
Definición A.20 Se dice que en un espacio vectorial normado una sucesión infinita de vectores fxn g converge a un
vector x si la sucesión fkx xn kg converge a cero. En este caso se escribe xn ! x.
Todos los elementos del vector deben converger a cero, lo que hace difícil caracterizar la convergencia en espacios que
no sean Rn .
Proposición A.4 Si la sucesión infinita de vectores converge, el límite es único.
kx yk D kx xn C xn yk kx xn k C kxn yk ! 0:
En términos de esferas o bolas, una sucesión infinita de vectores fxn g converge a un vector x si y sólo si dado un
" > 0 la bola S.x0 ; "/ contiene un xn para todo n mayor que algún número N .
Proposición A.5 Un conjunto F es cerrado si y sólo si cualquier sucesión convergente de elementos de F tiene límite
en F .
Proposición A.6 La intersección de un número finito de conjuntos abiertos es abierta. La unión de una colección
arbitraria de conjuntos abiertos es abierta.
Proposición A.7 La unión de un número finito de conjuntos cerrados es cerrada. La intersección de una colección
arbitraria de conjuntos cerrados es cerrada.
Definición A.21 Un conjunto, o subconjunto, se dice compacto si es cerrado y acotado (contenido en una bola de
radio r < 1).
El término general de una sucesión f xn gn1 de números reales tiene límite, l, cuando n tiende a 1, si para todo valor
" > 0 por pequeño que sea, existe un valor n0 a partir del cual si n > n0 tenemos que la distancia de l a xn es menor
que ", es decir, 8" > 0; 9 n0 > 0 W 8n > n0 ; d.xn ; l/ < ".
Un importante resultado debido a Karl Theodor Wilhelm Weierstraß, Alemania 1815-1897,
Weierstraß
dice que si S es un conjunto compacto, de cada sucesión o sucesión infinita fxn gn2N de elementos de dicho conjunto es
posible extraer una subsucesión fx` g`2L ; L N que converge a un elemento del propio conjunto S.
Si frk g es una sucesión de números reales y sk D sup fri W i kg, entonces fsk g converge a un número real s0 ; a
este número se le denomina límite superior de frk g y se expresa como lKım sup .rk / o lKımk!1 .rk / . El límite superior de
una sucesión de números reales es el mayor punto de acumulación de la sucesión. De forma similar se define el límite
inferior.
Sea E un espacio vectorial normado; se dice que una sucesión fxn g en E converge a un límite v 2 E, si para todo
" > 0, existe un N 2 N tal que a partir de él, n N , se cumple que kxn vk < ".
Cuando una sucesión fxn g admite un vector límite v sólo tiene ese vector como límite (si existe límite es único.) Se
escribe lKımn!1 fxn g D v, lo que es equivalente a lKımn!1 kxn vk D 0. En particular, xn ! 0 si y sólo si kxn k ! 0.
Definición A.22 Una sucesión fxn g en un espacio vectorial normado por k k se denomina sucesión de Cauchy si
kxn xm k ! 0 al tender n; m ! 1. En otras palabras, si para todo " > 0 existe un N 2 N tal que cualesquiera que
sean n; m N , se cumple que kxn xm k < ". Toda sucesión convergente es una sucesión de Cauchy pero pueden
existir espacios normados con sucesiones de Cauchy que no son convergentes.
A.2 Espacios vectoriales j 523
Cauchy
Definición A.23 Un espacio vectorial normado se dice completo si toda sucesión de Cauchy en él tiene límite. Un
espacio vectorial normado completo es un espacio de Banach.
Por Stefan Banach, Polonia 1892-1945.
Banach
Estas cantidades no estarán definidas para cualquier sucesión en RN o CN y estarán asociadas a un subespacio específico
de sucesiones. Si se define ( )
1
X
`1 .N/ D x D fxn g1 N
nD1 2 C tal que jxn j < 1 ;
nD1
se comprueba que ` .N/ es un subespacio vectorial de C y que kxk1 para x 2 `1 .N/ define una norma. Se obtiene así
1 N
y ˚
`1 .N/ D x D fxn g1 N
nD1 2 C tal que x esté acotada :
Recordemos antes de introducir otros ejemplos de espacios vectoriales en los que la norma es importante, que una
función f se supone continua (o uniformemente continua) en si para cualquier " > 0 existe un ı D ı.f; "/ > 0 tal
que jf .x/ f .y/j < ", cualesquiera sean x; y 2 con kx yk < ı.
Mediante C./ se designa el espacio vectorial lineal de las funciones continuas en el conjunto cerrado . Este
último espacio, y C./, son una variedad de espacio vectorial denominada espacio funcional pues sus elementos son
funciones en vez de vectores propiamente dichos. Cualquier función continua en C./ es claramente continua en C./.
Igualmente, si f 2 C./ es continua en el conjunto abierto y éste está acotado, la función f se puede suponer
continua también en @, la frontera o borde de , y entenderse que es continua por tanto en C./ y pertenece a dicho
conjunto.
524 j Apéndice A
Otro espacio vectorial interesante es C m ./, el de funciones continuas con derivadas parciales continuas hasta orden
m en , o C m ./ en . También Cp .2/, de funciones continuas periódicas-2, es decir, funciones f 2 C. 1; 1/
tales que f .x C 2/ D f .x/, 1 < x < 1. O Cpk .2/ de funciones continuas periódicas-2 con derivadas continuas
hasta orden k. Alguna vez se indica Cp0 .2/ para referirse a Cp .2/.
Definición A.24 El conjunto L1 Œa; b, de todas las funciones del cuerpo de los números reales cuyo valor absoluto
es integrable en el intervalo Œa; b, es un espacio vectorial funcional. También lo es L2 Œa; b, el conjunto de todas las
funciones reales al cuadrado integrables en Œa; b. Es de destacar que en ambos casos estas funciones no tienen por que
ser continuas en ese intervalo.
Definición A.25 Dados dos espacios vectoriales X e Y y un subconjunto D de X , una regla que asocia a cada elemento
x 2 D un elemento y 2 X se dice una transformación, o aplicación, de X en Y con dominio de definición D. Si y
corresponde a x con la transformación T se escribe y D T .x/.
Definición A.26 Una transformación de un espacio vectorial X en un espacio vectorial de números reales o complejos
se denomina función.
Definición A.27 Dados dos espacios vectoriales E y F sobre el mismo cuerpo K se define una aplicación lineal,
transformación lineal, mapeo, operador lineal u homomorfismo, f , de E en F , como una aplicación f W E ! F
que verifica
f .x C y/ D f .x/ C f .y/ ;
cualesquiera que sean los vectores x, y de E y los escalares y .
Existen dos casos particulares interesantes: el primero cuando E D F , en este caso se dice que f es un operador lineal
de E o endomorfismo de E; el segundo cuando F D K —el cuerpo base—, en cuyo caso la aplicación se denomina
forma lineal sobre E.
El conjunto L.E; F / de todas las aplicaciones lineales del espacio E en el espacio F se estructura como un espacio
vectorial si se definen las siguientes operaciones:
En particular, el conjunto L.E; K/ de formas lineales es un espacio vectorial denominado dual de E, representándose
con E .
Para una aplicación lineal f W E ! F , el conjunto de vectores de F que son la imagen de los de un subespacio de
E forma un subespacio de F . En particular, la imagen de todo E es un subespacio de F que se denomina subespacio
imagen de f , representándose mediante Im.f /. Análogamente, el conjunto anti-imagen de un subespacio de F forma
un subespacio de E. En particular, la anti-imagen del subespacio nulo de F forma lo que se denomina el núcleo de la
aplicación, representándose por ker.f /. Así pues
ker.f / D fx 2 E W f .x/ D 0g :
Si b 2 F , la ecuación lineal f .x/ D b tiene solución si y sólo si b 2 Im.f /. En ese caso el conjunto de todas
las soluciones es la variedad lineal —traslación de un subespacio— dada por x0 C ker.f /, donde x0 es una solución
particular de la ecuación. En particular, la aplicación es inyectiva si y sólo si ker.f / D ;.
El ejemplo más inmediato de transformación lineal lo proporciona una matriz rectangular m n que asocia elementos
de Rn en Rm . Volvemos sobre esto unas líneas más abajo.
Rb
Oro ejemplo de transformación lineal de X D C Œa; b en X lo constituye la integral T .x/ D a k.t; /x. / d , donde
k.t; / es una función continua en espacio cuadrado a t b, a b.
A.2 Espacios vectoriales j 525
Definición A.28 Una transformación o aplicación T de un espacio vectorial normado X en otro espacio vectorial
normado Y es continua en x0 2 X si para todo " > 0 existe un ı > 0 tal que kx x0 k < ı implica que kT .x/
T .x0 /k < ".
La continuidad depende de la norma elegida. Si todo punto de un espacio vectorial normado en continuo, el espacio
se dice continuo.
Proposición A.8 Una transformación T de un espacio vectorial normado en otro Y también normado se dice continua
en el punto x0 2 X si y sólo si xn ! x0 implica que T .xn / ! T .xo /.
Dada una transformación lineal, aplicación lineal, o mapeo, f W E ! E, se dice que un subespacio W de E es un
subespacio invariante frente a f (o f -invariante) si para todo vector w 2 W se cumple que f .w/ 2 W . Dicho de otra
manera, W es un subespacio invariante si f .W / W .
Es decir ( )
1
X
p
` .N/ D x D fxn g1
nD1
N
2 C tal que p
jxn j < 1 :
nD1
˚
El espacio `1 es `1 .N/ D x D fxn g1
nD1 2 C tal que x esté acotada .
N
1
!1=p
X
p
kxkp D jxi j :
i D1
Definición A.30 Un Espacio de Banach es un espacio vectorial normado completo respecto de la norma a él asociada.
Todo espacio vectorial normado de dimensión finita es un espacio de Banach.
Ejemplo A.10 De Luenberger [1969] sacamos la sucesión, del espacio X de funciones continuas en Œ0; 1 con la norma
R1
que define kxk D 0 jx.t/j dt , que expresa
8̂ 1 1
ˆ 0 para 0 t 2 n
<
n 1 1 1
xn .t/ D nt 2
C 1 para 2 n
t 2
ˆ
:̂
1 para t 12 :
Cada elemento de la sucesión es una función continua del espacio X . La sucesión es de Cauchy pues kxn xm k D
1
2
j1=n 1=mj ! 0. Sin embargo, es obvio que no converge a ninguna función continua. El espacio X en incompleto.
Figura A.5: Gráfica de sucesión de Cauchy que no converge a una función continua
Ejemplo A.11 También es fácil ver que en C Œ0; 1 la sucesión de funciones cuyas gráficas son las de la figura A.6 es
una sucesión de Cauchy para cualquier norma k kp , pero no tiene límite en C Œ0; 1.
1
fn .x/ n
= =
0 1 x
= =
1
n
Figura A.6
Ejemplo A.12 El espacio normado C Œ0; 1 es un espacio de Banach. Para probar que es completo tendríamos que probar
que toda sucesión de Cauchy en él tiene límite. Supongamos que fxn g es una sucesión de Cauchy en C Œ0; 1. Para cada
t 2 Œ0; 1, jxn .t/ xm .t/j kxn xm k ! 0 por lo que fxn g es una sucesión de Cauchy de números reales. Como el
conjunto de los números reales es completo existe un número real x.t/ al que converge la sucesión: xn .t/ ! x.t/. Las
funciones xn convergen en consecuencia punto a punto a la función x.
Ahora probemos que esta convergencia punto a punto en uniforme en t 2 Œ0; 1, es decir, dado un " > 0 existe un N
tal que jxn .t/ x.t/j < " para todo t 2 Œ0; 1 y n N . Dado un " > 0 escogemos un N tal que kxn xm k < "=2 para
n; m > N . Entonces para n > N
jxn .t/ x.t/j jxn .t/ xm .t/j C jxm .t/ x.t/j
kxn xm k C jxm .t/ x.t/j:
Escogiendo un m suficientemente grande (que dependerá de t ), cada término del miembro de la derecha de la expresión
anterior se puede hacer menor que "=2 de tal manera que jxn .t/ x.t/j < " para n > N .
Queda por probar que la función x es continua y que la sucesión fxn g converge a x de acuerdo con la norma de C Œ0; 1.
Para probar la continuidad de x, fijamos " > 0. Para todo ı, t y m,
jx.t C ı/ x.t/j jx.t C ı/ xn .t C ı/j C jxn .t C ı/ xn .t/j C jxn .t/ x.t/j:
A.2 Espacios vectoriales j 527
Como fxn g converge uniformemente a x, n se puede escoger de tal manera que los términos primero y último de esta
expresión se hagan menores que "=3 para todo ı. Como xn es continua, se puede escoger un ı que haga el segundo
término menor que "=3. Como consecuencia de ello, x es continua. La convergencia de xn a x en C Œ0; 1 se desprende
directamente de la convergencia uniforme.
Es bastante instructivo conciliar la completitud de C Œ0; 1 con el ejemplo A.10 en el que la sucesión de funciones era
de Cauchy pero no convergente con respecto a la norma que allí se definía. La diferencia es que, con respecto a la norma
de C Œ0; 1, la sucesión del ejemplo A.10 no es de Cauchy.
Los espacios `p , 1 p 1 y Lp , 1 p 1, son espacios de Banach.
Definición A.31 Sea E un espacio vectorial sobre un cuerpo K (R o C); una forma sesquilineal —vez y media
lineal— sobre E es una aplicación hji W E E ! K que verifica (la barra designa complejo conjugado):
1) h˛u C ˇvjwi D ˛hujwi C ˇhvjwi y
2) huj˛v C ˇwi D ˛hujvi C ˇhujwi;
cualesquiera que sean u, v, w en E y ˛; ˇ en K . Si además se cumple que hujvi D hvjui, la forma se denomina
hermítica. Es claro que hujui es siempre un número real. Cuando se cumple que
u ¤ 0 H) hujui > 0 ;
se dice que la forma es definida positiva, denominándosela también producto escalar o producto interior. Una forma
sesquilineal sobre R es siempre una forma bilineal.
Hilbert
K , dotado de una forma hermítica definida positiva. Todo espacio prehilbertiano es un espacio normado mediante
p
kvk D hvjvi :
En la demostración de que esta definición corresponde a la de una norma en E juega un papel importante la desigualdad
de Cauchy-Schwarz —por Augustin Louis Cauchy y Karl Hermann Amandus Schwarz, Prusia 1843-Alemania 1921—,
que tiene por expresión ˇ ˇ
ˇ ˇ
ˇhujviˇ kuk kvk :
Schwarz
Sean E y F dos espacios prehilbertianos sobre el cuerpo K ; si f W E ! F es una aplicación lineal, la aplicación
traspuesta de f es la aplicación f W F ! E que cumple
hxjf .y/i D hf .x/jyi ;
528 j Apéndice A
cualesquiera que sean los vectores x 2 E e y 2 F . Particularmente importante es el caso en que E D F : f se dice
entonces que es el operador adjunto de f . Cuando un operador f de E cumple que f D f se denomina operador
autoadjunto. En el caso de que E sea un espacio vectorial real, también se dice que f es un operador simétrico y cuando
es un espacio vectorial complejo, que f es un operador hermítico. Un operador simétrico cumple que
hxjf .y/i D hf .x/jyi;
mientras que uno hermítico, que
hxjf .y/i D hf .x/jyi:
Un operador f de E es unitario cuando es invertible y su inverso coincide con su adjunto. Es decir, si f D f 1
.
Para un operador unitario se tiene que
hf .x/jf .y/i D hf .f .x//jyi D hxjyi ;
de manera que kf .x/k D kxk. Por este motivo a los operadores unitarios también se les denomina operadores isomé-
tricos.
Definición A.32 Un espacio
p de Hilbert es un espacio prehilbertiano completo respecto de la norma asociada al
producto escalar k k D h; i . Dicho de otra forma, un espacio prehilbertiano que con esta norma da un espacio de
Banach. Todo espacio de Hilbert es un espacio de Banach, pero el recíproco no es cierto.
El espacio euclídeo n-dimensional, expresado Rn o En , es un espacio de Hilbert de dimensión finita. Visto así, un
espacio de Hilbert sería la generalización de un espacio euclídeo, incluida la dimensión infinita. El producto escalar en
un espacio euclídeo es una forma bilineal. En particular, dados dos vectores en R2 de la forma u D Œa; bT y v D Œc; d T ,
su producto escalar viene dado por hu; vi D ac C bd . que se puede verificar que es una forma bilineal.
Dos vectores cuyo producto escalar es cero se denominan ortogonales; si sus k k2 son la unidad se denominan
ortonormales. Para dos vectores ortogonales se tiene la identidad
ku C vk2 D kuk2 C kvk2 ;
que es una generalización del teorema de Pitágoras. En un espacio prehilbertiano el único vector ortogonal a todos los
vectores del espacio es el vector nulo; si este espacio es de dimensión finita es posible construir una base ortonormalizada.
En un espacio euclídeo n-dimensional el ángulo entre dos vectores x e y es
T
x y
D arc cos ;
kxkkyk
donde
xT y
D
kxkkyk
cumple que 1 1, para cualesquiera x e y.
Dos vectores son ortogonales si x T y D 0 ( D =2; D 0); alineados, si x T y D kxkkyk ( D 0; D 1); opuestos,
si x T y D kxkkyk ( D ; D 1). Forman un ángulo agudo si x T y > 0 ( < =2; > 0) y un ángulo obtuso si
x T y < 0 ( > =2; < 0).
Una familia cualquiera de vectores distintos del nulo y ortogonales dos a dos es una familia libre. Si M es un subes-
pacio de un espacio prehilbertiano E de dimensión finita, el subespacio ortogonal de M , M ? , es el subespacio formado
por todos los vectores ortogonales a los de M , siendo un subespacio suplementario de M ; es decir M ˚ M ? D E.
Cualquier x 2 E, por consiguiente, se puede expresar como x D a C b, con a 2 M y b 2 M ? .
Teorema A.9 Sea H un espacio de Hilbert y M un subespacio cerrado de H . Para todo vector x 2 H existe un único
vector m0 2 M tal que kx m0 k2 kx mk2 , para todo m 2 M . La condición necesaria y suficiente además para
que m0 2 M sea el vector mínimo único es que x m0 sea ortogonal a M .
Demostración. Primero probaremos que si m0 es un vector que minimiza kx mk, x m0 es ortogonal a M . Supon-
gamos para ello, por el contrario, que existe un m que no es ortogonal a x m0 ; sin pérdida de generalidad podemos
suponer que kmk D 1 y que hx m0 jmi D ı ¤ 0. Definamos el vector m1 2 M como m1 D m0 C ım. Tendremos
que
kx m1 k22 D kx m0 ımk22
D kx m0 k22 hx m0 jımi hımjx m0 i C jıj2
D kx m0 k22 jıj2 < kx m0 k22 :
Para todo i; j , el vector .m.i/ C m.j / /=2 está en M pues éste es un espacio vectorial (lineal). De la definición de ı se
deduce que kx .m.i/ C m.j / /=2k2 ı, por lo que
2
2
2
.j /
m m.i/
2
m.j / x
C 2
x m.i/
4ı 2 :
2 2 2
Como km.i/ xk22 ! ı 2 cuando i ! 1, km.j / m.i/ k22 ! 0 cuando i; j ! 1. Es decir, fm.i/ g es una sucesión de
Cauchy; como M es un subespacio cerrado, la sucesión fm.i/ g tiene un límite m0 en M y, debido a la continuidad de la
norma, kx m0 k2 ! ı.
El teorema de la proyección pone en evidencia que la solución del problema
minimizar ktx yk
t
Proposición 8.5 (Condiciones suficientes de segundo orden) Sea f 2 C 2 una función definida en
x interior. Supóngase además que:
una región en la cual x es un punto
tx .x / D 0:
rf
La matriz Hessiana r 2 f .x / es definida positiva:
y
x es entonces un mínimo relativo estricto de f .
0
9Figura
Conjuntos convexos
A.7: Solución de minimizar t ktx yk
8 Conjuntos convexos
Un conjunto C Rn se dice convexo si y sólo si para todo par de puntos x1 ; x2 2 C todas las
Un conjunto C R se dice convexo si y sólo si para todo par de puntos x1 ; x2 2 C todas las
n
supuesto ese límite existe.
Vectors Una función
combinaciones
f que es derivable
combinaciones
de la forma x de la 1formaen un
D x
C .1 x /x
punto x D
1 C0.1 /x a ,es
concontinua
0 en
C .Esdecir,
1, a.
1-20estánLa
en derivada
C escuando
. Es decir, una para
D x 2 , con 1,2están en cuando para
medida de la rapidez, o tasa (gradiente), conpar
cada
cada par de puntos la de
del que cambia
puntos
conjunto el todos
valorlos
del conjunto
convexo, depuntos
dichade
convexo, función
todos según
los puntos
la recta que decambie
los une laestán
recta el
enque valor deestán
los une
el conjunto. su variable
en el conjunto.
independiente.
Por otro lado, si f W C ! C, se define la integral definida de esta función en el intervalo Œa; b,
l b
I.f / D f .x/ dx;
a
Conjunto convexo Conjunto no convexo
como el límite de las sumas de Riemann —por Georg Friedrich Bernhard Riemann, Alemania 1826-1866—
La expresión x D x1 C .1 /x2 , 0 1, define la combinación convexa de x1 y x2 . Si
0 < < 1, es decir 2 .0; 1/,xla D
La expresión combinación
x1 C .1se denomina
/x2 , 0 estrictamente
1, defineconvexa.
la combinación convexa de x1 y x2 . Si
El concepto
0<de combinación
< 1, es decirconvexa se 1/,
2 .0; puede generalizar a cualquier
la combinación número
se denomina finito de puntos
estrictamente de
convexa.
la siguiente manera:
Riemann
Xp
25
xD i xi ;
iD1
donde
p
X
i D 1; i 0; i D 1; : : : ; p:
P
Rn D niD1 .xiC1 xi /f .ti /; x1 D a; xnC1 D b; xi ti xi C1 ; cuando la partición en subintervalos nse hace muy
i D1
Lebesgue
Esta definición requiere la introducción de la integral de Lebesgue que extiende el concepto de integral de Riemann a
clases o familias de funciones más amplias —por ejemplo, sucesiones de funciones, definidas en espacios más abstractos
que R o Rn , con más discontinuidades, etc.— y donde, en general, se pueda saber cómo y cuándo es posible tomar límites
bajo el signo de la integral. La forma tradicional de explicitar gráficamente cómo se obtiene la integral de Riemann frente
a la de Lebesgue se ve en la figura A.8. En pocas palabras, la diferencia entre ambas integrales es que para la integral de
Riemann interesan los valores que toma la función que está siendo integrada, mientras que en la integral de Lebesgue
importa más el tamaño de subconjuntos en el dominio del integrando.
También habría que definir el concepto de métrica, tamaño o medida de Lebesgue —una forma sistemática de asignar
un número (no negativo) a cada subconjunto de un conjunto— y el espacio de Lebesgue.
A.2 Espacios vectoriales j 531
R R
Simplificadamente, si f .x/ dx es la integral de Lebesgue de f .x/ y se define la norma kf kLp ./ D . f p dx/1=p ,
para 1 p < 1, los espacios de Lebesgue son
˚
Lp ./ D f .x/ W kf kLp ./ < 1 :
El requerir que las funciones sean integrables no supone ninguna limitación importante en la práctica ingenieril o cien-
tífica pues como hemos aprendido durante mucho tiempo toda función “continua a trozos”, es decir con a lo sumo una
cantidad finita o numerable de discontinuidades, es integrable. El 99,99 % de las funciones que se utilizan en ingeniería,
economía y ciencias sociales en general son integrables. R
El espacio vectorial L2 ./ dotado del producto interior hf; gi D f .x/g.x/dx es un espacio de Hilbert.
En el espacio C Œ0; 1 de funciones continuas del intervalo Œ0; 1 en C, son normas las dadas por
"Z #1=p
1
kf kp D jf .t/jp dt :
0
Insistimos en la idea de que la norma k k2 es la norma euclídea en Rn , sustituyendo el sumatorio por una integral
(recordemos que esta es la forma de pasar de lo discreto a lo continuo). Esto hace que los espacios de Lebesgue L2 sean
“buenos” y se caractericen porque son los únicos espacios vectoriales infinito dimensionales en los que siguen siendo
válidos muchos de los aspectos de nuestra intuición espacial y geométrica habitual.
Desde el punto de vista físico, cuando f .t/ represente algún tipo de “señal”, la norma kf k2 representará su energía,
por lo que la condición f 2 L2 se interpretará como que la energía de f sea finita. En concreto, si f .t/ representa la
tensión —voltage– de una onda electromagnética como función del tiempo, f 2 .t/ es, salvo producto por una constante,
Rb
su potencia, por lo que a f 2 .t/ dt será la energía de la onda en el intervalo temporal Œa; b. Pedir que f pertenezca
a L2 Œa; b equivale a pedir que f no sea demasiado discontinua (sea integrable en algún sentido) y que su energía sea
finita en Œa; b.
Los espacios de funciones Lp .Œ0; 1/, p > 1, con la norma
Z 1 1=p
kxk D jx.t/jp dt ; donde x.t/ 2 L2 .Œ0; 1/;
0
son también espacios normados. Casos particulares son L1 .Œa; b/ de funciones cuyo valor absoluto es integrable en
Œa; b y L2 .Œa; b/ de funciones al cuadrado integrables en Œa; b.
En particular, el conjunto de todas las funciones tales que
Z
f 2 .x/ dx < 1
Definición A.34 Un espacio de Sobolev es un espacio vectorial de funciones dotado de una norma que es combinación
de normas Lp de la función y de sus derivadas hasta un orden dado. Formalmente para dos dimensiones es
ˇ
ˇ @u @u
W 1;2 ./ D u 2 L2 ./ ˇˇ ; 2 L2 ./ :
@x1 @x2
El número 1 se refiere al orden de las derivadas parciales y el 2 que las mismas deben pertenecer a L2 ./.
Fue formulado en los trabajos de por Sergéi Lvóvich Sobolév, Rusia 1908-1989.
Sobolev
Las funciones que pertenecen a W 1;2 ./ no tienen que ser derivables en todos los puntos; es suficiente que sean
continuas con derivadas parciales continuas por tramos en el dominio de definición y que satisfagan las condiciones
apuntadas. Esto se explicita en que las derivadas de este espacio se entienden en un sentido débil que hagan que el
espacio sea completo —si toda sucesión de Cauchy en él tiene límite— y por lo tanto sea un espacio de Banach. En
sentido débil no es sino una generalización del concepto de derivada a funciones no necesariamente derivables pero si
integrables localmente en el sentido de Lebesgue en un dominio dado de Lp ./.
La norma correspondiente de este espacio completo es
Z Z 1=2 Z ˇ ˇ Z ˇ ˇ Z !1=2
ˇ @u ˇ2 ˇ @u ˇ2
kukW 1;2 ./D 2
jruj C juj2
D ˇ ˇC ˇ ˇ C juj 2
;
ˇ ˇ ˇ ˇ
@x1 @x2
denominada en ingeniería norma de energía. Las funciones que usan esta forma finita son funciones de energía finita.
Intuitivamente, un espacio de Sobolev es un espacio de funciones con derivadas de orden suficiente para un dominio de
aplicación determinado y equipado con una norma que mida adecuadamente tamaño y regularidad en las funciones.
El producto escalar (producto interior) en un espacio de Sobolev W 1;2 ./ es
Z Z
u v D hujvi D uv dx C ru rv dx:
A.3 Matrices
Definición A.35 Una matriz es una formación rectangular de numeros reales o complejos ordenados en m filas y n
columnas 2 3
a11 a12 a1n
6 a21 a22 a2n 7
6 : :: : : :: 7 :
4 :: : : : 5
am1 am2 amn
El conjunto de todas las matrices de números reales o complejos se designa, respectivamente, Rmn y Cmn . Si m D n
la matriz es cuadrada y de orden n. Un vector columna es también una matriz Rm1 , que se escribe Rm .
Las matrices de m filas y n columnas con coeficientes en el cuerpo R o C forman un espacio vectorial, Rmn o Cmn ,
sobre dichos cuerpos.
A.3 Matrices j 533
Todo lo que sigue en esta sección es material bastante estándar en libros de texto y monografías al respecto. En el
apartado de referencias hay un buen número de ellas sobre matrices y álgebra matricial.
El primero en usar el término matriz en matemáticas fue James Joseph Sylvester, Reino Unido 1814-1897. Arthur
Cayley, Reino Unido 1821-1895, contribuyó de forma decisiva a que A D .aij / se concibiese como una cantidad
algebraica única.
Silvester Cayley
Si en álgebra lineal E y F son dos espacios vectoriales de dimensiones finitas n y m sobre el mismo cuerpo K. Una
aplicación lineal g W E ! F , g 2 L.E; F /, está caracterizada o representada en dos bases fe1 ; e2 ; : : : ; en g de E y
ff1 ; f2 ; : : : ; fm g de F por una tabla de coeficientes, matriz asociada, de m filas y n columnas:
2 3
a11 a1n
: :
A D 4 :: : : : :: 5 2 K mn :
am1 amn
donde ai es el vector columna i -ésimo de la matriz A. Así pues, si se fijan dos bases en E y F , cada aplicación
lineal, g W E ! F , queda unívocamente representada por una matriz. Recíprocamente, toda matriz en K mn define
unívocamente una aplicación lineal entre dos espacios E y F de dimensiones n y m en los que se han fijado dos bases.
En particular, se pueden identificar las matrices m n con las aplicaciones lineales de K n en K m .
Las matrices de m filas y n columnas con coeficientes en el cuerpo K forman un espacio vectorial, K mn , sobre dicho
cuerpo K.
Si E y F son dos espacios de dimensión finita dotados de un producto escalar y la aplicación ˛ 2 L.E; F / se
representa en dos bases ortonormalizadas mediante una matriz A, la aplicación ˛ T 2 L.F; E/, traspuesta de ˛, viene
representada por la matriz A T , traspuesta de A.
534 j Apéndice A
Definición A.36 El núcleo y la imagen de una matriz A 2 K mn , ker.A/ y Im.A/, respectivamente, se definen como
los subespacios de K n y K m que son el núcleo y la imagen de la aplicación lineal asociada:
%
ker.A/ D fx 2 K n W Ax D 0g
:
Im.A/ D fy 2 K m W y D Ax; x 2 K n g A2K mn
Dicho de otra forma, la imagen de una matriz es el subespacio generado por los vectores columna de la matriz; los
vectores fila también generan un subespacio que no es otro que la imagen de A T .
Para una matriz A 2 Rmn se cumple que:
ker A T D .Im.A//?
Im A T D .ker.A//?
?
ker.A/ D Im A T
?
Im.A/ D ker A T :
De acuerdo con esto, si A 2 Rmn , se cumple que ,QQHU 3URGXFW /HQJWK DQG 2UWKRJRQDOLW\
T
ker .A/ ˚
7KH QH[W WKHRUHP DQG ([HUFLVH Im A
YHULI\ D RnPDGH
WKH FODLPV : LQ 6HFWLRQ FRQFHUQLQJ
WKH VXEVSDFHV VKRZQ LQ )LJ $OVR VHH ([HUFLVH LQ 6HFWLRQ
En la figura A.9 se muestran estos subespacios.
0 Ke T 0
rA rA
Ke
T Im
A A
Im
Definición A.37 El rango de una matriz es la dimensión (máximo número de vectores linealmente independientes) de
5 ) &su0subespacio
3 & . imagen:
/HW A EH DQ m n PDWUL[ 7KH RUWKRJRQDO FRPSOHPHQW RI WKH URZ VSDFH RI A LV
WKH QXOO VSDFH RI A DQG WKHrango.A/ dim.Im.A//:RI WKH FROXPQ VSDFH RI A LV
D FRPSOHPHQW
RUWKRJRQDO
QXOO VSDFH RI AT
WKHmn
Una matriz A 2 K se dice de rango completo si rango.A/ D mKın.m; n/. Una matriz cuadrada A 2 K nn se
denomina singular si rango.A/ <.n;5RZ A/? Dsi 1XO
regular rango.A/
A DQG A/? D
También
D n..&RO se1XO AT que rango.A/ D rango.A T /.
cumple
La aplicación asociada a una matriz A 2 Rmn es suprayectiva cuando rango.A/ D m. Para una matriz A 2 K mn
se cumple que 1300' 7KH URZ²FROXPQ UXOH IRU FRPSXWLQJ A[ VKRZV WKDW LI [ LV LQ 1XO A WKHQ [ LV
RUWKRJRQDO WR HDFK URZ RI Adim.ker.A// C rango.A/
ZLWK WKH URZV WUHDWHG DVDYHFWRUV
n; LQ Rn / 6LQFH WKH URZV
RI A VSDQ WKH URZ VSDFH [ LV RUWKRJRQDO WR 5RZ A &RQYHUVHO\ LI [ LV RUWKRJRQDO WR
o, alternativamente,
5RZdim.ker.A// D n rango.A/.
A WKHQ [ LV FHUWDLQO\ RUWKRJRQDOLa WRaplicación
HDFK URZ RI lineal
A DQG asociada
KHQFH Aa [ADes, por tanto,
7KLV inyectiva, si y sólo
SURYHV
T T
si rango.A/ D n.WKHPor otro
ÀUVW lado dim.ker.A
VWDWHPHQW // C rango.A
RI WKH WKHRUHP /D
6LQFH WKLV m.
VWDWHPHQW LV WUXH IRU DQ\ PDWUL[ LW LV WUXH
IRU AT 7KDW LV WKH RUWKRJRQDO FRPSOHPHQW RI WKH URZ VSDFH RI AT LV WKH QXOO VSDFH RI
Definición A.38 TEl producto exterior uvT de un vector columna n T 1 por un vector fila 1 n es una matriz A nn
A 7KLV SURYHV WKH VHFRQG VWDWHPHQW EHFDXVH 5RZ A D &RO A
de rango 1, 2 3
u1 v1 u1 v2 u1 vn
6u2 v1 u2 v2 u2 vn 7
6 7
2 A D 3uvT D 6 :: :: 7 :
$QJOHV LQ R DQG R 2SWLRQDO 4 : : 5
u v u v2 un vn
,I X DQG Y DUH QRQ]HUR YHFWRUV LQ HLWKHU R2nRU1R3n WKHQ WKHUH LV D QLFH FRQQHFWLRQ EHWZHHQ
WKHLU LQQHU SURGXFW DQG WKH DQJOH # EHWZHHQ WKH WZR OLQH VHJPHQWV IURP WKH RULJLQ WR WKH
SRLQWV LGHQWLÀHG ZLWK X DQG Y 7KH IRUPXOD LV
7R YHULI\ WKLV IRUPXOD IRU YHFWRUV LQ R2 FRQVLGHU WKH WULDQJOH VKRZQ LQ )LJ ZLWK VLGHV
RI OHQJWKV kXk kYk DQG kX Yk %\ WKH ODZ RI FRVLQHV
2 2 2
A.3 Matrices j 535
Existen normas sobre el espacio Rmn que no son normas matriciales pues no cumplen la propiedad 4). Así, si se
define
kAk D mKax jaij j ;
1i;j n
1 1
se satisfacen 1), 2) y 3); sin embargo, tomando A D b D 11 es fácil ver que kABk D 2 > kAk kBk D 1, por lo
que no se cumple 4).
Definición A.40 La norma de Frobenius es la dada por
X
kAk2F D 2
aij D traza.A T A/;
1i;j n
Pn
donde la traza de una matriz A de orden n es iD1 ai i . Esta norma cumple que kABkF kAkF kBkF .
Toma su nombre de Ferdinand Georg Frobenius, Alemania 1849-1917.
Frobenius
para A mn y B mn , que configura al espacio de las matrices m n como un espacio prehilbertiano. El producto escalar
en el espacio Sn de las matrices simétricas n n está dado por
n X
X n n
X X
hX jY i D traza.X Y / D xij yij D ai i bi i C 2 aij bij :
iD1 j D1 i D1 i <j
Definición A.41 Una norma matricial k k sobre Rmn se dice consistente o compatible con una norma vectorial k k0
sobre Rn cuando para cada matriz A y cada vector x se cumple que
kAxk0 kAk kxk0 :
Se demuestra que para toda norma matricial es posible construir una norma vectorial consistente. Recíprocamente, a
toda norma vectorial sobre Rn se le puede asociar una norma matricial consistente. Una norma matricial consistente con
una cierta norma vectorial k k se construye mediante la definición
kAxk
kAk D sup :
0 ¤x2Rn
kxk
Ejemplo A.13 El efecto que produce aplicar la transformación lineal basada en la matriz
12
AD
02
sobre la bola unidad, explicado a partir de las normas k k1 , k k2 y k k1 en R2 , se representa en la figura A.10.
La aplicación transforma el vector e1 D Œ1; 0T en sí mismo y e2 D Œ0; 1T en Œ2; 2T . Con la norma 1, el vector
unitario que más se amplifica al aplicarle la transformación es Œ0; 1T (o Œ0; 1T ), que pasa a ser Œ2; 2T . Su factor de
amplificación, en términos de la norma 1, es 4.
Con la norma 2, el vector unitario que más se amplifica es el que se representa en la figura con una recta discontinua. El
factor de amplificación es 2,9208.
Para la norma 1, igualmente, el vector unitario que más se amplifica es el que se representa también con la recta
discontinua: Œ1; 1T , que pasa a transformarse en Œ3; 2T . El factor de amplificación correspondiente es en este caso 3 ya
que
Œ1; 1T
D 1
1
Œ3; 2T
D 3:
1
Además de las normas vectoriales y matriciales ya presentadas, otra norma vectorial muy utilizada es
p p
kxkA D
A 1=2 x
D hAxjxi D x T Ax;
2
denominada norma A o norma de energía —pues suele corresponder con la energía física de ciertos sistemas— del
vector x, para una matriz A simétrica y definida positiva. Al resultado de hxjyiA D hAxjyi se le denomina producto
interior de A o producto escalar de energía. La matriz A 1=2 es la única matriz definida positiva solución de la ecuación
matricial X 2 D X X D A.
A.3 Matrices j 537
[2, 2]T
[0, 1]T
A1 = 4
[1, 0]T
norma
norma11
[1, 0]T
A2 ≈ 2,9208
norma
norma22
A∞ = 3
norma1
norma ∞
Definición A.43 Una Q 2 Rmn es una matriz ortogonal si verifica que QT Q D I; es decir, cuando sus vectores
d e f g 9 4 6 5
columna son ortogonales dos a dos y de norma euclídea unitaria (ortonormales). Si Q 2 Rnn es ortogonal, se cumple
h i j 10 8 7
que QQT D QT Q D I.
Una matriz ortogonal no modifica ni los ángulos ni las normas de los vectores a los que se aplica la transformación
que representan: .Qx/T .Qy/ D x T QT Qy D x T y. Si y D x, jjQxjj2 D jjxjj2 .
Las matrices ortogonales Q 2 Rmn verifican:
9 9
kQk2 D1 > kQk2 D1 >
>
= >
=
kQkF D n1=2 kQkF D m1=2
si m n y si m n:
kQAk2 D kAk2 >
> kAQk2 D kAk2 >
>
; kAQkF D kAkF ;
kQAkF D kAkF
La extensión de las matrices ortogonales al campo complejo son las matrices unitarias.
Definición A.44 Una matriz U 2 Cnn , cuya inversa es su compleja conjugada, U H U D U U H D I, es una matriz
unitaria
Todos los valores propios de las matrices unitarias tienen módulo unidad. Como las ortogonales, una matriz unitaria
no modifica ni los ángulos ni las normas, .U x/H .U y/ D x H U H U y D x H y. Si y D x, jjU xjj2 D jjxjj2 .
Definición A.45 Una matriz de permutación es una matriz cuadrada cuyas columnas están formadas por las de la
matriz unidad permutadas. Una matriz de permutación es una matriz ortogonal.
Definición A.46 Una matriz se dice simétrica si se verifica que A D A T . Para una matriz cualquiera A 2 Rmn ,
la matriz A T A es simétrica. Si A 2 Cnn es igual a su traspuesta conjugada, A D B D A H , bij D aNj i , se dice
hermítica. El conjunto de las matrices simétricas n n se designa mediante Sn .
Definición A.47 Una matriz A 2 Rnn se dice definida positiva si es simétrica y x T Ax > 0 para todo vector x ¤ 0.
Se designa como A 0. De forma similar se definen matrices semidefinida positiva, A 0, definida negativa,
A 0 y semidefinida negativa, A 0, si x T Ax 0, < 0 y 0, respectivamente, para todo vector x ¤ 0. La
538 j Apéndice A
Lema A.10 Para que una matriz simétrica sea definida positiva es necesario que todos los coeficientes de la diagonal
principal sean positivos.
Lema A.11 Para que una matriz simétrica A sea definida positiva es necesario que el coeficiente de mayor valor
absoluto esté en la diagonal principal. Más concretamente, mKaxi ¤j jaij j < mKaxk akk :
Lema A.12 Si en cada fila de una matriz simétrica A el coeficiente de la diagonal principal es mayor que la suma de
los valores absolutos de todos los demás coeficientes de la fila, es decir, si
Xn
akk > jakj j k D 1; : : : ; n;
j D1
j ¤k
A es definida positiva.
Es importante
h 3 2 2 i destacar que este último criterio define una condición suficiente, no necesaria. En efecto, la matriz
Q D 2 3 2 es definida positiva pues x T Qx D x12 C x22 C x32 C 2.x1 C x2 C x3 /2 , cualquiera que sea x ¤ 0, es
223
siempre positiva. Esa matriz, sin embargo, no satisface el lema A.3.2.
Definición A.49 Una matriz de Vandermonde es una matriz que presenta una progresión geométrica en cada fila;
como esta: 2 3
1 ˛1 ˛12 : : : ˛1n 1
6 1 ˛2 ˛ 2 : : : ˛ n 1 7
6 2 2 7
V D6: : : : : 7:
:
4: : :: : : : :: 5
1 ˛n ˛n2 : : : ˛nn 1
El primero que formuló esta matriz fue Hermann Hankel, Alemania 1839-1873.
Hankel
4.3 ValoresHessenberg
propios, valores singulares y formas cuadráticas
4.3.1 Valores propios
Si A es una matriz cuadrada de orden n y coeficientes en K (R o C), un vector no nulo u 2 Kn se denomina
vector propio de A si para algún 2 K se cumple que
Au D u :
A este se le denomina valor propio o autovalor de la matriz A. El conjunto de los valores propios de una ma-
Cualquier matriz se puede reducir a la forma de Hessenberg mediante transformaciones ortogonales de Householder
triz A se denomina espectro de A, designándose por ƒ.A/. El radio espectral, .A/, se define de la siguiente
manera:
o Givens. Si la matriz original es simétrica, al reducirla a la forma de Hessenberg se1in
obtendrá una tridiagonal. .A/ D mKax ji j:
Para que un número sea valor propio de A, el sistema lineal y homogéneo de ecuaciones dado por .I
Definición A.52 Se denomina proyector o matriz A/x de Dproyección a una
0 debe tener soluciones matriz
distintas P x2D R
de la trivial
nn
que averifica
0. Esto equivale que que P 2 D P.
Si P además es simétrica, se denomina proyector ortogonal o matriz de proyección det.A I/ D 0ortogonal.
: Si, en este último
caso, F es el subespacio imagen de la matriz P (el Esta
mismo que elpolinómica
es una ecuación de la matriz
de grado n enPTque), sePx define
denomina la característica,
ecuación proyección ortogonal
o polinomio carac-
terístico, de la matriz A. La ecuación característica admite la raíz D 0 si y sólo si det.A/ D 0. Una matriz es
del vector x sobre F . invertible, por tanto, si y sólo si no admite al cero como vector propio.
Para que exista una solución distinta de la trivial x D 0, el valor propio deberá ser raíz del polinomio
característico de grado n asociado a A, esto es det.A I/ D 0. Lo que es igual a n C g1 n 1 C g2 n 2 C
Definición A.53 Se denomina proyector suplementario de P al proyector S D I P. Si F D Im.P/ y G D ker.P/,
C gn D 0:
El Teorema fundamental del álgebra establece que cada ecuación polinómica de grado n, con coeficientes
entonces F D ker.S / y G D Im.S /. complejos, tiene n raíces en el cuerpo de los complejos.
La multiplicidad algebraica del valor propio de A es la multiplicidad de la raíz correspondiente del polino-
n de es el número de ? vectores propios linealmente
En el caso de un proyector ortogonal P en el que F D Im.P/, se tiene que R D F ˚ F , verificándose que
mio característico asociado a A. La multiplicidad geométrica
independientes que se corresponden con . La multiplicidad geométrica de un valor propio es menor o igual
kPxk2 kxk2 y que que su multiplicidad algebraica.
Por ejemplo, si A D I, D 1 es un valor propio con multiplicidad algebraica y geométrica n. El polinomio
kx Pxk D mKın kx yk : 2característico de A es p.z/ D .z 1/n y ei 22 C n , i D 1; : : : ; n, sus vectores propios. Si el valor propio tiene
Im P y2
una multiplicidad . geométrica
/DF menor que la algebraica, se dice defectuoso. Se dice que una matriz es defectuosa
si tiene al menos un valor propio defectuoso. La matriz
2 3
Definición A.54 Si A es una matriz cuadrada de orden n y coeficientes en K (R o C), un vector no nulo u 2 K n se
denomina vector propio de A si para algún 2 K se cumple que
Au D u :
A este se le denomina valor propio o autovalor de la matriz A. El conjunto de los valores propios de una matriz A
se denomina espectro de A, designándose por ƒ.A/. El radio espectral, .A/, se define de la siguiente manera:
.A/ D mKax ji j:
1in
540 j Apéndice A
Para que un número sea valor propio de A, el sistema lineal y homogéneo de ecuaciones dado por .I A/x D 0
debe tener soluciones distintas de la trivial x D 0. Esto equivale a que
det.A I/ D 0 :
Esta es una ecuación polinómica de grado n en que se denomina ecuación característica, o polinomio característico,
de la matriz A. La ecuación característica admite la raíz D 0 si y sólo si det.A/ D 0. Una matriz es invertible, por
tanto, si y sólo si no admite al cero como vector propio.
Para que exista una solución distinta de la trivial x D 0, el valor propio deberá ser raíz del polinomio característico
de grado n asociado a A, esto es det.A I/ D 0. Lo que es igual a n C g1 n 1 C g2 n 2 C C gn D 0:
El Teorema fundamental del álgebra establece que cada ecuación polinómica de grado n, con coeficientes complejos,
tiene n raíces en el cuerpo de los complejos.
La multiplicidad algebraica del valor propio de A es la multiplicidad de la raíz correspondiente del polinomio
característico asociado a A. La multiplicidad geométrica de es el número de vectores propios linealmente indepen-
dientes que se corresponden con . La multiplicidad geométrica de un valor propio es menor o igual que su multiplicidad
algebraica.
Por ejemplo, si A D I, D 1 es un valor propio con multiplicidad algebraica y geométrica n. El polinomio caracterís-
tico de A es p.z/ D .z 1/n y ei 2 Cn , i D 1; : : : ; n, sus vectores propios. Si el valor propio tiene una multiplicidad
geométrica menor que la algebraica,
h 2 1 0 ise dice defectuoso. Se dice que una matriz es defectuosa si tiene al menos un valor
propio defectuoso. La matriz 0 2 1 tiene un valor propio, 2, de multiplicidad algebraica 3 y multiplicidad geométrica
002
1; u D Œ100T . Si una matriz A 2 Cnn no es defectuosa, dispone de un conjunto de n vectores propios linealmente
independientes.
Un resultado interesante debido a dos matemáticos del siglo XIX, Arthur Cayley, Reino Unido 1821-2895, y William
Rowan Hamilton, Irlanda 1805-1865,
Hamilton
dice que cualquier matriz A 2 Cnn satisface su propia ecuación característica. Es decir,
A n C g1 A n 1
C g2 A n 2
C C gn I D 0:
Si A es invertible, como consecuencia de ello,
1 1 n 1 g1 n 2 gn 1
A D A A I:
gn gn gn
A partir del teorema de Cayley-Hamilton también es fácil
comprobar que existe un polinomio p de grado máximo n 1
tal que A 1 D p.A/. Como ejemplo, la matriz 13 24 tiene como polinomio característico x 2 5x 2. El teorema de
Cayley-Hamilton dice que A 2 5A 2I D 0, lo cual se puede comprobar inmediatamente. La inversa de A se puede
obtener de esta ecuación a partir de A .A 5I/ D 2I. En efecto, A 1 D 12 .A 5I/.
Krylov
A.3 Matrices j 541
Igual que cualquier matriz tiene asociado un polinomio característico, cualquier polinomio tiene asociado una matriz
compañera.
Un polinomio a0 C a1 x C a2 x 2 C : : : C an x n se dice que es mónico si an D 1.
La matriz compañera de un polinomio mónico p.t/ D c0 C c1 t C C cn 1 t n 1 C t n es
2 3
0 0 ::: 0 c0
61 0 : : : 0 c1 7
C .p/ D 6
40:: 1:: :: :: : 0:: c2:7
: : : : ::5
0 0 ::: 1 cn 1
Los valores propios de esta matriz C .p/ son las raíces del polinomio p.t/. El polinomio mínimo q.t/ de una matriz A
es el polinomio mónico único de grado mínimo tal que q.A/ D 0.
Una matriz real de orden n no tiene necesariamente valores propios reales pero, como consecuencia del teorema
fundamental del álgebra, cualquier matriz compleja tiene al menos un valor propio complejo. Su número máximo de
valores propios es n.
Proposición A.13 Al aplicársele a cualquier vector la transformación que representa A ese vector tiende a orientarse
en la dirección del vector propio dominante de A. Si aquel vector está en la dirección de alguno de los vectores propios
de A, se expande o contrae por un factor que determina el correspondiente valor propio.
La matriz A D 21 12 tiene como valores propios 3 y 1. Los vectores propios asociados son Œ1 1T y Œ 1 1T . El efecto
de aplicarla sobre distintos vectores se puede ver en la figura A.11: en magenta y azul (en grises con mayor o menor
intensidad) los vectores propios; otros en rojo que si se orientan. 5
Geometric interpretation of Eigenvectors
2 1
Figura A.11: Efecto de aplicársele
(a) a diversos vectores la transformación que representa la matriz A D
(b) 12
Siendo un valor propio de una matriz el conjunto de soluciones 2 sistema
del 1
A,
Figure: Under the transformation matrix A = , thededirections
ecuaciones of
1 2
1 .I A/x D 0 1
vectors parallel to v1 = (blue) and v2 = (purple) are preserved.
1 −1
es un subespacio de K n que se denomina subespacio propio asociado al valor propio , designándose con E . Si n es
la multiplicidad de como raíz de la ecuación característica de A, se cumple que
5
diagram from wikipedia.org/wiki/Eigenvalues_and_eigenvectors
K. Bergen (ICME) dim.E / Applied
n : Linear Algebra 112 / 140
La intersección de subespacios propios correspondientes a valores propios distintos se reduce al subespacio nulo; esto
es ¤ H) E \ E D ;. L
De este modo, la suma de subespacios propios es directa. Se cumple que 2ƒ.A/ E D K n si y sólo si para cada
2 ƒ.A/, dim.E / D n ; en ese caso existe una base de K n formada toda ella por vectores propios de A.
542 j Apéndice A
Teorema A.14 Descomposición o triangularización de Schur. Para cualquier A 2 Cnn existe una matriz unitaria U
y una matriz triangular superior, T , tal que
AU D U T o U H AU D T :
Los valores propios de A son los coeficientes de la diagonal principal de R.
Este teorema es esencial para el estudio de los métodos y algoritmos numéricos para el cálculo y análisis de valores y
vectores propios. Debe su nombre a Issai Schur, Alemania 1875-1941.
Schur
Teorema A.15 Para cualquier matriz hermítica A 2 Cnn existe una matriz unitaria U tal que
U H AU D D;
donde D es una matriz diagonal. Además:
Los valores propios de A son números reales.
Se pueden obtener vectores propios de A que sean ortonormales.
En este caso se dice que la matriz A es semejante a una matriz diagonal: la matriz A es diagonalizable por semejanza.
Dos matrices semejantes tienen el mismo polinomio característico y los mismos valores propios. Una matriz A 2 Cnn
es normal, es decir AA H D A H A, si y sólo si A D U ƒU H , donde U es una matriz unitaria y ƒ una diagonal cuyos
coeficientes son los valores propios de A. Los vectores propios son los vectores columna de U .
Teorema A.16 Toda matriz real y simétrica tiene todos sus valores propios reales y es diagonalizable por semejanza.
Se demuestra además que los subespacios propios correspondientes a valores propios distintos son ortogonales. De
aquí se sigue que es siempre posible formar una base ortonormalizada de vectores propios para una matriz real y
simétrica A. Existe entonces una matriz ortogonal Q tal que verifica QT AQ D D, con QT D Q 1 y, de aquí que,
toda matriz real y simétrica es congruente ortogonal con su reducida diagonal.
Este resultado, fundamental de la teoría de matrices, es la versión para matrices simétricas del denominado Teorema
espectral. Da lugar a la Descomposición espectral de A.
Una matriz simétrica definida positiva tiene todos sus valores propios reales y positivos; si es semidefinida, alguno es
cero. Si la matriz es negativa definida, todos sus valores propios son negativos. Si A es hermítica, el producto x H Ax
es un número real. Los valores propios de una matriz hermítica, en consecuencia, son números reales. En una matriz
hermítica los vectores propios correspondientes a dos valores propios distintos son ortogonales entre sí.
Teorema A.17 Descomposición de Jordan. Para una matriz A 2 Cnn existe una matriz regular X 2 Cnn tal que
X 1 AX D diag.J 1 ; : : : ; J k /, donde
2 3
i 1
6 i 1 0 7
Ji D 6
4 7 2 Cni ni
5
0 1
i
y n1 C nk D n. Las J i son las matrices o bloques de Jordan y los i los valores propios de A.
Este resultado debe su nombre a Marie Ennemond Camille Jordan, Francia 1838-1922.
A.3 Matrices j 543
Jordan
Teorema A.18 De Gers̆gorin. Los valores propios de una matriz A 2 Cnn se encuentran en la unión de los n discos
de Gershgorin, cada uno de los cuales está centrado en akk , k D 1; : : : ; n, y tiene de radio
Xn
rk D jakj j:
j D1
j ¤k
Demostración. Sea un valor propio de A y x su vector propio asociado. De Ax D x y .I A/x D 0 se tiene que
n
X
. akk /xk D akj xj ; k D 1; : : : ; n;
j D1
j ¤k
Gers̆gorin
Teorema A.19 Sea A una matriz simétrica n n. Las siguientes propiedades de A son equivalentes.
A 0: A 0:
.A/ 0. .A/ > 0.
A D D T D para alguna D rectangular. A D D T D para alguna D rectangular de rango n.
A D T para alguna nn triangular superior. A D T para alguna nn trian. superior no degenerada.
A D B 2 para alguna B simétrica. A D B 2 para alguna B simétrica no degenerada.
2
A D B para alguna B 0. A D B 2 para alguna B 0.
La matriz A mn D U †V T , de rango r, se puede escribir como la suma de r matrices de rango uno así
r
X
AD i ui viT ;
iD1
donde are the four projected vectors corresponding to the original four data vectors. They are
shown in Figure 12.4(b).
† D diag.1 1 ; : : : ; r 1 ; 0; : : : ; 0/ 2 Rnm : ◭
1 1
Si A 2 Rmn es de rango completo y m > n, A D A T A A T ; si m < n, A D A T AA T .
12.4.3 Compression
mn
Para cualquier matriz A 24 R
Property
, la matriz A A es la matriz n n de proyección ortogonal sobre el subespacio de los
can also be used to compress the information in a matrix. Note that each term in
vectores fila de A, AA la m expansion
the rank-one m de proyección
of Propertyortogonal sobre
4 is specified by la imagen
using de la matriz
two vectors A (subespacio
ui , vi and one more de sus vectores
columna) y .I Anumber A/ la de
si . proyección
If A is an n ×ortogonal
n matrix,sobre el attempt
we can núcleo lossy
de A,compression
ker.A/. of A by throwing
away the terms at the end of the sum in Property 4, the ones with smaller si . Each term in
the expansion requires 2n + 1 numbers to store or transmit.
For example, if n = 8, the matrix is specified by 64 numbers, but we could transmit
or store the first term in the expansion by using only 2n + 1 = 17 numbers. If most of the
information is captured by the first term—for example, if the first singular value is much
larger than the rest—there may be a 75 percent savings in space by working this way.
As an example, return to the 8 × 8 pixel block shown in Figure 11.6. After subtracting
128 to center the pixel values around 0, the matrix is given in equation (11.16). The singular
546 j Apéndice A
la forma cuadrática asociada a Q es definida positiva si y sólo si todos los menores i son positivos. Otros gráficos de
Se pueden dar otros casos:
formas cuadráticas son estos los de la figura A.14. En
The(a) la matriz
Quadratic FormQ es definida positiva, en (b) definida
5 negativa, en
(a) (b)
x2
x1
Q.x/
(c) (d)
If
☎ is positive-definite as well, then by Inequality 2, the latter term is positive for all ✐❨❧
✞✹✆ . It follows that
✆ is a global minimum of .
❀
❀ ✆▼✶
☎ The fact that ✳ is a paraboloid is our best intuition of what it☎ means for a matrix to be positive-definite.
If is not positive-definite, there are several other possibilities. could be negative-definite — the result
☎
of negating a positive-definite matrix (see Figure 2, but hold it upside-down). might be singular, in which
case no solution is unique; the set of solutions is a line or hyperplane having a uniform value for . If
❀ ☎
✆
is none of the above, then is a saddle point, and techniques like Steepest Descent and CG will likely fail.
548 j Apéndice A
Esta condición debe su nombre a Rudolf Otto Sigismund Lipschitz, Alemania 1832-1903.
Lipschitz
Definición A.63 Dada una norma vectorial k k en Rn y otra matricial k k en Rmn , m; n > 0, una función
g W Rn ! Rmn se dice satisface la condición de Lipschitz con constante
en un abierto D Rn , si para todo x e y
pertenecientes a D se cumple que
kg.x/ g.y/k
kx yk:
Una función g que satisface la condición de Lipschitz en D se dice continua
-Lipschitz en ese D, designándose
g 2 Lip
.D/. Una vez más, si nos referimos a una función diciendo que es Lipschitz, o continua-Lipschitz, se está
diciendo que es algo más que continua, que no cambia radicalmente a lo largo de todas las direcciones posibles.
Un conjunto de funciones f1 ; f2 ; : : : ; fm de Rn en R se puede considerar como una función vectorial
f D Œf1 ; f2 ; : : : ; fm T :
Esta función asigna a todo vector x 2 Rn otro vector f .x/ D Œf1 .x/; f2 .x/; : : : ; fm .x/T de Rm . Tal función vectorial
se dice continua si lo es cada uno de sus componentes f1 ; f2 ; : : : ; fm .
Si cada una de las funciones de f D Œf1 ; f2 ; : : : ; fm T es continua en algún conjunto abierto de Rn , se dice f 2 C .
Si además cada función componente tiene derivadas parciales de primer orden continuas en ese abierto, se dice que
f 2 C 1 . En general, si las funciones componentes tienen derivadas parciales de orden p continuas, se indica f 2 C p .
Teorema A.21 Teorema de Weierstrass. Dada una función continua definida en un conjunto compacto C 2 Rn , existe
un punto donde alcanza un mínimo en C . Es decir, existe un x 2 C tal que para todo x 2 C , f .x/ f .x /.
También otro donde alcanza un máximo.
Volvemos a dos conceptos esenciales del cálculo: la derivada y la integral definida.
Si f W Rn ! Rm la aplicación Df .x/ es la matriz Jacobiana de la función, por Carl Gustav Jacob Jacobi, Ale-
mania (Prusia), 1804-1851,
2 3
@f1 .x/ @f1 .x/ @f1 .x/
6 @x1
6 @x2 @xn 7 7
6 @f2 .x/ @f2 .x/ @f2 .x/ 7
6 7
6 7
rf .x/ D J .x/ D 6 @x1 @x2 @xn 7 Jacobi
6 : : :: : 7
6 :: :: : :: 7
6 7
4 @fm .x/ @fm .x/ @fm .x/ 5
@x1 @x2 @xn
Este concepto de diferenciabilidad, que es el que se usa habitualmente, es debido a Maurice Fréchet, Francia 1878-
1973,
Fréchet
y da lugar a la derivada de Fréchet. Existe otro que conocemos como derivada direccional, o derivada de Gâteaux
—por René Eugène Gâteaux, Francia 1889-1914—
Gateaux
(muerto en la primera guerra mundial muy joven), que dice que la función f es diferenciable Gâteaux a lo largo de
cualquier vector h de Rn si existe la función
f .x C t h/ f .x/
g.h/ D lKım :
t!0 t
Si una función es Fréchet diferenciable en x es también Gâteaux diferenciable en ese punto. Lo contrario no siempre es
así. Esto es análogo al hecho de que la existencia de derivadas en todas las direcciones en un punto no garantiza la total
diferenciabilidad (e incluso la continuidad) en ese punto.
cuya gráfica es la de la figura A.16, es continua y diferenciable Gâteaux en el punto .0; 0/, con derivada
( 3
a
si .a; b/ ¤ .0; 0/
g.a; b/ D a2 Cb 2
0 si .a; b/ D .0; 0:/
cuya gráfica es la de la figura A.17, es diferenciable Gâteaux en el punto .0; 0/, con derivada g.a; b/ D 0 en todas las
direcciones. Sin embargo f no es continua en .0; 0/, lo que se puede ver acercándose al origen de coordenadas a lo largo
de la curva y D x 3 , por lo que f no puede ser diferenciable Fréchet en el origen.
Si se tiene la función escalar de varias variables f W Rn ! R, con derivadas parciales hasta segundo orden y f 2 C 2 ,
se define la matriz Hessiana de f en x —por Ludwig Otto Hesse, Alemania 1811-1874—
Hesse
como la matriz n n 2 3
@2 f .x/ @2 f .x/ @2 f .x/
6 @2 x1 @x1 @x2 @x1 @xn 7
6 7
6 @2 f .x/ @2 f .x/ @2 f .x/ 7
6 7
6 7
r 2 f .x/ D 6 @x2 @x1 @2 x2 @x2 @xn 7 :
6 :: :: :: :: 7
6 : : : : 7
6 7
4 @2 f .x/ 2
@ f .x/ @ f .x/ 5
2
@xn @x1 @xn @x2 @2 xn
A.4 Funciones, sucesiones y series de funciones j 551
f (x )f (z)
f (x 1) + g 1T (x − x 1)
f (x1 ) + g1T (z − x1 )
f (x 2) + g 2T (x − x 2)
f (x
f (x ) + gTT (z − x )
2 )2 + g 2 (x − x2 2 )
3
f (x2 ) + g3T (z − x2 )
x1 x2
Figura A.18: f g 2 , es
.x/ g3diferenciable en x1 . xSu
are subgradients at derivada,
x2; g1 isg1a, es el xúnico subgradiente.
subgradient at x1 En x2 la función no es diferenciable
1 2
pero tiene múltiples subgradientes, además de g2 y g3
Figure 1: At x , the convex function f is differentiable, and g1 (which is the
Prof. S. Boyd, EE364b, Stanford1University 2
derivative of f at x1 ) is the unique subgradient at x1 . At T
the point x2 , f is not
Geométricamente, g es un subgradiente
differentiable. de ff has
At this point, en xmany
si el vector Œg;two1subgradients,
subgradients: soporta glo2 and , denomina el epigrafo,
queg3se
epi.f /, de la función f are
(conjunto
shown. de puntos situados en o por encima de la función) en el punto .x; f .x//. Ver figu-
ra A.19
epi( f )
(g, −1)
Ejemplo A.16 La función valor absoluto, f .x/ D jxj. Para x < 0 el subgradiente es único: ²f .x/ D 1. Para x > 0,
Figure 3: The absolute value function (left), and its subdifferential ∂f (x) as a
igualmente, el subgradiente es único:
function ²f .x/ D 1. En x D 0 el subdiferencial está definido por la desigualdad jzj gz,
of x (right).
para todo z, lo que se satisface siempre y cuando g 2 Œ 1; 1. Es decir ²f .0/ D Œ 1; 1. Ver figura A.20.
2
(g, −1)
f (x) = |x| ∂f (x )
x
x
−1
Figura A.20:3:
Figure La The
función valor absoluto
absolute value yfunction
su subdiferencial
(left), and its en
²f .x/ función de x. Ejemplo
subdifferential A.4.1.1
∂f (x) as a
function of x (right).
A.4.2 Integral
2 de esta función en el intervalo Œa; b,
Definición A.68 Si f W C ! C, se define la integral definida
l b
I.f / D f .x/ dx;
a
Pn
como el límite de las sumas de Riemann Rn D i D1 .xi C1 xi /f .ti /; x1 D a; xnC1 D b; xi ti xi C1 ; cuando la
partición en subintervalos se hace muy fina.
La integración, proceso inverso a la derivación, se basa en la idea de sumar todas las partes constituyentes de un todo.
Teorema A.22 Teorema
Rx fundamental del cálculo. Supongamos f W R ! R una función continua en el intervalo Œa; b.
1. Si g.x/ D a f .t/ dt entonces g 0 .x/ D f .x/.
Rb
2. a f .x/ dx D F .b/ F .a/, donde F es la función primitiva de f , es decir, F 0 D f .
Ese límite es un número, como el de una sucesión numérica. Todas las funciones de la sucesión deben estar definidas en
el mismo intervalo, así como la función límite. El límite de una sucesión de funciones continuas no tiene por qué ser una
función continua. Lo mismo ocurre con la derivabilidad y la integrabilidad, que no se mantienen.
La idea detrás de la convergencia uniforme es trabajar en torno a la norma infinito o norma del supremo. Si fan g R
es una sucesión de números reales, decir lKımn!1 an D a es lo mismo que lKımn!1 an a D 0 o
lKım jan aj D 0:
n!1
Demostración. Sea x0 2 I . Puesto que sabemos por hipótesis que lKımn!1 supx2I f jfn .x/ f .x/jg D 0; y además
se sigue que lKımn!1 jfn .x0 / f .x0 /j D 0, lo que implica que lKımn!1 fn .x0 / D f .x0 /.
La implicación recíproca no es cierta. Una sucesión puede converger puntualmente y no hacerlo uniformemente.
Teorema A.24 Sea ffn g una sucesión de funciones fn W Œa; b ! R para cada n 2 N. Supongamos que ffn g converge
uniformemente a la función fn W Œa; b ! R. Entonces se tiene que:
1. Si fn es continua en Œa; b para cada n 2 N entonces f es continua.
2. Si fn es integrable en Œa; b para cada n 2 N entonces f es integrable.
Teorema A.25 Sea ffn g una sucesión de funciones fn W Œa; b ! R para cada n 2 N. Supongamos que para cada n 2
N, fn es derivable en Œa; b y sea fn0 su derivada. Supongamos además que la sucesión ffn0 g converge uniformemente
a una función g W Œa; b ! R y que existe x0 2 Œa; b tal que el lKımn fn .x0 / existe. Entonces existe f W Œa; b ! R
derivable en Œa; b tal que f 0 D g y tal que ffn g converge uniformemente a f .
Sentado el patrón para estudiar la convergencia uniforme se pueden estudiar otras forma de convergencia como la
convergencia en norma 2.
Definición A.70 Sea I R un intervalo y para cada n 2 N la función fn W I ! R. Decimos que la sucesión de
funciones ffn g converge en media cuadrática, o en norma 2, a la función f W I ! R si lKımn!1 kfn f k2 D 0 o, de
forma equivalente, si
Z 21
2
lKım .fn .t/ f .t// dt D 0:
n!1 I
Aunque pueda parecer lo contrario, las relaciones de esta convergencia con las otras que hemos formulado anterior-
mente no son sencillas.
Proposición A.26 Si I es un intervalo acotado, para toda f W I ! R la norma 2 de f en I es menor o igual que una
constante por la norma del supremo de f en I .
554 j Apéndice A
Corolario A.29 Si la sucesión ffn g converge puntualmente a la función f y sabemos que la sucesión ffn g converge
kk2
en norma 2, entonces necesariamente fn !f
P1
Definición A.72 Dada una serie de potencias an x n , su radio de convergencia es el número
nD0
( 1
)
X
n
D sup jx0 j 2 R tales que an xo converge :
nD0
Si el conjunto entre llaves no es acotado decimos que D C1.
P
Teorema A.31
P1 Teorema de Abel. Sea una serie de potencias 1 n
nD0 an x de modo que existe un x0 2 R tal que la serie
n
numéricaP nD0 annx0 es convergente. Sea ahora r 2 R tal que r < jx0 j. Entonces, para todo x 2 R tal que jxj r
la serie 1
nD0 an x converge absolutamente. Además se tiene que la serie de potencias converge uniformemente en el
A.4 Funciones, sucesiones y series de funciones j 555
Abel
P
Teorema A.32 Sea el radio de convergencia de una serie de potencias 1 n
nD0 an x . Ocurre uno de los tres casos
siguientes:
1. D 0. En ese caso la serie converge par x D 0 y diverge para todo x ¤ 0.
2. 0 < < 1. En ese caso, para todo r < la serie converge uniformemente en Œ r; r y diverge si jxj > , En
los puntos frontera .˙/ la serie puede converger o divergir.
3. D 1. En ese caso la serie converge para todo x 2 R y para todo r > 0 la serie converge uniformemente en
Œ r; r.
Taylor
Las siete primeras aproximaciones de la función sen.x/ por este teorema se pueden ver en la figura A.21.
Figura A.21: Función sen.x/ y, en x D 0, las aproximaciones por Taylor de primer orden, de orden 3, 5, 7, 9, 11 y 13
El teorema de Taylor nos dice que el polinomio de Taylor aproxima a la función f tanto mejor cuanto mayor es n y
más cerca estemos de x0 . También, que si conocemos el valor de una función y sus derivadas en un punto x0 , entonces
podemos aproximar el valor de la función en un punto x por un polinomio y la aproximación será tanto mejor cuanto
más cerca esté el punto y cuantas más derivadas consideremos.
Resulta natural extender la noción de polinomio de Taylor, dejando que n tienda a infinito, a la de serie de Taylor
centrada en x0 como
X1
f .k/ .x0 /
.x x0 /k :
kŠ
kD0
También, preguntarse si, dada una función infinitamente derivable f , la serie de Taylor converge en todo punto a la
función f .
Existe una clase muy amplia de funciones f , denominadas analíticas, que verifican que su serie de Taylor converge
al menos puntualmente a la función f . Obviamente
1
X f .k/ .x0 /
f .x/ D .x x0 /k
kŠ
kD0
Teorema A.34 Teorema del valor intermedio. Si f W R ! R es una función continua en el intervalo Œa; b, toma todos
los valores entre f .a/ y f .b/. Más concretamente, si y es un número entre f .a/ y f .b/, existe un número c dentro de
Œa; b, es decir, tal que a c b, en el que f .c/ D y.
20 | CHAPTER
El gráfico de la figura A.22 esquematiza 0 Fundamentals
este resultado.
f(c) f(c)
y
a c b a c b a
(a) del valor intermedio
Figura A.22: Teorema (b)
◮ EXAMPLE 0.7 Show that f (x) = x 2 − 3 on the interval [1, 3] must take on the v
Because f (1) = −2 and f (3) = 6, all values
√ between −
1, must be taken on by f . For example, setting c = 3, note that
a c b a c secondly, fb(2) = 1. a c b
(a) (b) del valor medio
Figura A.23: Teorema (c)
THEOREM 0.5 (Continuous Limits) Let f be a continuous function in a neighbo
Figure 0.1 Three important theorems from calculus. There exist numbers c between
Teorema A.36 Teorema de Rolle. Si f W R ! R es una función n→∞ xny=
limcontinua x0 . Then
derivable en el intervalo Œa; b y suponemos
a and b such that: (a) f (c) = y, 0for any given y between f (a) and f (b), byTheorem
que f .a/ D f .b/, existe un número c, entre a y b, tal que f .c/ D 0. G ENERALIZACIÓN Si f es continua y derivable
lim f (xn ) = f lim xn = f (x0 ).
n 1 veces en Œa; b y la0.4,
derivada de orden n existe
the Intermediate Value en Theorem
el abierto (b) they instantaneous
.a; b/, existen n intervalos
slopea1of<fb1atc a2
n→∞ < b2
equals
n→∞
: : : an < bn en Œa; b, tales que f .ak/ D f .bk/ para todo k D 1 : : : n, existe un número
(f (b) − f (a))/(b − a) by Theorem 0.6, the Mean Value Theorem (c) the vertically c en .a; b/ tal queshaded
la
derivada de orden n de f en c es cero. In other words, limits may be brought inside continuous func
region is equal in area to the horizontally shaded region, by Theorem 0.9, the Mean
Fue formulado por Michel
ValueRolle, Franciafor
Theorem 1652-1719.
Integrals,0.6
THEOREM shown (Mean
in theValue
special Theorem) Let=f1.be a continuously differentiable
case g(x)
[a, b]. Then there exists a number c between a and b such that f
(b − a).
THEOREM 0.4 (Intermediate Value Theorem) Let f be a continuous function on the interval [a, b]. Then
Rolle
f realizes every value between f (a) and f (b). More precisely, if y is a number between
◮ EXAMPLE 0.8 Apply the Mean Value Theorem to f (x) = x 2 − 3 on the interval
f (a) and f (b), then there exists a number c with a ≤ c ≤ b such that f (c) = y.
The content of the theorem is that because f (1) = −2 a
exist a number c in the interval (1, 3) satisfying f ′ (c) = (6 − (−2)
El gráfico de la figura A.24 esquematiza lo obtenido por este teorema.
◮ EXAMPLE 0.7 Show that f (x) = x 2 − 3 on the interval [1, 3]a c.must
to find such f ′ (x)
Sincetake 2x,values
on=the the correct c =1.
0 and 2.
Ejemplo A.18 Sea A una matriz m n, m < n, y considérese el sistema de ecuaciones lineales Ax D b. Si A se
estructura así, A D ŒB; C , donde B es m m, entonces se satisface la condición .c/ del teorema de la función implícita
si, y sólo si, B es regular. Esta condición se corresponde con los requisitos y enunciados de la teoría de ecuaciones
lineales.
De acuerdo con este último ejemplo, la teoría de la función implícita se puede considerar como una generalización no
lineal de la teoría lineal.
Una función f W Rn ! R se dice convexa (figura A.26) si cumple que f .˛x C ˇy/ ˛f .x/ C ˇf .y/ para todo
x; y 2 Rn y todo ˛; ˇ 2 R, con ˛ C ˇ D 1, ˛ 0, ˇ 0. Si S Rn es un conjunto convexo y f W Rn ! Rm es una
función afín, la imagen de f .S / D ff .x/ W x 2 S g es un conjunto convexo. De forma similar, si f W Rk ! Rn es
una función afín, la imagen inversa f 1 .S / D fx W f .x/ 2 S g también es convexa.
y = f(x)
y
x
convex
Figura A.26: Función
(a) convexa
Un punto x 2 se dice que es un mínimo local de la función f W ! R si existe un > 0 tal que f .x/ f .x /
f que de x . Es decir, para todo x 2 tal que jx x j < . Si f .x/ > f .x /
para todo x 2 a una distancia menor
para todo x 2 , x ¤ x , a una distancia menor que de x , se dice que x es un mínimo local estricto de f en .
Teorema A.42 Condiciones necesarias de primer orden. Teorema de Fermat. Sea un subconjunto de Rn y una
función f W ! R, f 2 C 1 . Si x en un mínimo local de f en , se cumple que rf .x / D 0.
Por Pierre de Fermat, Francia 1607-1665.
Fermat
f
Teorema A.44 Condiciones suficientes de segundo orden. Sea un subconjunto de Rn y una función f W ! R,
f 2 C . Si se cumple que rf .x / D 0 y r 2 f .x / es definida positiva, x en un mínimo local estricto de f en .
2
Teorema A.45 Si f es convexa, cualquier mínimo local x es un mínimo global de f . Si además f es derivable,
cualquier mínimo local x es un mínimo global.
El análisis de la convexidad de funciones y de problemas de optimización fue fundado en la segunda mitad del siglo XX
por Moritz Werner Fenchel, Alemania 1905-1988, Jean Jaques Moreau, Francia 1923-2014, y Ralph Tyrrell Rockafellar,
EE.UU. 1935.
f(x,y) = - x - y
Óptimo local
Óptimo global
El concepto de combinación convexa se puede generalizar a cualquier número finito de puntos de la siguiente manera:
p
X
xD i xi ;
i D1
Pp
donde i D1 i D 1, i 0, i D 1; : : : ; p.
Definición A.73 El conjunto intersección de todos los conjuntos convexos que contienen a un subconjunto S Rn se
llama envoltura convexa —convex hull— de S (figura A.29) y se designa por conv.S /.
Figure 2.2 Some simple convex and nonconvex sets. Left. The hexagon,
which includes its boundary (shown darker), is convex. Middle. The kidney
shaped set is not convex, since the line segment between the two points in
the set shown as dots is not contained in the set. Right. The square contains
562 j Apéndice A some boundary points but not others, and is not convex.
Un conjunto C Rn se dice que es afín (también se dice que C es una variedad afín o una variedad lineal) si para
cualesquiera x; y 2 C y cualquier 2 R se tiene que .1 /x C y 2 C . El conjunto vacío es afín. Una combinación
afín de vectores v1 ;Roughly
v2 ; : : : ; vspeaking, a set is convex if every point in the set can be seen by every other
n es una combinación lineal c1 v1 C C cn vn en la que c1 C C cn D 1.
point, along an unobstructed straight path between them, where unobstructed
Un conjunto C meansRn eslyingafín siinythe
sólo si es de la forma
set. Every affine set is also convex, since it contains the entire
line between any two distinct points in it, and therefore also the line segment
C D fa C l W a 2 Rn ; l 2 Lg ;
between the points. Figure 2.2 illustrates some simple convex and nonconvex sets
in R2 .
donde L es un subespacio vectorial de Rn asociado a C . Es decir, un conjunto afín es un subespacio desplazado del
We call a point of the form θ1 x1 + · · · + θk xk , where θ1 + · · · + θk = 1 and
origen. La dimensión de0,uni =
θi ≥ conjunto
1,n . . . , k,afín es la de su of
x C Lcombination
a convex correspondiente
the points x1 , subespacio
. . . , xk . As L. plano afín en Rn es un
Unaffine
with
n
traslado de un subespacio
sets, it de
canR be. Unashown recta enaRsetesisun
that planoifafín
convex andde dimensión
only 1. Es every
if it contains evidente que cualquier conjunto
convex
afín es convexo aunque el recíproco no es cierto en general.
combination of its points. A convex combination of points can be thought of as a
Si S Rn , la envoltura
mixture or afín de S , aff.S
weighted /, esoflathe
average intersección
points, withdeθitodos los conjuntos
the fraction of xi inafines que contienen a S. Como
the mixture.
se puede comprobar, aff.S / D aff.conv.S //.
Un conjunto de puntos Theo convex
vectores
hullfvof
1 ;a: :set
: ; vC, de Rn es
p gdenoted afínmente
conv C, is thedependiente si existen
set of all convex números reales c1 ; : : : ; cp
combinations
of points in C:
no todos cero tales que c1 C C cp D 0 y c1 v1 C C cp vp D 0. De lo contrario será afínmente independiente.
$)"15&3 7KH *HRPHWU\ RI 9HFWRU 6SDFHV
Un simplex o simplejo
convesCla=envolvente
{θ1 x1 + · · ·convexa
+ θk xk |de xi un conjunto
∈ C, θi ≥ 0, finito
i = 1,de
. . .vectores
, k, θ1 +afínmente
· · · + θk =independientes.
1}.
As the
v 1 name suggests,
v 1 the convex hull conv C is valways
1 convex. It is the smallest v4
convex set that contains C: If B is any convex set that contains C, then conv C ⊆
B. Figure 2.3 illustrates the definition of convex hull.
The idea of a convex combination can be generalized to include infinite sums, in-
tegrals, and, in the most general form, probability distributions. Suppose θ1 , θ2 , . . .
v1 v2 v2 v3 v2 v3
S0 S1 S2 S3
simplexS 1 es un segmento de recta. El triángulo S 2 proviene de seleccionar un punto v3 que no está en la
Figura A.30: El'*(63&
recta que contiene a S 1 y después formar la envolvente convexa con S 1 . El tetraedro S 3 se produce al elegir un punto v4 que
no esté en el plano de S 2 y después formar la envolvente convexa con S 2
)LJ 7KH WHWUDKHGURQ S3 LV SURGXFHG E\ FKRRVLQJ D SRLQW Y4 QRW LQ WKH SODQH RI S 2
DQG WKHQ IRUPLQJ WKH FRQYH[ KXOO ZLWK S 2
Para construir un simplex
%HIRUHk-dimensional —o k-simplex—
FRQWLQXLQJ FRQVLGHU VRPH RI WKHseSDWWHUQV
procedeWKDW
como sigue (ver figura
DUH DSSHDULQJ A.30):
7KH WULDQJOH
2 1
S KDV WKUHH HGJHV (DFK RI WKHVH HGJHV LV D OLQH VHJPHQW OLNH S :KHUH GR WKHVH
WKUHH OLQH0-simplex S 0 W un
VHJPHQWV FRPH solo2QH
IURP" punto fv1 g LV S 1 2QH RI WKHP FRPHV E\ MRLQLQJ WKH
RI WKHP
HQGSRLQW 1-simplex S 1 SRLQW
Y2 WR WKH QHZ W conv.S 0
Y3 7KH [ WKLUG con vIURP
fv2 g/FRPHV 2 no en
0 RWKHU HQGSRLQW Y WR
aff.SWKH
MRLQLQJ / 1
1 2
Y3 <RX PLJKW VD\ WKDW2HDFK HQGSRLQW 1 LQ S LV VWUHWFKHG RXW LQWR D1 OLQH VHJPHQW LQ S
2-simplex S 3 W conv.S [ fv3 g/ con v3 no en aff.S /
7KH WHWUDKHGURQ S LQ )LJ KDV IRXU WULDQJXODU IDFHV 2QH RI WKHVH LV WKH RULJLQDO
WULDQJOH S 2 DQG WKH RWKHU :: WKUHH FRPH IURP VWUHWFKLQJ WKH HGJHV RI S 2 RXW WR WKH QHZ
:
SRLQW Y4 1RWLFH WRR WKDW WKH YHUWLFHV RI S 2 JHW VWUHWFKHG RXW LQWR HGJHV LQ S 3 7KH
k
k-simplex
RWKHU HGJHV S W IURP
LQ S 3 FRPH conv.SWKHk HGJHV
1
[ fv con vVXJJHVWV
S 2 g/7KLV
LQkC1 kC1 no enKRZaff.S k 1
/:
WR ´YLVXDOL]Hµ WKH
4
IRXU GLPHQVLRQDO S
Un símplex unidad es7KH unFRQVWUXFWLRQ
subconjuntoRIparticular
S 4 FDOOHGdel ortante noLQYROYHV
D SHQWDWRSH negativo que seWKH
IRUPLQJ define así KXOO RI S 3
FRQYH[
3
ZLWK D SRLQW Y5 QRW LQ WKH VSDFH RI S $ FRPSOHWH SLFWXUH LV LPSRVVLEOH RI FRXUVH
EXW )LJ LV VXJJHVWLYH SS4 KDV D fs ÀYH 0; 1> sDQG
j s YHUWLFHV DQ\ RnCRI
1g IRXU : WKH YHUWLFHV GHWHUPLQH D
IDFHW LQ WKH VKDSH RI D WHWUDKHGURQ )RU H[DPSOH WKH ÀJXUH HPSKDVL]HV WKH IDFHW ZLWK
Es un poliedro convexo
YHUWLFHVacotado
Y1 Y2 Ycon n C 1 vértices y n C 1 y de dimensión n. En la figura A.31 se ve uno de R3 : un
4 DQG Y5 DQG WKH IDFHW ZLWK YHUWLFHV Y2 Y3 Y4 DQG Y5 7KHUH DUH ÀYH
tetraedro sólido pero no regular.
v5
v1 v4
1 3 9 5
&9".1-& /HW D D ED FD DQG S D )LQG WKH EDU\FHQ
7 0 3 3
WULF FRRUGLQDWHV RI S GHWHUPLQHG E\ WKH DIÀQHO\ LQGHSHQGHQW VHW fD; E; Fg
40-65*0/ 5RZ UHGXFH WKH DXJPHQWHG PDWUL[ RI SRLQWV LQ KRPRJHQHRXV IRUP PRYLQJ
WKH ODVW URZ RI RQHV WR WKH WRS WR VLPSOLI\ WKH DULWKPHWLF
2 3 2 3
2.12. CONVEX POLYHEDRA 1 3 9 5 1 1
A.5 1 1
Optimización y Programación
119 Matemática j 563
Q
DQ E FQ SQ D 7 0
4 3 3 1 3 9 5
5 4 5
1 1 1 1 7 0 3 3
2 s º 0 , 1T s ≤ 1} 3
1
1 0 0 4
6 7
1 7
6 4 0 1 0 3 5
5
0 0 1 12
1 1 5 51
7KH FRRUGLQDWHV DUH 4 3
DQG 12
VR S D 41 D C 31 E C 12
F
%DU\FHQWULF FRRUGLQDWHV KDYH ERWK SK\VLFDO DQG JHRPHWULF LQWHUSUHWDWLRQV 7KH\
ZHUH RULJLQDOO\ GHÀQHG E\ $ ) 0RHELXV LQ IRU D SRLQW S LQVLGH D WULDQJXODU
Figura A.31: Simplex unidad en 3 . Un tetraedro sólido aunque no regular
UHJLRQ ZLWK YHUWLFHV D E DQG F +H ZURWH WKDW WKH EDU\FHQWULF FRRUGLQDWHV RI S DUH
R
WKUHH QRQQHJDWLYH FigureQXPEHUV mD ; mES in
57: Unit simplex DQGR3mis Fa VXFK
uniqueWKDW LV WKH FHQWHU
solidStetrahedron but RI
notPDVV RI D V\VWHP
regular.
FRQVLVWLQJ RI WKH WULDQJOH ZLWK QR PDVV DQG PDVVHV mD mE DQG mF DW WKH FRUUHVSRQGLQJ
Sea S D fv1 ; : : : ; vk g un conjunto afínmente independiente. Para cada punto p en aff.S / los coeficientes c1 ; : : : ; ck
YHUWLFHV (única)
de la representación 7KH PDVVHV
p D c1DUHv1 C XQLTXHO\
C ck GHWHUPLQHG E\ UHTXLULQJ
vk son las coordenadas WKDW WKHLU de
baricéntricas VXPp. EH 7KLV
Estas coordenadas tie-
YLHZ LV 2.12.2.1
VWLOO XVHIXO Vertex-description
LQ SK\VLFV WRGD\ ñof polyhedral cone
nen interpretaciones físicas y geométricas de interés. Fueron originalmente definidas en 1827 por August F. Möbius,
)LJXUH
Alemania 1790-1868. GivenJLYHV
closedDconvex
JHRPHWULF
cone K LQWHUSUHWDWLRQ
in a subspace of RWR n
WKH EDU\FHQWULF
having FRRUGLQDWHV
any set of generators LQ ([DPSOH
for it arranged
n×N
in a matrix X ∈ R as in (282),
VKRZLQJ WKH WULDQJOH DEF DQG WKUHH VPDOO WULDQJOHV SEF DSF DQG =DES
then that cone is described setting m = 1 and k 0 in 7KH
vertex-description (291):
DUHDV RI WKH VPDOO WULDQJOHV DUH SURSRUWLRQDO WR WKH EDU\FHQWULF FRRUGLQDWHV RI S ,Q IDFW
K = cone X = {Xa 1 | Möbius
a º 0} ⊆ Rn (105)
DUHD.SEF/ D DUHD.DEF/
a conic hull of N generators. 4
1
2.12.2.2
Pointedness 5 DUHD.DSF/ D DUHD.DEF/
Si a D 17 , b D 30 ,(c§2.7.2.1.2)
D 93 y[350, p D§2.10]3 ,Assuming
el punto all
p en el 3centroconstituting
generators theA.32
de la figura tieneofpor
columns X ∈coordenadas
Rn×N are baricéntricas
tres números no negativos , mb y mccone
mapolyhedral
nonzero, tales que
K is p es ifeland
pointed centro
only de masais de
if there un sistema
no nonzero a º 0que consiste
that solves en le triángulo
(sin masa) y las masasXam=a ,0 m
5
b y
; id mciffen los
est, vértices
DUHD .DEScorrespondientes.
/D DUHD.Las DEFmasas
/ están unívocamente determinadas al
requerir que su suma sea 1. 12
find a
subject to Xa = 0
(294)
a 1T a = 1
aº0
área = s·área(∆abc )
is infeasible or iff N (X) ∩ RN + = 0.
2.58
Otherwise, the cone will contain at least one line
and there can be no vertex; id est, the cone cannot otherwise be pointed. Any subspace,
Euclidean vector space Rn , or any halfspace are examples of nonpointed polyhedral cone;
hence, no vertex. This null-pointedness criterion Xa = 0 means that a pointed polyhedral
cone is invariant to linear injective transformation. p
área = t ·polyhedral
Examples of pointed área(∆abc )cone K include: c 0-based ray in a
the origin, any
subspace, any two-dimensional V- shaped cone in a subspace, any orthant in Rn or Rm×n ;
e.g, nonnegative real line R+ in vector space R .
área = r·área(∆abc )
b
2.12.3 Unit simplex
1
'*(63& S D r D C s E C t F +HUH r D
A Figura
peculiarA.32: Punto
subset 1p D
of the ra 5C sb C
nonnegative t c. Enwith
orthant caso r D 1 4, s D 1 y
estehalfspace-description 5
t D 12 :
sD 3
tD 12
4 3
S , {s | s º 0 , 1T s ≤ 1} ⊆ Rn+ (295)
7KHElIRUPXODV
Proposición A.46 conjunto
2.58 LQ
If rank Xde
)LJ
= nsoluciones
DUHdeYHULÀHG
, then the dual un sistema
cone
LQ de
([HUFLVHV
K∗ (§2.13.1) isecuaciones
² $QDORJRXV HTXDOLWLHV IRU mn ; b 2
pointed. (311)lineales, C D fx W Ax D b; A 2 R
m
R g, es unYROXPHV
conjunto RI WHWUDKHGURQV KROG IRU WKH FDVH ZKHQ S LV D SRLQW LQVLGH D WHWUDKHGURQ LQ R3
afín.
ZLWK YHUWLFHV D E F DQG G
Demostración. En efecto, supongamos que x1 ; x2 2 C , es decir, Ax1 D b, Ax2 D b. Entonces, para cualquier ,
lo que prueba que la combinación afín x1 C .1 /x2 está también en el conjunto C . El subespacio asociado con el
conjunto afín C en este caso es el espacio nulo de A, ker.A/.
C C
0 0
564 j Apéndice A Definition. Let S be a subset of E n . The convex hull of S, denoted co(S), is
the set which is the intersection of all convex sets containing S. The closed
convex hull of S is defined as the closure of co(S).
26
Definición A.74 Un conjunto C Rn se dice un cono si para todo x 22 CConvex sets
y todo escalar 0 2 R, se tiene
Finally, we conclude this section by defining a cone and a convex cone. A
que x 2 C . Un cono que también es convexo se denomina cono convexo. En este caso, para todo x1 ; x2 2 C y
convex cone is a special kind of convex set that arises quite frequently.
1 ; 2 0, 1 x1 C 2 x2 2 C .
x1
0
x2
0
Figure 2.4 The pie slice shows all points of the form θ1 x1 + θ2 x2 , where
θ1 , θ2 ≥ 0. The0apex of the slice (which corresponds to θ1 = θ2 =0 0) is at
0; its edges (which correspond to θ1 = 0 or θ2 = 0) pass through the points
Not convex x1 and x2 . Not convex Convex
Figura A.33: Tres conos: el primero y el segundo no son convexos; el tercero si
Fig. B.3 Cones
El conjunto fx 2 Rm W x D A˛; A 2 Rmn ; ˛ 2 Rn ; ˛ 0g es un cono convexo generado por los vectores columna
de la matriz A.
El conjunto de todas las combinaciones cónicas de los puntos de un conjunto C , 1 x1 C C k xk , 1 ; : : : ; k 0,
es la envoltura cónica de C , cone.C /.
0 0
Figura A.34: Envoltura cónica de los dos conjuntos de la figura A.29
Figure 2.5 The conic hulls (shown shaded) of the two sets of figure 2.3.
Definición A.75 Un punto x es un punto extremo o vértice de un conjunto convexo C si y sólo si no es interior a un
segmento de recta contenido en C . Es decir, si y sólo si
x D .1 ˇ/y C ˇz con 0 < ˇ < 1 y y; z 2 C ) x D y D z:
Carathéodory
P
dicen que si X Rn y x 2 cone.X /, existen xi y i , i D 1; : : : ; n, tales que x D niD1 i xi . Es decir, como expresa
la figura A.35, cualquier elemento de la envoltura cónica de X es combinación cónica P de, a lo sumo, n puntos de X .
Igualmente, si X Rn y x 2 conv.X /, existen xi y i , i D 1; : : : ; n C 1, tales que x D nC1
i D1 i xi . Es decir, cualquier
elemento de la envoltura convexa de X es combinación convexa de, a lo sumo, n C 1 puntos de X.
Definición A.76 Llamaremos hiperplano H de vector característico a 2 Rn ; a ¤ 0, al conjunto H D fx 2 Rn W
aT x D cg, con c 2 R. Un hiperplano es el conjunto de soluciones de una ecuación lineal en Rn .
i=1iD1 i
i=1 n puntos de X. Igualmente,
i
i=1 A.5 que
si X Rn y x 2 conv.X /, existen xi y i , i D 1; : : : ; n C 1, tales Optimización
x D nC1 y Programación Matemática j 565
iD1 i xi .
P
En la figura 8.10 se representa el hiperplano x1 C 4x2 D 11, su vector característico a D Œ 1; 4T y los semiespacios
HC y H .
En la figura A.36 se representa el hiperplano x1 C4x2 D 11, su vector característico a D Œ 1; 4T y los semiespacios
En un hiperplano aT x D c, la constante c determina el desplazamiento del hiperplano del origen. Un hiperplano se
HC y H . puede expresar de la forma fx W aT .x x0 / D 0g, donde x0 es cualquier punto del hiperplano (aT x0 D c). Esa última
expresión se puede trabajar un poco más pues fx W aT .x x0 / D 0g D x0 C a? , donde a? es el complemento ortogonal
de a, es decir fv W aT v D 0g. Lo que lleva a que un hiperplano
a consiste en un desplazamiento x0 más todos los vectores
ortogonales al vector característico a: el conjunto de soluciones de aT x D c: x0 C ker.a/, recordemos.
Un politopo es un conjunto formado por la intersección de un número finito de semiespacios cerrados. Un politopo
H+ cerrados que pasan por un punto.
cónico es un conjunto formado por la intersección de un número finito de semiespacios
y
Un poliedro es un politopo acotado y no vacío. Es fácil comprobarxque la intersección de conjuntos convexos es convexa
x̄0
y que, por lo tanto, los politopos y los poliedros son conjuntos convexos. Si un politopo
HP−
es un poliedro, cualquier punto
se puede expresar como combinación convexa de sus puntos extremos.
a H
Teorema 8.1 Sea C un conjunto convexo e y un punto exterior a la adherencia de C . Existe un vector a tal que
aT y < Kınfx2C aT x.
21
Definición A.81 Se denomina hiperplano soporte o hiperplano de apoyo de un conjunto convexo C a un hiperplano
H tal que H \ C ¤ ; y C HC o C H . Es decir, a un hiperplano que contiene al conjunto C en uno de sus
semiespacios cerrados de borde H y algún
Si un politopo punto cualquier
P es un poliedro, frontera dePolytopes
punto
Fig. B.5 se
Cpuede expresar como combinación convexa de
sus puntos extremos.
a1T x b1
a2T x b2
· ·
566 j Apéndice A
60 CHAPTER 2. CONVEX GEOMETRY
a
H + = {y | aT(y − y p ) ≥ 0}
yp c
∂H = {y | aT(y − y p ) = 0} = N (aT ) + y p
y d
H − = {y | aT(y − y p ) ≤ 0}
N (aT ) = {y | aTy = 0}
Figura A.37: De Dattorro [2016] con su notación: un hiperplano @H, desplazado del origen una distancia y los semiespacios
HC y H ; el ker.a> / D N .a> /, contenido en H . La zona sombreada es una pieza rectangular de semiespacio H con
respecto al cualFigure 28:a es
el vector Hyperplane illustrated
normal, saliendo deB.3 ∂H
esa zona,ishacia
a line
Separating H Cpartially
and bounding
. Supporting
Los puntos halfspaces
y d son 519H−deland
equidistantes
cHyperplanes hiperplano y el
2
vector c d esHnormal Shaded is a rectangular piece of semiinfinite H− with respect to which vector
+ in Ral.mismo
a is outward-normal to bounding hyperplane; vector a is inward-normal with respect
to H+ . Halfspace H− contains nullspace N (aT ) (dashed line through origin) because
aTyp > 0. Hyperplane, halfspace, and nullspace are each drawn truncated. Points c and
d are equidistant from hyperplane, and vector c − d is normal to it. ∆ is distance from
origin to hyperplane.
Definición
Example: A.84 Dadaorder
second cualquiera k k en R , se define la norma bola de radio r
una normacone: n
y centro xc como
fx j kx x k rg. Es convexa. La norma cono asociada a k k es el conjunto
c
nC1
C D f.x; t/ j kxk t g R :
C = {(x, t) ∈ Rn+1 |kxk2 ≤ t}
Ejemplo A.19 La norma 2
cono de segundo
3 2 orden con 3Trespecto
2 a la norma euclídea
3 2 es 3
8 9
< x
C D f.x;xt/ j kxk2 tg I 0 x
> >
=
= 5 | 4( ˇ 5 5 4) 5 ≤ 0, t ≥ 0
ˇ >
4 4
: t
> D
xt ˇ ˇ x I 0 −1
0 x
0; t 0 :t
>
;
t ˇ t 0 1 t
1
t
0.5
0
1
1
0
0
x2 −1 −1 x1
1
Figura A.39: Frontera de la norma cono en R3 : f.x1 ; x2 ; t/ j .x12 C x22 / 2 t g
Definición A.85 Un cono K Rn se denomina cono verdadero, o cono apropiado–proper cone, si es convexo,
cerrado, sólido, en el sentido de que su interior no es vacío (K C . K/ D Rn ), y puntiagudo (pointed) lo que significa
que no contiene una línea o que x 2 K; x 2 K H) x D 0, o K \ K D f0g.
Un cono apropiado o verdadero induce desigualdades generalizadas, que son una ordenación parcial, K , de Rn ,
con muchas de las propiedades de un orden estándar de Rn , definida así
x K y ” y x 2 K:
x K y ” y x 2 int K:
Si nos referimos como cono apropiado al ortante RnC la ordenación parcial K pasa a ser RnC que es la usual de Rn
(y la estricta <). Formalmente x RnC y si xi yi para todo i .
El cono semidefinido positivo SnC es un cono apropiado que induce la desigualdad generalizada X SnC Y si y sólo si
Y X es semidefinida positiva.
Una forma de pensar en un cono convexo cerrado y puntiagudo es como un nuevo tipo de sistema de coordenadas
cuya base es generalmente no ortogonal. Un sistema cónico sería muy parecido al sistema cartesiano habitual cuyo cono
es análogo al primer cuadrante u ortante no negativo.
Las desigualdades generalizadas son un medio para determinar la pertenencia o no a cualquier cono convexo cerrado,
mientras que la denominada expansión biortogonal sería simplemente una expresión de las coordenadas en un sistema
cónico de coordenadas cuyos ejes sin linealmente independientes pero no necesariamente ortogonales.
Cuando el cono K es el ortante no negativo de Rn , estos tres conceptos se corresponden con el prototipo cartesiano.
La expansión biortogonal se convierte en la ortogonal.
568 j Apéndice A
.x K/ \ S D fxg:
is a minimal element of S with respect to K if
En esta expresión x K se refiere a todos los puntos que son comparables con x y menores o iguales que x de acuerdo
con K . El único punto en común con S es x. El elemento mínimo es un elemento minimal.
Si K D y RC∈elS,concepto
y de elemento mínimo yyminimal
= x coinciden en el sentido tradicional de mínimo. En la fi-
K x =⇒
gura A.40 se describen geométricamente estos últimos conceptos. También, con algún detalle más general, en A.41.
ple (K = R2+)
S2
S1 x2
the minimum element of S1
a minimal element of S2 x1
Figura A.40: El conjunto S1 tiene un elemento mínimo x1 con respecto a la desigualdad componente a componente en R2 .
El conjunto x1 C K es el sombreado más tenuemente; x1 es el elemento mínimo de S1 dado que S1 x1 C K. El punto x2
ts 2–18
es un elemento minimal de S2 . El conjunto x2 K se muestra en esa parte de la figura de forma más tenue. El punto x2 es
minimal pues x2 K y S2 sólo tienen como elemento común x2
El cono dual siempre es convexo aunque el original K no lo sea. En la figura A.42 se ve la construcción geométrica
del cono dual en dos y tres dimensiones.
Un vector y pertenecerá al cono dual K si y sólo si y es normal de un hiperplano que soporta a K en su origen. La
geometría de eso se ilustra en la figura A.43.
Si el cono K es apropiado también lo es su cono dual. Si K tiene un interior no vacío su cono dual es puntiagudo. Si
K es convexo y cerrado, K D K.
Ejemplo A.20 El cono dual de un subespacio V Rn es su complemento ortogonal V ? D fy j y > v D 0 para todo v 2
V g:
Ejemplo A.21 El cono dual del ortante no negativo RnC es el propio ortante no negativo: y > x 0 para todo x
0 ” y 0:
C1 x +K
R2
(a)
x
C2
124 CHAPTER 2. CONVEX GEOMETRY
(b)
y-K
R2 R3
1
0.8
0.6
K∗ (b)
0.4 (a) K
K ∗
0.2 K
0 q
−0.2
−0.4
−0.6
K∗
−0.8
−1
−0.5 0 0.5 1 1.5
Figura A.42: De Dattorro [2016]. Cómo se construyen los conos duales de sendos conos K en R2 a partir de los ángulos
rectos de los extremos de K
52 2 Convex sets
x ∈ K ⇔ hy , xi ≥ 0 for all y ∈ G(K∗) (367)
Figure 60: Dual cone construction by right angle. Each extreme direction of a proper
polyhedral cone
y is orthogonal to a facet of its dual cone, and vice versa, in any dimension.
K
(§2.13.6.1) (a) This characteristic guides graphical construction of K dual cone in two
dimensions: It suggests finding dual-cone boundary ∂z by making right angles with extreme
directions of polyhedral cone. The construction is then pruned so that each dual boundary
vector does not exceed π/2 radians in angle with each and every vector from polyhedral
cone. Were dual cone in R2 to narrow, Figure 61 would be reached in limit. (b) Same
polyhedral cone and its dual continued into three dimensions. (confer Figure 68)
Figura A.43: El semiespacio con normal hacia dentro y contiene al cono K por lo que y 2 K . El semiespacio con normal
hacia dentro z no contiene a K por lo que z … K
Figure 2.22 Left. The halfspace with inward normal y contains the cone K,
so y ∈ K ∗ . Right. The halfspace with inward normal z does not contain K,
so z 6∈ K ∗ .
xT y ≥ 0 for all x 0 ⇐⇒ y 0.
570 j Apéndice A
Si un cono K es apropiado e induce la desigualdad generalizada K , su dual K es también apropiado e induce por
consiguiente una desigualdad generalizada K dual de K . Algunas de sus propiedades son
Es interesante poder caracterizar un elemento mínimo o minimal de un conjunto mediante desigualdades duales. Un x
es el elemento mínimo de un conjunto S , con respecto a la desigualdad generalizada K si y sólo si para todo K 0
x es el único mínimo de > z, con z 2 S . Geométricamente esto significa que para cualquier K 0, el hiperplano
fz j > .z x/ D 0g
es un hiperplano que soporta estrictamente a S en x (sólo en el punto x). Esto el lo que ilustra la figura A.44.
Minimum and minimal elements via dual inequalities
x1 S
if x is a minimal element of a convex set S, then there exists a nonzero
λ2
λ K ∗ 0 such that x minimizes λT z over S x2
vex sets Figura A.45: El conjunto de puntos minimales de S R2 con respecto a R2C están2–22
en la línea más oscura inferior del borde
de•S . if
El x
queisminimiza > >
a minimal
1 z en Selement of a convex
es x1 y es minimal porque 1 set S,quethen
0. El there
minimiza 2 z exists
en S es elapunto
nonzero
x2 , otro punto
minimal de S pues 2 0 T
λ K ∗ 0 such that x minimizes λ z over S
Para probarlo, supongamos que K 0 y que x minimiza > z para todo z 2 S pero x no es minimal, es decir,
existe
Convex 2 S , z ¤ x tal que z K x. Entonces > .x z/ > 0, lo que contradice la suposición de que
un zsets x es el que
2–22
>
minimiza z en S para todo z 2 S .
Lo contrario es en general falso: un punto x puede ser minimal en S pero no el que minimize > z en S para todo
z 2 S . El ejemplo que lo demuestra es el de la figura A.46. Este ejemplo pone de manifiesto la importancia de la
convexidad. Si S es convexo, se puede decir que para cualquier elemento minimal x existe un K 0, no cero, tal que
x minimiza > z en S para todo z 2 S.
Figure 2.24 A set S ⊆ R2 . Its set of minimal points, with respect to R2+ , is
shown as the darker section of its (lower, left) boundary. The minimizer of
λT1 z over S is x1 , and is minimal since λ1 ≻ 0. The minimizer of λT2 z over
S is x2 , which is another minimal point of S, since λ2 ≻ 0.
Teorema A.47 Sea C un conjunto convexo e y un punto exterior a la adherencia de C . Existe un vector a tal que
aT y < Kınfx2C aT x.
Demostración. Sea
ı D Kınf kx yk2 > 0:
x2C
Existe un x0 en la frontera de C tal que kx0 yk2 D ı. Esto es así pues la función continua f .x/ D kx yk2 alcanza
su mínimo en cualquier conjunto cerrado y acotado por lo que sólo es necesario considerar x en la intersección de la
adherencia de C y la bola abierta de centro y y radio 2ı.
A continuación probaremos que a D x0 y satisface las condiciones del enunciado del teorema. En efecto, para
cualquier ˛, 0 ˛ 1, al ser C un conjunto convexo, el punto x0 C ˛.x x0 / 2 C , por lo que
kx0 C ˛.x x0 / yk22 kx0 yk22 :
Desarrollando,
2˛.x0 y/T .x x0 / C ˛ 2 kx x0 k22 0:
Considerando esta expresión cuando ˛ ! 0C, se tiene que
.x0 y/T .x x0 / 0
o que
.x0 y/T x .x0 y/T x0 D .x0 y/T y C .x0 y/T .x0 y/
D .x0 y/T y C ı 2 :
Haciendo a D x0 y queda probado el teorema.
La interpretación geométrica de este teorema es que dado un conjunto convexo C y un punto y exterior a la adherencia
de C existe un hiperplano que contiene a y, sin tocar a C , estando C en uno de sus semiespacios abiertos. Ese hiperplano,
de vector característico a en el teorema, se denomina hiperplano separador de C e y.
Si C y D son dos conjuntos convexos disjuntos, C \ D D ;, existe entonces un a ¤ 0 y un b tales que aT x b, para
todo x 2 C , y aT x ˚ b, para todo x 2 D. Dicho de otra manera, la función aT x b es no positiva en C y no negativa
T
en D. El hiperplano x W a x D b es un hiperplano separador de los conjuntos C y D como se ve en la figura A.47.
Existen bastantes principios de dualidad (en especial en la teoría y técnicas de optimización) que relacionan un pro-
blema en términos de vectores en un espacio vectorial con otro en términos de subespacios en ese espacio. En varios de
esos principios está presente la relación que se ilustra en la figura A.48 que indica que la distancia más corta de un punto
a un conjunto convexo es igual al máximo de las distancias desde el punto a los hiperplanos que separan el conjunto
convexo del punto. El problema original de minimización sobre vectores se convierte en otro de maximización sobre
hiperplanos.
Teorema A.48 Sea C un conjunto convexo e y un punto frontera de C . Existe un hiperplano que contiene a y y a C
en uno de sus semiespacios cerrados.
E2 is minimal, since no other ellipsoid (centered at the origin) contains the
points and is contained in E2 .
572 j Apéndice A
aT x ≥ b aT x ≤ b
578 APPENDIX E. PROJECTION
D
∂H−
C C
(a)
a
PC x
H−
H+
Figura A.47:
Figure 2.19 The hyperplane {x |Hiperplano separadorthe
aT x = b} separates entre C yD
disjoint convex sets
P∂H x
C and D. The affine function aT x − b is nonpositive on C and nonnegative
−
κa
on D.
x
(b)
Demostración. Sea fy .k/ g una sucesión de puntos exteriores a la adherencia de C . Sea fa.k/ g la sucesión de puntos
normalizados, ka.k/ k2 D 1, obtenida de aplicar el teorema anterior a la sucesión anterior, tales que,
T T
a.k/ y .k/ < Kınf a.k/ x:
x2C
Como fa.k/ g es una sucesión acotada, una subsucesión fa.k/ g, k 2 H, convergerá a un límite a. Para este a se tiene que,
para cualquier x 2 C ,
T T
aT y D lKım a.k/ y .k/ lKım a.k/ x D aT x:
k2H k2H
Un hiperplano que contiene un conjunto convexo C en uno de sus semiespacios cerrados y que contiene algún punto
frontera de C se denomina hiperplano de apoyo o hiperplano soporte de C .
De acuerdo con esta definición, el teorema anterior dice que dado un conjunto convexo C y un punto frontera y de C
existe un hiperplano˚ de apoyo de C que contiene y.
En la figura A.49 x W aT x D aT x0 es el hiperplano de apoyo de C en el punto x0 : el punto x0 y el conjunto C están
separados por el hiperplano fx W aT x D aT x0 g. Geométricamente quiere decir que el hiperplano fx W aT x D aT x0 g
es tangente al conjunto C en x0 y el semiespacio x W aT x aT x0 contiene a C .
Si S es un politopo de dimensión 3 en R3 —un cubo— y H un plano que se traslada en R3 hasta que apenas se apoya
en el cubo, pero no corta el interior de éste, hay tres posibilidades para H \ S dependiendo de la orientación de H . Se
ven en la figura A.50.
Lema A.49 Lema de Farkas. El sistema de ecuaciones
.I / Ax D b; x 0;
%&'*/*5*0/ /HW S EH D FRPSDFW FRQYH[ VXEVHW RI Rn $ QRQHPSW\ VXEVHW F RI S LV FDOOHG
D SURSHU IDFH RI S LI F ¤ S DQG WKHUH H[LVWV D K\SHUSODQH H D Œf d VXFK
WKDW F D S \ H DQG HLWKHU f .S / d RU f .S / d 7KH K\SHUSODQH H LV FDOOHG
D VXSSRUWLQJ K\SHUSODQH WR S ,I WKH GLPHQVLRQ RI F LV k WKHQ F LV FDOOHG D
N IDFH RI S
,I P LV D SRO\WRSH RI GLPHQVLRQ k WKHQ P LV FDOOHG D N SRO\WRSH $ IDFH
RI P LV FDOOHG D YHUWH[ SOXUDO YHUWLFHV D IDFH LV DQ HGJH DQG D .k 1/
A.5 Optimización y Programación Matemática j 573
2.6 Dual cones and generalized inequalities 51
GLPHQVLRQDO IDFH LV D IDFHW RI S
Demostración. El lema se puede reformular de la siguiente manera. Si existe un x 0 tal que Ax D b, no existe
ningún y tal que y T A 0T y bT y > 0. Recíprocamente, si no existe ningún x 0 tal que Ax D b, existe un y tal
que y T A 0T y bT y > 0.
Supongamos que el sistema (I) tiene una solución x tal que Ax D b y x 0. Sea y un punto tal que y T A 0T . En
este caso bT y D x T A T y 0 pues x 0 y y T A 0T . Esto demuestra que bT y no puede ser positivo y, por lo tanto,
el sistema (II) no tiene solución.
Supongamos ahora que el sistema (I) no tiene solución. Esto quiere decir que b … S D fv D Ax W x 0g; es decir que
b no pertenece al politopo cónico S. Observando la figura A.51, está claro que si b … S, existe un hiperplano separador
definido por un y, que separa S y b, y para el cual y T ai 0, i D 1; : : : ; n y y T b > 0, es decir, y forma un ángulo de
más de 90 grados con cada uno de los vectores columna de A y de menos de 90 grados con b (el hiperplano separador
del politopo cónico S de la figura debería “casi” tocar a éste a lo largo de a5 . El hiperplano de apoyo correspondiente, sí
tocaría a a5 ). Esto verifica que el sistema (II) tiene solución.
El lema de Farkas es un resultado importante para el estudio de sistemas lineales de inecuaciones. Su interpretación
geométrica es la siguiente:
574 j Apéndice A 8.1 Dualidad y condiciones de óptimo 473
Politopo cónico S
a2 a3
a4
a1
474 a5
Capı́tulo 8. Dualidad y análisis de sensibilidad
b
b∈
/S
y
Figura A.51: Demostración
Figura 8.2del lema de Farkas
Descripción geométrica de la existencia de un hiperplano separador
Cono {y : y T A ≤ 0T }
1. Si ai ; i DEl1;par ; n, sonP
: : : (P)-(D) losdenomina
se n vectores columna de en
habitualmente, la matriz A, que
la literatura se cumpla que
especializada, forma D Ax, x 0, quiere
b simétrica
474 decir que
Capı́tulo de el
8. la vector
Dualidad
dualidad.yb D deniD1
análisis ai xi , xi 0; en otras palabras, que b pertenece al politopo cónico generado por
sensibilidad
los vectoresA columna
continuaciónde A. En la figura
exponemos dos A.52, a la que
teoremas izquierda, se muestra
caracterizan un ejemplo
las soluciones donde
óptimas delelpar
sistema
de (I) no tiene
problemas primal-dual. Figura 8.3
El sistema (I) del lema de Farkas no tiene solución. La tiene (II)
T
{yHolguras)
Semiespacio abiertode
Teorema 8.3 (Complementariedad : b y > 0} Sean x e y soluciones factibles del par de
programas primal-dual en forma simétrica (P)-(D)a 2de (8.8). Las condiciones necesarias y
suficientes para que seanaóptimos
2 de sus respectivos problemas son:
an
a1 a3 (cT − y T A)x = 0 an (8.9)
a1 b
y
T b
y (Ax − b) = 0. (8.10)
Semiespacio abierto {y : bT y > 0}
Figura 8.4
El sistema (II) del lema de Farkas no tiene solución. La tiene (I)
Figura 8.3
Figura A.52: Izquierda: El sistema (I) del lema de Farkas no tiene solución; si (II). Derecha: El sistema (II) no tiene solución;
la tiene (I) El sistema (I) del lema de Farkas no tiene solución. La tiene (II)
a2
solución: el vector b no pertenece al cono generado por a1 , a2 , a3 y an . La intersección del cono fy W y T A 0T g
(conjunto formado por los vectores y que forman un ángulo mayor o igual de 90ı con los vectores columna de la
matriz A) y el semiespacio abierto fy W bT y >an0g, no es el conjunto vacío: el sistema (II) tiene solución, pues b
y cualquier y en ela1cono que define
b la zona sombreada forma un ángulo menor de 90ı y, por lo tanto, bT y > 0.
2. El sistema (II) no tiene solución si la intersección del cono fy W y T A 0T g y el semiespacio abierto fy W
bT y > 0g es el conjunto vacío. En la figura A.52 a la
Semiespacio derecha
abierto {y : bse
T
y muestra
> 0} un ejemplo donde el sistema (II) no tiene
solución. Todo vector y en la zona que define el cono indicado forma un ángulo mayor de 90ı con b. La tiene sin
embargo (I) pues b pertenece al cono generado por a1 , a2 y an .
Cono {y : y T A ≤ 0T }
Figura 8.4
El sistema (II) del lema de Farkas no tiene solución. La tiene (I)
A.5 Optimización y Programación Matemática j 575
minimizar
n
f .x/
x2R
sujeta a ci .x/ D 0; i 2 E;
cj .x/ 0; j 2 I;
donde las función objetivo f y las condiciones ci y cj son, en general, no lineales, continuas y tienen derivadas parciales
continuas hasta al menos primer orden. Los conjuntos E y I contienen los índices de las condiciones que son de igualdad
y de desigualdad, respectivamente. El conjunto de puntos que satisfacen todas las condiciones se denomina región
factible.
Un punto x que satisfaga todas las condiciones se dice regular si los vectores gradiente del conjunto de condiciones
activas en ese punto son linealmente independientes.
Teorema A.50 Condiciones de óptimo de primer orden de Karush-Kuhn-Tucker. Supóngase que x es un punto
regular y mínimo local del problema general de programación matemática anterior. Existe un vector de multiplicadores
de Lagrange, , con coeficientes i , i 2 E [ I, tal que se cumple que
rx L.x ; / D rf .x / T c.x / D 0;
ci .x / D 0; para todo i 2 E;
ci .x / 0; para todo i 2 I;
i 0; para todo i 2 I;
i ci .x / D 0; para todo i 2 E [ I:
Estas condiciones fueron formuladas por Harold William Kuhn, EE.UU., 1925-2014, y Albert William Tucker, Ca-
nadá, 1905-1995, en 1951, con el fin de extender la teoría de Lagrange a la caracterización de los puntos óptimos de
problemas de programación lineal y no lineal sometidos a restricciones. Posteriormente se descubrió que en 1939 Wi-
lliam Karush, EE.UU., 1917-1997, ya había trabajado sobre estas condiciones, por lo que desde ese momento se les pasó
condiciones de Karush-Kuhn-Tucker.
a denominar 264 Richard W. Cottle
min. c T x
s. a Ax D b
x 0:
Así expresado se denomina en forma estándar. La región factible, o conjunto de soluciones del programa lineal, P D
fx 2 Rn W Ax D b; x Harold es un
0g, Kuhn politopo
and Albert Tucker, 1980convexo.
at von Neumann Prize presentation
Teorema A.51(Printed
Equivalencia entre puntos extremos y soluciones básicas. Sean A 2 Rmn una matriz de rango m,
with permission of Larry Karush; NYU; Harold Kuhn and Alan Tucker.)
m
b 2 R y elhaving
politopo convexo
come to the United States from Bialystok which was then under Russian
control. (It is now in Poland.) As a child, William P wasDknown
fx 2 Rn W Ax D b; x 0g :
as “Willie;”
his older brother Fred was called “Freddie” [39]. They eventually had two
younger siblings, Jack and Esther. Of the four, only Esther is still living. Willie
Un x 2 P es un this
outgrew punto extremo
diminutive name andde P si
became y sólo
known si los
as “Will.” vectores columna de A asociados a los coeficientes positivos de
He attended
public schools in Chicago, graduating from Murray F. Tuley High School in
x son linealmente
June, 1934. independientes.
From that point on, his Bachelor of Science, Master of Science,
and Doctor of Philosophy were all earned at the University of Chicago in 1938,
1939, and 1942, respectively [18].
Based on an entry in the 17th Edition of American Men & Women of Science
[1, p. 215], the table below gives a summary of the positions held by William
Karush. The table does not make explicit the fact that during World War
II, Karush worked on the Manhattan Project which culminated in the atomic
Demostración. x D ŒxN T ; 0T T , xN > 0, y designamos por A N las p primeras columnas de la matriz A, se tiene que
N
Ax D A xN D b.
Probemos primero la necesidad de la condición enunciada. Supongamos que las columnas de A N no son linealmente
independientes. En este caso existirá un vector w N
N ¤ 0 tal que A w N D 0. De N N xN D b y, para un
0 N N
aquí00 queA.
N
xN ˙
N
N DA
"w/
" suficientemente pequeño, que .xN ˙ "w/ N 0. Los puntos y D xC"
0
w
yy D x
0
"w están, por consiguiente, en
P . Además, dado que x D .y 0 C y 00 /=2, x no puede ser un punto extremo de P . Como consecuencia de esto, si x es un
punto extremo, las columnas de la matriz A N son linealmente dependientes.
Probemos ahora la suficiencia. Supongamos que x no es un punto extremo de P . Esto quiere decir que x D y 0 C
.1 /y 00 , donde y 0 ; y 00 2 P; y 0 ¤ y 00 y 0 < < 1. Como x e y 0 están en P , A.x y 0 / D Ax Ay 0 D b b D 0.
Además, dado que y 1 son estrictamente positivos, los últimos n p coeficientes de y 0 y, por consiguiente, de
x y 0 , han de ser cero pues lo son los de x. Las columnas de la matriz A, N en consecuencia, son linealmente dependientes.
N
De aquí que, si las columnas de A son linealmente independientes, x es un punto extremo.
Definición A.87 Una dirección del politopo P D fx 2 Rn W Ax D b; x 0g es un vector no nulo, d 2 Rn , tal que
para todo x0 2 P el rayo fx 2 Rn W x D x0 C d; 0g pertenece a P .
Una dirección d de un politopo P se dice extrema si no puede ponerse como combinación lineal no negativa de dos
direcciones diferentes de P . Es decir, no existen dos direcciones d1 y d2 en P , d1 ¤ d2 , y unos ˛1 ; ˛2 > 0, tales que
d D ˛1 d1 C ˛2 d2 .
Cualquier dirección de un politopo se puede expresar como combinación lineal no negativa de las direcciones extremas
del politopo. Si P es un poliedro, obviamente, no tiene direcciones.
Teorema A.52 Teorema de la representación. Todo punto del politopo P D fx 2 Rn W Ax D b; x 0g se puede
expresar de la forma X
xD i vi C d;
i 2I
P
donde fvi W i 2 I g es el conjunto de puntos extremos o vértices de P , i 2I i D 1, i 0, y d, o es una dirección
de P , o d D 0.
x4
x3
x5
x2
y
x1
Figura A.53: Representación de un punto de un politopo (poliedro) como combinación convexa de puntos extremos
Demostración. Sea V D fvi W i 2 I g el conjunto de puntos extremos de P . Como P es no vacío, al menos tiene un
punto extremo vi 2 V . De acuerdo con el teorema de la representación, o el politopo P posee una dirección d tal que
c T d < 0, o tal dirección no existe. Consideremos estos dos casos.
(a) El politopo P tiene una dirección d tal que c T d < 0. En este caso P no está acotado y el valor de la función
objetivo tiende a 1 en la dirección d.
(b) El politopo P no tiene una dirección d tal que c T d < 0. En este caso cualquier x 2 P se puede expresar de una
de las dos maneras siguientes:
X X
xD i vi donde i D 1; i 0 o
i2I i 2I
X X
xD i vi C dN donde i D 1; i 0 y c T dN 0:
i2I i 2I
En ambos casos, suponiendo que c T vmi n es el menor de los elementos del conjunto fc T vi W i 2 I g, se tiene que
!
X X
T T T
c x i c vi c vmi n i D c T vmi n :
i 2I i2I
A union
Los problemas duales,of
en points
A union
general, its points
Anofintersection
posibilitan Anvalores
acotar los intersection
of hyperplanesof halfspaces
alcanzables por los primales. Permiten poder saber
Time domain
cuándo una aproximación a la Abstract
solución deMin-Common/Max-Crossing
Frequency domain
un problema Theorems
es “suficientemente” buena.
La solución óptima de un problema dual de otro primal, en optimización, certifica que se ha alcanzado o se pude
alcanzar la del primal.
Por estas consideraciones y porque los problemas duales en optimización a menudo tienen una estructura más agrada-
ble o manejable que los primales es por lo que pasamos a exponer —a grandes rasgos— sus principales características y
cómo deben ser estudiados.
La Dualidad juega un papel destacado en la optimización de problemas de programación lineal y de programación
no lineal. Sirve para caracterizar y verificar la condición de un óptimo de un proceso iterativo, y las condiciones en
que se da, para analizar la sensibilidad de una solución a la variación de los parámetros del problema, para estudiar
la velocidad de convergencia de determinados algoritmos de optimización que usan su formulación y para contemplar
diversos aspectos geométricos que permiten interpretar mejor lo que se está haciendo en la búsqueda de una solución.
Las ideas y formulación que exponemos a continuación siguen muy de cerca lo que se presenta en los libros de
Boyd y Vandenberghe [2004], Luenberger [1969] y Luenberger y Ye [2016]. Se basa en una forma elegante y global de
contemplar la dualidad en términos de conjuntos e hiperplanos que tocan esos conjuntos.
Los métodos numéricos basados en la dualidad siguen el enfoque o punto de vista de que las incógnitas fundamentales
asociadas a un problema de optimización con condiciones son los Multiplicadores de Lagrange —por Joseph-Louis
Lagrange, Turin, 1736-París, 1813—.
Lagrange
Una vez se conocen estos multiplicadores la determinación del punto de solución es simple (al menos en algunas situa-
ciones). Los métodos duales, por lo tanto, no acometen el problema original con condiciones —problema primal—, sino
que atacan un problema alternativo, el problema dual, cuyas incógnitas son los multiplicadores de Lagrange del proble-
ma primal. Para un problema con n variables y m restricciones o condiciones de igualdad, los métodos duales trabajan en
A.5 Optimización y Programación Matemática j 579
el espacio m-dimensional de los multiplicadores de Lagrange. Debido a que estos multiplicadores miden sensibilidades
del problema, a menudo tienen interpretaciones intuitivas significativas, como precios asociados con recursos escasos,
por lo que su búsqueda es a menudo la materialización de un problema práctico de la vida cotidiana, y tan atractivo o
más como el de buscar
436 los valores
Chapterdel 14 óptimo
Dual anddelCutting
problema original
Plane o problema primal.
Methods
Los multiplicadores de Lagrange definen hiperplanos que pueden ser considerados los duales de puntos en un espacio
vectorial. Esta forma teórica de interpretar la dualidad proporciona una simetría entre los problemas primal y dual, la cual
pude considerarse perfecta
considered si los
as problemas son convexos.
dual to points in a vectorSispace.
no lo son,
The latheory provides la
imperfección a plasma
symmetry el denominado gap de
dualidad, o brecha dual,
betweenqueprimal
tiene una
and interpretación
dual problems geométrica muy sencilla
and this symmetry can be en este contexto
considered y mucha importancia en
as perfect
los algoritmos actuales de programación
for convex problems. lineal y no lineal.problems the “imperfection” is made clear
For non-convex
Los multiplicadores de Lagrange del problemaa primal,
by the duality gap which has que mideninterpretation.
simple geometric las sensibilidades del problema
The global theory, original a variacio-
nes en los coeficientes que determinan las condiciones de este problema, determinan una especiewe
which is presented in this section, serves as useful background when later de penalizaciones que
se introducen en su specialize to a local
función objetivo porduality theory
no utilizar that can be used
adecuadamente even without
los recursos convexity
que fijan and
esas condiciones. La función
which
de Lagrange incorpora así istoda
central to the understanding
la información disponibleofdel
theproblema.
convergence of dual algorithms.
La teoría que se exponeAs aencounterpoint
este apartado to Section 11.9general
es la base where equality
sobre laconstraints weredualidades
que construir considered de tipo local de los
before inequality constraints, here we shall first consider a problem with inequality
diversos problemas lineales y no lineales, incluso sin la existencia de convexidad. Sirve también para comprender mejor
constraints. In particular, consider the problem
los algoritmos de punto interior especializados en problemas de Programación Lineal, el dual del Símplex y otros afines.
De momento vamos a referirnos a problemas deminimize programación
fxmatemática como (1)
subject to fgx
minimizar .x/ ≤ 0
x2Rn
sujeta a x ∈
g.x/ 0 (A.2)
x 2 ;
⊂ E n is a convex set, and the functions f and g are defined on . The function g
donde 2 R es unp-dimensional.
n is conjunto convexoThe yproblem is not necessarily
las funciones, la escalarconvex,
f W Rnbut!weRassume that there
y la vectorial g W Rp ! Rn , están
is a feasible
definidas en . Este problema point. Recall that the primal function associated with (1) is defined for
no es necesariamente convexo pero se asume que tiene al menos un punto factible. Esta
z ∈ E p as
notación es perfectamente compatible con otras que se utilizan sin más que adoptar la convención de signos adecuada.
p
(A.2)=seinfdefine,
La función primal asociada al problema z fx para
gxun≤zz 2x R , como
∈
(2)
defined by letting the!.z/right Kınf ffside
D hand W g.x/
.x/ of z; xconstraint
inequality 2 g: take on arbitrary (A.3)
values. It is understood that (2) is defined on the set D = z gx ≤ z, for some
Se llega a ella dejando que el término de la derecha de la inecuación que definen las condiciones pueda tomar valores
x ∈
.
arbitrarios. Se entiende que (A.3) está
If problem definida
(1) has en el xconjunto
a solution ∗
D Df ∗fz=Wfx
with value ∗
g.x/ z; fpara
, then ∗
is algunos
the pointxon2 g.
p+1
Si el problema (A.2) tiene una solución x con un valor de la función objetivo igual a axis.
the vertical axis in E where the primal function passes through the f DIf f(1)
.x /, entonces f es
does not pC1 a solution, then f ∗ = inffx gx ≤ 0 x ∈
is the intersection
have
el punto de eje vertical de R donde la función primal se cruza con ese eje. Si (A.2) no tiene solución ese punto de
point.
cruce es f D Kınf ff .x/ W g.x/ 0; x 2 g.
El principio de dualidadTheseduality
deduceprinciple is derived from
de la consideración consideration
de todos of all hyperplanes
los hiperplanos que quedan that
porliedebajo de la función
below the primal function. As illustrated in Fig. 14.1 the intercept with the vertical
primal. Como ilustra la figura A.55, todos los hiperplanos que se indican se∗ cruzan con el eje vertical por debajo de f ,
axis of such a hyperplanes lies below (or at) the value f .
o en f .
r
w(z)
f*
Hiperplano
debajo de w(z)
En general, puede que no sea finita dentro del ortante —el equivalente en n dimensiones a un cuadrante en el plano o
un octante en tres dimensiones— positivo, R pC , pero la región donde está definida y es finita es convexa.
Proposición A.56 La función dual es cóncava en la región donde es finita.
minimizar
n
f .x/
x2R
sujeta a h.x/ D 0 (A.4)
g.x/ 0
x 2 ;
w (z)
ω (z)
hiperplano más alto
z
f∗ Duality gap
Figura A.56: Hiperplano más alto
ϕ∗
Fig. 14.2 The highest hyperplane
f * = ϕ∗
Fig. 14.3hiperplano óptimo
The strong duality theorem. There is no duality gap
Figura A.57: Expresión gráfica del teorema de la dualidad fuerte . No hay gap de dualidad
Fig. 14.3 The strong duality theorem. There is no duality gap
582 j Apéndice A
es L.x; ; / D f .x/ C Th.x/ C Tg.x/. Esta función penaliza que g.x/ sea positiva y que h.x/ no sea cero. La
función de Lagrange dual es
def
q.; / D Kınf L.x; ; /:
x
Esta función es cóncava por ser afín, aunque no lo sean ni h.x/ y g.x/. Puede ser 1 para algunos valores de y .
La función de Lagrange dual define una cota inferior del valor óptimo de la función objetivo de (A.5). Es decir
q.; / p si 0. El problema dual de A.5 es este:
maximizar q.; /
sujeta a 0;
minimizar f .x/
sujeta a g.x/ 0
We consider the subset of R2 defined
x 2 ; by:
n 2
donde f; g 2 R ! R. Y a este respecto el subconjunto de R definido así:
S = {(g(x), f (x) | x ∈ Rn )} .
S D f.g.x/; f .x//jx 2 Rn g:
El valor óptimo
The deloptimal f , estaráfdeterminado
problema,value por
∗ is determined by:
f D Kınf ftj.t; u/ 2 S; u 0g;
f ∗ = inf {t | (u, t) ∈ S, u ≤ 0} .
como se puede ver en la figura A.58, pues es el punto en t más bajo en la parte de la región factible (fijada por los valores
a la izquierda del eje t en el conjunto S ). El planteamiento de este problema sería, por ejemplo, la abstracción de uno
f∗
u
c 2006 Jean-Philippe Vert, (Jean-Philippe.Vert@mines.org) – p.33/67
Nonlinear optimization
Figura A.58: Sencillo esquema de un problema de optimización para interpretar geométricamente la dualidad lagrangiana
de determinar el coste mínimo global de una planta de fabricación de productos diversos con varios tipos de recursos,
el balance global de los cuales a lo largo de un periodo de tiempo debe ser menor o igual que cero. Es decir, que no se
consuman más de los disponibles.
La función de Lagrange de este problema es L.x; / D f .x/ C g.x/. La función de Lagrange dual, o simplemente
la función dual, es
q./ D Kınf ft C ug:
.u;t/2S
Según la figura A.59, el punto donde corta al eje t en su punto más bajo posible el hiperplano soporte del conjunto S
que define t C u D cte. —en este caso una línea recta— será el valor de la función dual.
The dual function for µ ≥ 0 is:
q(µ) = infn {f (x) + µg(x)}
x∈R
= inf {µu + t} .
(u,t)∈S A.5 Optimización y Programación Matemática j 583
S
µ u+t=cte
f∗
µ u+t=q(µ) q(µ)
u
Figura A.59: Función dual del problema para interpretar geométricamente la dualidad lagrangiana
Dual optimal d∗ c 2006 Jean-Philippe Vert, (Jean-Philippe.Vert@mines.org) – p.34/67
Nonlinear optimization
De todos esos hiperplanos soporte, con 0, el que obtiene el óptimo del problema dual,
d D maximizar
∗ q./ D maximizar Kınf ft C ug;
d0= sup q(µ) .u;t/2S
µ≥0
lo dará la intersección con el eje t del que se =
esquematiza
sup infen la{µu +A.60
figura t} .que toca los dos punto mas bajos de S que
se ven. El gap de dualidad en este ejemplo es laµ≥0 diferencia entre f y d : d f , dualidad débil.
(u,t)∈S
t
(µ,1)
S
∗
(µ,1)
f∗
d∗
Strong duality u
Figura A.60: Óptimo de la función dual del problema paraNonlinear
interpretar geométricamente
optimization
la dualidad lagrangiana
c 2006 Jean-Philippe Vert, (Jean-Philippe.Vert@mines.org) – p.35/67
S S
f∗
d∗
f∗
d∗
u u
La función
DUAL conjugada es de mucha utilidad en optimización
DESCRIPTION OF CONVEX para “convexificar” una función y para el cálculo del
FUNCTIONS
subdiferencial de una función convexa .
La transformación de Fenchel coincide con la transformación de Legendre, por Andrien-Marie Legendre, Francia,
1752-1833.
• Define a closed convex function by its epigraph.
(-y,1)
f(x)
Pendiente = y
x 0 x x
⋆
inf { f (x ) − xTy} = −f ( y),
x ∈ℜn
Si la función f .x/ no es convexa, el correspondiente gráfico para interpretar la función conjugada sería el de la
figura A.63.
Una consecuencia inmediata de la definición de función conjugada es la desigualdad de Fenchel-Young,
(0,−f ∗(y ))
∗
is closed and convex even if f isFigura
not A.63: Conjugada de Fenchel de una función no convexa
En la figura A.64 se indican algunos ejemplos de funciones conjugadas habituales. Son de Bertsekas [2009]. Se puede
verificar en cada una de ellas que la conjugada de la conjugada es la función original.
Ejemplo A.25 La función cuadrática f .x/ D 12 x > Qx, donde Q 0. La expresión y > x 1 >
2
x Qx es estrictamente
cóncava con respecto a y y tiene un punto máximo en y D Q 1 x por lo que
1 >
f .y/ D y Q 1
y:
2
Ejemplo A.26 La función f .x/ D log.x/.
(
>
1 log. y/ y<0
f .y/ D sup x y C log.x/ D
x>0 1 en cualquier otro caso:
Ejemplo A.27 La función f .x/ D kxk, una norma en Rn , siendo su norma dual asociada kxk D supkuk1 u> x, tiene
por función conjugada (
0 kyk 1
f .y/ D
1 en cualquier otro caso:
Esto se denomina función indicador de la norma dual de la esfera unidad. La norma dual de la norma euclídea es la
propia norma euclídea.
Uno de los elementos que lanzaron al estrellato este tipo de problemas fue el contar con la potencia de los algoritmos
de punto interior para tratar problemas de grandes dimensiones. Hay una amplia variedad de problemas de optimización
convexa no lineal que se pueden presentar como problemas de este tipo —que implican desigualdades denominadas de
matriz lineal (LMI)— y resolverse hoy en día muy eficientemente usando esos métodos de punto interior.
La programación semidefinida es una importante herramienta numérica para el análisis y resolución de problemas en
sistemas y teoría de control. También se usan cada día más en la optimización combinatoria como una técnica valiosa
para obtener límites en la solución de problemas NP-duros (de toma de decisiones). Sus aplicaciones crecen día a día
en geometría computacional, diseño de experimentos, teoría de información y comunicación, optimización de valores
propios en diseño de estructuras, diagnóstico médico y otros.
S n WD fM 2 Rnn W M > D M g:
Además
tr.Y > Z / D tr.Z Y > / D tr.Y Z > / D tr.Z > Y / D 1> .Y ı Z /1;
donde el signo ı indica el producto de Hadamard, por Jacques Salomon Hadamard, Francia 1865-1963.
Hadamard
A.5 Optimización y Programación Matemática j 589
Para ignorar coeficientes redundantes, y reducir el subespacio a Rn.nC1/=2 , en la transformación se han escalado los
coeficientes que no están en la diagonal principal. En este caso, si Y ; Z 2 S n ,
n n
Volviendo a los conos apuntados más arriba, SC y SCC , tienen las siguientes propiedades:
1. M < 0 ” 8N < 0, se tiene que hM ; N i > 0:
2. M 0 ” 8N < 0 no nula, se tiene que hM ; N i > 0
n
3. Si M y N 2 SC , se tiene que hM ; N i D 0 ” M N D 0:
Con la notación 4.1.
y definiciones expuestas, el problema SDP se plantea así.
CONIC PROBLEM 221
minimizar hC ; X i
X 2S n
sujeta a hA; X i D b
X < 0;
+0 P
3
S+
A = ∂H
Figura
Figure 89: A.66: Visualización
Visualizing positivedesemidefinite
un cono semidefinido positivo
cone in high en 3D. Dattorro
dimension: [2016]
Proper polyhedral
cone S+ 3
⊂ R3 representing positive semidefinite cone S3+ ⊂ S3 ; analogizing its intersection
S3+ ∩ ∂H with hyperplane. Number of facets is arbitrary n(an analogy not inspired by
La aplicación lineal se puede representar mediante m matrices, Ai 2 S matrix
eigenvalue decomposition). The rank-0 positive semidefinite
—teorema de Riesz-Fréchet—, por Frigyes
corresponds to origin
in R3 , rank-1 positive semidefinite matrices correspond to edges of polyhedral cone, rank-2
to facet relative interiors, and rank-3 to polyhedral cone interior. Vertices Γ1 and Γ2 are
3 3
extreme points of polyhedron P = ∂H ∩ S+ , and extreme directions of S+ . A given vector
C is normal to another hyperplane (not illustrated but independent w.r.t ∂H) containing
line segment Γ1 Γ2 minimizing real linear function hC , X i on P . (confer Figure 29,
Figure 33)
590 j Apéndice A
Riesz
Su dual,
maximizar 11y1 C 19y2
2 3 2 3 2 3
101 028 123
sujeta a y1 40 3 75 C y2 42 6 05 C S D 42 9 05
175 804 307
S < 0:
Formulación que puede tener sus ventajas en muchos casos frente a la del primal.
denominado de valores objetivo alcanzables. Si este conjunto tiene un elemento mínimo, ello quiere decir que existe un
x factible tal que f0 .x / K f0 .y/ para todo y factible por lo que x es el óptimo de A.6 con un valor de la función
objetivo óptimo único igual a f0 .x /. Es óptimo si y sólo si O f0 .x / C K.
El conjunto O f0 .x / C K se puede interpretar como el de valores que son peores, o iguales, a f0 .x /. La mayoría
de los problemas de optimización vectorial no tienen un punto óptimo ni valor óptimo.
f0 (x ⋆)
achievable value f0 (y), and is better than or equal to f0 (y). (Here, ‘better
Pareto, por Vilfredo Federico Pareto
than Italia,
or equal1848-1923,
to’ means ‘is below and to the left of’.) The lightly shaded
region is f0 (x⋆ )+K, which is the set of all z ∈ R2 corresponding to objective
values worse than (or equal to) f0 (x⋆ ).
hievable objective values
Pareto
O = {f0(x) | x feasible}
(see §2.4.2). The set f0 (x⋆ ) + K can be interpreted as the set of values that are
worse than, or equal to, f0 (x⋆ ), so the condition (4.57) states that every achievable
value falls in this set. This is illustrated in figure 4.7. Most vector optimization
problems do not have an optimal point and an optimal value, but this does occur
si f0 .x/ esifunfmínimo de in En
someeste decimos que f0 .x/ en un valor óptimo de Pareto1 del problema
casocases.
special A.6. Esto
0 (x) is the minimum value of O
e x is optimal O.
quiere decir que x es un óptimo de Pareto si es factible y para cualquier otro y factible, el que f0 .y/ K f0 .x/ implica
m
que f0 .y/ D f0 .x/. En otras palabras, cualquier
Example 4.9 punto
Best linear factible
unbiased y queSuppose
estimator. es mejor que
y = Ax + v, es decir
x,where v ∈ Rf
0 .y/ K f0 .x/, tiene
is
e x is Pareto optimal if f 0 (x) is a
a measurement
el mismo valor de la función objetivo
minimal
noise, y ∈ Rm value
is a vector of O
of measurements, and x ∈ Rn is a vector to
be estimated, given the measurement y. We assume that A has rank n, and that the óptimos de Pareto
que x. Esto se ilustra en la figura A.68. El conjunto de puntos
del problema de optimización vectorial como
measurement sesatisfies
noise ve en E lavfigura
= 0, E está
vv T =en
I, la frontera
i.e., (frontera
its components are de
zeroPareto)
mean o borde de O.
and uncorrelated.
A linear estimator of x has the form x b = F y. The estimator is called unbiased if for
b = x, i.e., if F A = I. The error covariance of an unbiased estimator
all x we have E x
is
E(x b − x)(x O
b − x)T = E F vv T F T = F F T .
O Our goal is to find an unbiased estimator that has a ‘small’ error covariance matrix.
oQ
We can compare error f 0 (xcovariances
) using matrix inequality, i.e., with respect to Sn
+.
This has the following interpretation: Suppose x b1 = F1 y, x
b2 = F2 y are two unbiased
estimators. Then the first estimator is at least as good as the second, i.e., F1 F1T
F2 F2T , if and only if for all c,
b1 − cT x)2 ≤ E(cT x
E(cT x b2 − cT x)2 .
A.5.7.2 Escalarización
La escalarización es una técnica para encontrar puntos óptimos de Pareto en un problema de optimización vectorial.
Se basa en la caracterización de puntos mínimos y minimales vía desigualdades generalizadas duales tal como se in-
1 Enanálisis económico se denomina óptimo de Pareto a aquel punto de equilibrio en el que ninguno de los agentes afectados podrá mejorar su
situación sin reducir el bienestar de cualquiera de los otros agentes.
A.5 Optimización y Programación Matemática j 593
trodujeron antes en este apéndice. Si se escoge un k 0 que es positivo en las desigualdades duales generalizadas,
consideremos el problema escalar
>
minimizar f0 .x/
Scalarization
sujeta a fi .x/ 0; i D 1; : : : ; m (A.7)
hi .x/ D 0; i D 1; : : : ; p;
to find Pareto optimal points: choose λ ≻K ∗ 0 and solve scalar problem
y en él sea x un punto óptimo. Este punto es óptimo de Pareto del problema A.6 de optimización vectorial. Esto se deduce
minimize
de la caracterización λT fdesigualdades
mediante 0 (x) duales de los puntos minimales de las desigualdades de la página 571,
así como de un observación
subject to fidirecta.
(x) ≤ 0, Si noi lo
= fuera,
1, . . . existiría
,m un y factible, que satisfaría f0 .y/ K f0 .x/ y que
además f0 .x/ ¤ f0 .y/. Como f .x/ f .y/
hi(x) = 0, i = 1, . . . , p
0 0 K 0 y no es cero, se tiene que > .f0 .x/ f0 .y// > 0, es decir,
> >
f0 .x/ > f0 .y/. Lo que contradice el supuesto de que x es óptimo del problema escalar A.7. El método de la
O
if x is optimal for scalar problem,
then it is Pareto-optimal for vector f 0 (x 1)
optimization problem
f 0 (x 3 )
λ1
f 0 (x 2 ) λ2
for convexFigura
vectorA.69: Escalarización.
optimization El conjuntocan
problems, O defind
valores alcanzables
(almost) all para un problema de optimización vectorial en el cono
Pareto
K D R2C y los valores óptimos de Pareto f0 .x1 /, f0 .x2 / y f0 .x3 /. Los primeros dos puntos se pueden obtener mediante
optimal points by varying λ ≻K ∗ 0 > >
escalarización: f0 .x1 / minimiza 1 u para todo u 2 O y f0 .x2 / minimiza 2 u para todo u 2 O, donde 1 ; 2 0. El
valor f0 .x3 / es óptimo de Pareto pero no se puede obtener mediante escalarización
Convex optimization problems 4–45
escalarización se puede interpretar geométricamente con la ayuda de la figura A.69. Un punto x es óptimo del problema
escalar A.7, es decir minimiza > f0 .x/ en el conjunto de puntos factibles, si y sólo si > .f0 .y/ f0 .x// 0 para
todos los y factibles. Esto es lo mismo que decir que el conjunto fu j > .u f0 .x// D 0g es un hiperplano soporte
o de apoyo del conjunto de soluciones alcanzables O en el punto f0 .x/. En particular,
En consecuencia, cuando se encuentre un punto óptimo del problema escalar no sólo se encuentra un punto óptimo de
Pareto del problema vectorial original sino un semiespacio en Rq como el de esta última expresión, de valores de la
función objetivo que no se pueden alcanzar.
Si el problema vectorial A.6 es convexo el problema escalar es también convexo por lo que se pueden obtener todos
(casi) los óptimos de Pareto resolviendo el problema escalar convexo. Para cada elección del vector de pesos K 0
se obtiene un punto óptimo de Pareto (normalmente) diferente.
decimos que x es mejor que y, o que x domina a y, si Fi .x/ Fi .y/, para i D 1; : : : ; q, y, para al menos un j ,
Fj .x/ < Fj .y/. En términos aproximados, x es mejor que y si x supera a y en todos los objetivos y lo domina en al
menos un objetivo.
En un problema de optimización multicriterio un punto óptimo x cumple que
Fi .x / Fi .y/; i D 1; : : : ; q;
minimizar Fj .x/
sujeta a fi .x/ 0; i D 1; : : : ; m
hi .x/ D 0; i D 1; : : : ; p;
con j D 1; : : : ; q. Cuando existe un punto óptimo, decimos que los objetivos son no competidores, ya que no hay que
establecer compromisos o hacer concesiones entre los objetivos: cada objetivo es tan pequeño como es posible hacerlo,
incluso si se ignorasen los demás.
Un punto óptimo de Pareto x op cumple lo siguiente: si y es factible y Fi .y/ Fi .x po /, para i D 1; : : : ; q, entonces
Fi .x po / D Fi .y/, i D 1; : : : ; q. Lo que se puede expresar de esta manera: un punto en óptimo de Pareto si y sólo si
es factible y no hay un punto factible mejor. En particular, si un punto factible no es óptimo de Pareto, al menos existe
otro punto factible que es mejor. Todo esto conduce a que para determinar el óptimo del problema nos podemos limitar
a analizar los puntos que son óptimo de Pareto.
Supongamos pues que x y y son óptimos de Pareto y que
donde A [ B [ C D f1; : : : ; qg. Dicho de otra forma, A es el conjunto de índices de las funciones objetivo para las
cuales x domina a y, B el de aquellas en las que x iguala a y y C el de las que y bate a x. Si A y C están vacíos,
los dos puntos x e y tiene exactamente los mismos valores de la función objetivo. Si no es el caso, A y C deben ser
simultáneamente no vacíos. Es decir, al comparar dos puntos óptimos de Pareto, u obtienen las mismas prestaciones en
términos de función objetivo, o uno mejora al otro en al menos uno de los objetivos.
Al comparar los puntos x e y decimos que hemos intercambiado mejores valores de funciones objetivos de i 2 A por
los peores de i 2 C . El análisis del intercambio óptimo es el estudio de cuánto peor pueden resultar diversas funciones
objetivo haciendo otras mejor, o más en general, el estudio de qué conjuntos de funciones objetivo son alcanzables y
cuáles no.
Como ejemplo, consideremos un problema con dos funciones objetivo (dos criterios de optimización). Supongamos
que x es un punto óptimo de Pareto con valores de las funciones objetivo F1 .x/ y F2 .x/. La pregunta que se podría uno
hacer es cuánto más grande debería ser F2 .z/ para determinar un punto factible z tal que F1 .z/ F1 .x/ a, donde a > 0
es cualquier constante. Grosso modo, nos preguntamos cuánto debemos pagar a la segunda función objetivo para obtener
una mejora de a en la primera. Si se debe admitir un incremento importante en F2 para obtener un pequeño decremento
en F1 , decimos que existe una contrapartida fuerte entre objetivos cerca de los puntos óptimos de Pareto de valor
.F1 .x/; F2 .x//. Si, por otro lado, se puede conseguir un decremento grande de F1 con un pequeño incremento de F2 ,
decimos que la contrapartida entre esos objetivos es débil cerca de los puntos óptimos de Pareto de valor .F1 .x/; F2 .x//.
De igual manera se puede considerar el caso de qué contrapartidas negativas se consiguen en la primera función
objetivo mejorando la segunda. Aquí buscamos cuánto menor se puede hacer F2 .z/ para obtener un punto factible z en
el que F1 .z/ F1 .x/ C a, con a > 0 una constante como antes. En este caso se obtiene una mejora (reducción) en F2
comparada con F2 .x/. Si esa mejora o beneficio es grande (aumentando un poco F1 se obtiene una reducción importante
de F2 , decimos que los objetivos presentan contrapartidas fuertes. Si es pequeño, contrapartidas débiles cerca del valor
óptimo de Pareto .F1 .x/; F2 .x//.
El conjunto de valores óptimos de Pareto de un problema de optimización multicriterio se denomina superficie óptima
de contrapartida, si q > 2, o curva óptima de contrapartidas cuando q D 2. En general, su análisis se reduce a los
puntos óptimos de Pareto.
A.6 Elementos de cálculo integral, campos escalares y campos vectoriales j 595
Ejemplo A.29 Consideraremos como ejemplo de todo esto el problema de mínimos cuadrados regularizado definido
así: dada A 2 Rmn y b 2 Rm , encontrar un x 2 Rn que cumpla estos dos criterios u objetivos:
F1 .x/ D kAx bk22 D x > A > Ax 2b> Ax C b> b. Una medida de la bondad del ajuste.
Vector Optimization Examples
F2 .x/ D kxk22 D x > x. Una medida del tamaño del vector solución.
Regularized
La idea es encontrar Least-Squares
un vector x para (Continued)
el cual el ajuste sea bueno y su norma no muy grande.
En la figura A.70 se puede ver la superficie o curva de contrapartidas de este problema. La zona sombreada es el
conjunto de For
valores alcanzables
example por data
problem el problema. La línea
A ∈ R100×10 andmás
b gruesa
∈ R100el, we
la óptima de contrapartidas
have the formada por puntos
following set of
óptimos de Pareto. 2 2
achievable values ||Ax − b||2 , ||x||2 and optimal trade-off curve.
0.25
F 2 (x ) = ||x || 22
0.2
O
0.15
0.1
0.05
γ = 100
0
80 85 90 95 100 105 110 115 120
F 1 (x ) = ||Ax − b || 22
Figura A.70: Curva óptima de contrapartidas del problema de mínimos cuadrados regularizado. La zona sombreada es el
The shaded set is the set of achievable values, while the thick line is the optimal
conjunto de puntos alcanzables, .kAx bk22 ; kxk22 /, que considera el problema con A 2 R10010 y b 2 R10 . La curva de
trade-off curve formed by Pareto optimal points.
óptimos de Pareto es la destacada en la parte inferior izquierda
Andre Tkacenko (JPL) EE/ACM 150 - Lecture 10 May 3, 2012 9 / 11
donde
D 2 =1 . Cualquier
> 0 determina un punto óptimo de Pareto del problema.
If we follow this procedure for a
SECTION 15.1 Double Integrals over Rectangles 1029 ing boxes, we get an approximat
Rij − fx i21, x i g 3 fyj21, yj g − hsx, yd |x i21 < x < x i , yj21 < y < yj j
(See Figure 5.) This double sum
A.6 Elementos de cálculo integral, campos escalares y campos vectoriales j 597
each with area DA − Dx Dy. chosen point and multiply by th
y z
R ij (xi, yj)
d
If we choose a sample point sx ij*, y ij*d inFigura ij , then we can approximate the part
each RA.73: of R.4Stewart [2015]
FIGURE
División o mallado del rectángulo FIGU
S that lies above each Rij by a thin rectangular box (or “column”) with base Rij and height
f sx ij*, yij*d as shown in Figure 4. (Compare with Figure 1.) The volume of this box is the Copyright 2016 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. Due to electron
Editorial review has deemed that any suppressed content does not materially affect the overall learning experience. Cengage Learning reserv
height ofen thenbox times the area of the base rectangle:
subintervalos Œy ; y de igual longitud y D .d c/=n. Cada subrectángulo R D Œx ; x Œy ; y D
i 1 i ij i 1 i j 1 j
f.x; y/ j xi 1 x xi ; yj 1 y yj g tiene un área A D xy.
Si escogemos un punto f de sx ij*muestra
, yij*d DA .x ; y / de cada Rij , la parte de S encima
40621_ch15_p01_hr_1027-1043.indd 1029 de él se puede aproximar por una
ij ij
“columna” o paralelepípedo rectangular de base Rij y altura f .xij ; yij /. Su volumen es f .xij ; yij /A. Siguiendo este
patrón,
If we follow en todos los
this procedure for rectángulos
all the rectanglesde R, andeladd
volumen aproximado
the volumes de S será
of the correspond-
ing boxes, we get an approximation to the total volume of S:
m X
X n
m n
V f .xij ; yij /A:
3 V< o o f sx ij*, yij*d DA
i−1 j−1 i D1 j D1
Aproximación
(See Figure quesum
5.) This double serámeans
tantothat
mejor
for cuanto más se amplíen
each subrectangle las divisiones
we evaluate f at the m y n, es decir,
chosen point and multiply by the area of the subrectangle, and then we
Xm add
X n the results.
V D lKım f .xij ; yij /A:
z m;n!1
iD1 j D1
En general, esto es cierto si se supone que f está acotada en R, f es discontinua sólo en un número finito de curvas y
eserved. May not be copied, scanned, or duplicated, in whole or in part. Due to electronic rights, some third party content may be suppressed from the eBook and/or eChapter(s).
ent does not materially affect the overall learning experience. Cengage Learning reserves the right to remove additional content at any time if subsequent rights restrictions require it.
las integrales existen.
Se debe al italiano Guido Fubini, Venecia, 19 de enero de 1879-Nueva York, 6 de junio de 1943.
4/10/15 11:45 AM
Fubini
598 j Apéndice A
A.6.1 Integrales de línea 16.2 Vector Fields and Line Integrals: Work, Circulation, and Flux
Δs k
n
(x k , yk , z k )
y Sn = a
t=a k=
x
y se cumple que f es continua y las funciones g, h y k tienen derivadas de primer orden continuas, esta suma tiende a
un límite cuando n tiende a infinito y las longitudes sk a cero.
Definición A.92 Si la función f está definida en la curva C , paramétricamente dada por r.t/ D g.t/ iCh.t/ jCk.t/ k,
a t b, la integral de línea de f938
en C es, supuesto exista ese límite,
I X n
f .x; y; z/ D lKım f .xk ; yk ; zk / sk
C n!1
kD1
por lo que s
I l b 2 2 2
dx dy dz
f .x; y; z/ D f .xk ; yk ; zk / C C dt:
C dt dt dt
a
En forma vectorial I Z b
f .x; y; z/ D f .r.t// jr0 .t/j dt:
C a
F.xi ; yi ; zi / Œsi T.ti / D ŒF.xi ; yi ; zi / T.ti /si
where Tsx, y, zd is the unit tangent vect
y en el total en toda la curva C , aproximadamente
that these approximations ought to bec
n
X define the work W done by the force fi
ŒF.xi ; yi ; zi / T.xi ; yi ; zi /si namely,
iD1
donde T.x; y; z/ es el vector unitario tangente a C en el punto .x; y; z/. Esta aproximación será tanto mejor cuanto más
12
grande sea n y, en el límite, cuando n ! 1, el trabajo será (el límite de las sumas de Riemann) W− y C
Fsx, y, zd
I I
RD F.x; y; z/ T.x; y; z/ ds D F T ds:
C C
Equation 12 says that work is the line in
El trabajo es pues la integral de línea con respecto a la longitud del arco del componente tangencial deof
component la the
fuerza.
force.
Si la curva se expresa paramétricamente mediate r.t/ D x.t/ i C y.t/ j C z.t/ k, entonces T.t/ r0 0
If the curve C is por
D .t/=jr .t/j lo by the vect
given
que la expresión del trabajo queda
l b
Tstd − r9stdy r9std , so using Equation 9
Z
| |
b
r .t/
0
W D F.r.t// jr0 .t/j dt D F.r.t// r0 .t/ dt:
yF
jr0 .t/j a b r9std
a
W− Fsrstdd
Definición A.93 Sea F un campo vectorial continuo definido en una curva C dada por la función r.t/, a t b. La
a | r9std
integral de línea de F a lo largo de C es
I l bCopyright 2016 Cengage Learning.IAll Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. Due to elect
Editorial review has deemed that any suppressed content does not materially affect the overall learning experience. Cengage Learning res
F dr D F .r.t// r0 .t/ dt D F T ds
C a C
40621_ch16_ptg1_hr_1118-1127.indd
Teorema A.60 Teorema fundamental 1122
de las integrales de línea. Sea C una curva continua dada por la función r.t/,
a t b. Sea f una función derivable de dos o tres variables cuyo vector gradiente rf es una función continua en
C . Entonces I
rf d r D f .r.b// f .r.a//
C
602 j Apéndice A
Calculemos ahora la integral doble del teorema de Green en la que P D y y Q D x. Se obtiene que
“ “
@Q @P
dA D .1 . 1// dA
@x @x
D D
“
D2 1 dA
D
D 2 .área del círculo unidad/
D 2:
Si se piensa en el operador r como un vector de coeficientes @=@x, @=@y y @=@z, el producto vectorial de r con el
campo vectorial F es
ˇ ˇ
ˇ i j kˇ
ˇ ˇ
ˇ@ @ @ˇ
r F D ˇ @x @y @z ˇˇ
ˇ
ˇP Q Rˇ
@R @Q @P @R @Q @P
D iC jC k
@y @z @z @x @x @y
D rot F:
De aquí que
rot F D r F:
Con estos conceptos, la expresión del teorema de Green puede adoptar estas dos nuevas formas
s
F dr D .rot F/ k dA
C
D
s
F n ds D div F.x; y/ dA
C
D
Rayleigh Ritz
independientemente al parecer, concibieron la idea de utilizar esa equivalencia para calcular numéricamente soluciones
de problemas habituales de física mediante la sustitución de los problemas de cálculo de variaciones por otros más
simples de obtención de extremos con un número finito de parámetros por determinar.
Sus métodos atrajeron pronto a ingenieros y físicos —los principios físicos de la mecánica son más sugestivos que las
ecuaciones diferenciales— y se empezaron a aplicar a muchos problemas cercanos. El resultado era lógica consecuencia
del esquema conceptual de cómo se tratan en análisis matemático —y en muchos aspectos de la vida cotidiana— los
problemas difíciles: Un problema P con solución S se reemplaza por otro más o menos relacionado o próximo, Pn , más
simple de resolver, cuya solución es Sn . Luego se mejora la aproximación Pn de P de tal forma que la solución Sn , paso
a paso, tienda a la deseada S . Lo esencial es escoger la sucesión de aproximaciones Pn de una manera adecuada.
Una de las cuestiones más interesantes y con más posibilidades de futuro que contemplan las aplicaciones de las mate-
máticas para simular y resolver muchos problemas de la vida cotidiana es el de utilizar modelos matemáticos expresados
en forma de ecuaciones diferenciales e integrales que reproducen procesos y fenómenos complejos de la física y otras
ciencias naturales y sociales cuyos orígenes y evolución suelen estar distribuidos en el tiempo y en el espacio. Se mo-
delan de esta forma la propagación del sonido o del calor, la electrostática, la electrodinámica, la dinámica de fluidos,
la elasticidad, la mecánica cuántica, las emisiones de contaminantes, los fenómenos meteorológicos, la valoración de
opciones y derivados financieros y muchos otros. El enfoque para resolverlos de forma práctica sigue exactamente el
principio enunciado más arriba.
La idea esencial que seguiremos en estas notas es la de convertir el problema con ecuaciones diferencia-
les, integrales o ecuaciones en derivadas parciales, suponiendo que tiene solución con unas determinadas
características, en uno formulado en términos de cálculo de variaciones de funciones continuas —la mi-
nimización de un funcional— para así caracterizar en qué condiciones se da una solución u óptimo del
mismo. Luego se discretiza ese problema continuo con un número infinito de grados de libertad mediante
un problema discreto, o sistema de ecuaciones, con un número de variables finito y más fácil de resolver y
se resuelve mediante alguna de las diversas técnicas que existen para ello.
Cuando se empieza a trabajar y aprender métodos numéricos para resolver problemas matemáticos el de las diferencias
finitas sigue ideas muy intuitivas: simplemente se aproxima una derivada de una curva en un punto de ella por una línea
secante. Si se estudia el método del volumen finito, también su idea es bastante sencilla: cada elemento de volumen es
simplemente un pequeño equilibrio del flujo o de fuerzas. El método de los elementos finitos sigue esa senda más o
menos, con alguna pequeña modificación.
La base matemática para el método de los elementos finitos se encuentra en el entorno de los espacios de Hilbert.
Un espacio de Hilbert es una manera de tratar una función como un vector, por lo que podemos hacer algunos trucos
de matemáticas vectoriales con él. Recordemos que un vector es una serie de valores, o escalares, multiplicados por
un conjunto de vectores de una base ortogonal (como los vectores unitarios que definen la direcciones x, y y z, o los
i , j y k). Podemos utilizar una técnica paralela para definir una función. Primeramente seleccionamos un conjunto
de funciones de base en vez de aquellos vectores (esas funciones deben ser ortogonales entre sí) y luego definimos la
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 605
función original como una suma de unos coeficientes multiplicados por las funciones de la base: de esta forma
1
X
uD ˛k k ;
kD1
Este proceso es lo que se entiende por discretización en las técnicas de los elementos finitos. La discretización que se
utiliza está determinada por una malla o retícula (una retícula de por ejemplo 2020 daría como resultado 441 funciones
base únicas) —mesh como la de la figura A.80— y normalmente se emplean dos funciones de base a cada lado de un
elemento de la malla.
Con esas funciones de base la solución de nuestra ecuación diferencial se representaría de esta manera
n
X
u0 D ˛k k :
kD1
@2 u @2 u
u.x; y/ D C D f .x; y/; Poisson
@x 2 @y 2
por Siméon Denis Poisson, Francia, 1781-1840. la matriz A es muy fácil de calcular y se denomina la matriz de rigidez
en homenaje a los principios de las técnicas de elementos finitos en problemas de elasticidad. Esta matriz —muy dispersa
606 j Apéndice A
(con pocos coeficientes distintos de cero) y diagonal dominante— está formada por el producto interior de las funciones
de base con ellas mismas, multiplicadas si es el caso por la constante que aparezca en la ecuación original. El vector
solución de ese sistema se multiplica por el de las funciones de base y se obtiene la del problema original, o una que se
aproxima mucho a la misma.
Resumiendo, el procedimiento de resolución del método de los elementos finitos consta de las siguientes fases u
operaciones:
Conversión del problema original de dimensión infinita, mediante las propiedades de los espacios de Hilbert, en
uno similar próximo en un espacio vectorial de dimensión finita. En éste se estudia la existencia y unicidad de la
solución.
Creación de una formulación débil del problema original con la que podamos usar las herramientas de producto
interior y medida.
Discretización del dominio de definición del problema y elección de una base de funciones que sean ortogonales
entre si.
Conversión de los productos interiores entre funciones de base en sistemas lineales de ecuaciones.
Resolución de ese sistema lineal resultante mediante técnicas de matrices dispersas.
Las ventajas de este método frente a otros son muchas en bastantes ámbitos de la ingeniería, la ciencia y la investigación
por lo que su extensión y precisión, así como los algoritmos que emplea, cada vez son más amplios, ambiciosos y
potentes.
Para concretar con cierto detalle los pasos
Lesson 1 del método, vamos a desarrollar el estudio de un problema preciso habitual.
Seguiremos esencialmente el trabajo de Francisco Javier Sayas [2015].
ΓD
ΓN
Ω
2
We are thus given a polygon in the plane R . We call this polygon Ω. Its boundary
en el plano R2 , “pegado” o adherido en su frontera a la curva que define , dividida ésta en dos partes: la que define
is a closed polygonal curve Γ. (There is not much difference if we suppose that there is
D , que materializan unas condiciones de contorno de Dirichlet —por Johann Peter Gustav Lejeune Dirichlet,
Alemania 1805-1859— y la N , con condiciones de3 contorno de Neumann —por Karl Gottfried Neumann,
Alemania 1832-1925—. En términos físicos, las condiciones de Dirichlet determinan unos posibles desplazamientos
físicos de esa frontera, mientras que las de Neumann unas posibles tensiones máximas o mínimas.
La ecuación en derivadas parciales propiamente dicha, la primera en la formulación, se denomina habitualmente
ecuación difusión-reacción. El término que representa la difusión es u y el de reacción cu, cuando c > 0. La
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 607
Dirichlet Neumann
La función v es una función de prueba, continua, en principio definida en D [ . En esa expresión hay dos
tipos de integrales: las dos del miembro de la izquierda son integrales de superficie, en el dominio . La del derecho es
una integral lineal en el borde o frontera . Hemos prescindido de los diferenciales correspondientes para compactar la
notación. El punto de la segunda integral del miembro de la izquierda se refiere al producto interior de dos vectores, es
decir ru rv D @u @v
@x @x
C @u @v
@y @y
.
El resultado sería aplicable también a tres dimensiones: las dos integrales de la izquierda serían de volumen; la de la
derecha de superficie.
Figura A.82: Región o volumen V acotada por la superficie o frontera S D @V con la normal a la superficie n
La identidad expresada es una consecuencia del resultado del teorema de la divergencia que dice que para un sub-
conjunto V 2 Rn —en el caso de tres dimensiones V representa un volumen como el de la figura A.82—, en principio
compacto, de superficie, o borde, S continua a trozos (expresada por @V D S), si F es un campo vectorial con derivadas
parciales de primer orden continuas definido en un entorno de V , se cumple que
• —
.r F/ dV D .F n/ dS:
V S
608 j Apéndice A
Como no sabemos el valor de @n u en D imponemos que la función v sea cero en esa parte de la frontera o borde: v D 0
en D . A partir de ahí,
Z Z Z Z
ru rv C c uv D fv C g1 v; si v D 0 en D :
N
La expresión del miembro de la izquierda es lineal en las funciones u y v. Es una forma bilineal de las variables u y v.
La de la derecha es lineal en v. Todavía no hemos hecho uso de la condición de Dirichlet en la frontera, u D g0 en D .
La formulación débil del problema queda por fin así:
en D Z
‚u D g 0
Z
R R
Determinar una función u tal que: ru rv C c uv D f v C N g1 v;
para todo v tal que v D 0 en la frontera D :
En esta formulación la condición de Dirichlet —desplazamientos dados— se impone como una condición aparte que
ha de cumplir la función de prueba v. Se denomina condición esencial de borde o frontera. La condición de Neumann
—fuerzas normales— aparece como una condición de frontera natural dentro de la formulación del problema.
Como indicábamos anteriormente, la función de prueba v chequea la ecuación que satisface u. Juega un papel de
función de ponderación para comprobar el comportamiento medio de la ecuación. En alguna referencia interesante se la
denomina desplazamiento virtual para enfatizar que no es una incognita sino algo utilizado para formular el problema
de esta manera: mediante desplazamientos virtuales de la realidad, si se llega a conocer.
El segundo es el espacio de Sobolev —por Sergéi Lvóvich Sobolév, Rusia 1908-1989—. Es une espacio vectorial de
funciones dotado de una norma que es combinación de normas Lp de la función y de sus derivadas hasta un orden dado.
Formalmente para dos dimensiones es
ˇ
ˇ @u @u
H 1 ./ D u 2 L2 ./ ˇˇ ; 2 L2 ./ :
@x1 @x2
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 609
Las derivadas de este espacio se entienden en un sentido débil que hagan que el espacio sea completo —si toda sucesión
de Cauchy en él tiene límite— y por lo tanto sea un espacio de Banach. En sentido débil no es sino una generalización del
concepto de derivada a funciones no necesariamente derivables pero si integrables localmente en el sentido de Lebesgue
en un dominio dado de Lp ./.
La norma correspondiente de este espacio completo es
Z Z 1=2 Z ˇ ˇ2 Z ˇ ˇ2 Z !1=2
ˇ @u ˇ ˇ @u ˇ
kuk1;D 2
jruj C juj2 D ˇ ˇC ˇ ˇ C juj2 ;
ˇ ˇ ˇ ˇ
@x1 @x2
denominada en ingeniería norma de energía. Las funciones que usan esta forma finita son funciones de energía finita.
Intuitivamente, un espacio de Sobolev es un espacio de funciones con derivadas de orden suficiente para un dominio de
aplicación determinado y equipado con una norma que mida adecuadamente tamaño y regularidad en las funciones. Un
subespacio de interés de ese espacio H 1 ./ es
˚
H1D ./ D v 2 H 1 ./ jv D 0 en D :
Establecido todo este aparato matemático, la formulación débil del problema original queda así:
1
‚ Determinar una función u 2 H ./ tal que
Z D g0 en D Z
u Z Z
ru rv C c uv D fv C g1 v; para todo v 2 H1D ./:
N
lo que quiere decir que v está en el mismo espacio de la función que se busca u pero satisface una versión homogénea
de la condición esencial de borde o frontera.
Los datos del problema están en los siguientes espacios f 2 L2 ./, g1 2 L2 .N / y g0 2 H 1=2 .D /. El segundo
espacio restringe el dominio de las integrales en la línea que marca N en vez de en . Que g0 2 H 1=2 .D / quiere
decir que existe al menos una función u0 2n H 1 ./ tal que u0 D og0 en D . De hecho, todas las demás que cumplen esta
˚
condición pertenecen a u0 C H1D ./ D u0 C vjv 2 H1D ./ D w 2 H 1 ./jw D g0 en D . Que g0 pertenezca
a H 1=2 .D / significa que no se busca la solución en el conjunto vacío.
Galerkin
del espacio H 1 ./ mediante funciones polinomiales sencillas por tramos o trozos. Esto transformará el espacio original
de dimensión infinita en un subespacio de dimensión finita de funciones admisibles fáciles de obtener.
Para conseguirlo se utiliza una partición del dominio de cálculo en subdominios, a los que se denomina mallado.
El más sencillo es aquel en el que es un intervalo de la recta real, por ejemplo el abierto .0; 1/, en el que se tiene
la partición 0 D x0 < x1 < < xn D 1 dividida en subintervalos Ij D .xj 1 ; xj / de longitud hj D xj xj 1 ,
j D 1; : : : ; n. Si h D mKax hj y Vh es el espacio lineal de funciones v tal que v 2 C 0 .Œ0; 1/, vjŒxi 1 ;xi es un polinomio
lineal, i D 1; : : : ; n, perteneciente por tanto a P1 , y v.0/ D 0.
610 j Apéndice A
0.4 Piecewise Polynomial Spaces 7
Let 0 = x0 < x1 < ... < xn = 1 be a partition of [0, 1], and let S be the
linear space of functions v such that
i) v ∈ C 0 ([0, 1])
Para cada i D 1; : : : ; n se define la función i como una delta de Kronecker, por Leopold Kronecker, Polonia
1823-Alemaniaii) v|[xdei−1
1891, tal,x
forma
i]
is que
a linear polynomial, i = 1, ..., n, and
(
iii) v(0) = 0. 1 si i D j
We will see later that S ⊂iV D ıijeach
.xj. /For D i = 1, .., ;n define φ by the require-
0 si i ¤ j Polynomiali Spaces
0.4 Piecewise 7
ment that φi (xj ) = δij = the Kronecker delta, as shown in Fig. 0.1.
según se indica en la figura A.83.
0.4 Piecewise Polynomial Spaces – The Finite Element
i
Method
Let 0 = x0 < x1 < ... < xn = 1 be a partition of [0, 1], and let S be the
linear space of functions v such that
i) v ∈ C00 ([0, 1]) xi 1
ii) v|[xi−1 ,xi ] is a Figura
linearA.83:
polynomial, i lineal
Función de base = 1,por ...,tramos
n, and
iii) v(0) = 0.
Se tieneWe
que will
fi W 1see
ilater
Fig.
that 0.1.
S ⊂de piecewise
VV.h .For linear
each basis
if= function φ
ng es una base El conjunto i g 1,
es ..,
unanbasedefine i by
nodaliφde Vh ythe
fv.xrequire-
i /g son los valores
nodales dement
una función v. Los puntos .x / se denominan nodos o nudos.
that φi (x0 j ) = δij i = the Kronecker delta, as shown in Fig. 0.1.
DadaPuna funciónLemma.
(0.4.1) v 2 C .Œ0;
{φ1/, el ≤
i: 1 i ≤ n} iso función
interpolante, a basisdefor interpolación,
S. vh 2 Vh de v se obtiene mediante
n
vh D i D1 v.xi /i como se aprecia en la figura A.84. Si v 2 Vh ) v D vi .
(0.4.2) Remark.Vh {φi } is called a nodal basis for S, and {v(xi )} are the nodal
values of a function v. (The points {xi } are called the nodes.)
n
Proof. The set {φi } is linearly independent since i=1 ci φi (xj ) = 0 implies
cj = 0. To see that it spans S, consider the following:
0 xi 1
(0.4.3) Definition. Given
n v ∈
Figura A.84: Aproximación C 0 ([0,
mediante 1]),
vh de the interpolant
una función I ∈ S of v is
de base lineal porvtramos
determined by vI : = i=1 v(xi )φi .
Fig. 0.1. piecewise linear basis function φ i
Otra partición —quizás la más utilizada— consiste en triangularizar un dominio de dos dimensiones, como , en
pequeñosClearly,
triángulos que lo cubran enteramente. En la figura A.85
the set {φi } spans S if the following is true. se ve la correspondiente al dominio con el que venimos
(0.4.1)en Lemma.
experimentando estas notas. {φi : 1 ≤ i ≤ n} is a basis for S.
Para simplificar se supone que la frontera o borde, , del dominio es una curva poligonal. Si no lo es, primero se le
aproxima(0.4.4) Lemma.
a un polígono. v ∈ S ⇒ v consiste
La triangularización = vI . en dividir en un conjunto de triángulos Th D K1 ; : : : ; Km que
(0.4.2) Remark. {φ i } is called a nodal basis for S, and {v(xi )} are
no se solapen y que solo compartan lados completos, o lo que es lo mismo, que ningún vértice
the nodal
de ningún triángulo caiga
Proof.
values
en algún lado of
de otro. I is linear
v −aSevfunction
cumplirá que on each
v. (The [xi−1{x
points , xi }i ] are
andcalled
zero atthethe endpoints, hence
nodes.)
must be identically zero. [independent since n ⊓
⊔
Proof. The set {φi } is linearly D K D K1 [ K2 [ Km : i=1 ci φi (xj ) = 0 implies
cj = 0. To see that it spans K2T
S, consider the following:
We will now prove the followingh approximation theorem for the interpolant.
El subespacio Vh de H 1 ./ es ahora
(0.4.3) Definition. Given v ∈ C 0 ([0, 1]), the interpolant vI ∈ S of v is
(0.4.5) Theorem. Let hn= maxˇ1≤i≤n xi − xi−1 . Then
determined by vI : = i=1 v(xiˇˇ)φi .
Vh D funciones v 2 C./ˇvjK es lineal para todo
′′ K 2 T h ; v D 0 en ;
u − uI E ≤ Chu
Clearly,
for all u the
∈ Vset {φi } C
, where spans S if the following
is independent is true.
of h and u.
(0.4.4) Lemma. v ∈ S ⇒ v = vI .
Proof. v − vI is linear on each [xi−1 , xi ] and zero at the endpoints, hence
must be identically zero. ⊓
⊔
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 611
x2
donde vjK 2 P1 se refiere a la función v restringida a K. Recordemos que P1 es el espacio de polinomios lineales del
tipo a0 C a1 x1 C a2 x2 , donde los coeficientes a0 , a1 y a2 serían los parámetros de cada triángulo.
Los parámetros que definirán la función v 2 Vh serán K los valores
K’ v.Ni / de v en los nodos Ni ; i D 1; : : : ; M de Th
excluyendo aquellos en los bordes pues v D 0 en . Los valores de los nodos de la triangularización del dominio son los
grados de libertad que determinan un elemento de Vh . Una numeración
x1 de esos nodos para nuestro dominio de trabajo
sería la de la figura A.86. Los nodos se indican mediante el vector xi , donde i D 1; : : : ; M , el número de nodos.
There is a particularly interesting aspect of this basis of15Vh that makes it especial. In
general if you have a basis2 of Vh you know
6 that11you can decompose elements of Vh as a
unique linear combination of the elements of the basis,
16 that is,
12 18
3 7
N
X
1 uh = uj ϕ j
j=1
8 17
4
is a general element of Vh . With this basis, the13coefficients are precisely the values of uh
on the nodes, that is, uj = uh (pj ). Hence, the coefficients of uh in this basis are something
9
more than coefficients: there are values of the function on points.
Figura A.86: Numeración de los nodos del dominio
An important result. Figure As you1.7:
canGlobal
see, when defining
numbering the space Vh we have just glued
of nodes.
together P1 functions on triangles. Thanks to the way we have made the triangulation
Si se fija un nodo
and del dominio
to the way weychose
se lethe
asocia
localel valor of
degrees 1 yfreedom,
0 a todos
whatloswedemás, existe
obtained was una función única, i 2 Vh ,
a continuous
función de base de nodo, tal
function. Onequecan think, is this so important? Could I take something discontinuous? At
this level, the answer is a very load ( and clear NO! The reason is the following result that
1
allows us to know whether certain functions
1 si iare D in
j H (Ω) or not.
i .xj / D ıij D ; i; j D 1; : : : ; M:
Theorem. Let uh be a function si i ¤ on
0 defined j a triangulation of Ω such that
8 17
4
13
612 j Apéndice A
Figure 1.7: Global numbering of nodes.
i
xi
uh ∈ H 1 (Ω) ⇐⇒ uh is continuous.
There is certain intuition to be had on why this result is true. If you take a derivative of
a piecewise smooth function, you obtain Dirac distributions along the lines where there
are discontinuities. Dirac distributions are not functions and it does not make sense to
Figura A.88: Soporte de dosoffunciones de base del dominio
see if the are square-integrable or
Figure not.
1.9: Therefore,
Supports two nodalifbasis
there are discontinuities, the function
functions
Para ello:
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 613
Hemos convertido el espacio de Sobolev en el que buscamos la función solución en uno de dimensión finita, Vh .
Es decir, hemos reducido el problema a calcular uh en los vértices de una triangularización —los nodos— y a un
número finito de incógnitas.
Hemos sustituido las condiciones tipo Dirichlet fijando condiciones a los nodos Dirichlet, lo que reduce aún más el
número de incógnitas: a los nodos independientes.
Hemos reducido el espacio de prueba de H1D ./ a un subespacio discreto VhD , lo que reduce un número infinito
de pruebas en la formulación débil a un número finito de ecuaciones lineales.
Para obtener finalmente el sistema de ecuaciones lineales escribimos uh en términos de las funciones de base de los
nodos: X X
uh D uj j C uj j :
j 2Ind j 2Dir
y reordenando llegamos a
i Z Z Z Z i Z Z
rj ri C c j j uj D f i C g1 i rj ri C c j j g0 .xj /:
N
j 2Ind j 2Dir
Este es un sistema de ecuaciones lineales con un número de ecuaciones igual al número de incógnitas (# Ind D
dim VhD ), que son precisamente los valores de la función uh en los nodos libres de la triangularización llevada a cabo.
Hay dos matrices importantes en este sistema de ecuaciones, la matriz de rigideces,
Z
W ij D rj ri
y la matriz de masas Z
M ij D j i :
Ambas
R sonR simétricas. La de masas es definida positiva. La de rigideces semidefinida positiva. Si hacemos bi D
f i C N g1 i , i 2 Ind, se llega a
i ! i !
W ij C cM ij uj D bi W ij C cM ij g0 .xj /; i 2 Ind:
j 2Ind j 2Dir
Estas matrices poseen patrones de dispersidad muy pronunciados pues sólo interactúan nodos que están unidos entre si
por lados de triángulos. Ello las hacen propicias para ordenaciones en torno a la diagonal principal. Su manipulación
es sencilla y las operaciones necesarias para resolver los gigantescos sistemas de ecuaciones lineales a que pueden dar
lugar son perfectamente tratables por los ordenadores disponibles actualmente.
614 j Apéndice A
(a) x f y=y(x)=f(x)
FUNCIONES
Input 1: argument x Input 2: function
(independent y=y(x) (primary Functional Output: functional
variable) dependent variable) operator value J (a scalar)
Input 3: derivative
of primary y'=dy/dx
dependent variable
FUNCIONALES
Figure 1.1.
Figura A.89: Diagrama deBlock diagrams
bloques que that illustrate
ilustra key differences
la diferencia between
formal functions
en una and functionals
dimensión entre unain one dimension.
función ordinaria y un fun-
(a) An ordinary function y = y(x) = f (x) of the independent variable x; (b) a functional J [y] = J (x, y) of
cional. (a) Una función ordinaria y D y.x/ D f .x/ de una variable
′ independiente x; (b) Un funcional
′ J.y/
the function y(x); (c) a functional J [y] = J (x, y, y ) of the function y(x) and its derivative y = dy/d x.
D J.x; y/ de la
función y.x/; Un funcional J.y/ D J.x; y; y 0 / de la función y.x/ y su derivada y 0 D dy=dx
El funcional básico
§1.2.3. unidimensional
Basic lineal más típico tiene la forma
1D Functional
Z b
To keep things focus on one specific type of functional, called the basic
J.y/simple,
D F inx;this Chapter
y.x/; y 0 .x/ we
dx; x D Œa; b; a b; y.a/ D yOa ; y.b/ D yOb :
one-dimensional functional.
a It has the form (1.2), under additional restrictions:
En palabras, la función yDb y.x/ está definida en el segmento x 2 Œa; b, a b, de la recta real. Dado un x, y.x/ se
0
supone real y único.
J [y]Además, Fy.x/ es continua
y ′ (x) , y derivable
x = [a, b],por lo que b,y .x/ existe
= ŷaal
, igual
y(b)que
= ŷlab .integral enunciada. La
= x, y(x), a≤ y(a) (1.3)
función debe satisfacer en ax D a y en x D b unas determinadas condiciones de contorno: concretamente, yOa D y.a/ y
yOb D y.b/.
In words:
Así era cómo the function
la palabra funcionaly = (x) is defined
fuef utilizada over the en
inicialmente segment x ∈ de
el cálculo [a,variaciones,
b], a ≤ b, ofdonde
the real el line.
integrando a ser
Given x, y is assumed real and unique; that is, y(x) is single-valued. Furthermore
minimizado debía ser un funcional, aplicada a′ una todavía desconocida función que satisfacía solamente una cierta y(x) possesses
condición dethe appropriate
contorno, smoothnessdesoderivabilidad.
y condiciones that y (x), as well as the integral in (1.3), exist. That function must
satisfy the stated end conditions
Otro funcional lineal habitual es la función at delta
x = ade and x = b,
Dirac, ı tat
Œfwhich = y(a)
./ D ŷfa .t/, —porandPaul y(b) are
ŷb =Adrien given.3Dirac, Reino
Maurice
Those boundary
Unido, 1902-1984— conditions
que se puede willtambién
escribir be calledcomo
essential.
The basicfunctional (1.3) is historically interesting Z b since it belongs to a class of problems that
prompted the birth and development of variational
ı t Œf ./ D f .x/ı.x int/the
calculus dt:XVIII Century. But it also serves
as a good expository tool. Some specific examples a follow.
Un problema de cálculo de variaciones o problema variacional típico sería el de encontrar la función y 2 Œa; b ! R
que minimiza el funcional anterior, J.y/, con las condiciones de contorno indicadas.
3 The overhat over a symbol will be often used to denote prescribed values.
En varios campos de la ingeniería, la física matemática, el reconocimiento de imágenes y otros muchos, el cálculo
de variaciones es un interesante problema matemático consistente en buscar máximos y mínimos (o más generalmente
2
1–6
Fuente: http://www.colorado.edu/engineering/CAS/courses.d/AVMM.d/AVMM.Ch01.d/AVMM.Ch01.pdf.
A.7 Sobre el método de los elementos finitos de Ritz-Galerkin para resolver ecuaciones en derivadas parciales j 615
Dirac
extremos relativos) de funcionales continuos definidos sobre algún espacio funcional. Constituyen una generalización
del cálculo elemental de máximos y mínimos de funciones reales de una variable. Muchos problemas de este tipo3 son
fáciles de formular pero sus soluciones implican a menudo, a su vez, difíciles procedimientos de cálculo diferencial, los
cuales generalmente suponen usar ecuaciones diferenciales ordinarias —Ordinary Differential Equations—, así como
§1.2FUNCTIONALS
las ecuaciones (diferenciales) en derivadas parciales —Partial§1.2 FUNCTIONALS
Differential VERSUS
VERSUS
Equations—. FUNCTIONS
FUNCTIONS
En la figura A.90 se pueden ver algunos problemas clásicos de funcionales en una dimensión.
y y (a)(a) y y (b)(b) y y
;;;;;
;;;;;
(c)(c)
Constant
Constant
Arclength
Arclength L L gravity
gravity g g
;;;;;
;;;;;
A A y=y(x)
y=y(x) A A A A
Straight
Straight lineline
;;;;;
;;;;;
^ ^
y(a)=y
y(a)=y B B B B Cycloid
Cycloid B B
a a
^ ^
y(b)=y
y(b)=y
Area
;;;;;
Area
;;;;;
A A b b Parabola
Parabola
Rb
Figura A.90: Ejemplos
Figure
Figure 1.2.
1.2. Canonical
unidimensionales
Canonical one-dimensional
de funcionales:
one-dimensional functionals
(a)
functionals used
Área debajo
used in una
inde
thethe examples
curva, ofa of
examples (a)(a)
?.
y.x/
?. area
area
dx; (b) under
Longitud
under de un arco
Rb p q
R b (c)
0
curve;
curve; (b)(b) curve
curve arclength,
arclength, (c) brachistochrone.
brachistochrone.
1C.y 0 .x//2
de curva, a 1 C .y .x// dx; (c) Curva braquistócrona, a
2
2gy dx
Example
Por Example
regla 1.11.1
general, . Area
. Area
no Under
Under
todas Curve.
lasCurve. The
The
funciones area
area
pueden subtented
subtented enby
encajarby uny(x)
y(x) andand
thethe
funcional. real
real
La axis
axis
figura is given
is given
A.91 by by grosso modo algunos
ilustra
Chapter
Chapter 1: 1:VARIATIONAL
VARIATIONAL CALCULUS
CALCULUS OVERVIEW
OVERVIEW
tipos de funciones permitidas y otras no admisibles. b b
A=A = y(x) y(x)
d x.d x. (1.4)
(1.4)
(a)(a) a a (b)(b)
1 1
SeeSee Figure
Figure y 1.2(a).
1.2(a).
y This This
hashas
thethe form
form illustrated
B B in in
illustrated Figure
Figure 1.1(b).
1.1(b). y y BB
2 2 1 1
Example
Example 1.21.2. Curve
. Curve 3 Length.
Length.
3
The
The length
length of of
thethe curve
curve between
between
y(x)
y(x) x
x ∈ [a, 2 and
[a, b] and
∈ 2 b] satisfying
satisfying thethe given
given endend
conditions
conditions is is
A given
A given byby AA ^ ^
b^bb^b
y(b)=y
y(b)=y 3 3 y(b)=y
y(b)=y
b b
4 4
^ ^
y(a)=y
y(a)=y
a a
L=
L= 1+1y(a)=y
+ ′(y ′
(yy(a)=y 2
)2^da) x.
^d x. 4 4 (1.5)
(1.5)
5 5 a
a a 5 5
in in which
which thethe
++ sign
sign of of
thethe square
square root
root is taken.
is taken. SeeSeexFigure
Figure 1.2(b).
x 1.2(b). (If(If
thisthis
L is is uniquely
L uniquely defined
defined byby
thisthis integral
integral
x x
x=a x=bx=b x=a x=bx=b that there
thethe curve
curve is x=a
said
is said to to
bebe This
This
rectifiable.)
rectifiable.) functional
functional hashas
thethe form
form
x=a
illustrated
illustrated in in Figure
Figure 1.1(c),
1.1(c), except
except that there
is
is no no explicit
explicit dependence
dependence
1.3. onon
Visualization
only
only
y;
y; of
of onon
function its its slope. concept as regards (1.3): (a) sample1 admissible functions
slope.
admissibity
Figure
Figure 1.3. Visualization function admissibity concept as regards (1.3): (a) sample admissible functions
Figura A.91: Muestrario de funciones admisibles en un funcional: (a) Funciones continuas, C , con un sólo valor para cada
y(x) over
y(x)
x yExample
que cumplen that
over lassatisfy:
that C 1 Ccontinuity
satisfy:
condiciones
1 continuity
(i.e.,
de contorno; unique
(i.e.,
(b) uniquetangent
tangent
Inadmisibles: at La
each point),
at each andand
lapoint),
1 y1.2(c).
3Atienen essential BC,
essential
derivadas andand
BC, single valuedness;
single
discontinuas; valuedness;
laat2Aes at
discontinua
Example
(b) .
1.31.3
sample
. Brachistochrone.
Brachistochrone.functions
This
Thisthat
is
isthat illustrated
illustrated
violate inorin
oneone
Figure
Figure
more 1.2(c).
of the
A point-mass
point-mass
foregoing
body
body
conditions:
is released
iscurves
released1deand
at A
3 have
at zero
zero
y admite (b) sample
varios inadmissible
inadmissible
valores para un x;functions
la 4 admite violate
varios valores or
paramore
un of
x y the
la 5foregoing
no cumple conditions:
las curves
condiciones 1contorno
and 3 have
time.
time. Itcorners,
is constrained
Itcorners,
is constrained
curve to to
movemove under
under
2 is2 discontinuous,
curve the
is discontinuous,
the
curve influence
influence
curve of of constant
constant
4 is4 multivalued,
is multivalued,
gravity
gravity
andandcurve g
curve
acting
acting
g along
along
5 violates −y
thethe
5 violates
−y
right andand without
without
essential
right essentialBC. friction,
friction,
BC.
along
along a curve
a curve y= y= y(x)
y(x) that
that ends
ends at at
B, B, which
which is lower
is lower thanthanA.A. (The
(The mass
mass is pictured
is pictured as as a rolling
a rolling disk
disk in in
thethe
Si sefigure,
considera
figure, itun
butbut is funcional
it actually
is actually general
a sliding
a sliding point
point —— nono rotation
rotation
Z is is involved.)
involved.) The
The curve
curve is
y(x)
y(x) is called
called thethe trajectory
trajectory or or
x2
function
function The
rather
The
path.
path. rather than
than
traversal
traversal just a taken
taken
just
time
time byby
number. mass
mass
a number. AtoAto
go go
function
D from
from
Ifunction Athat
Athat
to
F to
.x; B
Bisis isypermissible
given
given
y;is 0
/ dxbyby
permissible thethe
asfunctional
input
functional
as inputto to
a functional
a functional is is
called
called
admissible.The
admissible. Thesetset
ofof
such functions
such is is
functions thethe
x
admissible
1
b class
admissible with
class respect
with to to
respect
b thethe
functional under
functional under
donde F es una función conocida con derivadas B Bcontinuas 1+ 1hasta
+ ′ )2
)2segundo
(y ′(y 0
consideration.
consideration. The
The following
following general
general Tguidelines
guidelines
T
A A = = may may bebe d x. orden respecto a x, y y y . El
offered.
offered.
d x. valor
(1.6) de I
(1.6)
dependerá de la trayectoria de la función entre .x1 ; y1a/ ya .x2 ;2g y2g
2y/; es
y decir, dependerá de la función y.x/ que se escoja.
Function
Si Function
se introduceSmoothness.
Smoothness.
como prueba Admissible
Admissible
la familia de functions
functions
trayectorias areareusually
usually chosen
chosen to to
have
have thetheminimal
minimal smoothness
smoothness forfor
in whch
in whch is the
g isg the acceleration
acceleration of of gravity.
gravity. This
This functional
functional fitsfits
thetheformform illustrated
illustrated in Figure
in Figure 1.1(c).
1.1(c). TheThe derivation
derivation
which
which the integration
the integration overoverthe theproblem
problem domain
domain makes
makes sense.
sense. ForForexample,
example, if the
if thefunctional
functional has the
has the
of of
thisthis functional
functional is the
is the matter
matter ′ of of
anan Exercise.
Exercise. Q AnAn
y.x/ D important
important
y.x/ feature
C feature
".x/; is to
is to find
find thethe trajectory
trajectory that
that minimizes
minimizes T ;T ;
form
form (1.2)
is(1.2)
thisthis thethe
is called
called presence
thepresence
the ofofy ymeans
brachistochrone
brachistochrone
′
means that
that
problem.
problem. it We
We is reasonable
itshall
is reasonable
shall later
later show
show tothat
ask
to ask
thatthat
the that
the y(x)
y(x)
solution
solution have
of have
of integrable
this
this integrable
fastest
fastest derivatives.
derivatives.
descent
descent is is
time
time
For athis to to
happen,
cycloid,
cycloid, colored
colored it red
red is sufficient
itinis
in 1.2(c). that
3 Por ejemplo el de encontrar la curva de longitud más corta
For athis happen, sufficient
1.2(c). thaty ′ (x)
y ′ (x)beuna
que bepiecewise
puntos. continuous.
piecewise
dos continuous.Requiring
Requiring y(x)
y(x) ∈∈ C 1Cover
1
overthethe
domain would
domain bebe
would overkill butbut
overkill safe.
safe.
Example
Example 1.41.4 . Action
. Action In In
Integral.
Integral. analytical
analytical dynamics
dynamics (including
(including both
both Newtonian
Newtonian andand quantum
quantum mechanics)
mechanics) a a
End
EndConditions.
Conditions.
functional
functional like
like Prescribed
Prescribed
(1.3),
(1.3), with
with end
thethe values,
end values,
integral
integral such
taken
taken as
such
over
over as
ay(a)
a time =
y(a)
time =ŷa ŷ,t aand
interval
interval ∈,t and
∈ay(b)
[t , taby(b)
[t b ŷin
,]tbis]=called
is=
ŷcalled (1.3),
in
bthethe must
(1.3), mustbeintegrand
ItsIts
action.
action. satisfied
be satisfied
integrand
a priori. As previously
Asaspreviously
is known
aFpriori.
is
F known as
thethe noted,
noted,
Lagrangian,
Lagrangian, this kind
thisis kind
which
which of specification
of
is often
often specification
denoted
denoted byby is
L.is
L or
L or called an
L.called an essential boundary condition.
essential boundary condition.
Single Valuedness.
Single
§1.2.4.Valuedness.
§1.2.4. This
Admissible
Admissible Thisrequirement
requirementis isoptional.
Functions
Functions optional.It Itis isoften
oftenstipulated priorito tosimplify
stipulateda apriori simplifythethe
formulation and analysis. But it must be abandoned for certain problems.
formulation and analysis. But it must be abandoned for certain problems. For example, For example, those that
those that
Key
Key
involved
involved question:
question:
closed what
what
curves
closed sort
sort
oror
curves of of function
function
spirals. can
4 4 can
spirals. bebe fed
fed into
into a a functional?
functional? TheThe question
question is is similar
similar to:to: what
what
616 j Apéndice A
donde " es un parámetro y .x/ una función derivable a la que se le pide que .x1 / D .x2 / D 0, resulta que se pueden
generar una infinidad de trayectorias para una .x/ dada sin más que variar el parámetro ". Todas ellas pasan por .x1 ; y1 /
y .x2 ; y2 /. Consideremos
Z x2 Z x2
Q
I D 0
Q yQ / dx D
F .x; y; F .x; y C "; y 0 C "0 / dx
x1 x1
Es evidente que los funcionales I y IQ alcanzarán el mismo valor extremo (valor máximo o mínimo) cuando " D 0.
Desarrollando, se tiene que ! !
d IQ d 2 Q
I "2
IQ D .IQ/"D0 C "C 2
C
d" d" 2Š
"D0 "D0
Es decir que Z
x2
@F d yQ @F d yQ 0
C 0 dx D 0:
x1 @yQ d " @yQ d " "D0
Q " D , que d yQ 0 =d " D 0 y que quitar las tildes de yQ y de yQ 0 en las derivadas de F es lo mismo que
Dado que d y=d
hacer " D 0 según se requería más arriba, la ecuación anterior se puede reescribir así:
Z x2
@F @F
C 0 0 dx D 0:
x1 @y @y
Cuando D 0 en los extremos la primera expresión del miembro de la derecha de esta ecuación se hace cero. Sustitu-
yendo lo que queda en la anterior se tiene que
Z x2
@F d @F
dx D 0:
x1 @y dx @y 0
Cualquiera que sea la función .x/ entre los puntos extremos, según la fórmula de Euler-Lagrange se tiene que
d @F @F
D0
dx @y 0 @y
que es la condición que debe cumplir y.x/ para ser un máximo o un mínimo: un extremo. Si en esta expresión se
sustituye F por su expresión F .x; y; y 0 / resulta una ecuación diferencial de segundo orden en y.x/.
Lema A.63 Lema fundamental del Cálculo de Variaciones. Sea M.x/ una función continua definida en el intervalo
a x b. Supongamos que para cualquier función continua .x/ se tiene que
Z b
M.x/.x/ dx D 0:
a
b
M (x)ζ(x)dx = 0.
a
Then
M (x) = 0 for all x ∈ [a, b].
M( x0 )
M( x0)
2
.x/
a x 0 ïb x 0 x 0 +b b
FIGURE 15.17
Figura A.92: Lema fundamental del Cálculo de Variaciones
b b1 b1
1
0= M (x)ζ(x)dx =0 M (x)ζ(x)dx >
M (x0 ) ζ(x)dx > 0,
a asi 2 ax.x0 aı;
1 a x a1 D mK 1 a/
Corolario A.64 El resultado del Lema A.7.2.1 sigue siendo aplicable si .a/ D .b/ D 0.
Corolario A.65 Supóngase que M.x/ es continua en el intervalo I D Œa; b y que f'n .x/g1
nD1 es un conjunto de
funciones base. Supóngase además que
Z b
M.x/'n .x/ dx D 0 para n D 1; 2; : : :
a
Se cumple entonces que M.x/ D 0 para todo x 2 Œa; b.
Lema A.66 Sea M.x/ una función continua en a x b. Supongamos que para cualquier función continua .x/,
de derivada continua, se tiene que
Z b
M.x/ 0 .x/ dx D 0
a
para .a/ D .b/ D 0. Se cumple así que M.x/ D cte para todo x 2 Œa; b:
618 j Apéndice A
Lema A.67 Sea M.x/ una función continua definida en el intervalo a x b. Supongamos que para cualquier
función continua .x/, de derivadas continuas al menos hasta segundo grado, se tiene que
Z b
M.x/ 00 .x/ dx D 0
a
para .a/ D .b/ D 0 y 0 .a/ D 0 .b/ D 0. Se cumple entonces que M.x/ D c0 C c1 x para todo x 2 Œa; b, donde c0
y c1 son constantes.
El cociente z=w es
z a C bi
D
w c C di
a C bi c d i
D
c C di c di
.a C bi /.c d i / .ac C bd / C .bc ad /i
D D :
c2 C d 2 c2 C d 2
p
En su forma polar un número complejo se escribe z D re i' D r cos ' C i sen ' , donde r D x 2 C y 2 y ' D
arctan.y=x/. A e i' D cos ' C i sen ' se la conoce como identidad de Euler.
La circunferencia de radio unidad en el plano complejo es el lugar geométrico de los números complejos con r D 1
—figura A.94—. Si se multiplican dos números e i y e i
de esa circunferencia,
e i e i
D cos C i sen cos
C i sen
D cos cos
sen sen
C i sen cos
C sen
cos :
i i i i
Reordenando, y recordando que cos D e Ce 2
y sen D i e 2 e , resulta que e i.C
/ D cos. C
/Ci sen. C
/.
Por tanto, el producto de dos números complejos en la circunferencia de radio unidad es otro número de la misma
circunferencia cuyo ángulo es la suma de los dos precedentes.
A.8 Elementos de números y funciones complejas j 619
10.1 The Fourier Transform | 469
iπ
e2 = i
iπ
e4
e iπ= –1 + 0i e0= 1 + 0i
x
Figura A.95: Circunferencia de radio unidad en el plano complejo y números de Moivre para n D 5
Una raíz n-ésima de la unidad se denomina primitiva si no es una raíz k-ésima para k < n. Así, 1 es una raíz segunda
primitiva de la unidad y cuarta no primitiva de ella.
Visto de otra manera, la raíz n-ésima de la unidad ˛ es primitiva, si sólo si sus k-ésimas potencias, k D 0; 1; : : : ; n 1
son distintas. Las raíces cuartas de 1 son: 1, 1, i , i . En el caso de 1 sus potencias de grado 0, 1, 2 y 3 son iguales;
Roots of Unity
620 j Apéndice A
no es raíz
For primitiva.
given Para i, sen,
integer calcula
we que las notation
use potencias de grado 0, 1, 2, 3 son, respectivamente, 1, i , 1, i, distintas,
luego i es una raíz cuarta primitiva de 1.
− i sin(2π/n) −2πi/n
n =Sea
LemaωA.68 cos(2π/n)
! una raíz primitiva = e y k un número entero. Entonces
n-ésima de la unidad
n 1
(
X n si k=n es un entero;
for primitive nth root of unity !j k D
j D0
0 en cualquier otro caso.
nth roots
Es fácil ver que,of
paraunity, sometimes
una n cualquiera, called !twiddle
el número complejo n D e
i 2=n
es una raíz n-ésima primitiva de la unidad
(también lo es !n D e i 2=n ). En la figura A.96 se ve la raíz cuarta primitiva
k or la unidad, !4 D e
de i 2=4
, y las otras tres.
factors in this context,
Son, en general, las potencias k
,
470 |!CHAPTER
k D
are
0; 10
1;
then
2; Las
given
k
se
Trigonometric
3. !
by ωn
denominan también
Interpolation and factores
the FFT twiddle. Se puede verificar que
4 n
−k
by ωn , k = 0, . . . , n − 1
y
i = ω43 = ω4−1
•.... ω6
...
.... ω5 ω7
...................
.... ......2π/4
... ...
.
ω42 = ω4−2 = −1 •...............................................................................................•. 1 = ω40 = ω44 ω4 π/4 ω0 = ω8 = 1
x
...
....
....
....
− i2π
.. ω3
•.. ω=e 8
−i = ω41 = ω4−3 ω2
Figura A.96: Raíz cuarta primitiva de la unidad !4 D e i 2=4 y las otras tres. Números de Moivre de n D 8
Figure 10.3 Roots of unity. The eight 8th roots of unity are shown. They are generated by
i 2=n ω = e−2π/8 , meaning
4 that each is ωk for some integer k. Although ω and ω3 are primitive
la raíz n-ésima de la unidad, ! D e , con n > 1, cumple que
8th roots of unity, ω2 is not, because it is also a 4th root of unity.
1 C ! C !2 C !3 C C !n 1
D 0;
2 4 6 2.n 1/
1 C ! C Here
! Cis!a key
C identity
C !that we will
D 0;need later to simplify our computations of the Discrete
−i2π/n
1 C !Fourier
3
C ! 6 Transform. Cω
C ! 9 C Let 1/ the nth root of unity ω = e
denote
! 3.n D 0; where n > 1. Then
1 + ω:+ ω2 + ω3 + · · · + ωn−1 = 0. (10.3
::
The proof of this identity follows from the telescoping sum
1 C !n 1
C ! .n 1/2
C ! .n 1/3
C C ! .n 1/.n 1/
D 0:
(1 − ω)(1 + ω + ω2 + ω3 + · · · + ωn−1 ) = 1 − ωn = 0. (10.4
También que 1 C ! n C ! 2n C ! 3n C C ! n.n 1/
DSince
1 C the
1 Cfirst
1 Cterm
1 C on
C D n:
the1left Además,
is not si ksecond
zero, the es un número
must be.entero,
A similar method of proo
n 1
shows
that
X n si k=n es entero,
jk
! D 1 + ω2 + ω4 + ω6 + · · · + ω2(n−1) = 0,
0 en otro caso.
j D0 1 + ω3 + ω6 + ω9 + · · · + ω3(n−1) = 0,
..
A.8.1 Integración. Teorema de Cauchy .
1 + ωn−1 +ω (n−1)2
+ω (n−1)3
+ ··· + ω (n−1)(n−1)
= 0. (10.5
Las funciones de números reales se integran en intervalos. Las de números complejos en o sobre curvas y tienen muchas
The next one is different:
de sus propiedades en común con las integrales de línea de los campos vectoriales.
En el plano complejo, si z D x C yi, donde x es la parte real 1 +e ωynla+imaginaria
ω2n + ω3n (ambas ωn(n−1) la
+ · · · + reales), = función + 1se
1 + 1 + f1 .z/ + ··· + 1
puede considerar como una función que depende de dos variables, x e y. Esto no es totalmente cierto, = en
n. general, pues (10.6
f .z/ es también una función de una única variable, la compleja z.
This information is collected into the following lemma.
El teorema de Cauchy es una de las piezas esenciales de la teoría de integración de las funciones de números complejos.
Si hay una curva continua, simple y cerrada en el plano,
, la misma separa a ese plano en tres partes: la curva en sí
LEMMA 10.1 Primitive roots of unity. Let ω be a primitive nth root of unity and k be an integer. Then
misma, una zona de nominada interior de
, que no es sino una región abierta y acotada por la propia curva, y la zona
exterior a
, que es una región o conjunto no acotada —ver figura A.97—. n−1
jk
n if k/n is an integer
ω = .
0 otherwise
j =0
Exterior
y
Interior
x
Nos referiremos en lo que sigue a una curva simple, continua por tramos, como camino o ruta. Un camino en un
We will refer to a simple, piecewise smooth curve as a path. A path in a set S is a path
conjunto S es un camino cuya trayectoria
whose graph lies in S. y gráfica queda enteramente dentro de S.
Un conjunto de números complejos está conectado si cualesquiera dos puntos de S son principio y final de un camino
de S . En términos más coloquiales esto quiere decir que desde cualquier punto de S podemos llegar a cualquier otro,
también de S , moviéndonos a través de algún camino sin abandonar S. Un conjunto abierto y conectado se denomina
dominio. Por ejemplo,
A setelScuadrante
of complexdel plano is
numbers x connected
> 0, y > if0.every two points of S are endpoints of a path
Un conjunto S deinnúmeros complejos es point ofsiScualquier
S. This means that we can get from anyconexo
simplemente camino
to any other cerrado
point by movingenalong
S encierra dentro de él
puntos de S. some path without leaving S. An open, connected set is called a domain. For example, any
open disk is a domain, and the right quarter plane x > 0, y> 0 is a domain.
Teorema A.69 Teorema integral de Cauchy. Si la función f es derivable en un dominio simplemente conexo G,
entonces I
f .z/
We encountered domains in connection with dz Dfunctions
potential 0 in Chapter 12.
Fourier
fue pionero en el análisis de funciones periódicas para describir fenómenos físicos. Nacido en Auxerre y profesor de la
École Polytechnique, en 1807 formuló la ecuación de difusión del calor mediante ecuaciones matemáticas. Concreta-
mente, la ecuación en derivadas parciales (parabólica):
@u 1 @2 u
D o u t D Duxx :
@t 2 @x 2
La constante D > 0 se denomina coeficiente de difusión y representa la difusividad térmica del material del cuerpo que
se estudia.
Para resolver el problema de la distribución de temperaturas en el cuerpo a partir de la distribución en un instante
inicial necesitaba escribir la función que da el dato inicial como suma de una serie trigonométrica. Este es el aspecto de
sus múltiples contribuciones al conocimiento científico que vamos a considerar aquí brevemente.
Aunque se presenta de varias maneras según el tipo de problema estudiado, en general, para una función de periodo
T , el problema consiste en, dada una función f .x/, encontrar una serie trigonométrica de Fourier
1
a0 X
C Œan cos.nw0 x/ C bn sen.nw0 x/ ;
2 nD1
A.9 Análisis de Fourier j 623
donde w0 D 2 T
, que converja a aproximar a f .x/ en cada punto x. Para todo w0 > 0 las funciones sen.w0 x/ y
2
cos.w0 x/ son periódicas de periodo T D w 0
. Si conocemos una función en un intervalo de longitud T conocemos su
valor en todo R.
Para determinar adecuadamente esa serie, lo primero es obtener los coeficientes an y bn . Para ello hay que usar
de nuevo la noción de ortogonalidad y el ángulo entre vectores. Recordemos que dos vectores del espacio euclídeo
n dimensional son ortogonales si se cruzan formando un ángulo de 90 grados. Es decir, si su producto interior hji
es cero: f ? g y hf jgi D 0. La ortogonalidad y las bases ortogonales de espacios vectoriales son el fundamento de
múltiples técnicas numéricas, estadísticas y científicas a las que nos referimos en este libro.
Para construir el razonamiento necesitamos introducir un producto interior (escalar) que sea conveniente para espacios
de funciones de dimensión infinita. Con ese objetivo utilizaremos el del espacio de Lebesgue L2 .I /, concreta el que
define Z
1
hf jgi D f .x/g.x/ dx
2 I
de funciones integrables en el intervalo I . La norma asociada a partir de ese producto interior es
s Z
p 1
kf k D hf jf i D f .x/2 dx:
I
Z T
0;
k¤l
2
cos.kw0 x/ cos.lw0 x/ dx D 2; k D l D 0
T
2
; k D l ¤ 0;
Z T
(
2 0; k ¤ l
sen.kw0 x/ sen.lw0 x/ dx D
T
2
; k D l ¤ 0;
Z T
2
cos.kw0 x/ sen.lw0 x/ dx D 0
T
2
X1
a0
hf j cos.lw0 x/i D h1j cos.lw0 x/iC Œan hcos.nw0 x/j cos.lw0 x/i C bn hsen.nw0 x/j cos.lw0 x/i
2 nD1
624 j Apéndice A
obteniéndose así el coeficiente al . De la misma manera, operando con sen.lw0 x/ se obtiene el coeficiente bl . Tomando
el producto interior en la misma ecuación por la función constante 1 se tiene que
X1
a0
hf j1i D h1j1i C Œan hcos.nw0 x/j1i C bn hsen.nw0 x/j1i
2 nD1
a0
D k1k2 D a0 :
2
Esta expresión de a0 explica también el por qué de introducir en la formulación de la serie el sumando a0 dividido por
2.
En consecuencia, si la serie de Fourier converge a la función f .x/, los coeficientes de la misma resultan de tomar
productos interiores con las funciones trigonométricas básicas; es decir, son
Z T
2 2
a0 D f .x/ dx
T T
2
Z T
2 2
ak D hf j cos.lw0 x/i D f .x/ cos.kw0 x/ dx; k D 0; 1; 2;
T T
2
Z T
2 2
bk D hf j sen.lw0 x/i D f .x/ sen.kw0 x/ dx; k D 1; 2; 3;
T T
2
Las integrales deben estar bien definidas y ser finitas. Queda por demostrar que existe convergencia hacia f .x/.
Ejemplo A.31 Consideremos la función f .x/ D x en Œ 2 ; 2 . Calculemos los coeficientes de Fourier se su aproxima-
ción por series trigonométricas:
Z
2 2
a0 D x dx D 0
2
Z
2 2 2 x sen.kw0 x/ cos.kw0 x/ 2
ak D x cos.kw0 x/ dx D C D0
2
k k2 xD 2
Z
2 2 2 x cos.kw0 x/ sen.kw0 x/ 2
bk D x sen.kw0 x/ dx D C D
2
k k2 xD 2
2
D . 1/kC1 :
k
La serie de Fourier es pues
sen 2x sen 3x sen 4x
f .x/ 2 sen x C C :
2 3 4
Demostrar que es convergente (que lo es) dista mucho de ser evidente y más de ser trivial el hacerlo.
Ejemplo A.32 Otro ejemplo interesante para la aplicabilidad de las series de Fourier lo constituye la función “escalón”
definida así:
(
0; < x < 0;
f .x/ D
h; 0 < x < :
El coeficiente a0 D h dado que el valor medio de f .x/ en el intervalo completo es h=2. Los demás coeficientes son
Z
1 C
an D h cos nx dx D 0
0
A.9 Análisis de Fourier j 625
y
Z C
1 h
bn D h sen nx dx D .1 cos n/;
0 n
que simplificando es
(
2h
n
; si n es impar,
bn D
0; si n es par.
The complete Fourier series, then, for the step function is
La serie de Fourier es pues
hh 2h2h sin x sen 3x3x sensin
sin 5x5x
.x/
f (x) = C + sen x C+ C+ C+ ... : . (5)
22 π 1 33 55
En la figura A.98four
The first se presenta
terms ofesta función
this y los
Fourier cuatro
series areprimeros
shown términos
in Figurede3.la serie de Fourier, lo que esboza el
denominado fenómeno de Gibbs.
1.2
0.8
0.6
0.4
f(x)
0.2
−0.2
−0.4
−0.6
−0.8
−4 −3 −2 −1 0 1 2 3 4
x
Figura A.98: Cuatro primeros términos de la serie de Fourier de la función escalón, con h D 1, y fenómeno de Gibbs
Figure 3: First four terms of the Fourier series describing a step function with h = 1.
A.9.1.1
2.3Expresión compleja de la serie de Fourier
Discussion
Recordemos
Therelaare
expresión
a couple of immediate observations to be made here. A Fourier series is a summa-
e ifunctions
tion of fixed-frequency sine or cosine D cos Cwith argument nx. As such, the coefficients
i sen :
describe the amplitude of the component with natural frequency n. For the step func-
De la misma se derivan
tion, the series converges very slowly, which implies thate ithere
e i C e i
are significant high-frequency
e i
components necessary tocos D
accurately describey thesenfunction.
D This: is generally true with any
2 2i
discontinuous function, or other function with “sharp” features. A function which is very
Si f .t/rounded
es una función periódica deconverges
and sinusoidal período T quickly
con desarrollo
in theenFourier
serie de series,
Fourier while something like the step
function or triangle wave needs many 1 many high-frequency
X X1 components.
a0
f .t/ D C an cos.nw0 t/ C bn sen.nw0 t/;
2 nD1 nD1
2.4 Exponential Form
sustituyendo los senos y cosenos por la expresiones anteriores se tiene que
An alternative, more compact representation of the Fourier series can be made by using
Euler’s formula 1
a0 X einx i nw0 t
C e i nw0 t
1
X e i nw0 t e i nw0 t
f .t/ D C ane = cos nx + Csin nx.
i bn : (6)
2 2
nD1
2i nD1
Using this we can rewrite Equation 1 as
∞
X
f (x) = cn einx , (7)
n=−∞
4
626 j Apéndice A
Reordenando un poco
1
X 1
X C1
X
f .t/ D c0 C cn e i nw0 t C cn e i nw0 t D cn e i nw0 t ;
nD1 nD 1 nD 1
T
Proposición A.71 La familia fe i nw0 t gn2Z es ortogonal en el intervalo Œ 2
; T2 (o en Œ0; T ), donde T D 2
w0
.
T
Con este resultado podemos calcular los coeficientes cn para representar una función f W Œ 2
; T2 ! C de la forma
C1
X
f .t/ D cn e i nw0 t :
nD 1
Son
Z T
2
f .t/e i nw0 t dt
T
cn D : 2
T
Muchas señales se representan de manera natural como una función con valores reales —por ejemplo una señal sonora—
mientras que otras, en particular los campos electromagnéticos, se representan como una función de valores complejos.
Gibbs’ Phenomenon
Teorema A.72 Convergencia de Dirichlet de la serie de Fourier. Sea f W I ! R una función periódica de período T
que satisface las condiciones de Dirichlet. La serie In
de Fourier
practicedeitfmayconverge a f .t0 / en todo
be impossible to use en el
2 Ithe
t0 all que fofsea
terms a Fourier ser
continua. En los puntos t0 2 I en los que f noForsea continua se tiene que la serie de Fourier converge
example, suppose we have a device that manipulates al punto medio
a periodic sig
del salto, by first finding the Fourier series of the signal, then manipulating the
f .t0C / C f .t0 /
nusoidal components,
; and, finally, reconstructing the signal by adding
2
the modified Fourier series. Such a device will only be able to use a fin
donde f .t0C / D lKım t!t C f .t/ y f .t0 / D lKım t !t f .t/. of terms of the series.
number
0
0
t t t t
−1 1 −1 1 −1 1 −1 1
−1 −1 −1 −1
−1.18 −1.18 −1.18 −1.18
y extendida periódicamente
−1
a R. Su serie de Fourier
−1
es
−1.18 −1.18
4 sen 3t sen 5t sen 7t sen 9t
Gibbs: max n = 9 senGibbs:
t C max n = 33C C C C :
3 5 7 9
In these figures, for example, ’max n=9’ means we we included the terms
for n = 1, 3,En
5, la figura9A.99
7 and se Fourier
in the ilustra esta
sumseñal de onda cuadrada y cómo las series de Fourier se ajustan bastante bien en todos los
puntos,pero es muy perceptible el salto aludido. En la figura “max n=9”, por ejemplo, quiere decir que se han incluido
4
los términos sin 3t sin 5t serie sin 7t sin 9t
sin tn+D 1; 3; 5;+7 y 9 en la
+ de+
Fourier. .
π 3 5 7 9
628 j Apéndice A
siendo w0 D 2=T .
A.9.1.3.1 Linealidad
Si p y q son números complejos, entonces la serie de Fourier de pf .t/ C qg.t/ es
1
X
pf .t/ C qg.t/ D .pcn C qdn /e i nw0 t :
nD 1
Es decir, f .t/ y f .pt/ tienen las mismas amplitudes y fases pero correspondientes a frecuencias distintas.
A.9 Análisis de Fourier j 629
A.9.1.3.4 Derivación
La regla de la cadena muestra que la derivada de una función periódica es periódica y tiene el mismo período. Si f es
una función continua y periódica de período T y su derivada f 0 verifica las condiciones de Dirichlet, entonces, la serie
de Fourier de f puede derivarse término a término de manera que si
X1
1
f .t/ D a0 C Œan cos.nw0 t/ C bn sen.nw0 t/;
2 nD1
entonces
1
X
f 0 .t/ Š Œnbn w0 cos.nw0 t/ nan w0 sen.nw0 t/
nD1
para cada t 2 R.
A.9.1.3.5 Integración
A diferencia de la derivación, la integral de una función no necesariamente
Rt vuelve a ser periódica. Sea f una función
periódica con período T y consideremos la función F .t/ D t0 f . / d . La función F es T -periódica si y sólo si
RT Rt
a0 D 2=T 0 f .t/ dt D 0. En caso contrario, se tiene que la función t0 f . / d 1=2a0 .t t0 / es T -periódica. Si la
función f verifica las condiciones de Dirichlet, entonces la serie de Fourier de f puede integrarse término a término de
manera que si
X1
1
f .t/ D a0 C Œan cos.nw0 t/ C bn sen.nw0 t/
2 nD1
A.9.1.3.6 Convolución
P1
Los coeficientes complejos de Fourier de la convolución f .t/g.t/ D nD 1 hn e i nw0 t son
1
X 1
X
hn D ck dn k D cn k dk :
kD 1 kD 1
A.9.1.3.7 Multiplicación
Se verifica que
Z T 1
X
1 2
f .t/g.t/ dt D cn dn :
T T
2 nD 1
Parseval
T
Proposición A.74 Sean f1 ; f2 2 L2 .Œ 2
; T2 / y .cn1 /n2Z , .cn2 /n2Z sus respectivos coeficientes de Fourier. Entonces
Z T X
1 2
f1 .t/f2 .t/ dt D cn1 cn2 ;
T T
2 n2Z
T
Teorema A.75 Teorema de Parseval. Sean f 2 L2 .Œ 2
; T2 / y .cn1 / sus coeficientes de Fourier. Entonces
Z T
X
1 1 2
.kf k2 /2 D f .t/f .t/ dt D jcn j2
T T T
2 n2Z
Cuando f .t/ es una señal periódica de período fundamental T , la igualdad de Parseval puede interpretarse de la siguiente
manera
Z T
1 2
P D jf .t/j2 dt:
T T
2
Esta integral se denomina media cuadrática o potencia media de f . Por ejemplo, si f .t/ representa la tensión en voltios
que se aplica a una resistencia de 1 ohmio, entonces la potencia media de f coincide con la potencia eléctrica media
(energía por unidad de tiempo medida en watios) disipada por la resistencia en cada período. Ahora bien, la potencia
media de cada uno de los armónicos presentes en la señal es
Z T
1 2 1 2
P0 D Œa0 =22 dt D a ;
T T
2
4 0
Z T
1 2 1 2
Pn D Œan cos.nw0 t/ C bn sen.nw0 t/2 dt D b D 2jcn j2 ;
T T
2
2 n
La idea, más o menos intuitiva, que utilizó Fourier fue considerar una función no periódica como una función periódica
de período infinito, lo que le llevó a representarla no como una serie cuyos términos corresponden a múltiplos de la
frecuencia fundamental 0; w; 2w; 3w; : : : ; sino como una integral cuya variable de integración es una frecuencia que se
mueve de manera continua.
A.9 Análisis de Fourier j 631
P
Cuando hablábamos del espectro de una función periódica, representada por una serie de Fourier n cn e i nw0 t , con
la frecuencia fundamental w0 D 2=T , apuntábamos que los coeficientes cn podían ser entendidos como una función
c.w/ W R ! C(ó R/ que toma valores distintos de 0 sólo en los puntos w D nw0 , con n 2 Z , en los que vale cn .
Al hacer tender el período T a infinito, la frecuencia fundamental, w0 , tiende a 0, por lo que los puntos nw0 —los
armónicos— están cada vez más próximos. Parece razonable pensar que en el límite el espectro se hace continuo, por lo
que podemos definir c.w/ para todo w. Las amplitudes cn D c.nw0 / tenderán también a 0.
Concretando, sea f .t/ una función periódica de período T . Su serie de Fourier es
1
X
f .t/ D cn e i nw0 t ;
nD 1
donde
Z T
1 2
i nw0 t 2
cn D f .t/e dt y w0 D :
T T
2
T
Sustituyendo estas dos expresiones en la serie
1 Z T
! 1 Z T
!
X 1 2 X 1 2
i nw0 x i nw0 t i nw0 x
f .t/ D f .x/e dx e D f .x/e dx w0 e i nw0 t :
nD 1
T T
2 nD 1
2 T
2
Recordando la definición de integral de Riemann y el paso de las sumas de Riemann a la integral, si tenemos una
función h W Œa; b ! R integrable y suponemos elegida una partición equiespaciada P .w0 / D fa D x0 ; x1 ; : : : ; xk D bg
de Œa; b en la que xi xi 1 D w0 para cada i 2 f1; : : : ; kg, tenemos que
k
X Z b
lKım h.a C nw0 /w0 D h.t/ dt:
w0 !0 a
nD1
Haciendo el paso a una integral impropia tenemos que, cuando w0 tiende a 0 —o cuando T tiende a infinito—
Z 1 Z C1
1
f .t/ D f .x/e iwx dx e iw t dw:
2 1 1
entonces Z 1
1
f .t/ D F.w/e iwx dt:
2 1
A.9.2.1.1 Linealidad
Si f; g 2 L2 .R/ y ˛; ˇ 2 R, entonces F.˛f C ˇg/ D ˛F.f / C ˇF.g/.
Aunque f 2 L2 .R/ puede no ser continua, su transformada siempre lo es. El hecho de que
para cualquier señal, indica que la amplitud de sus componentes en frecuencia tiende a 0 cuando la frecuencia tiende a
1.
Teorema A.79 Inversión. Si f 2 L2 .R/ entonces F.f / 2 L2 .R/ y además la función
Z 1
1
g.t/ D F.f /.w/e iw t dw;
2 1
transformada inversa de la transformada de f , verifica que f .t/ D g.t/ en casi todo punto.
688 THE FO URIER TR AN SFO RM
A.9 Análisis de Fourier j 633
|F( jω)| of a band-limited signal f (t); that is, a signal whose spectrum is zero for | ω | ⬎ ωm.
Figures
La expresión “en casi todo punto” 8.26(b−e)
tiene showmatemático
un significado the amplitude spectrum
muy preciso. |Fs( jω
Quiere )| ofque
decir thef sampled
.t/ D g.t/version
exceptofor
en, a lo sumo, un conjunto de medida cero. Aunque esto habría que desarrollarlo un poco más, la idea intuitiva es que of
increasing values of the sampling interval T. Clearly, as T increases, the spectrum
cualquier intervalo no vacío noF( ω),medida
es jde as observed using |Fque
cero, mientras s( jωun
)| in −ωpunto,
sólo m⬍ ω o ωm,cantidad
⬍una becomesfinita,
moreo and more
incluso misleading
numerable,
because of ‘interaction’ from neighbouring copies.
de puntos, sí forman un conjunto de medida cero. Por tanto, el teorema de inversión nos dice que si tomo una función
f 2 L2 .R/, hallo su transformada AsdeweFourier
saw inF.f / y a 8.6.2,
Section continuación hallo la transformada
the periodicity in the amplitude inversa
spectrum ω)| of fs(t)
de F.f|F/,s( jentonces
recupero f salvo quizás en unos pocos puntos,
is inevitable que no van aoftener
as a consequence ninguna importancia
the sampling process, and enways
la gran mayoría
have de las to
to be found
aplicaciones. Esto es lo que nosminimize
permite decir que “no perdemos
the problems it causes.información” al considerar
The interaction observedF.f / en lugar
in Figure de between
8.26 f , puestothe
que podemos recuperar f (salvo quizás repeats
periodic en unosispocos
known puntos) a partir error,
as aliasing de F.fand/. it is clearly essential to minimize this
Definición A.101 Sean f; g W R ! R. Se define su convolución f g como if the original unsampled signal f (t) is
effect. This can be achieved in an obvious way
band-limited as in Figure 8.26(a). It is apparent that we must arrange that the periodic
Z 1
repeats of |F( jω)| be far enough apart to prevent interaction between the copies. This
.f g/.x/ D f .x y/g.y/ dy;
implies that we have 1
ω 0exista.
siempre y cuando la integral impropia ⭓ 2ω m
at an absolute (and impractical!) minimum. Since ω 0 = 2π/T, the constraint implies that
Teorema A.80 Sean f; g 2 L2 .R/. Entonces f g existe, f g 2 L2 .R/ y además
T ⭐ π/ωpara
1. F.f g/.w/ D F.f /.w/ F.g/.w/ m todo w 2 R.
2. F.f g/.w/ D F.f /.w/ F.g/.w/ para todo w 2 R.
where T is the interval between samples. The minimum time interval allowed is
Estos últimos resultados tienen una importancia fundamental para la realización de filtros en frecuencia, que permitan,
Tmin = π/ω m
dada una señal, quedarnos con sus componentes en cierto rango de frecuencias y desechar las demás. Junto con el
teorema de Nyquist, o teorema de muestreo,
which is knownqueasproporciona
the Nyquistinformación esencial
interval and we para
haveelinpaso
factdededuced
una señala analógica,
form of the
o continua, a una señal digital,Nyquist–Shannon
conforman la base para el estudio
sampling y procesado
theorem. If T digital
⬍ Tmindethen
señales
the —DSP,
‘copies’digital
of F(signal
jω) are
processing—. isolated from each other, and we can focus on just one copy, either for the purpose of
signal reconstruction, or for the purposes of the estimation of F( jω) itself. Here we are
concerned
A.9.2.2 La Transformada de Fourier only discreta
with the latter problem. Basically, we have established a condition
under which the spectrum of the samples of the band-limited signal f (t), that is the
Se refiere al tratamiento de funciones
spectrumdiscretas en el
of fs(t), can betiempo
used toyestimate
frecuencia.
F( jSu
ω). objetivo es transformar una sucesión
discreta de valores, fn , n D 0; : : :Suppose
; N 1, en otra F , k D 0; : : : ; N 1.
we havekdrawn N samples from a continuous signal f (t) at intervals T, in
Las sucesiones objeto de análisis puedenwith
accordance ser elthe
resultado
Nyquistdecriterion,
un registro de Figure
as in una señal propiamente
8.27. dicha, con valores
We then consider
periódicos, o el resultado de una señal continua que se ha digitalizado. Esto último consiste en muestrearla, o samplearla,
N−1
es decir, no quedarse con toda la señal sino con una sucesión de valores de la señal tomados cada T segundos (este es
fs ( t ) = ∑
f ( kT ) δ ( t − kT )
el caso del muestreo uniforme en el tiempo), aunque para ciertas señales puede ser más interesante un muestreo no
k=0
uniforme. En la figura A.100 se ve una muestra de esta idea.
Figure 8.27
Sampling of a
continuous-time signal.
(N-1)T
7 7 7 7 7 1 7
Figura A.100
634 j Apéndice A
A la matriz simétrica 2 3
!0 !0 !0 !0
6! 0 ! 1 !2 !n 1 7
6 7
6
1 !0 !2 7
Fn D p 6 !4 ! 2.n 1/ 7
n6
6 :: :
:: :: :: 7 7
4 : : : 5
0 n 1 2.n 1/ 1/2
! ! ! ! .n
se la denomina matriz de Fourier. Todas sus filas y columnas, excepto las primeras, suman cero. La inversa de la matriz
de Fourier es 2 0 3
! !0 !0 !0
6! 0 ! 1 ! 2 ! .n 1/ 7
6 7
1 6 0 2 4 2.n 1/ 7
1
Fn D p 6 6 ! ! ! ! 7
n 6 :: :: :: :: 7
7
4 : : : : 5
.n 1/2
!0 ! .n 1/
! 2.n 1/
!
y la Transformada Discreta de Fourier inversa de y es x D Fn 1 y.
El algoritmo por excelencia para calcular la transformada de Fourier discreta es el conocido por Transformada Rápida
de Fourier —FFT—, debido a James William Cooley, EE.UU. 1926 y John Tukey, EE.UU. 1915-2000.
Cooley Tukey
Las fórmulas para el cálculo de la transformada de Fourier discreta son generales y se pueden aplicar a cualquier
conjunto de datos fx0 ; x1 ; x2 ; : : : ; xn 1 g, sin que necesariamente provengan del muestreo de una señal continua.
Volviendo a ese muestreo de señales continuas, su digitalización, o sampleo, tiene una ventaja evidente, que permite
trabajar con una sucesión de números en lugar de con toda la señal, lo que es muy útil sobre todo para el tratamiento
digital de la señal. También un inconveniente obvio, la señal muestreada no contiene, en principio, toda la información
que había en la señal original. Parece claro que cuantas más muestras por segundo se tomen (esto es, cuanto menor sea
T ) menos información se perderá, pero también costará más muestrear, almacenar y manipular la información. Entonces
¿cuál es intervalo de muestreo que debemos usar? La respuesta a esto la da el teorema de Nyquist-Shannon, que veremos
a continuación.
A.10 La Transformada del coseno discreta j 635
Antes, veamos un ejemplo concreto muy próximo en nuestro devenir cotidiano: un CD de música. Hasta hace no
muchos años la música se almacenaba siempre en vinilo o en cinta magnética, y ambos soportes partían de una señal
analógica y almacenaban también una señal analógica. El progreso de la tecnología y la relativamente baja calidad y
durabilidad de ambos soportes llevaron a plantearse el almacenamiento digital de la música en forma de CD, ya que el
soporte físico es muchísimo más duradero y el tratamiento de la señal digital más versátil. El problema una vez más es
¿a qué velocidad hemos de muestrear una señal sonora para que la señal muestreada sea de la máxima calidad?
Primero un par de consideraciones biológicas: nuestro oído “oye en frecuencias” (al igual que nuestros ojos ven en
frecuencias) y está limitado en frecuencia: nadie oye señales de frecuencia superior a 20KHz, al igual que nadie ve luz
infrarroja o ultravioleta. Este límite no es común a todos los animales: algunos, como ratas y perros tienen la capacidad
de oír señales de frecuencia superior, y los famosos ultrasonidos usados en ocasiones para intentar ahuyentar ratas no
son sino sonidos de frecuencia superior a 20KHz y gran volumen, que nosotros no oímos pero ellas sí. Esta limitación
de nuestro oído tiene consecuencias prácticas: si consideramos una señal sonora y le quitamos sus componentes de
frecuencias superiores a 20 KHz, nuestros oídos no son capaces de percibir ninguna diferencia entre ambas señales.
Por tanto la respuesta a la pregunta anterior, ¿a qué velocidad hemos de muestrear una señal sonora para que la señal
muestreada sea gran calidad?, es “A la velocidad necesaria para mantener las componentes de la señal de frecuencias
inferiores a 20 KHz.”
Y aquí es donde interviene por fin el teorema de Nyquist-Shannon.
Teorema A.81 Teorema de Nyquist-Shannon. Sea f W R ! C una señal que admite transformada de Fourier F (lo
que ocurre por ejemplo si f 2 L2 .R/). Si F.!/ D 0 para todo ! > !M D 2fM entonces se puede determinar f en
casi todo punto por medio de sus valores separados por intervalos uniformes menores que 2f1M segundos.
Este teorema es fruto del trabajo de Harry Nyquist, Suecia 1889-EE.UU. 1976 y Claude Elwood Shannon, EE.UU.
1916-2001.
Nyquist Shannon
Al parecer, no obstante, científicos como E. T. Whittaker, Vladimir Kotelnikov y otros estaban trabajando también sobre
este mismo asunto, por lo que en algunos casos se referencia en la literatura especializada como teorema de Nyquist-
Shannon-Kotelnikov, Whittaker-Shannon-Kotelnikov o Whittaker-Nyquist-Kotelnikov-Shannon, además de
teorema cardinal de interpolación.
A partir de este teorema se puede demostrar que la manera de recuperar f .t/, a partir de los datos muestreados y el
resultado, es
X1
sen !M .t nT /
f .t/ D f .nT / ;
nD 1
!M .t nT /
DCT-I
1 h i
N
X2
yk D x0 C . 1/k xN 1 C xn cos nk ; k D 0; : : : ; N 1:
2 nD1
N 1
DCT-II
N
X1
1
yk D xn cos nC k ; k D 0; : : : ; N 1:
nD0
N 2
DCT-III
N
X1
1 1
yk D x0 C xn cos n kC ; k D 0; : : : ; N 1:
2 nD1
N 2
DCT-IV
N
X1
1 1
yk D xn cos nC kC ; k D 0; : : : ; N 1:
nD0
N 2 2
Cuadro A.1
(
1
si x D 0
donde k; l D 0; 1; : : : ; 7 y c.x/ D 2 :
1 si x ¤ 0
Su inversa, IDCT-2D,
7 X
X 7
c.k/c.l/ .2i C 1/k .2j C 1/l
xij D ykl cos cos :
4 16 16
kD0 lD0
El bloque de coeficientes de la DCT está ordenado de modo que la componente continua corresponde al elemento y00 y
la frecuencia espacial crece con los índices k y l siendo y77 el coeficiente correspondiente a la mayor frecuencia.
En la figura A.102 se representa un conjunto de 64 funciones base bidimensionales (imágenes base) que se generan
multiplicando un conjunto de funciones base unidimensionales de ocho puntos (N=8) orientadas horizontalmente, por un
conjunto verticalmente orientado de las mismas funciones. Las imágenes base orientadas horizontalmente representan
las frecuencias horizontales y las orientadas verticalmente representan las frecuencias verticales. La fila superior y la
columna de la izquierda tienen variaciones de intensidad en una sola dimensión. Para propósitos de ilustración, un
gris neutro representa cero en estas figuras, el blanco representa amplitudes positivas, y el negro representa amplitudes
negativas.
La ventaja que tiene la DCT frente a la DFT para la compresión de imágenes, a parte de solo utilizar números reales,
es que produce una mejor compactación de la energía (consigue concentrar la mayor parte de la información en pocos
coeficientes) y un menor efecto de bloque. Este efecto se esquematiza en la figura A.103.
El efecto de bloque se produce cuando se divide la imagen en bloques de 88 píxeles o macrobloques de 1616 píxeles
para poder ejecutar los algoritmos de transformación. Cuando se lleva a cabo la DFT del bloque, se asume la periodicidad
del mismo (que se repite a lo largo de todo el plano bidimensional que contiene la imagen). En la transformada de Fourier
el píxel B del borde derecho será tratado por el algoritmo como si estuviera seguido por el píxel A. Si los niveles de gris
en cada píxel difieren considerablemente cualquier reconstrucción del bloque a partir de únicamente un número limitado
de coeficientes de Fourier dará lugar a valores erróneos en A y B. Este fenómeno es lo que se conoce como efecto de
bloque, que tiende a hacer muy visibles los límites de los bloques en la compresión, especialmente cuando la proporción
de compresión es elevada. Sin embargo, mientras que la teoría de Fourier implica la repetición de los bloques LxL, la
teoría de la DCT impone esta repetición sobre bloques 2Lx2L, que están relacionados con los bloques originales LxL a
través de simetrías especulares. La consecuencia de esta simetría especular es que después del píxel B, le sigue otro píxel
B, eliminando así la discontinuidad, esto provoca una reducción considerable del efecto de bloque. En la figura A.104
se muestra la periodicidad de un bloque 4 4 en la TFD y la TCD.
La transformación lineal óptima que minimiza el error cuadrático medio entre la imagen original y la imagen recu-
perada (después de transformar y comprimir la imagen) es la transformada de Karhunen-Loève (KLT). La KLT realiza
638 j Apéndice A
Figura A.102
Figura A.103: Compactación de la energía de una TCD comparada con una TFD
Introducción y estado del arte 25
píxel B, le sigue otro píxel B, eliminando así la discontinuidad, esto provoca una A.11 La Transformada de Laplace j 639
reducción considerable del efecto de bloque.
(a)
2L
L
A B B A
2L
(b)
Figura A.104: Periodicidad supuesta de un bloque 4 4 de una TFD (a) y una TCD (b)
Figura 15. Periodicidad supuesta de un bloque 4x4 por (a) una DFT y (b) una DCT.
Laplace
esta transformada integral es similar a la de Fourier. Mientras ésta es una función compleja de una variable real, la
frecuencia, la de Laplace es una función compleja de una variable compleja.
Definición A.103 Dada una función f .t/ definida en Œ0; 1/, su Transformada de Laplace es la función
Z 1
F .s/ D Lff g D e st f .t/ dt:
0
La transformada de Laplace es un operador: definido para funciones y que transforma funciones en otras funciones.
En generalR c s es una variable compleja. Como la integral de la definición es impropia, al evaluarla hay que considerar
lKımc!1 0 e st f .t/ dt.
La transformada de Laplace mejora algunas de las prestaciones de la Transformada de Fourier al no exigir que la señal
f .t/ sea absolutamente integrable. La Transformada de Laplace es invertible en un gran número de funciones.
640 j Apéndice A
Su transformada de Laplace es
Z 1
at st
Lff .t/g D Ae e dt
0
Z 1
.sCa/t
D dt Ae
0
ˇ1
e .sCa/t ˇˇ A
A ˇ D ;
.s C a/ ˇ sCa
0
at A
Ae .t 0/ , :
sCa
Algunas funciones útiles para ingeniería y control de procesos, y sus transformadas de Laplace, se listan en la tabla
del cuadro A.2.
La Transformada de Laplace hace sombra a la de Fourier en algunas aplicaciones ingenieriles como el control de
procesos industriales, el análisis de sistemas lineales, la electrónica industrial y otros afines. Su uso y estudio está
ampliamente extendido para ayudar a entender problemas donde las funciones que surgen están definidas en un tiempo
finito y están acotadas. También para integración numérica de ecuaciones diferenciales ordinarias.
El operador transformada de Laplace permite transformar un problema de funciones en un problema de sus respectivas
transformadas. Éste se resuelve si se puede mediante ecuaciones algebraicas y después se vuelve hacia atrás (problema
inverso) recobrando la solución original ahora en funciones. Por ejemplo, la transformada de Laplace permite cambiar
el dominio tiempo por el dominio frecuencia en problema de ecuaciones diferenciales, convirtiéndolo en ecuaciones
lineales, la convolución en multiplicación, etc.
Para terminar con una osada comparativa rápida general:
La transformada de Laplace “mapea” o transforma una función en otra en el plano complejo con variable compleja;
la de Fourier transforma una función en otra compleja con variable real (la frecuencia).
La transformada de Laplace se usa para estudios de estabilidad de señales y sistemas mientras que la de Fourier
para analizar el comportamiento de sistemas ante entradas sinusoidales.
La primera para señales permanentes; la segunda para señales dinámicas o transitorias.
La transformada de Fourier se usa para integrar ecuaciones diferenciales de problemas de contorno en la recta real;
la de Laplace para problemas de valor inicial.
A.12 Análisis de componentes principales j 641
1
1 s
1
e at ; a 2 R s a
nŠ
t n; n 2 N s nC1
w
sen wt; w 2 R s 2 Cw 2
s
cos wt; w 2 R s 2 Cw 2
w
senh wt; w 2 R s2 w 2
s
cosh wt; w 2 R s2 w 2
w
e at sen wt; a; w 2 R .s a/2 Cw 2
s a
e at cos wt; a; w 2 R .s a/2 Cw 2
2ws
t sen wt; w 2 R .s 2 Cw 2 /2
s2 w 2
t cos wt; w 2 R .s 2 Cw 2 /2
Cuadro A.2
Hotelling
remontan al trabajo sobre ajustes ortogonales por mínimos cuadrados de Karl Pearson, Reino Unido, 1857-1936. Como
642 j Apéndice A
Pearson
apuntábamos, permite transformar las variables originales de los datos de un problema, en general correladas, en un
número menor de nuevas variables incorreladas, facilitando así la interpretación de esos datos.
cov.X ; Y /
corr.X ; Y / D D R:
.X / .Y /
Esta matriz se utiliza para estandarizar los diversos datos. Es también semidefinida positiva.
La matriz de covarianzas y la matriz de correlación están relacionadas mediante la expresión
1 1
corr.X ; Y / D D cov.X ; Y /D ;
donde D es una matriz diagonal construida con las desviaciones típicas de las variables.
Diplomatura en Estadı́stica 11 Diplomatu
datos =
1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 10.0000
8.7000 14.3000 18.9000 19.0000 20.5000 14.7000 18.8000 37.3000 12.6000 25.7000
0.3000 0.9000 1.8000 0.8000 0.9000 1.1000 2.5000 2.7000 1.3000 3.4000
3.1000 7.4000 9.0000 9.4000 8.3000 7.6000 12.6000 18.1000 5.9000 15.9000
covariance =
56.9685 5.1705 30.4775
5.1705 0.8941 3.6479
30.4775 3.6479 18.7641
signal =
-12.3303 -5.3219 -0.4638 -0.2687 0.5154 -4.8597 1.2482 20.0429 -7.4938 8.9318
0.8063 -0.1713 0.4326 0.5136 2.0809 -0.2107 -2.7532 1.6367 0.0756 -2.4105
-0.0723 0.2971 -0.4540 0.6069 -0.0247 0.1397 0.1627 -0.0000 -0.4252 -0.2302
PC =
0.8714 0.4798 -0.1026
0.0853 -0.3542 -0.9313
0.4832 -0.8027 0.3495
V =
74.3739
2.1580
0.0948
PC =
0.8714 0.4798 -0.1026
0.0853 -0.3542 -0.9313
0.4832 -0.8027 0.3495
V =
74.3739
2.1580
0.0948
>>
Figura A.108: Sesión de M ATLAB para analizar los datos sobre pisos construidos
A.13 Cálculo estocástico y simulación j 647
Definición A.105 La -álgebra generada por los conjuntos abiertos de Rn se denomina -álgebra de Borel de Rn ,
representándose por BRn .
Debe su nombre a Félix Édouard Justin Émile Borel, Francia 1871-1956.
Borel
Si P .F / D 1 diremos que el suceso F ocurre con probabilidad uno, o casi seguramente. Algunas reglas básicas del
cálculo de probabilidades son:
P .A \ B/ D P .A/ C P .B/ si A [ B D ;
P .Ac / D 1 P .A/
A B H) P .A/ P .B/
Ejemplo A.39 Elegimos un número al azar en el intervalo Œ0; 2. D Œ0; 2, F es la -álgebra de Borel generada por
los intervalos de Œ0; 2. La probabilidad de cualquier intervalo Œa; b Œ0; 2 será
a b
P .Œa; b/ D :
2
Se dice que un espacio de probabilidad .; F; P / es completo si dado un suceso A de probabilidad cero, todos los
subconjuntos de A pertenecen a la -álgebra F.
Definición A.107 Una variable aleatoria definida sobre un espacio de probabilidad .; F; P / es una aplicación
X.!/ W ! R que es F-medible, es decir, X 1 .B/ 2 F, para todo conjunto B de la -álgebra de Borel de R, BR .
De forma más sencilla, una variable aleatoria es una función real definida en el espacio de probabilidad .; F; P / que
otorga un valor numérico a un experimento aleatorio.
Una variable aleatoria determina una -álgebra fX 1 .B/; B 2 BR g F que se denomina -álgebra generada por X .
Una variable aleatoria determina una probabilidad en la -álgebra de Borel BR definida por PX D P ı X 1 , es decir,
1
PX .B/ D P .X .B// D P .f! W X.!/ 2 Bg/:
1
El símbolo ı denota composición de funciones y X la preimagen. La probabilidad PX se denomina la ley o distribución
de la variable X.
A.13 Cálculo estocástico y simulación j 649
Definición A.108 Se dice que una variable aleatoria X tiene una densidad de probabilidad fX si fX .x/ es una
función positiva, medible respecto de la -álgebra de Borel y tal que
Z b
P .a < X < b/ D fX .x/ dx;
a
para todo a < b.
pk D P .X D xk /:
para k D 0; 1; : : : ; n.
Definición A.109 La distribución de una variable aleatoria X puede caracterizarse mediante su función de distribu-
ción definida como la probabilidad acumulada
FX .x/ D P .X x/ D PX .. 1; x/:
La función FX W R ! Œ0; 1 es creciente, continua por la derecha y con límites iguales a cero en 1 y 1 en C1. Si la
variable tiene densidad fX , entonces Z x
FX .x/ D fX .y/ dy;
1
Definición A.110 La esperanza matemática de una variable aleatoria X se define como la integral de X con respecto
a la probabilidad P , considerada como una medida en el espacio .; F/. En particular, si X es una variable elemental
que toma los valores ˛1 ; : : : ; ˛n en los conjuntos A1 ; : : : ; An , su esperanza matemática valdrá
X n
E.X / D ˛i P .Ai /:
i D1
El cálculo de la esperanza matemática de una variable aleatoria se efectúa integrando la función X respecto de la ley
de probabilidad de la variable. Es decir, si X es una variable que tiene esperanza (E.jXj/ < 1) se tiene que
Z Z 1
E.X / D X.!/ dP .!/ D x dPX .x/:
1
En general, si g W R ! R es una función medible respecto de la -álgebra de Borel y E.g.X // < 1 entonces la
esperanza de la variable g.X / se puede calcular integrando la función g respecto de la ley de la variable X , es decir
Z Z 1
E.g.X // D g.X.!// dP .!/ D g.x/ dPX .x/:
1
650 j Apéndice A
R1
La integral 1 g.x/ dPX .x/ se calcula utilizando la densidad o función de probabilidad de la variable X :
„Z 1
Z 1 g.x/fX .x/ dx fX .x/ es la densidad de X
1
g.x/ dPX .x/ D X
1 g.xk /P .x D xk / X es variable discreta.
k
Ejemplo A.42 Si X es una variable aleatoria con ley normal N.0; 2 / y es un número real,
ˇ 1
1 x2
E.e X / D p e x e 2 2 dx
2 2 1
ˇ 1
.x 2 /2
1 2
2
Dp e 2 e 2 2 dx
2
2 1
2 2
De 2 :
Existen también leyes normales degeneradas en las que la matriz es singular. En este caso no existe la densidad de
probabilidad y la ley de X queda determinada por su función característica:
0
E e i t X D e .i t m 2 t t / ;
0 1 0
Lp .; F; P /:
Sea X una variable aleatoria con función característica 'X .t/ D E.e i tX /. Los momentos de la variable aleatoria
pueden calcularse a partir de las derivadas de la función característica en el origen
ˇ
1 .n/ ˇˇ
mn D n 'X .t/ˇ :
i tD0
para todo conjunto finito de índices fi1 ; : : : ; ik g I , donde los Bj son conjuntos de Borel.
Si dos variables aleatorias reales X e Y son independientes y tienen esperanza finita, el producto X Y tiene esperanza
finita y se cumple que E.X Y / D E.X /E.Y /.
En general, si las variables X1 ; : : : ; Xn son independientes,
donde las gi son funciones medibles tales que EŒjgi .Xi /j < 1.
Las componentes de un vector aleatorio de variables aleatorias son independientes sí y sólo sí su densidad o función
de probabilidad es igual al producto de las densidades o funciones de probabilidad de cada componente.
652 j Apéndice A
Definición A.115 La probabilidad condicionada de un suceso A por un suceso B, suponiendo P .B/ > 0, se define
como
P .A \ B/
P .AjB/ D :
P .B/
Dos sucesos A y B son independientes si y sólo si P .AjB/ D P .A/. La probabilidad condicionada P .AjB/ representa
la probabilidad del suceso A suponiendo sabemos que B ha ocurrido. La aplicación A 7 ! P .AjB/ define una nueva
probabilidad en el -álgebra F que se concentra en el conjunto B. Se puede calcular la esperanza condicionada por B
de una variable aleatoria integrable X:
1
E.XjB/ D E.X1B /;
P .B/
donde 1B representa la función indicatriz del suceso B, definida por
(
1 si ! 2 B
1B D
0 si ! … B:
X(t) 0
−5
4
3 100
50
Muestra número 2 t
1 0
Figura A.109
Figure 4.1. Four samples of a stochastic process.
Si fijamos un conjunto finito de instantes f0 t1 < < tn g tendremos un vector aleatorio .X t1 ; : : : ; X tn / W ! Rn .
Las distribuciones de probabilidad P t1 ;:::;tn D P ı .X t1 ; : : : ; X tn / 1 se denominan distribuciones en dimensión finita
del proceso.
La media (muestral) y la autocovarianza de un proceso estocástico se definen así:
mX .t/ D E.X t /
X .s; t/ D Cov.Xs :X t /
1 D E..Xs mX .s//.X t mX .t//: Sample 1
Sample 2
La varianza (muestral) del proceso X se define por X2 .t/
D X .t; t/ D Var.X t /. Sample 3
Se dice que un proceso estocástico fX t ; t 0g es gaussiano o normal si sus distribuciones en dimensión finita son
leyes normales multidimensionales.
X(t) 0 En el caso de un proceso estocástico gaussiano, la media mX .t/ y la autocovarianza
X .s; t/ determinan las distribuciones de dimensión finita del proceso.
La media mX .t/ y la varianza X2 .t/ nos permiten conocer dónde se concentran los valores de la variable X t así como
su grado de dispersión, para−1cada instante t fijo. Por ejemplo, en el caso de un proceso gaussiano,
0 0.25 0.5 0.75 1
P .mX .t/ 2X .t/ X t m
t X .t/ C 2X .t// ' 0;95:
Un proceso estocástico fX t ; t 0g es continuo en probabilidad si para todo " > 0 y todo t 0, lKıms!t P .jXy Xs j >
"/ D 0: Si el proceso tiene una E.jX t jp / < 1 para todo t 0, con p 1, se dice que el proceso es continuo en media
de orden p si lKımx!t E.jX t Xs jp / D 0: La continuidad en media de orden p implica la continuidad en probabilidad.
La continuidad de media de orden p no implica necesariamente la continuidad de las trayectorias.
Acotaciones adecuadas de los momentos de los incrementos del proceso, permiten deducir la continuidad de las
trayectorias. Este es el contenido del siguiente criterio de continuidad, debido a Andréi Nikoláyevich Kolmogórov,
Rusia 1903-1987.
Kolmogórov
5
X(t) 0
−5
4
100
Proposición A.82 Criterio de continuidad
3 de Kolmogorof. Supongamos50que un proceso estocástico fX t ; t 0g
2
cumple la condición siguiente: 1 0
SampleE.jX
#
t Xs jp / cT jt sjt ˛ ;
para todo 0 s < t T , donde a > 1 y p > 0. Entonces existe una versión del proceso estocástico X t que tiene
trayectorias continuas. Figure 4.1. Four samples of a stochastic process.
A.13.2.1 Ejemplos
Sea X.t/ D A cos.10t/, t 0, donde A es una variable aleatoria uniformemente distribuida en el intervalo Œ0; 1. X.t/
es un proceso estocástico pues para cada tiempo dado t0 , X.to / es una variable aleatoria uniforme. En la figura A.110 se
ven tres ejemplos de X.t/, para 0 t 1.
1 Muestra 1
Muestra 2
Muestra 3
X(t) 0
−1
0 0.25 0.5 0.75 1
t
Figura A.110
Figure 4.2. Three samples of stochastic process X(t) =
A cos (10t).
38
Bernouilli
Es uno de los procesos estocásticos más simples. Los constituyen secuencias de variables aleatorias independientes e
idénticamente distribuidas, cada una de las cuales toma el valor 1, con probabilidad p, o el 0, con probabilidad 1 p.
Un ejemplo típico es el de lanzar al aire una moneda un número de veces. Cada lanzamiento lo representa una variable
aleatoria de Bernoulli con probabilidad p de que salga cara y 1 p de que salga cruz.
A.13 Cálculo estocástico y simulación j 655
La varianza será
kt kt
" 2 2 #
X X 1 1 kt
Var.S tk / D Var.Sik / D p .0;5/ C p .0;5/ D D t:
k k k
iD1 iD1
5 5
x x
5 10 5 10
–5 –5
(a) (b)
Figura A.112
Figure 9.10 Discrete Brownian motion. (a) Random walk Wt of 10 steps. (b) Random walk Wt25
√
El límite de esta subdivisión
using de steps
25 times more S t cuando !with
than (a),k but 1 step heightal1/movimiento
da lugar 25. The meanbrowniano
and variancecontinuo
en el que t es
of the
height at
tt
1t = 10 are identical (0 and 10, respectively) for processes (a) and (b).
una variable real y W D S es una variable aleatoria para cada t 0. Se conoce más concretamente
time como Proceso
de Wiener, por Norbert Wiener, EE.UU. 1894-1964, que fue quien estableció en los años 20 del siglo XX el modelo
matemático del movimiento browniano basado en la teoría de los procesos estocásticos.
Therefore, Wtk is defined to be the random walk that takes a step sik of horizontal length
√
1/k, and with step height ±1/ k with equal probability. Then the expected value at time t
is still
kt Wiener
kt
k k
E(Wt ) = E(si ) = 0 = 0,
i=1 i=1
If we decrease the step size and step height of the random walk in this precise way as k
grows, the variance and standard deviation stays constant, independent of the number k
of steps per unit time. Figure 9.10(b) shows a realization of Wtk , where k = 25, so 250
656 j Apéndice A
Definición A.120 Un proceso estocástico fXn ; n og, en el que las variables aleatorias están definidas en un espacio
medible, es un proceso o cadena de Markov si para cualquier n y cualquier conjunto A se cumple que P .XnC1 2
AjX0 ; : : : ; Xn / D P .XnC1 2 AjXn /. A los procesos que se comportan de esta manera se les dicen, en general, que
cumplen la propiedad de Markov.
Lo que quiere decir que dado el presente cualquier otra información del pasado es redundante o irrelevante para
predecir el futuro. La definición es equivalente a la identidad E.f .XnC1 /jX1 ; : : : ; Xn / D E.f .XnC1 /jXn /.
Los procesos de Bernoulli, Wiener, brownianos y de Poisson son procesos que cumplen esta propiedad. Los procesos
de Markov toman su nombre de Andrey Andreyevich Markov, Rusia 1856-1922.
Markov
A.13.3 Simulación
Los modelos matemáticos, para ser creíbles y robustos ante distintos escenarios de actuación, necesitan simular sus
prestaciones a partir de patrones de situaciones ya dadas o de datos imaginados. Esto permite analizarlos para conocer
sus debilidades numéricas o teóricas y así mejorarlos. Si se alimentan con datos que fijen un punto de partida adecuado
y unas condiciones de contorno previsibles, pueden permitir, con el resultado de su operación, tomar decisiones con un
grado de certeza o riesgo más o menos aceptable de acuerdo con el grado de dificultad o entidad de la decisión.
Los modelos de procesos estocásticos se basan en situaciones probables, aunque inciertas, dentro de unos determinados
márgenes de actuación. Su evolución es aleatoria y dotada de ruido por lo que para simular su comportamiento es
necesario generar números aleatorios que imiten o reproduzcan hasta donde sea posible ese ruido o aleatoriedad. En los
apartados anteriores hemos presentado unos ejemplos muy sencillos de cómo hacer unas modestas simulaciones con la
ayuda de M ATLAB para generar paseos aleatorios, procesos de Wiener, etc.
Aunque todos disponemos intuitivamente de una cierta noción de un número aleatorio, no es nada fácil definirlo con
precisión. Tampoco en fácil imaginar cómo generarlos mediante una máquina y que su patrón de ocurrencia responda a
una distribución concreta como la normal, la exponencial, la gaussiana, etc.
Mersenne Twister, del tipo minimal standard random number generator. Se suele inicializar utilizando como semilla el
reloj de tiempo real del ordenador. Su nombre proviene de un monje, Marin Mersenne, Francia 1588-1648, que estudió
los números primos que llevan su nombre (primos iguales a una potencia de 2 menos 1).
Mersenne
Ejemplo A.43 Vamos a utilizar este generador de números aleatorios para, siguiendo a Sauer [2012], y adelantándonos
a la introducción de la técnica Monte Carlo, calcular el área del conjunto de puntos .x; y/ que satisfacen
La idea es generar 10.000 pares de puntos .x; y/ de tal manera que los que cumplan esta inecuación se registran. Al final
del proceso se cuentan cuántos de estos hay en total, y esa cantidad dividida por 10.000 nos dará el área más probable
que encierra a ese conjunto de puntos.
En la figura A.113 se puede ver el resultado de la simulación —que numéricamente es 0;547— y el área cubierta por
los puntos que cumplen la inecuación.
9.1 Random Numbers | 435
0.8
0.6
y
0.4
0.2
0
0 0.5 1
x
Although we have made a distinction between two types of Monte Carlo problems,
there is no firm boundary between them. What they have in common is that they are both
computing the average of a function. This is explicit in the previous “type 1’’ example. In
the “type 2’’ example, we are trying to compute the average of the characteristic function
of the set, the function that takes the value 1 for points inside the set and 0 for points
A.13 Cálculo estocástico y simulación j 659
q0 D 0; q1 D p1 ; q2 D p1 C p2 ; : : : ; qn D p1 C p2 C pn D 1:
Para simular la variable aleatoria discreta X se utiliza el generador rand y se hace igual a x1 si 0 rand< q1 , x2 si
q1 rand< q2 , y así sucesivamente. Si la distribución de probabilidad es muy extensa, se puede truncar a un valor de n
suficientemente grande.
Box
De acuerdo con él, para simular una variable aleatoria de distribución normal de media D 0 y varianza 2 D 1, se
pude utilizar rand para obtener dos números, rand1y rand2 de tal manera que
p p
X1 D 2 log.rand1/ cos.2rand2/ y X2 D 2 log.rand1/ sen.2rand2/
Von Neumann es, como decía Newton, uno de los grandes gigantes que ha dado la naturaleza humana. Sus contribucio-
nes en los 53 años de su vida a múltiples disciplinas relacionadas con las matemáticas son absolutamente portentosas.
No cabe duda de que a hombros de él los avances de muchas áreas a las que dedicamos este libro han permitido ver e ir
mucho más lejos de lo que él comenzó.
El método Montecarlo está basado en este interesante resultado.
A.13 Cálculo estocástico y simulación j 661
Teorema A.85 Ley de los grandes números. Sea X1 ; X2 ; : : : una sucesión de variables aleatorias independientes que
tienen la misma distribución y la función g W R ! R tal que D EŒg.X1 / D EŒg.X2 / D . Se cumple que
l 1
g.X1 / C g.X2 / C C g.Xn /
!D g.x/fX1 .x/ dx al n ! 1:
n
1
De acuerdo con este teorema, el enfoque para el cálculo que sigue el método de Montecarlo es la siguiente:
R1
Supóngase que una cantidad que se quiere determinar se puede escribir como y D 1 g.x/fX .x/ dx para
alguna variable aleatoria X con función de densidad de probabilidad fX , y para alguna función concreta g.
También, que los números x1 ; x2 ; : : : son muestras aleatorias de la distribución de fX . Entonces, la media
1
.g.x1 / C g.x2 / C C g.xn //
n
p
aproxima el valor de y con una precisión aproximada dada por 1= n.
En la actualidad se usa masivamente para calcular expectativas de precios de derivados financieros, predicciones de
evolución en bolsa de determinados productos y posiciones, procesos estocásticos complicados, etc.
dy D f .t; y/ dt C g.t; y/ dB t
donde la segunda integral se denomina integral de Itō. Su nombre proviene de Kiyosi Itô, Japón 1915-2008.
Itō
dy D ry dt C y dB t :
1 2
Hagamos y D f .t; x/ D y0 e x , donde x D .r 2
/t C B t . Mediante la fórmula
1
dy D y0 e x C y0 e x dx dx;
2
donde dx D .r 1=2 2 /dt C dB t . Haciendo uso de los valores diferenciales de la fórmula de Itō, se tiene que
dx dx D 2 dt . En consecuencia,
x 1 2 1
dy D y0 e r dt C y0 e x dB t C y0 2 e x dt
2 2
D y0 e x r dt C y0 e x dB t
D ry dt C y dB t :
Esta ecuación se utiliza habitualmente en modelos financieros. En concreto, es la fórmula detrás del modelo de Black-
Scholes para poner precio a los derivados financieros.
Muchas ecuaciones diferenciales estocásticas no pueden resolverse explícitamente. Por ello es conveniente disponer
de métodos numéricos que permiten la simulación de soluciones.
Maruyama
que a la postre valió a Scholes (Black ya había muerto) para conseguir el Premio Nobel de Economía en 1997, junto a
Robert C. Merton.
Un sencillo ejemplo para contextualizar las fórmulas que emplearemos se refiere a una opción de compra de acciones
de la compañía IBD por 15 e el 1 de diciembre. Si el precio de las acciones de esta compañía, tan aparentemente
atractiva, el 1 de junio está en 12 e, la pregunta es ¿cuál es el valor de esa opción o derecho de compra? El valor o precio
de la acción el día del vencimiento será K euros. Si X es el valor de la acción en un momento dado, el de la opción
esperable será el mKax fX K; 0g. Si X > Z, el valor de la opción el día de la ejecución es positivo e igual a X K
euros. Si X < K el valor será cero para el comprador de la opción.
El modelo para valorar estos derivados se basa en un movimiento browniano de tipo geométrico con la fórmula
dX D mX dt C X dB t ;
donde m es la deriva, o tasa de crecimiento del precio de la acción, y la constante de difusión, o volatilidad. Estos
dos parámetros se pueden estimar estadísticamente en función de los valores a los que ha cotizado la acción los últimos
tiempos.
El razonamiento de Black y Scholes para deducir su fórmula se basa en considerar —una propuesta de arbitrage al
respecto, nada más— que el valor correcto de esa opción, a T meses o años vista, debería ser el valor presente del valor
esperado de la opción el día de su vencimiento teniendo en cuenta que el valor real de la acción subyacente X.t/ satisface
la ecuación diferencial estocástica
dX D rX dt C X dB t :
Esto resulta en que si el precio de la acción objeto de análisis es X D X0 en el instante t D 0, el valor esperable de la
opción en el instante de su vencimiento t D T es
rT
C.X; T / D e EŒmKax .X.T / K; 0/;
donde X.t/ es el valor determinado por la ecuación diferencial estocástica anterior. Lo sorprendente de esta fórmula es
que la deriva m se reemplaza por la tasa de interés o rentabilidad r. De hecho, el previsible crecimiento de la cotización
de la acción es irrelevante para el valor de la opción, lo cual se desprende de la suposición de no arbitrage, base de la
teoría de Black y Scholes, que viene a decir que no existen ganancias libres de riesgos en un mercado realmente eficiente.
La última fórmula depende del valor de la esperanza matemática de la variable aleatoria X.t/, que sólo se puede
conocer mediante simulación, como sabemos. Si se aporta esa información, la expresión compacta del valor de la opción
que dedujeron Black y Scholes es
C.X; T / D XN.d1 / Ke rT N.d2 /;
Rx s 2 =2
donde N.x/ D p1 1e ds es la función de distribución normal acumulada,
2
ln.X=K/ C r C 21 2 T ln.X=K/ C r 1 2
2
T
d1 D p y d2 D p :
T T
Apéndice B
Estos son los programas en M ATLAB que por su extensión no se pudieron incluir en pequeños cuadros en los capítulos
correspondientes.
B.1 cgLanczos_1.m
Este programa es una versión del Systems Optimization Laboratory, de la Universidad de Stanford, para resolver Ax D
b, donde la matriz A es definida positiva y simétrica, que utiliza iteraciones de Lanczos según lo visto en el capítulo
correspondiente. Se mencionó en el página 212 del capítulo 8.6.2.
function [ x, istop, itn, Anorm, Acond, rnorm, xnorm, D ] = ...
cgLanczos_1( A, b, show, itnlim, rtol )
% cgLanczos solves the system of linear equations Ax = b,
% where A is an n x n positive-definite symmetric matrix
% and b is a given n-vector, where n = length(b).
%
% On entry:
% show (true/false) controls the iteration log.
% itnlim (integer) limits the number of iterations.
% rtol (e.g. 1e-8) is the requested accuracy. Iterations
% terminate if rnorm < (Anorm*xnorm)*rtol.
%
% On exit:
% x (n-vector) is the solution estimate
% istop (0--6) gives reason for termination (see "msg" below)
% itn (integer) is the number of CG iterations
% Anorm estimates the Frobenius norm of A
% Acond estimates the condition of A (in F-norm)
% rnorm estimates the residual norm: norm(r) = norm(b-Ax)
% xnorm is the exact norm(x)
% D (n-vector) estimates diag(inv(A)).
%
% Code author: Michael Saunders, SOL, Stanford University.
% Reference C. C. Paige and M. A. Saunders (1975),
% Solution of sparse indefinite systems of linear equations,
% SIAM J. Numer. Anal. 12(4), pp. 617-629.
%---------------------------------------------------------------------
n = length(b);
if show
fprintf(’\n’)
fprintf(’\n Enter cgLanczos. Solution of symmetric Ax = b’)
fprintf(’\n n = %6g itnlim = %6g rtol = %11.2e’, n,itnlim,rtol)
end
istop = 0; itn = 0;
Anorm = 0; Acond = 0; x = zeros(n,1);
xnorm = 0; D = zeros(n,1);
%------------------------------------------------------------------
% Set up the first Lanczos vector v.
%------------------------------------------------------------------
done = false;
666 j Apéndice B
beta1 = norm(b);
if beta1==0
istop = 0; done = true; show = true; % b=0 exactly. Stop with x = 0.
else
v = (1/beta1)*b;
end
%---------------------------------------------------------------------
% Main iteration loop.
% --------------------------------------------------------------------
if ~done % k = itn = 1 first time through
while itn < itnlim
itn = itn + 1;
%-----------------------------------------------------------------
% Obtain quantities for the next Lanczos vector vk+1, k = 1, 2,...
% The general iteration is similar to the case k = 2.
% p =A*v2; alpha2=v2’*p; p=p - alpha2*v2 - beta2*v1; beta3=norm(p)
% v3=(1/beta3)*p.
%-----------------------------------------------------------------
p = A*v;
if itn>1, p = p - beta*v1; end
alpha = v’*p; % alpha = v’Av in theory
if alpha<=0, istop = 6; break; end % A is indefinite or singular
p = p - alpha*v;
oldb = beta; % oldb = betak
beta = norm(p); % beta = betak+1
beta = max(beta,eps); % Prevent divide by zero
v1 = v;
v = (1/beta)*p;
B.2 Rsimplex_1.m
Este programa es una versión del Simplex un poco más completa que las presentadas para incluir variables acotadas y
las Fases I y II en su totalidad de ese algoritmo. Se mencionó en el página 351 del capítulo 14.7.
function [fobj,niters,x] = Rsimplex_1(file,A,b,c,lb,ub)
% Método Simplex revisado en dos FASES
% Resuelve min c’x st Ax=b, lb<=x<=ub.
%
if nargin>2
if nargin<4, error(’Si no se lee de fichero, se requieren al menos’,...
’ cuatro argumentos en entrada’); end
if nargin<6, ub = Inf*ones(size(c)); end
if nargin<5, lb = zeros(size(c)); end
A = sparse(A); c=c(:); b=b(:); lb=lb(:); ub=ub(:);
else % Lectura de los datos desde fichero ’file’ en MPS
eval([’!copy ’ file ’ d:\Matlab2013a\work\tmp\in.mps’]); clear all
LIPSO = ’d:\Matlab2013a\work’; fin=mps2mat(LIPSO); fprintf(’\n’);
load d:\Matlab2013a\work\tmp\default; % En default.mat los datos
lb=lbounds; ub=ubounds;
end
[m,n] = size(A); zer_tol = 1.0e-5; piv_tol = 1.0e-8; niters=0; t=cputime;
f=fopen(’Salida_Rsimplex’,’w’);
fprintf(f,’ It. Fase Sinf/Fobj Nopt\n’);
fprintf(f,’----------------------------------\n’);
% FASE I
v = zeros(n,1);
lbdd = find(lb>-Inf); v(lbdd) = lb(lbdd); free = setdiff(1:n,lbdd);
ubdd = free(ub(free)<Inf); v(ubdd) = ub(ubdd);
if isempty(ubdd), N = -lbdd’; % Var no en la base: en cota inf. No hay en u
else N = [-lbdd’ ubdd]; free = setdiff(free,ubdd);
end
f = length(free);
if f>0 % ¡OJO! Hay variables libres
[L,U,P,Q] = lu(A(:,free)); % Q es matriz de permutación
free = free*Q’;
i = length(find(abs(diag(U))>piv_tol)); j = free(i+1:f);
if ~isempty(j)
N = [N j]; free = setdiff(free,j); f = length(free);
lb(j) = zeros(size(j)); ub(j) = zeros(size(j));
end;
[k,~] = find(P(1:f,:)); % relies on diag(U) having zeros at end
668 j Apéndice B
B.3 PLip_1.m
Este programa es una versión muy completa de un algoritmo de Punto Interior —basado en Lipsol— para resolver
problemas de Programación Lineal de grandes dimensiones. Se pueden leer los datos en cualquier formato de los más
habituales en el mercado.
function PLip_1(pname,A,b,c,lb,ub)
% PLip Programación Lineal con algoritmo de Punto Interior
% Basado en Lipsol; adaptado para no tener que usar las rutinas de Fortran
% adaptadas a Matlab .mexw32. Lee datos en formato Matlab o .MPS
% Uso PLip_1(’etam-mi.mps’) o PLip_1(’LP_acotadas_clase.mat’)
% >> cEje1=[-1 -3 0 0];
% >> AEje1=[2 3 1 0;-1 1 0 1];
% >> bEje1=[6;1]
% PLip_1([],AEje1,bEje1,cEje1)
%
global x y z s w
t0 = cputime;
if nargin>2
if nargin<4, fprintf(’Si no se lee de fichero, se requieren al menos’,...
’ cuatro argumentos en entrada’); return, end
if nargin<6, ub = Inf*ones(size(c)); end
if nargin<5, lb = zeros(size(c)); end
A = sparse(A); c=c(:); b=b(:); lbounds=lb(:); ubounds=ub(:); BIG=1.e35; NAME=’’;
else % Lectura de los datos desde fichero ’file’ en MPS o MAT
[A,b,c,lbounds,ubounds,BIG,NAME,~] = loadata(pname);
end
times(1) = cputime - t0;
t0 = cputime;
[A,b,c,lbounds,ubounds,FEASIBLE] = preprocess(A,b,c,lbounds,ubounds,BIG); %Preprocesado
if ~FEASIBLE, fprintf(’Infactibilidad detectada en preprocesado\n’), return, end
[A,b,c,ubounds] = scaling(A,b,c,ubounds);
times(2) = cputime - t0;
t0 = cputime;
[info] = Alg_IP(A,b,c,ubounds); % Aqui se resuelve todo
save results x y z s w info;
times(3) = cputime - t0;
t0 = cputime;
[xsol, objp] = postprocess(x,lbounds); % Se deja todo como estaba al principio
times(4) = cputime - t0;
save solution xsol;
printout(NAME,info,objp,times);
end
isolved = find(Atmp1);
insolved = find(Atmp1 == 0);
xsolved = b(isgrows)/Atmp(isolved);
else
colnnzct = sum(Atmp1);
isolved = find(colnnzct);
insolved = find(colnnzct == 0);
[ii, jj] = find(Atmp);
Atmp = Atmp(ii,jj); btmp = btmp(ii);
xsolved = btmp./diag(Atmp);
if any(colnnzct > 1)
repeat = diff([0; jj]) == 0;
for i = 1:length(xsolved) - 1
if repeat(i+1) && xsolved(i+1)~=xsolved(i)
fprintf(’\nPreproceso: problema no factible\n’);
fprintf(1,’%c’,7); % ring a bell
FEASIBLE = 0; return
end
end
ii = find(~repeat); jj = ii;
Atmp = Atmp(ii,jj); btmp = btmp(ii);
xsolved = btmp./diag(Atmp);
end
end
if any(xsolved<lbounds(isolved)) || any(xsolved>ubounds(isolved))
fprintf(’\nPreproceso: problema no factible\n’);
fprintf(1,’%c’,7); % ring a bell
FEASIBLE = 0; return
end
b = b(iothers) - A(iothers,isolved)*xsolved;
A = A(iothers, insolved);
c = c(insolved);
lbounds = lbounds(insolved);
ubounds = ubounds(insolved);
data_changed = 1;
end
%----- shift nonzero lower bounds -----
Lbounds_non0 = any(lbounds ~= 0);
if Lbounds_non0, b = b - A*lbounds; data_changed = 1; end
%----- find upper bounds -----
nub = 0; iubounds = ubounds < BIG - 1;
Ubounds_exist = full(any(iubounds));
if Ubounds_exist
ubounds = sparse(iubounds.*(ubounds-lbounds));
nub = nnz(ubounds);
end
[m, n] = size(A); NNZA = nnz(A);
fprintf(’ (m=%i, n=%i)\n’,m,n);
end
%FIN preprocess
b = b.*rowscl;
bnrm = norm(b);
if bnrm>0
q = median([1 norm(c)/bnrm 1.e+8]);
if q>10, A = q*A; b = q*b; end
end
data_changed = 1;
end
end
%FIN scaling
[dx2,dy2,dz2,ds2,dw2] = direction(A,P,U,mzeros,nzeros,nzeros,...
Rxz,Rsw,vmid,xn1,sn1,z,w,mu,bnrm,2);
dx = dx + dx2; dy = dy + dy2; dz = dz + dz2;
ds = ds + ds2; dw = dw + dw2;
[ap,ad] = ratiotest(dx,dz,ds,dw);
end
[Rxz,Rsw,dgap] = update(ap,ad,dx,dy,dz,ds,dw,trerror,tol);
[Rb,Rc,Ru,rb,rc,ru] = feasibility(A,b,c,ubounds);
[trerror,rrb,rrc,rru,rdgap,objp,objd]=errornobj(b,rb,bnrm,c,rc,cnrm,ubounds,ru,unrm,dgap);
Hist = [Hist [trerror rrb rrc rru rdgap objp objd]’];
iter = iter + 1;
end %%% Fin while %%%
info(1) = converged;
info(2) = iter;
info(3) = trerror;
save vd Vd;
end
%FIN Alg_IP
function initpoint(A,b,c,ubounds,bnrm,cnrm)
% INITPOINT - Punto de comienzo del proceso.
global x y z s w
global Ubounds_exist
global per m R Apro trerror_1 posdef
[m,n] = size(A); y = zeros(m,1);
pmin = max(bnrm/100, 100);
dmin = cnrm*.425; dmin = max(dmin, pmin/40);
pmin = min(pmin, 1.e+4); dmin = min(dmin, 1.e+3);
e = ones(n,1);
P = A*sparse(1:n,1:n,e,n,n,n)*A’; U=[];
[R,p] = chol(P(per,per));
if p == 0
posdef = 1;
else
posdef = 0;
warningstate4=warning(’off’,’MATLAB:cholinc:ArgInfToBeRemoved’);
R = cholinc(P(per,per),’inf’);
%R = builtin(’_cholinf’,sparse(P(per,per)));
end
rho = min(100,bnrm);
br = b-rho*A*e; Apro(per) = (R\(R’\br(per))); % antes: x=A’*(P\(b-rho*A*e)) + rho*e;;
x = A’*Apro + rho*e; %
pmin = max(pmin, -min(x)); x = max(pmin,x);
z = full((c+dmin).*(c > 0) + dmin*(-dmin < c & c <= 0) - c.*(c <= -dmin));
s = []; w = [];
if Ubounds_exist
s = spones(ubounds).*max(pmin, ubounds-x);
w = spones(ubounds).*(dmin*(c > 0)+(dmin - c).*(-dmin < c & c <= 0)-2*c.*(c <= -dmin));
end
end
%FIN initpoint
function [dx,dy,dz,ds,dw]=direction(A,P,U,Rb,Rc,Ru,Rxz,Rsw,vmid,xn1,sn1,z,w,mu,bnrm,flag)
% DIRECTION - Calcula las direcciones del proceso iterativo
global Ubounds_exist
global per m R Apro trerror_1 posdef
if mu~=0 Rxz = Rxz - mu; end
Rc0 = Rc;
Rc = Rc - Rxz.*xn1;
if Ubounds_exist
if mu ~= 0, Rsw = Rsw - mu; end
Rc = Rc + (Rsw - Ru.*w).*sn1;
end
rhs = -(Rb + A*(vmid.*Rc));
if flag==1
if posdef
[R,p] = chol(P(per,per)); if p ~= 0, posdef = 0; end
else
warningstate4=warning(’off’,’MATLAB:cholinc:ArgInfToBeRemoved’);
R = cholinc(P(per,per),’inf’);
%R = builtin(’_cholinf’,sparse(P(per,per)));
end
end
warningstate1=warning(’off’,’MATLAB:nearlySingularMatrix’);
warningstate2=warning(’off’,’MATLAB:singularMatrix’);
warningstate3=warning(’off’,’MATLAB:rankDeficientMatrix’);
Apro(per) = R\(R’\rhs(per));
dy = Apro;
dx = vmid.*(A’*dy + Rc); % Antes: dy = P\rhs;
dz = -(z.*dx + Rxz).*xn1;
ds = []; dw = [];
if Ubounds_exist
ds = -(dx.*spones(w) + Ru);
dw = -(w.*ds + Rsw).*sn1;
end
resp = Rb + A*dx;
if norm(resp) > 1.e-1*bnrm
B.3 PLip_1.m j 675
function mu = centering(dx,dz,ds,dw,ap,ad,dgap,trerror)
% CENTERING - Calculo del parámetro de centrado mu.
global x y z s w
global Ubounds_exist nt
newdgap = (x + min(1,ap)*dx)’*(z + min(1,ad)*dz);
if Ubounds_exist
newdgap = newdgap + (s + min(1,ap)*ds)’*(w + min(1,ad)*dw);
end
sigmak = (newdgap/dgap)^2;
sigmin = 0; sigmax = .208; % Don’t ask why.
p = ceil(log10(trerror));
if p<-2 && dgap<1.e+3, sigmax = 10^(p+1); end
sigmak = max(sigmin, min(sigmax, sigmak));
mu = sigmak*dgap/nt;
end
%FIN centering
function printout(NAME,info,objp,times)
% PRINTOUT - Imprime información del problema y solución.
global message
global x y z s w
global NNZA NNZL
global Lbounds_non0
global Ubounds_exist nub
global Fixed_exist ifix infx xfix ifree
global Zrcols_exist izrcol inzcol xzrcol
global Dense_cols_exist idense ispars
converged = info(1);
fprintf(’\n%s’,NAME); fprintf(’\n%s\n’,message);
676 j Apéndice B
if converged
fprintf(’Resultados (sin procesar) en results.mat\n’);
fprintf(’Solución xsol (procesada) en solution.mat\n’);
fprintf(’Primal Obj = %18.10e\n’, objp);
end;
fprintf(’[m n] = [%i %i], nnz(A) = %i\n’, length(y),length(x),NNZA);
if Lbounds_non0, fprintf(’Hay límites inferiores distintos de cero.\n’), end
if Ubounds_exist, fprintf(’Número de límites superiores: %g\n’,nub), end
if Fixed_exist, fprintf(’Número de variables fijas: %g\n’,length(ifix)), end
if exist(’ifree’), if ~isempty(ifree)
fprintf(’Número de variables libres: %g\n’,length(ifree)/2); end, end
if Zrcols_exist, fprintf(’Número de columnas totalmente a cero en A: %g\n’,length(izrcol)); end
if Dense_cols_exist, fprintf(’Número de columnas densas en in A: %g\n’,length(idense)), end
fprintf(’CPU seconds: %6.2f ... carga de datos\n’, times(1));
fprintf(’ %6.2f ... preprocessado\n’, times(2));
fprintf(’ %6.2f ... resolución\n’, times(3));
fprintf(’ %6.2f ... postprocesado\n’, times(4));
fprintf(’ %6.2f ... total\n\n’, sum(times));
end
Bibliografía
[1] A ASEN , J.O. 1971. On the Reduction of a Symmetric Matrix to Tridiagonal Form. BIT 11, pp. 233-242.
[2] A BADIE , J. ED . 1970. Integer and Nonlinear Programming. North-Holland.
[3] A BERTH , O. 2007. Introduction to Precise Numerical Methods. Elsevier.
[4] A BELL , M.L. Y B RASELTON , J.P. 2004. Mathematica by Example. Elsevier.
[5] ACTON , F.S. 1990. Numerical Methods that Work. The Mathematical Association of America.
[6] A DAMS , J.C., B RAINERD , W.S., M ARTIN , J.T., S MITH , B.T. Y WAGENER , J.L. 1992. Fortran 90 Handbook. Complete
ANSI/ISO Reference. McGraw-Hill.
[7] A DOBE S YSTEMS I NCORPORATED . 1986. PostScript Language. Tutorial and Cookbook. Addison-Wesley.
[8] A DOBE S YSTEMS I NCORPORATED . 1990. PostScript Language. Reference Manual. Addison-Wesley.
[9] A HUJA , R.K., M AGNATI , T.L. Y O RLIN , J.B. 1989. Network Flows. En Handbooks in Operations Research and Management
Science. Volume 1: Optimization. Nemhauser, G.L., Rinnooy Kan, A.H.G. y Todd, M.J. eds. North-Holland.
[10] A LJ , A. Y FAURE , R. 1988. Investigación operativa. Elementos fundamentales. Vol. 1. Masson.
[11] A LVARADO , F.L. 1979. A Note on Sorting Sparse Matrices. Proceedings of the IEEE 67, pp. 1362-1363.
[12] A LVARADO , F.L. 1990. Manipulation and Visualization of Sparse Matrices. ORSA J. Computing 2, pp. 186-207.
[13] A LLAIRE , G. Y K ABER , S.M. 2008. Numerical Linear Algebra. Springer.
[14] A NDERS , G.J. 1990. Probability Concepts in Electric Power Systems. Wiley.
[15] A NDERSON , E., BAI , Z., B ISCHOF, C., D EMMEL , J., D ONGARRA , J., D U C ROZ , J., G REENBAUM , A., H AMMARLING S.,
M C K ENNEY, A., O STROUCHOV, S. Y S ORENSEN , D. 1992. LAPACK User’s Guide. SIAM.
[16] A NDERSON , E., BAI , Z., B ISCHOF, C., D EMMEL , J., D ONGARRA , J., D U C ROZ , J., G REENBAUM , A., H AMMARLING S.,
M C K ENNEY, A., O STROUCHOV, S. Y S ORENSEN , D. 1995. LAPACK User’s Guide. Second Edition. SIAM.
[17] A NTONIOU , A. Y L U , W-S. 2007. Practical Optimization. Algorithms and Engineering Applications. Springer.
[18] A RBEL , A. 1993. Exploring Interior-Point Linear Programming. Algorithms and Software. MIT Press.
[19] A RMIJO , L. 1966. Minimization of Functions Having Lipschitz Continuos First Partial Derivatives. Pacific J. Math. 16, pp.
1-3.
[20] A RRILLAGA , J. Y A RNOLD , C.P. 1990. Computer Analysis of Power Systems. Wiley.
[21] A SCHER , U.M. Y G REIF, C. 2011. A First Course in Numerical Methods. SIAM.
[22] ATKINSON , K. 1993. Elementary Numerical Analysis. Wiley.
[23] ATKINSON , K. Y H AN , W. 2009. Theoretical Numerical Analysis. A Functional Analysis Framework. Third Edition, Springer.
[24] ATKINSON , K., H AN , W. Y S TEWART, D.E. 2009. Numerical Solution of Ordinary Differential Equations. Wiley.
[25] ATKINSON , L.V., H ARLEY, P.J. Y H UDSON , J.D. 1989. Numerical Methods with Fortran 77. A Practical Introduction.
Addison-Wesley.
[26] ATTAWAY, S. 2012. MATLAB. A Practical Introduction to Programming and Problem Solving. Elsevier.
[27] ATTEIA , M. Y P RADEL , M. 1990. Éléments d’Analyse Numérique. Cepadues-Editions.
[28] AUZINGER , W. 2013. Iterative Solution of Large Linear Systems. TU Wien, Institute for Analysis and Scientific Computing.
http://www.asc.tuwien.ac.at/~winfried/teaching/101.403/SS2012/downloads/iter.pdf
[29] AVRIEL , M. 1976. Nonlinear Programming. Analysis and Methods. Prentice Hall.
[30] A XELSSON , O. 1996. Iterative Solution Methods. Cambridge.
[31] BARRETT, R., B ERRY, M., C HAN , T.F., D EMMEL , J., D ONATO , J.M., D ONGARRA , J., E IJKHOUT, V., P OZO , R., ROMINE ,
C. Y VAN DER VORST, H. 1994. Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods. Second
Edition. SIAM.
678 j Bibliografía
[73] B ONNANS , J.F., G ILBERT, J.C., L EMARÉCHAL , C. Y S AGASTIZÁBAL , C.A. 2006. Numerical Optimization. Theoretical
and Practical Aspects. Second Edition. Springer.
[74] B RADLEY, G.H., B ROWN , G.G. Y G RAVES , G.W. 1977. Design and Implementation of Large Scale Transshipment Algo-
rithms. Management Science 24, pp. 1-34.
[75] B RAINERD , W.S., G OLDBERG , C.H. Y A DAMS , J.C. 1990. Programmer’s Guide to Fortran 90. McGraw-Hill.
[76] B RAINERD , W.S., G OLDBERG , C.H. Y A DAMS , J.C. 1996. Programmer’s Guide to Fortran 90. Springer.
[77] B RAESS , D. 2007. Finite Elements. Theory, Fast Solvers, and Applications in Elasticity Theory. Cambridge.
[78] B RANDIMARTE , P. 2006. Numerical Methods in Finance and Economics. A MATLAB-Based Introduction. Wiley.
[79] B RENNER , S.C. Y S COTT, L.R. 2008. The Mathematical Theory of Finite Element Methods. Springer.
[80] B RIGGS , W.L. Y H ENSON , V.E. 1995. The DFT. An owner’s manual for the Discrete Fourier Transform. SIAM.
[81] B RIGHAM , E.O. 1988. The Fast Fourier Transform and its Applications. Prentice Hall.
[82] B ROOKE , A., K ENDRICK , D. Y M EERAUS , A. 1988. GAMS. A User’s Guide. The Scientific Press.
[83] B ROWN , H.E. 1975. Solution of Large Networks by Matrix Methods. Wiley.
[84] B ROYDEN , C.G. 1965. A Class of Methods for Solving Nonlinear Simultaneous Equations. Mathematics of Computation 19,
pp. 577-593.
[85] B UNCH , J.R. Y K AUFMAN , L. 1977. Some Stable Methods for Calculating Inertia and Solving Symmetric Linear Systems.
Mathematics of Computation 31, pp. 163-179.
[86] B UNCH , J.R. Y PARLETT, B.N. 1971. Direct Methods for Solving Symmetric Indefinite Systems of Linear Equations. SIAM
J. Numer. Anal. 8, pp.639-655.
[87] B UNCH , J.R. Y ROSE , D.J. EDS . 1976. Sparse Matrix Computations. Academic Press.
[88] B UNCH , J.R., K AUFMAN , L. Y PARLETT, B.N. 1976. Decomposition of a Symetric Matrix. Numerische Mathematik 27, pp.
95-109.
[89] B UNCH , J.R. 1971. Analysis of the Diagonal Pivoting Method. SIAM J. Numer. Anal. 8, pp. 656-680.
[90] B UNCH , J.R. 1974. Partial Pivoting Strategies for Symmetric Matrices. SIAM J. Numer. Anal. 11, pp. 521-528.
[91] B URDEN , R.L. Y FAIRES , J.D. 1985. Análisis numérico. Grupo Editorial Iberoamérica.
[92] B URDEN , R.L. Y FAIRES , J.D. 2011. Numerical Analysis. Ninth Edition. Brooks/Cole.
[93] B UTCHER , J.C. 2008. Ordinary Differential Equations. Wiley.
[94] B UTT, R. 2010. Introduction to Numerical Analysis using MATLAB. Jones and Barlett.
[95] B UZZI -F ERRARIS , G. 1993. Scientific C++. Building Numerical Libraries the Object-Oriented Way. Addison-Wesley.
[96] B YRD , R.H., G ILBERT, J.C. Y N OCEDAL , J. 1996. A Trust Region Method Based on Interior Point Techniques for Nonlinear
Programming. INRIA.
[97] C AJORI , F. 1991. A History of Mathematics. Fifth Edition. Chelsea Publishing Company.
[98] C ANUTO , C. Y TABACCO , A. 2015. Mathematical Analysis Vols I y II. Second Edition. Springer.
[99] C ARREIRA -P ERPIÑAN , M.A. 2016. Lecture Notes on Optimization-EECS260. University of California Merced, Electrical
Engineering and Computer Science Dpt.
[100] C HAITIN -C HATELIN , F. Y F RAYSSÉ , V. 1996. Lectures on Finite Precision Computations. SIAM.
[101] C HAMBERLAND , L. 1995. Fortran 90. A Reference Guide. Prentice Hall.
[102] C HAN , T.F. 1982. Algorithm 581: An Improved Algorithm for Computing the Singular Value Decomposition. ACM Trans. on
Mathematical Software 8, pp. 84-88.
[103] C HAN , T.F. 1982. An Improved Algorithm for Computing the Singular Value Decomposition. ACM Trans. on Mathematical
Software 8, pp. 72-83.
[104] C HAPRA , S.C. 2012. Applied Numerical Methods with MATLAB for Engineers and Scientists. McGraw-Hill.
[105] C HAPRA , S.C. Y C ANALE , R.P. 2002. Numerical Metthods for Engineers with Applications and Programming Applications.
Fourth Edition. McGraw-Hill.
[106] C HENEY, W. Y K INCAID , D. 1985. Numerical Mathematics and Computing. Brooks/Cole.
[107] C HIVERS , I. Y S LEIGHTHOLME , J. 1995. Introducing Fortran 90. Springer.
[108] C HONG , E.K.P. Y Ż AK , S.H. 2001. An Introduction to Optimization. Second Edition. Wiley.
[109] C HU , E., G EORGE , A., L IU , J, Y N G , E. 1984. SPARSPAK: Waterloo Sparse Matrix Package. User’s Guide for SPARSPAK-A.
Research Report CS-84-36, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canadá.
[110] C HVÁTAL , V. 1983. Linear Programming. W.H. Freeman and Company.
680 j Bibliografía
[111] C IARLET, P.G. Y L IONS , J.L. EDS . 1990. Handbook of Numerical Analysis. Volume 1: Finite Difference Methods (Part 1);
Solution of Equations in Rn (Part 1). North-Holland.
[112] C IARLET, P.G. 1988. Introduction à L’Analyse Numérique Matricielle et à L’Optimisation. Masson, S.A.
[113] C IARLET, P.G. 1989. Introduction to Numerical Linear Algebra and Optimisation. Cambridge.
[114] C IARLET, P.G. 2002. The Finite Element Method for Elliptic Problems. SIAM.
[115] C IRIANI , T.A. Y L EACHMAN , R.C. 1993. Optimization in Industry. Mathematical Programming and Modeling Techniques in
Practice. Wiley.
[116] C LINE , A.K., M OLER , C.B., S TEWART, G.W. Y W ILKINSON , J.H. 1979. An Estimate for the Condition Number of a Matrix.
SIAM J. Numer. Anal. 16, pp. 368-375.
[117] C ODDINGTON , E.A. Y C ARLSON , R. 1997. Linear Ordinary Differential Equations. SIAM.
[118] C OLEMAN , T.F. Y L I , Y. EDS . 1990. Large-Scale Numerical Optimization. SIAM.
[119] C OLEMAN , T.F. Y VAN L OAN , C. 1988. Handbook for Matrix Computations. SIAM.
[120] C OLEMAN , T.F., E DENBRANDT, A. Y G ILBERT, J.R. 1986. Predicing Fill for Sparse Orthogonal Factorization. Journal
ACM 33, pp. 517-532.
[121] C ONTE , S.D. Y DE B OOR , C. 1987. Elementary Numerical Analysis. An Algorithmic Approach. McGraw-Hill.
[122] C ONTRERAS , M. 2016. Análisis de Fourier. Universidad de Sevilla.
http://personal.us.es/contreras/
[123] C OOK , T.M. Y RUSSELL , R.A. 1977. Introduction to Management Science. Prentice Hall.
[124] C ORDENO , A., H UESO , J., M ARTÍNEZ . E. Y T ORREGOSA , J.R. 2006. Problemas resueltos de métodos numéricos. Thomson.
[125] C ORMEN , T.H., L EISERSON , C.E. Y R IVEST, R.L. 1992. Introduction to Algorithms. The MIT Press.
[126] C OWELL , W.R. ED . 1984. Sources and Development of Mathematical Software. Prentice Hall.
[127] C OURANT, R. 1943. Variational Methods for the Solutions of Problems of Equilibrium and Vibrations. Bulletin of the Ameri-
can Mathematical Society, Vol. 49, No. 1, pp. 1-23.
[128] C UTHILL , E. Y M C K EE , J. 1969. Reducing the bandwidth of Sparse Symmetric Matrices. Proceedings of the 24th Nationeal
Conference of the Association for Computing Machinery (ACM), pp. 157-172. Brandon Systems Press.
[129] DAHLQUIST, G. Y B JÖRK , A. V 1974. Numerical Methods. Prentice Hall.
[130] DACOROGNA , B. 2004. Introduction to the Calculus of Variations. Imperial College Press.
[131] DAKIN , R.J. 1965. A Tree-Search Algorithm for Mixed Integer Programming Problems. Computer Journal 8, pp. 250-255.
[132] DANAILA , I., J OLY, P., K ABER , S.M. Y P OSTEL , M. 2007. A, Introduction to Scientific Computing. Twelve Computational
Projects Solved with MATLAB. Springer.
[133] DANILINA , N.I., D UBROVSKAYA , N.S., K VASHA , O.P. Y S MIRNOV, G.L. 1988. Computational Mathematics. Mir Publis-
hers.
[134] DANTZIG , G.B. 1963. Linear Programming and Extensions. Princeton University Press.
[135] DANTZIG , G.B. 1987. Origins of the Simplex Method. Technical Report SOL 87-5. Systems Optimization Laboratory, Depart-
ment of Operations Research, Stanford University.
[136] DANTZIG , G.B. Y W OLFE , P H . 1960. Decomposition Principle for Linear Programming. Operations Research 8, pp. 101-111.
[137] DARST, R.B. 1991. Introduction to Linear Programming: Applications and Extensions. Marcel Dekker.
[138] DATTA , B.N. 1995. Numerical Linear Algebra and Applications. Brooks/Cole.
[139] DATTORRO , J. 2016. Convex Optimization Euclidean Distance Geometry 2". M"ˇoo Publishing.
[140] DAVENPORT, J.H. S IRET, Y. Y T OURNIER , E. 1993. Computer Algebra. Systems and Algorithms for Algebraic Computation.
Academic Press.
[141] DAVIS , T.A. 2006. Direct Methods for Sparse Linear Systems. SIAM.
[142] DAVIS , P.J. Y R ABINOWITZ , P. 1984. Methods of Numerical Integration. Second Edition. Academic Press.
[143] DAVIS , T.A. Y S IGMAN , K. 2005. MATLAB Primer. Seventh Edition. Chapman and Hall/CRC.
[144] DE LA F UENTE , J.L. Y L UMBRERAS , J. 1987. A New Implementation of an Optimal Power Flow System Based on a General
Purpose Nonlinear Programming Program. Proc. IEEE PICA, pp. 422-428.
[145] DE LA F UENTE , J.L. 1986. Programación en redes no lineales. El problema de redes eléctricas. Actas Optimización de Flujos
en Redes’86.
[146] DE LA F UENTE , J.L. 1987. Programación no lineal: Aplicaciones en análisis, gestión y planificación de sistemas eléctricos.
Actas I Seminario Internacional de Investigación Operativa-Programación Matemática’86. J.P. Vilaplana y L.F. Escudero eds.,
pp. 255-278.
Bibliografía j 681
[147] DE LA F UENTE , J.L. 1988. Application of Nonlinear Network Optimization Techniques to Large Scale Power Schedulling
Problems. TIMS/ORSA National Meeting.
[148] DE LA F UENTE , J.L. 1989. La programación matemática y la planificación de redes eléctricas. Actas Programación Matemá-
tica’89.
[149] DE LA F UENTE , J.L. 1998. Técnicas de cálculo para sistemas de ecuaciones, programación lineal y programación entera.
Segunda edición. Reverté.
[150] DE LA F UENTE , J.L. 2016. Matemáticas y algoritmos numéricos. Definiciones, notación y proposiciones esenciales para un
curso avanzado. Círculo Rojo.
[151] D EMMEL , J.W. 1997. Applied Numerical Linear Algebra. SIAM.
[152] D EMIDOVICH , B.P. Y M ARON , I.A. 1985. Cálculo Numérico Fundamental. Paraninfo.
[153] D ENNIS , J.E. Y S CHNABEL , R.B. 1983. Numerical Methods for Unconstrained Optimization and Nonlinear Equations. Pren-
tice Hall.
[154] D ENNIS , J.E. Y S CHNABEL , R.B. 1996. Numerical Methods for Unconstrained Optimization and Nonlinear Equations.
SIAM.
[155] D OMMEL , H.W. Y T INNEY, W.F. 1968. Optimal Power Flow Solutions. IEEE Trans. on Power Apparatus and Systems PAS-
87, pp. 1866-1876.
[156] D ONGARRA , J.J., B UNCH , J.R., M OLER , C.B. Y S TEWART, G.W. 1979. LINPACK Users’ Guide. SIAM.
[157] D ONGARRA , J.J., D UFF , I.S., S ORENSEN , D.C. Y VAN DER VORST, H.A. 1991. Solving Linear Systems on Vector and
Shared Memory Computers. SIAM.
[158] D ORFMAN , R., S AMUELSON , P. Y S OLOW, R. 1958. Linear Programming and Economic Analysis. McGraw-Hill.
[159] D UBIN , D. 2003. Numerical and Analytical Methods for Scientists ans Engineers Using Mathematica. Wiley.
[160] D UFF , I.S. 1981. MA32 - A Package for Solving Sparse Unsymmetric Systems Using the Frontal Method. AERE Harwell
Report AERE-R 10079. Computer Science & Systems Division, AERE Harwell.
[161] D UFF , I.S., E RISMAN , A.M. Y R EID , J.K. 1986. Direct Methods for Sparse Matrices. Oxford University Press.
[162] D UFF , I.S., G RIMES , G. Y L EWIS , J.G. 1989. Sparse Matrix Test Problems. ACM Trans. on Mathematical Software 15, pp.
1-14.
[163] D UFF , I.S. Y R EID , J.K. 1979. Some Design Features of a Sparse Matrix Code. ACM Trans. on Mathematical Software 5,
pp.18-35.
[164] D UFF , I.S. Y S TEWART, G.W. EDS . 1979. Sparse Matrix Proceedings 1978. SIAM.
[165] D UOANDIKOETXEA , J. 2007. 200 años de convergencia de las series de Fourier. La Gaceta de la RSME, Vol. 10, No. 3.
[166] E ISELT, H.A. Y S ANDBLOM , C.L. 2007. Linear Programming and its Applications. Springer.
[167] E ISENTAT, S.C., S CHULTZ , M.H. Y S HERMAN , A.H. 1981. Algorithms and Data Structures for Sparse Symmetric Gaussian
Elimination. SIAM J. Sci. and Statist. Comput. 2, pp. 225-237.
[168] E LDÉN , L., W ITTMEYER -KOCH , L. Y B RUUN N IELSEN , H. 2004. Introduction to Numerical Computation. Analysis and
MATLAB Illustrations. Studentlitteratur AB.
[169] E LGERD , O.I. 1983. Electric Energy Systems Theory: An Introduction. McGraw-Hill.
[170] E L -H AWARY, M.E. Y C HRISTENSEN , G.S. 1979. Optimal Economic Operation of Electric Power Systems. Academic Press.
[171] E LLIS , T.M.R., P HILIPS , I.R. Y L AHEY, T.M. 1994. Fortran 90 Programming. Addison-Wesley.
[172] E NGELN -M ÜLLGES , G. Y U HLIG , F. 1996. Numerical Algorithms with Fortran. Springer.
[173] E NGELN -M ÜLLGES , G. Y U HLIG , F. 1996. Numerical Algorithms with C. Springer.
[174] E PPERSON , J.F. 2013. An Introduction to Numerical Methods and Analysis. Second Edition. Wiley.
[175] E RISMAN , A.M., N EVES , K.W. Y DWARAKANATH , M.H. EDS . 1980. Electric Power Problems: The Mathematical Challen-
ge. SIAM.
[176] E VANS , L.C. 1997. Partial Differential Equations. American Mathematical Society.
[177] E VANS , J.R. Y M INIEKA , E. 1992. Optimization Algorithms for Network and Graphs. Marcel Dekker.
[178] FAIRES , J.D. Y B URDEN , R.L. 1993. Numerical Methods. PWS.
[179] FANG , S.C., P UTHENPURA , S. 1993. Linear Optimization and Extensions. Theory and Algorithms. Prentice Hall.
[180] FARIN , G. 1988. Curves and Surfaces for Computer Aided Geometric Design. Acaddemic Press.
[181] FARKAS , J. 1902. Theorie der Einfachen Ungleichungen. Journal für die Reine und Angewandte Mathematik 124, pp. 1-27.
[182] F ERRIS , M.C., M ANGASARIAN , O.L. Y W RIGHT, S.J. 2007. Linear Programming with MATLAB. SIAM.
[183] F IACCO , A.V. Y M C C ORMICK , G.P. 1968. Nonlinear Programming: Sequential Unconstrained Minimization Techniques.
Wiley.
682 j Bibliografía
[184] F IACCO , A.V. Y M C C ORMICK , G.P. 1990. Nonlinear Programming: Sequential Unconstrained Minimization Techniques.
SIAM.
[185] F ILBERT, F. 2009. Analyse numérique. Algorithme et étude mathématique Dunod.
[186] F LETCHER , R. 1987. Practical methods of optimization. Wiley.
[187] F LOWERS , B.H. 1995. An Introduction to Numerical Methods in C++. Clarendon Press.
[188] F ORD , L.R. Y F ULKERSON , D.R. 1962. Flows in Networks. Princeton University Press.
[189] F ORREST, J.H. Y T OMLIN , J.A. 1972. Updated Triangular Factors of the Basis to Maintain Sparsity in the Product Form
Simplex Method. Mathematical Programming 2, pp. 263-278.
[190] F ORSGREN , A., G ILL , P.E. Y W RIGHT, M.H. 2002. Interior Methods for Nonlinear Optimization. SIAM Review, Vol. 44,
No. 4, pp. 525-597.
[191] F ORSYTHE , G.E., M ALCOLM , M.A. Y M OLER , C.B. 1977. Computer Methods for Mathematical Computations. Prentice
Hall.
[192] F ORTIN , A. 2011. Analyse numérique pour ingénieurs. Presses internationales Polytechnique.
[193] F OURER , R., G AY, D.M. Y K ERNIGHAM , B.W. 1993. AMPL. A Modeling Language for Mathematical Programming. Boyd
and Fraser.
[194] F RANDSEN , P.E., J ONASSON , K., N IELSEN , H.B. Y T INGLEFF , O. 2004. Unconstrained Optimization. Technical University
of Denmark, Informatics.
[195] F REUND , R.M. 2009. Introduction to Semidefinite Programming (SDP). MIT Open Course Ware.
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-251j-introduction-to-mathematical-programming-
fall-2009/readings/MIT6_251JF09_SDP.pdf
[196] G AL , T. 1979. Postoptimal Analysis, Parametric Programming, and Related Topics. McGraw-Hill.
[197] G ANDER , W. Y H R̆EBÍ C̆EK , J. 1993. Solving Problems in Scientific Computing Using Maple and MATLAB. Springer.
[198] G ANDER , W. Y H R̆EBÍ C̆EK , J. 1997. Solving Problems in Scientific Computing Using Maple and MATLAB. Third Edition.
Springer.
[199] G ANDER , W., G ANDER , M.J. Y K WOK , F. 2014. Scientific Computing. An Introduction using Maple and MATLAB. Springer.
[200] G ANDER , M.J. Y WANNER , G. 2012. From Euler, Ritz, and Galerkin to Modern Computing. SIAM Review, Vol. 54, No. 4.
SIAM.
[201] G ARBOW, B.S., B OYLE , J.M., D ONGARRA , J.J. Y M OLER , C.B. 1977. Matrix Eigensystem Routines-EISPACK Guide Ex-
tension. Springer.
[202] G ARCÍA , C.B. Y Z ANGWILL , W.I. 1981. Pathways to Solutions, Fixed Points, and Equilibria. Prentice Hall.
[203] G ARFINKEL , R.S. Y N EMHAUSER , G.L. 1972. Integer Programming. Wiley.
[204] G AUTSCHI , W. 2012. Numerical Analysis. Second Edition. Springer
[205] G ENTLE , J.E. 2007. Matrix Algebra. Springer
[206] G ENTLE , J.E. 2007. Matrix Algebra. Theory, Computations, and Applications in Statistics. Springer
[207] G EORGE , A. Y H EATH , M.T. 1980. Solution of Sparse Linear Least Squares Problems Using Givens Rotations. Linear Algebra
and its Applications 34, pp. 69-83.
[208] G EORGE , A. Y L IU , J.W. 1979. An Implementation of a Pseudoperipherial Node Finder. ACM Trans. on Mathematical
Software 5, pp. 284-295.
[209] G EORGE , A. Y L IU , J.W. 1979. The Design of a User Interface for a Sparse Matrix Package. ACM Trans. on Mathematical
Software 5, pp. 139-162.
[210] G EORGE , A. Y L IU , J.W. 1981. Computer Solution of Large Sparse Positive Definite Systems. Prentice Hall.
[211] G EORGE , A. Y N G , E. 1984. SPARSPAK: Waterloo Sparse Matrix Package. User’s Guide for SPARSPAKB. Research Report
CS-84-37, Department of Computer Science, University of Waterloo, Waterloo, Ontario, Canadá.
[212] G EORGE , A. Y N G , E. 1985. An Implementation of Gaussian Elimination with Partial Pivoting for Sparse Systems. SIAM J.
Sci. and Statist. Comput. 6, pp. 390-409.
[213] G EORGE , A. 1971. Computer Implementation of the Finite Element Method. Ph.D. Dissertation, Computer Science Department
Report STAN-CS-71208, Stanford University.
[214] G EORGE , A. 1980. An Automatic One-way Disecction Algorithm for Irregular Finite Element Problems. SIAM J. Numer.
Anal. 17, pp. 740-751.
[215] G ERALD , C.F. Y W HEATLEY, P.O. 1994. Applied Numerical Analysis. Addison-Wesley.
[216] G IBBS , N.E., P OOLE , W.G. Y S TOCKMEYER , P.K. 1976. An Algorithm for Reducing the Bandwidth and profile of a Sparse
Matrix. SIAM J. Numer. Anal. 13, pp. 236-250.
Bibliografía j 683
[217] G ILL , P.E. Y M URRAY, W. 1974. Numerical Methods for Constrained Optimization. Academic Press.
[218] G ILL , P.E., M URRAY, W. Y W RIGHT, M.H. 1981. Practical Optimization. Academic Press.
[219] G ILL , P.E., M URRAY, W. Y W RIGHT, M.H. 1991. Numerical Linear Algebra and Optimization. Volume 1. Addison-Wesley.
[220] G ILL , P.E., M URRAY, W., S AUNDERS , M.A. Y W RIGHT, M.H. 1986. Maintaining LU Factors of a General Sparse Matrix.
Technical Report SOL 86-8. Systems Optimization Laboratory, Department of Operations Research, Stanford University.
[221] G ILL , P.E., M URRAY, W., S AUNDERS , M.A., T OMLIN , J.A. Y W RIGHT, M.H. 1986. On Projected Newton Barrier Methods
for Linear Programming and an Equivalence to Karmarkar’s Projective Method. Technical Report SOL 85-11R, revision of
May 1986. Systems Optimization Laboratory, Department of Operations Research, Stanford University.
[222] G ILLETT, B.E. 1976. Introduction to Operations Research: A Computer Oriented Algorithmic Approach. McGraw-Hill.
[223] G OLDBERG , S. 1958. Introduction to Difference Equations. Wiley.
[224] G OLDFARB , D. Y T ODD , M.J. 1989. Linear Programming. En Handbooks in Operations Research and Management Science.
Volume 1: Optimization. Nemhauser, G.L., Rinnooy Kan, A.H.G. y Todd, M.J. eds. North-Holland.
[225] G OLDSTEIN , A.A. 1965. On Steepest Descent. SIAM J. Control 3, pp. 147-151.
[226] G OLOVINA , L.I. 1974. Algebra lineal y algunas de sus aplicaciones. Editorial Mir.
[227] G OLUB , G.H. Y M EURANT, G.A. 1983. Résolution Numérique des Grands Systèemes Linéaires. Editions Eyrolles.
[228] G OLUB , G.H. Y O’L EARY, D.P. 1989. Some History of the Conjugate Gradient and Lanczos Algorithms: 1948-1976. SIAM
Review 31, pp.50-102.
[229] G OLUB , G.H. Y O RTEGA , J.M. 1992. Scientific Computing and Differential Equations. An Introduction to Numerical Meth-
ods. Academic Press.
[230] G OLUB , G.H. Y R EINSCH , C. 1970. Singular Value Decomposition and Least Squares Solutions. Numerische Mathematik
14, pp. 403-20.
[231] G OLUB , G.H. Y VAN L OAN , C.F. 1983. Matrix Computations. The Johns Hopkins University Press.
[232] G OLUB , G.H. Y VAN L OAN , C.F. 1989. Matrix Computations. Second Edition. The Johns Hopkins University Press.
[233] G OLUB , G.H. Y VAN L OAN , C.F. 1996. Matrix Computations. Third Edition. The Johns Hopkins University Press.
[234] G OLUB , G.H. Y VAN L OAN , C.F. 2013. Matrix Computations. Fourth Edition. The Johns Hopkins University Press.
[235] G OMORY, R.E. 1960. An Algorithm for the Mixed Integer Problem. RAND Corporation paper RM-2597.
[236] G OMORY, R.E. 1963. An Algorithm for Integer Solutions to Linear Programs. Recent Advances in Mathematical Program-
ming. Graves, R. y Wolfe, Ph. eds. McGraw-Hill.
[237] G ONDRAN , M. Y M INOUX , M. 1979. Graphes et Algorithmes. Editions Eyrolles.
[238] G ONIN , R. Y M ONEY, A.H. 1989. Nonlinear Lp Estimation. Marcel Dekker.
[239] G OOSSENS , M., M ITTELBACH , F. Y S AMARIN , A. 1994. The LATEX Companion. Addison-Wesley.
[240] G OOSSENS , M., M ITTELBACH , F. Y S AMARIN , A. 2004. The LATEX Companion. Second Edition. Addison-Wesley.
[241] G OOSSENS , M., R AHTZ , S. Y M ITTELBACH , F. 1997. The LATEX Graphics Companion. Illustrating Documents with TEX and
PostScript. Addison-Wesley.
[242] G RAINGER , J.J. Y S TEVENSON J R ., W.D. 1994. Power Systems Analysis. McGraw-Hill.
[243] G RANÉ , A. Análisis de Componentes Principales. Departamento de Estadística, Universidad Carlos III de Madrid.
[244] G REENBAUM , A. 1997. Iterative Methods for Solving Linear Systema. SIAM.
[245] G REENBERG , H. 1971. Integer Programming. Academic Press.
[246] G RIFFITHS , D.F. Y H IGHAM , D.J. 2010. Numerical Methods for Ordinary Differential Equations. Initial Vaue Problems.
Springer.
[247] G RIGORIADIS , M.D. 1986. An Efficient Implementation of the Network Simplex Method. Mathematical Programming Study
26, pp. 83-111.
[248] G RIVA , I., NASH , S.G. Y S OFER , A. 2009. Linear and Nonlinear Optimization. SIAM.
[249] G RÖTSCHEL , M., L OVÁSZ , L. Y S CHRIJVER , A. 1988. Geometric Algorithms and Combinatorial Optimization. Springer.
[250] G UTKNECHT, M.H. 2008. Iterative Methods. ETH Zurich, Seminar for Applied MAthematics.
http://www.sam.math.ethz.ch/~mhg/unt/SWNLA/itmethSWNLA08.pdf
[251] H ÄFELE , W. Y K IRCHMAYER , L.K. EDS . 1981. Modeling of Large-Scale Energy Systems. Pergamon Press.
[252] H ABERMAN , R. 2013. Applied Partial Differential Equations with Fourier Series and Boundary Value Problems. Pearson.
[253] H AGER , W.W. 1984. Condition Estimates. SIAM J. Sci. and Statist. Comput. 5, pp. 311-316.
[254] H AGER , W.W. 1988. Applied Numerical Linear Algebra. Prentice Hall.
[255] H AHN , B. Y VALENTINE , D.T. 2007. Essential MATLAB for Engineers and Scientists. Third Edition. Elsevier.
684 j Bibliografía
[256] H EATH , M.T. 2002. Scientific Computing. An Introductory Survey. Second Edition. McGraw-Hill.
[257] H ALL , M. 1956. An Algorithm for Distinct Representatives. Amer. Math. Monthly 63, pp. 716-717.
[258] H ALMOS , P.R. 1974. Finite-Dimensional Vector Spaces. Springer.
[259] H AMMER , P.L., J OHNSON , E.L. Y KORTE , B.H. EDS . 1979. Discrete Optimization III. North-Holland.
[260] H ÄMMERLIN , G. Y H OFFMANN , K. H. 1991. Numerical Mathematics. Springer.
[261] H AMMING , R.W. 1986. Numerical Methods for Scientists and Engineers. Dover Publications.
[262] H ANSELMAN , D. Y L ITTLEFIELD , B. 1998. Mastering MATLAB 5. A Comprehensive Tutorial abd Reference. Prencite Hall.
[263] H ARMAN , T.L., DABNEY. J. Y R ICHERT, N. 2000. Advanced Enginerring Mathematics with MATLAB. Brooks/Cole.
[264] H ARWELL L ABORATORY 1987. HARWELL Subroutine Library: A Catalogue of Subroutines (1987). Computer Science and
Systems Division, AERE Harwell.
[265] H EATH , M.T. 2002. Scientific Computing. An Introductory Survey. Second Edition. McGraw-Hill.
[266] H ELLERMAN , E, Y R ARICK , D. 1971. Reinversion with the Preassigned Pivot Procedure. Mathematical Programming 1, pp.
195-216.
[267] H ELLERMAN , E, Y R ARICK , D. 1972. The Partitioned Preassigned Pivot Procedure (P4 ). En Sparse Matrices and their
Applications. Rose, D.J. y Willoughby, R.A. eds. Plenum Press.
[268] H ERDRIX , E.M.T. Y T ÓTH , B.G. 2010. Introduction to Nonlinear and Global Optimization. Springer.
[269] H ENRICI , P. 1982. Essentials of Numerical Analysis with Pocket Calculator Demonstrations. Wiley.
[270] H ÉRON , B., I SSARD -ROCH , F. Y P ICARD , C. 2005. Analyse numérique. Exercices et problèmes corrigés. Dunod.
[271] H ESTENES , M. 1980. Conjugate Direction Methods in Optimization. Springer.
[272] H IAI , F. Y P ETZ , D. 2014. Introduction to Matrix Analysis and Applications. Springer.
[273] H IGHAM , N.J. 1995. The Test Matrix Toolbox for MATLAB. Numerical Analysis Report No. 276. The University of Manches-
ter.
http://www.ma.man.ac.uk/MCMM.
[274] H IGHAM , N.J. 1996. Accuracy and Stability of Numerical Algorithms. SIAM.
[275] H IGHAM , N.J. 2002. Accuracy and Stability of Numerical Algorithms. Second Edition. SIAM.
[276] H IGHAM , N.J. 2002. The Matrix Computation Toolbox for MATLAB. Numerical Analysis Report No. 410. The University of
Manchester.
http://www.ma.man.ac.uk/MCMM.
[277] H IGHAM , D.J. Y H IGHAM , N.J. 2000. MATLAB Guide. SIAM.
[278] H IGHAM , D.J. Y H IGHAM , N.J. 2005. MATLAB Guide. Second Edition. SIAM.
[279] H ILDEBRAND , F.B. 1987. Introduction to Numerical Analysis. Dover Publications.
[280] H ILLIER , F.S. Y L IEBERMAN , G.J. 1974. Introduction to Operations Research. Holden-Day.
[281] H ILLIER , F.S. Y L IEBERMAN , G.J. 1995. Introduction to Mathematical Programming. McGraw-Hill.
[282] H ILLIER , F.S. Y L IEBERMAN , G.J. 2010. Introducción a la Investigación de Operaciones. McGraw-Hill.
[283] H IMMELBLAU , D.M. ED . 1973. Decomposition of Large-Scale Problems. North-Holland.
[284] H OCKNEY, R.W. 1996. The Science of Computer Benchmarking. SIAM.
[285] H OFFMAN , J.D. 2001. Numerical Methods for Engineers and Scientists. CRC Press.
[286] H OLMES , M.H. 2007. Introduction to Numerical Methods in Differential Equations. Springer.
[287] H OPCROFT, J.E. Y K ENNEDY, K.W. C HAIRS 1989. Computer Science. Achievements and Opportunities. SIAM.
[288] H ORN , R.A. Y J OHNSON , C.R. 1985. Matrix Analysis. Cambridge.
[289] H OUSEHOLDER , A.S. 1975. The Theory of Matrices in Numerical Analysis. Dover Publications.
[290] H U , T.C. 1970. Integer Programming and Network Flows. Addison-Wesley.
[291] H UNT, B.R., L IPSMAN , R.L. Y ROSENBERG , J.M. 2006. A Guide to MATLAB for Beginners and Experienced Users. Second
Edition. Cambridge.
[292] H URLBERT, G. 2010. Linear Optimization. The Simplex Workbook. Springer.
[293] H WANG , K. Y B RIGGS , F.A. 1985. Computer Architecture and Parallel Processing. McGraw-Hill.
[294] I GNIZIO , J.P. Y C AVALIER , T.M. 1994. Linear Programming. Prentice Hall.
[295] I LI Ć , M.D. Y L IU , S. 1996. Hierarchical Power Systems Control. Its Value in a Changing Industry. Springer.
[296] I NFANGER , G. 1994. Planning under Uncertainty. Solving Large-Scale Stochastic Linear Programs. Boyd & fraser Publishing
Company.
Bibliografía j 685
[297] I SAACSON , E. Y K ELLER , H.B. 1994. Analysis of Numerical Methods. Dover Publications.
[298] JACOBS , D. ED . 1977. The State of the Art in Numerical Analysis. Academic Press.
[299] JAMES , G. 2011. Advanced Modern Engineering Mathematics. Fourth Edition. Pearson.
[300] JAMES , G. 2015. Modern Engineering Mathematics. Fifth Edition. Pearson.
[301] JAHN , J. 2007. Introduction to the Theory of Nonlinear Optimization. Springer.
[302] JARRE , F. Y S TOER , J. 2004. Optimierung. Springer.
[303] J ENNINGS , A. Y M C K EOWN , J.J. 1992. Matrix Computation. Second Edition. Wiley.
[304] K ARLOFF , H. 1991. Linear Programming. Birkhäuser.
[305] K ARMARKAR , N. 1984. A New Polynomial-Time Algorithm for Linear Programming. Combinatorics 4, pp. 373-395.
[306] K ARRIS , S.T. 2004. Numerical Analysis using MATLAB and Spreadsheets. Orchard Publications.
[307] K ARUSH , W. 1939. Minima of Functions of Several Variables with Inequalities as Side Constraints. M.Sc. Dissertation, De-
partment of Mathematics, University of Chicago.
[308] K AUFMANN , A. Y H ENRY-L ABORDÈRE , A. 1974. Méthodes et Modèles de la Recherche Opérationnelle. Dunod.
[309] K ELLEY, C.T. 1995. Iterative Methods for Linear and Nonlinear Equations. SIAM.
[310] K ELLEY, C.T. 1999. Iterative Methods for Optimization. SIAM.
[311] K ENNINGTON , J.L. Y H ELGASON , R.V. 1980. Algorithms for Network Programming. Wiley.
[312] K ERN , M. 2005. Éléments finis aspects mathématiques. INRIA.
http://mms2.ensmp.fr/ef_paris/formulation/transparents/f_MathMef.pdf
[313] K HARAB , A. Y G UENTHER , R.B. 2012. An Introduction to Numerical Methods. A MATLAB Approach. CRC Press.
[314] K INCAID , D.R. Y H AYES , L.J. EDS . 1990. Iterative Methods for Large Linear Systems. Academic Press.
[315] K IUSALAAS , J. 2010. Numerical Methods in Engineering with MATLAB. Second edition. Cambridge.
[316] K LEE , V. Y M INTY, G.J. 1972. How good is the Simplex Algorithm? En Inequalities III. Shisha, O. ed. Academic Press.
[317] K LINGMAN , D., NAPIER , A. Y S TUTZ , J. 1974. NETGEN-A Program for Generating Large-scale (Un)Capacitated Assig-
ment, Transportation and Minimum Cost Flow Network Problems. Management Science 20, pp. 814-821.
[318] K NIGHT, A. 2000. Basics of MATLAB and Beyond. Chapman and Hall/CRC.
[319] KOLMAN , B. Y B ECK , R.E. 1995. Elementary Linear Programming with Applications. Academic Press.
[320] KOLMOGOROV, A.M. Y F OMIN , S.V. 1972. Elementos de la teoría de funciones y del análisis funcional. Editorial Mir.
[321] KOLMOGOROV, A.M. Y F OMIN , S.V. 1975. Introductory Real Analysis. Dover Publications.
[322] KOPCHENOVA , N.V. Y M ARON , I.A. 1975. Computational Mathematics. Worked Examples and Problems with Elements of
Theory. Mir Publishers.
[323] KOPKA , H. Y DALY, P.W. 1995. A Guide to LATEX 2" . Document Preparation for Beginners and Advanced Users. Addison
Wesley.
[324] KOROVKIN , P.P. 1976. Desigualdades. Editorial Mir.
[325] K RANTZ , S.G. Y PARKS , H.R. 2003. The Implicit Function Theorem. History, Theory, and Applications. Birkhäuser.
[326] K RESSNER , D. 2005. Numerical Methods for General and Structured Eigenvalue Problems. Springer.
[327] K REYSZIG , E. 2011. Advanced Engineering Mathematics. Wiley.
[328] K UESTER , J.L. Y M IZE , J.H. 1973. Optimization Techniques with Fortran. McGraw-Hill.
[329] K UHN , H.W. Y T UCKER , A.W. 1951. Nonlinear Programming. En Proceedings of the Second Berkeley Symposium on
Mathematical Statistics an Probability. University of California Press.
[330] K ÜNZI , H.P. Y K RELLE , W. 1969. La Programmation Non Linéaire. Gauthier-Villars.
[331] L AMPORT, L. 1994. LATEX. A Document Preparation System. User’s Guide and Reference Manual. Addison-Wesley.
[332] L AND , A. Y P OWELL , S. 1973. Fortran Codes for Mathematical Programming. Wiley.
[333] L ANG , S. 1968. Analysis. Vols. I y II. Addison-Wesley.
[334] L ANG , S. 1983. Linear Algebra. Addison-Wesley.
[335] L ARSON , R.E. 1968. State Increment Dynamic Programming. American Elsevier.
[336] L ARSSON , S. Y T HOMÉE , V. 2009. Partial Differential Equations with Numerical Methods. Springer.
[337] L ASCAUX , P. Y T HÉODOR , R. 1986. Analyse Numérique Matricielle Appliquée a l’Art de l’Ingénieur. Vols. I y II. Masson,
S.A.
[338] L ASDON , L.S. 1970. Optimization Theory for Large Systems. Macmillan Publishing Company.
[339] L AWLER , E.L. 1976. Combinatorial Optimization: Networks and Matroids. Holt, Rinehart and Winston.
686 j Bibliografía
[340] L AWSON , C.L. Y H ANSON , R.J. 1974. Solving Least Squares Problems. Prentice Hall.
[341] L AWSON , C.L. Y H ANSON , R.J. 1995. Solving Least Squares Problems. SIAM.
[342] L AY, D.C. 2012. Álgebra lineal y sus aplicaciones. Cuarta edición. Pearson educación.
[343] L AY, D.C. 2015. Linear Algebra and its Applications. Fourth Edition. Addison-Wesley.
[344] L AY, D.C. Y L AY, S.R. 2015. Linear Algebra and its Applications. Fifth Edition. Pearson.
[345] L EIFMAN , L.J. ED . 1990. Functional Analysis, Optimization, and Mathematical Economics. Oxford University Press.
[346] L EBOUCQ , R.B., S ORENSEN , D.C. Y YANG , C. 1998, ARPACK Users’ Guide: Solution of Large-Scale Eigenvalue Problems
with Implicitly Restarted Arnoldi Methods. SIAM.
[347] L EMKE , C.E. 1954. The Dual Method of Solving the Linear Programming Problem. Naval Research Logistics Quarterly 1, pp.
36-47.
[348] L ERMAN , S.R. 1993. Problem Solving and Computation for Scientists and Engineers. An Introduction Using C. Prentice Hall.
[349] L EW, A. Y M AUCH , H. 2007. Dynamic Programming. A Computational Tool. Springer.
[350] L EYFFER , S. Y M AHAJAN , A. 2010. Software for Nonlinear Constrained Optimization. Argonne National Laboratory, Mat-
hematics and Computer Science Division.
[351] L EVENBERG , K. 1944. A Method for the Solution of Certain Problems in Least Squares. Quart. Appl. Math. 2, pp. 164-168.
[352] L IEBMAN , J., L ASDON , L., S CHRAGE , L. Y WAREN , A. 1986. Modeling and Optimization with GINO. The Scientific Press.
[353] L INDFIELD , G. Y P ENNY, J. 1995. Numerical Methods Using MATLAB. Ellis Horwood.
[354] L OEHR , N 2014. Advanced Linear Algebra. CRC Press.
[355] L ONGLEY, J.W. 1984. Least Squares Computations Using Orthogonalization Methods. Marcel Dekker.
[356] L UENBERGER , D.G. 1969. Optimization by Vector Space Methods. Wiley.
[357] L UENBERGER , D.G. 1984. Linear and Nonlinear Programming. Addison-Wesley.
[358] L UENBERGER , D.G. 1989. Programación lineal y no lineal. Addison-Wesley Iberoamericana.
[359] L UENBERGER , D.G. Y Y E , Y. 2016. Linear and Nonlinear Programming. Fourth Edition. Springer.
[360] L USTIG , I.J., M ARSTEN , R.E. Y S HANNO , D.F. 1992. On Implementing Mehrotra’s Predictor-Corrector Interior-Point Meth-
od for Linear Programming. SIAM J. Optimization, Vol. 2, No. 3, pp. 435-449.
[361] M ADDEN , N. 2012. Numerical Solution to Differential Equations using MATLAB: Part 2. Finite Element Methods. National
University of Ireland Galway, School of Mathematics, Statistics and Applied Mathematics.
http://www.maths.nuigalway.ie/~niall/teaching/Archive/1112/FiniteElement1DMatlabV02.pdf
[362] M ADDEN , N. 2012. Numerical Solution to Differential Equations using MATLAB: Part 3. A finite element implementation for
2D elliptic problem. National University of Ireland Galway, School of Mathematics, Statistics and Applied Mathematics.
http://www.maths.nuigalway.ie/~niall/teaching/Archive/1112/FiniteElement2DMatlabV01.pdf
[363] M ADSEN , K. Y N IELSEN , H.B. 2010. Introduction to Optimization and Data Fitting. Technical University of Denmark,
Informatics.
[364] M ADSEN , K., N IELSEN , H.B. Y T INGLEFF , O. 2004. Methods for Nonlinear Least Squares Problems. Technical University
of Denmark, Informatics.
[365] M ADSEN , K., N IELSEN , H.B. Y T INGLEFF , O. 2004. Optimization with Constraints. Technical University of Denmark,
Informatics.
[366] M ANDL , C. 1979. Applied Network Optimization. Academic Press.
[367] M ANASSAH , J.T. 2001. Elementary Mathematical and Computational Tools for Electrical and Computer Engineers Using
MATLAB. CRC Press.
[368] M ANGASARIAN , O.L. 1994. Nonlinear Programming. SIAM.
[369] M ANNEBACK , P. 1985. On Some Numerical Methods for Solving Large Sparse Linear Least Squares Problems. Ph.D. Disser-
tation, Facultés Iniversitaires Notre-Dame de la Paix, Namur, Bélgica.
[370] M ARCHUK , G.I. Y DYMNIKOV, V.P. 1985. Problems of Computational Mathematics and Mathematical Modelling. Mir Pu-
blishers.
[371] M ARCUS , M. Y M ING , H. 1964. A Survey of Matrix Theory and Matrix Inequalities. Allyn and Bacon.
[372] M ARTINEZ , W.L. Y M ARTÍNEZ , A.R. 2002. Computational Statistics Handbook with MATLAB. Chapman and Hall/CRC.
[373] M ARKOWITZ , H.M. 1957. The Elimination Form of the Inverse and its Application to Linear Programming. Management
Science 3, pp. 255-269.
[374] M ARQUARDT, D. 1963. An Algorithm for Least Squares Estimation of Nonlinear Parameters. SIAM J. Appl. Math. 11, pp.
431-441.
Bibliografía j 687
[375] M ATHEWS , J.H. 1992. Numerical Methods for Mathematics, Science, and Engineering. Prentice Hall.
[376] M ATHEWS , J.H. Y F INK , K.D. 2000. Métodos numéricos con MATLAB. Prentice Hall.
[377] M C M AHON , D. Y T OPA , D.M. 2006. A Beginners’s Guide to Mathematica. Chapman and Hall/CRC.
[378] M C C ORMICK , G.P. 1983. Nonlinear Programming. Wiley.
[379] M EHROTRA , S. 1992. On the Implementation of a Primal-Dual Interior Point Method. SIAM J. Optimization, Vol. 2, No. 4,
pp. 575-601.
[380] M ESIROV, J.P. ED . 1991. Very Large Scale Computation in the 21st Century. SIAM.
[381] M ETCALF, M. Y R EID , J. 1990. Fortran 90 Explained. Oxford University Press.
[382] M ETCALF, M. Y R EID , J. 1996. Fortran 90/95 Explained. Oxford University Press.
[383] M EYER , C.D. 2000. Matrix Analysis and Applied Linear Algebra. SIAM.
[384] M EYER , Y. 1993. Wavelets. Algorithms and Applications. SIAM.
[385] M IERSEMANN , E. 2012. Partial Differential Equations. Lecture notes. Department of Mathematics, Leipzig University.
http://www.math.uni-leipzig.de/~miersemann/pdebook.pdf
[386] M INOUX , M. Y BARTNIK , G. 1986. Graphes, Algorithmes, Logiciels. Dunod.
[387] M INOUX , M. 1986. Mathematical Programming: Theory and Algorithms. Wiley.
[388] M OIN , P. 2010. Fundamentals of Engineering Numerical Analysis. Cambridge.
[389] M OLER , C.B. 2004. Numerical Computing with MATLAB. SIAM.
[390] M OLER , C.B., L ITTLE , J.N. Y BANGERT, S. 1987. PC-MATLAB User’s Guide. The MathWorks.
[391] M ORÉ , J.J. Y W RIGHT, S.J. 1993. Optimization Software Guide. SIAM.
[392] M ORGAN , S.S. 1997. A Comparison of Simplex Method Algorithms. University of Florida, Computer and Information Science
and Engineering Dept.
[393] M OTZ , L. Y W EAVER , J.H. 1993. The Story of Mathematics. Avon Books.
[394] M ORGANSTERN , R.E. 2014. Numerical Análisis I. Self Edition.
[395] M ORGANSTERN , R.E. 2014. Numerical Análisis II. Self Edition.
[396] M URTAGH , B.A. Y S AUNDERS , M.A. 1978. Large Scale Linearly Constrained Optimization. Mathematical Programming 14,
pp. 41-72.
[397] M URTAGH , B.A. Y S AUNDERS , M.A. 1982. A Projected Lagrangian Algorithm and its Implementation for Sparse Nonlinear
Constraints. Mathematical Programming Study 16, pp. 84-117.
[398] M URTAGH , B.A. Y S AUNDERS , M.A. 1987. MINOS 5.1 User’s Guide. Systems Optimization Laboratory, Department of
Operations Research, Stanford University.
[399] M URTY, K.G. 1983. Linear Programming. Wiley.
[400] M URTY, K.G. 1992. Network Programming. Prentice Hall.
[401] NAG 1992. C Library Manual. Numerical Algorithms Group, Mark 2, Oxford, England.
[402] NAG 1993. Fortran Library Manual. Numerical Algorithms Group, Mark 16, Oxford, England.
[403] NAGLE , R.K., S AFF , E.B. Y S NIDER , A.D. 2005. Ecuaciones diferenciales y problemas con valores en la frontera. Pearson.
[404] NAKAMURA , S. 1996. Numerical Analysis and Graphic Visualization with MATLAB. Prentice Hall PTR.
[405] NASH , S.G. Y S OFER , A. 1996. Linear and Nonlinear Programming. McGraw-Hill.
[406] N EMHAUSER , G.L. Y W OLSEY, L.A. 1988. Integer and Combinatorial Optimization. Wiley.
[407] N EMHAUSER , G.L. Y W OLSEY, L.A. 1989. Integer Programming. En Handbooks in Operations Research and Management
Science. Volume 1: Optimization. Nemhauser, G.L., Rinnooy Kan, A.H.G. y Todd, M.J. eds. North-Holland.
[408] N EMHAUSER , G.L., R INNOOY K AN , A.H.G. Y T ODD , M.J. EDS . 1989. Handbooks in Operations Research and Manage-
ment Science. Volume 1: Optimization. North-Holland.
[409] N ERING , E.D. Y T UCKER , A.W. 1993. Linear Programs and Related Problems. Academic Press.
[410] N ESTEROV, Y. Y N EMIROVSKII , A. 1994. Interior-Point Polynomial Algorithms in Convex Programming. SIAM.
[411] N IEDERREITER , H. 1992. Random Number Generation and Quasi-Monte Carlo Methods. SIAM.
[412] N OCEDAL , J. Y W RIGHT, S.J. 2006. Numerical Optimization. Springer.
[413] O LVER , P.J. 2014. Introduction to Partial Differential Equations. Springer.
[414] O LVER , P.J. Y S HAKIBAN , C. 2006. Applied Linear Algebra. Pearson.
[415] O’N EIL , P.V. 2010. Advanced Engineering mathematics. Brooks/Cole.
[416] O RCHARD -H AYS , W. 1968. Advanced Linear Programming Computing Techniques. McGraw-Hill.
688 j Bibliografía
[417] O RTEGA , J.M. Y R HEINBOLDT, W.C. 1970. Iterative Solution of Nonlinear Equations in Several Variables. Academic Press.
[418] O RTEGA , J.M. 1988. Introduction to Parallel and Vector Solution of Linear Systems. Plenum Press.
[419] PADBERG , M. 1995. Linear Programming and Extensions. Springer.
[420] PAI , M. A. 1986. Computer Techniques in Power System Analysis. McGraw-Hill.
[421] PAIGE , C.C. 1979. Computer Solution of Perturbation Analysis of Generalized Linear Least Squares Problems. Mathematics
of Computation 33, pp. 171-184.
[422] PAIGE , C.C. 1979. Fast Numerically Stable Computations for Generalized Linear Least Squares Problems. SIAM J. Numer.
Anal. 16, pp. 165-171.
[423] PANIK , M.J. 1996. Linear Programming: Mathematics, Theory and Algorithms. Kluver Academic Publishers.
[424] PANNELL , D.J. 1997. Introduction to Practical Linear Programming. Wiley.
[425] PARKER , R.G. Y R ARDIN , R.L. 1988. Discrete Optimization. Academic Press.
[426] PARTER , S.V. 1961. The Use of Linear Graphs in Gaussian Elimination. SIAM Review 3, pp. 119-130.
[427] PATEL , R.V., L AUB , A.J. Y VAN D OOREN , P.M. EDS . 1994. Numerical Linear Algebra Techniques for Systems and Control.
IEEE Press.
[428] P EDREGAL , P. 2004. Introduction to Optimization. Springer.
[429] P ETERSEN , K.B. Y P EDERSEN , M.S. 2012. The Matrix Cookbook.
http://matrixcookbook.com
[430] P EÑA S ÁNCHEZ DE R IVERA , D. 1986. Estadística. Modelos y métodos. 1. Fundamentos. Alianza Universidad Textos.
[431] P FAFFENBERGER , R.C. Y WALKER , D.A. 1976. Mathematical Programming for Economics and Business. The Iowa State
University Press.
[432] P HAN , D. 2010. Introduction au calcul des variations. EPFL.
[433] P HILLIPS , C. Y C ORNELIUS , B. 1986. Computational Numerical Methods. Ellis Horwood Limited.
[434] P HILLIPS , D.T., R AVINDRAN , A. Y S OLBERG , J. 1976. Operations Research: Principles and Practice. Wiley.
[435] P HILLIPS , G.M. Y TAYLOR , P.J. 1996. Theory and Applications of Numerical Anaylis. Second Edition. Academic Press.
[436] P IERRE , D.A. Y L OWE , M.J. 1975. Mathematical Programming Via Augmented Lagrangians. An Introduction with Computer
Programs. Addison-Wesley.
[437] P IERRE , D.A. 1986. Optimization Theory with Applications. Dover Publications.
[438] P IKE , R.W. 1986. Optimization for Engineering Systems. Van Nostrand Reinhold Company.
[439] P ISSANETZKY, S. 1984. Sparse Matrix Technology. Academic Press.
[440] P LATO , R. 2003. Concise Numerical Mathematics. American Mathematical Society.
[441] P LYBON , B.F. 1992. An Introduction to Applied Numerical Analysis. PWS-Kent Publishing Company.
[442] P OWELL , M.J.D. ED . 1982. Nonlinear Optimization. Academic Press.
[443] P RESS , W.H., F LANNERY, B.P., T EUKOLSKY, S.A. Y V ETTERLING , W.T. 1986. Numerical Recipes in Fortran. The Art of
Scientific Computing. Cambridge.
[444] P RESS , W.H., T EUKOLSKY, S.A., V ETTERLING , W.T. Y F LANNERY, B.P. 1992. Numerical Recipes in C. The Art of Scien-
tific Computing. Second Edition. Cambridge.
[445] P RESS , W.H., T EUKOLSKY, S.A., V ETTERLING , W.T. Y F LANNERY, B.P. 1996. Numerical Recipes in Fortran 90. The Art
of Parallel Scientific Computing. Cambridge.
[446] P RESS , W.H., T EUKOLSKY, S.A., V ETTERLING , W.T. Y F LANNERY, B.P. 2007. Numerical Recipes. The Art of Scientific
Computing. Third Edition. Cambridge.
[447] P YTLAK , R. 2009. Conjugate Gradient Algorithms in Nonconvex Optimization. Springer.
[448] Q UARTERONI , A., S ACCO , R. Y S ALERI , F. 2000. Numerical Mathematics. Springer.
[449] Q UARTERONI , A., S ALERI , F. Y G ERVASIO , P. 2010. Scientific Computing with MATLAB and Octave. Springer.
[450] R AO , S.S. 2002. Applied Numerical Methods for Engineers and Scientists. Prentice Hall.
[451] R AO , K.R., K IM , D.N. Y H WANG , J.J. 2010. Fast Fourier Transform: Algorithms and Applications. Springer.
[452] R AVINDRA , A., R AGSDELL , K.M. Y R EKLAITIS , G.V. 2006. Engineering Optimization. Methods and Applications. Second
Edition. Wiley.
[453] R EDFERN , D. Y C AMPBELL , C. 1998. The MATLAB 5 Handbook. Springer.
[454] R ECKTENWALD , G. 2000. Numerical Methods with MATLAB. Implementation Application. Prentice Hall.
[455] R EDWINE , C. 1995. Upgrading to Fortran 90. Springer.
[456] R EGISTER , A.H. 2007. A Guide to MATLAB Object Oriented Programming. Chapman and Hall/CRC.
Bibliografía j 689
[457] R EID , J.K. ED . 1971. Large Sparse Sets of Linear Equations. Academic Press.
[458] R EID , J.K. 1982. A Sparsity-Exploiting Variant of the Bartels-Golub Decomposition for Linear Programming Bases. Mathe-
matical Programming 24, pp. 55-69.
[459] R EKLAITIS , G.V., R AVINDRAN , A. Y R AGSDELL , K.M. 1983. Engineering Optimization. Methods and Applications. Wiley.
[460] R HEINBOLDT, W.C. 1988. Methods for Solving Systems of Nonlinear Equations. SIAM.
[461] R IAZA , R. Y Á LVAREZ , M. 1996. Cálculo infinitesimal. Vols. I y II. Sociedad de Amigos de la Escuela Técnica Superior de
Ingenieros Industriales de Madrid.
[462] R ÍBNIKOV, K. 1987. Historia de las matemáticas. Editorial Mir.
[463] R ICE , J.R. 1966. Experiments on Gram-Schmidt Orthogonalization. Mathematics of Computation 20, pp. 325-328.
[464] R ICE , J.R. 1983. Matrix Computations and Mathematical Software. McGraw-Hill.
[465] R ICE , J.R. 1993. Numerical Methods, Software, and Analysis. Academic Press.
[466] ROCKAFELLAR , R.T. 1970. Convex Analysis. Princeton University Press.
[467] ROOS , C. T ERLAKY, T. Y V IAL , J. 1997. Theory and Algorithms for Linear Optimization. An Interior Point Approach. Wiley.
[468] ROOS , C. T ERLAKY, T. Y V IAL , J. 2005. Interior Point Methods for Linear Optimization. Springer.
[469] ROSE , D.J. Y W ILLOUGHBY, R.A. EDS . 1972. Sparse Matrices and Their Applications. Plenum Press.
[470] ROSEN , J.B., M ANGASARIAN , O.L. Y R ITTER , K. EDS . 1970. Nonlinear Programming. Academic Press.
[471] RUTISHAUSER , H. 1990. Lectures on Numerical Mathematics. Birkhäuser.
[472] S AAD , Y. 1994. SPARSKIT: A Basic Tool Kit for Sparse Matrix Computations. Version 2. Computer Science Department,
University of Minnesota, Minneapolis, EE. UU.
[473] S AAD , Y. 1996. Iterative Methods for Sparse Linear Systems. PWS.
[474] S AIGAL , R. 1995. Linear Programming. A Modern Integrated Analysis. Kluver Academic Publishers.
[475] S ALKIN , H.M. 1975. Integer Programming. Addison-Wesley.
[476] S ALKIN , H.M. Y M ATHUR , K 1989. Introduction to Integer Programming. North-Holland.
[477] S ALKIN , H.M. Y S AHA , J. EDS . 1975. Studies in Linear Programming. North-Holland.
[478] S ARGENT, R.W.H. Y W ESTERBERG , A.W. 1964. Speed-up in Chemical Engineering Design. Trans. Inst. Chem. Eng. 42,
pp.190-197.
[479] S AUER , T. 2012. Numerical Analysis. Second Edition. Pearson.
[480] S AUER , T. 2013. Análisis numérico. Segunda edición. Pearson educación.
[481] S AUNDERS , M.A. 1976. A Fast Stable Implementation of the Simplex Method using Bartels-Golub Updating. En Sparse Matrix
Computations. Bunch, J.R. y Rose, D.J. eds. Academic Press.
[482] S AVILLE , D.J. Y W OOD , G.R. 1991. Statistical Methods: The Geometric Approach. Springer.
[483] S AYAS , F.J. 2015. A Gentle Introduction to the Finite Element Method.
[484] S CHATZMAN , M. 1991. Analyse numérique. Cours et exercices pour la licence. InterEditions.
[485] S CHENDEL , U. 1989. Sparse Matrices. Numerical Aspects with Applications to Scientists and Engineers. Ellis Horwood
Limited.
[486] S CHERER , C.R. 1977. Estimating Electric Power System Marginal Costs. North-Holland.
[487] S CHITTKOWSKI , K. ED . 1985. Computational Mathematical Programming. Springer.
[488] S CHITTKOWSKI , K. 1980. Nonlinear Programming Codes. Information, Tests, Performance. Lecture Notes in Economics and
Mathematical Systems, 183. Springer.
[489] S CHITTKOWSKI , K. 1981. Test Examples for Nonlineal Programming Codes. Lecture Notes in Economics and Mathematical
Systems, 187. Springer.
[490] S CHITTKOWSKI , K. 2009. Test Examples for Nonlinear Programming Codes. All Problems from the Hock-Schittkowski-
Collection. Department of Computer Science, University of Bayreuth.
[491] S CHRAGE , L. 1989. User’s Manual for Linear, Integer, and Quadratic Programming with LINDO. The Scientific Press.
[492] S CHRAGE , L. 1991. LINDO. An Optimization Modeling System. Boyd and Fraser Publishing Company.
[493] S CHRIJVER , A. 1986. Theory of Linear and Integer Programming. Wiley.
[494] S COTT, L.R. 2011. Numerical Analysis. Princeton University Press.
[495] S EDGEWICK , R. 1992. Algorithms in C++. Addison-Wesley.
[496] S EN , R. 2013. A First Course in Functional analysis. Theroy and Applications. Anthem Press.
[497] S ENIOR , T.B.A. 1986. Mathematical Methods in Electrical Engineering. Cambridge.
690 j Bibliografía
[498] S HAMPINE , L.F., G LADWELL , I. Y T HOMPSON , S. 2003. Solvin ODEs with MATLAB. Cambridge.
[499] S HAPIRO , J.F. 1979. Mathematical Programming. Structures and Algorithms. Wiley.
[500] S HEWCHUK , J.R. 1994. An Introduction to Conjugate Gradient Method without the Agonizing Pain. School Of Computer
Science, Carnegie Mellon University.
[501] S IDDALL , J.N. 1982. Optimal Engineering Design. Principles and Applications. Marcel Dekker.
[502] S IERKSMA G. 1996. Linear and Integer Programming: Theory and Practice. Marcel Dekker.
[503] S IMONNARD , M. 1972. Programmation Linéaire. Technique du Calcul Économique. Fondements. Dunod.
[504] S IMONNARD , M. 1973. Programmation Linéaire. Technique du Calcul Économique. Extensions. Dunod.
[505] S KORNIAKOV, L.A. 1988. Sistemas de Ecuaciones Lineales. Editorial Mir.
[506] S MITH , B.T., B OYLE , J.M., D ONGARRA , J.J., G ARBOW, B.S., I KEBE , Y., K LEMA , V.C. Y M OLER , C.B. 1976. Matrix
Eigensystem Routines-EISPACK Guide. Springer.
[507] S ÓBOL , I.M. 1983. Método de Montecarlo. Editorial Mir.
[508] S OLODÓVNIKOV, A.S. 1980. Sistemas de Desigualdades Lineales. Editorial Mir.
[509] S ORDET, J. 1970. La Programmation Linéaire Appliquée à l’Entreprise. Dunod.
[510] S ORENSEN , D.C. 2015. CAAM 454 Lecture Notes: Iterative Methods for Linear Systems. Rice University, Department of
Computational and Applied Mathematics
http://www.caam.rice.edu/~caam551/NOTES/Notes454.pdf
[511] S PEDICATO , E. ED . 1991. Computer Algorithms for Solving Linear Algebraic Equations. The State of the Art. Springer, NATO
Scientific Affairs.
[512] S TAGG , G.W. Y E L -A BIAD , A.H. 1968. Computer Methods in Power Systems Analysis. McGraw-Hill.
[513] S TAHEL , A. 2012. Numerical Methods.
[514] S TEVENSON , W. D. 1984. Elements of Power System Analysis. McGraw-Hill.
[515] S TEWART, G.W. 1973. Introduction to Matrix Computations. Academic Press.
[516] S TEWART, G.W. 1996. Afternotes on Numerical Analysis. SIAM.
[517] S TEWART, G.W. 1998. Matrix Computations. Vol 1: Basic Decompositions. SIAM.
[518] S TEWART, J. 2015. Calculus. Eighth Edition. Brooks/Cole.
[519] S TOER , J. Y B ULIRSCH , R. 1980. Introduction to Numerical Analysis. Springer.
[520] S TOTT, B. Y A LSAC , O. 1974. Fast Decoupled Load Flow. IEEE Trans. on Power Apparatus and Systems PAS-93, pp. 859-
869.
[521] S TRANG , G. 1976. Linear Algebra and its Applications. Academic Press.
[522] S TRANG , G. 1988. Linear Algebra and its Applications. Harcourt Brace Jovanovich.
[523] S TRAUSS , W.A. 2008. Partial Differential Equations. An Introduction. Second Edition. Wiley.
[524] S ÜLI , E. Y M AYERS , D. 2003. An Introduction to Numerical Analysis. Cambridge.
[525] S ULTAN , A. 1993. Linear Programming. An Introduction with Applications. Academic Press.
[526] S ÜLLI , E. 2012. Lecture Notes on Finite Element Methods for Partial Differential Equations. Mathematical Institute University
of Oxford.
http://people.maths.ox.ac.uk/suli/fem.pdf
[527] S UN , W. Y Y UAN , Y-X. 2006. Optimization Theory and Methods. Nonlinear Programming. Springer.
[528] TARJAN , R. 1972. Depth-First Search and Linear Graph Algorithms. SIAM J. Computing 1, pp. 146-160.
[529] T EWARSON , R.P. 1973. Sparse Matrices. Academic Press.
[530] T HOMAS , B.J. 1996. The Internet for Scientists and Engineers. Oxford University Press.
[531] T HOMAS , G.B. 2014. Thomas’ Calculus. Thirteenth Edition. Pearson.
[532] T INNEY, W.F. Y WALKER , J.W. 1967. Direct Solution of Sparse Network Equations by Optimally Ordered Triangular Facto-
rizations. Proceedings of the IEEE 55, pp.1801-1809.
[533] T ITS , A.L., WÄCHTE , A., BAKHTIARI , S., U RBAN , T.J. Y L AWRENCE , G.T. 2003. A Primal-Dual Interior-Point Method
for Nonlinear Programming with Strong and Local Convergence Properties. SIAM J. Optimizaton, Vol. 14, No. 1, pp. 173-199.
[534] T OMLIN , J.A. 1970. Branch-and-Bound Methods for Integer and Non-Convex Programming. En Integer and Nonlinear Pro-
gramming. Abadie, J. ed. North-Holland.
[535] T OMLIN , J.A. 1972. Pivoting for Size and Sparsity in Linear Programming. J. Inst. Maths. Applics. 10, pp. 289-295.
[536] T REFETHEN , L.N. Y BAU , D. 1997. Numerical Linear Algebra. SIAM.
Bibliografía j 691
[537] T REFETHEN , L.N. 2005. Who invented the great numerical algorithms? Oxford University Mathematical Institute, Oxford
University.
http://www.maths.ox.ac.uk/~trefethen
[538] T YRRELL ROCKAFELLAR , R. 1972. Convex Analysis. Princeton University Press.
[539] T YRRELL ROCKAFELLAR , R. Y W ETS , R.J-B. 1997. Variatonal Analysis. Springer.
[540] U EBERHUBER , C.W. 1995. Numerical Computation. Methods, Software, and Analysis. Vols I y II. Springer.
[541] VAN DE PANNE , C. 1976. Linear Programming and Related Techniques. North-Holland.
[542] VAN DER VORST, H.A. 2003. Iterative Krylov Methods for Large Linear Systems. Cambridge.
[543] VAN L OAN , C.F. 1997. Introduction to Scientific Computing. A Matrix-Vector Approach Using MATLAB. Prentice Hall.
[544] VANDERBEI , R.J. 2001. Linear Programming. Foundations and Extensions. Princeton University, Operations Research and
Financial Engineering Dept.
[545] VANDERBEI , R.J. 1999. LOQO: An Interior Point Code for Quadratic Programming. Journal on Optimization Methods and
Software, Vol. 11, pp. 451-484
[546] VARGA , R.S. 1962. Matrix Iterative Analysis. Prentice Hall.
[547] V ENKATARAMAN , P. 2002. Applied Optimization with MATLAB Programming. Wiley.
[548] V ILENKIN , N.YA . 1984. Método de Aproximaciones Sucesivas. Editorial Mir.
[549] V ILLANUEVA , I. 2016. Apuntes de Ampliación de Cálculo. Universidad Complutense de Madrid.
http://www.mat.ucm.es/~cruizb/Informatica-2/Apuntes-i/Otros-Grupos/AC-Fourier.pdf
[550] WÄCHTER , A. Y B IEGLER , L.T. 2006. On the Implementation of a Primal-Dual Interior Point Filter Line Search Algorithm
for Large-Scale Nonlinear Programming. Mathematical Programming 106, pp. 25-57.
[551] WALSH , G.R. 1975. Methods of Optimization. Wiley.
[552] WATKINS , D.S. 1991. Fundamentals of Matrix Computations. Wiley.
[553] WATKINS , D.S. 2002. Fundamentals of Matrix Computations. Second Edition. Wiley.
[554] WATKINS , D.S. 2007. The Matrix Eigenvalue Problem. GR and Krylov Subspace Methods. SIAM.
[555] W ELLIN , P., K AMIN , S. Y G AYLORD , R. 2005. An Introduction to programming with Mathematica. Cambridge.
[556] W ENTZEL , E.S. 1983. Operations Research. A Methodological Approach. Mir Publishers.
[557] W HEEDEN , R.L. Y Z YGMUND , A. 2015. Measure ans Integral. An Introduction to Real Analysis. Second Edition. CRC Press.
[558] W HITE , R.E. 1985. An Introduction to Finite Element Method with Applications to Nonlinear Problems. Wiley.
[559] W HITEHOUSE , G.E. Y W ECHSLER , B. 1976. Applied Operations Research: A Survey. Wiley.
[560] W ILKINSON , J.H. 1965. The Algebraic Eigenvalue Problem. Oxford University Press.
[561] W ILKINSON , J.H. 1994. Rounding Errors in Algebraic Processes. Dover Publications.
[562] W ILSON , D.I. 2015. Numerical Methods with MATLAB for Engineers. Auckland University of Technology.
[563] W ILSON , H.B., T URCOTTE , L.H. Y H ALPERN , D. 2003. Advanced Mathematics and Mechanics Applications Using
MATLAB. Third Edition. Chapman and Hall/CRC.
[564] W INSTON , W.L. 1994. Operations Research. Applications and Algorithms. Duxbury Press.
[565] W OLFE , M.A. 1978. Numerical Methods for Unconstrained Optimization. An Introduction. Van Nostrand Reinhold Company.
[566] W OLFE , P. 1961. A Duality Theorem for Non-Linear Programming. Quart. Appl. Math. 19, Nı 3.
[567] W OLFE , P. 1967. Methods of Nonlinear Programming. En Nonlinear Programming. Abadie J. ed. North-Holland.
[568] W ONNACOTT, T.H. Y W ONNACOTT, R.J. 1972. Introductory Statistics for Business and Economics. Wiley.
[569] W OOD , A.J. Y W OLLENBERG , B.F. 1984.cc Power Generation Operation and Control. Wiley.
[570] W RIGHT, M.H. 2004. The Interior-Point Revolution in Optimization: History, Recent Developments, and lasting Consequen-
ces. Bulletin of The American Mathematical Society, Vol. 42, No. 1, pp. 39-56.
[571] W RIGHT, M.H. 1991. Interior Methods for Constrained Optimization. ATT Bell Laboratories. Acta Numerica.
[572] W RIGHT, S.J. 1997. Primal-Dual Interior Point Methods. SIAM.
[573] YANG , W.Y., C AO , W., C HUNG , T.-S. Y M ORRIS , J. 2005. Applied Numerical Methods Using MATLAB. Wiley.
[574] YOUNG , D.M. Y G REGORY, R.T. 1988. A Survey of Numerical Mathematics. Vols. I y II. Dover Publications.
[575] Z IENKIEWICZ , O.C., TAYLOR , R.L. Y Z HU , J.Z. 2005. The Finite Element Method: Its Basis and Fundamentals. Second
Edition. Elsevier.
692 j Bibliografía
Índice de materias y autores
predictor-corrector para Programación Lineal, 380 Armijo, regla o criterio de, 275
programación entera, algoritmo general basado en Arnoldi, WE, 206
relajaciones sucesivas lineales, 426 Asignación de precio, en programación lineal, 325
punto fijo, para resolver f .x/ D 0, 36 Áurea, razón, 48
relajación SOR, para solución de Ax D b iterativamente, 195 Autovalor, o valor propio, 536
Símplex revisado, para programación lineal, 325
dual del Símplex, 361 B
en dos fases, 336 B, base o matriz básica de un programa lineal, 314
forma producto de la inversa de la base, 359 Banach, S. 523
gran M, para solución básica factible inicial en Símplex, espacio vectorial de, 523, 525
343 Banach, espacio vectorial de, 525, 523
para variables acotadas, 351 Barrera logarítmica, función, para programación lineal con
solución básica factible inicial, 335 puntos interiores, 377
variables artificiales, 335 Base, de un espacio vectorial, 517
solución de mKınx2Rn kAx bk2 mediante transformaciones canónica, 517
ortogonales de Householder, 110 Base, de un programa lineal, 314
solución de mKınx2Rn kAx bk2 mediante transformaciones Base, matriz de un programa lineal, 314
ortogonales de Givens, 115 Bashforth, F, 473
solución de mKınx2Rn kAx bk2 mediante transformaciones Básica, solución de un programa lineal, 314
ortogonales rápidas de Givens, 116 factible, 315
subespacios de Krylov para resolver Ax D b, 206 factible degenerada, 315
ramificación y acotamiento o branch and bound, 423 BBMI, programa, 428
Aliasing, fenómeno en señales, 635 Beale, E.M.L. 365
Almacenamiento, en ordenador de matrices dispersas, 157–158 Bernoulli, D. 653
por coordenadas, 157 Bernstein, S.N. 137
por filas/columnas, 157 polinomios de Bernstein, 137
por perfil o envolvente, 158 Bézier, P. 137
Amplitud de paso, 273 Bilineal, forma, 527
en optimización de funciones sin condiciones, 273 Bit, 4
en el método simplex, 324 Biyectiva, aplicación, 515
Análisis post-optimización, en programación lineal, 344 Black, F.S. 663
Análisis de sensibilidad, en programación lineal, 344–347 Bland, R.G. 334
Ancho de banda de una matriz, 158 Bland, regla para el ciclado en el método simplex, 334
simétrica, 158 Bola,
Aplicación, 514 abierta, en un espacio vectorial normado, 520
biyectiva, 515 cerrada, en un espacio vectorial normado, 520
dominio de definición, origen, 515 euclídea, 566
dominio de valores, 515 norma, 567
imagen, 515 Bolzano, B. 32
inyectiva, 515 Borel, F.E.J.E. 648
lineal, 524 Box, G.E.P. 659
núcleo, 524 Branch and bound, algoritmo enumerativo, o de ramificación y
permutaciones, 515 acotamiento, 423
suprayectiva, 515 Brent, R.P. 52
traspuesta, 524 Brown, R. 654
Árbol, de un digrafo, 166 Browniano, movimiento, 654
Árbol, de un grafo, 169 Broyden, C.G. 220
Árbol de búsqueda de soluciones en programación entera, 423 Broyden, método para solución de sistemas de ecuaciones no
poda, 426 lineales, 220
criterios de, 425 convergencia, 220
ver también algoritmos enumerativos, de ramificación y fórmula de, 220
acotamiento o branch and bound implementación práctica, 221
Arco(s) de un grafo, de un digrafo, 165, 174 Broyden, C, Fletcher, R, Goldfarb, D y Shanno, D, fórmula, 290
nudo origen, 165, 174 Bunch y Kaufman, método de, 91
nudo destino, 165, 174 número de operaciones, 91
Aristas de un grafo, ver Arcos de un grafo Bunch y Parlett, método de, 91
Aritmética en ordenador, 12 número de operaciones, 91
Índice de Materias y Autores j 695
de descenso, en métodos iterativos para solución de Ax D b, Ecuaciones diferenciales ordinarias con condiciones de contorno
195 o frontera, 477
de máxima pendiente, 196 integración, 477
direcciones conjugadas, 200 método del disparo, 477
relajación en una variable, 195 método de las diferencias finitas, 478
relajación SOR, 195 método de colocación, 481
de un politopo, 317 método de los elementos finitos, 484
extrema, 576 Ecuaciones en derivadas parciales, 489
Direcciones conjugadas, 200 parabólicas, resolución, 491
Dirichlet, P.G.L, 499, 606 por diferencias adelantadas, 491
Dispersas, matrices, 155 por diferencias adelantadas, 493
Distancia, método de Crank-Nicolson, 494
en espacio vectorial normado, 28, 519, 525 hiperbólicas, resolución, 495
entre dos nudos de un digrafo, 166 elípticas, resolución, 498
entre dos nudos de un grafo, 166, 28, 166 por diferencias finitas, 499
Divergencia, de un campo vectorial 602 por elementos finitos, 502
Dog leg, en optimización sin condiciones, 285 Ecuaciones en derivadas parciales no lineales, 508
Dominio Ecuaciones normales, 100, 252, 379
de definición, de una aplicación, 514 con matrices dispersas, 15
de valores, de una aplicación, 514 Elemento de un conjunto, 513
Dual, Elementos de relleno, fill-in, 161
dual del simplex, algoritmo, 366 Elemento minimal, 568
espacio vectorial, 524 Elemento mínimo, 568
programa, 361 Elemento máximo, 568
de uno lineal en forma estándar, 361 Elemento pivote en eliminación de Gauss, 63
Dualidad, en programación lineal, 361 ver también Pivote
algoritmo dual del Símplex, 366 Eliminación,
débil, 365 digrafo de, 176
interpretación económica, 364 e interpretación grafo-teórica de la eliminación de Gauss
en matrices dispersas de estructura no simétrica, 176
E grafo de, 166
e, exponente coma flotante, 4 e interpretación grafo-teórica de la eliminación de Gauss
Ecuación característica, de una matriz, 539 en matrices dispersas de estructura simétrica, 166
Ecuación de Laplace, 490 Eliminación de Gauss, 62–73
Ecuación del calor, 490 en matrices dispersas, 163
Ecuación de ondas, 490 de estructura simétrica, 163
Ecuación de Poisson, 498, 605, 490, 499, de estructura no simétrica, 176
Ecuación en derivadas parciales, 489 y teoría de grafos, 166, 176
parabólica, 491 matriz de transformación, 64
hiperbólica, 491 multiplicadores, 63
elíptica, 491 número de operaciones, 70–73
Ecuaciones diferenciales ordinarias, EDO, 459 pivotación, 68–70
integración, 460 parcial, 67
método de Euler, 461 total, 67
método de Heun, 463 y factorización LU , 79
método del punto medio, 465 Elipsoide(s), 566
método de Taylor, 465 degenerado, 566
métodos de Runge-Kutta, 465 Emisión de deuda, problema, 305
método de Ralston, 466 Endomorfismo, 524
métodos Runge-Kutta de paso variable, 468 Entorno, de un punto en un conjunto, 521
método Runge-Kutta-Fehlberg, 468 Enumerativo, branch and bound, algoritmo de ramificación y
métodos implícitos y problemas rígidos o stiff, 470 acotamiento, 423
método de Euler hacia atrás, 471 Envoltura afín, 562
métodos multipaso, 471 Envoltura cónica, 564
métodos predictor-corrector, 473 Envoltura convexa, 561
sistemas de ecuaciones diferenciales ordinarias, 474 Envolvente de una matriz, 158
ecuaciones diferenciales de orden superior, 475 simétrica, 158
698 j Índice de Materias y Autores
L1 U , 83 Frobenius, F.G. 29
método de Crout, 83 norma de, 29, 535
matrices simétricas, 85–73 Friedrichs, K. 498
definidas positivas, Cholesky, 88–92 Frontera, o borde de un conjunto, 521
indefinidas, 91 Fubini, G. 597
LDLT , 87 Función, 514
semidefinidas positivas, 89 afín, 548
QR, 105–116 conjugada, 585
por transformaciones ortogonales de Householder, de barrera logarítmica, métodos para programación lineal,
107–112 377
por transformaciones ortogonales de Givens, 112 dual, 580, 580, 580, 582
por transformaciones ortogonales rápidas de Givens, 116 continua, 547
Familia libre, en espacio vectorial, 517 continua
de Lipschitz, 547
Farkas, G, 573 convexa, 560
Farkas, lema, 573 matriz Hessiana de, 550
Fase I y II, del método simplex, 336 objetivo, de un programa lineal, 296
Fill-in, 161 subdiferenciable, 551
ver también Elementos de relleno vector gradiente de, 232
Fehlberg, E, 468 Funcional, función de funciones, 614
Fenchel, M.W. 561 function, o rutina de M ATLAB
desigualdad de Fenchel-Young, 586 Ax.m, 23
función conjugada de, 585 bidiag.m, 265
Fermat, P. 560 Bisec_0.m, 33
Filas/columnas, forma de almacenar matrices dispersas en un Brent.m, 52
ordenador, 157 Broyden_3.m, 220
Fletcher, R, 286 Burgers.m, 508
Flujo de cargas, ver estudios de cargas CGr.m, 203
Forma, Chebpol_clenshaw.m, 133
bilineal, 527, 546 Chebpol_int.m, 133
cuadrática, 194, 546 Chebypoly.m, 131
rango, 546 Chols_1.m, 89
signatura, 546 Chol_p.m, 91
hermítica, 527 Crank_Nicolson.m, 495
lineal, 524 Crout_1.m, 81
sesquilineal, 527 CroutP.m, 82
Forma simétrica de la dualidad, 363 CroutP1.m, 83
Forma estándar, de un programa lineal, 296 Croutl1u.m, 83
Formato, defl_1.m, 255
binario IEEE 64 bits, 8 Dogleg_UBC_yo.m, 284
binario IEEE 32 bits, 10 Diagpiv_1.m, 91
entero, 4 Dual_simplex.m, 366
coma flotante, o punto flotante, 4 expSeriesPlot.m, 17
Fórmula de Black y Scholes, 663 epsilon.m, 9
Fórmula de Broyden, 220 fpi.m, 36
Fórmula de Broyden, C, Fletcher, R, Goldfarb, D y Shanno, D, Galerkin_ef_1.m, 487
290 Gauss.m, 69
Fórmula de Davidon, W, Fletcher, R y Powell, M, 290 Gauss_Seidel_1.m, 187
Fórmula de Laguerre, 55 Gauss_Seidel_NEW.m, 187
Fórmula de Sherman-Morrison-Woodbury, 85, 221 Gershgorin.m, 244
Formulación débil, 608, 605, 606 Givens.m, 115
Formulación fuerte, 606 gmres_1.m, 208
Fórmulas de Cramer, 72 Gmres_1_precon.m, 208
Fourier, J.B.J. 142, 622 gmres_Netlib.m, 208
transformada discreta, 147 GN111.m, 228
transformada rápida, 149 Grad_Conjugados_unc.m, 286
Fréchet, M. 548 Grmsch_2.m, 104
Frecuencia de Nyquist, 635 Grmsch_3.m, 104
700 j Índice de Materias y Autores
W
Weierstraß, K.T.W. 522
Weierstraß, criterio de, 554
Weierstraß, teorema de, 548
Wiener, N. 655
Wiener, Proceso de, 655
Wilkinson, J.H. 21
Wolfe, P.S. 361, 584
WRETA, operación del simplex, 359
Z
Z, conjunto (anillo) de los números enteros, 513, 515