Вы находитесь на странице: 1из 1753

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales

Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3

Matemticas de EspecialidadIngeniera Elctrica

Presentacin de la Asignatura
Curso 2015-2016

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_introduccin_2016.pdf

1/39

 La asignatura tiene por objeto el Clculo, Anlisis

2/39

Matemtico e Ingeniera de sus Mtodos Numricos


para resolver problemas (los problemas de la gente).
Mediante esta ingeniera podremos resolver ptimamente problemas prcticos
de nuestra profesin1 aquellos de base cientfica que se modelizan y simulan
en trminos matemticos y analizar la idoneidad de los resultados.

 VISIN: Para trabajar en algo o con algo, hay que saber cmo
hacerlo fsicamente; : : : imaginarlo mejor, disearlo y elaborarlo:

Me lo contaron y lo olvid; lo vi y lo entend;


lo hice y lo aprend
Confucio, 551-479 a.C.

Insistiremos en los que se refieren a la ingeniera elctrica.

3/39

Apuntes, documentacin y anuncios




En sitio Web: www.jldelafuenteoconnor.es

Mediante e-mail: jldelafuente@etsii.upm.es


alumnos@jldelafuenteoconnor.es

Objetivos de esta asignatura




Introduccin terica y aplicacin prctica del diseo, anlisis e


ingeniera numrica (digital) de procedimientos y algoritmos
que puedan abordar y resolver problemas cotidianos con base
cientfica:
 Simulacin matemtica de fenmenos naturales,
econmicos y sociales
 Diseo ingenieril y cientfico de modelos matemticos

4/39

Profundizar en el manejo del ordenador como herramienta


fundamental para dar solucin a esos problemas y desafos
Siempre que ensees, ensea a la vez a dudar de lo que
enseas
Jos Ortega y Gasset. 1883-1955.

5/39

Entorno de clculo cientfico e ingenieril

6/39

Metodologa que seguiremos




Clases orientadas a la prctica, de nuestra profesin, con


ordenador




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

traducir al ordenador un problema y lo que queremos hacer,


o experimentar, con l para resolverlo
 Algunas referencias tiles para conocerlo mejor:

Curso de Introduccin a la Programacin


Interactive MATLAB tutorial
Getting started with MATLAB
MATLAB examples
Getting started with MATLAB (manual en PDF)

Profesores:

8/39

Gabriela Sansigre
Jos Luis de la Fuente OConnor
Jos Luis de la Fuente OConnor

www.jldelafuenteoconnor.es

Ingeniero Industrial, Escuela Tcnica Superior de Ingenieros


Industriales, Madrid, 1976

Master of Science in Engineering Economic Systems, Stanford


University, 1978




Doctor Ingeniero Industrial, ETSII, Madrid,

1979
Profesor Titular de Universidad, UPM, Madrid, 1990

9/39

Experiencia profesional:






Electricit de France
Iberdrola, 1976hasta la fecha

Experiencia docente:








Systems Europe, USA

Diversos cursos de doctorado


Matemticas de la especialidad, 1987-2003
Mtodos matemticos de especialidad: Ingeniera elctrica, 2003-2012
Matemticas de la especialidad, ingeniera elctrica, 2013-  
Mltiples cursos, seminarios, etc. de optimizacin, mtodos numricos y estrategia
empresarial

Experiencia investigadora:




Dirigido ms de 10 proyectos de investigacin de la Unin Europea (>100 MM de euros)


Colaboracin en diversos proyectos de investigacin acadmicos

Programa general


Fundamentos de los mtodos numricos en la ingeniera

Elementos de lgebra lineal numrica




Solucin de ecuaciones de una variable








Funciones de interpolacin y aproximacin. Transformada de Fourier





Optimizacin no lineal

Sistemas de ecuaciones lineales


 Mnimos cuadrados lineales
Mtodos iterativos para sistemas de ecuaciones lineales
Valores y vectores propios
Sistemas de ecuaciones lineales de grandes dimensiones: matrices dispersas
Sistemas de ecuaciones no lineales
Optimizacin lineal
 El mtodo simplex
 Dualidad
 Mtodos de punto interior
Derivacin e integracin de funciones
Integracin de ecuaciones diferenciales ordinarias y en derivadas parciales.

10/39

Referencias y lecturas posibles










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.

Este curso en Internet?

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%)

Thus, we can use the chain as a checklist in gauging the


quality of a decision as we make it.

Dnde surgen los desafos y problemas?

14/39

The next six pages explain what to consider in

CREATIVE
ALTERNATIVES

USEFUL
INFORMATION

CLEAR
VALUES

DECISION
QUALITY
HELPFUL
FRAME

SOUND
REASONING

COMMITMENT TO
FOLLOW THROUGH

Page 5

Tomar decisiones o analizar opciones

2009 Decis

Contexto general industrial y profesional


portunity

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

the european electricity industry:

17/39

Power System Structure


Hydro

Gas or CC

Nuclear

Coal

Basics
Generation &
transmission
Substations &
transformers
Control centers

http://tcip.mste.illinois.edu/
Credit: Jim McCally, Iowa State

18/39

Cualquier sistema de ingeniera elctrica tiene




Generacin Fuente de potencia y energa. Idealmente con


niveles de tensin y frecuencia determinados

Transporte Transmite potencia y mueve la energa

Demanda o carga Consume energa, absorbe potencia e


introduce otros componentes

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!

Supporting Evolution of the Electricity Grid

Historical Grid

Smart Grid

21/39

AQU y aqu

Tambin

22/39

:::

23/39

Potencia y Energa


Potencia Consumo instantneo de energa; capacidad de


aportar algn trabajo en cada instante

Energa Trabajo realmente producido o consumido;


integracin de la potencia en el tiempo.
Julio
kWh
Btu
1 l gasolina

=
=
=
=

1 vatio-segundo
kilovatio-hora (3;6  106 J)
1:055 J, 1 MBtu=0,292 MWh
9;65 kWh

24/39

Capacity Market

f Operating Reserves on Competition

serve Requirement
ive market requires
the available
and

- 21 -

actice that when


exceeds demand by
e market will be
be possible to keep
xpensive
/ MW, i.e. 10 Cents

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

Trkiye Enerji Piy

Enerji Sektrnde

Olan zelletirme

Elektrik retim
Elektrik Dat

Transporte

27/39

Optimizacin

Balancing and Settlement Market

Iberdola Control Center

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

Payment for Ancillary Services


Ancillary Services

are essential or even vital,


casuse revenue loss on market
participants, who have been
influenced by or who have carried out
the service,
cannot be offered and left freely,
otherwise everyone would prefer to
let the others to perform them

Hence the regulator must;


Decide on the types of ancillary services
to be purchased,
Determine the prices to be paid for these
services,
Materiales y componentes
Grant authorithy to TSO for assignment
of these duties to market participants,
Make market participants to pay for them
EE 710 Electricity Trading, Electrical and Electronics Eng. Dept., METU, Spring 2005, Prof. Dr. Osman SEVAIOGLU, Page 73

31/39

DEFFGGHIJHKJLM

Redes

Midwest
32/39

Visualize
PSERC

Visualizacin

33/39

Sincronismo

IIIM
M
A
G
E
N
MA
AG
GE
EN
N

Reconocimiento de imgenes y diagnstico

34/39

33 MEMBERS - 24 COUNTRIES

Capacities at cross-border points


on the primary market

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

cross-border interconnection point


LNG terminal

LNG terminal - under construction


LNG terminal - projected
Major interconnection point
Gas reserve areas

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

Tel +32 2 209 05 00


Fax +32 2 209 05 01

gte@gte.be
www.gte.be

from

1,60

40 Tuy

Transgas

(P)

(E)

0,04

(B)

2,30

41 Griespass

Transitgas

(CH) SNAM Rete Gas (I)

2,40

SNAM Rete Gas (I)

0,40

(Tun) SNAM Rete Gas (I)

3,44

Fluxys

Interconnector (UK)

1,00

42 Panigaglia

LNG

Fluxys

(B)

0,87

43 Mazara del Vallo

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 Transmission Europe


Avenue des Arts 19
B - 1210 Brussels

Gas Storage

indication of gas reserve areas

SNAM Rete Gas (I)


Geoplin

Enags

Geoplin

(Slov)

0,17

(Slov) SNAM Rete Gas (I)

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)

Gaz de France (F)

0,95

52A Bacton

9C Blaregnies (H)

Fluxys

0,95
1,43

Gaz de France (F)

(B)

Gaz de France (F)

10 Bocholtz

GTS

(NL)

E.ON-Ruhrgas (D)

11A Zevenaar

GTS

(NL)

E.ON-Ruhrgas (D)

11B Zevenaar

GTS

(NL)

12 Winterswijk

GTS

(NL)

13A Oude Statenzijl H-gas

GTS

(NL)

13B Oude Statenzijl H-gas

GTS

(NL)

13C Oude Statenzijl H-gas

GTS

(NL)

13D Oude Statenzijl L-gas

GTS

(NL)

13E Oude Statenzijl L-gas

GTS

(NL)

14A Emden (NPT)

Gassco

(N)

E.ON-Ruhrgas (D)

14B Emden (EPT1)

Gassco

(N)

E.ON-Ruhrgas (D)

14C Emden (NPT)

Gassco

(N)

14D Emden (EPT1)

Gassco

(N)

14E Emden (NPT)

Gassco

(N)

14F Emden (EPT1)

Gassco

(N)

14G Emden (NPT)

Gassco

(N)

14H Emden (EPT1)

Gassco

(N)

Thyssengas

Gassco

(N)

E.ON-Ruhrgas (D)

LNG
Nat Grid Transco (UK)

Interconnector (B)

2,30

52B Bacton

Interconnector (B)

Nat Grid Transco (UK)

1,00

53 Moffat

Nat Grid Transco (UK)

(D)

54 Twynholm

BGE (UK)

(IRL)

(UK) Premier Transm. (IRL)

BulgarGaz

(Bul)

DEPA

(GR)

0,36

Gazprom

(Rus)

Gasum

(FIN)

0,80

Nat Grid Transco (UK)

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

SNAM Rete Gas (I)

1,24
2,53

Thyssengas

Ukrtransgas (UKR)

Gassco
Ukrtransgas

(N)
(UKR)

MOL

(H)

(H)

NIS

(SER)

Bahia de Bizkaia (E)


Transgs

(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)

Nova Naturgas (S)

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)

Gaz de France (F)

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)

Gaz de France (F)


Transitgas

Enags

(CH)

(E)

Waidhaus
Nrnberg

Burghausen

Gas

Kiefersfelden

PGNiG Transmission

1,55

Polish Oil and Gas Company

0,19
1,95
0,85
0,65
0,27

Gaz de France (F)

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

Gaz de France (F)

LNG

33 Col de Larrau

(D)
(D)

OMV

Gaz de France (F)

STE
GAL

Dresden

Stuttgart

WINGAS
Bayerngas

Transitgas

NATURAL GAS TRANSMISSION

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

Las Palmas (projected)

Madrid Forum VIII, 8-9 July 2004

Gas/Transporte

36/39

Loptimisation en action

dans lindustrie et la technologie

La conception de structures pour laeronautique


minimiser le poids du fuselage en maintenant lintegrite structurale

reduction de la masse
en cours doptimisation
SAMTECH
(2009)
Tecnologa
(naXys)

y precisin
Octobre 2013

19 / 110

37/39

Innovacin para el desarrollo

38/39

ESENCIAL: Desarrollo humano tico

39/39

No siempre hay que hacer lo obvio:


una cierta acracia estimula

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Definiciones, notacin y
proposiciones bsicas
de matemticas

Jos Luis de la Fuente OConnor


Profesor Titular

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

Programacin Matemtica y Optimizacin


8.1 Dualidad . . . . . . . . . . . . . . . . .
8.1.1 Dualidad Lagrangiana . . . . .
8.1.2 Dualidad de Wolfe . . . . . . .
8.1.3 Ejemplo . . . . . . . . . . . . .

35
38
42
42
42

Enfoques de clculo diferencial, clculo de variaciones y principios a tener en cuenta para


estudiar el mtodo de los elementos finitos, FEM, para resolver ecuaciones en derivadas parciales
9.1 Solucin de una ecuacin en derivadas parciales . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.1 El problema en forma dbil o variacional . . . . . . . . . . . . . . . . . . . . . . . .
9.1.2 Espacios de trabajo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.1.3 Discretizacin del problema en un subespacio de elementos finitos lineales . . . . . .
9.1.4 Reformulacin del problema como un sistema de ecuaciones lineales . . . . . . . . .
9.2 Algo sobre funcionales y clculo de variaciones . . . . . . . . . . . . . . . . . . . . . . . . .
9.2.1 Proposiciones esenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10 Bibliografa

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

9
11
13
15
15
19
20

43
45
46
47
48
51
52
55
56

N ESTE TEXTO DE INTRODUCCIN a la asignatura Matemticas de la EspecialidadIngeniera


Elctrica se recopilan conceptos, definiciones, relaciones y resultados bsicos de matemticas que
pueden ser tiles para seguir su desarrollo de manera provechosa. Prcticamente todos se han estudiado en otras asignaturas de cursos anteriores a aqul en el que se imparte sta. En ningn caso es un exhaustivo
recordatorio de las matemticas que debe conocer un ingeniero industrial. Tambin se introduce una notacin
que, de forma uniforme, trataremos de usar en todas las lecciones y presentaciones que explicaremos y ensearemos en las clases.

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 :

Dados dos conjuntos S y T , una aplicacin, transformacin o mapeo f de S en T , expresada como f W


S ! T , es una asociacin o criterio que a cada elemento de S hace corresponder uno de T .
La imagen de un elemento x 2 S con la aplicacin f W S ! T es el elemento f .x/ 2 T . El conjunto
imagen f .S/ = ff .x/ 2 T; para todo x 2 S g. La imagen de un subconjunto S 0  S con la aplicacin f sera,
por consiguiente, el subconjunto imagen f .S 0 /. El conjunto S se conoce como origen o dominio de definicin y
el T como dominio de valores. Una aplicacin f W S ! T se dice inyectiva si para cualquier par de elementos
x; y 2 S, x y, se cumple que f .x/ f .y/. Ejemplo, la aplicacin f W R ! R, definida por f .x/ D x 2 ,
no es inyectiva, pues f .1/ D f . 1/ D 1.
Una funcin es un caso particular de aplicacin en donde los conjuntos origen e imagen son conjuntos de
nmeros: R, C, Z, N, etc.
Una aplicacin f W S ! T se dice suprayectiva sobreyectiva, epiyectiva, suryectiva o exhaustiva si
el conjunto imagen f .S / es igual a todo el conjunto T ; es decir, para todo y 2 T existe un x 2 S tal que
f .x/ D y.
1

conjunto imagen f .S/ = ff .x/ 2 T; para todo x 2 S g. La imagen de un subconjunto S 0  S con


la aplicacin f sera, por consiguiente, el subconjunto imagen f .S 0 /. El conjunto S se conoce como
origen o dominio de definicin y el T como dominio de valores. Una aplicacin f W S ! T se dice
inyectiva si para cualquier par de elementos x; y 2 S , x y, se cumple que f .x/ f .y/. Ejemplo,
la aplicacin f W R ! R, definida por f .x/ D x 2 , no es inyectiva, pues f .1/ D f . 1/ D 1.
Una funcin es un caso particular de aplicacin en donde los conjuntos origen e imagen son conjuntos de nmeros: R, C, Z, N, etc.
Una aplicacin f W S ! T se dice suprayectiva sobreyectiva, epiyectiva, suryectiva o exhaustiva
Una aplicacin se dice
biyectiva si es inyectiva y suprayectiva. Ejemplo, si Jn esunelx 2conjunto
de los nmeros
si el conjunto imagen f .S/ es igual a todo el conjunto T ; es decir, para todo y 2 T existe
S
que:f:.x/
D y. y se define una aplicacin  W Jn ! Jn que modifica el orden de disposicin
enteros de 1 a n, Jn Dtalf1;
: ; ng,
Una aplicacin se dice biyectiva si es inyectiva y suprayectiva. Ejemplo, si Jn es el conjunto de los
de los elementos de Jnnmeros
estas
aplicaciones se denominan permutaciones, tal aplicacin es biyectiva.
enteros de 1 a n, Jn D f1; : : : ; ng, y se define una aplicacin  W Jn ! Jn que modifica el
orden de
disposicin de si
los elementos
de Jn biyeccin
estas aplicaciones
se denominan
Un conjunto S se dice
numerable
existe una
entre
N y S:permutaciones,
a cada unostal de los n elementos k,
aplicacin es biyectiva.
1  k  n, se le asocia Un
unconjunto
elemento
a 2 S , esto es: k 7! a .
S se diceknumerable si existe una biyeccinkentre N y S : a cada unos de los n elementos k, 1  k de
 n,un
se leconjunto
asocia un elemento
esto es: k 7! akde
. N en T : a cada elemento n  1 se le hace
Una sucesin de elementos
T es auna
k 2 S,aplicacin
Una sucesin de.n/
elementos de un conjunto T es una aplicacin de N en.1/
1 .n/
corresponder un x .n/ 2
T
:
n
!
7
x
.
Tal
sucesin
se
expresa
como
fx T : a; cada
x .2/elemento
; : : : g nofx
gn1 .
se le hace corresponder un x .n/ 2 T : n 7! x .n/ . Tal sucesin se expresa como fx .1/ ; x .2/ ; : : : g o
.n/
fx gn1
Los conjuntos dotados
de. ciertas leyes de composicin o asociacin interna adicin, multiplicacin, diLos conjuntos dotados de ciertas leyes de composicin o asociacin interna adicin, multiplicavisin o cualquier otra,
se dice que poseen una estructura. Las estructuras algebraicas fundamentales son
cin, divisin o cualquier otra, se dice que poseen una estructura. Las estructuras fundamentales
son: grupo, anillo
(Z por (R
ejemplo),
y C, por ejemplo)
y espaciovectorial.
vectorial.
grupo, anillo (Z por ejemplo),
cuerpo
y C,cuerpo
por(Rejemplo)
y espacio

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

y el producto por un escalar mediante


x1 ; : : : ; xn D x1 ; : : : ; xn :

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


k  k W E ! R que verifica

2.1 Espacios normados, espacios mtricos

kvk D 0 H) v D 0 y x 0 H) kxk > 0;

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

Figura 2.1: Representacin grfica de la regla del tringulo

En el espacio vectorial Kn , para 1  p < 1, se tiene la familia de normas

En el espacio vectorial Kn , para 1  p < 1, se tiene la familia de normas



1=p
p
p
p
p
p
p
kxk
D
jx
j
C



C
jx
j
;
p
1
n
jx1 j C    C jxn j
kxkp D

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 :

Esta ltima se denomina en Rn norma eucldea. Tambin en Kn es una norma la dada

Esta ltima se denomina en Rn norma eucldea, por Euclides de Alejandra, Grecia,


325-265
en
kxk
aa.C.
x jxiTambin
j:
1 D mK
1in
Kn es una norma la dada por
normas
kxkEstas
mKax cumplen,
jxi j : cualquiera que sea x 2 Kn , que
1 D
1i n

kxk1  kxk2  kxk1  nkxk1 :

Si la bola cerrada unidad en R2 es el conjunto fx 2 R2 W kxk  1g, sus formas pa


vectoriales 1, 2, 1, y p son las que representa la figura 3.2.
7

Estas normas cumplen, cualquiera que sea x 2 Kn , que


kxk1  kxk2  kxk1  nkxk1 :
Si la bola cerrada unidad
R2 es fx
el conjunto
fx 2 1g
R2es Wlakxk
1g, suunidad
forma en
en espacios vectoriales
Si el en
conjunto
2 R2 W kxk
bolacerrada
normados por la 1, 2, 1Ry2p
sonforma
las que
representa
la figura
2.2. 1, 2, 1, y p son estas.
, su
para
las normas
vectoriales
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

kxk1
ax jx
D mK
i ij D 1
1i2
1i2

kxkp D jx1jp C jx2jp 1=p ;


D1

.1  p < 1/
28/63

Figura 2.2: Forma de la bola unidad para diferentes normas en R2


a

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

donde, si f W C ! C, se define la integral definida de esta funcin en el intervalo a; b,


b

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

Los espacios de funciones Lp .0; 1/, p > 1, con la norma


kxk D

Z

jx.t /jp dt

1=p

; donde x.t / 2 Lp .0; 1/;

en los que si y.t / 2 Lp .0; 1/ se cumple que


Z

jx.t /j dt

1=p

<1

son tambin espacios1 normados.


1 Casos

particulares son L1 .a; b/ de funciones cuyo valor absoluto es integrable en a; b y L2 .a; b/ de funciones al cuadrado
integrables en a; b.

En un espacio vectorial normado se define la distancia entre dos elementos u y v mediante


d.u; v/ D ku

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

Figura 2.3: Grfica de una de las funciones de una sucesin de Cauchy

2.2 Espacios con producto interior


Sea E un espacio vectorial sobre un cuerpo K (R o C); una forma sesquilineal vez y media lineal sobre
E es una aplicacin hji W E  E ! K que verifica4 :
1) hu C vjwi D hujwi C hvjwi y
2) hujv C wi D hujvi C hujwi;

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,

hujvi  kuk  kvk :


Si  es un abierto de Rn , el espacio vectorial de las funciones al cuadrado integrables en 5 es


Z
2
L2 ./ D f W  ! R;
jf .x/j dx < 1


que es un espacio prehilbertiano si se le dota del producto escalar


Z
hf; gi D
f .x/g.x/dx:


Un espacio de Hilbert por David Hilbert, Prusia Oriental 1862-1943


es un espacio prehilbertiano comp
pleto respecto de la norma asociada al producto escalar k  k D h; i . Dicho de otra forma, un espacio
prehilbertiano que con esta norma da un espacio de Banach. Todo espacio de Hilbert es un espacio de Banach,
pero el recproco no es cierto.
R
El espacio vectorial L2 ./ dotado de la norma anterior, hf; gi D  f .x/g.x/dx, es un espacio de Hilbert.
El espacio eucldeo n-dimensional, expresado Rn o En , es un espacio de Hilbert de dimensin finita. Visto
as, un espacio de Hilbert sera la generalizacin de un espacio eucldeo, incluida la dimensin infinita. El
producto escalar en un espacio eucldeo es una forma bilineal. En particular, dados dos vectores en R2 de la
forma u D a; bT y v D c; d T , su producto escalar viene dado por hu; vi D ac C bd . que se puede verificar
que es una forma bilineal.
Dos vectores cuyo producto escalar es cero se denominan ortogonales; si sus kk2 son la unidad se denominan
ortonormales. Para dos vectores ortogonales se tiene la identidad
ku C vk2 D kuk2 C kvk2 ;

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

cumple que 1    1, para cualesquiera x e y.


Dos vectores son ortogonales si x T y D 0 ( D =2;  D 0); alineados, si x T y D kxkkyk ( D 0;  D 1);
opuestos, si x T y D kxkkyk ( D ;  D 1). Forman un ngulo agudo si x T y > 0 ( < =2;  > 0) y un
ngulo obtuso si x T y < 0 ( > =2;  < 0).
Una familia cualquiera de vectores distintos del nulo y ortogonales dos a dos es una familia libre. Si M es
un subespacio de un espacio prehilbertiano E de dimensin finita, el subespacio ortogonal de M , M ? , es el
subespacio formado por todos los vectores ortogonales a los de M , siendo un subespacio suplementario de M ;
es decir M M ? D E. Cualquier x 2 E, por consiguiente, se puede expresar como x D a C b, con a 2 M
y b 2 M ?.
5 Tambin

se suelen denotar L2 ./.

2.3 Aplicaciones lineales


Dados dos espacios vectoriales E y F sobre el mismo cuerpo K se define una aplicacin lineal, transformacin lineal, mapeo, operador lineal u homomorfismo, f , de E en F , como una aplicacin f W E ! F que
verifica
f .x C y/ D f .x/ C f .y/ ;

cualesquiera que sean los vectores x, y de E y los escalares  y . Existen dos casos particulares interesantes:
el primero cuando E D F , en este caso se dice que f es un operador lineal de E o endomorfismo de E; el
segundo cuando F D K el cuerpo base, en cuyo caso la 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

.f C g/.x/ D f .x/ C g.x/ 8x 2 EI

producto por un escalar f W .f /.x/ D f .x/

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

hxjf .y/i D hf .x/jyi:

Un operador f de E es unitario cuando es invertible y su inverso coincide con su adjunto. Es decir, si


f  D f 1 . Para un operador unitario se tiene que
hf .x/jf .y/i D hf  .f .x//jyi D hxjyi ;
de manera que kf .x/k D kxk. Por este motivo a los operadores unitarios tambin se les denomina operadores
isomtricos.
Dada una transformacin lineal, aplicacin lineal, o mapeo, f W E ! E, se dice que un subespacio W de E
es un subespacio invariante frente a f (o f -invariante) si para todo vector w 2 W se cumple que f .w/ 2 W .
Dicho de otra manera, W es un subespacio invariante si f .W /  W .
8

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:

N 0 ; r/, se define, por el contrario, como el conjunto de puntos x que verifican kx


Una bola cerrada, S.x
x0 k  r. Es decir:
N 0 ; r/ D fx 2 Rn W kx x0 k  rg:
S.x

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

que converge a un elemento del propio conjunto S.


Si fr .k/ g es una sucesin de nmeros reales y s .k/ D sup fr .i / W i  kg, entonces fs .k/ g converge a un
nmero real s0 ; a este nmero se le denomina lmite superior de fr .k/ g y se expresa como




lKm sup r .k/
o lKm r .k/ :
k!1

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

ff1 ; f2 ; : : : ; fm g de F por una tabla de coeficientes, matriz asociada, de m filas y n columnas:


2
3
a11    a1n
6 : :
7
:: : : ::: 7 2 K mn :
AD6
4
5
am1    amn

Los coeficientes aij estn definidos por

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

Expresin que tambin se puede escribir de la siguiente forma:


yD

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



De acuerdo con esto, si A 2

Rmn ,

,QQHU3URGXFW /HQJWK DQG2UWKRJRQDOLW\

se cumple que



7KHQH[WWKHRUHPDQG([HUFLVH YHULI\WKHFODLPVPDGHLQ6HFWLRQ
FRQFHUQLQJ
ker .A/ Im A T D Rn :
WKHVXEVSDFHVVKRZQLQ)LJ  $OVRVHH([HUFLVH LQ6HFWLRQ 

En la figura 4.4 se muestran estos subespacios.

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;

RUWKRJRQDOWRHDFKURZRI A ZLWKWKHURZVWUHDWHGDVYHFWRUVLQ Rn / 6LQFHWKHURZV

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

$QJOHVLQ R DQG R 2SWLRQDO

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:

7RYHULI\WKLVIRUPXODIRUYHFWRUVLQ R2  FRQVLGHUWKHWULDQJOHVKRZQLQ)LJ  ZLWKVLGHV


D 0 H) A D 0:
YkkAk
 %\WKHODZRIFRVLQHV
RIOHQJWKV kXk kYk DQG kX #1)
2) kAk D jj  kAk:

kX # Yk2 D kXk2 C kYk2 # 2kXk kYk FRV #


3) kA C Bk  kAk C kBk:

(u , u )

4) kABk  kAk  kBk:

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

mximo nmero de vectores linealmente independientes.

(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

La aplicacin transforma el vector e 1 D 1; 0T en s mismo y


Figura 4.5: Efecto Tde una aplicacin
e 2 D 0; 1 en 2; 2T . lineal sobre la bola unidad para diferentes normas

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

denominada norma A o norma de


del vector x, para una matriz A simtrica y definida positiva. A
hxjyiA D hAxjyi se le denomina producto interior de A o producto escalar de energa. La matriz A 1=2 es
la nica matriz definida positiva solucin de la ecuacin matricial X 2 D X  X D A.

4.2 Matrices ortogonales, unitarias, simtricas, Hessenberg, de permutacin y de proyeccin


Una matriz Q 2 Rmn se dice ortogonal si verifica que QT Q D I; es decir, cuando sus vectores columna
son ortogonales dos a dos y de norma eucldea unitaria (ortonormales). Si Q 2 Rnn es ortogonal, se cumple
que QQT D QT Q D I.
7 Pues

suele corresponder con la energa fsica de ciertos sistemas.

13

Las matrices ortogonales Q 2 Rmn verifican:


9
>
>
kQk2 D 1
>
>
>
=
1=2
kQkF D n
si m  n y
kQAk2 D kAk2 >
>
>
>
>
kQAk D kAk ;
F

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:

Anlogamente, se dice diagonal dominante por columnas si


jai i j 

j D1;j i

i D 1; : : : ; n:

Si las desigualdades se verifican estrictamente la matriz A se denomina diagonal estrictamente dominante.


Lema 4.1 Para que una matriz simtrica sea definida positiva es necesario que todos los coeficientes de la
diagonal principal sean positivos.
Lema 4.2 Para que una matriz simtrica A sea definida positiva es necesario que el coeficiente de mayor
valor absoluto est en la diagonal principal. Ms concretamente,
mKax jaij j < mKax akk :
i j

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

4.3 Valores propios, valores singulares y formas cuadrticas


4.3.1 Valores propios
Si A es una matriz cuadrada de orden n y coeficientes en K (R o C), un vector no nulo u 2 Kn se denomina
vector propio de A si para algn  2 K se cumple que
Au D u :
15

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:

Si A es invertible, como consecuencia de ello,


A

1 n
A
gn

g1 n
A
gn



gn 1
I:
gn

A partir del teorema de Cayley-Hamilton tambin es fcil comprobar


 1 2  que existe un polinomio p de grado
1
mximo n 1 tal que A
D p.A/. Como ejemplo, la matriz 3 4 tiene como polinomio caracterstico
x 2 5x 2. El teorema de Cayley-Hamilton dice que A 2 5A 2I D 0, lo cual se puede comprobar
inmediatamente. La inversa de A se puede obtener de esta ecuacin a partir de A .A 5I/ D 2I. En efecto,
A 1 D 21 .A 5I/.
Para A 2 C nn y 0 b 2 C n1 , al subespacio Kj .A; b/ D Genfb; Ab; : : : ; A j 1 bg se le denomina
subespacio de Krylov.
Igual que cualquier matriz tiene asociado un polinomio caracterstico, cualquier polinomio tiene asociado
una matriz compaera. La matriz compaera de un polinomio mnico8 p.t / D c0 C c1 t C    C cn 1 t n 1 C t n
8 Un

polinomio a0 C a1 x C a2 x 2 C : : : C an x n se dice que es mnico si an D 1.

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 ; :

De este modo, la suma de subespacios propios es directa. Se cumple que


M
E D Kn
2.A/

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

4.3.2 Valores singulares


La nocin de valor propio, o autovalor, no tiene significado para matrices rectangulares. En stas, por el
contrario, si lo tiene, como en las cuadradas, el concepto de valor singular. Si A es una matriz cualquiera m  n
con coeficientes en R, se definen sus valores singulares i ; i D 1; : : : ; mKnfm; ng, como las races cuadradas
positivas de los valores propios de la matriz cuadrada A TA 2 Rnn .
Teorema 4.7 Descomposicin en valores singulares Si A 2 Rmn es una matriz de rango r existen matrices
ortogonales U 2 Rmm y V 2 Rnn tales que
A D U V T ,
h
i
donde D r 0 , 2 Rmn y r D diag.1 , 2 ; : : : ; r /, con 1  2      r > 0. Si las matrices
0 0
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.
D EMOSTRACIN . Sean x 2 Rn e y 2 Rm dos vectores tales que
kxk2 D kyk2 D 1

y Ax D y;

con

 D kAk2 :

La existencia de estos vectores x e y est garantizada por la definicin de kAk2 .


Sean las dos matrices ortogonales
V D x V 1 2 Rnn

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

Para cualquier matriz A 2 R


, la matriz A A es la matriz n  n de proyeccin ortogonal sobre el
subespacio de los vectores fila de A, AA la m  m de proyeccin ortogonal sobre la imagen de la matriz A
(subespacio de sus vectores columna) y .I A A/ la de proyeccin ortogonal sobre el ncleo de A, ker.A/.
19

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

El rango de la forma es p C q y la signatura p q (p nmeros positivos y q negativos).


Una forma cuadrtica real es definida positiva si para todo vector x 0, q.x/ > 0. El rango y signatura de
una forma cuadrtica definida positiva valen n. Si Q la forman los coeficientes qij y se introducen los nmeros
menores como
2
3
q11 q12    q1i
6q q  q 7
6 21 22
2i 7
i D det 6 :: :: : : :: 7 ;
4 : :
: : 5
qi1 qi 2    qi i

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

Estas acotaciones no se pueden mejorar ya que si Qv D v,

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

De esta manera, si x m0 no es ortogonal a M , m0 no es el mnimo que decamos.


Veamos ahora cmo, si x m0 es ortogonal al subespacio M , m0 es el nico vector de M que minimiza
kx mk2 . En efecto, para todo m 2 M , el teorema de Pitgoras dice que
kx

mk22 D kx

m0 C m0

mk22 D kx

m0 k22 C km0

mk22 :

Por lo tanto kx mk2 > kx m0 k2 para m m0 .


Demostraremos ahora la existencia de un m0 que minimiza kx mk2 . Si x 2 M , entonces m0 D x y todo
estara probado como es obvio. Si x M , definamos un D Knfm2M kx mk2 ; lo que queremos es obtener
un m0 2 M tal que kx m0 k2 D .
A tal fin, sea fm.i / g una sucesin de vectores en M tal que kx m.i / k2 ! . Por la ley del paralelogramo9
se tiene que

2
2

2

2
.j /
.j /
.j /


.i /
.i /
.i /
.m
x/
C
.x
m
/
C
.m
x/
.x
m
/
D
2
m
x
C
2
x
m







:
2

9 Para

u, w 2 M , ju C wj2 C ju

wj2 D 2juj2 C 2jwj2 .

21

Proposicin 8.1 (Condiciones necesarias de primer orden) Sea  un subconjunto de Rn y una


funcin f W  ! R, f 2 C 1 . Si x  en un mnimo relativo de f en , para toda direccin d 2 Rn ,
factible desde x  , se cumple que rf .x  /d  0.
Corolario 8.2 Sea  un subconjunto de Rn y una funcin f W  ! R, f 2 C 1 . Si x  es un
mnimo relativo de f en  y x  es un punto interior de , se cumple que rf .x  / D 0.

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

factible desde x  , se cumple que:

/
.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

pngase que tambin unminimizar


mnimo relativo
de f W  ! R, f 2 C 2 . Entonces:
ktx yk

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

La matriz Hessiana r 2 f .x  / es definida positiva:

x  es entonces un mnimo relativo estricto de f .

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,

combinaciones de la forma x D x1 C .1 /x2 , con 0    1, estn en C . Es decir, cuando para


cada par
puntosconvexo,
del conjunto
convexo,
todos
los puntos
de laestn
recta
los une estn en el conjunto.
cada par de puntos
del de
conjunto
todos los
puntos de
la recta
que los une
enque
el conjunto.

minimizar ktx

yk

es el vector proyeccin ortogonal de y sobre x: tx en la figura 5.8.

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:

Fig. 4.9. Convex


sets
with
pairs
of
points
joined by line segments.

El conjunto interseccin de todos los conjuntos convexos que contienen a un subconjunto S  Rn


se llama envoltura convexa de S y se designa por conv.S/.

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

La expresin x D x1 C .1 /x2 , 0    1, define la combinacin convexa de x1 y x2 . Si 0 <  < 1,


es decir  2 .0; 1/, la combinacin se denomina estrictamente convexa.
El concepto de combinacin convexa se puede generalizar a cualquier nmero finito de puntos de la siguiente
manera:
p
X
xD
i xi ;
donde

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.

2.3 The convex hulls of two sets


Left. The convex hull of a
Figura 6.10: EnvolturaFigure
convexa
de dos conjuntos de R2 . in
LaRde. la
izquierda de 15 puntos; la de la derecha de
set of fifteen points (shown as dots) is the pentagon (shown shaded). Right.
un conjunto no convexo
The convex hull of the kidney shaped set in figure 2.2 is the shaded set.

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 , . . .

0-simplex S 0 : un solo punto fv1 g

1-simplex S 1 : conv.S 0 [ fv2 g/ y v2 no est en aff.S 0 /

2-simplex S 2 : conv.S 1 [ fv3 g/ y v2 no se encuentra en aff.S 1 /


::
:

k-simplex S k : conv.S k
7KH*HRPHWU\RI9HFWRU6SDFHV
v1

[ fvkC1 g/ y vkC1 no est en aff.S k

v1

v1
S0

v2
S1

1 /.

v1

v2

v3
S2

v4

v2

v3
S3

'*(63& 

Figura 6.11: El simplex S 1 es un segmento de recta. El tringulo S 2 proviene de seleccionar un punto v3


que no est en la recta que contiene a S 1 y despus formar la envolvente convexa con S 1 . El tetraedro S 3 se
S3 est
S 2S 2
)LJal 
7KHWHWUDKHGURQ
LVSURGXFHGE\FKRRVLQJDSRLQW
produce
elegir
un punto v4 que no
en el plano de S 2 y despus formarY4laQRWLQWKHSODQHRI
envolvente convexa con

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

rea x=1 srea(abc )


convex

nonconvex

Fig. B.1 Convexity


p
rea = t rea(abc )

b
2.C

C + Drea = rrea(abc )

'*(63&  S D r D C s E C t F +HUH r D 14 

Figura 6.12: Punto


p Dt ra
sD
D C sb C tc. En este caso r D
1

3

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

FRRUGLQDWHV\VWHPIRURXWHUVSDFH ZLWKWKHRULJLQDWWKHFHQWHURIPDVV WKHEDU\FHQWHU RIWKHVRODUV\VWHP

 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

Figura 6.13: Tres conos: el primero


y el segundo no son convexos; el tercero si
Fig. B.3 Cones
Un cono que tambin es convexo se denomina cono convexo (figura 6.13). En este caso, para todo x1 ; x2 2 C
y 1 ; 2  0, 1 x1 C 2 x2 2 C .
El conjunto fx 2 Rm W x D A; A 2 Rmn ; 2 Rn ;  0g es un cono convexo generado por los vectores
columna de la matriz A.
El conjunto de todas las combinaciones cnicas, 1 x1 C    C k xk , 1 ; : : : ; k  0, de los puntos de un
conjunto C es la envoltura cnica de C , cone.C /.
Un punto x es un punto extremo o vrtice de un conjunto convexo C si y slo si no es interior a un segmento
de recta contenido en C . Es decir, si y slo si
10 nica.

x D .1

/y C z con 0 < < 1 y y; z 2 C ) x D y D z:


24

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

Teorema 2.1. Si X R y x cone (X), existen x iI X y i 0, i = 1, 2, , n,


n
(I)
para cierto R+ . tales que x = P i xi . Es decir, cualquier elemento de la envoltura cnica de X es
x2

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 .

Anlogamente a los resultados anteriores tenemos que:

Proposicin 2.5. Dado X Rn , se tiene que: 0


0
k

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.

Figura 8.8: Envoltura cnica de los dos conjuntos de la figura i=1


8.6

i=1

Dos resultados importantes


a Constantin Carathodory,
Alemania, 1873-1950, dicen que si X  Rn
Teoremadebidos
de Carathodory
para convexos
Un punto x es un punto extremo de un conjunto convexo C si y slo si no esP
interior
a un segmento de recta contenido
Teorema
Carathodory
y x 2 de
cone.X/,
ypara
i , iconos
D 1; : : : ; n,ntales que x D niD1 i xi . Es i decir, cualquier elemento de
en Cexisten
. Es decir, sixyislo
si
(X),
Teorema
2.2.
Si/yXCcnica

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.

Figura 8.9: El teorema de Carathodory


Teorema de Carathodory paraFigura
convexos
6.15: El teorema de Carathodory

Llamaremos hiperplano H de vector caracterstico a 2 Rn ; a 0, al conjunto H D fx 2 Rn W aT x D cg, con

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 .

Unde X es combinacin convexa de, a lo sumo, n + 1 puntos de X.


convexa
T

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+

Teorema 8.1 Sea C un conjunto convexo e y un punto exterior a la adherencia


de C . Existe un vector a tal que
y
x0
aT y < Knfx2C aT x.

21

Figura 8.10: Hiperplano x1 C 4x2 D 11 y los semiespacios en los que divide R2

Figura 6.16: Hiperplano x1 C 4x2 D 11 y los semiespacios en los que divide R2

En un hiperplano aT x D c, la constante c determina el desplazamiento del hiperplano del origen.


Un
se puede expresar de la forma fx W aT .x x0 / D 0g, donde x0 es cualquier punto del
T hiperplano
T
En un hiperplano ahiperplano
x D (ac,
constante
c determina
el desplazamiento
del origen. Un
x0la
D c).
Esa ltima expresin
se puede trabajar
un poco ms pues fx del
W aT .xhiperplano
x0 / D
?
?
T
T
0g
D
x
C
a
,
donde
a
es
el
complemento
ortogonal
de
a,
es
decir
fv
W
a
v
D
0g.
Lo que lleva
0
hiperplano se puede expresar
de
la
forma
fx
W
a
.x
x
/
D
0g,
donde
x
es
cualquier
punto
del hiperplano
0
0
a que un hiperplano consiste en un desplazamiento x0 ms todos los vectores ortogonales al vector
?
Tpoco ms pues fx W aT .x
(aT x0 D c). Esa ltima
expresin
se
puede
trabajar
un
x
/
D
0g
D
x
caracterstico a: el conjunto de soluciones de a x D c: x0 C ker.a/, recordemos.
0
0 Ca , donde
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 semiespa25
cios cerrados que pasan por un punto.
B.3y no
Separating
Supporting
Hyperplanes
Un poliedro es un politopo acotado
vaco. Es fciland
comprobar
que la interseccin
de conjuntos 519
convexos es convexa y que por lo tanto los politopos y los poliedros son conjuntos convexos. En esta
figura se muestran varios politopos; el del centro es un poliedro.

a? es el complemento ortogonal de a, es decir fv W aT v D 0g. Lo que lleva a que un hiperplano consiste en un


desplazamiento x0 ms todos los vectores ortogonales al vector caracterstico a: el conjunto de soluciones de
aT x D c: x0 C ker.a/, recordemos.
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.
Un poliedro es un politopo acotado y no vaco: ver figura 6.17. 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
B.3 Separating and Supporting Hyperplanes
519
un politopo P es un poliedro, cualquier punto
se puede expresar como combinacin convexa
de sus puntos
extremos o vrtices.

Fig.
B.5 Polytopes
Figura 6.17: Diversos
politopos:
el del centro, un poliedro

Teorema 6.2 SeaIt C


conjunto
convexo
e y un punto
exterior
de C .ofExiste
un vector a tal
is un
easy
to see that
half spaces
are convex
setsa la
andadherencia
that the union
H+ and
T
T
Knfx2C
que a y < H
a whole
x.
is the
space.

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

y queda probado el teorema.

SEPARATING AND SUPPORTING

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

Figure 2.18 Three ellipsoids in R2 , centered at the origin (shown as the


lower dot), that contain the points shown as the upper dots. The ellipsoid
E1 is not minimal, since there exist ellipsoids that contain the points, and
are smaller (e.g., E3 ). E3 is not minimal for the same reason. The ellipsoid
E2 is minimal, since no other ellipsoid (centered at the origin) contains the
points and is contained in E2 .

Figure 2.19 The


hyperplane
| aT x = b} separates
the entre
disjointCconvex
Figura
6.18:{x
Hiperplano
separador
y D sets
C and D. The affine function aT x b is nonpositive on C and nonnegative
on D.
T
T

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/

y .k/ < Knf a.k/

x2C

x:

D EMOSTRACIN . Sea Como


fy .k/
una
sucesin
desubsucesin
puntosfaexteriores
a laa unadherencia
C .que,
Sea fa.k/ g la sucesin
fa gg es
una sucesin
acotada, una
g, k 2 H, converger
lmite a. Para este ade
se tiene
para cualquier
x 2 C,
.k/




de puntos normalizados, ka k2 D 1, obtenida
de aplicar
el teorema
anterior a la sucesin anterior, tales que,
a y D lKm a
y  lKm a
x D a x:

T

T
Un hiperplano que contiene un.k/
conjunto convexo
C en uno de sus semiespacios
cerrados y que contiene algn punto
a de apoyo
y .k/
nf a.k/ x:
frontera de C se denomina hiperplano
de C . < K
.k/

.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/

/HW S EHDFRPSDFWFRQYH[VXEVHWRI Rn  $ QRQHPSW\VXEVHW F RI S LVFDOOHG


D SURSHU IDFH RI S LI F S DQGWKHUHH[LVWVDK\SHUSODQH H D f  d ! VXFK
Hcones
f .S/ 'inequalities
d RU f .S/ & d  7KHK\SHUSODQH H LVFDOOHG
DQGHLWKHU
WKDW F D
2.6S \
Dual
and generalized
51
D VXSSRUWLQJK\SHUSODQH WR S  ,IWKHGLPHQVLRQRI F LV k  WKHQ F LVFDOOHGD
NIDFH RI S 
,I P LVDSRO\WRSHRIGLPHQVLRQ k  WKHQ P LVFDOOHGD NSRO\WRSH $ IDFH
RI P LVFDOOHGD YHUWH[ SOXUDO YHUWLFHV  DIDFHLVDQ
HGJH DQGD .k " 1/
a
GLPHQVLRQDOIDFHLVD IDFHW RI S 
x0
C

&9".1-&  6XSSRVH S LVDFXEHLQ R3  :KHQDSODQH H LVWUDQVODWHGWKURXJK


R3 XQWLOLWMXVWWRXFKHV VXSSRUWV WKHFXEHEXWGRHVQRWFXWWKURXJKWKHLQWHULRURIWKH
FXEH WKHUHDUHWKUHHSRVVLELOLWLHVIRU H \ S  GHSHQGLQJRQWKHRULHQWDWLRQRI H  6HH
Figure 2.21 The hyperplane {x | aT x = aT x0 } supports C at x0 .
)LJXUH 
Figura 6.20: Hiperplano de apoyo de C en x0
H \ S PD\EHDGLPHQVLRQDOVTXDUHIDFH IDFHW RIWKHFXEH
that the point x0 and the set C are separated by the hyperplane {x | aT x = aT x0 }.
geometric
interpretation
is thatcubo
the hyperplane
| aT xque
= aTse
x0 }traslada
is tangenten R3 hasta que apenas
Hdimensin
\ S PD\EHDGLPHQVLRQDOHGJHRIWKHFXEH
Si S es un politopo The
de
3 en R3 un
y H un{x
plano
T
T
to C at x0 , and the halfspace {x | a x a x0 } contains C. This is illustrated in
se apoya en el cubo, pero
no
el interior de ste, hay tres posibilidades para H \ S dependiendo de la
PD\EHDGLPHQVLRQDOYHUWH[RIWKHFXEH
H\
Scorta
figure
2.21.
orientacin de H . Se venAenbasic
la figura
result, 6.21.
called the supporting hyperplane theorem, states that for any
nonempty convex set C, and any x0 bd C, there exists a supporting hyperplane to
C at x0 . The supporting hyperplane theorem is readily proved from the separating
hyperplane theorem.
H We distinguish two cases. If the interior of C is nonempty,
the result follows immediately by
H applying the separating hyperplane theorem to
the sets {x0 } and int C. If the interior of C is empty, then C must lie in an affine
set of dimension less than n, and any hyperplane containing that affine set contains
C and x0 , and is a (trivial) supporting hyperplane.
S is also a partial converse of the supporting
S
S
There
hyperplane theorem: If a set
is closed, has nonempty interior, and has a supporting hyperplane at every point
in its boundary, then it is convex. (See exercise 2.27.)

2.6

Dual cones and generalized inequalities

H ! SDual
es bidimensional
2.6.1
cones

H ! S es unidimensional

H
H ! S es de dimensin 0

'*(63&  Let K be a cone. The set

Figura 6.21: H \ S es una cara cuadradabidimensional


del cubo, una arista unidimensional del cubo o un
K = {y | xT y 0 for all x K}
(2.19)
vrtice de dimensin 0 del cubo

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

its orthogonal complement V = {y | y v = 0 for all v V }.


S
QRWLQWKHLQWHULRURIDQ\OLQHVHJPHQWWKDWOLHVLQ

0RUHSUHFLVHO\ LI [; \ 2 S
no tiene solucin si y slo si la tiene el sistema
DQG S 2 xy  WKHQ S D [ RU S D \ 7KHVHWRIDOOH[WUHPHSRLQWVRI S LVFDOOHGWKH
SUROH RI S 
.II /
y T A  0T ;
bT y > 0;

% & ' * / .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

8.1 Dualidad y condiciones de optimo

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)

n. Como x e y son soluciones factibles de (P) y (D), respectivamente, se tiene


Demostracio
que
Semiespacio abierto {y : bT y > 0}
s = Ax b 0, x 0
(8.11)
y
wT = cT y T A 0T , y 0.
(8.12)
Cono {y : y T A 0T }

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

Tambin se puede ver expresado alguna vez como fx .x/.


Si f 2 C 2 , se define la matriz Hessiana de f en x por Ludwig Otto Hesse, Alemania 1811-1874 como
la matriz n  n
2
3
@2 f .x/ @2 f .x/
@2 f .x/

6 2
7
@x1 @xn 7
6 @ x1 @x1 @x2
6 2
7
6 @ f .x/ @2 f .x/
@2 f .x/ 7
6
7

2
r 2 f .x/ D 6
@x2 @xn 7
6 @x2 @x1 @ x2
7:
::
::
::
::
6
7
:
6
7
:
:
:
6 2
7
2
4 @ f .x/ @2 f .x/
@ f .x/ 5
 2
@xn @x1 @xn @x2
@ xn

A esta matriz tambin se la puede ver designada como F .x/.


Para la funcin vectorial f D f1 ; f2 ; : : : ; fm T , f 2 C 1 , se define la matriz Jacobiana por Carl Gustav
Jacob Jacobi, Alemania 1804-1851 como la matriz m  n
2
3
@f1 .x/
@f1 .x/ @f1 .x/

6 @x1
@x2
@xn 7
6
7
6 @f2 .x/ @f2 .x/
@f2 .x/ 7
6
7

6
7
@x2
@xn 7 :
rf .x/ D J .x/ D 6 @x1
6
7
::
::
::
::
6
7
:
:
:
:
6
7
4 @fm .x/ @fm .x/
@fm .x/ 5

@x1
@x2
@xn

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 / ;

donde F denota la matriz Hessiana de f .


Si la funcin f W R ! R es continua y derivable k C 1 veces en un intervalo, o segmento, x; x0 , existe un
b entre x y x0 tal que
 f 00 .x0 /
2 f 000 .x0 /
x0 C
x x0 C
x
2
3
k f .kC1/ .b/
kC1
x0 C
x x0
:
.k C 1/

f .x/ D f .x0 / C f 0 .x0 / x


C

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

7.4 Convex and Concave Functions

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)

Figura 7.25: Funcin convexa


f

Teorema 7.3 Teorema del valor medio Si f W R ! R es una funcin


 continua y derivable en el intervalo
0
a; b, existe un nmero c entre a y b tal que f .c/ D f .b/ f .a/ =.b a/.

20 | CHAPTER 0 Fundamentals

f (c)

f (c)

y
x

convex
(b)
f

a c

b
(b)

(a)

Figura 7.26: Teorema del valor intermedio

Figure 0.1 Three important theorems from calculus. There

32

a and b such that: (a) f (c) = y, for any given y between f (a


0.4, the Intermediate Value Theorem (b) the instantaneous sl
(f (b) f (a))/(b a) by Theorem 0.6, the Mean Value Theor
region is equal in area to the horizontally shaded region, by

| CHAPTER 0 Fundamentals

f (c)

f (c)

a c

b
(b)

(a)

b
(c)

Figura 7.27: Teorema del valor medio

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

between 2 and 6, including


1, must be taken onFigura
by f . 7.28:
For example,
setting
Teorema de
Rolle c = 3, note that f (c) = f ( 3) = 0, and
secondly, f (2) = 1.


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

(Continuous Limits) Let f be a continuous function in a neighborhood of x0 , and assume


Z
limn xn = x0 . Thenb
f .x/ dx D f .c/.b a/:


a
lim f (xn ) = f lim xn = f (x0 ).


Teorema 7.6 Segundo teorema del valor medion


de las integrales Sin
f W R ! R es una funcin continua en
el intervalo a; b y g W R ! R una funcin integrable que no cambia de signo en a; b, existe entonces un
In other words, limits may be brought inside continuous functions.
nmero c entre a y b tal que
Z b
Z b
THEOREM 0.6 (Mean Value Theorem)
Letdx
fD
bef a.c/continuously
f .x/g.x/
g.x/ dx: differentiable function on the interval

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.

7.1 Condiciones necesarias y suficientes de primer y segundo orden que ha de cumplir un

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.

s Limits) Let fSi be


acontinuous
function
x0 , andestacionario.
assume
en x
se cumple que
rf .x  /in
D a0,neighborhood
al punto x  se leof
denomina
= x0 . Then
Teorema 7.10 Condiciones
necesarias
de segundo orden Sea  un subconjunto de Rn y una funcin f W


2


2

 !
limR,ff(x2n ) C= .fSi xlimen xun
= f (xlocal
rf .x / D 0 y r f .x / es
n mnimo
0 ). de f en , se cumple que
n
semidefinida
positiva.

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.

 ! R, f 2 C 2 . Si se cumple que rf .x  / D 0 y r 2 f .x  / es definida positiva, x  en un mnimo local


.
e Theorem) estricto
Let f debef aencontinuously
differentiable function on the interval

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 .

Mean Value Theorem to f (x) = x 2 3 on the interval [1, 3].

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.

xt statement is a special case of the Mean Value Theorem.34

eorem) Let f be a continuously differentiable function on the interval [a, b],

7.2 Teorema de la funcin implcita


Teorema 7.13 Sea x0 D x01 ; x02 ; : : : ; x0n T un punto de Rn que satisface estas condiciones:
(a) Las m funciones fi 2 C p , i D 1; 2; : : : ; m, en algn entorno de x0 , para alguna p  1.

(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 .

(ii) x0i D i .xO 0 /; i D 1; 2; : : : ; m.


O 2 .x/;
O : : : ; m .x/;
O x/
O D 0; i D 1; 2; : : : ; m.
(iii) fi .1 .x/;
Este teorema 12 es muy til para respaldar la caracterizacin de puntos ptimos en programacin matemtica
con y sin condiciones, solucin de ecuaciones lineales y no lineales y muchos otros aspectos que analizamos
en la asignatura.
Supngase que se tiene una funcin vectorial f W Rn ! Rm que cumple que fi .x/ D 0, i D 1; 2; : : : ; m:
El teorema de la funcin implcita estudia, si n m de las variables son fijas, si el problema se puede resolver
en m incgnitas. Es decir, si x1 , x2 ; : : : ; xm se pueden expresar en funcin de las restantes n m de la forma
xi D i .xmC1 ; xmC2 ; : : : ; xn / ;
A las funciones i W Rn

i D 1; 2; : : : ; m:

! R, si existen, se las denomina funciones implcitas.

Ejemplo 7.1 Consideremos la ecuacin x12 C x2 D 0. Una solucin de la misma es x1 D, x2 D 0. En un


entorno de esta solucin, sin embargo, no hay funcin  tal que x1 D .x2 /. En esta solucin no se cumple la
u
condicin .c/ del teorema de la funcin implcita. En cualquier otra solucin si existe dicha .
Ejemplo 7.2 Sea A una matriz m  n y considrese el sistema de ecuaciones lineales Ax D b. Si A se
estructura as, A D B; C , donde B es m  m, entonces se satisface la condicin .c/ del teorema de la funcin
implcita si, y slo si, B es regular. Esta condicin se corresponde con los requisitos y enunciados de la teora
de ecuaciones lineales. La funcin implcita se puede considerar como una generalizacin no lineal de la teora
u
lineal.

8 Programacin Matemtica y Optimizacin


La Programacin Matemtica (lineal y no lineal), u Optimizacin, tiene por objeto de estudio el problema
general
minimizar f .x/
x2Rn

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;

i ci .x  / D 0; para todo i 2 E [ I:


Un caso particular del problema de programacin matemtica enunciado es uno de Programacin Lineal
min. c T x
s. a

Ax D b
x  0:

As expresado se denomina en forma estndar. La regin factible, o conjunto de soluciones de un programa


lineal P D fx 2 Rn W Ax D b; x  0g, es un politopo convexo.
Teorema 8.2 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.
D EMOSTRACIN . Supongamos sin prdida de generalidad que los p primeros coeficientes del vector x son
N las p primeras columnas de
positivos y los n p ltimos cero. Si x D xN T ; 0T T , xN > 0, y designamos por A
N
la matriz A, se tiene que Ax D A xN D b.
N no son
Probemos primero la necesidad de la condicin enunciada. Supongamos que las columnas de A
N
N
N 0 tal que A w
N D 0. De
N Di
linealmente independientes. En este caso existir un vector w
h aquique A.xN h "w/
N
N
xC"
w
N
bx "w
0
00
N
N  0. Los puntos y D
A xN D b y, para un " suficientemente pequeo, que .xN "w/
yy D
0
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.

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 x0 2 P el rayo fx 2 Rn W x D x0 C d;   0g pertenece a P .
Una direccin d de un politopo P se dice extrema si no puede ponerse como combinacin lineal no negativa
de dos direcciones diferentes de P . Es decir, no existen dos direcciones d1 y d2 en P , d1 d2 , y unos
1 ; 2 > 0, tales que d D 1 d1 C 2 d2 .
36

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

donde fvi W i 2 I g es el conjunto de puntos extremos o vrtices de P ,


direccin de P , o d D 0.

i 2I

i D 1, i  0, y d, o es una

D EMOSTRACIN . La haremos por induccin en p, nmero de coeficientes positivos de x. Si p D 0, el teorema


es obvio, pues x D 0 es un punto extremo. Supongamos que se cumple lo enunciado para puntos con menos
de p coeficientes positivos y que x tiene p coeficientes positivos.
Si x es un punto extremo, como x D vi para algn i 2 I , el teorema es obvio. Supongamos por tanto que
x no es un punto extremo. En este caso existe un vector w 0, con wi D 0 si xi D 0, tal que Aw D 0. Se
pueden dar los tres casos siguientes:
(a) Que w tenga coeficientes positivos y negativos. Consideremos los puntos x. / D x C  w en la recta que
pasa por x que determina w, y sean  0 y  00 el menor valor positivo y mayor valor negativo, respectivamente, de  para los que x. / tiene al menos un coeficiente cero ms que los que tiene x. Los puntos
x 0 D x. 0 / y x 00 D x. 00 / pertenecen claramente a P por lo que, por la hiptesis de induccin, al tener
un coeficiente nulo ms, se pueden expresar segn lo enunciado en el teorema. En consecuencia, como x
est en la recta que une x 0 y x 00 , se puede expresar de la siguiente manera
x D x 0 C .1 /x 00
!
X
D
0i vi C d 0 C .1
i 2I

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;

se deduce entonces que


i D 0i C .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;

quedando probado que x se puede expresar de la forma enunciada.


(b) Que w  0. Definamos x 0 como en el caso (a). El punto x se puede expresar como x D x 0 C  0 . w/,
con  0 > 0. Como x 0 se puede expresar por induccin en la forma deseada y . w/ es una direccin en
P , x tambin se puede expresar de la forma enunciada.
(c) Que w  0. Este caso se prueba igual que el caso (b) sin ms que sustituir x 0 ,  0 y w por x 00 ,  00 y w,
respectivamente.
Corolario 8.4 Si el politopo P D fx 2 Rn W Ax D b; x  0g es no vaco, tiene al menos un punto extremo
o vrtice.
37

x4
x3
x
x5

x2
y
x1

Figura 8.30: Representacin de un punto de un politopo (poliedro) como combinacin convexa de puntos
extremos

Corolario 8.5 Si el politopo P D fx 2 Rn W Ax D b; x  0g es cerrado y acotado (es un poliedro), todo


punto x 2 P se puede expresar como combinacin convexa de sus puntos extremos.
Teorema 8.6 Teorema fundamental de la Programacin Lineal Dado un politopo no vaco P D fx 2 Rn W
Ax D b; x  0g de soluciones de un PL, el valor mnimo de la funcin objetivo c T x, para x 2 P , se alcanza
en un punto extremo de P (solucin bsica factible ptima), o c T x no est acotada inferiormente en P .
D EMOSTRACIN . Sea V D fvi W i 2 I g el conjunto de puntos extremos de P . Como P es no vaco, al menos
tiene un punto extremo vi 2 V . De acuerdo con el teorema de la representacin, o el politopo P posee una
direccin d tal que c T d < 0, o tal direccin no existe. Consideremos estos dos casos.
(a) El politopo P tiene una direccin d tal que c T d < 0. En este caso P no est acotado y el valor de la
funcin objetivo tiende a 1 en la direccin d.
(b) El politopo P no tiene una direccin d tal que c T d < 0. En este caso cualquier x 2 P se puede expresar
de una de las dos maneras siguientes:
X
X
xD
i vi
donde
i D 1; i  0 o
i 2I

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

se alcanza en un punto extremo de P : vmi n .

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

Chapter 14 Dual and Cutting Plane Methods

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)

Fig. 14.1 Hyperplane below z

Figura 8.31: Hiperplano por debajo de !.z/.


Para expresar esta propiedad se define la funcin dual en el cono positivo de Rp como
n
o
./ D Knf f .x/ C Tg.x/ W x 2  :
39

(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 // D Knf ff .x/ C .1 C .1

/2 /T g.x/ W x 2 g

 Knf ff .x1 / C T1 g.1 / W x1 2 g


C Knf f.1

/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

 Knf ff .x/ C T g.x/ W g.x/  0; x 2 g


 Knf ff .x/ W g.x/  0; x 2 g D f  :

Adoptando e supremos de .x/ se tiene que    f  .


De acuerdo con este resultado la funcin dual proporciona cotas inferiores del valor ptimo de f .
La funcin dual tiene una interpretacin geomtrica interesante. Si se considera el vector 1 T T 2 RpC1 ,
con   0 y la constante c, el conjunto de vectores r zT T 2 RpC1 tales que el producto interior 1 T r zT T 
r C T z D c define un hiperplano en RpC1 . Para diferentes valores de c se tiene diferentes hiperplanos, todos
paralelos entre si.
Para un vector dado 1 T T consideremos el hiperplano ms bajo posible de esa forma que casi toca
soporta la regin de encima de la funcin primal del problema (1). Supongamos que x1 define ese punto de
contacto y que r D f .x1 / y z D g.x1 /. Se tendr que c D f .x1 / C T b.x1 / D ./.
Ese hiperplano se cruzar con el eje vertical en un punto de la forma r0 0T . Este punto tambin satisfar
que 1 T T r0 0T D c D ./. Lo que lleva a que c D r0 . Por lo que ese punto dar ./ directamente.
Chapter
Dual and
Cutting
Plane
Methods definido por  que justo toca el epigrafo
La funcin 438
dual en 
es igual14al punto
donde
se cruzan
el hiperplano
el conjunto de puntos situados por encima del grfico de una funcin de la funcin primal.
w (z)

gap de dualidad

hiperplano ms alto
z

Fig. 14.2 The highest hyperplane

Figura 8.32: Hiperplano ms alto.

Furthermore, this intercept (and dual function value) is maximized by the


Lagrange multiplier which corresponds 40
to the largest possible intercept, at a point
no higher than the optimal value f . See Fig. 14.2.
By introducing convexity assumptions, the foregoing analysis can be
strengthened to give the strong duality theorem, with no duality gap when the

constraints of the form hx = 0, as in Section 11.9.


Specifically, we consider the problem
maximize

fx

(4)

Adems, como indica la figura 8.32,


ese punto
cruce
valorde
subject
to de
hx
= 0 (y elgx
0 la funcin dual) se maximiza con el
multiplicador de Lagrange que corresponde al plano ms alto posible que intercepta el eje vertical, siendo el
x
punto de esa intercepcin menor o igual que el valor
ptimo f  . La diferencia constituye el gap de dualidad.
Si se incorporan suposiciones de convexidad el anlisis que estamos haciendo se completa con el teorema
where
h iscuando
affineno
of hay
dimension
m, g is convex
of dimension
p, planos
and  con
is aelconvex
de la dualidad
fuerte
gap de dualidad
y la interseccin
de esos
eje vertical es el

set.
propio f . Se puede ver en la figura 8.33.
r

w (z)

f * =

hiperplano ptimo

Fig. 14.3 The strong duality theorem. There is no duality gap

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)

donde h W Rm ! Rn es afn, g W Rp ! Rn es convexa y  es convexo. La funcin dual de este problema es


.; / D Knf ff .x/ C Th.x/ C Tg.x/ W x 2 g;

(5)

y   D sup f.; / W  2 Rm ;  2 Rp ;   0g.


Un punto x que satisfaga todas las condiciones que se cumplen se dice regular si los vectores gradiente del
conjunto de condiciones activas en ese punto son linealmente independientes. Una funcin h.x/ es regular con
respecto a  si el conjunto C D fy W h.x/ D y para algn x 2 g de Rn contiene una bola abierta en torno
a 0; es decir, C contiene un conjunto de la forma fy W jyj < "g para algn " > 0. Esto viene a decir que
h.x/ puede hacerse 0 y variar arbitrariamente en torno a 0 en cualquier direccin. Esta condicin es similar a
la definicin de punto regular en el contexto de las condiciones de ptimo de primer orden.
Teorema 8.9 Teorema de la dualidad fuerte Supongamos que en el problema (4) h es regular con respecto a
 y que existe un punto x 2  en el que h.x/ D 0 y g.x/  0.
Supongamos que el problema tiene como solucin x  con un valor de la funcin objetivo f .x  / D f  .
Entonces, para todo  y todo   0 se cumple que
   f :
Adems, existen unos  y   0 tales que
.; / D f 
y por lo tanto   D f  . Los vectores  y  son los multiplicadores de Lagrange del problema.
41

8.1.1 Dualidad Lagrangiana


Es una forma de denominar lo que acabamos de exponer. La funcin de Lagrange del problema (4) escrito
as
minimizar f .x/
x2Rn

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

q.; / D Knf L.x; ; /:


x

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;

que es siempre convexo.

8.1.2 Dualidad de Wolfe


Es ligeramente distinta de las anteriores. Es la que sirve de referencia a los mtodos de punto interior que se
ven en el curso. El problema dual es
max. L.x; ; /
s. a rx L.x; ; / D 0
  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:

la funcin de Lagrange es L.x; ; / D c T x


Su problema dual

max. q.; / D Knf fL.x; ; /g D T b C Knfx


s. a   0:

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:

El dual de Wolfe sera exactamente el mismo. El gap de dualidad es




c T x T b D c T x T Ax D x T c A T  D x T :
42

9 Enfoques de clculo diferencial, clculo de variaciones y principios a tener en


cuenta para estudiar el mtodo de los elementos finitos, FEM, para resolver
ecuaciones en derivadas parciales
Desde tiempos de C.F. Gauss, Alemania 1777-1855 y W. Thompson Irlanda, 1775-1833, la equivalencia
entre los problemas de ecuaciones en derivadas parciales con condiciones de contorno y los de clculo de
variaciones ha ocupado un puesto destacado en el anlisis matemtico. En un principio el esfuerzo se concentr
en los aspectos tericos de los problemas; posteriormente, dos fsicos, Lord Rayleigh John William Strutt,
Reino Unido 1842-1919 y Walther Ritz, Suiza 1878-1909, independientemente al parecer, concibieron la idea
de utilizar esa equivalencia para calcular numricamente soluciones de problemas habituales de fsica mediante
la sustitucin de los problemas de clculo de variaciones por otros ms simples de obtencin de extremos con
un nmero finito de parmetros por determinar.
Sus mtodos atrajeron pronto a ingenieros y fsicos los principios fsicos de la mecnica son ms sugestivos que las ecuaciones diferenciales y se empezaron a aplicar a muchos problemas cercanos. El resultado era
lgica consecuencia del esquema conceptual de cmo se tratan en anlisis matemtico y en muchos aspectos
de la vida cotidiana los problemas difciles: Un problema P con solucin S se reemplaza por otro ms o menos relacionado o prximo, Pn , ms simple de resolver, cuya solucin es Sn . Luego se mejora la aproximacin
Pn de P de tal forma que la solucin Sn , paso a paso, tienda a la deseada S . Lo esencial es escoger la sucesin
de aproximaciones Pn de una manera adecuada.
En la asignatura de matemticas para la ingeniera elctrica abordaremos uno de los problemas ms interesantes y con ms posibilidades de futuro que contemplan las aplicaciones de las matemticas para simular y
resolver muchos problemas de la vida cotidiana. En concreto modelos matemticos expresados en forma de
ecuaciones diferenciales e integrales que reproducen procesos y fenmenos complejos de la fsica y otras ciencias naturales y sociales cuyos orgenes y evolucin suelen estar distribuidos en el tiempo y en el espacio. Se
modelan de esta forma la propagacin del sonido o del calor, la electrosttica, la electrodinmica, la dinmica
de fluidos, la elasticidad, la mecnica cuntica, las emisiones de contaminantes, los fenmenos meteorolgicos,
la valoracin de opciones y derivados financieros y muchos otros. El enfoque para resolverlos de forma prctica
sigue exactamente el principio enunciado ms arriba.
La idea esencial que seguiremos en estas notas es la de convertir el problema con ecuaciones diferenciales, integrales o ecuaciones en derivadas parciales, suponiendo que tiene solucin con unas
determinadas caractersticas, en uno formulado en trminos de clculo de variaciones de funciones
continuas la minimizacin de un funcional para as caracterizar en qu condiciones se da una
solucin u ptimo del mismo. Luego se discretiza ese problema continuo con un nmero infinito
de grados de libertad mediante un problema discreto, o sistema de ecuaciones, con un nmero de
variables finito y ms fcil de resolver y se resuelve mediante alguna de las diversas tcnicas que
iremos presentando en el curso de la asignatura.
Cuando se empieza a trabajar y aprender mtodos numricos para resolver problemas matemticos el de
las diferencias finitas sigue ideas muy intuitivas: simplemente se aproxima una derivada de una curva en un
punto de ella por una lnea secante. Si se estudia el mtodo del volumen finito, tambin su idea es bastante
sencilla: cada elemento de volumen es simplemente un pequeo equilibrio del flujo o de fuerzas. El mtodo de
los elementos finitos sigue esa senda ms o menos, con alguna pequea modificacin.
La base matemtica para el mtodo de los elementos finitos se encuentra en el entorno de los espacios
de Hilbert. Un espacio de Hilbert es una manera de tratar una funcin como un vector, por lo que podemos
hacer algunos trucos de matemticas vectoriales con l. Recordemos que un vector es una serie de valores, o
escalares, multiplicados por un conjunto de vectores de una base ortogonal (como los vectores unitarios que
definen la direcciones x, y y z, o los i , j y k). Podemos utilizar una tcnica paralela para definir una funcin.
Primeramente seleccionamos un conjunto de funciones de base en vez de aquellos vectores (esas funciones
deben ser ortogonales entre s) y luego definimos la funcin original como una suma de unos coeficientes

43

multiplicados por las funciones de la base: de esta forma


uD

1
X

k k ;

kD1

donde cada una de las k es una funcin de la base.


El siguiente paso es convertir nuestra ecuacin diferencial en algo llamado su formulacin dbil. Esto se
hace bsicamente multiplicando por una funcin de prueba y luego integrando en el espacio. Sin entrar en
los detalles de momento, se trata de hacer lo mnimo necesario para convertir nuestra ecuacin diferencial en
algo en lo que podamos utilizar nuestras matemticas de espacios vectoriales. Esencialmente, donde exista una
forma de "producto interior", en nuestro caso con funciones como la de prueba en vez de vectores, y la solucin.
Este producto interior ser una integral y podremos usar integracin por partes para convertirlo en formatos ms
manejables.
Despus nos desharemos de alguna manera de la abstraccin empleada y comprobaremos que realmente
estamos tratando con un espacio vectorial de dimensin finita. As, los vectores funcin no son infinitos ni
estamos sumando infinitos trminos. Este proceso es lo que se entiende por discretizacin en las tcnicas de
los elementos finitos. La discretizacin que se utiliza est determinada
por una malla mesh , o retcula, y
FEA Fundamentals
FEA
Fundamentals
normalmente se emplean dos funciones de base a cada lado de un elemento de la malla (una retcula de 20  20
da 441
funciones
base nicas). Utilizaremos un nmero
finito de funciones
para representar la solucin de
Discretize
the domain
Define
the domain

MESH

Figura 9.34: Discretizacin de una pieza sencilla.


nuestra ecuacin diferencial, de esta manera
0

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.

9.1 Solucin de unaLinear


ecuacin triangular
en derivadas parciales
elements
Consideraremos en lo que sigue el siguiente problema de una ecuacin en derivadas parciales elptica de
segundo orden con condiciones de contorno:
1

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.

Esta forma de formularlo se denomina forma fuerte.

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 escalar u.x; y/ W R2 ! R, definida en el dominio , es la incgnita de este problema.

 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.

9.1.1 El problema en forma dbil o variacional


Siguiendo cada uno de los pasos de la estrategia enunciada para resolver este problema, vamos a formularlo
de una forma diferente de la original denominada forma dbil o forma variacional.
Para ello utilizaremos el teorema de Green por George Green, Reino Unido 1793-1841, a menudo
denominado primera frmula o identidad de Green, derivada del teorema de la divergencia, que no es sino una
forma de integracin por partes. Aplicado a nuestro caso dice que
Z
Z
Z
.u/ v C
.@n u/ v:
ru  rv D


La funcin v es una funcin de prueba, continua, en principio definida en  D  [ . En esa expresin


hay dos tipos de integrales: las dos del miembro de la izquierda son integrales de superficie, en el dominio
. La del derecho es una integral lineal en el borde o frontera . Hemos prescindido de los diferenciales
correspondientes para compactar la notacin. El resultado sera aplicable tambin a tres dimensiones: las dos
integrales de la izquierda seran de volumen; la de la derecha de superficie. El punto de la segunda integral del
@v
@v
miembro de la izquierda se refiere al producto interior de dos vectores, es decir ru  rv D @u
C @u
.
@x @x
@y @y
La identidad expresada es una consecuencia del resultado del teorema de la divergencia que dice que para un
subconjunto V 2 Rn en el caso de tres dimensiones V representa un volumen como el de la figura 9.36,
en principio compacto, de superficie o borde S continua a trozos (expresada por @V D S ), si F es un campo

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

Aplicado a una funcin escalar f W


! R y un vector constante c distinto de cero

c  rf d V C
f .r  c/ d V D
.cf /  d S;
Rn

donde d S expresa de forma compacta ndS .


Haciendo f D ru y c D v se tiene la expresin anterior de la primera identidad de Green.
Si sustituimos u D f cu en la expresin obtenida a partir de la identidad de Green en donde se integra
en  y que @n u D g1 en N , despus de reordenar un poco se llega a
Z
Z
Z
Z
Z
.@n u/ v:
ru  rv C c
uv D
fv C
g1 v C


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:

Determinar una funcin u tal que


u D g0 en D Z
Z
Z


ru  rv C c

uv D

fv C

g1 v; para todo v tal que v D 0 en la frontera D :

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 :


Su estricta definicin requerira la introduccin de la integral de Lebesgue14 , la mtrica o medida deRLebesgue y


el espacio de Lebesgue por Henr Lon Lebesgue, Francia 1875-1941. Simplificadamente, si  f .x/ dx
1=p
R
es la integral de Lebesgue de f .x/ y se define la norma kf kLp ./ D  f p dx
, para 1  p < 1, los
espacios de Lebesgue son


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

introducido antes en estos apuntes.


generaliza la nocin de la integral de Riemann extendiendo el concepto de rea bajo una curva para incluir funciones discon-

14 Que

tinuas.

15 Una generalizacin del concepto de derivada a

de Lebesgue en un dominio dado  de Lp ./.


16 Si toda sucesin de Cauchy en l tiene lmite.

funciones no necesariamente derivables pero si integrables localmente en el sentido

47

lo tanto sea un espacio de Banach. La norma correspondiente de este espacio es


kuk1; D

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:

Determinar una funcin u 2 H 1 ./ tal que


u
Z D g0 en D Z
Z
Z


ru  rv C c

uv D

fv C

g1 v; para todo v 2 H1D ./:

La condicin que se impone a la funcin de prueba, v 2 H1D ./, es la misma que


v 2 H 1 ./ tal que v D 0 en D ;
lo que quiere decir que v est en el mismo espacio de la funcin que se busca u pero satisface una versin
homognea de la condicin esencial de borde o frontera.
Los datos del problema estn en los siguientes espacios f 2 L2 ./, g1 2 L2 .N / y g0 2 H 1=2 .D /.
El segundo espacio restringe el dominio de las integrales en la lnea que marca N en vez de en . Que
g0 2 H 1=2 .D / quiere decir que existe al menos una funcin u0 2 H 1 ./ tal nque u0 D g0 en D .oDe
hecho, todas las dems que cumplen esta condicin pertenecen a u0 C H1D ./ D u0 C vjv 2 H1D ./ D


w 2 H 1 ./jw D g0 en D . Que g0 pertenezca a H 1=2 .D / significa que no se busca la solucin en el
conjunto vaco.

9.1.3 Discretizacin del problema en un subespacio de elementos finitos lineales


Como venimos anunciando, la resolucin del problema que estudiamos con el concurso de elementos finitos est basada en la aproximacin del espacio H 1 ./ mediante funciones polinomiales sencillas por tramos
o trozos.
Para conseguirlo se utiliza una particin del dominio de clculo  en subdominios, a los que se denomina
mallado. El ms sencillo es aquel en el que  es un intervalo de la recta real, por ejemplo el abierto .0; 1/, en
el que se tiene la particin 0 D x0 < x1 <    < xn D 1 dividida en subintervalos Ij D .xj 1 ; xj / de longitud
hj D xj xj 1 , j D 1; : : : ; n. Si h D mKax hj y Vh es el espacio lineal de funciones v tal que v 2 C 0 .0; 1/,
vjxi 1 ;xi es un polinomio lineal, i D 1; : : : ; n, perteneciente por tanto a P1 , y v.0/ D 0.
Para cada i D 1; : : : ; n se define la funcin i de tal forma que
(
1 si i D j
i .xj / D ij D
;
0 si i j
delta de Kronecker por Leopold Kronecker, Polonia 1823-Alemania 1891, segn se indica en la figura 9.37.
Se tiene que fi W 1  i  ng es una base de Vh . El conjunto fi g es una base nodal de Vh y fv.xi /g son los
valores nodales de una funcin v. Los puntos .xi / se denominan nodos o nudos.
0
Dada una funcin
Pn v 2 C .0; 1/, el interpolante, o funcin de interpolacin, vh 2 Vh de v se obtiene
mediante vh D i D1 v.xi /i como se aprecia en la figura 9.38. Si v 2 Vh ) v D vi .
Otra particin quizs la ms utilizada consiste en triangularizar un dominio de dos dimensiones, como
, en pequeos tringulos que lo cubran enteramente. En la figura 9.39 se ve la correspondiente al dominio con
el que venimos experimentando en estas notas.
48

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-

ment that i (xj ) = ij = the Kronecker delta, as shown in Fig. 0.1.


Let 0 = x0 < x1 < ... < xn = 1 be a partition of [0, 1], and let S be the
linear space ofi functions v such that
i) v C 0 ([0, 1])
ii) v|[xi1 ,xi ] is a linear polynomial, i = 1, ..., n, and
iii) v(0) = 0.
We will see later that S V . For each i = 1, .., n dene i by the requirexi
1 0.1.
as shown in Fig.
ment that i0(xj ) = ij = the Kronecker delta,

Vh

Figura 9.37: Funcin de base lineal por tramos.


Fig. 0.1. piecewise linear basis function i

(0.4.1) Lemma. {i : 1 i n} is a basis for S.


(0.4.2) Remark. {i } is called a nodal basisx for S, and {v(xi )} are the nodal
0
1
values of a function v. (The points {xi } arei called the nodes.)
n
Figura
mediante
vh de una funcin
basecilineal
Proof.
The9.38:
set Aproximacin
{i } is linearly
independent
since dei=1
i (xjpor
) =tramos.
0 implies
Fig.
0.1.
piecewise
linear
basis
function

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 Ch u
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.

El aspecto de una de estas funciones es el de la figura9.41. Si un tringulo


K no tiene a xi como uno de sus


(0.4.5) Theorem. Let h = max1in xi xi1 . Then


u uI E Ch u

for all u V , where C is independent of h and u.

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

uh .xj /j .xi / D 15 uh .xj /j i D


j D1

M
X

uh .xj /j :

j D1

El conjunto fi ; i D 1; : : : ; M g es una base de Vh .


Hasta ahora no hemos tenido en cuenta si los nodos de la frontera estn en el segmento de borde tipo Dirichlet
o Neumann. Si tenamos hasta ahora el espacio


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 ;

ahora nos interesa

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

Dir D f9;1 13; 14; 15;1 17; 18g


HD () = {v H () | v = 0

on D }.

Ind D f1; 2; 3; 4; 5; 6; 7; 8; 10; 11; 12; 16g :


We might be interested in the space
VhD = Vh H1D () = {v
h Vh | vh = 0,
50
16

on D }.

Entonces, un elemento de Vh se podra escribir como


X
X
uh D
uj j C
uj j ;
j 2Ind
j 2Dir
y uno de VhD as
uh D

uj D uh .xj /

uj j :

j 2Ind

9.1.4 Reformulacin del problema como un sistema de ecuaciones lineales


Recapitulando, el mtodo nos ha hecho llegar a la siguiente formulacin para determinar la funcin uh

Determinar una funcin uh 2 Vh tal que


uh .xj / D g0 .xj / 8j 2 Dir
Z
Z
Z
Z
ruh  ri C c
uh i D
f i C


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

Finalmente incorporamos esta expresin en la formulacin variacional discreta:


Z
Z
Z
Z
ruh  ri C c
uh i D
f i C
g 1 i ;


linealizando, teniendo en cuenta que


ruh D

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.

9.2 Algo sobre funcionales y clculo de variaciones


Un funcional es una funcin que tiene funciones como argumento a las que asigna un valor real. Es decir,
una funcin cuyo dominio es un conjunto de funciones. En la figura 9.43 se esquematiza la diferencia entre una
funcin ordinaria Chapter
y un funcional.
1: VARIATIONAL CALCULUS OVERVIEW
Input: argument x
(independent
variable)

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:

El funcional bsico unidimensional lineal ms tpico tiene la forma


J.y/ D

b =
J [y]



F x, y(x), y  (x) ,
0

x = [a, b],

F ax; y.x/; y .x/ dx;

a b,

y(a) = ya ,

x D a; b; a  b;

y(b) = yb .

(1.3)

y.a/ D yOa ; y.b/ D yOb :

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

En palabras, la funcin y D y.x/ est definida en el segmento x 2 a; b, a  b, de la recta real. Dado un


x, y.x/ se supone real y nico. Adems, y.x/ es continua y derivable por lo que y 0 .x/ existe al igual que
la integral enunciada. La funcin debe satisfacer en x D a y en x D b unas determinadas condiciones de
contorno: concretamente, yOa D y.a/ y yOb D y.b/.
As era cmo la palabra funcional fue utilizada inicialmente en el clculo de variaciones, donde el integrando
a ser minimizado deba ser un funcional, aplicada a una todava desconocida funcin que satisfaca solamente
una cierta condicin de contorno, y condiciones de derivabilidad.
Otro funcional lineal habitual es la funcin delta de Dirac por Paul Adrien Maurice Dirac, Reino Unido,
1902-1984
t f ./ D f .t /
Rb
que se puede escribir tambin como t f ./ D a f .x/.x t / dt.
Un problema de clculo de variaciones o problema variacional tpico sera el de encontrar la funcin y 2
a; b ! R que minimiza el funcional anterior, J.y/, con las condiciones de contorno indicadas.
En varios campos de la ingeniera, la fsica matemtica, el reconocimiento de imgenes y otros muchos, el
clculo de variaciones es un interesante problema matemtico consistente en buscar mximos y mnimos (o
ms generalmente extremos relativos) de funcionales continuos definidos sobre algn espacio funcional. Constituyen una generalizacin del clculo elemental de mximos y mnimos de funciones reales de una variable.
Muchos problemas de este tipo17 son fciles de formular pero sus soluciones implican a menudo, a su vez,
difciles procedimientos de clculo diferencial, los cuales generalmente suponen usar ecuaciones diferenciales
ordinarias Ordinary Differential Equations, as como las ecuaciones (diferenciales) en derivadas parciales
1.2 FUNCTIONALS VERSUS FUNCTIONS
Partial Differential Equations.
En la figura 9.44 se pueden ver algunos problemas clsicos de funcionales en una dimensin.
y

;;;;;
;;;;;
;;;;;
;;;;;

(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

de funciones permitidas y otras no permitidas, grosso


 modo.
b
Si se considera un funcional general
A=
y(x) d x.
Z x2 a
I D in Figure
F .x; 1.1(b).
y; y 0 / dx
See Figure 1.2(a). This has the form illustrated

(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)

Chapter 1: VARIATIONAL CALCULUS OVERVIEW

(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:

@yQ d " is @intended


yQ 0 d " to model
Real or Complex Values. If thex1functional
a physical problem, the choice
"D0
0
0
should
be
obvious.
Else
it
is
a
fielders
choice
re
generality.
Dado que d y=d
Q " D , que d yQ =d " D  y que quitar las tildes de yQ y de yQ 0 en las derivadas de F es lo mismo
que hacer
0 segn se
requera ms
arriba, la
ecuacin
se puede reescribir as:
Figure
1.3" D
illustrates
admissible
function
classes
foranterior
the
 basicfunctional (1.3). Three requirements
Z x12 
@F the function must be continuous and possess
are laid down: (1) y(x) is real and C [a,@Fb], whence
C 0 0 dx D 0:
@y
@y
continuous first derivatives; (2) satisfy
BC at both ends; and (3) be single valued. All
x1 essential
curves
drawn
in Figure
1.3(a)trmino,
are admissible in this sense, whereas those in Figure 1.3(b) are not;
Integrando
por partes
el segundo
x2 Z
see figure legend as to why.


Z x2

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

Sometimes single valuedness may be often restored


through@Fa parametric representation in non-Cartesian coordinates.
d @F
D0
This is often the case with isoperimetric problems.
0

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

THEOREM 15.1 (Fundamental Lemma of the Calculus of Variations)


Suppose M (x) is a continuous function dened on the interval a x b. Suppose further
that for every continuous function, (x),
9.2.1 Proposiciones esenciales

b

(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

Se cumple entonces que


M.x/ D 0 para todo x 2 a; b:

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

En consecuencia, M.x/ > M.x0 /=2


en ese
figura 9.46,

0
(x) = >00

0 > 0
.x/ D
0

intervalo. Escojamos una funcin .x/ tal que, como se ve en la

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:

See the Figure 15.17. Then

M( x0 )
M( x0)
2

.x/

x 0

a
FIGURE 15.17

Se tiene entonces que b

0=

0D

x 0 +

Figura 9.46: Lema fundamental del Clculo de Variaciones.

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

lo cual es una contradiccin.


Si M.x0 / < 0 el argumento sera idntico sustituyendo M.x/ por M.x/. Si x0 D a o x0 D b la demostracin sera casi igual con pequeas modificaciones en la lnea argumental.
Corolario 9.2 El resultado del Lema 9.1 sigue siendo aplicable si
.a/ D .b/ D 0:

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/'n .x/ dx D 0 para n D 1; 2; : : :

Se cumple entonces que M.x/ D 0 para todo x 2 a; b.


Lema 9.4 Sea M.x/ una funcin continua definida en el intervalo a  x  b. Supongamos que para
cualquier funcin continua .x/, de derivada continua, se tiene que
Z

M.x/ 0 .x/ dx D 0

para .a/ D .b/ D 0. Se cumple entonces que


M.x/ D constante para todo x 2 a; b:
Lema 9.5 Sea M.x/ una funcin continua definida en el intervalo a  x  b. Supongamos que para
cualquier funcin continua .x/, de derivadas continuas al menos hasta segundo grado, se tiene que
Z

M.x/ 00 .x/ dx D 0

para .a/ D .b/ D 0 y  0 .a/ D  0 .b/ D 0. Se cumple entonces que


M.x/ D c0 C c1 x para todo x 2 a; b;
donde c0 y c1 son constantes.

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

ROCKAFELLAR , R.T. 1970. Convex Analysis. Princeton University Press.


S AUER , T. 2013. Anlisis numrico. Segunda edicin. Pearson educacin.
S AYAS , F.J. 2015. A gentle introduction to the Finite Element Method.
W OLFE , P. 1961. A Duality Theorem for Non-Linear Programming. Quart. Appl. Math. 19, N 3.

57

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Fundamentos
de la

Ingeniera Matemtica y sus Algoritmos

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_fundamentos_2016.pdf

1/118

2/118

ndice


Introduccin y conceptos bsicos

Representacin de un nmero en formato estndar IEEE

Aritmtica en un ordenador

Evaluacin de errores

Clculo numrico con matrices

Producto de una matriz por un vector

Producto de dos matrices

Normas


Vectoriales

Matriciales

Introduccin

3/118

En nuestro quehacer diario, consciente e inconscientemente, realizamos muchas


operaciones numricas que confiamos ciegamente a los algoritmos numricos,
ordenadores y mquinas a nuestro alcance.

Como ingenieros1, en importante que conozcamos qu hacen y cmo esos


algoritmos, o qu procedimientos formales siguen, pues son la fuente de muchas
posibles mejoras, as como de problemas prcticos de interpretacin y precisin
de los resultados.

Calculemos, por ejemplo, el valor de un polinomio,


p.x/ D 2x 4 C 3x 3
en el punto x D 1=2.

Pues somos esencialmente los que los producimos.

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?

De acuerdo con nuestros conocimientos de este momento, la primera forma que


se nos puede ocurrir para evaluar el polinomio en el punto dado procedera ms
o menos as:

p 21 D 2  12  21  12  12 C 3  12  12  12 3  21  12 C 5  21 1 D 54 .

El nmero total de multiplicaciones que realizamos es 10; el de sumas/restas, 4.

5/118

Una segunda forma podra consistir en hacer lo siguiente



1 2
1
1
 2 D 2 D 14 ! y guardarlo
2


1 2
1 3
1
D

! y guardarlo
2
2
2


1 4
1 3
1

D
! y guardarlo
2
2
2
y luego

1
2

D2


1 4
2

C3


1 3
2

3


1 2
2

C 5  21

1 D 45 .

El nmero total de multiplicaciones en este caso es 3, para las potencias de 12 ,


ms 4 despus. Las sumas y restas son las mismas.

Es evidente que si esto hay que hacerlo muchas veces, el ahorro en tiempo de
esta segunda forma de proceder puede ser muy significativo, no?

6/118

Se puede hacer mejor an? Consideremos el polinomio reescrito as:


p.x/ D
D
D
D


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

y evalumoslo de dentro hacia afuera

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

Esta forma de actuar se conoce como regla de Horner, o multiplicacin


anidada, por William George Horner, Inglaterra, 1786-1837.

Necesita 4 multiplicaciones y 4 sumas. Si el polinomio es de grado d , se


necesitarn d multiplicaciones y d sumas.

Lo que acabamos de exponer es el paradigma de una de las cuestiones bsicas


que vamos a destacar recurrentemente en este curso:

8/118

Los ordenadores son muy rpidos haciendo cosas muy sencillas.

Con ellos, las cosas muy sencillas, sobre todo las que se repiten
indefinidamente, hay que hacerlas muy bien y eficazmente: ingeniera.

La mejor forma de hacer ciertas cosas y clculos no siempre es la ms obvia.


La mayora de las ideas fundamentales de la ciencia son
esencialmente sencillas y, por regla general, pueden ser
expresadas en un lenguaje comprensible para todos
Albert Einstein. 1879-1955.
En igualdad de condiciones la solucin ms sencilla es
probablemente la correcta
Guillermo de Ockham. 1285-1347.

Para terminar con estas consideraciones previas, cualquier polinomio como


c1 C c2x C c3x 2 C c4x 3 C c5x 4
se puede escribir as




c1 C x c2 C x c3 C x c4 C x.c5/
;
e incluso as

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.

Este cdigoa de Matlab


hace el trabajo al que nos
hemos referido.

El primero de muchos del curso

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

Hagmoslo funcionar de varias maneras en el escritorio de Matlab:


>> Horner(4,[-1 5 -3 3 2],1/2)
ans =
1.250000000000000
>> Horner(4,[-1 5 -3 3 2],1/2,[0 0 0 0])
ans =
1.250000000000000
>> Horner(4,[-1 5 -3 3 2],[-2 -1 0 1 2])
ans =
-15
-10
-1
6
53

Algunos conceptos bsicos


Nonlinear optimization: motivation, past and perspectives

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

De Muhammad ibn Musa al-Khwarizmi, sabio persa considerado April


uno2009
de(Olgebra GHOiUDEHalabr
UHL
los30padres
)
/ 323 del lgebra (
que escribi entre los aos 800 y 825 la obra Quitab Al Jabr Al Mugabala,
donde se recoga el sistema de
PDWHPiWLFDTXHHVWXGLDODFRPELQDFLyQ
numeracin indio y el concepto de cero.
D FLHUWDV UHJODV 2ULJLQDOPHQWH HVRV

Philippe Toint (Namur)

12/118

La velocidad de los algoritmos para realizar operaciones numricas y sus


prestaciones y precisin dependen en gran medida de la exactitud con la que se
pueden representar los nmeros, datos y las operaciones en la mquina donde se
han de ejecutar.

Para disear algoritmos y codificarlos en un lenguaje que interprete la mquina


es aconsejable conocer cmo opera la aritmtica de esa mquina y los
parmetros esenciales de su sistema de numeracin.

Los ordenadores y calculadoras guardan informacin numrica y alfanumrica


que se les suministran mediante una aproximacin numrica, o cdigo, de los
mismos.

En general, lo hacen empaquetndolos en grupos de bits unidad bsica,


denominados bytes (grupos de 8 bits).

13/118

Los ordenadores tienen varias formas estndar de representar un dato numrico:





Formato entero sin decimales (integer) o


Formato de coma o punto flotante (real): nuestro formato
decimal3.

Adems del integer y el real, se gestionan otros tipos de datos:


char/string Para almacenar o manipular caracteres alfanumricos
logical Para designar variables o valores que slo admiten el 1 o el 0 o el
verdadero o falso
single/double Para almacenar variables o datos numricos en precisin
sencilla 4 bytes o doble 8 bytes. Lo habitual en Matlab es double
complex Para almacenar variables complejas, cuando no se quiere guardar la
parte real y la imaginaria por separado.
3

De origen indo-arbigo entre los siglos IV y VI, transmitido a Europa gracias a la Escuela de Kerala, India.

14/118

La representacin de un nmero entero en un ordenador en formato entero es


exacta, siempre y cuando su valor est comprendido dentro de los lmites que
admite la mquina.

En formato real slo es posible representar un conjunto finito de nmeros, F , de


la recta real (F  R), formado por elementos de la forma


dp
d1 d2
C 2 C    C p  e
f D

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).

La ristra de dgitos d1, d2, : : :, dp se denomina mantisa.

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

Parmetros de los sistemas de numeracin de varias mquinas

16/118

Normalizacin


Un sistema de numeracin se dice normalizado si el primer dgito de la mantisa


es siempre distinto de cero al representar cualquier nmero que no es cero.
Ventajas: I. En binario el primer dgito es siempre 1, por lo que no es necesario
guardarlo. Cualquier nmero sera 1;bbb : : : bb  2p .
II. Una nica representacin de un nmero.

III. No se malgastan dgitos (ceros) a la izquierda del primero no


cero.


En un sistema normalizado un nmero distinto de cero f est acotado de la


siguiente manera:
L  jf j  U C1.1 p /:

17/118

El conjunto F de nmeros de una mquina representables exactamente no es


evidentemente infinito: tiene un nmero de elementos fijo igual a
2.

1/ p 1.U

L C 1/ C 1

2: dos opciones de signo.

: posibles valores por cada uno de los p


mantisa, incluyendo el cero.

1: posibles valores del dgito ms significativo de la mantisa.


1 dgitos restantes de la

L C 1 valores posibles del exponente.

Estos elementos no estn igualmente espaciados sobre la recta real sino en


potencias sucesivas de .


Si el nmero que se quiere representar es uno de estos elementos, se guardara


en su exactitud; si no, una aproximacin.

18/118

Ejemplo Si se trabaja en una mquina normalizada en la que D 2, p D 2


(realmente habra 3 dgitos) , L D 1 y U D 1, los 25 elementos del conjunto
F de esa mquina son los representados por muescas en azul en la recta de la
figura Ms ejemplos aqu.

3;5

2;5

1;5

0;5

0;5

1;5

El nmero ms grande positivo representable es


.1;11/2  21 D 2  1 C 1=2 C 1=22

2;5

D 2  .1 C 0;5 C 0;25/ D 3;510I

el ms pequeo en valor absoluto,


.1;00/2  2

D 0;510:

3;5

Desnormalizacin

19/118

Desnormalizacin

La normalizacin produce un vaco de nmeros en torno al 0. La


 La normalizacin produce un vaco de nmeros en torno al 0.
desnormalizacin,
que permite
hayacuando
ceros
en los primeros
dgitos
de la
La desnormalizacin
facilitaque
rellenarlo
el exponente
del nmero sea
el
mnimo,
permitiendocuando
que haya ceros
en los dgitos ms
de lael mnimo.
mantisa, facilita
rellenarlo
el exponente
del significativos
nmero sea
mantisa.

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

La desnormalizacin ampla el rango de nmeros representables, aunque la


precisin de esos de ms es menor que la general al tener menos dgitos no cero.
d

10

Sistema binario de numeracin

20/118

Es el sistema de numeracin con el que trabajan casi todas las mquinas de


clculo electrnicas a nuestra disposicin.

En este sistema, cualquier nmero se expresa

   b2b1b0;b 1b 2   

donde cada dgito binario, o bit, es 0 1.

En el sistema decimal, de base 10, el equivalente a ese nmero cualquiera sera


el resultado de
   b222 C b121 C b020 C b 12

C b 22

 :

El nmero 4 en base 10 sera en binario 1002 y 3=410 sera 0;112.

21/118

Para convertir cualquier nmero del sistema decimal al binario habra que hacer
lo siguiente:

Parte entera Se divide por 2 sucesivamente y se guardan los restos, 0 1,


de cada divisin.
Esos restos se ordenan desde el primero al ltimo y se disponen de derecha a
izquierda. El conjunto de dgitos obtenido es la representacin en binario.
Por ejemplo, con 53;7 hacemos
53  2 D 26 r
26  2 D 13 r
13  2 D 6 r
62D 3r
32D 1r
12D 0r

1
0
1
0
1
1:

El nmero 5310 es en binario 1101012.


Comprobando 1101012 D 25 C 24 C 22 C 20 D 32 C 16 C 4 C 1 D 5310.

22/118

Parte fraccionaria Se hace el proceso inverso: se multiplica la parte


fraccionaria por 2 y se guardan las partes enteras.
Al final se disponen los enteros obtenidos, sucesivamente, a la derecha de la
coma. Con 53;7:
0;7  2 D 0;4 C 1
0;4  2 D 0;8 C 0
0;8  2 D 0;6 C 1
0;6  2 D 0;2 C 1
0;2  2 D 0;4 C 0
0;4  2 D 0;8 C 0
:::
Se ve que el proceso llega un momento que se repite indefinidamente cada
cuatro pasos. Es decir,
0;7 D 0;101102:
En resumen, el nmero 53;710 es en binario 110101;101102.

Para convertir cualquier nmero de binario a decimal:

23/118

Parte entera Se suman las sucesivas potencias de 2. Por ejemplo,


101012 D 1  24 C 0  23 C 1  22 C 0  21 C 1  20 D 2110.

Parte fraccionaria Si es finita, se procede de forma similar, por ejemplo


 
1
1
1
1 1
1
11
0;10112 D C 3 C 4 D C C
:
D
2 2
2
2 8 16
16 10
Si es infinita, lo ms fcil es usar el desplazamiento por potencias de 2.
Por ejemplo, si se quiere convertir a base 10 el nmero x D 0;10112,
primero se multiplica por 24, lo que desplaza la coma cuatro posiciones a la
derecha; luego se resta el original:
24  x D 1011;1011

x D 0000;1011:

24/118

Restando
2

1  x D 10112 D 1110:

Luego se despeja x, quedando que x D 11=1510:

 Otro ejemplo distinto, x D 0;10101. Primero se multiplica por 22 :

y D 22  x D 10;101. Luego se procede como antes con la parte fraccionaria


z D 0;101:
23  z D 101;101
z D 000;101:

De aqu que, restando, 7z D 5. El resultado 22x D y D 2 C 5=7, por lo


que x D 2 2y D 19=2810.

25/118

Formatos habituales para presentar al usuario la informacin que un ordenador


guarda de un nmero en binario:
Decimal Binario Octal (base 8) Hexadecimal (base 16)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

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

Formato binario estndar de aritmtica en


coma flotante de IEEE
Precisin doble palabra de 64 bits y normalizado
63 62

52 51

Exponente

Mantisa

es el bit de signo: 0 para nmeros positivos; 1 los negativos.

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.

Cualquier dato numrico: . 1/S  2.Exp

1023/

 1;M ant i sa:

28/118

Si Exp D 2047 y M 0, el valor es NaN ("Not a number").

Si Exp D 2047 y M D 0, el valor es -Inf si S D 1; Inf, si S D 0.

Si Exp D 1 y M D 0, el valor es el ms pequeo representable: 2

Si Exp D 0 y M 0, valores desnormalizados, el valor es


. 1/S  2 1022  0;M ant i sa.

Si Exp D 0, M D 0 y S D 1, el valor es -0.

Si Exp D 0, M D 0 y S D 0, el valor es 0.

1022

29/118

En el caso de 1 D C1; 0000000000000000000000000000000000000000000000000000


codificacin interna es

2

, su

0 01111111111 0000000000000000000000000000000000000000000000000000
una vez se aade 1023 al exponente. Entonces 0011111111112 D 3FF16.


El siguiente nmero mayor que 1 con este formato estndar es


C1; 0000000000000000000000000000000000000000000000000001  20;
o 1 C 2 52. Interno 0 01111001011 0000000000000000000000000000000000000000000000000000
El exponente es 0011110010112 D 3CB16 D 97110. Es decir, 2971 1023 D 2 52.
Definicin Se denomina epsilon de una mquina, maq
K , a la distancia entre 1 y el

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

>> format hex; 1


ans =
3ff0000000000000
>> 9.4
ans =
4022cccccccccccd
>> 1/0, 0/0
ans =
7ff0000000000000
ans =
fff8000000000000
>> eps
ans =
3cb0000000000000

Volviendo a lo anterior,

El nmero 9;4 D 1001;0110 se guarda as:

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.

La mantisa se ha troceado en grupos de 4 bits para hacerlos corresponder con el


formato hexadecimal. El exponente es 1023 C 3 D 1026 D .10000000010/2.
Aadiendo el bit de signo, los doce primeros bits, en hexadecimal, resultan
40216.
Al ajustar el nmero, se pierde algo, no?

31/118

Los otros resultados corroboran la representacin interna de 1=0 D 1 y


0=0 D NaN.

Juguemos un poco ms con estos conceptos mediante Matlab


>> 1+2^-52
ans =
1.000000000000000
>> 1+2^-53==1
ans =
1
>> 1+2^-52==1
ans =
0
>> 2^-53
ans =
1.110223024625157e-016
>> ans*2
ans =
2.220446049250313e-016
>> eps
ans =
2.220446049250313e-016

32/118

Para calcular el epsilon de una mquina se puede utilizar epsilon.m, un script


de Matlab, como el que sigue.
function eps=epsilon
eps=1;
while 1+eps~=1
eps=eps/2;
end
eps=eps*2;
end

Los resultados son:

>> eps1=epsilon
eps1 =
2.220446049250313e-016
>> eps
% El de Matlab
eps =
2.220446049250313e-016

33/118

Precisin sencilla palabra de 32 bits y normalizado


31 30
S

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

IEEE precisin simple VS precisin doble


Precisin simple
dgitos significativos (p)
24 bits
longitud del exponente
8 bits
bits de informacin
32
emax
127
emi n
-126
valor ms grande normalizado 2127  1038
valor ms pequeo normalizado 2 126  10 38
maqui
21 24  10 7
K
na

Precisin doble
53 bits
11 bits
64
1023
-1022
21023  10308
2 1022  10 308
21 53  10 16

Precisin simple Precisin doble


Exp D 0
0

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

Los nmeros positivos ms grande y ms pequeo que Matlab puede


representar en precisin doble son:
fmi n
fmax

D2

D .1

fmi ndesnor: D 2

1022

D 2;225073858507201  10
53

1022 52

308

/  21024 D 1;7976931348623157  10308


D 4;940656458412465  10

324

Variable Precision Arithmetic


>> digits(35)
>> vpa((1-2^(-53))*2^1024)
ans =
1.7976931348623157081452742373170436*10^308
>> (1-2^(-53))*2^1024
ans =
Inf
>> 2^(-1022)
ans =
2.225073858507201e-308

36/118

Comprobamos utilizando realmax y realmin de Matlab.


>> realmin
ans =
2.225073858507201e-308
>> realmax
ans =
1.797693134862316e+308
>> realmax*2
ans =
Inf
>> realmin/2
ans =
1.112536929253601e-308
>> realmin/(2^52)
ans =
4.940656458412465e-324
>> ans/2
ans =
0
>> vpa(2^(-1028))
ans =
3.4766779039175021610784886208318814*10^(-310)

37/118

Codificacin o representacin de un nmero




Para ver cmo codifica el estndar IEEE un nmero, volvamos a


9;4 D .1001;0110/2.

En principio, en precisin doble, este nmero se ve as


C1; 0010110011001100110011001100110011001100110011001100 110 : : :  23;
con los primeros 52 bits de la mantisa encuadrados o encajados en el
compartimento reservado por la mquina para l.

38/118

Ahora bien, cmo se encaja adecuadamente una ristra infinita de decimales


binarios en el sistema de numeracin de IEEE?


Truncndola o cortndola? Es decir, abandonando o ignorando los que no


caben en esa caja.

Redondendola? En otras palabras, haciendo algo ms inteligente para que


se pierda la menor cantidad de informacin de ese nmero.

El modelo general de cmo un ordenador representa en coma flotante


(formato decimal) un nmero lo definen
el conjunto G D fx 2 R W m  jxj  M g [ f0g y la aplicacin f l./ W G ! F
tales que
f l.x/ D

el elemento c 2 F ms prximo a x , si se redondea;


el c 2 F ms cercano a x que satisfaga jcj  jxj, si se trunca.

39/118

El redondeo y truncamiento en una mquina ficticia que trabajase con D 10 y


con p D k sera:


Truncando, el nmero

x D C0;d1d2d3 : : : dk dkC1dkC2 : : :  10n


perdera los dgitos dkC1; : : : quedando C0;d1d2d3 : : : dk  10n.


Redondeando, se aadira 5  10n .kC1/ al nmero en cuestin y luego se


truncara.
Ejemplo Si p D 3 en una mquina, el nmero 0;3246 se representara con
0;324 truncando y con 0;325 redondeando.

El error de redondeo interno de una mquina es debido a ese truncamiento o


redondeo.

40/118

La tcnica o regla de redondeo al ms cercano de IEEE consiste en sumar


un 1 al bit nmero 52 si el 53 es 1, o no hacer nada redondear por lo bajo en
el 52 si el 53 es 0.

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.

Con este criterio el nmero 9;4 quedara as:


C1; 0010110011001100110011001100110011001100110011001101  23:
Se ha desechado la ristra 0;1100  2 52  23 D 0;0110  2
y se ha sumado 2 52  23 D 2 49 al redondear.

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

Cometindose as un error de redondeo al guardarlo de 0;2  2


guardarlo! codificarlo, o almacenarlo, dentro de la mquina.

49

. Slo por

Definicin El error absoluto de la representacin x  del nmero x en un ordenador


es jx

x  j.

El error absoluto de la representacin de un nmero x en un ordenador en su


sistema de coma, o punto, flotante es jx f l.x/j.

42/118

Definicin El error relativo de la representacin x  del nmero x en un ordenador


es

jx

El error relativo de redondeo del sistema de numeracin IEEE, f l.x/, est


acotado de la siguiente manera
jx

x j
.
jxj

x j 1
 maq
K :
jxj
2

El redondeo afecta a la representacin de todos los resultados de las operaciones


pues f l.x/ D x.1 C /, jj < 21 maq
K .

43/118

ndice


Introduccin y Conceptos bsicos

Representacin de un nmero en formato estndar IEEE

Aritmtica en un ordenador

Evaluacin de errores

Clculo numrico con matrices

Producto de una matriz por un vector

Producto de dos matrices

Normas


Vectoriales

Matriciales

44/118

Aritmtica en un ordenador


Proceso para sumar los nmeros 3 y 14:


310 = 1;100  21 D 1;100  21024
1410 = 1;110  23 D 1;110  21026
Alineamiento
310 = 0;011  21026
1410 = 1;110  21026
Suma

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

OJO! con los casos extremos.


>> x=2^30
x =
1.073741824000000e+009
>> 2^-22
ans =
2.384185791015625e-07
>> x+2^-22==x
ans =
0
>> x+2^-23==x
ans =
1
>> 2^-23
ans =
1.192092895507813e-07

46/118

El sistema de numeracin, F , de un ordenador tiene definidas entre sus


elementos las operaciones aritmticas habituales. Dada la finitud de F son
operaciones aritmticas de precisin finita.

Si 2 designa cualquiera de las cuatro operaciones aritmticas elementales C,


 y , y ja2bj 2 G antes definido, el resultado de cualquier cmputo o
clculo en ordenador con ellas dar como resultado f l.a2b/.

Cualquier operacin aritmtica en ordenador cumple que


f l.a2b/ D .a2b/.1 C /
donde jj < 21 maq
K .

47/118

Si las operaciones aritmticas elementales en una mquina se representan por


, , y , el resultado de aplicarlas ser siempre:
a b D f l.f l.a/ C f l.b//I
a b D f l.f l.a/ f l.b//I
a b D f l.f l.a/  f l.b// y
a b D f l.f l.a/  f l.b//:

El error relativo de cualquiera de estas operaciones es


ja2b

f l.a2b/j 1
 maq
K :
ja2bj
2

48/118

Ejemplo En una mquina D 10, p D 3 y la representacin se hace


mediante truncamiento.


La operacin aritmtica .10

C 1/

f lf l.10

1 dar como resultado


C 1/

1 D 0:

El error relativo es 1 (el 100 %). Por el contrario,


f l10

C f l.1

1/ D 10 3;

resultado exacto.

La aritmtica de coma flotante, por consiguiente, no es asociativa:


.1 C =2/ C =2 D 1, pero 1 C .=2 C =2/ > 1.
Ojo! Tampoco es distributiva: .a C b/  c a  c C b  c.

49/118

Con Matlab (comentarios bienvenidos!)




f l.x/ D 1 si 1 < x  1 C M .

f l.x/ D 1 C 2m si 1 C m < x < 1 C 2m.


>> e = 1 - 3*(4/3 - 1)
e =
2.2204e-016

>> a = 0.0;
for i = 1:10
a = a + 0.1;
end
a == 1
ans =
0

50/118

>> b = 1e-16 + 1 - 1e-16;


c = 1e-16 - 1e-16 + 1;
b == c
ans =
0

>> (2^53 + 1) - 2^53


ans =
0
>> 1+2^53-2^53
ans =
0
>> 1+(2^53-2^53)
ans =
1

>> sin(pi)
ans =
1.2246e-016
>>

51/118

Recordemos el nmero 9; 4:

>> format long


>> x=9.4
x =
9.400000000000000
>> y=x-9
y =
0.400000000000000
>> z=y-0.4
z =
3.330669073875470e-016
>> 3*2^-53
ans =
3.330669073875470e-016

El error en la codificacin de 3;4 era 0;2  2 49. Cuando se le resta 9 el error


sigue siendo el mismo pues la representacin de este nmero es exacta. El
nmero 0;4 tiene un error de representacin de f l.0;4/ D 0;4 C 0;1  2 52, lo
que hace que el error final sea

49
52
52 4
0;2  2
0;1  2
D 0;1  2
2
1 D 3  2 53:

52/118

1
3

5
7

Ejemplo Supongamos que se quiere operar con los nmeros x D


en una mquina con D 10 y p D 5 que usa truncamiento.

La representacin en esa mquina de esos nmeros ser f l.x/ D 0,33333  100


y f l.y/ D 0,71428  100.

Los resultados de diversas operaciones y sus errores son:

eyD

Operacin Resultado Valor Real Error Absoluto Error Relativo


xy
y x
xy
yx

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

Como el error mximo relativo es 0;267  10 4, la aritmtica de ese ordenador


para estos clculos produce errores satisfactorios.

Usemos u D 0;714251, v D 98765;9 y w D 0;111111  10 4.




La representacin en la mquina de estos nmeros ser


f l.u/ D 0,71425  100, f l.v/ D 0,98765  105 y
f l.w/ D 0,11111  10 4.

Como muestra la tabla, y u produce un error absoluto pequeo pero un


error relativo bastante grande:

Operacin Resultado Valor Real Error Absoluto Error Relativo


y u
0,30000  10 4 0,34714  10 4 0,471  10 5
0,136
.y u/ w 0,27000  101 0,31243  101
0,424
0,136
.y u/ v 0,29629  101 0,34285  101
0,465
0,136
uv
0,98765  105 0,98766  105
0,161  101
0,163  10 4

54/118

La divisin posterior por w y multiplicacin por v amplifica el error absoluto


sin modificar el error relativo.

Por el contrario, la adicin del nmero grande v y el pequeo u produce un


error absoluto grande pero no un gran error relativo.

55/118

Evaluacin de diversos errores




Un algoritmo perfectamente diseado se puede utilizar en problemas mal


condicionados, en los cuales los errores tienden a crecer de una forma
incontrolada segn se llevan a cabo operaciones aritmticas.

La condicin de un problema es directamente proporcional a la sensibilidad de


los resultados a pequeas variaciones en los datos. Si la condicin es muy
grande, deben esperarse dificultades aunque los datos iniciales sean exactos,
pues los errores numricos tendern a amplificarse.

Tambin se pueden dar algoritmos inestables, que no tienen en cuenta esas


consideraciones a escala de operaciones individuales, u otras como vemos a
continuacin.

56/118

Error de cancelacin o prdida de relevancia


que debera dar 1.

Analicemos esta operacin,

El error de cancelacin, o de prdida de relevancia o significancia, se refiere a la


prdida de dgitos que conlleva la representacin final de ciertas operaciones
resta esencialmente entre nmeros de magnitud similar, o muy grandes y
muy pequeos, que dan un resultado con un nmero de dgitos representable
muy pequeo.

>> x=1.e-15; ((1+x)-1)/x


ans =
1.110223024625157e+000

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

En el ejemplo de Matlab anterior, veamos qu pasa.


>> format long
>> x=1.e-15;
>> x
x =
1.000000000000000e-015
>> 1+x
ans =
1.000000000000001e+000
>> (1+x)-1
ans =
1.110223024625157e-015
>> 1+x
ans =
1.000000000000001e+000
>> ans-1
ans =
1.110223024625157e-015
>> ans/x
ans =
1.110223024625157e+000

59/118

Ejemplo Considrese la funcin f .x/ D .1 cos x/=x 2.


Si x D 1;2  10 5, el valor de cos x, redondeado a diez4 dgitos significativos, es
c D 0;9999999999
por lo que
1
La representacin interna de 1

c D 0;0000000001:

c slo posee un dgito real.

>> vpa(1-cos(0.000012),10)
ans =
.1e-9
>> vpa(1-cos(0.000012),30)
ans =
.71999999999136000000e-10

El valor con treinta dgitos es 0,999999999928000000000863999999.

60/118

El valor de la funcin es entonces


1

c
x2

10 10
D
1;44  10

10

D 0;6944 : : :

el cual es errneo pues 0  f .x/ < 1=2 para todo x 0.


>> vpa(1-cos(0.000012),10)/vpa(0.000012^2,10)
ans =
.69444444444444444444444444444444
>> vpa(1-cos(0.000012),50)/vpa(0.000012*0.000012,50)
ans =
.49999999999400000000002880000000
>>

61/118

Para evitar el error de cancelacin de este caso, como cos x D 1


es fcil ver que


1 sen.x=2/ 2
f .x/ D
:
2
x=2


2 sen2.x=2/,

Calculando f .x/ mediante esta frmula y aproximando sen.x=2/ con 10


dgitos significativos, el resultado es f .x/ D 0;5, el cual se aproxima al
valor exacto en 10 dgitos.
>> vpa(sin(0.000012/2)^2,10)/vpa((0.000012/2)^2,10)/2
ans =
.50000000000000000000000000000000

En general, no es buena prctica dar por buenos nmeros de magnitud muy


pequea resultado de una diferencia de nmeros mucho ms grandes.

Effect of rounding error on algorithms


62/118

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

results of cos x and sin x were rounded to 10 decimal digits; other


calculations are exact

63/118

Casustica de errores en algoritmos


Truncamiento de series


Un ejemplo clsico de algoritmo numrico es el del clculo de e x . La expresin


del desarrollo en serie de e x es:
x2 x3
e D1CxC
C
C 
2
3
x

Si se desea calcular e 5,5 mediante esta expresin en una mquina con D 10


y p D 5, los resultados que se obtienen son los siguientes:
e 5,5 D C1,0000 5,5000 C 15,125 27,730 C 38,129
41,942 C 38,446 30,208 C 20,768 12,692
C 6,9803 3,4902 C 1,5997   
D C0,0026363:

64/118

La suma de trminos se trunca despus de 25, pues los siguientes no aportan


dgitos significativos a la precisin del resultado.

El valor real de e 5,5 es 0,00408677. Como se puede comprobar, la diferencia


con 0,0026363 es muy importante: absoluta y relativamente.

El problema con esta forma de calcular e 5,5 surge de la suma y resta de


valores relativamente prximos en magnitud, con la consiguiente prdida de
dgitos significativos por cancelacin.
Una alternativa mejor es obtener el desarrollo en serie de e 5;5 y luego calcular el
recproco. La respuesta sera:
e

5;5

1
e 5;5

1
D 0;0040865:
1 C 5;5 C 15;125 C   

65/118

A continuacin se lista un programa en Matlab para el clculo de e x por


desarrollo en serie. Su objetivo es analizar los errores que se cometen y cundo
ocurren.
function ssum = expSeriesPlot(x,tol)
% Suma de n trminos de la serie exp**x
% Datos: x
= exponente del nmero e
%
tol = (opcional) tolerancia de la suma. Por defecto: tol = 5e-9
%
La suma termina cuando T_k/S_k < tol, donde T_k es el
%
trmino k-esimo y S_k la suma acumulada (con ese trmino).
if nargin < 2, tol=5e-9; end
term = 1; ssum = term; Eabs(1)=abs(ssum-exp(x)); k=1;
% Inicializar
fprintf(Aproximacin en serie de exp(%f)\n\n,x);
% Cabecera salida
fprintf( k
trmino k
suma
Error abs. serie\n);
fprintf(%3d %11.3e %11.3e %16.3e\n,1,x,ssum,Eabs(1));
while abs(term/ssum)>tol
% Bucle principal
k=k+1;
term = term*x/(k-1);
% Siguiente trmino de la serie
ssum = ssum + term;
Eabs(k) = abs(ssum-exp(x));
fprintf(%3d %11.3e %11.3e %16.3e\n,k,term,ssum,Eabs(k));
end
semilogy(1:k,Eabs,-); xlabel(Nmero de trminos); ylabel(Error absoluto);
fprintf(\nError de truncamiento despus de %d trminos: %11.3e\n\n,k,Eabs(k));
end

66/118

Los resultados numricos del clculo de e

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

Error abs. serie


1.000e+000
9.000e+000
4.100e+001

1.803e-013
2.063e-013
1.258e-013
1.422e-013
1.389e-013
1.396e-013
1.394e-013

Error de truncamiento despus de 53 trminos:


ans =
4.5400e-005

1.394e-013

El grfico del error absoluto respecto del nmero de trminos considerado en la


serie es el que sigue.

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

Para k < 48 el error que se comete al evaluar la serie con la frmula lo


determina el truncamiento de la misma. A partir de k > 48 es el error de
redondeo interno el que evita que se pueda mejorar el resultado.

68/118

Este ejemplo pone de manifiesto la interdependencia entre los errores de


redondeo internos de la mquina y los errores debidos al truncamiento de series
en los algoritmos.

69/118

Solucin de una ecuacin cuadrtica




Desde el punto de vista terico, resolver la ecuacin cuadrtica


ax 2 C bx C c D 0 es un problema trivial. Desde el punto de vista numrico con
precisin finita, no tanto.

Como es sabido, si a, b y c son nmeros reales y a 0, las dos soluciones de la


ecuacin, x1 y x2, estn dadas por las expresiones
p
b C b 2 4ac
(1)
x1 D
2a
y
p
b
b 2 4ac
x2 D
:
(2)
2a

70/118

Veamos lo que ocurre al aplicar directamente estas frmulas en una mquina en


la que D 10, p D 8, L D 50 y U D 50.

Si a D 1, b D

105 y c D 1, las races autnticas de la ecuacin son


x1 D 99999;999990

y
x2 D 0;000010000000001:


Si se usan las expresiones (1) y (2) en la mquina apuntada, el resultado es


x1 D 100000;00
y
x2 D 0;0:

71/118

Al calcular x1 y x2 ha habido un error de cancelacin catastrfico, pues


f l.. 105/2

4/ D 1010:

La forma de evitarlo consiste en usar el signo de b para determinar cul de las


expresiones (1) o (2) producira menor error de cancelacin, y usarla para
calcular la raz de mayor valor absoluto, a partir de la frmula


p
2
4ac
b C signo.b/ b
:
x1 D
2a

Como ax 2 C bx C c D a.x x1/.x x2/, lo que implica que ax1x2 D c, la


otra raz se podra calcular usando la expresin
x2 D

c
:
ax1

72/118

Aplicando este criterio en el ejemplo apuntado se obtendran las races


x1 D 100000;00 y x2 D 0;00001: ambas buenas soluciones.

Mdulos interactivos en esta direccin.

73/118

Aproximacin de la derivada


De la definicin de derivada de una funcin f W R ! R en un punto x


f .x C h/
h!0
h

f 0.x/ D lKm

f .x/

se puede deducir la aproximacin por diferencias finitas


f 0.x/ 

f .x C h/
h

f .x/

Por el desarrollo en serie Taylor,5

74/118

f .x C h/ D f .x/ C f 0.x/h C f 00. /h2=2;


para algn  2 x; x C h. Es decir,

f 0.x/ D .f .x C h/

f .x// = h C f 00. /h=2:

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

Formulado en 1715 por Brook Taylor, Reino Unido, 1685-1731.

75/118

El error total del clculo en la derivada est acotado en consecuencia por la


suma de los dos posibles componentes de error,
M h 2
C :
2
h
El primer trmino decrece, y el segundo se incrementa, al decrecer h

Haciendo la derivada de esta suma con respecto a h igual a cero, se obtiene que
la misma se minimiza cuando
p
h  2 =M :

Para la funcin f .x/ D sen.x/, en x D 1, tomando M D 1, el error total de la


aproximacin por diferencias finitas se representa en la figura. Su mnimo es
p
 10 8  .

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

El error de truncamiento en la aproximacin por diferencias finitas puede


reducirse usando la frmula centrada:
f 0.x/ 

f .x C h/

f .x
2h

h/

En trminos generales, los errores de redondeo tienden a prevalecer en los


clculos algebraicos de los algoritmos que llegan a una solucin en un nmero
de pasos finito, mientras que los de truncamiento sobresalen en los que se
utilizan derivadas, integrales, y no linealidades en general, que suele ser el caso
de los algoritmos de procesos infinitos o cuasi infinitos.

Otra suma de infinitos sumandos




78/118

Como es sabido
1
X
kD1

2
D 1;64493406684822640606569166266 : : :
D
6

Supongamos que no se conoce el resultado o que se desea calcularlo con un


ordenador.

Parece lgico codificar un bucle en k mediante el cual se sumen los trminos de


la serie hasta que el resultado no se vea alterado por la incorporacin de nuevos
dgitos.

En un ordenador personal, utilizando precisin sencilla, el valor que se obtiene a


partir de k D 4096 es 1;64472532.

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?

La respuesta est en la forma en que se efecta la suma: primero los nmeros


mayores y despus los ms pequeos.

En efecto, para k D 4096, se lleva a cabo la siguiente operacin: s C 4096 2.


El trmino 4096 2 D 2 24 y s  1;6.

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.

Una forma de remediar esto consiste en acumular primero la suma de los


trminos ms pequeos y luego la de los grandes, lo que requiere anticipar
cuntos trminos se necesitan.
function Suma_de_serie_1(j)
% Se simula suma 1/k^2 con infinitos sumandos
suma=0; i=j;
while i~=0
suma=suma+1/i/i;
i=i-1;
end
fprintf( Suma = %21.17f\n,suma);
end

Si se utilizan 1010, el valor que se obtiene con este cdigo de Matlab es


>> tic, Suma_de_serie_1(10000000000), toc
Suma =
1.64493406674822640
Elapsed time is 73.001613 seconds.
>>

es decir, el exacto con 10 dgitos significativos.

80/118

81/118

Analicemos esta variante del problema.


function suma = Suma_de_serie_3(i,j)
%
suma=i*0;
for i1=i:j, suma=suma+1/i1/i1; end
end
>> i=vpa(1,30)
i =
1.0
>> tic, Suma_de_serie_3(i,200000), toc
ans =
1.6449290668607264156390818334169
Elapsed time is 282.695168 seconds.
>>

82/118

Polinomio de Wilkinson

Toma el nombre de James Hardy Wilkinson, del National Physical Laboratory,


Reino Unido, 1919-1986. Tiene esta forma
w.x/ D .x

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


Introduccin y Conceptos bsicos

Representacin de un nmero en formato estndar IEEE

Aritmtica en un ordenador

Evaluacin de errores

Clculo numrico con matrices

Producto de una matriz por un vector

Producto de dos matrices

Normas


Vectoriales

Matriciales

86/118

Clculo numrico con matrices




Las operaciones de clculo numrico con vectores y matrices:




productos de vectores por matrices y de dos matrices,

el clculo de normas de vectores y matrices,

la evaluacin del condicionamiento de sistemas de ecuaciones lineales,

son fundamentales en los mtodos y algoritmos que estudiamos y analizamos en


este curso.
Conocer cmo se llevan a cabo en un ordenador y optimizarlas es muy til

87/118

Producto de una matriz por un vector




Comencemos por y D Ax, donde A 2 R mn y x 2 R n.


Cada coeficiente del vector y se obtiene mediate esta frmula:
n
i

yi D

aij  xj :
j D1

Esta operacin se puede interpretar como:




Combinar linealmente los vectores columna de A;

Una serie de productos interiores de los vectores fila de A por x.

88/118

En forma de algoritmo, esta operacin se estructurara as:


 Producto y D Ax
Hacer y D 0
for i D 1 to m
for j D 1 to n
y.i / D y.i / C a.i; j /x.j /
end
end

Para ser factible, las dimensiones deben cumplir que


m  n 
n  1 D
m  1 :

89/118

En la zona de trabajo o pizarra de Matlab se hara as:


>> y=A*x

Programando el algoritmo anterior con las instrucciones que permite Matlab


se obtendra algo as:
[m n]=size(A);
y=zeros(m,1);
for i=1:m
for j=1:n
y(i)=y(i)+A(i,j)*x(j);
end
end

En este script (o guin) a seguir, el bucle con el ndice j materializa el


producto interior de la fila i de A por el vector x.

90/118

Tambin se podra hacer algo un poco ms sofisticado como lo que sigue.


function y = MatVecF(A,x)
[m n] = size(A);
y = zeros(m,1);
for i=1:m
y(i) = A(i,:)*x;
end
end

ste sera el algoritmo programado en su versin por filas: una sucesin de


productos interiores: los vectores fila de A, A(i,:), por el vector x.

91/118

El algoritmo por columnas materializa que la operacin Ax es equivalente a


efectuar una combinacin lineal de los vectores columna de A. Por ejemplo,
2 3
3
2
12  
17C28
7
y D Ax D 43 45
D 43  7 C 4  85
8
56
57C68
2 3
2 3 2 3
1
2
23
D 7 435 C 8 445 D 4535 :
5
6
83

Codificado para Matlab:

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

La operacin Ax conlleva realizar O.mn/ multiplicaciones e igual nmero de


sumas/restas.

El que consuma ms o menos tiempo de ordenador depender de cmo se realiza


la operacin y la forma de almacenar en la memoria del ordenador la matriz A.


Si la matriz se guarda por columnas (lo habitual por defecto), la operacin


en su forma por columnas requerir menos tiempo que la versin por filas,
pues los coeficientes a los que se accede estn contiguos en la memoria y se
pueden conseguir de una sola vez: una ristra de ellos: row, o rengln.

93/118

Para realizar la operacin y T D x T A, en vez de y D Ax, los programas


anteriores se convertiran en los que siguen.

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

Producto de dos matrices




94/118

Si A 2 R mr y B 2 R rn son dos matrices, su producto, C 2 R mn D AB,


se calcula mediante esta frmula:
r
i

cij D

aik  bkj ;
kD1

para todo 1  i  m y 1  j  n. El algoritmo es el que sigue.


 Producto C D AB
Hacer C D 0
for j D 1 to n
for i D 1 to m
for k D 1 to r
c.i; j / D c.i; j / C a.i; k/  b.k; j /
end
end
end

a (i) is a row vector, b(j) is a column vector.




95/118

Cada coeficiente cij , es el resultado de un producto interior:


i

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

The inner product view of the matrixmatrix product is easier to


En
useMatlab:
for hand calculations.

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 )

The column view of the matrixmatrix product AB = C is


helpful because it shows the relationship between the columns of
A and the columns of C .

En Matlab:

Por ltimo, la matriz C tambin se puede ver como el resultado de sumar r


matrices de rango uno, cada una resultado del producto exterior de dos vectores.

97/118

Recordemos que el producto exterior de u y v es

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

A.W; k/B.k; W/:


kD1

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

Todos estos mtodos realizan O.mnr/ multiplicaciones e igual nmero de


sumas/restas.

El procedimiento ms adecuado para programarlo en ordenador depender de


cmo se almacenan en l las matrices.

El ms eficaz suele ser el que denominbamos MatMatVec. Luego lo veremos


con un ejemplo.

Frmula de Strassen para multiplicar matrices

Desarrollada en 1969 por Volker Strassen, Alemania, 1936-. Se usa para


multiplicar dos matrices A y B cuadradas de dimensin 2p .

Se basa en una reordenacin inteligente de los clculos convencionales.

Si A y B son bloques 2  2, el producto es



 


C 11 C 12
A 11 A 12 B 11 B 12
D
C 21 C 22
A 21 A 22 B 21 B 22


A 11B 11 C A 12B 21 A 11B 12 C A 12B 22
D
:
A 21B 11 C A 22B 21 A 21B 12 C A 22B 22

Esta operacin necesita 8 multiplicaciones y 4 sumas en su forma tradicional.

99/118

100/118

Strassen reagrupa las operaciones de tal manera que slo se necesiten 7


multiplicaciones y 18 sumas. Haciendo
P1
P2
P3
P4
P5
P6
P7

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

Generalizando, si las 7 multiplicaciones son de matrices m  m, como las


submatrices son m=2  m=2, se requieren


7 3
7 2
9 2
m multiplicaciones C
m .m 2/ C m sumas:
8
8
2


La operacin natural requerira m3 multiplicaciones y m2.m

1/ sumas.

Para un dimensin m suficientemente grande el procedimiento de Strassen


reduce las operaciones por un factor de alrededor de 7/8.

102/118

Si se aplica recursivamente la idea y se van dividiendo las submatrices en cuatro


bloques, cada unos de estos en otros cuatro y as sucesivamente, el
procedimiento mejorar sustancialmente el nmero total de operaciones que hay
que efectuar.

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

En Matlab, para matrices n  n, con n D 2p .


function C = strass(A,B)
% Calcula C=AxB mediante la frmula de Strassen
%
A,B matrices n x n; n potencia de 2.
%
n = length(A);
if n-2^(log2(n))~=0, error(n no es pot. de 2); end
if n <= 16
C = A*B;
else
m = n/2; u = 1:m; v = m+1:n;
P1 = strass(A(u,u)+A(v,v),B(u,u)+B(v,v));
P2 = strass(A(v,u)+A(v,v),B(u,u));
P3 = strass(A(u,u),B(u,v)-B(v,v));
P4 = strass(A(v,v),B(v,u)-B(u,u));
P5 = strass(A(u,u)+A(u,v),B(v,v));
P6 = strass(A(v,u)-A(u,u),B(u,u) + B(u,v));
P7 = strass(A(u,v)-A(v,v),B(v,u)+B(v,v));
C = [P1+P4-P5+P7 P3+P5; P2+P4 P1+P3-P2+P6];
end
end

104/118

Ejemplo Para verificar tiempos de clculo. Ejecutar el programa TiemposAxB:


>> TiemposAxB(256)
Error en Int: 7.105427e-014
Error en Exte: 1.705303e-013
Error en Vec: 1.705303e-013
Error en Strass: 7.531753e-013
Tiempos: Int: 0.374; Exte: 0.827; Vec:
>> TiemposAxB(512)
Error en Int: 1.136868e-013
Error en Exte: 3.694822e-013
Error en Vec: 3.694822e-013
Error en Strass: 3.041123e-012
Tiempos: Int: 1.607; Exte: 2.730; Vec:
>> TiemposAxB(1024)
Error en Int: 3.410605e-13
Error en Exte: 1.108447e-12
Error en Vec: 1.108447e-12
Error en Strass: 1.642775e-11
Tiempos: Int: 10.516; Exte: 17.906; Vec:
>> TiemposAxB(2048)
Error en Int: 5.684342e-13
Error en Exte: 3.069545e-12
Error en Vec: 3.069545e-12
Error en Strass: 7.560175e-11
Tiempos: Int: 90.000; Exte: 170.953; Vec:

0.016; Strass:

0.109; Matlab:

0.000

0.172; Strass:

0.640; Matlab:

0.062

0.625; Strass:

2.891; Matlab:

0.188

12.938; Strass: 17.234; Matlab:

Al doblar el tamao, los tiempos se multiplican  por 23.

0.750

105/118

ndice


Introduccin y Conceptos bsicos

Representacin de un nmero en formato estndar IEEE

Aritmtica en un ordenador

Evaluacin de errores

Clculo numrico con matrices

Producto de una matriz por un vector

Producto de dos matrices

Normas


Vectoriales

Matriciales

106/118

Normas
Vectoriales


Si en un espacio vectorial E sobre el cuerpo K (R o C ) se define una norma


vectorial como una aplicacin k  k W E ! R que verifica
1) kvk D 0 H) v D 0
2) kvk D jjkvk para

x 0 H) kxk > 0;
2 K y v 2 E;

3) ku C vk  kuk C kvk 8u; v 2 E;


se dice que E es un espacio vectorial normado.

del tringulo. Es una generalizacin del hecho de que un lado de u


la suma de los otros dos: ver figura. Una variante de esta regla es
107/118

ku

vk  kuk

kvk:

La condicin ku C vk  kuk C kvk se conoce como regla del tringulo.


v
uCv
u

Figura 3.1: Representacin grfica de la regla d

Es una generalizacin del hecho de que la longitud de un lado de un tringulo


espacio
Kn , para 1  p < 1, se tiene la familia
no puede ser mayor que la suma de En
lasel de
los vectorial
otros dos.


kxkp D jx1 j C    C jxn j

Una variante til es esta:


ku

1=

denominadas normas p de Hlder. Casos particulares lo constitu


p D 2:

vk  kuk

kvk:

kxk1 D
kxk2 D

n
X
i D1

jxi j

p
jx1 j2 C    C jxn j2

En el espacio vectorial Kn, para 1  p < 1, se tiene la familia de normas



1=p
kxkp D jx1jp C    C jxnjp
;

108/118

denominadas normas p de Hlder, o normas lp . Su formulacin se debe a Otto


Hlder, Alemania, 1859-1937.

Casos particulares muy utilizados corresponden a p D 1, p D 2 y p D 1:


kxk1 D

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.

Si el conjunto fx 2 R 2 W kxk  1g es el crculo unidad en R 2, sus formas


2
las normas
p son
estas:unidad en
i el para
conjunto
fx 2 Rvectoriales
W kxk 1,1g2,es1la ybola
cerrada
R2, su forma para las normas vectoriales 1, 2, 1, y p son estas.


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

En el espacio C 0; 1 de funciones continuas del intervalo 0; 1 en C , son


normas
#1=p
"Z
1
jf .t /jp dt
kf kp D
0

kf k1 D mKax jf .t /j :
t20;1

En un espacio vectorial normado se define la distancia entre dos elementos u y


v mediante
d.u; v/ D ku vk :


Esta definicin convierte a cualquier espacio vectorial normado en un


espacio mtrico.

111/118

En un espacio eucldeo n-dimensional, expresado R n o En (espacio de Hilbert


de dimensin finita), el ngulo entre dos vectores cualesquiera x e y es

 T
x y
;
 D arc cos
kxkkyk
donde

xT y
D
;
kxkkyk

1    1:

Si los vectores son ortogonales: x T y D 0;

Vectores alineados:

Vectores opuestos:

Si forman un ngulo agudo:

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

Se define sobre R mn como una aplicacin k  k W R mn ! R que cumple:


1) kAk D 0 H) A D 0
2) kAk D jj  kAk
3) kA C Bk  kAk C kBk
4) kABk  kAk  kBk

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.

Una norma matricial es una norma vectorial compatible con el producto.

114/118

Una norma matricial consistente con una cierta norma vectorial k  k se


construye mediante la definicin
kAk D

kAxk
sup
:
kxk
0x 2Rn

Esta norma matricial se dice inducida por la norma vectorial.

La norma matricial inducida por la norma eucldea de R n es la norma


espectral, norma eucldea o norma 2:
kAk2 D

sup
0x 2Rn

"

#1=2 q
x A Ax
T
D

.A
A/ D max .A/
max
xT x
T

donde  designa un valor propio de A y  un valor singular.

115/118

Las normas matriciales inducidas ms generales son


kAk1 D mKax

1j n

kAk1 D mKax

1i m

m
X

iD1
n
X

j D1

jaij j (columnas) y
jaij j (filas) :

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.

116/118

Un ejemplo importante de norma matricial es la norma de Frobenius, por


Ferdinand Georg Frobenius, Alemania 1849-1917.

Se define como
kAk2F

1i;j n


aij2 D traza A H A ;

donde la traza de una matriz A de orden n es




La norma de Frobenius cumple que

Pn

i D1 ai i .

kABkF  kAkF  kBkF :




La norma espectral y la norma de Frobenius cumplen que


kAk2  kAkF :

Ejemplo El efecto que produce aplicar la transformacin lineal basada en la


matriz
 
12
AD
02
al crculo unidad, con las normas k  k1, k  k2 y k  k1 en R 2, es este.
[2, 2]T
[0, 1]T
norma11
norma

norma22
norma

norma1

norma

[1, 0]T

A1 = 4
[1, 0]T

A2 2,9208

A = 3

La aplicacin transforma el vector e 1 D 1; 0T en s mismo y


e 2 D 0; 1T en 2; 2T .

39/63

117/118

La aplicacin transforma el vector e 1 D 1; 0T en s mismo y e 2 D 0; 1T en


2; 2T .

Tomando la norma 1, el vector unitario que ms se amplifica al aplicarle la


transformacin es 0; 1T (o 0; 1T ), que pasa a ser 2; 2T . Su factor de
amplificacin, en trminos de la norma 1, es 4.

Tomando 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:
1

118/118

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Resolucin de ecuaciones de una variable

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_reso_ecuaciones_2016.pdf

1/75

2/75

ndice


El problema


Mtodo de la biseccin

Iteracin de punto fijo

Velocidad de convergencia

Mtodo de Newton

Variantes del mtodo de Newton

Mtodos sin derivadas

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.

Los algoritmos que estudiamos son procedimientos iterativos en los que se


avanza progresivamente haca una solucin.

Se utilizar uno u otro dependiendo de la complejidad de evaluar la funcin y de


la disponibilidad de derivada, o de la dificultad de calcularla.

4/75

Mtodo de la Biseccin

Atribuido a Bernard Bolzano, Praga, Bohemia (hoy Rep. Checa), 1781-1848.

Idea: Si f es continua en un intervalo a; b en cuyos extremos cambia de


signo, f .a/f .b/ < 0, existir un c, a < c < b, en el que f .c/ D 0.
Reduciendo a; b se llegar a acotar el valor de c tanto como se desee.

Origen:

5/75

Teorema Del valor intermedio Si f W R ! R es una funcin continua en a; b y


f .a/  x  f .b/ o f .b/  x  f .a/, existe un c, a  c  b, donde f .c/ D x.

Mecnica del procedimiento:


I. Comenzar con unos u D f .a/ y v D f .b/, tales que uv < 0. Determinar
c D 21 .a C b/ y w D f .c/.


Si f .c/ D 0 se ha llegado a la solucin;

si no, se cumplir que wu < 0 o wv < 0.

II. Si wu < 0, la solucin estar en a; c; si wv < 0, en c; b.


III. Se estudia el nuevo intervalo donde est la raz, reducindolo secuencialmente en
dos mitades hasta que se estreche lo que se desee el intervalo de confinamiento
que contenga la solucin.
f (a)

f (a)
f (x )

f (c)
f (x )

Casos que se pueden presentar al comenzar

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; : : :

Teorema Al aplicar el mtodo de la biseccin a una funcin f W R ! R, continua en


un intervalo a; b, en el que f .a/f .b/ < 0, despus de n iteraciones, en las que se habrn
evaluado la funcin n C 2 veces, se habr obtenido un valor de la solucin cn tal que su
error
b a
jr cn j  nC1 ;
2
donde r es el valor real de la solucin.

Definicin Una solucin es correcta en p posiciones decimales si el error es menor que


0;5  10 p .

7/75

Esta function lleva a cabo el mtodo de la biseccin.


function sol=Bisec_0(fun,a,b,tol)
% Mtodo de la Biseccin para resolver f(x)=0
if nargin<4, tol=sqrt(eps); end
fa=fun(a); fb=fun(b);
if sign(fa)*sign(fb)>=0, error( El intervalo (a,b) no contiene la solucin\n), end
while abs(b-a)/2>tol
c=(a+b)/2;
fc = fun(c);
if fc==0, break, end
if sign(fc)*sign(fa)<0
b=c; fb=fc;
else
a=c; fa=fc;
% No es necesario hacer fa=fc;
end
fprintf( %17.15f %17.15f\n,a,b);
end
sol = (a+b)/2;
end

8/75

Ejemplo Resolvamos x sen.x/ 1 D 0 en 1  x  2 (radianes). Para ello,


suministramos los extremos del intervalo a; b y la propia funcin que resolver:
>> f=@(x) x*sin(x)-1;
>> Bisec_0(f,1,2}
Los resultados son los de esta tabla.
k

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

En la figura se representa cmo procede el mtodo para llegar a la solucin.

Intervalo inicial

Error hacia delante y error hacia atrs de un algoritmo

10/75

El proceso que se lleva a cabo para obtener la solucin de un problema


mediante un algoritmo de bucle abierto se esquematiza as:
Datos que
definen el !
problema

Proceso de
solucin o
algoritmo

! Solucin

El problema lo constituyen los datos que se proporcionan a esa funcin de


transferencia que es el algoritmo.
La solucin es la informacin que proporciona la salida.
En lo que analizamos aqu, el problema es una
ecuacin de una variable;
el algoritmo, cualquiera de los que estudiamos.

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.

El error hacia atrs est en el lado izquierdo del esquema anterior, o a la


entrada. Es la cantidad que tendra que cambiar el problema (la funcin) para
hacer que la ecuacin se equilibre con la aproximacin xa de la salida. Es
jf .xa /j.

El error hacia delante est en el lado derecho, o a la salida (solucin del


problema). Es la cantidad que tendra que cambiar la solucin aproximada para
que sea correcta, es decir, 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

La raz es 0;6666666666666 : : :. Aunque se aumente la precisin, el proceso es


el mismo y slo consigue 6 dgitos significativos de la misma, por qu?

Lo que ocurre no es culpa del mtodo de la biseccin sino de la incapacidad de


la aritmtica de la mquina para calcular la funcin f con precisin suficiente
cerca de la raz.

Cualquier otro mtodo que se base en esta misma aritmtica de maquina estar
destinado al mismo fracaso.

13/75

1.3 Limits of Accuracy | 45

La razn se ve en la figura.

(a)

(b)

Si la aritmtica de la mquina muestra que la funcin es igual a cero en un valor


Figure 1.7 The shape of a function near a multiple root. (a) Plot of f (x) =
que no es una
raz, no hay manera de que el mtodo pueda recuperar esto.
x 3 2x 2 + 4/3x 8/27. (b) Magnication of (a), near the root r = 2/3. There are

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

Definicin Si una funcin continua y derivable m veces tiene en r una raz y 0 D


f .r/ D f 0 .r/ D    D f .m 1/ , pero f .m/ 0, se dice que f tiene una raz de multiplicidad
m en r. Una raz es simple si la multiplicidad es igual a uno y mltiple si es mayor que uno.

15/75

Iteracin de punto fijo

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 sucesin de puntos de iterar la funcin coseno parece que converge a un


punto r.
Definicin Un nmero real r es un punto fijo de f .x/ si f .r/ D r.

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

Este cdigo de Matlab hace el trabajo.


function xc=fpi(g,x0,k)
% fpi: Calcula la solucin de f(x)=x; it. punto fijo
% Input: inline function f, punto de partida x0,
%
nmero de iteraciones k
% Output: Solucin x
x(1)=x0;
for i=1:k
x(i+1)=g(x(i));
end
xc=x(k+1);
end

Para el caso de f .x/ D cos.x/, haciendo hasta treinta iteraciones, sera:


>> f=@(x)cos(x);
>> xc = fpi(f,1,15)
xc =
0.738369204122323
>> xc = fpi(f,1,30)
xc =
0.739087042695332

18/75

Ejemplo Resolvamos la ecuacin x 3 C x


formas con el formato g.x/ D x:
x 3;

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

Consideremos ahora la ecuacin


x3

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.


Si seguimos una estrategia de punto fijo, buscaremos una funcin g W R ! R y


un xN tal que xN D g.x/,
N y aplicaremos un procedimiento iterativo a partir de la
relacin de recurrencia xkC1 D g.xk /.

Qu formas de x D g.x/, y por tanto relacin de recurrencia, se nos pueden


ocurrir para utilizar?

21/75

La primera podra ser x D


sera

p
3

sen.x/: La relacin de recurrencia correspondiente


xkC1 D

p
3

sen.xk /:

Si comenzamos el proceso iterativo desde x0 D 1 (radianes), se tendr que:


p
x1 D 3 sen.x0/ D 0;944
p
x2 D 3 sen.0;944/ D 0;932
p
x3 D 3 sen.0;932/ D 0;929
:::
La solucin converge a xN D 0;92862.

22/75

Tambin podemos hacer x D

sen.x/
,
x2

por lo que la relacin de recurrencia sera

xkC1 D

sen.xk /
:
xk2

Partiendo de x0 D 1, se obtienen los puntos


k
0
1
2
3
4
::
:

El proceso diverge.

xk
1; 000
0; 841
1; 053
0; 783
1; 149
::
:

Veamos geomtricamente qu ocurre en estos dos procesos:




El itinerario de la parte izquierda es el de xkC1 D

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

Si se analiza el comportamiento de diversas relaciones de recurrencia se puede


constatar una relacin directa entre el comportamiento del proceso iterativo y
las pendientes de g en el entorno de x:
N
Si jg 0.x/j
N D v < 1 y el punto de partida est cerca de x,
N el proceso converge
linealmente a velocidad v.
Si jg 0.x/j
N > 1, diverge.


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/:

Por el contrario, en xkC1 D sen.xk /=xk2 ,


cos.x/
x2
1;23.

g 0.x/ D
En xN  0;929, g 0.0;929/ 

sen.x/
:
x3

24/75

25/75

Definicin Sea ei el error en el paso i de un mtodo iterativo. Si


ei C1
lim
D S < 1;
i !1 ei
se dice que el mtodo converge linealmente con razn S.

Teorema

Si f W R ! R es una funcin continua y derivable, f .r/ D r y


S D jf .r/j < 1, la iteracin de punto fijo converge linealmente a r, con razn S, para
estimaciones iniciales lo suficientemente prximas a r.
0

Velocidad de convergencia

26/75


Definicin Sea una sucesin fxi g1
i D0 , xi 2 R, convergente a x . El orden de conver-

gencia de fxi g es el mximo de los nmeros no negativos r que satisface

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.

Si r D 1, la sucesin se dice que converge linealmente; si r D 2, se dice que lo


hace cuadrticamente; si r D 3, cbicamente, etc.
Definicin Un mtodo iterativo xi C1 D f .xi /; i D 1; 2; : : :, que parte de un punto
x0 , se dice que tiene una velocidad de convergencia de orden r cuando la sucesin fxi g1
i D0
converge con orden r hacia la solucin x D f .x/.

jxi C1 x  j
limi!1 jxi x j

Si la convergencia es lineal y el valor de


convergencia se dice superlineal.

Ejemplo consideremos la sucesin escalar definida por

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.


La convergencia cuadrtica quiere decir, grosso modo, que en las proximidades


del lmite o solucin el nmero de dgitos significativos que aporta cada paso del
proceso al valor de la solucin es el doble que el anterior.

28/75

En la columna 2 de la tabla que sigue se pueden ver los distintos puntos de la


sucesin del primer ejemplo analizado para c D 0;99.
k
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

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

Consideremos la sucesin convergente a 1 que define,


k

xk D c 2 ;
con c  0.


Analicemos su orden de convergencia:


.kC1/

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

Analicemos por ltimo la sucesin que define


1
xk D k :
k


Converge a cero. En la columna 4 de la tabla se pueden ver los primeros


puntos de esta sucesin.

Estudiemos su orden de convergencia:


1
1
jxkC1j
.k C 1/kC1
lim
D lim
D lim 
kC1 D 0:
1
k!1 jxk j
k!1
k!1
1
k
1
C
k
k
k
Es decir, converge superlinealmente a cero.

La convergencia superlineal significa que cada iteracin aade un nmero


creciente de dgitos a la solucin final; concretamente r dgitos ms que la
iteracin precedente.

30/75

31/75

La siguiente tabla resume las diferencias entre varias velocidades de


convergencia.

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

La convergencia de una sucesin de vectores necesita de una funcin que los


convierta en un nmero.
Lo usual es usar algn tipo de norma.

Mtodo de Newton-Raphson


De acuerdo con todo lo expuesto hasta ahora:


Sera deseable disponer de una va sistemtica y fiable de construir un modelo
x D g.x/ para hallar la solucin xN de la ecuacin f .x/ D 0 comenzando
desde cualquier x0, prximo a la solucin, obviando que jg 0.x/j
N < 1.

Isaac Newton, Inglaterra, 1642-1727, la persona con una de las mentes ms


portentosas que ha dado la humanidad, fue el primero que ide esa va y la
forma de llevarla a la prctica sencillamente.

32/75

33/75

Su idea consiste en reemplazar la funcin f .x/ en cada punto del proceso


iterativo por el modelo de ella que define su recta tangente en ese punto
(linealizar la funcin en un punto).


En x D x1 la ecuacin de la recta tangente a f .x/ es


y D f .x1/ C f 0.x1/.x

x1/.

En x D x1, y D f .x1/ por lo que la ordenada de esta ecuacin es la misma


que la de f .
La pendiente de f en x1 es la misma que la de y: f 0.x1/.


El siguiente punto del proceso iterativo lo determina la solucin de


y.x/ D 0, es decir, dnde esa recta tangente corta al eje x:
0 D f .x1/ C f 0.x1/.x

x1/.

La solucin de esta ltima ecuacin es


x D x1

34/75

f .x1/
:
f 0.x1/

En la figura se describe este paso del proceso iterativo de Newton.

x2

x1

f (x)

La relacin general de recurrencia del mtodo de Newton, o Newton-Raphson


Joseph Raphson, Inglaterra, 1648-1715
para la solucin de la ecuacin f .x/ D 0 es
xkC1 D xk

f .xk /
.
f 0.xk /

35/75

Si aplicsemos el mtodo de Newton-Raphson al problema x 3


relacin de recurrencia sera:
xkC1 D xk

sen.x/ D 0, la

xk3 sen.xk /
:
3xk2 cos.xk /

Este es un cdigo de Matlab para resolver x 3


Newton.
function raiz=Newton(fun,x,tol)
%Newton para una variable
x0=0; if nargin<3, tol=eps^0.5; end
while abs(x-x0)>tol
x0=x;
[f df] = fun(x0);
x=x0-f/df;
fprintf( %18.15f\n, x);
end
raiz=x;
end

sen.x/ D 0 por el mtodo de

function [f df]=Newt_1(x)
f = x^3-sin(x);
if nargout<2, return, end
df = 3*x*x-cos(x);
end

Si se parte de x0 D 1;4, con

36/75

>> Newton(@Newt_1,1.4)

los puntos que se obtienen con ese cdigo son estos


xk
1,092024491974
0,958975041400
0,929997813651
0,928629313033
0,928626308746
0,928626308732

El grfico del proceso que lleva a la solucin es este:


Mtodo de Newton

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

Convergencia del mtodo de Newton


Teorema Sea la funcin f W R ! R contina y derivable, al menos dos veces, y un
r en el que f .r/ D 0. Si f 0 .r/ 0, el mtodo de Newton es local y cuadrticamente
convergente a r. El error ei en el paso i de su proceso, ei D jxi rj, satisface
ei C1
D M;
i !1 e 2
i
lim

donde M D

f 00 .r/
.
2f 0 .r/

El teorema garantiza la convergencia del mtodo de Newton slo si se inicia


desde un punto x0 aceptable.

38/75

El mtodo puede no funcionar si jx0

xj
N es grande:

Por ejemplo, considrese el problema clsico de hallar la solucin de


arctan.x/ D 0.

Partiendo de cualquier punto del intervalo [1,39, 1,40], el mtodo cicla


obtenindose x1 D x0, x2 D x0, x3 D x0, : : :

Si x0 < 1;39, el procedimiento converge; si x0 > 1;40, diverge. En la figura


se representan el por qu de esto.
f (x) = arctan(x)

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

Ejemplo Raz mltiple. Apliquemos Newton-Raphson a f1.x/ D x 2


y f2.x/ D x 2 2x C 1 D 0, partiendo de x0 D 2:
f1.x/ D x 2

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

lo que verifica que la multiplicidad es

Teorema Si una funcin continua y derivable m C 1 veces en a; b tiene en r una raz


de multiplicidad m > 1, el mtodo de Newton modificado
xi C1 D xi

mf .xi /
f 0 .xi /

converge cuadrticamente a r.

Ejemplo Estudiar f .x/ D sen.x/ C x 2 cos.x/ x 2 x D 0. Partiendo de


x0 D 1, modificar el cdigo de antes para admitir races mltiples y resolverlo.
f .x/
f 0 .x/
f 00 .x/
f 000 .x/

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/

cada derivada se evala en 0. Como f 000.0/ D




1, sta es una raz triple.

Comparar
function raiz_Newton(fun,x,tol)
function raiz=Newton_multiple_modificado(fun,x,tol,m)

41/75

42/75

Variantes del mtodo de Newton-Raphson




La primeras resultan de incorporar algn mecanismo que impida que ocurran


alguno de los problemas apuntados.

Recordemos que la resolucin de la ecuacin de Newton no slo define un nuevo


punto del proceso iterativo, xkC1, sino una direccin, f 0.xk /, a lo largo de la
cual se da un paso igual a xkC1 xk :


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

Intuitivamente, se puede incorporar un mecanismo de salvaguarda que permita


que, a lo largo de la direccin calculada, siempre disminuya el valor de la
funcin; en concreto,
Si el paso completo xkC1
jf .xkC1/j < jf .xk /j.

xk produce un aumento, disminuirlo hasta que

Ese posible mecanismo lo plasma el algoritmo que sigue.


f .xk /
f 0 .xk /
while .jf .xkC1 /j  jf .xk /j/ do
xkC1 C xk
xkC1
2

xkC1 D xk

end

44/75

xk+1
(xk+1 + xk )/2

xk
xk+1

En la figura se ilustra un caso de cmo el mecanismo apuntado salva las


dificultades que surgiran de aplicar el procedimiento de Newton sin l. El punto
0
xkC1
, que sera el que determinara el paso de Newton, no valdra. Tampoco
0
.xkC1
C xk /=2. S, por fin,
xkC1 D

xk C

0
xkC1
Cxk
2

Mtodo de Newton por diferencias finitas




45/75

Hasta ahora hemos supuesto que se conoce la expresin de la derivada de la


funcin f .x/. No siempre es as.


Bien porque su determinacin analtica es muy complicada la funcin f .x/


surge de un procedimiento experimental, por ejemplo, o,

Porque el usuario del mtodo no desea obtenerla.

En el mtodo de Newton por diferencias finitas se sustituye la derivada de la


funcin f .x/ por su definicin,
f .xk C h/
h!0
h

f 0 .xk / D lim

f .xk /

utilizando la frmula de recurrencia


xkC1 D xk

f .xk /
.f .xk C h/ f .xk //= h

46/75

Teorema Sea la funcin f W D ! R con dominio de definicin en un intervalo abierto


D y derivada continua en l. Supngase que, para todo x 2 D, jf 0 .x/j   para algn
 > 0. Si f .x/ D 0 tiene solucin xN 2 D, existen unas constantes positivas  y 0 tales
N < , la
que si fhk g es una sucesin de nmeros reales tales que 0 < jhk j  0 y si jx0 xj
sucesin fxk g que define
xkC1 D xk

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

La eleccin de h es crtica para el buen funcionamiento del procedimiento: no


debe ser muy pequeo, de tal manera que
f l.xk C h/ f l.xk /
ni que, dado que f es continua y su derivada tambin, al evaluar la funcin en
dos puntos muy prximos, ocurra que
f l.f .xk C h// f l.f .xk //.

Una regla habitual es la de elegir


p
jhj D  mx.ftip x; jxk jg;
donde tip x indica la magnitud tpica de x y  es la precisin de la mquina en
la que se utiliza el correspondiente cdigo.

48/75

Para un problema bien escalado bastara hacer


jhj D

maq
K

Cuando existen problemas de precisin, tambin es posible recurrir a la


aproximacin de f 0.xk / dada por
ak D

f .xk C h/

f .xk
2h

h/

con h D

p
3

maq:
K :

OJO! El nmero de veces que se evala la funcin se duplica.

49/75

Ejemplo Calculemos la solucin de f .x/ D x 2 1, partiendo de x D 2,


mediante Newton y Newton por diferencias finitas.
function newt_x2_1
% Newton de x^2-1=0
x=2.0; x0=0.0;
fx=@(x)x^2-1;
derfx=@(x)2*x;
while abs(x-x0)>eps
x0=x;
x=x0-fx(x0)/derfx(x0);
fprintf( %18.15f\n,x)
end
end

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

Newton Dif. Fin.


x0
x1
x2
x3
x4
x5

1,250000000000000
1,025000001341105
1,000304878371890
1,000000046463329
1,000000000000001
1,000000000000000

Como se puede observar, son prcticamente los mismos.




En la prctica, si se acondicionan los parmetros convenientemente, el mtodo


de Newton y el de Newton por diferencias finitas funcionan casi igual.

51/75

Mtodo de Newton-Raphson relajado




Esta variante utiliza como direccin de bsqueda la misma en cada iteracin:


f 0.x0/.

f (x)

x3 x2 x1

x0

Si la pendiente de f en x0 difiere significativamente de la de f en la solucin,


la convergencia puede ser muy lenta o no existir.
La derivada de la funcin se puede evaluar cada n iteraciones.

52/75

Si se utiliza esta variante para resolver x 3 sen.x/ D 0, partiendo de x0 D 1;1,


los puntos del proceso que se obtienen son los de la tabla.
k

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

La convergencia es bastante peor que la del mtodo de Newton.

53/75

El cdigo de Matlab que se ha utilizado es este.


x1=1.1; tol=sqrt(eps);
dx = 3*x1*x1-cos(x1); x2=1;
%
fx = @(x)x^3-sin(x);
% funcin
%
while abs(x2-x1)>tol
fprintf( %18.15f\n, x1);
x1=x2;
x2=x1-fx(x1)/dx;
end

54/75

Una variante interesante es la conocida como composite Newton, que evala la


derivada cada dos iteraciones.

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

Si se resuelve x 3 sen.x/ D 0, partiendo de x0 D 1;4, los puntos del proceso


que se obtienen con
>> raiz=Newton_composite(@Newt_1,1.4)
son los que siguen.

>> 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

Mtodo debido a Edmund Halley, Inglaterra, 1656-1742.

Su idea consiste en reemplazar la funcin f .x/ en cada punto del proceso


iterativo por su aproximacin por Taylor hasta segunda derivada en ese punto.


En x D x1 la aproximacin hasta segunda derivada de f .x/ es


0

y D f .x1 / C f .x1 /.x

00

x1 / C f .x1 /

.x

x1 /2
.
2

El siguiente punto del proceso iterativo lo determina la solucin de


y.x/ D 0, es decir, dnde esa funcin corta al eje x:
0

0 D f .x1 / C f .x1 /.x

00

x1 / C f .x1 /

.x

x1 /2
.
2

57/75

La solucin de esta ltima ecuacin es


x D x1 C

f 0 .x1 /

f 0 .x1 /2 2f .x1 /f 00 .x1 /


:
f 00 .x1 /

La relacin general de recurrencia del mtodo es esta:


xkC1 D xk

2f .xk /f 0.xk /
2f 0.xk /2

f .xk /f 00.xk /

Una variante muy similar es la de Chebyshev,


xkC1 D xk



f .xk /
f .xk /f 00 .xk /
1C
f 0 .xk /
2f 0 .xk /2

Pafnuty Lvovich Chebyshev,


Rusia, 1821-1894.

Una codificacin de este mtodo para resolver x C ln.x/ D 0 es la que sigue.


function HalleysMethod_log
%Halleys Method; caso particular f(x) = x + ln(x)
i = 1; p0 = 1; N = 100;
% initial conditions
error = 0.000000001;
% precision required
syms x
% Symbolic variables, functions, and expresions in Matlab
f(x) = x + log(x);
% The function we are root finding.
dx = diff(f);
% first and second derivatives of f(x)
ddx = diff(dx);
while i <= N
p = p0 - (f(p0)/dx(p0))*(1 - (f(p0)*ddx(p0)/dx(p0)^2))^(-1);
%Implementation of Halleys Method.
if (abs(p - p0)/abs(p)) < error
%stopping criterion when difference between iterations is below tolerance
fprintf(Solution is %15.13f; %3.0f iterations.\n, double(p),i)
return
end
i = i + 1;
p0 = p;
% update p0
fprintf(%15.13f; iteration %3.0f\n, double(p0),i)
end
fprintf(Solution did not coverage within %d iterations; required precision of %d \n, N, error)
end

>> tic, HalleysMethod_log, toc


0.6000000000000; iteration
2
0.5676852524497; iteration
3
0.5671434553266; iteration
4
0.5671432904098; iteration
5
Solution is 0.5671432904098;
5 iterations.
Elapsed time is 0.664269 seconds.

La ejecucin:

La convergencia del mtodo de Halley es cbica.

58/75

59/75

ndice


El problema


Mtodo de la biseccin

Iteracin de punto fijo

Velocidad de convergencia

Mtodo de Newton

Variantes del mtodo de Newton

Mtodos sin derivadas

60/75

Mtodos sin derivadas


Mtodo de la secante


Este mtodo utiliza como direccin de bsqueda, en vez de la que marca la


tangente en un punto, la que determina una recta secante a la funcin en dos
puntos sucesivos del proceso iterativo.

Si en una iteracin k del proceso la ecuacin de Newton es


xkC1 D xk

f .xk /
;
f 0.xk /

la idea es emplear, en vez de f 0.xk /,


f .xk /
xk

f .xk 1/
:
xk 1

La relacin de recurrencia del proceso iterativo queda


xkC1 D xk

xk 1
f .xk /.
f .xk 1/

La figura ilustra esta aproximacin.

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

Resolvamos con este mtodo y Matlab la ecuacin x 3


function raiz=Newton_sec(fun,x,tol)
%Newton secante para una variable
x1=x; x2=x-0.1; if nargin<3, tol=eps^0.5; end
while abs(x2-x1)>tol
x0=x1; x1=x2;
[f df] = fun(x0,x1);
x2=x1-f/df;
fprintf( %18.15f\n, x2);
end
raiz=x2;
end

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

La convergencia, con x0 D 1;4 y x1 D 1;4, y la instruccin de Matlab


>> Newton_sec(@Newt_sec_1,1.4) es esta:
k

xk

1
2
3
4
5
6
7

1,065107226548895
0,978070204938512
0,937387385189276
0,929273092828631
0,928635284046901
0,928626318027714
0,928626308731868

63/75

Mtodo de la falsa posicin




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

La velocidad de convergencia es superlineal de orden 1,618: la razn urea de


nuevo.

64/75

En determinadas circunstancias desfavorables, tanto el mtodo de la secante


como el de la falsa posicin pueden presentar problemas de convergencia.

En la figura se representa un ejemplo de convergencia lenta.


x2
f (x)

x
x1 x3

Mtodo de Muller


65/75

Presentado en 1956.

David Eugene Muller, EE.UU., 1924-2008.

Utiliza una interpolacin cuadrtica de tres puntos anteriores del proceso


iterativo para extrapolar el nuevo punto del proceso.

f (x)

p(x)

x0

x1

x2

x3

El procedimiento aproxima a x0, x1 y x2 el polinomio


x2/2 C b.x

p.x/ D a.x

66/75

x2 / C c

que pasa por .x0; f .x0//, .x1; f .x1// y .x2; f .x2//.




Los parmetros a, b y c se determinan mediante estas condiciones:


x2 /2 C b.x0
x2 /2 C b.x1

f .x0 / D a.x0
f .x1 / D a.x1
f .x2 / D c:


x2 / C c;
x2 / C c

Resolviendo el sistema de 2 ecuaciones con 2 incgnitas


h.x x /2 .x x /i h i hf .x / f .x /i
0
2
0
2
0
2
a
D
b
.x
x /2
.x
x /
f .x / f .x /
1

se obtiene la expresin de los parmetros a y b:


 
a
D
b

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

Para determinar el nuevo punto del proceso se aplica la frmula


zD

2c
;
p
2
b b
4ac

escogindose el signo, de los dos posibles, que garantice el denominador ms


grande en valor absoluto:

Si b > 0, el signo positivo;

si b < 0, el negativo.

El nuevo punto x3 ser entonces


x3 D x2 C z:

68/75

Este cdigo de Matlab implementa el mtodo.


function Muller_2(fx,x0,x1,x2) % Mtodo de Muller
tol=eps(double);
fx0=fx(x0); fx1=fx(x1); fx2=fx(x2); iter=1;
while abs(fx2)>tol
c=fx2; d0=x0-x2; d1=x1-x2; det=d0*d1*(x0-x1);
b=(d0*d0*(fx1-fx2)-d1*d1*(fx0-fx2))/det;
a=(d1*(fx0-fx2)-d0*(fx1-fx2))/det;
di=sqrt(b*b-4*a*c);
isig=1; if b<0 isig=-1; end
z=(-2)*c/(b+isig*di);
x3=x2+z;
if abs(x3-x1)<abs(x3-x0)
u=x1; x1=x0; x0=u;
u=fx1; fx1=fx0; fx0=u;
end
if abs(x3-x2)<abs(x3-x1)
u=x2; x1=u;
u=fx2; fx1=u;
end
x2=x3; fx2=fx(x2);
if ~isreal(x2)
fprintf(%17.14f+%17.14fi %23.15f %4.0f\n,real(x2),imag(x2),fx2,iter);
else
fprintf(%17.15f %23.15e %4.0f\n,x2,fx2,iter);
end
iter=iter+1;
end
end

69/75

El proceso de convergencia de la resolucin de la ecuacin x 3


partiendo de x0 D 1;5, x1 D 1;2 y x2 D 1;0 con

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

Obsrvese que el nmero de iteraciones, para la precisin que se obtiene,


decrece apreciablemente comparndolo con el de otros mtodos.

70/75

Si se trata de calcular una de las races complejas de x 3 C x 2 C x C 1 con este


mtodo resultara lo que sigue.
>> Muller_2(@Muller_2_2,0,0.1,1)
-0.21428571428571+0.65595130066457i 0.668124392614188
-0.16304914264115+1.15401500391091i 0.178872980763637
0.03069686090353+0.97963558152672i-0.016395820078345
0.00106074539714+1.00049046815007i-0.003104663615609
-0.00000339553880+1.00000042898932i 0.000005933119030
-0.00000000004554+0.99999999997470i 0.000000000141669
-0.00000000000000+1.00000000000000i 0.000000000000000
>>c=[1 1 1 1];
>> roots(c)
ans =
-1.0000
-0.0000 + 1.0000i
-0.0000 - 1.0000i
>>

1
2
3
4
5
6
7

El mtodo de Brent


71/75

En su versin ms reciente fue formulado en 1973 por Richard Peirce Brent,


Australia, 1946-. Anteriormente, en la dcada de 1960, fue propuesto por
Dekker y Van Wijngaarden.
Richard Peirce Brent, Australia, 1946-.

Utiliza simultneamente el mtodos de la biseccin y el de Muller (o secante). Se


aplica a un intervalo a; b en cuyos extremos la funcin adopta signos distintos.

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

Se aplica una interpolacin cuadrtica de Lagrange inversa, es decir, no


y D p.x/ sino x D p.y/, a los tres puntos .f .xi /; xi /, .f .ai /; ai / y
.f .bi /; bi / con el fin de reemplazar uno de ellos con aquel nico donde
x D p.y D 0/.
1.5 Root-Finding without Derivatives | 65

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

Si el error hacia atrs mejora y el intervalo de confinamiento de la solucin se


reduce al menos a la mitad, el punto obtenido reemplaza a uno de los tres
vigentes.

Si no se cumplen los requisitos anteriores, se intenta el mtodo de la secante


con el mismo objetivo. Si tambin falla, se realiza un paso del mtodo de la
biseccin.

74/75

Este mtodo lo usa fzero de Matlab. Una implementacin interesante es esta.


function value = Brent (a,b,machep,t,f)
% Se calcula un c en [a,b] tal que f(c)=0.
%
%
En [a,b] debe darse un cambio de signo en f(x).
%
La precisin de la raz es 6*machep*abs(c)+2*t.
%
sa = a; sb = b; fa = f(sa); fb = f(sb);
c = sa; fc = fa; e = sb-sa; d = e;
while 1
if abs(fc)<abs(fb), sa=sb; sb=c; c=sa; fa=fb; fb=fc; fc=fa; end
tol = 2.0*machep*abs(sb) + t;
m = 0.5*(c-sb);
if abs(m)<=tol || fb==0.0, break, end
if abs(e)<tol || abs(fa)<=abs(fb)
e = m; d = e;
% Biseccin, decrece poco
else
s = fb/fa;
if sa==c, p=2.0*m*s; q=1.0-s;
% Interpolacin lineal
else
q = fa/fc; r = fb/fc;
% Interpolacin cuadrtica
p = s*(2.0*m*q*(q-r)-(sb-sa)*(r-1.0)); %
inversa
q = (q-1.0)*(r-1.0)*(s-1.0);
end
if 0.0<p, q=-q;
else
p=-p;
end
s = e; e = d;
if 2.0*p<3.0*m*q-abs(tol*q) && p<abs(0.5*s*q)
d = p/q;
% Interpolacin aceptada
else
e = m; d = e;
% Biseccin
end
end
sa = sb; fa = fb;
% Completa paso

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

Probemos Brent y fzero con el problema anterior x 3

>> f1=@(x) x^3-2*x^2+x*4/3-8/27;


>> tic, x=Brent(0,1,eps,eps,f1), toc
x =
0.666670143350873
Elapsed time is 0.000297 seconds.

>> tic, fzero(f1,[0 1],optimset(Display,iter)), toc


Func-count
x
f(x)
Procedure
2
1
0.037037
initial
3
0.888889
0.0109739
interpolation
4
0.843776
0.00555553
interpolation
5
0.798619
0.00229748
interpolation
6
0.798619
0.00229748
bisection
7
0.755766
0.00070733
interpolation
8
0.737384
0.000353658
interpolation
9
0.71944
0.000146977
interpolation
10
0.71944
0.000146977
bisection
11
0.702418
4.56958e-05
interpolation
12
0.695012
2.27741e-05
interpolation
13
0.687828
9.47672e-06
interpolation
14
0.687828
9.47672e-06
bisection
15
0.681016
2.95457e-06
interpolation
16
0.67804
1.47117e-06
interpolation
17
0.675159
6.124e-07
interpolation
18
0.675159
6.124e-07
bisection
19
0.672426
1.91084e-07
interpolation
20
0.671232
9.51209e-08
interpolation
21
0.670075
3.95999e-08
interpolation
22
0.670075
3.95999e-08
bisection
23
0.668979
1.23591e-08
interpolation
24
0.668499
6.15183e-09
interpolation
25
0.668035
2.56116e-09
interpolation
26
0.668035
2.56116e-09
bisection
27
0.667595
7.99392e-10
interpolation
28
0.667402
3.97894e-10
interpolation
29
0.667216
1.65654e-10
interpolation
30
0.667216
1.65654e-10
bisection

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Sistemas de ecuaciones lineales


Mtodos directos de resolucin

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_sistemas_ecuaciones_lineales_2016.pdf

1/136

2/136

ndice
 El problema y consideraciones tericas
 Mtodos directos: Eliminacin de Gauss


Pivotacin

Algoritmo

Nmero de operaciones

Mtodo de Gauss-Jordan

 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
 Sistemas con matrices especiales

3/136

El problema y sus aspectos tericos




Se trata de obtener la solucin de un sistema de ecuaciones lineales como


a11x1 C a12x2 C    C a1nxn D b1
a21x1 C a22x2 C    C a2nxn D b2
:::
:::
:::
:::
am1x1 C am2x2 C    C amnxn D bm:
Hay que obtener el valor del vector x D x1; : : : ; xnT que hace que se cumplan
simultneamente todas las igualdades.

Los nmeros aij son los coeficientes del sistema y b D b1; : : : ; bmT el trmino
independiente.

4/136

Si se introducen las matrices


2
3
a11 a12    a1n
6
7
6 a21 a22    a2n 7
A D 6 :: ::
::: 7 ;
4 : :
5
am1 am2    amn

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

el sistema se puede representar de forma ms compacta por

Ax D b:


En general A 2 Rmn, x 2 Rn y b 2 Rm, pero tambin pueden pertenecer al


cuerpo de los nmeros complejos.

 Casos posibles de sistemas lineales, una vez ms

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) < n < m


rango(A) < n < m

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

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

rango(A) < m < n

rango(A) < m < n

m<n

rango(A) < m < n

3b

3b

5/101

6/136

Recordemos algunos resultados de la teora de lgebra lineal.


Teorema Compatibilidad de un sistema de ecuaciones lineales La ecuacin Ax D b
admite solucin si y slo si

rango.Ajb/ D rango.A/.

Corolario Si A mn tiene rango m, Ax D b siempre tiene solucin.


Teorema Si x 0 es una solucin de Ax D b, el conjunto de soluciones de la ecuacin
est dado por x 0 C ker.A/.

Corolario Una solucin de Ax D b es nica si y slo si ker.A/ D ;.

7/136

Teorema La ecuacin Ax D 0, A mn, n > m, siempre tiene una solucin no trivial.


Teorema Si A es una matriz cuadrada de orden n, las siguientes condiciones son
equivalentes:
1. rango.A/ D n.
2. ker.A/ D ;.

3. Los vectores columna de A son linealmente independientes.


4. Los vectores fila de A son linealmente independientes.
5. Existe una matriz de orden n, A 1 , tal que A 1 A D AA

DI

8/136

Objective: Find the temperature of an integrated circuit (IC)


Ejemplo Hay que modelizar el sistema de refrigeracin de una tarjeta
package mounted on a heat spreader. The system of equations is
electrnica para poder usar un reloj de impulsos con la mayor frecuencia de
obtained from a thermal resistive network model.
oscilacin posible.

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

Si el sistema necesita Qc watios de potencia y se supone un modelo resistivo del


flujo de aire entre los nudos del sistema, aplicando los principios de conservacin
de la energa se obtienen estas ecuaciones:
Q1 D

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 /

Se conocen Qc y Ta . Las resistencias se pueden conocer sabiendo el material de


las placas y sus propiedades.

Las incgnitas son entonces Q1, Q2, Q3, Q4, Tc , Tp y Tw .

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

En forma matricial, el sistema tiene la siguiente expresin:


2
32 3 2 3
R1 0 0 0
6 0 R2 0 0
6 0 0 R3 0
6 0 0 0 R4
6 0R 0 0
5
4
1 0 1 0
1 1 0 1

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

Los flujos de calor se obtendrn resolviendo este sistema.

En Matlab, si R1 D 100, R2 D 200, R3 D 50, R4 D 100, R5 D 300,


Ta D 50 y Qc D 25, en su zona de trabajo habra que hacer esto:
A=[100 0 0 0 -1 1 0; 0 200 0 0 0 -1 1; 0 0 50 0 -1 0 0;...
0 0 0 100 0 -1 0; 0 300 0 0 0 0 -1; 1 0 1 0 0 0 0;1 -1 0 -1 0 0 0]
A =
100
0
0
0
0
1
1

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

Analicemos geomtricamente el problema de resolver un sistema de dos


ecuaciones lineales con dos incgnitas:

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

El proceso de obtener la solucin del sistema tiene como objeto determinar


las coordenadas del punto donde se cortan.

13/136

Expresin grfica de diversas formas que pueden adoptar los sistemas de


ecuaciones lineales.

Generalizando a Rn, la resolucin de un sistema de ecuaciones lineales consiste


en determinar las coordenadas
del(os) punto(s) de interseccin de los
www.FreeLibros.me
hiperplanos asociados a cada una de las ecuaciones.

x3 D

En R , por ejemplo, el sistema


2x2 C x3 D
2x2 8x3 D
4x1 C 5x2 C 9x3 D
x1

tiene por solucin, nica, x D 29; 16; 3T .

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

.29/ " 2.16/ C .3/ D


2.16/ " 8.3/ D
"4.29/ C 5.16/ C 9.3/ D

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

&-&.&/5"3: 308 01&3"5*0/4


 5HSODFHPHQW 5HSODFHRQHURZE\W
URZ

15/136

Geomtricamente, en el subespacio Im.A/, si se escribe el sistema de dos


ecuaciones con dos incgnitas de la forma
 
 
 
a11
a12
b
x1 C
x2 D 1 ;
a21
a22
b2
el problema es el de descomponer linealmente el vector b en los dos vectores
columna de la matriz de coeficientes.
 
b1
b2


a11
a21




a12
a22

En Rn el problema es el de la bsqueda de la descomposicin lineal de un vector


segn los n vectores de la base de Im.A/: los vectores columna de A.

16/136

ndice
 El problema; consideraciones tericas


Mtodos directos. 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
 Sistemas con matrices especiales

17/136

Mtodos directos. Eliminacin de Gauss




Los mtodos directos resuelven el problema en etapas, siendo el nmero de


stas fijo y funcin de la dimensin del problema.

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.

Carl Friedrich Gauss, Alemania, 1777-1855

Supondremos que la matriz cuadrada A es de rango completo regular, por lo


tanto invertible, y que si eventualmente no lo es el procedimiento deber
detectarlo.

18/136

La mecnica del mtodo consiste en aplicar al sistema


9
a11x1 C a12x2 C    C a1nxn D b1 >
>
>
=
a21x1 C a22x2 C    C a2nxn D b2
:::
:::
:::
::: > Ax D b
>
>
an1x1 C an2x2 C    C annxn D bn ;
n

1 transformaciones lineales que lo conviertan en otro ms fcil de resolver.

Concretamente, en uno triangular superior de la forma


b10
b20

9
=

u11x1 C u12x2 C    C u1nxn D


u22x2 C    C u2nxn D
:::
:::
;
0
unnxn D bn;

U x D b0:

19/136

Un sistema triangular superior, siempre y cuando se satisfaga que


ui i 0;

i D 1; : : : ; n;

es fcilmente resoluble de manera recurrente mediante las frmulas


!
n
X
1
0
uki xi ;
k D 1; : : : ; n:
xk D
b
ukk k
i DkC1

Este proceso se conoce como sustitucin inversa.

20/136

En cada una de esas n


hay que llevar a cabo:

1 etapas, con otras tantas transformaciones lineales,

1. Una multiplicacin de una de las ecuaciones del sistema por un nmero


distinto de cero.
2. Una sustitucin de una ecuacin del sistema (o varias) por la que resulta de
sumarle otra multiplicada por un factor.
3. Una posible permutacin del orden en que aparecen en el sistema las
ecuaciones del mismo.

21/136

Ejemplo Se desea resolver el sistema


2x1 C x2
C 4x4 D
4x1 2x2 C 3x3 7x4 D
4x1 C x2
2x3 C 8x4 D
3x2 12x3
x4 D

Escrito en forma matricial,


2
2 1
6
6 4 2
AD6
4 4 1
0 3

2
9
2
2:

Ax D b, los distintos componentes son


2 3
2 3
3
x1
2
0 4
6 7
7
6 7
3 77
6x27
6 97
7; b D 6 7 y x D 6 7:
2 85
4x35
4 25
x4
12 1
2

22/136

Reconfiguremos inicialmente la matriz A, aadindole a su derecha la columna


b es decir,
del trmino independiente b, y llamemos a la nueva matriz A;
2
3
2 1 0 4 2
6
7
4
2
3
7
9
6
7
b D Ajb D 6
A
7:
4 4 1 2 8 25
0 3 12 1 2
Apliquemos ahora la mecnica del mtodo en 3 etapas.

Etapa 1


Comprobemos el valor del coeficiente aO 11 denominado pivote.


Si es distinto de cero, pivotando sobre l, hagamos cero los coeficientes de la
primera columna por debajo de ese aO 11.

Para ello, calculamos para cada fila 2; : : : ; n los factores o multiplicadores


ri D

i D 2; : : : ; n:

A continuacin, restamos de las filas i D 2; : : : ; n, la primera multiplicada por


ri . El resultado es que todos los coeficientes debajo de la diagonal principal de
la columna 1 se anularn.


b debajo de la primera fila se vern afectados


Los dems coeficientes de A
como indica esta expresin:

aO ij

aO i1
;
aO 11

23/136

aO ij

ri  aO 1j ;

i D 2; : : : ; nI j D 2; : : : ; n C 1:

En el ejemplo, los multiplicadores son


r2 D aO 21=aO 11 D 4=2 D 2
r3 D aO 31=aO 11 D 4=2 D 2
r4 D aO 41=aO 11 D 0=2 D 0:

24/136

b que cambian de valor son:


Los coeficientes de la matriz A
en la 2a fila:

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

Obsrvese que se hubiese obtenido exactamente el mismo resultado de haber


b por la denominada transformacin de Gauss que define la
premultiplicado A
matriz triangular inferior unitaria
2
3
1000
6
7
6 2 1 0 07
L1 D 6
7;
4 2 0 1 05
0001
denominada matriz de transformacin de Gauss.

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

La matriz L1 tambin se puede escribir de la forma L1 D I

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

La nica diferencia con L1 es el signo de los coeficientes de la primera columna


debajo de la diagonal principal.


b 1 D L1 A.
b
En resumen, A

27/136

Etapa 2


Hagamos cero los coeficientes debajo de la diagonal principal de la 2a columna


b 1.
de A

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:


Si no hay ninguno, esta columna es combinacin lineal de la primera y por


tanto la matriz es singular.

Si hay varios, escojamos el de mayor valor absoluto e intercambiemos la fila


de ese coeficiente con la segunda.

28/136

En el ejemplo, el coeficiente de mayor valor absoluto debajo de la diagonal


principal en la segunda columna, 3, se encuentra en la fila 4. Intercambiamos
esa fila 4 con la 2. Se obtendr
3
2
2 1 0 4 2
7
6
60 3 12 1 27
0
b
A1 D 6
7:
40 1 2 0 25
0 0 3 1 5
b 1 por la permutacin
Esto mismo se obtiene premultiplicando A
2
3
1000
6
7
60 0 0 17
P1 D 6
7:
40 0 1 05
0100

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

Apliquemos a continuacin a la columna 2 la misma idea que a la columna 1 y


hagamos cero sus coeficientes 3 a n.

Los nuevos multiplicadores saldrn de la expresin


0

1
aO i2
ri D 10 ;
aO 22

i D 3; 4:

b 0 por debajo de la segunda


Los nuevos valores de los coeficientes de la matriz A
1
fila se obtendrn aplicando la expresin
0

aO ij1

aO ij1

1
ri  aO 2j
;

i D 3; 4I j D 3; : : : ; 5:

30/136

Los valores de los multiplicadores para el ejemplo son


0

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

La nueva matriz resultado de estas


2
2
6
60
b
A2 D 6
40
0

transformaciones es
3
2
1 0 4
7
3 12 1
27
7;
0 2 1=3 8=35
5
0 3 1

matriz que se expresa a partir de la inicial como


2
3
1
000
6
7
1 0 07
60
donde L2 D 6
7:
40 1=3 1 05
0
001

b 2 D L2 P 1 L1 A;
b
A

32/136

Etapa 3


Para conseguir transformar el sistema original en uno triangular superior slo


2
resta anular el coeficiente aO 43
.

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:

b 2 por debajo de la tercera


Los nuevos valores de los coeficientes de la matriz A
fila se obtendrn aplicando la expresin

aO ij2

aO ij2

2
ri  aO 3j
;

i D 4I j D 4; 5:

33/136

En concreto, en la cuarta fila:


2
aO 43
2
aO 44
2
aO 45

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:

La nueva matriz resultado de estas


2
2
6
0
b3 D 6
A
6
40
0

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

En conclusin, la matriz original que defina el sistema, A, se puede transformar


b
en la triangular superior U aplicndole las mismas transformaciones que a A.
Es decir,
U D L3L2P 1L1A:

35/136

Como a b tambin se le han efectuado las mismas transformaciones llegndose


a b0, resolver el sistema de ecuaciones original es equivalente a resolver
U x D b0

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

La solucin se lleva a cabo mediante sustitucin inversa:


x4 D

2;

sustituyendo en la tercera ecuacin,


x3 D

8=3

. 2/.1=3/
D
2

1;

y, a su vez, hacindolo en la segunda,


x2 D


. 1/. 2/

. 12/. 1/
3

D 4:

Por ltimo, sustituyendo los valores de las variables ya calculados en la primera


ecuacin se obtiene
2 4. 2/ 1.4/
x1 D
D 3:
2

37/136

La solucin de nuestro ejemplo es pues


2 3 2
x1
6 7 6
6x27 6
6 7D6
4x35 4
x4

3
7
47
7:
15
2

38/136

Pivotacin


Veamos qu ocurre si resolvemos con el procedimiento estudiado



  
 
4
10 1
x1
1
D
;
1 1
x2
2

en una mquina terica con slo tres dgitos significativos que redondea.


Aplicando la mecnica apuntada, como 10 4 no es cero, en una primera etapa


ordinaria se obtendra una nueva matriz A 1 y un nuevo vector b1 as:




4
10
1
1
A1 D
y
b
D
:
1
0 1 104
2 104

39/136

Ahora bien, el nmero 1 104 D 9999 la mquina lo redondeara a


la misma forma procedera con 2 104. La solucin del sistema sera

104; de

104
D1
x2 D
104
1 x2
x1 D
D 0;
10 4
muy distinta de la real 0;99989999; 1;00010001T .


La eleccin del pivote, y su uso, adems de que el multiplicador no salga de un


posible ai i D 0, tambin tiene por objeto que ese multiplicador no tenga una
magnitud mucho mayor que 1 con el fin de aumentar la estabilidad numrica del
procedimiento,


Es por esto por lo que siempre se escoge el coeficiente pivote de mayor


magnitud de entre los de debajo de la diagonal principal.

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

Continuando con el procedimiento normal, despus de la primera etapa, se


llegar a




1
1
2
A 01 D
y b01 D
:
4
0 1 10
1 2  10 4
Por redondeos internos, la mquina representara
 
 
1
1
2
A 01 D
y b01 D
:
01
1

La solucin de este sistema de ecuaciones sera


   
x1
1
D
:
x2
1

41/136

0,9998
D 0,99989999
0,9999
x1 D 1,00010001:

Solucin mucho mejor que la anterior, pues la real es x2 D

La diferencia entre las dos formas de proceder anteriores es importante. En la


primera, al usar el multiplicador 104, el efecto de restar 104 veces la ecuacin
superior de la ecuacin inferior hace que la primera domine la ecuacin final.

Aunque al principio del proceso haba dos ecuaciones, o fuentes de informacin


independientes, actuando de la primera manera, despus de la primera
eliminacin quedan en esencia dos copias de la ecuacin superior pues la
inferior, a efectos prcticos, ha desaparecido. La solucin obtenida con esa
primera forma de actuar, como es lgico, no satisface la ecuacin inferior.
A este efecto se le conoce como dominancia.

42/136

El proceso descrito de intercambiar filas se denomina pivotacin parcial.

Su por qu radica en la aritmtica de precisin finita con la que trabajan todos


los ordenadores y en el hecho de que los factores o multiplicadores antes
introducidos son inversamente proporcionales al coeficiente pivote: si ste es
demasiado pequeo puede amplificar los errores de redondeo a lo largo del
proceso de solucin y favorecer la dominancia que se ha descrito.

Partial Pivoting

43/136

Una segunda estrategia de pivotacin es la pivotacin total. Consiste en buscar


en una etapa i no slo el coeficiente de mayor valor absoluto
en la columna
Full Pivoting
correspondiente,
en bytodo
que
porthetratar
de la matriz: el
To avoidsino
division
zero, lo
swap
thequeda
row having
zero pivot
with onejaof the
rows below it.
mKaxi kn; ij
n kj j.
Rows completed in
forward elimination.
0

Rows completed in
forward elimination.

Row with zero pivot


0 element

Rows to search for a


more favorable pivot
*
element.

Row with zero pivot eleme

Rows to search for a


more favorable pivot
element.

Columns to search for a more


favorable pivot element.

To minimize the eect of roundo, always choose the row that

La pivotacin
es lapivot
estrategia
parai.e.,minimizar
putstotal
the largest
element onptima
the diagonal,
nd ip sucherrores.

En la prctica, la pivotacin parcial produce buenos resultados y excelentes


prestaciones numricas por lo que rara vez se usa la total.

that |aip,i| = max(|ak,i |) for k = i, . . . , n

44/136

Algoritmo
 Resolucin de Ax D b

 Transformacin de la Matriz Aumentada Ajb


for i D 1 to n 1
Determinar ndice p 2 fi; i C 1; : : : ; ng tal que ja.p; i /j D mKaxi j n ja.j; i /j.
Intercambiar filas p e i .
for j D i C 1 to n
 D a.j; i /=a.i; i /
for k D i C 1 to n C 1
a.j; k/
a.j; k/   a.i; k/

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

En cdigo de Matlab, para cualquier sistema.

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

Desde el punto de vista de la codificacin del algoritmo, conviene mejorar:




Que no es realmente necesario intercambiar las filas una vez elegido el


coeficiente pivote de cada etapa; basta con tener constancia en cada
momento dnde estn las filas que se intercambian.

Que tal como est estructurado el programa slo se podra resolver un


sistema el definido por el b dado y no, como es lo ms habitual, distintos
sistemas con la misma matriz A y diversos trminos independientes.

Lo primero se puede paliar mediante la introduccin de vector ndice, IPIV, de


dimensin el nmero de ecuaciones, inicializado a la posicin inicial en el
sistema de cada una de las ecuaciones; es decir,
2 3

47/136

1
627
6 7
IPIV D 63 7 :
4 ::: 5
n

Cuando haya que intercambiar dos filas en un etapa, no se har intercambiando


fsicamente los coeficientes de esas dos filas, sino las correspondientes de IPIV.

Si en una primera etapa hay se utilizar como pivote el de la cuarta fila,


2 3
4
627
6 7
637
IPIV D 61 7 :
6:7
4 :: 5
n

48/136

Si al final de un proceso de resolucin de un sistema de cinco ecuaciones con


cinco incgnitas, el vector puntero resultase
2 3
4
627
6 7
IPIV D 657 ;
415
3

la matriz A 0 que se obtendra no resultara ser estrictamente triangular superior.


Tendra la forma que sigue.

Para obtener Ax D b habra que aplicar esas mismas manipulaciones de filas a


b, o tenerlo en cuenta.

Para evitar el segundo inconveniente, habra que guardar adecuadamente la


informacin que definen los multiplicadores asociados a cada fila de cada etapa.

49/136

Los i 1 multiplicadores se pueden guardar en los lugares vacos o mejor


dicho, que se hacen cero que provocan las transformaciones que definen:
en la etapa i , debajo de la diagonal principal en la columna i .

En el ejemplo, con esta idea, al final del proceso:


2

6
6
AD6
4

Los multiplicadores eran

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

Nmero de operaciones del mtodo




Dos de los factores ms importantes que influyen en las prestaciones de un


algoritmo son:


Su estabilidad numrica ante los diversos errores.

La cantidad de tiempo necesaria para completar los clculos que conlleva.

Ambos factores dependen del nmero de operaciones aritmticas necesarias para


la aplicacin del algoritmo.

Los tiempos necesarios para realizar en un ordenador la multiplicacin y la


divisin de dos nmeros son aproximadamente iguales y considerablemente
mayores, en trminos relativos, que los requeridos para realizar la suma o
diferencia, que tambin son muy semejantes entre s.

51/136

La eliminacin de Gauss para resolver un sistema de ecuaciones lineales, en la


primera etapa, realiza las operaciones que se representan simblicamente en el
esquema que sigue.


     

0 2222
:: ::
:: :: :: ! :: ::
:: :: ::

0 2222

0 2222


El smbolo 2 designa los coeficientes de la matriz que se ven afectados en esa


etapa y que, en principio, son distintos de cero.

52/136

Si en la etapa i se est transformando una matriz n  n, las operaciones que en


ella se realizan son:
n
.n

divisiones para el clculo de los multiplicadores;


i C 1/ multiplicaciones y restas para modificar los coeficientes
de la matriz por debajo de la fila i que no estn en la
propia columna i.

i /.n

En cada etapa se efectan,


.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

1 etapas de que consta el proceso, se harn


n 1
X
.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

El comportamiento de estos valores para n grande tiende a


1 3
n.
3

El proceso de sustitucin inversa requiere .n i / multiplicaciones y .n


sumas, para cada trmino del sumatorio, y una resta y una divisin.


El nmero total de operaciones de todo el proceso es


1C

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

Contando la totalidad de la transformacin de la matriz del sistema y la


sustitucin inversa, la eliminacin de Gauss requiere
2n3 C 3n2
6

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.


Para valores de n, estas expresiones tienden a


1 3
n  O.n3=3/
3
lo que refleja la importante magnitud del nmero de operaciones.

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

Mediante estas frmulas se requieren:


8
< .n C 1/ sumas,
.n C 2/ multiplicaciones y
:
n
divisiones.

Para diez ecuaciones con diez incgnitas se requerirn:


8
740 operaciones utilizando eliminacin de Gauss.
<
500.000.000 operaciones, aproximadamente, aplicando
:
las frmulas de Cramer.

57/136

Mtodo de Gauss-Jordan

Wilhelm Jordan, Alemania, 1842-1899.

Es una extensin natural de la eliminacin de Gauss para obtener A 1. Consiste


en hacer cero de cada columna de A no slo los coeficientes que estn debajo
de la diagonal sino tambin los de arriba.

Una etapa i de la eliminacin de Gauss estaba caracterizada por la matriz


Li D I
donde

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

En la etapa i de este mtodo, la matriz de transformacin de Gauss-Jordan es


Ti D I
donde

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 :

Si se tiene en cuenta que A 0 D A y A n D I, se tendr que


Tn
y por tanto A

fila i

i e Ti ;

D Tn

1    T 2T 1A

D I;

1    T 2T 1:

Las multiplicaciones y divisiones, y sumas y restas, son O.n3=2/ .

Condicionamiento de sistemas

59/136

En un sentido general se dice que un problema o un algoritmo est bien


condicionado si pequeas perturbaciones en los parmetros que lo definen
producen pequeos cambios en los resultados.

Consideremos el ejemplo de una carga sujeta a una superficie firme mediante un


cable o una barra de hierro.


Aumentando la carga en pequeas cantidades el cable sufre unos pequeos


estiramientos proporcionales a los incrementos de esa carga.

Alcanzado el umbral de la zona de fluencia del material del cable,


incrementos muy pequeos de la carga suponen, proporcionalmente, grandes
estiramientos del cable.

Antes de este umbral, el problema estiramiento/carga se puede decir que


est bien condicionado; en la zona de fluencia el problema est mal
condicionado.

60/136

El condicionamiento de un sistema de ecuaciones lineales Ax D b lo


caracterizar la sensibilidad del vector solucin x a pequeos cambios, tanto en
el trmino de la derecha b, como en los coeficientes que definen la matriz A.

Como sabemos, el ordenador o mquina que resuelve Ax D b, al no trabajar


ms que con una precisin determinada, resolver una aproximacin
.A C A/x D b C b:


Si el algoritmo utilizado es estable y el sistema tambin, el resultado


obtenido debe ser muy parecido al real.

Si el sistema est mal condicionado, sin embargo, o el algoritmo no es


numricamente estable, la solucin puede diferir sustancialmente de la real.

61/136

Ejemplo Consideremos los dos sistemas de ecuaciones lineales



   
3
8 5 x1
Ax D b !
D
4 10 x2
14
y


   
0;66
3;34
xO 1
4
b xO D bO !
A
D
:
1;99 10;01 xO 2
12

La solucin de ambos es el vector 1; 1T .




Si introducimos una perturbacin b D 0,04; 0,06T en el trmino


independiente del primer sistema, su solucin pasar a ser 0,993; 0,9968T .

62/136

El cambio relativo en la norma eucldea del vector b es


kbk2
D
kbk2

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

Como se puede ver, un pequeo cambio en el vector b induce un cambio


pequeo en el vector solucin.

63/136

Introduciendo el mismo cambio bO D 0,04; 0,06T en el trmino


O su solucin pasa a ser 6; 0T .
independiente del segundo sistema, b,
Es decir, un cambio relativo en la norma eucldea de bO igual a
q

0;042 C 0;062
q

42 C 122

D 0,0057;

produce un cambio en el vector solucin igual a:


q

52 C 12
2

1 C1

D 3,6055:

Evidentemente, el segundo sistema es mucho ms sensible a cambios en el


trmino independiente que el primero.

64/136

x2

x2

x1

x1

La figura representa a la izquierda el primer sistema; el segundo a la derecha.




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

Estudiemos cmo cuantificar la sensibilidad de Ax D b a pequeas


modificaciones tanto en el trmino independiente como en los coeficientes de la
matriz de coeficientes.

Analicemos en primer lugar el caso de una modificacin b del trmino


independiente.

Veamos cmo se relaciona la solucin de


A.x C x/ D b C b
con la de
Ax D b:

Designemos por k  k cualquier norma vectorial y su norma matricial consistente


correspondiente.

66/136

De las igualdades
A.x C x/ D b C b

y Ax D b;

se obtiene, restando y despejando x, que


x D A 1b:


De la definicin de norma matricial consistente con una norma vectorial se tiene


que
kxk  kA 1k kbk
(1)
y que kbk  kAk kxk o, lo que es lo mismo, que
1
kAk

:
kxk
kbk

(2)

67/136

Combinando (1) y (2) se deduce que el error relativo, kxk=kxk, de la solucin


del sistema Ax D b al modificar el trmino independiente de b a b C b es
kbk
kxk
 kAk kA 1k
:
kxk
kbk

Definicin Sea kk una norma matricial consistente con una norma vectorial. Asociado

a esa norma, el nmero de condicin de una matriz invertible A, .A/, es:


.A/ D kAk kA 1 k:

El nmero de condicin de una matriz expresa lo cerca que


esa matriz est de la singularidad

68/136

Si los datos de un sistema Ax D b son exactos con la precisin de la mquina,


el error relativo de la solucin cumple que
jjx  xjj
 .A/:
jjxjj

El concepto de nmero de condicin de una matriz se generaliza a cualquier


matriz A (no necesariamente cuadrada) de rango completo mediante la
expresin
.A/ D kAk kA k;
donde A es la matriz pseudoinversa de la matriz A.

El nmero de condicin de una matriz A es un indicador del error de


amplificacin que produce en un vector x el someterlo a la transformacin que
define dicha matriz A.

69/136

Concretamente, si la esfera unidad se somete a esa transformacin el nmero de


condicin 2 asociado a la norma eucldea ser igual al cociente de las longitudes
de los semiejes mayor y menor del hiperelipsoide resultante de esa
transformacin.

Ax

Estudiemos la sensibilidad a pequeas perturbaciones en los coeficientes de A.

Comparemos la solucin de

70/136

Ax D b

y .A C A/.x C x/ D b:

De la segunda igualdad, como Ax D b, haciendo x D


resulta, despreciando el producto A  x, que

A 1A.x C x/

kxk  kA 1k kAk kxk:


Expresin que tambin se puede escribir como
kxk
kAk
 kA 1k kAk
:
kxk
kAk


As pues el error relativo que resulta de perturbar ligeramente los coeficientes de


la matriz del sistema Ax D b est tambin acotado en trminos del nmero de
condicin de la matriz A.

71/136

Teorema Para toda matriz A de rango completo:


1. Su nmero de condicin .A/  1.
2. .A/ D .A /.

3. .A/ D .A/ para todo escalar 0.

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/.

7. Su nmero 2 .A/ D 1 si la matriz es la identidad o se trata de una matriz ortogonal.


8. Su nmero de condicin 2 .A/ es invariante frente a transformaciones ortogonales.

72/136

Las matrices con nmeros de condicin pequeos prximos a la unidad, se


dicen bien condicionadas; las que tienen nmeros de condicin altos, mal
condicionadas.

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/:

Volvamos al ejemplo que utilizbamos para concretar estos conceptos. La


matriz


8 5
AD
;
4 10
cuya inversa es

0;10 0;05
;
0;04 0;08

tiene un nmero de condicin 1.A/ D kAk1 kA 1k1 D 15  0,14 D 2,1.






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

Un error que se comete con frecuencia es asimilar el concepto de nmero de


condicin de una matriz con el de su determinante y que, en ese sentido, a
mayor determinante, mayor nmero de condicin; nada ms lejos de la realidad.

Ejemplo 1 Sea A una matriz diagonal de orden 100 definida por


a11 D 1I

ai i D 0,1 2  i  100:

De esta matriz, kAk2 D 1 y kA 1k2 D 10.




El nmero de condicin 2.A/ D 10. Por el contrario, su determinante es


det.A/ D 1  .0; 1/99 D 10 99.

Ejemplo 2 Sea A una matriz bidiagonal de la forma


3
2

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

Sus diversas normas son kAk1 D kAk1 D 3 y kA 1k1 D kA 1k1 D


D 1 C 2 C 4 C    C 2n 1 D 2n 1.

Sus nmeros de condicin, 1.A/ D 1.A/  3  2n. Su determinante, 1.

75/136

76/136

Clculo del nmero de condicin




Calcular directamente el nmero de condicin de una matriz es una tarea


numrica muy costosa: O.n3/.

No obstante, como .A/ es un buen diagnstico de las implicaciones que el uso


de esa matriz puede comportar en un proceso numrico, se puede realizar una
estimacin de su orden de magnitud.


Existen diversos buenos algoritmos para estimar el nmero de condicin de


una matriz en O.n2/ operaciones.

En Matlab lo estiman condest y rcond; lo calcula exactamente cond.

Siempre que se usa el operador n, Matlab usa rcond para comprobar la


condicin de la matriz afectada.

77/136

Errores en la eliminacin de Gauss




Conviene disponer de otros indicadores, adems del nmero de condicin de la


matriz A, para conocer la fuente de los posibles errores en la solucin de un
sistema de ecuaciones lineales mediante la eliminacin de Gauss.
Definicin Sea x a una solucin aproximada del sistema lineal Ax D b. El vector

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

cuya solucin es 1; 1T , y queremos calcular los errores hacia atras y hacia


delante de la solucin aproximada 1; 3;0001, se tendr que,


Error hacia atrs:


b



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

Si utilizamos la norma infinito, por ejemplo, este error es 0;0001.




Error hacia delante


x

 
1
xa D
1

1
D
3;0001

Con el mismo tipo de norma, este error es 2;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.

El punto 1; 3;0001 est relativamente lejos de la solucin, pero cerca de


ambas rectas, pues
casi son paralelas.
Denote the residual by r = b Ax . The relative backward error of system Ax = b
a

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

El error relativo hacia atrs del sistema Ax D b es


El error relativo hacia delante,

kx

xak
.
kxk

krk
.
kbk

80/136

El factor de magnificacin o amplificacin del error para Ax D b es la razn de


los dos:
kx x a k
error relativo hacia delante
kx k
factor de amplificacin del error D
D kr k :
error realtivo hacia atrs
kbk

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

El factor de amplificacin del error es


kx x a k1
kx k1
kr k1
kbk1

D 2;0001=.0;0001=2;0001/ D 40004;0001:

El nmero de condicin de una matriz cuadrada es el factor de magnificacin


del error mximo posible para resolver Ax D b sobre todos los posibles b.

82/136

Matlab y los sistemas de ecuaciones lineales




Para resolver un sistema Ax D b con Matlab slo hay que hacer


x D Anb

Con el ejemplo que estamos manejando:


>> A=[2 1 0 4;-4 -2 3 -7;4 1 -2 8;0 -3 -12 -1];
>> b=[2;-9;2;2];
>> A\b
ans =
3.0000
4.0000
-1.0000
-2.0000

83/136

Utilizando el script Gauss que hemos presentado:


>> Gauss(A,b)
ans =
3.0000
4.0000
-1.0000
-2.0000

Utilizando otra utilidad de Matlab muy interesante:


>> linsolve(A,b)
ans =
3.0000
4.0000
-1.0000
-2.0000

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

 Solucin de sistemas modificados


 Refinamiento iterativo
 Sistemas con matrices especiales

85/136

Factorizacin LU


El clculo de A D LU se conoce como factorizacin o descomposicin LU .




Si se tiene esta factorizacin, resolver Ax D b se convierte en dar solucin


a LU x D b a travs de dos sistemas de ecuaciones triangulares:
Ux D y

y Ly D b:

Esto es muy til cuando se requiere resolver sistemas de ecuaciones en los


que la matriz A es siempre la misma y slo cambia es el trmino
independiente.

La factorizacin LU y la eliminacin de Gauss

86/136

Una forma indirecta de conseguir esta factorizacin LU es la propia eliminacin


de Gauss.

En efecto, mediante unas permutaciones y unas transformaciones definidas por


matrices elementales triangulares inferiores el mtodo consegua:
Ln 1 P n

1    L1 P 1 A

D U:

De este proceso, haciendo


P D Pn 1    P1
y
L D P.Ln 1P n 1    L2P 2L1P 1/ 1;
se puede comprobar que se obtiene la factorizacin
PA D LU :

87/136

Existencia y unicidad de la factorizacin LU


Teorema Sea A una matriz cuadrada regular de orden n. Existe una matriz de permutacin P y dos matrices, una triangular inferior y otra triangular superior, L y U ,
respectivamente, tales que
PA D LU :
La matriz L tiene todos los coeficientes de la diagonal principal igual a 1.

Lema La matriz A admite una factorizacin LU si y slo si se cumple que det.A k /

0; k D 1; : : : ; n:

Teorema Si una matriz regular A de orden n admite una factorizacin A D LU ,

donde L es una matriz triangular inferior de coeficientes diagonales 1 y U una triangular


superior, esa factorizacin es nica.

88/136

Mtodos numricos directos para la obtencin de


factorizaciones LU
Mtodo de Crout. Versin LU 1

Prescott Durand Crout,


EE.UU., 1907-1984.

Supongamos que se desea obtener la factorizacin en la forma LU 1, donde U 1


designa una matriz triangular superior en la que todos los coeficientes de la
diagonal principal son 1.

89/136

Si la matriz A es de orden 3 y se quiere factorizarla de la forma


# "
#"
#
"
a11 a12 a13
a21 a22 a23
a31 a32 a33

l11 0 0
l21 l22 0
l31 l32 l33

1 u12 u13
0 1 u23 ;
0 0 1

usando las reglas de multiplicacin de matrices se obtendr:


1a col. de L: l11 D a11

l21 D a21
l31 D a31 I

l u D a12
2a fila de U : 11 12
l11 u13 D a13

! u1j D a1j = l11 ; j D 2; 3I

l u C l22 D a22
2a col. de L: 21 12
l31 u12 C l32 D a32

2a fila de U : l21 u13 C l22 u23 D a23

! li 2 D a i 2

li1 u12 ; i D 2; 3I

! u2j D .a2j

3a col. de L: l31 u13 C l32 u23 C l33 D a33

l21 u1j /= l22 ; j D 3I

! li 3 D a i 3

i 1
X

j D1

lij uj i ; i D 3:

90/136

En general, las frmulas de recurrencia que se pueden deducir de este proceso,


denominado factorizacin LU de Crout, son:
li1 D ai1;
u1j D a1j = l11;
k 1
X
li k D aik
lip upk ;
0

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

El algoritmo de Crout para factorizar una matriz regular A

nn

D LU 1, es este.

 Factorizacin A D LU por algoritmo de Crout


for k D 1 to n
for i D k to n
k
X1
l.i; k/
a.i; k/
l.i; p/u.p; k/
pD1

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

Ahora bien, como apuntbamos en la eliminacin de Gauss, se puede aprovechar


la estructura de la matriz A para guardar en ella las nuevas matrices L y U . El
mismo algoritmo quedara as.
function [L U]=Crout_1(A)
% Factorizacin LU por Crout
n=size(A,1);
for k=1:n
i=k:n;
A(i,k)=A(i,k)-A(i,1:k-1)*A(1:k-1,k);
i=k+1:n; A(k,i)=(A(k,i)-A(k,1:k-1)*A(1:k-1,i))/A(k,k);
end
L=tril(A,0); U=triu(A,1)+eye(n,n);
end

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
>>

Ejemplo Se desea factorizar en una mquina con cuatro dgitos significativos

Las operaciones en la mquina son:

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


El ejemplo pone de manifiesto que, aunque se sepa que una matriz no es


singular y que su factorizacin LU existe tericamente, los errores de redondeo
que se pueden producir al trabajar en una mquina pueden dar al traste con el
resultado.

Es aconsejable realizar pivotacin. Al final de un proceso con pivotacin se


obtendra
PA D LU
es decir, no la factorizacin LU de la matriz original sino de PA.

 Factorizacin A D LU por Crout con pivotacin parcial


for k D 1 to n
for i D k to n
k
X1
l.i; k/
a.i; k/
l.i; p/u.p; k/
pD1

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

La matriz PA realmente factorizada es


2
3 2
32
3
30 50 61
30
1 1;6667 2;0333
420 25 405 D 420 8;3333
54
1 0;08005 :
10 10 20
10 6;6667 0; 2
1

El algoritmo de Crout requiere O.n3=3/ multiplicaciones/divisiones y


sumas/restas para la factorizacin de la matriz.

99/136

Mtodo de Crout. Versin L1U




Si se quiere conseguir la factorizacin L1U de una matriz 3  3,


"
# "
#"
#
a11 a12 a13
a21 a22 a23
a31 a32 a33

1 0 0
l21 1 0
l31 l32 1

u11 u12 u13


0 u22 u23 ;
0 0 u33

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

! li1 D ai1 =u11 ; i D 2; 3I

l u C u22 D a22
2a fila de U : 21 12
l21 u13 C u32 D a23

2a col. de L: l31 u12 C l32 u22 D a32

! u2j D a2j
! li 2 D .ai 2

3a fila de U : l31 u13 C l32 u23 C u33 D a33

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

Las frmulas de recurrencia que se pueden deducir de este proceso son:


u1j D a1j ;
li1 D ai1=u11;
k 1
X
ukj D akj
lkp upj ;
0

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.

 Factorizacin A D L1 U por Crout sin pivotacin

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

l.i; p/u.p; k/A

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:

El resultado con la matriz precedente es:


>> [L U]=Croutl1u(A)
L =
1
0
0
2
1
0
3
4
1
U =
10
10
20
0
5
0
0
0
1
>> L*U
ans =
10
10
20
20
25
40
30
50
61

103/136

La versin del algoritmo con pivotacin en Matlab es esta.

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

El resultado con este script para el ltimo ejemplo:


>> [L U P]=CroutP1(A);
>> L
L =
1.0000
0
0
0.6667
1.0000
0
0.3333
0.8000
1.0000
>> U
U =
30.0000
50.0000
61.0000
0
-8.3333
-0.6667
0
0
0.2000
>> P*L*U
ans =
10
10
20
20
25
40
30
50
61
>> norm(P*A-L*U)
ans =
0

105/136

Con los recursos de Matlab:


>> [L,U,P] = lu(A)
L =
1.0000
0
0.6667
1.0000
0.3333
0.8000
U =
30.0000
50.0000
0
-8.3333
0
0
P =
0
0
1
0
1
0
1
0
0
>> P*L*U
ans =
10
10
20
20
25
40
30
50
61
>> norm(P*A-L*U)
ans =
0

0
0
1.0000
61.0000
-0.6667
0.2000

106/136

Obtencin de la matriz inversa a partir de la


factorizacin LU


Si se designa por X la matriz inversa de A 2 Rnn, los n vectores columna de


X son los vectores solucin de los sistemas Ax i D e i , i D 1; : : : ; n.

Si suponemos que tenemos la factorizacin PA D LU , donde P es una matriz


de permutacin, para obtener la inversa de A hay que resolver los 2n sistemas
siguientes:
Ly i D Pe i ; U x i D y i ; i D 1; : : : ; n:
Es decir 2n sistemas de ecuaciones lineales con matrices triangulares en los que
slo cambian los trminos independientes.

Un programa para hacerlo en Matlab podra ser as:


function InvA = InvLU_1(A)
% Inversa de A a partir de su fact. LU
[m n]=size(A); InvA=zeros(m); b=zeros(m,1);
[L U P] = lu(A);
for i=1:m
b(i)
= 1;
InvA(:,i) = U\(L\(P*b));
b(i)
= 0;
end
end

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


Para resolver Ax D b con Matlab, usando la factorizacin LU de A, se


utiliza [L U P]=lu(A) y luego se obtiene la solucin del sistema haciendo
x=U\(L\(P*b))

Apliquemos esta idea a uno de los ejemplos que manejamos:

>> A=[2 1 0 4;0 -3 -12 -1;0 -1 -2 0;0 0 3 1];


>> b=[2;2;-2;-5];
>> [L U P]=lu(A)
L =
1.0000
0
0
0
0
1.0000
0
0
0
0
1.0000
0
0
0.3333
0.6667
1.0000
U =
2.0000
1.0000
0
4.0000
0
-3.0000 -12.0000
-1.0000
0
0
3.0000
1.0000
0
0
0
-0.3333
P =
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
>> x=U\(L\(P*b))
x =
3.0000
4.0000
-1.0000
-2.0000

109/136

Otra cuestin a tener muy en cuenta:


% Ensayo tiempos LU: Tiemp_LU.m
A=rand(200,200);
tic
for i=1:1000
b=rand(200,1);
x=A\b;
end
toc
Elapsed time is 0.828548 seconds
tic
[L U P] = lu(A);
for i=1:1000
b=rand(200,1);
x=U\(L\(P*b));
end
toc
Elapsed time is 0.089372 seconds

Copiar y pegar en el escritorio de Matlab. Por qu ocurre lo que sale?

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


Solucin de sistemas modificados

 Refinamiento iterativo
 Sistemas con matrices especiales

112/136

Solucin de sistemas modificados




Si en Ax D b se modifica el vector b pero no A, no es necesario rehacer la


factorizacin LU para resolver el nuevo sistema.

Si se modifica ligeramente la matriz A, por ejemplo el coeficiente (j; k), con lo


que A D A ej e Tk , puede que no sea necesario tampoco recalcular la
factorizacin en su totalidad.


La frmula de Sherman-Morrison-Woodbury proporciona la inversa de una


matriz en trminos de los vectores de una modificacin a la misma de rango
uno del tipo uvT :
 1
T
A uv
D
 1
A 1 C A 1 u 1 vT A 1 u vT A 1 :

113/136

Para resolver el nuevo sistema .A uvT /x D b, usando la frmula, se


obtendra
 1
T
b
x D A uv
 1
D A 1b C A 1u 1 vT A 1u vT A 1b;
operacin que podra hacerse por partes:
1. Resolviendo Az D u, obteniendo z.

2. Resolviendo Ay D b, obteniendo y.
3. Calculando x D y C ..vT y/=.1

vT z//z.

Como A ya est factorizada, este procedimiento requiere solo sustituciones


inversas y productos interiores; es decir O.n2/ operaciones frente a las O.n3=3/
de la factorizacin.

114/136

Ejemplo Consideremos la matriz


2
3 2
32
3
2 4 2
100
24 2
A D 4 4 9 35 D 4 2 1 05 40 1 15
2 3 7
111
00 4

a la que se le efecta una modificacin consistente en cambiar el coeficiente


(3,2) de -3 a -1.


En este caso

3
0
u D 4 05
2

con lo que la matriz resultante es A

2 3
0
y v D 415 ;
0

uvT .

115/136

Con la factorizacin LU de A, se resuelve Az D u y Ay D b, dando


2
3
2 3
3=2
1
z D 4 1=25 y y D 4 25 :
1=2
2

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


Formulado en la dcada de 1960 por James Hardy Wilkinson, del National


Physical Laboratory, Reino Unido, 1919-1986.

Supongamos que se tiene una solucin aproximada, x 0, del sistema de


ecuaciones lineales Ax D b, y sea y una correccin o mejora de la misma tal
que la solucin exacta, x, cumple que
x D x 0 C y:
Sustituyendo esta expresin en Ax D b se tiene que
Ay D b
donde r 0 es el vector de residuos.

Ax 0 D r 0;

117/136

Si este vector no cumple satisfactoriamente unos requisitos de precisin, se


puede resolver el sistema Ay D r 0 y hacer
x 1 D x 0 C y;
lo que har que la solucin se aproxime un poco ms a x que x 0.

Si es necesario, se calcula un nuevo vector de residuos, r 1 D b Ax 1 y se


continua el proceso hasta que la solucin se aproxime tanto como se quiera a la
esperada.

El vector de residuos debe calcularse con ms precisin que la usada para


calcular la solucin inicial.

Este script de Matlab lleva a cabo el proceso a mano.

% Script_Ref.m - Script de Refinamiento Iterativo


n=6;
format short
A=hilb(n);
b=A*ones(n,1);
pause
x=A\b

% Matriz de Hilbert (muy mal condicionada)


% Elegimos trmino independiente para sol. x=1.
% Solucin, evidentemente, =1

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

% Hagamos una iteracin del Refinamiento iterativo

res=b-A*x1;
format long
x1=x1+B\res
norm(xex-x1,2)
pause

% Hagamos otra iteracin del Refinamiento iterativo

res=b-A*x1;
x1=x1+B\res
norm(xex-x1,2)

% Hagamos otra iteracin del Refinamiento iterativo

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


Sistemas con matrices especiales

120/136

Sistemas con matrices especiales


Matrices simtricas
Factorizacin LDLT
Lema Si todas las submatrices principales de una matriz A 2 Rnn son regulares, existen
dos matrices triangulares inferiores unitarias nicas, L y M , y otra diagonal tambin nica,
D D diag.d1 ; : : : ; dn /, tales que A D LDM T .

Teorema Si A admite una factorizacin LDM T y es simtrica, L D M .

121/136

Para derivar unas frmulas de recurrencia, a partir de un ejemplo simblico de


orden 3,
2
3 2
32
32
3
a11 a12 a13
1 0 0
d11
1 l21 l31
4a21 a22 a235 D 4l21 1 05 4
5 40 1 l325 ;
d22
a31 a32 a33
l31 l32 1
d33
0 0 1
operando de acuerdo con las reglas de multiplicacin matricial se obtiene que
a11
a21
a31
a22
a32
a33

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:

Generalizando se obtiene el algoritmo de la tabla.

122/136

 Factorizacin A D LDLT sin pivotacin


for k D 1 to n
k 1
X
d.k/
a.k; k/
a2 .k; p/d.p/
pD1

if d.k/ D 0 then stop


for i D k C 1 0
to n

a.i; k/

end
end

@a.i; k/

k 1
X

pD1

a.i; p/a.k; p/d.p/A

d.k/

Requiere O.n3=6/ multiplicaciones y divisiones y sumas y restas.

Si no se efectan pivotaciones, el procedimiento numrico puede fallar por la


posible presencia de coeficientes pivote muy pequeos, o por la acumulacin de
errores de redondeo o de cancelacin importantes.

Factorizacin de Cholesky

123/136

Debida a Andr Louis Cholesky, Francia, 1875-1918, comandante del ejrcito


durante la ocupacin internacional de Creta en 1906-09.

Una matriz es definida positiva si para todo x 0 se cumple que x TAx > 0.
Todos sus valores propios son positivos.

Las matrices simtricas definidas positivas admiten la descomposicin


A D GT G;
donde G es una matriz triangular superior con todos sus coeficientes de la
diagonal principal positivos.

124/136

Las matrices simtricas definidas positivas se presentan habitualmente en:




Problemas relacionados con el anlisis de sistemas elctricos de generacin y


transporte de energa.

Ajuste de funciones por mnimos cuadrados.

Anlisis de estructuras mecnicas.

En muchos procedimientos de optimizacin lineal y no lineal.

En general, en todas aquellas aplicaciones donde al modelizar un sistema, la


expresin x T Ax mide la energa presente, o disponible, o cualquier otra
magnitud fsica que slo admite cantidades positivas en un entorno determinado.

125/136

Lema Las submatrices principales de una matriz definida positiva son definidas positivas.

Teorema Si A es una matriz definida positiva de orden n, tiene una descomposicin


de la forma LDM T , siendo todos los coeficientes de la matriz diagonal D positivos.

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.

Ver AQU el trabajo de Cholesky

Procedamos a simular el algoritmo con la descomposicin simblica de una


matriz 3  3.

Si se desea obtener la factorizacin


2
3 2
32
3
a11 a12 a13
g11 0 0
g11 g12 g13
4a12 a22 a235 D 4g12 g22 0 5 4 0 g22 g235 ;
a13 a23 a33
g13 g23 g33
0 0 g33

operando de acuerdo con las reglas de multiplicacin matricial se obtiene que:


a11
a12
a13
a22
a23
a33

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

Generalizando este proceso se obtiene el algoritmo que describe la tabla.


 Factorizacin de Cholesky A D G T G
for i D 1 to ns
g.i; i/

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/

El algoritmo requiere O.n3=6/ operaciones de multiplicacin+divisin y de


suma+resta.

Este algoritmo en Matlab sera como sigue.

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

>> A=[5 1 -2 0;1 2 0 0;-2 0 4 1;0


>> G=Chols_1(A)
G =
2.2361
0.4472
-0.8944
0
1.3416
0.2981
0
0
1.7638
0
0
0
>> G=chol(A)
G =
2.2361
0.4472
-0.8944
0
1.3416
0.2981
0
0
1.7638
0
0
0

0 1 3];

0
0
0.5669
1.6366

0
0
0.5669
1.6366

129/136

Matlab y la factorizacin de Cholesky




Para resolver un sistema lineal de ecuaciones Ax D b con Matlab utilizando


la factorizacin de Cholesky hay que utilizar la funcin G=chol(A).

La solucin del sistema correspondiente se puede obtener, teniendo en cuenta


que se realiza A D G T G , haciendo
x=G\(G\b)

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

Matrices simtricas semidefinidas positivas




131/136

Una matriz A se dice semidefinida positiva, si para todo x 0, x T Ax  0.


Teorema Si A 2 Rnn es simtrica semidefinida positiva:
jaij j  .ai i C ajj /=2
p
jaij j  ai i ajj .i j /
mKax jaij j D mKax ai i
i;j

ai i D 0 ) aij D aj i D 0; j D 1; : : : ; n:

Si el algoritmo de Cholesky se aplica a una matriz semidefinida positiva y en un


paso akk es cero entonces aj k D 0; j D k; : : : n, por lo que no habra que hacer
nada ms en la columna k.


En la prctica, los errores de redondeo internos impiden los ceros exactos


por lo que se recurre a la pivotacin.

132/136

Pivotacin


Para mantener la simetra las pivotaciones han de ser simtricas: si se


intercambian dos filas tambin hay que intercambiar las columnas simtricas:
A
PAP T .

La pivotacin en Cholesky se lleva adelante as:


En cada etapa k del proceso se determina el coeficiente de mayor valor de
la diagonal principal, mKaxkj n ajj :


Si no es cero se intercambian las filas/columnas p y k, siempre y cuando


k p;

si es cero el resto de la matriz por factorizar sera nula y no se hara nada


ms.

133/136

El algoritmo de Cholesky con pivotacin para matrices semidefinidas positivas es:


 Factorizacin de Cholesky A D G T G con pivotacin
for i D 1 to n
Determinar ndice p 2 fi; i C 1; ng tal que ja.p; p/j D mKaxi j n fja.j; j /jg
if a.p; p/ > 0
Intercambiar
sfilas/columnas p y i .
g.i; i/

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/

Matrices simtricas indefinidas




134/136

Una matriz A se dice indefinida si para algunos vectores x 0 la forma


cuadrtica x T Ax es positiva y para otros negativa. Para factorizarla se recurre
a pivotaciones de bloques en la diagonal
PAP T D LBLT
donde L es triangular inferior unitaria y B diagonal en bloques 1  1 2  2.

Los mtodos ms conocidos1 se citan a continuacin.


Mtodo
Parlett y Reid
Aasen
Bunch y Parlett
Bunch y Kaufman
1

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

El de James R. Bunch y Linda Kaufman, 1977,


en alguna de sus variantes, es el ms utilizado
por los cdigos profesionales y comerciales para factorizar matrices simtricas.

function [L,D,P,rho] = Diagpiv_1(A)


135/136
%DIAGPIV
Factorizacin de Pivotacin diagonal con pivotacin parcial.
%
Matriz de entrada, A (simtrica). Matrices de salida: permutacin P,
%
triangular inferior unitaria L, D matriz diagonal en bloques 1x1 o 2x2.
%
P*A*P = L*D*L.
%
Ref. J.R. Bunch and L. Kaufman, Some stable methods for calculating
%
inertia and solving symmetric linear systems, Math. Comp. 1977.
if norm(triu(A,1)-tril(A,-1),1), error(La matriz A debe ser simtrica.), end
n = max(size(A)); k = 1; pp = 1:n;
D = eye(n); L = eye(n);
if s == 1
% Bloque diagonal 1x1
normA = norm(A(:),inf); rho = normA;
D(k,k) = A(k,k); i = k+1:n;
alpha = (1 + sqrt(17))/8;
A(i,k) = A(i,k)/A(k,k);
while k < n
L(i,k) = A(i,k);
[lambda,r] = max( abs(A(k+1:n,k)) );
A(i,i) = A(i,i) - A(i,k) * A(k,i);
r = r(1) + k;
elseif s == 2
% Bloque diagonal 2x2
if lambda > 0
E = A(k:k+1,k:k+1);
swap = 0;
D(k:k+1,k:k+1) = E;
if abs(A(k,k))>=alpha*lambda
C = A(k+2:n,k:k+1);
s = 1;
temp = C/E;
else
L(k+2:n,k:k+1) = temp;
temp = A(k:n,r); temp(r-k+1) = 0;
A(k+2:n,k+2:n) = A(k+2:n,k+2:n) - temp*C;
sigma = norm(temp, inf);
end
if alpha*lambda^2 <= abs(A(k,k))*sigma
if k+s <= n
s = 1;
rho = max( rho, max(max(abs(A(k+s:n,k+s:n)))) );
elseif abs(A(r,r)) >= alpha*sigma
end
swap = 1;
else
% Nada, elemento en diagonal 0
m1 = k; m2 = r;
s = 1; D(k,k) = A(k,k);
s = 1;
end
else
k = k + s;
swap = 1;
if k == n, D(n,n) = A(n,n); break, end
m1 = k+1; m2 = r;
end
s = 2;
if nargout>=3, P = eye(n); P = P(pp,:); end
end
rho = rho/normA;
end
end
% ----if swap
A( [m1, m2],: ) = A( [m2, m1],: ); A( :,[m1, m2] ) = A( :,[m2, m1] );
L( [m1, m2],: ) = L( [m2, m1],: ); L( :,[m1, m2] ) = L( :,[m2, m1] );
pp( [m1, m2] ) = pp( [m2, m1] );
end
% -----

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Mnimos cuadrados lineales

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_mincua_lineal_2016.pdf

1/89

2/89

ndice
 Introduccin
 Fundamentos tericos


Sistemas incompatibles. Ecuaciones normales

Sistemas indeterminados

 Resolucin numrica del problema




Mtodo de Gram-Schmidt

Mtodo de Gram-Schmidt modificado

Factorizacin QR

Descomposicin numrica en valores singulares

Comparacin de los mtodos

 Matlab y la solucin de problemas de mnimos cuadrados

3/89

Introduccin


Muchos modelos matemticos modernos, especialmente aquellos que usan


tcnicas de estimacin y regresin, se han convertido en herramientas
fundamentales en la ciencia y la ingeniera.

Para conocer y controlar en tiempo real el estado y funcionamiento de diversos


sistemas de operacin, control y prediccin es necesario primero tomar medidas
adecuadamente de los mismos y posteriormente actuar.

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

Par mitigar el efecto de esos errores, aislarlos, identificarlos y filtrarlos se toma


un nmero de medidas de los parmetros que definen un sistema bastante
mayor del estrictamente necesario redundante.

La redundancia de medidas conduce normalmente, en los modelos matemticos


que determinan cmo se relacionan los parmetros y variables de
funcionamiento de un sistema, a sistemas de ecuaciones incompatibles: con
muchas ms ecuaciones que incgnitas.
La falta de suficientes medidas, lleva a sistemas indeterminados.

Para obtener la solucin ms probable que represente un sistema y que mejor se


aproxime a la ideal si no se diesen esos errores, se proyecta el problema en un
subespacio de menor dimensin para filtrar o aislar los datos irrelevantes.


La proyeccin ms comn es la ortogonal, que determina el mtodo de los


mnimos cuadrados (ver teorema de la proyeccin).

5/89

Casos posibles de sistemas lineales, una vez ms


 Casos posibles de sistemas lineales, una vez ms
m=n

m=n

m=n
m=n

rango(A) = m = n

rango(A) = m = n

m=n

rango(A) < n < m


rango(A) < n < m

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

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

rango(A) < m < n

rango(A) < m < n

m<n

rango(A) < m < n

3b

3b

=
5/101

'*/*5*0/

,I A LV m ! n DQG E LVLQ Rm  D OHDVWVTXDUHVVROXWLRQ RI A[ D E LV


VXFKWKDW
kE # AO[k % kE # A[k
6/89

IRUDOO [ LQ Rn 


Estudiaremos pues problemas sin solucin, en los que rango.Ajb/ rango.A/


pues b Im.A/.7KHPRVWLPSRUWDQWDVSHFWRIWKHOHDVWVTXDUHVSUREOHPLVWKDWQRPD
A[ ZLOOQHFHVVDULO\EHLQWKHFROXPQVSDFH
WKHYHFWRU
&RO A 6R
Si es posibleVHOHFW
determinar
una pseudosolucin
que cumpla un criterio concreto:
WR E 6HH)LJ 2IFRXUVH LI E
A[ WKHFORVHVWSRLQWLQ
por ejemplo,WKDWPDNHV
el de minimizar
la norma kAx &RO
bkA
2.
LQ &RO A WKHQ E LV A[ IRUVRPH [ DQGVXFKDQ [ LVDOHDVWVTXDUHVVROXW
b

b
a8

Ax

01234

a6

Im(A)

Ax

Ax

'*(63&  7KHYHFWRU E LVFORVHUWR AO[ WKDQ

WR A[ IRURWKHU [

7/89

Tambin problemas con muchas soluciones, de las que:





Se escoge aquella x cuya norma eucldea, kxk2, es mnima.

Se estudia otro tipo de solucin; por ejemplo:




Que minimice

m
X
T
aj x

j D1


Que minimice

mKax ajT x
j

bj

bj

8/89

El hecho de que se utilice el criterio de minimizar, de una manera u otra, la


norma eucldea raiz cuadrada positiva de la suma de los cuadrados de las
desviaciones entre dos vectores de valores reales es lo que da nombre a los
procedimientos para resolver esos problemas: mnimos cuadrados.

El problema lineal de mnimos cuadrados se plantea formalmente as:


Dada una matriz A 2 Rmn, de rango k  mKn.m; n/, y un vector b 2 Rm,
encontrar un vector x 2 Rn que minimice kAx bk2.

9/89

El ejemplo por excelencia de las tcnicas que estudiamos lo constituye el tratar


de ajustar a un conjunto de m pares de puntos .ti ; bi / una funcin f .x; t / de n
parmetros independientes x1; x2 : : : xn.


Los pares de puntos los pueden definir unas mediciones, bi , obtenidas en


unos tiempos, ti .

Si la funcin es lineal en x1; : : : ; xn se tiene un problema de mnimos


cuadrados lineales en el que,
si los n parmetros se disponen como los coeficientes de un vector
n-dimensional, x, y
los datos obtenidos, en otro vector m-dimensional b (usualmente
m  n),

se llega a una relacin de la forma Ax D b, donde A 2 Rmn, x 2 Rn y


b 2 Rm .

10/89

Ejemplo Supongamos que queremos ajustar al conjunto de pares de puntos


f.ti ; bi /g = f.1; 2/; .2; 3/; .3; 5/; .4; 6/g la funcin
f .x1; x2; x3; t / D x1 C x2t C x3t 2;
segn representa la figura.
b
f (x 1 , x 2 , x 3 , t ) = x 1+ x 2 t + x 3 t 2

5
4
3
2
1
1

Para los datos y parmetros de este ejemplo el sistema Ax D b es as:


2

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


Resolver este problema en la zona de trabajo de Matlab sera trivial:


>> Am=[1 1 1;1 2 4;1 3 9;1 4 16];
>> b=[2 3 5 6];
>> Am\b
ans =
0.50000000000000
1.40000000000000
-0.00000000000000

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

Si se quiere profundizar un poco en el problema dibujando los datos y la funcin


ajustada, habra que hacer:
>> x1=linspace(0,5,150);
>> y1=polyval(p,x1);
>> plot(x,y,o,x1,y1,-)

Los resultados son los de la figura.


8

0.5

1.5

2.5

3.5

4.5

La lnea recta y D 0; 5 C 1; 4t, en verde, y los puntos a los que se ajusta, en


azul.

13/89

Otros muchos sistemas de la ciencia, ingeniera, economa, etc. recurren a


modelos de mnimos cuadrados.

14/89

Sistemas de prediccin a partir de datos masivos

15/89

Sistemas de navegacin
VOR, DME, ADF, RMI, MLS

16/89

Fundamentos tericos
Teorema

Descomposicin en valores singulares Si A 2 Rmn es una matriz de rango r, existen


matrices ortogonales U 2 Rmm y V 2 Rnn tales que
A D U V T ;
donde

2 Rmn y r D diag.1 , 2 ; : : : ; r /, con

(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

se la denomina matriz pseudoinversa o inversa generalizada Moore-Penrose de A.

18/89

De acuerdo con esa definicin, la solucin de mKnx 2Rn kAx

bk2 es

x D A b:


Adems, de acuerdo con el Teorema de la Proyeccin, se cumple que


b

a8

x ? ker.A/ y que Ax D P Im.A /b;


01234

a6

donde P Im.A /b es la proyeccin ortogonal de b sobre Im.A/, paralelamente a


ker.A T /.

Obsrvese que .A T / D .A /T ; en general,

19/89

.AB/ B A :

La matriz pseudoinversa satisface las denominadas condiciones de Penrose:


AA A
A AA
.AA /T
.A A/T

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

Dos casos de matriz pseudoinversa son fundamentales:


a) Si A 2 Rmn, m  n y rango.A/ D n,
A D .A T A/ 1A T :
b) Si A 2 Rmn, m  n y rango.A/ D m,
A D A T .AA T / 1:
a) es el problema de mnimos cuadrados resultante de un sistema de
ecuaciones incompatible, con matriz de rango completo.
b) es el de un sistema de ecuaciones compatible indeterminado con matriz
de rango completo: resuelve este problema:
minimizar kxk2;
x 2S

donde S D fx W Ax D bg:

20/89

Sistemas incompatibles. Ecuaciones normales




Si se tiene una ecuacin Ax D b, A 2 Rmn, que no tiene solucin pues


b Im.A/, se puede buscar una pseudosolucin, x, que acerque Ax lo ms
posible a b en el sentido de la k  k2, es decir,
mKn kAx
x 2Rn

bk2:

Teorema Sean X e Y dos espacios vectoriales de dimensiones finitas n y m sobre


el cuerpo R y A una transformacin lineal representada en dos bases de X e Y por la
matriz A. Para un vector dado b 2 Y , el vector x 2 X minimiza kAx bk2 si y slo si
A T Ax D A T b.
I D EMOSTRACIN . Sean Im.A/ D fAx W x 2 Rn g y ker.A/ D fx W Ax D 0g.
El complemento ortogonal del conjunto Im.A/ ser:
.Im.A//? D fr W r T z D 0; 8z 2 Im.A/g D fr W r T A D 0T g
D fr W A T r D 0g D ker.A T /:
O 2 , donde bO 2 Im.A/.
El problema planteado es obviamente equivalente a minimizar kb bk
O
Por el teorema de la proyeccin, b es un vector que minimiza la norma anterior si y slo si b bO 2
O D A T b A T Ax.
.Im.A//? ; es decir, si b bO 2 ker.A T /, o de forma equivalente, 0 D A T .b b/

21/89

22/89

La representacin geomtrica en tres dimensiones es esta.


b
r = b Ax (Im(A)) A T (b Ax ) = 0

Al sistema de ecuaciones que define la relacin

a2
a 2x 2

A TAx D A T b
Ax

a 1x 1
Im(A)

se le denomina ecuaciones normales.

a1

El vector de residuos, r D b Ax, es ortogonal a Im.A/ y a los vectores que


lo definen: a1 y a2. Es decir, se cumple que A T .Ax b/ D 0.

23/89

El vector solucin de las ecuaciones normales, x, es nico si A T A es invertible


(si y slo si la transformacin lineal A es inyectiva: rango.A/ D n); en este caso
x D .A T A/ 1A T b:

Si la matriz A T A es invertible,
rDb

Ax D .I

P Im.A //b;

donde P Im.A / D A.A T A/ 1A T es la matriz de proyeccin ortogonal sobre


Im.A/ paralelamente a ker.A T /.

24/89

Sistemas indeterminados


Si el sistema tiene ms de una solucin, siempre se puede calcular aquella de


menor norma eucldea.
Teorema Sean X e Y dos espacios vectoriales de dimensiones n y m sobre el cuerpo
R y A una transformacin lineal representada en dos bases de X e Y por la matriz A.
El vector x de norma eucldea mnima que satisface la ecuacin Ax D b es el dado por
x D A T z, donde z es una solucin de la ecuacin AA T z D b.

I D EMOSTRACIN . Si x 1 es una solucin de la ecuacin Ax D b, cualquier solucin de la misma se


puede expresar como x D x 1 C u, donde u 2 ker.A/; es decir, estar en la variedad lineal x 1 C ker.A/.
El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que su
norma kxk2 es mnima y adems pertenece a .ker.A//? .
Como x 2 .ker.A//? , pertenecer a Im.A T /, es decir, se podr expresar como x D A T z para algn
z 2 Y . Como Ax D b, entonces
AA T z D b:

25/89

Cuando la matriz AA T es invertible, la solucin ptima es


x D A T .AA T / 1b:
La interpretacin geomtrica de este resultado en R3 se esquematiza as:

80123A

x7

0123A

x9

x7

u
x

26/89

Ejemplo Se quiere obtener la solucin


de norma eucldea mnima de la


 x1
ecuacin indeterminada 1 2
D 3.
x2

Cualquier solucin se podr expresar como x 1 C ker.A/, donde x 1 es cualquier



T
vector solucin (por ejemplo 1 1 ) y ker.A/ es el que se ve
en la figura.
75
SOLUTION FOR A SYSTEM OF LINEAR EQUATIONS

x2



Im.A T /

1.5
(3/5, 6/5) = x


(1, 1) = x 1

subespacio de soluciones
(3, 0)
1

x1



ker.A/


 La solucin que se busca es Figure 2.1 A minimum-norm solution.


 
  1
   

 1
3 1
1   1
0;6

La solucin que se busca es




x DA T AA


T

Se ve que est en Im.A 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/


 La solucin que se busca es Figure 2.1

A minimum-norm solution.

x1



75

27/89

28/89

ndice
 Introduccin
 Fundamentos tericos

Sistemas incompatibles. Ecuaciones normales

Sistemas indeterminados

Resolucin numrica del problema




Mtodo de Gram-Schmidt

Mtodo de Gram-Schmidt modificado

Factorizacin QR

Descomposicin numrica en valores singulares

Comparacin de los mtodos

 Matlab y la solucin de problemas de mnimos cuadrados

29/89

Resolucin numrica del problema




Mediante las ecuaciones normales, con cualquiera de los mtodos estudiados


para sistemas con matriz cuadrada y simtrica:



A TAx D A T b, en el caso de que el sistema fuese incompatible, o a

AA Tz D b, cuando se diese un sistema indeterminado.

Los nmeros de condicin, 2, de AA T y A T A, son el cuadrado del de la


matriz A, por lo que si el problema originalmente no est bien condicionado, las
dificultades numricas pueden resultar insalvables al resolver el sistema
correspondiente.

30/89

Ejemplo Consideremos la matriz


2
3
1 1 1 1 1
6"
7
6
7
6
7
6 "
7
AD6
7:
"
6
7
6
7
4
" 5
"

El rango de A es 5, para " 0. La matriz


2
3
2
1C"
1
1
1
1
6 1
1 C "2
1
1
1 7
6
7
6
7
AT A D 6 1
1
1 C "2
1
1 7
6
7
1
1
1 C "2
1 5
4 1
1
1
1
1
1 C "2
tambin es de rango 5, para " 0.

31/89

El nmero de condicin 2.A T A/ D 2.A/2 D .5 C "2/="2.

Si " es mayor que la precisin de la mquina pero "2 no (por ejemplo, si


" D 0,5  10 5, "2 D 0,25  10 10 y la precisin de la mquina
 D 1,0  10 10), la representacin interna de la matriz A T A ser
2
3
1 1 1 1 1
61 1 1 1 17
6
7
6
7
61 1 1 1 17
6
7
41 1 1 1 15
1 1 1 1 1

por lo que, a efectos numricos en esa mquina, esta matriz ser singular y de
rango 1: las ecuaciones normales no serviran.

32/89

Otro aspecto importante que aconseja tener mucho cuidado al utilizar A T A


AA T , nace del hecho de que aun cuando la matriz original A tenga muchos
elementos cero, A T A o AA T pueden ser totalmente densas.

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

Obtiene una base ortonormalizada del subespacio Im.A/.




Jorgen Pedersen Gram, Dinamarca,


1850-1916 y Erhard Schmidt, Alemania, 1876-1959.

Comienza normalizando el primer vector columna de la matriz, a1:


e 1 D a1=ka1k2.

A continuacin se sustrae del vector a2 su coeficiente en la direccin de e 1,


ha2je 1ie 1, resultando un vector ortogonal a e 1, el cual a su vez se
normaliza: : :
El proceso contina con los dems vectores columna de A.

El nmero de operaciones del mtodo es O.mn2/ sumas+restas y


multiplicaciones+divisiones y O.n/ races cuadradas.

Los diversos vectores ortonormales de la base de Im.A/ se obtienen as:


a1
I
ka1 k2
a2 ha2 je 1 ie 1
D
I
ka2 ha2 je 1 ie 1 k2
a3 ha3 je 1 ie 1 ha3 je 2 ie 2
D
I
ka3 ha3 je 1 ie 1 ha3 je 2 ie 2 k2
::
:

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

El algoritmo para una matriz general A mn es el siguiente.


 Ortogonalizacin de A por 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

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

El algoritmo hace A D E U , donde E mn es la matriz de columnas e i y U nn


la matriz triangular superior de los productos interiores auxiliares uij .


Sustituyendo esta expresin de A en las ecuaciones normales,


A T Ax D A T b, resulta que
U T ET EU x D U T ET b
y, por fin, dado que E T E D I,
U x D E T b:
Un sistema triangular superior.

En condiciones adecuadas, por consiguiente, el mtodo de Gram-Schmidt podra


valer para resolver un problema lineal de mnimos cuadrados.

37/89

Gram-Schmidt modificado

John R. Rice, EE.UU. 1934-.

En la prctica se va perdiendo ortogonalidad en los vectores e i por errores


numricos y, especialmente, si alguno de los vectores columna aj est prximo
al subespacio generado por los vectores anteriores e 1; : : : ; ej 1.
Pj 1
En ese caso, los sumandos de la expresin aj
i D1 haj je i ie i pueden llegar a
ser muy pequeos, o muy distantes unos de otros pero con un resultado final
que puede ser muy pequeo, por lo que el error numrico que se va produciendo
es relativamente grande. Al dividir el resultado por su norma (tambin muy
pequea) los errores se amplificarn an ms.

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 /

 Algoritmo modificado 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  e.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 /

39/89

La versin clsica y modificada en Matlab son estas.


function [x r2 e]=Grmsch_3(A,b)
% Se resuelve Ax=b mediante el mtodo de Gram-Schmidt modificado
[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)*e(:,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

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

El cara a cara del clsico y el modificado en un Matlab supercompacto es este.


function [Q, R] = gs_m(A)

function [Q, R] = gs_c(A)

[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

>> n=7; A=hilb(n);


>> [Q, R]=gs_c(A);
>> norm(Q*Q-eye(n))
ans =
0.156453367259543
>> [Q1, R]=gs_m(A);
>> norm(Q1*Q1-eye(n))
ans =
1.090139262380597e-009
>> cond(A)
ans =
4.753673562966472e+008

41/89

Si resolvemos el ejemplo inicial.


>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r2]=Grmsch_3(A,b)
% MODIFICADO
x =
0.5000
1.4000
-0.0000
r2 =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

42/89

% Script_GRSCH_1.m - Script de Ortogonalidad con Gram Schmidt clsico y modificado


format short
n=7; A=hilb(n);
% Matriz de Hilbert (muy mal condicionada)
cond(A), pause
b=A*ones(n,1);
% Trmino independiente para sol. x=1.
disp(Clsico:), [x r2 e]=Grmsch_2(A,b);
% Gram Schmidt clsico
x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
ortogonalidad=norm(e*e-eye(n)), pause

% Ortogonalidad real de la matriz e

disp(Modificado:), [x r2 e]=Grmsch_3(A,b);% Gram Schmidt modificado


x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
ortogonalidad=norm(e*e-eye(n))

% Ortogonalidad real de la matriz e

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


Las transformaciones ortogonales conservan la norma eucldea; esto es, si Qnn


es una matriz ortogonal y x un vector n-dimensional, se cumple que
kQxk2 D kxk2:
p
p
p
T
T
En efecto, kQxk2 D hQxjQxi D x Q Qx D x T x D kxk2:

Segn esto, si Q es una matriz ortogonal, al premultiplicar el vector Ax


por ella, su norma eucldea queda igual:
kQAx

Qbk2 D kQ.Ax

b/k2 D kAx

bk2:

La idea es usar transformaciones ortogonales para convertir el problema en otro


ms sencillo de resolver numricamente.

Si A 2 Rmn, m > n, b 2 Rm, rango.A/ D n y se han efectuado una serie de


transformaciones ortogonales que refleja un matriz ortogonal Q 2 Rmm tal que
 
R1
n
QA D R D
0 m n

45/89

y R 1 es triangular superior, si se hace


 
c
n
Qb D
;
d m n
entonces

kAx

bk2 D kQAx
D

kR 1x



R 1x c

Qbk2 D


d

ck22 C kdk22; para cualquier x 2 Rn.

46/89

La solucin de mKnx 2Rn kAx

bk2 ser aquella que haga mnimo

kR 1x

ck22 C kdk22:

Como kdk22 es constante, la solucin ser la que haga mnimo el otro


sumando: cuando R 1x D c .
Resolviendo este sistema por sustitucin inversa se llega a la solucin del
problema de mnimos cuadrados.

La suma de residuos al cuadrado ser kdk22 y el vector de residuos


 
0
r D QT
:
d

El proceso de reduccin de A a R se denomina factorizacin QR o


triangularizacin ortogonal.

47/89

Teorema Sea la matriz A 2 Rmn de rango n y su factorizacin A D QR. El factor

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.

I D EMOSTRACIN . Si rango.A/ D n, de acuerdo con un teorema anterior, la factorizacin de Cholesky


de A T A es nica.
El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que su
norma kxk2 es mnima y adems pertenece a .ker.A//? .
Por otro lado,
 
h
i
R1
A T A D R T1 ; 0 QQT
D R T1 R 1 :
0

48/89

Transformaciones de Householder

Alston Scott Householder, EE.UU.,


1904-1993.

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.

Teorema Toda transformacin de Householder es simtrica y ortogonal.


I D EMOSTRACIN . Por definicin H T D I
adems wT w D kwk22 D 1,
HTH D H2

D
D

2.wwT /T D I

2.wT /T wT D I

.I 2wwT /.I 2wwT /


I 4wwT C 4w.wT w/wT D I:

2wwT D H . Como

49/89

Aplicar una transformacin de Householder a un vector cualquiera equivale a


obtener su reflejo respecto al subespacio .Im.w//?.
a

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:

El vector .wT a/w es la proyeccin de a sobre w; es decir, H a es igual al


vector a menos dos veces su proyeccin sobre w.

Lo esencial de estas transformaciones es su capacidad de hacer cero


determinados coeficientes de un vector dado modificarlo ortogonalmente:


Si x e y son dos vectores no nulos de igual norma eucldea y se hace


1
wD
.x y/;
kx yk2
entonces
.I 2wwT /x D y:

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

Esto es as pues, al tener x e y la misma norma eucldea,


.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

Este resultado, geomtricamente, se deduce inmediatamente de la reflexin


antes mencionada.


El vector w es colineal con el vector x

Como x e y tienen la misma longitud, la reflexin de x respecto a


.Im.w//? es y.

y.

6
678

3
01203445
8

52/89

En un sistema Ax D b se pueden construir transformaciones de Householder


que anulen los coeficientes que se deseen de cada vector columna de A dejando
los dems como estaban.


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

La matriz A 1 resultara de la transformacin H 1A 0; la A 2 sera


H 2A 1 D H 2H 1A 0; y as cuatro veces.

A una matriz m  n se le aplicar una sucesin k D 1; : : : ; n de


transformaciones, cada una de las cuales ha de hacer cero los coeficientes
k C 1; : : : ; m del vector columna k.


Se pretende que la transformacin k-sima, H k , haga:



aik para i D 1; 2; : : : ; k 1
H k ak D y D
0 para i D k C 1; : : : ; m:
Los coeficientes del vector y debern ser:
y1
y2
yk
ykC1
ym

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.


La transformacin H k tendr como vector w D .ak

y/=kak

yk2.

53/89

El coeficiente k-simo de y puede adoptar dos signos. Para evitar errores de


cancelacin, se escoge el signo opuesto al del coeficiente k-simo de ak .

En esta figura hay dos posibilidades para transformar a en un vector de igual


magnitud con a2 D 0: convertirlo en y o y 0,

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.

La transformacin alternativa, walt convertira a a y: su primer coeficiente es


a1 y1; el segundo el mismo de w.

55/89

En definitiva, en la transformacin de Householder k-sima que se aplica a la


matriz A, los valores numricos del vector w son:
2
3
0
:::
6
7
6
7
6
7
1
6akk C s  signo.akk /7
wDp
6
7;
a
6
7
kC1k
2s.s C jakk j/ 6
7
:::
4
5
amk
q
2
2
2
C akC1k
C    C amk
.
donde s D akk

56/89

Caso numrico 1: Resolucin de Ax D b, A mn, m > n y rango


completo


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


La solucin de mKnx 2Rn kAx


sustitucin inversa.

bk2 sera la del sistema R 1x D c, por

La suma de residuos al cuadrado ser kdk22.

El algoritmo numrico completo es el que describe la tabla que sigue.

Resolucin de Ax D b por transf. de Householder

 Transformacin columnas de la Matriz A mn


for j D 1 to n
if mKa0
x fja.j; j /j; : : : ; ja.m;
j /jg D 0 then stop
1
v
uX
m
u
 D @t
a.k; j /2 A  signo.a.j; j //
kDj

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

En Matlab, con la posibilidad de obtener Q y R:

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

Si utilizamos este script para resolver el ejemplo.


>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r]=Qrdes_3(A,b)
x =
0.5000
1.4000
-0.0000
r =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

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


El nmero de operaciones de este mtodo es:




O.mn2 n3=3/ sumas+restas y multiplicaciones+divisiones, para


transformar la matriz A en R;

n races cuadradas y las de la sustitucin inversa, O.n2=2/.

61/89

Caso numrico 2: Resolucin de Ax D b, A mn, n > m y rango


completo


Este problema, si tiene solucin, es indeterminado: tiene muchas.

La de menor norma eucldea se puede calcular mediante estos pasos:


Paso 1 Se aplica el algoritmo QR a la matriz A T , en vez de a A. Resultar
 
R
QT A T D
;
0
 
R
es decir, A T D Q
, donde Q es una matriz ortogonal n  n y R una
0
triangular superior m  m.

Paso 2 La matriz original A ser



A D R T ; 0T QT :

Si se sustituye en la ecuacin Ax D b, se tendr que


 T
 T
T
R ; 0 Q x D b:

Si se hace el cambio de variable z D QT x, la ltima ecuacin queda


 T

T
R ; 0 z D b:

Como zT z D .QT x/T .QT x/ D x T QT Qx D x T x, las normas


eucldeas de x y z sern iguales.
 zR 
 Estructurando el vector z en
z0 y b de igual manera, la solucin de
 T

R ; 0T z D b saldr de resolver


R T zR D bR ;

siendo los dems coeficientes del vector z, z0, nulos.

62/89

63/89

Paso 3 El vector solucin x que se busca resultar de deshacer el cambio de


variable introducido; es decir:
 
z
xDQ R :
0

64/89

Caso 3: Resolucin numrica de Ax D b, A mn, m > n m < n y


rango incompleto


Caso ms general que se puede dar en mnimos cuadrados de ecuaciones lineales.

Paso 1 Se transforma la matriz A mediante transformaciones de


Householder y permutaciones de columnas para llegar a:
r

0


mr

En cada etapa k se calcula la norma eucldea de ak , k; : : : ; n,


limitndose a sus coeficientes k; : : : ; m y se intercambia la columna k
con la de mayor norma.

65/89

Paso 2 Del Paso anterior se ha llegado a


QAP D R D


 
R 11 R 12
r
c
r
y Qb D
;
0 R 22
m r
d m r
r n r

donde kR 22k2  1kAk2. A partir de aqu hay dos opciones:





Que r D n (rango completo). La solucin sale de resolver R 11x D c.

Que r < n (rango incompleto).


Se construyen
unas
transformaciones




nn
ortogonales, Q1 , tales que R 11; R 12 Q1 D W ; 0 , donde W rr
es triangular superior.

Cmo hacer esto? Se acta sobre R 11, R 12T y se llega a b).


a)

66/89

b)

nr

Esto se hace en r etapas. En una de ellas, k, se premultiplica por una


transformacin de Householder que haga cero los elementos r C 1 a n de
la columna k y que deje inalterados del 1 al k 1 y del k C 1 a r.


0
0


0 0
0 0

0
0


0 0
0 0

0
0

0
0

El valo indica el elemento que se utiliza para definir cada


transformacin; los que se hacen cero con el signo .


0 0
0 0

67/89

Paso 3 De los dos pasos anteriores se tendr que


kAx


bk2 D k.QAP/.P T x/

Qbk2:

Ahora bien, .QAP/P T x se puede escribir .QAP/Q1QT1 P T x y


tambin,


 
W 0
c
QT1 P T x D
:
d
0 0
Si se hace QT1 P T x D y y se resuelve W y 1 D c, el vector solucin que
se busca, x, resultar de
 
y
x D PQ1 1 :
0

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

Apliquemos este programa en una sesin de Matlab:


a=rand(200,4);
b=a*ones(4,1);
A=[a a(:,1)*2+a(:,2)*0.5 a(:,3)*2+a(:,4)*0.5 a(:,2)*2+a(:,3)*0.5];
size(A)
ans = 200
7
format long
[x r res]=Mincua_QR(A,b)
x =0.168704156479218
0.156479217603912
0.009779951100245
0.792176039119804
0.415647921760391
0.415647921760391
0.317848410757946
r = 4
res = 1.205973193713402e-029

>> x-pinv(A)*b
ans = 1.0e-015 *
-0.111022302462516
0.333066907387547
0.194289029309402
-0.333066907387547
0.166533453693773
-0.943689570931383
0.499600361081320

69/89

Si lo utilizamos para resolver el ejemplo.

>> A=[1 1 1;1 2 4;1 3 9;1 4 16]


A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r res]=Mincua_QR(A,b)
x =
0.500000000000000
1.400000000000000
0
r =
3
res =
0.200000000000001
>> A\b
ans =
0.5000
1.4000
-0.0000

70/89

71/89

Transformaciones de Givens

James Wallace Givens, EE.UU., 1910-1993.

Definicin Se denomina transformacin de Givens a una transformacin lineal ortogonal


de Rn en Rn caracterizada por una matriz
2
1
6 :::
6
6
1
6
6
6
G .i; j / D 6
6
6
6
6
6
4

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

Al aplicar a x 2 Rn una transformacin, o rotacin, de Givens,


G .i; j / W Rn ! Rn, con c D cos  y s D sen  , producir lo siguiente:
2

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

Se rota el vector x un ngulo  en el subespacio que generan los vectores e i y


ej de Rn.

73/89

Para hacer cero alguno de los coeficientes i j de un vector x, concretamente


el j , se deber escoger un  tal que xi sen  C xj cos  D 0, es decir, habr
que hacer
xj
tan  D ;
xi
o, lo que es equivalente,
c D cos  D q x2 i 2
xi Cxj

s D sen  D

x
q j
:
xi2 Cxj2

Ejemplo En la figura se describe, en el espacio eucldeo tridimensional, la


rotacin del vector
2 3
1
x D 415
1
en el plano z

y para anular su tercer coeficiente.


z

....
....
....
....
....
....
...
...
...
...
..
..
...
...
...
..
..
..
..
..
..
..
..
..
..
..
..
...
...
...
...
...
..
..
..

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

El nuevo vector ser

2 3
1
p
G x D x 0 D 4 25 :
0
p
La norma eucldea de ste y del original es 3.

Mediante transformaciones de Givens se puede reducir la matriz de un problema


de mnimos cuadrados, en n etapas, a una triangular superior R. En cada una
de esas etapas, j , se haran cero, uno a uno, los coeficientes j C 1 a m.

Por ejemplo, las operaciones


necesarias
para transformar la matriz
2
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

son las que siguen.

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

El algoritmo numrico completo es el que describe la tabla que sigue.


 Resolucin de Ax D b por transf. de Givens
 Transformacin de la Matriz A mn
for i D 1 to n
for k D i C 1 to m
 Hacer nulo el elemento .k; i /.
if a.k; i / 0 then
if ja.k; i /j  ja.i; i /j then p
t D a.i; i /=a.k; i /I s D 1= 1 C t 2 I c D s  t
else
p
t D a.k; i /=a.i; i /I c D 1= 1 C t 2 I s D c  t
end
a.i; i /
c  a.i; i / C s  a.k; i /
for j D i C 1 to n
aux D c  a.i; j / C s  a.k; j /; a.k; j /
s  a.i; j / C c  a.k; j /; a.i; j /
end
 Transformacin del vector b.
aux D c  b.i / C s  b.k/; b.k/
s  b.i / C c  b.k/; a.i /
aux
end
end
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

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

>> A=[1 1 1;1 2 4;1 3 9;1 4 16]


A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x,r]=Givens(A,b)
x =
0.5000
1.4000
-0.0000
r =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

79/89

El nmero de operaciones que requiere este algoritmo para transformar A es


O.2mn2 2n3 =3/ sumas+restas y multiplicaciones+divisiones
O.mn=2/ races cuadradas y
O.n2 =2/ sumas+restas y multiplicaciones+divisiones para efectuar la sustitucin inversa.

Con precisiones semejantes Givens es el doble de caro que Householder.


Cundo utilizar Givens y Householder entonces?


La clave est en considerar la estructura de la matriz A del problema:


Si sta es densa, es decir, muchos de sus coeficientes son distintos de
cero, el mtodo de Householder es el ms aconsejable;
Si la estructura de A es dispersa, convendr centrarse en hacer cero
slo aquellos elementos no nulos en las columnas correspondientes, por
lo que, a priori, el mtodo de Givens deber ser ms ventajoso.

Transformaciones rpidas e Givens




80/89

La idea es conseguir velocidad de Householder con una M 2 Rmm tal que


MA D S

sea triangular superior y que M M T D D D diag.d1; : : : ; dm/.




Como D

1=2

M es ortogonal, se tiene que


 1

A D M 1S D D 1=2M
D 1=2S D M T D

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

Por descomposicin en valores singulares




Existen diversos mtodos iterativos para calcular la descomposicin numrica en


valores singulares
A D U V T :

A partir de ella, la solucin de mKnx 2Rn kAx bk2 es


 1 
r 0
U T b:
xDV
0 0

Para cualquier matriz A mn, de rango completo o incompleto, la solucin del


problema de menor norma eucldea es
X uT b
i
xD
vi :
i
i 0

82/89

Ejemplo Utilizando la descomposicin U V T de A resolver


2

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

Como el valor singular 3 D 0, la solucin de norma eucldea mnima se


uT1 b
uT2 b
obtiene de x D
v1 C
v2
1
2
 0;2017
 0;8903  0;5
11;0709
0;0 :
0;5168 C 1;5606
0;2573 D
D 35;1272
2;4654
0;8320

0;3757

83/89

0;5

Este programa de Matlab resuelve el ejemplo llamando a svd() para obtener


la descomposicin en valores singulares de A.
function [x S r] = Svdre(a,b)
% Resolucin ||Ax-b|| mediante la desc. en valores singulares de A
[m,n] = size(a); tol=sqrt(eps); tmp=zeros(m); x=zeros(n,1);
[U S V]=svd(a); S=diag(S); r=0;
for j=1:n
if S(j)>=tol
r=r+1;
tmp(r)=dot(U(:,j),b)/S(j);
end
end
for j=1:r
x=x+tmp(j)*(V(:,j));
end
end

84/89

Comparacin de los diversos mtodos


Mtodo
Ecuaciones Normales
Transformaciones de Householder
Transformaciones de Givens
Mtodo de Gram Schmidt
Mtodo de Gram Schmidt Modificado
Mtodo de Golub-Reinsch (SVD)
Mtodo de Golub-Reinsch-Chan (SVD)

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

Los mtodos basados en transformaciones ortogonales son los ms precisos y


habituales.

El basado en SVD es el ms robusto, aunque ms caro.

85/89

Matlab y el problema de mnimos cuadrados




Para calibrar las posibilidades de Matlab con los problemas de mnimos


cuadrados, vamos a utilizarlo para ajustar a unos puntos la funcin
y D c1xe c2x
que se utiliza en prospeccin de hidrocarburos y minerales.

Como no disponemos de datos reales, vamos a generar unos sintticos haciendo


c1 D 5 y c2 D 3.

Generaremos 300 puntos y los perturbaremos con un ruido aleatorio normalizado


de media 0.

Utilizaremos como mtodos para obtener los parmetros c1 y c2, en un modelo


linealizado, con ayuda de las rutinas de Matlab:

86/89

El operador n

Las ecuaciones normales

La descomposicin QR

El mtodo de Gram-Schmidt

La descomposicin en valores singulares y

La matriz pseudoinversa,

Para linealizar el modelo original, haremos los cambios


v D ln.y=x/; u D x; D ln c1 y D c2;
resultando
v D u C :

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

%primer punto de muestra


% 300 puntos
%nube de puntos
% + ruido: valores pos.
%cambio de variable
% Matriz del sistema
% Prim. respuesta: con \

% 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;

% Construccin de los datos


%
%
con cambio de variable
%
%
para linealizar el
%
modelo
%

fprintf(Parmetros ajustados:\ncon A\\b:


exp(c(1)),c(2));

Un script.m con las instrucciones

c1 = %18.15f c2 = %18.15f\n,...

% --- Plot datos


xfit = linspace(min(x),max(x));
yfit = exp(c(1))*xfit.*exp(c(2)*xfit);
if n<30, s = v; else s = -; end
% Smbolo para datos originales
plot(x,y,s,x,yn,o,xfit,yfit,--);
xlabel(x);
ylabel(y); legend(original,+ruido,ajustado);
xmax = max(x);
ymax = max(y);
text(0.5*xmax,0.7*ymax,sprintf(c1 = %6.4f c2 = %6.4f,exp(c(1)),c(2)));
text(0.5*xmax,0.6*ymax,sprintf(%d puntos "sintticos",n));
% --- Plot funciones ajustadas
% Cholesky
G=chol(A*A);
c1=G\(G\(A*v));
fprintf(con chol(A\*A);
c1 = %18.15f c2 = %18.15f\n,exp(c1(1)),c1(2));
% Factorizacin QR
[Q,R]=qr(A,0);
c2=R\(Q*v);
fprintf(con [Q,R]=qr(A);

c1 = %18.15f c2 = %18.15f\n,exp(c2(1)),c2(2));

% Gram.Schmidt modificado
[Q,R]=gs_m(A);
c3=R\(Q*v);
fprintf(con [Q,R]=gr_m(A);

c1 = %18.15f c2 = %18.15f\n,exp(c3(1)),c3(2));

% Matriz pseudoinversa
c4=pinv(A)*v;
fprintf(con pinv(A)*b;

c1 = %18.15f c2 = %18.15f\n,exp(c4(1)),c4(2));

% Descomposicin en valores singulares


[U S V]=svd(A);
c5=V\(S\(U\v));
fprintf(con [U S V]=svd(A); c1 = %18.15f c2 = %18.15f\n,exp(c5(1)),c5(2));

88/89

89/89

Grfico con los 100 puntos sintticos, la funcin original y la ajustada.


0.7
original
+ruido
ajustado

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Funciones de interpolacin

y aproximacin

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_interpolacin_aproximacin_funciones_2016.pdf

1/59

2/59

ndice
 Introduccin

 Interpolacin polinmica


Polinomios de Lagrange

Polinomios de Newton

Polinomios Ortogonales

 Interpolacin polinmica por trozos




Interpolacin de Hermite

Splines cbicas

Curvas de Bzier

Piecewise Polynomial Interpolation


Mongkol JIRAVACHARADET

SURANAREE

3/59

INSTITUTE OF ENGINEERING

UNIVERSITY OF TECHNOLOGY

SCHOOL OF CIVIL ENGINEERING

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

Vehicle speed is approximately 49 km/h

truetype fonts, postscript,


metafonts
graphics surfaces
smooth surfaces are needed
how do we interpolate
smoothly a set of data?
keywords: Bezier Curves,
splines, B-splines, NURBS
basic tool: piecewise
interpolation

do we contain our interpolation?


T. Gambill (UIUC)
es
script (Adobe): rasterization on-the-fly. Fonts, etc are defined as

InterpolacinInterpolation
vs. aproximacin
o ajuste.
v.s. Curve
Fitting

4/59

 Interpolacin vs. aproximacin y ajuste.


yy

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

comportamiento de datos, acorde con un modelo establecido;


Interpolation & Extrapolation

la interpolacin que la funcin, o funciones, a que de lugar incluya todos los


Interpolation approximate within the range of independent variable
datos conocidos,
habitualmente buenos.
a

10

Suppose we have a sequence of data points

La interpolacin tiene como


objeto la obtencin de
nuevos puntos de una
Coordinates x1 x2
xn
sucesin o conjunto de ellosFunction
conocido yque
yobedece
aynalgn patrn o tendencia
1
2
determinada.

I Try to plot a smooth curve (a continuous differentiable function)


Por lo general
busca obtener una funcin que se verifique en todos los puntos
connecting these discrete points.
conocidos y que permita calcular tantos nuevos como se desee.

 La interpolacin tiene como objeto la obtencin de nuevos puntos a


partir
del conocimiento
un conjunto
Interpolation
betweendedata
points discreto de ellos.

5/59

Por ejemplo, encontrar el valor de y para un x cualquiera en un experimento en


el que se han obtenido un conjunto de puntos .x; y/.

 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

La aproximacin busca obtener una funcin que de resultados tan cercanos


como sea posible a los de otra, o a un conjunto de datos, no necesariamente
"pasando"por, o cumplindose para todos ellos.

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:

En muchos casos, obtener una funcin terica preestablecida que mejor se


ajusta a puntos empricos (ajustes por mnimos cuadrados).

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

Para obtener una funcin de interpolacin, f .x/, un primer enfoque consiste en


obtenerla mediante una combinacin lineal de un conjunto de funciones
estndar o funciones base.

Si se considera un conjunto de n funciones base, j , j D 1; : : : ; n, se pretende


que
n
X
f .x/ D
cj j .x/:
j D1

Las funciones base pueden ser diversas:




Polinomios, polinomios por trozos o porciones

Funciones racionales

Funciones trigonomtricas,

:::

El proceso de interpolar parte de un muestreo de una funcin, de un


experimento, etc. del que se tienen m datos a los que se quiere aproximar una
funcin.

Por experiencia, intuicin o inteligencia se escogen n funciones base j para


combinarlas y, mediante un proceso algebraico que desmenuzaremos, se llega a
un sistema de ecuaciones lineales de la forma
n
i

cj j .xi / D f .xi /;

i D 1; : : : ; m:

j D1

Este sistema:


Si m > n, lo normal es que sea incompatible y habra que resolverlo


mediante tcnicas de mnimos cuadrados.

Si m < n, el sistema tendr muchas soluciones.

Si m D n se puede determinar una nica funcin.

8/59

Comprobar, ejecutar y analizar qu se hace en Interpolacion_eje1.m

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

Clases EPFL: Position du problme

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

La polinmica es la forma ms extendida de interpolacin. En la expresin


n
X
j D1

cj j .xi / D f .xi /;

i D 1; : : : ; n;

como funciones base se escogen los monomios j .x/ D x j 1.




Da lugar a pn 1.x/ D c1 C c2x C c3x 2 C2    C cnx n


1 x1
61 x
del sistema lineal de Vandermonde Ac D 4 :: ::2
: :
1 xn

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

Ejemplo Consideremos los precios de gas natural que siguen:


x 2007 2008 2009 2010 2011 2012
Ao
Precio y 133,5 132,2 138,7 141,5 137,6 144,2
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,-);

Copiar y pegar en Matlab. Luego usar Interpolacion_eje2.

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

Joseph-Louis Lagrange, Turin, 1736-Pars,


1813.

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

l1 y l2 son los polinomios de interpolacin de Lagrange de primer orden.

15/59

En general, para un conjunto de datos .xi ; yi /, i D 1; : : : ; n, las funciones base


de Lagrange en el cuerpo Pn 1 son
n
Y

lj .x/ D

kD1
kj
n
Y

.x

.xj

xk /
j D 1; : : : ; n:

;
xk /

kD1
kj

Cada una de las funciones lj .x/ son polinomios de grado n


(

lj .xi / D ij D

1 si i D j
0 si i j

1 y cumplen que

i; j D 1; : : : ; n:

x D 0 0;25 0;50 0;75 1T .

16/59

Funciones base de Lagrange para x=[0.00, 0.25, 0.50, 0.75, 1.00]


1.2

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

pn 1.x/ D y1l1.x/ C y2l2.x/ C    C ynln.x/:

17/59

Cdigo de Matlab para obtener la interpolacin con polinomios de Lagrange


de unos puntos.
function [l,L]=lagrang_int(x,y)
% Calcula el polinomio de interpolacin de Lagrange
%
x e y vectores de datos, l coeficientes polinomio resultante
%
L polinomio base
N=length(x)-1; l=0;
for m=1:N+1
P=1;
for k=1:N+1
if k~=m, P=conv(P,poly(x(k)))/(x(m)-x(k)); end
end
L(m,:)=P;
% Polinomios de Lagrange base
l=l+y(m)*P;
% Coeficientes el polinomio resultante
end
end

% 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

El resultado de ejecutar >>do_Lagrange_int es el de la figura.


6

6
2

1.5

0.5

0.5

1.5

Volvamos sobre el problema de los precios del gas natural.

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


El polinomio de interpolacin de Newton tiene la forma


pn 1.x/ D c1 C c2.x x1/ C c3.x x1/.x x2/C
   C cn.x x1/.x x2/    .x xn 1/:

Las funciones base son


j 1

j .x/ D

.x

kD1

xk /;

j D 1; : : : ; n:

Para i < j , j .xi / D 0, por lo que la matriz A es triangular inferior, con


aij D j .xi /.

21/59

x D 0 0;50 1;00 1;50 2 .

Funciones base de Newton para x=[0.00, 0.50, 1.00, 1.50, 2.00]


3

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

Ejemplo Calculemos el polinomio de interpolacin de Newton para los puntos


. 2; 27/, .0; 1/ y .1; 0/.

El sistema que hay que resolver es


2
1
0
0
41 x2 x1
0
1 x3 x1 .x3 x1/.x3

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

El clculo polinomio de interpolacin de Newton se puede optimizar usando las


diferencias divididas.

Volviendo a la expresin matricial general anterior para un polinomio de segundo


grado,
2
32 3 2 3
1
0
0
c1
y1
41 x2 x1
5 4c25 D 4y25 ;
0
1 x3 x1 .x3 x1/.x3 x2/
c3
y3
si se sustrae de la segunda fila la primera, y de la tercera tambin la primera, se
tiene
2
32 3 2
3
1
0
0
c1
y1
40 x2 x1
5 4c25 D 4y2 y15 :
0
0 x3 x1 .x3 x1/.x3 x2/
c3
y3 y1

24/59

Si se divide la segunda fila por .x2

2
1
40
0

0
1
1

x1/ y la tercera por .x3


3
2
y1
7
6
32 3
7
6
0
c1
6 y2 y1 7
7
0 5 4c25 D 6
6 x2 x1 7 :
7
6
x 3 x2
c3
4y
y 5

De la segunda fila se obtiene que c2 D .y2




x3

x1

y1/=.x2

x1/ se llega a

x1/.

Se introducen ahora las diferencias divididas de primer orden


f x1; x2 

y2
x2

y1
x1

y f x1; x3 

y3
x3

y1
:
x1

25/59

Si se sustrae la tercera fila de la segunda se llega a


3
2
32 3 2
y1
1 0
0
c1
6
7
40 1
0 5 4c25 D 4
f x1; x2
5:
0 0 x3 x2
c3
f x1; x3 f x1; x2

Si se divide la tercera fila por x3 x2 se llega a


3
2
32 3 2
y1
1 0 0
c1
7
40 1 05 4c25 D 6
4 f x1; x2 5 ;
0 0 1
c3
f x1; x2; x3
donde
f x1; x2; x3 

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

Con estas frmulas de recurrencia, para un polinomio de segundo grado,


c1 D

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

Las diferencias divididas se pueden calcular en forma de tabla


x f 
x1 f x1

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

f x1; x2; x3; x4

28/59

Ejemplo Calcular el polinomio de interpolacin de Newton de


x 1

3
2

0 2

y 3

13
4

5
3

La tabla de diferencias divididas es:


x
1

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:

Este programa realiza la interpolacin de Newton.


function [n,DD]=Newton_int_1(x,y)
% Interpolacin con polinomios de Newton
%
Vectores de entrada x e y; salida: coeficientes en n y dif. en DD
N = length(x)-1;
DD = zeros(N+1,N+1); DD(1:N+1,1) = y(:);
for k=2:N+1
for m=1:N+2-k
DD(m,k)=(DD(m+1,k-1)-DD(m,k-1))/(x(m+k-1)-x(m)); % Diferencias divididas
end
end
a = DD(1,:); n = a(N+1);
for k=N:-1:1
n = [n a(k)] - [0 n*x(k)];
% n(x)*(x-x(k-1))+a_k-1
end
end

Ahora resolvamos un ejemplo cualquiera con este programa.

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

Resolvamos a mano el ejemplo anterior con la tabla.


>> x=[1 3/2 0 2];
>> y=[3 13/4 3 5/3];
>> [n DD]=Newton_int_1(x,y)
n =
Columns 1 through 3
-2.000000000000000
5.333333333333334
Column 4
3.000000000000000
DD =
Columns 1 through 3
3.000000000000000
0.500000000000000
3.250000000000000
0.166666666666667
3.000000000000000 -0.666666666666667
1.666666666666667
0
Column 4
-2.000000000000000
0
0
0

-3.333333333333334

0.333333333333333
-1.666666666666667
0
0

Polinomios Ortogonales

32/59

Otra base interesante para interpolacin es la de los polinomios ortogonales en


el espacio vectorial Pn.

El producto interior de dos polinomios hp; qi en el intervalo a; b se define


como
l
b

hp; qi D

p.x/q.x/!.x/ dx;

donde !.x/ es una funcin de prueba1 no negativa. Los polinomios son


ortogonales si hp; qi D 0.


Un conjunto de polinomios fpi g es ortonormal si


(

hpi ; pj i D
1

O de ponderacin.

1 para i D j

0 para i j:

Se puede usar cualquier procedimiento de ortogonalizacin, por ejemplo


Gram-Schmidt, para obtener una base ortonormal de un espacio de polinomios.

33/59

Andrien-Marie Legendre, Francia, 1752-1833.

Por ejemplo, si !.x/ D 1, y en el intervalo 1; 1 se aplica Gram-Schmidt a


los monomios 1, x, x 2, x 3; : : :, escalando los resultados para que pk .1/ D 1,
para cada k, se obtienen los polinomios de Legendre:
1; x; .3x 2
.35x 4

1/=2; .5x 3

3x/=2;

30x 2 C 3/8; .63x 5

70x 3 C 15x/=8; : : : ;

Los primeros n forman una base ortogonal de Pn 1. Su frmula general es



1 di  2
i
pi .x/ D i
.x
1/
:
i
2 i dx

34/59

En la figura se representan los seis primeros polinomios de Legendre.

Otros polinomios ortogonales conocidos:


Polinomio
Legendre
Chebyshev, primer tipo
Chebyshev, segundo tipo
Jacobi
Laguerre
Hermite

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

Los polinomios ortogonales tienen propiedades muy tiles para algoritmos


numricos. Satisfacen frmulas de recurrencia que los hacen fciles de generar y
evaluar:
pkC1.x/ D .k x C k /pk .x/ k pk 1.x/:
La de los polinomios de Legendre, por ejemplo, es

.k C 1/PkC1.x/ D .2k C 1/xPk .x/




kPk 1.x/:

Tambin se usan frecuentemente para aproximar por mnimos cuadrados


funciones mediante polinomios de cualquier grado, pues la ortogonalidad hace
que la matriz del sistema que se resuelve sea diagonal.

36/59

Pafnuty Lvovich Chebyshev, Rusia, 1821-1894.

Los polinomios de Chebyshev son otra familia de polinomios ortogonales muy


interesante. En su forma trigonomtrica se definen, para x 2 1; 1, por la
identidad
Tk .x/ D cos.k arc cos.x//
adems de que T0.x/ D 1 y T1.x/ D 1.

Su frmula de recurrencia de tres trminos es


Los primeros son,

TkC1.x/ D 2xTk .x/


1; x; 2x 2
8x 4

1; 4x 3

Tk 1.x/:

3x;

8x 2 C 1; 16x 5

20x 3 C 5x; : : : ;

37/59

Los cinco primeros los representa esta grfica.


Polinomios de Chebyshev

0.5

function p=chebypoly(n) %n es grado 0,1,2...


%
p=zeros(n+1,1);
p1=[1];
p2=[1 0];
if n==0, p=p1;
elseif n==1, p=p2;
else
for i=2:n
p =2*[p2 0]-[0 0 p1];
p1=p2;
p2=p;
end
end
end

-0.5

-1

-1

-0.8

-0.6

-0.4

-0.2

0
x

0.2

0.4

0.6

0.8

Su propiedad quizs ms interesante es la equialternancia, o equioscilacin, pues


los sucesivos puntos extremos tienen igual magnitud pero signo distinto, como
se aprecia en la figura.

38/59

En interpolacin polinmica de puntos de una funcin continua, el error mximo


en un intervalo se minimiza si se escogen como puntos de interpolacin las
races de los extremos de un polinomio de Chebyshev de grado adecuado: los
nudos o puntos de Chebyshev.

Los puntos de un polinomio de Chebyshev Tk son los k ceros o races de ese


polinomio, es decir,


2i 1
 ; i D 1; : : : ; k
xi D cos
2k
y los k C 1 puntos extremos (mximos y mnimos), incluidos los de los extremos
del intervalo, es decir
 
i
xi D cos
; i D 0; : : : ; k:
k

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

Figure 1: Choosing Chebyshev Points

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

3. Project the arcs onto the x-axis, giving the1following


for each Chebyshev point xj
2
C 25xformula

(for j = 0, 1, . . . , N )
intervalo 1; 1.xj = a +2 b + b 2 a cos jN

Por Carl David Tolm Runge, Alemania, 1856-1927.1

39/59

Usando puntos igualmente espaciados en las abcisas fenmeno de Runge y de


Chebyshev, el resultado que se obtiene con polinomios de Newton es este.

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

El programa que se ha usado:

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

Se puede probar que el polinomio de Chebyshev de grado n que mejor interpola


puntos de una funcin f .x/ usando puntos de Chebyshev es:
p.x/ D

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

Para calcular el valor de ese p.x/ en determinados puntos se puede usar el


algoritmo de Clenshaw por Charles William Clenshaw, Reino Unido,
1926-2004, del NPL, una generalizacin de la regla de recurrencia de Horner:
n
X
kD0

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

que es la misma grfica de antes.




Aqu se pueden ver otras aproximaciones.

0.2

0.4

0.6

0.8

44/59

Interpolacin polinmica por trozos




Como hemos visto, algunas veces, al interpolar mediante un nico polinomio un


conjunto amplio de datos, se suelen producir resultados poco satisfactorios en
forma de oscilaciones.

Una mejora consiste en interpolar cada intervalo entre datos mediante un nico
polinomio u otra funcin.

La interpolacin ms simple es un segmento de lnea recta entre cada dos datos


o nudos.

Aqu se pueden ver algunos casos.

45/59

Interpolacin de Hermite

Charles Hermite, Francia, 1822-1901.

Esta interpolacin tiene en cuenta los valores de la funcin que aproximar por
interpolacin en puntos concretos y el de sus derivadas.

Cada tramo es un polinomio de tercer grado con primera derivada continua en


los extremos.

El nmero de ecuaciones que se aade as al sistema lineal que subyace en el


proceso es significativo.

Supongamos que se quiere aproximar f .x/ en el intervalo xi ; xd , mediante


interpolacin con un polinomio de tercer grado
p.x/ D a C b.x

xi / C c.x

xi /2 C d.x

xi /2.x

xd /;

y que f .xi / D yi , f .xd / D yd , p.xi / D yi , p.xd / D yd , p 0.xi / D si y


p 0.xd / D sd .


Necesitaremos calcular a, b, c y d .

La derivada del polinomio es


p 0.x/ D b C 2c.x xi / C d 2.x

Sustituyendo los valores conocidos se tiene que


a D yi

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

Si se tienen n nudos o datos, har falta determinar 4.n


polinomios.

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 que tengan derivadas continuas aade otras n


punto de unin.

2 ecuaciones para cada

El total de ecuaciones es 3n
parmetros libres.

4, lo que deja 4.n

La interpolacin por tanto no es nica, por lo que se pueden fijar ms


condiciones para esos grados de libertad: monotonicidad, convexidad, etc.

La funcin que realiza esta aproximacin en Matlab es pchip. Una sesin de


trabajo con un ejemplo sencillo puede ser

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


Una spline es una curva definida mediante porciones de polinomios de grado k,


con continuidad hasta la derivada k 1.

Una spline cbica es un polinomio de tercer grado con continuidad hasta la


segunda derivada.

La idea de interpolar mediante splines es usar varias porciones de spline, cada


una correspondiente a un polinomio de grado bajo, para pasar a travs de varios
puntos.

Splines
Paul de Faget de Casteljau 1930French mathematician/physicist
1958-1992: Citron; unpublished work in 1958

Pierre Bezier 1910-1999


1933-1975: engineer at Renault
1960: beginning of CADCAM work, Bezier curves

Isaac Jacob Schoenberg 1903-1990


Born in Romania (Landaus son-in-law). To USA in 1930.
Chicago, Harvard, Princeton, Swarthmore, Colby
1941-1966: University of Pennsylvania
1943-1945: Army Ballistic Research Laboratory
1946: two papers on splines
1966-1973: U. of Wisconsin

Carl de Boor 1937Born in what became East Germany. To USA in 1959.


1960-1964: General Motors (grad student intern)
1962: first of many publications on splines
Purdue, Michigan
1972- U. of Wisconsin

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.

Los dos grados de libertad adicionales se fijan si, por ejemplo,




Las primeras derivadas en los extremos izquierdo y derecho se fijan en


sendos valores.

Las segundas derivadas en los extremos son cero.

Las primeras y segundas derivadas en los extremos son iguales dos a dos, etc.

Ejemplo Estudiemos la interpolacin de tres puntos .x1; y1/, .x2; y2/ y


.x3; y3/. Los polinomios de los dos tramos podran ser

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:


Se necesitan 8 ecuaciones para determinar los parmetros.

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 :

La continuidad de las primeras derivadas en x2 impone esta condicin


2 C 23x2 C 34x22 D 2 C 23x2 C 34x22:

La continuidad de las segundas derivadas en x2 impone esta otra

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:

Todo en forma matricial queda


2
2
3
1 x1 x1
x1
2
3
1
x
x
2
60 0 20 x20
6
60 0 0 0
60 1 2x2 3x22
60 0 2 6x
2
4
0 0
2 6x1
0 0
0
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

Resolviendo este sistema se obtiene la solucin deseada.

y1
6yy27
6 37
6y47
607:
607
4 5
0
0

55/59

En Matlab esta funcin se realiza con spline, de C. de Boor.

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.

Sergei Natanovich Bernstein,


Rusia, 1880-1968.

Polinomios de Bernstein en t 2 0; 1 para


las curvas de Bzier y0 D .1 t /3 , azul,
y1 D 3.1 t /2 t, verde, y2 D 3.1 t /t 2 ,
rojo y y3 D t 3 , cyan.

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 ;

Curva de Bzier de grado 1

0  t  1:

Una curva de Bzier cuadrtica definida por tres puntos de control


P0 D .x0; y0/, P1 D .x1; y1/ y P2 D .x2; y2/ es la curva
B.t/ D .1

57/59

t/2 P0 C 2.1

t/t P1 C t 2 P2 ;

Curva de Bzier de grado 2

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/2 tP1 C 3.1

t/t 2 P2 C 3t 2 P3 ;

Curva de Bzier de grado 3

Una de cuarto grado.

La curvas de Bzier se pueden conectar unas con otras con diversas


continuidades y ampliarse para definir superficies en 3D.

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

En el caso que nos


curva es:

abrupt changes in curvature (discontinuous second derivatives) are occasionally needed.


Pierre Bzier
thecxidea
x.t/ Ddeveloped
x1 C bx t C
t 2 Cduring
dx t 3 his work for the Renault automobile com
2
pany. The same
by Paul de Casteljau, working fo
y.t/ idea
D y1was
C bydiscovered
t C cy t Cindependently
dy t 3 :
Citroen, a rival automobile company. It was considered an industrial secret by both com
panies, and the fact that both had developed the idea came to light only after Bzier pub
lished his research.
curve is a cornerstone of computer-aided design an
bxToday
D 3.x2thexBzier
1/
manufacturing. cx D 3.x3 x2 / bx
x1 Bzier
bx cx spline is determined by four points (x1 , y1
Each piece dof
x Dax4planar
by4D
y1rst
/
, y3.y
and last of the points are endpoints of the splin
(x2 , y2 ), (x3 , y3 ), (x
4 ). 2The
c
D
3.y
y
/
b
y
3
2
y
curve, and the middle two are control points, as shown in Figure 3.14. The curve leave
dy D y4 direction
y1 by(x2c
y : x1 , y2 y1 ) and ends at (x4 , y4 ) along the tangen
(x1 , y1 ) along the tangent
x , y y ). The equations that accomplish this are expressed as a para
direction (x
ocupa,
.x41 ; y1 /3D 4.1; 1/,3.x2 ; y2 / D .1; 3/, .x3 ; y3 / D .3; 3/ y .x4 ; y4 / D .2; 2/. La
metric curve (x(t), y(t)) for 0 t 1.
y
(x2, y2)

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)

B-splines (basis spline)

59/59

Se pueden comprender como una generalizacin reciente de la curvas de Bzier


con las ventajas de los splines y sin alguno de los problemas de aquellas.
Su formulacin se debe al trabajo de Isaac Jacob Schoenberg.

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Funciones trigonomtricas de interpolacin

La Transformada de Fourier

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_interpolacion_trigonometrica_DFT_FFT_2016.pdf

1/39

2/39

ndice
 Introduccin

 Interpolacin trigonomtrica
 Nmeros complejos

 Transformada Discreta de Fourier


 Transformada Rpida de Fourier

 Interpolacin Trigonomtrica con la Trasformada Rpida de


Fourier

Introduccin


El procesamiento digital de seales, DSP, es uno de los ncleos bsicos de la


economa digital que viene desarrollndose tan rpidamente en nuestra
economa y sociedad desde hace aos.

Las funciones trigonomtricas, esencialmente a base de senos y cosenos, son


idneas para modelizar y tratar mediante interpolacin la informacin de
fenmenos cclicos o peridicos: seales acsticas, pticas, econmicas y
sociales. Esas funciones cumplen que

3/39

x.t / D x.t C T / D x.t C 2T / D    D x.t C nT /;


para un periodo T .


La representacin de una funcin continua o discreta mediante combinaciones


lineales de senos y cosenos permite descomponerla en su espacio de frecuencias
lo que ayuda en un anlisis ms preciso de algunos de sus parmetros o modelo.

De qu hablamos? Espectro de frecuencias VS tiempos.

Tambin:

4/39

5/39

Jean Baptiste Joseph Fourier, Francia,


1768-1830.

6/39

Estudiando cmo se transmite el calor, Fourier demostr que cualquier funcin


peridica y continua, C 0; 2, puede representarse como una suma infinita
(serie de Fourier) de polinomios trigonomtricos1 de la forma
a0
C
x.t / D
2

1
i
h

i
aj cos.2f0tj / C bj sen.2f0tj / ;

j D1

donde2 los aj y bj vienen dados por las frmulas de Euler:


2
aj D
T

2
bj D
T

x.t / cos.2f0tj / dt;

para j D 0; 1; : : :

x.t / sen.2f0tj / dt;

para j D 1; 2; : : :

1
2

Sinusoides.
f0 es la frecuencia fundamental, inversa del periodo T : f0 D 1=T .

7/39

Las funciones 1=2, sen.2f0tj /, cos.2f0tj /; j D 1; : : : constituyen una base


en un espacio vectorial de dimensin infinita3 de funciones ortogonales con
respecto al producto interior
Z 2
f .t /g.t / dt:
hf; gi D
0

Los aj y bj son los coeficientes de x.t / en dicha base.

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)

iguiente funcin y.t / D A0 C C1 cos.!0t C  /.


C1

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)

En sus tres componentes


21

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 /

representa la1funcin . En este caso A0 D 1;7, C1 D 1, ! D 2f D 2=T D 2=.1;5s/


FIGURE
16.2.0;25s/. La frecuencia f D 1=T D 1=.1;5s/ D 0;6667 Hz.
3 D 1;0472
radianes
(a) A plot of the sinusoidal function y(t) = A 0 + C1 cos(0t + ). For this case, A0 = 1.7,
presin deCla1la=funcin
funcin
componentes:
/radians
D
C
A1 cos.!
COther
B12=.1;5s/
sen.!0 t/
1, 0 =. en
2/T
=tres
2/(1.5
and1;7
 =, /3
1.0472
(=
0 t /s).
epresenta
Ensus
este
caso
As),
Cy.t
1, A
!0=D
2f
D0.25
2=T
D
0 D
1 D
parameters
used
to describe
the curve are f
the D
frequency
f = 1=.1;5s/
0/(2), which
for this case
FIGURE
BD1 D
0;866
. 16.2
1;0472
radianes
.0;25s/
. La frecuencia
1=T D
D 0;6667
Hz.is

9/39

Decompo
composit
signal in
frequenc

Interpolacin trigonomtrica


10/39

Se trata de representar mediante un polinomio de grado m en 0; 2/ una


funcin peridica de la que se conocen n datos igualmente espaciados4 en ese
intervalo, fx0; x1; : : : ; xn 1g. Concretamente, as
m
m
X
a0 X
p.t / D
C
aj cos.jt / C
bj sen.jt /;
2
j D1
j D1

n
cumplindose en los puntos .0; x0/;

2
; x1
n

4
; x2
n

;:::;

2.n 1/
; xn 1
n

o
.

El grado m del polinomio depende del tamao de la muestra, n. Si n es par,


sera m D n=2; si es impar, m D .n 1/=2.

Para obtenerlo de la manera que conocemos habra que determinar 2m C 1


parmetros: a0, ai , bi , i D 1, : : : ; m.
4

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/ :

Para obtener los coeficientes a0, a1, a2, b1 y b2 planteamos un sistema de


ecuaciones lineales del tipo Ax D b, en el que la matriz A es del tipo
Vandermonde, y b D 1; 3; 5; 2T .

12/39

El sistema que hay que resolver, en forma matricial,


21
1
1
0
2
2
 1


61
21
21
6 2 cos 1  21
cos
2

sen
1

sen
4
2
4
4
6
6 1 cos 1  22  1 cos 2  22  sen 1  22  sen
42
4
2
4
4



1
23 1
23
23
cos
1

cos
2

sen
1

sen
2
4
2
4
4

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

El polinomio de interpolacin es entonces


p.t/ D 14 C 3 cos.t / 94 cos.2t / C 12 sen.t /.


Sustituyendo 0, =2,  y 3=2 en este polinomio se puede comprobar que se


consiguen los valores de la muestra.

Nmeros complejos


Los nmeros del cuerpopC de lo complejos


surgen para dar sentido a las races
p
a2 D a
1, para lo que se utiliza la unidad
de nmeros negativos,
p
imaginaria i D
1.

Cualquier complejo z D x C yi , donde x es la parte real e y la imaginaria


(ambas reales), se representa geomtricamente en el plano complejo as:


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

A e i' D cos ' C i sen ' se la conoce como identidad de Euler

14/39

La circunferencia de radio unidad en el plano complejo


es el Transform
lugar geomtrico
de
10.1 The Fourier
| 469
los nmeros complejos con r D 1.

15/39

e i= 1 + 0i

i
2

=i

i
e4

e0= 1 + 0i
x

Si se multiplican dos nmeros e i y e i de esa circunferencia,



i i

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

Los nmeros Moivre, z tales que z n

1 D 0, races n-simas de la unidad, por

16/39

Abraham de Moivre, Francia, 1667-1754

, tienen inters:
1 y 1.

En la recta de nmeros reales slo hay dos:

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.

Estn localizados en la circunferencia del plano complejo de radio la unidad:


forman los vrtices de un polgono regular de n lados con un vrtice en 1.


)LIWKURRWVRIXQLW\

L



Una raz n-sima de la unidad se denomina primitiva7 si no es una raz k-sima


para k < n. As, 1 es una raz segunda primitiva de la unidad y cuarta no
Roots of Unity
primitiva de ella.

17/39

For given integer n, we use notation

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,

nth roots of unity, sometimes called twiddle

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

Las !nk se denominan tambin factores twiddle. Mirar ms aqu.

Se puede verificar que la raz n-sima de la unidad, ! D e


cumple que

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:

Adems, si k es un nmero entero,


n 1
i
j D0

!jk D

n si k=n es entero,
0 en otro caso.

19/39

Transformada Discreta de Fourier




La interpolacin trigonomtrica que estamos estudiando se puede llevar a cabo


de forma eficaz usando la Transformada Discreta de Fourier y la Transformada
Rpida de Fourier.

Para un vector de coeficientes reales, x D x0; x1; : : : ; xn 1T , su Transformada


Discreta de Fourier, TDF, es el vector n-dimensional y D y0; y1; : : : ; yn 1T
tal que
n 1
1 X
xj ! j k ;
yk D p
n j D0
donde ! D e

i 2=n

20/39

En forma matricial, la definicin anterior dice que


3 2
y0
a0 C i b0
6 y1 7 6 a1 C i b1
6
7 6
6 y2 7 D 6 a2 C i b2
6 : 7 6
:::
4 :: 5 4
yn 1
an 1 C i bn
2

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

se la denomina matriz de Fourier. Todas sus filas y columnas, excepto las


primeras, suman cero.

21/39

La inversa de la matriz de Fourier es

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

y la Transformada Discreta de Fourier inversa de y es x D F n 1y.




Dado que un nmero complejo en la circunferencia unidad,


z D e i D cos  C i sen , tiene como recproco, su complejo conjugado,
e i D cos  i sen  , la inversa de la matriz F n ser la que tenga como
coeficientes los complejos conjugados los de F n, es decir

F n 1 D F n:

22/39

La matriz de Fourier es una matriz unitaria, F F D I, por lo que, recordemos,


al multiplicarla por cualquier vector, ste conserva su norma.

Aplicar la Transformada Discreta de Fourier requiere O.n2/ operaciones,


concretamente n2 multiplicaciones y n.n 1/ sumas; aplicar la inversa lo
mismo.

Ejemplo Calculemos la TDF del vector x D 1; 0; 1; 0T .


Sea en este caso ! la raz cuarta de la unidad, es decir ! D e i2=4 D e
D cos.=2/ i sen.=2/ D i . La trasformada es
2 3
y0
6y1 7
6 7D
4y2 5
y3

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:

>> x=[1 0 -1 0];


>> fft(x)
ans =
0
2
0
>> fft(x)/sqrt(4)
ans =
0
1
0
>> ifft(ans)*sqrt(4)
ans =
1
0
-1
>>

24/39

Una propiedad importante de la TDF es que si n es par y el vector


x D x0; x1; : : : ; xn 1T tienes todos sus coeficientes reales, los de su
transformado, y, son los siguientes, para por ejemplo n D 8,
2 3
2
3
x0
3
2
a0
6x17
y0
6 7 6a C i b 7
17
6x 7 6 1
6 ::: 7
2
7
6 7 6a C i b 7 6
27
6x 7 6 2
6y n 7
17
6 37 6
7 6
6 7 6a3 C i b37 6 y2 n 7
F 8 6x47 D 6
7 D 6 2 7:
6 7 6a4
7
7 6
6x57 6
7 6y n 17
6 7 6a3 i b3 7 6 2: 7
6x67 6
7 4 :: 5
6 7 4a2 i b2 5
4x75
y1
a1 i b1
x8

Transformada Rpida de Fourier




25/39

Como hemos visto, la TDF necesita O.n2/ operaciones.

James William Cooley, 1926 y John Tukey, 1915-2000.


EE.UU.

En 1965, Cooley y Tukey formularon uno de los algoritmos ms importantes del


Siglo XX. La Transformada Rpida de Fourier, FFT.

Este algoritmo sigue la estrategia del divide y vencers para hacer mucho ms
rpido la TDF. Requiere O.n log n/ operaciones.

Su aportacin ms significativa es haber convertido el tratamiento de seales de


lo analgico a lo digital, ampliando casi hasta el infinito su campo de aplicacin.

26/39

Si expresamos la TDF, F nx, de la forma


3
2
2
3
x0
y0
4 ::: 5 D p1 M n4 ::: 5 ;
n
xn 1
yn 1
donde

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/

veamos cmo calcular de forma recursiva el producto z D M nx.

27/39

i2=4

Empecemos simulando su mecnica con n D 4. Si ! D e


2 3 2
32 3
0 0 0 0
z0
x0
! ! ! !
6 7 6 0 1 2 37 6 7
6z17 6! ! ! ! 7 6x17
6 7 D 6 0 2 4 67 6 7 :
4z25 4! ! ! ! 5 4x25
z3
!0 !3 !6 !9
x3

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

Usando el hecho de que ! 4 D 1, las ecuaciones anteriores quedan




z 0 D ! 0 x0 C ! 0 x2 C ! 0 ! 0 x1 C ! 0 x3


0
2
1
0
2
z 1 D ! x0 C ! x2 C ! ! x1 C ! x3


z2 D ! 0x0 C ! 0x2 C ! 2 ! 0x1 C ! 0x3


0
2
3
0
2
z3 D ! x0 C ! x2 C ! ! x1 C ! x3 :

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

donde  D ! 2, la segunda raz de la unidad.

29/39

Los vectores u D u0; u1 y v D v0; v1 son bsicamente


 
x
u D M2 0
x2
 
x
v D M2 1
x3
por lo que el original M 4x es
z0 D u0 C ! 0v0
z1 D u1 C ! 1v1
z2 D u0 C ! 2v0
z3 D u1 C ! 3v1:

La TDF.4/ original se ha transformado en un par de TDF.2/ ms algunas


p
pocas multiplicaciones y sumas. Si ignoramos el trmino 1= n una TDF.n/ se
puede reducir al clculo de dos TDF.n=2/ ms 2n 1 operaciones adicionales.

30/39

Interpolacin Trigonomtrica con la


Trasformada Rpida de Fourier


Dado un intervalo c; d y un nmero positivo n, definamos t D .d c/=n y


unos tj D c C jt, para j D 0; : : : ; n 1, igualmente espaciados en el
intervalo.

Para un vector dado x al que le aplicaremos la Transformada de Fourier, cada


uno de sus coeficientes, xj , lo interpretaremos como una medida de un conjunto
de ellas tomadas a una seal determinada en los tiempos tj .

31/39

Si y D F nx es la TDF de x, cada coeficiente xj vendr dado por la frmula


de la inversa de TDF:
i 2k.t

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

con coeficientes, o pesos, yk D ak C i bk .

Del desarrollo de Q.t /, es decir,


1
Q.t / D p
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

si los xj son reales, la funcin trigonomtrica de orden n que interpola los


puntos .tj ; xj / es
1
Pn .t/ D p
n

n 1
i


2k.tj c/
ak cos
d c


2k.tj c/
bk sen
:
d c

kD0

Simplificando un poco ms esta frmula, si n es par, se llega a que


n

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

Ejemplo Calculemos el polinomio trigonomtrico de interpolacin del vector


x D 1; 0; 1; 0T . El intervalo es 0; 1; t D 0; 1=4; 1=2; 3=4T .
La TDF de x es y D 0; 1; 0; 1T . Los coeficientes de la interpolacin son
ak C i bk D yk , por lo que a0 D a2 D 0, a1 D a3 D 1 y
b0 D b1 D b2 D b3 D 0.
Aplicando la frmula anterior, el polinomio trigonomtrico de interpolacin es:
 a2
a0
P4.t / D
C a1 cos 2 t b1 sen 2 t C cos 4 t D cos 2 t:
2
2

34/39

Ejemplo Obtengamos el polinomio trigonomtrico de interpolacin de


x D 2;2 2;8 6;1 3;9 0;0 1;1 0;6 1;1T en el intervalo 0; 1.
La Transformada de Fourier es

2
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

Aplicando la frmula para obtener el polinomio, se tiene que


P8 .t/ D

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

C1;125 cos 4 t C 0;825 sen 4 t

0;3555 cos 6 t C 0;1906 sen 6 t

0;275 cos 2 t:

35/39

El resultado se ve grficamente as:


2

-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

Una consecuencia prctica muy importante del hecho de que en el polinomio


trigonomtrico de interpolacin Pn.t / las funciones de base sean ortogonales es
que si m < n entonces
m

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

es la mejor aproximacin de mnimos cuadrados de orden m a los datos


.tj ; xj /; j D 0; : : : ; n 1.


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

2;5594 sen 2 t C 1;125 cos 4 t


2;5594 sen 2 t

C1;125 cos 4 t C 0;825 sen 4 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

Aplicaciones prcticas: Sonido, ruido, filtrado, ...

38/39

>> load handel


>> plot(y(1:256))
>> xp=dftfilter([0,1],y(1:256),64,256,256);
0.2

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Mnimos cuadrados lineales

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_mincua_lineal_2016.pdf

1/89

2/89

ndice
 Introduccin
 Fundamentos tericos


Sistemas incompatibles. Ecuaciones normales

Sistemas indeterminados

 Resolucin numrica del problema




Mtodo de Gram-Schmidt

Mtodo de Gram-Schmidt modificado

Factorizacin QR

Descomposicin numrica en valores singulares

Comparacin de los mtodos

 Matlab y la solucin de problemas de mnimos cuadrados

3/89

Introduccin


Muchos modelos matemticos modernos, especialmente aquellos que usan


tcnicas de estimacin y regresin, se han convertido en herramientas
fundamentales en la ciencia y la ingeniera.

Para conocer y controlar en tiempo real el estado y funcionamiento de diversos


sistemas de operacin, control y prediccin es necesario primero tomar medidas
adecuadamente de los mismos y posteriormente actuar.

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

Par mitigar el efecto de esos errores, aislarlos, identificarlos y filtrarlos se toma


un nmero de medidas de los parmetros que definen un sistema bastante
mayor del estrictamente necesario redundante.

La redundancia de medidas conduce normalmente, en los modelos matemticos


que determinan cmo se relacionan los parmetros y variables de
funcionamiento de un sistema, a sistemas de ecuaciones incompatibles: con
muchas ms ecuaciones que incgnitas.
La falta de suficientes medidas, lleva a sistemas indeterminados.

Para obtener la solucin ms probable que represente un sistema y que mejor se


aproxime a la ideal si no se diesen esos errores, se proyecta el problema en un
subespacio de menor dimensin para filtrar o aislar los datos irrelevantes.


La proyeccin ms comn es la ortogonal, que determina el mtodo de los


mnimos cuadrados (ver teorema de la proyeccin).

5/89

Casos posibles de sistemas lineales, una vez ms


 Casos posibles de sistemas lineales, una vez ms
m=n

m=n

m=n
m=n

rango(A) = m = n

rango(A) = m = n

m=n

rango(A) < n < m


rango(A) < n < m

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

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

rango(A) < m < n

rango(A) < m < n

m<n

rango(A) < m < n

3b

3b

=
5/101

'*/*5*0/

,I A LV m ! n DQG E LVLQ Rm  D OHDVWVTXDUHVVROXWLRQ RI A[ D E LV


VXFKWKDW
kE # AO[k % kE # A[k
6/89

IRUDOO [ LQ Rn 


Estudiaremos pues problemas sin solucin, en los que rango.Ajb/ rango.A/


pues b Im.A/.7KHPRVWLPSRUWDQWDVSHFWRIWKHOHDVWVTXDUHVSUREOHPLVWKDWQRPD
A[ ZLOOQHFHVVDULO\EHLQWKHFROXPQVSDFH
WKHYHFWRU
&RO A 6R
Si es posibleVHOHFW
determinar
una pseudosolucin
que cumpla un criterio concreto:
WR E 6HH)LJ 2IFRXUVH LI E
A[ WKHFORVHVWSRLQWLQ
por ejemplo,WKDWPDNHV
el de minimizar
la norma kAx &RO
bkA
2.
LQ &RO A WKHQ E LV A[ IRUVRPH [ DQGVXFKDQ [ LVDOHDVWVTXDUHVVROXW
b

b
a8

Ax

01234

a6

Im(A)

Ax

Ax

'*(63&  7KHYHFWRU E LVFORVHUWR AO[ WKDQ

WR A[ IRURWKHU [

7/89

Tambin problemas con muchas soluciones, de las que:





Se escoge aquella x cuya norma eucldea, kxk2, es mnima.

Se estudia otro tipo de solucin; por ejemplo:




Que minimice

m
X
T
aj x

j D1


Que minimice

mKax ajT x
j

bj

bj

8/89

El hecho de que se utilice el criterio de minimizar, de una manera u otra, la


norma eucldea raiz cuadrada positiva de la suma de los cuadrados de las
desviaciones entre dos vectores de valores reales es lo que da nombre a los
procedimientos para resolver esos problemas: mnimos cuadrados.

El problema lineal de mnimos cuadrados se plantea formalmente as:


Dada una matriz A 2 Rmn, de rango k  mKn.m; n/, y un vector b 2 Rm,
encontrar un vector x 2 Rn que minimice kAx bk2.

9/89

El ejemplo por excelencia de las tcnicas que estudiamos lo constituye el tratar


de ajustar a un conjunto de m pares de puntos .ti ; bi / una funcin f .x; t / de n
parmetros independientes x1; x2 : : : xn.


Los pares de puntos los pueden definir unas mediciones, bi , obtenidas en


unos tiempos, ti .

Si la funcin es lineal en x1; : : : ; xn se tiene un problema de mnimos


cuadrados lineales en el que,
si los n parmetros se disponen como los coeficientes de un vector
n-dimensional, x, y
los datos obtenidos, en otro vector m-dimensional b (usualmente
m  n),

se llega a una relacin de la forma Ax D b, donde A 2 Rmn, x 2 Rn y


b 2 Rm .

10/89

Ejemplo Supongamos que queremos ajustar al conjunto de pares de puntos


f.ti ; bi /g = f.1; 2/; .2; 3/; .3; 5/; .4; 6/g la funcin
f .x1; x2; x3; t / D x1 C x2t C x3t 2;
segn representa la figura.
b
f (x 1 , x 2 , x 3 , t ) = x 1+ x 2 t + x 3 t 2

5
4
3
2
1
1

Para los datos y parmetros de este ejemplo el sistema Ax D b es as:


2

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


Resolver este problema en la zona de trabajo de Matlab sera trivial:


>> Am=[1 1 1;1 2 4;1 3 9;1 4 16];
>> b=[2 3 5 6];
>> Am\b
ans =
0.50000000000000
1.40000000000000
-0.00000000000000

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

Si se quiere profundizar un poco en el problema dibujando los datos y la funcin


ajustada, habra que hacer:
>> x1=linspace(0,5,150);
>> y1=polyval(p,x1);
>> plot(x,y,o,x1,y1,-)

Los resultados son los de la figura.


8

0.5

1.5

2.5

3.5

4.5

La lnea recta y D 0; 5 C 1; 4t, en verde, y los puntos a los que se ajusta, en


azul.

13/89

Otros muchos sistemas de la ciencia, ingeniera, economa, etc. recurren a


modelos de mnimos cuadrados.

14/89

Sistemas de prediccin a partir de datos masivos

15/89

Sistemas de navegacin
VOR, DME, ADF, RMI, MLS

16/89

Fundamentos tericos
Teorema

Descomposicin en valores singulares Si A 2 Rmn es una matriz de rango r, existen


matrices ortogonales U 2 Rmm y V 2 Rnn tales que
A D U V T ;
donde

2 Rmn y r D diag.1 , 2 ; : : : ; r /, con

(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

se la denomina matriz pseudoinversa o inversa generalizada Moore-Penrose de A.

18/89

De acuerdo con esa definicin, la solucin de mKnx 2Rn kAx

bk2 es

x D A b:


Adems, de acuerdo con el Teorema de la Proyeccin, se cumple que


b

a8

x ? ker.A/ y que Ax D P Im.A /b;


01234

a6

donde P Im.A /b es la proyeccin ortogonal de b sobre Im.A/, paralelamente a


ker.A T /.

Obsrvese que .A T / D .A /T ; en general,

19/89

.AB/ B A :

La matriz pseudoinversa satisface las denominadas condiciones de Penrose:


AA A
A AA
.AA /T
.A A/T

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

Dos casos de matriz pseudoinversa son fundamentales:


a) Si A 2 Rmn, m  n y rango.A/ D n,
A D .A T A/ 1A T :
b) Si A 2 Rmn, m  n y rango.A/ D m,
A D A T .AA T / 1:
a) es el problema de mnimos cuadrados resultante de un sistema de
ecuaciones incompatible, con matriz de rango completo.
b) es el de un sistema de ecuaciones compatible indeterminado con matriz
de rango completo: resuelve este problema:
minimizar kxk2;
x 2S

donde S D fx W Ax D bg:

20/89

Sistemas incompatibles. Ecuaciones normales




Si se tiene una ecuacin Ax D b, A 2 Rmn, que no tiene solucin pues


b Im.A/, se puede buscar una pseudosolucin, x, que acerque Ax lo ms
posible a b en el sentido de la k  k2, es decir,
mKn kAx
x 2Rn

bk2:

Teorema Sean X e Y dos espacios vectoriales de dimensiones finitas n y m sobre


el cuerpo R y A una transformacin lineal representada en dos bases de X e Y por la
matriz A. Para un vector dado b 2 Y , el vector x 2 X minimiza kAx bk2 si y slo si
A T Ax D A T b.
I D EMOSTRACIN . Sean Im.A/ D fAx W x 2 Rn g y ker.A/ D fx W Ax D 0g.
El complemento ortogonal del conjunto Im.A/ ser:
.Im.A//? D fr W r T z D 0; 8z 2 Im.A/g D fr W r T A D 0T g
D fr W A T r D 0g D ker.A T /:
O 2 , donde bO 2 Im.A/.
El problema planteado es obviamente equivalente a minimizar kb bk
O
Por el teorema de la proyeccin, b es un vector que minimiza la norma anterior si y slo si b bO 2
O D A T b A T Ax.
.Im.A//? ; es decir, si b bO 2 ker.A T /, o de forma equivalente, 0 D A T .b b/

21/89

22/89

La representacin geomtrica en tres dimensiones es esta.


b
r = b Ax (Im(A)) A T (b Ax ) = 0

Al sistema de ecuaciones que define la relacin

a2
a 2x 2

A TAx D A T b
Ax

a 1x 1
Im(A)

se le denomina ecuaciones normales.

a1

El vector de residuos, r D b Ax, es ortogonal a Im.A/ y a los vectores que


lo definen: a1 y a2. Es decir, se cumple que A T .Ax b/ D 0.

23/89

El vector solucin de las ecuaciones normales, x, es nico si A T A es invertible


(si y slo si la transformacin lineal A es inyectiva: rango.A/ D n); en este caso
x D .A T A/ 1A T b:

Si la matriz A T A es invertible,
rDb

Ax D .I

P Im.A //b;

donde P Im.A / D A.A T A/ 1A T es la matriz de proyeccin ortogonal sobre


Im.A/ paralelamente a ker.A T /.

24/89

Sistemas indeterminados


Si el sistema tiene ms de una solucin, siempre se puede calcular aquella de


menor norma eucldea.
Teorema Sean X e Y dos espacios vectoriales de dimensiones n y m sobre el cuerpo
R y A una transformacin lineal representada en dos bases de X e Y por la matriz A.
El vector x de norma eucldea mnima que satisface la ecuacin Ax D b es el dado por
x D A T z, donde z es una solucin de la ecuacin AA T z D b.

I D EMOSTRACIN . Si x 1 es una solucin de la ecuacin Ax D b, cualquier solucin de la misma se


puede expresar como x D x 1 C u, donde u 2 ker.A/; es decir, estar en la variedad lineal x 1 C ker.A/.
El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que su
norma kxk2 es mnima y adems pertenece a .ker.A//? .
Como x 2 .ker.A//? , pertenecer a Im.A T /, es decir, se podr expresar como x D A T z para algn
z 2 Y . Como Ax D b, entonces
AA T z D b:

25/89

Cuando la matriz AA T es invertible, la solucin ptima es


x D A T .AA T / 1b:
La interpretacin geomtrica de este resultado en R3 se esquematiza as:

80123A

x7

0123A

x9

x7

u
x

26/89

Ejemplo Se quiere obtener la solucin


de norma eucldea mnima de la


 x1
ecuacin indeterminada 1 2
D 3.
x2

Cualquier solucin se podr expresar como x 1 C ker.A/, donde x 1 es cualquier



T
vector solucin (por ejemplo 1 1 ) y ker.A/ es el que se ve
en la figura.
75
SOLUTION FOR A SYSTEM OF LINEAR EQUATIONS

x2



Im.A T /

1.5
(3/5, 6/5) = x


(1, 1) = x 1

subespacio de soluciones
(3, 0)
1

x1



ker.A/


 La solucin que se busca es Figure 2.1 A minimum-norm solution.


 
  1
   

 1
3 1
1   1
0;6

La solucin que se busca es




x DA T AA


T

Se ve que est en Im.A 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/


 La solucin que se busca es Figure 2.1

A minimum-norm solution.

x1



75

27/89

28/89

ndice
 Introduccin
 Fundamentos tericos

Sistemas incompatibles. Ecuaciones normales

Sistemas indeterminados

Resolucin numrica del problema




Mtodo de Gram-Schmidt

Mtodo de Gram-Schmidt modificado

Factorizacin QR

Descomposicin numrica en valores singulares

Comparacin de los mtodos

 Matlab y la solucin de problemas de mnimos cuadrados

29/89

Resolucin numrica del problema




Mediante las ecuaciones normales, con cualquiera de los mtodos estudiados


para sistemas con matriz cuadrada y simtrica:



A TAx D A T b, en el caso de que el sistema fuese incompatible, o a

AA Tz D b, cuando se diese un sistema indeterminado.

Los nmeros de condicin, 2, de AA T y A T A, son el cuadrado del de la


matriz A, por lo que si el problema originalmente no est bien condicionado, las
dificultades numricas pueden resultar insalvables al resolver el sistema
correspondiente.

30/89

Ejemplo Consideremos la matriz


2
3
1 1 1 1 1
6"
7
6
7
6
7
6 "
7
AD6
7:
"
6
7
6
7
4
" 5
"

El rango de A es 5, para " 0. La matriz


2
3
2
1C"
1
1
1
1
6 1
1 C "2
1
1
1 7
6
7
6
7
AT A D 6 1
1
1 C "2
1
1 7
6
7
1
1
1 C "2
1 5
4 1
1
1
1
1
1 C "2
tambin es de rango 5, para " 0.

31/89

El nmero de condicin 2.A T A/ D 2.A/2 D .5 C "2/="2.

Si " es mayor que la precisin de la mquina pero "2 no (por ejemplo, si


" D 0,5  10 5, "2 D 0,25  10 10 y la precisin de la mquina
 D 1,0  10 10), la representacin interna de la matriz A T A ser
2
3
1 1 1 1 1
61 1 1 1 17
6
7
6
7
61 1 1 1 17
6
7
41 1 1 1 15
1 1 1 1 1

por lo que, a efectos numricos en esa mquina, esta matriz ser singular y de
rango 1: las ecuaciones normales no serviran.

32/89

Otro aspecto importante que aconseja tener mucho cuidado al utilizar A T A


AA T , nace del hecho de que aun cuando la matriz original A tenga muchos
elementos cero, A T A o AA T pueden ser totalmente densas.

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

Obtiene una base ortonormalizada del subespacio Im.A/.




Jorgen Pedersen Gram, Dinamarca,


1850-1916 y Erhard Schmidt, Alemania, 1876-1959.

Comienza normalizando el primer vector columna de la matriz, a1:


e 1 D a1=ka1k2.

A continuacin se sustrae del vector a2 su coeficiente en la direccin de e 1,


ha2je 1ie 1, resultando un vector ortogonal a e 1, el cual a su vez se
normaliza: : :
El proceso contina con los dems vectores columna de A.

El nmero de operaciones del mtodo es O.mn2/ sumas+restas y


multiplicaciones+divisiones y O.n/ races cuadradas.

Los diversos vectores ortonormales de la base de Im.A/ se obtienen as:


a1
I
ka1 k2
a2 ha2 je 1 ie 1
D
I
ka2 ha2 je 1 ie 1 k2
a3 ha3 je 1 ie 1 ha3 je 2 ie 2
D
I
ka3 ha3 je 1 ie 1 ha3 je 2 ie 2 k2
::
:

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

El algoritmo para una matriz general A mn es el siguiente.


 Ortogonalizacin de A por 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

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

El algoritmo hace A D E U , donde E mn es la matriz de columnas e i y U nn


la matriz triangular superior de los productos interiores auxiliares uij .


Sustituyendo esta expresin de A en las ecuaciones normales,


A T Ax D A T b, resulta que
U T ET EU x D U T ET b
y, por fin, dado que E T E D I,
U x D E T b:
Un sistema triangular superior.

En condiciones adecuadas, por consiguiente, el mtodo de Gram-Schmidt podra


valer para resolver un problema lineal de mnimos cuadrados.

37/89

Gram-Schmidt modificado

John R. Rice, EE.UU. 1934-.

En la prctica se va perdiendo ortogonalidad en los vectores e i por errores


numricos y, especialmente, si alguno de los vectores columna aj est prximo
al subespacio generado por los vectores anteriores e 1; : : : ; ej 1.
Pj 1
En ese caso, los sumandos de la expresin aj
i D1 haj je i ie i pueden llegar a
ser muy pequeos, o muy distantes unos de otros pero con un resultado final
que puede ser muy pequeo, por lo que el error numrico que se va produciendo
es relativamente grande. Al dividir el resultado por su norma (tambin muy
pequea) los errores se amplificarn an ms.

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 /

 Algoritmo modificado 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  e.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 /

39/89

La versin clsica y modificada en Matlab son estas.


function [x r2 e]=Grmsch_3(A,b)
% Se resuelve Ax=b mediante el mtodo de Gram-Schmidt modificado
[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)*e(:,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

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

El cara a cara del clsico y el modificado en un Matlab supercompacto es este.


function [Q, R] = gs_m(A)

function [Q, R] = gs_c(A)

[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

>> n=7; A=hilb(n);


>> [Q, R]=gs_c(A);
>> norm(Q*Q-eye(n))
ans =
0.156453367259543
>> [Q1, R]=gs_m(A);
>> norm(Q1*Q1-eye(n))
ans =
1.090139262380597e-009
>> cond(A)
ans =
4.753673562966472e+008

41/89

Si resolvemos el ejemplo inicial.


>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r2]=Grmsch_3(A,b)
% MODIFICADO
x =
0.5000
1.4000
-0.0000
r2 =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

42/89

% Script_GRSCH_1.m - Script de Ortogonalidad con Gram Schmidt clsico y modificado


format short
n=7; A=hilb(n);
% Matriz de Hilbert (muy mal condicionada)
cond(A), pause
b=A*ones(n,1);
% Trmino independiente para sol. x=1.
disp(Clsico:), [x r2 e]=Grmsch_2(A,b);
% Gram Schmidt clsico
x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
ortogonalidad=norm(e*e-eye(n)), pause

% Ortogonalidad real de la matriz e

disp(Modificado:), [x r2 e]=Grmsch_3(A,b);% Gram Schmidt modificado


x, pause, e, pause, norm(abs(x-ones(n,1)),2), pause
ortogonalidad=norm(e*e-eye(n))

% Ortogonalidad real de la matriz e

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


Las transformaciones ortogonales conservan la norma eucldea; esto es, si Qnn


es una matriz ortogonal y x un vector n-dimensional, se cumple que
kQxk2 D kxk2:
p
p
p
T
T
En efecto, kQxk2 D hQxjQxi D x Q Qx D x T x D kxk2:

Segn esto, si Q es una matriz ortogonal, al premultiplicar el vector Ax


por ella, su norma eucldea queda igual:
kQAx

Qbk2 D kQ.Ax

b/k2 D kAx

bk2:

La idea es usar transformaciones ortogonales para convertir el problema en otro


ms sencillo de resolver numricamente.

Si A 2 Rmn, m > n, b 2 Rm, rango.A/ D n y se han efectuado una serie de


transformaciones ortogonales que refleja un matriz ortogonal Q 2 Rmm tal que
 
R1
n
QA D R D
0 m n

45/89

y R 1 es triangular superior, si se hace


 
c
n
Qb D
;
d m n
entonces

kAx

bk2 D kQAx
D

kR 1x



R 1x c

Qbk2 D


d

ck22 C kdk22; para cualquier x 2 Rn.

46/89

La solucin de mKnx 2Rn kAx

bk2 ser aquella que haga mnimo

kR 1x

ck22 C kdk22:

Como kdk22 es constante, la solucin ser la que haga mnimo el otro


sumando: cuando R 1x D c .
Resolviendo este sistema por sustitucin inversa se llega a la solucin del
problema de mnimos cuadrados.

La suma de residuos al cuadrado ser kdk22 y el vector de residuos


 
0
r D QT
:
d

El proceso de reduccin de A a R se denomina factorizacin QR o


triangularizacin ortogonal.

47/89

Teorema Sea la matriz A 2 Rmn de rango n y su factorizacin A D QR. El factor

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.

I D EMOSTRACIN . Si rango.A/ D n, de acuerdo con un teorema anterior, la factorizacin de Cholesky


de A T A es nica.
El teorema de la proyeccin garantiza la existencia en esta variedad lineal de un nico x tal que su
norma kxk2 es mnima y adems pertenece a .ker.A//? .
Por otro lado,
 
h
i
R1
A T A D R T1 ; 0 QQT
D R T1 R 1 :
0

48/89

Transformaciones de Householder

Alston Scott Householder, EE.UU.,


1904-1993.

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.

Teorema Toda transformacin de Householder es simtrica y ortogonal.


I D EMOSTRACIN . Por definicin H T D I
adems wT w D kwk22 D 1,
HTH D H2

D
D

2.wwT /T D I

2.wT /T wT D I

.I 2wwT /.I 2wwT /


I 4wwT C 4w.wT w/wT D I:

2wwT D H . Como

49/89

Aplicar una transformacin de Householder a un vector cualquiera equivale a


obtener su reflejo respecto al subespacio .Im.w//?.
a

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:

El vector .wT a/w es la proyeccin de a sobre w; es decir, H a es igual al


vector a menos dos veces su proyeccin sobre w.

Lo esencial de estas transformaciones es su capacidad de hacer cero


determinados coeficientes de un vector dado modificarlo ortogonalmente:


Si x e y son dos vectores no nulos de igual norma eucldea y se hace


1
wD
.x y/;
kx yk2
entonces
.I 2wwT /x D y:

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

Esto es as pues, al tener x e y la misma norma eucldea,


.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

Este resultado, geomtricamente, se deduce inmediatamente de la reflexin


antes mencionada.


El vector w es colineal con el vector x

Como x e y tienen la misma longitud, la reflexin de x respecto a


.Im.w//? es y.

y.

6
678

3
01203445
8

52/89

En un sistema Ax D b se pueden construir transformaciones de Householder


que anulen los coeficientes que se deseen de cada vector columna de A dejando
los dems como estaban.


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

La matriz A 1 resultara de la transformacin H 1A 0; la A 2 sera


H 2A 1 D H 2H 1A 0; y as cuatro veces.

A una matriz m  n se le aplicar una sucesin k D 1; : : : ; n de


transformaciones, cada una de las cuales ha de hacer cero los coeficientes
k C 1; : : : ; m del vector columna k.


Se pretende que la transformacin k-sima, H k , haga:



aik para i D 1; 2; : : : ; k 1
H k ak D y D
0 para i D k C 1; : : : ; m:
Los coeficientes del vector y debern ser:
y1
y2
yk
ykC1
ym

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.


La transformacin H k tendr como vector w D .ak

y/=kak

yk2.

53/89

El coeficiente k-simo de y puede adoptar dos signos. Para evitar errores de


cancelacin, se escoge el signo opuesto al del coeficiente k-simo de ak .

En esta figura hay dos posibilidades para transformar a en un vector de igual


magnitud con a2 D 0: convertirlo en y o y 0,

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.

La transformacin alternativa, walt convertira a a y: su primer coeficiente es


a1 y1; el segundo el mismo de w.

55/89

En definitiva, en la transformacin de Householder k-sima que se aplica a la


matriz A, los valores numricos del vector w son:
2
3
0
:::
6
7
6
7
6
7
1
6akk C s  signo.akk /7
wDp
6
7;
a
6
7
kC1k
2s.s C jakk j/ 6
7
:::
4
5
amk
q
2
2
2
C akC1k
C    C amk
.
donde s D akk

56/89

Caso numrico 1: Resolucin de Ax D b, A mn, m > n y rango


completo


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


La solucin de mKnx 2Rn kAx


sustitucin inversa.

bk2 sera la del sistema R 1x D c, por

La suma de residuos al cuadrado ser kdk22.

El algoritmo numrico completo es el que describe la tabla que sigue.

Resolucin de Ax D b por transf. de Householder

 Transformacin columnas de la Matriz A mn


for j D 1 to n
if mKa0
x fja.j; j /j; : : : ; ja.m;
j /jg D 0 then stop
1
v
uX
m
u
 D @t
a.k; j /2 A  signo.a.j; j //
kDj

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

En Matlab, con la posibilidad de obtener Q y R:

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

Si utilizamos este script para resolver el ejemplo.


>> A=[1 1 1;1 2 4;1 3 9;1 4 16]
A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r]=Qrdes_3(A,b)
x =
0.5000
1.4000
-0.0000
r =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

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


El nmero de operaciones de este mtodo es:




O.mn2 n3=3/ sumas+restas y multiplicaciones+divisiones, para


transformar la matriz A en R;

n races cuadradas y las de la sustitucin inversa, O.n2=2/.

61/89

Caso numrico 2: Resolucin de Ax D b, A mn, n > m y rango


completo


Este problema, si tiene solucin, es indeterminado: tiene muchas.

La de menor norma eucldea se puede calcular mediante estos pasos:


Paso 1 Se aplica el algoritmo QR a la matriz A T , en vez de a A. Resultar
 
R
QT A T D
;
0
 
R
es decir, A T D Q
, donde Q es una matriz ortogonal n  n y R una
0
triangular superior m  m.

Paso 2 La matriz original A ser



A D R T ; 0T QT :

Si se sustituye en la ecuacin Ax D b, se tendr que


 T
 T
T
R ; 0 Q x D b:

Si se hace el cambio de variable z D QT x, la ltima ecuacin queda


 T

T
R ; 0 z D b:

Como zT z D .QT x/T .QT x/ D x T QT Qx D x T x, las normas


eucldeas de x y z sern iguales.
 zR 
 Estructurando el vector z en
z0 y b de igual manera, la solucin de
 T

R ; 0T z D b saldr de resolver


R T zR D bR ;

siendo los dems coeficientes del vector z, z0, nulos.

62/89

63/89

Paso 3 El vector solucin x que se busca resultar de deshacer el cambio de


variable introducido; es decir:
 
z
xDQ R :
0

64/89

Caso 3: Resolucin numrica de Ax D b, A mn, m > n m < n y


rango incompleto


Caso ms general que se puede dar en mnimos cuadrados de ecuaciones lineales.

Paso 1 Se transforma la matriz A mediante transformaciones de


Householder y permutaciones de columnas para llegar a:
r

0


mr

En cada etapa k se calcula la norma eucldea de ak , k; : : : ; n,


limitndose a sus coeficientes k; : : : ; m y se intercambia la columna k
con la de mayor norma.

65/89

Paso 2 Del Paso anterior se ha llegado a


QAP D R D


 
R 11 R 12
r
c
r
y Qb D
;
0 R 22
m r
d m r
r n r

donde kR 22k2  1kAk2. A partir de aqu hay dos opciones:





Que r D n (rango completo). La solucin sale de resolver R 11x D c.

Que r < n (rango incompleto).


Se construyen
unas
transformaciones




nn
ortogonales, Q1 , tales que R 11; R 12 Q1 D W ; 0 , donde W rr
es triangular superior.

Cmo hacer esto? Se acta sobre R 11, R 12T y se llega a b).


a)

66/89

b)

nr

Esto se hace en r etapas. En una de ellas, k, se premultiplica por una


transformacin de Householder que haga cero los elementos r C 1 a n de
la columna k y que deje inalterados del 1 al k 1 y del k C 1 a r.


0
0


0 0
0 0

0
0


0 0
0 0

0
0

0
0

El valo indica el elemento que se utiliza para definir cada


transformacin; los que se hacen cero con el signo .


0 0
0 0

67/89

Paso 3 De los dos pasos anteriores se tendr que


kAx


bk2 D k.QAP/.P T x/

Qbk2:

Ahora bien, .QAP/P T x se puede escribir .QAP/Q1QT1 P T x y


tambin,


 
W 0
c
QT1 P T x D
:
d
0 0
Si se hace QT1 P T x D y y se resuelve W y 1 D c, el vector solucin que
se busca, x, resultar de
 
y
x D PQ1 1 :
0

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

Apliquemos este programa en una sesin de Matlab:


a=rand(200,4);
b=a*ones(4,1);
A=[a a(:,1)*2+a(:,2)*0.5 a(:,3)*2+a(:,4)*0.5 a(:,2)*2+a(:,3)*0.5];
size(A)
ans = 200
7
format long
[x r res]=Mincua_QR(A,b)
x =0.168704156479218
0.156479217603912
0.009779951100245
0.792176039119804
0.415647921760391
0.415647921760391
0.317848410757946
r = 4
res = 1.205973193713402e-029

>> x-pinv(A)*b
ans = 1.0e-015 *
-0.111022302462516
0.333066907387547
0.194289029309402
-0.333066907387547
0.166533453693773
-0.943689570931383
0.499600361081320

69/89

Si lo utilizamos para resolver el ejemplo.

>> A=[1 1 1;1 2 4;1 3 9;1 4 16]


A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x r res]=Mincua_QR(A,b)
x =
0.500000000000000
1.400000000000000
0
r =
3
res =
0.200000000000001
>> A\b
ans =
0.5000
1.4000
-0.0000

70/89

71/89

Transformaciones de Givens

James Wallace Givens, EE.UU., 1910-1993.

Definicin Se denomina transformacin de Givens a una transformacin lineal ortogonal


de Rn en Rn caracterizada por una matriz
2
1
6 :::
6
6
1
6
6
6
G .i; j / D 6
6
6
6
6
6
4

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

Al aplicar a x 2 Rn una transformacin, o rotacin, de Givens,


G .i; j / W Rn ! Rn, con c D cos  y s D sen  , producir lo siguiente:
2

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

Se rota el vector x un ngulo  en el subespacio que generan los vectores e i y


ej de Rn.

73/89

Para hacer cero alguno de los coeficientes i j de un vector x, concretamente


el j , se deber escoger un  tal que xi sen  C xj cos  D 0, es decir, habr
que hacer
xj
tan  D ;
xi
o, lo que es equivalente,
c D cos  D q x2 i 2
xi Cxj

s D sen  D

x
q j
:
xi2 Cxj2

Ejemplo En la figura se describe, en el espacio eucldeo tridimensional, la


rotacin del vector
2 3
1
x D 415
1
en el plano z

y para anular su tercer coeficiente.


z

....
....
....
....
....
....
...
...
...
...
..
..
...
...
...
..
..
..
..
..
..
..
..
..
..
..
..
...
...
...
...
...
..
..
..

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

El nuevo vector ser

2 3
1
p
G x D x 0 D 4 25 :
0
p
La norma eucldea de ste y del original es 3.

Mediante transformaciones de Givens se puede reducir la matriz de un problema


de mnimos cuadrados, en n etapas, a una triangular superior R. En cada una
de esas etapas, j , se haran cero, uno a uno, los coeficientes j C 1 a m.

Por ejemplo, las operaciones


necesarias
para transformar la matriz
2
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

son las que siguen.

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

El algoritmo numrico completo es el que describe la tabla que sigue.


 Resolucin de Ax D b por transf. de Givens
 Transformacin de la Matriz A mn
for i D 1 to n
for k D i C 1 to m
 Hacer nulo el elemento .k; i /.
if a.k; i / 0 then
if ja.k; i /j  ja.i; i /j then p
t D a.i; i /=a.k; i /I s D 1= 1 C t 2 I c D s  t
else
p
t D a.k; i /=a.i; i /I c D 1= 1 C t 2 I s D c  t
end
a.i; i /
c  a.i; i / C s  a.k; i /
for j D i C 1 to n
aux D c  a.i; j / C s  a.k; j /; a.k; j /
s  a.i; j / C c  a.k; j /; a.i; j /
end
 Transformacin del vector b.
aux D c  b.i / C s  b.k/; b.k/
s  b.i / C c  b.k/; a.i /
aux
end
end
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

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

>> A=[1 1 1;1 2 4;1 3 9;1 4 16]


A =
1
1
1
1
2
4
1
3
9
1
4
16
>> b=[2;3;5;6]
b =
2
3
5
6
>> [x,r]=Givens(A,b)
x =
0.5000
1.4000
-0.0000
r =
0.2000
>> A\b
ans =
0.5000
1.4000
-0.0000

79/89

El nmero de operaciones que requiere este algoritmo para transformar A es


O.2mn2 2n3 =3/ sumas+restas y multiplicaciones+divisiones
O.mn=2/ races cuadradas y
O.n2 =2/ sumas+restas y multiplicaciones+divisiones para efectuar la sustitucin inversa.

Con precisiones semejantes Givens es el doble de caro que Householder.


Cundo utilizar Givens y Householder entonces?


La clave est en considerar la estructura de la matriz A del problema:


Si sta es densa, es decir, muchos de sus coeficientes son distintos de
cero, el mtodo de Householder es el ms aconsejable;
Si la estructura de A es dispersa, convendr centrarse en hacer cero
slo aquellos elementos no nulos en las columnas correspondientes, por
lo que, a priori, el mtodo de Givens deber ser ms ventajoso.

Transformaciones rpidas e Givens




80/89

La idea es conseguir velocidad de Householder con una M 2 Rmm tal que


MA D S

sea triangular superior y que M M T D D D diag.d1; : : : ; dm/.




Como D

1=2

M es ortogonal, se tiene que


 1

A D M 1S D D 1=2M
D 1=2S D M T D

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

Por descomposicin en valores singulares




Existen diversos mtodos iterativos para calcular la descomposicin numrica en


valores singulares
A D U V T :

A partir de ella, la solucin de mKnx 2Rn kAx bk2 es


 1 
r 0
U T b:
xDV
0 0

Para cualquier matriz A mn, de rango completo o incompleto, la solucin del


problema de menor norma eucldea es
X uT b
i
xD
vi :
i
i 0

82/89

Ejemplo Utilizando la descomposicin U V T de A resolver


2

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

Como el valor singular 3 D 0, la solucin de norma eucldea mnima se


uT1 b
uT2 b
obtiene de x D
v1 C
v2
1
2
 0;2017
 0;8903  0;5
11;0709
0;0 :
0;5168 C 1;5606
0;2573 D
D 35;1272
2;4654
0;8320

0;3757

83/89

0;5

Este programa de Matlab resuelve el ejemplo llamando a svd() para obtener


la descomposicin en valores singulares de A.
function [x S r] = Svdre(a,b)
% Resolucin ||Ax-b|| mediante la desc. en valores singulares de A
[m,n] = size(a); tol=sqrt(eps); tmp=zeros(m); x=zeros(n,1);
[U S V]=svd(a); S=diag(S); r=0;
for j=1:n
if S(j)>=tol
r=r+1;
tmp(r)=dot(U(:,j),b)/S(j);
end
end
for j=1:r
x=x+tmp(j)*(V(:,j));
end
end

84/89

Comparacin de los diversos mtodos


Mtodo
Ecuaciones Normales
Transformaciones de Householder
Transformaciones de Givens
Mtodo de Gram Schmidt
Mtodo de Gram Schmidt Modificado
Mtodo de Golub-Reinsch (SVD)
Mtodo de Golub-Reinsch-Chan (SVD)

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

Los mtodos basados en transformaciones ortogonales son los ms precisos y


habituales.

El basado en SVD es el ms robusto, aunque ms caro.

85/89

Matlab y el problema de mnimos cuadrados




Para calibrar las posibilidades de Matlab con los problemas de mnimos


cuadrados, vamos a utilizarlo para ajustar a unos puntos la funcin
y D c1xe c2x
que se utiliza en prospeccin de hidrocarburos y minerales.

Como no disponemos de datos reales, vamos a generar unos sintticos haciendo


c1 D 5 y c2 D 3.

Generaremos 300 puntos y los perturbaremos con un ruido aleatorio normalizado


de media 0.

Utilizaremos como mtodos para obtener los parmetros c1 y c2, en un modelo


linealizado, con ayuda de las rutinas de Matlab:

86/89

El operador n

Las ecuaciones normales

La descomposicin QR

El mtodo de Gram-Schmidt

La descomposicin en valores singulares y

La matriz pseudoinversa,

Para linealizar el modelo original, haremos los cambios


v D ln.y=x/; u D x; D ln c1 y D c2;
resultando
v D u C :

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

%primer punto de muestra


% 300 puntos
%nube de puntos
% + ruido: valores pos.
%cambio de variable
% Matriz del sistema
% Prim. respuesta: con \

% 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;

% Construccin de los datos


%
%
con cambio de variable
%
%
para linealizar el
%
modelo
%

fprintf(Parmetros ajustados:\ncon A\\b:


exp(c(1)),c(2));

Un script.m con las instrucciones

c1 = %18.15f c2 = %18.15f\n,...

% --- Plot datos


xfit = linspace(min(x),max(x));
yfit = exp(c(1))*xfit.*exp(c(2)*xfit);
if n<30, s = v; else s = -; end
% Smbolo para datos originales
plot(x,y,s,x,yn,o,xfit,yfit,--);
xlabel(x);
ylabel(y); legend(original,+ruido,ajustado);
xmax = max(x);
ymax = max(y);
text(0.5*xmax,0.7*ymax,sprintf(c1 = %6.4f c2 = %6.4f,exp(c(1)),c(2)));
text(0.5*xmax,0.6*ymax,sprintf(%d puntos "sintticos",n));
% --- Plot funciones ajustadas
% Cholesky
G=chol(A*A);
c1=G\(G\(A*v));
fprintf(con chol(A\*A);
c1 = %18.15f c2 = %18.15f\n,exp(c1(1)),c1(2));
% Factorizacin QR
[Q,R]=qr(A,0);
c2=R\(Q*v);
fprintf(con [Q,R]=qr(A);

c1 = %18.15f c2 = %18.15f\n,exp(c2(1)),c2(2));

% Gram.Schmidt modificado
[Q,R]=gs_m(A);
c3=R\(Q*v);
fprintf(con [Q,R]=gr_m(A);

c1 = %18.15f c2 = %18.15f\n,exp(c3(1)),c3(2));

% Matriz pseudoinversa
c4=pinv(A)*v;
fprintf(con pinv(A)*b;

c1 = %18.15f c2 = %18.15f\n,exp(c4(1)),c4(2));

% Descomposicin en valores singulares


[U S V]=svd(A);
c5=V\(S\(U\v));
fprintf(con [U S V]=svd(A); c1 = %18.15f c2 = %18.15f\n,exp(c5(1)),c5(2));

88/89

89/89

Grfico con los 100 puntos sintticos, la funcin original y la ajustada.


0.7
original
+ruido
ajustado

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

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Sistemas lineales de grandes dimensiones

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

Almacenamiento en ordenador de matrices dispersas

Operaciones algebraicas elementales con matrices dispersas

Solucin de grandes sistemas lineales de matriz dispersa

Matrices dispersas simtricas y eliminacin de Gauss




Nociones bsicas sobre grafos

Interpretacin mediante grafos de la eliminacin de Gauss

El algoritmo de grado mnimo

El algoritmo de Cuthill-McKee

Matrices dispersas no simtricas y eliminacin de Gauss

Mnimos cuadrados

3/98

Matrices dispersas


Muchos de los modelos matemticos que en la actualidad interpretan o simulan


fenmenos reales de diversa complejidad dan lugar a sistemas de ecuaciones de
gran tamao decenas, cientos de miles y millones de variables.

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.

En general, nosotros consideraremos dispersa a una matriz si teniendo pocos


coeficientes distintos de cero merece la pena manipularla mediante
procedimientos diseados con ese propsito.1
1

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

A Sparse Matrix You Use9 Every Day

Una que usamos continuamente (ahora > 8  10 ).

5/98

PICTURES OF
FROM VARIOUS
Power Systems; BCSPWR07

Simulation of Computing Systems; GRE 1107

dierent structures

Thermal Simulation; SHERMAN2

Power Systems; BCSPWR07

0
200
400
600
800
1000
1200
1400
1600
0

200

400

600 800 1000 1200 1400 1600


bcspwr09; nz = 6511

Chemical Engineering; WEST0381

Economic Modelling; ORANI678

Simulation of Co

6/98

Chemical Engineering; WEST0381

Economic Modelling; ORANI678

7/98

8/98

Sitio web de referencia:

The University of Florida Sparse Matrix Collection

9/98

La ingeniera, estudio e investigacin de los modelos matemticos y sistemas de


ecuaciones con matrices dispersas abarca tres grandes reas:


Almacenamiento de las matrices en un ordenador.

Ordenacin de las ecuaciones del sistema con el fin de reducir el nmero


de coeficientes nuevos no nulos que se crean en la factorizacin de la matriz.

Implementacin ptima para matrices de grandes dimensiones de los


mtodos numricos generales ms avanzados para resolver sistemas de
ecuaciones tradicionales.

10/98

Almacenamiento en ordenador
Por coordenadas


Mediante un conjunto de triples, .aij , i , j /, que definen las coordenadas, o


informacin esencial, de cada coeficiente distinto de cero.

Ejemplo Se quiere almacenar segn este esquema


2
1
6
62
6
AD6
60
6
40
5

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.

Almacenamiento por filas o columnas




11/98

Es el ms extendido. En una matriz m  n define tres vectores:

val Debe contener todos los coeficientes distintos de cero de la matriz, fila a
fila, enumerados consecutivamente;

ico De la misma dimensin de val, con los subndices columna de los


coeficientes de val;

ia De dimensin m C 1, con las posiciones en val y ico del primer coeficiente


no nulo de cada fila de la matriz.
2

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

La informacin de la fila r estar entre las posiciones ia(r) y ia(r C 1)-1 en


ico y val, excepto si ia(r C 1)=ia(r), en cuyo caso la fila r estara vaca.

12/98

La parte de un programa Matlab para recuperar en el vector


de una matriz podra ser:
vec = 0;
for ii=ia(i):ia(i+1)-1
vec(ico(ii))=val(ii);
end

Recuperar la columna k sera un poco ms complicado:


vec=0;
for j=1:m
for ii=ia(j):ia(j+1)-1
if ico(ii)==k vec(j)=val(ii), break
elseif ico(ii)>k break
end
end

vec() la fila i

Almacenamiento por perfil o envolvente


Definicin Si fi D mKnfj W aij 0g y li D mKaxfj W aij 0g, una matriz A mn

tiene un ancho de banda de filas w si


w D mKax1im wi ; wi D .li fi C 1/,
donde wi es el ancho de la fila i. La envolvente de A; Env.A/, es el conjunto Env.A/ D
f.i; j / W fi  j  li ; 1  i  mg.

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.

Ejemplo La envolvente de la matriz


1
2
3
AD 4
5
6
7

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

Este esquema guarda los coeficientes de la envolvente mediante tres vectores:

val Contiene todos los coeficientes de la envolvente;


ifa Con los ndices fi de cada fila i ;
ia De dimensin m C 1, si la matriz es m  n, con las posiciones en val del

primer coeficiente no nulo de las filas que se corresponden con el orden de


los coeficientes de ia.

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

Para recuperar una fila en Matlab:


vec = 0;
j
= 0;
for ii=ia(i):ia(i+1)-1
vec(ifa(i)+j)=val(ii);
j = j+1;
end

Definicin El ancho de banda (o de semibanda) de una matriz simtrica B 2 Rnn,

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.

La envolvente de una matriz simtrica es Env.B/ D f.i; j / W fi  j  i; 1  i  ng.

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

Obsrvese que la dimensin de ib es n.

Si los anchos de banda son iguales, ib no sera necesario: slo val y i .

16/98

Operaciones algebraicas de matrices dispersas




El concepto estructura simblica de una matriz expresa la disposicin espacial


de los coeficientes distintos de cero en la matriz.

Producto interior de dos vectores




Calculemos el producto interior de dos vectores a y b,


hD

n
X

ai bi ;

i D1

almacenados como dispersos segn el esquema de filas.

Lo ms eficaz es definir un vector ip, de dimensin n, en el que se guardan los


punteros de los coeficientes no nulos de vala o valb.

17/98

Por ejemplo, si el vector a est definido por


Vector

Coeficientes
1 2 3 4

icoa 10 3 7 4
vala 0,2 0,3 0,4 -0,5

el vector ip, una vez


almacenados los punteros, quedara

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 

a3 est en la posicin 2 de vala, a4 en la posicin 4, a7 en la 3, etc.




Con los coeficientes no nulos de b, se usa ip y, si es necesario, se


multiplican los coeficientes acumulando el resultado en h. Si b es
Vector

icob
valb

Coeficientes
1
2
3
5
4 10
0,6 0,7 0,5

el primer coeficiente no nulo de b es b5 D 0;6.

Ahora bien, ip(5)=0, por lo que a5b5 D 0, no siendo necesario efectuar


esta ltima operacin : : :

18/98

Estas ideas en Matlab daran lugar a:


ip = 0
for i=1:na
ip((icoa(i)) = i;
end
h = 0.0;
for i=1:nb
if ip(icob(i))~=0
h=h+vala(ip(icob(i)))*valb(i);
end
end

Hacer ip(   )=0 es costoso numricamente: es necesario realizar muchas


operaciones, aunque triviales, si n es grande.

Si un vector se multiplica por otros muchos (caso por ejemplo de productos de


matrices), evidentemente, slo es necesario inicializar ip a cero una vez.

19/98

Multiplicacin de matrices por vectores




Supondremos que el vector est almacenado en toda su extensin. Nos


interesamos en primer lugar por la operacin c D Ab, donde A 2 Rmn,
b 2 Rn y c 2 Rm .

Si c se guarda en toda su extensin y A segn el esquema por filas, para


realizar la operacin basta saber qu coeficientes son no nulos en cada fila de la
matriz A, multiplicarlos por el correspondiente de b y acumular el resultado.

En Matlab esto se podra hacer como sigue.


for i=1:m
iai=ia(i); iai1=ia(i+1)-1;
s = val(ia1:iai1)*b(ico(iai):ico(iai1));
c(i) = s;
end

Multiplicacin de un vector por una matriz




Queremos efectuar la operacin c T D bT A, donde A 2 Rmn, b 2 Rm y


c 2 Rn .

Consideremos el siguiente ejemplo simblico de este producto,




c1 D b1 a11 C b2 a21
a11 a12 a13
! c2 D b1a12 C b2a22
c1 c2 c3 D b1 b2 a a a
21

22

23

c3 D b1 a13 C b2 a23 :

Si la matriz est almacenada por filas, reescribamos las ecuaciones as:


c1
c2
c3

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

En este caso se puede acceder a los coeficientes secuencialmente por filas e ir


acumulando los resultados de las operaciones en los propios coeficientes de c.

20/98

21/98

Otras operaciones


Operaciones como la suma de matrices, la multiplicacin, la multiplicacin


A T A, etc. se pueden llevar a cabo muy eficazmente, en general, mediante dos
etapas: la simblica y la numrica:


La simblica determina, mediante vectores-puntero, esa estructura de


coeficientes no nulos de la matriz que ha de resultar de la operacin.

La numrica, los valores distintos de cero en las posiciones ya reservadas al


efecto en la etapa anterior.

22/98

Solucin de sistemas lineales de matriz


dispersa
Algoritmo general para resolver grandes sistemas lineales

Paso 1 Determinar la estructura simblica de A.


Paso 2 Obtener unas permutaciones P y Q tales que PAQ tenga una estructura de
dispersidad ptima.
Paso 3 Factorizar simblicamente la matriz PAQ y generar las estructuras de datos
y memoria necesarias para L y U .
Paso 4 Calcular numricamente LU D PAQ y c D Pb.
Paso 5 Resolver Lz D c, U y D z y, por fin, x D Qy.

Ordenacin de las ecuaciones

23/98

Al resolver un sistema de ecuaciones lineales de matriz dispersa, el orden en que


se disponen sus filas o columnas tiene una importancia fundamental.

Consideremos una matriz A, de estructura simblica simtrica, cuyo patrn de


coeficientes distintos de cero es el de la figura.

24/98

Si se utiliza la eliminacin de Gauss para resolver dicho sistema, en el transcurso


de dicha factorizacin se harn distintos de cero 46 coeficientes coeficientes
de relleno (fill-in en la literatura anglosajona): los que en la figura aparecen
sombreados.

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.

 Si esta ltima matriz se factoriza tambin mediante eliminacin de Gauss, el

nmero de nuevos coeficientes distintos de cero que se crean en el proceso es


 Si esta ltima
cero. matriz se factoriza tambin mediante eliminacin de Gauss, el

nmero de nuevos coeficientes distintos de cero que se crean en el proceso es


cero.
42/126

26/98

Reordenar las matrices para reducir el nmero de coeficientes de relleno


presenta tres ventajas fundamentales:


Una disminucin del nmero de posiciones de memoria que se han de


reservar para los nuevos coeficientes que se harn distintos de cero en un
proceso de factorizacin.

Una disminucin del nmero de operaciones a realizar y, por lo tanto, el


tiempo total de clculo para factorizar la matriz y resolver el correspondiente
sistema.

Una mejora de la estabilidad numrica del proceso global de resolucin del


sistema al disminuir el nmero de coeficientes que habr que considerar y
por tanto disminuir la probabilidad de encontrar grandes diferencias entre
ellos, errores de cancelacin, etc.

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

Para lograr una ordenacin ptima es necesario considerar la estructura de la


matriz, cmo se almacena y el tipo de operaciones que se van a realizar.

28/98

Si las matrices son de estructura simtrica y se almacenan segn un esquema de


perfil o envolvente, tambin interesa poder disponer de un algoritmo de
ordenacin que compacte los coeficientes cerca de la diagonal principal.


Uno para ese propsito es el algoritmo de Cuthill-McKee que veremos ms


adelante.

El resultado de aplicarlo a una matriz simtrica 35  35 es este.

350

350

400

400

450

450

100

200
300
el = 7551

400

29/98

100

200
300
el = 24226

400

Tambin existen diversas formas de ordenar matrices dispersas de estructura


simblica no simtrica.


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

Si de acuerdo con esta estructura tambin se dividen los vectores x y b de


Ax D b, el sistema se tratar mucho ms eficazmente resolviendo los
subsistemas
A i i x i D bi

i 1
i

A ij xj ;

i D 1; 2; 3:

j D1

Slo ser necesario factorizar las submatrices A i i pues los bloques o


submatrices A ij , i > j , slo se han de multiplicar por los subvectores xj .

Los nuevos coeficientes distintos de cero slo se podrn crear en esas


submatrices en la diagonal principal.

Si como ejemplo consideramos la matriz simtrica 16  16

la reordenacin triangular inferior en bloques que de ella se puede obtener es:

31/98

32/98

ndice
 Matrices dispersas

 Almacenamiento en ordenador de matrices dispersas

 Operaciones algebraicas elementales con matrices dispersas


 Solucin de grandes sistemas lineales de matriz dispersa
 Matrices dispersas simtricas y eliminacin de Gauss


Nociones bsicas sobre grafos

Interpretacin mediante grafos de la eliminacin de Gauss

El algoritmo de grado mnimo

El algoritmo de Cuthill-McKee

Matrices dispersas no simtricas y eliminacin de Gauss

Mnimos cuadrados

33/98

Matrices dispersas simtricas y eliminacin


de Gauss


La eliminacin de Gauss, u otra factorizacin, puede crear coeficientes no nulos


nuevos; para evitarlo lo ms posible hay que reordenar las filas y las columnas.

Si a la matriz de Ax D b se le aplican unas de permutaciones, representadas


por P, el sistema se puede reescribir,
P A P T Px D Pb;
pues P T P D I.

34/98

Haciendo y D Px y c D Pb, se tiene que


By D c;
donde B D PAP T es la matriz A reordenada.

La matriz B es tambin dispersa y simtrica.

Si A es definida positiva, lo mismo ocurre con B, etc.

Encontrar una P que produzca el menor relleno posible al factorizar B no es


fcil:


Si A es de orden n, el nmero posible de ordenaciones es n. Imposible


analizar todas si n es grande.

No existe ningn algoritmo que garantice la ordenacin ptima.

Si existen algoritmos heursticos para tratar de llegar a un resultado ptimo.

35/98

En las figuras que siguen se representan los patrones de coeficientes distintos de


cero de una matriz 480  480 antes y despus de factorizarla.

Las dos primeras representan la matriz sin reordenar y el resultado que


producira factorizarla de la forma LLT .
0

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

Estas dos, el mismo caso cuando se reordena la matriz original mediante el


algoritmo de grado mnimo.
350

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

Por ltimo, estas dos figuras representan la matriz reordenada mediante el


algoritmo de Cuthill-McKee y el factor L resultante.

Obsrvese que L tiene en el primer caso 30:366 coeficientes distintos de cero,


9:196 en el segundo y 24:226 en el tercero.

38/98

Elegir un buen mtodo de reordenacin de la


matriz es esencial

Demo de Matlab: Demo_sparse

Nociones bsicas sobre teora de grafos




39/98

Un grafo, G D .V; E/, es un par formado por un conjunto finito, V , de


elementos denominados nudos del grafo, y por otro tambin finito, E, de arcos.
1

10

8
5

9
2

11
4

5
3

Un arco es un par de nudos. Si los arcos de un grafo son ordenados, el grafo se


denomina digrafo o grafo dirigido; si no, grafo a secas o grafo no dirigido.

El grado de un nudo es el nmero de arcos que tienen uno de sus extremos en


ese nudo; o el nmero de nudos a l unidos.

40/98

Un grafo no dirigido se puede ver como un digrafo en el que si el arco


e D .u; v/ 2 E, tambin e 0 D .v; u/ 2 E.

Si e D .i; j / 2 E, este arco une un nudo de origen o cola i D t .e/ con otro de
destino, final o cabeza j D h.e/.

El nmero de elementos, o cardinal de V o E, se designa jV j o jEj.

Un grafo G D .V; E/ se dice numerado si existe una biyeccin W f1,


2; : : : ; jN jg ! V .

En lo sucesivo supondremos el grafo numerado.

A cualquier matriz cuadrada, A, se le puede asociar un grafo.

Si A es cuadrada de orden n, de estructura simblica simtrica, con todos sus


coeficientes diagonales distintos de cero, se define el grafo asociado a A,
G A D .V A; E A/, como el grafo no dirigido numerado de n nudos V A D fv1,
v2; : : : ; vng y arcos o aristas E A definidas de tal forma que
.vi ; vj / 2 E A , aij 0; aj i 0:

El que los coeficientes diagonales sean distintos de cero hace que no sea
necesario representar los bucles que unen cada nudo consigo mismo.

 En la figura se puede ver la estructura simblica simtrica de una matriz 11  11 y


su grafo asociado.

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

El grafo asociado a una matriz simtrica permanece invariable, salvo la


numeracin de sus nudos, al aplicarle a dicha matriz una permutacin
simtrica.

41/98

Considrese el grafo siguiente:

42/98

3
2

4
1

7
6

Con esta numeracin, la matriz simblica asociada es:


1
2
3
4
5
6
7

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

Si en el grafo anterior la numeracin fuese

43/98

2
1

3
7

6
5

la matriz simblica asociada sera


1
2
3
4
5
6
7

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

en la que no habra coeficientes de relleno al factorizarla.

44/98

Simulemos con Matlab la manipulacin de esta matriz (en


Demo_sparse_1.m).

>>
>>
>>
>>
>>
>>
>>
>>
>>
>>

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 camino de un nudo u1 a otro umC1, es un conjunto ordenado de nudos fu1,


u2; : : : ; umC1g tal que ui y uiC1 son adyacentes para i D 1, 2; : : : ; m.
 La longitud de ese camino es m.

 El nudo inicial de un camino se suele denominar de partida; el final, de llegada.


 Un camino tambin se puede definir como un conjunto ordenado de m arcos .u1 ; u2 /,

.u2 ; u3 /; : : : ; .um ; umC1 /.

 Dos nudos dados, u y v , se dicen unidos por un camino, si existe un camino de u a v .


 Un camino es un ciclo cuando u1 D umC1 .
 La distancia, d.u; v/, entre dos nudos, u y v , es la longitud del camino ms corto entre ambos nudos.
 Dado un nudo u, a la mayor distancia entre ese nudo y cualquier otro del grafo se la denomina

excentricidad, e.u/, del nudo u.

 Un grafo se dice conexo si cada par de nudos distintos se puede unir por un camino; inconexo en cualquier

otro caso.

La mayor excentricidad de un grafo se denomina dimetro.

Un nudo perifrico es aquel cuya excentricidad es al dimetro.

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

La distancia entre los nudos 1 y 3 es 3.

El camino f5, 8, 11, 3, 5g es un ciclo.

10 11

10

9
2

11
4

5
3

El dimetro de este grafo es 4. Los nudos perifricos: 1, 2, 4, 5 y 6. Su


excentricidad es igual a 4.

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

Interpretacin con grafos de la eliminacin de Gauss




Recordemos que:


Al comienzo de una etapa k del proceso de eliminacin de Gauss todos los


coeficientes distintos de cero debajo de la diagonal principal en las columnas
1, 2; : : : ; k 1 son cero.

En esta etapa k se determinan unos multiplicadores y se restan, de las filas


que tienen un elemento distinto de cero en la columna k debajo de la
diagonal principal, la fila k multiplicada por el multiplicador correspondiente.

Este proceder puede crear nuevos coeficientes distintos de cero en la


submatriz k C 1; : : : ; n.

Consideremos la submatriz activa en la etapa k: la de coeficientes aijk , donde i,


j  k.

49/98

Sea G k el grafo de eliminacin de esa submatriz activa:

Para obtener G kC1 a partir de G k , borrar en ste el nudo k y


aadir todos los nuevos arcos que sea posible entre nudos que sean
adyacentes a ese nudo k.

Los arcos que se aaden determinan qu coeficientes nuevos distintos de cero se


producirn en la matriz en un proceso de eliminacin de Gauss, o similar.

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

que sigue y a su matriz.

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

Al final del proceso la matriz ser:


1 2 3 4 5 6 7 8 9 10 11

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



  

Los grafos de eliminacin permiten realizar, independientemente de los valores


numricos, una eliminacin de Gauss simblica y determinar qu nuevos
coeficientes distintos de cero cmo mximo se van a crear.


Reservando posiciones de memoria para esos nuevos coeficientes, se puede


realizar la eliminacin o factorizacin numrica como es habitual.

53/98

El algoritmo de GRADO MNIMO




Fue formulado por Tinney y Walker en 1967. Es el ms ms extendido y sencillo


para reducir el nmero de rellenos que produce la eliminacin de Gauss, u otra
similar, en una matriz de estructura simtrica.

La idea en que se basa es simple:


 Si en la etapa k de la factorizacin hay coeficientes no cero a la derecha de
la diagonal principal de la fila k, al sumar un mltiplo de esta fila a
cualquiera de las filas k C 1 a n lo normal es que se produzcan nuevos
coeficientes no nulos en esas filas.


Si se determina la fila ` de la submatriz activa con el menor nmero de


coeficientes distintos de cero y se intercambia con la k, al igual que las
columnas ` y k, el nmero de nuevos coeficientes distintos de cero en esa
submatriz ser mnimo.

54/98

El nombre de grado mnimo viene de que en el grafo de eliminacin G k , el


coeficiente de la diagonal principal en la fila k representar el nudo que est
unido al menor nmero de nudos.

Paso 1 Inicializacin. Hacer i

1.

Paso 2 Seleccin del nudo de grado mnimo. Seleccionar en el grafo de eliminacin


G k 1 D .V k 1 ; E k 1 / aquel nudo vk de grado mnimo.
Paso 3 Transformacin. Formar el nuevo grafo de eliminacin G k D .V k ; E k /
eliminando vk de G k 1 .

Paso 4 Bucle. Hacer i

i C 1. Si i > jV j, parar. Si no, ir al paso 2.

Algoritmo de Grado Mnimo

55/98

Para ilustrar el proceso del algoritmo, consideremos el grafo de la figura


asociado a una matriz simtrica 7  7.
a

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

El algoritmo de grado mnimo produce muy buenos resultados prcticos.

Cuando el grafo a reordenar sea un rbol, el resultado no producir coeficientes


de relleno al efectuar la factorizacin ulterior.

El algoritmo de grado mnimo no siempre da lugar a la ordenacin ptima:


aquella con el menor nmero de rellenos.
1
2
2
1

7
4

3
9

4
5
6
7
8
9

59/98

Si se aplica al grafo de la figura, el algoritmo elegir el nudo nmero 5 como el


inicial, lo que traer como consecuencia que se produzca un relleno posterior en
las posiciones .4; 6/ y .6; 4/.

Con la numeracin de la figura no se produciran rellenos.

60/98

El algoritmo de Cuthill-McKee


Fue formulado en 1969 por Elizabeth H. Cuthill y J. McKee. Su objetivo es que


los coeficientes distintos de cero estn lo ms cerca posible de la diagonal
principal.

Mecnica: Una vez numerado un nudo k, se numeran inmediatamente despus


los que estn unidos a l, no numerados previamente: los coeficientes distintos
de cero de la fila k estarn lo ms cerca posible de la diagonal.
Paso 1 Inicializacin. Seleccionar un nudo inicial r. Hacer v1

r.

Paso 2 Bucle. Para i D 1; : : : ; n, determinar todos los nudos adyacentes al vi no


numerados y numerarlos en orden creciente de grado a nudos no numerados.

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

Teorema La numeracin dada por el algoritmo de Cuthill-McKee conduce a un perfil


montono.

62/98

Ejemplo Apliquemos el algoritmo de Cuthill-McKee al grafo de la figura.

10

Empezando a numerar por el nudo a, en la figura de la derecha se puede ver la


numeracin final que se obtiene con el algoritmo.

Los nudos 5 y 6 podran invertir su numeracin segn el algoritmo. Se ha


escogido sta por estar el 5 antes en la pseudonumeracin inicial.

63/98

Con la numeracin obtenida, considerando slo la parte triangular inferior, los


coeficientes distintos de cero y ceros en la envolvente de la matriz asociada
sern los que siguen.
1
2
3
4
5
6
7
8
9
10

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

El ancho de banda de esta matriz es 5. La envolvente tiene 33 coeficientes; 7 de


ellos cero.

64/98

Ahora bien, si se comienza a numerar el grafo por el nudo e, el resultado de


aplicar el algoritmo de Cuthill-McKee es el de la figura.

71

43

39

14

96

10
8

58

67

5
10

65/98

Los coeficientes distintos de cero y ceros son:


1
2
3
4
5
6
7
8
9
10

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

El ancho de banda de esta matriz es 6. El nmero de coeficientes de la


envolvente es 46; de ellos, 20 cero.

La eleccin del nudo inicial es una cuestin crtica.

66/98

Seleccin del nudo inicial




Normalmente, el mejor nudo de partida es uno perifrico. Obtengamos uno.


Paso 1 Inicializacin. Seleccionar un nudo arbitrario r.
Paso 2 Generar estructura de niveles. Construir la estructura de niveles del grafo
tomando como nudo raz el nudo r: L.r/ D fL0 .r/, L1 .r/; : : : ; L`.r/ .r/g.
Paso 3 Bucle. Escoger un nudo v en L`.r/ .r/ todava no tratado de grado mnimo:
a) Si e.v/ > e.r/, hacer r
v e ir al Paso 2.
b) Si e.v/  e.r/, escoger otro nudo de L`.r/ .r/ y volver al paso 3; si no
hay ms nudos, parar.

67/98

Comenzando por cualquier nudo, por ejemplo e, apliquemos este procedimiento


al ejemplo: las tres etapas de que consta estn la figura.
2
a

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

El algoritmo inverso de Cuthill-McKee


Reduccin de la envolvente de una matriz dispersa simtrica


En 1971 George descubri que utilizando el algoritmo de Cuthill-McKee, pero


invirtiendo el orden de la numeracin final, se consegua una matriz con el
mismo ancho de banda pero con una envolvente con un nmero de coeficientes
menor o igual.
Teorema Sea A una matriz cuyo perfil es montono. El nmero de coeficientes de
Env.A/, numerando el grafo asociado a A de acuerdo con el resultado obtenido de aplicar
el algoritmo inverso de Cuthill-McKee, es a lo sumo el mismo que el de la matriz asociada
al grafo numerado de acuerdo con el resultado del algoritmo ordinario de Cuthill-McKee.

Ejemplo Considrese el grafo que venimos manejando.

69/98

g
c

e
a

d
f

Si se reordena con el algoritmo de Cuthill-McKee dara:


1
2
3
A= 4
5
6
7

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

1
3

7
2

6
5

70/98

Por el contrario, utilizando el algoritmo de Cuthill-McKee inverso, se conseguira


el efecto siguiente.

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

Si al grafo que se utilizaba para introducir el algoritmo de Cuthill-McKee, se le


aplicada el algoritmo inverso, el resultado que se obtiene es el que describe la
figura.

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

Matrices dispersas no simtricas


y eliminacin de Gauss


Tambin aqu, para evitar nuevos coeficientes de relleno, en un proceso similar


al de eliminacin de Gauss de la matriz A, se efecta una reordenacin de filas
y columnas.


Si al sistema Ax D b se le aplican unas permutaciones a la izquierda y a la


derecha, representadas por las matrices de permutacin P y Q, y el sistema
original se reescribe
P A Q QT x D Pb;
donde QT Q D I, haciendo y D QT x y c D Pb, se tiene que,
By D c;
donde B D PAQ es la matriz A reordenada.

El objetivo de estas manipulaciones es:




Que B tenga una dispersidad mejor que la de A;

que su factorizacin sea numricamente estable; y

que el nmero de coeficiente de rellenos introducidos por la factorizacin o


eliminacin de Gauss sea el menor posible.

Si A no tiene ninguna estructura especial, siempre se pude reordenar en forma


triangular inferior en bloques,
2
32 3 2 3
A 11
x1
b1
6
76 7 6 7
6A 21 A 22
7 6x 2 7 6b2 7
6 ::
7 6 :: 7 D 6 :: 7 ;
:::
4 :
54 : 5 4 : 5
A n1 A n2    A nn
xn
bn
donde los A ij son matrices, siendo las A i i cuadradas de orden ni :
Pn
i D1 ni D n.

73/98

74/98

Ejemplo El sistema que se ilustra a continuacin, sin ordenar y reordenado.

75/98

Nociones bsicas sobre grafos dirigidos




Un grafo, G D .V; E/, es un par formado por un conjunto finito de elementos,


V , denominados nudos del grafo, y por otro tambin finito, E, de arcos. Un
arco es un par de nudos. Si los arcos son ordenados, el grafo se denomina
digrafo o grafo dirigido.

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 .

El nmero de elementos, o cardinal de V o E, se designa jV j o jEj.

Un grafo G D .V; E/ se dice numerado si existe una biyeccin W f1,


2; : : : ; jN jg ! V . Siempre que hablemos de un grafo dirigido se supondr
numerado.

76/98

El grado de entrada o llegada de un nudo es el nmero de nudos que a l llegan;


el grado de salida, el nmero de nudos que salen.

Si .u ! v/ es un arco, el nudo v se dice adyacente al u.

Un camino dirigido, es un conjunto ordenado de nudos fu1, u2, : : : ; umC1g tal


que ui C1 es adyacente a ui , i D 1, 2; : : : ; m. Su longitud es m.

Un ciclo de un digrafo, o ciclo dirigido, es un camino, con al menos dos arcos,


que sale y llega al mismo nudo.

Si en un digrafo el nudo v es accesible desde u, la distancia desde u a v es la


longitud del camino ms corto de u a v (la distancia desde v a u puede ser
distinta o incluso indefinida).

Un digrafo se dice conexo si lo es el grafo no dirigido que se obtiene al suprimir


las direcciones en los arcos del digrafo.

77/98

A cualquier matriz general, A, n  n, se le puede asociar un digrafo de n nudos




En dicho digrafo G A D .V A; E A/, los arcos E A son tales que


.vi ; vj / 2 E A , aij 0:

A cualquier coeficiente diagonal ai i 0 tambin le corresponde un arco que


parte y llega a vi . Cuando todos son no nulos transversal completo, no se
representan. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

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

Los nudos 6, 7 y 9 son adyacentes al nudo 8; si W D f8, 13g, Adj.W / D f6,


7,19,2 12,
grado
3 14g;
4 5 el
6 nudo
7 8 5
9 tiene
10 11 un
12 13
14 15de entrada de 2 y de salida de 1; el nudo

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

Si a una matriz se le efectan permutaciones simtricas, en su


digrafo slo se modifica la numeracin de los nudos.

79/98

Eliminacin de Gauss en matrices no simtricas




Con digrafos. En una etapa k el digrafo de eliminacin se forma eliminando del


de la fase k 1 el nudo vk , todos los arcos que a l llegan o de l parten, y
aadiendo un arco .u ! w/ cuando existe un camino dirigido fu, v, wg.

En
la primera etapa en este digrafo, el grafo de eliminacin se obtiene quitando
6 7 8 9 10 11 12 13 14 15

el nudo 1 y aadiendo el arco .5 ! 2/, segn se indica.

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

Obtencin de un transversal completo




Cualquier matriz regular A se puede reordenar mediante permutaciones no


simtricas de tal forma que PAQ tenga un transversal completo.


Si la matriz es singular esto puede no cumplirse.

Con transversal completo, puede reordenarse mediante permutaciones simtricas


para conseguir una estructura triangular inferior en bloques:


Si esa estructura de bloques existe, se dice que A es una matriz reducible.

Si una matriz no tiene transversal completo pero puede reordenarse de tal


forma que entonces s lo tenga, y as reordenada es reducible, se dice
birreducible.

Para conseguir triangularizar por bloques una matriz A dispersa cualquiera se


procede en dos fases:

81/98

Fase 1. Encontrando un transversal completo de esa matriz.


Fase 2. Reordenando el resultado de la fase 1 mediante permutaciones
simtricas.

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.

Supongamos que se han realizado k etapas y que los primeros k coeficientes de


la diagonal principal son ya distintos de cero.

82/98

En la etapa k C 1 podr ocurrir:


a) Que akC1 kC1 0 con lo que se finaliza esta etapa.

b) Que akC1 kC1 D 0, pero que exista un coeficiente distinto de cero en la


submatriz activa:


Realizando los intercambios de filas y columnas necesarios se puede llevar


ese coeficiente a la posicin .k C 1; k C 1/.
Los coeficientes de subndices 1 a k no deben verse afectados por estos
intercambios: los k primeros coeficientes de la diagonal principal seguirn
siendo distintos de cero.

c) Que slo existan coeficientes cero en la submatriz activa:




Mediante el trazado de un camino creciente se puede conseguir colocar


un coeficiente distinto de cero en akC1 kC1. Si no se encuentra ese
camino, la matriz ser singular.

El trazado de un camino creciente comienza, en una etapa k C 1, en el


coeficiente .k C 1; k C 1/:

83/98

Contina por la fila k C 1 hasta que se encuentra con un coeficiente distinto


de cero, en una columna ` (tal columna debe existir pues de lo contrario
todos los coeficientes de la fila k C 1 sern cero y la matriz, por tanto,
singular);

De aqu al coeficiente .`; `/ a lo largo de la columna `;

A continuacin, por la fila ` hasta hallar un coeficiente distinto de cero, por


ejemplo en la columna m, etc.

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.

Terminar en un coeficiente distinto de cero en la submatriz que definen las filas


1 a k y las columnas k C 1 a n.

Para aclarar el procedimiento, consideremos una matriz simblica 12  12 y el


procedimiento descrito es su etapa 9.

84/98

1 2 3 4 5 6 7 8 9 10 11 12

7
8

9
10
11
12

Esta etapa 9 comienza en la posicin .9; 9/.

La submatriz de coeficientes 9 a 12 son todos cero por lo que se trata de trazar


un camino creciente.

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

Permutaciones simtricas para obtener una estructura


triangular en bloques


Obtenido un transversal completo, la siguiente fase para llegar a una matriz


triangular en bloques consiste en encontrar otra permutacin que haga
2
3
B 11
6
7
6B 21 B 22
7
6 ::
7;
:::
4 :
5
B n1 B n2    B nn
donde cada bloque diagonal, B i i , no se pueda reducir ms.

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

Matrices dispersas generales: eliminacin de Gauss




Si el sistema no presenta una estructura de dispersidad especial y tampoco


interesa triangularizarla por bloques, la forma ms general de abordar su
resolucin consiste en utilizar directamente la eliminacin de Gauss teniendo en
cuenta que esa matriz es dispersa.

Para llevarla a cabo se usa el criterio de Markowitz, por Harry Max Markowitz,
EE.UU. 1927-. Premio Nobel de economa de 1990.

Lo formul en 1957 y consiste2 en factorizar la matriz mediante eliminacin de


Gauss con pivotacin, escogiendo como elemento pivote en una etapa k uno aijk
de A que sea numricamente aceptable y que minimice

89/98

.rik

1/.cjk

1/;

donde rik es el nmero de coeficientes no cero en la fila i de la submatriz activa


y cjk los no ceros en la columna j .


En la figura se ilustra la situacin para el caso en que n D 7 y k D 3.


1

1
1

rT

Obsrvese que es ms conveniente usar .rik 1/.cjk 1/


que rik cjk pues de esta manera se fuerza a que se elija un
k
coeficiente aij
tal que en su fila o columna slo exista l
como coeficiente distinto de cero.

La estrategia resultante es similar a la de grado mnimo.

90/98

ndice


Matrices dispersas

Almacenamiento en ordenador de matrices dispersas

Operaciones algebraicas elementales con matrices dispersas

Solucin de grandes sistemas lineales de matriz dispersa

Matrices dispersas simtricas y eliminacin de Gauss

Matrices dispersas no simtricas y eliminacin de Gauss

Mnimos cuadrados

91/98

Problemas de mnimos cuadrados de grandes


dimensiones


Son problemas de mnimos cuadrados lineales,


kAx
minimizar
x 2Rn

bk2

en los que la matriz A es de grandes dimensiones y dispersa.

92/98

Las ecuaciones normales




De las ecuaciones normales


minimizar
kAx
x 2Rn

bk2 A T .Ax

b/ D 0

si suponemos A es de rango completo, A T A es simtrica y definida positiva.


Teorema Supngase que no se producen errores numricos de cancelacin en el clculo
de A T A, entonces,

A T A j k 0 , aij 0 y ai k 0
para al menos una fila i D 1, 2; : : : ; m.

Este resultado permite saber dnde se producirn coeficientes de relleno al


obtener A T A.

93/98

Paso 1 Determinar la estructura simblica de A T A.


Paso 2 Determinar una permutacin de columnas Q tal que el factor de Cholesky de
QT A T AQ tenga una estructura dispersa buena.
Paso 3 Factorizar simblicamente por Cholesky QT A T AQ y generar las estructuras
de datos y memoria necesarias para G .
Paso 4 Calcular numricamente B D QT A T AQ y c D QT A T b; almacenar B en
la estructura de datos correspondiente a G .
Paso 5 Calcular numricamente la factorizacin de Cholesky G T G de B. Resolver
G T z D c, G y D z y, por fin, x D Qy.

Algoritmo bsico para mnimos cuadrados de matriz dispersa

94/98

Transformaciones ortogonales_Mtodo de George-Heath




Recordemos que:


Un conjunto de transformaciones ortogonales, representadas por


Q 2 Rmm, puede reducir A 2 Rmn (que supondremos de rango n) y
b 2 Rm de la forma
 
 
R1
c
QA D
y Qb D
;
0
d
donde R 1 2 Rnn es una matriz triangular superior y c 2 Rn.

La solucin del problema de mnimos cuadrados se obtiene de R 1x D c; la


suma de residuos al cuadrado es kdk22.

95/98

El algoritmo de George y Heath [1980] procesa las filas de A secuencialmente


con esta mecnica.
1. R i 1 designa la matriz triangular superior que se obtiene despus de procesar
las filas aT1 ; : : : ; aTi 1 .
Al procesar la fila aTi D ai1 , ai 2 ; : : : ; ai n se buscan de izquierda a derecha los
coeficientes distintos de cero.
Para cada aij 0, i > j , se define una transformacin de Givens que involucre
a la fila j de R i 1 y anule aij .


Procediendo as se pueden crear nuevos coeficientes distintos de cero en


R i 1 y en la fila aTi .

2. Si al tratar la fila i, al llegar al coeficiente j.j < i/ ste no es cero y rjj D 0,


la fila j en R i 1 todava no se ha visto afectada por ninguna rotacin y debe
ser toda cero:


Lo que resulta de la fila i debe insertarse en la fila j .

96/98

Un ejemplo de este proceso actuando sobre los coeficientes de la fila 9 de una


matriz 9  8 es el que sigue.


0  0 0 
0  0
 0  0
0

0 0
0 0
0 
0 0
0 0
0
 0

 0

Los smbolos designan los coeficientes involucrados en la eliminacin de aT9 .


Los que se crean de relleno en R 8 y aT9 durante la eliminacin se designan
mediante .


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
>
>
>
>
=

>
>
>
>
;

requieren O.mn2/ y O.n2/ operaciones, respectivamente, para reducirlas.




Para reordenar las filas se puede aplicar este algoritmo:


Si el ndice de columna del ltimo coeficiente distinto de cero de la fila aTi es `i y el
primero fi , ordenar primero las filas cuyos ndices fi , i D 1, 2; : : : cumplan que fi  fk
si i < k y luego, para cada grupo de filas tales que fi D k, k D 1; : : : ; mKaxi fi , ordenar
las filas segn `i crecientes.

98/98

Con las consideraciones anteriores, el algoritmo de ortogonalizacin de George y


Heath para mnimos cuadrados queda as:
Paso 1 Llevar a cabo los Pasos 1 a 3 del Algoritmo bsico anterior.
Paso 2 Determinar una permutacin de filas P tal que las filas de PAQ tengan
unos ndices de columnas `i crecientes.
Paso 3 Calcular numricamente R 1 y c procesando las filas de PAQ, Pb
mediante transformaciones de Givens.
Paso 3 Resolver Ry D c. Hacer x D Qy.

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Sistemas de ecuaciones lineales

Mtodos iterativos de resolucin

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_itera_2016.pdf

1/103

2/103

ndice


Introduccin

Mtodo de Jacobi

Mtodo de Gauss-Seidel

Mtodos de relajacin

Mtodos iterativos y matrices dispersas

Mtodos de direccin de descenso (minimizacin)




Obtencin de direcciones de descenso

Mtodo de los gradientes conjugados

Mtodos de proyeccin en subespacios de Krylov

Comparacin numrica de los mtodos

Introduccin


3/103

Los procedimientos iterativos siguen un esquema de trabajo como el que sigue


 Algoritmo iterativo para la resolucin de Ax D b
Dados Un x D x .0/ y una t ol, hacer k D 1 y sol D f al se
while (not sol) and (k < kmax )

Obtener nueva solucin x D x .k/ ,

if (x .k/
end

x .k

1/

k DkC1

< t ol), sol D true, FIN

Parten de un punto ms o menos cercano a la solucin y convergen a ella en


una sucesin de puntos ms o menos extensa.


Una forma iterativa busca acercarse a la solucin mediante operaciones sencillas


en cada paso: productos de matrices por vectores o similares.

El mtodo converger si limk!1 x .k/ D x o el error e .k/ D x .k/ x tiende a


cero. El acercarse a la solucin, lo medir una mtrica como jjb Axjj.

4/103

La forma ms simple de proceso iterativo es la que define la recurrencia


x .kC1/ D M x .k/ C N b
donde M y N se escogen para que en un punto dado x solucin de Ax D b,
x D M x C N b:
Si A es invertible, se debe cumplir que .I M /A 1b D N b o A 1 D .I M / 1 N .

El mtodo iterativo se denomina estacionario, o de punto fijo, si M y N son


constantes en el proceso. Se escoge una M sencilla o con M 1 fcil de obtener.

Si se divide A as, A D I .I A/, el sistema queda .I


posible sencilla ley de recurrencia1 de punto fijo sera
x .k/ D .I A/ x .k 1/ C b
1

Esquema de Richardson.

.I

A// x D b. Una

5/103

Mtodo de Jacobi

Carl Gustav Jacobi, Alemania


(Prusia), 1804-1851.

Formulado hacia 1845. Supongamos que se desea resolver el sistema de


ecuaciones lineales
a11 x1 C a12 x2 C a13 x3 D b1
a21 x1 C a22 x2 C a23 x3 D b2
a31 x1 C a32 x2 C a33 x3 D b3 :

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





Su generalizacin es el mtodo de Jacobi para un sistema n  n es


.kC1/

xi

1
ai i

bi

n
X
j D1

j i

.k/

aij xj

i D 1; : : : ; n:

Si se divide la matriz A de la forma A D


2
a11 0   
6 0 a22   
6 : : :
DD6
6 :: :: : :
4 0 0    an
0 0 

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
::
:

el esquema iterativo en forma matricial es

.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

Si los ai i , i D 1; : : : ; n son todos positivos D es invertible y


J D D 1.L C U /
es la 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

while kx .kC1/ x .k/ k1 =kx .kC1/ k1 > T ol do


for i D 1 to n

x.i /

1
b.i /
a.i; i /

end

n
X
j D1

a.i; j /x.j /

j i

end

Su cdigo en Matlab, en dos formatos:


function [x k]=Jacobi_2(A,b)
% Resuelve Ax=b por Jacobi
n=size(A,1); x=zeros(n,1); y=x; sm=1; k=0;
while sm>=0.001
k=k+1;
for i=1:n
j = [1:i-1 i+1:n];
y(i)=(b(i)-A(i,j)*x(j))/A(i,i);
end
sm=max(abs(x-y))/max(abs(y));
x=y;
end
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

Ejemplo Resolvamos este sistema de ecuaciones lineales:


10x1
x2 C 2x3
x1 C 11x2
x3 C 3x4
2x1
x2 C 10x3
x4
3x2
x3 C 8x4

D
D
D
D

6
25
11
15:

Partiendo de x .0/ D 0; 0; 0; 0T , aplicando la relacin de recurrencia se tendr:


.1/

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:

Las iteraciones que siguen se generan de forma similar:


0

.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

Utilizando el cdigo Jacobi_2.m para resolver el ejemplo:


>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8];
>> b=[6;25;-11;15];
>> [x k]=Jacobi_2(A,b)
x =
0.9997
2.0004
-1.0004
1.0006
k =
9

En nueve iteraciones se satisface el criterio elegido con una milsima de


precisin.

12/103

Ejemplo Resolvamos con el algoritmo de Jacobi el sistema


10x1 C
x2 D 11
2x1 C 10x2 D 12
partiendo del punto x .0/ D 0; 0T .

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

Resolvamos tambin con Jacobi este nuevo sistema


x1 C 10x2 D 11
10x1 C 2x2 D 12
cuya solucin es tambin 1; 1T .

Partiendo de x .0/ D 0; 0T , los primeros puntos que se generan son:


0

.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.

Teorema Si en el sistema Ax D b la matriz A es de diagonal estrictamente dominante

y regular, para todo b y toda estimacin inicial x .0/ el mtodo iterativo de Jacobi converge
a su nica solucin.

La dominancia diagonal estricta es slo una condicin suficiente. El mtodo


puede converger an en su ausencia.

15/103

Mtodo Gauss-Seidel

Carl Friedrich Gauss, Alemania, 1777-1855 y Phillip


Ludwig von Seidel, Alemania, 1821-1896.

El mtodo2, tambin estacionario, de Carl Friedrich Gauss, Alemania,


1777-1855, y , calcula en una iteracin cada coeficiente de la solucin utilizando
el valor de aquellos ya calculados en esa misma iteracin que se necesitan.

Volviendo a un sistema simblico de tres ecuaciones,


a11x1 C a12x2 C a13x3 D b1
a21x1 C a22x2 C a23x3 D b2
a31x1 C a32x2 C a33x3 D b3;
suponiendo que a11, a22 y a33 no son cero, el esquema iterativo es el que sigue.
2

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

La relacin de recurrencia general para un sistema n  n es la siguiente:


.kC1/

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

Descomponiendo de nuevo la matriz A como en el mtodo de Jacobi, en forma


matricial el mtodo de Gauss-Seidel sigue esta frmula
x .kC1/ D .D

L/


U x .k/ C b

A la matriz
G D .D
se la denomina matriz de Gauss-Seidel.

L/ 1U

El algoritmo de Gauss-Seidel es este.

18/103

while kx .kC1/ x .k/ k1 =kx .kC1/ k1 > T ol do


for i D 1 to n
0
i 1
X
1 @
x.i /
b.i /
a.i; j /x.j /
a.i; i /
j D1

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

Ejemplo Resolvamos por Gauss-Seidel el sistema lineal anterior:


10x1
x2 C 2x3
D
x1 C 11x2
x3 C 3x4 D
2x1
x2 C 10x3
x4 D
3x2
x3 C 8x4 D

6
25
11
15:

Aplicando la relacin general de recurrencia de Gauss-Seidel a este caso,


partiendo del punto inicial x .0/ D 0; 0; 0; 0T , se tiene
.1/

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

Las iteraciones que se generan son las de la tabla.


0

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

Obsrvese que con este mtodo el problema, con el mismo criterio de


convergencia, necesita 5 iteraciones; el de Jacobi lo haca en 9.

21/103

Utilicemos el fichero Gauss_Seidel_1_1.m para resolver el ejemplo.


>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8];
>> b=[6;25;-11;15];
>> [x k]=Gauss_Seidel_NEW(A,b)
x =
1.0001
2.0000
-1.0000
1.0000
k =
5

En cinco iteraciones efectivamente converge, con el criterio elegido, con una


milsima de precisin.

Proposicin Si la matriz A es de diagonal estrictamente dominante se cumple que


kG k1  kJ k1 .

Teorema El mtodo de GaussSeidel para resolver Ax D b converge a su solucin si

la matriz de coeficientes es de diagonal estrictamente dominante.

Teorema El esquema iterativo


x .kC1/ D M x .k/ C N b
es convergente si y slo si el radio espectral de M es menor que 1. En ese caso la sucesin
x .k/ converge a la solucin de la ecuacin x D M x C N b.

Teorema El mtodo iterativo de GaussSeidel es convergente para todo sistema de


ecuaciones cuya matriz de coeficientes es simtrica y definida positiva.

Teorema Si A es una matriz simtrica y definida positiva el mtodo iterativo de Jacobi


es convergente si y slo si 2D

A es definida positiva.

22/103

Mtodos de relajacin

23/103

Recordando lo que vimos al principio de este tema, si se trata de resolver


Ax D b, haciendo A D I .I A/ el sistema queda .I .I A// x D b.
Simplificando la notacin, una ley de recurrencia sera x k D .I A/ x k 1 C b.

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:

Los mtodos de Jacobi y Gauss-Seidel se pueden generalizar escribiendo sus


.k/
.kC1/
.k/
D xi C ri ; i D 1; : : : ; n:
relaciones de recurrencia de esta forma xi
Vistos as, estos dos procedimientos llegan a la solucin mediante unos pasos,
en cada uno de los cuales se mejora la solucin una cantidad r .k/.


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

Los mtodos de relajacin estacionarios tambin buscan mejorar las


prestaciones de convergencia en cada iteracin potenciando la relacin de
recurrencia mediante un factor !,
.kC1/

xi

.k/

D xi

.k/

C !ri ; i D 1; : : : ; n

de tal forma que se avance un paso ms amplio, ! > 1, o ms corto, ! < 1,


segn convenga al problema que se resuelve.


Al ! se le conoce como parmetro de relajacin.

25/103

Mtodo SOR


Aunque a Jacobi se le puede aplicar esta idea, el ms conocido quizs es el


mtodo SOR, Successive Overrelaxation sobrerrelajacin sucesiva. Resulta de
aplicar la idea indicada al mtodo de Gauss-Seidel.

Su relacin de recurrencia es:


0
! @
.kC1/
xi
D
bi
ai i
C.1

i 1
X

.kC1/

aij xj

j D1

.k/

n
X

j DiC1

!/xi ; i D 1; : : : ; n:

.k/
aij xj A C

Aumentado o disminuyendo el valor de ! se puede mejorar la convergencia.

26/103

Si se descompone una vez ms A D D


mtodo SOR en forma matricial es
x .kC1/ D .D

!L/

..1

U , el esquema iterativo del

!/D C !U / x .k/ C ! .D

La matriz que caracteriza el mtodo es


G .!/ D .D

!L/

..1

!/D C !U /

!L/

b:

El esquema del algoritmo SOR es el que sigue.


while kx .kC1/ x .k/ k1 =kx .kC1/ k1 > T ol do
for i D 1 to n
0
i 1
X
! @
x.i /
b.i /
a.i; j /x.j /
a.i; i /
j D1

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

function [x, error, iter] = sor_1(A, b, w, tol)


% Resolucin por SOR (compacto)
if nargin<5, tol=sqrt(eps); end
n=size(A,1); x=zeros(n,1);
r = b - A*x; error = norm(r); iter=0;
if error<tol, return, end
b = w * b;
M = w * tril(A,-1) + diag(diag(A));
N = -w * triu(A,1) + (1.0 - w) * diag(diag(A));
while error>=tol
x_1 = x;
x
= M \ ( N*x + b );
error = norm(x - x_1)/norm(x);
iter = iter+1;
end
end

28/103

Ejemplo Resolvamos por el mtodo SOR el sistema de ecuaciones lineales


4x1 C 3x2
D
3x1 C 4x2
x3 D
x2 C 4x3 D

24
30
24:

Aplicando la relacin general de recurrencia del mtodo, partiendo del punto


inicial x .0/ D 1; 1; 1T , con ! D 1;25, se obtienen los resultados de la
siguiente tabla.
k

.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

Juguemos un poco con el parmetro de relajacin.


>> A=[4 3 0;3 4 -1;0 -1 4];
>> b=[24;30;-24];
>> [x error iter]=sor_1(A,b,1)
x =
3.0000
4.0000
-5.0000
error =
9.6306e-09
iter =
36
>> [x error iter]=sor_1(A,b,1.25)
x =
3.0000
4.0000
-5.0000
error =
1.4007e-08
iter =
15

>> [x error iter]=sor_1(A,b,1.5)


x =
3.0000
4.0000
-5.0000
error =
1.0722e-08
iter =
28
>> [x error iter]=sor_1(A,b,2.25)
x =
-Inf
Inf
NaN
error =
NaN
iter =
3165

30/103

Desde el mismo punto de partida con ! D 2,25, los resultados son:


k

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

Cuando A es simtrica, el mtodo Symmetric Successive Overrelaxation


sobrerrelajacin sucesiva simtrica combina dos pasos del SOR de tal manera
que la matriz de cada iteracin es similar a una simtrica.

Cada paso est compuesto de uno SOR hacia adelante seguido de otro SOR
hacia atrs.

Si se descompone una vez ms A D D


mtodo SSOR en forma matricial es
x .kC1/ D B 1B 2x .k/ C !.2
donde B 1 D .D

!U /

.!L C .1

!/ .D

U , el esquema iterativo del


!U /

!/D/ y B 2 D .D

D .D

!L/

!L/

.!U C .1

b
!/D/.

La matriz B 2 es la de SOR y B 1 es igual con los papeles de L y U invertidos.

32/103

Una codificacin en Matlab podra se esta:


function [sol, it, res] = SSOR_1(A,b,x0,omega)
% Mtodo estacionario SSOR
n = size(A,1); tol = sqrt(eps); maxit = 1500;
it = 1; flag = 1; tmp = x0; sol = zeros(n,1);
% Matrices necesarias
L = tril(A,-1); D = diag(diag(A));
% Productos matriciales iniciales
DomegaL = D+omega*L; DL = (1-omega)*D-omega*L;
M_inv_b = DomegaL\(D*(DomegaL\b));
M_inv_b = (omega*(2-omega))*M_inv_b;
while it <= maxit && flag == 1
sol = DomegaL\(DL*(DomegaL\(DL*tmp)));
sol = sol+M_inv_b; res = norm(A*sol-b);
fprintf(residuo(%4.0f) = %17.10e \n, it, res);
if res<=tol || norm(sol-tmp)/norm(sol)<=tol
flag = 0;
else
tmp = sol;
it = it + 1;
end
end
end

>> A=[4 3 0;3 4 -1;0 -1 4];


>> b=[24;30;-24];
>> [sol, it, residual] = SSOR_1( A, b, zeros(3,1), 1)
residuo(
1) = 4.0173269739e+00
residuo(
2) = 2.0847794045e+00
residuo( 33) =
residuo( 34) =
sol =
3.0000
4.0000
-5.0000
it =
34
residual =
1.8013e-07

2.9935544173e-07
1.8013146669e-07

Este mtodo, o su matriz de iteracin, se usa principalmente en la actualidad


como precondicionador de otros iterativos.

Mtodos estacionarios para matrices dispersas




Por qu emplear mtodos iterativos, en vez de los directos, si aquellos son


aproximados y pueden requerir muchos pasos?

Existen dos razones primordiales:

33/103

En un paso de los procedimientos iterativos se efectan slo una pequea


fraccin de las operaciones
que hacen los directos. La factorizacin LU

necesita O n3=3 operaciones mientras que el mtodo de Jacobi, por
iteracin, slo n. Si se parte de un punto prximo a la solucin se puede
llegar a sta en un tiempo corto.

Si la matriz de coeficientes del problema tiene muy pocos coeficientes


distintos de cero, la factorizacin LU puede causar que muchos se hagan
distintos de cero en los factores. El mtodo de Jacobi, por el contrario, si es
adecuado aplicarlo, puede sacar mucha ventaja de esa estructura de
dispersidad en problemas de gran tamao, pues no factoriza la matriz.

34/103

Ejemplo Vamos a resolver un sistema lineal de hasta 1:000:000 de ecuaciones


en el que la matriz tiene esta estructura:
2

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.

Utilizaremos los siguientes cdigos:


function [a,b] = sparsesetup_J(n)
% Sparse matrix setup
% Input: n = tamao de la matriz
% Output: sparse matrix a, r.h.s. b e = ones(n,1); n2 = n/2;
a = spdiags([-e 3*e -e],-1:1,n,n);
% Coeficientes de A en diagonales
c = spdiags([e/2],0,n,n); c=fliplr(c);
% Coeficientes en contradiagonal
a = a+c;
a(n2+1,n2)=-1; a(n2,n2+1)=-1;
% Centro de contradiagonal
b = zeros(n,1);
% Vector b
b(1)=2.5; b(n)=2.5; b(2:n-1)=1.5; b(n2:n2+1)=1;
end

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

Mtodos de direccin de descenso




Obtencin de direcciones de descenso

Mtodo de los gradientes conjugados

Mtodos de proyeccin en subespacios de Krylov

Comparacin numrica de los mtodos

38/103

Mtodos no estacionarios. De direccin


de descenso
Teorema Sea A una matriz simtrica definida positiva. La solucin de la ecuacin
Ax D b es el vector para el cual la forma cuadrtica
1
Q.x/ D x T Ax
2

bT x

alcanza su mnimo.

En consonancia, se puede resolver Ax D b mediante cualquier mtodo que


obtenga el mnimo3 de funciones como Q.x/.

El valor de la funcin cuadrtica en ese mnimo, solucin de Ax D b, es Q.x  / D

1 T
b A 1 b.
2

39/103

La condicin necesaria de alcanzar un mnimo


2
@f .x/
6 @x
6
1
6
6 @f .x/
6
rf .x/ D 6 @x
6 :2
6 ::
6
4 @f .x/
@xn

en x es
3
7
7
7
7
7
7 D 0:
7
7
7
5

En nuestro problema, dado que A es simtrica,


1
1
Q0.x/ D A T x C Ax
2
2

bD

que es lo que queremos encontrar.





1 T
A CA x
2

Como A es definida positiva ese mnimo es nico.

b D Ax

b D 0;

40/103

El por qu de la unicidad. Como A es simtrica, consideremos un punto x que


satisfaga Ax D b, y que por lo tanto minimice la funcin Q.x/, y un pequeo
desplazamiento, d , desde ese punto en cualquier direccin. Se tiene que
Q.x C d/ D

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:

Como A es definida positiva, 12 d T Ad es positivo para todo d 0 y por


consiguiente cualquier punto mnimamente alejado del mnimo dar un valor de
la funcin superior: el punto x es el nico mnimo.

41/103

Consideremos la forma cuadrtica


 
1
3
2
x1
Q.x/ D x1 x2T
2 6 x2
2

 
x
8T 1
x2

42/103

Las lneas, curvas o contornos de nivel de la funcin, en torno a su mnimo,


2
2T , son los de la figura.
4
3
2
1
0
-1
-2
-3
-4
-5
-6
-4

-3

-2

-1

El vector gradiente, rQ.x/, de la funcin en diversos puntos en torno al


mnimo se ve as.

43/103

4
3
2
1
0
-1
-2
-3
-4
-5
-6
-4

-3

-2

-1

El gradiente siempre apunta en la direccin de mxima pendiente, hacia arriba,


y es ortogonal a las lneas de nivel.

Como la matriz de esta funcin cuadrtica es definida positiva, tiene un mnimo


nico.

e pueden dar otros casos:




Se pueden dar otros casos:

The Quadratic Form

(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

Algoritmo general de direccin de descenso paraMtodos


minimizar
f W Rn !deR:descenso
de direccin
4 Siguen

un procedimiento iterativo que hace descender la funcin

; 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

el clculo de una direccin de descenso en la que moverse con es

while (not f ound ) and (k < kmax )objetivo.


Calcular direccin de descenso p .k/ xk
if (p no existe) or (t ol )

pk
pk

f ound WD true
else

xkx+1
4 Se

diferencian unos
 de otros en la forma de calcular p.

WD amplitud del paso a dar x .k/ ; p.k/


x .kC1/ WD x .k/ C p .k/

end

10

end

Los mtodos de descenso se diferencian unos de otros en la forma de


calcular la direccin p.k/.

46/103

La amplitud de paso ptima en cada punto se determina minimizando Q.x/


a lo largo de la direccin p.k/:

.k/
.k/
mKn Q x C p
:

q()

Q(x (k ) )

x (k )

x (k ) + k p (k )

47/103

Este problema de optimizacin en una nica variable, , puede resolverse


explcitamente para funciones cuadrticas: Suprimiendo superndices, se tiene
que
q./ D Q.x C p/ D
D
D

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/:

La forma q./ se minimiza cuando q 0./ D 0. Como la matriz A es definida


positiva, p T Ap > 0, el que q 0./ D 0 se da cuando
D

p .k/

T

b

.k/ T

Ax .k/
Ap .k/

Obtencin de direcciones de descenso

48/103

Relajacin de una variable




Se usan como direcciones de descenso los vectores unitarios e 1; : : : ; e n; e 1; : : :


Es decir,
p.0/ D e 1;

p.1/ D e 2;

:::

p.n

1/

D e n;

p.n/ D e 1; : : :

En la expresin anterior de con estas direcciones e Ti Ae i D ai i y


P
e Ti .Ax b/ D jnD1 aij xj bi . En una iteracin k, el siguiente punto x .kC1/
estar dado por
0
1
n
1 @X
.k/
.kC1/
.k/
.k/
x
D x C k e i D x
aij xj
bi A e i ;
ai i j D1
expresin idntica a la de mtodo de Gauss-Seidel.

Relajacin SOR


49/103

La convergencia de un mtodo de descenso x .kC1/ D x .k/Ck p.k/ con la


direccin y paso de Gauss-Seidel puede mejorarse si se le aade un parmetro de
relajacin !. La amplitud de paso ser
k D ! O k ;
donde O k es el que hace mnimo Q.x/ D 12 x T Ax

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


Sea la funcin f W Rn ! R continua y derivable en algn conjunto abierto de


Rn. Su aproximacin en x por desarrollo en serie de Taylor es

f .x C p/ D f .x/ C rf .x/T p C O kpk2 :
donde rf .x/ D g es el gradiente de la funcin en x.

Si de lo que se trata, alrededor de x, es determinar una direccin p a lo largo


de la cual la funcin decrece, se deber cumplir que
rf .x/T p < 0
Esto es as cuando el gradiente y la direccin forman un ngulo  tal que

<   .
2

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 .

La direccin de mximo descenso ser entonces la opuesta del gradiente,


pD

La que se denomina direccin de mxima pendiente.




El mtodo de la mxima pendiente lo introdujo el ingeniero y matemtico


francs A.L.Cauchy en 1847.

Augustin Louis Cauchy, Francia 1789-1857.

51/103

En la funcin cuadrtica de referencia Q x , la direccin de mxima


pendiente en x .k/ es


p.k/ D rQ x .k/ D
Ax .k/ b D r .k/:
.k/

52/103

donde r .k/ es el vector de residuos.

La frmula de recurrencia que se obtiene4 es entonces


x .kC1/ D x .k/ C k r .k/

El valor de k que minimiza Q.x/ a lo largo de la mxima pendiente es


(sustituyendo en la frmula general que vimos la direccin por r .k/)
T
.r .k// r .k/
k D .k/ T
.r / Ar .k/

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

La convergencia del mtodo de la mxima pendiente para minimizar una funcin


x .kC1/ x 
A / 1 < 1.
cuadrtica es al menos lineal y se cumple que kkx .k/ x kk  2..A
/C1
2

Cuanto ms grande sea 2.A/ ms lenta5 la convergencia.

Convergencia lenta en funciones con un perfil dado es esto. El ir dando bandazos


en el valle hacia la solucin, en una funcin relativamente mal condicionada.

x(0)

Recurdese que si A es simtrica y definida positiva 2 .A/ D


propio dominante) y n el menor.
5

1
,
n

donde 1 es el valor propio mayor (valor

El algoritmo y un script de Matlab son los que siguen.


x .0/

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

Resolvamos uno de los ejemplos anteriores:


>> A=[10 -1 2 0;
-1 11 -1 3;
2 -1 10 -1;
0 3 -1 8];
>> b=[6;25;-11;15];
>> [x k]=Steep(A,b)
x =
1.0000
2.0000
-1.0000
1.0000
k =
19

Hace ms iteraciones pero la precisin es ms elevada: 

.

56/103

Retomemos la forma cuadrtica


 
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

Muchas iteraciones desde 0 0T .

 
x
8T 1
x2

57/103

Calculemos los valores y vectores propios de A:

>> [v lambda]=eig(A)
v =
-0.8944
0.4472
0.4472
0.8944
lambda =
2.0000
0
0
7.0000

es decir, los vectores propios son 2 1T y 1 2T .

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

The eigenvectors of are directed along the axes of the


paraboloid
defined
by the quadratic form
. Each eigen1
2
3






59/103

Para obtener el mnimo de Q.x/ partamos ahora de sendos puntos ms alejados


del ptimo en las direcciones de los vectores propios: concretamente de
2 0T y 6 6T .
>> [x k]=Steep(A,b,[-2;0])
x =
2
-2
k =
1

>> [x k]=Steep(A,b,[6;6])
x =
2
-2
k =
1

El procedimiento converge en una sola iteracin.


Si todos los valores propios fuesen iguales el procedimiento convergera en una
iteracin.


Se puede ensayar con otros puntos ms o menos alejados en esas direcciones y


el resultado ser el mismo.

Partamos ahora del punto 2


2T . Ocurre lo que parcialmente se ve en la
figura.
Partamos ahora del punto 2
2T . Ocurre lo que parcialmente se ve en la
x2
(a)
figura.
(b)

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

0.2 0.4 0.6

-2.5

2.5



"

.1/
1

x
6 11

-4
-6
66/102

61/103

El camino hacia el ptimo es el que indica la figura.

El camino hacia el ptimo es el que indica la figura.

61/97

x2

-4

-2

)

"

0
x .0/

-2

x

-4

-6

The method of Steepest Descent.


a

x1

62/103

Mtodo de los gradientes conjugados


Definicin Dos vectores p y q que cumplen
p T Aq D 0
son ortogonales con respecto al producto interior de A, hxjAyi D x T Ay, definido por la
matriz A, dicindose de ellos que son conjugados respecto a A, A conjugados e incluso A
ortogonales.

Proposicin Sea A una matriz simtrica definida positiva. Si p.0/, p.1/; : : : ; p.k/ son
vectores A conjugados, son linealmente independientes.

Si A D I, la conjugacin es equivalente a la ortogonalidad tradicional.

63/103

Teorema De las Direcciones Conjugadas Si A 2 Rnn es una matriz simtrica definida


positiva y p.0/ , p .1/ ; : : : ; p .n 1/ son A conjugados, para todo x .0/ 2 Rn , la sucesin de
vectores que define la expresin
x .kC1/ D x .k/ C k p .k/ ;
donde
k D

T
Ax .k/ p .k/
;
T
p .k/ Ap .k/

converge a la solucin exacta de Ax D b en no ms de n iteraciones.

Es decir, tericamente, los mtodos basados en el clculo de direcciones


conjugadas son mtodos directos aunque se usen como iterativos.

pkT A(xk x0 )  0,

and therefore
Si en la funcin cuadrtica
que estudiamos ahora,

64/103

pkT A(x x0 )  pkT A(x xk )  pkT (b Axk )  pkT rk .

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

Figure 5.1 Successive minimizations along the coordinate directions nd the


minimizer of a quadratic with a diagonal Hessian in n iterations.

El mnimo de la funcin se puede encontrar sin ms que minimizar primero a lo


largo de e 1 y luego de e 2.

65/103

Cmo obtener direcciones conjugadas




Lo mejor: los vectores propios de A. Su clculo es muy costoso.

Lo ms eficaz, mediante el mtodo de los gradientes conjugados, propuesto en


1952 por M.R. Hestenes y E. Stiefel, Suiza, 1909-1978.

M.R. Hestenes, Estados Unidos, 1906-1991 y E. Stiefel,


Suiza, 1909-1978.

En l se generan una sucesin de direcciones A conjugadas que sean prximas a


la de mxima6 pendiente.
6

El negativo del gradiente:

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/

sean A conjugadas: p.k/ Ap.k

Trabajando un poco en esa condicin, se cumple que


k D

p .k


1/ T

Ar .k/

p .k


1/ T

Ap .k

1/

1/

D 0.

67/103

El despliegue iterativo tiene esta forma.


Escoger un x .0/ . Hacer p .0/ D r .0/ D b

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/

r .kC1/ D r .k/ C k Ap .k/


T

T
k D
p .k/ Ar .kC1/ p .k/ Ap .k/

end

p .kC1/ D r .kC1/ C k p .k/

El primer paso es el de la mxima pendiente.

El procedimiento slo requiere productos de matrices por vectores y de vectores


entre s.

Teorema

Sea A una matriz n  n simtrica definida positiva y xO la solucin de la ecuacin Ax D b.


Los vectores p generados por el algoritmo de los gradientes conjugados son A conjugados, es decir,
T
p .k/ Ap .j / D 0;
0  j < k;
k D 1; : : : ; n 1,
.k/
.k/
O De esta manera, x .m/ D xO para algn m  n. Adems los
siendo p 0 a menos que sea x D x.
T
vectores residuo r .j / D b Ax .j / satisfacen r .k/ r .j / D 0; 0  j < k; k D 1; : : : ; n 1; es decir, son
ortogonales.
.k/

Teorema

Sean p .0/ , p .1/ ; : : : ; p .n 1/ los vectores de direccin que genera el


dientes conjugados y r .0/ , r .1/ ; : : : ; r .n 1/ los vectores residuo. Se cumple que
Ap .i / 2 p .0/ p .1/ : : : p .iC1/
i D 0; : : : ; n
 ;
.i /
.0/ .1/
.i /
r
2
p
p
:
:
:
p
;
i D 0; : : : ; n
 .0/ .1/

 .0/

i .0/
.i /
.0/
p p ::: p
D p Ap : : : A p 
D r .0/ Ar .0/ : : : A i r .0/ ;
i D 0; : : : ; n
.0/
Es decir, generan el subespacio de Krylov Ki C1 .A; p /.

algoritmo de los gra2I


1I
1:

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 dos primeros resultados son fundamentales para entender geomtricamente


el mtodo de los gradientes conjugados.

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

Los vectores p y de residuos r forman bases ortogonales en los sucesivos


subespacios de Krylov que se generan en el proceso iterativo.

70/103

Ejemplo Se trata de resolver Ax D b, donde




 
2 0
4
AD
y bD
:
0 3
1

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.

2. Se traza la tangente en x .0/ a esta elipse y su normal en este punto p.0/:


 
1
p .0/ D
:
1
Lo que es lo mismo, la primera direccin es la de mxima pendiente:
b Ax D 2; 2T .

73/103

-1

-2

-3

-4
-2

-1

3. Se calcula el 1 ptimo: el punto medio, x .1/, del segmento de recta que va


desde x .0/ hasta el punto donde p .0/ corta a esa elipse: x .1/ D 1;8 0;2T .
4

-1

-2

-3

-4
-2

-1

4. Desde x .1/ se determina la nueva elipse:


 2 3  2
.1/
.1/
.1/
x2
f .x / D x1
C
2

74/103

.1/

4x1

.1/

x2 D

4;1:

5. En x .1/ se calcula la direccin p.1/ que es A conjugada con respecto a p .0/.


Esta direccin pasar por el centro de la nueva elipse uniendo el punto x .1/
con el diametralmente opuesto por el que se podra trazar una tangente a
esta elipse que fuese paralela a p .0/.
La nueva direccin es
 
3
p .1/ D
:
2
4

-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

Tambin, de la frmula de recurrencia:


 
 
0;42 C 0;42
k
0;4
2
.1/
.1/
.0/
:
D
p D r C p D
C
y
0;4
2
k 1
22 C 22
 
  
  
0;4
2
0;48
3
De aqu que p.1/ D
C 0;04
D

.
0;4
2
0;32
2
4

-1

-2

-3

-4
-2

-1

7. Se determina el punto medio, x .2/, de ese dimetro. La solucin del


problema es este nuevo punto:


2
x .2/ D
:
1=3
x2

.... ...... ...... ..... ......


. ...... ..
......
.. ....
.
.
.
.....
...
....
(0) . ..
x ...
....
...
...
.
.
..
...
..
...
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...
...
p(0)
... x(2) .....
...
..
.
.
...
.
...
..... p(1) .......
.
.
.
(1) ...............
.
...
x
.
..
...
.
1
2
3
.
.
....
...
.....
.
....
.....
.....
....
.
.
.
.
.
...... ...
... ..... ...... ...... ...... .....

x1

76/103

Implementacin prctica de los gradientes conjugados




77/103

Los errores inherentes a la implementacin en ordenador del mtodo hacen que


se pierda la ortogonalidad de los vectores residuo:
La propiedad de que el mtodo converge en un nmero fijo de pasos no se
cumple por ello en la prctica estrictamente, por lo que el mtodo de los
gradientes conjugados se considera un mtodo iterativo.

La implementacin ms habitual para ahorrar operaciones es esta.


x .0/
0I r .0/
b Ax .0/ I 0
p
while k >   0 do
k
kC1
w
Ap.k 1/
T

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/ r .0/ I k D 0I p.0/

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

Para resolver uno de los ejemplos una vez ms:


>> A=[10 -1 2 0;-1 11 -1 3;2 -1 10 -1;0 3 -1 8];
>> b=[6;25;-11;15];
>> [x k]=CGr(A,b,zeros(4,1))
x =
1.0000
2.0000
-1.0000
1.0000
k =
4

El nmero de iteraciones respecto al mtodo de la mxima pendiente es de 4


frente a las 19 de aqul.

79/103

Los puntos del proceso iterativo que se obtienen para resolver


4x1
x2
x4
x1 C 4x2
x3
x5
x2 C 4x3
x6
x1
C 4x4
x5
x2
x4 C 4x5
x6
x3
x5 C 4x6

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

Si tambin se resuelve con ese cdigo el problema que ha permitido ilustrar


geomtricamente el mtodo, el resultado que se obtiene es el que sigue.

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

Mtodo de los gradientes conjugados con precondicionado




Q con mejor nmero de condicin.


El precondicionado sustituye A por otra A
Para ello se introduce un cambio de variable xQ D C x, donde C es regular y
fcil de invertir.
La forma cuadrtica Q.x/ quedara
1
Q D xQ T C
Q.x/
2

AC

xQ

T
Q
b x:

Si se resuelve mediante gradientes conjugados el correspondiente sistema,



C T AC 1 xQ D C T b;

la solucin original se obtendra sin ms que hacer x D C




Q
x.

Si A es simtrica, la mejor C posible es A 1=2, pues en ese caso



Q D A 1=2 T AA 1=2 D A 1=2A 1=2A 1=2A 1=2 D I  I D I:
A

81/103

82/103

En la implementacin prctica, la diferencia con y sin precondicionado es la


resolucin en cada iteracin el sistema M z D r, donde M D C T C .
x .0/

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

Curiosidad: NVIDIA developer zone

function [k tol x]=PCGr(A,b,x0,M)


% Gradientes Conjugados con precondicionado M
k=0; x=x0; r=b-A*x; tol=eps*norm(b)
d=M\r; dn=r*d;
while dn>tol
w=A*d;
alpha=dn/(d*w);
x=x+alpha*d;
r=r-alpha*w;
if mod(k,50)==0, r=b-A*x; end
s=M\r;
do=dn; dn=r*s;
beta=dn/do;
d=s+beta*d;
k=k+1;
end
end

83/103

Hagamos unas pequeas comprobaciones.


>> A=rand(400);
>> A=A+A;
>> B=A*A;
>> b=B*ones(400,1);
>> [k tol]=PCGr(B,b,zeros(400,1),eye(400))
k =
740
tol =
7.1453e-010
>> [k tol]=PCGr(B,b,zeros(400,1),A)
k =
1
tol =
7.1453e-010

% Matriz simtrica
% Vector solucin de unos
% Se resuelve sin precondicionado

% Con precondicionado perfecto

84/103

Mtodos de subespacios de Krylov

Alekxey Krylov,
Rusia 1863-1945.

Si para resolver Ax D b, se hace A D I .I A/ el sistema queda


.I .I A// x D b. Una ley de recurrencia sera x k D .I A/ x k 1 C b.

Segn ella si el vector residuos es r k 1 D b Ax k 1, x k D x k


De forma recurrente x k D x 0 C r 0 C r 1 C    C r k 1:

De b Ax k D b Ax k 1 Ar k 1 te obtiene que r k D .I A/r k 1 y as


x k D x 0 C r 0 C .I A/r 0 C    C .I A/k 1r 0 D x0 C pk 1.A/ r0


k 1
D x 0 C r 0 Ar 0 : : : A r 0 c D x 0 C x ad :

C r k 1.

p olin

. en
A

En resumen, todo punto del proceso iterativo x k se puede expresar como la


solucin de partida x 0 ms una combinacin lineal de los vectores columna que


definen el subespacio de Krylov Kk .A; r 0/ D Gen r 0; Ar 0; A 2r 0; : : : ; A k 1r 0 .

Los mtodos de proyeccin en subespacios de Krylov (no estacionarios) mejoran


una estimacin inicial de la solucin proyectndola, en cada iteracin k, en el
subespacio de Krylov generado por el vector residual inicial y sus k 1
sucesivos productos por la matriz A.

En ese Kk .A; r 0/, segn el enfoque, calculan una mejor, x k , que cumpla:

85/103

1. El valor x k 2 x 0 C Kk .A; r 0/ tal que r k D b Ax k satisfaga r k ?AKk .


Se consigue haciendo mKn kAx k bk2 en Kk .A; r 0/.
Si A es simtrica los algoritmos se denominan MINRES y SYMMLQ; si
no GMRES.
2. El valor x k 2 x 0 C Kk .A; r 0/ tal que r k D b Ax k satisfaga7 r k ?Kk .
Como r k D b Ax k D A .x k x/ D Ae k , eso equivale a Ae k ?Kk .
Si A es simtrica los algoritmos se denominan FOM; si es SDP CG.
3. Otros: Biortogonalizacin, Gradiente Biconjugado, : : : con subespacio de
proyeccin Kk .A T ; r 0/, etc.
7

Condicin de Galerkin.

Como al multiplicar una matriz por un vector ste tiende a orientarse en la


direccin del vector propio dominante de esa matriz, en un subespacio de Krylov
los vectores de base tienden a una direccin comn cuando k es grande.

Obtener una buena base de ese subespacio necesitar del mejor mtodo para
ortogonalizar los vectores correspondientes.

86/103

Mtodos GMRES para matrices no simtricas


 Algoritmo del residuo mnimo generalizado GMRES 

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

Su esquema general8 es:

Se basa en obtener en cada iteracin una base ortonormalizada de Gen fr 0;


Ar 0; A 2r 0; : : : ; A k r 0 mediante una especializacin de Gram-Schmidt: el
algoritmo de Arnoldi por Walter Edwin Arnoldi, EE.UU., 1917-1995.
8

De Generalized Minimal Residual Method.

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

donde Qk abarca el subespacio de Krylov k-dimensional. El nuevo vector que se


introduce en la base en esa iteracin sera
q kC1 D Aq k .h1k q 1 C    C hkk / =kq kC1k:


El vector x k D x 0 C x ad , que minimice kAx k bk2 en Kk .A; r 0/, con


x ad D Qk c, saldr de resolver el problema de mnimos cuadrados
mKn kAx k

bk2 D mKn kA.x 0 C x ad /


D mKn kH k c

bk2 D mKn kAQk c

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

Como q 1 D r 0= kr 0k2 y todas las columnas de QkC1 son ortogonales respecto


a r 0, QTkC1r 0 D kr 0k2 0 0    0T . El problema de mnimos cuadrados es
2
3
3
2 3 2
h11 h12    h1k
kr 0 k2
c1
6 h21 h22    h2k 7
6
76 c 7 6 0 7
h32    h3k 7 4 :2 5 D 4 : 5
6
::
::
:: 5
:::
4
:
hkC1;k

ck

que habr que resolver con los algoritmos conocidos.

Este es un cdigo sencillo que lo implementa.


function [x,normrn] = gmres_1(A,b,maxiter)
% solves Ax = b using gmres
% input: A - m by m matrix
%
b - m by 1 vector
% output: x - approximate solution
%
normrn - norm(b-A*x) at each step of algorithm
%
Plot also normrn/ norm(b) versus n (step number)
Q = []; H = 0;
normb = norm(b); normrn=normb;
Q(:,1) = b/normb;
for n = 1:maxiter
% Arnoldi step calculations
v = A*Q(:,n);
for j = 1:n
H(j,n) = Q(:,j)* v;
v = v - H(j,n)*Q(:,j);
end
Hn = H(1:n,1:n);
H(n+1,n) = norm(v);
if H(n+1,n) == 0, break, end
% breakdown so stop
Q(:,n+1) = v/H(n+1,n);
e1 = [1;zeros(n,1)];
y = H\(normb*e1); % This can be done better via Givens rotations.
% For simplicity we use Matlabs \
normrn = [normrn,norm(H*y-normb*e1)];
% residual norm
end
x = Q(:,1:n)*y;
semilogy(0:n,normrn/normb,--o),shg
xlabel(step number of gmres algorithm)
ylabel(norm(b-A*xn)/norm(b))
title(convergence of residual in gmres)
grid
end
function A=eigmat(n,n1,m)
A=n*eye(m)+n1*randn(m)/sqrt(m);
end

90/103

91/103

Lo podemos probar con


function gmres_pru_1(n)
% Prueba de gmres
m=500;
maxiter = 15;
if n==1
% example 35.1 from Trefethen + Bau
A=eigmat(2,.5,m);
else
% example 35.2 from Trefethen + Bau
th = (0:m-1)*pi/(m-1);
d=(-2+2*sin(th))+sqrt(-1)*cos(th);
A=eigmat(2,.5,m)+diag(d);
end
lam=eig(A);
figure(1)
plot(lam,x);
axis square
title(eigenvalues of A)
ylabel(imag part)
xlabel(real part)
grid
xtrue=randn(m,1);
b = A*xtrue;
figure(2)
[x,normrn]=gmres_1(A,b,maxiter)
max(abs(x-xtrue))
end

92/103

Veamos los resultados.


>> tic,gmres_pru_1(1),toc
x =
-0.9839
-0.8804
. . .
0.1130
0.2380
normrn =
Columns 1 through 9
43.3631
9.4160
2.3040
0.5540
Columns 10 through 16
0.0001
0.0000
0.0000
0.0000
ans =
2.1480e-09
Elapsed time is 0.202705 seconds.
>> tic,gmres_pru_1(2),toc
x =
1.3233 + 0.0862i
. . . . . .
0.8958 - 0.0122i
normrn =
Columns 1 through 9
35.6532
18.7445
14.1824
11.5050
Columns 10 through 16
2.7824
2.1495
1.6563
1.2601
ans =
0.1104
Elapsed time is 0.479878 seconds.

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

Los grficos que se obtienen.

93/103

94/103

GMRES con precondicionado




La idea es la misma que la aplicada al mtodo de los gradientes conjugados. Las


variaciones a introducir son pequeas como se indica en el esquema de
funcionamiento que sigue.
 Algoritmo del residuo mnimo generalizado GMRES con precondicionado 

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

Si al ejemplo anterior que tena peor comportamiento de convergencia le


aplicamos precondicionado, con10 M D diag.A/, resultara lo que sigue.
>> tic,gmres_pru_1_precon(2),toc
x =
-2.3449 - 0.0000i
. . . . . .
1.1634 - 0.0000i
0.0737 + 0.0000i
normrn =
Columns 1 through 9
22.9513
6.8163
2.4022
0.8430
Columns 10 through 16
0.0016
0.0006
0.0002
0.0001
ans =
6.3526e-07
Elapsed time is 0.547985 seconds.

10

El precondicionador de Jacobi.

0.2955

0.1046

0.0372

0.0000

0.0000

0.0000

0.0132

0.0045

95/103

Un cdigo mucho ms robusto y completo que implementa el mtodo GMRES,


es ste.

96/103

for iter = 1:max_it

function [x, error, iter, flag] = gmres_Netlib( A, x, b, M, restrt, max_it, tol )


%
% gmres.m solves the linear system Ax=b
% using the Generalized Minimal residual ( GMRESm ) method with restarts .
%
% input
A
REAL nonsymmetric positive definite matrix
%
x
REAL initial guess vector
%
b
REAL right hand side vector
%
M
REAL preconditioner matrix
%
restrt
INTEGER number of iterations between restarts
%
max_it
INTEGER maximum number of iterations
%
tol
REAL error tolerance
%
% output x
REAL solution vector
%
error
REAL error norm
%
iter
INTEGER number of iterations performed
%
flag
INTEGER: 0 = solution found to tolerance
%
1 = no convergence given max_it
iter = 0; flag = 0;
bnrm2 = norm( b );
if ( bnrm2 == 0.0 ), bnrm2 = 1.0; end

% 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

Mtodos de proyeccin para matrices simtricas




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/:

Boris Grigoryevich Galerkin,


Rusia 1871-1945.

Utilizan como base de los clculos El algoritmo de Lanczos.


Cornelius Lanczos, Hungra,
1893-1974.

97/103

Si la matriz es definida positiva los algoritmos resultantes son casi idnticos al


mtodo de los gradientes conjugados. De hecho, el algoritmo de los gradientes
conjugados es el de Lanczos aplicado al vector de partida r 0=kr 0k.

El algoritmo de Lanczos, despus de k pasos, genera una matriz tridiagonal:

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

Este es un cdigo (sin grandes pretensiones ni eficiencia) que lo implementa.

99/103

function [x,V,T] = Lanczos_1_1(A,k,b)


% Soluton of Ax = b via a CG Lanczos type algorithm
%
Input: A -- an n by n symmetric matrix
%
k -- a positive integer (k << n assumed)
%
Output: x -- solution of Ax=b
%
V -- an n by k orthogonal matrix (optional)
%
T -- a k by k symmetric tridiagonal matrix (optional)
%
n = length(b); T = zeros(k); V = zeros(n,k); bn=norm(b);
q = b/bn; u = A*q; alpha = q*u;
u = u - q*alpha;
V(:,1) = q; T(1,1) = alpha;
for j = 2:k,
beta = norm(u);
q0 = q; q = u/beta;
u = A*q - q0*beta;
alpha = q*u;
u = u - q*alpha;
T(j,j-1) = beta; T(j-1,j) = beta; T(j,j) = alpha;
V(:,j)
= q;
end
x=V*(T\[bn zeros(1,k-1)]);
end

Veamos alguna prueba con l

>> 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

Un algoritmo comercial ms completo del SOL (Stanford) es este.

100/103

function [ x, istop, itn, Anorm, Acond, rnorm, xnorm, D ] = ...


cgLanczos_1( A, b, show, itnlim, rtol )
% cgLanczos solves the system of linear equations Ax = b,
%--------------------------------------------------------------------% where A is an n x n positive-definite symmetric matrix
% See if any of the stopping criteria are satisfied.
% Main iteration loop.
% and b is a given n-vector, where n = length(b).
if itn
>= itnlim , istop = 4; end
% -------------------------------------------------------------------%
if Acond >= 0.1/eps, istop = 3; end
if ~done
% k = itn = 1 first time through
% On entry:
if test1 <= eps
, istop = 2; end
while itn < itnlim
% show
(true/false) controls the iteration log.
if test1 <= rtol
, istop = 1; end
itn = itn + 1;
% itnlim
(integer) limits the number of iterations.
%----------------------------------------------------------------% rtol
(e.g. 1e-8) is the requested accuracy. Iterations
% See if it is time to print something.
% Obtain quantities for the next Lanczos vector vk+1, k = 1, 2,...
%
terminate if rnorm < (Anorm*xnorm)*rtol.
if show
% The general iteration is similar to the case k = 2.
%
prnt
= false;
%
p =A*v2; alpha2=v2*p; p=p - alpha2*v2 - beta2*v1; beta3=norm(p)
% On exit:
if n
<= 40
, prnt = true; end
%
v3=(1/beta3)*p.
% x
(n-vector) is the solution estimate
if itn
<= 10
, prnt = true; end
%----------------------------------------------------------------% istop
(0--6) gives reason for termination (see "msg" below)
if itn
>= itnlim-10, prnt = true; end
p = A*v;
% itn
(integer) is the number of CG iterations
if mod(itn,10)==0
, prnt = true; end
if itn>1, p = p - beta*v1; end
% Anorm
estimates the Frobenius norm of A
if Acond >= 1e-2/eps , prnt = true; end
alpha = v*p;
% alpha = vAv in theory
% Acond
estimates the condition of A (in F-norm)
if test1 <= 10*eps
, prnt = true; end
if alpha<=0, istop = 6; break; end % A is indefinite or singular
% rnorm
estimates the residual norm: norm(r) = norm(b-Ax)
if test1 <= 10*rtol , prnt = true; end
p
= p - alpha*v;
% xnorm
is the exact norm(x)
if istop ~= 0
, prnt = true; end
oldb = beta;
% oldb = betak
% D
(n-vector) estimates diag(inv(A)).
if prnt
beta = norm(p);
% beta = betak+1
% Code author: Michael Saunders, SOL, Stanford University.
fprintf(\n %6g %12.5e %10.3e %8.1e %8.1e %8.1e, ...
beta = max(beta,eps);
% Prevent divide by zero
% Reference
C. C. Paige and M. A. Saunders (1975),
itn,x(1),rnorm,xnorm,Anorm,Acond);
v1
= v;
%
Solution of sparse indefinite systems of linear equations,
end
v
= (1/beta)*p;
%
SIAM J. Numer. Anal. 12(4), pp. 617-629.
if mod(itn,10)==0, fprintf(\n); end
%--------------------------------------------------------------------end
% show
if itn==1
% Initialize a few things.
n = length(b);
delta = sqrt(alpha); gamma = beta /delta;
if show
if istop > 0, break; end
zeta
= beta1/delta; w
= v1
/delta;
fprintf(\n)
end
% main loop
x
= zeta*w;
D
= w.^2; Tnorm2 = alpha^2 + beta^2;
fprintf(\n Enter cgLanczos.
Solution of symmetric Ax = b)
end
% if ~done early
else
% Normal case (itn>1)
fprintf(\n n = %6g
itnlim = %6g
rtol = %11.2e, n,itnlim,rtol)
delta = alpha - gamma^2;
end
%------------------------------------------------------------------if delta<=0, istop = 6; break; end % Tk is indefinite or singular
% Display final status.
delta = sqrt(delta);
istop = 0;
itn
= 0;
%------------------------------------------------------------------zeta
=
- gamma*zeta/delta;
Anorm = 0;
Acond = 0;
x = zeros(n,1);
msg = [beta1 = 0. The exact solution is x = 0

% 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

Comparacin numrica de algunos mtodos




Utilizaremos un problema "sinttico", con una matriz simtrica 500  500 de


diversos nmeros de condicin desde 1 a 10.000. La solucin siempre es x D 1
y la precisin con la que se pretende obtenerla es kb Axk1 < 10 6.

Utilizando el Programa SdyCg:


>> SdyCg(1.6)
cond(A) Mp_i
1
1
10
71
100
685
1000 6155
10000 66389
>>

Gc_i GS_i SOR_i Jac_i


1
2
29
2
27
30
34
69
84
205
48
761
142 1644
566 70489
162 7178 1564 99999

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);

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Sistemas de ecuaciones no lineales

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_sisno_2016.pdf

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.

Los algoritmos que estudiamos son iterativos. En en cada etapa se resolver un


sistema de ecuaciones lineales resultante de una simplificacin del problema
original en el entorno de cada punto de un proceso.

Estudios de cargas en sistemas de generacin y


transporte de energa elctrica

4/26

A partir de un patrn de demanda y generacin de potencia en cada uno de los


nudos que configuran un sistema, como el esquematizado en la figura:
Los estudios de circulacin de cargas determinan las tensiones en los
nudos de la red, en mdulo y argumento, los flujos de potencia activa
y reactiva por todos los elementos del sistema, la intensidad por las
lneas, las prdidas en stas, etc.

5/26

Si se supone que los parmetros fsicos de un sistema elctrico permanecen


constantes, existen cuatro variables asociadas a cada nudo i de ese sistema:


la tensin, en mdulo, Vi , y argumento, i ;

la potencia activa inyectada, Pi , y

la potencia reactiva inyectada, Qi .

Las potencias inyectadas en el nudo i dependen de su tensin y de las de los a


l unidos. Las expresiones que las relacionan, si no hay transformadores, son
Pi D jVi j2

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

es el mdulo de la tensin en el nudo i ;


el argumento de la tensin en el nudo i ;
la conductancia serie (constante) de la lnea que une el nudo
i con el nudo j ;
la conductancia a tierra (constante) de la lnea que une el
nudo i con el j ;
la susceptancia serie (constante) de la lnea que une el nudo
i con el nudo j ; y
la susceptancia a tierra (constante) de la lnea que une el nudo
i con el j .

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.

Los tipos de nudos de un sistema y qu variables e incgnitas definiran cada


uno de ellos se recogen en la siguiente tabla.
Tipo de nudo Variables dadas Incgnitas
Carga o PQ
P, Q
V, 
Generacin o PV
P, V
Q, 
Holgura
V, 
P, Q


Si, por ejemplo, de un nudo se conocen el mdulo de la tensin y la


potencia activa inyectada, para caracterizarlo totalmente habr que calcular
la potencia reactiva inyectada en l y el argumento de su tensin.

8/26

Al suponer V1 D 1 y 1 D 0, para caracterizar un sistema elctrico de n nudos


se necesitarn conocer 2n 2 variables.

Para caracterizar totalmente un sistema general habr que resolver un sistema


de 2n 2 ecuaciones no lineales de la forma
D b1
D b2
:::
2 / D b2n 2 :

f1.x1; x2; : : : ; x2n 2/


f2.x1; x2; : : : ; x2n 2/
f2n 2.x1; x2; : : : ; x2n

(1)

9/26

Consideremos el pequeo sistema elctrico de antes.


Si se elige como nudo de holgura el 1, el 2 es PV y el 3 PQ. La funcin vectorial
f .x/ que definira el sistema no lineal de ecuaciones con el que determinar el
estado de funcionamiento de ese sistema es la siguiente:
V2

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

La susceptancia del condensador conectado al nudo 3 es BC .




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

Variantes del mtodo de Newton

Mtodos cuasi Newton

Mtodo de Newton-Raphson

11/26

Estudiaremos funciones vectoriales1 f W Rn ! Rm continuas, con derivadas


parciales de primer orden continuas.

En un punto x k del proceso iterativo se aproxima la funcin mediante desarrollo


en serie de Taylor truncndolo a partir de los trminos de segundo orden,
Mk .x k / D f .x k / C J .x k /.x

x k /;

donde J .x k / es la matriz Jacobiana del sistema en x k :


2
3
@f1.x/
@f1.x/
6 @x1    @xn 7
6 :
::: 7
:::
::
7
:
J .x k / D 6
7
6
4 @fn.x/
@fn.x/ 5

@x1
@xn x Dx k
1

De momento con n D m.

12/26

Si se resuelve el sistema lineal f .x k / C J .x k /.x x k / D 0, su solucin dar


un avance a un nuevo punto del proceso iterativo.
La relacin de recurrencia del mtodo es, en general:
x kC1 D x k

J .x k / 1f .x k /

Algoritmo de Newton-Raphson para sistemas de ecuaciones no lineales:


I Definir un x 0 2 Rn ; hacer k D 1 y x k

x0.

II Resolver el sistema lineal J .x k /.x kC1

xk / D

f .x k /

III Si kf .x kC1 /k2 < T ol , parar: el problema est resuelto


Si no, hacer k D k C 1, x k D x kC1 e ir al paso II

En condiciones adecuadas, la convergencia del mtodo es cuadrtica.

13/26

Ejemplo Resolvamos mediante Newton-Raphson, partiendo del punto


1; 1; 1T , el sistema de ecuaciones no lineales
3x1
x12
e

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

A continuacin se lista un cdigo de Matlab para resolverlo.


La solucin de los sistemas de ecuaciones lineales de cada iteracin se realiza
mediante el operador n.

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

Si se utiliza para resolver el problema:


>> [x,dnor,iter]=Newt_Rap(@NRP_1,[1;1;1])
9.1968721308e-001 4.6082245570e-001 -5.0338763550e-001
5.0100048532e-001 1.8743347767e-001 -5.2086923301e-001
5.0054293549e-001 6.1153453678e-002 -5.2200096420e-001
5.0010443627e-001 1.1617105749e-002 -5.2329514612e-001
5.0000551037e-001 6.0561572295e-004 -5.2358293632e-001
5.0000001666e-001 1.8263674473e-006 -5.2359872783e-001
5.0000000000e-001 1.6710515026e-011 -5.2359877560e-001
x =
0.5000
0.0000
-0.5236
dnor =
2.7018e-010
iter =
7

2.4087256490e+001
5.8788006806e+000
1.2916807111e+000
1.9876169457e-001
9.8214794394e-003
2.9529468423e-005
2.7018031860e-010

Modificaciones del Mtodo de Newton


Newton-Raphson por diferencias finitas


El clculo de la la matriz Jacobiana del sistema se lleva a cabo mediante su


aproximacin por diferencias finitas.

Cada columna aj de la matriz Jacobiana se aproxima mediante la expresin


f .x C hj ej /
aj D
hj

f .x/

Cuando el problema est bien escalado, el parmetro h puede elegirse igual a


p
 para todos los xj .

Si el valor de los coeficiente del vector x difieren unos de otros en mucho, un


mismo h para todos puede dar malos resultados numricos.

16/26

Ejemplo Partiendo de x D 1; 1; 1T , Newton-Raphson por diferencias finitas


para resolver el ejemplo anterior:

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

El proceso de convergencia que resulta de la ejecucin de este cdigo, con


>> Newtrp_df_1(@NRP_1_dif)
es el que describe la tabla.
k
1
2
3
4
5
6
7

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

Podemos usar diferencias finitas centradas:


function [f J]=NRP_1_dif_1(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_1(x);
x(i)=x(i)-2*h; f2=NRP_1_dif_1(x);
J(1:3,i)=(f1-f2)/(2*h);
x(i)=x(i)+h;
end
end

>>

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

Resulta de considerar la misma matriz Jacobiana, J .x 0/, durante todo el


proceso, o un nmero fijo de iteraciones.

Jacobi


La matriz Jacobiana se aproxima mediante los coeficientes de su diagonal


principal. La relacin de recurrencia es:
x kC1 D x k

D k 1f .x k /,

donde diki D Jiki .




Si la matriz J es diagonal dominante, esta estrategia puede ser suficiente.

21/26

Gauss-Seidel


La matriz del sistema es la parte triangular inferior de la Jacobiana. La relacin


de recurrencia es:
x kC1 D x k Lk 1f .x k /
donde Lkij D Jijk , i  j .

Relajacin SOR


El esquema iterativo en forma matricial que se utiliza es


x kC1 D x k

.D k C Lk / 1f .x k /

El parmetro de relajacin es ! D 1=. C 1/.

22/26

Mtodos cuasi Newton

Charles George Broyden, Reino


Unido, 1933-2011.

Extienden la idea del mtodo de la secante a n dimensiones. La primera idea se


publico en 1965 por Broyden.

Su centran en escoger J .x k / de tal forma que se minimice el valor de la funcin


que se obtendra en un mismo punto mediante sus dos aproximaciones A k y
A k 1 y que adems se cumpla que A k .x k x k 1/ D f .x k / f .x k 1/. Si
sk 1 D x k x k 1 y y k 1 D f .x k / f .x k 1/, lo cumple la aproximacin de
J .x k /
Ak D Ak

.y k

A k 1 sk 1 /sTk
sTk 1 sk 1

23/26

El algoritmo con esta frmula es el que sigue.

I Definir x 0 2 Rn y A 0 2 Rnn ; hacer k D 1 y x k


II Determinar la solucin de A k sk D

x0.

f .x k /.

III Si kjf .x k /k2 < T ol, PARAR: el problema est resuelto.


Si > T ol, hacer x kC1
x k C sk
yk
f .x kC1 / f .x k /
.y k A k sk /sTk
A kC1
Ak C
sTk sk
k
kC1
y volver al paso II.

La A 0 se puede obtener por una aproximacin parcial o total: por diferencias


finitas, por ejemplo.

La convergencia del mtodo a que da lugar es superlineal.

Ejemplo Desde 1; 1; 1T , resolvamos este sistema con Newton y frmula de


Broyden.
3x1
x12
e

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

while dnor >tol


p=J\f;
x1=x-p;
f=fx(x1);
dnor=norm(f);
fprintf( %15.10e %15.10e %15.10e %15.10e\n,x,dnor);
J=broy(J,f,p);
x=x1;
end

En Matlab:
end

function J=broy(J,f,p)
prod=p*p;
J=J-(1/prod)*f*p;
end

% igual que J=J-(1/prod)*(y+J*p)*p ver Quarteroni p.289

Como matriz A 0 se utiliza la diagonal de la Jacobiana en el punto de partida.

24/26

25/26

El proceso de convergencia que desencadena la instruccin


>> Broyden_3(@NRP_1,[1 1 1])
es el de la tabla.
k

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

Implementacin prctica del mtodo de Broyden


Lema Frmula de Sherman-Morrison-Woodbury 1949-1950
(a) Si A es una matriz regular n  n y u y v dos vectores cualesquiera de Rn , A C uvT es
regular si y slo si w D 1 C vT A 1 u 0.
 1

1
(b) En este caso, adems, A C uvT
DA 1
A 1 uvT A 1 .
w

La idea es partir de una A 0 1 y adaptar A


1
A kC1

D Ak C

sk

con la nueva frmula de Broyden:


1

A k y k sTk A k 1


sTk A k 1y k

Universidad Politcnica de MadridEscuela Tcnica Superior de Ingenieros Industriales


Grado en Ingeniera en Tecnologas Industriales. Curso 2015-2016-3
Matemticas de EspecialidadIngeniera Elctrica

Mnimos cuadrados no lineales

Jos Luis de la Fuente OConnor


jldelafuente@etsii.upm.es
joseluis.delafuente@upm.es
Clase_mincua_nolineal_2016.pdf

1/40

2/40

ndice
 Definicin del problema


Estimacin del estado de sistemas elctricos

 Resolucin numrica del problema




Mtodo de Gauss-Newton

Mtodo de Levenberg-Marquardt

Mtodo de Newton

Definicin del problema

3/40

Los problemas no lineales de mnimos cuadrados reales surgen de modelos


matemticos que estudian el comportamiento den sistemas econmicos, sociales
y fsicos y se pretende acercarlos al de otros modelos ms estndar o fciles de
manejar, que resultan ser no lineales en muchos casos.

Se trata de en encontrar el mnimo de la suma de los cuadrados de m funciones


no lineales; es decir,
minimizar
f .x/ D
x 2Rn

1
2

m
X
i D1

ri2.x/ D 12 kr.x/k22

donde el vector de residuos1 es r.x/ W Rn ! Rm D r1.x/; : : : ; rm.x/T y cada


ri .x/, i D 1; : : : ; m, m  n, es una funcin no lineal de Rn en R.
1

Si m D n se tiene un sistemas de ecuaciones no lineales como los que hemos estudiado.

4/40

El problema surge de la imposibilidad de encontrar la solucin al sistema de


ecuaciones r.x/ D 0 y, sin embargo, se trata de adaptar una pseudosolucin
que mejor la aproximase de existir de acuerdo con la norma eucldea.

Ejemplo El ajuste de funciones no lineales a datos diversos. Se trata de


aproximar una funcin f .x; t / no lineal a unos datos, definidos por ejemplo por
un par yi (valor) y ti (tiempo), .yi ; ti /, i D 1; : : : ; m.

Si ri .x/ representa el error en la prediccin que hace el modelo de la


observacin i ,
ri .x/ D yi f .x; ti /; i D 1; : : : ; m;

y se quiere minimizar la suma de los cuadrados de las desviaciones entre los


valores reales y los predichos con el modelo, se llega a un problema del tipo
1
minimizar
ky
x 2Rn 2

f .x/k22

5/40

Estimacin del estado de sistemas elctricos




La estimacin del estado es el proceso por el cual se determina el valor del


vector de variables que rigen un sistema a partir de unos datos proporcionados
por medidas efectuadas al mismo.

Estas medidas no se pueden realizar con precisin absoluta, debido a la


imperfeccin operativa de los aparatos que las registran. Para aumentar la
certeza sobre sus resultado se disponen con un grado notable de redundancia.

El proceso matemtico de la estimacin se basa en maximizar o minimizar unos


criterios estadsticos determinados. El criterio ms usado es el de minimizar la
suma de los cuadrados de las desviaciones entre los valores reales medidas
y los estimados.

6/40

En la operacin, anlisis y planificacin de sistemas elctricos de energa, uno de


los asuntos de ms relevancia tcnica y econmica es el de la estimacin del
estado de funcionamiento del sistema de generacin y transporte.

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.

Si todas estas medidas fuesen perfectas en un estado de operacin concreto, las


relaciones matemticas que modelizan las leyes fsicas que rigen su
funcionamiento permitiran determinar la solucin nica de ese estado.

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

Con el fin de aumentar la bondad de la estimacin, as como poder identificar


mediciones errneas, el nmero de medidas que se efecta suele ser redundante:
bastante superior al estrictamente necesario para determinar el estado de
funcionamiento real. Ejemplo:

Pi D jVi j

Qi D

donde: Vi
i
Gsij
Gpij
Bsij
Bpij

9/40

Recordemos las expresiones


2

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 /

es el mdulo de la tensin en el nudo i;


el argumento de la tensin en el nudo i ;
la conductancia serie (constante) de la lnea que une el nudo i con el nudo j ;
la conductancia a tierra (constante) de la lnea que une el nudo i con el j ;
la susceptancia serie (constante) de la lnea que une el nudo i con el nudo j ; y
la susceptancia a tierra (constante) de la lnea que une el nudo i con el 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.

Este sistema, debido a la imprecisin de los aparatos, suele ser


matemticamente incompatible, aunque esta incompatibilidad suele ser muy
pequea, pues los errores en condiciones normales son pequeos.

Para el ejemplo de tres nudos de la figura anterior, tomando 1 D 0 como


referencia de ngulos, los parmetros que definen el sistema son los de esta
tabla.
b

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.

El estimador de mnimos cuadrados elige como criterio de aproximacin de la


solucin
m
.x1; x2; : : : ; xn/ D

.bi

fi .x1; x2; : : : ; xn//2

iD1

y como objetivo hacer mnima la funcin .x1; x2; : : : ; xn/:


minimizar
.x/
x 2Rn

El de mxima verosimilitud es idntico al de mnimos cuadrados cuando los


errores de las mediciones tienen una distribucin de probabilidad N.0;  /:
Ambos convergen en probabilidad a x, son asintticamente normales y
consistentes para m ! 1.

Si un determinado aparato suministra la medida b, siendo b real la que debera


dar si la precisin de la medicin fuese total, se tendr que
b D b real C ;
donde  es el error aleatorio propio del aparato de medida.

Si  no est sesgado, su funcin de densidad de probabilidad


1
FDP ./ D p e
 2
es la normal de media cero y desviacin tpica  .

2
2 2

13/40

14/40

Como la media de  se supone cero, la media de la muestra real de b es b real .


La funcin de densidad de probabilidad de b es
.b
1
FDP .b/ D p e
 2

b real
2 2

Si se tiene un vector de m medidas, b, en el que cada uno de sus elementos o


coeficiente tiene una funcin de densidad de probabilidad como la descrita, la
funcin de densidad de probabilidad conjunta de la muestra b1; : : : ; bm,
supuestas todas las medidas independientes unas de otras, es
FDP .b1; : : : ; bm/ D FDP .b1/  FDP .b2/    FDP .bm/ D

m
Y

FDP .bi /:

i D1

A esta funcin se la denomina verosimilitud de los parmetros (los bireal ) y se


real
designa por L.b1real ; : : : ; bm
/ D L.breal /.

15/40

Si se quiere hacer mxima la verosimilitud (probabilidad) de que se obtenga


como medida real la de la muestra b,
2
m
X
bi bireal

m 
Y
1
2i2
real
i
D1
e
L.b / D
;
p
i 2
i D1
habr que maximizar L o, lo que debe conseguir el mismo efecto, ln L.breal /.

Ahora bien, maximizar la funcin ln L.breal / es idntico a


2
3
m
m

i
i
2
p
bi bireal 7
6
ln.i 2/
maximizar 4
5:
2i2
i D1

iD1

16/40

Como

Pm

i D1 ln.i

2/ es constante, este problema equivale a


2
3
m

i
real 2
b
b
i
6
7
i
minimizar 4
5:
2i2
i D1

Los parmetros breal se relacionan a travs de las variables de estado por la


funcin no lineal antes mencionada
breal D f .x/;
donde x es el vector de variables de estado; es decir, las tensiones en los nudos
de la red y las tomas de los transformadores con regulacin.

El problema expresado en forma matricial resulta


b
minimizar
x 2Rn
donde la matriz

f .x/T
2

D4

12

17/40

f .x/ ;

3
:::

5
m2

es la matriz de covarianzas de las mediciones.




Como esta matriz es definida positiva, su inversa se puede expresar de la forma


1 D W T W , dando lugar a la formulacin
minimizar
kW .b
x 2Rn

f .x//k22

idntica en estructura al que plantebamos con el estimador de mnimos


cuadrados.

18/40

Resolucin numrica del problema




Hay que resolver r.x/ D 0, un sistema de m ecuaciones no lineales con n


incgnitas. En principio m  n.

Como se hizo cuando m D n, lo natural es generar un proceso iterativo de


aproximacin a la solucin en el que r.x/ se modelice punto a punto en el
proceso mediante desarrollo en serie de Taylor hasta primeras derivadas. Es
decir,
M.p/  r.x/ C J .x/p
y se resuelva este sistema lineal, que ser en general incompatible.

La solucin por mnimos cuadrados de cada uno de estos sistemas, como en el


caso de Newton-Raphson, ser una nueva direccin de movimiento y un nuevo
punto del proceso iterativo que nos aproxime a la solucin.

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;

II Determinar mn.n kr.x k / C J .x k /.x


III Si x

si no, hacer k D k C 1, x k D x e ir al paso II.

El subproblema del punto II es un problema lineal


minimizar
kAx
x 2Rn

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

Ejemplo Mediante Gauss-Newton, resolviendo los subproblemas mediante el


operador n de Matlab, determinar x1 y x2 de la funcin e x1Ctx2 que mejor
ajuste los pares de puntos
f.ti ; yi /g D f. 2; 1=2/; . 1; 1/; .0; 2/; .1; 4/g:
La funcin r.x/ es R2 ! R4; su matriz Jacobiana es
2
3
x1 2x2
x1 2x2
e
2e
6 x1 x2
7
e x1 x2 7
6e
J .x/ D 6 x1
7:
0
4 e
5
e x1Cx2
e x1Cx2

Partiendo de x 0 D 1, 1T , el cdigo en Matlab que lo resuelve es el que


sigue. La solucin es x D ln 2 ln 2T .
function GN111(fx,x)
% Gauss-Newton
tol=sqrt(eps); dnor=1.0;
while dnor>tol
[f J] = fx(x);
p=J\f;
x=x-p;
dnor=norm(p,inf)/norm(x,inf);
s=norm(f)^2;
fprintf( %15.10e %15.10e %15.10e %15.10e\n,x,s,dnor);
end
end

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

El proceso hasta la solucin con


>> GN111(@GaNew,[1;1])
es el de la tabla que sigue.
k

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

Se formul inicialmente en 1944 por Kenneth Levenberg, EE.UU., 1919-1973, y


se desarroll en 1963 por Donald W. Marquardt, EE.UU., 1929-1997.

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;

supuesto que se conoce un nmero k tal que el modelo lineal de r.x k /


representa suficientemente bien la funcin dentro de la esfera de confianza de
radio k .


Si la funcin decrece en esta direccin, se hace x C p el nuevo punto del


proceso y se adapta con algn criterio. Si no decrece, y x x , se modifica
la estrategia con para que en la prxima iteracin se mejore la funcin.

23/40

Si la direccin del subproblema, sin tener en cuenta la restriccin kpk k  k ,


verifica sta, el paso sera el mismo; si no, se puede comprobar que existir un
 > 0 tal que
.J T J C I/p LM D J T r;
.

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

El mtodo, implcitamente, es una permanente eleccin entre la direccin de


Gauss-Newton y la de mxima pendiente, o alguna entre ambas.

En efecto:


Cuando  D 0 se tiene la direccin de Gauss-Newton


 1
T
D
J .x k /T r.x k /:
pLM
J
.x
/
J
.x
/
k
k
k

Cuando  es muy grande


pLM

k

1
J .x k /T r.x k /;


por lo que la direccin es colineal con la de mxima pendiente.

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 /

III if .kr.x k C p k /k22 < kr.x k /k22 / then

si p k  T ol , parar: problema resuelto


si p k > T ol , hacer:

=10

kC1

x kC1
y volver al paso II

xk C p

else

10  

Volver al paso II sin tener que calcular J .x k /


end

Otras formas de cambiar  son las que se estudian al presentar los mtodos de regin de confianza para
minimizar funciones sin condiciones.

26/40

Ejemplo Mediante Levenberg-Marquardt, ajustar a la funcin


f .x/ D
el conjunto de puntos de la tabla.

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

La matriz jacobiana se ha calculado analticamente. Cuando la complejidad de


su clculo es mayor, se puede aproximar por diferencias finitas.

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

Con la Jacobiana por diferencias finitas partiendo de x D 10; 1; 1T :


function
f
=
f(1) =
f(2) =
f(3) =
f(4) =
f(5) =
f(6) =
f(7) =
f(8) =
f(9) =
f(10) =
f(11) =
f(12) =
end

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

Se obtiene lo que sigue.


>> Levmar_99_1
1 2.3152737458e+001
2 3.5521957325e+001
3 3.5535714828e+001
4 3.6382251480e+001
5 4.3864894722e+001
6 5.1372002147e+001
7 7.0428818614e+001
8 8.5236277490e+001
9 1.1239893980e+002
10 1.2617277706e+002
11 1.3399326931e+002
12 1.3977022988e+002
13 1.6069048866e+002
14 1.8513588826e+002
15 1.9533332296e+002
16 1.9617433148e+002
17 1.9618630640e+002
18 1.9618621815e+002
19 1.9618623975e+002
>>

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

Algo ms sofisticado para variar  y su resultado es lo que sigue.

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: