Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Presentacin de la Asignatura
Curso 2015-2016
1/39
2/39
VISIN: Para trabajar en algo o con algo, hay que saber cmo
hacerlo fsicamente; : : : imaginarlo mejor, disearlo y elaborarlo:
3/39
4/39
5/39
6/39
Rigor cientfico
Aprender a valorar la idoneidad tcnica de una estrategia
frente a otra para resolver problemas numricos en ingeniera:
Desarrollar espritu crtico y posibles alternativas a lo que
os presentamos
7/39
La Asignatura NO es:
Un recetario de procedimientos
Un curso de Matlab y aplicaciones:
Matlab ser el instrumento fundamental que nos permita
Profesores:
8/39
Gabriela Sansigre
Jos Luis de la Fuente OConnor
Jos Luis de la Fuente OConnor
www.jldelafuenteoconnor.es
1979
Profesor Titular de Universidad, UPM, Madrid, 1990
9/39
Experiencia profesional:
Electricit de France
Iberdrola, 1976hasta la fecha
Experiencia docente:
Experiencia investigadora:
Programa general
Optimizacin no lineal
10/39
11/39
Numerical analysis. Sauer, T., Second Edition, Pearson, 2012. (hay versin
en espaol)
Introduccin a la Investigacin de Operaciones. Hillier, F.S. y Lieberman,
G.J., Novena edicin, McGraw-Hill. 2010.
Numerical Mathematics. Quarteroni, A., Sacco, R. y Saleri, F., Springer
Verlag, 2007.
Numerical Optimization. Nocedal, J. y Wright, S.J., Second Edition.
Springer Verlag, 2006.
Numerical Methods in Finance and Economics. A MATLAB-Based
Introduction. Brandimarte, P., Second Edition. John Wiley and Sons, 2006.
MATLAB guide. Higham, D. y Higham, J., Second Edition. SIAM, 2005.
Scientific Computing. An Introductory Survey. Heath, M., Second Edition.
McGraw-Hill, 2002.
12/39
Misitiowebhttp://www.jldelafuenteo
Todoslosdatosdesitiosweb
Iraesteinforme
1ene.2014 31dic.2015
Visingeneraldeaudiencia
Todaslassesiones
100,00%
Visingeneral
Sesiones
100
50
abrilde2014
juliode2014
octubrede2014
enerode2015
abrilde2015
juliode2015
NewVisitor
Sesiones
Usuarios
Nmerodepginasvistas
9.360
6.908
13.785
octubrede2015
ReturningVisitor
25,3%
Pginas/sesin
Duracinmediadelasesin
Porcentajederebote
1,47
00:01:34
81,81%
74,7%
%denuevassesiones
73,76%
Idioma
Sesiones
1. (notset)
3.297
2. es
2.864
%Sesiones
35,22%
30,60%
Iraesteinforme
Misitiowebhttp://www.jldelafuenteo
Todoslosdatosdesitiosweb
13/39
1ene.2014 31dic.2015
Ubicacin
Todaslassesiones
100,00%
Grficodevisitasporubicacin
Resumen
3.676
Adquisicin
Pas
Sesiones
Comportamiento
%denuevas
sesiones
9.360 74,74%
1.
2.
3.
4.
Spain
United
States
(not
set)
Brazil
Nuevos
usuarios
Porcentajede
Conversiones
Pginas/sesin
rebote
6.996 81,81%
Duracin
mediadela
sesin
1,47 00:01:34
Porcentajede
conversiones
delobjetivo
Consecuciones
deobjetivos
Valordel
objetivo
0,00%
0,00$
%deltotal:
100,00%
(9.360)
Mediadela
vista:73,76%
(1,33%)
%deltotal:
101,33%
(6.904)
Mediadela
vista:81,81%
(0,00%)
Mediadelavista:
1,47(0,00%)
Mediadela
vista:00:01:34
(0,00%)
Mediadela
vista:0,00%
(0,00%)
%deltotal:
0,00%(0)
%deltotal:
0,00%(0,00$)
3.676 (39,27%)
46,82%
1.721 (24,60%)
71,49%
1,90
00:02:50
0,00%
0 (0,00%)
0,00$ (0,00%)
1.333 (14,24%)
99,40%
1.325 (18,94%)
86,05%
1,11
00:00:25
0,00%
0 (0,00%)
0,00$ (0,00%)
951 (10,16%)
99,89%
950 (13,58%)
92,85%
1,05
00:00:20
0,00%
0 (0,00%)
0,00$ (0,00%)
535 (5,72%)
96,64%
517 (7,39%)
96,07%
1,04
00:00:13
0,00%
0 (0,00%)
0,00$ (0,00%)
14/39
CREATIVE
ALTERNATIVES
USEFUL
INFORMATION
CLEAR
VALUES
DECISION
QUALITY
HELPFUL
FRAME
SOUND
REASONING
COMMITMENT TO
FOLLOW THROUGH
Page 5
2009 Decis
World Energy
Demand
poised
ge
ce
Industrial
Nonelectric
20%
Transportation
29%
Electricity
Industrial
10%
Electricity
Commercial
15%
Electricity
Residential
15%
EIAAnnualEnergyReview2009
15/39
16/39
En ingeniera elctrica
17/39
Gas or CC
Nuclear
Coal
Basics
Generation &
transmission
Substations &
transformers
Control centers
http://tcip.mste.illinois.edu/
Credit: Jim McCally, Iowa State
18/39
19/39
20/39
C A L I F O R N I A
E N E R G Y
C O M M I S S I O N!
Historical Grid
Smart Grid
21/39
AQU y aqu
Tambin
22/39
:::
23/39
Potencia y Energa
=
=
=
=
1 vatio-segundo
kilovatio-hora (3;6 106 J)
1:055 J, 1 MBtu=0,292 MWh
9;65 kWh
24/39
Capacity Market
serve Requirement
ive market requires
the available
and
- 21 -
ng Reserves may
le excess capacity
cal and Electronics Eng. Dept., METU, Spring 2005, Prof. Dr. Osman SEVAOLU, Page 10
Operativa
25/39
Recursos
26/39
indekiler
Enerji Sektrnde
Olan zelletirme
Elektrik retim
Elektrik Dat
Transporte
27/39
Optimizacin
Balancing and
Settlement Market
METU
28/39
EE 710 Electricity Trading, Electrical and Electronics Eng. Dept., METU, Spring 2005, Prof. Dr. Osman SEVAOLU, Page 1
Modelizacin
29/39
Eficiencia energtica
METU
Ancillary Services
30/39
31/39
DEFFGGHIJHKJLM
Redes
Midwest
32/39
Visualize
PSERC
Visualizacin
33/39
Sincronismo
IIIM
M
A
G
E
N
MA
AG
GE
EN
N
34/39
33 MEMBERS - 24 COUNTRIES
THE EUROPEAN
NATURAL GAS
NETWORK
Visit the GTE website for available capacities at crossborder points through links with the concerned TSOs.
Interconnection points
Transport by pipeline
under 24
24 to 36
36 and over
drilling platform
Transport by tanker
LNG route
Nr Location
from
1A Zeebrugge ZPT
Gassco
1B Zeebrugge IZT
Interconnector (UK)
1C Zeebrugge IZT
Fluxys
1D Zeebrugge LNG
(B)
LNG
max. flowrate
in Mio Nm /h
gte@gte.be
www.gte.be
from
1,60
40 Tuy
Transgas
(P)
(E)
0,04
(B)
2,30
41 Griespass
Transitgas
2,40
0,40
3,44
Fluxys
Interconnector (UK)
1,00
42 Panigaglia
LNG
Fluxys
(B)
0,87
TPMC
2A Zelzate Zebra
Fluxys
(B)
Zebra
(NL)
0,70
44A Gorizia
2B Zelzate GTS
Fluxys
(B)
GTS
(NL)
0,50
44B Gorizia
to
max. flowrate
in Mio Nm /h
Nr Location
Interconnector (B)
to
(N)
Gas Storage
Enags
Geoplin
(Slov)
0,17
0,03
3,12
Hilvarenbeek
GTS
(NL)
Fluxys
(B)
2,40
45 Tarvisio
OMV TAG
(A)
Obbicht
GTS
(NL)
Fluxys
(B)
0,20
46 Murfeld
OMV
(A)
Geoplin
(Slov)
0,42
s Gravenvoeren
GTS
(NL)
Fluxys
(B)
1,10
47 Mosonmagyarovar
OMV
(A)
MOL
(H)
0,50
WINGAS
(D)
0,23
48A Baumgarten
SPP
(SK)
OMV
(A)
4,56
E.ON-Ruhrgas
(D)
Thyssengas
0,75
48B Baumgarten
OMV
(A)
SPP
(SK)
no transit
SPP
(SK)
Transgas
(CZ)
6,50
SPP
(SK)
10,50
DEPA
(GR)
0,22
6A Eynatten
Fluxys
(B)
6B Eynatten
Fluxys
(B)
Bras
Fluxys
(B)
SOTEG
(Lux)
0,19
49 Lanzhot
Petange
Fluxys
(B)
SOTEG
(Lux)
0,06
50 Velke Kapusany
9A Quvy (H)
Fluxys
(B)
1,10
51 Revithoussa
9B Taisnires (L)
Fluxys
(B)
0,95
52A Bacton
9C Blaregnies (H)
Fluxys
0,95
1,43
(B)
10 Bocholtz
GTS
(NL)
E.ON-Ruhrgas (D)
11A Zevenaar
GTS
(NL)
E.ON-Ruhrgas (D)
11B Zevenaar
GTS
(NL)
12 Winterswijk
GTS
(NL)
GTS
(NL)
GTS
(NL)
GTS
(NL)
GTS
(NL)
GTS
(NL)
Gassco
(N)
E.ON-Ruhrgas (D)
Gassco
(N)
E.ON-Ruhrgas (D)
Gassco
(N)
Gassco
(N)
Gassco
(N)
Gassco
(N)
Gassco
(N)
Gassco
(N)
Thyssengas
Gassco
(N)
E.ON-Ruhrgas (D)
LNG
Nat Grid Transco (UK)
Interconnector (B)
2,30
52B Bacton
Interconnector (B)
1,00
53 Moffat
(D)
54 Twynholm
BGE (UK)
(IRL)
BulgarGaz
(Bul)
DEPA
(GR)
0,36
Gazprom
(Rus)
Gasum
(FIN)
0,80
2,57
1,75
56 Imatra
(D)
0,08
57 St. Fergus
E.ON-Ruhrgas (D)
0,70
58 Beregdaroc
(D)
0,40
59 Kiskundorozsma
MOL
BEB
(D)
0,82
60 Bilbao
LNG
EWE
(D)
0,60
61 Sines
LNG
BEB
BGE (UK)
55 Kula
E.ON-Ruhrgas (D)
WINGAS
1,24
2,53
Thyssengas
Ukrtransgas (UKR)
Gassco
Ukrtransgas
(N)
(UKR)
MOL
(H)
(H)
NIS
(SER)
(PT)
1,75
0,55
0,80
0,90
1,45
GTS
(NL)
0,40
GTS
(NL)
1,90
BEB
(D)
BEB
(D)
Thyssengas
(D)
Dornum
Kiel
Penemunde
Emden
Gdansk
Lbeck
Rostock
Niechorze
0,85
(D)
H
RG
2,10
(D)
(DK)
BEB/E.ON-Ruhrgas
Gastra
(DK)
18 Nybro
DONG Trade
(DK)
Gastra
(DK)
1,35
PGNiG
(PL)
WINGAS
(D)
2,00
20 Grlitz
21 Olbernhau
0,34
0,27
VNG
(D)
PGNiG
(PL)
0,26
Transgas
(CZ)
WINGAS
(D)
0,50
Dortmund
(CZ)
(D)
1,53
Remich
Transgas
(CZ)
E.ON-Ruhrgas (D)
0,28
Obergailbach
Transgas
(CZ)
E.ON-Ruhrgas (D)
1,30
23B Waidhaus
Transgas
(CZ)
E-ON-Ruhrgas (D)
Gaz de France (F)
2,60
OMV
(A)
E.ON-Ruhrgas (D)
0,52
OMV
(A)
Bayerngas
(D)
25 Burghausen
26 Kiefersfelden
27 Wallbach
E.ON-Ruhrgas (D)
28 Obergailbach
E.ON-Ruhrgas (D)
Gaz de France (F)
29 Remich
E.ON-Ruhrgas (D)
30 Dunkerque
Gassco
31 Oltingue
(N)
32 Fos-sur-Mer
GSO
34 Montoir de Bretagne
LNG
35 Barcelona
LNG
36 Cartagena
LNG
37 Tarifa
SAGANE
38 Huelva
LNG
39 Badajoz
Enags
0,37
(A)
0,10
(CH)
1,20
(F)
(Mor)
(E)
MEGAL
SOTEG
(Lux)
Enags
(CH)
(E)
Waidhaus
Nrnberg
Burghausen
Gas
Kiefersfelden
PGNiG Transmission
1,55
0,19
1,95
0,85
0,65
0,27
1,15
Enags
(E)
1,20
Enags
(E)
0,60
Enags
(E)
1,07
Enags
(E)
0,45
(PT)
0,35
Transgas
Grlitz
Sayda
Olbernhau
MEG
AL
Mnchen
Wallbach
LNG
33 Col de Larrau
(D)
(D)
OMV
STE
GAL
Dresden
Stuttgart
WINGAS
Bayerngas
Transitgas
JAGAL
Leipzig
Zwickau
NP
TE
Transgas
22B Sayda
VNG
Frankfurt/Oder
Hannover
Frankfurt
23A Waidhaus
24 Oberkappel
AL
WED
Kln
WEDAL
TG
SE
19 Frankfurt am Oder
H
RG
NETRA
L
MIDA
Gastra
17 Dragor
Hamburg
NETRA
JAGAL
Oude Statenzijl
MIDAL
16 Ellund
AL
ID
M
15 Dornum
22A Sayda
35/39
Wir bewegen Erdgas.
DEUDAN
1A
1A
Albacete
TRANSGAZ
ROMANIAN NATIONAL GAS TRANSMISSION COMPANY
Santa Cruz
de Tenerife (projected)
scale = 1 : 8.000.000
Gas/Transporte
36/39
Loptimisation en action
reduction de la masse
en cours doptimisation
SAMTECH
(2009)
Tecnologa
(naXys)
y precisin
Octobre 2013
19 / 110
37/39
38/39
39/39
Definiciones, notacin y
proposiciones bsicas
de matemticas
jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
ndice
1
Conjuntos
Espacios vectoriales
2.1 Espacios normados, espacios mtricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Espacios con producto interior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Aplicaciones lineales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
4
6
8
Topologa
Matrices
4.1 Normas de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Matrices ortogonales, unitarias, simtricas, Hessenberg, de permutacin y de proyeccin
4.3 Valores propios, valores singulares y formas cuadrticas . . . . . . . . . . . . . . . . . .
4.3.1 Valores propios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2 Valores singulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.3 Formas cuadrticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Teorema de la proyeccin
21
Conjuntos convexos
22
Funciones
7.1 Condiciones necesarias y suficientes de primer y segundo orden que ha de cumplir un punto
mnimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Teorema de la funcin implcita . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
34
35
35
38
42
42
42
10 Bibliografa
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
11
13
15
15
19
20
43
45
46
47
48
51
52
55
56
1 Conjuntos
Un conjunto es una coleccin de objetos: los nmeros naturales, las soluciones de un problema determinado,
los municipios de una provincia, etc. Se identifica por una letra mayscula: el conjunto S , el conjunto de los
nmeros naturales N, el de los enteros Z, el de los reales R, complejos C, racionales Q, etc.
Cada uno de los objetos en la coleccin es un elemento o miembro del conjunto. Si un elemento a pertenece
a un conjunto se indica a 2 S . Los conjuntos se definen mediante la enumeracin entre llaves de sus elementos,
S D fa; b; : : : g, o especificando, tambin entre llaves, la propiedad que los caracteriza, S D fx W x 2 R; x
2g: nmeros reales menores o iguales que dos.
El conjunto sin elementos se denomina vaco, designndose ;. Ejemplo: el conjunto S de los nmeros reales
x que son mayores que 1 y menores que 0: esto es, S D fx 2 R W x > 1; x < 0g.
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 conjunto S, o que est contenido en S 0 , expresndose S 0 S o S S 0 .
La unin de dos conjuntos S y T , expresada S [ T , es el conjunto formado por los elementos que pertenecen
a S o a T.
La interseccin de S y T , expresada S \ T , es el conjunto formado por los elementos que pertenecen a S y
a T.
Si S 0 es un subconjunto de S , el complemento de S 0 en S es el conjunto formado por los elementos de S
que no pertenecen a S 0 .
Si a y b son nmeros reales, y a b, el conjunto de nmeros 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 vaco de nmeros reales acotados superiormente mayorados, existe un nmero
real mnimo y tal que x y para todo x 2 S. Al nmero y se le denomina cota superior mnima o supremo
de S ; se expresa as:
sup .x/ o sup fx W x 2 S g :
x2S
De forma similar se define la cota inferior mxima o nfimo de un conjunto S no vaco de nmeros reales
acotados inferiormente o minorados:
Knf .x/ o
x2S
Knf fx W x 2 S g :
2 Espacios vectoriales
Un espacio vectorial E es una estructura algebraica creada a partir de un conjunto no vaco, una ley de
composicin interna definida para los elementos del conjunto, adicin, con la siguientes propiedades grupo
conmutativo,
xCy DyCx
.x C y/ C z D x C .y C z/
xCDx
x C . x/ D
y una ley de composicin externa, producto por un escalar, definida entre dicho conjunto y otro conjunto, K,
con estructura de cuerpo, con las siguientes propiedades,
1x Dx
.x/ D ./x
. C /x D x C x
.x C y/ D x C y;
vlidas cualesquiera que sean x; y; z en E y ; en K. A se le denomina elemento neutro y a x el opuesto
de x. Es usual denominar vectores a los elementos de E y escalares a los de K. En las aplicaciones que se
estudian en la asignatura los casos ms importantes ocurren cuando K D R o K D C. Con la notacin K
designaremos a cualquiera de los cuerpos R o C y por x un vector cualquiera de un espacio vectorial.
El paradigma de espacio vectorial 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
2
P
Otros espacios vectoriales habituales son Pn , de polinomios de grado n, pn .x/ D nkD0 ak x k , con coeficientes ak , reales o complejos, n 0 y C p .a; b/ de funciones reales o complejas continuas en a; b y con
derivadas continuas hasta orden p, 0 p < 1. Este espacio es un espacio funcional pues sus elementos son
funciones en vez de vectores propiamente dichos.
Si X es un conjunto arbitrario el conjunto de aplicaciones ' W X ! K se estructura tambin como un
espacio vectorial definiendo las operaciones
.' C
/ W x 7 ! '.x/ C
.x/
.'/ W x 7 ! '.x/ :
El ejemplo anterior es un caso particular de este espacio vectorial tomando X D f1; 2; : : : ; ng.
Un subespacio vectorial M de un espacio vectorial E sobre un cuerpo K es un subconjunto no vaco que
es un espacio vectorial sobre K. Es decir, es cerrado respecto de las operaciones de adicin y producto por un
escalar: que cumple que
8x; y 2 M H) x C y 2 M;
8x 2 M y 8 2 K H) x 2 M:
La interseccin de una familia cualquiera de subespacios de E es tambin un subespacio.
Si X es un subconjunto cualquiera de E el subespacio GenfX g, generado o engendrado por X, es la interseccin se todos los subespacios que contienen a X . Cuando GenfXg D E, se dice que X es una parte
generadora de E.
Dados vectores x1 ; : : : ; xn y escalares 1 ; : : : ; n , el vector formado segn la expresin
x D 1 x1 C C n xn
se dice que es una combinacin lineal de los vectores x1 ; : : : ; xn de coeficientes 1 ; : : : ; n . Un subconjunto
X de E es un subespacio si y slo si contiene a cualquier combinacin lineal de cualquier subconjunto finito
de vectores de X . Tambin se demuestra que el subespacio GenfXg es el conjunto de todas las combinaciones
lineales de vectores de X.
Un conjunto de vectores x1 ; x2 ; : : : ; xk se dicen linealmente dependientes si existen escalares i , no todos
P
cero, tales que kiD1 i xi D 0 ; linealmente independientes, si
k
X
i D1
i xi D 0 H) i D 0;
0i k:
Una parte X de un espacio vectorial E se dice que es una familia libre si los vectores de cualquier subconjunto
finito de X son linealmente independientes.
La dimensin de un subespacio es el mximo nmero de vectores linealmente independientes en el subespacio.
Una base de un espacio vectorial E es cualquier subconjunto B de E que sea, simultneamente, 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 biyeccin. Cuando el cardinal de las bases es un nmero
natural, n 2 N, se dice que el espacio es de dimensin finita n. En un espacio vectorial K n ,
2 3
2 3
2 3
1
0
0
6 7
6 7
6 7
607
617
607
6 7
6 7
6 7
e1 D 6 : 7 ; e2 D 6 : 7 ; : : : ; en D 6 : 7 ;
6 :: 7
6 :: 7
6 :: 7
4 5
4 5
4 5
0
0
1
3
forman una base en dicho espacio; ste, por tanto, tiene dimensin n. Esta base se denomina base cannica o
base estndar 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
1
x1
0
0
6 7
6 7
6 7
6 7
607
617
6 x2 7
607
6 7
6 7
6 7
6 7
6 : 7 D x1 6 : 7 C x2 6 : 7 C C xn 6 : 7 :
6 :: 7
6 :: 7
6 :: 7
6 :: 7
4 5
4 5
4 5
4 5
xn
0
0
1
Es decir Rn D Genfe1 ; : : : ; en g. La base estndar de Pn es S D f1; t; t 2 ; : : : ; t n g.
Si A y B son subconjuntos de un espacio vectorial E, el conjunto A C B se define como:
A C B D fa C b W a 2 A; b 2 Bg :
Cuando A y B son subespacios, tambin lo es la suma A C B. Si adems A \ B D ;, la suma se denomina
directa, escribindose A B. Si A B D E, 3.1
cualquier
vectornormados
c 2 E se descompone de manera nica como
Espacios
c D a C b, con a 2 A y b 2 B; tambin se dice que A y B son subespacios suplementarios.
Si en un espacio vectorial E sobre K (R o C) se define una norma vectorial como una aplicacin k k W E !
kvk D jjkvk para 2 K y v 2 E;
R que verifica
kvk D 0 H) v D 0 y x 0 H) kxk > ku
0; C vk kuk C kvk 8u; v 2 E;
kvk D jjkvk
es
2 un
K espacio
y v 2 vectorial
E;
se dicepara
que E
normado.
La condicin
kukCkvk es la desigualdad de Minkowski; se conoce tambi
ku C vk kuk
C kvk kuCvk
8u; v 2E;
del tringulo. Es una generalizacin del hecho de que un lado de un tringulo no puede
se dice que E es un espacio vectorial normado.la suma de los otros dos: ver figura. Una variante de esta regla es la siguiente:
La condicin ku C vk kuk C kvk es la desigualdad de Minkowski por Hermann Minkowski, Lituania
ku vk kuk kvk:
1864-1909; se conoce tambin como regla del tringulo. Es una generalizacin del hecho de que un lado de
un tringulo no puede ser mayor que la suma de los otros dos: ver figura 2.1. Una variante de esta regla es la
siguiente: ku vk kuk kvk.
v
uCv
u
Figura 3.1: Representacin grfica de la regla del tringulo
denominadas
normas1859-1937.
p de Hlder. Casos
lo constituyen
las correspondien
denominadas normas p de Hlder por Otto Hlder,
Alemania
Casosparticulares
particulares
lo constitup
D
2:
yen las correspondientes a p D 1 y p D 2:
kxk1 D
kxk2 D
n
X
i D1
jxi j
jx1 j2 C C jxn j2 :
kxk1 D
kxk2 D
n
X
i D1
jxi j
p
jx1 j2 C C jxn j2 :
x22 D
=
kxk
2
i
2
i=1
|xijx
| ij
iD1
D1
q
2 2
|x11|j22+C|xjx
2 | 2=
jx
j
q
DxT xx T x
D1
kxk1
ax jx
D mK
i ij D 1
1i2
1i2
.1 p < 1/
28/63
En el espacio C 0; 1 de funciones continuas del intervalo 0; 1 en C, son normas las dadas por
d
10
kf kp D
"Z
jf .t /j dt
#1=p
l
I.f / D
f .x/ dx;
a
como
Pn el lmite de las sumas de Riemann Georg Friedrich Bernhard Riemann, Alemania 1826-1866, Rn D
xi / f .ti /; x1 D a; xnC1 D b; xi ti xi C1 ; cuando la particin en subintervalos se hace
i D1 .xi C1
muy fina. Tambin en una norma la dada por
kf k1 D mKax jf .t /j :
t 20;1
Z
jx.t /jp dt
1=p
jx.t /j dt
1=p
<1
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.
vk :
Esta definicin convierte a cualquier espacio vectorial normado en un espacio mtrico. El espacio de los nmeros reales, por ejemplo, con la distancia .x; y/ D jx yj es el espacio mtrico R1 .
Sea E un espacio vectorial normado; se dice que una sucesin2 fx .n/ g en E converge a un lmite v 2 E, si
para todo " > 0, existe un N 2 N tal que a partir de l, n N , se cumple que kx .n/ vk < ".
Cuando una sucesin fx .n/ g admite un vector lmite v slo tiene ese vector como lmite.3 Se escribe
lKmn!1 x .n/ D v. Es equivalente decir que lKmn!1 x .n/ D v y que lKmn!1 kx .n/ vk D 0. En particular, x .n/ ! 0 si y slo si kx .n/ k ! 0.
Una sucesin fx .n/ g en un espacio vectorial normado por k k se denomina sucesin de Cauchy si para cada
" > 0 existe un n 2 N tal que cualesquiera que sean p; q n, se cumple que kx .p/ x .q/ k < ". Toda sucesin
convergente es una sucesin de Cauchy pero pueden existir espacios normados con sucesiones de Cauchy que
no son convergentes. Un espacio vectorial normado se dice completo si toda sucesin de Cauchy en l tiene
lmite.
Un espacio de Banach por Stefan Banach, Polonia 1892-1945 es un espacio vectorial completo respecto
de la norma a l asociada. Todo espacio vectorial normado de dimensin finita es un espacio de Banach. En un
espacio de dimensin infinita esto no es cierto; por ejemplo, es fcil ver que en C 0; 1 la sucesin de funciones
cuyas grficas son las de la figura 2.3 es una sucesin de Cauchy para cualquier norma k kp , pero no tiene
lmite en C 0; 1.
fn .x/ 6
=
1
n
1
n
cualesquiera que sean u, v, w en E y ; en K. Si adems se cumple que hujvi D hvjui, la forma se denomina
hermtica. Es claro que hujui es siempre un nmero real. Cuando se cumple que
u 0 H) hujui > 0 ;
2 Cuando
as lo aconseja la dificultad de la notacin, una sucesin tambin se designa por fxn g; sus integrantes, x .k/ .
existe lmite es nico.
4 La barra designa complejo conjugado.
3 Si
se dice que la forma es definida positiva, denominndosela tambin producto escalar. Una forma sesquilineal
sobre R es siempre una forma bilineal.
Un espacio prehilbertiano es un espacio vectorial sobre K dotado de una forma hermtica definida positiva.
Todo espacio prehilbertiano es un espacio normado mediante
p
kvk D hvjvi :
En la demostracin de que esta definicin corresponde a la de una norma en E juega un papel importante la
desigualdad de Cauchy-Schwarz por Augustin Louis Cauchy, Francia 1789-1857 y Karl Hermann Amandus
Schwarz, Prusia 1843-Alemania 1921 a saber,
que es una generalizacin del teorema de Pitgoras. En un espacio prehilbertiano el nico vector ortogonal a
todos los vectores del espacio es el vector nulo; si este espacio es de dimensin finita es posible construir una
base ortonormalizada.
En un espacio eucldeo n-dimensional el ngulo entre dos vectores x e y es
!
xT y
D arc cos
;
kxkkyk
donde
D
xT y
kxkkyk
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 aplicacin 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:
adicin .f C g/ W
8x 2 E y 8 2 K:
En particular, el conjunto L.E; K/ de formas lineales es un espacio vectorial denominado dual de E, representndose con E .
Para una aplicacin 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 , representndose mediante Im.f /. Anlogamente, 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 ncleo de la aplicacin, representndose por ker.f /. As pues
ker.f / D fx 2 E W f .x/ D 0g :
Si b 2 F , la ecuacin lineal f .x/ D b tiene solucin si y slo si b 2 Im.f /. En ese caso el conjunto de
todas las soluciones es la variedad lineal traslacin de un subespacio dada por x0 C ker.f /, donde x0 es
una solucin particular de la ecuacin. En particular, la aplicacin es inyectiva si y slo si ker.f / D ;.
Sean E y F dos espacios prehilbertianos sobre el cuerpo K; si f W E ! F es una aplicacin lineal, la
aplicacin traspuesta de f es la aplicacin f W F ! E que cumple
hxjf .y/i D hf .x/jyi ;
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, tambin se dice que f es un operador
simtrico y cuando es un espacio vectorial complejo, que f es un operador hermtico. Un operador simtrico
cumple que
hxjf .y/i D hf .x/jyi;
mientras que uno hermtico, que
3 Topologa
En un espacio vectorial normado se define una bola abierta, S.x0 ; r/, de centro x0 y radio r, como el
conjunto de puntos x que verifican kx x0 k < r. Es decir:
S.x0 ; r/ D fx 2 Rn W kx
x0 k < rg:
Consideraremos en lo que sigue de este apartado un subconjunto S del espacio vectorial mtrico hasta ahora
estudiado (puede ser, por ejemplo, Rn ).
Un punto y 2 S es un punto interior del conjunto S si existe un " tal que
kx
yk < " ) x 2 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 interiores del conjunto S se denomina interior de S . Este conjunto puede,
evidentemente, ser vaco. Ejemplo: un plano del espacio R3 .
Un subconjunto de S se dice abierto si coincide con su interior; 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 lmites definidos o ser disjuntos de su frontera (ver ms adelante la definicin del concepto frontera).
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.
Se dice que un punto x es un punto de acumulacin del subconjunto S si en todo entorno de x existen un
nmero infinito de puntos de S.
Un punto x se denomina punto de adherencia del subconjunto S 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 se denomina adherencia en la literatura anglosajona y latinoamericana, clausura
N
cl.S/. La adherencia de la bola abierta S.x; 1/ D fx W kxk < 1g es la cerrada S.x;
1/ D fx W kxk 1g.
Se denomina frontera de un conjunto a la parte de la adherencia que no est en el interior.
Un conjunto, o subconjunto, se dice cerrado si coincide con su adherencia. La adherencia de cualquier
conjunto S es el conjunto cerrado ms pequeo que contiene a S . Se puede demostrar que un conjunto es
cerrado si y slo si toda sucesin convergente de elementos de S tiene un lmite en ese conjunto.
Un conjunto, o subconjunto, se dice compacto si es cerrado y acotado (contenido en una bola de radio
r < 1). Un importante resultado, debido a Weierstrass, dice que si S es un conjunto compacto, de cada
sucesin o sucesin infinita fx .n/ gn2N de elementos de dicho conjunto es posible extraer una subsucesin
n
o
x .`/
LN
`2L
El lmite superior de una sucesin de nmeros reales es el mayor punto de acumulacin de la sucesin. De
forma similar se define el lmite inferior.
4 Matrices
Sean dos espacios vectoriales E y F de dimensiones finitas n y m sobre el mismo cuerpo K. Una aplicacin
lineal g W E ! F , g 2 L.E; F /, est caracterizada o representada en dos bases fe1 ; e2 ; : : : ; en g de E y
9
g.ej / D
El vector columna j -simo
m
X
aij fi ;
i D1
1 j n:
3
a1j
6a 7
6 2j 7
6 : 7
4 :: 5
amj
representa el vector g.ej / en la base .fi /. A partir de la matriz A se pueden calcular los coeficientes y1 ; y2 ; : : : ; ym
del vector y D g.x/ en la base .fi /, conociendo los coeficiente x1 ; x2 ; : : : ; xn en la base .ej /. En efecto:
2 3
2
3
2
3
2
3
y1
a11
a12
a1n
6 7
6
7
6
7
6
7
6 y2 7
6 a21 7
6 a22 7
6 a2n 7
6 : 7 D x1 6 : 7 C x2 6 : 7 C C xn 6 : 7 :
6 : 7
6 : 7
6 : 7
6 : 7
4 : 5
4 : 5
4 : 5
4 : 5
ym
am1
am2
amn
n
X
x i ai ;
i D1
donde ai es el vector columna i -simo de la matriz A. As pues, si se fijan dos bases en E y F , cada aplicacin
lineal, g W E ! F , queda unvocamente representada por una matriz. Recprocamente, toda matriz en K mn
define unvocamente una aplicacin 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 dimensin finita dotados de un producto escalar y la aplicacin 2 L.E; F /
se representa en dos bases ortonormalizadas mediante una matriz A, la aplicacin T 2 L.F; E/, traspuesta
de , viene representada por la matriz A T , traspuesta de A.
El ncleo 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 ncleo y la imagen de la aplicacin lineal asociada:
7
7
ker.A/ D fx 2 K n W Ax D 0g
7
5
:
m
n
Im.A/ D fy 2 K W y D Ax; x 2 K g
mn
A2K
Dicho de otra forma, la imagen de una matriz es el subespacio generado por los vectores columna de la matriz;
los vectores fila tambin 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
:
10
Rmn ,
se cumple que
7KHQH[WWKHRUHPDQG([HUFLVH YHULI\WKHFODLPVPDGHLQ6HFWLRQ
FRQFHUQLQJ
ker .A/ Im A T D Rn :
WKHVXEVSDFHVVKRZQLQ)LJ $OVRVHH([HUFLVH LQ6HFWLRQ
I m
K e
r A
r A
K e
I m
'*(63& 7KHIXQGDPHQWDOVXEVSDFHVGHWHUPLQHG
Figura 4.4:
fundamentales
determinados por A mn
m ! n PDWUL[
A
E\DQSubespacios
El rango de una matriz es la dimensin6 de su subespacio imagen:
5)&03&.
rango.A/ D dim.Im.A//:
/HW A EHDQ m ! n PDWUL[ 7KHRUWKRJRQDOFRPSOHPHQWRIWKHURZVSDFHRI
A LV
A
A
WKHQXOOVSDFHRI
DQGWKHRUWKRJRQDOFRPSOHPHQWRIWKHFROXPQVSDFHRI
LV
nn
Una matriz A 2 K mn se dice de
T rango completo si rango.A/ D mKn.m; n/. Una matriz cuadrada A 2 K
WKHQXOOVSDFHRI
A
se denomina singular si rango.A/ < n; regular si rango.A/ D n. Tambin se cumple que rango.A/ D
rango.A T /.
.5RZ A/? D 1XO A DQG .&RO A/? D 1XO AT
La aplicacin asociada a una matriz A 2 Rmn es suprayectiva si rango.A/ D m. Para una matriz A 2
mn
K
se cumple que
[ LVLQ 1XO A WKHQ [ LV
1300' 7KHURZFROXPQUXOHIRUFRPSXWLQJ
A[ VKRZVWKDWLI
dim.ker.A// C rango.A/
D n;
o, alternativamente, dim.ker.A// D n rango.A/. La aplicacin lineal asociada a A es, por tanto, inyectiva,
RI A VSDQWKHURZVSDFH [ LVRUWKRJRQDOWR 5RZ A &RQYHUVHO\ LI [ LVRUWKRJRQDOWR
si y slo si rango.A/ D n. Por otro lado dim.ker.A T // C rango.A T / D m.
5RZ A WKHQ [ LVFHUWDLQO\RUWKRJRQDOWRHDFKURZRI A DQGKHQFH A[ D 7KLVSURYHV
El producto exterior uvT de un vector columna n 1 por un vector fila 1 n es una matriz A nn de rango
WKHUVWVWDWHPHQWRIWKHWKHRUHP 6LQFHWKLVVWDWHPHQWLVWUXHIRUDQ\PDWUL[ LWLVWUXH
1.
2
3
IRU AT 7KDWLV WKHRUWKRJRQDOFRPSOHPHQWRIWKHURZVSDFHRI
AT LVWKHQXOOVSDFHRI
u
v
u
v
u
v
1 1 1 2
7 A
AT 7KLVSURYHVWKHVHFRQGVWDWHPHQW6EHFDXVH
5RZ AT 1Dn&RO
6
u
v
u
v2 u2 vn 7
2
1
2
T
6
A D uv D 6 :
:: 7
7
: 5
4 ::
un v1 un v2 un vn
2
3
4.1 Normas
,I X DQGdeY matrices
DUHQRQ]HURYHFWRUVLQHLWKHU R2 RU R3 WKHQWKHUHLVDQLFHFRQQHFWLRQEHWZHHQ
# EHWZHHQWKHWZROLQHVHJPHQWVIURPWKHRULJLQWRWKH
WKHLULQQHUSURGXFWDQGWKHDQJOH
Aun cuando
en lo que sigue nos limitaremos
a matrices cuadradas, la mayor parte de las definiciones y
SRLQWVLGHQWLHGZLWK
X
DQG
Y
7KHIRUPXODLV
resultados son extensibles a matrices rectangulares; tambin supondremos que las matrices son reales.
Las matrices cuadradas de orden n forman un espacio vectorial con un producto, esto es, un lgebra. Una
X ! Y D kcon
Xk kelYproducto.
k FRV # Se define formalmente sobre
norma matricial es una norma vectorial compatible
Rmn como
mn
una aplicacin k k W R
! R que cumple:
(u , u )
1 R
2 mn que no son normas matriciales pues no cumplen la propiedad 4). As,
Existen normas sobre el espacio
si se define
|| u v||
kAk D mKax jaij j ;
|| u||
6 Recordemos:
! n
1i;j
(v1, v2)
||v||
'*(63& 7KHDQJOHEHWZHHQWZRYHFWRUV
11
h i
se satisfacen 1), 2) y 3); sin embargo, tomando A D B D 11 11 , es fcil ver que kABk D 2 > kAk kBk D 1,
por lo que no se cumple 4).
Un ejemplo importante de norma matricial es la norma de Frobenius, definida como:
X
2
kAk2F D
aij
D traza.A T A/;
1i;j n
Pn
donde la traza de una matriz A de orden n es i D1 ai i . Es fcil ver que esta norma deriva del producto escalar
hAjBi D traza.A T B/, que configura al espacio de las matrices cuadradas como un espacio prehilbertiano. La
norma de Frobenius cumple que
kABkF kAkF kBkF :
Una norma matricial k k sobre Rmn se dice consistente con una norma vectorial k k0 sobre Rn cuando
para cada matriz A y cada vector x se cumple que
kAxk0 kAk kxk0 :
Por ejemplo, la norma de Frobenius y la norma eucldea de Rn son consistentes pues
kAxk2 kAkF kxk2 :
Se demuestra que para toda norma matricial es posible construir una norma vectorial consistente. Recprocamente, 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 definicin
kAk D
sup
0x2Rn
kAxk
:
kxk
Esta norma matricial se dice inducida por la norma vectorial. Ejemplo: la norma matricial inducida por la norma
eucldea de Rn es la norma espectral:
kAk2 D
sup
0x2Rn
"
x T A T Ax
xT x
#1=2
q
D max .A T A/ D max .A/;
donde designa un valor propio de A y un valor singular. 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 . En particular, para la norma espectral y la norma de Frobenius, se cumple que
p
kAk2 kAkF nkAk2 :
Tambin, que kABkF kAkF kBk2 y kABkF kAk2 kBkF 2. Como casos particulares, kIk2 D 1 y
kDk2 D mKaxi jdi j.
Las normas matriciales inducidas ms usadas son
kAk1 D mKax
1j n
kAk1 D mKax
1i m
m
X
i D1
n
X
j D1
jaij j y
jaij j :
Ejemplo 4.1 El efecto que produce aplicar la transformacin lineal basada en la matriz
"
#
12
AD
02
12
[2, 2]T
[0, 1]T
norma11
norma
A1 = 4
[1, 0]T
[1, 0]T
A2 2,9208
norma22
norma
A = 3
norma1
norma
39/63
sobre la bola unidad definida a partir de las normas k k1 , k k2 y k k1 en R2 , se representa en la figura 4.5. La
aplicacin transforma
el
vector
e1 D 1;
02T en3 s mismo y e2 D 0; 1T en 2; 2T . Con la norma 1, el vector
a
c
1
b
unitario que ms sed amplifica
la4 transformacin
es 0; 1T (o 0; 1T ), que pasa a ser 2; 2T . Su
gal aplicarle
e
f
9
6
5
factor de amplificacin,
enj trminos de10la norma
1, es 4.
8
7
i
h
Con la norma 2, el vector unitario que ms se amplifica es el que se representa en la figura con una recta
discontinua. El factor de amplificacin es 2,9208.
Para la norma 1, igualmente, el vector unitario que ms se amplifica es el que se representa tambin con la
recta discontinua: 1; 1T , que pasa a transformarse en 3; 2T . El factor de amplificacin correspondiente es en
este caso 3 ya que
1; 1T
D 1
1
3; 2T
D 3:
u
1
es
Adems de las normas vectoriales y matriciales ya presentadas, otra norma vectorial que se utiliza en el curso
p
p
kxkA D
A 1=2 x
D hAxjxi D x T Ax;
2
energa7
13
kQk2
kQkF
kAQk2
kAQkF
D1
D m1=2
D kAk2
D kAkF
9
>
>
>
>
=
>
>
>
>
;
si m n:
Una matriz ortogonal no modifica ni los ngulos ni las normas, .Qx/H .Qy/ D x H QH Qy D x H y. Si
y D x, jjQxjj2 D jjxjj2 .
La extensin de las matrices ortogonales al campo complejo son las matrices unitarias. Son matrices, U 2
C nn , cuya inversa es su compleja conjugada: U H U D U U H D I: Todos los valores propios de las matrices
unitarias tienen mdulo 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 .
Una matriz de permutacin es una matriz cuadrada cuyas columnas estn formadas por las de la matriz
unidad permutadas. Una matriz de permutacin es una matriz ortogonal.
Una matriz se dice simtrica si se verifica que A D A T . Para una matriz cualquiera A 2 Rmn , la matriz
A T A es simtrica. Si A 2 C nn es igual a su traspuesta conjugada, A D B D A H , bij D aNj i , se dice
hermtica.
Una matriz A se dice definida positiva si x T Ax > 0 para todo vector x 0. De forma similar se definen matrices semidefinida positiva, definida negativa y semidefinida negativa, si x T Ax 0, < 0 y 0,
respectivamente, para todo vector x 0. La matriz A se dice indefinida si x T Ax es positivo para algn x y
negativo para otros. Tambin A 2 C nn se dice definida positiva si para todo x 2 C n ; x 0, se cumple que
x H Ax > 0.
Si A 2 Rnn es simtrica y definida positiva se puede descomponer de la formaA D QDQT donde Q
1
1
es una matriz ortogonal y D, diagonal, tiene todos sus coeficientes positivos por lo que A 2 D QD 2 QT
1
1
satisfacindose que A 2 A 2 D A.
Se dice que una matriz A 2 C nn de coeficientes aij es de diagonal dominante por filas cuando cumple que
jai i j
n
X
jaij j;
n
X
jaj i j;
j D1;j i
i D 1; : : : ; n:
j D1;j i
i D 1; : : : ; n:
Lema 4.3 Si en cada fila de una matriz simtrica A el coeficiente de la diagonal principal es mayor que la
suma de los valores absolutos de todos los dems coeficientes de la fila, es decir, si
akk >
n
X
j D1
jakj j
k D 1; : : : ; n;
j k
A es definida positiva.
14
Es importante destacar que este ltimo criterio define una condicin suficiente, no necesaria. En efecto, la
matriz
3
2
322
Q D 42 3 25
223
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 siempre positiva. Esa matriz, sin embargo, no satisface el lema 4.3.
Una matriz de Vandermonde por Alexandre-Thophile Vandermonde, Francia 1735-1796 es una matriz
que presenta una progresin geomtrica en cada fila; como esta:
3
2
1 1 12 : : : 1n 1
6 1 2 2 : : : n 1 7
2
2
7
6
n 17
2
6
V D 6 1 3 3 : : : 3 7 :
7
6: : : :
4 :: :: :: : : ::: 5
1 n n2 : : : nn 1
Una matriz de Hankel por Hermann Hankel, Alemania 1839-1873 es una matriz cuadrada con todas sus
diagonales de derecha a izquierda paralelas numricamente. Es decir, tiene la forma
3
2
a b c d e
6b c d e f 7
7
6
7
6
H D 6 c d e f g 7:
7
6
4d e f g h 5
e f g h i
Una matriz de Hessenberg por Karl Adolf Hessenberg, Alemania 1904-1959 es una matriz triangular
excepto por una subdiagonal adyacente a la diagonal principal.
@
@
@
@
@
Cualquier matriz se puede reducir a la forma de Hessenberg mediante transformaciones ortogonales de Householder o Givens. Si la matriz original es simtrica, al reducirla a la forma de Hessenberg se obtendr una
tridiagonal.
Se denomina proyector o matriz de proyeccin a una matriz P 2 Rnn que verifica que P 2 D P. Si P
adems es simtrica, se denomina proyector ortogonal o matriz de proyeccin ortogonal. Si, en este ltimo
caso, F es el subespacio imagen de la matriz P (el mismo que el de la matriz P T ), Px define la proyeccin
ortogonal del vector x sobre F .
Se denomina proyector suplementario de P al proyector S D I P. Si F D Im.P/ y G D ker.P/,
entonces F D ker.S / y G D Im.S /.
En el caso de un proyector ortogonal P en el que F D Im.P/, se tiene que Rn D F F ? , verificndose
que kPxk2 kxk2 y que
kx Pxk2 D
mKn
kx yk2 :
y2Im.P /DF
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, designndose por .A/. El radio espectral, .A/, se define de la siguiente
manera:
.A/ D mKax ji j:
1i n
Para que un nmero sea valor propio de A, el sistema lineal y homogneo 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 ecuacin polinmica de grado n en que se denomina ecuacin caracterstica, o polinomio caracterstico, de la matriz A. La ecuacin caracterstica admite la raz D 0 si y slo si det.A/ D 0. Una matriz es
invertible, por tanto, si y slo si no admite al cero como vector propio.
Para que exista una solucin distinta de la trivial x D 0, el valor propio deber ser raz del polinomio
caracterstico 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 ecuacin polinmica de grado n, con coeficientes
complejos, tiene n races en el cuerpo de los complejos.
La multiplicidad algebraica del valor propio de A es la multiplicidad de la raz correspondiente del polinomio caracterstico asociado a A. La multiplicidad geomtrica de es el nmero de vectores propios linealmente
independientes que se corresponden con . La multiplicidad geomtrica 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 geomtrica n. El polinomio
caracterstico de A es p.z/ D .z 1/n y ei 2 C n , i D 1; : : : ; n, sus vectores propios. Si el valor propio tiene
una multiplicidad geomtrica 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
210
40 2 15
002
tiene un valor propio, 2, de multiplicidad algebraica 3 y multiplicidad geomtrica 1; u D 100T . Si una matriz
A 2 C nn no es defectuosa, dispone de un conjunto de n vectores propios linealmente independientes.
Un resultado interesante debido a dos matemticos del siglo XIX, Cayley, britnico y Hamilton, irlands,
dice que cualquier matriz A 2 C nn satisface su propia ecuacin caracterstica. Es decir,
A n C g1 A n
C g2 A n
C C gn I D 0:
1 n
A
gn
g1 n
A
gn
gn 1
I:
gn
16
es
3
0 0 ::: 0
c0
61 0 ::: 0
c1 7
7
6
7
6
c2 7
C .p/ D 6 0 1 : : : 0
6 :: :: : : ::
:: 7
4: : : :
: 5
0 0 : : : 1 cn 1
2
El polinomio mnimo q.t / de la matriz A es el polinomio mnico nico de grado mnimo 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. El nmero
mximo de valores propios es n.
Al aplicrsele a cualquier vector la transformacin que representa A ese vector tiende a orientarse en la
direccin del vector propio dominante de A. Si aquel vector est en la direccin de alguno de los vectores
propios de A, se
o contrae por un factor que determina el correspondiente valor propio. Por ejemplo,
expande
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 4.6: en magenta y azul los vectores propios;
otros en rojo.
Figura 4.6: Efecto de aplicrsele a diversos vectores la transformacin que representa la matriz A D
Siendo un valor propio de una matriz A, el conjunto de soluciones del sistema de ecuaciones
.I
2 1
12
A/x D 0
es un subespacio de Kn que se denomina subespacio propio asociado al valor propio , designndose con E .
Si n es la multiplicidad de como raz de la ecuacin caracterstica de A, se cumple que
dim.E / n :
La interseccin de subespacios propios correspondientes a valores propios distintos se reduce al subespacio
nulo; esto es,
H) E \ E D ; :
si y slo si para cada 2 .A/, dim.E / D n ; en ese caso existe una base de Kn formada toda ella por
vectores propios de A.
17
El teorema central en el estudio de los mtodos y algoritmos numricos para el clculo y anlisis de valores
y vectores propios es el de la descomposicin de Schur por Issai Schur, Alemania 1875-1941.
Teorema 4.4 Descomposicin o triangularizacin de Schur Para cualquier A 2 C nn 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 entonces los coeficientes de la diagonal principal de R.
Teorema 4.5 Para cualquier matriz hermtica A 2 C nn existe una matriz unitaria U tal que
U H AU D D,
donde D es una matriz diagonal.
1. Los valores propios de A son nmeros reales.
2. 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 caracterstico y los mismos valores propios.
Una matriz A 2 C nn es normal, es decir AA H D A H A, si y slo 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 .
Toda matriz real y simtrica tiene todos sus valores propios reales y es diagonalizable por semejanza. Se
demuestra adems 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 simtrica A. Existe entonces una matriz ortogonal Q tal que se verifica que
QT AQ D D;
con QT D Q
y, de aqu que, toda matriz real y simtrica es congruente ortogonal con su reducida diagonal. Este resultado
fundamental de la teora de matrices es la versin elemental del denominado teorema espectral.
Una matriz simtrica 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 hermtica, el producto x H Ax es un nmero real. Los valores propios de una matriz hermtica, en
consecuencia, son nmeros reales. En una matriz hermtica los vectores propios correspondientes a dos valores
propios distintos son ortogonales entre s.
Teorema 4.6 Descomposicin de Jordan Para una matriz A 2 C nn existe una matriz regular X 2 C nn
tal que X 1 AX D diag.J 1 ; : : : ; J k / donde2
3
i 1
6
7
6 i 1 0 7
6
7
Ji D 6
7 2 C ni ni
6
7
4 0
15
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.
Un resultado muy interesante para averiguar el orden de magnitud de los valores propios de una matriz
es el del teorema de Gerschgorin, que dice que si A 2 Rnn es una matriz simtrica con valores propios
1 ; 2 ; : : : ; n , entonces
8
9
>
>
n
=
<
X
jaij j ;
mKn i mKn ai i
>
1i n
1i n
>
j D1
:
;
j i
8
9
>
>
n
<
=
X
mKax i mKax akk C
jakj j :
>
1kn
1kn
>
j D1
:
;
j k
18
y Ax D y;
con
D kAk2 :
U D y U 1 2 Rmm
(siempre es posible ampliar un conjunto de vectores ortogonales hasta formar una base ortonormal de Rn ).
Como U T1 Ax D U T1 y D 0, la matriz U T AV tiene la siguiente estructura:
T
A1 D U AV D
donde B D U T1 AV 1 2 R.m
wT w, como
1/.n 1/
"
yT
U T1
A x V 1 D
"
wT
0 B
h
i
k D
2 CwT w
2 C
y wT D y T AV 1 . Dado que kA1 w
2
Bw
2
k
k D
kA1 w
kA1 k2 k w
kA1 k2
2
2
2
2 C wT w ;
se cumple que kA1 k2 . 2 C wT w/1=2 . Como las matrices U y V son ortogonales, kA1 k2 D kAk2 D y
por consiguiente w D 0. La argumentacin de la demostracin se completa por induccin.
Los valores singulares de A son las longitudes de los semiejes del hiperelipsoide E definido, a partir de la
esfera unidad y el operador A, por
E D fy W y D Ax; kxk2 D 1g :
En la figura 4.7 se describe grficamente el caso en que m D n D 2.
Si A es una matriz n n, j det.A/j D 1 2 n . Para una matriz A 2 Rmn cuya descomposicin en
valores singulares es A D U V T , se define su matriz pseudoinversa, A , como
A D V U T ;
donde
D diag.1 1 ; : : : ; r 1 ; 0; : : : ; 0/ 2 Rnm :
1 T
1
Si A 2 Rmn es de rango completo y m > n, A D A T A
A ; si m < n, A D A T AA T
.
mn
Ax
Ax
Figura 4.7: Representacin en dos dimensiones de una transformacin lineal de la esfera unidad
La matriz A mn D U V T , de rango r, se puede escribir como la suma de r matrices de rango uno as
AD
r
X
i ui viT ;
i D1
donde los ui y vi son los vectores columna i -simos de U y V . Dada la descomposicin en valores singulares
de A, de rango r, los vectores singulares izquierdos fu1 ; : : : ; ur g conforman una base ortonormal de Im.A/
y furC1 ; : : : ; um g otra base ortonormal de ker.A T /. Igualmente, fvrC1 ; : : : ; vn g es una base ortonormal de
ker.A/ y fv1 ; : : : ; vr g una base ortonormal de Im.A T /.
4.3.3 Formas cuadrticas
Una forma cuadrtica en n variables es un polinomio de segundo grado en esas variables. La expresin ms
general de una forma cuadrtica es
q.x/ D x T Qx ;
donde Q D QT es una matriz simtrica de orden n. Nos limitaremos al anlisis de formas cuadrticas con
coeficientes reales.
Mediante una transformacin lineal de variables, x D T y, una forma cuadrtica se puede reducir a la forma
cannica de suma de cuadrados siguiente:
q.x/ D
p
X
yi2
pCq
X
yi2 :
i DpC1
iD1
la forma cuadrtica asociada a Q es definida positiva si y slo si todos los menores i son positivos.
Sean 1 ; : : : ; n los valores propios que sabemos son reales de la matriz Q; por el teorema espectral,
existe una matriz ortogonal P tal que
P T QP D diag.1 ; : : : ; n /:
Haciendo en la forma cuadrtica q.x/ D x T Qx el cambio de variables x D Py, se tiene que
q.x/ D y T P T QPy D 1 y12 C C n yn2 ;
20
lo que hace ver que el rango de la forma cuadrtica es el nmero total teniendo en cuenta las multiplicidades
de valores propios no nulos de Q, mientras que la signatura coincide con la diferencia entre los nmeros de
valores propios positivos y negativos. En particular, la forma cuadrtica asociada a Q es definida positiva si y
slo si todos los valores propios de Q son positivos.
En ciertos casos es importante acotar el cociente de una forma cuadrtica al cuadrado de la norma eucldea,
es decir, el cociente
x T Qx
r.x/ D T
;
x 0:
x x
Mediante una transformacin ortogonal x D Py, este cociente se escribe como
r.x/ D
de manera que se deducen las acotaciones
1 y12 C C n yn2
;
y12 C C yn2
mi n .Q/
x T Qx
max .Q/ :
xT x
vT Qv
vT v
D .
5 Teorema de la proyeccin
Gran parte de las teoras de sistemas de ecuaciones y de optimizacin que se estudian en la asignatura
estn basadas en unos pocos resultados simples e intuitivos. Entre estos, quizs el ms sencillo y usado sea
el teorema de la proyeccin. Su aplicacin en la teora de mnimos cuadrados lineales es fundamental. En un
espacio Eucldeo ordinario de tres dimensiones determina que la distancia ms corta de un punto exterior a
un plano a ese plano la proporciona la perpendicular al plano desde dicho punto. La expresin formal de este
teorema en espacios de Hilbert es la que sigue.
Teorema 5.1 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 condicin necesaria y
suficiente adems para que m0 2 M sea el vector mnimo nico es que x m0 sea ortogonal a M .
D EMOSTRACIN . Primero probaremos que si m0 es un vector que minimiza kx mk, x m0 es ortogonal
a M . Supongamos para ello, por el contrario, que existe un m que no es ortogonal a x m0 ; sin prdida 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
D kx
m0
m0 k22
mk22 D kx
jj2 < kx
m0 k22
m0 k22 :
hx
m0 jmi
hmjx
m0 i C jj2
mk22 D kx
m0 C m0
mk22 D kx
m0 k22 C km0
mk22 :
9 Para
u, w 2 M , ju C wj2 C ju
21
Reordenando, se obtiene
.j /
m
2
2
2
2
.i / C m.j /
m
.j / 8.3
(Condiciones
Proposicin
necesarias
de
segundo orden) Sea
un subconjunto de Rn y una
.i /
m.i /
D 2funcin
x
! C
2
2xC 2 . m
4mnimo
m f W
x relativo de f en
,:para toda direccin d 2 Rn ,
R,
f
Si
x
en
un
2
2
2
2
xk22
/
.i / km
Como
! est
cuando
i !pues
1,rf
km
! 0 cuando
i; j ! 1.
Es decir,De
fm.ila
g es
Para todo i; j , el vector .m
C m /=2
en M
ste
es un
vectorial
(lineal).
definicin
.x /d
0:espacio
Exercise
.i /
una sucesin
de.jCauchy;
como M es un subespacio cerrado, la sucesin fm g tiene un lmite m0 en
.i
/
/
T 2
de se deduce que kx M
.my, debido
Cm
/=2k
,
por
lo
que
2
rf .x
D 0; entonces d r f .x /d 0:
a la continuidad de la norma,Sikx
m0 k/d
2 ! .
2
2
2
El teorema
solucin
problema
/
.j /en evidencia
.i /del
2
given two
n-vectors
6=0,2y
de.ila/x
pone
que
m
x
Cnecesarias
2
la
x m
4
: Sea x un punto interior de y su
m.j
proyeccin
m
Proposicin
8.4
(Condiciones
de segundo
orden)
.i /
.jxk
/2
2
.j /
m.i / k22
t
minimize
!0 yk
cuando
i; j ! 1. Es decir, fm.i / g es una
cuando i ! 1,
km.j / (over
m.it)/ k22ktx
!
Como
/ D 0:
es el vector proyeccin ortogonal de y sobre x: txrf
en.x
la figura.
sucesin de Cauchy; como M es un subespacio cerrado, la sucesin fm.i / g Ttiene
un lmite m0 en M y, debido
Para
todo
r 2 f .x /d
0:x
is the
projection
of a vector y on thed;
lined through
0 and
a la continuidad degeometrically,
la norma, kx tx m
k
!
.
0 2
km.i /
Proposicin 8.5 (Condiciones suficientes de segundo orden) Sea f 2 C 2 una funcin definida en
x interior. Supngase adems que:
una regin en la cual x es un punto
tx .x / D 0:
rf
9 Conjuntos convexos
Figura 5.8:
Solucin de minimizar t ktx
8 Conjuntos
convexos
yk
Un conjunto
C R se dice convexo si y slo si para todo par de puntos x ; x 2 C todas las
n
n
Un conjunto
C evidencia
R se dice que
convexo
si y slo si del
para todo par de puntos x1 ; x2 2 C todas las 1 2
El teorema de laVectors
proyeccin
pone
en
la solucin
1-20estn en C . Es decir, cuando para
combinaciones
de la forma
x D x1 C .1problema
/x2 , con 0 1,
minimizar ktx
yk
6 Conjuntos convexos
Conjunto convexo
Conjunto no convexo
Un conjunto C Rn seLa
dice
convexo
y 1slo
dedefine
puntos
x1 ; x2 2 C
todasdelas
expresin
x sets
Dsix
C .1si para
/x2Examples
,todo
0 par
1,
la combinacin
convexa
x1 combinaciones
y x2 . Si
Examples of convex
of non-convex sets
0
<
<
1,
es
decir
2
.0;
1/,
la
combinacin
se
denomina
estrictamente
convexa.
de la formaxA
D line
x1 C
.1
/x
,
con
0
1,
estn
en
C
.
Es
decir,
cuando
para
cada
par
de convexa
puntos de
del
segment is
a convex set. The union of two non-overlapping
2 La
line
expresin x D x
C
.1
/x
,
0
1,
define
la
combinacin
x1 y segmen
x2 . Si
1
2
Non-convex sets can have indentations.
El puntos
concepto
de combinacin
se 1/,
puede
generalizar
a cualquier
nmero
finito de puntos
de
conjunto convexo, todos los
la<recta
queconvexa
los
estn
en el conjunto.
0 de
<
1, es decir
2une
.0;
la combinacin
se denomina
estrictamente
convexa.
la siguiente manera:
xD
donde
p
X
i D1
i D 1;
p
X
25
i xi ;
i D1
i 0;
i D 1; : : : ; p:
Title Page
derecha
Figura
6.9:
Conjuntos
convexos izquierda; no
convexos
38
of
156
Title Page
Go Back
Full Screen
23
Close
39
of 156
Quit
i D1
p
X
i D1
i D 1;
i 0;
22
i D 1; : : : ; p:
Go Back
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
some boundary points but not others, and is not convex.
El conjunto interseccin de todos los conjuntos convexos que contienen a un subconjunto S Rn se llama
envoltura convexa
de S (figura
6.10)
y is
seconvex
designa
por conv.S
/.the set can be seen by every other
Roughly
speaking,
a set
if every
point in
n se dice
an unobstructed
straight se
path
them,
where unobstructed
Un conjunto Cpoint,
Ralong
que es afn (tambin
dicebetween
que C es
una variedad
afn o una variedad lineal)
means
lying
in
the
set.
Every
affine
set
is
also
convex,
since
it
contains
si para cualesquiera x; y 2 C y cualquier 2 R se tiene que .1 /x C y 2 the
C . entire
El conjunto vaco es
line between any two distinct points in it, and therefore also the line segment
afn. Una combinacin afn de vectores v1 ; v2 ; : : : ; vn es una combinacin lineal c1 v1 C C cn vn en la que
between the points. Figure 2.2 illustrates some simple convex and nonconvex sets
c1 C C cn Din1.R2 .
n
Un conjunto C
afn siofythe
sloform
si es
la forma C D fa C l W a 2 Rn ; l 2 Lg, donde L es un
We Rcalles
a point
1 xde
1 + + k xk , where 1 + + k = 1 and
n
i 0,
= 1,asociado
. . . , k, a convex
combination
of the points
. . ,subespacio
xk . As withdesplazado
affine
subespacio vectorial
deiR
a C . Es
decir, un conjunto
afnxes
del origen.
1 , .un
sets,
it
can
be
shown
that
a
set
is
convex
if
and
only
if
it
contains
every
convex
La dimensin de un conjunto afn x C L es la de su correspondiente subespacio L. Un plano afn en Rn es un
combination
points.
A convex
of points
can be thought
of as a que cualquier
n . Una
traslado de un subespacio
deofRits
recta
en Rn combination
es un plano afn
de dimensin
1. Es evidente
mixture or weighted average of the points, with i the fraction of xi in the mixture.
conjunto afn es convexo aunque el recproco no es cierto en general.
Si S Rn , la envoltura
afn
deofSa, set
aff.S
es la interseccin
deset
todos
conjuntos
afines que contienen a
The convex
hull
C, /,denoted
conv C, is the
of alllos
convex
combinations
S. Como se puede
comprobar,
of points
in C: aff.S / D aff.conv.S //.
Un conjunto de puntos o vectores fv1 ; : : : ; vp g de Rn es afnmente dependiente si existen nmeros reales
conv C = {1 x1 + + k xk | xi C, i 0, i = 1, . . . , k, 1 + + k = 1}.
c1 ; : : : ; cp no todos cero tales que c1 C C cp D 0 y c1 v1 C C cp vp D 0. De lo contrario ser afnmente
independiente. As the name suggests, the convex hull conv C is always convex. It is the smallest
setesthat
contains C: convexa
If B is any
set that
contains
C, thenafnmente
conv C independientes.
Un simplex o convex
simplejo
la envolvente
de convex
un conjunto
finito
de vectores
B. Figure 2.3 illustrates the definition of convex hull.
Para construir un simplex
k-dimensional
o k-simplex
se procedetocomo
sigue:
The idea
of a convex combination
can be generalized
include
infinite sums, integrals, and, in the most general form, probability distributions. Suppose 1 , 2 , . . .
k-simplex S k : conv.S k
7KH*HRPHWU\RI9HFWRU6SDFHV
v1
v1
v1
S0
v2
S1
1 /.
v1
v2
v3
S2
v4
v2
v3
S3
'*(63&
DQGWKHQIRUPLQJWKHFRQYH[KXOOZLWK S 2
%HIRUHFRQWLQXLQJ
FRQVLGHUVRPHRIWKHSDWWHUQVWKDWDUHDSSHDULQJ
7KHWULDQJOH
Sea S D
fv1 ; : : : ; vk g un conjunto
afnmente independiente. Para cada punto p en aff.S
/ los coeficientes
2
1
S KDVWKUHHHGJHV (DFKRIWKHVHHGJHVLVDOLQHVHJPHQWOLNH S :KHUHGRWKHVH
WKUHHOLQHVHJPHQWVFRPHIURP" 2QHRIWKHPLV
S 1 2QHRIWKHPFRPHVE\MRLQLQJWKH
23
HQGSRLQW Y2 WRWKHQHZSRLQW Y3 7KHWKLUGFRPHVIURPMRLQLQJWKHRWKHUHQGSRLQW Y1 WR
Y3 <RXPLJKWVD\WKDWHDFKHQGSRLQWLQ S 1 LVVWUHWFKHGRXWLQWRDOLQHVHJPHQWLQ S 2
7KHWHWUDKHGURQ S 3 LQ)LJ KDVIRXUWULDQJXODUIDFHV 2QHRIWKHVHLVWKHRULJLQDO
)LJXUHJLYHVDJHRPHWULFLQWHUSUHWDWLRQWRWKHEDU\FHQWULFFRRUGLQDWHVLQ([DPSOH
VKRZLQJWKHWULDQJOH "DEF DQGWKUHHVPDOOWULDQJOHV "SEF "DSF DQG "DES 7KH
DUHDVRIWKHVPDOOWULDQJOHVDUHSURSRUWLRQDOWRWKHEDU\FHQWULFFRRUGLQDWHVRI S ,QIDFW
1
DUHD."SEF/ D ! DUHD."DEF/
10
4
c1 ; : : : ; ck de la representacin p D c1 v1 C C ck vk son las coordenadas baricntricas de p. Las coorde516
Appendix B Convex Sets
nadas baricntricas tienen interpretaciones fsicasy geomtricas.
Fueron
en 1827 por
1 ! DUHD
3 ."
DEF
9 originalmente
5 definidas
DUHD
DSF
."
/
D
/
1
August F. Mbius, Alemania 1790-1868. Si a D 7 , b3 D 0 , c D 3 y p D 3 , el punto p en el centro
de la figura 6.12 tiene por coordenadas baricntricas
tres nmeros no negativos ma , mb y mc tales que p es el
x2
5 (sin masa)x2y las masas m , m y m en los vrtices
centro de masa de un sistema que consiste
tringulo
a
c
b
! DUHD."DEF/
DUHDen
DES
."le
/D
12
correspondientes. Las masas estn unvocamente determinadas
al requerir que su suma sea 1.
a
x1
nonconvex
b
2.C
C + Drea = rrea(abc )
'*(63& S D r D C s E C t F +HUH r D 14
5
12
1
4,
sD
1
3
yt D
5
12 :
7KHIRUPXODVLQ)LJ DUHYHULHGLQ([HUFLVHV
$QDORJRXVHTXDOLWLHVIRU
D
Proposicin
6.1 El conjunto
de soluciones de un sistema
de
ecuacionesClineales, C D fx W Ax
C
YROXPHVRIWHWUDKHGURQVKROGIRUWKHFDVHZKHQ
S
LVDSRLQWLQVLGHDWHWUDKHGURQLQ
b; A 2
R3D
mn
m
R
; b 2ZLWKYHUWLFHV
R g, es un conjunto
afn.
D E F DQG
G
0 efecto, supongamos que 0x1 ; x2 2 C , es decir, Ax1 D b, Ax2 D b. Entonces, para
D EMOSTRACIN . En
cualquier , 6HH([HUFLVHLQ6HFWLRQ ,QDVWURQRP\
KRZHYHU EDU\FHQWULFFRRUGLQDWHVXVXDOO\UHIHUWRRUGLQDU\
Fig. B.2 Properties of convex sets
R3 FRRUGLQDWHVRISRLQWVLQZKDWLVQRZFDOOHGWKH ,QWHUQDWLRQDO&HOHVWLDO5HIHUHQFH6\VWHP D&DUWHVLDQ
A . x1 C .1 / x2 / D Ax1 C .1 / Ax2
b convex
C .1 hull
/ b
Definition. Let S be a subset of E nD
. The
of S, denoted co(S), is
the set which is the intersection of D
all b;
convex sets containing S. The closed
convex hull of S is defined as the closure of co(S).
lo que prueba que la combinacin afn x1 C .1 /x2 est tambin en el conjunto C . El subespacio asociado
conclude
this section
a cone and a convex cone. A
con el conjunto afn CFinally,
en estewe
caso
es el espacio
nulobydedefining
A, ker.A/.
convex cone is a special kind of convex set that arises quite frequently.
Un conjunto C Rn se dice un cono si para todo x 2 C , x 2 C , para todo escalar 2 R tal que 0.
0
Not convex
0
Convex
Not convex
x D .1
entonces un elementoTeorema
de conv (X)
puede escribir como
i xi , para R(I)
+ con
deseCarathodory
para iI
conos
P
P
i = 1. Anlogamente, un elemento de cone
n (X) se puede poner como i i xi ,
x1
iI
Figure 2.4 The pie slice shows all points of the form 1 x1 + 2 x2 , where
1 , 2 0. The apex of the slice (which corresponds to 1 = 2 = 0) is at
0; its edges (which correspond to 1 = 0 or 2 = 0) pass through the points
x1 and x2 .
i=1
n
Definicin 2.8. Llamamos
envoltura
afn de
al menor
subconjunto
combinacin
cnica
de,Xa loRsumo,
n elementos
de X.afn
que contiene a X, es decir,
\
a f f (X) :=
A Rn : A es afn y X A .
Figure 2.5 The conic hulls (shown shaded) of the two sets of figure 2.3.
k
6.10
X Figura
6.14: Envoltura
cnica de los dos conjuntos de la figura
i
i
x
:
k
N,
x
X,
R,
i
=
1,
2,
.
.
.
,
k
;
=
1
a f f (X) =
i
i
i
Figure 2.5 The conic hulls (shown shaded) of the two sets of figure 2.3.
i=1
R y xi< a1yloy;conv
existen
xX. Igualmente,
X y 0, i = 1, n. . . , n + 1,
la envoltura
cnica
es
de 2,
x D .1 (X),
z con 0 <de,
) n
x 0,
Dpuntos
yiD=
z: 1,
Teorema
2.1. Si
X de
RnXyn+1
x combinacin
cone
existen
x n+1X zsumo,
y2 CP
, n, i si X R y
i nC1
Pi , i Ddebido
P
n existen xi y
x 2 conv.X/,
1; : :a:Carathodory
; n C 1, tales
que
Dn iy x 2i D1
i/,xexisten
elemento de la
P
i . Esxi decir,
Dos
que
si Xx
R
cone.X
y i , i Dcualquier
1; : :elemento
: ; n,
i resultados
i xii cualquier
=decir,
1,
tales
que dicen
xde =
cnica
Es
decir,
cualquier
de la envoltura
Pn importantes
i x . de
talesenvoltura
que x =convexa
i xque
.decon
Es
elemento
de
la
envoltura
cnica
de
X
es
tales
xX
D decir,
.
Es
cualquier
elemento
la
envoltura
X
es
combinacin
cnica
de,
a
lo
sumo,
iD1
esi=1
combinacinn convexa de, a loi=1sumo, n C 1 puntos de X. La
figura 6.15 ilustra estos
PnC1
i=1 n puntos de X. Igualmente,
si X R y x 2 conv.X /, existen xi y i , i D 1; : : : ; n C 1, tales que x D iD1 i xi .
resultados. cnica
convexa
dedeXlanenvoltura
eselementos
combinacin
asumo,
lo sumo,
Es decir,de,
cualquier
convexa de X
convexade,
de, a lo
n C 1 puntosnde+
X. 1
La puntos de X.
combinacin
a loelemento
sumo,
dees combinacin
X.convexa
figura 8.9 ilustra estos resultados.
n
i
Teorema 2.2. Si cX2 R.UnRhiperplano
yx
existen
Xlineal
y eni R. 0, i = 1, . . . , n + 1,
es elconv
conjunto(X),
de soluciones
de unax
ecuacin
n ; a 0, al conjunto H D fx 2 Rn W aT x D cg,
Llamaremos
hiperplano
H
de
vector
caracterstico
a.n2 R
n+1
n+1
Un hiperplano en RP
es un espacio afn o una variedad lineal
1/-dimensional.
P
i
tales
que
x=
decir,
cualquier
de
la envoltura
concon ci2=R.1,Un
Dado
un hiperplano
H , conjunto
axi x
D .c,Es
llamaremos
semiespacios
cerrados
de ecuacin
borde H a los conjuntos
H
hiperplano
es el
de
soluciones
de unaelemento
lineal
en DRnx.2 R W a x c
n
i=1
2 Rn W1/-dimensional.
a T x > c y H D x 2 Rn W a T x < c .
y H en
DR
xn
2R
aTi=1
xespacio
c , y semiespacios
de borde H alineal
H C D x.n
hiperplano
esn W un
afn o abiertos
una variedad
Los semiespacios de borde H son convexos; la unin de HC y H es el espacio Rn .
Dado un hiperplano
, ase representa
x D c,
llamaremos
semiespacios
cerrados de borde
H a los conjuntos HC D
T
En la
figuraH
8.10
el hiperplano
x1 C 4x
2 D 11, su vector caracterstico a D 1; 4 y los semiespacios
n
T
n
T
HC y H .
x 2 R W a x c y H DT x 2 R W a x c , y semiespacios abiertos de borde H a HV C D x 2 Rn W aT x > c
En un hiperplano a x D c, la constante c determina el desplazamiento del hiperplano del origen. Un hiperplano se
n Wexpresar
puede
fx W semiespacios
aT .x x0 / D 0g, donde
x0 es cualquier
punto
del hiperplanola
(aTunin
x0 D c).de
EsaH
ltima
y HV D x 2 R
aT x de<lacforma
. Los
de borde
H son
convexos;
C y H es el espacio
T
?
?
expresin
se
puede
trabajar
un
poco
ms
pues
fx
W
a
.x
x
/
D
0g
D
x
C
a
,
donde
a
es
el
complemento ortogonal
0
0
n
T
R . En la figurade 6.16
se fvrepresenta
hiperplano
x1 Cconsiste
4x2 en
Dun11,
su vector
a, es decir
W aT v D 0g. Loelque
lleva a que un hiperplano
desplazamiento
x0 caracterstico
ms todos los vectoresa D 1; 4 y los
T
ortogonales
al
vector
caracterstico
a:
el
conjunto
de
soluciones
de
a
x
D
c:
x
C
ker.a/,
recordemos.
0
semiespacios HC y H .
Un politopo es un conjunto formado por la interseccin de un nmero finito de semiespacios cerrados. Un politopo
cnico es un conjunto formado por la interseccin de un nmero finito de semiespacios cerrados que pasan por un punto.
a
Un poliedro es un politopo acotado y no vaco. Es fcil comprobar
que la interseccin de conjuntos convexos es convexa
y que, por lo tanto, los politopos y los poliedros son conjuntos convexos. Si un politopo P es un poliedro, cualquier punto
se puede expresar como combinacin convexa de sus puntos extremos.
H+
21
Fig.
B.5 Polytopes
Figura 6.17: Diversos
politopos:
el del centro, un poliedro
D EMOSTRACINDefinition.
. Sea
A set which can be expressed as the intersection of a finite number
DtoKnf
yk2 polytope.
> 0:
of closed half spaces is said
be kx
a convex
x2C
see that
sets es
obtained
family
of solutions
Existe un x0 en laWe
frontera
de Cconvex
tal quepolytopes
kx0 yk2areDthe
. Esto
as puesaslathe
funcin
continua
f .x/ D kx yk2
to
a
set
of
linear
inequalities
of
the
form
alcanza su mnimo en cualquier conjunto cerrado y acotado por lo que slo es necesario considerar x en la
interseccin de la adherencia de C y la bola abierta de
centro y y radio 2.
a1T x b1
A continuacin probaremos que a D x0 y satisface
las condiciones del enunciado del teorema. En efecto,
a2T x b2
para cualquier , 0 1, al ser C un conjunto convexo,
el punto x0 C .x x0 / 2 C , por lo que
2 kx
kx0 C .x x0 / yk
yk22 :
0
2
amT x bm
Desarrollando,
2.x0 y/T .x x0 / C 2 kx x0 k22 0:
since each individual inequality defines a half space and
the solution family is
Considerandothe
esta
expresin cuando
! 0C,
se tiene
que ai = 0, the resulting set can still, as
intersection
of thesehalf
spaces.
(If some
the reader may verify, be expressed as the intersection of a finite number of half
.x0 y/T .x x0 / 0
spaces.)
Several polytopes are illustrated in Fig. B.5. We note that a polytope may be
o que
empty, bounded, or unbounded. The case of a nonempty bounded polytope is of
special interest and
we distinguish this case by the following.
.x0 y/T x .x0 y/T x0 D .x0 y/T y C .x0 y/T .x0 y/
Definition. A nonempty bounded
polytope
D .x
y/Tisy called
C 2 : a polyhedron.
0
Haciendo a D x0
B.3
La interpretacin geomtrica de este teorema es que dado un conjunto convexo C y un punto y exterior a la
HYPERPLANES
adherencia de C existe un hiperplano que contiene a y, sin tocar a C , estando C en uno de sus semiespacios
two theorems
in caracterstico
this section are
perhaps
the most
importanthiperplano
results related
to de C e y.
abiertos. Ese The
hiperplano,
de vector
a en
el teorema,
se denomina
separador
Geometrically,
thedisjuntos,
first states
point entonces
outside aun
convex
a b tales que
Si C y D convexity.
son dos conjuntos
convexos
C that
\ Dgiven
D ;,aexiste
a 0set,
y un
T
T
hyperplane
can
be
passed
through
the
point
that
does
not
touch
the
convex
set.
The
a x b, para todo x 2 C , y a x b, para todo x 2 D. Dicho de otra manera, la funcin aT x b es no
second, which is a limiting case of the first, states that given a boundary point of a
convex set, there is a hyperplane that contains the boundary point and contains the
26
convex set on one side of it.
E2
aT x b
aT x b
E1
E3
a xb
a xb
positiva en C y no negativa en D. El hiperplano x W aT x D b es un hiperplano separador de los conjuntos
C y D como se ve en la figura 6.18.
D
Existen bastantes principios de dualidad que se usan en laC asignatura, en especial en la teora y tcnicas de
optimizacin, que relacionan un problema en trminos de vectores en un espacio vectorial con otro expresado
a
en trminos de subespacios en ese espacio. En gran cantidad de esos principios est presente la relacin que se
ilustra en la figura 6.19. La distancia ms corta de un punto a un conjunto convexo es igual al mximo de las
Figure 2.19 The hyperplane
{x Hiperplano
| aT x = b} separates
disjoint
Figura 8.14:
separadorthe
entre
C y Dconvex sets
C and D. The affine function aT x b is nonpositive on C and nonnegative
on D.
Figura 8.15: Distancia ms corta de un punto a un conjunto convexo en trminos de la de a hiperplanos separadores
Figura 6.19: Distancia ms corta de un punto a un conjunto convexo en trminos de la de a hiperplanos sepaen ese espacio. En gran cantidad de esos principios est presente la relacin que se ilustra en la figura 8.15. La distancia
radores
ms corta de un punto a un conjunto convexo es igual al mximo de las distancias desde el punto a los hiperplanos que
separan el conjunto convexo del punto. El problema original de minimizacin sobre vectores se convierte en otro de
maximizacin sobre hiperplanos.
distancias desde el punto a los hiperplanos que separan el conjunto convexo del punto. El problema original de
Teorema 8.3 Sea C un conjunto convexo e y un punto frontera de C . Existe un hiperplano que contiene a y y a C en
minimizacin sobre vectores
convierte
uno de susse
semiespacios
cerrados.en otro de maximizacin sobre hiperplanos.
D EMOSTRACIN . Sea fy g una sucesin de puntos exteriores a la adherencia de C . Sea fa g la sucesin de puntos
Teorema 6.3 Sea C un
conjunto
unelpunto
frontera
deanterior,
C . Existe
normalizados,
ka kconvexo
D 1, obtenidaedey
aplicar
teorema anterior
a la sucesin
tales que, un hiperplano que contiene a y
y a C en uno de sus semiespacios cerrados.
.k/
.k/
.k/
a.k/
x2C
x:
.k/
.k/
.k/
k2H
.k/
k2H
x2C
De acuerdo con esta definicin, 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.
.k/
En la figura 8.16 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 estn
T
separados por el hiperplano x W a x D aT x0 . Geomtricamente quiere decir que el hiperplano x W aT x D aT x0 es
T
T
tangente al conjunto C en x0 y el semiespacio x W a x a x0 contiene a C .
Como fa.k/ g es una sucesin acotada, una subsucesin fa g, k 2 H, converger a un lmite a. Para este a se
tiene que, para cualquier x 2 C ,
T
T
24 lK
aT y D lKm a.k/ y .k/
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
algn punto frontera de C se denomina hiperplano de apoyo de C .
De acuerdo con esta definicin, 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.
T
En la figura 6.20 x W a x D aT x0 es el hiperplano de apoyo de C en el punto x0 : el punto x0 y el conjunto
C
separados por el hiperplano x W aT x D aT x0 . Geomtricamente
quiere decir
estn
que el hiperplano
T
x W a x D aT x0 es tangente al conjunto C en x0 y el semiespacio x W aT x aT x0 contiene a C .
27
%&'*/*5*0/
2.6
H ! SDual
es bidimensional
2.6.1
cones
H ! S es unidimensional
H
H ! S es de dimensin 0
is called the dual cone of K. As the name suggests, K is a cone, and isEHFDXVHWKH\KDYH
always
0RVWDSSOLFDWLRQVRISRO\WRSHVLQYROYHWKHYHUWLFHVLQVRPHZD\
convex, even when the original cone K is not (see exercise 2.31).
DVSHFLDOSURSHUW\WKDWLVLGHQWLHGLQWKHIROORZLQJGHQLWLRQ
Geometrically,
y K if and only if y is the normal of a hyperplane that
Lema 6.4 (Farkas) El sistema
de ecuaciones
supports K at the origin. This is illustrated in figure 2.22.
Ax
D b; of a xsubspace
0; V Rn (which is a cone) is
Example 2.22 Subspace.
The dual
/HW S EHDFRQYH[VHW
$ SRLQW
S LQcone
H[WUHPHSRLQW RI S LI S LV
ST LVFDOOHGDQ
% & ' * / .I
* 5/* 0 /
donde A 2 Rmn .
D EMOSTRACIN . El lema por Farkas Bolyai, Hungra 1775-1856 se puede reformular de la siguiente manera. Si existe un x 0 tal que Ax D b, no existe ningn y tal que y T A 0T y bT y > 0. Recprocamente,
si no existe ningn 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 solucin 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 solucin.
Supongamos ahora que el sistema (I) no tiene solucin. Esto quiere decir que b S D fv D Ax W x 0g;
es decir que b no pertenece al politopo cnico S . Observando la figura 6.22, 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 ms de 90 grados con cada uno de los vectores columna de A y de menos de 90
grados con11 b. Esto verifica que el sistema (II) tiene solucin.
11 El hiperplano separador del politopo cnico S de la figura debera casi tocar a ste a lo largo de a . El hiperplano de apoyo
5
correspondiente, s tocara a a5 .
28
473
Politopo c
onico S
a3
a2
474
a4
Captulo 8. Dualidad y an
alisis de sensibilidad
a1
a5
Semiespacio abierto {y : bT y > 0}
Hiperplano
a2
an
a1
a3
b
b
/S
Figura 8.2
Figura 6.22: Demostracin del lema de Farkas
Descripci
on geometrica de la existencia de un hiperplano separador
T
Cono {y : y A 0 }
El lema
de Farkas
es un
resultado importante
para el en
estudio
de sistemas
lineales de inecuaciones.
Su interEl par
(P)-(D)
se denomina
habitualmente,
la literatura
especializada,
forma simetrica
pretacin
geomtrica
es
la
siguiente:
de la dualidad.
onson
exponemos
dos teoremas
que
soluciones
par
1. Si aiA; yicontinuaci
D a1;
: : :de
; n,
los n vectores
columna de
la caracterizan
matriz A, quelas
se cumpla
que obptimas
D Ax,del
x
0, de
quiere
Captulo 8. Dualidad
an
lisis
sensibilidad
P
problemas primal-dual.
n
decir que el vector b D i D1 ai xi , xi 0; en otras palabras, que b pertenece al politopo cnico generado
Figuraun8.3
porTeorema
los vectores
columna
de A. En la figurade6.23,
a la izquierda,
se
muestra
ejemplo
donde
el sistema
(I)
8.3
(Complementariedad
Holguras)
Sean
x
e
y
soluciones
factibles
del
El sistema (I) del lema de Farkas
no tiene
soluci
on.par
Lade
tiene (II)
programas primal-dual en forma simetrica
(P)-(D) de (8.8). Las condiciones necesarias y
bT yrespectivos
> 0}
Semiespacio
abierto {y
sucientes para que
sean o
ptimos
de :sus
problemas son:
a2
(cT y T A)x = 0
a2
(8.9)
an
a1
a3
y T (Ax b) = 0.
a1
an
(8.10)
Cono {y : y T A 0 T }
Figura 8.4
Figura
8.3
El sistema
(II)nodel
lema
de Farkas
noDerecha:
tiene soluci
on. La (II)
tiene
Figura 6.23: Izquierda: El sistema (I) del lema
de Farkas
tiene
solucin;
si (II).
El sistema
no(I)
El sistema
(I)
del
lema
de
Farkas
no
tiene
soluci
o
n.
La
tiene
(II)
tiene solucin; la tiene (I)
no tiene solucin:
el vector b no pertenece al cono generado por a1 , a2 , a3 y an . La interseccin del cono
a2
29
an
a1
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 > 0g, no es el conjunto vaco: el
sistema (II) tiene solucin, pues b y cualquier y en el cono que define la zona sombreada forma un ngulo
menor de 90 y, por lo tanto, bT y > 0.
2. El sistema (II) no tiene solucin si la interseccin del cono fy W y T A 0T g y el semiespacio abierto
fy W bT y > 0g es el conjunto vaco. En la figura 6.23 a la derecha se muestra un ejemplo donde el sistema
(II) no tiene solucin. 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 .
7 Funciones
Recordemos que una funcin es un caso particular de aplicacin donde los conjuntos origen e imagen son
conjuntos de nmeros.
Una funcin f W Rn ! R se dice continua en x si para toda sucesin fx .k/ g que converge a x (expresado
.k/
x ! x), se cumple que f .x .k/ / ! f .x/. De forma equivalente, f se dice continua en x si dado un " > 0,
existe un > 0 tal que
ky xk < H) kf .y/ f .x/k < " :
Una funcin f W R ! R tiene como derivada la funcin
f 0 .x/ D
df .x/
f .x C h/
D lKm
dx
h
h!0
f .x/
supuesto ese lmite existe. Una funcin f que es derivable en un punto x D a es continua en a.
Una funcin f W R ! R se dice satisface la condicin de Lipschitz con constante
en un conjunto X , si
para todo x e y pertenecientes a X se cumple que
jf .x/
f .y/j jx
yj:
Una funcin que satisface la condicin de Lipschitz en un conjunto X se dice continua
-Lipschitz en ese X,
designndose f 2 Lip
.X /.
Dada una norma vectorial kk en Rn y otra matricial kk en Rmn , m; n > 0, una funcin g W Rn ! Rmn se
dice satisface la condicin 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 funcin g que satisface la condicin de Lipschitz en D se dice continua
-Lipschitz en ese D, designndose
g 2 Lip
.D/.
Un resultado muy interesante referido a funciones continuas es el teorema de Weierstrass, que dice que una
funcin continua definida en un conjunto compacto S tiene un punto donde alcanza un mnimo en S. Es decir,
existe un x 2 S tal que para todo x 2 S, f .x/ f .x /.
Un conjunto de funciones f1 ; f2 ; : : : ; fm de Rn en R se puede considerar como una funcin vectorial
f D f1 ; f2 ; : : : ; fm T :
Esta funcin asigna a todo vector x 2 Rn otro vector f .x/ D f1 .x/; f2 .x/; : : : ; fm .x/T de Rm . Tal funcin
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 algn conjunto abierto de Rn , se
dice f 2 C . Si adems cada funcin 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 .
Si f W Rn ! R y f 2 C 1 , se define el vector gradiente de f como el vector
@f .x/ @f .x/
@f .x/ T
rf .x/ D
;
;:::;
:
@x1
@x2
@xn
30
Si f 2 C 2 , es posible definir m Hessianas F1 .x/; F2 .x/; : : : ; Fm .x/ para cada una de las f1 ; : : : ; fm .
Una funcin f W Rn ! Rm es afn si es la suma de una funcin lineal y una constante; es decir, tiene la
forma f .x/ D Ax C b, donde A 2 Rmn y b 2 Rm .
Teorema 7.1 Teorema de Taylor Si f W Rn ! R y f 2 C 1 en una regin que contiene el segmento
x1 ; x2 , es decir puntos x1 C .1 /x2 ; 0 1, existe un , 0 1, tal que
f .x2 / D f .x1 / C r T f x1 C .1 /x2 .x2 x1 /:
2
Adems, si f 2 C , existe un ; 0 1, tal que
f .x2 / D f .x1 / C r T f .x1 /.x2
1
x1 / C .x2
2
x1 /T F x1 C .1
/x2 .x2
x1 / ;
f .k/ .x0 /
x
k
x0
3
C
Las aproximaciones por este teorema para una funcin concreta, sen.x/, se pueden ver en la figura 7.24.
Una funcin f W Rn ! R se dice convexa (figura 7.25) 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 funcin afn, 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 funcin afn, la imagen inversa f 1 .S / D fx W f .x/ 2 S g tambin es
convexa.
Teorema 7.2 Teorema del valor intermedio Si f W R ! R es una funcin continua en el intervalo a; b,
toma todos los valores entre f .a/ y f .b/. Ms concretamente, si y es un nmero entre f .a/ y f .b/, existe
un nmero c dentro de a; b, es decir, tal que a c b, en el que f .c/ D y.
31
193
Figura 7.24: Funcin sen.x/ y, en x D 0, las aproximaciones por Taylor de primer orden, de orden 3, 5, 7, 9,
11 y 13
y = f(x)
convex
(a)
20 | CHAPTER 0 Fundamentals
f (c)
f (c)
y
x
convex
(b)
f
a c
b
(b)
(a)
32
| CHAPTER 0 Fundamentals
f (c)
f (c)
a c
b
(b)
(a)
b
(c)
Figure 0.1 Three important theorems from calculus. There exist numbers c between
b such
y, for
any given
y between
f (a) en
and
(b), by Theorem
Teorema 7.4 Teorema adeand
Rolle
Si f that:
W R (a)
! fR(c)es=una
funcin
continua
y derivable
el fintervalo
a; b y
0
0.4,
the
Intermediate
Value
Theorem
(b)
the
instantaneous
slope
of
f
at
c
equals
suponemos que f .a/ D f .b/, existe entonces un nmero c, entre a y b, tal que f .c/ D 0. G ENERALIZA CIN Si f W R ! R es (f
continua
y derivable
veces en0.6,
a; the
b yMean
la derivada
orden n(c)existe
en el abierto
(b) f (a))/(b
a) nby 1
Theorem
Value de
Theorem
the vertically
shaded
.a; b/, y existen n intervalos
a1
<
b1
a2
<
b2
:
:
:
an
<
bn
en
a;
b,
tales
que
f
.ak/
D
f
.bk/
para
region is equal in area to the horizontally shaded region, by Theorem 0.9, the Mean
todo k D 1 : : : n, existe Value
un nmero
c enfor
.a;Integrals,
b/ tal queshown
la derivada
ordencase
n de g(x)
f en=c1.es cero.
Theorem
in thede
special
THEOREM 0.4
EXAMPLE 0.7
(Intermediate Value Theorem) Let f be a continuous function on the interval [a, b]. Then
f realizes every value between f (a) and f (b). More precisely, if y is a number between
f (a) and f (b), then there exists a number c with a c b such that f (c) = y.
Show that f (x) = x 2 3 on the interval [1, 3] must take on the values 0 and 1.
Because f (1) = 2 and f (3) = 6, all values
0 and
Teorema 7.5 Primer teorema del valor medio de las integrales Si f W R ! R es una funcin continua en el
intervalo a; b, existe entonces al menos un nmero c entre a y b tal que
THEOREM 0.5
a
[a, b]. Then therea exists a number c between
a and b such that f (c) = (f (b) f (a))/
Teorema 7.7 Si (b
f W
R a).
! R es una funcin continua en el intervalo a; b y a c b, entonces
EXAMPLE 0.8
Z x
d
f .t / dt D f .x/
c
Apply the Mean Valuedx
Theorem
to f (x) = x 2 3 on the interval [1, 3].
para todo x en a; b.
The content of the theorem is that because f (1) = 2 and f (3) = 6, there must
exist a number c in the interval (1, 3) satisfying f (c) = (6 (2))/(3 1) = 4. It is easy
to nd such a c. Since f (x) = 2x, the correct c = 2.
33 case of the Mean Value Theorem.
The next statement is a special
THEOREM 0.7
(Rolles Theorem) Let f be a continuously differentiable function on the interval [a, b],
and assume that f (a) = f (b). Then there exists a number c between a and b such that
f(c)
f (c)
b
(b)
(c)
Figura 7.29: Teorema del valor medio de las integrales
0.1 Three important theorems from calculus. There exist numbers c between
b such that: (a) f (c) = y, for any given y between f (a) and f (b), by Theorem
e IntermediateTeorema
Value Theorem
(b) the instantaneous
slope
of yf v.x/
at c funciones
equals reales continuas con derivadas continuas.
7.8 Integracin
por partes Sean
u.x/
f (a))/(b a)Entonces
by Theorem 0.6, the Mean ZValue Theorem (c) the verticallyZ shaded
0
is equal in area to the horizontally shaded u
region,
by dx
Theorem
0.9, the Mean
.x/v.x/
D u.x/v.x/
u.x/v 0 .x/ dx:
Theorem for Integrals, shown in the special case g(x) = 1.
te Value Theorem)
Let mnimo
f be a continuous function on the interval [a, b]. Then
punto
very value between f (a) and f (b). More precisely, if y is a number between
Se trata de definir condiciones necesarias y suficientes para determinar si dada f W ! R, 2 Rn , un
(b), then there exists
a number c with a c b such that f (c) = y.
punto x cumple
minimizar f .x/:
x
(x) =
x2
x
2 [1,
se dice
que es
un on
mnimo
local de0laand
funcin
3Un
onpunto
the interval
3] must
take
the values
1. f W ! R si existe un > 0 tal que
f .x/ f .x / para todo x 2 a una distancia menor que de x . Es decir, para todo x 2 tal que
/ para between
cause f (1) jx
= 2
(3)f .x/
= 6,> all
2x and
0 and
x and
j < .f Si
f .xvalues
x 6,, aincluding
una
menor que de x , se dice que x
distancia
todo x 2 ,
aken on by es
f .un
For
example,
settingdec f= en .
3, note that f (c) = f ( 3) = 0, and
mnimo
local estricto
(2) = 1.
n
Teorema 7.9 Condiciones necesarias de primer orden Sea un subconjunto de R y una funcin f W !
R, f 2 C 1 . Si x en un mnimo local de f en , se cumple que rf .x / D 0.
Teorema
7.11
Condiciones
de segundo
orden Sea un subconjunto de Rn y una funcin f W
r words, limits
may be
brought
insidesuficientes
continuous
functions.
there existsTeorema
a number
a and cualquier
b such that
f (c)
= (f
mnimo
f (a))/global de f . Si adems f es
7.12c between
Si f es convexa,
mnimo
local
x (b)
es un
derivable, cualquier mnimo local x es un mnimo global de f .
e content of the theorem is that because f (1) = 2 and f (3) = 6, there must
ber c in the interval (1, 3) satisfying f (c) = (6 (2))/(3 1) = 4. It is easy
a c. Since f (x) = 2x, the correct c = 2.
(b) fi .x0 / D 0; i D 1; 2; : : : ; m:
3
@f1 .x0 /
@f1 .x0 /
6 @x1
@x: m 7
6
7
::
::
::
(c) La matriz Jacobiana de la funcin vectorial, rf .x0 / D 6
7, es regular.
:
:
4 @fm .x0 /
@fm .x0 / 5
@x1
@xm
T
Entonces existe un entorno de xO 0 D x0mC1 ; x0mC2 ; : : : ; x0n
2 Rn m tal que para xO
T
O i D 1; 2; : : : ; m tales que:
xmC1 ; xmC2 ; : : : ; xn en ese entorno existen funciones i .x/,
2
(i) i 2 C p .
i D 1; 2; : : : ; m:
sujeta a
ci .x/ D 0;
cj .x/ 0;
i 2 E;
j 2 I:
Las funcin 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
12 Sus
orgenes estn asociados a Newton, Leibnitz y Lagrange, pero fue formulado por Cauchy
35
son de igualdad y de desigualdad, respectivamente. El conjunto de puntos que satisfacen todas las condiciones
se denomina regin 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 8.1 Condiciones de ptimo de primer orden de Karush-Kuhn-Tucker Supngase que x es un
punto regular y mnimo local del problema general de programacin matemtica 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;
Ax D b
x 0:
estn, por consiguiente, en P . Adems, dado que x D 21 .y 0 Cy 00 /, x no puede ser un punto extremo de P . Como
N son linealmente dependientes.
consecuencia de esto, si x es un punto extremo, las columnas de la matriz A
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 estn en P , A.x y 0 / D
Ax Ay 0 D b b D 0. Adems, dado que y 1 son estrictamente positivos, los ltimos n p coeficientes
N en
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
consecuencia, son linealmente dependientes. De aqu que, si las columnas de A son linealmente independientes,
x es un punto extremo.
Cualquier direccin de un politopo se puede expresar como combinacin lineal no negativa de las direcciones
extremas del politopo. Si P es un poliedro, obviamente, no tiene direcciones.
Teorema 8.3 Teorema de la representacin 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
i 2I
i D 1, i 0, y d, o es una
D
donde D 00 =. 0
Como 0 < < 1,
X
0i
C .1
i 2I
/
X
i 2I
00i vi C d 00
/i vi C d 0 C .1
00
/d 00 ;
00 /.
0i 0
Ad 0
y
Ad 00
00i 0;
para todo i 2 I;
D 0;
d0
0
d 00
0;
X
i 2I
0i D
X
i 2I
00i D 1;
/i 0
para todo i 2 I;
d D d 0 C .1
/d 00 0
00
Ad D 0;
X
i 2I
i D 1;
x4
x3
x
x5
x2
y
x1
Figura 8.30: Representacin de un punto de un politopo (poliedro) como combinacin convexa de puntos
extremos
xD
X
i 2I
i vi C dN donde
i 2I
X
i 2I
i D 1; i 0 y c T dN 0:
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
i D c T vmi n :
c x
i c vi c vmi n
i 2I
i 2I
Es decir, el mnimo de
cT x
8.1 Dualidad
La Dualidad juega un papel destacado en Programacin Lineal y no lineal. Sirve para caracterizar y verificar
la optimalidad de un proceso iterativo y las condiciones en que se da el ptimo, para analizar la sensibilidad
de una solucin a la variacin de los parmetros del problema, para estudiar la velocidad de convergencia de
determinados algoritmos de optimizacin que usan su formulacin y contemplar diversos aspectos geomtricos
que permiten interpretar mejor lo que se est haciendo en la bsqueda de una solucin.
Las ideas y formulacin que exponemos a continuacin siguen enteramente lo que expone al respecto el libro
de Luenberger citado en el apartado de bibliografa. Se basa en una forma elegante y global de contemplar la
dualidad en trminos de conjuntos e hiperplanos que tocan esos conjuntos. Evidencia el papel de los multiplicadores de Lagrange como definidores de hiperplanos que pueden ser considerados los duales de puntos en un
38
436
espacio vectorial. Esta forma terica de enfrentarse a la dualidad proporciona una simetra entre los problemas
primal y dual, la cual pude considerarse perfecta si los problemas son convexos. Si no lo son, la imperfeccin
la plasma elconsidered
denominado
de to
dualidad
dual,space.
que tiene
interpretacin
muy sencilla
asgap
dual
points oinbrecha
a vector
Theuna
theory
provides geomtrica
a symmetry
en este contexto
y mucha
importancia
en los algoritmos
programacin
lineal
y no lineal
se estudian en
between
primal
and dual problems
and thisdesymmetry
can be
considered
as que
perfect
el curso en for
la asignatura.
convex problems. For non-convex problems the imperfection is made clear
En el problema
dual lasgap
incgnitas
por resolver
los multiplicadores
de Lagrange
deltheory,
problema primal,
by the duality
which has
a simpleson
geometric
interpretation.
The global
que miden las
sensibilidades
del
primal
a
variaciones
en
los
coeficientes
que
determinan
las
condiciones
de este
which is presented in this section, serves as useful background when later we
problema yspecialize
determinantocomo
unasduality
penalizaciones
que se
introducen
su funcin
por no
a local
theory that
can
be used en
even
withoutobjetivo
convexity
andutilizar adecuadamentewhich
los recursos
que to
fijan
condiciones.ofLathe
funcin
de Lagrange
incorpora
as toda la informacin
is central
theesas
understanding
convergence
of dual
algorithms.
disponible del problema.
As a counterpoint to Section 11.9 where equality constraints were considered
La teorabefore
globalinequality
que se expone
en este here
apndice
es la first
baseconsider
sobre la aque
construir
dualidades
de tipo local
constraints,
we shall
problem
with
inequality
de los diversos
problemas
lineales
y
no
lineales
que
se
vern
en
los
distintos
temas
del
curso,
incluso
sin la
constraints. In particular, consider the problem
existencia de convexidad, o en algoritmos especializados para problemas de Programacin Lineal como los de
minimize fx
(1)
punto interior, dual del Smplex, etc.
De momento vamos a referirnos a problemas
de
programacin
matemtica
como
subject to gx 0
minimizar fx.x/
x2Rn
(1)
a fg.x/
functions
andg 0are defined on . The function g
E n is a convex set, and the sujeta
x 2 ; convex, but we assume that there
is p-dimensional. The problem is not necessarily
point. Recall
thefunciones,
primal function
associated
with
definedgfor
donde 2isRan feasible
es un conjunto
convexothat
y las
la escalar
f W Rn !
R y(1)
la is
vectorial
W Rp ! Rn ,
p
as Este problema no es necesariamente convexo pero se asume que tiene al menos un punto
zE
estn definidas
en .
factible. Esta notacin es perfectamente compatible con otras que se utilizan sin ms que adoptar la convencin
z = inf fx gx z x
(2)
de signos adecuada.
La funcin
primalby
asociada
(1) se
define,
para
un zof2 inequality
Rp , como constraint take on arbitrary
defined
lettinga the
right
hand
side
values. It is understood!.z/
thatD(2)
on the
= z gx z, for some
Knfisffdefined
.x/ W g.x/
z;set
x 2Dg:
(2)
x
.
definen las
Se llega a ella dejando
que el
de la derecha
de la
inecuacin
que
pueda tomar
If problem
(1)trmino
has a solution
x with
value
f = fx
, then f iscondiciones
the point on
valores arbitrarios.
Se entiende
(2)where
est definida
en el function
conjunto passes
D D fzthrough
W g.x/
para algunos
the vertical
axis in que
E p+1
the primal
thez; axis.
If (1) x 2 g.
con
un valor de la funcin objetivo igual a f D f .x /, entonces
Si el problema
(1)
tiene
una
solucin
x
does not have a solution, then f = inffx gx 0 x
is the intersection
f es el punto
de eje vertical de RpC1 donde la funcin primal se cruza con ese eje. Si (1) no tiene solucin
point.
ese punto de cruce
f D Kprinciple
nf ff .x/ Wisg.x/
0;from
x 2 g.
Theesduality
derived
consideration of all hyperplanes that lie
El principio
de
dualidad
se
deduce
de
la
consideracin
todos
que quedan
por debajo de la
below the primal function. As illustrated in de
Fig.
14.1los
thehiperplanos
intercept with
the vertical
indican se cruzan con el eje vertical
funcin primal.
Como
la figura 8.31,
todos los
quef se
.
axis of
suchilustra
a hyperplanes
lies below
(orhiperplanos
at) the value
por debajo de f , o en f .
w(z)
f*
Hiperplano
debajo de w(z)
(3)
En general, puede que no sea finita dentro del ortante positivo, RC , pero la regin donde est definida es
convexa.
Proposicin 8.7 La funcin dual es cncava en la regin donde es finita.
D EMOSTRACIN . Supngase que 1 y 2 estn en la regin finita y sea 0 1. Entonces
.1 C .1
/2 /T g.x/ W x 2 g
/f .x2 / C .1
D .1 / C .1
/.2 /:
/T2 g.x2 / W x2 2 g
Se define D sup f./ W 0g, suponindose que el supremo se extiende a toda la regin donde es
finita.
Proposicin 8.8 Forma dbil de dualidad. f .
D EMOSTRACIN . Para todo 0 se tiene que
./ D Knf ff .x/ C T g.x/ W x 2 g
gap de dualidad
hiperplano ms alto
z
fx
(4)
w (z)
f * =
hiperplano ptimo
Figura 8.33: Expresin grfica del teorema de la dualidad fuerte . No hay gap de dualidad.
El teorema de la dualidad fuerte lo referimos al problema general
minimizar f .x/
x2Rn
sujeta a
h.x/ D 0
g.x/ 0
x 2 ;
(4)
(5)
sujeta a
h.x/ D 0
(6)
g.x/ 0
x 2 ;
es
La funcin de Lagrange dual es
Th.x/
L.x; ; / D f .x/
Tg.x/:
def
Si las funciones h.x/ y g.x/ son convexas, con 0, la funcin de Lagrange es convexa y define una cota
inferior del valor ptimo de la funcin objetivo de (6). El problema dual de ste es
maximizar q.; /
sujeta a
0;
8.1.3 Ejemplo
En el caso de un problema de Programacin Lineal en forma estndar
minimizar c T x
x2Rn
sujeta a
Ax D b
x 0;
T .Ax b/ T x, o
T
L.x; ; / D T b C c A T x:
AT
T o
x D
T b si c
1 si c
AT
AT
D0
0
Si c A T 0 el nfimo es claramente 1, por lo que hay que excluir del problema aquellos para los
que se den esos casos. De acuerdo con ello, el problema dual queda
maximizar T b
s. a
AT
D 0;
0:
43
1
X
k k ;
kD1
MESH
u D
n
X
k k :
kD1
La nica diferencia con la expresin similar anterior es el lmite superior del sumatorio.
El siguiente paso, con un cierto truco, es hacer que nuestra funcin de prueba sea una funcin de base. Tambin nos deberemos asegurar de que las funciones base no se superpongan. Esto asegura que son ortogonales
como pretendamos antes y nos permite aproximar ms fcilmente la solucin en el dominio de inters. Estas
funciones de base suelen ser polinomios (especialmente polinomios lineales o cuadrticos).
Despus de lo que parece se hacer el problema ms difcil agregando toda esta abstraccin y matemticas
para al final llegar a lo que hemos llegado, qu hemos conseguido realmente? Pues hemos convertido el
problema en una ecuacin matricial sencilla para as poderlo resolver por medio del lgebra matricial que
conocemos. Si el problema fuese lineal, simplemente tendremos que resolver la ecuacin algebraica Ax D b
a cuyo estudio tanto esfuerzo dedicaremos en el curso.
Para un problema relativamente simple com el de la ecuacin de Poisson Simon Denis Poisson, Francia,
1781-1840
@2 u
@2 u
u.x; y/ D 2 C 2 D f .x; y/
@x
@y
la matriz A es muy fcil de calcular y se denomina la matriz de rigidez en homenaje a los principios de las
tcnicas de elementos finitos en problemas de elasticidad. Esta matriz muy dispersa (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 ecuacin original. El vector solucin
44
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 resolucin del mtodo de los elementos finitos consta de las siguientes
fases u operaciones:
Conversin del problema original de dimensin infinita, mediante las propiedades de los espacios de
Hilbert, en uno similar prximo en un espacio vectorial de dimensin finita de cara a estudiar la existencia
y unicidad de la solucin.
Creacin de una formulacin dbil del problema original con la que podamos usar las herramientas de
producto interior y medida.
Discretizacin del dominio de definicin del problema y eleccin de una base de funciones que sean
ortogonales entre si.
Conversin de los productos interiores entre funciones de base en sistemas lineales de ecuaciones.
Resolucin de ese sistema lineal resultante mediante tcnicas de matrices dispersas.
Las ventajas de este mtodo frente a otros son muchas en bastantes mbitos de la ingeniera, la ciencia y
la investigacin por lo que su extensin y precisin, as como los algoritmos que emplea, cada vez son ms
amplios, ambiciosos y potentes.
Para concretar con detalle
los pasos
Lesson
1 del mtodo, vamos a desarrollar el estudio de un problema concreto.
model problem
Theu.x;
y/ C cu.x; y/ D f .x; y/
dentro
de
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
u.x;
y/ problem
D g0 .x;
en inlaforthcoming
frontera lessons
D we
intricacies
of the
itself.y/
For some of the exercises and
will complicate things a little bit.
@n u.x;
y/ D g1 .x;
y/
en la frontera read
: it
In this
initial section there
is going to be a lot of new stuff. Take your time toN
carefully, because we will be using this material during the entire course.
The fsico
physical
domain
La geometra del 1.1
entorno
esquemtico
en el que se desenvolver ser tan simple como la de la
The first thing we have to describe is the geometry (the physical setting of the problem).
figura 9.35, o unaYougeneralizacin
de ella. En este caso concreto es un subconjunto abierto 2 Rd
have a sketch of it in Figure 1.1.
Figure 1.1:
The domain
and the Dirichlet
Neumann boundaries
Figura 9.35:
Dominio
de definicin
yandcondiciones
de contorno.
We are thus given a polygon in the plane R2 . We call this polygon . Its boundary
is a polgono
closed polygonal
. (There
much difference
if we suppose
there is
representado por un
en curve
el plano
R2is, not
pegado
o adherido
en that
su frontera
a la curva que define
, dividida sta en dos partes: la que define D , que materializan unas condiciones de contorno de
3
Dirichlet por Johann Peter Gustav Lejeune Dirichlet, Alemania 1805-1859 y la N , con condiciones
de contorno de Neumann por Karl Gottfried Neumann, Alemania 1832-1925. En trminos fsicos,
las condiciones de Dirichlet determinan unos posibles desplazamientos fsicos de esa frontera, mientras
que las de Neumann unas posibles tensiones mximas o mnimas.
La ecuacin en derivadas parciales propiamente dicha, la primera en la formulacin, se denomina habitualmente ecuacin difusin-reaccin. El trmino que representa la difusin es u y el de reaccin cu,
cuando c > 0. La constante c es no negativa; en principio puede adoptar los valores 0 1.
45
La funcin f .x; y/ est definida en y se puede considerar como una densidad superficial de fuerzas.
Las dos funciones que expresan las condiciones de contorno, g0 .x; y/ y g1 .x; y/, estn definidas en dos
partes diferentes de la frontera. La funcin g0 deber ser continua; la g1 puede ser discontinua.
El smbolo @n designa la derivada normal hacia afuera, es decir
@n u D ru n;
donde n es el vector unidad hacia afuera en puntos de la frontera y ru es el gradiente de u. Supondremos que existe.
Figura 9.36: Regin o volumen V acotada por la superficie o frontera S D @V con la normal a la superficie n.
vectorial con derivadas parciales de primer orden continuas definido en un entorno de V , se cumple que
.r F/ d V D
.F n/ dS:
V
c rf d V C
f .r c/ d V D
.cf / d S;
Rn
46
Como no sabemos el valor de @n u en D imponemos que la funcin 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 :
La expresin 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. Todava no hemos hecho uso de la condicin de Dirichlet en la frontera,
u D g0 en D .
La formulacin dbil del problema queda as:
ru rv C c
uv D
fv C
En esta formulacin la condicin de Dirichlet desplazamientos dados se impone como una condicin
aparte que ha de cumplir la funcin de prueba v. Se denomina condicin esencial de borde o frontera. La
condicin de Neumann fuerzas normales aparece como una condicin de frontera natural dentro de la
formulacin del problema.
Como indicbamos anteriormente, la funcin de prueba v chequea la ecuacin que satisface u. Juega un
papel de funcin de ponderacin para comprobar el comportamiento medio de la ecuacin. 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.
9.1.2 Espacios de trabajo
Hasta ahora hemos dado por hecho que el contexto matemtico donde se desenvuelve este problema y las
formulaciones que estamos utilizando cumplen una serie de requisitos matemticos que permiten su existencia
y solucin. Vamos a formalizarlo un poco. El primer espacio que estamos utilizando13 es el espacio vectorial
de las funciones al cuadrado integrables en , es decir,
Z
2
2
L ./ D f W ! R jf j < 1 :
Lp ./ D f .x/ W kf kLp ./ < 1 :
El segundo es el espacio de Sobolev por Sergi Lvvich Sobolv, Rusia 1908-1989. Es une espacio
vectorial de funciones dotado de una norma que es combinacin de normas Lp de la funcin y de sus derivadas
hasta un orden dado. Formalmente para dos dimensiones es
@u @u
1
2
2
H ./ D u 2 L ./
;
2 L ./ :
@x1 @x2
Las derivadas de este espacio se entienden en un sentido dbil15 que hagan que el espacio sea completo16 y por
13 Ya
14 Que
tinuas.
47
Z
jruj2 C
juj2
1=2
Z
@u
D
@x
2 Z
@u
@x
!1=2
2 Z
C
juj2
;
denominada en ingeniera norma de energa. Las funciones que usan esta forma finita son funciones de energa
finita. Intuitivamente, un espacio de Sobolev es un espacio de funciones con derivadas de orden suficiente
para un dominio de aplicacin determinado y equipado con una norma que mida adecuadamente tamao y
regularidad en las funciones. Un subespacio de inters de ese espacio H 1 ./ es
H1D ./ D v 2 H 1 ./ jv D 0 en D :
Establecido todo este aparato matemtico, la formulacin dbil del problema original queda as:
ru rv C c
uv D
fv C
w 2 H 1 ./jw D g0 en D . Que g0 pertenezca a H 1=2 .D / significa que no se busca la solucin en el
conjunto vaco.
0.4iii)Piecewise
Polynomial Spaces The Finite Element
v(0) = 0.
Method
We
will see later that S V . For each i = 1, .., n dene i by the require-
Vh
i
cj = 0. To see that it spans S, consider the following:
Para simplificar se supone que la frontera o borde, , del dominio es una curva poligonal. Si no lo es,
(0.4.1)
Lemma.
{iGiven
: 1 Lai vtriangularizacin
n}Cis0 ([0,
a basis
for
primero se
le aproxima
a un polgono.
en dividir en
tringulos
(0.4.3)
Denition.
1]),consiste
the S.
interpolant
vIunconjunto
S of vde is
n
Th D K1determined
; : : : ; Km que no
se
solapen
y
que
solo
compartan
lados
completos,
o
lo
que
es
lo
mismo,
que
ningn
by vI : = i=1 v(xi )i .
vrtice de(0.4.2)
ningn tringulo
caiga
en
algn
lado
de
otro.
Se
cumplir
que
Remark. {i } is called a nodal basis for S, and {v(xi )} are the nodal
the nodes.)
values
of
a function
(The[
points
{xi } are called
Clearly, the
set {i }v.spans
the
D S if K
D following
K1 [ K2 is[ true.
Km :
n
K2Thindependent since
Proof. The set {i } is linearly
i=1 ci i (xj ) = 0 implies
(0.4.4)
Lemma.
v
v
=
v
.
it spans
S, Iconsider
the following:
cj =V0.deTo
vj es lineal para todo K 2 T ; v D 0 en ,
El subespacio
H 1see
./that
es ahora
V D funciones
v 2 C./
h
donde vjK
2 P1 vserefiere
la funcin
restringida
Recordemos
P1endpoints,
es el espaciohence
de polinomios
on veach
[x0i1 ,axK.
zero atque
the
Proof.
vI isa linear
i ] and
(0.4.3)
Denition.
Given
v
C
([0,
1]),
the
interpolant
v
S
of
v is
I
lineales del
tipo be
a0 C
a1 x1 C a2 x2zero.
, donde los coeficientes a0 , a1 y a2 seran los parmetros
de cada
must
identically
tringulo.
n
v(x
)
.
determined
by vI : =la funcin
Los parmetros
que definirn
v
2
V
sern
los
valores
v.N
/
de
v
en
los
nodos
N
;
i
D
1; : : : ; M
i
i
i
i
h
i=1
de Th excluyendo
en los
pues vapproximation
D 0 en . Los valores
de los
de la triangularizacin
We will aquellos
now prove
thebordes
following
theorem
fornodos
the interpolant.
del dominio
son losthe
grados
que
determinan
un
elemento
de
V
.
Una
numeracin
de esos nodos
Clearly,
set de
{libertad
}
spans
S
if
the
following
is
true.
h
i
Los nodos
se indican mediante el vector xi , donde
para nuestro dominio de trabajo sera la de la figura 9.40.
Theorem.
Let h = max1in xi xi1 . Then
i D 1; : : :(0.4.5)
; M , el nmero
de nodos.
(0.4.4)
Lemma.
v S v = vI .
Si se fija un nodo del dominio y se le u
asocia
1 y 0 atodos los dems, existe una funcin nica
uel
I valor
E Chu
i 2 Vh , Proof.
funcin de
base
tal on
que each [xi1 , xi ] and zero at the endpoints, hence
linear
v
vI deisnodo,
for
all
u
V
,
where
C
of h and u.
(
must be identically zero.is independent
1 si i D j
i .xj / D ij D
; i; j D 1; : : : ; M:
0 si i j
We will now prove the following approximation theorem for the interpolant.
Figura 9.39:
Triangularizacin
delofdominio
.
Figure
1.5: A triangulation
49x 2
K
14
10
5
14
10
5
15
11
6
2
15
11
16
12
7
18
16
12
18
1
1
17
17
4
4
13
13
99
Figura 9.40:
Numeracin
los nodos
del dominio .
Figure
1.7: Globalde
numbering
of nodes.
Figure 1.7: Global numbering of nodes.
i
xi
Figure 1.8: The graph of a nodal basis function: it looks like a camping tent.
Figura
9.41:
Grfica
funciones
base deit los
nodos
dominio
.
Figure 1.8:
The
graph de
of la
a nodal
basis de
function:
looks
like adel
camping
tent.
restricted to each triangle it is a polynomial (or smooth) function. Then
uh pues
H it()
uh(or
is continuous.
each triangle
a polynomial
smooth)
function.
Then es cero. El soporte por
vrtices, i es cerorestricted
en todo eltotringulo
elis valor
de la funcin
en todos
sus vrtices
tanto de i la envoltura del conjunto de1 puntos donde i no es cero es la misma que la unin de todos los
There is certain intuition
to be
why this result
true. If you take a derivative of
uh H
()had on
uh isiscontinuous.
tringulos que comparten
xi smooth
como vrtices.
Verobtain
figuraDirac
9.42.
a piecewise
function, you
distributions along the lines where there
1
are discontinuities. Dirac distributions are not functions and it does not make sense to
Theresee
is ifcertain
to be had
on why
this result
true.
If you takethea function
derivative of
the areintuition
square-integrable
or not.
Therefore,
if thereisare
discontinuities,
a piecewise
smooth
function,
you
obtain
Dirac
distributions
along
the
lines
where there
fails to have a square-integrable gradient.
are discontinuities. Dirac distributions are not functions and it does not make sense to
see if the are square-integrable or not. Therefore, if there are discontinuities, the function
nodes gradient.
fails to2.4
haveDirichlet
a square-integrable
So far we have taken into account the discrete version of the domain but not the partition
of its boundary into Dirichlet and Neumann sides. We first need some terminology. A
edge is nodes
an edge of a triangle that lies on D . Similarly a Neumann edge is an
2.4 Dirichlet
Dirichlet
edge of a triangle that is contained in N . The vertices of the Dirichlet edges are called
So farDirichlet
we have taken
into
account
the arise
discrete
version of
thethe
domain
but
notNeumann
the partition
nodes.
The
doubt may
in transitions
from
Dirichlet
to the
of its part
boundary
into Dirichlet
Neumann
some node.
terminology. A
of the boundary.
If a nodeand
belongs
to bothsides.
N andWe
Dfirst
, it isneed
a Dirichlet
Dirichlet edge
is an9.42:
edge of
a triangle
thatfunciones
Dbasis
.deSimilarly
Neumann
Figure
1.9: de
Supports
oflies
two on
nodal
functions
Figura
Soporte
dos
base deladominio
. edge is an
edge of a triangle that is contained in N . 15
The vertices of the Dirichlet edges are called
Dirichlet
nodes.
may arise
in transitions
Una funcin
cualquiera
uh 2The
Vh doubt
se representa
entonces
comofrom the Dirichlet to the Neumann
part of the boundary. If a node belongs to both N and D , it is a Dirichlet node.
uh D
M
X
j D1
M
X
M
X
uh .xj /j :
j D1
1
1 to the
domain as depicted in Figure 1.1
Figure 1.10:H
Dirichlet
nodes corresponding
D ./ D v 2 H ./ v D 0; en D ;
In truth, in parallel to what happens with how the Dirichlet and Neumann boundary
conditions
are treated in the weak formulation,
we will inherit two different discrete
VhD D Vh \ H1D ./ D vk 2 Vh vh D 0; en D :
entities:
Dirichlet
and son Dirichlet Dir y cules no, independientes, Ind. En el
La idea es llevar constancia
de qunodes,
nodos
Neumann edges.
caso del ejemplo que tratamos,
Let us now recall the space
on D }.
on D }.
uj D uh .xj /
uj j :
j 2Ind
g1 i ; 8i 2 Ind:
Para ello:
Hemos convertido el espacio de Sobolev en el que buscamos la funcin solucin en uno de dimensin
finita, Vh . Es decir, hemos reducido el problema a calcular uh en los vrtices de una triangularizacin
los nodos y a un nmero finito de incgnitas.
Hemos sustituido las condiciones tipo Dirichlet fijando condiciones a los nodos Dirichlet, lo que reduce
an ms el nmero de incgnitas: a los nodos independientes.
Hemos reducido el espacio de prueba de H1D ./ a un subespacio discreto VhD , lo que reduce un
nmero infinito de pruebas en la formulacin dbil a un nmero finito de ecuaciones lineales.
Para obtener finalmente el sistema de ecuaciones lineales escribimos uh en trminos de las funciones de base
de los nodos:
X
X
uh D
uj j C
uj j :
j 2Ind
j 2Dir
Luego sustituimos en esta expresin las condiciones de Dirichlet discretizadas:
X
X
uj j C
g0 .xj /j :
uh D
j 2Ind
j 2Dir
j 2Ind
uj rj C
g0 .xj /rj
j 2Dir
y reordenando llegamos a
i Z
j 2Ind
rj ri C c
j j uj D
f i C
i Z
j 2Dir
51
g1 i
rj ri C c
j j g0 .xj /:
Este es un sistema de ecuaciones lineales con un nmero de ecuaciones igual al nmero de incgnitas (# Ind D
dim VhD ), que son precisamente los valores de la funcin uh en los nodos libres de la triangularizacin 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
M ij D
j i :
Ambas
La de masas es definida positiva. La de rigideces semidefinida positiva. Si hacemos
R son simtricas.
R
bi D f i C N g1 i , i 2 Ind, se llega a
!
W ij C cM ij uj D bi
j 2Ind
W ij C cM ij g0 .xj /;
j 2Dir
i 2 Ind:
Estas matrices poseen patrones de dispersidad muy pronunciados pues slo interactan nodos que estn unidos
entre si por lados de tringulos. Ello las hacen propicias para ordenaciones en torno a la diagonal principal.
Su manipulacin 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.
Function
operator
Output: function
value y (dependent
variable)
y=y(x)=f(x)
(a)
FUNCIONES
Input 1: argument x
(independent
variable)
(b)
Functional
operator
Output: functional
value J (a scalar)
y=f(x)
J(y)=J(x,y)
Input 1: argument x
(independent
variable)
(c)
Input 2: function
y=y(x) (primary
dependent variable)
Input 2: function
y=y(x) (primary
dependent variable)
Functional
operator
y=f(x)
Input 3: derivative
of primary
dependent variable
Output: functional
value J (a scalar)
J(y)=J(x,y,y')
y'=dy/dx
FUNCIONALES
Figure 1.1. Block diagrams that illustrate key differences between functions and functionals in one dimension.
(a) de
An ordinary
function
y(x) = fla
(x)diferencia
of the independent
variable en
x; (b)una
a functional
J [y] = J (x,
y) of una funcin ordinaria
Figura 9.43: Diagrama
bloques
quey =ilustra
formal
dimensin
entre
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.
y un funcional. (a) Una funcin ordinaria y D y.x/ D f .x/ de una variable independiente x; (b) Un funcional
J.y/ D J.x; y/ 1.2.3.
de la Basic
funcin
y.x/; Un funcional J.y/ D J.x; y; y 0 / de la funcin y.x/ y su derivada
1D Functional
y 0 D dy=dx.
To keep things simple, in this Chapter we focus on one specific type of functional, called the basic
one-dimensional functional. It has the form (1.2), under additional restrictions:
b =
J [y]
F x, y(x), y (x) ,
0
x = [a, b],
a b,
y(a) = ya ,
x D a; b; a b;
y(b) = yb .
(1.3)
a
In words: the function y = f (x) is defined over the segment x [a, b], a b, of the real line.
Given x, y is assumed real and unique; that is, 52
y(x) is single-valued. Furthermore y(x) possesses
the appropriate smoothness so that y (x), as well as the integral in (1.3), exist. That function must
satisfy the stated end conditions at x = a and x = b, at which ya = y(a) and yb = y(b) are given.3
Those boundary conditions will be called essential.
The basicfunctional (1.3) is historically interesting since it belongs to a class of problems that
;;;;;
;;;;;
;;;;;
;;;;;
(a)
y=y(x)
y(a)=y^a
(b)
Arclength L
x=a
Constant
gravity g
Straight line
Area A
(c)
Cycloid
y(b)=y^
x=b
Parabola
x=b
x=a
x=b
x=a
Rb
Figura 9.44:
Ejemplos
clsicos defunctionals
funcionales:
debajo de
una(a)curva,
Figure
1.2. unidimensional
Canonical one-dimensional
used(a)
in rea
the examples
of q
?.
area under
a y.x/ dx; (b)
R b 1C.y 0 .x//2
Rbp
curve; (b) 0curve2arclength, (c) brachistochrone.
dx.
Longitud de un arco de curva, a 1 C .y .x// dx; (c) Curva braquistcrona, a
2gy
Example
1.1general,
. Area Under
Curve.
The areapueden
subtented
by y(x)
the real La
axis
is given
Por regla
no todas
las funciones
encajar
en unand
funcional.
figura
9.45by
ilustra algunos tipos
(1.4)
x1
Example
1.2una
. Curve
Length.
Thecon
length
of the continuas
curve y(x)hasta
between
x orden
[a, b]respecto
and satisfying
end
donde
F es
funcin
conocida
derivadas
segundo
a x, y the
y y 0given
. El valor
conditions
is
given
by
de I depender de la trayectoria de la funcin entre
1 ; y1 / y .x2 ; y2 /; es decir, depender de la funcin y.x/
b .x
que se escoja.
1 + (y )2 d x.
(1.5)
L=
Si se introduce a modo de prueba la familia de atrayectorias
in which the + sign of the square root is taken. See Figure 1.2(b). (If this L is uniquely defined by this integral
y.x/
Q
D y.x/ C ".x/;
the curve is said to be rectifiable.) This functional has the form illustrated in Figure 1.1(c), except that there
is no explicit
y; only
on its slope.
donde
" es undependence
parmetro yon
.x/
una funcin
derivable a la que se le pide que .x / D .x / D 0, resulta que
1
se pueden generar una infinidad de trayectorias para una .x/ dada sin ms que variar el parmetro ". Todas
Example 1.3. Brachistochrone. This is illustrated in Figure 1.2(c). A point-mass body is released at A at zero
17 Por ejemplo el de encontrar la curva de longitud ms corta que una dos puntos.
time.
It is constrained to move under the influence of constant gravity g acting along y and without friction,
along a curve y = y(x) that ends at B, which is lower than A. (The mass is pictured as a rolling disk in the
figure, but it is actually a sliding point no rotation53
is involved.) The curve y(x) is called the trajectory or
path. The traversal time taken by mass to go from A to B is given by the functional
b
TAB =
1 + (y )2
d x.
(1.6)
(a)
(b)
1
1
2
A
y(a)=y^a
y(b)=y^b
y(a)=y^a
y(b)=y^b
3
4
5
x=b
x=a
x=b
x=a
Figure
1.3. Visualization
of function
admissibityenconcept
as regards(a)
(1.3):
(a) sample
admissible
Figura
9.45: Muestrario
de funciones
admisibles
un funcional:
Funciones
continuas,
C 1functions
, con un slo
y(x) over that satisfy: C 1 continuity (i.e., unique tangent at each point), and essential BC, and single valuedness;
valor para cada x y que cumplen las condiciones de contorno; (b) Inadmisibles: La 1 y la 3 tienen derivadas
(b) sample inadmissible functions that violate one or more of the foregoing conditions: curves 1 and 3 have
discontinuas;
la 2curve
es discontinua
y admite
varios
para and
un x;
la 45 admite
valores
para
corners,
2 is discontinuous,
curve
4 isvalores
multivalued,
curve
violates varios
the right
essential
BC.un x y la 5
no cumple las condiciones de contorno.
function
just a number. A function that is permissible as input to a functional is called
ellas pasanrather
por .xthan
1 ; y1 / y .x2 ; y2 /. Consideremos
Z x2
admissible. The set of suchZ functions
is the admissible
class with respect to the functional under
x2
0
Q
I D
F .x; y;
Q guidelines
yQ / dx D mayF be
.x; offered.
y C "; y 0 C "0 / dx
consideration. The following
general
x1
x1
Function Smoothness. AdmissibleQ functions are usually chosen to have the minimal smoothness for
Es evidente que los funcionales I y I alcanzarn el mismo valor extremo (valor mximo o mnimo) cuando
which
the integration over the problem domain makes sense. For example, if the functional has the
" D 0. Desarrollando, se tiene que
to ask
form (1.2) the presence of y means that it is reasonable
!
! that y(x) have integrable derivatives.
2 IQ
d IQ
"2 Requiring y(x) C 1 over the
d
For this to happen, it is sufficient
that
y
(x)
be
piecewise
continuous.
IQ D .IQ/"D0 C
C
"C
d"
d "2
2
domain would be overkill but safe.
"D0
"D0
End
Prescribed
such asque
y(a) = ya , and y(b) = yb in (1.3), must be satisfied
Para Conditions.
que IQ sea extremo
cuando end
" D values,
0 es necesario
!
a priori. As previously noted, this kind of specification
is called an essential boundary condition.
d IQ
D 0:
Single Valuedness. This requirement is optional.
It is often stipulated a priori to simplify the
d"
"D0
formulation and analysis. But it must be abandoned for certain problems. For example, those that
Es decir que
Z 4x2
involved closed curves or spirals.
@F d yQ
@F d yQ 0
C
dx
D 0:
x2
@F
@F 0
dx D 0
0
@y
x1 @y of a Function
1.2.5. Variation and Extrema
x1
x1
d
dx
@F
@y 0
dx:
Cuando
D 0ofenvariation
los extremos
la primera expresin
del miembro
de la calculus
derecha de
ecuacin
seextension
hace cero.
The
concept
is fundamental
since it gives
variational
itsesta
name.
It is an
Sustituyendo lo que queda en la anterior se tiene que
of the well known concept of differential
calculus. This is briefly reviewed below.
in standard
Z
x2
@F
@F
dx D
0: y(x) possesses unique derivative
Consider an ordinary 1D function y(x), where y and x0 arereal
and
@y
dx @y
x1
y (x) at each x in the problem domain x [a, b]. Change a given x bytto x + x. The function
Cualquiera que sea la funcin .x/ entre los puntos extremos, segn la frmula de Euler-Lagrange se tiene que
4
dx @y
@y
18
que es la condicin que debe cumplir y.x/ para ser un
mximo o un mnimo: un extremo. Si en esta expresin
se sustituye F por su expresin F .x; y; y 0 / resulta una ecuacin diferencial de segundo orden en y.x/.
54
(x)(x)dxSea
= 0.
Lema 9.1 Lema fundamental del Clculo deM
Variaciones
M.x/ una funcin continua definida en el
a
intervalo a x b. Supongamos que para cualquier funcin continua .x/ se tiene que
Then
Z b
M (x) =M.x/.x/
0 for alldxxD 0:[a, b].
a
Proof Suppose M (x) is not zero at some point x0 (a, b). Suppose for deniteness that M (x0 ) > 0. Then by continuity there is a > 0 such that
D EMOSTRACIN . Supongamos que M.x/ no es cero en algn punto x0 2 .a; b/. Concretamente que M.x0 / >
0. Por la continuidad de M.x/, existe un > 0 tal que
M (x0 )
M (x0 )
< M (x) M (x0 ) <
for |x x0 | < with x [a, b].
2 M.x0 /
2 0/
M.x
< M.x/
M.x0 / <
para jx
x0 j < con x 2 a; b:
Thus, M (x) > M (x0 )/2 in that interval. Now choose (x) such that
0
(x) = >00
0 > 0
.x/ D
0
if a x a1 = max(x0 , a)
1 D
0 b]; a/
ifsi a|xxx0 |a<
, mK
xax.x
[a,
x00j <
ifsi jx
min(x
+ ;
,xb)2=a;b1b x b.
si mKn.x0 C ; b/ D b1 x b:
M( x0 )
M( x0)
2
.x/
x 0
a
FIGURE 15.17
Se tiene entonces que b
0=
0D
x 0 +
M (x)(x)dx =
a
Z b
a
x0
b1
M.x/.x/ dx D
M (x)(x)dx >
Za1b1
ai
b1
1
M (x0 )
2
Z
1
M.x/.x/ dx > M.x0 /
2
(x)dx > 0,
ba1
1
.x/ dx > 0;
a1
55
Corolario 9.3 Supngase 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. Supngase adems que
Z
M.x/ 0 .x/ dx D 0
M.x/ 00 .x/ dx D 0
10 Bibliografa
B ERTSEKAS , D.P. 2003. Convex Analysis and Optimization. Athena Scientific.
B OYD , S. Y VANDENBERGHE , L. 2004. Convex Optimization. Cambridge University Press.
F UENTE , J.L. 1998. Tcnicas de clculo para sistemas de ecuaciones, programacin lineal y programacin entera. Segunda edicin. Revert.
DE LA
G ANDER , M.J. Y WANNER , G. 2012. From Euler, Ritz, and Galerkin to Modern Computing. SIAM Review,
Vol. 54, No. 4. Society for Industrial and Applied Mathematics.
H ALMOS , P.R. 1974. Finite-Dimensional Vector Spaces. Springer Verlag.
K UHN , H.W. Y T UCKER , A.W. 1951. Nonlinear Programming. Proceedings of the Second Berkeley Symposium on Mathematical Statistics and Probability. University of California Press. Verlag.
L AY, D.C. 2012. lgebra lineal y sus aplicaciones. Cuarta edicin. Pearson educacin.
L UENBERGER , D.G. 1969. Optimization by Vector Space Methods. John Wiley and Sons.
L UENBERGER , D.G. Y Y E , Y. 2009. Linear and Nonlinear Programming. Springer Verlag.
N OCEDAL , J. Y W RIGHT, S.J. 2006. Numerical Optimization. Springer Verlag.
R IAZA , R. Y LVAREZ , M. 1996. Clculo infinitesimal. Vol. I. Sociedad de Amigos de la Escuela Tcnica
Superior de Ingenieros Industriales de Madrid.
R IAZA , R. Y LVAREZ , M. 1997. Clculo infinitesimal. Vol. II. Sociedad de Amigos de la Escuela Tcnica
Superior de Ingenieros Industriales de Madrid.
56
57
Fundamentos
de la
1/118
2/118
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
Introduccin
3/118
3x 2 C 5x
1;
4/118
Supongamos que toda la informacin y los datos que se necesitan para hacer
esta operacin estn adecuadamente guardados en el ordenador.
Cules deberan ser?
5/118
1
2
D2
1 4
2
C3
1 3
2
3
1 2
2
C 5 21
1 D 45 .
Es evidente que si esto hay que hacerlo muchas veces, el ahorro en tiempo de
esta segunda forma de proceder puede ser muy significativo, no?
6/118
1 C x 5 3x C 3x 2 C 2x 3
2
1Cx 5Cx
3 C 3x C 2x
1Cx 5Cx
3 C x 3 C 2x
1Cx 5Cx
1
2
3Cx 3Cx2
1
2
2; ms 3 D 4
1
2
4; ms
3D
. 1/; ms 5 D
1
2
92 ; ms
9
2
1 D 45 :
7/118
8/118
Con ellos, las cosas muy sencillas, sobre todo las que se repiten
indefinidamente, hay que hacerlas muy bien y eficazmente: ingeniera.
c1 C .x
r1/ c2 C .x
r2/ c3 C .x
r3/ c4 C .x
9/118
r4/.c5/
;
donde r1, r2, r3 y r4 son los que se conocen como puntos de base.
function y=Horner(d,c,x,b)
% Con regla de Horner se evala el polinomio de grado d,
%
definido en el vector c, en el punto x (puede ser vector).
%
Entrada: c(d+1), coeficientes del polinomio: c1, c2,...;
%
x, punto (vector) en el que se evala el polinomio;
%
b, puntos base, si es el caso.
%
Salida: y, valor del polinomio en x
if nargin<4, b=zeros(d,1); end
y=c(d+1);
for i=d:-1:1
y = y.*(x-b(i))+c(i);
end
end
10/118
11/118
History
(300 2BC)
Al-Khwarizmi
Un Euclid
algoritmo
es un conjunto
ordenado(783-850)
y finito de operaciones y reglas que
permite hallar la solucin de un problema, o realizar una actividad relativamente
compleja.
lgebra
Al-Khwarizmi (783-850)
'H:LNLSHGLDODHQFLFORSHGLDOLEUH
12/118
13/118
De origen indo-arbigo entre los siglos IV y VI, transmitido a Europa gracias a la Escuela de Kerala, India.
14/118
D 0; d1d2 dp e
donde: es la base de numeracin, 0 di 1; i D 1; : : : ; p ;
p el nmero de dgitos significativos, o longitud de mantisa (precisin);
e el exponente, L (underflow) e U (overflow).
15/118
Mquina
Precisin
Simple
IEEE st. 754-1985 normali. Doble
Extendida
Simple
Doble
IBM mainframe
Extendida
Simple
Cray (superordenador)
Doble
Calculadoras HP
2
2
2
16
16
16
2
2
10
p
24
53
64
6
14
28
48
96
12
L
U
126
127
1022 1023
16381 16384
64
63
64
63
64
63
8192 8191
16383 16384
499
499
16/118
Normalizacin
17/118
1/ p 1.U
L C 1/ C 1
18/118
3;5
2;5
1;5
0;5
0;5
1;5
2;5
D 0;510:
3;5
Desnormalizacin
19/118
Desnormalizacin
3;5
1;5
0;5
0;5
1;5
2;5
3;5
En de
el sistema
de juguete
anterior,elel vaco
vaco central
se podra
rellenar con
En el sistema
juguete
anterior,
central
se podra
rellenar con
elementos cuya mantisa no empieza por 1. Se podran aadir 3 ms a cada lado
elementos cuya
mantisa no empieza por 1.
del cero, siendo el ms pequeo positivo representable el
.0;01/2 2
2;5
D .0;125/10.
Se podran aadir
3 ms a cada lado del cero, siendo el ms pequeo positivo
La desnormalizacin ampla el rango de nmeros representables, aunque la
representable el .0;01/2 2 1 D .0;125/10.
19/133
10
20/118
b2b1b0;b 1b 2
C b 22
:
21/118
Para convertir cualquier nmero del sistema decimal al binario habra que hacer
lo siguiente:
1
0
1
0
1
1:
22/118
23/118
x D 0000;1011:
24/118
Restando
2
1 x D 10112 D 1110:
25/118
0
1
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
26/118
Por ejemplo,
>> format hex
>> 1
ans =
3ff0000000000000
>> 9.4
ans =
4022cccccccccccd
>> 1/0
ans =
7ff0000000000000
>> 0/0
ans =
fff8000000000000
27/118
52 51
Exponente
Mantisa
El exponente (11 bits) no tiene bit de signo. Para que sea siempre positivo tiene
un sesgo, el nmero 1023 D 210 1. Cualquier exponente es 0 Exp 2047.
1023/
28/118
Si Exp D 0, M D 0 y S D 0, el valor es 0.
1022
29/118
2
, su
0 01111111111 0000000000000000000000000000000000000000000000000000
una vez se aade 1023 al exponente. Entonces 0011111111112 D 3FF16.
nmero ms pequeo mayor que uno del sistema de numeracin de esa mquina. Si es el
52
IEEE estndar de precisin doble, maq
:
K D2
Volviendo a lo anterior,
30/118
0 10000000010 0010 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1100 1101 D 4022C C C C C C C C C C CD.
31/118
32/118
>> eps1=epsilon
eps1 =
2.220446049250313e-016
>> eps
% El de Matlab
eps =
2.220446049250313e-016
33/118
23 22
Exponente
Valores tpicos
Mantisa
Exp
Valor
11111111
00000100000000000000000
NaN
11111111
00100010001001010101010
NaN
11111111
00000000000000000000000
10000001
10100000000000000000000
10000000
00000000000000000000000
00000001
00000000000000000000000
00000000
10000000000000000000000
00000000
00000000000000000000001
00000000
00000000000000000000000
1
C1 2129 127 1;101 D 6; 5
C1 2128 127 1;0 D 2
C1 21 127 1;0 D 2 126
C1 2 126 0;1 D 2 127
C1 2 126 2 23 D 2 149
00000000
00000000000000000000000
10000001
10100000000000000000000
11111111
00000000000000000000000
-0
1 2129
1
127
1;101 D
6; 5
Precisin doble
53 bits
11 bits
64
1023
-1022
21023 10308
2 1022 10 308
21 53 10 16
M D0
M 0 desnormalizados
0 < Exp < 255 0 < Exp < 2047 Exp D 255.s/ 2047.d/
potencias de 2
1
nmeros ordinarios
NaN
34/118
35/118
D2
D .1
fmi ndesnor: D 2
1022
D 2;225073858507201 10
53
1022 52
308
324
36/118
37/118
38/118
39/118
Truncando, el nmero
40/118
Excepcin: 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.
51
23 D 0;4 2
48
41/118
En resumen
f l.9;4/ D 9;4 C 2
D 9;4 C 1
49
0;4 2
49
0;8 2
D 9;4 C 0;2 2
49
48
49
. Slo por
x j.
42/118
jx
x j
.
jxj
x j 1
maq
K :
jxj
2
43/118
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
44/118
Aritmtica en un ordenador
1023
1023
1023
1023
0;011
1;110
10;001 ) 10;001 21026 1023
D 1;0001 21027 1023 D 100012 D 1710
45/118
46/118
47/118
f l.a2b/j 1
maq
K :
ja2bj
2
48/118
C 1/
f lf l.10
1 D 0:
C f l.1
1/ D 10 3;
resultado exacto.
49/118
f l.x/ D 1 si 1 < x 1 C M .
>> a = 0.0;
for i = 1:10
a = a + 0.1;
end
a == 1
ans =
0
50/118
>> sin(pi)
ans =
1.2246e-016
>>
51/118
Recordemos el nmero 9; 4:
52/118
1
3
5
7
eyD
0,10476 101
0,38095 100
0,23809 100
0,21428 101
22=21
8=21
5=21
15=7
0,190 10
0,238 10
0,524 10
0,571 10
4
5
5
4
0,182 10
0,625 10
0,220 10
0,267 10
4
5
4
4
53/118
54/118
55/118
56/118
57/118
Como sabemos, para llevar a cabo sumas y multiplicaciones, los nmeros son
primeramente convertidos a un formato de exponente comn. Si el
desplazamiento que ello conlleva en uno de los dos supera los dgitos
significativos que la mquina permite, se puede perder toda la informacin de
ese nmero, o introducir nueva errnea en el resultado final.
>> format long
>> a=0.483525656234498
a =
0.483525656234498
>> b=0.483525534699123
b =
0.483525534699123
>> a-b
ans =
1.215353749861592e-007
58/118
59/118
c D 0;0000000001:
>> vpa(1-cos(0.000012),10)
ans =
.1e-9
>> vpa(1-cos(0.000012),30)
ans =
.71999999999136000000e-10
60/118
c
x2
10 10
D
1;44 10
10
D 0;6944 : : :
61/118
2 sen2.x=2/,
Example:
two en
expressions
Representacin
el entorno for
de 0the
desame function:
sin2 x 2
1 x/
cos2 x
1 sen.x=2/
.1 cos
y , g.x/ g(x)
D =
:
f .x/ fD(x) = 2
2
2
x
x
x
2
x=2
1.001
f
g
0.999
0.01
0.01
63/118
64/118
5;5
1
e 5;5
1
D 0;0040865:
1 C 5;5 C 15;125 C
65/118
66/118
10
se listan a continuacin.
>> expSeriesPlot(-10,5e-12)
Aproximacin en serie de exp(-10.000000)
k
1
2
3
.
.
47
48
49
50
51
52
53
trmino k
-1.000e+001
-1.000e+001
5.000e+001
suma
1.000e+000
-9.000e+000
4.100e+001
1.817e-012
-3.867e-013
8.055e-014
-1.644e-014
3.288e-015
-6.447e-016
1.240e-016
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
4.540e-005
1.803e-013
2.063e-013
1.258e-013
1.422e-013
1.389e-013
1.396e-013
1.394e-013
1.394e-013
67/118
10
10
10
10
Error absoluto
10
10
10
10
10
12
10
14
10
10
20
30
Numero de terminos
40
50
60
68/118
69/118
70/118
Si a D 1, b D
y
x2 D 0;000010000000001:
71/118
4/ D 1010:
c
:
ax1
72/118
73/118
Aproximacin de la derivada
f 0.x/ D lKm
f .x/
f .x C h/
h
f .x/
74/118
f 0.x/ D .f .x C h/
Esta expresin nos dice que el error de la aproximacin por diferencias finitas,
resultado del truncamiento de esa frmula a partir del tercer trmino, estar
acotado pues por 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 clculo de la funcin es , el
error de redondeo interno de evaluar la derivada por la frmula de diferencias
finitas estar acotado por 2= h.
5
75/118
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 :
76/118
10
10
10
10
total error
6
10
error
10
10
10
12
10
14
truncation error
10
rounding error
16
10
18
10
16
10
14
10
12
10
10
10
10
step size
10
10
10
10
77/118
f .x C h/
f .x
2h
h/
78/118
Como es sabido
1
X
kD1
2
D 1;64493406684822640606569166266 : : :
D
6
79/118
El truncamiento que llevara a cabo este algoritmo hara que el resultado slo se
aproximase al exacto en cuatro dgitos, cuando lo esperable, de acuerdo con el
sistema de numeracin de la mquina, seran 6 dgitos mnimo. Qu pasa?
Como ya hemos visto, la precisin sencilla utiliza una mantisa de 24 bits por lo
que 4096 2, frente a s 1;6, se sale de la ventana de valores que admite la
palabra de ordenador que ha de representar el resultado. Igual ocurrira con los
trminos sucesivos.
80/118
81/118
82/118
Polinomio de Wilkinson
1/.x
2/ .x
20/:
Si se expande
w.x/Dx 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:
>> n = 20;
>> syms x
>> 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
83/118
84/118
Veamos qu pasa.
function y=wilkpoly(x)
% Evalua en x el polinomio de Wilkinson
y=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);
y=y-10142299865511450*x^9+63030812099294896*x^8;
y=y-311333643161390640*x^7+1206647803780373360*x^6;
y=y-3599979517947607200*x^5+8037811822645051776*x^4;
y=y-12870931245150988800*x^3+ 13803759753640704000*x^2;
y=y-8752948036761600000*x+2432902008176640000;
end
>> fzero(@wilkpoly,16)
ans =
16.014680305804578
%
%
>> Z = sort(solve(P))
Z =
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
Sorprendente?
85/118
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
86/118
87/118
yi D
aij xj :
j D1
88/118
89/118
90/118
91/118
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
92/118
93/118
function y=VecMatF(x,A)
[m n] = size(A);
y = zeros(1,n);
for j=1:m
y = y+x(j)*A(j,:);
end
end
function y=VecMatC(x,A)
[m n] = size(A);
y = zeros(1,n);
for j=1:n
y(j) = y(j)+x*A(:,j);
end
end
94/118
cij D
aik bkj ;
kD1
95/118
i
j
j
cij
r
a'(i )
function C = MatMatInt(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for j=1:n
for i=1:m
C(i,j) = A(i,:)*B(:,j);
end
end
end
b( j )
cij
AB = C
c(j) = Ab(j)
96/118
c(j) and
column
Ahora
bien,bcada
columna
j devectors.
la matriz C es el resultado de multiplicar la
(j) are
matriz A por el vector columna j -simo de B.
i
j
=
r
A
function C = MatMatVec(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for j=1:n
C(:,j) = A*B(:,j);
end
end
b( j )
c( j )
En Matlab:
97/118
Segn esto,
3
2
3
u1
u1 v1 u1 v2 u1 vn
6 u2 7
6 u2 v1 u2 v2 u2 vn 7
7
6 :
uvT D 6
v
v
v
D
:
:: : :
:: 7
n
4 ::: 5 1 2
4 ::
:
:
: 5
um
um v1 um v2 um vn
r
i
C D AB D
En Matlab:
function C = MatMatExte(A,B)
[m r] = size(A);
[r n] = size(B);
C = zeros(m,n);
for k=1:r
C = C + A(:,k)*B(k,:);
end
end
98/118
99/118
100/118
D .A 11 C A 22/.B 11 C B 22/
D .A 21 C A 22/B 11
D A 11.B 12 B 22/
D A 22.B 21 B 11/
D .A 11 C A 12/B 22
D .A 21 A 11/.B 11 C B 12/
D .A 12 A 22/.B 21 C B 22/
C 11 D P 1 C P 4
C 12 D P 3 C P 5
C 21 D P 2 C P 4
C 22 D P 1 C P 3
P5 C P7
P 2 C P 6:
y luego
101/118
1/ sumas.
102/118
El orden de las matrices de menor tamao al que se puede aplicar esta idea es
nmi n D 16, pues con bloques ms reducidos el nmero de operaciones que se
realiza es mayor que el ordinario.
103/118
104/118
0.016; Strass:
0.109; Matlab:
0.000
0.172; Strass:
0.640; Matlab:
0.062
0.625; Strass:
2.891; Matlab:
0.188
0.750
105/118
ndice
Aritmtica en un ordenador
Evaluacin de errores
Normas
Vectoriales
Matriciales
106/118
Normas
Vectoriales
x 0 H) kxk > 0;
2 K y v 2 E;
ku
vk kuk
kvk:
1=
vk kuk
kvk:
kxk1 D
kxk2 D
n
X
i D1
jxi j
p
jx1 j2 C C jxn j2
108/118
n
X
i D1
jxi j
kxk1 D mK
ax
jx j
q 1i n i
kxk2 D
jx1j2 C C jxnj2
(norma eucldea en R n)
Cumplen, cualquiera que sea x 2 Kn, que kxk1 kxk2 kxk1 nkxk1.
x11 D
=
kxk
x22 D
=
kxk
2
i
2
i=1
|xijx
| ij
iD1
D1
q
2 2
|x11|j22+C|xjx
2 | 2=
jx
j
q
DxT xx T x
D1
x1
max
kxk
D1i2
mKax|xjx
=
i| i j D 1
1i2
xpp D
= jx
|x11|j
kxk
D1
a
1/p
p 1=p
+C|xjx
p
< p)
< 1/
2 | 2 j , (1 ;.1
pp
28/63
109/118
110/118
kf k1 D mKax jf .t /j :
t20;1
111/118
xT y
D
;
kxkkyk
1 1:
Vectores alineados:
Vectores opuestos:
x T y > 0;
ngulo obtuso:
x T y < 0;
D =2;
x T y D kxkkyk;
xT y D
kxkkyk;
D 0.
D 0;
D ;
D1
< =2;
> 0.
> =2;
< 0.
D
1.
Normas matriciales
112/118
Existen normas sobre el espacio R mn que no son normas matriciales pues no
cumplen la propiedad 4. As, si se define
kAk D mKax jaij j ;
1i;j n
h i
se satisfacen 1), 2) y 3); sin embargo, tomando A D B D 11 11 , es fcil ver
que kABk D
2 2
D 2 > kAk kBk D 1, por lo que no se cumple 4).
22
113/118
Definicin Una norma matricial k k sobre R mn se dice consistente con una
norma vectorial k k0 sobre R n 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. Recprocamente, a toda norma vectorial sobre R n se le
puede asociar una norma matricial consistente.
114/118
kAxk
sup
:
kxk
0x 2Rn
sup
0x 2Rn
"
#1=2 q
x A Ax
T
D
.A
A/ D max .A/
max
xT x
T
115/118
1j n
kAk1 D mKax
1i m
m
X
iD1
n
X
j D1
jaij j (columnas) y
jaij j (filas) :
116/118
Se define como
kAk2F
1i;j n
aij2 D traza A H A ;
Pn
i D1 ai i .
norma22
norma
norma1
norma
[1, 0]T
A1 = 4
[1, 0]T
A2 2,9208
A = 3
39/63
117/118
118/118
1/75
2/75
ndice
El problema
Mtodo de la biseccin
Velocidad de convergencia
Mtodo de Newton
3/75
El problema
En trminos matemticos,
dada f W R ! R; hallar un xN tal que f .x/
N D 0.
La funcin f se supone continua y derivable en algn conjunto abierto de R.
4/75
Mtodo de la Biseccin
Origen:
5/75
f (a)
f (x )
f (c)
f (x )
a
f (c)
b
f (b)
]
b
f (b)
6/75
Si el intervalo con que se empieza el proceso iterativo, a0; b0, contiene una
solucin r, usando como estimacin de sta c0 D .a0 C b0/=2, se tendr que
e0 D jr
En cualquier iteracin, ei D jr
c0 j
ci j
b0
bi ai
;
2
a0
2
i D 0; 1; 2; : : :
7/75
8/75
1
2
3
4
5
6
7
8
9
10
11
12
1,0000000000000
1,0000000000000
1,0000000000000
1,0625000000000
1,0937500000000
1,1093750000000
1,1093750000000
1,1132812500000
1,1132812500000
1,1132812500000
1,1137695312500
1,1140136718750
1,5000000000000
1,2500000000000
1,1250000000000
1,1250000000000
1,1250000000000
1,1250000000000
1,1171875000000
1,1171875000000
1,1152343750000
1,1142578125000
1,1142578125000
1,1142578125000
13
14
15
16
17
18
19
20
21
22
23
24
25
1,1141357421875
1,1141357421875
1,1141357421875
1,1141510009765
1,1141510009765
1,1141548156738
1,1141567230224
1,1141567230224
1.1141567230224
1.1141569614410
1.1141570806503
1.1141571402549
1.1141571402549
1,1142578125000
1,1141967773437
1,1141662597656
1,1141662597656
1,1141586303710
1,1141586303710
1,1141586303710
1,1141576766967
1.1141571998596
1.1141571998596
1.1141571998596
1.1141571998596
1.1141571700572
9/75
Intervalo inicial
10/75
Proceso de
solucin o
algoritmo
! Solucin
11/75
Definicin Si f .x/ es una funcin y r una raz de ella, f .r/ D 0, supongamos que
xa es una aproximacin de r obtenida por un algoritmo. El error hacia atrs del algoritmo
es jf .xa /j y el error hacia delante jr xa j.
8
D 0. Podemos comprobar que
Ejemplo Estudiemos x 3 2x 2 C 34 x 27
f .0/f .1/ D . 8=27/.1=27/ < 0. Apliquemos el mtodo de la biseccin.
>> f1=@(x) x^3-2*x^2+x*4/3-8/27;
>> xc=Bisec_0(f1,0,1)
Se obtiene lo siguiente:
>> xc=Bisec_0(f1,0,1)
0.500000000000000 1.000000000000000
0.500000000000000 0.750000000000000
0.625000000000000 0.750000000000000
0.625000000000000 0.687500000000000
0.656250000000000 0.687500000000000
0.656250000000000 0.671875000000000
0.664062500000000 0.671875000000000
0.664062500000000 0.667968750000000
0.666015625000000 0.667968750000000
0.666015625000000 0.666992187500000
0.666503906250000 0.666992187500000
0.666503906250000 0.666748046875000
0.666625976562500 0.666748046875000
0.666625976562500 0.666687011718750
0.666656494140625 0.666687011718750
0.666656494140625 0.666671752929688
xc =
0.666664123535156
12/75
>> xc=Bisec_0(f1,0,1,eps)
0.500000000000000 1.000000000000000
0.500000000000000 0.750000000000000
0.625000000000000 0.750000000000000
0.625000000000000 0.687500000000000
0.656250000000000 0.687500000000000
0.656250000000000 0.671875000000000
0.664062500000000 0.671875000000000
0.664062500000000 0.667968750000000
0.666015625000000 0.667968750000000
0.666015625000000 0.666992187500000
0.666503906250000 0.666992187500000
0.666503906250000 0.666748046875000
0.666625976562500 0.666748046875000
0.666625976562500 0.666687011718750
0.666656494140625 0.666687011718750
0.666656494140625 0.666671752929688
xc =
0.666664123535156
Cualquier otro mtodo que se base en esta misma aritmtica de maquina estar
destinado al mismo fracaso.
13/75
La razn se ve en la figura.
(a)
(b)
14/75
El error hacia atrs es cercano a mq 2;2 10 16, mientras que el error hacia
delante es aproximadamente 10 5. Como el error hacia atrs no puede
disminuirse por debajo de un error relativo por debajo del psilon de la mquina,
tampoco es posible disminuir el error hacia delante.
Hay que destacar que este ejemplo es bastante especial pues la funcin tiene
una raz triple en r D 2=3.
3
8
2
4
f .x/ D x 3 2x 2 C
D x
:
3 27
3
15/75
Observemos:
>> cos(1)
ans = 0.540302305868140
>> cos(ans)
ans = 0.857553215846393
>> cos(ans)
ans = 0.654289790497779
>> cos(ans)
ans = 0.793480358742566
>> cos(ans)
ans = 0.701368773622757
>> cos(ans)
ans = 0.763959682900654
>> cos(ans)
ans = 0.722102425026708
>> cos(ans)
ans = 0.750417761763761
>> cos(ans)
ans = 0.731404042422510
>> cos(ans)
ans = 0.744237354900557
>> cos(ans)
ans = 0.735604740436347
>> cos(ans)
ans = 0.741425086610109
>> cos(ans)
ans = 0.737506890513243
>> cos(ans)
ans = 0.740147335567876
>> cos(ans)
ans = 0.738369204122323
>> cos(ans)
ans = 0.739567202212256
>> cos(ans)
ans = 0.738760319874211
>> cos(ans)
ans = 0.739303892396906
>> cos(ans)
ans = 0.738937756715344
>> cos(ans)
ans = 0.739184399771494
>> cos(ans)
ans = 0.739018262427412
>> cos(ans)
ans = 0.739130176529671
>> cos(ans)
ans = 0.739054790746917
>> cos(ans)
ans = 0.739105571926536
>> cos(ans)
ans = 0.739071365298945
>> cos(ans)
ans = 0.739094407379091
>> cos(ans)
ans = 0.739078885994992
>>
16/75
La iteracin de punto fijo sirve para resolver problemas de punto fijo f .x/ D x.
Se puede usar para resolver f .x/ D 0 si ste se puede expresar como g.x/ D x.
Esquema general de la Iteracin de Punto Fijo
Dados Un x WD x0 y una t ol . Hacer f ound WD f al se
while (not f ound ) and (k < kmax )
Hacer xk WD f .xk 1 )
if (xk xk 1 < t ol ), f ound WD true , end
k WD k C 1
end
17/75
18/75
xD1
en este caso g.x/ D 1
Tambin
1 D 0. Expresmosla de varias
x 3.
xD
p
3
x;
p
siendo aqu g.x/ D 3 1 x.
Si aadimos 2x 3 a los lados de la ecuacin, tambin,
3x 3 C x 1 D 2x 3
3x 2 C 1 x D 1 C 2x 3
1 C 2x 3
x D
1 C 3x 2
siendo g.x/ D .1 C 2x 3/=.1 C 3x 2/.
ving Equations
19/75
to the diagonal
y = x. geometras
This geometric
of a Fixed-Point
i ) across
Enheight
esta g(x
figura
se pueden
ver las line
distintas
deillustration
las y D g.x/
y los
Iteration is called a cobweb diagram.
primeros pasos de la iteracin de punto fijo con ellas, partiendo de un mismo x0.
y
x2 x0 r
x1 1
x0 r x1 1
x2
x0 r
Figure 1.3 Geometric view of FPI. The xed point is the intersection of g(x) and the
diagonal line. Three examples of g(x) are shown together with the rst few steps of
La primera
diverge, la segunda converge y la tercera tambin converge, pero
FPI. (a) g(x) = 1 x3 (b) g(x) = (1 x)1/3 (c) g(x) = (1 + 2x3 )/(1 + 3x2 )
mucho ms rpidamente. Por qu?
In Figure 1.3(a), the path starts at x0 = 0.5, and moves up to the function and horizontal
to the point (0.875, 0.875) on the diagonal, which is (x1 , x1 ). Next, x1 should be substituted
Aparentemente,
algo the
tiene
que
condone
ellofor
laxpendiente
de la funcin, g 0.x/,
into g(x). This is done
same
wayver
it was
0 , by moving vertically to the function.
0.3300, and after moving horizontally to move the y-value to an x-value,
This del
yields
x2 fijo.
cerca
punto
we continue the same way to get x3 , x4 , . . . . As we saw earlier, the result of FPI for this g(x)
20/75
sen.x/ D 0:
Al tratarse de una funcin senoidal, habr varios puntos para los cuales
f .x/ D 0. Calcularemos el ms prximo a x D 1.
21/75
p
3
p
3
sen.xk /:
22/75
sen.x/
,
x2
xkC1 D
sen.xk /
:
xk2
El proceso diverge.
xk
1; 000
0; 841
1; 053
0; 783
1; 149
::
:
El que define
p
3
sen.xk /.
sen.xk /
xk2
genera lo que se denomina una tela de araa entre la recta y D x y la
funcin y D g.x/.
xkC1 D
23/75
En el caso de xkC1 D
p
3
sen.xk /,
.sen.x//
g .x/ D
3
En xN 0;929, g 0.0;929/ 0;23.
0
2=3
cos.x/:
g 0.x/ D
En xN 0;929, g 0.0;929/
sen.x/
:
x3
24/75
25/75
Teorema
Velocidad de convergencia
26/75
Definicin Sea una sucesin fxi g1
i D0 , xi 2 R, convergente a x . El orden de conver-
jxi C1 x j
0 lim
< 1:
i!1 jxi
x jr
El valor del lmite, , se conoce como razn, o constante de error asinttico.
jxi C1 x j
limi!1 jxi x j
27/75
D es cero, la
xk D c 2 ;
donde c cumple 0 c < 1. La sucesin converge a cero. Calculemos su orden
de convergencia:
kC1
c2
jxkC1 0j
lim
D lim kC1 D 1:
2
k!1 jxk
k!1 c 2
0j
Es decir, converge cuadrticamente a 0.
28/75
c2
.c D 0; 99/
0,9900000000000000
0,9801000000000000
0,9605960099999999
0,9227446944279201
0,8514577710948755
0,7249803359578534
0,5255964875255620
0,2762516676992083
0,0763149839065938
0,0058239767686636
0,0000339187054019
0,1150478576143195E-08
0,1323600954164474E-17
0,1751919485865107E-35
0,3069221884953861E-71
0,9420122979079730E-143
0,8873871694098596E-286
c2
.c D 2; 2/
2,200000000000000
1,483239697419133
1,217883285630907
1,103577494166543
1,050512967157732
1,024945348376065
1,012395845692812
1,006178833852518
1,003084659364561
1,001541142122759
1,000770274400054
1,000385063063246
1,000192513000995
1,000096251868287
1,000048124776146
1,000024062098581
1,000012030976918
1=k k
1,000000000000000
0,250000000000000
0,037037037037037
0,003906250000000
0,000320000000000
0,000021433470507
0,000001214265678
0,000000059604644
0,000000002581174
0,100000000000000E-10
0,350493899481392E-12
0,112156654784615E-13
0,330169095523011E-15
0,899927452978128E-17
0,228365826052116E-18
0,542101086242752E-20
0,120883864830239E-21
29/75
xk D c 2 ;
con c 0.
c2
jxkC1 1j
D lim
lim
k!1 c 2
k!1 jxk
1j
D lim
k!1
c 2 .kC1/
1
1
c2
.kC1/
c 2 .kC1/
C1
1
D
:
.kC1/
k!1 c 2
2
C1
Converge linealmente: Esta convergencia significa que en cada iteracin se
aaden un nmero de dgitos constante a la solucin final; concretamente,
log10 dgitos por iteracin.
D lim
30/75
31/75
k
1
2
3
4
5
Error
10
10
10
10
10
; 10
2
; 10
2
; 10
2
; 10
2
; 10
;10
4
;10
3
;10
4
;10
8
;10
; 10 5; : : :
6
; 10 8; : : :
5
; 10 8; : : :
8
; 10 16; : : :
24
;:::
Convergencia
Lineal, con D 10 1
Lineal, con D 10 2
Superlineal: entre lineal y cuadrtica
Cuadrtica
Cbica
Mtodo de Newton-Raphson
32/75
33/75
x1/.
x1/.
34/75
f .x1/
:
f 0.x1/
x2
x1
f (x)
f .xk /
.
f 0.xk /
35/75
sen.x/ D 0, la
xk3 sen.xk /
:
3xk2 cos.xk /
function [f df]=Newt_1(x)
f = x^3-sin(x);
if nargout<2, return, end
df = 3*x*x-cos(x);
end
36/75
>> Newton(@Newt_1,1.4)
2.5
1.5
f(x)
k
1
2
3
4
5
6
Solucin
0.5
32
0.5
0.6
0.7
0.8
0.9
1
1
x
1.1
0
1.2
1.3
1.4
1.5
37/75
donde M D
f 00 .r/
.
2f 0 .r/
38/75
xj
N es grande:
x0
x0
39/75
El teorema anterior impone que f 0.r/ debe ser distinta de cero para que el
mtodo de Newton converja cuadrticamente a r.
Teorema Si una funcin f , continua y derivable m C 1 veces en a; b, tiene en r una
raz de multiplicidad m, el mtodo de Newton converge linealmente a r y el error en el paso
i , ei D jxi rj satisface
ei C1
m 1
lim
D
:
i !1 ei
m
40/75
2
1,25
1,025
1,0003048780488
1,0000000464611
1,0
El error es
m D 2.
e5
e4
1;03125 1
1;0625 1
f2.x/ D x 2
1D0
D 0;5 D
x0
x1
x2
x3
x4
x5
m 1
,
m
1D0
2x C 1 D 0
2
1,5
1,25
1,125
1,0625
1,03125
mf .xi /
f 0 .xi /
converge cuadrticamente a r.
D sen.x/ C x 2 cos.x/ x 2 x
D cos.x/ C 2x cos.x/ x 2 sen.x/ 2x 1
D
sen.x/ C 2 cos.x/ 4x sen.x/ x 2 cos.x/
D
cos.x/ 6 sen.x/ 6x cos.x/ C x 2 sen.x/
Comparar
function raiz_Newton(fun,x,tol)
function raiz=Newton_multiple_modificado(fun,x,tol,m)
41/75
42/75
Puede que ese paso sea bueno y la funcin f .x/ en el nuevo punto adquiera
un valor menor que el que tena en xk ; pero tambin puede que mayor y el
proceso diverja, siendo en cualquier caso buena la direccin calculada.
43/75
xkC1 D xk
end
44/75
xk+1
(xk+1 + xk )/2
xk
xk+1
xk C
0
xkC1
Cxk
2
45/75
f 0 .xk / D lim
f .xk /
f .xk /
.f .xk C h/ f .xk //= h
46/75
f .xk /
;
ak
con ak D
f .xk C hk /
hk
f .xk /
; k D 0; 1; : : :
converge linealmente a x.
N Si limk!1 hk D 0, la convergencia es superlineal. Si existe alguna
constante c1 tal que jhk j c1 jxk xj,
N o, de forma equivalente, una constante c2 tal que
jhk j c2 jf .xk /j, la convergencia es cuadrtica. Si existe alguna constante c3 tal que
jhk j c3 jxk xk 1 j, la convergencia es al menos cuadrtica cada dos pasos.
47/75
48/75
maq
K
f .xk C h/
f .xk
2h
h/
con h D
p
3
maq:
K :
49/75
function newt_x2_2
% Newton dif. finitas de x^2-1=0
x=2.0; x0=0.0; h=sqrt(eps);
fx=@(x)x^2-1;
while abs(x-x0)>eps
x0=x;
x=x0-fx(x0)/((fx(x0+h)-fx(x0))/h);
fprintf( %18.15f\n,x)
end
end
50/75
Los resultados obtenidos con uno y otro cdigo son los de las siguiente tabla.
Newton
1,250000000000000
1,025000000000000
1,000304878048780
1,000000046461147
1,000000000000001
1,000000000000000
1,250000000000000
1,025000001341105
1,000304878371890
1,000000046463329
1,000000000000001
1,000000000000000
51/75
f (x)
x3 x2 x1
x0
52/75
xk
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1,100000000000000
1,000000000000000
0,950091669305211
0,936190919770347
0,931398691322275
0,929655744326761
0,929010358902363
0,928769834571150
0,928679981323918
0,928646384848608
0,928633818836375
0,928629118217882
0,928627359757290
0,928626701921047
0,928626455824360
0,928626363759310
53/75
54/75
function raiz=Newton_composite(fun,x,tol)
% Newton composite: misma derivada cada dos iteraciones
in=1; x1=0; x2=2;
if nargin<3, tol=eps^0.5; end
if nargin==2, x1=0; x2=x; end
while abs(x2-x1)>tol
x1=x2;
if in
[f df] = fun(x1); in = 0;
else
[f] = fun(x1); in = 1;
end
x2=x1-f/df;
fprintf(%18.15f\n, x2);
end
raiz=x2;
end
55/75
>> raiz=Newton_composite(@Newt_1,1.4)
1.092024491973809
1.019398480362132
0.939380250610315
0.930994424066045
0.928635243248317
0.928626375994235
0.928626308731742
0.928626308731734
raiz =
0.928626308731734
56/75
Mtodo de Halley
00
x1 / C f .x1 /
.x
x1 /2
.
2
00
x1 / C f .x1 /
.x
x1 /2
.
2
57/75
f 0 .x1 /
2f .xk /f 0.xk /
2f 0.xk /2
f .xk /f 00.xk /
f .xk /
f .xk /f 00 .xk /
1C
f 0 .xk /
2f 0 .xk /2
La ejecucin:
58/75
59/75
ndice
El problema
Mtodo de la biseccin
Velocidad de convergencia
Mtodo de Newton
60/75
f .xk /
;
f 0.xk /
f .xk 1/
:
xk 1
xk 1
f .xk /.
f .xk 1/
f (x)
xk
f .xk /
61/75
xk+1
xk
xk1
El mtodo p
de la secante converge superlinealmente a la solucin con orden
D .1 C 5/=2 D 1; 618 la denominada razn urea. De hecho, si r es la
f 00.r/ 1
solucin, ei C1 2f 0.r/ ei .
Ejemplo
62/75
sen.x/ D 0.
function [f df]=Newt_sec_1(x0,x1)
fx = @(x)x^3-sin(x);
f = fx(x1);
if nargout<2, return, end
df = (fx(x1)-fx(x0))/(x1-x0);
end
xk
1
2
3
4
5
6
7
1,065107226548895
0,978070204938512
0,937387385189276
0,929273092828631
0,928635284046901
0,928626318027714
0,928626308731868
63/75
Conocido como Regula Falsi. Utiliza como direccin de bsqueda una recta
secante a la funcin en dos puntos sucesivos del proceso iterativo donde la
funcin toma valores de signo opuesto.
x4
x3
x2
f (x)
x1
64/75
x
x1 x3
Mtodo de Muller
65/75
Presentado en 1956.
f (x)
p(x)
x0
x1
x2
x3
p.x/ D a.x
66/75
x2 / C c
f .x0 / D a.x0
f .x1 / D a.x1
f .x2 / D c:
x2 / C c;
x2 / C c
1
.x0 x2 /.x1 x2 /.x0 x1 /
.x1
.x1
x2 /
x2 /2
.x0 x2 / f .x0 /
.x0 x2 /2 f .x1 /
f .x2 /
:
f .x2 /
67/75
2c
;
p
2
b b
4ac
si b < 0, el negativo.
68/75
69/75
sen.x/ D 0,
>> Muller_2(@Newt_1,1,1.2,1.5)
es el que expresa esta tabla.
xk
f .xk /
1
2
3
4
5
0,921801501077277
0,928699331903730
0,928626328365127
0,928626308731740
0,928626308731734
-1,342037938307839e-02
1,451947876007775e-04
3,903326339926849e-08
1,076916333886402e-14
-1,110223024625157e-16
70/75
1
2
3
4
5
6
7
El mtodo de Brent
71/75
Sigue la pista a un punto xi que es el mejor en el sentido del error hacia atrs y
a un intervalo ai ; bi para la raz.
72/75
Quadratic Interpolation method is attempted, and the result is used to replace one of xi , ai , bi
if
(1) these
backward
error improves
and (2) the del
bracketing
intervalde
is cut
at least incon
half. la
If not,
En esta figura
compara
la geometra
mtodo
Muller
de
the Secant Method is attempted with the same goal. If it fails as well, a Bisection Method
interpolacin
inversa.
step iscuadrtica
taken, guaranteeing
that the uncertainty is cut at least in half.
y
xIQI
x0
x2 x
M
x1
Figure 1.13 Comparison of Mullers Method step with Inverse Quadratic Iteration
step. The former is determined by an interpolating parabola y = p(x); the latter, by an
interpolating parabola x = p(y).
la
73/75
74/75
if tol<abs(d), sb=sb+d;
% Nuevo punto
elseif 0.0<m
sb = sb + tol;
else
sb = sb - tol;
end
fb = f(sb);
if (0.0<fb&&0.0<fc) || (fb<=0.0&&fc<=0.0)
c = sa; fc = fa; e = sb-sa; d = e;
end
end
value = sb;
end
75/75
2x 2 C 34 x
31
0.667039
5.17053e-11
32
0.666962
2.5736e-11
33
0.666887
1.07147e-11
34
0.666887
1.07147e-11
35
0.666816
3.34444e-12
36
0.666785
1.66456e-12
37
0.666755
6.93112e-13
38
0.666755
6.93112e-13
39
0.666727
2.16271e-13
40
0.666714
1.07692e-13
41
0.666702
4.4964e-14
42
0.666702
4.4964e-14
43
0.666691
1.39888e-14
44
0.666686
6.99441e-15
45
0.666681
2.88658e-15
46
0.666681
2.88658e-15
47
0.666676
9.99201e-16
48
0.666674
3.33067e-16
49
0.666673
3.33067e-16
50
0.666673
3.33067e-16
51
0.66667 -1.11022e-16
52
0.666671
1.11022e-16
53
0.66667
0
Zero found in the interval [0, 1]
ans =
0.666670143350873
Elapsed time is 0.193985 seconds.
8
27
D 0.
interpolation
interpolation
interpolation
bisection
interpolation
interpolation
interpolation
bisection
interpolation
interpolation
interpolation
bisection
interpolation
interpolation
interpolation
bisection
interpolation
interpolation
interpolation
bisection
interpolation
interpolation
bisection
1/136
2/136
ndice
El problema y consideraciones tericas
Mtodos directos: Eliminacin de Gauss
Pivotacin
Algoritmo
Nmero de operaciones
Mtodo de Gauss-Jordan
3/136
Los nmeros aij son los coeficientes del sistema y b D b1; : : : ; bmT el trmino
independiente.
4/136
2 3
x1
6 7
6x 7
x D 6 ::2 7
4:5
xn
b1
6 7
6b 7
y b D 6 ::2 7 ;
4 : 5
xm
Ax D b:
m = n de ecuaciones lineales:
Casos posibles de sistemas
m=n
m=n
m=n
rango(A) = m = n
rango(A) = m = n
m=n
rango(A) < m = n
rango(A) = m = n
rango(A) < m = n
1a
1b
1a
m>n
1b
m>n
m>n
rango(A) = n < m
rango(A) = n < m
m>n
m>n
m>n
rango(A) = n < m
2a
2b
2a
2b
m<n
m<n
rango(A) = m < n
m<n
rango(A) = m < n
rango(A) = m < n
3a
3a
5/136
m<n
m<n
m<n
3b
3b
5/101
6/136
rango.Ajb/ D rango.A/.
7/136
DI
8/136
Simplificadamente,
y matemtico deModel:
la figura en el
Physicaladoptamos
Model: el modelo fsico Mathematical
que se esquematiza un tiristor o un transistor montado en una placa disipadora
de calor.
aire
Q1
Qc
Tw
temperatura exterior Ta
R2
Q3
Tp
Q2
R3
a
Q4
R4
a
Q5
R5
a
9/136
1
.Tc
R1
Tp /
Q4 D
1
.Tp
R4
Ta /
Q c D Q1 C Q3
Q2 D
1
.Tp
R2
Tw /
Q2 D
1
.Tw
R5
Ta /
Q1 D Q2 C Q4
Q3 D
1
.Tc
R3
Ta /
Como hay siete ecuaciones, reagrupando las ecuaciones para aislar las incgnitas:
10/136
R1 Q1 Tc C T9
R2 Q2 Tp C Tw
R3 Q3 Tc
R4 Q4 Tp
R5 Q2 Tw
Q1 C Q3
Q1 Q2 Q4
D0
D0
D Ta
D Ta
D Ta
D Qc
D 0:
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
Q1
17 6Q2 7
07 6Q3 7
07 6Q4 7
76 7
15 4 Tc 5
0
Tp
0
Tw
0
6 0 7
6 Ta 7
6 Ta 7
6 T7
4 a5
Qc
0
0
200
0
0
300
0
-1
0
0
50
0
0
1
0
0
0
0
100
0
0
-1
b=[0;0;-50;-50;-50;25;0]
b =
0
0
-50
-50
-50
25
0
>> x=A\b
x =
1.0e+003 *
0.00535714285714
0.00089285714286
0.01964285714286
0.00446428571429
1.03214285714286
0.49642857142857
0.31785714285714
-1
0
-1
0
0
0
0
1
-1
0
-1
0
0
0
0
1
0
0
-1
0
0
11/136
12/136
a11x1 C a12x2 D b1
a21x1 C a22x2 D b2:
Cada una de las ecuaciones que componen el sistema representa una recta
en el espacio eucldeo de dimensin dos.
x2
a11 x 1 + a12 x 2 = b1
a21 x 1 + a22 x 2 = b2
x1
13/136
x3 D
0
8
9
14/136
1RZ KDYLQJFOHDQHGRXWWKHFROXPQDERYH
HTXDWLRQDQGXVHLWWRHOLPLQDWHWKH "2x2
x3 WKHUHLVQRZQRDULWKPHWLFLQYROYLQJ x3
DQGREWDLQWKHV\VWHP
8
D 29
<x1
D 16
x2
:
x3 D 3
7KHZRUNLVHVVHQWLDOO\GRQH ,WVKRZVWKD
.29; 16; 3/ +RZHYHU VLQFHWKHUHDUHVRPDQ
WRFKHFNWKHZRUN 7RYHULI\WKDW .29; 16;
WKHOHIWVLGHRIWKHRULJLQDOV\VWHP DQGFRP
(29, 16, 3)
(DFKRIWKHRULJLQDOHTXDWLRQV
GHWHUPLQHVDSODQHLQWKUHH
GLPHQVLRQDOVSDFH 7KHSRLQW
.29; 16; 3/ OLHVLQDOOWKUHHSODQHV
7KHUHVXOWVDJUHHZLWKWKHULJKWVLGHRIWKH
RIWKHV\VWHP
El punto x D 29; 16; 3 est en los tres planos que definen las ecuaciones del
([DPSOHLOOXVWUDWHVKRZRSHUDWLRQVR
sistema.
>> A=[1 -2 1;0 2 -8;-4 5 9];
>> b=[0;8;-9];
>> A\b
ans =
29
16
3
RSHUDWLRQVRQWKHDSSURSULDWHURZVRIWKHDX
OLVWHGHDUOLHUFRUUHVSRQGWRWKHIROORZLQJRS
15/136
a11
a21
a12
a22
16/136
ndice
El problema; consideraciones tericas
17/136
El ms clsico es el debido a Gauss, quien lo aplic por primera vez en 1809 con
motivo de unos estudios sobre rbitas de cuerpos celestes.
18/136
9
=
U x D b0:
19/136
i D 1; : : : ; n;
20/136
21/136
2
9
2
2:
22/136
Etapa 1
i D 2; : : : ; n:
aO ij
aO i1
;
aO 11
23/136
aO ij
ri aO 1j ;
i D 2; : : : ; nI j D 2; : : : ; n C 1:
24/136
en la 3a fila:
en la 4a fila:
aO 21
aO 22
aO 23
aO 24
aO 25
aO 31
aO 32
aO 33
aO 34
aO 35
aO 41
aO 42
aO 43
aO 44
aO 45
0
aO 22
aO 23
aO 24
aO 25
0
aO 32
aO 33
aO 34
aO 35
0
aO 42
aO 43
aO 44
aO 45
r2 aO 12
r2 aO 13
r2 aO 14
r2 aO 15
D
D
D
D
2C21D
3C20D
7C24D
9C22D
0
3
1
5I
r3 aO 12
r3 aO 13
r3 aO 14
r3 aO 15
D
D
D
D
1
2
8
2
21D
20D
24D
22D
1
2
0
2I
r3 aO 12
r4 aO 13
r4 aO 14
r4 aO 15
D
D
D
D
3
12
1
2
01D
00D
04D
02D
3
12
1
2:
b 1 , resultado de transformar A,
b es:
La nueva matriz A
2
3
2
0
b1 D 6
A
40
0
1
0
1
3
0
3
2
12
4
1
0
1
25/136
2
57
:
25
2
En efecto,
1
6 2
L1b
AD4
2
0
0
1
0
0
0
0
1
0
32
0
07 6
05 4
1
2
4
4
0
1
2
1
3
0
3
2
12
4
7
8
1
3 2
2
2
97 6 0
D
25 4 0
2
0
1
0
1
3
0
3
2
12
4
1
0
1
3
2
57
.
25
2
Su inversa es
2 3
1
607
7
y e1 D 6
405 :
0
3
0
6 27
7
D6
4 25
0
2
L1 1
e T1 , donde
26/136
1000
6
7
6 2 1 0 07
D6
7:
4 2 0 1 05
0001
b 1 D L1 A.
b
En resumen, A
27/136
Etapa 2
1
es cero, lo que nos
Al tratar de hacerlo, vemos que el coeficiente pivote aO 22
impide proceder como en la etapa anterior.
1
Comprobemos si algn coeficiente de la columna 2 por debajo de aO 22
no es 0:
28/136
b 0 , es:
Recapitulemos: la matriz con la que vamos a operar a continuacin, A
1
29/136
b
b 0 D P 1 L1 A:
A
1
1
aO i2
ri D 10 ;
aO 22
i D 3; 4:
aO ij1
aO ij1
1
ri aO 2j
;
i D 3; 4I j D 3; : : : ; 5:
30/136
1
1
r3 D aO 32
=aO 22
D 1=3 y
1
1
r4 D aO 42
=aO 22
D
b 0 resultante:
Los nuevos coeficientes de la matriz A
1
en la 3a fila:
en la 4a fila:
0:
1
aO 32
10
aO 33
10
aO 34
10
aO 35
0
1
aO 42
10
aO 43
10
aO 44
10
aO 45
0
10
aO 33
10
aO 34
10
aO 35
1
r3 aO 23
D
0
1
r3 aO 24
D
0
1
r3 aO 25
D
0
10
aO 43
10
aO 44
10
aO 45
1
r4 aO 23
D
0
1
r4 aO 24
D
10
r4 aO 25 D
2C
0C
2
1
3
1
3
1
3
12 D
1 D
2 D
2
1=3
8=3I
3
1
5
0 12 D
01 D
02 D
3
1
5:
Al ser r4 D 0, los clculos para adaptar la cuarta fila podran haberse evitado.
31/136
transformaciones es
3
2
1 0 4
7
3 12 1
27
7;
0 2 1=3 8=35
5
0 3 1
b 2 D L2 P 1 L1 A;
b
A
32/136
Etapa 3
2
es distinto de cero, luego procedemos
El coeficiente de la diagonal principal aO 33
a calcular el multiplicador r4:
2
2
r4 D aO 43
=aO 33
D 3=2:
aO ij2
aO ij2
2
ri aO 3j
;
i D 4I j D 4; 5:
33/136
0
2
aO 44
2
aO 45
2
r4 aO 34
D 1 23 13 D 1=2
2
r4 aO 35
D 5 C 32 83 D 1:
transformaciones es
3
1 0 4
2
7
3 12 1
27
7:
0 2 1=3 8=35
0 0 1=2
1
34/136
b una serie
A este resultado se ha llegado despus de aplicar a la matriz inicial A
de transformaciones; concretamente:
donde
b 3 D L3 L2 P 1 L1 A;
b
A
2
3
10 0 0
6
7
60 1 0 07
L3 D 6
7:
40 0 1 05
0 0 3=2 1
35/136
En el ejemplo,
2
2
6
60
6
40
0
1
3
0
0
32 3 2
3
0 4
x1
2
76 7 6
7
12 17 6x27 6
27
76 7 D 6
7:
2 1=35 4x35 4 8=35
0 1=2
x4
1
36/136
2;
8=3
. 2/.1=3/
D
2
1;
. 1/. 2/
. 12/. 1/
3
D 4:
37/136
3
7
47
7:
15
2
38/136
Pivotacin
en una mquina terica con slo tres dgitos significativos que redondea.
39/136
104; de
104
D1
x2 D
104
1 x2
x1 D
D 0;
10 4
muy distinta de la real 0;99989999; 1;00010001T .
40/136
Para el caso de 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 intercambiara la fila 1 con la 2, obtenindose
1
1
2
0
A0 D
y
b
D
:
10 4 1
1
41/136
0,9998
D 0,99989999
0,9999
x1 D 1,00010001:
42/136
Partial Pivoting
43/136
Rows completed in
forward elimination.
La pivotacin
es lapivot
estrategia
parai.e.,minimizar
putstotal
the largest
element onptima
the diagonal,
nd ip sucherrores.
44/136
Algoritmo
Resolucin de Ax D b
end
end
end
Sustitucin Inversa.
for j D n to01
x.j /
end
@b.j /
n
X
kDj C1
a.j; k/ x.k/A
a.j; j /
45/136
function [x]=Gauss(A,b)
% Solucin de Ax=b mediante eliminacin de Gauss
n=size(A,1); x=zeros(n,1);
for i=1:n-1
% Transformacin matriz A en n-1 etapas
[p maxk]=max(abs(A(i:n,i)));
maxk=maxk+i-1;
if i~=maxk
A([i maxk],:)=A([maxk i],:);
b([i maxk]) =b([maxk i]);
end
j=i+1:n;
A(j,i)=A(j,i)/A(i,i);
A(j,j)=A(j,j)-A(j,i)*A(i,j);
b(j)=b(j)-b(i)*A(j,i);
end
for i=n:-1:1
% Sustitucin inversa
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);
end
end
46/136
47/136
1
627
6 7
IPIV D 63 7 :
4 ::: 5
n
48/136
49/136
6
6
AD6
4
Ojo, verifiquemos:
3
2 1
0 4
7
2 3 12 17
7:
2 1=3
2 1=35
0 0 3=2 1=2
2, 2, 1=3 y 3=2.
>> I=eye(4); L1=I; L2=I; L3=I;
>> L1(2:3,1)=[-2 2]; L2(3,2)=1/3; L3(4,3)=3/2; P=I([1 4 3 2],:);
>> U=[2 1 0 4;0 -3 -12 -1;0 0 2 1/3; 0 0 0 1/2];
>> L=L1*P*L2*L3; L*U, A
ans =
2
1
0
4
-4
-2
3
-7
4
1
-2
8
0
-3
-12
-1
A =
2
1
0
4
-4
-2
3
-7
4
1
-2
8
0
-3
-12
-1
50/136
51/136
0 2222
:: ::
:: :: :: ! :: ::
:: :: ::
0 2222
0 2222
52/136
i /.n
i / C .n
i /.n
i C 1/ D .n
multiplicaciones y divisiones y
.n
sumas y restas.
i /.n
i C 1/
i /.n
i C 2/
En n
i /.n
i D1
i C 2/ D .n C 2n/
n 1
X
i D1
D .n2 C 2n/.n
1/
.n
1/n.2n
C
6
2n3 C 3n2 5n
D
6
53/136
2.n C 1/
n 1
X
i D1
2.n C 1/
iC
.n
n 1
X
i2
i D1
1/n
2
1/
multiplicaciones y divisiones y
n 1
X
i D1
.n
i /.n
i C 1/ D .n C n/
n 1
X
i D1
D .n2 C n/.n
C
D
sumas y restas.
.n
n3
n
3
1
1/
1/n.2n
6
.2n C 1/
n 1
X
iD1
.2n C 1/
1/
iC
.n
n 1
X
i D1
1/n
2
i2
54/136
n 1
X
..n
i D1
n2 C n
i / C 1/ D
2
multiplicaciones y divisiones y
n 1
X
i D1
sumas y restas.
..n
1/ C 1/ D
n2
n
2
1/
55/136
5n
n2 C n
n3 C 2n2
C
D
2
3
multiplicaciones y divisiones y
n3
n
3
n2
n
2
2n3 C 3n2
D
6
5n
sumas y restas.
Aunque la cantidad n3=3 puede parecer muy grande, recordemos las frmulas de
Cramer para la solucin de sistemas:
2
3
a11 a1i 1 b1 a1iC1 a1n
6
7
det.B i /
6a21 a2i 1 b2 a2i C1 a2n 7
xi D
; donde B i D 6 ::
::: :::
:::
::: 7 :
4 :
5
det.A/
an1 ani 1 bn ani C1 ann
56/136
57/136
Mtodo de Gauss-Jordan
0
::
:
7
6
6
7
6 i
i 7
i D 6ai C1 i =ai i 7
6
7
::
4
5
:
i
ani
=aii i
fila i C 1
i e Ti ;
2 3
0
6 ::: 7
6 7
6 7
y e i D 617
6:7
4 :: 5
0
fila i :
58/136
3
i
a1i
=aii i
6 ::: 7
6
7
6
i 7
i D 6 1=ai i 7
6 : 7
4 :: 5
i
ani
=aii i
2 3
0
6 ::: 7
6 7
6 7
y e i D 617
6:7
4 :: 5
0
fila i :
fila i
i e Ti ;
D Tn
1 T 2T 1A
D I;
1 T 2T 1:
Condicionamiento de sistemas
59/136
60/136
61/136
0;66
3;34
xO 1
4
b xO D bO !
A
D
:
1;99 10;01 xO 2
12
62/136
0;042 C 0;062
q
32 C 142
0,0050:
Por lo que respecta al vector solucin, ese cambio relativo en la norma eucldea
es
q
.1 0;993/2 C .1 0;9968/2
kxk2
q
D
0;0054:
kxk2
2
2
1 C1
63/136
0;042 C 0;062
q
42 C 122
D 0,0057;
52 C 12
2
1 C1
D 3,6055:
64/136
x2
x2
x1
x1
Como se aprecia las dos rectas que representan las ecuaciones del primer
sistema se cortan ntidamente en el punto 1; 1T .
En el caso del segundo sistema, aun usando una resolucin grfica mayor,
apenas se diferencian las dos rectas y mucho menos dnde se cortan.
65/136
66/136
De las igualdades
A.x C x/ D b C b
y Ax D b;
(2)
67/136
Definicin Sea kk una norma matricial consistente con una norma vectorial. Asociado
68/136
69/136
Ax
Comparemos la solucin de
70/136
Ax D b
y .A C A/.x C x/ D b:
A 1A.x C x/
71/136
n .A/
, donde n y 1 son, respectivamente, los valores singulares mayor y
1 .A/
menor de la matriz A.
mKax ji .A/j
, si A es simtrica.
5. 2 .A/ D i
mKn ji .A/j
4. 2 .A/ D
6. 2 .A T A/ D 22 .A/.
72/136
Los distintos nmeros de condicin de una matriz A 2 Rnn asociados con las
normas matriciales ms 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/:
0;10 0;05
;
0;04 0;08
0,66
3,34
bD
A
;
1,99 10,01
El de
cuya inversa es
b
A
250,25 83,5
;
49,75 16,5
b D kAk
b 1 kA
b 1 k1 D 13,35 300 D 4.005: tres rdenes de magnitud
es 1.A/
superior.
73/136
74/136
ai i D 0,1 2 i 100:
Su inversa es
6
6
6
4
12
6 12
6
6 1 2
6
::: :::
6
4
1
2
1
7
7
7
7:
7
25
4 . 2/n
2
. 2/n
::
1
:
::
:::
:
1
1
2
7
7
7:
5
75/136
76/136
77/136
residuo es r D b Ax a . El error hacia atrs de esa solucin es la norma del vector residuo,
kb Ax a k, y el error hacia delante kx x a k.
Si se tiene el sistema
78/136
x1 C x2 D 2
1;0001x1 C x2 D 2;0001
2
Ax D
2;0001
2
D
2;0001
1
1
1
1;0001 1 3;00001
:
2;0001
0;0001
D
2
0;0001
1
xa D
1
1
D
3;0001
2
:
2;0001
which is 2.0001.
Figure 2.2 helps to clarify how there can be a small backward error and large forward
error at the same time. Even though the approximate root (1, 3.0001) is relatively far
from the exact root (1, 1), it nearly lies on both lines. This is possible because the two lines
are almost parallel. If the lines are far from parallel, the forward and backward errors will
be closer in magnitude.
La figura aclara cmo puede haber un error pequeo hacia atrs y uno grande
hacia delante al mismo tiempo.
y
1
2
1
Figure 2.2 The geometry behind Example 2.11. System (2.17) is represented by
the lines x2 = 2 x1 and x2 = 2.0001 1.0001x1 , which intersect at (1,1). The point
( 1, 3.0001) nearly misses lying on both lines and being a solution. The differences
between the lines is exaggerated in the gurethey are actually much closer.
is dened to be
||r||
,
El nmero de condicin 1.A/ D 40:004;0001.
||b||
and the relative forward error is
||x xa ||
.
||x||
79/136
kx
xak
.
kxk
krk
.
kbk
80/136
Para el sistema anterior, con normas infinito, el error relativo hacia atrs es
0;0001
0;00005 D 0;005 %
2;0001
y el error relativo hacia adelante
2;0001
D 2;0001 200 %:
1
81/136
D 2;0001=.0;0001=2;0001/ D 40004;0001:
82/136
83/136
84/136
ndice
El problema; consideraciones tericas
Eliminacin de Gauss
Condicionamiento de sistemas de ecuaciones lineales
Errores en la eliminacin de Gauss
Matlab y los sistemas de ecuaciones lineales
Factorizacin LU
85/136
Factorizacin LU
y Ly D b:
86/136
1 L1 P 1 A
D U:
87/136
0; k D 1; : : : ; n:
88/136
89/136
l11 0 0
l21 l22 0
l31 l32 l33
1 u12 u13
0 1 u23 ;
0 0 1
l21 D a21
l31 D a31 I
l u D a12
2a fila de U : 11 12
l11 u13 D a13
l u C l22 D a22
2a col. de L: 21 12
l31 u12 C l32 D a32
! li 2 D a i 2
li1 u12 ; i D 2; 3I
! u2j D .a2j
! li 3 D a i 3
i 1
X
j D1
lij uj i ; i D 3:
90/136
ukj D @akj
pD1
k 1
X
pD1
i D 1; 2; : : : ; n;
j > 1;
lkp upj A
i k;
lkk ;
j > k:
91/136
nn
D LU 1, es este.
end
for i D k C 1 0
to n
u.k; i /
end
end
En Matlab:
@a.k; i /
k
X1
pD1
l.k; p/u.p; i /A l.k; k/
function [L U]=LUCrout(a)
% Factorizacin LU por Crout
n=size(a,1); L=zeros(n); U=eye(n);
for k=1:n
i=k:n;
L(i,k)=a(i,k)-L(i,1:k-1)*U(1:k-1,k);
i=k+1:n; U(k,i)=(a(k,i)-L(k,1:k-1)*U(1:k-1,i))/L(k,k);
end
end
92/136
93/136
Factorizar
da como resultado
3
2
10 10 20
420 25 405
30 50 61
2
32
3
10
112
LU D 420 5 5 4 1 05 :
30 20 1
1
As:
>> A=[10 10 20;20 25 40;30 50 61];
>> [L,U]=Crout_1(A)
L =
10
0
0
20
5
0
30
20
1
U =
1
1
2
0
1
0
0
0
1
>>
3
0,001 2,000 3,000
A D 4-1,000 3,712 4,6235
-2,000 1,072 5,643
2
l11 D 0,001I
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 l5,643 C (2,000)(3,000) (4,001)(1,500) D 5,642:
Ojo! que el clculo de l33 conlleva la prdida de tres dgitos por redondeo: el
valor que debera dar es 5,922.
94/136
95/136
Pivotacin
end
Determinar ndice p 2 fk; k C 1; : : : ; ng tal que ja.p; i /j D mKaxi j n ja.j; i /j.
Intercambiar filas p y k.
for i D k C 1 0
to n
1
k
X1
@
A
l.k; p/u.p; i /
l.k; k/
u.k; i /
a.k; i /
pD1
end
end
function [L U p]=CroutP(a)
% Factorizacin LU por Crout con pivotacin
n=size(a,1); p=1:n;
for k=1:n
i=k:n; a(i,k)=a(i,k)-a(i,1:k-1)*a(1:k-1,k);
[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(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
96/136
97/136
Si se factoriza la matriz
2
3
10 10 20
420 25 405 ;
30 50 61
al final de este proceso, el vector IPVT./, que indica las pivotaciones realizadas,
es 3, 2, 1T .
>> A=[10 10 20;20 25 40;30 50 61];
>> [L U p]=CroutP(A)
L =
30.0000
0
0
20.0000
-8.3333
0
10.0000
-6.6667
0.2000
U =
1.0000
1.6667
2.0333
0
1.0000
0.0800
p =
3
2
1
98/136
99/136
1 0 0
l21 1 0
l31 l32 1
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
l31 u11 D a31
l u C u22 D a22
2a fila de U : 21 12
l21 u13 C u32 D a23
! u2j D a2j
! li 2 D .ai 2
l21 u1j ; j D 2; 3I
li1 u12 /=u22 ; i D 3I
! u3j D a3j
j 1
X
i D1
l3i uij ; j D 3:
100/136
li k D @aik
pD1
k 1
X
pD1
j D 1; 2; : : : ; n;
j > 1;
1
lip upk A
j k;
ukk ;
i > k:
101/136
El algoritmo de Crout para factorizar una matriz regular A nn en la forma L1U
es el que sigue.
for k D 1 to n
for j D k to n
u.k; j /
a.k; j /
k 1
X
l.k; p/u.p; j /
pD1
end
for i D k C 10to n
l.i; k/
end
end
@a.i; k/
k 1
X
pD1
u.k; k/
102/136
function [L,U]=Croutl1u(a)
% Factorizacin L1U por Crout
n=size(a,1);
for k=1:n-1
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);
end
Su implementacin en Matlab:
103/136
function [L,U,P]=CroutP1(a)
% Factorizacin L1U por Crout con pivotacin
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
104/136
105/136
0
0
1.0000
61.0000
-0.6667
0.2000
106/136
Probemos:
>> 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.
107/136
108/136
Matlab y la factorizacin LU
109/136
110/136
111/136
ndice
El problema; consideraciones tericas
Eliminacin de Gauss
Condicionamiento de sistemas de ecuaciones lineales
Errores en la eliminacin de Gauss
Matlab y los sistemas de ecuaciones lineales
Factorizacin LU
Refinamiento iterativo
Sistemas con matrices especiales
112/136
113/136
2. Resolviendo Ay D b, obteniendo y.
3. Calculando x D y C ..vT y/=.1
vT z//z.
114/136
En este caso
3
0
u D 4 05
2
2 3
0
y v D 415 ;
0
uvT .
115/136
Por ltimo,
3
2
3 2 3
1
3=2
7
vT y
2
4 1=25 D 4 45 :
z D 4 25 C
xDyC
T
1 v z
1 1=2
2
1=2
0
116/136
Refinamiento iterativo
Ax 0 D r 0;
117/136
B=A;
% En B est A perturbada un poquito
B(6,1)=B(6,1)+1.e-06;
pause
x1=B\b
% Veamos la nueva solucin; difiere bastante
pause
xex=ones(n,1);
norm(xex-x1,2)
norm(xex-x,2)
pause
% Calculemos cunto
% Como magnitud calculemos la norma 2 de la desviaci.
res=b-A*x1;
x1=x1+B\res
norm(xex-x1,2)
pause
res=b-A*x1;
format long
x1=x1+B\res
norm(xex-x1,2)
pause
res=b-A*x1;
x1=x1+B\res
norm(xex-x1,2)
118/136
119/136
ndice
El problema; consideraciones tericas
Eliminacin de Gauss
Condicionamiento de sistemas de ecuaciones lineales
Errores en la eliminacin de Gauss
Matlab y los sistemas de ecuaciones lineales
Factorizacin LU
Solucin de sistemas modificados
Refinamiento iterativo
120/136
121/136
D
D
D
D
D
D
d11
l21d11
l31d11
2
l21
d11 C d22
l31l21d11 C l32d22
2
2
l31
d11 C l32
d22 C d33:
122/136
a.i; k/
end
end
@a.i; k/
k 1
X
pD1
d.k/
Factorizacin de Cholesky
123/136
Una matriz es definida positiva si para todo x 0 se cumple que x TAx > 0.
Todos sus valores propios son positivos.
124/136
125/136
Lema Las submatrices principales de una matriz definida positiva son definidas positivas.
Teorema Si A es una matriz simtrica definida positiva de orden n, existe una nica
matriz triangular superior, G , con todos sus coeficientes diagonales positivos, tal que A D
GT G.
D
D
D
D
D
D
2
g11
g11g12
g11g13
2
2
g12
C g22
g12g13 C g22g23
2
2
2
g13
C g23
C g33
:
126/136
127/136
a.i; i/
i 1
X
g 2 .k; i/
kD1
for j D i C 1 to n
g.i; j /
a.i; j /
i 1
X
kD1
end
end
g.k; i/g.k; j /
!
g.i; i/
128/136
function G=Chols_1(A)
% Factorizacin de Cholesky
n=size(A,1);
for i=1:n, j=i+1:n;
A(i,i)=sqrt(A(i,i));
A(i,j)=A(i,j)/A(i,i);
A(j,j)=A(j,j)-A(i,j)*A(i,j);
end
G=triu(A);
end
La factorizacin de
2
51
4 12
20
00
20
0 05
41 !
13
0 1 3];
0
0
0.5669
1.6366
0
0
0.5669
1.6366
129/136
130/136
Para utilizar esta operacin con un ejemplo de los que estamos manejando,
habra que hacer algo parecido a lo que sigue.
>> A=[5 1 -2 0;1 2 0 0;-2 0 4 1;0 0 1 3];
>> b=[1;5;14;15];
>> G=chol(A)
G =
2.2361
0.4472
-0.8944
0
0
1.3416
0.2981
0
0
0
1.7638
0.5669
0
0
0
1.6366
>> x=G\(G\b)
x =
1.0000
2.0000
3.0000
4.0000
131/136
ai i D 0 ) aij D aj i D 0; j D 1; : : : ; n:
132/136
Pivotacin
133/136
a.i; i/
i 1
X
g 2 .k; i/
kD1
for j D i C 1 to n
g.i; j /
a.i; j /
i 1
X
kD1
end
end
end
g.k; i/g.k; j /
!
g.i; i/
134/136
Estrategia
Operaciones
T
T
PAP D LT L
O.n3 =3/
PAP T D LT LT
O.n3 =6/
PAP T D LBLT O.n3 =6/ C O.n3 =6/ comparaciones
PAP T D LBLT O.n3 =6/ C .n2 1/ comparaciones
Con una matriz de Hankel, Hermann Hankel, Alemania, 1839-1873, funciona as:
136/136
>> A = gallery(ris,6)
A =
0.0909
0.1111
0.1429
0.1111
0.1429
0.2000
0.1429
0.2000
0.3333
0.2000
0.3333
1.0000
0.3333
1.0000
-1.0000
1.0000
-1.0000
-0.3333
>> cond(A)
ans =
2.2185
>> [L D P rho]=Diagpiv_1(A)
L =
1.0000
0
0
0
1.0000
0
-0.1760
0.2160
1.0000
-0.3143
0.1714
-1.1905
-0.1048
0.3429
0.2646
-0.9778
0.2000
-0.6173
D =
0.0909
1.0000
0
1.0000
-0.1111
0
0
0
-0.9216
0
0
0
0
0
0
0
0
0
P =
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
rho =
1.9264
>> max(max(L*D*L-P*A*P))
ans =
1.665334536937735e-016
0.2000
0.3333
1.0000
-1.0000
-0.3333
-0.2000
0.3333
1.0000
-1.0000
-0.3333
-0.2000
-0.1429
1.0000
-1.0000
-0.3333
-0.2000
-0.1429
-0.1111
0
0
0
1.0000
-0.6667
0.6222
0
0
0
0
1.0000
0
0
0
0
0
0
1.0000
0
0
0
1.7415
0
0
0
0
0
0
-0.8256
1.9264
0
0
0
0
1.9264
0.1284
0
1
0
0
0
0
>> eig(A)
ans =
-1.5708
-1.5705
-1.4438
0.7080
1.5622
1.5708
1/89
2/89
ndice
Introduccin
Fundamentos tericos
Sistemas indeterminados
Mtodo de Gram-Schmidt
Factorizacin QR
3/89
Introduccin
Cualquier medida siempre est sujeta a errores, por pequeos que sean, por el
desajuste de la calibracin del aparato que la realiza, su propia imperfeccin, las
condiciones ambientales, las vibraciones, el envejecimiento de la maquinaria, etc.
4/89
5/89
m=n
m=n
m=n
rango(A) = m = n
rango(A) = m = n
m=n
rango(A) < m = n
rango(A) = m = n
rango(A) < m = n
1a
1b
1a
m>n
m>n
1b
m>n
m>n
rango(A) = n < m
rango(A) = n < m
m>n
m>n
rango(A) = n < m
2a
2b
2a
2b
m<n
m<n
rango(A) = m < n
m<n
rango(A) = m < n
rango(A) = m < n
3a
3a
m<n
m<n
m<n
3b
3b
=
5/101
'*/*5*0/
IRUDOO [ LQ Rn
b
a8
Ax
01234
a6
Im(A)
Ax
Ax
WR A[ IRURWKHU [
7/89
Que minimice
m
X
T
aj x
j D1
Que minimice
mKax ajT x
j
bj
bj
8/89
9/89
10/89
5
4
3
2
1
1
1
61
6
41
1
1
2
3
4
1
47
7
95
16
2 3
x1
4x2 5
x3
2 3
2
637
7
D 6
455 :
6
x
Con una tctica de ajuste por mnimos cuadrados, tambin con Matlab:
>> x=[1 2 3 4];
>> y=[2 3 5 6];
>> p=polyfit(x,y,2)
p =
-0.0000
1.4000
0.5000
11/89
12/89
0.5
1.5
2.5
3.5
4.5
13/89
14/89
15/89
Sistemas de navegacin
VOR, DME, ADF, RMI, MLS
16/89
Fundamentos tericos
Teorema
(1)
r 0
D
;
0 0
1 2 r > 0:
Si las matrices U y V se escriben como
U D u1 ; : : : ; um
y V D v1 ; : : : ; vn ;
los ui y vi son los vectores singulares izquierdos y derechos, respectivamente, correspondientes a los valores
singulares i , i D 1; : : : ; r.
17/89
1
r 0
xDV
UTb
0 0
Teorema El vector
es la solucin del problema
minimizar
kAx bk2
x 2Rn
que hace mnima kxk2 , donde A 2 Rmn y rango.A/ D r mKn.m; n/.
Definicin A la matriz
r 1 0
A DV
U T 2 Rnn
0 0
18/89
bk2 es
x D A b:
a8
a6
19/89
.AB/ B A :
D
D
D
D
A
A
AA
A A:
Las frmulas para obtener las matrices de proyeccin ortogonal sobre los cuatro
subespacios fundamentales de A son
P Im.A / D AA
P ker.A T / D I AA
P Im.A T / D A A
P ker.A /
D I
AA
donde S D fx W Ax D bg:
20/89
bk2:
21/89
22/89
a2
a 2x 2
A TAx D A T b
Ax
a 1x 1
Im(A)
a1
23/89
Si la matriz A T A es invertible,
rDb
Ax D .I
P Im.A //b;
24/89
Sistemas indeterminados
25/89
80123A
x7
0123A
x9
x7
u
x
26/89
x2
Im.A T /
1.5
(3/5, 6/5) = x
(1, 1) = x 1
subespacio de soluciones
(3, 0)
1
x1
ker.A/
x DA T AA
T
1
1
3 1
1
3=5
bD
3D
D
:
1 2
2
2
6=5
5 2
SOLUTION FOR A SYSTEM OF LINEAR EQUATIONS
Im.A T /
x2
1.5
(3/5, 6/5) = x
(1, 1) = x 1
subespacio de soluciones
(3, 0)
1
ker.A/
A minimum-norm solution.
x1
75
27/89
28/89
ndice
Introduccin
Fundamentos tericos
Sistemas indeterminados
Mtodo de Gram-Schmidt
Factorizacin QR
29/89
30/89
31/89
por lo que, a efectos numricos en esa mquina, esta matriz ser singular y de
rango 1: las ecuaciones normales no serviran.
32/89
Un ejemplo sera
2
3
1 1 1 1
60
7
6
7
6
7
AD6 0
7;
6
7
0 5
4
0
2
1
6
61
AT A D 6
41
1
1
1
1
1
1
1
1
1
1
7
17
7:
15
1
33/89
Mtodo de Gram-Schmidt
e1 D
e2
e3
a3
e3
a3
e2
e1
a 3 |e 1 e 1
e 1
e1
|
a3
a 3 a 3 |e 1 e 1 a 3 |e 2 e 2
a 3 |e 2 e 2
34/89
35/89
u.j; j /
v
uX
u m
t
e.k; j /2
kD1
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
36/89
37/89
Gram-Schmidt modificado
38/89
En 1966 J.R. Rice modific el orden de las operaciones del mtodo haciendo
que en una etapa k en vez de sustraer del vector ak sus proyecciones sobre los
k 1 vectores e i ya calculados, el vector e k se hace igual a ak al principio y
luego se le van sustrayendo su proyeccin en e 1, pasando el resultado a ser el
nuevo e k , el cual se proyecta luego en e 2, y as sucesivamente en cada uno de
los k 1 e i anteriores.
El resultado es sustancialmente mejor numricamente.
Algoritmo clsico de Gram-Schmidt
for j D 1 to n
e.1 W m; j /
a.1 W m; j /
for i D 1 to j 1
u.i; j /
e.1 W m; i /T a.1 W m; j /
e.1 W m; j /
e.1 W m; j / u.i; j / e.1 W m; i /
end
v
uX
u m
t
e.k; j /2
u.j; j /
kD1
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
39/89
function [x r2 e]=Grmsch_2(A,b)
% Se resuelve Ax=b mediante el mtodo de Gram-Schmidt clsico
[m,n]=size(A); x=zeros(n,1); e=zeros(m,n); u=triu(zeros(n,n));
for j=1:n
e(:,j)=A(:,j);
for i=1:j-1
u(i,j)=e(:,i)*A(:,j);
e(:,j)=e(:,j)-u(i,j)*e(:,i);
end
u(j,j)=norm(e(:,j));
e(:,j)=e(:,j)/u(j,j);
end
for i=n:-1:1
% Rx=b
x(i)=(e(:,i)*b-u(i,i+1:n)*x(i+1:n))/u(i,i);
end
r2=norm(abs(A*x-b),2)^2;
% Residuos^2
end
40/89
[m, n] = size(A);
Q = zeros(m,n);
R = zeros(n);
[m, n] = size(A);
Q = zeros(m,n);
R = zeros(n);
for j=1:n
R(j,j) = norm(A(:,j));
Q(:,j) = A(:,j)/R(j,j);
R(j,j+1:n) = Q(:,j)*A(:,j+1:n);
A(:,j+1:n) = A(:,j+1:n) - Q(:,j)*R(j,j+1:n);
end
for j=1:n
R(1:j-1,j) = Q(:,1:j-1)*A(:,j);
temp = A(:,j) - Q(:,1:j-1)*R(1:j-1,j);
R(j,j) = norm(temp);
Q(:,j) = temp/R(j,j);
end
41/89
42/89
43/89
>> Script_GRSCH_1
ans = 4.7537e+08
Clsico:
x =
1.1983
-7.1874
81.7515
-318.3887
594.3144
-517.0744
172.5582
e =
0.8133
-0.5438
0.1991
0.4067
0.3033
-0.6886
0.2711
0.3939
-0.2071
0.2033
0.3817
0.1124
0.1627
0.3514
0.2915
0.1356
0.3202
0.3892
0.1162
0.2921
0.4407
ans = 870.8917
ortogonalidad = 0.6954
Modificado:
x =
1.0052
0.7926
3.0065
-6.8260
15.3845
-11.4559
5.0969
e =
0.8133
-0.5438
0.1991
0.4067
0.3033
-0.6886
0.2711
0.3939
-0.2071
0.2033
0.3817
0.1124
0.1627
0.3514
0.2915
0.1356
0.3202
0.3892
0.1162
0.2921
0.4407
ans = 21.0752
ortogonalidad = 1.9358e-08
-0.0551
0.4760
-0.4901
-0.4396
-0.1123
0.2309
0.5206
0.0120
-0.1974
0.6108
-0.2542
-0.4992
-0.1506
0.5013
-0.0020
0.0541
-0.3269
0.6411
-0.2022
-0.5418
0.3805
-0.0011
0.0298
-0.1579
0.1833
0.3445
-0.8078
0.4115
-0.0551
0.4760
-0.4901
-0.4396
-0.1123
0.2309
0.5206
0.0120
-0.1974
0.6108
-0.2542
-0.4992
-0.1506
0.5013
-0.0020
0.0541
-0.3269
0.6410
-0.2022
-0.5418
0.3805
0.0002
-0.0091
0.0907
-0.3626
0.6800
-0.5984
0.1995
44/89
Factorizacin QR
Qbk2 D kQ.Ax
b/k2 D kAx
bk2:
45/89
kAx
bk2 D kQAx
D
kR 1x
R 1x c
Qbk2 D
d
46/89
kR 1x
ck22 C kdk22:
47/89
R tiene todos los elementos de su diagonal principal positivos y es igual al que resulta de
la factorizacin de Cholesky, G T G , de A T A.
48/89
Transformaciones de Householder
Definicin Se denomina transformacin o reflexin de Householder a una transformacin lineal de Rn en Rn caracterizada por una matriz H nn de Householder de la forma
H D I 2wwT donde w 2 Rn ; kwk2 D 1, es el vector de Householder.
D
D
2.wwT /T D I
2.wT /T wT D I
2wwT D H . Como
49/89
7 w 9a
0120w 445
Ha
7 w 9a
En efecto
H a D .I
2wwT /a D a
2wwT a D a
2.wT a/w:
Comprobmoslo:
y
/T x
p x Ty
D
.I 2ww /x D x 2 p
.x y /T .x y /
.x y / .x y /
T
x x yT x
= x 2 .x y /T .x y / .x y/
T
x x yT x
= x 2 2.x T x y T x / .x y/ D y .
T
.x
y/T .x
y/ D x T x y T x x T 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.
50/89
51/89
y.
6
678
3
01203445
8
52/89
La figura representa los cuatro pasos del proceso de reducir una matriz A 64
a una triangular superior R 64.
A0
2222
0 222
0 222
0 222
0 222
0 222
A1
2222
0
0 0
0 0
0 0
0 0
A2
2222
0
0 0
0 0 0
0 0 0
0 0 0
A3
2222
0
0 0
0 0 03
0 0 0 0
0 0 0 0
A4
D a1k
D
::: a2k
q
2
2
2
C akC1k
C C amk
D akk
D
::: 0
D 0:
OJO signos!
2
2
2
Como y12 C y22 C C ym2 D a1k
C a2k
C C amk
, jjyjj2 D jjak jj2.
y/=kak
yk2.
53/89
54/89
x2
w
w alt
y
a1 y
a1
a1 + y
x1
Con el criterio apuntado, la transformacin que hay que usar es la que define w,
que convierte a en y 0. Su primer coeficiente es w1 D a1 . y1/ D a1 C y1; el
segundo, el de a en x2.
55/89
56/89
Mediante transformaciones
la matriz A a una
h i de Householder sereduce
c
triangular superior R 1 y el vector b a otro d
0
w.j W m/
a.j W m; j /; w.j /
X
m
w 2 .k/; a.j; j /
w.j / C ; D 2
kDj
for l D j C 1 to n
a.j W m; l/
a.j W m; l/ w.j W m/ w T .j W m/ a.j W m; l/
end
Transformacin del vector b.
b.j W m/
b.j W m/ w.j W m/ w T .j W m/ b.j W m/
end
Resolucin del sistema Rx D b.
for j D n to01
1,
n
X
@b.j /
x.j /
a.j; k/ x.k/A
a.j; j /
kDj C1
end
Residuos al cuadrado.
m
X
rescua
b 2 .k/
kDnC1
57/89
58/89
function [x r2 Q R]=Qrdes_3(A,b)
% Resolucin de Ax=b mediante transformaciones de Householder; calcula Q y R
[m n]=size(A); x=zeros(n,1); Q=eye(m);
for j=1:n
w=Housv(A(j:m,j));
% Householder de a(j:m,j)
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));
Qk=eye(m);
Qk(j:m,j:m)=eye(m+1-j)-2*(w*w);
Q=Qk*Q;
end
for i=n:-1:1
% Rx=b
x(i)=(b(i)-x(i+1:n)*A(i,i+1:n))/A(i,i);
end
r2=norm(b(n+1:m))^2;
% Residuos al cuadrado
R=triu(A); Q=Q;
% Matrices R y Q
end
function w = Housv(x)
% Transformacin de Householder del vector x.
m=max(abs(x)); w=x/m;
sw=1; if w(1)<0, sw=-1; end
w(1)=w(1)+sw*norm(w);
w=w/norm(w); w=w(:);
end
59/89
El vector de residuos,
6
6
rD6
4
3
0,1
7
0,37
7;
0,35
0,1
60/89
c
se puede obtener, si el algoritmo ha transformado b en d , sin ms que hacer:
0
r
d
for k D n to 1
r
H kr
end
61/89
A D R T ; 0T QT :
R T zR D bR ;
62/89
63/89
64/89
0
mr
65/89
R 11 R 12
r
c
r
y Qb D
;
0 R 22
m r
d m r
r n r
66/89
b)
nr
0
0
0 0
0 0
0
0
0 0
0 0
0
0
0
0
0 0
0 0
67/89
bk2 D k.QAP/.P T x/
Qbk2:
68/89
function [x r res]=Mincua_QR(A,b)
% Resolucin de Ax=b general mediante transformaciones de Householder
%
Posible rango incompleto r
[m n]=size(A); x=zeros(n,1); tol=sqrt(eps); W=zeros(n,m); ip=1:n; r=n;
for j=1:n
jm=j; c=0;
for k=j:n
h=norm(A(j:m,k));
if h>c, c=h; jm=k; end
end
if jm~=j, A(:,[j jm])=A(:,[jm j]); ip([j jm]) = ip([jm j]); end
if j==m, break, end
w=Housv(A(j:m,j));
% Householder de A(j:m,j); luego a A y b
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));
end
for j=1:n
% Ver rango
if abs(A(j,j))<=tol, r=j-1; break, end
end
res=norm(b(r+1:m))^2; w1=zeros(r,n-r+1);
W(1:n,1:r)=A(1:r,1:n);
% Trasp. de A = W
if r~=n
for i=r:-1:1
w1(i,1:n-r+1)=Housv([W(i,i);W(r+1:n,i)]);
% Householder hacia W
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));
end
end
for i=r:-1:1
% Resol. Wx=c
x(i)=(b(i)-x(i+1:r)*W(i+1:r,i))/W(i,i);
end
if r~=n
x(r+1:n)=0;
% Aplicar a x ultimas Householder hacia W
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
end
x(ip)=x(:);
% Deshacer perm. col.
end
>> x-pinv(A)*b
ans = 1.0e-015 *
-0.111022302462516
0.333066907387547
0.194289029309402
-0.333066907387547
0.166533453693773
-0.943689570931383
0.499600361081320
69/89
70/89
71/89
Transformaciones de Givens
donde c 2 C s 2 D 1.
s
::
:
c
1
::
:
1
7
7
7
7
7
7
7
7
7
7
7
7
5
i
j
72/89
6
6
6
6
6
6
6
G .i; j /x D 6
6
6
6
6
6
4
x:1
::
xi 1
xi cos C xj sen
xiC1
::
:
xj 1
xi sen C xj cos
xj:C1
::
xn
3
7
7
7
7
7
7
7
7
7
7
7
7
7
5
73/89
s D sen D
x
q j
:
xi2 Cxj2
....
....
....
....
....
....
...
...
...
...
..
..
...
...
...
..
..
..
..
..
..
..
..
..
..
..
..
...
...
...
...
...
..
..
..
1
...........................
.....
...
..
...
...
..
..
...
..
..
.
.
.
.
.
.
.
.
.
...........
x
74/89
75/89
Como el ngulo que hay que rotar x es 45, la matriz de Givens que hay que
utilizar es,
2
3
1
0
p0 7
6 p
G .2; 3/ D 40 p2=2 p2=25 :
0
2=2 2=2
2 3
1
p
G x D x 0 D 4 25 :
0
p
La norma eucldea de ste y del original es 3.
76/89
2
AD4
3
5
en
6 0
RD4 0 0
0 0
22
0
A 1 D G .1; 2/A D 4
2
5
60
A 3 D G .1; 4/A 2 D 4 0
0
2
5
60
A 5 D G .2; 4/A 4 D 4 0
0
7
5,
0
2
3
2 2 3
2 2 5
4 0 2 2 5;
; A 2 D G .1; 3/A 1 D
0 2 2
5
5
0
0
5
27
60
2 5 ; A 4 D G .2; 3/A 3 D 4 0
2
0
3
2
5
5
57
60
5 ; A 6 D G .3; 4/A 5 D 4 0
0
5 5
2
2
2
5 5
0
5
5
0
0
7
5;
3
5
57
55 :
0
Los smbolos 2, y 5 indican que el coeficiente al que se hace referencia ha experimentado 1, 2 3 transformaciones
desde su valor inicial .
77/89
end
Residuos al cuadrado.
m
X
rescua
b 2 .k/
kDnC1
aux
78/89
En Matlab:
function [x r2]=Givens(A,b)
% Resolucin de Ax=b mediante transformaciones de Givens
[m,n]=size(A); x=zeros(n,1);
for i=1:n
% Factorizacin de A
for k=i+1:m
if 1+abs(A(k,i))==1, continue, end
if abs(A(k,i))>=abs(A(i,i))
t=A(i,i)/A(k,i); s=1/sqrt(1+t*t);
c=s*t;
else
t=A(k,i)/A(i,i); c=1/sqrt(1+t*t);
s=c*t;
end
A(i,i)=c*A(i,i)+s*A(k,i);
q(i+1:n)=c*A(i,i+1:n)+s*A(k,i+1:n);
A(k,i+1:n)=-s*A(i,i+1:n)+c*A(k,i+1:n);
A(i,i+1:n)=q(i+1:n);
q1=c*b(i)+s*b(k);
% Transformar b
b(k)=-s*b(i)+c*b(k);
b(i)=q1;
end
end
for i=n:-1:1
% Sustitucin inversa
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);
end
r2=norm(b(n+1:m))^2;
% Residuos al cuadrado
end
79/89
80/89
Como D
1=2
es la factorizacin QR de A.
1=2
1=2
1
1 2
Si se eligen adecuadamente una matrices M 1 D 1
y M2 D
1 1
2 1
que cumplan que 1 i i 0, denominadas transformaciones rpidas de
Givens, una reordenacin de los clculos de la factorizacin puede conseguir el
efecto deseado de alcanzar el orden de magnitud en velocidad de las
transformaciones de Householder.
81/89
82/89
1
62
6
63
6
44
5
6
7
8
9
10
3
11 2 3
127
7 x1
4 5
137
7 x2 D
145 x3
15
x
2 3
5
657
6 7
657 :
6 7
455
5
La descomposicin es
A D U V T
" 0;3546
D
0;3987
0;4428
0;4870
0;5311
0;2017
0;5168
0;8320
0;6887
0;3756
0;0624
0;2507
0;5638
0;8903
0;2573
0;3757
0;5700
0;7455
0;1702
0;2966
0;0490
0;4082
0;8165
0;4082
0;1764
0;2235
0;3652
0;7652
0;4472
0;2096
0;3071
0;7985
0;1627
0;4445
# "35;1272
0
0
0
0
0
2;4654
0
0
0
0
0
0;0000
0
0
0;3757
83/89
0;5
84/89
Operaciones
mn2
C
2
2
n3
6
n3
3
2 3
n
3
mn
2mn2
mn2
mn2
2mn2 C 4n3
mn2 C 17
n3
3
85/89
86/89
El operador n
La descomposicin QR
El mtodo de Gram-Schmidt
La matriz pseudoinversa,
87/89
El diary de Matlab:
>> x0=0.01;
>> x=linspace(x0,2,300);
>> y=5*x.*exp(-3*x);
>> yn=abs(y+0.05*(rand(size(x))-0.5));
>> v=log(yn./x);
>> x=x(:); v=v(:);
>> A=[ones(size(x)) x];
>> c=A\v
c =
1.6443
-3.0579
>> G=chol(A*A);
>> c1=G\(G\(A*v));
>> c1
c1 =
1.6443
-3.0579
>> [Q,R]=qr(A,0);
>> c2=R\(Q*v)
c2 =
1.6443
-3.0579
>> [Q,R]=gs_m(A);
>> c3=R\(Q*v)
c3 =
1.6443
-3.0579
>> format long
>> c4=pinv(A)*v
c4 =
1.64428682050583
-3.05786465731645
>> [U S V]=svd(A);
>> c5=V\(S\(U\v))
c5 =
1.64428682050583
-3.05786465731645
% Ecuaciones normales
% Segunda respuesta
% Factorizacin QR
% Tercera respuesta
% Gram-Schmidt modi.
% Cuarta respuesta
% Matriz pseudoinversa
% Quinta respuesta
% Descomposicin val. sing.
% Sexta respuesta
function demoXexp(n)
% demoXexp
Ajuste datos sintticos a y = c(1)*x*exp(c(2)*x)
%
% Dato: n = (opcional) nmero de puntos sintticos a generar.
%
defecto=200
%
if nargin<1, n=200; end
x0=0.01;
x=linspace(x0,2,n);
y=5*x.*exp(-3*x);
yn=abs(y+0.05*(rand(size(x))-0.5));
v=log(yn./x);
x=x(:); v=v(:);
A=[ones(size(x)) x];
c=A\v;
c1 = %18.15f c2 = %18.15f\n,...
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));
88/89
89/89
0.6
0.5
c1 = 5.6363 c2 = 3.1949
0.4
100 puntos "sintticos"
0.3
0.2
0.1
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
Funciones de interpolacin
y aproximacin
1/59
2/59
ndice
Introduccin
Interpolacin polinmica
Polinomios de Lagrange
Polinomios de Newton
Polinomios Ortogonales
Interpolacin de Hermite
Splines cbicas
Curvas de Bzier
SURANAREE
3/59
INSTITUTE OF ENGINEERING
UNIVERSITY OF TECHNOLOGY
Introduccin
Visual Interpolation
40
40
km/h
60 80 100 12
0
0
Why
Splines? 1120
kmh
0
4
== interpolation
80
100
20
60
11 12 1
10
2
9
3
4
8
7
5
6
InterpolacinInterpolation
vs. aproximacin
o ajuste.
v.s. Curve
Fitting
4/59
known
data
Datos conocidos
curve
fit aproximada
Funcin
interpolation
Interpolacin
x
x
Curve fitting:
fit function
data notuna
exactly
agree o el
El ajuste,
en general,
busca &predecir
tendencia
comportamiento
de datospasses
de acuerdo
un modelo
Interpolation: function
exactlycon
through
known dado;
data
En general,
la interpolacin, que la funcin, o funciones, a que de lugar incluya
todos loso datos
conocidos,
habitualmente
buenos.
la aproximacin
ajuste
busca predecir
una tendencia,
o el
8/83
10
5/59
Por
ejemplo,
encontrar
el valor during
de y an
para
un x cualquiera en un
Consider
a set of
xy data collected
experiment.
experimento
en el technique
que se han
obtenidoy at
unx conjunto
de puntos
We use interpolation
to estimate
where theres
no data.
.x; y/.
y
Datos
knownconocidos
data
La interpolacin se puede ver como lo inverso de la evaluacin de una funcin, en la que se pide un valor de y para
cada valor dado de x. En la interpolacin, dados esos puntos
y, calcular la funcin que pueda generarlos.
Cul is
esthe
el valor de
What
y que corresponde
a
corresponding
value
of
y for
este
x? this x ?
5/82
6/59
Tambin, aproximar una funcin a otra para evitar tener que evaluar su
complicada expresin; por ejemplo la de la distribucin normal estndar,
1
N.x/ D p
2
y 2 =2
dy:
Tambin, poder derivar o integrar valores dados en forma de tabla, hacer pasar
por datos discretos, o cerca de ellos, funciones continuas y derivables, : : :
Interpolacin numrica
7/59
Funciones racionales
Funciones trigonomtricas,
:::
cj j .xi / D f .xi /;
i D 1; : : : ; m:
j D1
Este sistema:
8/59
9/59
% Interpolacion_eje1.m
xdat = [1 5 10 30 50];
ydat = log(xdat);
plot(xdat,ydat, o)
hold on
pause
p = polyfit(xdat,ydat,2)
xvet=1:0.1:50;
plot(xvet,polyval(p,xvet))
hold on
pause
p = polyfit(xdat,ydat,4)
plot(xvet,polyval(p,xvet))
>> Interpolacion_eje1
p =
-0.0022
0.1802
p =
-0.0000
0.0017
0.3544
-0.0529
0.6705
-0.6192
30
40
-1
10
15
20
25
35
45
50
10/59
Interpolacin polinmica
11/59
Teorema Principal de la interpolacin polinmica Sean .x1; y1/, .x2; y2/, : : : ; .xn; yn/
n duplas de puntos con distintas xi . Existe un polinomio, y slo uno, P , de grado n
menor, que satisface P .xi / D yi , i D 1; : : : ; n.
1o
cj j .xi / D f .xi /;
i D 1; : : : ; n;
siendo
ci la solucin
3 2 3los 2
3
1
x1n
c1
f .x1 /
6
7
n 17 6 7
: x2: 5 4c:2 5 D 4f .x
2 /5.
:
::
::
::
::
xnn 1
cn
f .xn /
12/59
13/59
% Interpolacion_eje2
year=[2007 2008 2009 2010 2011 2012];
precio=[133.5 132.2 138.7 141.5 137.6 144.2];
M = vander(year);
a = M\precio;
x=linspace(min(year),max(year));
p=polyval(a,x);
plot(year,precio ,o,x,p,-);
hold on
pause
x1 = 2007:1:2012;
y = interp1(year,precio,x1,linear);
plot(year,precio,o,x1,y,-)
hold on
>> Interpolacion_eje2
Warning: Matrix is close to singular or badly scaled.
Results may be inaccurate. RCOND = 7.482181e-033.
> In Interpolacion_eje2 at 4
146
pause
144
ys = year-mean(year);
A = vander(ys);
a = A\precio;
ds = x - mean(year);
p = polyval(a,ds);
plot(year,precio,o,x,p,-);
142
140
138
136
134
132
130
128
2006
2006.5
2007
2007.5
2008
2008.5
2009
2009.5
2010
2010.5
2011
14/59
Polinomios de Lagrange
Dados dos puntos .x1; y1/ y .x2; y2/, el polinomio lineal que los interpola es
p1.x/ D c1 C c2x;
siendo
y2 y1
y1 x 2 y2 x 1
y c2 D
:
x2 x1
x2 x1
Sustituyendo estas expresiones en la de p1.x/ y reordenndola queda
c1 D
p1.x/ D y1
x
x1
x2
x
C y2
x2
x2
x1
D y1l1.x/ C y2l2.x/:
x1
15/59
lj .x/ D
kD1
kj
n
Y
.x
.xj
xk /
j D 1; : : : ; n:
;
xk /
kD1
kj
lj .xi / D ij D
1 si i D j
0 si i j
1 y cumplen que
i; j D 1; : : : ; n:
16/59
l2
l4
0.8
l3
0.6
l1
l5
lk(x)
0.4
0.2
0
0.2
0.4
0.6
0
0.1
0.2
0.3
0.4
0.5
x
0.6
0.7
0.8
0.9
15/83
Con esta base, la matriz que veamos antes para elaborar la interpolacin, A, ya
no es la de Vandermonde, sino la identidad, I, y el polinomio de interpolacin
a
10
17/59
% 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)
18/59
6
2
1.5
0.5
0.5
1.5
19/59
% do_Lagrange_int_gas_1.m
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);
ds
= x - mean(year);
p=polyval(l,ds); plot(year,precio ,o,x,p,-);
145
140
135
130
2007
2008
2009
2010
2011
2012
20/59
Polinomios de Newton
j .x/ D
.x
kD1
xk /;
j D 1; : : : ; n:
21/59
2.5
Newk(x)
la figura
se las
venfunciones
las funciones
para 1;00 1;50 2T .
En la En
figura
se ven
basebase
paradexNewton
D 0 0;50
T
1.5
1
2
0.5
3
4
5
0.5
0
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
22/58
22/59
32 3 2 3
c1
y1
5 4c25 D 4y25 :
x2 /
c3
y3
Sustituyendo
2
32 3 2
3
1 0 0
c1
27
41 2 05 4c25 D 4 15 ;
1 3 3
c3
0
cuya solucin es c D 27 13
p.x/ D
4T . El polinomio es pues
27 C 13.x C 2/
4.x C 2/x:
23/59
24/59
2
1
40
0
0
1
1
x3
x1
y1/=.x2
x1/ se llega a
x1/.
y2
x2
y1
x1
y f x1; x3
y3
x3
y1
:
x1
25/59
f x1; x3
x3
f x1; x2
x2
no trivial
f x2; x3
x3
f x1; x2
:
x1
Lo no trivial
f x1 ; x3
x3
26/59
f x1 ; x2
x2
D
D
y3 y1
x3 x1
y2 y1
x2 x1
x3
y3 y2
x3 x2
x2
C
y2 y1
x3 x2
.x3
x1 /
.x3
y3 y1
x3 x1
x2 /.x3
.y2 y1 /.x3 x2 /
.x2 x1 /.x3 x2 /
x3
x1 /
.y2 y1 /.x2 x1 /
.x2 x1 /.x3 x2 /
x1
y3
y2 C y2
y3 y2
x3 x2
x3
y1
.x3
x2 /.x3
y2 y1
x2 x1
x1
y2 y1
x2 x1
x2 C x2
.x3
x1 /
f x2 ; x3
x3
f x1 ; x2
x1
f x1
c2 D
f x1; x2
y1
y2
x2
f x2; x3
c3 D f x1; x2; x3 D
x3
y2 y1
x2 x1
y1
x1
f x1; x2
D
x1
y3 y2
x3 x2
x3
En general
f xi ; : : : ; xj D
f xiC1; : : : ; xj
xj
f xi ; : : : ; xj 1
:
xi
y2 y1
x2 x1
x1
x1 /
27/59
f ;
f ; ;
f ; ; ;
f x1; x2
x2 f x2
f x1; x2; x3
f x2; x3
x3 f x3
f x2; x3; x4
f x3; x4
x4 f x4
28/59
3
2
0 2
y 3
13
4
5
3
f
3
3
2
13
4
5
3
f ; f ; ; f ; ; ;
1
2
1
6
2
3
1
3
5
3
El polinomio es entonces
p3.x/ D 3 C 21 .x
D 3
29/59
1/ C 31 .x
10
16
x C x2
3
3
1/ x
3
2
2.x
1/ x
3
2
2x 3:
30/59
%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
>> do_newton_int_1
n =
0
1
0
-1
0
DD =
-6
6
-2
1
0
0
0
2
1
0
0
6
7
0
0
6
27
0
0
0
60
0
0
0
0
n0 =
Columns 1 through 3
0.000000000000000
1.000000000000000
Columns 4 through 5
-1.000000000000000
0
n1 =
0
1
0
-1
0
DD =
0
6
7
1
0
6
27
5
1
0
60
12
1
0
0
0
6
0
0
0
-6
0
0
0
0
60
50
40
30
0.000000000000000
20
10
10
2
31/59
-3.333333333333334
0.333333333333333
-1.666666666666667
0
0
Polinomios Ortogonales
32/59
hp; qi D
p.x/q.x/!.x/ dx;
hpi ; pj i D
1
O de ponderacin.
1 para i D j
0 para i j:
33/59
1/=2; .5x 3
3x/=2;
70x 3 C 15x/=8; : : : ;
34/59
Smbolo
Intervalo
Pk
Tk
Uk
Jk
Lk
Hk
1; 1
1; 1
1; 1
1; 1
0; 1/
. 1; 1/
Funcin de peso
1
.1 x 2 / 1=2
.1 x 2 /1=2
.1 x/ .1 C x/ ; ; >
e x
2
e x
35/59
kPk 1.x/:
36/59
1; 4x 3
Tk 1.x/:
3x;
8x 2 C 1; 16x 5
20x 3 C 5x; : : : ;
37/59
0.5
-0.5
-1
-1
-0.8
-0.6
-0.4
-0.2
0
x
0.2
0.4
0.6
0.8
38/59
If we know a great deal about the function f , then we may be able to choose points so as to
reduce the error. If we dont have such information about the function, however, the best we can
Los do
puntos
de Chebyshev
son
abcisaspoints
de los
puntos
igualmente
espaciados
is to reduce
the product (a).
Thelas
Chebyshev
effectively
minimize
the maximum
value of
2
the product
lo largo
de la (a).
semicircunferencia de radio 1 en R .
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.2
0.4
0.6
0.8
Recall Usando
the processpuntos
for selecting
points
over an
interval de
[a, b],
as shown in Figure 1:
Ejemplo
de Chebyshev
Chebyshev
como
abcisas
interpolacin,
1. Draw
the semicircle
[a, b] centered
at the 2midpoint ((a + b)/2).
interpolar
puntos
de la on
funcin
de Runge
2. To select N + 1 points, split the semicircle into N
1 arcs of equal length.
f .x/ D
en el
2
(for j = 0, 1, . . . , N )
intervalo 1; 1.xj = a +2 b + b 2 a cos jN
39/59
40/59
1.2
1
1.5
0.8
1
0.6
0.4
0.5
0.2
0
0
0.5
1
0.5
0.5
0.2
1
0.5
0.5
% 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)
41/59
1
nC1
nC1
X
f .xi / C
i D1
c0
n
i
kD1
2
nC1
nC1
X
!
Tk .xi /f .xi / Tk .x/:
i D1
ck
donde
ck Tk .x/ D u0
xu1;
un D cn; un 1 D cn 1 C 2xun y
uj D cj C 2xuj C1 uj C2; j D n
2; n
1; : : : ; 0:
Los dos programas que siguen calculan ese polinomio y lo evalan para
determinados puntos.
function [c,x] = chebpol_int(fn,n)
x = cos((2*(1:n)-1)*pi/2/n);
y = fn(x);
T = [zeros(n,1) ones(n,1)];
c = [sum(y)/n zeros(1,n-1)];
a = 1;
for k = 2:n
T = [T(:,2) a*x.*T(:,2)-T(:,1)];
c(k) = sum(T(:,2).* y)*2/n;
a = 2;
end
end
function u = chebpol_clenshaw(c,x)
n = length(c);
u = c(n)*ones(size(x));
if n > 1
ujp1 = u;
u = c(n-1) + 2*x*c(n);
for j = n-2:-1:1
ujp2 = ujp1;
ujp1 = u;
u
= c(j)+2*x.*ujp1-ujp2;
end
u = u-x.*ujp1;
end
end
Si se utilizan con
>>
>>
>>
>>
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),r,x,f(x),ok)
42/59
43/59
Da como resultado:
1.2
0.8
0.6
0.4
0.2
0.2
1
0.8
0.6
0.4
0.2
0.2
0.4
0.6
0.8
44/59
Una mejora consiste en interpolar cada intervalo entre datos mediante un nico
polinomio u otra funcin.
45/59
Interpolacin de Hermite
Esta interpolacin tiene en cuenta los valores de la funcin que aproximar por
interpolacin en puntos concretos y el de sus derivadas.
xi / C c.x
xi /2 C d.x
xi /2.x
xd /;
Necesitaremos calcular a, b, c y d .
a C b.xd
b D si
b C 2c.xd
xi /.x
xd / C .x
xi / C c.xd
xi / C d.xd
xi / 2
xi /2 .
D yd
xi /2 D sd :
46/59
47/59
Escribiendo esto en
2
1
6
60
6
41 xi
0
forma matricial,
0
1
xd
1
32 3 2 3
0
0
a
yi
76 7 6 7
0
0
7 6 b 7 6 si 7
76 7 D 6 7:
.xd xi /2
0
5 4 c 5 4yd 5
2.xd xi / .xd xi /2
d
sd
1/ parmetros de los
El que se requiera que interpolen esos n datos aade 2.n 1/ ecuaciones, pues
cada n 1 cbica debe verificar los valores en sus extremos.
El total de ecuaciones es 3n
parmetros libres.
1/
3n C 4 D n
48/59
1
0.8
0.6
>>
>>
>>
>>
>>
>>
x = -3:3;
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t);
plot(x,y,o,t,p,-)
legend(datos,pchip,3)
0.4
0.2
0
0.2
0.4
0.6
0.8
1
3
datos
pchip
2
49/59
Splines cbicas
Splines
Paul de Faget de Casteljau 1930French mathematician/physicist
1958-1992: Citron; unpublished work in 1958
50/59
BIC SPLINES
51/59
Splines represent an alternative approach to data interpolation. In polynomial interpolation, a single formula, given by a polynomial, is used to meet all data points. The idea of
splines is to use several formulas, each a low-degree polynomial, to pass through the data
El ejemplo
ms simple es un spline lineal, en el que se conectan los puntos a
points.
The simplestsegmentos
example of a spline
is a linear spline, in which one connects the dotswith
interpolar mediante
de recta.
straight-line segments. Assume that we are given a set of data points (x1 , y1 ), . . . , (xn , yn )
with x1 < < xn . A linear spline consists of the n 1 line segments that are drawn
between neighboring pairs of points. Figure 3.12(a) shows a linear spline where, between
En la figura
), the linear
ai +spline
bi x is cbica.
each se
neighboring
pairun
of points
(xi , yde
muestra
ejemplo
y elfunction
mismoy =
con
i ), (xspline
i+1 , yi+1lineal
drawn through the two points. The given data points in the gure are (1, 2), (2, 1), (4, 4),
and (5, 3), and the linear spline is given by
y
(a)
(b)
Figure 3.12 Splines through four data points. (a) Linear spline through (1,2), (2,1),
(4,4), and (5,3) consists of three linear polynomials given by (3.15). (b) Cubic spline
52/59
Como en el caso de Hermite, las splines cbicos para interpolar n puntos de una
funcin imponen 3n 4 condiciones, ms n 2 adicionales por requerirse la
continuidad de la segunda derivada.
Las primeras y segundas derivadas en los extremos son iguales dos a dos, etc.
53/59
p1.x/ D 1 C 2x C 3x 2 C 4x 3
p2.x/ D 1 C 2x C 3x 2 C 4x 3:
El que las cbicas pasen por los puntos dados impone las siguientes condiciones
1 C 2x1 C 3x12 C 4x13
1 C 2x2 C 3x22 C 4x23
1 C 2x2 C 3x22 C 4x23
1 C 2x3 C 3x32 C 4x33
D
D
D
D
y1
y2
y2
y3 :
54/59
23 C 64x2 D 23 C 64x2:
Por definicin, se impone que las segundas derivadas en los extremos sean cero,
lo que hace que
23 C 64x1 D 0 y 23 C 64x3 D 0:
0
0
1
1
0
0
0
0
0
0
x2
x3
1
0
0
0
0
0
x22
x32
2x2
2
0
2
32 3
0
1
07 62 7
x23 7 63 7
x33 7 64 7
3x22 7 61 7
76 7
6x2 5 42 5
0
3
6x3
4
2 3
D
y1
6yy27
6 37
6y47
607:
607
4 5
0
0
55/59
Una sesin de trabajo para comparar los resultados con Hermite es la que sigue.
1.5
0.5
x = -3:3;
y = [-1 -1 -1 0 1 1 1];
t = -3:.01:3;
p = pchip(x,y,t);
s = spline(x,y,t);
plot(x,y,o,t,p,-,t,s,-.)
legend(datos,pchip,spline,4)
0.5
1.5
3
datos
pchip
spline
2
Curvas de Bzier
56/59
Dadas a conocer en los aos 60 del siglo XX a travs del trabajo de Pierre
Bzier en Renault y Paul de Faget de Casteljau en Citron.
Se pueden ver como splines que a partir de unos puntos de control, o polgono
de control, permiten al usuario controlar las pendientes en esos puntos y
modelizar curvas a voluntad, escalndolas sin lmite. Su aplicacin inicial era el
diseo de carroceras de automviles, barcos, hlices de barcos, etc.
Las funciones de base de las curvas de Bzier son los polinomios de Bernstein,
conocidos desde 1912.
Una curva de Bzier lineal que pasa por dos puntos P0 D .x0; y0/ y
P1 D .x1; y1/ es la lnea recta
B.t/ D P0 C t.P1
P0 / D .1
t/P0 C tP1 ;
0 t 1:
57/59
t/2 P0 C 2.1
t/t P1 C t 2 P2 ;
0 t 1:
Una cbica definida por cuatro puntos de control P0 D .x0; y0/, P1 D .x1; y1/,
P2 D .x2; y2/ y P3 D .x3; y3/ es la curva
B.t/ D .1
t/3 P0 C 3.1
t/t 2 P2 C 3t 2 P3 ;
Bzier de grado 4
. De ms
0 t 1:
Bzier de grado 5
are splines
that allow
user.1;
to control
at the los
knots.de
In return fo
Ejemplo A partir Bzier
de loscurves
puntos
de inicio
y the
final
1/ y the
.2;slopes
2/, con
the extra freedom, the smoothness of the rst and second derivatives across the knot, whic
control .1; 3/ y .3; 3/,
vamosfeatures
a calcular
la curva
detheBzier
are automatic
of the cubic
splines of
previouscorrespondiente.
section, are no longer guaranteed
splines
appropriate
for casesparamtrica
where corners (discontinuous rst derivatives) an
Vamos a utilizar lasBzier
curvas
de are
Bzier
en forma
58/59
donde
x.t/ D 1 C 6t 2 5t 3
y.t/ D 1 C 6t 6t 2 C t 3 :
(x3, y3)
(x4, y4)
(x1, y1)
59/59
Las B-splines son curvas hechas con trozos polinmicos de grado p. Una curva
de Bzier frente a una B-spline con los mismos puntos de control es esta.
370
8 Polynomial Interpolation
Fig. 8.15. Comparison of a Bezier curve (left) and a parametric B-spline (right).
The vertices of the characteristic polygon are denoted by
Las B-splines pueden ser evaluadas de una manera numricamente estable por el
algoritmo de C. de Boor. Su extensin, las NURBS.
Fig. 8.16. Some parametric B-splines as functions of the number and positions
of the vertices of the characteristic polygon. Notice in the third gure (right) the
localization eects due to moving a single vertex
Non-uniform
rational
B-splines
La Transformada de Fourier
1/39
2/39
ndice
Introduccin
Interpolacin trigonomtrica
Nmeros complejos
Introduccin
3/39
Tambin:
4/39
5/39
6/39
1
i
h
i
aj cos.2f0tj / C bj sen.2f0tj / ;
j D1
2
bj D
T
para j D 0; 1; : : :
para j D 1; 2; : : :
1
2
Sinusoides.
f0 es la frecuencia fundamental, inversa del periodo T : f0 D 1=T .
7/39
Espacio de Hilbert
FOURIER ANALYSIS
8/39
siguiente
funcin
y.tfuncin
/ D Ay.t
C1Acos.!
t C 0t/.C /.
Veamos
la siguiente
/D
0C
0 C C10cos.!
FOURIER ANALYSIS
y(t)
y(t) 2
C1
21
a0
T
1
0
A0
2
T
2
(a)
t, s
t, rad
t, s
2
2
t, rad
(a)
A0
a0
B1 sin (0t)
10
A cos (0t)
b 1 sen(10t)
0
1
a0 D 1;7
C1 D 1
! D 2f D 2=T D 2=.1;5s/
Fase, D =3 D 1;0472 radianes .0;25s/
Frec. fundamental, f D 1=T D 1=.1;5s/ D 0;6667 Hz
(b)
a 1 cos(0t)
a1 D 0;5
b1 D 0;866
y.t / D a0 C a1 cos.!0 t / C b1 sen.!0 t /
9/39
Decompo
composit
signal in
frequenc
Interpolacin trigonomtrica
10/39
n
cumplindose en los puntos .0; x0/;
2
; x1
n
4
; x2
n
;:::;
2.n 1/
; xn 1
n
o
.
Tren de impulsos.
11/39
Ejemplo Interpolemos
4
6
a los datos
;
3
;
;
5
; 4 ;2
.0; 1/; 2
4
4
el polinomio
a0
a2
p.t / D
C a1 cos .1 t / C cos .2 t/ C
2
2
Cb1 sen .1 t/ C b2 sen .2 t/ :
12/39
Simplificando resulta as
21
2
61
62
6
61
42
1
2
1
0
1
0
1
2
1
2
1
2
1
2
32 3 2
a0
00
6
7 6a17
6
1 07 6 7
7
7 6a27 D 6
6
7
6
0 07
5 4b1 5 4
10
b2
es
32 3 2
a0
0
6
7
21 7 6a1 7
2 4 76 7 6
7 6a27 D 6
76 7 6
2 22
5 4b1 5 4
4
2 23
b2
4
1
7
37
7:
55
2
1
7
37
7:
55
2
13/39
Resolviendo da
2 13
2 3
2
a0
6 7
6a 7 6 37
6 17 6 7
6 7 6 97
6a27 D 6 2 7 :
6 7 6 7
4b1 5 6 1 7
4 25
b2
0
Nmeros complejos
En su forma polar se5 escribe z D re i' D r cos ' C i sen ' , donde
p
r D x 2 C y 2 y ' D arctan.y=x/.
5
14/39
15/39
e i= 1 + 0i
i
2
=i
i
e4
e0= 1 + 0i
x
e 10.2
e Unit
D circle
cos in C
sen plane.
cos
Complex
C i sennumbers
Figure
thei complex
of the form ei for some
D cos cos
sen
sen
circle.
C i sen cos
C sen
cos :
angle have magnitude
one
and lie
on the
unit
6 i.C
/
Reordenando, e
D cos. C
/ C i sen. C
/. Por tanto, el producto de dos
nmeros complejos en la circunferencia de radio
unidad es otro nmero de la
z = a + bi = rei ,
(10.1)
misma circunferencia cuyo ngulo es
la suma de los dos precedentes.
where r is the complex magnitude |z| = a 2 + b2 and = arctan b/a.
i
i plane corresponds
i e i to complex numbers of magnitude
The unit circle in the complex
6
Es interesante saber que cos D e Ce
y sen D i e
.
2
r = 1. To multiply together the two
numbers ei and2ei on the unit circle, we could convert
16/39
, tienen inters:
1 y 1.
En el plano complejo
hay muchos. Por ejemplo, i es una raz cuarta de 1:
4
p
i4 D
1 D . 1/2 D 1.
)LIWKURRWVRIXQLW\
L
17/39
Es fcil vernque,
para una nicualquiera,
nmero complejo !n D e i2=n es
= cos(2/n)
sin(2/n) =ele2i/n
una raz
unidad (tambin lo es !n D e i2=n).
forn-sima
primitiveprimitiva
nth rootde
ofla
unity
En la figura
la context,
raz cuarta
debyla unidad
!4 D e
k
factorsseinve
this
areprimitiva
then given
n or
k k = 0, . .las
tres. Son,
!4k , k D 0; 1; 2; 3.
by en
. , npotencias
1
n ,general,
i2=4
y las otras
i = 43 = 41
....
42 = 42 =
...
....
..................
.... .......2/4
...
....
.
.. 1
1 ............................................................................................
...
....
....
....
..
..
= 40 = 44
i = 41 = 43
De otra manera, la raz n-sima de la unidad es primitiva, si slo si sus k-simas potencias, k D 0; 1; : : : ; n 1 son distintas. Las races 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 raz 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 raz cuarta primitiva de 1.
18/39
Tambin que
i2=n
, con n > 1,
1 C ! C ! 2 C ! 3 C C ! n 1 D 0;
1 C ! 2 C ! 4 C ! 6 C C ! 2.n 1/ D 0;
1 C ! 3 C ! 6 C ! 9 C C ! 3.n 1/ D 0;
:::
1 C ! n 1 C ! .n 1/2 C ! .n 1/3 C C ! .n 1/.n 1/ D 0:
1 C ! n C ! 2n C ! 3n C C ! n.n
1/
D 1 C 1 C 1 C 1 C C 1 D n:
!jk D
n si k=n es entero,
0 en otro caso.
19/39
i 2=n
20/39
2 0 0
32
3
! !
!0 !0
x0
6! 0 ! 1
7
! 2 ! n 1 7 6 x1 7
6
6
7
7
4
2.n 1/ 7
7 6 x2 7 :
7 D p1 6! 0 ! 2
!
!
6
7
7
n6 :
:::
:::
::: 7
4 ::
5 4 ::: 5
5
2
xn 1
! 0 ! n 1 ! 2.n 1/ ! .n 1/
1
3
A la matriz simtrica
3
!0 !0
!0 !0
6! 0 ! 1
!2 !n 1 7
6
0
2
4
2.n 1/ 7
7
!
!
!
!
F n D p1n 6
6 :
:::
:::
::: 7
5
4 ::
2
! 0 ! n 1 ! 2.n 1/ ! .n 1/
2
21/39
F n1
2
!0 !0
!0
6! 0 ! 1
! 2 !
6
6
! 4 !
D p1n 6! 0 ! 2
6 ::
:::
:::
4 :
! 0 ! .n 1/ ! 2.n 1/ !
!0
.n 1/
7
7
2.n 1/ 7
7
7
:::
5
.n 1/2
F n 1 D F n:
22/39
32
1 1 1 1
61 ! ! 2 ! 3 7 6
1
76
p 6
4 41 ! 2 ! 4 ! 6 5 4
1 !3 !6 !9
3
1
07
7D
15
0
2
32
1 1 1 1
6
6
i 1 i7
1 61
76
2 41 1 1 15 4
1 i 1 i
3 2 3
1
0
6 7
07
7 D 617 :
15 405
0
1
i=2
23/39
Si utilizamos la rutina de Matlab para hacer TDF, fft, hay que tener en
cuenta que su normalizacin es un poco diferente, y hay que usar
fft(x)/sqrt(n). Para la inversa ifft(y)*sqrt(n). En efecto:
24/39
25/39
Este algoritmo sigue la estrategia del divide y vencers para hacer mucho ms
rpido la TDF. Requiere O.n log n/ operaciones.
26/39
2
3
0
0
0
0
! !
!
!
6! 0 ! 1
!2 !n 1 7
6
7
6! 0 ! 2
4
2.n 1/ 7
!
!
Mn D 6
7;
6 :: ::
:::
::: 7
4 : :
5
2
! 0 ! n 1 ! 2.n 1/ ! .n 1/
27/39
i2=4
Reordenando las operaciones de tal manera que los trminos pares aparezcan
primero se tiene que
z0 D ! 0x0 C ! 0x2 C ! 0 ! 0x1 C ! 0x3
0
2
1
0
2
z 1 D ! x0 C ! x2 C ! ! x1 C ! x3
z2 D ! 0x0 C ! 4x2 C ! 2 ! 0x1 C ! 4x3
0
6
3
0
6
z3 D ! x0 C ! x2 C ! ! x1 C ! x3 :
, la TDF es
28/39
Los trminos entre parntesis en las primeras dos lneas se repiten en las dos
siguiente. Hagamos
u 0 D 0 x0 C 0 x2
u 1 D 0 x0 C 1 x2
v0 D 0x1 C 0x3
;
v1 D 0x1 C 1x3
29/39
30/39
31/39
j
n 1
n 1
n 1
X
X
d c
1 X
1
e
j
xj D p
yk ! k D p
yk e i2kj=n D
yk p
n kD0
n kD0
n
kD0
c/
Q.t/
Esta expresin la podemos ver como la que materializa, mediante TDF, una
interpolacin de los puntos .tj ; xj / con funciones de base trigonomtricas
i 2k.tj c/
d c
p
n
k D 0; : : : ; n
n 1
i
32/39
2k.tj c/
2k.tj c/
.ak C i bk / cos
C i sen
;
d c
d c
kD0
n 1
i
2k.tj c/
ak cos
d c
2k.tj c/
bk sen
:
d c
kD0
a0
2
Pn .t / D p C p
n
n
1
2
i
2k.tj c/
ak cos
d c
2k.tj c/
an =2
n.t c/
bk sen
C p cos
d c
d c
n
kD0
satisfaciendo Pn.tj / D xj , j D 0; : : : ; n
1.
33/39
34/39
2
6
6
6
6
6
yD6
6
6
6
4
3
5;5154
1;0528 C 3;6195i 7
7
1;5910 1;1667i 7
7
0;5028 0;2695i 7
7:
0;7778
7
0;5028 C 0;2695i 7
7
1;5910 C 1;1667i 5
1;0528 3;6195i
1;0528
5;5154
p
p
p
cos 2 t 3;6195
sen 2 t
8
2
2
p
p
C 1;5910
cos 4 t C 1;1667
sen 4 t
2
2
0;5028
p
p
p
cos 6 t C 0;2695
sen 6 t 0;7778
2
2
8
1;95
0;7445 cos 2 t
cos 8 t
2;5594 sen 2 t
0;275 cos 2 t:
35/39
-1
-2
y
-3
-4
-5
-6
-7
0.1
0.2
0.3
0.4
0.5
Tiempo
0.6
0.7
0.8
0.9
36/39
a0
2
Pm .t / D p C p
n
n
1
2
i
2k.tj c/
ak cos
d c
2k.tj c/
am =2
n.t c/
bk sen
C p cos
d c
d c
n
kD0
Esto quiere decir que para el ejemplo anterior, los polinomios trigonomtricos de
interpolacin P4.t / y P6.t / sern
P4 .t/ D
P6 .t/ D
1;95
0;7445 cos 2 t
1;95
0;7445 cos 2 t
0;3555 cos 6 t:
37/39
1
-1
-2
-3
-4
-5
-6
-7
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
-1
-2
-3
-4
-5
-6
-7
38/39
0.2
0.15
0.15
0.1
0.1
0.05
0.05
-0.05
-0.05
-0.1
-0.1
-0.15
-0.15
-0.2
-0.2
-0.25
50
100
150
>>
>>
>>
>>
>>
200
250
300
-0.25
50
100
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)
150
200
250
300
1/89
2/89
ndice
Introduccin
Fundamentos tericos
Sistemas indeterminados
Mtodo de Gram-Schmidt
Factorizacin QR
3/89
Introduccin
Cualquier medida siempre est sujeta a errores, por pequeos que sean, por el
desajuste de la calibracin del aparato que la realiza, su propia imperfeccin, las
condiciones ambientales, las vibraciones, el envejecimiento de la maquinaria, etc.
4/89
5/89
m=n
m=n
m=n
rango(A) = m = n
rango(A) = m = n
m=n
rango(A) < m = n
rango(A) = m = n
rango(A) < m = n
1a
1b
1a
m>n
m>n
1b
m>n
m>n
rango(A) = n < m
rango(A) = n < m
m>n
m>n
rango(A) = n < m
2a
2b
2a
2b
m<n
m<n
rango(A) = m < n
m<n
rango(A) = m < n
rango(A) = m < n
3a
3a
m<n
m<n
m<n
3b
3b
=
5/101
'*/*5*0/
IRUDOO [ LQ Rn
b
a8
Ax
01234
a6
Im(A)
Ax
Ax
WR A[ IRURWKHU [
7/89
Que minimice
m
X
T
aj x
j D1
Que minimice
mKax ajT x
j
bj
bj
8/89
9/89
10/89
5
4
3
2
1
1
1
61
6
41
1
1
2
3
4
1
47
7
95
16
2 3
x1
4x2 5
x3
2 3
2
637
7
D 6
455 :
6
x
Con una tctica de ajuste por mnimos cuadrados, tambin con Matlab:
>> x=[1 2 3 4];
>> y=[2 3 5 6];
>> p=polyfit(x,y,2)
p =
-0.0000
1.4000
0.5000
11/89
12/89
0.5
1.5
2.5
3.5
4.5
13/89
14/89
15/89
Sistemas de navegacin
VOR, DME, ADF, RMI, MLS
16/89
Fundamentos tericos
Teorema
(1)
r 0
D
;
0 0
1 2 r > 0:
Si las matrices U y V se escriben como
U D u1 ; : : : ; um
y V D v1 ; : : : ; vn ;
los ui y vi son los vectores singulares izquierdos y derechos, respectivamente, correspondientes a los valores
singulares i , i D 1; : : : ; r.
17/89
1
r 0
xDV
UTb
0 0
Teorema El vector
es la solucin del problema
minimizar
kAx bk2
x 2Rn
que hace mnima kxk2 , donde A 2 Rmn y rango.A/ D r mKn.m; n/.
Definicin A la matriz
r 1 0
A DV
U T 2 Rnn
0 0
18/89
bk2 es
x D A b:
a8
a6
19/89
.AB/ B A :
D
D
D
D
A
A
AA
A A:
Las frmulas para obtener las matrices de proyeccin ortogonal sobre los cuatro
subespacios fundamentales de A son
P Im.A / D AA
P ker.A T / D I AA
P Im.A T / D A A
P ker.A /
D I
AA
donde S D fx W Ax D bg:
20/89
bk2:
21/89
22/89
a2
a 2x 2
A TAx D A T b
Ax
a 1x 1
Im(A)
a1
23/89
Si la matriz A T A es invertible,
rDb
Ax D .I
P Im.A //b;
24/89
Sistemas indeterminados
25/89
80123A
x7
0123A
x9
x7
u
x
26/89
x2
Im.A T /
1.5
(3/5, 6/5) = x
(1, 1) = x 1
subespacio de soluciones
(3, 0)
1
x1
ker.A/
x DA T AA
T
1
1
3 1
1
3=5
bD
3D
D
:
1 2
2
2
6=5
5 2
SOLUTION FOR A SYSTEM OF LINEAR EQUATIONS
Im.A T /
x2
1.5
(3/5, 6/5) = x
(1, 1) = x 1
subespacio de soluciones
(3, 0)
1
ker.A/
A minimum-norm solution.
x1
75
27/89
28/89
ndice
Introduccin
Fundamentos tericos
Sistemas indeterminados
Mtodo de Gram-Schmidt
Factorizacin QR
29/89
30/89
31/89
por lo que, a efectos numricos en esa mquina, esta matriz ser singular y de
rango 1: las ecuaciones normales no serviran.
32/89
Un ejemplo sera
2
3
1 1 1 1
60
7
6
7
6
7
AD6 0
7;
6
7
0 5
4
0
2
1
6
61
AT A D 6
41
1
1
1
1
1
1
1
1
1
1
7
17
7:
15
1
33/89
Mtodo de Gram-Schmidt
e1 D
e2
e3
a3
e3
a3
e2
e1
a 3 |e 1 e 1
e 1
e1
|
a3
a 3 a 3 |e 1 e 1 a 3 |e 2 e 2
a 3 |e 2 e 2
34/89
35/89
u.j; j /
v
uX
u m
t
e.k; j /2
kD1
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
36/89
37/89
Gram-Schmidt modificado
38/89
En 1966 J.R. Rice modific el orden de las operaciones del mtodo haciendo
que en una etapa k en vez de sustraer del vector ak sus proyecciones sobre los
k 1 vectores e i ya calculados, el vector e k se hace igual a ak al principio y
luego se le van sustrayendo su proyeccin en e 1, pasando el resultado a ser el
nuevo e k , el cual se proyecta luego en e 2, y as sucesivamente en cada uno de
los k 1 e i anteriores.
El resultado es sustancialmente mejor numricamente.
Algoritmo clsico de Gram-Schmidt
for j D 1 to n
e.1 W m; j /
a.1 W m; j /
for i D 1 to j 1
u.i; j /
e.1 W m; i /T a.1 W m; j /
e.1 W m; j /
e.1 W m; j / u.i; j / e.1 W m; i /
end
v
uX
u m
t
e.k; j /2
u.j; j /
kD1
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
e.1 W m; j /
end
e.1 W m; j /=u.j; j /
39/89
function [x r2 e]=Grmsch_2(A,b)
% Se resuelve Ax=b mediante el mtodo de Gram-Schmidt clsico
[m,n]=size(A); x=zeros(n,1); e=zeros(m,n); u=triu(zeros(n,n));
for j=1:n
e(:,j)=A(:,j);
for i=1:j-1
u(i,j)=e(:,i)*A(:,j);
e(:,j)=e(:,j)-u(i,j)*e(:,i);
end
u(j,j)=norm(e(:,j));
e(:,j)=e(:,j)/u(j,j);
end
for i=n:-1:1
% Rx=b
x(i)=(e(:,i)*b-u(i,i+1:n)*x(i+1:n))/u(i,i);
end
r2=norm(abs(A*x-b),2)^2;
% Residuos^2
end
40/89
[m, n] = size(A);
Q = zeros(m,n);
R = zeros(n);
[m, n] = size(A);
Q = zeros(m,n);
R = zeros(n);
for j=1:n
R(j,j) = norm(A(:,j));
Q(:,j) = A(:,j)/R(j,j);
R(j,j+1:n) = Q(:,j)*A(:,j+1:n);
A(:,j+1:n) = A(:,j+1:n) - Q(:,j)*R(j,j+1:n);
end
for j=1:n
R(1:j-1,j) = Q(:,1:j-1)*A(:,j);
temp = A(:,j) - Q(:,1:j-1)*R(1:j-1,j);
R(j,j) = norm(temp);
Q(:,j) = temp/R(j,j);
end
41/89
42/89
43/89
>> Script_GRSCH_1
ans = 4.7537e+08
Clsico:
x =
1.1983
-7.1874
81.7515
-318.3887
594.3144
-517.0744
172.5582
e =
0.8133
-0.5438
0.1991
0.4067
0.3033
-0.6886
0.2711
0.3939
-0.2071
0.2033
0.3817
0.1124
0.1627
0.3514
0.2915
0.1356
0.3202
0.3892
0.1162
0.2921
0.4407
ans = 870.8917
ortogonalidad = 0.6954
Modificado:
x =
1.0052
0.7926
3.0065
-6.8260
15.3845
-11.4559
5.0969
e =
0.8133
-0.5438
0.1991
0.4067
0.3033
-0.6886
0.2711
0.3939
-0.2071
0.2033
0.3817
0.1124
0.1627
0.3514
0.2915
0.1356
0.3202
0.3892
0.1162
0.2921
0.4407
ans = 21.0752
ortogonalidad = 1.9358e-08
-0.0551
0.4760
-0.4901
-0.4396
-0.1123
0.2309
0.5206
0.0120
-0.1974
0.6108
-0.2542
-0.4992
-0.1506
0.5013
-0.0020
0.0541
-0.3269
0.6411
-0.2022
-0.5418
0.3805
-0.0011
0.0298
-0.1579
0.1833
0.3445
-0.8078
0.4115
-0.0551
0.4760
-0.4901
-0.4396
-0.1123
0.2309
0.5206
0.0120
-0.1974
0.6108
-0.2542
-0.4992
-0.1506
0.5013
-0.0020
0.0541
-0.3269
0.6410
-0.2022
-0.5418
0.3805
0.0002
-0.0091
0.0907
-0.3626
0.6800
-0.5984
0.1995
44/89
Factorizacin QR
Qbk2 D kQ.Ax
b/k2 D kAx
bk2:
45/89
kAx
bk2 D kQAx
D
kR 1x
R 1x c
Qbk2 D
d
46/89
kR 1x
ck22 C kdk22:
47/89
R tiene todos los elementos de su diagonal principal positivos y es igual al que resulta de
la factorizacin de Cholesky, G T G , de A T A.
48/89
Transformaciones de Householder
Definicin Se denomina transformacin o reflexin de Householder a una transformacin lineal de Rn en Rn caracterizada por una matriz H nn de Householder de la forma
H D I 2wwT donde w 2 Rn ; kwk2 D 1, es el vector de Householder.
D
D
2.wwT /T D I
2.wT /T wT D I
2wwT D H . Como
49/89
7 w 9a
0120w 445
Ha
7 w 9a
En efecto
H a D .I
2wwT /a D a
2wwT a D a
2.wT a/w:
Comprobmoslo:
y
/T x
p x Ty
D
.I 2ww /x D x 2 p
.x y /T .x y /
.x y / .x y /
T
x x yT x
= x 2 .x y /T .x y / .x y/
T
x x yT x
= x 2 2.x T x y T x / .x y/ D y .
T
.x
y/T .x
y/ D x T x y T x x T 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.
50/89
51/89
y.
6
678
3
01203445
8
52/89
La figura representa los cuatro pasos del proceso de reducir una matriz A 64
a una triangular superior R 64.
A0
2222
0 222
0 222
0 222
0 222
0 222
A1
2222
0
0 0
0 0
0 0
0 0
A2
2222
0
0 0
0 0 0
0 0 0
0 0 0
A3
2222
0
0 0
0 0 03
0 0 0 0
0 0 0 0
A4
D a1k
D
::: a2k
q
2
2
2
C akC1k
C C amk
D akk
D
::: 0
D 0:
OJO signos!
2
2
2
Como y12 C y22 C C ym2 D a1k
C a2k
C C amk
, jjyjj2 D jjak jj2.
y/=kak
yk2.
53/89
54/89
x2
w
w alt
y
a1 y
a1
a1 + y
x1
Con el criterio apuntado, la transformacin que hay que usar es la que define w,
que convierte a en y 0. Su primer coeficiente es w1 D a1 . y1/ D a1 C y1; el
segundo, el de a en x2.
55/89
56/89
Mediante transformaciones
la matriz A a una
h i de Householder sereduce
c
triangular superior R 1 y el vector b a otro d
0
w.j W m/
a.j W m; j /; w.j /
X
m
w 2 .k/; a.j; j /
w.j / C ; D 2
kDj
for l D j C 1 to n
a.j W m; l/
a.j W m; l/ w.j W m/ w T .j W m/ a.j W m; l/
end
Transformacin del vector b.
b.j W m/
b.j W m/ w.j W m/ w T .j W m/ b.j W m/
end
Resolucin del sistema Rx D b.
for j D n to01
1,
n
X
@b.j /
x.j /
a.j; k/ x.k/A
a.j; j /
kDj C1
end
Residuos al cuadrado.
m
X
rescua
b 2 .k/
kDnC1
57/89
58/89
function [x r2 Q R]=Qrdes_3(A,b)
% Resolucin de Ax=b mediante transformaciones de Householder; calcula Q y R
[m n]=size(A); x=zeros(n,1); Q=eye(m);
for j=1:n
w=Housv(A(j:m,j));
% Householder de a(j:m,j)
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));
Qk=eye(m);
Qk(j:m,j:m)=eye(m+1-j)-2*(w*w);
Q=Qk*Q;
end
for i=n:-1:1
% Rx=b
x(i)=(b(i)-x(i+1:n)*A(i,i+1:n))/A(i,i);
end
r2=norm(b(n+1:m))^2;
% Residuos al cuadrado
R=triu(A); Q=Q;
% Matrices R y Q
end
function w = Housv(x)
% Transformacin de Householder del vector x.
m=max(abs(x)); w=x/m;
sw=1; if w(1)<0, sw=-1; end
w(1)=w(1)+sw*norm(w);
w=w/norm(w); w=w(:);
end
59/89
El vector de residuos,
6
6
rD6
4
3
0,1
7
0,37
7;
0,35
0,1
60/89
c
se puede obtener, si el algoritmo ha transformado b en d , sin ms que hacer:
0
r
d
for k D n to 1
r
H kr
end
61/89
A D R T ; 0T QT :
R T zR D bR ;
62/89
63/89
64/89
0
mr
65/89
R 11 R 12
r
c
r
y Qb D
;
0 R 22
m r
d m r
r n r
66/89
b)
nr
0
0
0 0
0 0
0
0
0 0
0 0
0
0
0
0
0 0
0 0
67/89
bk2 D k.QAP/.P T x/
Qbk2:
68/89
function [x r res]=Mincua_QR(A,b)
% Resolucin de Ax=b general mediante transformaciones de Householder
%
Posible rango incompleto r
[m n]=size(A); x=zeros(n,1); tol=sqrt(eps); W=zeros(n,m); ip=1:n; r=n;
for j=1:n
jm=j; c=0;
for k=j:n
h=norm(A(j:m,k));
if h>c, c=h; jm=k; end
end
if jm~=j, A(:,[j jm])=A(:,[jm j]); ip([j jm]) = ip([jm j]); end
if j==m, break, end
w=Housv(A(j:m,j));
% Householder de A(j:m,j); luego a A y b
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));
end
for j=1:n
% Ver rango
if abs(A(j,j))<=tol, r=j-1; break, end
end
res=norm(b(r+1:m))^2; w1=zeros(r,n-r+1);
W(1:n,1:r)=A(1:r,1:n);
% Trasp. de A = W
if r~=n
for i=r:-1:1
w1(i,1:n-r+1)=Housv([W(i,i);W(r+1:n,i)]);
% Householder hacia W
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));
end
end
for i=r:-1:1
% Resol. Wx=c
x(i)=(b(i)-x(i+1:r)*W(i+1:r,i))/W(i,i);
end
if r~=n
x(r+1:n)=0;
% Aplicar a x ultimas Householder hacia W
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
end
x(ip)=x(:);
% Deshacer perm. col.
end
>> x-pinv(A)*b
ans = 1.0e-015 *
-0.111022302462516
0.333066907387547
0.194289029309402
-0.333066907387547
0.166533453693773
-0.943689570931383
0.499600361081320
69/89
70/89
71/89
Transformaciones de Givens
donde c 2 C s 2 D 1.
s
::
:
c
1
::
:
1
7
7
7
7
7
7
7
7
7
7
7
7
5
i
j
72/89
6
6
6
6
6
6
6
G .i; j /x D 6
6
6
6
6
6
4
x:1
::
xi 1
xi cos C xj sen
xiC1
::
:
xj 1
xi sen C xj cos
xj:C1
::
xn
3
7
7
7
7
7
7
7
7
7
7
7
7
7
5
73/89
s D sen D
x
q j
:
xi2 Cxj2
....
....
....
....
....
....
...
...
...
...
..
..
...
...
...
..
..
..
..
..
..
..
..
..
..
..
..
...
...
...
...
...
..
..
..
1
...........................
.....
...
..
...
...
..
..
...
..
..
.
.
.
.
.
.
.
.
.
...........
x
74/89
75/89
Como el ngulo que hay que rotar x es 45, la matriz de Givens que hay que
utilizar es,
2
3
1
0
p0 7
6 p
G .2; 3/ D 40 p2=2 p2=25 :
0
2=2 2=2
2 3
1
p
G x D x 0 D 4 25 :
0
p
La norma eucldea de ste y del original es 3.
76/89
2
AD4
3
5
en
6 0
RD4 0 0
0 0
22
0
A 1 D G .1; 2/A D 4
2
5
60
A 3 D G .1; 4/A 2 D 4 0
0
2
5
60
A 5 D G .2; 4/A 4 D 4 0
0
7
5,
0
2
3
2 2 3
2 2 5
4 0 2 2 5;
; A 2 D G .1; 3/A 1 D
0 2 2
5
5
0
0
5
27
60
2 5 ; A 4 D G .2; 3/A 3 D 4 0
2
0
3
2
5
5
57
60
5 ; A 6 D G .3; 4/A 5 D 4 0
0
5 5
2
2
2
5 5
0
5
5
0
0
7
5;
3
5
57
55 :
0
Los smbolos 2, y 5 indican que el coeficiente al que se hace referencia ha experimentado 1, 2 3 transformaciones
desde su valor inicial .
77/89
end
Residuos al cuadrado.
m
X
rescua
b 2 .k/
kDnC1
aux
78/89
En Matlab:
function [x r2]=Givens(A,b)
% Resolucin de Ax=b mediante transformaciones de Givens
[m,n]=size(A); x=zeros(n,1);
for i=1:n
% Factorizacin de A
for k=i+1:m
if 1+abs(A(k,i))==1, continue, end
if abs(A(k,i))>=abs(A(i,i))
t=A(i,i)/A(k,i); s=1/sqrt(1+t*t);
c=s*t;
else
t=A(k,i)/A(i,i); c=1/sqrt(1+t*t);
s=c*t;
end
A(i,i)=c*A(i,i)+s*A(k,i);
q(i+1:n)=c*A(i,i+1:n)+s*A(k,i+1:n);
A(k,i+1:n)=-s*A(i,i+1:n)+c*A(k,i+1:n);
A(i,i+1:n)=q(i+1:n);
q1=c*b(i)+s*b(k);
% Transformar b
b(k)=-s*b(i)+c*b(k);
b(i)=q1;
end
end
for i=n:-1:1
% Sustitucin inversa
x(i)=(b(i)-A(i,i+1:n)*x(i+1:n))/A(i,i);
end
r2=norm(b(n+1:m))^2;
% Residuos al cuadrado
end
79/89
80/89
Como D
1=2
es la factorizacin QR de A.
1=2
1=2
1
1 2
Si se eligen adecuadamente una matrices M 1 D 1
y M2 D
1 1
2 1
que cumplan que 1 i i 0, denominadas transformaciones rpidas de
Givens, una reordenacin de los clculos de la factorizacin puede conseguir el
efecto deseado de alcanzar el orden de magnitud en velocidad de las
transformaciones de Householder.
81/89
82/89
1
62
6
63
6
44
5
6
7
8
9
10
3
11 2 3
127
7 x1
4 5
137
7 x2 D
145 x3
15
x
2 3
5
657
6 7
657 :
6 7
455
5
La descomposicin es
A D U V T
" 0;3546
D
0;3987
0;4428
0;4870
0;5311
0;2017
0;5168
0;8320
0;6887
0;3756
0;0624
0;2507
0;5638
0;8903
0;2573
0;3757
0;5700
0;7455
0;1702
0;2966
0;0490
0;4082
0;8165
0;4082
0;1764
0;2235
0;3652
0;7652
0;4472
0;2096
0;3071
0;7985
0;1627
0;4445
# "35;1272
0
0
0
0
0
2;4654
0
0
0
0
0
0;0000
0
0
0;3757
83/89
0;5
84/89
Operaciones
mn2
C
2
2
n3
6
n3
3
2 3
n
3
mn
2mn2
mn2
mn2
2mn2 C 4n3
mn2 C 17
n3
3
85/89
86/89
El operador n
La descomposicin QR
El mtodo de Gram-Schmidt
La matriz pseudoinversa,
87/89
El diary de Matlab:
>> x0=0.01;
>> x=linspace(x0,2,300);
>> y=5*x.*exp(-3*x);
>> yn=abs(y+0.05*(rand(size(x))-0.5));
>> v=log(yn./x);
>> x=x(:); v=v(:);
>> A=[ones(size(x)) x];
>> c=A\v
c =
1.6443
-3.0579
>> G=chol(A*A);
>> c1=G\(G\(A*v));
>> c1
c1 =
1.6443
-3.0579
>> [Q,R]=qr(A,0);
>> c2=R\(Q*v)
c2 =
1.6443
-3.0579
>> [Q,R]=gs_m(A);
>> c3=R\(Q*v)
c3 =
1.6443
-3.0579
>> format long
>> c4=pinv(A)*v
c4 =
1.64428682050583
-3.05786465731645
>> [U S V]=svd(A);
>> c5=V\(S\(U\v))
c5 =
1.64428682050583
-3.05786465731645
% Ecuaciones normales
% Segunda respuesta
% Factorizacin QR
% Tercera respuesta
% Gram-Schmidt modi.
% Cuarta respuesta
% Matriz pseudoinversa
% Quinta respuesta
% Descomposicin val. sing.
% Sexta respuesta
function demoXexp(n)
% demoXexp
Ajuste datos sintticos a y = c(1)*x*exp(c(2)*x)
%
% Dato: n = (opcional) nmero de puntos sintticos a generar.
%
defecto=200
%
if nargin<1, n=200; end
x0=0.01;
x=linspace(x0,2,n);
y=5*x.*exp(-3*x);
yn=abs(y+0.05*(rand(size(x))-0.5));
v=log(yn./x);
x=x(:); v=v(:);
A=[ones(size(x)) x];
c=A\v;
c1 = %18.15f c2 = %18.15f\n,...
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));
88/89
89/89
0.6
0.5
c1 = 5.6363 c2 = 3.1949
0.4
100 puntos "sintticos"
0.3
0.2
0.1
0.2
0.4
0.6
0.8
1
x
1.2
1.4
1.6
1.8
Matrices dispersas
Jos Luis de la Fuente OConnor
jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_dispersa_2016.pdf
1/98
2/98
ndice
Matrices dispersas
El algoritmo de Cuthill-McKee
Mnimos cuadrados
3/98
Matrices dispersas
Las matrices de gran tamao a que dan lugar esos modelos se denominan
dispersas pues muchos de los coeficientes que las definen son cero y los que no
estn muy dispersos en su estructura.
Algunos autores definen una matriz n n como dispersa si el nmero de coeficientes no nulos es n
C1 , donde
< 1. La
C1
densidad sera n n2 D n
1 . Valores tpicos de ese parmetro suelen ser:
D 0;2 para problemas de anlisis de sistemas elctricos
de generacin y transporte de energa;
D 0;5 para matrices en banda asociadas a problemas de anlisis de estructuras; etc.
Ejemplos
4/98
5/98
PICTURES OF
FROM VARIOUS
Power Systems; BCSPWR07
dierent structures
0
200
400
600
800
1000
1200
1400
1600
0
200
400
Simulation of Co
6/98
7/98
8/98
9/98
10/98
Almacenamiento en ordenador
Por coordenadas
0
0
3
4
0
0
2
0
0
5
1
0
0
4
0
3
0
7
37
7
07
7$
7
05
6
Vector 1
ifi
ico
val
2 3
Coeficientes
4 5 6 7 8 9 10 11
1 1 2 2 2 3 4 4 5 5
1 4 1 3 5 2 2 4 1 3
1 -1 2 -2 3 -3 4 -4 5 -5
5
5
6
se definiran los tres vectores, ifi, ico y val: los dos primeros basta que sean
integer; val debe ser real.
11/98
val Debe contener todos los coeficientes distintos de cero de la matriz, fila a
fila, enumerados consecutivamente;
1
62
6
AD6
60
40
5
0
0
3
4
0
0
2
0
0
5
1
0
0
4
0
3
0
37
7
07
7$
05
6
Vector 1
ia
ic
va
2 3
Coeficientes
4 5 6 7 8 9 10 11
1 3 6 7 9 12
1 4 1 3 5 2 2 4 1 3
1 -1 2 -2 3 -3 4 -4 5 -5
5
6
12/98
vec() la fila i
Las matrices en banda son aquellas cuyos coeficientes estn contenidos en una
franja alrededor de su diagonal principal. Es de inters como dispersa, w n.
2 1
6
6
6
6
6
6
6
6
6
4
2 3 4 5
0
0
0
0 0
7 3
7
7
7
7
7
7
7
7
7
5
es
Env.A/ D f.1; 1/; .1; 2/; .1; 3/; .1; 4/; .2; 1/; .2; 2/; .2; 3/; .2; 4/;
.3; 3/; .3; 4/; .3; 5/; .3; 6/; .4; 2/; .4; 3/; .4; 4/;
.5; 4/; .5; 5/; .5; 6/; .5; 7/;
.6; 2/; .6; 3/; .6; 4/; .6; 5/; .6; 6/; .6; 7/; .7; 7/g:
13/98
14/98
Por ejemplo,
21 0
A
620
D6
40
0
0
3
0
4
0
0
2
0
6
0
0
0
0
0
0
4
3
0
0
0
7
07
05
1
6
Coeficientes
Vector 1 2 3 4 5 6 7 8 9 10 11 12
$ ia
ifa
val
1 4 6 7 10 12 13
11 32 4 5
1 0 -2 2 3 6 -4 0 4 3 1 6
15/98
, se define como
D mKax1i n i ;
donde i es el ancho de la fila i .
i D i
fi ,
Ojo. Esta definicin slo se refiere al nmero de diagonales hay por encima y
debajo de la diagonal principal, sin considerar sta.
Para guardar una matriz simtrica no sera necesario ifa. Por ejemplo,
3
2
B
10
6 23
4
0
0
2
4
0
3
0
3
0
6
0
0
0
3
0
1
8
0
0
7
05
8
3
Coeficientes
Vector 1 2 3 4 5 6 7 8 9 10
ib
1 4 7 8 10
val 10 2 3 4 0 3 6 1 8 3
16/98
n
X
ai bi ;
i D1
17/98
Coeficientes
1 2 3 4
icoa 10 3 7 4
vala 0,2 0,3 0,4 -0,5
Coeficientes
Vector 1 2 3 4 5 6 7 8 9 10 11
ip
0 0 2 4 0 0 3 0 0 1 0
icob
valb
Coeficientes
1
2
3
5
4 10
0,6 0,7 0,5
18/98
19/98
22
23
c3 D b1 a13 C b2 a23 :
b1 a11
b1 a12
b1 a13
c1
c2
c3
c1 C b2 a21
c2 C b2 a22
c3 C b2 a23
c = 0;
for i=1:n
bi = b(i);
for ii=ia(i):ia(i+1)-1
j = ico(ii);
c(j) = c(j)+val(ii)*bi;
end
end
20/98
21/98
Otras operaciones
22/98
23/98
24/98
25/98
Si las filas y las columnas del mismo sistema se reordenan de acuerdo con el
algoritmo
grado
mnimo
(que
obtiene de
unacuerdo
patrncon
de el
Si de
las filas
y las
columnas
del estudiaremos)
mismo sistema sesereordenan
coeficientes
distintos
de cero
como
algoritmo
de grado
mnimo
(que este.
estudiaremos) se obtiene un patrn de
coeficientes distintos de cero como este.
26/98
27/98
El nmero de operaciones que habra que realizar para factorizar la matriz del
ejemplo mediante eliminacin 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, sera el que sigue:
Matriz
Matriz
Matriz
Dispersa
Dispersa
Operacin
Densa sin Ordenar Ordenada
Factorizacin
1911
408
105
Sustitucin Inversa 196
94
48
28/98
350
350
400
400
450
450
100
200
300
el = 7551
400
29/98
100
200
300
el = 24226
400
Entre las ms usadas estn las 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
A31 A32 A33
30/98
i 1
i
A ij xj ;
i D 1; 2; 3:
j D1
31/98
32/98
ndice
Matrices dispersas
El algoritmo de Cuthill-McKee
Mnimos cuadrados
33/98
34/98
35/98
50
50
100
100
150
150
200
200
250
250
300
300
350
350
400
400
450
450
100
200
300
el = 7551
400
100
50
50
200
300
el = 30366
400
150
150
200
200
250
250
300
300
36/98
350
400
400
450
450
100
200
300
el = 7551
400
50
50
100
100
150
150
200
200
250
250
300
300
350
350
400
400
450
450
100
200
300
el = 7551
400
100
200
300
el = 30366
400
100
200
300
el = 9196
400
37/98
38/98
39/98
10
8
5
9
2
11
4
5
3
40/98
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 que los coeficientes diagonales sean distintos de cero hace que no sea
necesario representar los bucles que unen cada nudo consigo mismo.
1
2
3
4
5
A= 6
7
8
9
10
11
1 2 3 4 5 6 7 8 9
10 11
10
9
2
11
4
5
3
41/98
42/98
3
2
4
1
7
6
2 1 2 3 4 5 6 7
6
6
6
6
6
6
6
6
6
4
3
7
7
7
7
7:
7
7
7
7
5
43/98
2
1
3
7
6
5
2 1 2 3 4 5 6 7
6
6
6
6
6
6
6
6
6
4
3
7
7
7
7
7;
7
7
7
7
5
44/98
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
A=eye(7);
A(1,:) = A(1,:) + ones(1,7)
A(:,1) = A(:,1) + ones(7,1)
spy(A)
[L U P] = lu(A);
spy(L)
r=amd(A);
% Ordenacin grado mnimo
spy(A(r,r))
[L U P] = lu(A(r,r));
spy(L)
% Demo_sparse_1.m
A=eye(7);
A(1,:) = A(1,:) + ones(1,7)
A(:,1) = A(:,1) + ones(7,1)
spy(A), pause
[L U P] = lu(A);
spy(L), pause
r=amd(A); % Ordenacin grado mnimo
spy(A(r,r)), pause
[L U P] = lu(A(r,r));
spy(L)
45/98
Un grafo se dice conexo si cada par de nudos distintos se puede unir por un camino; inconexo en cualquier
otro caso.
En esta matriz y su grafo, los nudos 1 y 3 estn unidos por los caminos
f1, 10, 11, 3g y f1, 6, 9, 11, 3g, de longitudes 3 y 4.
1
2
3
4
5
A= 6
7
8
9
10
11
1 2 3 4 5 6 7 8 9
10 11
10
9
2
11
4
5
3
46/98
47/98
Un grafo conexo que no tiene ciclos se denomina rbol. En un rbol slo existe
un camino entre cualquier par de nudos.
8
12
19
10
17
18
11
14
16
13
15
20
6
Una matriz cuyo grafo asociado es un rbol se puede reordenar de forma que al
factorizarla mediante eliminacin de Gauss no experimente relleno alguno.
48/98
Recordemos que:
49/98
50/98
2 Apliquemos
3 4 5 6 7esta
8 idea
9 10 al
11 grafo
Etapa 1
1
2
3
4
5
A2 = 6
7
8
9
10
11
1 2 3
10
11
5
3
10 11
10
9
2
11
4
7
G2
5
3
Etapa 2
51/98
1
2
3
4
5
A3 = 6
7
8
9
10
11
1
2
3
4
5
A4 = 6
7
8
9
10
11
10 11
10
9
2
11
4
5
3
G3
Etapa 3
2
10 11
10
9
2
11
4
7
G4
5
3
Etapa : : :
52/98
1
2
3
4
5
6
7
8
9
10
11
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6 7
4
5
53/98
54/98
1.
55/98
c
b
En las dos tablas que siguen se describen las 7 etapas de que consta la
aplicacin del algoritmo de grado mnimo a este grafo.
Etapa 1 a 3
56/98
Etapa k
Grafo de Eliminaci
on Gk1
a
Nudo Seleccionado
Grado
c
b
e
f
57/98
Etapa 4 a 7
Etapa k
Grafo de Eliminaci
on Gk1
Nudo Seleccionado
Grado
f
g
1
0
b
4
e
g
f
b
5
f
6
7
f
g
58/98
Al final:
1
2
3
A= 4
5
6
7
2
5
7
4
3
9
4
5
6
7
8
9
59/98
60/98
El algoritmo de Cuthill-McKee
r.
61/98
Definicin Se dice que una matriz simtrica tiene un perfil montono 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
Perfil Montono
Perfil No Montono
62/98
10
63/98
2 1
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
0
0
0
0
9 10 3
0 0
0
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
64/98
71
43
39
14
96
10
8
58
67
5
10
65/98
2 1
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
9 10 3
0
0 0
0 0
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
66/98
67/98
1
b
1
c
1 d
2 f
h
2
i
1
j
1
0
a
g 2
1
b
2
c
3 d
3 f
h
4
i
3
j
3
4
a
g 3
3
b
3
c
1 d
3 f
h
0
i
1
j
2
g 3
Los nmeros al lado de los nudos del grafo indican su excentricidad tomando
como raz el que se indica como 0.
Obsrvese que del resultado del algoritmo se desprende que tanto el nudo a
como el h podran utilizarse como nudos de partida pues tienen la misma
excentricidad: 4.
68/98
69/98
g
c
e
a
d
f
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
1
3
7
2
6
5
70/98
1
2
3
A= 4
5
6
7
7
5
1
6
2
3
Como se puede observar, desaparecen todos los ceros que aparecan antes,
ahorrndose las correspondientes posiciones de memoria para guardarlos.
71/98
1
2
3
4
5
6
7
8
9
10
1 2 3 4 5 6 7 8 9 10
0 0
10
En este caso el ancho de banda sigue siendo 5 y la Env.A/ pasa a ser 29, de los
que slo 3 son cero.
72/98
73/98
74/98
75/98
Si e D .i; j / 2 E, este arco une un nudo de origen i con otro de destino o final
j ; sale o parte de i y llega o entra en j .
76/98
77/98
1 2
2 6
3 6
4
4 6
5
5 6
6
6 6
se puede ver
una
matriz 78 6
6
6
8
15 15 y su digrafo
aso- 9 6
9
10 6
11 6
10
12 6
6
11
13 6
12
14
15
13
14
15
1
En la figura
no simtrica
ciado.
2 3 4 5 6 7 8 9 101112131415
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
12
13
10
11
14
15
78/98
10
11
12
13
14
15
4 es accesible desde el 8.
1 2 3
1 2
2 6
3 6
6
4 6
5 6
6 6
6
6
7
8 6
6
9 6
10 6
11 6
12 6
13 6
14
15
4 5 6 7 8
9 10 11 12 13 14 15
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
12
13
10
11
14
15
79/98
En
la primera etapa en este digrafo, el grafo de eliminacin se obtiene quitando
6 7 8 9 10 11 12 13 14 15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 2 3 4 5 6 7 8 9 101112131415
2
3
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
7
6
7
6
6
7
6
7
6
7
6
7
6
7
6
7
7
6
6
7
6
7
6
7
6
7
6
7
6
7
4
5
12
13
10
11
14
15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
1 2 3 4 5 6 7 8 9 101112131415
3
6
7
6
7
6
7
6
7
6
7
6
7
6
7
6
7
7
6
7
6
6
7
6
7
6
7
6
7
6
7
6
7
7
6
6
7
6
7
6
7
6
7
6
7
6
7
4
5
2
80/98
81/98
Algoritmo de Hall
Este algoritmo, M. Hall (1956), requiere n etapas en cada una de las cuales se
coloca un coeficiente distinto de cero si no lo est ya en la correspondiente
posicin de la diagonal principal.
82/98
83/98
Este camino no puede atravesar una misma fila o columna ms de una vez y,
por tanto, tampoco un mismo coeficiente de la diagonal principal.
84/98
1 2 3 4 5 6 7 8 9 10 11 12
7
8
9
10
11
12
ste comienza en la posicin .9; 9/, sigue por la fila 9 hasta encontrar el coeficiente distinto de cero de la columna 5;
85/98
contina 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; contina 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; contina 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; contina por la columna 7 hasta
alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 7; sigue por la fila 7 encontrndose 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; contina 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; contina por
la columna 1 hasta alcanzar el coeficiente distinto de cero de la diagonal principal en la fila 1; sigue por la fila 1, parndose
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 efectan los siguientes intercambios de filas
la
la
la
la
la
la
fila
fila
fila
fila
fila
fila
9
5
2
6
1
12
con
con
con
con
con
con
la
la
la
la
la
la
5I
2I
6I
1I
12 y
9:
que trasladan el coeficiente distinto de cero .1; 12/ a la posicin .9; 12/.
Por ltimo se intercambian las columnas 9 y 12.
Si el coeficiente .6; 1/ fuese cero, hubisemos encontrado que las filas 9, 5, 2, 4, 7 y 6 tienen coeficientes distintos de cero
slo en las columnas 5, 2, 4, 7 y 6, lo que significara que la matriz es singular.
86/98
Los algoritmos para conseguir este propsito se basan en encontrar los ciclos
fuertemente conexos en el digrafo asociado.
87/98
Si existiesen dos de estos ciclos fuertes y se renumerasen los nudos de tal forma
que los del primero fuesen los nudos 1 al k y los del segundo k C 1 al n, se
obtendra una matriz triangular inferior en dos bloques, el primero con k
columnas y el segundo con n k.
5
En el grafo dirigido de la figura existen dos ciclos fuertes, el formado por los
nudos 1 y 2 y el que definen 3, 4 y 5. La estructura simblica en 2 bloques de
su matriz asociada es
:
88/98
Para llevarla a cabo se usa el criterio de Markowitz, por Harry Max Markowitz,
EE.UU. 1927-. Premio Nobel de economa de 1990.
89/98
.rik
1/.cjk
1/;
1
1
rT
90/98
ndice
Matrices dispersas
Mnimos cuadrados
91/98
bk2
92/98
bk2 A T .Ax
b/ D 0
93/98
94/98
Recordemos que:
95/98
96/98
0 0 0
0 0
0 0
0
0 0
0 0
0
0 0
0 0
0
0
0
Obsrvese 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.
Ordenacin de filas
97/98
El nmero de operaciones del proceso descrito depende tambin del orden de las
filas. Por ejemplo, las matrices
3
6
7
6
7
6 ::
7
6:
7
6
7
6
7
6
7
A D 6
7
6
7
6
7
6
7
6
7
6
7
4
5
2
9
>
>
=
>
>
;
9
>
>
>
>
=
>
>
>
>
;
3
6
7
6
7
6 ::
7
6:
7
6
7
6
7
6
7
PA D 6 7
6
7
6
7
6
7
6
7
6
7
4
5
2
y
n
9
>
>
=
>
>
;
9
>
>
>
>
=
>
>
>
>
;
98/98
1/103
2/103
ndice
Introduccin
Mtodo de Jacobi
Mtodo de Gauss-Seidel
Mtodos de relajacin
Introduccin
3/103
if (x .k/
end
x .k
1/
k DkC1
4/103
Esquema de Richardson.
.I
A// x D b. Una
5/103
Mtodo de Jacobi
Admitiendo que los coeficientes a11, a22 y a33 son distintos de cero, se puede
despejar de la primera ecuacin la incgnita x1, de la segunda x2 y x3 de la
tercera, resultando lo que sigue.
x1 D
x2 D
x3 D
1
.b
a11 1
1
.b
a22 2
1
.b
a33 3
a12 x2
a13 x3 /
a21 x1
a23 x3 /
a31 x1
a32 x2 /:
6/103
Estas expresiones sugieren emplear como mtodo iterativo el que definen las
siguientes relaciones de recurrencia:
.kC1/
x1
.kC1/
x2
.kC1/
x3
D
b1
1
D a22 b2
1
D a33 b3
1
a11
.k/
a12 x2
.k/
a13 x3
.k/
a21 x1
.k/
a23 x3
.k/
a31 x1
.k/
a32 x2
xi
1
ai i
bi
n
X
j D1
j i
.k/
aij xj
i D 1; : : : ; n:
L C D C U , donde
3
2
0
0
0 0
6 a21
0 7
0 0
6 :
:: 7
::
::
7
6
: 7 ; L D 6 ::
:
:
5
4
0
a
a
0
1n 1
n 11 n 12
0 ann
an1 an2 an n
0
0
::
:
.L C U / x
x .kC1/ D D
3
0
07
:: 7
:7
7
05
10
.k/
0 a12 a1 n
6 0 0 a2 n
6: :
::
U D6
:
6 :: ::
40 0 0
0 0 0
C D 1b
Matriz de Jacobi
7/103
3
a1 n
1 a2n 7
:: 7
: 7
7;
an 1 n 5
0
1
Algoritmo de Jacobi:
8/103
x.i /
1
b.i /
a.i; i /
end
n
X
j D1
a.i; j /x.j /
j i
end
function [x k]=Jacobi_NEW_1(A,b)
% Resuelve Ax=b por Jacobi (compacto)
n=length(b); x=zeros(n,1); k=0; sm=1;
d=diag(A);
r=A-diag(d);
while sm>0.001
y = (b-r*x)./d;
sm=max(abs(x-y))/max(abs(y));
x = y;
k = k+1;
end
end
9/103
D
D
D
D
6
25
11
15:
x1
.1/
x2
.1/
x3
.1/
x4
D
D
D
1 .0/
x
10 2
1 .0/
x
11 1
1 .0/
x
5 1
1 .0/
x
10 2
3 .0/
x
8 2
C
C
1 .0/
x
5 3
1 .0/
x
11 3
1 .0/
x
8 3
3 .0/
x
11 4
1 .0/
x
10 4
3
5
25
11
11
10
15
8
D
D
D
D
0,6000
2,2727
1,1000
1,8750:
.k/
0,0000
0,6000
1,0473
0,9326
1,0152
0,9997
.k/
0,0000
2,2727
1,7159
2,0533
1,9537
2,0004
x3
.k/
0,0000
-1,1000
-0,8052
-1,0493
-0,9681
-1,0009
.k/
x4
0,0000
1,8750
0,8852
1,1309
0,9739
1,0006
k
x1
x2
10/103
El criterio de llegada al ptimo puede ser cualquiera; aqu hemos forzado a que
.k/
.k 1/
x
x
1
3
<
10
:
x .k/
1
En k D 9 se cumple que
kx .9/ x .8/k1
8,0 10
D
kx .9/k1
2,0004
D 0;0003999 < 10 3:
11/103
12/103
Los puntos que se generan en el proceso iterativo son los de la tabla que sigue.
0
.k/
0,0000
1,1000
0,9800
1,0020
0,9996
1,00004
.k/
0,0000
1,2000
0,9800
1,0040
0,9996
1,00008
k
x1
x2
La solucin exacta es 1; 1T .
13/103
.k/
0,0000
11
-49
501
-2499
25001
.k/
0,0000
-49
251
-2499
12501
k
x1
x2
El proceso diverge.
14/103
Definicin Se dice que una matriz A nn, (compleja o real), es de diagonal estrictamente
dominante por filas cuando cumple P
que
jai i j > j i jaij j; i D 1; : : : ; n:
Se define anlogamente la matriz de diagonal dominante por columnas.
y regular, para todo b y toda estimacin inicial x .0/ el mtodo iterativo de Jacobi converge
a su nica solucin.
15/103
Mtodo Gauss-Seidel
Lo introdujo Gauss en 1823 y lo perfeccion Seidel (alumno de Jacobi), as como el anlisis de su convergencia, en 1874
16/103
.kC1/
x1
.kC1/
x2
.kC1/
x3
D
b1
1
D a22 b2
1
D a33 b3
1
a11
.k/
a12x2
.k/
a13x3
.kC1/
a21x1
.k/
a23x3
.kC1/
a31x1
.kC1/
a32x2
xi
1 @
bi
ai i
i 1
X
j D1
.kC1/
aij xj
n
X
j Di C1
.k/
aij xj A ; i D 1; : : : ; n:
17/103
L/
U x .k/ C b
A la matriz
G D .D
se la denomina matriz de Gauss-Seidel.
L/ 1U
18/103
end
n
X
j Di C1
a.i; j /x.j /A
end
En Matlab:
function [x k]=Gauss_Seidel_1_1(A,b)
% Resolucin por Gauss-Seidel
n=size(A,1); x=zeros(n,1); sm=1; k=0;
while sm>0.001
k=k+1; sm=0;
for i=1:n
j=[1:i-1 i+1:n];
xi=(b(i)-A(i,j)*x(j))/A(i,i);
sm=max(abs(x(i)-xi),sm);
x(i)=xi;
end
sm=sm/max(abs(x));
end
end
function [x k]=Gauss_Seidel_NEW(A,b)
% Resolucin por Gauss-Seidel (compacto)
D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1);
n=size(A,1); x=zeros(n,1); k=0; sm=1;
while sm>0.001
y = (D-L)\(U*x + b);
sm=norm(abs(y-x),inf); k=k+1;
x = y;
end
end
19/103
6
25
11
15:
x1
.1/
x2
.1/
x3
.1/
x4
D
D
D
1 .0/
x
10 2
1 .1/
x
11 1
1 .1/
x
5 1
1 .1/
x
10 2
3 .1/
x
8 2
C
C
1 .0/
x
5 3
1 .0/
x
11 3
1 .1/
x
8 3
3 .0/
x
11 4
1 .0/
x
10 4
3
5
25
11
11
10
15
8
D
D
D
D
0,6000
2,3273
0,9873
0,8789:
20/103
x1
.k/
0,0000
0,6000
1,0302
1,0066
1,0009
1,0001
.k/
x2
.k/
x3
.k/
x4
0,0000
2,3273
2,0369
2,0036
2,0003
2,0000
0,0000
-0,9873
-1,0145
-1,0025
-1,0003
-1,0000
0,0000
0,8789
0,9843
0,9984
0,9998
0,9999
21/103
A es definida positiva.
22/103
Mtodos de relajacin
23/103
Si el vector residuos r k 1 D b Ax k 1, x k D x k
recurrente, x k D x 0 C r 0 C r 1 C C r k 1:
En el mtodo de
En Gauss-Seidel,
C r k 1; de forma
Pn
.k/
bi
.k/
j D1 aij xj
Jacobi, ri D
.
ai i
Pi 1
.kC1/ Pn
.k/
bi
.k/
j Di aij xj
j D1 aij xj
ri D
:
ai i
24/103
xi
.k/
D xi
.k/
C !ri ; i D 1; : : : ; n
25/103
Mtodo SOR
i 1
X
.kC1/
aij xj
j D1
.k/
n
X
j DiC1
!/xi ; i D 1; : : : ; n:
.k/
aij xj A C
26/103
!L/
..1
!/D C !U / x .k/ C ! .D
!L/
..1
!/D C !U /
!L/
b:
end
27/103
n
X
j Di C1
a.i; j /x.j /A C .1
!/x.i /
end
En Matlab:
function [x k]=SOR(A,b,w)
% Resolucin por SOR
n=size(A,1); x=zeros(n,1); sm=1; k=0;
if nargin<3 w=1.25; end
while sm>=0.0001
k=k+1; sm=0;
for i=1:n
j=[1:i-1 i+1:n];
su=b(i)-A(i,j)*x(j);
xi=(1-w)*x(i)+w*su/A(i,i);
sm=max(abs(x(i)-xi),sm);
x(i)=xi;
end
sm=sm/max(abs(x));
end
end
28/103
24
30
24:
.k/
x1
.k/
x2
.k/
x3
1,0000
6,3125
2,6223
3,1333
2,9570
3,0037
2,9963
3,0000
1,0000
3,5195
3,9585
4,0102
4,0074
4,0029
4,0009
4,0002
1,0000
-6,6501
-4,6004
-5,0966
-4,9734
-5,0057
-4,9982
-5,0003
29/103
30/103
x1.k/
x2.k/
x3.k/
1,0000
1,0000
1,0000
10,5625 3,0588
1,3328 -10,8367 12,2136
-1,6367 4,9442 13,4344
8,7895 -7,5608
-15,6706 8,8695 -17,0300 12,7316 -33,6674
10,9919 18,5938
-11,1607 11,9961
22,3064 -34,6352
El proceso diverge.
Teorema Ostrowski-Reich Para un sistema de ecuaciones con matriz simtrica y definida
positiva, el mtodo iterativo de relajacin SOR converge si y slo si el parmetro de relajacin
cumple que 0 < ! < 2.
Mtodo SSOR
31/103
Cada paso est compuesto de uno SOR hacia adelante seguido de otro SOR
hacia atrs.
!U /
.!L C .1
!/ .D
!/D/ y B 2 D .D
D .D
!L/
!L/
.!U C .1
b
!/D/.
32/103
2.9935544173e-07
1.8013146669e-07
33/103
34/103
6
6
6
6
6
6
6
AD6
6
6
6
6
6
6
4
3
1
0
0
0
0
0
0
0
1
3
1
0
0
0
0
0
0
1
3
1
0
0
0
0
0
1
3
1
0
1
2
1
2
1
2
0
0
0
0
0
1
2
0
0
0
1
3
1
0
0
0
0
0
0
0
0
1
3
1
0
0
0
0
0
0
0
0
1
2
1
2
0
0
0
1
3
1
0
0
0
0
0
0
1
3
1
0
1
3
1
0
0
1
2
1
2
07
7
07
7
07
7
07
7
07
7
07
7
07
7
15
3
El vector b D 2;5; 1;5 : : : 1;5; 1;0; 1;0; 1;5 : : : 1;5; 2;5. Hay n
repeticiones de 1;5 y 2 repeticiones de 1;0.
Utilizaremos Jacobi.
function x = jacobi_S_1(a,b)
% Jacobi para matriz dispersa
% Inputs: Matriz A y vector b
% Output: solucin x n=length(b);
d=diag(a);
% diagonal de A
r=a-diag(d);
% A sin diagonal principal
x=zeros(n,1); k=0; sm=1; % Vector x de partida
while sm>0.00001
% iteraciones de Jacobi
y=(b-r*x)./d;
sm=max(abs(x-y))/max(abs(y)); k=k+1;
x = y;
end
end
35/103
36/103
Si los probamos:
>> 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 milln
>> [a,b]=sparsesetup_J(n);
>> tic; x=jacobi_S_1(a,b); toc
Elapsed time is 0.786218 seconds.
>> norm(abs(x-ones(n,1)))
ans =
1.4450e-05
>> n=10000000;
% Diez millones
>> [a,b]=sparsesetup_J(n);
>> tic; x=jacobi_S_1(a,b); toc
Elapsed time is 8.002969 seconds.
>> norm(abs(x-ones(n,1)))
ans =
1.4450e-05
>> 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
37/103
ndice
Introduccin
Mtodo de Jacobi
Mtodo de Gauss-Seidel
Mtodos de relajacin
38/103
bT x
alcanza su mnimo.
1 T
b A 1 b.
2
39/103
en x es
3
7
7
7
7
7
7 D 0:
7
7
7
5
bD
1 T
A CA x
2
b D Ax
b D 0;
40/103
1
2
.x C d/T A .x C d/
1 T
x Ax
2
1 T
x Ax
2
bT .x C d/
C d T Ax C 21 d T Ad
bT x
bT x C d T b C 12 d T Ad
bT d
bT d
D Q.x/ C 12 d T Ad:
41/103
1
3
2
x1
Q.x/ D x1 x2T
2 6 x2
2
x
8T 1
x2
42/103
-3
-2
-1
43/103
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-4
-3
-2
-1
(a)
544/103
(b)
; <1
; <1
Q.x/
.
x
x22
Q.x/
.
x22
x1
11
(c)
(d)
; <1
x22
; <1
Q.x/
.
x
11
x22
Q.x/
.
x1
Figure 5: (a) Quadratic form for a positive-definite matrix. (b) For a negative-definite matrix. (c) For a
En (a)
la matriz A es definida positiva, en (b) definida negativa, en (c)
singular (and positive-indefinite) matrix. A line that runs through the bottom of the valley is the set of
En (a) la matriz A es definida positiva, en (b) definida negativa, en (c)
solutions. (d)positiva
For an indefinite
matrix. Because
the solution
is a saddle point, Steepest Descent and CG
emidefinida
(singular)
y en (d)
indefinida.
semidefinida
positiva
(singular)
(d) matrix
indefinida.
will
not work. In three
dimensions
or higher,yaen
singular
can also have a saddle.
45/103
; ense
sucesivos puntos k del proceso mediant
f .xf
Dados Un x WD x .0/ y una t ol . Hacer ff.x
ound
k / al
kC1 / < WD
pk
pk
f ound WD true
else
xkx+1
4 Se
diferencian unos
de otros en la forma de calcular p.
end
10
end
46/103
q()
Q(x (k ) )
x (k )
x (k ) + k p (k )
47/103
1
.x C p/T A.x C p/ bT .x C p/
2
1 T
x Ax C p T Ax C 12 2 p T Ap p T b
2
1 T
p Ap 2 C p T .Ax b/ C 21 x T .Ax
2
bT x
2b/:
p .k/
T
b
.k/ T
Ax .k/
Ap .k/
48/103
p.1/ D e 2;
:::
p.n
1/
D e n;
p.n/ D e 1; : : :
Relajacin SOR
49/103
bT x a lo largo de p .k/.
El valor de la funcin cuadrtica (simtrica) Q x .k/ C ! O k p.k/ es menor que
Q x .k/ , siempre y cuando 0 < ! < 2, como vimos, y ahora visualizamos.
Q(x (k ) )
x (k )
Q(x (k ) + 2
p (k ) )
x (k) +
(k ) p (k )
x (k ) + 2
(k ) p (k )
50/103
Mxima pendiente
f .x / f .x Cp /
rf .x /T p
El descenso relativo de la funcin en p es
D
D
kp k
kp k
krf .x/k cos , donde es el ngulo que forman p y rf .x/.
Ser mximo cuando D .
51/103
52/103
Si A es diagonal, sus coeficientes iguales a uno y k D 1, la frmula de recurrencia define una iteracin del
mtodo de Jacobi.
4
53/103
x(0)
1
,
n
0I r .0/
bI k D 1
while
r .k/
> "kbk2 do
2
T
k
r .k 1/ r .k
x .k/
end
x .k
1/
r .k/
r .k
k
kC1
1/
1/
C k r .k
k Ar .k
r .k
1/
1/
T
Ar .k
1/
1/
function [x,j]=Steep(A,b,x0)
% Mxima pendiente para resolver Ax=b
if nargin<3, x0=zeros(length(b),1); end
j=0; x=x0; r=b-A*x; d=r*r; tol=sqrt(eps)*norm(b);
while sqrt(d)>tol
j=j+1;
v=A*r;
alpha=d/(r*v);
x=x+alpha*r;
r=r-alpha*v;
d=r*r;
end
end
54/103
55/103
.
56/103
1
3
2
x1
Q.x/ D x1 x2T
2 6 x2
2
>> A=[3 2;2 6];
>> b=[2;-8];
>> [x k]=Steep(A,b)
x =
2.0000
-2.0000
k =
31
x
8T 1
x2
57/103
>> [v lambda]=eig(A)
v =
-0.8944
0.4472
0.4472
0.8944
lambda =
2.0000
0
0
7.0000
58/103
Los vectores propios de A estn orientados como los ejes del paraboloide que
conforma la funcin cuadrtica. Cada valor propio es proporcional a la
inclinacinde
pendiente
deA laestn
funcin
encomo
la direccin
de su correspondiente
Losla
vectores
propios de
orientados
los ejes del paraboloide
que
conforma la funcin cuadrtica. Cada valor propio es proporcional a la
vector propio.
inclinacin de la pendiente de la funcin en la direccin de su correspondiente
2
vector propio.
4
x2
-4
-2
x11
7
-2
-4
-6
66/110
59/103
>> [x k]=Steep(A,b,[6;6])
x =
2
-2
k =
1
60/103
2
-2
-4
"
x .0/0
-2
*
"
x
0
x2 -2.5
-5
-6
.k/
!#"
Q x
C k r
140
120
100
80
60
40
20
2.5
-4
150
100 Q.x/
50
0
x1
.k/
%$&'#"(
x2
(c)
x11
(d)
4
2
-4
-2
)
-2
-2.5
2.5
"
.1/
1
x
6 11
-4
-6
66/102
61/103
61/97
x2
-4
-2
)
"
0
x .0/
-2
x
-4
-6
x1
62/103
Proposicin Sea A una matriz simtrica definida positiva. Si p.0/, p.1/; : : : ; p.k/ son
vectores A conjugados, son linealmente independientes.
63/103
T
Ax .k/ p .k/
;
T
p .k/ Ap .k/
pkT A(xk x0 ) 0,
and therefore
Si en la funcin cuadrtica
que estudiamos ahora,
64/103
1
Q.x/ D x T Ax bT x
2 of the properties of conjugate directions. If the matrix
There is a simple interpretation
By comparing this relation with (5.7) and (5.8), we nd that k k , giving the result.
A in (5.2) is diagonal, the contours of the function () are ellipses whose axes are aligned
with the coordinate directions, as illustrated in Figure 5.1. We can nd the minimizer of this
function by performing one-dimensional minimizations along the coordinate directions
A es diagonal, los contornos de la funcin son elipses cuyos ejes estn alineados
con los ejes coordenados.
e2
x*
x0
x1
e1
65/103
gD
.Ax
b/ D b
Ax D r, vector de residuos.
66/103
Se empieza con la de mxima pendiente, p.0/ D r .0/. Las siguientes, p .k/, sern
las que resulten de una combinacin de r .k/ y la direccin previa, p.k 1/, es
decir
p .k/ D r .k/ C k p.k 1/;
de tal forma que p.k/ y p.k
1/
p .k
1/ T
Ar .k/
p .k
1/ T
Ap .k
1/
1/
D 0.
67/103
Ax .0/
for k D 0, 1, : : :
T
T
k D r .k/ p .k/ p .k/ Ap.k/
x .kC1/ D x .k/ C k p .k/
T
k D
p .k/ Ar .kC1/ p .k/ Ap .k/
end
Teorema
Teorema
Teorema Si A tiene slo m valores propios distintos el mtodo de los gradientes conjugados converge
en un mximo de m iteraciones.
Teorema
El punto obtenido en la iteracin k del mtodo de los gradientes conjugados cumple que
x
x
donde kxkA D x Ax y 2 D
1
n
x .k/
A
x .k/
p
2 1 k
x .0/
2 p
x
A
2 C 1
p
k
2 1
p
2 2 p
x .0/
;
x
2
2 C 1
es el nmero de condicin 2 de A.
68/103
Los vectores p y residuo r de cada iteracin no son ortogonales entre si. Los
residuos de una iteracin 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:
69/103
70/103
71/103
La lneas de nivel del paraboloide elptico f .x1; x2/ D z y el ptimo se ven as.
4
-1
-2
-3
-4
-2
-1
72/103
La mecnica del proceder de los gradientes conjugados para este ejemplo es sta:
1. Desde el punto x .0/ D 1 se determina la curva de nivel de la funcin
1 .0/T
x
Ax .0/ bT x .0/
2 2
2
.0/
.0/
.0/
3
D x1
C 2 x2
4x1
f .x .0// D
La constante ser
.0/
x2 D cte:
2;5.
73/103
-1
-2
-3
-4
-2
-1
-1
-2
-3
-4
-2
-1
74/103
.1/
4x1
.1/
x2 D
4;1:
-1
-2
-3
-4
-2
-1
6. Comprobar que p
.1/ T
Ap.0/ D 0
2
3; 2
0
es inmediato:
0
1
D 0:
3
1
75/103
-1
-2
-3
-4
-2
-1
x1
76/103
77/103
k 1 p.k 1/ w
x .k/
r .k/
x .k
r .k
1/
1/
C p.k
w
end
.k/
k
r .k/
r
k k 1
p.k/
r .k/ C p.k
1/
1/
r .0/
function [x k]=CGr(A,b,x0)
% Gradientes Conjugados
if nargin<3, x0=zeros(length(b),1); end
k=0; x=x0; r=b-A*x; d=r*r; p=r; tol=sqrt(eps)*d;
while d>tol
k=k+1;
v=A*p;
alpha=d/(p*v);
x=x+alpha*p;
r=r-alpha*v;
beta=d; d=r*r;
beta=d/beta;
p=r+beta*p;
end
end
78/103
79/103
son estos
D
D
D
D
D
D
x1.k/
x2.k/
x3.k/
x4.k/
x5.k/
x6.k/
0,000000
0,000000
0,000000
0,000000
0,000000
0,000000
0,000000
1,069915
0,000000
1,283898
-0,427966
1,283898
1,022376
1,686452
1,022376
2,060920
0,831099
2,060920
0,990783
1,991635
0,990783
2,005324
1,011825
2,005324
1,000000
2,000000
1,000000
2,000000
1,000000
2,000000
0
5
0
6
2
6
80/103
1
2
1.800000
2.000000
2.000000e-01
3.333333e-01
2.000000
4.800000e-01
-2.000000
3.200000e-01
Las dos ltimas columnas indican los coeficientes 1 y 2 del vector p.k/.
Coinciden en direccin (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
AC
xQ
T
Q
b x:
Q
x.
81/103
82/103
0I r .0/
Ax .0/ I 0
T
Resolver M d D r .0/ ; n
r .0/ d
p
while k > 0 do
w
Ad
k
n =d T w
x .kC1/
x .k/ C k d
.kC1/
r
r .k/ k w
Resolver M s D r .kC1/
r .0/ r .0/ I k D 0
end
o
n ; n
r .kC1/ s
kC1
n =o
d
s C kC1 d
kC1
n
k
kC1
83/103
% Matriz simtrica
% Vector solucin de unos
% Se resuelve sin precondicionado
84/103
Alekxey Krylov,
Rusia 1863-1945.
C r k 1.
p olin
. en
A
definen el subespacio de Krylov Kk .A; r 0/ D Gen r 0; Ar 0; A 2r 0; : : : ; A k 1r 0 .
En ese Kk .A; r 0/, segn el enfoque, calculan una mejor, x k , que cumpla:
85/103
Condicin de Galerkin.
Obtener una buena base de ese subespacio necesitar del mejor mtodo para
ortogonalizar los vectores correspondientes.
86/103
Escoger un x 0 cualquiera; r 0 D b Ax 0
q 1 D r 0 = kr 0 k2
for k D 1; 2; : : :
Algoritmo de Arnoldi
y D Aq k
for j D 1 to k
hj k D qjH y
y D y hj k qj
end
hkC1;k D kyk2
if hkC1;k D 0, stop, end
q kC1 D y= hkC1;k
Resolver minimizarc k 2Rk
H c k kr 0 k2 0 0 : : : 0T
2
x k D Qk c k C x 0
end
87/103
Comienza con q 1 D r 0=kr 0k2 como base de K1.A; r 0/. La base se conforma
en el ciclo interior del algoritmo: en9 la iteracin k se obtendra AQk D QkC1H k ,
es decir,
88/103
6
7 6
6
7 6
7 6
q
q
A6
k 7 D 6 q 1 q k q kC1
6 1
4
5 4
32
h11 h12
6
7 6 h21 h22
76
76
h32
76
54
:::
h1k
h2k
h3k
::
:
hkC1;k
3
7
7
7
7
7
5
QTkC1 r 0 k2 :
A es n n, Qk n k, QkC1 n .k C 1/ y H k .k C 1/ k.
r 0 k2 D mKn kQkC1 H k c
r 0 k2
89/103
ck
90/103
91/103
92/103
0.1420
0.0359
0.0093
0.0000
0.0000
0.0000
9.5051
7.4059
5.7802
0.9463
0.7550
0.5899
0.0023
0.0005
4.6176
3.6286
93/103
94/103
Escoger un x 0 cualquiera; r 0 D M 1 .b Ax 0 /
q 1 D r 0 = kr 0 k2
for k D 1; 2; : : :
Algoritmo de Arnoldi
1
y D M Aq k
Precondicionado
for j D 1 to k
hj k D qjH y
y D y hj k qj
end
hkC1;k D kyk2
if hkC1;k D 0, stop, end
q kC1 D y= hkC1;k
Resolver minimizarc k 2Rk
H c k kr 0 k2 0 0 : : : 0T
2
x k D Qk c k C x 0
end
10
El precondicionador de Jacobi.
0.2955
0.1046
0.0372
0.0000
0.0000
0.0000
0.0132
0.0045
95/103
96/103
% initialization
r = M \ ( b-A*x );
error = norm( r ) / bnrm2;
if ( error < tol ), return, end
[n,n] = size(A);
m = restrt;
V(1:n,1:m+1) = zeros(n,m+1);
H(1:m+1,1:m) = zeros(m+1,m);
cs(1:m) = zeros(m,1); sn(1:m) = zeros(m,1);
e1
= zeros(n,1); e1(1) = 1.0;
% initialize workspace
% begin iteration
r = M \ ( b-A*x );
V(:,1) = r / norm( r );
s = norm( r )*e1;
for i = 1:m
% construct orthonormal
w = M \ (A*V(:,i));
% basis using Gram-Schmidt
for k = 1:i,
H(k,i)= w*V(:,k);
w = w - H(k,i)*V(:,k);
end
H(i+1,i) = norm( w );
V(:,i+1) = w / H(i+1,i);
for k = 1:i-1
% apply Givens rotation
temp
= cs(k)*H(k,i) + sn(k)*H(k+1,i);
H(k+1,i) = -sn(k)*H(k,i) + cs(k)*H(k+1,i);
H(k,i)
= temp;
end
[cs(i),sn(i)] = rotmat( H(i,i), H(i+1,i) ); % form i-th rotation matrix
temp
= cs(i)*s(i);
% approximate residual norm
s(i+1) = -sn(i)*s(i);
s(i)
= temp;
H(i,i) = cs(i)*H(i,i) + sn(i)*H(i+1,i);
H(i+1,i) = 0.0;
error = abs(s(i+1)) / bnrm2;
if ( error <= tol )
% update approximation
y = H(1:i,1:i) \ s(1:i);
% and exit
x = x + V(:,1:i)*y;
break;
end
end
if ( error <= tol ), break, end
y = H(1:m,1:m) \ s(1:m);
x = x + V(:,1:m)*y;
r = M \ ( b-A*x );
s(i+1) = norm(r);
error = s(i+1) / bnrm2;
if ( error <= tol ), break, end;
end
if ( error > tol ) flag = 1; end;
end
% END of gmres.m
% update approximation
% compute residual
% check convergence
% converged
Se centran en obtener en cada iteracin el valor que haga que el vector residuo
sea ortogonal al subespacio de Krylov generado hasta esa iteracin; es decir que
se cumpla la Condicin de Galerkin:
r D Ax k
b ? Kk .A; r 0/:
97/103
QTk AQk D T k
donde
6
6
Tk D 6
6
6
4
1 1
0
::
:
1 2 : :
:
::: ::: :::
::
::: :::
:
k 1
0
k 1 k
3
7
7
7
7
7
5
Resolver Ax D b conlleva QT AQ QT x D QT b, lo que resulta en
T QT x D kbk; 0; : : : ; 0T . El algoritmo queda, con A definida positiva, as:
Mtodo basado en Lanczos para resolver Ax D b
q 0 D b; 0 D 0
q 1 D b= kbk2
for k D 1; 2; : : :
Algoritmo de Lanczos
uk D Aq k
k D q H
u
k k
uk D uk k 1 q k 1 k q k
k D kuk k2
q kC1 D uk =k
end
x D QT 1 kbk2 e 1
98/103
99/103
>> A=rand(10);
>> A=A*A;
% Matriz simtrica 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
100/103
% istop = 0
w
= (v1 - gamma*w )/delta;
xnorm = 0;
D = zeros(n,1);
A solution to Ax = b was found, given rtol
%
1
x
= x + zeta*w;
%-----------------------------------------------------------------Maximum accuracy achieved, given eps
%
2
D
= D + w.^2;
% Set up the first Lanczos vector v.
Acond has exceeded 0.1/eps
%
3
gamma = beta /delta;
%-----------------------------------------------------------------The iteration limit was reached
%
4
Tnorm2 = Tnorm2 + alpha^2 + oldb^2 + beta^2;
done = false;
A does not define a symmetric matrix
%
5
end
beta1 = norm(b);
A does not define a positive-definite matrix]; %
6
if beta1==0
msg = msg(istop+1,:);
%----------------------------------------------------------------istop = 0; done = true; show = true;
% b=0 exactly. Stop with x = 0.
if show
% Estimate various norms and test for convergence.
else
fprintf(\n)
%----------------------------------------------------------------v = (1/beta1)*b;
fprintf(\n %s, msg)
Wnorm2 = Wnorm2 + norm(w)^2;
end
fprintf(\n istop =%3g
itn
=%10g, istop,itn)
Anorm = sqrt( Tnorm2 );
fprintf(\n Anorm =%10.2e
Acond =%10.2e, Anorm,Acond)
Acond = Anorm * sqrt(Wnorm2);
beta
= beta1; rnorm = beta1;
fprintf(\n rnorm =%10.2e
xnorm =%10.2e, rnorm,xnorm)
xnorm = norm(x);
Tnorm2 = 0;
Wnorm2 = 0;
fprintf(\n)
rnorm = abs(beta*zeta/delta);
if show
end
test1 = rnorm / (Anorm*xnorm);
% ||r|| / (||A|| ||x||)
fprintf(\n\n
Itn
x(1)
norm(r)
norm(x) norm(A) cond(A))
fprintf(\n %6g %12.5e %10.3e, itn, x(1), beta1)
end
101/103
Mp_tim
0.000124
0.003159
0.039224
0.309429
3.402865
Gc_tim
0.000092
0.001476
0.005740
0.009098
0.009311
GS_tim
0.006561
0.007254
0.015905
0.065275
0.356074
SOR_tim
0.008331
0.008618
0.013556
0.122751
0.351750
Jac_tim
0.001398
0.014539
0.196298
15.220156
21.980691
Res^2_Mp
7.944076e-28
8.579430e-13
9.298963e-13
9.954203e-13
9.994093e-13
Res^2_Cg
7.944076e-28
8.912196e-13
9.870799e-13
6.167283e-13
7.437201e-13
Res^2_GS
3.630856e-28
9.432146e-11
4.477812e-08
2.765230e-06
5.815914e-04
Res^2_SOR
6.788011e-11
1.933698e-10
1.616879e-08
1.118498e-06
2.265461e-04
Res^2_Jac
1.649459e-28
1.034252e-09
1.107515e-07
NaN
2.941935e+26
102/103
El cdigo usado.
function SdyCg(omega)
% Test de diversos mtodos iterativos de solucin de sistemas lineales
n=500;
condA=[1 10 100 1000 10000];
x0=zeros(n,1);
tol=1e-6;
maxits=99999;
disp([cond(A) Mp_i Gc_i GS_i SOR_i Jac_i Mp_tim
Gc_tim
GS_tim
Jac_tim
Res^2_Mp
Res^2_Cg
Res^2_GS
Res^2_SOR
for i=1:5
[Q,R]=qr(rand(n));
A=Q*diag(linspace(1,condA(i),n))*Q; b=A*ones(n,1);
D=diag(diag(A)); L=tril(A,-1); U=triu(A,1);
% Mxima pendiente
tic;
j=0; x=x0; r=b-A*x; d=r*r; s=r;
while sqrt(d)>tol && j<maxits
j=j+1;
v=A*s;
alpha=d/(s*v);
x=x+alpha*s;
r=r-alpha*v;
d=r*r;
s=r;
end
time_Mp=toc;
Mp(i)=j;
d1=d;
% Gradientes conjugados
tic;
k=0; x=x0; r=b-A*x; d=r*r; p=r;
while sqrt(d)>tol && k<maxits
k=k+1;
v=A*p;
alpha=d/(p*v);
x=x+alpha*p;
r=r-alpha*v;
beta=d;
d=r*r;
beta=d/beta;
p=r+beta*p;
end
time_Gc=toc;
Gc(i)=k;
d2=d;
103/103
SOR_tim...
Res^2_Jac]);
% Gauss-Seidel
tic;
k0=0; x=x0; c2=(D+L)\b; G_GS=(D+L)\(-U); d=max(abs(b-A*x));
while d>tol && k<maxits
k0=k0+1;
x1=G_GS*x+c2;
s=max(abs(x1));
d=max(abs(x1-x))/s;
x=x1;
end
time_GSe=toc;
GS(i)=k0;
r=b-A*x;
d3=r*r;
% SOR
tic;
l=0; x=x0; M=omega*L+D; N=-omega*U+(1-omega)*D;
d=max(abs(b-A*x));
while d>tol && l<maxits
l=l+1;
x1=M\(N*x+omega*b);
s=max(abs(x1));
d=max(abs(x1-x))/s;
x=x1;
end
time_SOR=toc;
SO(i)=l;
r=b-A*x;
d4=r*r;
% Jacobi
tic;
l1=0; x=x0; M=D; N=D-A;
d=max(abs(b-A*x));
while d>tol && l1<maxits
l1=l1+1;
x1=M\(N*x+b);
s=max(abs(x1));
d=max(abs(x1-x))/s;
x=x1;
end
time_Jac=toc;
Ja(i)=l1;
r=b-A*x;
d5=r*r;
fprintf( %5d%6d%6d%6d%6d%6d %10.6f %10.6f %10.6f %10.6f %10.6f %e %e %e %e %e\
condA(i),j,k,k0,l,l1,time_Mp,time_Gc,time_GSe,time_SOR,time_Jac,d1,d2,d3,d4,d
end
loglog(condA, Mp,b-x,condA,Gc,r:+,condA,GS,g-.x,condA,SO,c-+,condA,Ja,k:x
xlabel(Condicin),ylabel(Iteraciones)
h = legend(Mp,Gc,GSe,SOR,Jac,2);
1/26
2/26
ndice
El problema
Mtodos de numricos de resolucin
Mtodo de Newton-Raphson
Variantes del mtodo de Newton
Mtodos cuasi Newton
3/26
El problema
En trminos matemticos,
dada f W Rn ! Rm; hallar un xN tal que f .x/
N D 0.
La funcin vectorial f se supone continua y derivable en algn conjunto abierto
de Rn, con derivadas parciales continuas en ese abierto.
4/26
5/26
n
X
Gpij C Gsij
jVi j
j D1
j i
Qi D
jVi j
n
X
j D1
j i
donde: Vi
i
Gsij
Gpij
Bsij
Bpij
n
X
jVj j Gsij cos.i
j / C Bsij sen.i
j /
j D1
j i
Bpij C Bsij
jVi j
n
X
jVj j Gsij sen.i
j /
Bsij cos.i
j /
j D1
j i
6/26
7/26
Es norma que las tensiones se midan respecto a una referencia, que se elige en
un nudo cualquiera que sea factible, nudo holgura, al que se asigna una tensin
de 1 para el mdulo y 0 para el argumento.
8/26
(1)
9/26
2
6
6
6
6
6
6
f .x/ D 6
6
6
6
6
6
4
7
7
7
7
j D1;3
j D1;3
7
7
X
X
7:
2
7
V3
.Gp3j C Gs3j / V3
Vj G3j cos.3 j / C B3j sen.3 j /
7
7
j D1;2
j D1;2
7
7
X
X
5
V32
.BC C Bp3j C Bs3j / V3
Vj G3j sen.3 j / B3j cos.3 j /
V22
j D1;2
.Gp2j C Gs2j /
V2
Vj G2j cos.2
j / C B2j sen.2
j /
j D1;2
El b de (1), lo constituirn los valores de V2, P2, P3 y Q3, datos del problema.
10/26
ndice
El problema
Mtodos de numricos de resolucin
Mtodo de Newton-Raphson
Mtodo de Newton-Raphson
11/26
x k /;
De momento con n D m.
12/26
J .x k / 1f .x k /
x0.
xk / D
f .x k /
13/26
x1 x2
cos.x2 x3 /
1 2
81 x2 C
C sen.x3 / C
10
C
20x3
1
2
D 0
1;06
D 0
10 3
D 0:
3
14/26
function [x,dnor,iter]=Newt_Rap(funcion,x0,tol,maxiter)
% Newton-Raphson para cualquier sistema no lineal
if nargin<4, maxiter=99999; end
if nargin<3, tol=sqrt(eps); end
dnor=1.0; iter=0; A=[]; Dnor=[];
while dnor>tol && iter<maxiter
iter=iter+1;
[f,J]=funcion(x0);
p=Jf ;
x=x0-p; [f]=funcion(x);
dnor=norm(f,inf); A=[A;x]; x0=x; Dnor=[Dnor;dnor];
end
s= %15.10e; for i=1:size(x0)-1 s=[s %15.10e]; end
for i=1:iter
fprintf([s %15.10en], A(i,:),Dnor(i));
end
end
function [f J]=NRP_1(x)
f(1) = 3*x(1)-cos(x(2)*x(3))-0.5;
f(2) = x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;
f(3) = exp((-x(1)*x(2)))+20*x(3)+(10*pi-3)/3;
if nargout<2, return, end
J(1,1) = 3.0; J(1,2) = sin(x(2)*x(3))*x(3); J(1,3) = sin(x(2)*x(3))*x(2);
J(2,1) = 2.0*x(1); J(2,2) = -162.0*(x(2)+0.1); J(2,3) = cos(x(3));
J(3,1) = -exp((-x(1)*x(2)))*x(2); J(3,2) = -exp((-x(1)*x(2)))*x(1);
J(3,3) = 20.0;
end
15/26
2.4087256490e+001
5.8788006806e+000
1.2916807111e+000
1.9876169457e-001
9.8214794394e-003
2.9529468423e-005
2.7018031860e-010
f .x/
16/26
17/26
function Newtrp_df_1(fx,x)
% Newton-Raphson por diferencias finitas para sistemas
global h
tol=sqrt(eps); dnor=1.0; h=tol;
while dnor >tol
[f J]=fx(x);
p=Jf ;
x=x-p;
dnor=norm(fx(x));
fprintf(%15.10e %15.10e %15.10e %15.10en, x,dnor);
end
end
function [f J]=NRP_1_dif(x)
global h
f(1) = 3*x(1)-cos(x(2)*x(3))-0.5;
f(2) = x(1)^2-81*(x(2)+0.1)^2+sin(x(3))+1.06;
f(3) = exp((-x(1)*x(2)))+20*x(3)+(10*pi-3)/3;
if nargout<2, return, end
for i=1:3
x(i)=x(i)+h;
f1=NRP_1_dif(x);
J(1:3,i)=(f1-f)/h;
x(i)=x(i)-h;
end
end
18/26
x1
9,1968721314e-1
5,0100048524e-1
5,0054293556e-1
5,0010443628e-1
5,0000551039e-1
5,0000001666e-1
5,0000000000e-1
x2
x3
4,6082245826e-01 -5,0338763389e-1
1,8743348339e-01 -5,2086923236e-1
6,1153459243e-02 -5,2200096436e-1
1,1617109794e-02 -5,2329514576e-1
6,0561685407e-04 -5,2358293631e-1
1,8264191607e-06 -5,2359872782e-1
-1,6847869395e-11 -5,2359877560e-1
kf .x k /k2
2,4087256721e+01
5,8788009464e+00
1,2916808565e+00
1,9876176740e-01
9,8214978438e-03
2,9530304459e-05
2,7240041680e-10
19/26
>>
Resultando:
Newtrp_df_1_c(@NRP_1_dif_1,[1;1;1])
9.1968721308e-001 4.6082245570e-001 -5.0338763551e-001
5.0100048532e-001 1.8743347768e-001 -5.2086923301e-001
5.0054293549e-001 6.1153453680e-002 -5.2200096420e-001
5.0010443627e-001 1.1617105749e-002 -5.2329514612e-001
5.0000551037e-001 6.0561572299e-004 -5.2358293632e-001
5.0000001666e-001 1.8263674477e-006 -5.2359872783e-001
5.0000000000e-001 1.6710502161e-011 -5.2359877560e-001
2.4087256490e+001
5.8788006807e+000
1.2916807112e+000
1.9876169458e-001
9.8214794401e-003
2.9529468429e-005
2.7018009656e-010
Newton modificado
20/26
Jacobi
D k 1f .x k /,
21/26
Gauss-Seidel
Relajacin SOR
.D k C Lk / 1f .x k /
22/26
.y k
A k 1 sk 1 /sTk
sTk 1 sk 1
23/26
x0.
f .x k /.
1
D0
cos.x2 x3 /
2
1 2
81 x2 C 10
Csen.x3 /C 1;06 D0
x1 x2
C 20x3 C 103
D0:
function Broyden_3(fx,x)
% Mtodo cuasi Newton con la frmula 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
En Matlab:
end
function J=broy(J,f,p)
prod=p*p;
J=J-(1/prod)*f*p;
end
24/26
25/26
x1
x2
x3
1
2
3
4
5
6
7
8
9
10
11
3,467674352893799E-1
4,921232306763561E-1
4,993486752210201E-1
5,011649166344201E-1
5,003080441638231E-1
5,001066711564305E-1
5,000183047478762E-1
5,000009846717887E-1
5,000000108711760E-1
5,000000000415024E-1
4,999999999986228E-1
4,662821024806326E-01
3,236527849976335E-01
2,131483731754155E-01
9,690341763001632E-02
4,279330810076126E-02
1,172102964534057E-02
2,032314047074978E-03
1,115674463108231E-04
1,033227841870006E-06
6,118437770431628E-10
-5,059011531347285E-09
-4,919927476568708E-1
-5,162769886149683E-1
-5,166714279059975E-1
-5,210585843043458E-1
-5,224749127576461E-1
-5,232913081815899E-1
-5,235457794542374E-1
-5,235958520108367E-1
-5,235987485509558E-1
-5,235987755897009E-1
-5,235987757245316E-1
kf .x k /k2
25,275175252053120
13,729480399369230
7,127754268893964
2,327087146316625
8,403043972608411E-01
2,006362866054586E-01
3,319399780484372E-02
1,804970096278442E-03
1,678549255880026E-05
9,122344458875651E-08
4,849895176081806E-10
26/26
D Ak C
sk
A k y k sTk A k 1
sTk A k 1y k
1/40
2/40
ndice
Definicin del problema
Mtodo de Gauss-Newton
Mtodo de Levenberg-Marquardt
Mtodo de Newton
3/40
1
2
m
X
i D1
ri2.x/ D 12 kr.x/k22
4/40
f .x/k22
5/40
6/40
7/40
Para estimar el estado del sistema se instalan en su red fsica 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.
Los errores aleatorios que incorporan los aparatos de medida introducen una
incompatibilidad matemtica en aquellas relaciones, por lo que el clculo de la
solucin exacta no es posible teniendo que sustituirse por una estimacin de la
ms probable.
8/40
Pi D jVi j
Qi D
donde: Vi
i
Gsij
Gpij
Bsij
Bpij
9/40
n
X
j D1
j i
jVi j
Gpij C Gsij
n
X
j D1
j i
jVi j
Bpij C Bsij
n
X
j D1
j i
jVi j
jVj j Gsij cos.i
n
X
j D1
j i
jVj j Gsij sen.i
j / C Bsij sen.i
j /
j /
Bsij cos.i
j /
Entre los nudos i y j de una red, los flujos de potencias activa y reactiva estn
dados por las relaciones
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 :
10/40
En trminos matemticos, si se tiene una muestra b1; b2; : : : ; bm que define una
medida 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 funcin vectorial
f .x/ son exactos.
f .x/
V1
V2
V1
V12
V2
P1
Q1
P2
V1
P3
V2
Q3
2
P12
V3
Q12
3
P21
Q21
P23
Q23
.Gp1j C Gs1j / V1
Vj .G1j cos.1 j / C B1j sen.1 j //
j D2;3
j D2;3
X
X
V12
.Bp1j C Bs1j / V1
Vj .G1j sen.1 j / B1j cos.1 j //
j D2;3
j D2;3
X
X
V22
.Gp2j C Gs2j / V2
Vj .G2j cos.2 j / C B2j sen.2 j //
j D1;3
j D1;3
X
X
.Gp3j C Gs3j / V3
Vj .G3j cos.3 j / C B3j sen.3 j //
V32
j D1;2
j D1;2
X
X
V32
.Bp3j C Bs3j / V3
Vj .G3j sen.3 j / B3j cos.3 j //
j D1;2
j D1;2
2
V1 Gs12 V1 V2 .Gs12 cos.1 2 / C Bs12 sen.1 2 // C V12 Gp12
V12 Bs12 V1 V2 .Gs12 sen.1 2 / Bs12 sen.1 2 // V12 Bp12
V22 Gs21 V1 V2 .Gs21 cos.2 1 / C Bs21 sen.2 1 // C V22 Gp21
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
11/40
12/40
Al no existir solucin exacta del sistema, para poder estimar una que se acerque
en algn sentido a esa ideal inalcanzable, es necesario definir un criterio, mtrica
(o estimador) en Rn que evale la bondad de una pseudosolucin de ella. Los
ms usados son:
El de mnimos cuadrados.
El de mxima verosimilitud.
.bi
iD1
2
2 2
13/40
14/40
b real
2 2
m
Y
FDP .bi /:
i D1
15/40
iD1
16/40
Como
Pm
i D1 ln.i
f .x/T
2
D4
12
17/40
f .x/ ;
3
:::
5
m2
f .x//k22
18/40
19/40
Mtodo de Gauss-Newton
I Definir un x 0 ; hacer k D 1 y x k
x0
1
x k /k22
x 2R 2
x k < T ol , parar: problema resuelto;
bk2;
por lo que se puede resolver con los mtodos que conocemos para mnimos
cuadrados lineales: ecuaciones normales, factorizacin QR, descomposicin en
valores singulares, etc.
20/40
function [f J]=GaNew(x)
f(1)=exp(x(1)-2*x(2))-0.5;
f(2)=exp(x(1)-1.0*x(2))-1.0;
f(3)=exp(x(1))-2.0;
f(4)=exp(x(1)+x(2))-4.0;
if nargout<2, return, end
J(1,1)=exp(x(1)-2.0*x(2)); J(1,2)=-2*exp(x(1)-2*x(2));
J(2,1)=exp(x(1)-x(2));
J(2,2)=-exp(x(1)-x(2));
J(3,1)=exp(x(1));
J(3,2)=0;
J(4,1)=exp(x(1)+x(2));
J(4,2)=exp(x(1)+x(2));
end
x1
x2
1
2
3
4
5
7,5406407460540E-1
6,9782818348320E-1
6,9317290130691E-1
6,9314718125839E-1
6,9314718055994E-1
7,8581936682613E-1
6,9931189327404E-1
6,9317774998543E-1
6,9314718138758E-1
6,9314718055994E-1
krk22
4.6113768156e-01
2.0073845116e-03
5.3683607855e-08
3.9452570113e-17
8.0118685687e-31
kx k
x k 1 k1 =kx k k1
3.1296749716e-1
1.2370370632e-1
8.8493084521e-3
4.4101156284e-5
1.1940287961e-9
21/40
Mtodo de Levenberg-Marquardt
22/40
Para evitar las dificultades del de Gauss-Newton cuando a lo largo del proceso la
matriz Jacobiana no tiene rango completo o est mal condicionada, se propuso
que la direccin p k D x x k saliese de la solucin del subproblema
mn.
kp k k k
1
kr.x k /
2
C J .x k /pk k22;
23/40
kpLM k/ D 0;
por lo que p k D pLM sera una solucin del subproblema que satisface
kp k k D k .
Estas condiciones son una adaptacin a este problema de otras generales para
problemas de optimizacin con condiciones, como es el caso que impone el estar
dentro de la regin de confianza.
24/40
En efecto:
1
J .x k /T r.x k /;
25/40
La que sigue es una versin algortmica del mtodo, con una adaptacin del
parmetro de iteracin en iteracin2 muy simple.
I Definir un x 0 2 Rn ; hacer D 0;01, k D 1 y x k
II Calcular p k D
J .x k / J .x k / C I
x0
T
J .x k / r.x k /
=10
kC1
x kC1
y volver al paso II
xk C p
else
10
Otras formas de cambiar son las que se estudian al presentar los mtodos de regin de confianza para
minimizar funciones sin condiciones.
26/40
b1
1 C b2e tb3
ti
yi
ti
yi
1 5,308 7 31,443
2 7,24
8 38,558
3 9,638 9 50,156
4 12,866 10 62,948
5 17,069 11 75,995
6 23,192 12 91,972
T
rtiendo
de xde
30;30;0;4
queloloresuelve
resuelve
es este
0 D
Partiendo
x 0200;
D 200;
0;4,T el
, elcdigo
cdigo Matlab
Matlab que
es este.
27/40
function Levmar_99
% Levenberg-Marquardt
m=12; n=3; x=[200;30;-0.4]; mu=0.01; J=zeros(m,n);
jtj=zeros(n,n); dnor=1; f=fx(x);
tol=sqrt(eps)*norm(x,inf); update=1;
end
while dnor>tol
if update==1
f=fx(x); J=derf(x);
jtj=J*J;
res=norm(f)^2;
end
a=jtj+mu*eye(n);
s=a\(J*f);
b=x-s;
f1=fx(b);
res1=norm(f1)^2;
if res1<res
x=b; f=f1;
dnor=norm(s,inf)/norm(x,inf);
fprintf(%15.10e %15.10e %15.10e %15.10e %15.10e %15.10e\n,...
x,res1,mu,dnor);
mu=mu/10; update=1;
else
mu=mu*10; update=0;
end
end
function f=fx(x)
f=zeros(12,1);
f(1) = x(1)/(1+x(2)*exp(x(3)))-5.308;
f(2) = x(1)/(1+x(2)*exp(2*x(3)))-7.24;
f(3) = x(1)/(1+x(2)*exp(3*x(3)))-9.638;
f(4) = x(1)/(1+x(2)*exp(4*x(3)))-12.866;
f(5) = x(1)/(1+x(2)*exp(5*x(3)))-17.069;
f(6) = x(1)/(1+x(2)*exp(6*x(3)))-23.192;
f(7) = x(1)/(1+x(2)*exp(7*x(3)))-31.443;
f(8) = x(1)/(1+x(2)*exp(8*x(3)))-38.558;
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;
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
function J=derf(x)
J(1,1) =1/(1+x(2)*exp(x(3)));
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;
J(2,1) =1/(1+x(2)*exp(2*x(3)));
J(2,2) =-x(1)*exp(2*x(3))/(1+x(2)*exp(2*x(3)))^2;
J(2,3) =-x(1)*x(2)*exp(2*x(3))*2/(1+x(2)*exp(2*x(3)))^2;
J(3,1) =1/(1+x(2)*exp(3*x(3)));
J(3,2) =-x(1)*exp(3*x(3))/(1+x(2)*exp(3*x(3)))^2;
J(3,3) =-x(1)*x(2)*exp(3*x(3))*3/(1+x(2)*exp(3*x(3)))^2;
J(4,1) =1/(1+x(2)*exp(4*x(3)));
J(4,2) =-x(1)*exp(4*x(3))/(1+x(2)*exp(4*x(3)))^2;
J(4,3) =-x(1)*x(2)*exp(4*x(3))*4/(1+x(2)*exp(4*x(3)))^2;
J(5,1) =1/(1+x(2)*exp(5*x(3)));
J(5,2) =-x(1)*exp(5*x(3))/(1+x(2)*exp(5*x(3)))^2;
J(5,3) =-x(1)*x(2)*exp(5*x(3))*5/(1+x(2)*exp(5*x(3)))^2;
J(6,1) =1/(1+x(2)*exp(6*x(3)));
J(6,2) =-x(1)*exp(6*x(3))/(1+x(2)*exp(6*x(3)))^2;
J(6,3) =-x(1)*x(2)*exp(6*x(3))*6/(1+x(2)*exp(6*x(3)))^2;
J(7,1) =1/(1+x(2)*exp(7*x(3)));
J(7,2) =-x(1)*exp(7*x(3))/(1+x(2)*exp(7*x(3)))^2;
J(7,3) =-x(1)*x(2)*exp(7*x(3))*7/(1+x(2)*exp(7*x(3)))^2;
J(8,1) =1/(1+x(2)*exp(8*x(3)));
J(8,2) =-x(1)*exp(8*x(3))/(1+x(2)*exp(8*x(3)))^2;
J(8,3) =-x(1)*x(2)*exp(8*x(3))*8/(1+x(2)*exp(8*x(3)))^2;
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;
J(9,3) =-x(1)*x(2)*exp(9*x(3))*9/(1+x(2)*exp(9*x(3)))^2;
J(10,1)=1/(1+x(2)*exp(10*x(3)));
J(10,2)=-x(1)*exp(10*x(3))/(1+x(2)*exp(10*x(3)))^2;
J(10,3)=-x(1)*x(2)*exp(10*x(3))*10/(1+x(2)*exp(10*x(3)))^2;
J(11,1)=1/(1+x(2)*exp(11*x(3)));
J(11,2)=-x(1)*exp(11*x(3))/(1+x(2)*exp(11*x(3)))^2;
J(11,3)=-x(1)*x(2)*exp(11*x(3))*11/(1+x(2)*exp(11*x(3)))^2;
J(12,1)=1/(1+x(2)*exp(12*x(3)));
J(12,2)=-x(1)*exp(12*x(3))/(1+x(2)*exp(12*x(3)))^2;
J(12,3)=-x(1)*x(2)*exp(12*x(3))*12/(1+x(2)*exp(12*x(3)))^2;
end
28/40
Los puntos del proceso iterativo que se obtienen son los de la tabla.
k
x1
x2
x3
1
2
3
4
5
6
7
8
172,054602169
180,427478579
190,598767569
195,701854540
196,177702377
196,186188183
196,186260992
196,186261646
27,576875139
40,906816931
47,354495934
48,994138800
49,090471766
49,091630737
49,091641855
49,091641954
-2,852439035E-1
-3,173500543E-1
-3,150142518E-1
-3,137199088E-1
-3,135736444E-1
-3,135697714E-1
-3,135697367E-1
-3,135697364E-1
krk22
225,726827415
85,897325602
3,211830744
2,589465629
2,587278602
2,587278212
2,587278212
2,587278212
1,0E-1
1,0E-2
1,0E-3
1,0E-4
1,0E-5
1,0E-6
1,0E-7
1,0E-8
kx k
x k 1 k1 =kx k k1
1,624216E-1
7,387977E-2
5,336492E-2
2,607582E-2
2,425595E-3
4,325384E-5
3,711204E-7
3,337921E-9
f=fx(x)
zeros(12,1);
x(1)/(1+x(2)*exp(x(3)))-5.308;
x(1)/(1+x(2)*exp(2*x(3)))-7.24;
x(1)/(1+x(2)*exp(3*x(3)))-9.638;
x(1)/(1+x(2)*exp(4*x(3)))-12.866;
x(1)/(1+x(2)*exp(5*x(3)))-17.069;
x(1)/(1+x(2)*exp(6*x(3)))-23.192;
x(1)/(1+x(2)*exp(7*x(3)))-31.443;
x(1)/(1+x(2)*exp(8*x(3)))-38.558;
x(1)/(1+x(2)*exp(9*x(3)))-50.156;
x(1)/(1+x(2)*exp(10*x(3)))-62.948;
x(1)/(1+x(2)*exp(11*x(3)))-75.995;
x(1)/(1+x(2)*exp(12*x(3)))-91.972;
29/40
function Levmar_99_1
% Levenberg-Marquardt
global h
n=3; x=[10;1;1]; mu=0.01; h=sqrt(eps); dnor=1; k=0;
tol=h*norm(x,inf); update=1;
while dnor>tol
if update==1
f=fx(x);
J=derf(x);
jtj=J*J;
res=norm(f)^2;
function J=derf(x)
end
global h
a=jtj+mu*eye(n);
J
=zeros(12,3);
s=a\(J*f);
J(1:12,1)=(fx([x(1)+h;x(2);x(3)])-fx([x(1)-h;x(2);x(3)]))/2/h;
b=x-s;
J(1:12,2)=(fx([x(1);x(2)+h;x(3)])-fx([x(1);x(2)-h;x(3)]))/2/h;
f1=fx(b); res1=norm(f1)^2;
J(1:12,3)=(fx([x(1);x(2);x(3)+h])-fx([x(1);x(2);x(3)-h]))/2/h;
if res1<res
end
x=b;
f=f1;
dnor=norm(s,inf)/norm(x,inf); k=k+1;
fprintf(%3.0f %15.10e %15.10e %15.10e %15.10e %15.10e %15.10e\n,...
k,x,res1,mu,dnor);
mu=mu/10;
update=1;
else
mu=mu*10;
update=0;
end
end
end
30/40
1.8021498292e+001
1.8106135944e+001
1.8690543439e+001
1.8685898203e+001
1.9510291916e+001
1.9466354784e+001
2.7344396915e+001
2.8137323946e+001
4.0287929157e+001
4.3008165823e+001
4.4781231173e+001
4.5331502547e+001
4.4865704491e+001
4.7484943675e+001
4.8976332187e+001
4.9090128611e+001
4.9091641090e+001
4.9091635363e+001
4.9091640103e+001
-1.3632831505e+001
-1.2119438256e+001
-1.5346094174e+000
-5.3375592376e-001
-7.1102849011e-001
-4.2121047306e-001
-5.2068992834e-001
-3.8266075582e-001
-3.9946571714e-001
-3.7604998322e-001
-3.7097156146e-001
-3.6390738007e-001
-3.3356360353e-001
-3.1687615138e-001
-3.1377968469e-001
-3.1357474036e-001
-3.1356969799e-001
-3.1356975593e-001
-3.1356974850e-001
1.1044395775e+004
9.2052245497e+003
7.3006550602e+003
6.3081204894e+003
4.2163999640e+003
4.0802626251e+003
1.1367192170e+003
1.0542743764e+003
9.4953809441e+001
5.1169151088e+001
2.8353413348e+001
2.1054836175e+001
1.8934102960e+001
8.7955954889e+000
2.6426289142e+000
2.5872794922e+000
2.5872773953e+000
2.5872773953e+000
2.5872773953e+000
1.0000000000e-002
1.0000000000e-002
1.0000000000e-002
1.0000000000e+002
1.0000000000e+001
1.0000000000e+001
1.0000000000e+000
1.0000000000e+000
1.0000000000e-001
1.0000000000e-001
1.0000000000e-001
1.0000000000e-001
1.0000000000e-002
1.0000000000e-003
1.0000000000e-004
1.0000000000e-005
1.0000000000e-006
1.0000000000e-007
1.0000000000e-002
7.3518297019e-001
3.4821335305e-001
2.9786452559e-001
2.7509388586e-002
1.7058386414e-001
1.4613227267e-001
2.7058265128e-001
1.7372249600e-001
2.4166297615e-001
1.0916647459e-001
5.8364814061e-002
4.1331838508e-002
1.3018977636e-001
1.3204030744e-001
5.2205299870e-002
4.2870467197e-003
6.1038510228e-005
4.4983495179e-007
1.1005699249e-007
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);
f(1) = x(1)/(1+x(2)*exp(x(3)))-5.308;
f(2) = x(1)/(1+x(2)*exp(2*x(3)))-7.24;
f(3) = x(1)/(1+x(2)*exp(3*x(3)))-9.638;
f(4) = x(1)/(1+x(2)*exp(4*x(3)))-12.866;
f(5) = x(1)/(1+x(2)*exp(5*x(3)))-17.069;
f(6) = x(1)/(1+x(2)*exp(6*x(3)))-23.192;
f(7) = x(1)/(1+x(2)*exp(7*x(3)))-31.443;
f(8) = x(1)/(1+x(2)*exp(8*x(3)))-38.558;
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;
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
31/40
while ~stop
if ng <= eta2, stop = 1;
else
p = (A + mu*eye(n))\-g; np = norm(p,inf);
nx = eta2 + norm(x,inf);
if np <= eta2*nx, stop = 2; end
end
function J=derf(x)
if ~stop
global h
xnew = x + p;
J
=zeros(12,3);
fn = fx(xnew); Jn = derf(xnew);
J(1:12,1)=(fx([x(1)+h;x(2);x(3)])-fx([x(1)-h;x(2);x(3)]))/2/h;
Fn = (fn*fn)/2;
J(1:12,2)=(fx([x(1);x(2)+h;x(3)])-fx([x(1);x(2)-h;x(3)]))/2/h;
dL = (p*(mu*p - g))/2; dF = F - Fn;
J(1:12,3)=(fx([x(1);x(2);x(3)+h])-fx([x(1);x(2);x(3)-h]))/2/h;
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);
mu = mu * max(1/3, 1-(2*dF/dL-1)^3);
% Frmula adapt. mu en referencias
nu = 2;
else
mu = mu*nu; nu = 2*nu;
end
k = k + 1;
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
32/40
>> [X]=LevenbergMarquardt_2
2 1.00000e+001 1.00000e+000
3 1.00000e+001 1.00000e+000
4 1.00000e+001 1.00000e+000
5 1.00000e+001 1.00000e+000
6 1.00000e+001 1.00000e+000
7 3.71830e+001 2.03134e+001
8 3.55330e+001 2.08570e+001
9 3.55330e+001 2.08570e+001
10 3.55330e+001 2.08570e+001
11 3.55330e+001 2.08570e+001
12 3.55330e+001 2.08570e+001
13 3.55330e+001 2.08570e+001
14 3.70743e+001 2.08320e+001
15 3.70743e+001 2.08320e+001
16 3.70743e+001 2.08320e+001
17 3.94274e+001 2.08200e+001
18 4.10697e+001 2.09711e+001
19 4.31862e+001 2.09854e+001
20 4.48055e+001 2.11303e+001
21 4.69944e+001 2.11853e+001
22 4.89704e+001 2.13752e+001
23 5.35482e+001 2.15958e+001
24 5.77611e+001 2.22507e+001
25 6.75450e+001 2.32354e+001
26 7.30187e+001 2.54797e+001
27 8.56068e+001 2.82368e+001
28 9.17724e+001 3.22479e+001
29 1.04566e+002 3.65437e+001
30 1.12665e+002 4.06796e+001
31 1.25845e+002 4.32662e+001
32 1.35084e+002 4.48533e+001
33 1.49370e+002 4.49653e+001
34 1.58295e+002 4.57702e+001
35 1.71229e+002 4.64779e+001
36 1.79072e+002 4.73221e+001
37 1.87986e+002 4.81609e+001
38 1.92841e+002 4.87157e+001
39 1.95496e+002 4.90113e+001
40 1.96128e+002 4.90848e+001
41 1.96184e+002 4.90914e+001
42 1.96186e+002 4.90916e+001
43 1.96186e+002 4.90916e+001
44 1.96186e+002 4.90916e+001
45 1.96186e+002 4.90916e+001
46 1.96186e+002 4.90916e+001
47 1.96186e+002 4.90916e+001
48 1.96186e+002 4.90916e+001
X =
1.0e+002 *
1.961862713737317
0.490916428999001
-0.003135697293093
33/40
Mtodo de Newton
m
i
1
ri2.x/ D kr.x/k22:
2
i D1
34/40
@f .x/ @f .x/
@f .x/
rf .x/ D
:::
@x1
@x2
@xn
T
;
es el vector gradiente, y
@2f .x/
6 @2x1
6
6 2
6 @ f .x/
6
2
r f .x/ D 6 @x2@x1
6 :
6 ::
6
4 @2f .x/
@xn@x1
2
3
@2f .x/
@2f .x/
@x1@x2
@x1@xn 7
7
7
@2f .x/ 7
@2f .x/
7
2
@ x2
@x2@xn 7
:::
::: 7
:::
7
7
2
2
@ f .x/
@ f .x/ 5
@xn@x2
@ 2 xn
m
X
j D1
m
X
j D1
D J .x/T J .x/ C
35/40
m
X
m
X
j D1
j D1
La condicin necesaria
de
ptimo,
rf
.x
/ D 0, despreciando
3
el trmino O kpk , conduce al sistema lineal
rf .x/ C r 2f .x/p D 0
cuya solucin es la direccin de movimiento hacia el ptimo.
36/40
El algoritmo es este:
I
xk / D 0
37/40
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
38/40
function LSQ_New_diff(fx,x)
% Mnimos cuadrados Newton
global h
tol=sqrt(eps); p=ones(2,1); h=sqrt(eps); [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_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
39/40
function LSQ_New_dif_1(x)
% Mnimos cuadrados Newton
global h
tol=sqrt(eps); h=sqrt(eps)/norm(x); p=ones(2,1);
while abs(grad(x)*p)>tol
p=-Hess(x)\grad(x);
x=x+p;
fprintf( %15.10e %15.10e %15.10e\n,x,fx(x));
end
end
Y ms:
function f=fx(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;
end
function g=grad(x)
global h
g=[(fx([x(1)+h,x(2)])-fx([x(1)-h,x(2)]))/(2*h);
(fx([x(1),x(2)+h])-fx([x(1),x(2)-h]))/(2*h)];
end
function H=Hess(x)
global h
H(1:2,1)=(grad([x(1)+h;x(2)])-grad(x))/h;
H(1:2,2)=(grad([x(1);x(2)+h])-grad(x))/h;
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
>> LSQ_New_diff(@Newt_Ls_1,[1;1])
8.1564455807e-001 8.6820863891e-001 2.0026578782e+000
7.3026818132e-001 7.4718706243e-001 1.5293215651e-001
6.9788478088e-001 6.9905288265e-001 1.9358796093e-003
6.9322068433e-001 6.9323478806e-001 4.3977415379e-007
6.9314719772e-001 6.9314720089e-001 2.3817330783e-014
>> LSQ_New_dif_1([1;1])
8.4944340872e-01 8.7730513107e-01 2.7563553502e+00
7.5875713784e-01 6.8293863250e-01 7.8534508448e-02
6.9908967430e-01 6.9134017676e-01 5.0043933563e-04
6.9320781375e-01 6.9312744209e-01 5.0431466984e-08
6.9314718697e-01 6.9314717816e-01 5.3057457678e-16
>> LSQ_New_sym_2(1,1)
8.1564455682e-01 8.6820863544e-01
7.3026817718e-01 7.4718705926e-01
6.9788477856e-01 6.9905288119e-01
6.9322068406e-01 6.9323478800e-01
6.9314719772e-01 6.9314720089e-01
6.9314718056e-01 6.9314718056e-01
>>
2.0026578055e+00
1.5293213074e-01
1.9358782157e-03
4.3977229201e-07
2.3813689162e-14
7.2279874085e-29
40/40
1/106
ndice
2/106
Mtodo de Jacobi
Mtodo de la iteracin de potencia
Mtodo de la iteracin inversa
Iteracin mediante cociente de Rayleigh
Deflacin
Iteracin simultnea
Iteracin QR
Subespacios de Krylov
Comparacin de los mtodos
3/106
Los valores y vectores propios adquieren una relevancia destacada para analizar
asuntos con oscilacin y resonancia. Su conocimiento es bsico en:
Instrumentos musicales.
Mecnica cuntica.
Lasers.
:::
4/106
Frequency range 2
electromagnetic
Phenomena
electromechanical
SVC
Frequency
Interconnected
System
1 MHz
1 kHz
1 Hz
1 s
1 ms
1s
1 s
M
Turbine Syngovernor chronous
Torsion maschine
AVR
On-load Current
Breaker
tap
transformer Arc
changer Saturation restriking
Protective
system
External system
Line
Cable
HVDC
FACTS
Converter
VAR-Load
VAR-Admittance
Motor
Load torque
100 s
Travelling Transient
wave
phenomena,
phenomena Switching
overvoltages
10 ms
1 mHz
1 min
1s
Short-circuit Transient
phenomena stability
SSRphenomena
Harmonics,
Transformer-saturation
1h
100 s
Control
phenomena
with steam
generators
Processtimes
Calculation
time steps
5/106
From the time domain subprogram of
NETOMAC
NETOMAC
eigenvalue
calculation mode
Linear
model
of a
dynamic
power
system
Axx
Axz
bx
Azx
Azz
bz
Sparsitybased
storage
and
matrix
computation
State equation:
A
(Dimentioned maximum
800 dynamic order)
Eigensystem
solution
Network in RST
Admittances by differential
equations non-linearities
Time range
Instantaneous values
ns...s...ms...s
Time range
Quasi steady-state values
s...min
Electromagnetic and
electromechanical
phenomena, complete
solution
Electromechanical
phenomena,
fundamental
frequency
only
Loadflow
Power method
of implicit
inverse iteration
QR transformation
Simulation Models for System Components, Machines, Controllers and Control Units
Loadflow
Initial conditions
Loadflow
Operating point
Overview
of
modes
System components
Linearization
Coupling
Activities of
different modes
on one device
Activities of
one mode on
different devices
Transfer function
based dominant
pole method
U1
U2
Frequency range
all system-variables
Eigenvalue analysis
Small-signal
characteristics
Network, machines
and control
Systemoscillation
and -damping,
Netreduction,
Controller layout
Eigenvalue
analysis
&
transfer
function
analysis
Legend:
R: Right eigenvector (observability information)
L: Left eigenvector (controllability information)
P: Participation factors
U: Transfer function residues
U1: Mode activities in unit impulse response
U2: Mode activities in unit step response
y(t):
Unit impulse/step
response
G(jw):
Frequency
response
SIGMA
OMEGA
(rad/sec)
SIGMA
OMEGA
(RAD/SEC)
(HZ)
-0,087
4,566
COMPLEX S-PLANE
ZETA
(%)
FREQ
(Hz)
ELECTRIC MACHINES
14
-4,053
12,991
-29,8
2,060
NORMALIZED
RIGHT
EIGENVECTOR
(MODE
SHAPE)
NORMALIZED
RIGHT
EIGENVECTOR
(MODE
SHAPE)
Hz
13
SYNCHRONOUS MACHINES
18 items
COMPONENT NAME
ZETA
SIGMA
OMEGA
SIGMA
OMEGA
(RAD/SEC)
(RAD/SEC)
(HZ)
(HZ)
-0,087
4,566
-0,087
4,566
FACO
(%)
-1,9
ZETA
ZETA
FACO
FACO
(%)
(%)
0(s)=
-1,217
11,754
-10,3
1,071
-2,520
11,450
-21,5
1,022
12
-0,053
10,022
-0,5
1,595
-1,110
9,072
-11,2
1,571
COMPONENT
NAME
COMPONENT
NAME
-13,6
1,494
-12,6
1,490
-1,992
9,233
-21,1
1,469
-1,285
9,388
-1,104
-0,900
9,359
9,146
-9,0
1,456
10
10
1 1 DACOLOUA
2X150
MVA
DACOLOUA
2X150
MVA
2 2 MILLOA
2x2x
1818
MVA
MILLOA
MVA
-2,079
8,942
LOSQUI 2X 18+14+Adong
TEHUSEQUEL+JALA+BANELVOL
NASVENTA AT 18 KV
1
1,407
-1,207
8,700
-14,5
-0,550
8,440
NASVENTA AT 19.2 KV
10
1,399
-6,6
1,343
13
-1,137
7,062
-14,3
1,251
-0,503
7,033
-7,1
1,119
6,310
-6,1
1,004
5,718
-4,9
0,910
17
-0,007
4,566
-1,09
0,727
0,19
0,19
0,45
0,45
NASVENTA
8 8 NASVENTA
ATAT
1818
KVKV
16
0,43
0,43
NASVENTA
19.2
9 9 NASVENTA
ATAT
19.2
KVKV
0,18
0,18
CAREN
2X58.8
MVA
1010CAREN
2X58.8
MVA
8
11
ENCHEPHEHU
2X283
MVA
1111ENCHEPHEHU
2X283
MVA
0,06
0,06
BUNCOL
2X240
MVA
1212BUNCOL
2X240
MVA
0,05
0,05
13
CURAMACHI
2X53
MVA
1313CURAMACHI
2X53
MVA
0,04
0,04
14
12
2
-0,383
-0,200
0,16
0,16
0,15
0,15
PELRA
5X76
MVA
7 7 PELRA
5X76
MVA
17
0,5
15
0,14
0,14
5 5 FALALFAL
2X95
MVA
FALALFAL
2X95
MVA
6 6 TOLIZASAV,
ZALSAV
10+3X32
TOLIZASAV,
ZALSAV
10+3X32
18
14
16
COANTU
2X160
MVA
1414COANTU
2X160
MVA
0,06
0,06
15
ROTOREL
4X105
MVA
1515ROTOREL
4X105
MVA
0,06
0,06
16
NICOREA
5X21.5
MVA
1616NICOREA
5X21.5
MVA
0,22
0,22
-6
-5
-4
-3
-2
-1
17
QUEPAN
500
MVA
1717QUEPAN
500
MVA
18
TILLARNUCA
2X68
MVA
1818TILLARNUCA
2X68
MVA
0,37
0,37
0,56
0,56
1
0 0
12
0,91 Hz
0,37
0,37
3 3 LOSQUI
2X2X
18+14+Adong
LOSQUI
18+14+Adong
4 4 TEHUSEQUEL+JALA+BANELVOL
TEHUSEQUEL+JALA+BANELVOL
6
-22,9
11
pusMVA
1,00
1,00
0,63
0,63
12
ROTOR SPEED
NASVENTA AT 18 KV
MECHANICAL TORQUE
NYQUIST DIAGRAMM
MILLOA 2x 18 MVA
0,63
0,63
1,5
6
NASVENTA AT 16 KV
PV
V(s)
SYNCHRONOUS
MACHINES
SYNCHRONOUS
MACHINES
1818
items
items
11
Y(s)
-1,9
-1,9
ELECTRIC
MACHINES
ELECTRIC
MACHINES
2
2
Mode distribution
(Eigenvalues)
Phasor-Diagram
0,10,1
0,20,2
0,30,3
Bar diagram
0,40,4
0,50,5
0,60,6
0,70,7
0,80,8
0,90,9
1 1
Nyquist-Diagram
6/106
Caso histrico
Hoy
7/106
Transformacin lineal u aplicacin lineal de un espacio vectorial V en si mismo. Ej. la ecuacin de Schrdinger
E D E E.
2
No cambian su direccin.
Lo que es igual a n
g1n
det.A
I/ D 0:
C g 2 n
C . 1/ngn D 0:
610
4:
::
0
1
::
:
:::
:::
::
:
0
0
::
:
0 0 ::: 1
8/106
c1
c2
::
:
cn
7
5
9/106
10/106
11/106
12/106
Definicin Dos matrices A; B 2 Cnn se dicen semejantes si existe una matriz inver-
I/ D 0g:
1:1
1:3
1:7
2:5
4:1
7:3
13:7
26:5
13/106
Al aplicrsele
a cualquier
vector
la transformacin que
representa A, ese vector
4
7KHYHFWRUV
[
[
[
DUHVKRZQLQ)LJ
7KHRWKHUYHFWRUVDUHJURZLQJ
A
;
:
:
:
;
A
3
tiende
a orientarse+RZHYHU
hacia la OLQHVHJPHQWVDUHGUDZQVKRZLQJWKHGLUHFWLRQVRIWKRVH
direccin del vector propio dominante de A.
WRRORQJWRGLVSOD\
0;5
1
el resultado es el de la figura.
x2
A4 x
Ax
x
A3x
A2 x
1
Espacio de
v1
v1
1
10
x1
!k
14/106
Otros ejemplos
Ejemplo del apndice "Definiciones, : : :
10
1
0
Si A D
, 1 D 1; x 1 D
; 2 D 2 y x 2 D
:
02
0
1
1;5 0;5
1
1
Si A D
, 1 D 2; x 1 D
; 2 D 1 y x 2 D
:
0;5 1;5
1
1
Si A D
01
1
, 1 D i; x 1 D
; 2 D
10
i
p
i
i y x2 D
, donde i D
1.
1
15/106
n
X
ai i .
i D1
Teorema Los valores propios de una matriz triangular son los coeficientes de su diagonal
principal.
son i
16/106
Teorema Los valores propios de las potencias de A son las potencias de los de A; los
vectores propios son los mismos.
17/106
El clculo de los valores propios por las races del polinomio caracterstico
no es aconsejable por:
1
Ejemplo Consideremos la matriz A D
; donde es cualquier nmero
1
p
menor que maq:
K .
I/ D 2
2 C .1
2 / D 2
2 C 1I
18/106
19/106
Ortogonales
Ejemplo
Todos los valores propios de una matriz ortogonal tienen mdulo unidad.
p
p
2=2
2=2
01
1 0
p
p
:
;
;
10
0 1
2=2 2=2
Hermticas
Ejemplo La matriz
1
1
1Ci
:
i 2
x Ax D x
x D jjxjj2
20/106
Unitarias
Ejemplo La matriz
p
p
i p2=2 p2=2
:
2=2 i 2=2
Las matrices unitarias son una extensin de las matrices ortogonales al
campo complejo. Todos los valores propios tienen mdulo unidad.
.U x/H .U y/ D x H U H U y D x H y
si y D x; jjU xjj2 D jjxjj2:
Normales
2
3
120
Ejemplo 40 1 25 ;
201
i 0
:
0 3 5i
21/106
22/106
Triangularizacin de Schur
Teorema Triangularizacin de Schur Para cualquier A 2 Cnn existe una matriz unitaria
U tal que
U H AU D T ,
donde T es una matriz triangular superior. Los valores propios de A son entonces los
coeficientes de la diagonal principal de T .
Teorema Para cualquier matriz hermtica A 2 Cnn existe una matriz unitaria U tal
que
U H AU D D,
23/106
QT AQ D D,
Teorema Los valores propios de una matriz hermtica definida positiva son todos positivos.
Recprocamente, si todos los valores propios de una matriz son positivos, debe ser definida
positiva.
24/106
Teorema Forma cannica de Jordan Para una matriz A 2 Cnn existe una matriz T
6
AT D J D 6
4
J1
0
:::
0
Jn
7
7;
5
2
3
i 1
6 i 1 0 7
Ji D 6
7
4
5
0 1
i
es una matriz de Jordan y los i son los valores propios de A.
donde
25/106
Regular
Ortogonal
Unitaria
Unitaria
Ortogonal
Unitaria
Regular
BDT
AT
Diagonal
Diagonal real
Diagonal real
Diagonal
Triangular en bloques (real)
Triangular superior (Schur)
Casi diagonal (Jordan)
26/106
27/106
la unin de los n discos de Gerschgorin, cada uno de los cuales est centrado en akk ,
k D 1; : : : ; n, y tiene de radio
n
X
jakj j
rk D
j D1
j k
j k
ai i j
n
X
j D1
j i
jxj j X
jaij j:
jxi j
n
jaij j
ai i j ri g.
j D1
j i
28/106
29/106
r1 D 5
r2 D 12
r3 D 2:
0;6533 C 0;3473i y
0;6533
0;3473i
30/106
Im
10
10
5
Re
10
15
31/106
gersh(gallery(hanowa,10))
20
5
10
10
5
20
40
30
20
10
gersh(gallery(ipjfact,6,1))
gersh(gallery(smoke,16,1))
0.5
2
1
0
0
1
2
0.5
0.2
0.2
0.4
0.6
0.8
32/106
ndice
Introduccin terica
Obtencin numrica
Mtodo de Jacobi
Deflacin
Iteracin simultnea
Iteracin QR
Subespacios de Krylov
33/106
Obtencin numrica
Mtodo de Jacobi
34/106
A kC1 D J Tk A k J k ;
h i
c s
donde cada matriz J k D s c se calcula de tal manera que
h ih
i h i h c 2a 2csa C s2a
i
apq .c 2 s 2 / C cs.app aqq /
pp
pq
qq
c s
app apq
c s
s c
apq aqq
s c D a .c 2 s 2 / C cs.a
a / c 2 a C 2csa C s 2 a
pq
pp
pq
pp
sea diagonal.
s 2/ C cs.app
D
aqq app
2apq
y t D s=c
1D0
35/106
1 C 2;
p
Luego se obtienen c D 1= 1 C t 2 y s D c t.
En Matlab:
function J=Jac_Rot(A,b,d)
% Clculo de la rotacin 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
36/106
v
u n n
uX X
aij2
off .A/ D u
u
t
i D1 j D1
j i
> t ol kAkF :
37/106
2
3
102
Ejemplo Sea A 0 D 40 2 15. Apliqumosle el mtodo de Jacobi.
211
Anulemos para empezar los coeficientes .1; 3/ y .3; 1/. Con ese fin, definamos
la rotacin
2
3
y hagamos
0;707 0
J0 D 4 0 1
0;707 0
2
0;707
0 5
0;707
3
3 0;707 0
A 1 D J T0 A 0 J 0 D 40;707 2 0;7075 :
0 0;707
1
38/106
y hagamos
0;888
J 1 D 40;460
0
3
0;460 0
0;888 05
0
1
2
3
3;366 0 0;325
A 2 D J T1 A 1 J 1 D 4 0 1;634 0;6285 :
0;325 0;628
1
y haciendo
1 0
J 2 D 40 0;975
0 0;226
3
0
0;2265
0;975
3
3;366 0;0735 0;317
0 5:
A 3 D J T2 A 2 J 2 D 40;0735 1;780
0;317
0
1;145
2
39/106
Comenzando un nuevo barrido, hagamos cero los coeficientes .1; 3/ y .3; 1/.
Usaremos la rotacin
2
3
y luego
0;998 0
J3 D 4 0 1
0;070 0
2
0;070
0 5
0;998
3
3;388 0;0733
0
A 4 D J T3 A 3 J 3 D 40;0733 1;780 0;0051 5 :
0 0;0051 1;167
40/106
>> A=rand(4);
>> A=A+A
A =
1.7818
1.1086
1.3615
0.3352
1.1086
0.5150
1.0842
0.5054
1.3615
1.0842
1.8585
0.9660
0.3352
0.5054
0.9660
0.9466
>> % Anulemos el coeficiente (1,2)
>> J=jacrot(A,1,2); A=J*A*J
A =
2.4252
0.0000
1.7218
0.5436
0.0000
-0.1284
0.2544
0.2688
1.7218
0.2544
1.8585
0.9660
0.5436
0.2688
0.9660
0.9466
>> % Ahora el (1,3)
>> J=jacrot(A,1,3); A=J*A*J
A =
3.8868
0.1646
0.0000
1.0396
0.1646
-0.1284
0.1939
0.2688
0.0000
0.1939
0.3969
0.3847
1.0396
0.2688
0.3847
0.9466
>> % El (1,2) se ha hecho distinto de cero; el (1,4)
>> J=jacrot(A,1,4); A=J*A*J
A =
4.2172
0.2383
0.1165
0
0.2383
-0.1284
0.1939
0.2063
0.1165
0.1939
0.3969
0.3666
-0.0000
0.2063
0.3666
0.6161
41/106
42/106
0.0270
0.0230
-0.0009
-0.7836
-0.0000
0.0230
-0.0009
-0.7838
-0.0000
0.0229
-0.0023
-0.7838
-0.0001
0
-0.0023
-0.7828
-0.0001
0.0000
0
-0.7829
en dos barridos
43/106
>> [V D]=eig(A)
V =
-0.6611
-0.4973
-0.2261
0.8460
0.7154
-0.1922
D =
-1.1642
0
0
1.7729
0
0
-0.5618
-0.4828
-0.6718
44/106
0
0
3.3914
0.5785
0.4009
0.6399
0.3086
0.2292
0.0812
-0.4444
0.3862
>> [v d]=eig(A)
v =
0.3673
-0.3703
-0.9032
-0.1289
0.1590
0.7022
0.1549
-0.5944
d =
-0.2134
0
0
0.1238
0
0
0
0
>> A*v-v*d
ans =
1.0e-014 *
-0.0222
-0.0444
-0.0056
0.0097
-0.0479
0.0180
-0.0069
-0.0083
0.6272
0.0831
-0.2688
-0.7263
0.5785
0.4009
0.6399
0.3086
0
0
0.9569
0
0
0
0
4.2346
-0.0333
-0.0305
-0.0444
-0.0111
-0.0444
-0.0444
-0.1332
0
45/106
x Tk
0,0
0,333
0,600
0,778
0,882
0,939
0,969
0,984
0,992
0,996
0,998
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
1,0
jjx k jj1
1,5000
1,6667
1,8000
1,8889
1,9412
1,9697
1,9846
1,9922
1,9961
1,9981
>> x=[0;1];
>> A=[1.5 0.5;0.5 1.5];
>> for i=1:10
v=A*x
m=max(abs(v))
x=v/m
end
46/106
Geometric Interpretation
47/106
of power iteration
El comportamientoBehavior
de las iteraciones
es el dedepicted
la figurageometrically:
1.0
0.5
0.0
x.0
x..1 x.2 x..3 ...x 4...
.......
...
.....
.......
..... ....... ....... .......
...
.
... .................... v 1
...
.
.
v 2 .....
.
....
.
. . ..
...
...
... .... .... ....
....
...
... ..... ....................
...
.
.
.
.
..
...
....
... ... .............
...
...
.... ..... ........................
...
...
.... .... ....................
...
...
.... .... .....................
...
...
.. .. ...........
... .... .......................
... ............
... ..........
....
1.0
Initial vector
El punto inicial
0.0
0.5
"
"
0.5
"
0
1
1
x0 =
=1
+1
1
1
1
1.0
in two eigenvectors
contains equalcomponents
0
1
1
(shownxby D
dashed arrows)
D1
C1
0
1
es una combinacinnent
lineal
de eigenvector
los dos vectores
propios vto1 larger
y v2 .
in first
(corresponding
eigenvalue, 2) to dominate, and hence sequence
of vectors converges to that eigenvector
48/106
Este caso es bastante habitual pues esos dos valores propios pueden ser
un par complejo conjugado.
3. Para una matriz real y un punto de partida tambin real, puede que nunca
se converja a un vector complejo.
>> [l,v,cnt]=potencia(b,[0;1])
l =
2.00000000000000
v =
0.70710678118655
0.70710678118655
cnt =
53
49/106
50/106
Mediante un desplazamiento ,
A
I;
2
2 ;
1
1
y que, por lo tanto, la velocidad de convergencia aumente.
La solucin del problema original resultar de aadir al valor obtenido.
51/106
52/106
Ejemplo (continuacin)
x Tk
0,000
-0,333
-0,600
-0,778
-0,882
-0,939
-0,969
1,0
1,0
1,0
1,0
1,0
1,0
1,0
jjy k jj1
0,750
0,833
0,900
0,944
0,971
0,985
53/106
54/106
55/106
T
Definicin El cociente de Rayleigh de un vector x 2 R es el escalar r.x/ D xx TAx
x .
56/106
x Tk 1 Ax k 1
k D T
xk 1xk 1
Resolver .A k I/y k D x k
yk
xk D
jjy k jj2
end
Ejemplo (continuacin)
57/106
x Tk
0,000
0,333
0,600
0,778
0,882
0,939
0,969
jjy k jj1
x Tk Ax k =x Tk x k
0,150
1,667
1,800
1,889
1,941
1,970
1,500
1,800
1,941
1,985
1,996
1,999
1,0
1,0
1,0
1,0
1,0
1,0
1,0
x Tk
0,807
0,924
1,000
k
0,397
1,000
1,000
1,896
1,998
2,000
58/106
En Matlab:
function [lambda,V,cnt]= ItInvRayleigh_2(A,x,max1)
% Mtodo de la iteracin inversa con cociente de Rayleigh
if nargin<2, n=length(A); max1=10; x=ones(n,1); end
lambda=0; cnt=0; err=1; n=length(A);
if norm(x)>1 x=x/norm(x); end
tol=n*norm(A,1)*eps;
sigma=x*A*x;
while err>tol
y=(A-sigma*eye(n))x;
x=y/norm(y);
sigma=x*A*x;
err=norm(A*x-sigma*x,1);
cnt=cnt+1;
end
lambda=sigma;
V=x;
end
59/106
Deflacin
Idea: Calculados un valor y un vector propios, obtener otros por deflacin: Como
cuando una vez conocida una de las races, x1, de un polinomio de grado n ste
se divide por x x1 obtenindose otro de grado n 1.
60/106
En Matlab:
function u = Housv(x)
% Transformacin de Householder del vector x.
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
function P = Houspre(u, A)
% Producto P = H*A, donde H is una transformacin de Householder
%
definida por el vector u.
n = length(A);
v = u/norm(u); v = v(:);
P = zeros(n,n);
for j=1:n
aj = A(:,j);
P(:,j)=aj-2*(v*aj)*v;
end
end
function p = Housmvp(u, x)
% Producto p = H*x, donde H es la transformacin de Householder
%
definida por u.
u = u(:); x = x(:);
v = u/norm(u);
p = x - 2*(v*x)*v;
end
61/106
Utilicmoslo:
>> A=ones(5)+diag(ones(5,1))
A =
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
>> [lambda,V]= ItInvRayleigh_2(A)
lambda =
6
V =
0.44721359549990
0.44721359550002
0.44721359549982
0.44721359550001
0.44721359550003
>> [l2,v2]=defl_1(A,V)
l2 =
1
v2 =
-0.89442719099992
0.22360679774998
0.22360679774998
0.22360679774998
0.22360679774998
>> [norm(A*V-lambda*V);norm(A*v2-l2*v2)]
% Comprobar resultados
ans =
1.0e-015 *
0.4441
0.6497
>> format short
>> [l,v]=eig(A)
% Comprobar con rutina Matlab eig
l =
0.8333
-0.1667
-0.1667
0.2236
0.4472
-0.1667
0.8333
-0.1667
0.2236
0.4472
-0.1667
-0.1667
0.8333
0.2236
0.4472
-0.5000
-0.5000
-0.5000
0.2236
0.4472
0
0
0
-0.8944
0.4472
v =
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
6
62/106
63/106
Las iteraciones convergen a una matriz triangular, si slo hay valores propios
reales, o a una triangular en bloques 22 en la diagonal principal cuando haya
valores propios complejos conjugados.
64/106
65/106
66/106
Iteracin QR
67/106
family until his death. At first, Kantorovichs group developed analytic computational tools in Prorab
for algebraic and trigonometric polynomials, for integer arithmetic and series, etc. When Vera joined,
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 Veras life, achievements and long and productive career are available in Golub et al.
(1990) and Konkova et al. (2003), for example.
474
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 Rutishausers
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
calculator in low dimensions by hand since linear algebra computer codes had not been developed yet
in Prorab. Veras hand computations indicated that her explicit factorizationreverse-order multiply
algorithm is convergent. However, D. K. Faddeev feared that the obtained results may only have been
accidental. Veras QR-like algorithm was briefly mentioned in 1960 in the first edition of a monograph
Las A k convergern 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.
68/106
69/106
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
% Iteracin QR
end
A =
4.1475e+00
-4.9214e-03
6.2706e-01
1.5691e-01
=
3.9304e+00
4.0097e-02
3.5144e-01
-2.7163e-02
=
3.9287e+00
-1.6308e-02
2.1041e-01
5.9415e-03
=
3.9514e+00
-5.7605e-02
1.1812e-01
-1.4093e-03
=
3.9696e+00
-7.1970e-02
6.3115e-02
3.4472e-04
=
3.9817e+00
-6.9838e-02
3.2744e-02
-8.5395e-05
-7.7246e-01
3.2731e+00
-1.9699e-01
-4.1310e-01
-7.3819e-01
-1.8990e-01
2.2190e+00
-6.3508e-01
-4.1172e+00
1.9440e+00
-6.0845e-01
3.6039e-01
-2.7682e-01
3.0595e+00
-3.8535e-02
8.4395e-02
1.5214e-01
-6.9040e-01
2.3156e+00
1.9457e-01
4.4847e+00
-2.1283e+00
-4.8346e-01
6.9447e-01
-1.6932e-01
3.0078e+00
-3.4259e-02
-2.3299e-02
4.1119e-01
-8.8862e-01
2.2044e+00
-8.1008e-02
-4.4113e+00
2.1571e+00
1.0227e+00
8.5905e-01
-1.3627e-01
2.9981e+00
-2.7149e-02
7.1443e-03
4.9740e-01
-9.6432e-01
2.1181e+00
3.8096e-02
4.3484e+00
-2.1072e+00
-1.3251e+00
9.3241e-01
-1.1610e-01
2.9977e+00
-1.8643e-02
-2.2854e-03
5.3907e-01
-9.8790e-01
2.0658e+00
-1.8738e-02
-4.3288e+00
2.0192e+00
1.4919e+00
9.6688e-01
-9.8200e-02
2.9984e+00
-1.2095e-02
7.4567e-04
5.6721e-01
-9.9032e-01
2.0362e+00
9.3684e-03
4.3356e+00
-1.9242e+00
-1.5816e+00
9.8360e-01
70/106
D Ak
k 1I
A k D R k 1 Qk
El desplazamiento k
C k 1I:
Desplazamientos ms usados:
71/106
72/106
Ejemplos
>> ab=ones(5)+eye(5)
ab =
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
>> [lambda it]=IteracionQR(ab)
lambda =
1.0000
1.0000
1.0000
1.0000
6.0000
it =
4
>> a=rand(20);
>> [lambda it]=IteracionQR(a*a)
lambda =
0.0010
0.0175
0.1107
0.1496
0.2232
0.4124
0.7861
0.8132
0.9430
1.2765
1.4153
1.7930
1.9123
2.2906
2.6955
2.9732
3.7114
4.9037
5.3983
100.1106
it =
48
>> eig(a*a)
ans =
0.0010
0.0175
0.1107
0.1496
0.2232
0.4124
0.7861
0.8132
0.9430
1.2765
1.4153
1.7930
1.9123
2.2906
2.6955
2.9732
3.7114
4.9037
5.3983
100.1106
73/106
>> A=randn(5)
A =
0.1303
1.0169
-0.2750
0.7688
-0.3857
0.5583
0.2378
-0.2941
-0.5498
-0.1324
0.3125
0.8049
0.2869
-1.1517
-0.0024
-1.7196
-0.3503
0.4211
0.9847
-0.6632
>> A=hess(A)
% VEREMOS por qu
A =
0.1303
-0.1471
1.0342
-0.5765
0.8100
0.6165
-0.1303
0.5381
0
-1.0393
0.3560
0.3942
0
0
1.3485
-1.9025
0
0
0
0.4372
>> A0=A;
0.2815
1.2163
-0.2401
-0.4955
-1.3721
-0.5971
0.9983
0.6386
-0.0670
-1.2908
0.1063
-1.0568
-0.1472
-0.0113
-0.0941
-0.0297
-1.0632
-0.0561
0.1247
-0.0941
74/106
-0.2176
-1.0411
0.1361
0.0134
-0.0941
75/106
Para ello se usan los dos valores propios, y N , de la submatriz 22 del bloque
inferior que se encuentre,
Qk 1 R k
D Ak
k 1I
A k D R k 1 Qk
Qk R k D A k
C k 1I
N k 1I
A kC1 D R k Qk C N k 1I
76/106
k 1I/ .A k
D .Qk 1Qk / .R k R k 1/
D A 2k
sA k
N k 1I/
C t I;
y t su
77/106
Con los aos, los diferentes enfoques de atacar esta variante han convergido en
una estrategia de doble desplazamiento implcito tipo Francis, formulada en
1961 por John G.F. Francis.
@
@
@
@
@
@
@
@
@
78/106
79/106
1 fase
Simtrica a tridiagonal
General
2 fase
a diagonal
a Hessenberg a triangular
Matriz general
4 3
n para valores propios slo 10n3 para valores propios slo
3
9n3 valores y vectores propios 25n3 valores y vectores propios
80/106
81/106
82/106
83/106
>> eig(A)
ans =
-1.2714
-1.2618
-1.0250
-0.8895
-0.8182
-0.6692
-0.6220
-0.4263
-0.1461
-0.0201
0.1139
0.2413
0.5156
0.6448
0.9498
1.0568
1.1285
1.5200
1.5883
10.5361
84/106
function [b c] = qrpoly(H)
% Compute b and c of z^2+b*z+c = (z-sigma)(z-conj(sigma))
% where sigma is the Wilkinson double shift: eigenvalue of
% the 2x2 trailing submatrix closest to H(n,n)
global itr itc
HH
= H(end-1:end,end-1:end);
traHH = HH(1,1)+HH(2,2);
detHH = HH(1,1)*HH(2,2)-HH(1,2)*HH(2,1);
if traHH^2 > 4*detHH % Real eigenvalues
% Use as double shift the eigenvalue closer to H(n,n)
lambdaHH(1) = (traHH + sqrt(traHH^2-4*detHH))/2;
lambdaHH(2) = (traHH - sqrt(traHH^2-4*detHH))/2;
if abs(lambdaHH(1)-H(end,end))<abs(lambdaHH(2)-H(end,end))
lambdaHH(2) = lambdaHH(1);
else
lambdaHH(1) = lambdaHH(2);
end
% z^2+bz+c=(z-lambda_1)(z-lambda_1)|(z-lambda_2)(z-lambda_2)
b = -lambdaHH(1)-lambdaHH(2);
c = lambdaHH(1)*lambdaHH(2);
itr=itr+1;
else
% In the complex case, we want the char poly for HH
b = -traHH;
c = detHH;
itc = itc+1;
end
end
85/106
>> sort(eig(A),descend)
ans =
-6.0770
5.2804
5.0190
3.2085 + 3.6195i
3.2085 - 3.6195i
0.0031 + 4.4372i
0.0031 - 4.4372i
-4.2104 + 0.7456i
-4.2104 - 0.7456i
-1.3585 + 3.9497i
-1.3585 - 3.9497i
1.2975 + 3.8800i
1.2975 - 3.8800i
-2.4416 + 2.7407i
-2.4416 - 2.7407i
2.8787 + 0.7120i
2.8787 - 0.7120i
-1.0840 + 1.8066i
-1.0840 - 1.8066i
-1.2594 + 0.9430i
-1.2594 - 0.9430i
-0.3809 + 0.9062i
-0.3809 - 0.9062i
0.6323
-0.1911
86/106
87/106
Subespacios de Krylov
Estos subespacios son la base de unos mtodos iterativos para el clculo de los
valores propios de A. Su ventaja esencial es que en ellos slo se llevan a cabo
multiplicaciones de matrices por vectores, lo cual es particularmente interesante
para matrices grandes y dispersas.
88/106
La matriz de Krylov, K
nj
D b Ab : : : A
j 1
b , se puede escribir entonces
2
1 1
61
6 2
K n D c1 x 1 c2 x 2 cn x n 6 :: ::
4: :
1 n
3
j 1
1
j 1
2 7
7
:
: : : ::: 7
5
j 1
n
@
@
@
@
@
89/106
La matriz de Krylov K n suele estar mal condicionada. Para obtener una buena
base de Im.K n/ se utiliza la factorizacin QnR n D K n de tal forma que
1
QH
n AQn D R n C n R n H
(matriz de Hessenberg):
j D 1; : : : ; k:
90/106
q 1 D x 0 = kx 0 k2
for k D 1; 2; : : :
uk D Aq k
for j D 1 to k
hj k D qjH uk
uk D uk hj k qj
end
hkC1;k D kuk k2
if hkC1;k D 0 stop
q kC1 D uk = hkC1;k
end
91/106
92/106
93/106
arnoldi_W
94/106
100
50
50
100
150
95/106
96/106
97/106
ndice
Introduccin terica
Obtencin numrica
98/106
99/106
QB A B D B D
B1
,
0
3 9
d1 f2
>
>
6 d2 f3 0
7 >
=
6
7 >
6
::: ::: 7
n
6
7
BD6
>
7
:
>
: : fn 7 >
6 0
;
6
7 >
4
dn 5
m
0
QB D Qn Q1 2 Rmm y B D 1 n
2 Rnn.
0 0
0 0
0 0
0 0
0 0
Q 0
0 Q 0 0 Q 0 0
Q 0
0
0
1 0 1 0
2 0 0 2 0 0
3 0 0
4 0 0
0 0 0
0 0
0 0 0
0
0
0 0
0000
0 0
0 0 0
0
0
0 0
0000
0 0
0 0 0
0
0
0 0
100/106
101/106
k D 1; 2; : : : ;
kD:::;2;1
kD1;2:::
0
0
0
T=BTB.
0 0 0
0 0 BG +
12
0 0 0
0 0
0
0 0 0
0
40
0
0
BG 24
0 0 0 0
0 0 G B 0
21
0 0 0
0 0
0
0 0 0
0
0 0 0
0 0 G B 0
43
0 0 0
0 +
0
0 0 0
0
+ 0 0
0 0 BG 0
13
0 0 0
0 0
0
0 0 0
0
0 0 0
0 0 BG 0
35
0 + 0
0 0
0
0 0 0
0
0 0 0
0 0 G B 0
32
+ 0 0
0 0
0
0 0 0
0
0 0 0
0 0 G B 0
54
0 0 0
0 0
0
0 0 +
0
, donde
SVD de unaA
matriz
V TB, de tamao nn:
D Ubidiagonal
0
Se puede aplicar el mtodo QR con desplazamiento a la matriz T=BTB.
Tambin se pueden aplicar una serie (tericamente infinita) de rotacion
Givens a B para hacerla diagonal:
ETSII-UPM
0
Se puede aplicar el mtodo QR con desplazamiento a la matriz
0 0
de
Tambin se pueden aplicar una serie (tericamente infinita) de rotaciones
0 0 0
Givens a B para hacerla diagonal:
0 0 0
0 0
0 0 BG +
12
0 0
0
0
0
0 0 0
+ 0 BG 0
24
0 0 0
0 0
0
0 0 0
0
0 0 0 0
0 0 G B 0
21
0 0 0
0 0
0
0 0 0
0
0 0 0
0 0 G B 0
43
0 0 0
0 +
0
0 0 0
0
+ 0 0
0 0 BG 0
13
0 0 0
0 0
0
0 0 0
0
0 0 0
0 0 BG 0
35
0 + 0
0 0
0
0 0 0
0
0 0 0
0 0 G B 0
32
+ 0 0
0 0
0
0
0 0 0
0 0 0
0 0 G B 0
54
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 Se comprueba que los elementos de la supra-diagonal tienden a cero
0 0 n-1 hasta el primero) y los de la diagonal a los valores singulares.
Recordemos las ideas el algoritmo de Jacobi para el clculo de los valores propios de matrices simtricas,
pues se hace algo parecido.
(d
102/106
Cdigo de Matlab:
function [S U V it t t1 F]=svd_GolRein_1(A)
% Se calcula al descomposicin 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
% Decomposition and Least Squares Solutions", Numeri. Math., 14, 1970.
c=1; s=1;
% Comienzo iteracin QR
[m n]=size(A); tol=norm(A,fro)*sqrt(eps); itr=0; tic;
for
i=l+1:k
if n>m, A=A; [m n]=size(A); itr=1; end % Necesario m>=n
g=e(i); y=q(i); h=s*g; g=c*g;
% Bidiagonaliza A por Householder: U*B_n*V = A
e(i-1)=sqrt(f*f+h*h); z=e(i-1); c=f/z; s=h/z;
[U B_n V] = bidiag_Hansen(A); t1=toc; tic;
f=x*c+g*s; g=-x*s+g*c; h=y*s; y=y*c;
q=B_n(:,1); e=[0; B_n(1:n-1,2)]; U1=eye(m); V1=eye(n);
V1(:,[i-1 i])=V1(:,[i-1 i])*[c -s;s c];
k=n; it=0;
q(i-1)=sqrt(f*f+h*h); z=q(i-1); c=f/z; s=h/z;
while k>0
% Bucle principal proceso itera.
f=c*g+s*y; x=-s*g+c*y;
caso=1;
U1(:,[i-1 i])=U1(:,[i-1 i])*[c -s;s c];
for l=k:-1:1
end
if abs(e(l)) <=tol, e(l)=0;
caso=0; break, 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; % Cancelacin 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
g=q(i); h=sqrt(f*f+g*g); c=g/h; s=-f/h; q(i)=h;
[q ix]=sort(diag(S),descend);
U1(:,[l1 i])=U1(:,[l1 i])*[c -s;s c];
for i=1:n, S(i,i)=q(i); end
% Valores sing. en S de + a end
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 precisin resultados
z=q(k);
% Comprobar convergencia
if itr==1, S=S; Te=U; U=V; V=Te; end % Si m<n, trasponer resultados
if l==k
if nargout==1, S=diag(S); end
if z<0, q(k)=-z; V1(:,k)=-V1(:,k); end
end
k=k-1; continue
end
x=q(l); y=q(k-1); g=e(k-1); h=e(k); % Clculo desplazami. con 2x2
f=((y-z)*(y+z)+(g-h)*(g+h))/(2*h*y); g=sqrt(f*f+1);
f=((x-z)*(x+z)+h*(y/(f+(sign(f)+(f==0))*g)-h))/x;
>> A=rand(1000);
>> A = (A - .5)*2;
Tiempos
103/106
104/106
1 0 0 0 2
Para una matriz complicada como M D 00 00 30 00 00 :
04000
>> [U S V]=svd(M)
U =
0
0
1
0
1
0
0
0
0
1
0
0
S =
4.0000
0
0
3.0000
0
0
0
0
V =
0
0
1.0000
0
0
1.0000
0
0
0
0
0
0
-1
0
0
0
2.2361
0
0
0
0
0
0
0
0
0
0.4472
0
0
0
0.8944
0
0
0
1.0000
0
-0.8944
0
0
0
0.4472
105/106
Algoritmo de Jacobi
Las races cuadradas no negativas de los valores propios de AA T son los valores
singulares de A. Utilicemos Jacobi para calcular aquellos valores propios.
Con la matriz M :
>> [V D it]=Jacobi_val_12(M*M)
V =
0.4472
0
0
0 -0.8944
0 1.0000
0
0
0
0
0 1.0000
0
0
0
0
0 1.0000
0
0.8944
0
0
0 0.4472
D =
0
0
5
9
16
it =
1
>> sqrt(D)
ans =
0
0
2.2361
3.0000
4.0000
106/106
Optimizacin
Programacin no lineal sin condiciones
1/75
i 2 E;
j 2 I:
2/75
3/75
4/75
ndice
Condiciones de mnimo
Mtodo de Newton
5/75
Dar solucin a
minimizar f W Rn ! R
Ejemplos
Si x es
una constante, la funcin f .x/ D .x
2
f (x) = (x x )
nico
punto
alcanza
el mnimo:
en el valor de x .
has one,
uniquedonde
minimizer,
x , see Figure
1.1.
2
x /
In many objectiv
6/75
andun
several local
tiene
can find the glob
global optimizati
Figure 1.1: y = (x x )2 .
One minimizer.
1. I NTRODUCTION
of
we
n
La funcin
x*
The methods de
function. When
whether it is a g
not even be sure
C 2a.
f .x/ D
x*
locales.
Condiciones de mnimo
7/75
f .x 1 C x 2 / f .x 1 / C f .x 2 /
para todo x 1 ; x 2 2 Rn y todo ; 2 R, con C D 1, 0, 0.
y = f(x)
convex
(a)
193
8/75
Figure
3.2 If f is convexde
andconvexidad
differentiable, then
(x)+f (x) orden
(yx) Una
f (y) funcin f W Rn ! R que
Teoremafor
Condiciones
de fsegundo
all x, y dom f .
T
tiene derivadas parciales de segundo orden es decir, existe su matriz Hessiana, r 2f .x/,
para todo x 2 Rn , es convexa si para todo x 2 Rn 0 se cumple que x T r 2f .x/x 0,
by
72
3 Convex functions
es decir, lais given
Hessiana
es semidefinida positiva.
IC (x) =
xC
x 6 C.
Ejemplo la funcin
f (x, y )
f W R ! R, f .x; y/ D x =y , y > 0
0
2
0
0 2
9/75
of the function value near a local minimizer (Figure 1.5a), a local maximizer
(Figure 1.5b) and a saddle point (Figure 1.5c). It is a characteristic of a saddle
point that there exists one line through xs , with the property that if we follow
the variation
of thecasos
f -value
the line,
this looks like a local minimum,
Se pueden
dar distintos
de along
mnimos
locales.
whereas there exists another line through xs , indicating a local maximizer.
10/75
c) saddle point
a) minimum
b) maximum
Figure
1.5: local
With ay2-dimensional
x we seepositiva.
surfaces
1. El primero es un
mnimo
r 2f .x / es definida
z = f (x) near a stationary point.
11/75
10
10
30
25
20
20
15
10
10
0
5
0
12/75
Obtencin de la solucin
Mtodos de direccin de descenso
p
k pk(k)
xk
x(k+1)
ppk(k)
4 Se
(k)
xkx+1
10
13/75
else
end
end
k WD k C 1
14/75
Para calcular ese paso, hay que minimizar en la funcin f .x C p/, es decir
minimizar './ D f .x C p/:
Si se opta por la inexacta, o truncada, hay que garantizar con algn indicador
que
f .x C p/ < f .x/;
es decir que la funcin decrezca suficientemente a lo largo de p.
ng a Step Length k
15/75
Hay que evitar pasos muy largos, como en la parte izquierda de la figura con la
kC1
funcin
x 2, donde,
direcciones
pk D
. 1/kC1
y los pasos that
k D 2 C 3=2
nges
in finding
a las
good
k are
both
in avoiding
producen el efecto indicado, desde x D 2.
ngth is too long, or too short, 0
2.5
2.5
1.5
1.5
0.5
0.5
0
2
1.5
0.5
0.5
1.5
1.5
0.5
0.5
1.5
k+1
k + k pk generated
e function f (x) = x2 and
the piterates
x1/2
k = 1 andx
k =
k+1 from x = 2).
directions
steps =
0
k
k+1
k
k+1
t directions p = (1)
and steps = 2+3/2
from x0 = 2)
16/75
'./ D f .x C p/ C pT rf .x C p/ C O. 2/
f .xCp/
(x k )
f f.x/
)
B
11
22
(a)
0
f (x ) se debe cumplir que './ < '.0/ y que './ > ' .0/.
Para que haya descenso,
k
17/75
La ecuacin
f .x C p/ D f .x/ C %rf .x/Tp;
0 % < 21 ;
18/75
Para que haya suficiente descenso, los criterios de Armijo y Goldstein 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,
f .x C p/ f .x/ C %rf .x/Tp
Armijo
y
f .x C p/ f .x/ C rf .x/Tp
Goldstein
19/75
20/75
f .x C p/
D
kpk
rf .x/T p
D
kpk
21/75
rf .x/
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.
3
2.5
1.5
xk
1
2
pk
1.5
0.5
0.5
pTk fk
Descent direction:
= kpk k kfk k cos k < 0 (angle <
can be reduced along pk (for a sufficiently smooth step):
T
1.5
1.
22/75
if (p no existe) or (t ol)
gD
rf .x/
f ound WD true
else
end
end
Su convergencia es lineal.
k WD k C 1
0;1
Ce x1
3x2 0;1
Ce
x1 0;1
function [x f] = Maxima_pendiente_unc(fun,x0)
% Mtodo de la mxima pendiente
rho = 0.1; beta = 0.5;
% Parmetros y partida
f1=0; maxit = 100; x = x0;
for i=1:maxit
% Proceso iterativo
[f g] = fun(x);
if (abs(f-f1) < 1e-10), break, end
p = -g; alpha = 1;
for k=1:10
% Clculo inexacto 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; f1=f;
fprintf(%4.0f %13.8e %13.8e %13.8e %13.8e\n,i,x,f,alpha);
end
end
function [f g]= objfun_min1(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);
end
23/75
24/75
25/75
10
10
error
inexacta: backtracking
10
10
10
15
10
10
15
k
20
25
26/75
27/75
Mtodo de Newton
@2 f .x / @2 f .x /
@2 x1
@x1 @x2
6
6 @2 f .x /
6
@x @x
H D r 2f .x/ D 6
6 2: 1
6 ::
4
@2 f .x /
la Hessiana.
@xn @x1
@2 f .x /
@x1 @xn
7
7
@ f .x / 7
@ f .x /
@ 2 x2
@x2 @xn 7,
:: : : : :: 7
:
: 7
5
@2 f .x /
@2 f .x /
@2 xn
@xn @x2
2
Newtons Method
Newtons Method
La idea:
28/75
Newtons Method
Newtons Method
pT g;
29/75
if (p no existe) or (t ol)
f ound WD true
else
end
end
k WD k C 1
30/75
31/75
0;1
C e x1
3x2 0;1
>> [x f]=Newton_unc(@objfun_min2,[-1;1])
1 -5.23625188e-002 3.53998022e-001 9.16207023e+000
2 -1.05634526e-001 1.05820897e-001 3.73378771e+000
3 -3.18485379e-001 2.52139713e-002 2.71665315e+000
4 -3.45138214e-001 7.18724132e-004 2.56404324e+000
5 -3.46572427e-001 1.03191597e-006 2.55927231e+000
x =
-0.346572427027644
0.000001031915967
f =
2.559266696666079
>>
Ce
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
x1 0;1
32/75
10
error
10
10
10
10
15
10
0.5
1.5
2.5
k
3.5
4.5
33/75
else
p D p mp
end
x WD x C p
34/75
En Matlab:
function [x f i] = Newton_mp(fun,x)
% Mtodo hbrido Newton-mxima pendiente
global h
rho = 0.1; beta = 0.5; % Parmetros 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);
% Direccin de Newton_mp
else
p = -g;
% Direccin de mxima pendiente
end
if abs(p*g)<1e-8, break, end
alpha = 1;
for k=1:10
% Backtracking de 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;
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)
% Funcin 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
15
0.4
4
0.3
15
15
0.2
x2
3
2
1
1
5
3 4
10
0.1
10
0.1
5
43
10
10
15
10
3
4
0.2
5
15
10
10
0.3
15
15
0.4
0.5
0.5
0.4
0.3
0.2
0.1
0
x
0.1
0.2
0.3
0.4
0.5
Now replacing the monomials in the criterion by their relaxed variables, the first LMI
relaxation of Rosenbrocks banana function minimization reads
max 1
21 100y40
+ 2y10 y20 100y02 + 200y
35/75
36/75
7.81250e-003
1.00000e+000
2.50000e-001
1.00000e+000
5.00000e-001
1.00000e+000
5.00000e-001
1.00000e+000
5.00000e-001
1.00000e+000
1.00000e+000
1.00000e+000
1.00000e+000
1.00000e+000
1
0
0
0
0
0
0
0
0
0
0
0
0
0
37/75
38/75
pues se restringe el modelo a una regin donde se confa que plasme bien las
caractersticas del problema.
a small reduction in f , even if the optimal steplength is used. The trust-region meth
dotted
circle (shown),
a more se
signica
steps to the minimizer of m k within theen
39/75
Si la funcin decrece convenientemente
cualquiera
de estasyielding
direcciones,
reduction in f and better progress toward the solution.
hace x C p como el nuevo punto del procedimiento y se adapta o .
In this chapter, we will assume that the model function m k that is used at ea
iterate xk is quadratic. Moreover, m k is based on the Taylor-series expansion of f arou
contours
of mkM.p/
Contornos del
modelo
Trust de
region
step de
Paso
regin
confianza
contours of f de f .x/
Contornos
40/75
f .x/ f .x C p/
;
M.0/ M.p/
41/75
WD mKax 13 ; 1
else
WD 2
end
.2%
1/3
42/75
Se calcula determinando
1 T
.p/ D mKn M.p/ C p p :
p
2
c:
43/75
Si es muy grande,
g:
1
g;
por lo que la direccin es prxima a la de mxima pendiente. Si es muy
pequeo, la direccin es casi la de Newton.
pNa
44/75
45/75
En Matlab:
function [x f k] = Newton_amortiguado(fun,x)
% Mtodo 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;
while ~found
posdef = 0;
while ~posdef
[R p] = chol(H+mu*eye(n));
% Cholesky comprueba si H es definida positiva
if p, mu=2*mu; else posdef = 1; end
end
p = -R\(R\g); nh = norm(p);
% Clculo de paso
if norm(g,inf)<eps1 || nh <= eps2*(eps2 + norm(x)), found=2;
% ptimo
else
% Modificar regin de confianza
xnew = x + p; dL = -p*g-p*(H*p)/2;
[fn gn Hn] = fun(xnew); df = f-fn; r=df/dL;
if r>0
x = xnew; f = fn; g = gn; H = Hn;
ng = norm(g,inf);
mu = mu*max(1/3,1-(2*r-1)^3);
else
mu = mu*2;
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
46/75
minimizar 0;5x12.x12=6 C 1/
x 2R2
>> [x f k] =Newton_amortiguado(@fun5_2,[2;2])
2 1.22222222e+000 1.07737607e+000 1.43392805e+000
3 5.74640142e-001 4.41028668e-002 1.75164488e-001
4 1.32066691e-001 4.36656594e-003 8.75568971e-003
5 6.09495146e-003 1.55898129e-004 1.85864837e-005
6 7.44750479e-005 1.90119424e-006 2.77507370e-009
7 3.05225879e-007 7.79177968e-009 4.66421303e-014
8 4.18117642e-010 1.06736708e-011 8.75251085e-020
x =
1.0e-009 *
0.418117641894218
0.010673670797581
f =
8.752510847988606e-020
k =
8
x2 arctan.x2/
3.33333333e-001
1.11111111e-001
3.70370370e-002
1.23456790e-002
4.11522634e-003
1.37174211e-003
4.57247371e-004
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
0;5 ln.x22 C 1/
47/75
1
M.p/ f .x/ C g T p C p T Bp
2
kpk
mKn
g,
kp k/ D 0 y
La segunda condicin,
de complementariedad, establece que D 0 o
p Bp g m( p ).
kpk D .
2
3
contours of m
p*1
Indica que cuando p est estrictamente dentro de la regin de confianza (como es el caso en la figura de D 1 ),
se debe cumplir que D 0 y por tanto
que Bp D g, siendo B semidefinida
positiva.
p*3
p*2
Indica
que
est estrictamente
dentro
de
1
2 regin
Figure
4.2 cuando
Solution ofp
trust-region
subproblem for different
radii de
, la
, 3 .
1
confianza (como es el caso en la figura de D ), se debe
que
DD
0y
por2 tanto
g, siendo
cumplir
Cuando
y que
D Bp
3, D
se tiene
queBkp k
semidefinida positiva.
48/75
D y ser > 0.
49/80
10
49/75
Las soluciones de los subproblemas M.p/ no tienen por qu ser exactas. Existen
varias formas de aproximarlas:
Punto de Cauchy : Mnimo a lo largo de p D
g, acotada a
pkC k
Punto de Cauchy
k
gk ,
gk
(4.11)
where
T
1
if gla
gk 0;
Obtiene la solucin del modelo
lineal Mk .p/ con
de mxima
k Bkdireccin
k
(4.12)
min gk 3 /(k gkT Bk gk ), 1
otherwise.
pendiente:
k
pck D k
gk;
Figure 4.3 illustrates the Cauchy point for
in which Bk is positive
kgak ksubproblem
denite. In this example, pk lies strictly inside the trust region.
donde
step pk is inexpensive to calculateno matrix
The Cauchy
factorizations are
T
1
si
g
Bg
requiredand is of crucial importance in deciding if an approximate
solution
k 0of the
k
D
k
T
T
3
trust-region subproblem
is acceptable.
Specically,
a trust-region method
will be globally
mKn kg
k k = k g k B k g k ; 1 si g k Bg k > 0:
C
ppkCck
gk
gk
50/75
51/75
DogLeg
Hemos visto que si la matriz B del modelo M.p/ es definida positiva, el mnimo
de ste hace p B D B 1g. Es decir, cuando kpB k, p./ D p B .
74
CHAPTER 4.
TRUST-REGION METHODS
52/75
p./
B
p
(paso
pB ( full
step ) completo)
unconstrained
min along g)
pUp: (mnimo
en la direccin
g
U
g
path
direccindogleg
DogLeg
Figure 4.4
lnea DogLeg
recta. El reemplaza
primero hasta
mnimo decurvilnea
M .p/ en por
la direccin
de mxima
El mtodo
la eltrayectoria
dos segmentos
de
pendiente
lnea recta.
El primero hasta el mnimo de M .p/ en la direccin de mxima
by simply omitting the quadratic term from (4.5)T and writing
g g
pendiente
g:
pU D
T T Bg
g
U g ,g gwhen is small.
p ()p
(4.14)
D g T
g:
g Bg
56/81
53/75
54/75
55/75
e_1
e_2\n],xstring);
xc = x0; [fc gc Hc] = fun(xc);
disp([ 0, sprintf( %12.4e,[xc,fc]),sprintf( %10.2e,Delta)]);
for k=1:Kmax
% Modelo Newton: -(gc*pN + 0.5*pN*Hc*pN);
pN
= - Hc\gc;
% Direccin de Newton
pNlen = (pN*pN)^0.5; gHg = gc*Hc*gc;
if pNlen <= Delta
% Punto Newton dentro regin
xt = xc + pN;
else
% Fuera: encontrar el mnimo mediante mxima
%
pendiente del Model Newton
pSD
= -(gc*gc)/gHg*gc;
pSDlen = (pSD*pSD)^0.5;
if pSDlen>=Delta
% Newton y mp fuera regin: usa punto Cauchy
xt = xc - Delta*gc/(gc*gc)^0.5;
else
% mp dentro regin y Newton fuera: usa DogLeg
%
en lmite regin de linea unindolos
pN_pSD = pN-pSD;
a = pN_pSD*pN_pSD; b = 2*pN_pSD*pSD; c = pSD*pSD - Delta^2;
t = (-b+(b^2-4*a*c)^0.5)/2/a;
xt = xc + pSD + t*pN_pSD;
end
end
[fn gn Hn] = fun(xt);
% Nuevo punto obtenido en Reg. Con.
dx = xt - xc; df = fn - fc;
redfun = -df;
% Reduccin obtenida en funcin
repred = -gc*dx-0.5*dx*Hc*dx; % Reduccin predicha modelo Newton
rho
= redfun/repred;
% Ganancia
e1 = max(abs(pN)./max([abs(xc);eps2*ones(size(xc))]));
e2 = max((abs(gn).*abs(xt))/ max([abs(fn),eps2]));
if rho>0
% Buena ganancia; aceptar punto
xn=xt; xc=xt; fc=fn; gc=gn; Hc=Hn;
if rho<0.25, Delta = 0.25*norm(dx); end
if rho>0.75 && norm(dx,2)>((1-eps)*Delta),
Delta = min([2*Delta;Dmax]);
end
disp([sprintf(%3d,k), sprintf( %12.4e,[xn,fn]),...
sprintf( %10.2e,Delta),sprintf( %6.4f,norm(dx)/Delta),...
sprintf( %7.3f,rho),sprintf( %8.1e,e1),...
sprintf( %8.1e,e2)]);
if e1<eps1 || e2<eps2, break, end
else
xn = xc;
% Reduccin de funcin mala; seguir igual
end
end
disp([ptimo: x =,sprintf( %22.16e,xc),.]);
disp([Funcin: f(x) =,sprintf( %22.16e,fc),.]);
end
56/75
x2 arctan.x2/
0;5 ln.x22 C 1/
>> [x f]=Dogleg_UBC_yo(@fun5_2,[2;2]);
k
x_k(1)
x_k(2)
f(x_k)
Delta
|dx|/Del
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
2
5.8687e-001
1.5086e+000
1.0754e+000
2.00e+000 0.5000
3 -4.1104e-001 -2.2464e-001
1.1188e-001
4.00e+000 0.5000
4 -3.9606e-002
7.4824e-003
8.1253e-004
4.00e+000 0.1095
5 -4.1354e-005 -2.7927e-007
8.5513e-010
4.00e+000 0.0101
6 -4.7149e-014
1.4505e-020
1.1115e-027
4.00e+000 0.0000
ptimo: x = -4.7148815071357958e-014 1.4505439221729893e-020.
Funcin: f(x) = 1.1115053813167661e-027.
ro
e_1
e_2
1.040
1.233
0.781
1.045
1.001
1.000
2.8e+000
2.6e+000
2.1e+000
1.0e+000
1.0e+000
1.0e+000
1.4e+000
1.4e+000
1.6e+000
1.9e+000
1.1e-001
1.5e-019
57/75
rf .x/ C ppr
58/75
59/75
60/75
x 0 y una tolerancia.
rf .x 0 /
61/75
Calculemos para probar estos mtodos, una vez ms, el mnimo de la funcin de
Rosenbrock:
2
minimizar 100 x2 x12 C .1 x1/2:
x 2R2
0.5
15
0.4
4
0.3
15
15
3
2
1
1
5
3 4
10
0.1
10
0.1
5
43
10
10
0.2
x2
15
10
3
4
0.2
5
15
10
10
0.3
15
15
0.4
0.5
0.5
0.4
0.3
0.2
0.1
0
x
0.1
0.2
0.3
0.4
0.5
62/75
63/75
4.5.
Convergence Properties
300
x2
2
x2
100
30
10
3
0.3
1
1.5
1.5 x
1
0.5
1.2
x1
The function has one minimizer x = [1, 1]> (marked by a + in the figure) with
1e5
f (x ) = 0, and there is a valley with sloping bottom following the parabola
x2 = x21 . Most optimization algorithms will try to follow this valley.1e10
Thus, f
a considerable amount of iteration steps is needed, if we take x0 in the 2nd ||f||
1e15
0
10
20
30
40
50
quadrant.
0
Figure
4.3: PolakRibi`
ere method with soft line search
Below we give the number of iteration stepsMtodo
and evaluations of f (x)
and f (x)
Nmero
iteraciones
when applying Algorithm 4.6 on this function. In all cases we use the applied
startingto Rosenbrocks function.
103
iterates
xk . Bottom: f (xk ) and kf 0 (xk )k .
criteria given by 1 = 108 , 2 =Top:
1012
point x0 = [ 1.2, 1 ]> , and stoppingPolakRibire
in (4.7). In case of exact line search we use = 106 , = 106 in (2.29),
FletcherReeves
514
Algorithm 2.27 for soft line search.
while we take = 101 , % = 102 in
Method
FletcherReeves
Line search
exact
Implementation
# it. steps 4.6.
# fct.
evals
118 To implement
1429
a conjugate gradient algorithm in a computer program, some
64/75
Probad
>> [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],1)
1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003
2 -1.01771362e+000 1.06810987e+000 5.35291158e+000 1.00000000e-003
513 1.00000141e+000 1.00000283e+000 2.00451765e-012 1.00000000e-004
x =
1.000001414780674
1.000002834445620
f =
2.003988012156511e-012
>> [x f] = Grad_Conjugados_unc(@objfun_min3,[-1.2;1],2)
1 -9.84400000e-001 1.08800000e+000 2.42000000e+001 1.00000000e-003
2 -9.84399999e-001 1.08800000e+000 5.35291158e+000 1.00000000e-010
102 1.00000121e+000 1.00000243e+000 1.47631065e-012 1.00000000e-003
x =
1.000001212679899
1.000002430217752
f =
1.472951080761591e-012
65/75
H rf .x/;
66/75
Quasi-Newton
iterations for optimization
DFP
De Davidon,
Fletcher y Powell:
The field was launched between 1959 and 1970.
DH
go
Argonne National Lab.
91, first issue of SIOPT )
d Maths, Haverford Coll
H k y k y Tk H k
sk sTk
C T :
y Tk H k y k
y k sk
n methods
U. of Leeds
paper
y Tk H k y k sk sTk
H kC1 D H k C 1 C
y Tk sk
y Tk sk
sk y Tk H k C H k y k sTk
y Tk sk
donde y k D rf .x kC1 /
rf .x k / y sk D x kC1
x k D k pk :
;
H k rf .x k /
En Matlab:
67/75
68/75
>> [x i f nf]=quasi_newton_1(@objfun_min3,[-1.2;1],2)
x =
0.999999873170081
0.999999758419957
i =
40
f =
3.067793488101831e-014
nf =
88
69/75
Iteration Func-count
20
26
21
27
22
29
23
30
24
31
25
33
26
34
27
35
28
37
29
38
30
39
31
41
32
42
33
43
34
44
35
45
36
46
Local minimum found.
f(x)
0.238901
0.2102
0.18249
0.15856
0.0893558
0.0726393
0.0413887
0.0221877
0.0126281
0.00703352
0.00203299
0.00109124
8.941e-005
7.16329e-006
4.44047e-007
1.49386e-008
9.03834e-013
Step-size
1
1
0.584225
1
1
0.438248
1
1
0.405833
1
1
0.5
1
1
1
1
1
First-order
optimality
1.06
1.22
3.33
2.91
0.756
3.18
2.3
0.491
1.98
1.35
0.194
0.874
0.14
0.0804
0.0222
0.00263
1.65e-005
70/75
x2 arctan.x2/
71/75
1.00000000e-001
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
72/75
4.74291181e+000
1.90728360e+000
3.16058360e-001
1.33334500e-002
3.86906467e-006
5.00000000e-001
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
73/75
5.00000000e-001
1.00000000e+000
1.00000000e+000
1.00000000e+000
1.00000000e+000
74/75
ro
e_1
e_2
1.040
1.233
0.781
1.045
1.001
1.000
2.8e+000
2.6e+000
2.1e+000
1.0e+000
1.0e+000
1.0e+000
1.4e+000
1.4e+000
1.6e+000
1.9e+000
1.1e-001
1.5e-019
75/75
3.33333333e-001
1.11111111e-001
3.70370370e-002
1.23456790e-002
4.11522634e-003
1.37174211e-003
4.57247371e-004
Programacin Lineal
Linear Programming
1/73
2/73
ndice
Formulacin
Historia
Consideraciones geomtricas
Politopos
3/73
Formulacin
4/73
Mantenimiento de equipos
5/73
Las x1; : : : ; xn son los coeficientes del vector variables de decisin. Los
c1; : : : ; cn, los coeficientes de coste. Los b1; : : : ; bm, el trmino independiente.
6/73
La matriz
a1n
7
a2n 7
: : : ::: 7
5
amn
Un vector, o punto, x T D x1; x2; : : : ; xn, que satisface todas las condiciones
se denomina factible.
El conjunto
F D fx 2 Rn W Ax b; x 0g
de todos los vectores o puntos factibles constituye la regin factible.
7/73
min. c T x
s. a Ax b
x 0:
En forma estndar,
min. c T x
s. a Ax D b
x 0:
8/73
x1 C x2 6
x1 2x2 18
x1; x2 0;
20 356
8
Las restricciones y la regin
factible se ven as:
356
7
376
5 1
3146
5
21
0
9/73
cT x
s. a Ax
y Db
x; y 0:
10/73
xi00;
donde xi0 0 y xi00 0, y el problema pasa a ser uno con formulacin estndar.
11/73
12/73
13/73
14/73
15/73
Tipo de Central
Gas
Hidroelctricas
Carbn
Aerogeneradores
Potencia Potencia
Horas
Coste de Coste total
garantizada mxima utilizacin inversin actualizado
106 kW
106 kW
anuales 106 euros 106 euros
0,33
0,10
0,80
0,01
0,35
0,10
0,90
0,04
7.500
3.000
8.000
2.000
210
80
1.100
48
240
95
1.300
50
16/73
17/73
Solucin Designando por x1; x2; x3; x4 el nmero de unidades de cada tipo de
generacin posible, el problema se puede formular de la siguiente manera:
min. 240x1 C 95x2 C 1:300x3 C
s. a
50x4
x1 50
x2 10
x3 50
x4
18/73
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
19/73
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 =
(fun,zeros(8,1),[],[],A,b,l,u,[],options)
Max
Line search Directional
Iter F-count
f(x)
constraint
steplength
derivative
0
9
0
2.55e+04
1
18
28987
3.553e-15
1
225
2
27
28925.5
2.274e-13
1
-7.51
3
36
28899.5
7.105e-15
1
-4.08
4
45
28792.9
6.57e-17
1
-2.63
5
54
28792
2.274e-13
1
-0.914
6
63
28750.2
3.638e-12
1
-0.914
7
72
28575
2.274e-13
1
-0.914
fmincon
First-order
optimality Procedure
Infeasible start
112
3.69 Hessian modified
2.54 Hessian modified
5.13 Hessian modified
0.909 Hessian modified
0.914 Hessian modified
9.27e-05 Hessian modified
TolFun =
TolCon =
Options
1e-06 (default)
1e-06 (default)
point
twice
twice
twice
[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]
20/73
21/73
>> Ejemplo_generacion
Calling SDPT3 4.0: 20 variables, 8 equality constraints
For improved efficiency, SDPT3 is solving the dual problem.
-----------------------------------------------------------num. of constraints = 8
dim. of linear var = 16
dim. of free
var = 4 *** convert ublk to lblk
*******************************************************************
SDPT3: Infeasible path-following algorithms
*******************************************************************
version predcorr gam expon scale_data
NT
1
0.000
1
0
it pstep dstep pinfeas dinfeas gap
prim-obj
dual-obj
cputime
------------------------------------------------------------------0|0.000|0.000|1.0e+000|6.9e+000|3.5e+010| 2.804630e+009 0.000000e+000| 0:0:00|
1|1.000|0.966|8.9e-007|2.3e-001|2.2e+009| 1.149790e+009 5.446578e+005| 0:0:00|
2|1.000|0.401|2.5e-006|1.4e-001|8.4e+008| 2.092782e+008 5.865177e+005| 0:0:00|
3|0.892|0.352|2.3e-007|9.1e-002|5.8e+008| 8.492455e+007 5.783161e+005| 0:0:00|
4|1.000|0.357|1.5e-006|5.9e-002|4.4e+008| 4.170257e+007 4.391842e+005| 0:0:00|
5|1.000|0.675|1.1e-007|1.9e-002|1.5e+008| 1.329674e+007 1.506755e+005| 0:0:00|
6|0.997|0.878|2.9e-008|2.3e-003|1.9e+007| 2.940189e+006 -1.013703e+004| 0:0:00|
7|0.998|0.919|7.8e-009|1.9e-004|1.7e+006| 5.276519e+005 -2.736437e+004| 0:0:00|
8|1.000|0.060|3.4e-009|1.8e-004|1.4e+006| 4.232803e+005 -2.757775e+004| 0:0:00|
9|1.000|0.881|1.7e-008|2.1e-005|2.2e+005| 1.097886e+005 -2.857791e+004| 0:0:00|
10|0.853|0.236|1.9e-009|1.6e-005|1.0e+005| 2.394123e+004 -2.853426e+004| 0:0:00|
11|1.000|0.452|1.7e-009|8.9e-006|4.8e+004|-4.977080e+003 -2.864900e+004| 0:0:00|
12|0.989|0.646|6.5e-009|3.2e-006|1.1e+004|-2.511018e+004 -2.886680e+004| 0:0:00|
13|0.861|0.213|7.2e-009|2.5e-006|9.6e+003|-2.519317e+004 -2.882240e+004| 0:0:00|
14|1.000|0.617|1.1e-008|9.5e-007|3.0e+003|-2.771596e+004 -2.881777e+004| 0:0:00|
15|1.000|0.652|5.0e-011|3.3e-007|8.5e+002|-2.838212e+004 -2.879646e+004| 0:0:00|
16|0.645|0.374|6.8e-010|2.1e-007|4.4e+002|-2.851301e+004 -2.875216e+004| 0:0:00|
17|1.000|0.169|1.2e-009|1.7e-007|3.8e+002|-2.851581e+004 -2.872179e+004| 0:0:00|
18|1.000|0.308|6.9e-009|1.2e-007|2.7e+002|-2.852690e+004 -2.867571e+004| 0:0:00|
19|1.000|0.521|1.4e-009|5.7e-008|1.2e+002|-2.856063e+004 -2.862352e+004| 0:0:00|
20|1.000|0.858|2.7e-010|8.2e-009|1.5e+001|-2.857437e+004 -2.858190e+004| 0:0:00|
21|0.987|0.984|8.1e-012|1.5e-010|2.7e-001|-2.857499e+004 -2.857511e+004| 0:0:00|
22|0.989|0.989|6.4e-013|2.0e-012|3.3e-003|-2.857500e+004 -2.857500e+004| 0:0:00|
23|0.989|0.988|1.8e-014|2.8e-014|4.4e-005|-2.857500e+004 -2.857500e+004| 0:0:00|
stop: max(relative gap, infeasibilities) < 1.49e-008
------------------------------------------------------------------number of iterations
= 23
primal objective value = -2.85750000e+004
dual
objective value = -2.85750000e+004
gap := trace(XZ)
= 4.42e-005
relative gap
= 7.74e-010
actual relative gap
= 2.99e-010
rel. primal infeas
= 1.78e-014
rel. dual
infeas
= 2.78e-014
norm(X), norm(y), norm(Z) = 1.8e+003, 1.0e+006, 1.0e+006
norm(A), norm(b), norm(C) = 1.6e+003, 1.3e+003, 1.7e+006
Total CPU time (secs) = 0.11
CPU time per iteration = 0.00
termination code
= 0
DIMACS: 1.8e-014 0.0e+000 4.8e-014 0.0e+000 3.0e-010 7.7e-010
-----------------------------------------------------------------------------------------------------------------------------Status: Solved
22/73
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
chol
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
23/73
b := 1 20 2 30 3 1750 4 25500;
c := 1 240 2 95 3 1300 4 50;
a:
1
2
3
4 :=
0.33
0.1
0.8 0.01
0.35
0.1
0.9 0.04
24.75
3
64
0.2
210
80 1100
48 ;
ub := 1 50 2 10 3 50 4 infinity;
24/73
amplRead(Generacin_1.mod)
Name:
f:
H:
Hstr:
fun:
sense:
objbias:
A:
b:
Aeq:
beq:
rl:
ru:
lb:
ub:
Q:
l:
qrl:
qru:
sdcone:
nlcon:
nljac:
nljacstr:
nlrhs:
nle:
cl:
cu:
int:
sos:
xdata:
ydata:
weighting:
x0:
probtype:
solver:
path:
opts:
ode:
odez0:
conlin:
OPTI Problem
[4x1 double]
[]
[]
[]
1
0
[4x4 double]
[]
[]
[]
[4x1 double]
[4x1 double]
[4x1 double]
[4x1 double]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
cccc
[]
[]
[]
[]
[4x1 double]
[]
[]
D:\Matlab2013a\@opti\Generacin_1.nl
[]
[]
[]
[4x1 double]
Opt = opti(prob)
-----------------------------------------------------Linear Program (LP) Optimization
min fx
s.t. rl <= Ax <= ru
lb <= x <= ub
-----------------------------------------------------Problem Properties:
# Decision Variables:
4
# Constraints:
11
# Linear Inequality:
4
# Bounds:
7
-----------------------------------------------------Solver Parameters:
Solver:
CLP
----------------------------------------------------- [x,fval] = solve(Opt)
x =
50.0000
10.0000
7.1429
126.7857
fval =
28575
[x,fval,exitflag,info] = solve(Opt)
x =
50.0000
10.0000
7.1429
126.7857
fval =
28575
exitflag =
1
info =
Iterations: 2
Time: 5.7776e-04
Algorithm: CLP: Automatically Chosen Solver
Status: Proven Optimal
Lambda: [1x1 struct]
Si planteamos el problema otra vez con AMPL, haciendo que las variables de
decisin
deban ser enteras,
-
25/73
26/73
Se obtendra lo siguiente:
>> prob = amplRead(Generacin_1.mod)
prob =
Name: OPTI Problem
f: [4x1 double]
H: []
Hstr: []
fun: []
sense: 1
objbias: 0
A: [4x4 double]
b: []
Aeq: []
beq: []
rl: [4x1 double]
ru: [4x1 double]
lb: [4x1 double]
ub: [4x1 double]
Q: []
l: []
qrl: []
qru: []
sdcone: []
nlcon: []
nljac: []
nljacstr: []
nlrhs: []
nle: []
cl: []
cu: []
int: iiii
sos: []
xdata: []
ydata: []
weighting: []
x0: [4x1 double]
probtype: []
solver: []
path: D:\Matlab2013a\@opti\Generacin_1.nl
opts: []
ode: []
odez0: []
conlin: [4x1 double]
+,"*
-./
012
!"#$%&'()$
$#$
) /./3-45467-4/8
27/73
l9
bcA
@De =
; b
@bGd
@Ci b@kE
b@Hj ?
: b
b@Bf
@bIg
< b
@Fh >
l9
JKLKJMNO
JPQRNSKMQNR
T
T
T
T
T
T
T
T
T
UKVMUMWX 9
RYZ[XJNNP \P]JPQRXS^KNMPQKNQP_XR
JKLKJMNOJPQRNSKMQNRPQN`XKSJR
Se trata de encontrar,
entre
los nudos
1 y 6, el mximo caudal o flujo de gas,
7 8 9
5 6
mercancas, llamadas telefnicas, capital,
3 4 elctrica,
petrleo, energa
material,
2
1
0
etctera.
28/73
En trminos de optimizacin,
max.
s. a
t D x1 C x2
x1 C x3 D x4
x2 C x5 D x3 C x6
x4 C x8 D x5 C x7
x6 D x8 C x9
t D x7 C x9
0 x1
0 x2
0 x3
0 x4
0 x5
0 x6
0 x7
0 x8
0 x9
+,"*
-./
012
!"#$%&'()$
$#$
) /./3-45467-4/8
l9
bcA
@De =
; b
@bGd
@Ci b@kE
b@Hj ?
: b
b@Bf
@bIg
< b
@Fh >
l9
3
2
1
2
1
3
3
1
1
JKLKJMNO
JPQRNSKMQNR
T
T
T
T
T
T
T
T
maximize t
subject to t = x1 + x2, x1 + x3 = x4, et cetera
0 x1 3, 0 x2 2, et cetera
29/73
La (tsolucin
de este sencillo
problema
la siguiente
= x1 +ptima
x2 is equivalent
to inequalities
t xes
1 + x2 , t x1 + x2 , . . . )
Solution
2
4
3
2
4
1
2
1
3
Linear optimization
18-5
30/73
Si algo del dinero obtenido se deposita en cuentas a plazo fijo, se podra obtener
el 1,5 % de inters el segundo ao, el 1,25 % el tercero y el 1 % el cuarto.
31/73
y1
C 1;015y1
x2
x3
x4
D2
y2
D4
C 1;0125y2
y3 D 8
C 1;01y3 D 5
32/73
F
abrica
Almac
en
a1
b1
a2
b2
am
bn
16
Hay que determinar las cantidades xij que hay que enviar de cada fbrica a
Si el coste de enviar una unidad de producto de la f
abrica i al almac
en
cada almacn para satisfacer las demandas
el coste
del transporte
total
determinar
las cantidades
x que habr
a que
j es c , se trataydeque
enviar de cada f
abrica a cada almac
en de tal forma que el coste del
transporte sea mnimo y se satisfagan los requerimientos de envos a
sea mnimo; es decir,
ij
33/73
ij
realizar.
F
abrica
minimizar
sujeta a
j D1
m
i
a1
b1
a2
b2
am
bn
cij xij
ij
n
i
Almac
en
16
xij D ai ;
para i D 1; : : : ; m
xij D bj ;
para j D 1; : : : ; n
0;
para i D 1; : : : ; m
j D 1; : : : ; n:
i D1
xij
P
Pn
Adems, m
a
D
iD1 i
j D1 bj : la cantidad total producida tiene que ser igual a
la suma de las que llegan a los almacenes.
34/73
ndice
Formulacin
Historia
Consideraciones geomtricas
Politopos
35/73
Consideraciones geomtricas
3x2
x1 C x2 6
x1 C 2x2 8
x1; x2 0:
Hay que determinar aquel punto de la regin factible que minimiza la variedad
lineal (una recta) z D x1 3x2.
36/73
21 5
4
3
6
0
1
9209
218 94
3906
78 9
346
5
0 20
37/73
38/73
123
54678
9
54678
9
13
El que la regin factible no est acotada no afecta a que haya o no ptimo;
puede que s a la forma de llegar a ella.
39/73
Soluciones
ptimas
alternativas
En
este
caso
012345167
89
1
5
8
276
5
8
elpunto
ptimo
es
cualquiera
de los!!
puntos de una
denominada
faceta,
o
cara,
!4
!
"
#
de
$la regin factible.
!
(
%
( &$'
&'
' factible
"#est
$
mientras
!
)'
En (a) la regin
acotada
que
en (b)&
no.
*+
0123451676
1895
71419
!!"# $
!%$
!&'($
Solucin ptima
acotada
Este
caso
se
no
!)!
)
*
%presenta
$
cuando la
configuracin regin factible-funcin objetivo tiene la forma de la figura.
+,
'
-.
Es posible desplazarse tanto como se desee dentro de la regin factible en la
direccin c sin encontrar un punto extremo o cara de la regin factible que
bloquee dicho desplazamiento.
40/73
x1 + 2x2
x2
2x1
x1
x2
s. a
Regin factible
2
3
0
3.
41/73
Su regi
on factible es el pues no hay ning
un x = [x1, x2]T que sa
vaca
Por las
ejemplo:
faga todas
condiciones.
x1 C 2x2 2
2x1
x2 3
x1 0
x2 3:
x 1 + 2x 2 2
2x 1 x 2 3
0
3
0
1
3/2
0
8/3
7/3
x2 3
25
42/73
/x 2 , 0 1, estn
Cuando para cada par de puntos del conjunto convexo todos los puntos del
segmento de recta que los une estn en el conjunto.
Title Page
38
of
156
Title Page
Go Back
Full Screen
Close
39
of 156
Quit
Go Back
43/73
p
i
i x i ;
iD1
donde
p
i
i D1
i D 1;
i 0;
i D 1; : : : ; p:
44/73
45/73
s. a
n
X
j D1
n
X
cj xj
05
04
aj xj D b
j D1
x1; : : : ; xn 0:
03
2
05
01
04
03
01
2
46/73
05
04
678
03
2
01
05
04
03
698
01
2
y
2x1 C x2 C x3
D 1
x1 C 3x2
C x4 D 2
x1 ; x2 ; x3 ; x4 0:
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.
04
678
04
698
3
05
05
02
02
01
01
47/73
Consideremos ahora
min.
s. a
n
X
j D1
n
X
48/73
cj xj
aj xj b
j D1
x1; : : : ; xn 0:
Si existe solucin factible, la interseccin del cono convexo que generan
a1; : : : ; an y el conjunto de vectores menores o iguales que b ser no vaca.
04
01
567
04
02
02
01
3
587
49/73
50/73
3x2
x1 C 2x2 2
x1; x2 0:
51/73
0 3
789
5
0463
5
013
94
2
0453
2
La solucin es z D
52/73
3x2
x1 C 2x2 2
x1; x2 0:
53/73
0453
2
013
-2
Politopos
Definicin Llamaremos hiperplano
H de vector caracterstico a 2 Rn ; a 0, al
conjunto H D x 2 Rn W aT x D c , con c 2 R.
HC D x 2 Rn W aT x c
H D x 2 Rn W a T x c
y semiespacios abiertos de borde H a
n
T
D
x
2
R
W
a
x
>
c
HC
H D x 2 Rn W a T x < c :
54/73
55/73
H+
y
x
a
56/73
Imgenes de poliedros.
Tambin aqu.
57/73
58/73
59/73
ndice
Formulacin
Historia
Consideraciones geomtricas
Politopos
60/73
Si Ax D b es compatible, rango.A/ D m:
De las n columnas de A se pueden elegir m linealmente independientes que
formen una base del subespacio Im.A/.
432
2 1 5
Si todos los n m coeficientes del vector x no asociados a las columnas de B, a los que
se denominarn variables no bsicas, se hacen cero y se resuelve la ecuacin Ax D b
en los m restantes coeficientes, denominados variables bsicas, la solucin resultante
de denomina solucin bsica asociada a la matriz bsica, o base, B.
61/73
62/73
023
4
043
4
013
2
56
1110
La matriz de los coeficientes es A D a1; a2; a3; a4 D
. Las posibles
0101
matrices B que se pueden extraer de A y sus correspondientes soluciones
bsicas son las de la tabla.
" #
"
#" # " #
63/73
"
#
11
B D a1 ; a2 D
01
"
#
10
B D a1 ; a4 D
01
"
#
11
B D a2 ; a3 D
10
"
#
10
B D a2 ; a4 D
11
"
#
10
B D a3 ; a4 D
01
x1
1 1 6
3
D B 1b D
D
x2
0 1 3
3
" # " #
x
0
xN D 3 D
x
0
" 4#
" #" # " #
x1
1 0 6
6
1
xB D
DB bD
D
x4
0 1 3
3
" # " #
0
x
xN D 2 D
x
0
" 3#
"
#" # " #
x2
0 1 6
3
1
xB D
DB bD
D
1 1 3
3
x3
" # " #
0
x
xN D 1 D
x
0
" 4#
"
#" # " #
x2
1 0 6
6
1
xB D
DB bD
D
x4
1 1 3
3
" # " #
x
0
xN D 1 D
x
0
" 3#
" #" # " #
x3
1 0 6
6
1
xB D
DB bD
D
x4
0 1 3
3
" # " #
x
0
xN D 1 D
x2
0
xB D
64/73
La cuarta de estas soluciones no vale por ser uno de sus coeficientes negativo;
es no factible.
2 3
0
607
y x 4 D 465 :
3
Obsrvese que estos puntos determinan en sus dos primeros coeficientes los
57
puntos extremos de la figura anterior.
0 3
0 3
2
4
4
4
0 13
2
56
65/73
Teorema Equivalencia entre puntos extremos y soluciones bsicas 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 de P si y slo si los vectores columna de A asociados a
los coeficientes positivos de x son linealmente independientes.
66/73
67/73
57
x1 C x2 6
x2 3
x1 C 2x2 9
x1; x2 0:
023
4
043
4
013
2
56
3
11100
A D a1 ; a2 ; a3 ; a4 ; a5 D 4 0 1 0 1 05
12001
12
2
32 3 2 3
6
0 2 1
6
3
435 D 40 1 05 435 D 435 ;
9
1 1 1
9
0
12
3 2
32 3 2 3
6
20 1
6
3
435 D 4 1 0 15 435 D 435 ;
9
11 1
9
0
68/73
69/73
70/73
Dos soluciones adyacentes o puntos extremos estn unidos por una arista.
71/73
Si el politopo P no est acotado, para caracterizar del todo las soluciones del
problema de Programacin Lineal hay que introducir las direcciones.
Definicin Una direccin 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 x 0 2 P el rayo fx 2 Rn W x D x 0 C d; 0g
pertenece a P .
72/73
i2I
i D 1, i 0, y d, o
73/73
Programacin Lineal
El Mtodo Smplex
1/148
ndice
2/148
Introduccin
El algoritmo Smplex
Degeneracin y ciclado
Anlisis de sensibilidad
3/148
Introduccin
min. c T x
s. a Ax D b
x 0;
se podran estudiar, uno a uno, los vrtices o puntos extremos del politopo
P D fx 2 Rn W Ax D b; x 0; A 2 Rmn; b 2 Rng
y determinar aqul en el que la funcin objetivo se hace mnima.
n
m.n m/
4/148
Sigue una estrategia ptima sin tener que estudiar todos los vrtices de un
problema a partir de:
Repetir el paso anterior cuantas veces sea necesario hasta que se alcance la
solucin ptima o la arista escogida lleve a 1.
5/148
min. c T x
s. a Ax D b
x 0;
si y slo si existen vectores 2 Rm y 2 Rn tales que
(i) Ax D b; x 0;
(factibilidad del problema primal)
T
(ii) c D A C ; 0; (factibilidad del problema dual)
(iii) i xi D 0; i D 1; : : : ; n: (holguras complementarias o gap de dualidad)
T .Ax
b/
6/148
T x:
.
Todas estas condiciones fueron formuladas por Harold William Kuhn, EE.UU.,
1925-2014, y Albert William Tucker, Canad, 1905-1995, en 1951, con el fin de
extender la teora de Lagrange a la caracterizacin de los puntos ptimos de
problemas de programacin lineal y no lineal sometidos a restricciones.
7/148
8/148
cBT
c TN ,
N 0:
Es decir, a que
cN
NTB
cB 0
9/148
N D cN
DB
cB 0
cB
Supongamos que
1
x
B b
x D B D
0
0
min. c T x
es una solucin ptima no degenerada del programa lineal
s. a Ax D b
x 0:
10/148
11/148
ndice
12/148
Introduccin
El algoritmo Smplex
Degeneracin y ciclado
Anlisis de sensibilidad
13/148
Supongamos que:
14/148
B 1N x N
cBT B 1N /x N :
cost
es r
edu
cido
s
Para que se pueda mejorar la funcin objetivo desde el punto extremo que
define ese vector, debe haber costes reducidos negativos.
cBT B 1aj ;
15/148
j >m
que sea negativo, pues har decrecer la funcin objetivo aumentando el valor de
la variable no bsica correspondiente. Si por ejemplo cNj < 0, la funcin objetivo
decrece al ritmo que marca el incremento desde cero de la variable no bsica xj .
16/148
12
42
d 1 es una direccin de movimiento factible; d 2 no.
17/148
1210
A D a1 ; a2 ; a3 ; a4 D
:
0101
18/148
1
4
1 2 4
2
D
D
I
1
0 1 1
1
79
79
62
3
45
5
61
78
01
19/148
B 1 a3 I
20/148
21/148
si y slo si
xB
y 0 y 0:
2
3 2 3
bO1
xB1
6
7 6 7
6xB2 7 6bO2 7
6 :: 7 D 6 :: 7
4 : 5 4 : 5
xBm
bOm
y;
2 3
y1
6 7
6y 7
6 ::2 7 ;
4 : 5
ym
donde bO D B 1b, ese valor mximo de movimiento negativo, vendr dado por
nO
o x
B
bi
D xN q D mKn yi W yi > 0; 1 i m D ypp :
22/148
Para completar una iteracin del mtodo Smplex 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 ; aq ; aB ; : : : ; aBm :
B
1
2
p 1
pC1
23/148
El Algoritmo Smplex
24/148
1. Si no, seguir.
Paso 3 Determinar fila de pivotacin. Anlisis de Ratios. Determinar la variable bsica xjp que
sale de la base: calcular
xjp
xji
D
D mKn
W yi > 0 :
1i m yi
yp
Paso 4 Pivotacin. Adaptar la solucin, la matriz B y las estructuras de datos. Hacer:
xq
D xjp =yp
xji
xji
B C .aq
B [ fqgnfjp g
yi ;
1i m
ajp /epT
25/148
Inf. dual);
while 1==1
% Itera Smplex
xb =U\(L\b);
% xb=B^-1*b vector solucin actual
la =L\(U\c(B_i));
% Multiplicadores smplex
c_r=zeros(n,1);
c_r(N_i)=c(N_i)-A(:,N_i)*la;
% Costes reducidos: c_r=c_N-c_B*B^-1*N
[cj j]=min(c_r);
% Cos. redu. ms negativo; entra j. Bland implcita
if cj>-eps1
% si todos cj >= 0, ptimo;
sol=zeros(n,1); sol(B_i)=xb;
% dar solucin
fobj=c(B_i)*xb;
N = N_i; B=B_i;
if nargout==8, Binv=U\(L\eye(m)); end
return
% Salir; FIN algoritmo
end
y=U\(L\A(:,j));
% y = B^-1 * a[j]
zz=find(y>eps1);
% Sale de base: mn d(i)/y(i), y(i)>0;
if isempty(zz), error(Problema no acotado.); end
% Direc. de no acotado
[yy ii]=min((xb(zz)./y(zz)));
% Sale i
i=zz(ii);
% Regla de Bland implcita: primera i
k=B_i(i); B_i(i)=j; N_i(j==N_i)=k;
% Adaptacin datos
[L U]=lu(A(:,B_i)); iters=iters+1; Di=norm(c_r(c_r<0));
fprintf(%3d%6d%7d %20.6f %20.6f %20.6f\n,iters,k,j,cj,c(B_i)*xb,Di); % Info. itera
end
end
26/148
3x2
s. a 2x1 C 3x2 6
x1 C x2 1
x1; x2 0:
3x2
s. a 2x1 C 3x2 C x3
D6
I
x1 C x2 C
x4 D 1
x1 ; x2 ; x3 ; x4 0:
10
B D a3 ; a4 D
01
y N D a1 ; a2 D
23
:
11
Iteracin 1. Paso 1
27/148
Iteracin 1. Paso 2
28/148
1
3
3
D
:
1
1
Iteracin 1. Paso 3
29/148
Es decir, saldr xB2 D x4. Esto se puede deducir tambin analizando la expresin
3
xB1
x
6
;
D 3 D B 1b y D
xB2
x4
1
1
comprobndose que x4 es la primera variable que llega a cero al incrementar x2.
Iteracin 1. Paso 4
D1
x3 y1 D 6
x4 y2 D 1
13D3
1 1 D 0:
30/148
13
B D a3; a2 D
01
y N D a1; a4 D
20
:
11
1 3 6
3
D
0 1 1
3:
31/148
Iteracin 2. Paso 1
Iteracin 2. Paso 2
Iteracin 2. Paso 3
32/148
33/148
5
;
1
34/148
Iteracin 2. Paso 4
D 53
x2 y2 D 1
x3 y1 D 3
3
5
3
5
. 1/ D
5 D 0:
8
5
La solucin queda:
2 3 2 3
x1
3=5
6 7 6 7
6x27 68=57
6 7D6 7
4x35 4 0 5
x4
0
con
B D a1; a2 D
23
11
10
y N D a3; a4 D
:
01
35/148
3
"
D 1;
1
5
1
5
1
6
D
1
#
3
27
6
5
D
:
2
1
5
5
23
11
36/148
Iteracin 3. Paso 1
T a 3 D 0
cN4 D c4
T a4 D 0
1
4=5; 3=5
D 54
0
0
4=5; 3=5
D 53 :
1
Todos los costes reducidos son positivos por lo que se ha llegado al nico
ptimo del problema.
37/148
La solucin ptima es
2 3 2
3
x1
3=5
6 7 6
7
6x27 68=57
6 7D6
7:
4x35 4 0 5
x4
0
La funcin objetivo
6
z D cBT B 1b D T b D 4=5; 3=5
D
1
27
:
5
38/148
569
8
9
578
3
568
7
01
3x2
s. a 2x1 C 3x2 C x3
D6
x1 C x2 C
x4 D 1
x1 ; x2 ; x3 ; x4 0:
>> cEje1=[-1 -3 0 0];
>> AEje1=[2 3 1 0;-1 1 0 1];
>> bEje1=[6;1];
>> bfsEje1=[3 4];
>> [sol fobj pi cr iters B N]=ProgLineal_3(cEje1,AEje1,bEje1,...
sqrt(eps),bfsEje1)
39/148
Se obtiene:
Inf. dual
3.162278
4.000000
40/148
Obsrvese que con Matlab no sera necesario suministrar el problema en forma estndar pues admite dos conjuntos de
condiciones: de igualdad y desigualdad. Si, en cambio, hay que explicitar que las cotas inferiores de las variables son cero.
3x2
x1 2x2 4
x1 C x2 3
x1; x2 0:
41/148
3x2
x1 2x2 C x3
D4
I
x1 C x2 C
x4 D 3
x1 ; x2 ; x3 ; x4 0:
10
B D a3 ; a4 D
01
y N D a1 ; a2 D
de funcin objetivo z D
cBT B 1 b
4
D 0; 0
D 0:
3
1 2
:
1 1
02
9
3
6
45 78
79
01
Iteracin 1. Paso 1
42/148
43/148
3:
1
2
2
D
:
1
1
44/148
Iteracin 1. Paso 3
45/148
Iteracin 1. Paso 4
D3
x3 y1 D 4
x4 y2 D 3
3 . 2/ D 10
3 1 D 0:
La solucin queda:
2 3 2 3
x1
0
6 7 6 7
6x27 6 37
6 7D6 7
4x35 4105
x4
0
con
1 2
B D a3; a2 D
0 1
y N D a1; a4 D
10
:
11
46/148
Iteracin 2. Paso 1
47/148
Iteracin 2. Paso 2
Elegimos la nica variable no bsica posible, x1, como aquella que ha de entrar
en la base.
x1 C 2x2 4
x1 C x2 1
x1; x2 0:
4x2
4x2
x1 C 2x2 C x3 D 4
x1 C x2 C x4 D 1
x1; x2; x3; x4 0:
21
y N D a2; a3 D
:
10
48/148
49/148
8:
50/148
Iteracin 1. Paso 1
51/148
02
34567849
4
8
!"
#!"
01
10 4
B a2 x2 D
11 1
1
10 2
4
x2 D
11 1
5
2
x:
3 2
52/148
8.
53/148
Degeneracin y ciclado
Lo peor que puede ocurrir es que. en el Paso 3, la variable que salga de la base,
xjp , tenga un valor cero, lo que dar lugar a una iteracin con desplazamiento
D 0: x no cambiar.
El problema
54/148
min.
s. a x1
x2
x3
3
x
4 4
C 20x5
C 14 x4
C 21 x4
8x5
12x5
1
x
2 6
C 6x7
El ptimo es x D
objetivo ptima -5/4.
3=4; 0; 0; 1; 0; 1; 0T
y su funcin
C 9x7 D 0
C 3x7 D 0
C x6
D1
x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 0:
x6
1
x
2 6
expuesto por E.M.L. Beale en 1955, muestra cmo el mtodo Smplex puede
quedar atrapado en un ciclo infinito, si se escoge como variable a entrar en la
base aquella que posee el coste reducido ms negativo y para salir de ella una de
las que proporcionan el mnimo .
55/148
Para salir de la base, si el ratio es igual en varias, tambin aquella con menor
ndice.
ndice
56/148
Introduccin
El algoritmo Smplex
Degeneracin y ciclado
Anlisis de sensibilidad
57/148
58/148
59/148
10
x3
1
0
4
41 D
B D a3 ; a4 D
W xB D
D B 1b D
01
x4
01
1
x
0
xN D 1 D
:
x2
0
60/148
61/148
62/148
Variables artificiales
Si se quiere conseguir una solucin factible del problema original habr que
forzar a que los coeficientes del vector x a sean cero. Es decir, resolver tambin
con el mtodo Smplex el problema
63/148
min.
m
X
x ai
iD1
s. a Ax C x a D b
x; x a 0:
El mtodo Smplex completo, por consiguiente, consta de las dos fases que se
indican en la tabla.
64/148
m
X
xai
i D1
s. a Ax C x a D b
x; x a 0:
Si x a 0, parar: el problema no tiene solucin bsica factible.
Si x a D 0, ir a la fase II tomando como B inicial la de la ltima iteracin de
esta fase.
Fase II Partiendo de xB D B 1 b y x N D 0, resolver
min. cBT xB C c TN x N
s. a BxB C N x N D b
xB ; x N 0:
Algoritmo Smplex revisado en dos Fases
65/148
66/148
2x2
x1 C x2 2
x1 C x2 1
x2 3
x1; x2 0:
2x2
x1 C x2 x3
D2
x1 C x2
x4
D1
x2
C x5 D 3
x1; x2; x3; x4; x5 0:
67/148
min.
s. a
x1 C x2
x1 C x2
x2
D2
x4
C x7 D 1
C x5
D3
x1; x2; x3; x4; x5; x6; x7 0:
x3
C x6
3
2
010
11
4
5
4
0
0
1
11
B D a5 ; a6 ; a7 D
y N D a1 ; a2 ; a3 ; a4 D
100
01
1
0
0
3
0
15 :
0
68/148
100
010
Por tanto,
2 3
2 3
x1
0
6x27 607
6x37 607
6 7 6 7
6x47 D 607 :
6 7 6 7
6x57 637
4x 5 425
6
x7
1
69/148
12
32 3 2 3
3 2
1
010
0
0
4 15 D 40 0 15 4 15 D 41 5 :
0
100
1
1
cN1 D c1
T a1 D 0
1; 1;
cN2 D c2
T a 2 D 0
1; 1;
cN3 D c3
T a 3 D 0
1; 1;
cN4 D c4
T a 4 D 0
1; 1;
70/148
Elegimos la nica variable no bsica posible, x2, como aquella que ha de entrar
en la base.
71/148
y.
Es decir,
2 3 2 3 2 3
xB1
x5
3
4xB2 5 D 4x65 D 425
xB3
x7
1
2 3
1
415 ;
1
72/148
D1
x5 y1 D 3
x6 y2 D 2
x7 y3 D 1
11D2
11D1
1 1 D 0:
2 3
x1
0
6x27 617
6x37 607
6 7 6 7
6x47 D 607
6 7 6 7
6x57 627
4x 5 415
6
x7
0
73/148
siendo
2
3
011
B D a5; a6; a2 D 40 0 15
101
y
2
3
10 1 0
N D a1; a7; a3; a4 D 4 1 1 0 15 :
00 0 0
smplex resolviendo B T D cB :
32 3 2 3
0 10
0
1
1 1 1 5 4 15 D 4 1 5 :
1 00
0
0
74/148
cN1 D c1
T a 1 D 0
1;
1;
cN7 D c7
T a 7 D 1
1;
1;
cN3 D c3
T a 3 D 0
1;
1;
cN4 D c4
T a 4 D 0
1;
1;
3
1
0 4 15 D 2;
0
2 3
0
4
0 15 D 2;
0
2 3
1
4
05 D 1
0
y
0
2 3
0
0 4 15 D 1:
0
75/148
B
B
D mKn y11 ; y22 D mKn 21 ; 21 D 12 I
es decir, saldr xB2 D x6. Esto se deduce tambin de
2 3 2 3
2 3
xB1
x5
2
4xB2 5 D 4x65 D B 1b y D 415
xB3
x2
1
3
1
4 25 ;
1
76/148
D D 21
D x5 y1 D 2
D x6 y2 D 1
D x2 y3 D 1
1
2
1
2
1
2
1 D 32
2D0
. 1/ D 32 :
77/148
2 3
x1
6x27
6x37
6x47
6x 7
4 55
x6
x7
siendo
0
B D a5 ; a1 ; a2 D 40
1
2
D
1=2
63=27
607
607
63=27
4 5
0
0
3
2
11
10
1 15 y N D a6 ; a7 ; a3 ; a4 D 40 1
01
00
1
0
0
3
0
15 :
0
T a 6 D 1
0; 0;
cN7 D c7
T a 7 D 1
0; 0;
cN3 D c3
T a 3 D 0
0; 0;
cN4 D c4
T a 4 D 0
0; 0;
2 3
1
4
0 05 D 1;
0
2 3
0
0 415 D 1;
0
2 3
1
0 4 05 D 0;
0
2 3
0
4
15 D 0:
0
0
78/148
0
4
B D a5 ; a1 ; a2 D 0
1
1
1
0
3
2
1
1
5
4
1 y N D a3 ; a4 D
0
1
0
3
0
15 :
0
79/148
0
4
D 1
1
3
01
1 05
11
12
3 2 1
0
2
4 15 D 4 1
2
2
1
1
2
1
2
13 2
2
15 4
2
00
3 2
3
1=2
0
15 D 4 3=25 :
2
0
cN3 D c3
T a 3 D 0
1=2;
cN4 D c4
T a 4 D 0
1=2;
3
1
3=2; 0 4 05 D
0
2 3
0
4
15 D
3=2; 0
0
1
;
2
3
:
2
80/148
0
y D 40
1
3
11
1 15
01
12
3 2
0
4 15 D 4
0
1
2
1
2
1
2
1
2
1
2
1
2
32 3 2
3
1
0
1=2
05 4 15 D 4 1=25 :
0
1=2
0
81/148
2 3 2
3
3=2
x5
y D 4x1 5 D 41=25
x2
3=2
3
1=2
4 1=25 ;
1=2
D1
x5 y1 D 32 1 12 D 1
x1 y2 D 12 1 12 D 0
x2 y3 D 32 C 1 21 D 2:
82/148
2 3
0
x1
6x27 627
6 7 6 7
6x37 D 607
4x45 415
1
x5
con
0
B D a5 ; a4 ; a2 D 40
1
3
2
01
1
1 15 y N D a3 ; a1 D 4 0
01
0
3
1
15 :
0
0
4
D 0
1
3
01
1 05
11
12
3 2
0
1
4 05 D 4 0
2
1
32 3 2 3
11
0
2
1 05 4 05 D 4 0 5 :
00
2
0
cN3 D c3
T a 3 D 0
cN1 D c1
T a 1 D 1
3
1
2; 0; 0 4 05 D 2;
2 03
1
2; 0; 0 4 15 D 3:
0
83/148
0
1
0
3
1
15
1
12
3 2
1
1
4 05 D 4 1
0
1
0
1
0
32 3 2 3
1
1
1
5
4
5
4
0
0 D
15 :
0
0
1
84/148
85/148
D1
x5 y1 D 1 1 1 D 0
x4 y2 D 1 C 1 1 D 2
x2 y3 D 2 C 1 1 D 3:
2 3
2 3
0
x1
6x27 637
6 7 6 7
6x37 D 617 :
4x45 425
0
x5
86/148
3
2
3
1 01
0 1
B D a3; a4; a2 D 4 0 1 15 I N D a5; a1 D 40 15 :
0 01
1 0
Fase II. Iteracin 3. Paso 1
1
4
0
D
1
0
1
1
3
0
05
1
12
3 2
0
1
4 05 D 4 0
2
1
0
1
1
32 3 2 3
0
0
0
5
4
5
4
0
0 D
05:
1
2
2
T a 5 D 0
0; 0;
cN1 D c1
T a 1 D 1
0; 0;
2 3
0
4
2 05 D 2;
1
2 3
1
2 4 15 D 1:
0
87/148
Todos los costes reducidos de las variables no bsicas son positivos por lo que se
ha alcanzado el nico ptimo del problema.
La solucin final es
2 3
2 3
0
x1
6x27 637
6 7 6 7
6x37 D 617 :
4x45 425
x5
0
6.
88/148
528
7
x
568
7
58 59
68
9 7
6
x1
89/148
j D1
s. a Ax C x a D b
x; x a 0:
La constante M se elige suficientemente grande de tal forma que est muy
penalizado que en el ptimo x a 0.
90/148
1000x6 C 1000x7
2x2
x1 C x2
x1 C x2
x2
91/148
x3
D2
x4
C
x7 D 1
C x5
D3
x1 ; x2 ; x3 ; x4 ; x5 ; x6 ; x7 0:
x6
0
3
1
2
0
0
0
fobj =
-6
pi =
0
0
-2
cr =
1000
iters =
4
B =
3
N =
6
1000
Anlisis de sensibilidad
92/148
Con un pequeo esfuerzo, una vez obtenida la solucin con el Smplex, se puede
conocer hasta qu punto ese ptimo seguir sindolo y qu pueden representar,
en costes o beneficios, determinadas variaciones de los parmetros del problema.
93/148
cB C B T B 1N 0T :
94/148
cBT B 1N 0T ;
cBT B 1N C TN D cN TN C TN 0T :
Esto obliga a que el coeficiente del vector coste slo pueda variar hacia
abajo (decrecer), en una cantidad i igual al coste reducido de la variable i
que vara. Es decir
i cNi :
Hacia arriba podra variar hasta el infinito.
95/148
cB C B T B 1N D cN TN
BT B 1N 0T :
mKn mKn
1kn m
expresin en la que d D
de la inversa de B por N .
f cNk =dk ; dk < 0g ; 1 D i
1
B .i;W/
N
T
96/148
Cambios en el vector b
Consideremos el problema:
min. c T x
s. a Ax D b C
x 0:
Al cambiar b, la solucin ptima variara as
h
T
T T
N B 1 T
x D xB x N D bC
0T
iT
Esa base seguir siendo ptima en tanto y cuando sus coeficientes sigan siendo
no negativos.
97/148
i D mKax mKax
bNk =dk ; dk > 0 ; 1
1km
mKn
mKn
1km
bNk =dk ; dk < 0 ; 1 D i
98/148
La solucin completa es
2 3
2
637
60
80
120
80
1
1
7
xB D 6
;
405 ; B D 160 120 ; B D 5600
160 60
0
1 0
368
368
1
1
N D
; D 560
y cN D 560
:
0 1
2
2
99/148
1 0
0 1
1
1
368 2 C
120 80 :
560
5600
100/148
Para que la solucin ptima anterior lo siga siendo, debe cumplirse que
8
< 3680
120 0
: 20 C 80 0:
101/148
1
120
2
:
C
160
3
5600
160
5600
0:
102/148
zC
33
368
D 239 C :
560
35
103/148
min. c T x
s. a Ax D b
l xu
Las variables con estas condiciones se denominan acotadas, encajadas o box
constrained.
Si la variable xj tiene lj D
1 y uj D 1, se dice libre.
104/148
cT x
Ax D b
x C x1 D u
x x2 D l
x; x 1; x 2 0
s. a
105/148
m
variables no bsicas tienen el valor de uno de sus lmites, l u, y las restantes m variables
bsicas corresponden a vectores columnas linealmente independientes de A.
106/148
107/148
108/148
B 1 N l x Nl
B 1Nux Nu :
La funcin objetivo:
z D c T x D cBT xB C c TNl x Nl C c TNu x Nu
1
cBT
B b
cost.
reduc
idos
cost.
reduc
idos
109/148
cBT B 1Nl I
c TNu
cBT B 1Nu:
en su lmite superior,
La funcin objetivo se puede mejorar (decrementar) si
T
1
cj cB B aj < 0 para alguna xj D lj
T
1
cj cB B aj > 0 para alguna xj D uj :
110/148
111/148
B 1 N l x Nl
B 1Nux Nu
B 1 aq
B 1Nux Nu y y D B 1aq .
que q 2 Nl .
112/148
1 D mKn1i m yi W yi > 0I 1 W yi 0
<
O
bi uBi
D mKn
D
mK
n
W yi < 0I 1 W yi 0
2
1i
m
yi
:
uq l q :
113/148
D
mK
n
W yi < 0I 1 W yi 0
1
1i
m
yi
<
Obi uB
D mKn
i
2 D mKn1i m
W yi > 0I 1 W yi 0
y
i
:l
uq :
q
114/148
Todos los cdigos comerciales del mtodo Smplex lo hacen para variables
acotadas:
j 2Nu
si
si
si
si
si
6D uq
6D uq
6D uq
6D uq
6D uq
lq )
lq )
lq y q 2 Nl )
lq y q 2 Nu )
lq ).
115/148
116/148
[m l]
= size(A); f=fopen(Salida_Rsimplex,a);
zer_tol = 1.0e-5; piv_tol = 1.0e-8;
[L U] = lu(A(:,B));
if any(abs(diag(U))<piv_tol), error(La base inicial no es invertible); end
x = lb; upper = N(N>0); x(upper) = ub(upper);
x(B) = U\(L\(b-A(:,abs(N))*x(abs(N))));
while 1
if any(x(B)<lb(B)-zer_tol | x(B)>ub(B)+zer_tol), error(Punto no factible); end
u = L\(U\c(B));
c_r = c(abs(N))-u*A(:,abs(N));
% Costes reducidos no bsicas
if ~any(c_r.*N>zer_tol), return, end
% SE HA LLEGADO A UNA SOLUCIN
Nopt=sum(c_r.*N>zer_tol);
[min_red_cost s] = max(c_r.*sign(N)); % Entra var. s no bsica con>coste reducido
blk = abs(N(s));
min_ratio = ub(blk) - lb(blk); order = -sign(N(s)); % Puede s ir de u a l o l a u
d = order*U\(L\A(:,blk));
block_lb = find(d>=piv_tol & lb(B)>-1e32); % Comprobar bsica que llega a lb
if ~isempty(block_lb)
[min_lb index_r] = min((x(B(block_lb))-lb(B(block_lb)))./d(block_lb));
if min_lb<min_ratio
r=block_lb(index_r);
min_ratio = min_lb;
blk = B(r);
end
end
block_ub = find(d<=-piv_tol & ub(B)<1e32); % Comprobar bsica que llega a ub
if ~isempty(block_ub)
[min_ub,index_r] = min((x(B(block_ub))-ub(B(block_ub)))./d(block_ub));
if min_ub<min_ratio
r=block_ub(index_r);
min_ratio = min_ub;
blk = B(r);
end
end
if min_ratio>1e32, error(Problema no acotado); end
% Readaptar solucin y datos
x(B) = x(B)-min_ratio*d;
x(abs(N(s))) = x(abs(N(s))) + order*min_ratio;
if blk == abs(N(s)), N(s) = -N(s);
% Se bloquea la no bsica
else swap = B(r); B(r) = abs(N(s)); N(s) = -sign(d(r))*swap;
[L U] = lu(A(:,B));
end
niters=niters+1;
fprintf(f,%5d%4d%18.9e%6d\n,niters,fase,c*x,Nopt);
end
117/148
Ejemplo Resolvamos
min. 2x1
s. a
4x2
x3
2x1 C x2 C x3 10
x1 C x2 x3 4
0 x1 4
0 x2 6
1 x3 4:
4x2
x3
2x1 C x2 C x3 C x4
D 10
x1 C x2 x3
C x5 D 4
0 x1 4
0 x2 6
1 x3 4
x4; x5 0:
Partiremos de:
B D a4; a5 D
118/148
10
; Nl D a1; a2; a3 ; Nu D ;
01
119/148
Iteracin 1. Paso 2
120/148
Se resuelve By D a2:
1
10 1
D
:
y D B 1 a2 D
01 1
1
Iteracin 1. Paso 3
1 D mKn
u2
xB1
l2 D 6
y1
0
lB1 xB2
;
lB2
y2
0 5
;
D 5:
121/148
Iteracin 1. Paso 4
l2 C D 0 C 5 D 5
x4 y1 D 9 5 1 D 4
x5 y2 D 5 5 1 D 0:
21.
Iteracin 2. Paso 1
122/148
Iteracin 2. Paso 2
Iteracin 2. Paso 3
>
>
<
nx u o =
D 1:
D mKn 2 D mKn B2 B2 D 5 6
y
1
>
2
>
>
>
;
:
u3 l3 D 4 1
Saldr, por tanto, la variable de nmero de ndice 2 en la base, x2, pues es la
que antes llega a uno de sus lmites: el superior.
123/148
124/148
Iteracin 2. Paso 4
l3 C D 1 C 1 D 2
x4 y1 D 4 1 2 D 2
x2 y2 D 5 C 1 1 D 6:
26.
125/148
Iteracin 3. Paso 1
Como las variables x1 y x5, que estn en sus lmites inferiores, tienen costes
reducidos negativos, todava no se ha llegado al ptimo del problema.
Iteracin 3. Paso 2
Iteracin 3. Paso 3
D
mK
n
D 230 >
>
1
y
>
>
<
nx u o = 2
D :
D mKn 2 D mKn B2 B2 D 2 4
y
1
>
3
2
>
>
>
;
:
u1 l 1 D 4 0
Saldr x4 pues es la que antes llega a uno de sus lmites: el inferior.
126/148
127/148
Iteracin 3. Paso 4
l1 C D 0 C 2=3 D 2=3
x4 y1 D 2 .2=3/ 3 D 0
x3 y2 D 2 C .2=3/ 1 D 8=3:
2 3
x1
2=3
6x27 6 6 7
6 7 6 7
6x37 D 68=37 :
4x45 4 0 5
x5
0
128/148
Tambin,
2 1
B D a1; a3 D
; Nl D a4; a5 y Nu D a2:
1 1
La nueva funcin objetivo es
28.
Iteracin 4. Paso 1
129/148
Los costes reducidos de las variables no bsicas en sus lmites inferiores, x4 y x5,
son 1 y 0, y el de la variable en su lmite superior, x2, es -3.
130/148
2=3 1=3x5
x1
7
6x27 6
6
7
6 7 6
6x37 D 68=3 C 2=3x57
5
4x45 4
0
x5
0
28.
131/148
-2.8000e+001
132/148
133/148
xB
xB
xN
c TN
cBT B 1N
TD
cBT B 1b
B 1b
134/148
135/148
Si suponemos que las variables bsicas que entran y salen de la base en una
determinada iteracin son la q y la p, y que las filas y las columnas del tableau
de esa iteracin estn numeradas partiendo de cero, la operacin de pivotacin
conlleva:
i) dividir la fila p de T por tpq , el coeficiente que ocupa la fila p y la columna
q de la matriz T , y
ii) para 0 i m, i p, restar de la fila i la p multiplicada por tiq a fin de
hacer cero el elemento q de esa fila.
136/148
Ejemplo Resolvamos:
min. x1 C x2
s. a
4x3
x1 C x2 C 2x3 9
x1 C x2
x3 2
x1 C x2 C x3 4
x1; x2; x3 0:
x1 C x2 C 2x3 C x4
D9
x1 C x2
x3
C x5
D2
x1 C x2 C x3
C x6 D 4
x1; x2; x3; x4; x5; x6 0:
137/148
Iteracin 1
z
x1
x2
x3
x4
x5
x6
TD
x4
x5
x6
El indica que de entre las relaciones posibles, 9/2 y 4/1, (la otra afecta a un
nmero negativo) se elige esta ltima, por lo que saldr de la base aquella
variable que pivota en la tercera fila: x6.
138/148
Iteracin 2
z
x1
x2
x3
x4
x5
x6
TD
16
x4
x5
x3
139/148
Iteracin 3
z
x1
x2
x3
x4
x5
x6
TD
17
x1
1
3
1
3
2
3
1
3
x5
x3
2
3
1
3
1
3
13
3
140/148
17.
141/148
E DI
.y
ep /epT
yp
6
6
6
6
D6
6
6
6
4
D E B 1;
3
y1 =yp
::
:::
7
:
7
7
1 yp 1 =yp
7
7 y y D B 1 aq :
1=yp
7
7
ypC1 =yp 1
7
::
::: 5
:
ym =yp
1
"
columna p
142/148
La variante del Smplex que incluye esta forma de actuar es la que sigue.
Paso 1 Operacin BTRAN (backward transformation). Calcular los multiplicadores smplex a partir de
T
T
T D c B
B 1 D cB
Ek Ek 1 E1 :
Determinar los costes reducidos de las variables no bsicas a partir de
cNj D cj
T aj ;
para todo j 2 N:
aq D .E k .E k
.E 1 aq ///:
E kC1 xj .
143/148
144/148
3
321
U D 4 3 55 ;
4
3
12
U1 D 4 1 5;U2 D 4 3 5
1
1
3
3
1
y U 3 D 4 1 55 :
4
1
145/148
1 U 1E 1
E 2 1 E k 1:
146/148
147/148
xi 1;
x(3) =
x2
0
1
x(2) =
x(1) =
x(0)
1
1
x(6)
x(5)
x(4)
x3
x1
x(7)
x(3)
x(2)
x(1)
x(0)
x1
La prctica de los ltimos cincuenta aos ha permitido constatar que los casos
extremos, como el ejemplo de Klee y Minty, rara vez ocurren en la realidad.
148/148
Teniendo tambin en cuenta el efecto que el tratamiento de la dispersidad de los problemas puede acarrear en la
complejidad del mtodo, diversos estudios han establecido que la complejidad del mtodo la define la ecuacin
Km nd 0;33 , donde K es una constante, 1;25 < < 2;5 y d es el nmero de elementos distintos de cero en la matriz
A, dividido por nm.
1/60
2/60
ndice
Dualidad
Dualidad
3/60
min. c T x
s. a Ax D b
x 0;
tiene el dual asociado (dual de Wolfe)
max. L.x; ; /
s. a rx L.x; ; / D 0
0:
4/60
AT
D0
0:
Ax D b
x 0;
5/60
Ejemplo El problema
6/60
min. x1 C x2 C 5x3
s. a x1
min. x1 C x2 C 5x3
C x3 1
x2 C x3 2
H)
s. a x1
estndar
x1; x2; x3 0:
C x3
x2 C x3
T .Ax
b/
T x:
AT
D1
x5 D 2
Su funcin de Lagrange es
cT x
x4
2 3
1
617
6 7
7
D6
657
405
0
2
6
6
6
6
4
1
0
1
1
0
3
0
17
7 1
17
7
05 2
1
2 3
1
62 7
6 7
63 7 :
6 7
44 5
5
7/60
1 C 22
1
1
2
2
1
1
2
3
4
C 2
D
D
D
D
5 D
1
1
5
0
0
1 ; 2 ; 3 ; 4 ; 5 0:
1 C 22
1
1
1
2
2
2
1
1
5
0
0
max. 1 C 22
H)
reorganizando
1
2 1
1 C 2 5
s. a 1
1 ; 2 0:
8/60
(D) max. bT
s. a A T c
0:
(D) max. bT
s. a A T C D c
0:
Interpretacin geomtrica
9/60
s. a
3x1 C x2
x1 C 3x2
2x3 C x4 D 2
x44.3D 2Relations to the Simplex Pr
x1 ; x2 ; x3 ; x4 0:
a2
En el subespacio Im.A/, es
a1
a3
a4
El dual es
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
10/60
of a1 and a2 . The weights in this combination are the xi s in the solution of the
max. 21 C 22
primal.
s. a
31 C 2 2
1 C 32 12
21
2
1
2 6:
a2
a1
a3
a4
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 combinacin lineal positiva
de a1 y a2 .
11/60
Para ello se pone en contacto con un fabricante que se los puede elaborar
realizando para ello n actividades distintas en sus fbricas. El coste (precio)
unitario de cada actividad j se lo fija el fabricante al empresario en cj .
12/60
s. a
n
X
cj xj
j D1
n
X
j D1
aij xj bi ;
xj 0
i D 1; 2; : : : ; m;
j D 1; 2; : : : ; n:
13/60
m
X
yi bi
i D1
m
X
aij yi cj ;
iD1
yi 0;
s. a
n
X
j D 1; 2; : : : ; n;
i D 1; 2; : : : ; m;
cj xj
j D1
n
X
j D1
aij xj bi ; i D 1; 2; : : : ; m;
xj 0
j D 1; 2; : : : ; n:
14/60
15/60
16/60
min. c T x
s. a Ax D b
x 0;
si y slo si existen vectores y , ptimos del problema dual, tales que
Ax D b; x 0;
A T C D c; 0;
i xi D 0; i D 1; : : : ; n;
17/60
Diseado en 1954 por Carlton Eduard Lemke y Evelyn Martin Lansdowne Beale
Carlton Eduard Lemke, EE.UU. 1920-2004 y Evelyn
Martin Lansdowne Beale, Reino Unido, 1928-1985.
para cuando se tiene una solucin bsica no factible de un programa lineal y, sin
embargo, los costes reducidos de las variables no bsicas son todos ptimos,
( 0): los multiplicadores smplex son factibles en el programa dual.
18/60
Esta nueva base es ptima pero no factible pues la nueva variable de holgura
es igual al negativo de lo que no se satisface la nueva restriccin.
19/60
De acuerdo con xB D B 1b
xBp
B 1N x N se tendr que
D B 1b p pj xj ; 8j 2 N ;
Como B 1b p < 0, si hay algn pj < 0, j 2 N , es decir, en el vector fila
p-simo de B 1N , la variable no bsica j podra incrementar su valor (xj en
la expresin anterior) desde cero, remplazando as en la base a xBp que pasara a
ser cero.
1
B bp
El nuevo valor de la variable no bsica xj sera p
> 0.
j
20/60
Han de cumplir las condiciones de factibilidad del dual (ptimas del primal) en
trminos de costes reducidos. Si xj es la que entra, los nuevos costes reducidos,
cNi , en funcin de los antiguos, cOi , saldrn de esta frmula:
cNl D cOl
cOj
pl
; l D 1; : : : ; n .cNl D 0 si l D j /:
pj
Como todos los costes reducidos han de ser no negativos, la relacin 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.
D xjp =q
xji wi ; 1 i m; i 6D p
B C .aq ajp /epT
B [ fqgnfjp g
N [ fjp gnfqg
q:
21/60
22/60
-1
-T
% x =B b, lambda=B c
% B
T
B
% c =c -N lambda
% N N
Ninf Cr-inf);
min.
5x1
s. a
3x1 C 2x2 C x3
D 10
5x1 C 3x2
C x4 D 16
x1 ; x2 ; x3 ; x4 0:
23/60
Ahora, aadimos una nueva columna al problema, de tal forma que quede:
x2 C 12x3
min.
5x1
x5
s. a
3x1 C 2x2 C x3
C x5 D 10
5x1 C 3x2
C x4 C x5 D 16
x1 ; x2 ; x3 ; x4 ; x5 0:
24/60
25/60
x2 C 12x3
3x1 C 2x2 C x3
D 10
5x1 C 3x2
C x4
D 16
x1 C x2
x5 D 5
x1; x2; x3; x4; x5 0:
2
27
7
07 :
05
1
26/60
c2 = [c 0];
b2 = [b; 5];
B2=[1 2 5];
A2=[A [0;0]; 1 1 0 0 -1]
=
3
2
1
0
0
5
3
0
1
0
1
1
0
0
-1
>> [x fobj pi cr it B N]=dual_simplex(c2,A2,...
b2,sqrt(eps),B2)
It. Sale B Entra B
Pinf
Ninf
1
5
4
-0.000000
1
x =
-0.0000
5.0000
0
1.0000
0
fobj =
-5.0000
pi =
-4.0000
0.0000
7.0000
cr =
16.0000
7.0000
it =
1
B =
1
2
N =
3
5
27/60
x2 C 12x3
3x1 C 2x2 C x3
D 11
5x1 C 3x2
C x4 D 16
x1; x2; x3; x4 0:
cr =
0.6667
8.3333
iter =
1
B =
3
2
N =
1
4
Binv =
1.0000
-0.6667
0
0.3333
28/60
x2 C 9x3
min.
5x1
s. a
3x1 C 2x2 C x3
D 10
5x1 C 3x2
C x4 D 16
x1 ; x2 ; x3 ; x4 0:
Funcin objetivo
Era este:
Cantidad total
Alfalfa
Vitaminas
Factor de crecimiento
Pescado
Protenas
Riboflavina
Niacina
cido pantotnico
Fsforo
Calcio
Sal 1
Sal 2
5,80 2,63
1
P ESCADO
FACTOR DE CRECIMIENTO
V ITAMINAS
29/60
A LFALFA
S AL
M INERALES
S OJA EN GRANO
H ARINA DE SOJA
C ARNE
1
1
1
1
0,55
0,26
0,23
0,20
0,40
0,80
0,10
0,10
0,450
0,130
0,090
0,055
0,065
0,025
0,500
0,120
0,045
0,060
0,060 0,26
0,020 3
0,9
0,9
0,17
0,70
0,14
0,14
0,02
0,15
10
10
0,25 0,25
41,6
2
20,4 0,4
9
0,4
0,1 0,05
0,05 0,05
1
0,63
0,20
0,25
0,04
0,30
0,50
= 100
1
1,1
5
5
43
70
45
16
14
35
19
24
30/60
1
0
0
0
0
0.45
0.13
0.09
0.055
0.065
0.025
0
0
1
1
0
0
0
0
0
0
0
0
0.5
0
0.12
0
0.045
0
0.06
0
0.06 0.26
0.02
3
0 0.9
0 0.9
1
0
0
0
0
0
0
0
0
0
0
10
10
1
1
0
0
0
0.17
0.7
0.14
0.14
0.02
0.15
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0.25 0.25 0.63
41.6
2 0.2
20.4 0.4 0.25
9 0.4 0.04
0.1 0.05 0.3
0.05 0.05 0.5
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
15
16
17
18
19
31/60
20
21
22
0.0011
0.0010
0.0023
0.0357
0.0060
1.0000
fobj =
396.3783
pi =
-2.7032
2.6566
0
5.0568
0.9198
10.9772
-0.0000
1.7305
0
3.3186
0.8790
0.3703
0
cr =
1.0e+003 *
0.0033
1.0027
0.0017
0.0009
0.0004
0.0027
0.0110
0.0051
0.0009
iter =
12
B =
3
11
N =
18
22
32/60
15
17
16
19
20
10
14
12
13
21
33/60
34/60
Dieta: con
PL_pd_simplex no
es necesario aquella
variable artificial:
pi =
-2.7032
2.6566
0
5.0568
0.9198
10.9772
0
1.7305
0
3.3186
0.8790
0.3703
0
cr =
3.3186
10.9772
2.6566
5.0568
0.9198
0.3703
1.7305
0.8790
iter =
6
B =
15
4
5
6
7
8
9
11
2
21
17
1
3
N =
18
14
35/60
10
12
13
20
16
19
Formato
NAME
ROWS
N OBJETIVO
E CAN.TOT.
G ALFALFA
G VITAMINA
G FAC.CRE.
G PESCADO
G PROTEINA
G RIBOFLA.
G NIACINA
G ACI.PAN.
G FOSFORO
G CALCIO
G SAL1
L SAL2
COLUMNS
CARNE
CARNE
CARNE
CARNE
CARNE
PESCADO
PESCADO
PESCADO
PESCADO
PESCADO
SOJA-HAR
SOJA-HAR
SOJA-HAR
SOJA-HAR
SOJA-GRA
SOJA-GRA
SOJA-GRA
SOJA-GRA
Vitaminas
OBJETIVO
PROTEINA
NIACINA
FOSFORO
SAL1
OBJETIVO
PESCADO
RIBOFLA.
ACI.PAN.
CALCIO
OBJETIVO
PROTEINA
NIACINA
FOSFORO
OBJETIVO
PROTEINA
NIACINA
FOSFORO
5.8
0.55
0.23
0.4
0.1
7.0
1.0
0.2
0.04
0.5
2.63
0.45
0.09
0.065
3.08
0.5
0.045
0.06
CAN.TOT.
RIBOFLA.
ACI.PAN.
CALCIO
SAL2
CAN.TOT.
PROTEINA
NIACINA
FOSFORO
1.0
0.26
0.02
0.8
0.1
1.0
0.63
0.25
0.3
CAN.TOT.
RIBOFLA.
ACI.PAN.
CALCIO
CAN.TOT.
RIBOFLA.
ACI.PAN.
CALCIO
1.0
0.13
0.055
0.025
1.0
0.12
0.06
0.02
MINERAL.
MINERAL.
MINERAL.
SAL
SAL
ALFALFA
ALFALFA
ALFALFA
ALFALFA
ALFALFA
VITAMINA
VITAMINA
VITAMINA
VITAMINA
VITAMINA
FAC.CRE.
FAC.CRE.
FAC.CRE.
FAC.CRE.
FAC.CRE.
OBJETIVO
FOSFORO
SAL1
OBJETIVO
SAL1
OBJETIVO
ALFALFA
RIBOFLA.
ACI.PAN.
CALCIO
OBJETIVO
VITAMINA
RIBOFLA.
ACI.PAN.
CALCIO
OBJETIVO
FAC.CRE.
RIBOFLA.
ACI.PAN.
CALCIO
1.13
0.26
0.9
1.0
10.0
2.26
1.0
0.7
0.14
0.15
35.72
1.0
41.6
9.0
0.05
6.0
1.0
2.0
0.4
0.05
CAN.TOT.
ALFALFA
VITAMINA
FAC.CRE.
PESCADO
PROTEINA
RIBOFLA.
NIACINA
ACI.PAN.
FOSFORO
CALCIO
SAL1
SAL2
100.0
1.0
1.1
5.0
5.0
43.0
70.0
45.0
16.0
14.0
35.0
19.0
24.0
RHS
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
RHS2
ENDATA
CAN.TOT.
CALCIO
SAL2
CAN.TOT.
SAL2
CAN.TOT.
PROTEINA
NIACINA
FOSFORO
1.0
3.0
0.9
1.0
10.0
1.0
0.17
0.14
0.02
CAN.TOT.
PROTEINA
NIACINA
FOSFORO
1.0
0.25
20.4
0.1
CAN.TOT.
PROTEINA
NIACINA
FOSFORO
1.0
0.25
0.4
0.05
36/60
37/60
5.0568
0.9198
10.9772
-0.0000
1.7305
2.6566
5.0568
1.7305
0.8790
0.3703
3.31
Con linprog de Matlab, una sesin para Dieta sera como sigue.
>> lb=zeros(1,21);
>> options = optimset(LargeScale, off, Simplex, on, Display, Iter)
>> [x,fval,exitflag,output,lambda]=linprog(cv,[],[],Av_d,bv,lb,[],[],options)
Phase 1: Compute initial basic feasible point.
Iter
Infeasibility
0
378.1
1
297.36
2
255.173
3
215.273
4
166.74
5
152.354
6
150.459
7
80.7105
8
39.7026
9
37.6039
10
35.2884
11
11.1807
12
6.17907
13
3.78533
14
0.34
15
-0
Phase 2: Minimize using simplex.
Iter
Objective
f*x
0
708.542
1
602.242
2
570.823
3
567.359
4
548.379
5
442.335
6
436.35
7
403.21
8
400.495
9
397.745
10
396.378
Dual Infeasibility
A*y+z-w-f
9.77527
77.2953
7.28754
8.73213
3.1832
5.6131
3.29995
4.08198
0.596593
0.231097
0
38/60
Optimization terminated.
x =
15.9679
58.4301
5.9138
5.8891
1.2103
1.0000
1.5889
5.0000
5.0000
0
0.4889
0
0
0
20.2534
0
7.4017
0
-0.0000
0
5.0000
fval =
396.3783
exitflag =
1
output =
iterations: 10
algorithm: medium scale: simplex
cgiterations: []
message: Optimization terminated.
lambda =
ineqlin: [0x1 double]
eqlin: [13x1 double]
upper: [21x1 double]
lower: [21x1 double]
39/60
40/60
41/60
Si los lmites inferiores de las variables no son cero, se pueden escalar para que as lo sean.
42/60
43/60
wT u
A T y Cw zCc D 0
w; z 0
x/
zT x.
AT y C w
z.
44/60
z C c D0
Ax D b
x C sDu
xi zi D 0;
si wi D 0;
x; z; s; w 0:
i D 1; : : : ; n
i D 1; : : : ; n
Las de no negatividad de las variables son las que complican estos mtodos.
Para resolver este sistema de ecuaciones, dado que es no lineal, se podra usar
Newton-Raphson, siempre que se partiese de un punto que cumpliese
estrictamente las condiciones de no negatividad de las variables.
45/60
sw C sw C ws D 0:
x2 s2
iteraciones
PRIMAL-DUAL METHODS
401
central path C
x1 s1
Figure 14.2
46/60
14.1.
x2 s2
sik wik D k ! 0
cuando k ! 1:
iteraciones
PRIMAL-DUAL METHODS
401
central path C
x1 s1
(14.3a), (14.3b), and (14.3d).) In the unusual geometry of Figure 14.2, the search directions
(x k , k , s k ) transform to curves rather than straight lines.
As Figure 14.2 shows (and the analysis conrms), the lower bound min on the
centering parameter ensures that each search direction starts out by moving away from the
boundary of N ( ) and into the relative interior of this neighborhood. That is, small
steps along the search direction improve the centrality. Larger values of take us outside
the neighborhood again, 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
guaranteed that a certain minimum step can be taken before we reach the boundary of
N ( ), as we show in the analysis below.
The analysis of Algorithm 14.2 appears in the next few pages. With judicious choices
of k , this algorithm is fairly efcient in practice. With a few more modications, it becomes
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 the duality measure by a factor of , that
is, to identify a point (x k , k , s k ) for which k 0 . For small , the point (x k , k , s k )
satises 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
original linear program. The O(n| log |) estimate is a worst-case bound on the number
of iterations required; on practical problems, the number of iterations required appears
N
xN T zN C sN T w
D g; donde g D
;
2n
siendo el numerador la denominada brecha o gap de dualidad, y el denominador
los dos grupos de n variables que contribuyen al gap. es un porcentaje,
k 2 .0; 1/ 0;9995, de lo que se desea reducir el gap en cada iteracin.
k
En cada etapa del proceso iterativo, estos mtodos resuelven ligeras variantes
del sistema no lineal KKT
8 T
A y Cz wDc
<
Ax D b
f .x; y; z; s; w/
xCsDu
x ;z;s;w>0
X Z D e
:
W S D e
47/60
donde X , S , Z y W
son matrices diagonales con coeficientes xj , sj , zj y wj ,
La frmula ms aceptada de Mehrotra de combinar estas dos
qu direccin
de avance seguir, consiste
respectivamente, y eopciones
es el sobre
vector
de coeficientes
1. en llevar a
CHAPTER 14.
INTERIOR-POINT METHODS
Camino central
62/72
Figure 14.1
48/60
j D1
sujeta a
j D1
Ax D b
x C sDu
x; s > 0:
log x
log s
y T .Ax
b/
wT .x C s
u/ :
A y Cz
donde z D X 1e; w D S
Ax D b
w C c D0
x C sDu
1. THE BARRIER PROBLEM
X Z e D e
S W e D e;
279
49/60
279
=0.01
=1
8
=0.01
camino central
F IGURE 16.1.
(a) through (c) show
level sets of the
El algoritmos reducen paso a paso =0.01
segn
se Parts
aproximan
al ptimo
delbarrier
primal.
=1
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
=
central path.
=1
62/76
0
AT
0
0
0
0
I
0
X
0
0
x
I 7 6 s 7
0 5 4 y 5
z
0
w
S
rb
rc
6
7
r
u
4
5
e X Z e
e S W e;
r b D b Ax
donde r c D c A T y z C w , y su resolucin, determinar el nuevo punto
r u D u x s:
donde moverse.
50/60
51/60
0
AT
0
0
0
0
I
0
X
0
0
x
I 7 6 s 7
0 5 4 y 5
z
0
w
S
6
D4
e
e
rb
rc
7
ru
5:
X Z e X Z e
S W e S W e
Sanjay Mehrotra propuso cmo actuar con estas dos direcciones: combinarlas en
una etapa del proceso iterativo en dos pasos: los denominados predictor y
corrector:
52/60
Goran Lesaja
k = max :
( ) =
7.
where
x T ( )s( )
.
n
s k+1 = s k + k ds .
= k + descenso
1 and go to step 3. puro de Newton, o de escalado
8.
Set kde
Predictor: se usa la (3.20)
direccin
The graphical representation of the IPM algorithm is
Although general Newtons Method (NM) is not
given in Fig. (1).
afn, con D 0.
necessarily globally convergent, by using the above
T
x( ) = x + d x , s( ) = s + ds , ( ) = x ( )s( ) .
n
AT y k + s k c D , (x k )T s k G
(3.22)
Fig. (1).
Global convergence:
The algorithm IPM
achieve an approximate optimal solution in
Algorithm (IPM)
central.
O ( n log1 ) iterations, where = min { , , } .
Initialization
for a given
( P , D , G ) > 0 .
k there
53/60
x
XZe
SW e
de la tercera
Z x/
de la cuarta
W r u C W x/ de la quinta
donde D D X Z C S
W r u/
Todos los mtodos de punto interior resuelven un sistema como ste, o alguna
variante.
54/60
ADA T y D r b C AD r c
CS 1 . e
X 1 . e X Z e/
S W e W r u/ :
r xz D e
X Z e y r sw D e
S W e.
1
1. Formar la matriz D D X 1 Z C S 1 W
2. Hacer r c
r c X 1 r xz CS 1 .r sw W r u /
3. Resolver mediante Cholesky ADA T y D r b C ADr c
4. Calcular x
z
s
w
D
D
D
D
D.A T y r c /
X 1 . Z x C r xz /
r u x
S 1 . W s C r sw /
Hacer
y
0 0
0 AT
I 0
0 0
W 0
0
I
0
X
0
x af
0
I 7 6 saf 7
0 5 4 y af 5
zaf
0
waf
S
55/60
D4
rb 3
rc
ru 5
XZe
SW e
af;P D Knf 2 0; 1jx; s C x af ; saf 0 ;
af;D D Knf h 2 0; 1jz; w C zaf ; waf 0 ;
T
T
i
1
x C af;P x
z C af;D z C s C af;P s
w C af;D w
af D 2n
D
af
3
:
60
4I
0
I
Z 0
0 W
AT
I I 7 sc
0 0 0 5 4 y c 5
zc
0 X 0
wc
0 0 S
2
D4
e
e
3
0
0
5
0
X af Z af e
S af W af e
D D D max;D :
function IntPointLP_2(A,b,c)
56/60
% Resuelve min px s.t. Ax=b, x>=0,
%
cuyo dual es max by s.t. Ay+z=c, z>=0. Mtodo Primal-Dual IPt
[m,n]=size(A); x=sqrt(n)*ones(n,1); y=zeros(m,1);
% Sol. inicial factible
z = x; bc = 1+max(norm(b),norm(c)); t0=cputime;
for iter = 1:100
Rd=A*y+z-c;
Rp=A*x-b;
Rc=x.*z;
residual=norm([Rd;Rp;Rc])/bc;
gap=mean(Rc);
fprintf(iter %2i: medidor duali.=%9.2e, error tot. rel.=%9.2e,iter,gap,residual);
fprintf(\tobj=%14.6e\n,c*x);
function [x y z A b c n0]=ProgLineal_InP_MPS_sc(file)
if residual<5.e-8, break, end
% Resuelve min cx s.t. Ax=b, x>=0, cuyo dual es max by s.t. Ay+z=c, z>=0. Interior Point.
Rc=Rc-min(.1,100*gap)*gap;
eval([!copy file D:\MATLAB2010b\work\tmp\in.mps]); LIPSO = D:\MATLAB2010b\work;
d=min(5.e+15,x./z);
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);
B=A*diag(d)*A;
z = x; bc = 1+max(norm(b),norm(c)); t0=cputime;
R=chol(B);
p = symamd(A*A);
% Reordenacin grado mnimo
fprintf(\n
No fac.
No fac.
Brecha
Error);
t1=x.*Rd-Rc;
fprintf(\n
primal
dual
dual
relati.\n);
t2=-(Rp+A*(t1./z));
fprintf( Iter
A*x-b
A*y+z-c
x*z
total\n);
dy=R\(R\t2);
fprintf( ---------------------------------------------------\n);
for
iter
=
1:100
dx=(x.*(A*dy)+t1)./z;
Rd=A*y+z-c; rrd=norm(Rd);
% No factibilidad dual
dz=-(z.*dx+Rc)./x;
Rp=A*x-b;
rrp=norm(Rp);
% No factibilidad priaml
tau=max(.9995,1-gap);
Rc=x.*z;
% No factibilidad complementariedad
residuo=norm([Rd;Rp;Rc])/bc;
ap=-1/min(min(dx./x),-1);
gap=mean(Rc);
% Brecha dual
ad=-1/min(min(dz./z),-1);
fprintf(%5i %15.2e %10.2e %11.2e %10.2e\n,iter,rrd,rrp,gap,residuo);
ap=tau*ap;
if residuo<5.e-10, break, end
Rc=Rc-min(.1,100*gap)*gap;
ad=tau*ad;
d=min(5.e+15,x./z);
x=x+ap*dx; z=z+ad*dz; y=y+ad*dy;
B=A*sparse(1:n,1:n,d)*A;
end
R=cholinc(sparse(B(p,p)),inf); % Cholesky incompleto
t1=x.*Rd - Rc; t2=-(Rp+A*(t1./z));
fprintf(Termina!\t[m n]=[%g %g]\tCPU=%g\n,m,n,cputime-t0);
dy=zeros(m,1);
x, y, z
dy(p)=R\(R\t2(p));
% Resuelve sistema
dx=(x.*(A*dy)+t1)./z;
fprintf(Fun, Obj= %14.6f\n,c*x);
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);
3x2
s. a 2x1 C 3x2 C x3
D6
x1 C x2 C x4 D 1
x1 ; x2 ; x3 ; x4 0:
obj=-8.000000e+000
obj=-3.714339e+000
obj=-4.423752e+000
obj=-5.315741e+000
obj=-5.380112e+000
obj=-5.398613e+000
obj=-5.399908e+000
obj=-5.400000e+000
obj=-5.400000e+000
57/60
La Dieta:
x =
15.967948585969863
58.430071825246408
5.913766767060357
5.889057162222607
1.210305369941197
1.000000000555506
1.588850287092843
5.000000000293239
5.000000001617829
0.000000000555506
0.488850287092842
0.000000000293247
0.000000001617851
0.000000000134912
20.253399926042366
0.000000000856644
7.401722257701704
0.000000000450807
0.000000001677626
0.000000004009333
4.999999995990669
y =
-2.703193632507613
2.656560069064640
0.000000003039794
5.056784405320645
0.919806312736561
10.977248484804672
0.000000000073392
1.730542784359990
0.000000000200754
3.318574196209014
0.879025638141999
0.370319363423242
-0.000000000295456
z =
0.000000000093028
0.000000000025392
0.000000000252844
0.000000000252264
0.000000001229760
0.000000001490820
0.000000000934941
0.000000000297167
0.000000000297698
2.656560069064640
0.000000003039794
5.056784405320646
0.919806312736561
10.977248484804672
0.000000000073392
1.730542784359990
0.000000000200754
3.318574196209014
0.879025638141999
0.370319363423242
0.000000000295456
Fun, Obj=
396.378265
58/60
>> [x y z]=ProgLineal_InP_MPS_sc(vitam_dc.mps)
1 archivo(s) copiado(s).
NAME done
ROWS done
COLUMNS done
RHS done
RANGES done
BOUNDS done
reading done
mps2mat done
Status=0
No fac.
No fac.
Brecha
Error
primal
dual
dual
relati.
Iter
A*x-b
A*y+z-c
x*z
total
--------------------------------------------------1
3.56e+01
1.65e+02
2.10e+01
1.32e+00
2
2.74e+01
1.05e+02
1.27e+01
8.54e-01
3
1.52e+01
5.50e+01
6.86e+00
4.55e-01
4
2.69e+00
2.06e+01
2.34e+00
1.66e-01
5
1.34e-03
1.03e-02
4.39e-01
1.70e-02
6
4.10e-04
2.04e-03
1.46e-01
5.73e-03
7
2.05e-07
6.85e-05
1.60e-02
5.22e-04
8
1.03e-10
3.43e-08
1.61e-03
5.00e-05
9
5.55e-14
1.67e-11
1.61e-04
5.02e-06
10
7.67e-15
2.87e-12
2.63e-06
8.18e-08
11
2.60e-15
3.59e-12
6.99e-10
2.17e-11
Termina bien! [m n] = [13 21] CPU = 0.046875
Fun. Obje.= 396.37826456785990
x =
0.000000000261274
0.488850287073326
0.000000000137922
0.000000000760845
0.000000000063454
20.253399924763229
0.000000000402831
4.527491511994257
0.000000000212124
0.000000000788949
0.000000001885759
4.999999998114246
15.967948585791948
5.000000000760850
58.430071830165744
5.913766763954222
5.889057162113923
1.210305369740400
1.000000000261274
1.588850287073329
5.000000000137925
y =
-2.703193633520408
2.656560070409201
0.000000001429759
5.056784405939616
0.919806312588121
10.977248487287513
0.000000000034520
1.730542784589703
0.000000000154399
3.318574194419995
0.879025638629259
0.370319363433166
-0.000000000138967
z =
2.656560070409201
0.000000001429759
5.056784405939616
0.919806312588121
10.977248487287513
0.000000000034520
1.730542784589703
0.000000000154399
3.318574194419995
0.879025638629259
0.370319363433166
0.000000000138967
0.000000000043755
0.000000000140021
0.000000000011943
0.000000000118924
0.000000000118652
0.000000000578415
0.000000000701204
0.000000000439747
0.000000000139772
59/60
>> ProgLineal_InP_MPS_sc(marosr7.mps);
1 archivo(s) copiado(s).
NAME done ROWS done COLUMNS done RHS done RANGES done ...
No fac.
No fac.
Brecha
Error
primal
dual
dual
relati.
Iter
A*x-b
A*y+z-c
x*z
total
--------------------------------------------------1
9.34e+003 4.09e+005
9.41e+003 2.41e+000
2
9.24e+003 3.99e+005
9.10e+003 2.35e+000
3
9.03e+003 3.70e+005
8.93e+003 2.33e+000
4
8.45e+003 3.37e+005
8.04e+003 2.12e+000
5
7.47e+003 2.66e+005
6.73e+003 1.80e+000
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
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
10
2.56e+001 4.36e-004
6.43e+001 1.67e-002
11
1.68e+001 1.75e-004
3.97e+001 1.05e-002
12
8.07e+000 6.40e-005
2.02e+001 5.34e-003
13
4.69e+000 2.91e-005
1.17e+001 3.14e-003
14
2.43e+000 1.14e-005
6.15e+000 1.66e-003
15
1.55e+000 5.66e-006
3.84e+000 1.06e-003
16
7.76e-001 1.97e-006
1.92e+000 5.40e-004
17
4.03e-001 8.41e-007
1.04e+000 2.92e-004
18
1.60e-001 3.06e-007
4.63e-001 1.27e-004
19
5.96e-002 1.21e-007
2.05e-001 5.40e-005
20
1.76e-002 5.00e-008
8.44e-002 2.08e-005
21
4.67e-003 1.38e-008
2.85e-002 6.91e-006
22
1.45e-003 8.21e-009
1.33e-002 3.16e-006
23
2.95e-004 6.09e-009
2.97e-003 7.10e-007
24
1.48e-007 9.15e-009
2.98e-004 6.96e-008
25
4.40e-011 3.02e-009
8.96e-006 2.09e-009
26
1.66e-014 3.57e-009
8.10e-009 1.89e-012
Termina bien! [m n] = [3136 9408] CPU = 28.829
Fun. Obje.= 1497185.16653047850000
>> runlipsol(marosr7)
Running mps2mat ...
NAME done
ROWS done
COLUMNS done
RHS done
RANGES done
BOUNDS done
reading done
mps2mat done
Status=0mps2mat successful
Loading tmp\default.mat ...
Preprocessing ...
(m=3136, n=9408)
Dense columns (nnz/m > 0.1): 0
<<<<< This is MIIP algorithm >>>>>
min-degree ordering ... Done. CPU seconds: 0.015625
calling symfct.mex* ... Done. CPU seconds: 0
Residuals:
Primal
Dual
U-bounds
Gap
TR_error
--------------------------------------------------------Iter
0: 6.54e+05 1.01e+04 0.00e+00 4.15e+09 4.41e+05
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
Iter
3: 1.13e-09 6.24e-01 0.00e+00 5.70e+06 6.06e+02
Iter
4: 6.37e-10 2.29e-01 0.00e+00 2.24e+06 2.38e+02
Iter
5: 4.19e-10 6.35e-02 0.00e+00 9.35e+05 9.94e+01
Iter
6: 4.02e-10 1.21e-02 0.00e+00 3.85e+05 4.09e+01
Iter
7: 5.03e-10 1.96e-03 0.00e+00 1.39e+05 1.48e+01
Iter
8: 6.54e-10 3.68e-04 0.00e+00 4.47e+04 4.75e+00
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
Iter
11: 1.75e-09 2.04e-06 0.00e+00 7.28e+02 7.74e-02
Iter
12: 1.81e-09 2.49e-07 0.00e+00 2.42e+02 2.58e-02
Iter
13: 1.69e-09 1.77e-08 0.00e+00 2.63e+01 2.80e-03
Iter
14: 2.00e-09 1.99e-14 0.00e+00 1.43e-01 1.52e-05
Iter
15: 1.32e-09 3.51e-14 0.00e+00 7.14e-05 7.59e-09
MAROSR7
<* Converged! *>
Results (unprocessed) in results.mat
Solution xsol (processed) in solution.mat
Primal Obj =
1.4971851665e+06
[m n] = [3136 9408], nnz(A) = 144848, nnz(L) = 1198243
CPU seconds:
0.48 ... loading
0.02 ... preprocessing
7.20 ... solving
0.00 ... postprocessing
7.70 ... total
60/60
>> 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)
Residuos: Primal
Dual
U-bounds
d-Gap
E
----------------------------------------------------Iter
0: 6.54e+05 1.01e+04 0.00e+00 4.149e+09 4.41
Iter
1: 6.41e-10 2.80e+03 0.00e+00 1.079e+09 1.14
Iter
2: 5.19e-09 7.37e+00 0.00e+00 3.038e+07 3.22
Iter
3: 7.99e-10 6.24e-01 0.00e+00 5.704e+06 6.06
Iter
4: 6.15e-10 2.29e-01 0.00e+00 2.241e+06 2.38
Iter
5: 3.42e-10 6.35e-02 0.00e+00 9.351e+05 9.93
Iter
6: 3.22e-10 1.21e-02 0.00e+00 3.845e+05 4.08
Iter
7: 3.84e-10 1.96e-03 0.00e+00 1.392e+05 1.48
Iter
8: 5.73e-10 3.68e-04 0.00e+00 4.469e+04 4.75
Iter
9: 7.16e-10 1.01e-04 0.00e+00 1.628e+04 1.73
Iter
10: 8.46e-10 2.09e-05 0.00e+00 3.950e+03 4.19
Iter
11: 1.62e-09 2.04e-06 0.00e+00 7.279e+02 7.73
Iter
12: 1.68e-09 2.49e-07 0.00e+00 2.423e+02 2.57
Iter
13: 2.39e-09 1.77e-08 0.00e+00 2.630e+01 2.79
Iter
14: 1.43e-09 1.98e-14 0.00e+00 1.428e-01 1.51
Iter
15: 1.89e-09 3.52e-14 0.00e+00 7.144e-05 7.59
MAROSR7
<* Converge! *>
Resultados (sin procesar) en results.mat
Solucin 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 ... resolucin
0.00 ... postprocesado
9.89 ... total
1/100
2/100
ndice
El problema
Condiciones de Karush-Kuhn-Tucker
Algoritmos
Programacin Cuadrtica
3/100
i 2 E;
j 2 I:
D x W c i .x/ D 0; i 2 EI cj .x/ 0; j 2 I :
x1 + x2 de resolver
s.t.
x1 + x2 2 0
Ejemplo min
Se trata
2
(12.9)
f1g y I D ;.
c1
c1
x1
x*
4/100
5/100
f .x/ rf .x/T s:
CHAPTER 12.
THEORY
OF
L.x; / D f .x/
CONSTRAINED OPTIMIZATION
6/100
c.x/:
Denition 12.1.
The active set A(x) at any feasible x consists of the equality constraint indices from E
together with the indices of the inequality constraints i for which ci (x) 0; that is,
rc.x/.
rx L.x ; 1 / D 0.
EXAMPLE 12.1
(12.9)
(see Figure 12.3). In the language of (12.1), we have f (x) x1 + x2 , I , E {1}, and
2
c1 (x) x12 + x
2 2. We can see by inspection that the feasible set for this problem is the
circle of radius 2 centered at the originjust the boundary of this circle, not its interior.
The solution x is obviously (1, 1)T . From any other point on the circle, it is easy to
nd a way to move that stays feasible
(that is, remains on the circle) while decreasing f .
For instance, from the point x ( 2, 0)T any move in the clockwise direction around the
circle has the desired effect.
c1
c1
c1
x1
x*
x12 + x22 2 0
s.t.
Figure 12.3
Problem (12.9), showing
constraint and function
gradients at various feasible
points.
0 c1 (x + s) c1 (x) + c1 (x)T s,
7/100
In determining whether a step s exists that satises both (12.13) and (12.19), we
consider the following two cases, which are illustrated in Figure 12.4.
min. x1 C x2
Case I: Consider rst the case in which x lies strictly inside the circle, so that the strict
inequality c1 (x) > 0 holds. In this case, any step vector s satises the condition2(12.19),
provided only that its length is sufciently small. In fact, whenever f (x) 1
0, we can
obtain a step s that satises both (12.13) and (12.19) by setting
s. a 2
x22 0:
c1
s
x
s
Figure 12.4 Improvement directions s from two feasible points x for the problem
(12.18) at which the constraint is active and inactive, respectively.
small step s that both retains feasibility and decreases the objective functi
The main difference between problems (12.9) and (12.18) comes in th
feasibility condition. As in (12.13), the step s improves the objective func
8/100
if f (x)T s < 0. Meanwhile, s retains feasibility if
0 c1 (x + s) c1 (x) + c1 (x)T s,
so, to rst order, feasibility is retained if
c1 (x) + c1 (x)T s 0.
s f (x),
c1
s
x
s
s f (x),
9/100
c1
s
x
s
Figure 12.4 Improvement directions s from two feasible points x for the problem
(12.18) at which the constraint is active and inactive, respectively.
feasibility condition. As in (12.13), the step s improves the objective function, to rst order,
if f (x)T s < 0. Meanwhile, s retains feasibility if
Caso 2 Si x esta
o frontera de la regin factible, c1.x/ D 0.
0 c (x en
+ s) el
c (x) extremo
+ c (x) s,
Las so,condiciones
paraif mejorar la funcin objetivo sern
to rst order, feasibility is retained
1
c1 (x) + c1 (x)T s 0.
10/100
(12.19)
In determining whether a step s exists that satises both (12.13) and (12.19), we
consider the following two cases, which are illustrated in Figure 12.4.
Case I: Consider rst the case in which x lies strictly inside the circle, so that the strict
c1
s
x
s
Figure 12.4 Improvement directions s from two feasible points x for the problem
(12.18) at which the constraint is active and inactive, respectively.
0
3973
68
953
882!
546
2
345
67
389
7834
78425
4 "#$%&'
para algn 1 0:
11/100
12/100
APTER
12.
THEORY
a I N E 2D O PxT1I M I ZxA2T I
ONSTRA
O N0;
Csujeta
2
OF
x2 0:
p
La solucin es x D
2; 0T : Las dos condiciones
estn activas
Desde el ptimo, cualquier direccin d a lo largo de la
cual la funcin objetivo mejore, deber cumplir que
T 12.6
Figure
rc
0; i 2 I D f1; 2g y rf .x/T d < 0.
i .x/ d
T
LaProblem
condicin(12.24),
rci .x/illustrating
d 0, i D
the1; 2, se cumple si d
est
dentro del
cuadrante
que definen rc1 .x/ y rc2 .x/,
gradients
of the
active constraints
pero cualquier vector en l cumple que rf .x/T d 0.
c2
f
c1
is the
vector of del
Lagrange
multipliers.
ere
(1 , 2 )T de
La funcin
Lagrange
problema
es The extension of condition
.22) to this case is
L.x; / D f .x/
x L(x , ) 0,
1c1.x/
for some 0,
2c2.x/:
(12.26)
13/100
14/100
p
2; 0T , se tiene que
En el punto ptimo, x D
p
1
0
2 2
rf .x / D
; rc1.x / D
; rc2.x / D
;
1
1
0
por lo que si
"
D
1 #
p
2 2
15/100
1/2 C .x2
s. a
x1 2x2
1
1/2 C .x2 1/2
2x1 x2 1;
min. .x1
s. a
cuyo ptimo es
1 1 T
3 3
cuyo ptimo es 3 3 T .
1/2
x1 2x2
2x1 x2
1
1;
17
x2
x1
18/100
Minimization
Definicin324 Un Chapter
punto11x Constrained
que satisfaga
todas Conditions
las condiciones activas se dice regular
si los vectores gradiente del conjunto de condiciones activas en ese punto, A.x/ D E [
fi 2 I W c i .x/ D 0g, son linealmente independientes.
h(x*)T
plane
Por otro lado, el plano o Tangent
subespacio
tangente, T , es
x*
T
T D v W rc i .x/ v D 0; i 2 E [ j 2h(xI) = 0W cj .x/ D 0 :
S
(a)
c(x*)T
Plano tangente
c(x) = 0
16/100
12.2.
pT A N GTE N T C O N E A N D C O N S T R A I N T Q U A L I
Consideremos ahora el punto x D 2 0 del ejemplo del semicrculo.
17/100
c2
c1
Figure 12.7
Problem (12.24), illu
the gradients of the
constraints and obje
nonoptimal point.
rf .x/T d
< 0:
c2 (x) d 0, f (x)T d < 0.
p
La condicin rx L.x; / D 0 slo se cumple cuando D 1=.2 2/; 1T
that
por lo que noBysenoting
cumple
la no negatividad.
18/100
Condiciones de Karush-Kuhn-Tucker
i 2 E;
i 2 I:
T c.x / D 0;
c i .x / D 0; para
c i .x / 0; para
i 0; para
i c i .x / D 0; para
todo
todo
todo
todo
i
i
i
i
2 E;
2 I;
2 I;
2 E [ I:
19/100
20/100
21/100
Sea x un punto regular y mnimo local del problema no lineal que estamos
estudiando y un vector de multiplicadores de Lagrange tales que .x ; /
cumplen las condiciones de KKT. Si T es el subespacio tangente en x , para
todo z 2 T se cumple que
2
L.x ; /z 0:
z T rx
2
Si en x la matriz rx
L.x ; / es definida positiva, ese punto es el mnimo
local nico del problema.
22/100
Algoritmos de
Programacin No Lineal
con Condiciones
Programacin Cuadrtica
23/100
aTi x bi ;
i 2 I;
24/100
Se trata de resolver
1 T
T
x
G
x
C
x
g
minimizar
2
x 2Rn
sujeta a Ax D b;
T .Ax
b/ :
rx L.x; / D G x C g
Ax
En forma matricial,
G A
A 0
T
x
D
25/100
b D 0:
g
:
b
Ejemplo Resolvamos
26/100
8x1
3x2
3x3
x1 C x3 D 3
x2 C x3 D 0
y vectores son
3
2
1
25 ; g D 4
4
3
8
1
0
1
3
; bD
:
35 ; A D
0 1 1
0
3
TolFun =
TolCon =
Options
1e-06 (default)
1e-06 (default)
27/100
28/100
La funcin que calcula los valores de la funcin objetivo para fmincon es esta.
function f=Q1fun(x)
% Ejemplo optimizacin cuadrtica 1
f=0.5*[x(1) x(2) x(3)]*[6 2 1;2 5 2; 1 2 4]*[x(1); x(2); x(3)]+...
[x(1) x(2) x(3)]*[-8;-3;-3];
end
29/100
ls
0.00e+00
1.00e+00
1.00e+00
1.00e+00
30/100
La matriz es m m, Q, n n, R, m m, Y , n m, Z , n .n
m/.
31/100
x D Y xy C Z x z
01
505
03
404
02
6079
32/100
33/100
34/100
8x1
3x2
3x3
x1 C x3 D 3
x2 C x3 D 0:
>> xyy=R(1:m,:)\b
% alternativa
xyy =
-2.1213
1.2247
>> xz=-(Z*G*Z)\(Z*G*Y*xy+Z*c)
xz =
-6.1489e-16
>> x=Y*xy+Z*xz
x =
2.0000
-1.0000
1.0000
>> la=(A*Y)\(Y*(c+G*x))
la =
3.0000
-2.0000
>> la=R(1:m,:)\(Y*(c+G*x))
la =
3.0000
-2.0000
35/100
36/100
Estudiamos ahora
1 T
minimizar
x G x C gT x
2
n
x 2R
sujeta a Ax D b
Cx d
y T .Ax
b/
zT .C x
d/ :
Gx C g
37/100
AT y C T z D 0
Ax b D 0
s Cx C d D0
si zi D 0
.z; s/ 0:
d 0 las
38/100
39/100
Desarrollando queda
2
G A
6
6 A 0
6
4 C 0
0
0
donde r L D g C G x A T y
rA D Ax b
rC D s C x C d
r sz D e
S Z e:
32
C 0
x
76 7
0 0 7 6y 7
76 7 D
0 I 5 4 z 5
S Z
s
rL
6 7
6 rA 7
6 7;
4r C 5
r sz
CTz
40/100
Luego, para seguir con la direccin corrector hay que obtener primero el
parmetro de centrado, para aproximarse al central path.
41/100
s
z
C
z
;
af D
mC
hacindose por fin
D
af
3
:
42/100
r sz C S af Z af e
e
Por ltimo se calcula una amplitud de paso global de la iteracin, , que cumpla
la factibilidad de s y z llegndose, mediante un ltimo parmetro de seguridad o
amortiguacin, , al nuevo punto
x kC1 y kC1 zkC1 skC1T D x k y k zk sk T C x y z sT :
43/100
r sz
y de ah s D
.r sz C S z/ :
Despejando en la tercera
C T x
s D
rC )
C T x
.r sz C S x/ D
por lo que
C T x
El sistema queda as
2
G
AT
4 A 0
C
0
Z 1S z D
r C C Z 1r sz :
32 3
CT
x
0 5 4y 5 D
Z 1S
z
2
4
rC
3
rL
5:
rA
Z 1r sz
rC
44/100
dx_a
= dxyz_a(1:length(x));
dy_a
= dxyz_a(length(x)+1:length(x)+length(y));
dz_a
= dxyz_a(length(x)+length(y)+1:length(x)+length(y)+length(z));
ds_a
= -((rsz+s.*dz_a)./z);
% Clculo de alpha_af
alpha_a = 1;
idx_z = find(dz_a<0);
if isempty(idx_z)==0, alpha_a = min(alpha_a,min(-z(idx_z)./dz_a(idx_z))); end
idx_s = find(ds_a<0);
if isempty(idx_s)==0, alpha_a = min(alpha_a,min(-s(idx_s)./ds_a(idx_s))); end
mu_a = ((z+alpha_a*dz_a)*(s+alpha_a*ds_a))/nC;
% Affine duality gap
sigma = (mu_a/mu)^3;
% Centering parameter
45/100
0
1
1
8
0
15 x C x T 4 65
6
1
x1 C x2 C x3 D 3
x0
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
46/100
47/100
48/100
x = fmincon(@Q2fun,[0;0;0],[],[],A,b,[],[],[],options)
First-order
Iter F-count
f(x) Feasibility
optimality
0
4
0.000000e+00
3.000e+00
1.333e+00
1
8
-1.177778e+01
0.000e+00
7.000e+00
2
12
-1.831556e+01
0.000e+00
9.448e-01
3
16
-1.850000e+01
0.000e+00
1.164e-07
Norm of
step
2.380e+00
1.873e+00
3.719e-01
TolFun =
TolCon =
Options
1e-06 (default)
1e-06 (default)
x =
0.5000
1.2500
1.2500
La funcin que calcula los valores de la funcin objetivo para fmincon es esta.
function f=Q2fun(x)
% Ejemplo optimizacin cuadrtica 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
sujeta a ci .x/ D 0;
ci .x/ 0;
49/100
i 2 E;
i 2 I:
sujeta a rci .x k /T p C ci .x k / D 0;
rci .x k /T p C ci .x k / 0;
cuyo ptimo llevar a .x k C p; kC1/, el nuevo punto.
i 2 E;
i 2 I;
50/100
Dados
k y k
kC1
51/100
2x24
x34
x12x22
x12x32
25 D 0
56 D 0
4x13
x12x32
3
2
3
2x1 x22 2x1 x32
3
4x13 2x1 x22 2x1 x32 41 x13 162 x1
3
3
4x1 4x2 4x3
7
5
8x23 2x12 x2
8x23 2x12 x2 41 x23 282 x2
; J Lk D 4
5; Jk D
16x
28x
14x
1
2
3
3
2
3
4x3 2x1 x3 41 x3 142 x3
4x33 2x12 x3
2
2
rxx
Lk D 4
12x12
2x22
162
24x22
4x1 x2
2
2x1 121 x22
0
282
12x32
4x1 x3
0
2
2x1 121 x32
3
7
5
142
52/100
function z = f_ejsqp1(x)
% Funcin 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];
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];
53/100
54/100
Qu se hace en el cuadro?
% Jacobiana en el ptimo
% Subespacio ncleo de A
% Hessiana en el ptimo
Vamos a resolver el mismo caso con el software IPOPT, que pasa por ser el
mejor de los actualmente en el mercado para Programacin No Lineal.
Tendremos que informarle de dnde estn las funciones que calculan la funcin
objetivo, y su gradiente, si queremos, y las condiciones y los gradientes de estas.
Usaremos este pequeo programa para hacerlo.
55/100
function x = IPOPT_ejsqp1
x0=[3; 1; 3];
options.ub=[Inf;Inf;Inf];
options.lb=[-Inf;-Inf;-Inf];
options.cl = zeros(1,2);
options.cu = zeros(1,2);
options.ipopt.print_level
options.ipopt.hessian_approximation
options.ipopt.derivative_test
options.ipopt.derivative_test
funcs.objective
funcs.constraints
funcs.gradient
funcs.jacobian
funcs.jacobianstructure
funcs.hessian
funcs.hessianstructure
=
=
=
=
=
=
=
% Punto de partida
% Cotas superiores de las variables
% Cotas inferiores de las variables
=
=
=
=
5;
exact;
% Matriz Hessiana si
first-order;
second-order;
@f_ejsqp1;
% Dnde estn funciones
@const_ejsqp1;
@g_ejsqp1;
@jacobian_ejsqp1;
@() sparse(ones(2,3));
@hessian_ejsqp1;
@() sparse(tril(ones(3)));
[x info] = ipopt(x0,funcs,options);
% Se ejecuta IPOPT
end
function f = f_ejsqp1(x)
% Funcin objetivo
x1 = x(1); x2 = x(2); x3 = x(3);
f = -x1^4-2*x2^4-x3^4-x1^2*x2^2-x1^2*x3^2;
end
function g = g_ejsqp1(x)
% Gradiente de la funcin objetivo
x1 = x(1); x2 = x(2); x3 = x(3);
g = [-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];
end
function c = const_ejsqp1(x)
% Condiciones del problema
x1 = x(1); x2 = x(2); x3 = x(3);
c = [x1^4+x2^4+x3^4-25; 8*x1^2+14*x2^2+7*x3^2-56];
end
function J = jacobian_ejsqp1(x)
% Jacobiana de las constraints
x1 = x(1); x2 = x(2); x3 = x(3);
J1 = [4*x1^3 4*x2^3 4*x3^3; 16*x1 28*x2 14*x3];
J = sparse(J1);
end
function H = hessian_ejsqp1(x, sigma, lambda)
% Matriz hessiana de f. Laplace
x1 = x(1); x2 = x(2); x3 = x(3);
w11 = -12*x1^2-2*x2^2-2*x3^2; w12 = -4*x1*x2; w13 = -4*x1*x3;
w22 = -24*x2^2-2*x1^2; w33 = -12*x3^2-2*x1^2;
H = [w11 w12 w13; w12 w22 0; w13 0 w33];
H = sigma*H+lambda(1)*[12*x1^2 0 0; 0 12*x2^2 0; 0 0 12*x3^2]+...
lambda(2)*[16 0 0; 0 28 0; 0 0 14];
H = sparse(tril(H));
end
56/100
Partiendo del mismo punto x0, Los resultados que se obtienen son los que
siguen.
>> IPOPT_ejsqp1
This is Ipopt version trunk, running with linear solver mumps.
Starting derivative checker for first derivatives.
Starting derivative checker for second derivatives.
(scaled)
Objective...............: -2.2788588017827323e+001
Dual infeasibility......: 7.4606987254810520e-013
Constraint violation....: 1.3816108750890836e-012
Complementarity.........: 0.0000000000000000e+000
Overall NLP error.......: 1.3816108750890836e-012
6
0
6
3
0
0
0
2
0
0
0
0
iter
0
1
2
3
4
5
6
7
objective
-2.5400000e+002
-9.8397946e+001
-5.1217894e+001
-3.9660992e+001
-3.8369140e+001
-3.8292391e+001
-3.8284834e+001
-3.8284828e+001
inf_pr
inf_du lg(mu) ||d|| lg(rg) alpha_du alpha_pr ls
1.38e+002 4.28e-001 -1.0 0.00e+000
- 0.00e+000 0.00e+000
4.06e+001 6.25e+000 -1.0 1.32e+000
- 1.00e+000 1.00e+000h
8.96e+000 3.08e+000 -1.0 5.83e-001
- 1.00e+000 1.00e+000h
9.26e-001 2.85e+000 -1.0 2.12e-001
- 1.00e+000 1.00e+000h
6.58e-002 2.29e-001 -1.0 5.09e-002
- 1.00e+000 1.00e+000h
5.59e-003 4.10e-003 -1.7 1.25e-002
- 1.00e+000 1.00e+000h
4.41e-006 2.80e-006 -3.8 4.07e-004
- 1.00e+000 1.00e+000h
1.49e-012 7.46e-013 -8.6 2.48e-007
- 1.00e+000 1.00e+000h
Number of Iterations....: 7
Number of
Number of
Number of
Number of
Number of
Number of
Number of
Total CPU
Total CPU
0
1
1
1
1
1
1
1
(unscaled)
-3.8284827869949901e+001
1.2533973858808168e-012
1.4921397450962104e-012
0.0000000000000000e+000
1.4921397450962104e-012
=
=
=
=
=
=
=
=
=
8
8
8
0
8
0
7
0.000
0.000
57/100
Tendremos que informarle igualmente de dnde estn las funciones que calculan
la funcin objetivo, y su gradiente si queremos, y las condiciones y los
gradientes de estas.
58/100
59/100
Partiendo del mismo punto x0, Los resultados que se obtienen son los que
siguen.
>> options = optimset(Algorithm,sqp,...
Display,iter,GradObj,on,GradConstr,on...
);
>> [x fval mflag output lambda grad hessian]=fmincon(@fg_ejsqp1,[3;1;3],...
[],[],[],[],[],[],@cg_ejsqp1,options)
Norm of First-order
Iter F-count
f(x) Feasibility Steplength
step optimality
0
1 -2.540000e+002 1.380e+002
4.166e+002
1
3 -1.031438e+002 4.531e+001 1.000e+000 1.703e+000 2.546e+001
2
5 -5.555541e+001 2.211e+001 1.000e+000 1.085e+000 3.733e+001
3
7 -3.931698e+001 4.846e+000 1.000e+000 6.290e-001 2.616e+001
4
9 -3.443752e+001 3.801e-001 1.000e+000 1.880e-001 1.320e+001
5
16 -3.451286e+001 5.603e-001 2.401e-001 2.620e-001 1.133e+001
6
23 -4.743444e+001 6.339e+000 1.681e-001 7.912e-001 3.875e+000
7
25 -3.884668e+001 4.724e-001 1.000e+000 1.616e-001 2.638e+000
8
27 -3.837025e+001 6.995e-002 1.000e+000 6.153e-002 4.865e-001
9
29 -3.830612e+001 1.596e-002 1.000e+000 2.845e-002 4.268e-002
10
31 -3.828490e+001 5.415e-005 1.000e+000 1.961e-003 4.825e-003
11
33 -3.828483e+001 2.474e-009 1.000e+000 1.083e-005 3.709e-005
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.
<stopping criteria details>
x =
1.874064803822328
-0.465819854015786
1.884721085084425
fval =
-38.284827873204847
mflag =
1
output =
iterations:
funcCount:
algorithm:
message:
constrviolation:
stepsize:
firstorderopt:
lambda =
eqlin: [0x1
eqnonlin: [2x1
ineqlin: [0x1
lower: [3x1
upper: [3x1
ineqnonlin: [0x1
grad =
-40.455060168650469
4.080648472401320
-40.018154736754951
hessian =
14.871537376429519
-4.562119880847577
-10.877223066124762
11
33
sequential quadratic programming
[1x782 char]
2.473605320574279e-009
1
3.709210533962449e-005
double]
double]
double]
double]
double]
double]
-4.562119880847577 -10.877223066124762
7.568783635756974 -0.927972279190895
-0.927972279190895 10.903957285682973
60/100
Sigamos con SQP y apliqumosla ahora a una variante del problema en la que
slo hay condiciones de desigualdad.
C x3 x4 13
x
0
3
4
8
2
3 5 x4
minimizar 12 .x1
sujeta a
61/100
2
Lk
rxx
3
2
x1 x3
x4 7
6x
D 4 2
x3 x1 5
x4 x2
x1 =2 C 0;5 2x2
0
D
0
0
.5x3 C 3x4 /=4 C 11=2
2
3
1 C 1 =2
0
1
0
6
7
0
1 C 21
0
1
6
7
D 6
7
1
0
1 C 52 =4
32 =4 5
4
0
1
33 =4
1 C 52 =4
0
.3x3 C 5x4 /=4 C 13=2
y
62/100
63/100
64/100
65/100
Partiendo del mismo punto x0, y con los mismos parmetros de optimizacin,
los resultados que se obtienen son los que siguen.
66/100
67/100
output =
iterations:
funcCount:
algorithm:
message:
constrviolation:
stepsize:
firstorderopt:
lambda =
eqlin: [0x1
eqnonlin: [0x1
ineqlin: [0x1
lower: [4x1
upper: [4x1
ineqnonlin: [2x1
grad =
-0.500163401946486
-1.632916865394398
0.500163401946486
1.632916865394398
hessian =
1.379465461685063
-0.173824495237544
-0.999742693536608
-0.132078313168329
7
16
sequential quadratic programming
[1x782 char]
8.606670931499139e-012
1
2.099667071320255e-007
double]
double]
double]
double]
double]
double]
-0.173824495237544
2.586140075166582
0.067423868800302
-0.902783042682583
-0.999742693536608
0.067423868800302
2.367844422245836
0.727009339021801
-0.132078313168329
-0.902783042682583
0.727009339021801
1.431944391971096
sujeta a ci .x/ D 0;
ci .x/ 0;
68/100
i 2 E;
i 2 I:
2
La adaptacin de rxx
L en cada iteracin, no clculo de nuevo.
69/100
i2I
2
La adaptacin de rxx
L se har con la frmula BFGS, que conocemos.
70/100
71/100
sujeta a
x12 C x22
Ax b
donde
1
6
6 1
AD6
4 0
0
3
0
7
07
7
15
1
9D0
1
6 7
6 57
y b D 6 7:
4 25
4
72/100
2x1 2x2
6 1 07
2x1
6
7
07
rfk D 1
y Jk D 6 1
4 0 15
0
1
Apliquemos el programa:
>>
>>
>>
>>
xs
p=1;
q=4;
x0=[4 3];
[xs lak muk fs k]=sqp_general_1(@f_ex15_4,@g_ex15_4,x0,p,q,1.e-10)
=
1.000000000000160
2.828427124751375
lak =
0.176776695296306
muk =
1.646446609401296
0.000000000000000
0.000000000000000
0.000000000000000
fs =
3.828427124751695
k =
6
73/100
Las funciones a las que llama el script anterior para calcular la funcin
objetivo, las condiciones, gradientes y jacobianas de este ejemplo son estas.
74/100
Partiendo del mismo punto x0, y con los mismos parmetros de optimizacin,
los resultados que se obtienen son los que siguen.
>> [x fval mflag output lambda grad hessian]=fmincon(@fg_ejsqp3,[4;3],...
[],[],[],[],[],[],@cg_ejsqp3,options)
Norm of First-order
Iter F-count
f(x) Feasibility Steplength
step optimality
0
1
1.900000e+001 1.600e+001
5.000e+000
1
3
5.562500e+000 8.563e+000 1.000e+000 2.926e+000 2.313e+000
2
5
4.007813e+000 1.047e+000 1.000e+000 1.023e+000 1.010e+000
3
7
3.833776e+000 3.029e-002 1.000e+000 1.740e-001 8.322e-002
4
9
3.828432e+000 2.856e-005 1.000e+000 5.344e-003 2.051e-003
5
11
3.828427e+000 2.549e-011 1.000e+000 5.049e-006 1.816e-006
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.
<stopping criteria details>
x =
1.000000000000000
2.828427124750697
fval =
3.828427124750697
mflag =
1
output =
iterations: 5
funcCount: 11
algorithm: sequential quadratic programming
message: [1x782 char]
constrviolation: 2.549249700223299e-011
stepsize: 1
firstorderopt: 1.816258994868925e-006
lambda =
eqlin: [0x1 double]
eqnonlin: -0.176776374224092
ineqlin: [0x1 double]
lower: [2x1 double]
upper: [2x1 double]
ineqnonlin: [4x1 double]
grad =
2
1
hessian =
7.282321097662638
0.203510246567942
0.203510246567942
0.006185913353082
75/100
76/100
sujeta a ci .x/ D 0;
ci .x/ 0;
i 2 E;
i 2 I:
sujeta a
c E .x/ D 0
c I .x/ s D 0
s 0:
77/100
A TE .x/y
A TI .x/z D 0
Sz
e D 0
c E .x/ D 0
c I .x/
s D 0;
debiendo ser D 0, s 0 y z 0.
Las matrices A E y A I son las jacobianas de las condiciones c E .x/ y c I .x/,
respectivamente y y y z sus multiplicadores de Lagrange. S es una matriz
diagonal cuyos coeficientes son los de s.
78/100
A este mismo enfoque se llega si, como en Programacin lineal una vez ms, se
considera el problema barrera del original en el que la funcin objetivo es
Pm
f .x/ i D1 log si .
79/100
A E .x/ A I .x/
6 0 Z
6
6
4A E .x/ 0
A I .x/ I
px
76 p 7
76 s 7
76 7 D
54py 5
rf .x/
6
6
6
4
A E .x/y
Sz
c E .x/
c I .x/
pz
e
s
y T c E .x/
zT .c I .x/
s/ :
A I .x/z
7
7
7;
5
80/100
y C D y C zmax py ;
donde
sC D s C smax p s
zC D z C zmax p z;
/sg ;
/zg ;
81/100
A TE .x/y
kc E .x/k; kc I .x/
A TI .x/zk; kS z
ek;
skg
6 0
6
6
4A E .x/ 0
A I .x/
A E .x/ A I .x/
donde D S
6
7
I 7
76 ps 7
76
7D
0 54 py 5
I
1
px
Z.
pz
rf .x/
6
6
6
4
A E .x/y
S
A I .x/z
c E .x/
c I .x/
7
7
7;
5
82/100
y adaptar
kC1
83/100
En el caso del mtodo primal-dual, para calcular esa amplitud de paso, se usa
una funcin de mrito en trminos de la funcin barrera:
.x; s/ D f .x/
m
X
iD1
sk;
84/100
z 2 .0; zmax
y C D y C z p y ;
s C D s C s p s
z C D z C z p z :
85/100
2
La idea es adaptar en cada paso del proceso iterativo la matriz rxx
L mediante
una frmula adecuada: BFGS, por ejemplo, u otras.
xk D xk
xk
B k x k x Tk B k
l k l Tk
C T ;
x Tk B k x k
l k xk
l k D rx L.x k ; sk ; y k ; zk /
rx L.x k 1; sk ; y k ; zk /:
86/100
sujeta a c.x/ 0:
87/100
sujeta a c.x/
sD0
s 0:
Su funcin de Lagrange
L.x; s; ; / D f .x/
T .c.x/
s/
T s:
88/100
A T .x/ D 0
D
c.x/ s D 0
si i D 0
s 0:
sujeta a
c.x/
s D 0;
ln si
T .c.x/
s/ :
89/100
rf .x/
A T .x/ D 0
sD0
c.x/
S
e C D 0;
que, si nos fijamos bien, son idnticas 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.
6
4 0
Ak
x k
Ak
rf .x/ C A k k
k S k 54 sk 5 D4 e S k k e
k
I 0
c k C sk
76
7
5:
90/100
I
s
k
k
4
54 k 5 4 k 5 ;
Ak
I
0
k
k
donde H k D H .x; / D r 2f .x/
A k D rc.x/
k D rf .x/
k D S k 1e
k D s k
ck:
i r 2ci .x/
A Tk k D g k
k
A Tk k
91/100
calculando para ello la amplitud de paso k que minimiza una funcin de mrito
adecuada.
92/100
ln si C
ks
2
c.x/k22 ;
93/100
El listado que sigue recoge todas las consideraciones que acabamos de hacer.
Esta basado en los artculos de LOQO y unos scripts suministrados por
Andreas Antoniou, Profesor de la Universidad de Victoria de Canad.
94/100
95/100
0;25x12
x1
x22 C 1 0
2x2 C 1 D 0:
2/2 C .x2
0;25x12
x1
1/2
x22 C 1 0
2x2 C 1 0
x1 C 2x2
1 0:
2 .x1
2 .x2
0;5x1
2/
; Jk D
1
1/
>>
>>
>>
>>
>>
xs
Usemos el programa:
2x2
2
y Hk D
96/100
2 C 0;51
0
:
0
2 C 21
x0=[2;2];
y1=[1;1;1];
lmd1=[1;1;1];
mu1=0.001;
[xs,yk,lmdk,fs,ck,k,L] = NLP_IP_nc(f_ex15_8,g_ex15_8,h_ex15_8,x0,y1,lmd1,mu1)
=
0.822466525719178
0.911233262859589
yk =
1.0e-003 *
0.541144176123609
0.000000000000000
0.000000000000000
lmdk =
1.0e+012 *
0.000000000000000
3.876880823233180
3.876968062445849
fs =
1.394464616674418
ck =
1.0e-003 *
0.541144176123609
0
0
k =
59
L =
3
97/100
function z = f_ex15_8(x)
x1 = x(1); x2 = x(2);
ck = [-0.25*x1^2-x2^2+1; x1-2*x2+1; -x1+2*x2-1];
fk = (x1-2)^2+(x2-1)^2;
z = [fk; ck];
end
function z = g_ex15_8(x)
x1 = x(1); x2 = x(2);
Ak = [-0.5*x1, -2*x2; 1, -2; -1, 2];
gk = [2*(x1-2); 2*(x2-1)];
z = [gk, Ak];
end
function z = h_ex15_8(xlk)
lmdk = xlk(5:7);
lmd1 = lmdk(1); lmd2 = lmdk(2); lmd3 = lmdk(3);
z = [2+0.5*lmd1, 0; 0, 2+2*lmd1];
end
98/100
99/100
function [f g] = f_ex158_M(x)
x1 = x(1); x2 = x(2);
f = (x1-2)^2+(x2-1)^2;
g = [2*(x1-2); 2*(x2-1)];
end
function [c ceq cg ceqg] = g_ex158_M(x)
x1 = x(1); x2 = x(2);
c
= 0.25*x1^2+x2^2-1;
ceq = x1-2*x2+1;
cg
= [0.5*x1; 2*x2];
ceqg = [1;-2];
end
function h = hess_ex158_M(x,lambda)
h = [2 0;0 2]+lambda.ineqnonlin(1)*[0.5 0;0 2];
end
100/100
>> Script_fmincon_ex158
Iter F-count
0
1
1
2
2
3
3
4
4
5
5
6
6
7
f(x)
1.000000e+000
5.198962e-001
1.280727e+000
1.498705e+000
1.416079e+000
1.393937e+000
1.393468e+000
Feasibility
4.000e+000
7.344e-001
6.368e-002
0.000e+000
0.000e+000
0.000e+000
0.000e+000
First-order
optimality
1.332e+000
6.048e-001
2.827e-001
5.490e-002
1.215e-002
2.554e-004
1.417e-006
Norm of
step
1.107e+000
4.740e-001
1.000e-001
3.685e-002
1.009e-002
2.146e-004
Derivacin e Integracin
de funciones
1/59
ndice
2/59
Introduccin
Extrapolacin de Richardson
Integracin de funciones
Frmulas de Newton-Cotes
Mtodo de Romberg
Cuadratura de Gauss-Legendre
Cuadratura adaptativa
Introduccin
3/59
Como sabemos:
La derivada de una funcin en un punto es el valor del lmite, si existe, del
Numerical
Differentiation
cociente
incremental
de dicha funcin en el punto cuando el incremento de
la variable tiende a cero.
f .x/
de amortiguacin de las
oscilaciones en los......datos,
la derivacin evidencia esas oscilaciones.
.....................
........... ..... .....
.................. .. .......... .....................
. .......
....... ..
.
.
.
.
.
.
.... .
..............
..............
.
.
.
.....
.....
.
.
.
.
.
.....
.
.
.
.
.
.
....
.
.........
.
.
.
........
.
....
.
.
....
.
.
.
.
.
.
.
.
.....
....
.
.
.......................................................................................................................................................................................
4/59
5/59
df .x/
f .x C h/
D lKm
h!0
dx
h
f .x/
D
f .x C h/
h
f .x/
f(x)
f 0 .x/ D
Aproximacin
x+h
f .x C h/
h
f(x)
Frmula adelantada
f(xh)
f(xh)
f(x)
xh
f .x/
f(x+h)
f 0 .x/ D
f .x/
f .x
h
Frmula atrasada
xh
h/
f 0 .x/ D
f .x C h/
x+h
f .x
2h
Frmula centrada
h/
6/59
f .x C h/
h
f 00 .x/
f .x C h/
h C
2
h
f .x/
f .x/
f .x/ D
f .x/
f .x
h
h/
f 00 .x/
f .x/
C
h C
2
f .x
h
h/
7/59
f .x/ D
f .x C h/
f .x
2h
h/
f 000 .x/ 2
f .x C h/ f .x
h C
6
2h
h/
f .x/ D
f .x C h/
f .x C h/
2f .x/ C f .x
h2
2f .x/ C f .x
h2
f .4/ .x/ 2
h C
12
h/
h/
8/59
f .x/ D e x; x D 1
f .xCh/ f .x/
h
error
f .x/ f .x h/
h
f .xCh/ f .x h/
2h
error
f .xCh/ 2f .x/Cf .x h/
h2
1e-01
1e-02
1e-03
1e-04
1e-05
1e-06
1e-07
1e-08
1e-09
1e-10
1e-11
1e-12
1e-13
1e-14
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.718281828459046
2.858841954873879
2.731918655787080
2.719641422532781
2.718417747078483
2.718295419912308
2.718283186986525
2.718281963964841
2.718281777447373
2.718281599811689
2.718278935276429
2.718270053492232
2.718270053492233
2.713385072183882
2.664535259100375
0.140560126414833
0.013636827328035
0.001359594073736
0.000135918619438
0.000013591453263
0.000001358527479
0.000000135505795
0.000000051011673
0.000000228647357
0.000002893182616
0.000011774966813
0.000011774966813
0.004896756275163
0.053746569358670
2.586787173020957
2.704735610978304
2.716923140478667
2.718145918900738
2.718268237122956
2.718280469604650
2.718281693070423
2.718281866265215
2.718282043900898
2.718283376168528
2.718314462413217
2.718714142702083
2.722266856380883
2.753353101070388
2.722814563947418
2.718327133382692
2.718282281505724
2.718281832989611
2.718281828517632
2.718281828295587
2.718281828517632
2.718281821856294
2.718281821856293
2.718281155722479
2.718292257952725
2.718492098097158
2.717825964282383
2.708944180085382
0.004532735488372
0.000045304923646
0.000000453046678
0.000000004530565
0.000000000058586
0.000000000163458
0.000000000058586
0.000000006602752
0.000000006602752
0.000000672736567
0.000010429493679
0.000210269638112
0.000455864176663
0.009337648373664
2.720547818529218
2.718304480877620
2.718282054114951
2.718281777447373
2.718278935276430
2.717381875072532
2.708944180085381
-8.881784197001249
-444.0892098500623
-44408.92098500623
-4440892.098500623
-444089209.8500624
-88817841970.01249
-8881784197001.250
9/59
10/59
10
Derivadas adelantadas
Derivadas centradas
-2
10
-4
10
error
-6
10
-8
10
-10
10
-12
10
-10
10
-9
10
-8
10
-7
10
-6
10
-5
10
h
-4
10
-3
10
-2
10
-1
10
10
11/59
C O.h5 /
f .x C 2h/ D f .x/ C f 0 .x/2h C f 00 .x/ 4h2 C f 000 .x/ 8h3 C f .4/ .x/ 16h
4
f .x
2h/ D f .x/
h/ D f .x/
f 0 .x/h C f 00 .x/ h2
12/59
f .x C h/
f .x
f .x
h/
8f .x Ch/ C 8f .x h/
16h/ C O.h5 /;
y de aqu a
f 0 .x/ D
f .x C 2h/ C 8f .x C h/ 8f .x
12h
h/ C f .x
2h/
C O.h4 /:
13/59
Otras frmulas centradas de segundo y cuarto orden son las que siguen (notacin
fk D f .x C kh/, k D 3, 2, 1, 0, 1, 2, 3).
Frmulas centradas de orden O.h2 /
f 00 .x/
f 000 .x/
f .4/ .x/
f 0 .x/
f1 f 1
2h
f1 2f0 Cf 1
h2
f2 2f1 C2f 1 f
2h3
f2 4f1 C6f0 4f
h4
2
1
f 00 .x/
f 000 .x/
f .4/ .x/
f 0 .x/
f2 C8f1 8f 1 Cf 2
12h
f2 C16f1 30f0 C16f 1 f 2
12h2
f3 C8f2 13f1 C13f 1 8f 2 Cf 3
8h3
f3 C12f2 39f1 C56f0 39f 1 C12f
6h4
14/59
Extrapolacin de Richardson
Supongamos que
f .h/ D a0 C a1hp C O.hr /
15/59
Se tendr que
f .h/ D a0 C a1hp C O.hr /
f .h=q/ D a0 C a1.h=q/p C O.hr / D a0 C a1q
p p
h C O.hr /:
ste es una sistema de dos ecuaciones lineales con dos incgnitas: a0 y a1.
f .h/
q
f .h=q/
r
C
O.h
/;
p
1
cuya precisin ahora es O.hr /, mejor que la anterior O.hp /, pues r > p.
16/59
Si se usan los valores h D 0;5 y h D 0;25 (es decir q D 2), se tiene que
F .h/ D
F .h=2/ D
sen.1 C h/
h
sen.1/
sen.1;5/ sen.1/
D 0;312048
0;5
sen.1;25/ sen.1/
D 0;430055:
0;25
F (0) = a0 = F (h) +
F (h) F (h/2)
(1/2) 1
FF.h/
.h/ F
F .h=2/
.h=2/ D 2F .h=2/ F .h/ D 0;548061;
F .0/
D
a
D
F
.h/
C
0
2F .h=2/ F .h/ D 0;548061;
F .0/ D a0 D F .h/ C .1=2/ 1 D
.1=2/ 1
......
.
1.0 ...
.. Valor extrapolado
.. ...
.. ......
.........
..... Valores
... calculados
0.5... ......................................................
.
.
.....................
..
.
..
..
..
........................................................................................... h
0.25
0.5
21/63
57
18/59
Se utiliza cuando se trata de derivar una funcin de la que se conocen slo unos
datos. En especial cuando esos datos estn desigualmente espaciados.
b0 D f .x0/;
f .x1/
b1 D
x1
f .x0/
;
x0
b2 D
f .x2 / f .x1 /
x2 x1
x2
f .x1 / f .x0 /
x1 x0
x0
x0 /C.x
x1 / que para xDx0 ; p 0 .x0 /Db1 Cb2 .x0
x1 /:
19/59
f1
f0
h
b2 D
f1 f0
h
f2 f1
h
2h
f0
2f1 C f2
:
h2
A partir de ah,
p 0.x0/ D b1 Cb2.x0
D
3f0 C4f1 f2
;
2h
x1 / D b 1
b2h D 2 f12hf0
f0 2f1 Cf2
h
2h2
20/59
Por ejemplo:
>> syms x;
>> f=sin(3*x);
>> f1=diff(f)
f1 =
3*cos(3*x)
>> f2=sin(x)^7
f2 =
sin(x)^7
>> f3=diff(f2)
f3 =
7*cos(x)*sin(x)^6
21/59
-5
-3
2.8
-4
2.6
2.4
-2
2.2
2
-1
1.8
1.6
0
1
1.4
0
1.2
-1
1
-2
-1.8
-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
22/59
ndice
Introduccin
Integracin de funciones
Frmulas de Newton-Cotes
Mtodo de Romberg
Cuadratura de Gauss-Legendre
Cuadratura adaptativa
Integracin de funciones
23/59
f .x/ dx;
a
Georg Friedrich Bernhard Riemann, Alemania, 1826-1866.
24/59
Para integrar una funcin f .x/ complicada, se puede sustituir por un polinomio
pn.x/ que interpola puntos concretos de aquella en el intervalo dado y luego se
realiza la integracin exacta de este polinomio.
25/59
f .x/ dx D
n
i
wi f .xi /:
iD1
Frmulas de Newton-Cotes
26/59
Regla de Simpson
pol. segundo grado
Regla de Simpson 83
pol. tercer grado
Regla de Boole
pol. cuarto grado
x1
x0
f .x/dx
h
.f0 C f1 /
2
error D
h3 00
f ./
12
f .x/dx
h
.f0 C 4f1 C f2 /
3
error D
h5 .4/
f ./
90
f .x/dx
3h
.f0 C 3f1 C 3f2 C f3 /
8
error D
3h5 .4/
f ./
80
f .x/dx
2h
.7f0 C 32f1 C 12f2 C 32f3 C 7f4 / error D
45
x1
x0
x1
x0
x1
x0
8h7 .6
f ./
945
27/59
m
l
i
f .x/ dxD
i D1
xi
xi
f .x/ dx
h
h
.f0 Cf1 / C C .fm 1 Cfm /
2
2
h
D .f0 C 2f1 C 2f2 C C 2fm
2
C fm / :
28/59
0
f .x/ dx D
hB
@
2
m
i
1
.fi
C
C fi /A
a
12
h2 f 00 ./:
iD1
Z
0
1
dx.
.1 C x/
function T = trapezrule(f,a,b,m)
% Integracin trapecio compuesto
x = linspace(a,b,m+1);
T = (f(a)+f(b))/2;
for i = 1:m-1
T = T + f(x(i+1));
end
T = T*(b-a)/m;
end
% subintervalos
% comienzo y final
% interior intervalo
% multiplica por h
function f = intfun_1(x)
% Funcin que se integra
f = 1./(1+x);
end
29/59
de Newton-Cotes (4/4)
Distancia entre puntos h=(ba)/2M
k
ETSII-UPM
30/59
los
errorescompuesta
de las restantes
frmulas de Newton-Cotes
Thomas Simpson, Inglaterra,
Frmula
del Simpson
borioso y no se incluye en estas trasparencias. 1710-1761.
n grfica de la regla trapezoidal y las dos reglas de
Sigue
estrategia
la frmula del trapecio, pero ajustando una parbola
Error
de la
la misma
regla de
Simpsondecompuesta:
a tres puntos de cada subintervalo.
Interpretacin geomtrica:
31/59
La integral es
l
m l
i
f .x/ dxD
i D1
xi
f .x/ dx
xi 1
h
.f0 C4f1 Cf2/ C
3
h
h
C .f2 C4f3 Cf4/ C C .f2m 2 C4f2m 1 Cf2m/
3
3
h
D .f0 C 4f1 C 2f2 C 4f3 C 2f4 C 2f2m
3
f .x/ dx D
m
i
hB
@
3
i D1
C 4f2m
C f2m/ :
1
.f2i
C 4f2i
C
C f2i /A
b a 4 .4/
h f ./:
180
32/59
Z
0
1
dx.
1Cx
function I = simpson_1(f,a,b,n)
% Integracin de f en [a,b] con la regla de Simpson en n+1
%
puntos igualmente espaciados
h = (b-a)/n;
xi = a:h:b;
I = (h/3)*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));
end
function f = intfun_1(x)
% Funcin que se integra
f = 1./(1+x);
end
33/59
Si lo probamos:
>> for k=0:8
disp(simpsons(@intfun_1,0,1,2^k))
end
1.166666666666667
0.694444444444444
0.693253968253968
0.693154530654531
0.693147652819419
0.693147210289823
0.693147182421455
0.693147180676343
0.693147180567221
>> log(2)
ans =
0.693147180559945
34/59
Newton-Cotes abierta
NewtonCotes cerrada
on-Cotes
ms Las frmulas abiertas son tiles cuando no se conoce la funcin en un extremo o
tiene un valor infinito (integrales impropias).
35/59
x0
x1
h3 00
f .x/ dx D hf .w/ C f .c/;
24
B
f .x/ dx D h @
m
i
i D1
C .b
f .wi /A C
a/h2 00
f .c/:
24
Ejemplo Aproximemos
compuesta; m D 10.
sen.x/
dx con la regla del punto medio
x
Los puntos medios son 0;05, 0;15; : : : ; 0;95 y la formula dara lo que sigue:
1
!
10
X
f .x/ dx 0;1
f .mi / D 0;94620858:
0
0;946083070367183.
36/59
37/59
x0
4h
2f .x1/
f .x/ dx D
3
donde h D .x4
x0 < c < x 4 .
14h5 .4/
f .x2/ C 2f .x3/ C
f .c/;
45
x0/=4, x1 D x0 C h, x2 D x0 C 2h, x3 D x0 C 3h y
x6
6h
41h7 .6/
f .x/ dx D
11f .x1 / 14f .x2 /C26f .x3 / 14f .x4 /C11f .x5 / C
f .c/;
20
140
x0
38/59
Un caso de apreciable inters prctico son las frmulas de Adams que utilizan n
on-Cotes
puntos, pero slo desean calcular la integral en el ltimo tramo (como se aprecia
en la figura).
ms
Adams abierta
Adams cerrada
39/59
Mtodo de Romberg
40/59
b a
2
R21 D
h2
2
.f .a/ C f .b// D
h1
2
.f1 C f9/
h2
f .a/ C f .b/ C 2f aCb
D 2 .f1 C 2f5 C f9/
2
1
R
2 11
C h2f5
R31 D
h3
.f1
2
D
R41 D
D
1
R
2 21
h4
2
C h3 .f3 C f7/
1
R
2 31
C h4 .f2 C f4 C f6 C f8/
41/59
4k 1Rj;k
D
4k
1
1
Rj
1
1;k 1
42/59
43/59
ln.x/ dx se tiene
1
>> romberg(@log,1,2,4)
ans =
0.346573590279973
0
0
0
0.376019349194069
0.385834602165434
0
0
0.383699509409442
0.386259562814567
0.386287893524509
0
0.385643909952095
0.386292043466313
0.386294208843096
0.386294309086248
>> 2*log(2)-1
ans =
0.386294361119891
>> format short e
>> romberg(@log,1,2,5)
ans =
3.4657e-001
0
0
0
0
3.7602e-001 3.8583e-001
0
0
0
3.8370e-001 3.8626e-001 3.8629e-001
0
0
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
>> 2*log(2)-1-ans(5,5)
ans =
1.8772e-010
>> syms x;
>> f = log(x)
f =
log(x)
>> F = int(f, x)
F =
x*(log(x) - 1)
>> int(f, x, 1, 2)
ans =
log(4) - 1
>> format long
>> log(4)-1
ans =
0.386294361119891
% Primitiva de la integral
44/59
Mtodo
Gauss-Legendre
Cuadratura
dede
Gauss-Legendre
(1/6) Andrien-Marie
45/59
Legendre,
Francia, 1752-1833.
ETSII-UPM
Se permite variar la posicin de los nodos para mejorar el orden del mtodo.
Se trabaja en un intervalo de integracin normalizado [1, 1].
En este procedimiento
se permite variar la posicin de los nodos para mejorar la
Con n puntos de integracin y n pesos por determinar se pueden satisfacer 2n
precisin delcondiciones,
resultado.como por ejemplo integrar exactamente las 2n primeras potencias
de x (desde x0 a x2n1). Con esto el mtodo ser de orden 2n1 pues integrar
exactamente cualquier polinomio de dicho grado.
cmo
se puedeuna
obtener
mejor
aproximacin con slo
Las
En la figura
se siguientes
muestrafiguras
cmomuestran
se puede
obtener
mejor
aproximacin
con dos nodos haciendo que no sean los extremos del intervalo.
-1
-1
46/59
f .x/ dx
n
i
ci f .xi /;
i D1
donde los nodos, xi , son las races de los polinomios de Legendre de grado n en
el intervalo 1; 1.
47/59
n
2
15C2 30
q 35p
2 30
- 15 35
q
p
15 2 30
q 35p
15C2 30
35
p
- 1=3
p
1=3
p
- 3=5
0
p
3=5
q
p
nodos xi
= -0,57735026918963
= 0,57735026918963
= -0,77459666924148
= 0,00000000000000
= -0,77459666924148
= -0,86113631159405
= -0,33998104358486
= 0,33998104358486
= 0,86113631159405
-0,93246951420315
-0,66120938646626
-0,23861918608320
0,23861918608320
0,66120938646626
0,93246951420315
coeficientes ci
1
= 1,00000000000000
1
= 1,00000000000000
5=9 = 1,55555555555555
8=9 = 1,88888888888888
5=9 = 1,55555555555555
p
90 5 3
180
p
90C5 3
180
p
90C5 3
180
p
90 5 3
180
= 0,34785484513745
= 0,65214515486255
= 0,65214515486255
= 0,34785484513745
0,17132449237917
0,36076157304814
0,46791393457269
0,46791393457269
0,36076157304814
0,17132449237917
48/59
x2
2
dx
1,71124878378430.
49/59
e
1
x2
2
dx c1 f .x1 / C c2 f .x2 / D 1 f .
3/5/ C 9 f .0/ C 9 f .
1/3/ C 1 f .
3/5/
1/3/
1,69296344978123:
1,71202024520191.
Con cuatro c1f .x1/ C c2f .x2/ C c3f .x3/ C c4f .x4/ 1,71122450459949:
50/59
51/59
x2
2
dx.
>> [x,w]=lgwt(6,-1,1);
>> f=exp(-(x.^2)/2);
>> sum(f.*w)
ans =
1.711248771041351
52/59
iD1
ln.x/ dx
53/59
Integrales mltiples
1 i D1
i D1
n
n
n X
n
X
X
X
D
ci
cj f .i ; j / D
ci cj f .i ; j /:
iD1
j D1
iD1 j D1
54/59
Cuadratura adaptativa
f .x/dx y IR
Rb
m
f .x/dx,
55/59
h5 f .4/ .c1 /
32 90
D IL C IR
C IR
h5 f .4/ .c2 /
32 90
h5 f .4/ .c3 /
:
16 90
.IL C IR / D h5 f
.4/ .c
0/
90
15 3 f .4/ .c3 /
h 90 :
16
h5 f .4/ .c3 /
16 90
56/59
I1 .IL C IR / < 15 t ol
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 precisin adecuada.
57/59
function q = quadstep(f,a,b,tol,fa,fc,fb)
% Subfunction recurrente de quadadapt
global fnct
h = b-a; c = (a+b)/2;
fd = f((a+c)/2);
fe = f((c+b)/2);
fnct = fnct+2;
q1 = h/6 * (fa+4*fc+fb);
q2 = h/12 * (fa+4*fd+2*fc+4*fe+fb);
if abs(q2-q1) <= tol
q = q2+(q2-q1)/15;
else
qa = quadstep(f,a,c,tol,fa,fd,fc);
qb = quadstep(f,c,b,tol,fc,fe,fb);
q = qa + qb;
end
end
2
2
7
58/59
1
3
sen
C dx, se obtiene esto:
x
2
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)
q =
0.984511912667507
fnct =
3949
%% Comprobacin con cuadratura adaptativa de Simpson de MATLAB
>> [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
>> [q2 fnct1]=quadl(f1_Heath_2,2/(7*pi),2/pi,1.e-14)
q2 =
0.984511912667507
fnct1 =
1308
2.5
1.5
0.5
0.1
0.15
0.2
0.25
0.3
0.35
x
0.4
0.45
0.5
0.55
0.6
Integracin de
1/62
2/62
ndice
Introduccin
Mtodo de Euler
Mtodo de Taylor
Mtodos de Runge-Kutta
Introduccin
3/62
dy
D y 0 D f .t; y/;
dt
4/62
y/
Para poder integrar una ecuacin diferencial es necesario definir las condiciones
de contorno.
5/62
< y D f .t; y/
y.a/ D y
: t 2 a; b:
y = 5*y*(1-y)
1,2
1,2
0,8
0,8
En el lado derecho se
han dibujado, en el mismo campo de fuerzas, las
dos soluciones que corresponden a y.0/ D 0;2 y
y.0/ D 1;26.
0,6
0,6
y
y
0,4
0,4
0,2
0,2
-0,2
-0,2
-0,4
-0,4
0
0,2
0,4
0,6
0,8
1,2
t
1,4
1,6
1,8
2,2
0,2
0,4
0,6
0,8
1,2
t
1,4
1,6
1,8
2,2
6/62
7/62
8/62
9/62
10/62
1
D yi C f .ti ; yi / C f .ti C1; yiC1/ h:
2
11/62
Mtodo de Euler
Desde el punto de arranque hay que moverse una pequea distancia, siguiendo
una pendiente, llegndose a un nuevo punto .t1; y1/ en el que se revala la
pendiente, luego hay que moverse con esa nueva pendiente otro poco, etc.
12/62
< y D ty C t
y.0/ D y
: t 2 0; 1;
1,8
1,6
1,4
1,2
0,8
0,6
0,4
0,2
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
13/62
1,8
1,6
1,4
1,2
0,8
0,6
0,4
0,2
0
0
0,1
0,2
0,3
0,4
0,5
0,6
0,7
0,8
0,9
14/62
HUURU
YDORUH[DFWR
YDORUDSUR[LPDGR
yi
ti
ti+1
15/62
for i=1:length(t)-1
k1 = t(i)*yx(i)+t(i)^3;
yx(i+1) = yx(i)+h*k1;
end
for i=1:length(t1)-1
k11 = t1(i)*yx1(i)+t1(i)^3;
yx1(i+1) = yx1(i)+h1*k11;
end
y=3*exp(t.^2/2)-t.^2-2;
% Solucin exacta
% Grficos
plot(t,yx,b--,t,y,r-,t1,yx1,k--);
legend(Aproximacin h=0,1,Exacto y,aproximacin h=0,01);
title(Paso de Euler, h=0,1 y h=0,01);
xlabel(t);
ylabel(y*(t), y(t)); axis([0 1 0.95 2]);
% Tabla
for i=1:length(t)
disp(sprintf(t=%5.3f,
end
y(t)=%6.4f,
y*(t)=%6.4f,t(i),y(i),yx(i)));
16/62
1.9
1.8
1.7
y*(t)=1.0000
y*(t)=1.0000
y*(t)=1.0101
y*(t)=1.0311
y*(t)=1.0647
y*(t)=1.1137
y*(t)=1.1819
y*(t)=1.2744
y*(t)=1.3979
y*(t)=1.5610
y*(t)=1.7744
1.6
y*(t), y(t)
>> Euler_2_S
t=0.000, y(t)=1.0000,
t=0.100, y(t)=1.0050,
t=0.200, y(t)=1.0206,
t=0.300, y(t)=1.0481,
t=0.400, y(t)=1.0899,
t=0.500, y(t)=1.1494,
t=0.600, y(t)=1.2317,
t=0.700, y(t)=1.3429,
t=0.800, y(t)=1.4914,
t=0.900, y(t)=1.6879,
t=1.000, y(t)=1.9462,
1.5
1.4
1.3
1.2
1.1
1
0
0.1
0.2
0.3
0.4
0.5
t
0.6
0.7
0.8
0.9
17/62
Mtodo de Heun
h
f .ti ; yi / C f .tiC1; yiC1/ :
2
18/62
yi C1 D yi C
h
2
j 1
f .ti ; yi / C f ti C1 ; yiC1
j
j 1
hasta que se cumpla una tolerancia de yi C1 yi C1 .
19/62
% Derivadas
% Euler
% Heun sin iteracin
function dp = dpdt_Heun_c(t, p)
dp = 4*exp(0.8*t)-0.5*p;
20/62
El resultado es este.
Solucin de y'=4e(0.8t)-0.5y
90
Exacto
Euler
Heun
Heun con it.
80
70
60
50
y
40
30
20
10
0.5
1.5
2
t
2.5
3.5
21/62
yi C1 D yi C hf ti C1=2; yi C1=2 :
22/62
Mtodo de Taylor
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
::
:
23/62
24/62
Mtodos de Runge-Kutta
Son una familia de mtodos desarrollados a partir del trabajo de los alemanes
Carl David Tolm Runge, 1856-1927, y Martin Wilhelm Kutta 1867-1944.
25/62
1;n
1 kn 1 h :
26/62
Son
yi C1 D yi C a1k1 Ca2k2 h;
donde
k1 D f .ti ; yi / fi
k2 D f .ti Cp1h; yi Cq11k1h/:
h2 00
h2
f ti C fyi fi :
D yi C hy .ti / C y .ti / D yi C hfi C
2
2
0
27/62
Comparando las dos expresiones se llega a estas tres ecuaciones con cuatro
incgnitas:
1
1
y a2q11 D :
a1 C a2 D 1;
a2p1 D
2
2
1
2
28/62
Anthony Ralston,
EE.UU.
1930-.
yi C1
k1
k2
k3
29/62
h
6
y1 C k1 C 4k2 C k3
f .ti ; yi /
f ti C 12 h; yi C 21 hk1
f .ti C h; yi k1h C 2k2h/ :
D f .ti C h; yi C k3h/ :
k4
k2
k1
yi
k3
yi+1
k4
30/62
31/62
k6
D f ti C h; yi
3
hk1
7
C 27 hk2 C 12
hk3
7
12
hk4
7
C 87 hk5 :
Para aumentar en una unidad el orden del Runge-Kutta clsico de orden cuatro
hacen falta dos evaluaciones de funcin adicionales.
32/62
Ejemplo de recapitulacin
Vamos a integrar la ODE y 0 D y 1t 2t , empleando Euler, Heun,
Runge-Kutta y la rutina de Matlab ode45 muy habitual para estos
problemas, que usa Runge-Kutta con una precisin alta.
33/62
function test_ode45_1(relerr,abserr)
% Comparacin de mtodos explcitos para igual evaluaciones de f
clear all, close all
ecdif=@ec04;
tspan=[0,2];
function [T,Y]=heun(f,tspan,y0,h)
% Mtodo de Heun
n=(tspan(2)-tspan(1))/h+1;
T=tspan(1)*zeros(n,1); Y=y0*zeros(n,length(y0));
y=y0; t=tspan(1);
for i=2:n
t1=t+h;
yp=f(t,y);
% predictor con Euler explcito
y1=y+h*yp;
y1n=y+h*(yp+f(t1,y1))/2; % corrector con la regla trapezoidal
T(i,:)=t1; Y(i,:)=y1n;
% tiempo valor de la funcin
t=t1; y=y1;
% se actualizan t e y
end, end
% intervalos de ejes
plot(T4,Y4,-k);
function yprima=ec04(t,y)
% solucin exacta desconocida
if t==0, yprima=1; else yprima=y*(-2*t+1/t);
end
end
function [T,Y]=rk4(f,tspan,y0,h)
% Runge-Kutta orden 4
n=fix((tspan(2)-tspan(1))/h+1);
T=tspan(1)*zeros(n,1); Y=y0*zeros(n,length(y0));
y=y0; t=tspan(1);
for i=2:n
t1=t+h;
k1=h*f(t,y);
% clculo de los coeficientes k
k2=h*f(t+h/2,y+k1/2);
k3=h*f(t+h/2,y+k2/2);
k4=h*f(t+h,y+k3);
y1=y+(k1+2*k2+2*k3+k4)/6;
T(i,:)=t1; Y(i,:)=y1;
% tiempo valor de la funcin
t=t1; y=y1;
% se actualizan t e y
end, end
end
34/62
Este es el resultado:
Solucin de y'=y(1/t-2t)
Euler
Heun
rk4
ode45
0.5
0.4
0.3
0.2
0.1
0.2
0.4
0.6
0.8
1
tiempo
1.2
1.4
1.6
1.8
35/62
36/62
Mtodo Runge-Kutta-Fehlberg
12
h; y1
32
k5 D hf ti C h; y1 C
k6 D hf ti C 21 h; y1
3
k
32 1
1932
k
2197 1
439
k
216 1
25
k
216 1
1408
k
2565 3
zi C1 D yi C
16
k
135 1
6656
k
12825 3
7200
k
2197 2
8k2 C
8
k
27 1
yi C1 D yi C
9
k
32 2
C 2k2
2197
k
4104 4
28561
k
56430 4
7296
k
2197 3
3680
k
513 3
3544
k
2565 3
1
k
5 5
845
k
4104 4
1859
k
4104 4
11
k
40 5
9
k
50 5
2
k
55 6
37/62
128
2197
1
2
Para una tolerancia del error, T ol y un paso inicial h, se calculan para empezar
y1, z1 y e1. Si se cumple que
ei
< T ol;
jyi j
en este caso para i D 1, el valor de z1 sustituye a y1 y se procede al siguiente
paso. Si no se cumple esa relacin, se ensaya con
h D 0;8
T oljyi j
ei
15
hi
38/62
3
h; y1
10
3
k
40 1
k4 D hf ti C 45 h; y1 C
44
k
45 1
k5 D hf ti C 89 h; y1 C
19372
k
6561 1
zi C1 D yi C
35
k
384 1
56
k
15 2
9017
k
3168 1
k6 D hf ti C h; y1 C
500
k
1113 3
9
k
40 2
32
k
9 3
25360
k
2187 2
355
k
33 2
125
k
192 4
64448
k
6561 3
46732
k
5247 3
2187
k
6784 5
212
k
729 4
49
k
176 4
11
k
84 6
5103
k
18656 5
k7 D hf .ti C h; zi C1 /
yi C1 D yi C
5179
k
57600 1
7571
k
16695 3
393
k
640 4
92097
k
339200 5
187
k
2100 6
C 14 k7 :
39/62
17253
k
339200 5
22
k
525 6
1
k .
40 7
Si se cumplen las tolerancias, zi C1 ser el nuevo punto y k1 ser k7, por lo que
no se desperdician clculos.
40/62
Hay un tipo de problemas, denominados stiff rgidos, para los que los mtodos
explcitos evolucionan mal hacia la solucin.
Son aquellos que convergen relativamente rpido hacia una solucin estable pero
que tienen componentes transitorios importantes con un decaimiento o
amortiguacin mucho ms rpido.
Suelen modelizar procesos fsicos con varios componentes con escalas de tiempo
dispares. El intervalo de tiempo con el que se les estudia puede ser bueno para
uno de ellos pero no para todos.
41/62
y0 D y.0/;
C t 2:
42/62
1.4
0.9
1.2
0.8
1
0.7
0.6
0.8
0.5
0.6
0.4
0.3
0.4
0.2
0.2
0.1
0
0.1
0.2
0.3
0.4
0.5
t
0.6
0.7
0.8
0.9
0.1
0.2
0.3
0.4
0.5
t
0.6
0.7
0.8
0.9
(solid)
Stiness not only depends on the dierential equation under consideration, but the in-
In order to solve sti problems we'll need a numerical method with a weaker stability
43/62
La informacin que se considera en cada paso tiene en cuenta los dos lados del
intervalo ti ; ti C h.
44/62
yi C1 D
yi C h t C 2t
:
1 C h
45/62
function f = beuler_1(t, p)
f = -10*(p-t^2)+2*t;
end
function df = dbeuler_1(t, p)
df = -10;
end
46/62
1.2
0.8
0.6
y
0.4
0.2
-0.2
-0.4
0.2
0.4
0.6
0.8
Tiempo
1.2
1.4
47/62
Mtodos multipaso
Los mtodos que hemos analizado hasta ahora son monopaso, o de paso
sencillo. El valor de yiC1 se calcula a partir de la informacin de un nico punto.
48/62
Los mtodos multipaso necesitan la ayuda de otros para dar los primeros pasos y
no se adaptan bien a discontinuidades en la solucin: discontinuidades en las
fuerzas aplicadas, impactos, enlaces que aparecen o desaparecen, etc.
m
X
j D1
j yiC1
Ch
m
X
j f ti C1 j ; yi C1
j D0
49/62
1ti2
C h 1 2ti C 2 2ti
50/62
h
D yi C 3yi0
2
yi0 1
;
51/62
52/62
Error
2 yi C1 D yi C
h
2
3 yi C1 D yi C
h
12
23fi
16fi
C 5fi
4 yi C1 D yi C
h
24
55fi
59fi
C 37fi
5 yi C1 D yi C
h
720
3fi
fi
1901fi
5 3 00
h f ./
12
2744fi
3 4 000
h f ./
8
251 5 .4/
h f ./
720
9fi
C 2616fi
1274fi
C 251fi
95 6 .5/
h f ./
288
Error
2 yi C1 D yi C
h
2
3 yi C1 D yi C
h
12
5fi C1 C 8fi
4 yi C1 D yi C
h
24
9fi C1 C 19fi
5 yi C1 D yi C
h
720
3fi C1
fi
1 3 00
h f ./
12
fi
5fi
251fiC1 C 646fi
1 4 000
h f ./
24
C fi
264fi
19 5 .4/
h f ./
720
C 106fi
19fi
27 6 .5/
h f ./
1440
53/62
Mtodos predictor-corrector
54/62
h
55fi
D yi C
24
C 37fi
ti C1; yiC1
9fi
ti C1; yiC1
Df
59fi
h
9fiC1 C 19fi
24
5fi
1 C fi
2 :
55/62
El mtodo de Milne-Simpson:
3C
4h
2fi
3
fi
1 C 2fi
2 :
Como corrector
yi C1 D yi
1C
h
fiC1 C 4fi C fi 1 :
3
9yi
yi
C 3h
fiC1
8
C 2fi
2fi
:
Utilicemos y 0 D 4 t t 3 y 2 para probar el mtodo predictorcorrector de
Adams-Bashforth-Moulton de segundo orden con las condiciones iniciales
y.0/ D 0;5 y en el intervalo de tiempo 0; 2.
function [t,y]=Adams_Bas_Moul(inter,ic,n)
% Mtodo predictor-corrector de orden 2 de Adams-Bashforth-Moulton
h=(inter(2)-inter(1))/n; y(1)=ic; t(1)=inter(1); s=2;
for i=1:s-1
% Trapezoide de un paso para
t(i+1)=t(i)+h;
%
inicializacin
y(i+1)=trapstep(t(i),y(i),h);
f(i)=ydot(t(i),y(i));
end
for i=s:n
% Mtodo multipaso
f(i)=ydot(t(i),y(i));
t(i+1)=t(i)+h;
y(i+1)=ab2step(t(i),i,y,f,h);
f(i+1)=ydot(t(i+1),y(i+1));
y(i+1)=am1step(t(i),i,y,f,h);
end
[T4,Y4]=ode45(@ydot,inter,ic); close all, plot(t,y,T4,Y4)
xlabel(Tiempo); ylabel(y)
legend(Adams-Bash.-Moul., ode45)
end
function y=trapstep(t,x,h)
% Un paso con trapezoide
z1=ydot(t,x); g=x+h*z1; z2=ydot(t+h,g);
y=x+h*(z1+z2)/2;
end
56/62
function z=ydot(t,y)
z=4*(t-t^3)*y^2;
end
57/62
0,9
0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0,
0,
0,5
1,
1,5
Tiempo
2,
2,5
58/62
59/62
Al aplicar los mtodos vistos hasta ahora hay que tener en cuenta que la
variable dependiente y, la funcin f y los coeficientes ki si se usa
Runge-Kutta son vectores.
y i C1 D y i C hf .ti ; y i /:
60/62
1/
y.t0/ D y0
y 0.t0/ D y00
y 00.t0/ D y000
.n
y .n 1/.t0/ D y0
1/
61/62
1/
se tendr que
y10
y20
y30
D
D
D
:::
yn0 1 D
yn0 D
y2
y3
y4
9
>
>
>
>
>
>
>
>
=
y 0 D f .t; y/;
>
>
>
>
>
yn
>
>
>
f .x; y1; y2; : : : ; yn/ ;
1/37
2/37
ndice
Introduccin
Introduccin
3/37
En este tema analizamos los problemas que se pueden modelizar mediante una
ecuacin diferencial de segundo orden con condiciones en dos puntos dados,
a; b, extremos de un intervalo de estudio.
y.a/ D ;
y.b/ D :
4/37
Shooting method
Con tal fin se genera una sucesin de problemas de valor inicial que converja al
dado.
Chemical
5/37
F .s/ D
6/37
< y D 4y
y.0/ D 1
: y.1/ D 3:
function z=F(s)
%
a=0; b=1; yb=3;
ydot = @(t,y) [y(2); 4*y(1)];
[t,y]= ode45(ydot,[a,b],[1,s]);
z
= y(end,1)-yb
end
7/37
>> [ss,t,y]=Bisec_y(@F,[-1,0]);
>> ss
ss =
-0.4203
>> plot(t,y)
>> xlabel(Tiempo); ylabel(y)
>> legend(y(t), y(t),Location,NorthWest)
4,
3,
y, y'
2,
1,
0,
-1,
0,
0,1
0,2
0,3
0,4
0,5
Tiempo
0,6
0,7
0,8
0,9
1,
8/37
Si y.t/ es una funcin con derivadas continuas al menos hasta cuarto orden,
sabemos que
0
y .t / D
y.t C h/
y.t
h/
2h
h2 000
y ./
6
y que
y 00.t / D
y.t C h/
2y.t/ C y.t
h2
h/
h2 000
y ./:
12
conditions are substituted in the system of equations where they are needed.
9/37
y
1
w1
w2
ya
y1
y2
wn1
wn
yn1
t0
t1
t 2 ...
yn
tn1 tn
yb
tn+1
Figure 7.6 The Finite Difference Method for BVPs. Approximations wi , i = 1, . . . , n for
the correct values yi at discrete points ti are calculated by solving a linear system of
objetivo
equations.es reemplazar los y1 , y2 ; : : : ; yn reales de la trayectoria por sus
El
aproximaciones por diferencias finitas, wi .
After the substitutions, there are two possible situations. If the original boundary value
problem was linear, then the resulting system of equations is linear and can be solved by
Si el problema
de contorno
original
es lineal
problemaproblem
se convierte
entonces then
Gaussian
elimination
or iterative
methods.
If theel original
was nonlinear,
resolver system
un sistema
ecuaciones
lineales;equations,
si no es lineal,
en lo
propio.
theenalgebraic
is a de
system
of nonlinear
requiring
more
sophisticated
approaches. We begin with a linear example.
10/37
< y D 4y
y.0/ D 1
: y.1/ D 3:
11/37
12/37
ti
0;00
0;25
0;50
0;75
1;05
wi
1;0000
1;0249
1;3061
1;9138
3;0000
yi
1;0000
1;0181
1;2961
1;9049
3;0000
Las diferencias son O.10 2/. Para obtener ms precisin habra que aumentar n.
13/37
0
4h
wn
<y D y
y2
y.0/ D 1
: y.1/ D 4:
2wi C wi
h2
wi C wi2 D 0
o
wi
para 2 i n
2 C h2 wi C h2wi2 C wiC1 D 0;
1.
14/37
15/37
J .wk / 1f .wk /:
La funcin vectorial es
2
ya
6
6 w1
6
f .wk / D 6
6
6
4wn 2
wn
donde ya D 1 y yb D 4.
3
2 C h2 w1 C h2w12 C w2
7
2 C h2 w2 C h2w22 C w3 7
7
:::
7;
7
7
2
2 2
2 C h wn 1 C h wn 1 C wn5
2
2 C h wn C h2wn2 C yb
16/37
Su matriz Jacobiana
2 2
2
2Ch
2h w1
6
6
6
6
6
4
1
2h2 w1
0
::
:
2 C h2
:::
0
::
:
1
:::
:::
:::
0
::
:
0
2 C h2
2h2 w1
1
3
7
7
7
7:
7
5
1
2h2 wn
2 C h2
17/37
function w1=nlbvpfd(inter,bv,n)
% Diferencias finitas no lineal para resolver BVP
%
inter, intervalo de integracin; bv, valores de contorno;
%
n, nmero de pasos.
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2);
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;
w1=w-jac(w,h,n)\f7(w,h,bv,n);
end
close all, plot ([a a+(1:n)*h b],[ya w1 yb]);
end
3.5
2.5
function y=f7(w,h,bv,n)
y=zeros(n,1);
y(1)=bv(1)-(2+h^2)*w(1)+h^2*w(1)^2+w(2);
y(n)=w(n-1)-(2+h^2)*w(n)+h^2*w(n)^2+bv(2);
for i=2:n-1
y(i)=w(i-1)-(2+h^2)*w(i)+h^2*w(i)^2+w(i+1);
end
end
function a=jac(w,h,n)
a=zeros(n,n);
for i=1:n
a(i,i)=2*h^2*w(i)-2-h^2;
end
for i=1:n-1
a(i,i+1)=1;
a(i+1,i)=1;
end
end
1.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
18/37
19/37
20/37
Mtodo de colocacin
Resolvamos la ecuacin
8
00
< y D 4y
y.0/ D 1
: y.1/ D 3:
Pn
j D1 cj j .t /
Pn
j D1 cj t
j 1
j D1
n
X
cj j .1/ D y.1/ D 3:
j D1
En el ejemplo,
n h
X
j D1
j D1
1 j
j
2 ti
j 1
4ti
cj D 0;
j D1
i D 2; : : : ; n
1:
21/37
22/37
1 0 0 0
<
j
Aij D
j 1 j 2 ti
1 1 1 1
fila i D 1
3
j 1
4ti
filas i D 2; : : : ; n
fila i D n
y b D 1 0 0 0 3T .
i
n
1
.b
1
i
n
1
:
1
23/37
1 0 c1
1
D
;
1 1 c2
3
Para n D 4 el sistema es
2
4
1
4
4
1
0
4 1=3 2
4 2=3 2
1
32 3
0
0
c1
2
3
4 .1=3/ 6 1=3 4 .1=3/ 5 4c2 5
c3
4 .2=3/2 6 2=3 4 .2=3/3
c4
1
1
23
D
1
405 ;
0
3
24/37
3
Exacta
y(t)=1+2t
2
y(t)=1-0.1886t+1.0273t +1.1613t
2.5
1.5
0.5
0.1
0.2
0.3
0.4
0.5
Tiempo
0.6
0.7
0.8
0.9
25/37
El ejemplo que hemos utilizado para introducir el mtodo era lineal, pues as lo
era la ecuacin diferencial. Si fuese no lineal, habra que utilizar el mtodo de
Newton-Raphson para resolver el sistema de ecuaciones no lineales que resultase.
Igual que hemos utilizado monomios como funciones base para aplicar el
mtodo, se puede recurrir a cualesquiera otras: polinomios de Chebyshev,
funciones trigonomtricas, etc.
26/37
27/37
8
00
0
< y D f .t; y; y /
y.a/ D y
: y.b/ D y ;
b
f sea
28/37
29/37
00
y .t/i .t/ dt D
forma dbil
para cada 0 i n C 1.
2- Utilizar integracin por partes para eliminar las segundas derivadas.
Teniendo en cuenta que
b
b
y .t/i .t/ dt D i .t/y 0 .t/a
00
D i .b/y 0 .b/
y 0 .t/i0 .t/ dt
Z b
a
i .a/y 0 .a/
y 0 .t/i0 .t/ dt:
a
i .a/y 0 .a/
30/37
nC1
X
ci i .t /:
i D0
Para ello, en los puntos t0 < t1 < < tn < tnC1 sobre el eje t, para
i D 1; : : : ; n, se define
i .t / D
8
t
< i
ti 1
ti 1
ti C1 t
tiC1 ti
:0
para ti
< t ti
31/37
Y, tambin,
0.t/ D
8
<
t1 t
ti t0
:0
para t0 t < t1
en otros casos7.3
y nC1.t / D
8
<
t tn
tnC1 tn
0 ElementenMethod
otros casos.
Collocation and the Finite
| 369
:
y
1
0 1 2
t0
t1
t2
n1 n n+1
t 3 ...
tn1 tn
tn+1
Figure 7.10 Piecewise-linear B-splines used as nite elements. Each i (t), for
1 i n, has support on the interval from ti1 to ti+1 .
1 si i D j
0 si i j:
for each i that can be solved for the ci in the functional form
y(t) =
n+1
ci i (t).
(7.23)
32/37
nC1
X
ci i .t /:
i D0
PnC1
iD0
ci i .tj / D cj .
S.t/ es una funcin lineal por tramos que interpola los puntos .ti ; ci /. Adems,
los ci son las soluciones en los puntos ti de la aproximacin de la ecuacin
diferencial.
33/37
nC1
X
ci i .a/ D c00.a/ D c0
i D0
y.b/ D
nC1
X
i D0
b
a
i0 .t /
cj j0 .t / dt D 0:
34/37
Z
i .t/i C1 .t/ dt D
D
b
t2
2h
Z b
t
t
t
1
dt D
h
h
h
a
3 h
t
3h2 D h6
h
t
h
2
b
0
.t/ dt
i0 .t/iC1
0 2
i .t/
a
dt
i .t/ dt D 2
Z
t2
h2
1
h
h
Z
D
dt D 2
0
2
1
h
1
h
2
2
dt D h
3
dt D
1
h
2
dt D :
h
35/37
8
00
< y D 4y
y.0/ D 1
: y.1/ D 3:
4i .t/
nC1
i
j D0
j D0
cj j .t/ C
j D0
Z
cj 4
Z
i .t/j .t/ dt C
:
36/37
2
1
h
c0 C
8
2
h
c1 C
2
1
h
c2 D 0
2
1
h
c1 C
8
2
h
c1 C
2
1
h
c1 D 0
h
3
h
3
hC
3
hC
3
h
3
h
3
::
: 0
1
h
2
h
3
cn
8
hC
3
2
h
cn C
2
h
3
1
h
cnC1 D 0:
6
60
6
6:
4 ::
0
donde
cn
2
2
8
y D h
D hC
3
h
3
yb
1
:
h
37/37
function c=Galerkin_ef_1(inter,bv,n)
% Elementos finitos de ejemplo clase
%
inter, intervalo de integracin; bv, valores de contorno;
%
n, nmero de pasos.
a=inter(1); b=inter(2); ya=bv(1); yb=bv(2);
h=(b-a)/(n+1);
alfa=(8/3)*h+2/h; beta=(2/3)*h-1/h;
e=ones(n,1);
M=spdiags([beta*e alfa*e beta*e],-1:1,n,n);
d=zeros(n,1); d(1)=-ya*beta; d(n)=-yb*beta;
c=M\d;
end
ti
0;00
0;25
0;50
0;75
1;05
ci
1;0000
1;0109
1;2855
1;8955
3;0000
yi
1;0000
1;0181
1;2961
1;9049
3;0000
Las diferencias son O.10 2/. Para obtener ms precisin habra que aumentar n.
Resolucin numrica de
1/66
2/66
ndice
El mtodo de Crank-Nicolson
3/66
4/66
Una solucin de una EDP es una funcin que resuelve la ecuacin, o que la
convierte en una identidad cuando se sustituye en la ecuacin.
Cuando la funcin incgnita slo depende de una variable se trata de una ecuacin diferencial ordinaria de orden n.
5/66
Dada una funcin u.x; y/, en las EDP es muy comn significar las derivadas
parciales empleando subndices (notacin tensorial). Esto es:
ux D
@u
.x; y/
@x
uxy
@2 u
@
D
.x; y/ D
@y @x
@y
uxx
@2 u
D 2 .x; y/:
@x
@u
.x; y/
@x
6/66
7/66
Ejemplos de EDP
C uy
2
uy C 2u D 6.
D 0.
u t .t; x/
uxx .t; x/ D 0:
Ec. de ondas
u t t .t; x/
uxx .t; x/ D 0:
8/66
En este breve recorrido por las EDP nos limitaremos a estudiar la resolucin
numrica de las de segundo orden con dos variables independientes, con esta
forma
o, abreviadamente,
Parablica si B 2
Hiperblica si B 2
Elptica
si B 2
4AC D 0:
4AC > 0:
4AC < 0:
9/66
10/66
11/66
u t D Duxx
u.a; t/ D l.t/
: u.b; t/ D r.t/
para todo a x b; t 0
para todo a x b
para todo t 0
para todo t 0:
x
a
Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
Los puntos
slidos son conocidos: definen las condiciones iniciales y de
initial and boundary conditions. The open circles represent unknown values that must be
determined.
contorno;
los puntos huecos los que calcular el procedimiento.
its approximation
at (xse
M en
and uno
N be discreto
the total number
of steps
in the xfinito
and t de
El problema
continuo
as
con un
nmero
i , tconvierte
j ) by wij . Let
directions,
and let ho=no
(b lineales.
a)/M and k = T /N be the step sizes in the x and t directions.
ecuaciones
lineales,
The discretization formulas from Chapter 5 can be used to approximate derivatives in
12/66
13/66
Sean h D .b
2 /wij C wi
1:j ;
14/66
La matriz A es m m, donde m D N
1
el tiempo tj C1 se determinan
3
0
#
"
#
:: 7"
: 7 w1j
w0;j
:
::
:
0 7
:
7 :: C
wmC1;j
5 wmj
2
1.
15/66
16/66
17/66
Dk
h2
< 12 .
18/66
wi;j
D
D 2 wi C1;j
h
2wij C wi
1;j
19/66
::
El programa anterior:
::
0
::
1 C 2
function w=heatbd(xl,xr,yb,yt,M,N)
% Ecuacin 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
20/66
0.5
-0.5
-1
0
0.2
0.4
1
0.8
0.6
0.6
0.8
0.4
1
0.2
0
21/66
El mtodo CrankNicolson
Este mtodo formulado en 1947 por John Crank, Reino Unido, 1916-2006, y
Phyllis Nicolson, Reino Unido, 1917-1968 es una combinacin de los dos
anteriores, explcito e implcito, con un error O.h2/ C O.k 2/.
22/66
Haciendo otra vez D Dk= h2, la ecuacin del calor se puede reordenar as
h
2wijEquations
2wi;j 1 D wi C1;j
al Differential
2wij C wi
1;j
C wi C1;j
2wi;j
C wi
i
1;j 1
oorbien
Dw
C+
wi C1;j
i 1;j
i C1;k =
i 1;j 1
1C
i;ji,j11
1 , 1 ,
ww
+C
(2 .2
+C
22/w
)wij ij w
wi+1,j
wi1,j
+.2
(2 2/w
2 )w
wi+1,j
i1,j
lo
que leads
llevatoa the
la grfica
nudos
afectados
which
templatede
shown
in Figure
8.7. de esta figura.
j+1
j
i1 i i+1
Figure 8.7 Mesh points for CrankNicolson Method. At each time step, the open circles
are the unknowns and the lled circles are known from the previous step.
T
23/66
2
2 C 2
0
6
2 C 2
6
6
AD6 0
2 C 2
6 :
:::
:::
4 ::
0
0
:::
0
::
:
:::
0
::
:
7
7
7
:::
;
0 7
7
:::
5
2 C 2
y
2
6
6
6
BD6
6
4
2
0
::
:
0
2
0
2
:::
2
:
2 : :
0
:::
:::
0
2 2
3
7
7
7
7:
7
5
24/66
25/66
0.5
-0.5
-1
0
0.2
0.4
1
0.8
0.6
0.6
0.8
0.4
1
0.2
0
Esta ecuacin modeliza una amplia variedad de fenmenos, desde las ondas
magnticas en la atmsfera del Sol hasta cmo oscila la cuerda de un violn.
26/66
u.a; t/ D l.t/
:
u.b; t/ D r.t/
para todo a x b; t 0
para todo a x b
para todo a x b
para todo t 0
para todo t 0:
t
T
x
a
Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
27/66
28/66
2wij C wi;j
k2
c2
wi
1;j
2wij C wiC1;j
D 0:
h2
29/66
wi1
wi; 1
;
2k
o en otras palabras,
wi; 1 wi1
2kg.xi /:
2
wi0 C kg.xi / C
wi
2
2
1;0
C wi C1;0 ;
30/66
6
6
6
AD6
6
4
2
2
0
:::
0
2
2
2
:::
0
2
2 2 2
:::
0
:::
:::
:::
2
0
::: 7
7
7
0 7:
7
2 5
2 2 2
La ecuacin de inicio es
2
3
w
00
2
3
2
3
2
3
6
w11
w10
g.x1 /
0 7
6
7
4 ::: 5 D 1 A 4 ::: 5 C k 4 ::: 5 C 1 2 6 ::: 7 :
7
6
2
2
4
0 5
wm1
wmo
g.xm /
wmC1;0
31/66
32/66
33/66
34/66
35/66
36/66
ru:
37/66
38/66
u.x; yb / D g1 .x/
contorno de Dirichlet:
u.xl ; y/ D g3 .y/
:
D g4 .y/:Equations
r ; y/
400 | CHAPTER 8 u.x
Partial
Differential
y esta malla:
yt
yb
wmn
wm 2
wm1
xl
con M D m
xr
yt
v1
v2
v3
xl
Figure 8.12 Mesh for nite difference solver of Poisson equation with
1 intervalos en la
direccin horizontal y N D n 1 en vertical.
conditions. (a) Original numbering system with double subscripts. (b) Num
(8.39) for linear equations, with single subscripts, orders mesh points across
39/66
k/ 2u.x;y/Cu.x;yCk/
k2
xl /=M y k D .y t
yb /=N .
donde xi D xl C .i
1/h y yj D yb C .j
D f .xi ; yj /
1/k, para 1 i m y 1 j n.
Las ecuaciones en los wij son lineales por lo para determinarlos hay que
construir un sistema de mn incgnitas con una matriz A mnmn.
40/66
wm 2
wm 1
xr
vmn
yt
x yb
vm+1 vm+2 vm +3
v2m
v1
vm
xl
v2
v3
xr
y
j
Ecuacin nmero p
i C .j 1/m
y
j
j
j
C1
1
Coeficiente nmero q
i C .j 1/m
i C 1 C .j 1/m
i 1 C .j 1/m
i C jm
i C .j 2/m
41/66
AiC.j
Ai C.j
Ai C.j
1/m;i Cj m
Ai C.j
AiC.j
2
h2
2
k2
1
h2
1
h2
1
k2
1
:
k2
1/m
D f .xi ; yj /.
lleva a esto:
D
D
D
D
ln.x 2 C 1/
ln.x 2 C 4/
2 ln y
ln.y 2 C 1//
function w=Poisson(xl,xr,yb,yt,M,N)
% Ecuacin de Poisson por diferencias finitas
%
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);
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
42/66
43/66
1.8
1.6
1.4
1.2
1
0.8
0.6
0.4
0.2
0
2
1.8
1
1.6
0.8
0.6
1.4
0.4
1.2
0.2
1
44/66
u.x; 0/
u.x; 1/
u.0; y/
u.1; y/
sen.x/
sen.x/
0
0
1
0.6
0.8
0.6
0.4
0.4
0.2
0.2
0
45/66
46/66
intricacies of the problem itself. For some of the exercises and in forthcoming
will complicate things a little bit.
In this initial section there is going to be a lot of new stuff. Take your tim
carefully, because we will be using this material during the entire course.
47/66
The first thing we have to describe is the geometry (the physical setting of th
You have a sketch of it in Figure 1.1.
SD
SN
Figure 1.1: The domain and the Dirichlet and Neumann boundar
donde la solucin, u.x; y/, se define sobre una regin R en un plano limitado
por una borde o frontera S, continua por tramos de Dirichlet y Neumann.
Por Boris Grigoryevich Galerkin, Rusia 1871-1945, aunque descubierto por Walther Ritz, Suiza, 1878-1909.
48/66
Si las funciones 1.x; y/; 2.x; y/; : : : ; P .x; y/ son una base del subespacio
L2.R/, la condicin de ortogonalidad tiene esta forma
u C ru f p dx dy D 0
R
u C ru p dx dy D
R
f p dx dy;
R
49/66
Z
@u
ru rv:
vu D v dS
@n
S
R
R
La derivada direccional es @u
D
ru
n
;
n
x y , donde .nx ; ny / es el vector
@n
unitario normal hacia afuera en la frontera S de R.
rup dx dy D
f p dx dy:
ru rp dx dy C
R
(1)
50/66
s
R
qD1
vq rq rp dx dy C
P
X
qD1
vq q p dx dy D
f p dx dy
R
51/66
rq rp dx dy
vq
rq p dx dy
Z
D
f p dx dy;
R
qD1
rq rp dx dy
rq p dx dy
R
y
bp D
f p dx dy
R
functions of x, y that live on triangles in the plane. For concreteness, let the region R b
a rectangular
grid. W
rectangle, and
form a triangulation
with nodes
Qu funciones
j ) chosen from
explcitas
se pueden elegir
para (x
losi , yelementos
finitos
p ?
52/66
will reuse the M N grid from the previous section, shown in Figure 8.16(a), where
set m = M + 1 and n = N + 1. As before, we will denote the grid step size in the x and
5
directions
as h andlineales
k, respectively.
Figure 8.16(b)
shows
the triangulation
the rectangu
Utilizaremos
B-splines
por tramos
basadas
en tringulos
en unof plano.
region that we will use.
yt
yb
wmn
wm2
wm1
xl
xr
yt
wmn
wm2
wm1
yb
xl
xr
Figure 8.16 Finite element solver of elliptic equation with Dirichlet boundary conditions.
(a) Mesh is same as used for nite difference solver. (b) A possible triangulation of the region. Eac
Esta triangularizacin
.m DofMsixCdifferent
1; n D Ntriangles.
C 1/ da lugar a P D mn funciones
interior point is a vertex
lineales for tramos, p , cada una de las cuales toma el valor 1 en un punto de la
malla y 0 en los mn 1 restantes.
5
Recordemos, las B-splines (basis splines) son curvas hechas con trozos polinmicos de grado p .
53/66
Cada p .x; y/ es derivable, excepto en los bordes o aristas de los tringulos, por
lo que son funciones de L2.R/ integrables de Riemann.
m X
n
X
viC.j
D vi C.j
1/m ;
i D1 j D1
54/66
Para ello, si definimos el baricentro de una regin del plano como el punto
.x;
N y/
N donde
y dx dy
x
dx
dy
; yN D R
:
xN D R
1
dx
dy
1
dx
dy
R
R
Si R es un tringulo de vrtices .x1; y1/, .x2; y2/ y .x3; y3/ su baricentro es
xN D
x1 C x2 C x3
;
3
yN D
y1 C y2 C y3
:
3
Tendremos en cuenta que el valor medio de una funcin lineal L.x; y/ en una
regin
plana R es L.x;
N y/,
N el valor en el baricentro. En otras palabras,
N y/
N rea.R/.
R L.x; y/ dx dy D L.x;
x/
N 2; .x
x/.y
N
x/
N 2; .x
D L.x; y/ C O .x
x/
N C @f
.x;
N y/.y
N
@y
y/
N
y/
N 2
y/;
N .y
x/.y
N
y/;
N .y
y/
N 2 :
En consecuencia,6
f .x; y/ dx dy D
R
O .x
L.x; y/ dx dy C
R
x/
N 2 ; .x
x/.y
N
y/;
N .y
y/
N 2 dx dy
Drea.R/ L.x;
N y/
N C O.h4 / D rea.R/ f .x;
N y/
N C O.h4 /;
55/66
Si 1.x; y/ y 2.x; y/ son dos funciones lineales en ese mismo tringulo, que
cumplen que 1.x1; y1/ D 1, 1.x2; y2/ D 0, 1.x3; y3/ D 0, 2.x1; y1/ D 0,
2.x2; y2/ D 1 y 2.x3; y3/ D 0 y f .x; y/ es una funcin continua y derivable
dos veces, con
"
#
56/66
1 1 1
d D det x1 x2 x3
y1 y2 y3
entonces
a/ el tringulo T tiene un rea igual a jd j=2
b/ r1 .x; y/ D y2 d y3 ; x3 d x2
.x2 x3 /2 C .y2 y3 /2
c/
r1 r1 dx dy D
2jd j
T
4
e/
f 1 2 dx dy D f .x;
N y/jd
N j=18 C O.h / D
f 12 dx dy
T
f 1 dx dy D f .x;
N y/jd
N j=6 C O.h4 /;
f/
T
donde .x;
N y/
N es el baricentro de T y h D dime.T /.
8.3 Elliptic
| 411 hexagonal
Para obtener A, consideremos el .xi ; yj / en el interior
en Equations
esta figura
57/66
(xi,y j+1)
(xi 1,y j )
1
(xi 1,y j 1)
(xi+1,y j+1)
5
4
(xi+1,y j )
3
2
(xi ,y j 1)
8.17 Detail of the (i, j) interior point from Figure 8.16(b). Each interior point (xi , yj )
que no est enFigure
la frontera
S del rectngulo mallado considerado. Est rodeado
is surrounded by six triangles, numbered as shown. The B-spline function i+(j1)m is linear,
takes the
1 at the center,
and is zero
outside of thesees
six lineal
triangles. y toma el valor 1 en el
de seis tringulos.
Lavalue
funcin
B-spline
iC.j
1/m
centro y 0 fuera de esos tringulos.
The triangles have horizontal and vertical sides h and k, respectively. For the rst integral,
summing from triangle 1 to triangle 6, respectively, we can use Lemma 8.10(c) to sum the
six contributions
2
B2 = (xi
k) 13 k
B1 Dh,xyi j
3 h; yj
3
1 3
2
B2 D xi
3 h; yj
3k
1
B3 1D xi C 13 h;1yj
h,
y
k)
B
=
(x
+
La segunda integral es
58/66
1/m;iC.j 1/m
2 h2 Ck 2
hk
hk
r.B1 / C r.B2 / C r.B3 / C r.B4 / C r.B5 / C r.B6 /:
18
De la misma forma,
Ai C.j
k
h
Ai C.j
hk
r.B
/
C
r.B
/
1
2
18
h
k
hk
r.B
/
C
r.B
/
2
3
18
k
h
hk
r.B
/
C
r.B
/
3
4
18
hk
r.B
/
C
r.B
/
4
5
18
k
h
Ai C.j
Ai C.j
AiC.j
1/m;i C1Cj m
Ai C.j
1/m;i Cj m
hk
r.B
/
C
r.B
/
6
1
18
hk
r.B5 / C r.B6 /
18
59/66
1/m
hk
f .B1 / C f .B2 / C f .B3 / C f .B4 / C f .B5 / C f .B6 / :
6
Para los elementos finitos en la frontera, i C.j 1/m no pertenece a L20.R/ por lo
que se usan Ai C.j 1/m;iC.j 1/m D 1 y bi C.j 1/m D g.xi ; yj / para garantizar la
condicin de Dirichlet vi C.j 1/m D g.xi ; yj / en el punto frontera .xi ; yj /.
60/66
1.5
0.5
0
2
1
0.8
1.5
0.6
0.4
1
0.2
0
1.5
0.5
0
2
1
0.8
1.5
0.6
0.4
1
0.2
0
61/66
62/66
63/66
x
a
Figure 8.1 Mesh for the Finite Difference Method. The lled circles represent known
and boundary
conditions.
open circles
unknown values
that must y
be de contorno
Los puntosinitial
slidos
son los
queThedefinen
lasrepresent
condiciones
iniciales
determined.
(conocidos); los huecos, los que calcular el mtodo.
its approximation at (xi , tj ) by wij . Let M and N be the total number of steps in the x and t
Si wij es directions,
and let h = (bde
a)/M
and k = T en
/N be
in the x anddiferencias
t directions.
la aproximacin
la solucin
.xthei ; step
tj /,sizes
aplicando
The discretization formulas from Chapter 5 can be used to approximate derivatives in
atrasadas the
a xuand
en los applying
otros trminos
de u t Cformula
uux DforDu
se tiene
i yt centradas
directions. For example,
the centered-difference
the xx
second
derivative to the x variable yields
wij wi;j 1
wiC1;j wi 1;j
D
C
w
D
w
2w
C
w
ij
i C1;j
ij
i 1;j :
1 2h
k
h2
uxx (x, t) 2 (u(x + h, t) 2u(x, t) + u(x h, t)),
(8.4)
h
with error h2 uxxxx (c1 , t)/12; and the forward-difference formula for the rst derivative
que
64/66
Reordenando,
h
wij C 2h
wij wi C1;j
wi
1;j
wi C1;j
2wij C wi
1;j
wi;j
D 0;
65/66
F .z ; : : : ; z / D z
l.tj / D 0
r.tj / D 0:
1
kz2
2h
0
1C2 C k.z32h z1 /
kz3
2h
J .z/ D @@F
z,
es
3
2
C kz
2h
1C2 C k.z42h z2 /
::
:
3
C kz
2h
::
:
kzm
2h
::
1
J .zk / 1 F .zk /
2/
m
C kz2h
7
7
7
7
7
7
7
7
7
17
7
5
Con
u t C uux D Duxx
u.0;
t
/
D
0
para todo t 0
function w=Burgers(xl,xr,tb,te,M,N)
% Ecuacin de Burges; 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)
end
>> w=Burgers(0,1,0,2,250,250);
se obtiene
66/66