Está en la página 1de 120

 

Cálculo Cientifico
con
con MATLAB
MATLAB y Octav
Octave
 

A. Quart
Quarterero
oni
F. Saleri
Saleri

Cálculo Cientifico
con
con MATLAB
MATLAB y Octa
Octavve

 1 3
 

ALFIO QUARTERONI
MOX - Dipartimento di Matematica
Politecnico di Milano y 
Ecole Polytechnique Fédérale de Lausanne

FAUSTO SALERI
MOX - Dipartimento di Matematica
Politecnico di Milano

Las simulaciones numéricas que se muestran en la portada fueron realizadas por


Marzio Sala

La traducción ha sido hecha por:


Alfredo Bermudez
Departamento
Departame nto de
de Matematica
Matematica Aplicada
Aplicada
Universidade
Uni versidade de Santiago de Compostela

Traducción de:
Introduzione
Introduzione al Calcolo
Ca lcolo Scientifico - Esercizi e problemi risolti con MATLAB
MATLAB
A. Quarter
Quarteron
oni,
i, F. Saleri
Saleri
© Springer-Verlag
Springer-Verlag Italia, Milano 2006

ISBN 10 88-470-0503-5 Springer Milan Berlin Heidelberg New York


ISBN 13 978-88-470-0503-7 in sospeso Springer Milan Berlin Heidelberg New York
Springer-V
Springer-Verlag
erlag hace parte de Springer Science+Business Media
springer.com
© Springer-Verlag
Springer-Verlag Italia, Milano 2006

Esta obra está protegida


protegida por la ley del Derecho
Derecho de Autor
Autor.. Todos los derechos, en particu-
lar aquellos relacionados con la traducción, con la reimpresión,
reimpresión, con el
el uso de figuras y 
tablas, con la citación oral, con la transmisión radiofónica o televisiva, con la reproducción
reproducción
sobre un microfilm o en una base de datos, con la diferente rep reproducción
roducción de cualquier otro
tipo (impresa o electrónica) quedan reservados tambi tambiénén en el caso de uso parcial. Una
reproducción
reprod ucción de esta obra, o de una parte de ella, sólo está permitida dentro
dentro de los limites
limites
de la ley sobre
sobre el Derecho de Autor
Autor,, y está sujeta a la autorización
autorización del Editor.
Editor. La violación
de las normas comporta las sanciones previstas por la ley.
El uso de denominacio
denominaciones
nes genéricas,
genéricas, nombres
nombres comercia
comerciales,
les, marcas
marcas registradas,
registradas, etc, en esta
obra, también en ausencia de indicaciones
indicaciones particulares, no significa que tales denomina-
ciones o marcas se puedan utilizar libremente
libremente por cualquiera,
cualquiera, en el sentido de la ley sobre
marcas.

Repr
Reproducido
oducido
Proyecto
Proyecto gráfide
couna
gráfico ude
naportada:
copia camera-ready
Simona provista
provista
Simona Colombo,
Colombo por el traductor
, Milán
Impreso
Impreso en Italia:
Italia: Signum Srl,
Srl, Bollate
Bollate (Milán)
 

Prólogo
ologo
Pr´

Este libro de texto es una introducción


introducci´on al C´ Cálcu
alculo
lo C
Cient
ient´ıfico.
ı́fic o. IIlus
lustra
traremo
remoss
varios m´méto
etodos
dos numéri
num´ericos
cos par
paraa la reso
resoluci
luci´on
ón por computador de ciertas
clases de problemas matemáticos
matem´aticos que no pueden abordarse con “papel y

lápiz”.
apiz”. Mostraremos cómoc´omo calcular los ceros o las integrales de funciones
continuas, resolver sistemas lineales, aproximar funciones por polinomios
y construir aproximaciones precisas de las soluciones de las ecuaciones
diferenciales.
Con este obobjetivo,
jetivo, en el Cap´
Capı́ıtulo
tulo 1 se eestablecer
stablecer´áan
n las reglas de juego
que adoptan los computadores cuando almacenan y operan con números n´umeros
reales y complejos, vectores y matrices.
Para hacer nuestra presentación
presentaci´on concreta y atractiva adoptaremos
los en
entor
tornos
nos de pro
progra
gramac
maci´on   MATLAB      1 y Octa
ión Octav ve como
como leale
lealess
compañeros.
compa˜ neros. Octave es una reimplementaci´
reimplementación on de parte de   MATLAB
que incluy
incluyee mucuchos
hos de sus recurs
recursosos num´
numériericos
cos y se distrib
distribuy uyee libre-
libre-
mente bajo GNU   General Public License . Descubriremos gradualmente
sus principales comandos, instrucciones y construcciones. Mostraremos

cómo
omo ejecutar to todos
dos los algoritmos que iintroducimos
ntroducimos a trav trav´esés del libro.
Esto nos permitirá
permitir´a suministrar una evaluaci´
evaluaciónon cuantitativa inmediata
de sus propiedades teóricas
te´oricas tales como estabilida
estabilidad, d, precis
precisi´ ión
on y compleji-
dad. Resolveremos varios problemas que surgirán surgir´an a través
trav´es de ejer ejercici
cicios
os y
ejemplos, a menudo consecuencia de aplicaciones espec espec´ı́ıficas.
ficas. A lo largo
del libro haremos uso frecuente de la expresión
expresi´on “comando de MATLAB”;
en ese caso,   MATLAB   deber´deber ıa
ı́a ser entendido como el   lenguaje   que es
subconjunto común
com´un a ambos programas MATLAB y Octave. Nos hemos
esforzado para asegurar un uso sin problemas de nuestros códigos c´odigos y pro-
gramas bajo MATLAB  y Octave. En los pocos casos en los que esto no
1
MATLAB es una marca registrada de TheMathWorks Inc., 24 Prime Park
Way, Natick, MA 01760, Tel: 001+508-647-7000, Fax: 001+508-647-7001.
 

VI Pr´

ologo
logo

se aplique, escribiremos una breve nota explicativa al final de la corres-


pondientee secci´
pondient sección.
on.
Adoptaremos varios s´ı́ımbolos
mbolos gr´
gráfic
aficos
os para hacer
hacer la lectura
lectura m´
más
as
agradable. Mostraremos al margen el comando de   MATLAB   (u Oc-
tave),
tave), al lado de la l´ı́ınea
nea donde ese comando se int
introduce
roduce p
por
or prime
primera
ra

vez.
vez. El s´ımbol
ı́mboloo se us
usar´
aráa para indicar la presencia de ejercicios, mien-

tra s que el s´ı́ımbolo


tras mbo lo   se utilizar´
utilizaráa cuando queram
queramosos atraer la atenci´
atención
on
del lector sobre un comporta
comportamien
miento
to crcr´ı́ıtico
tico o sorprenden
sorprendente
te de un algo-
ritmo o procedimiento. Las fórmulas
f´ormulas matem´
matemáticas
aticas de especial relev
relevancia
ancia
se pondrán
pondr´an en un rec recuad
uadro. ro. Fin
Finalm
almenente,
te, el s´ı́ımbolo
mbolo indicar
indicar´aá la pre-
sencia de un panel resumiendo conceptos y conclusiones que acaban de
ser expuestas y explicadas.
Al final
fi nal de cada
ca da ca
capp´ı́ıtulo
tulo se dedica
dedi ca una
un a sesecci´
cción
on esp
espec
ec´ı́ıfica
fic a a mencion
menc ionar ar
aquellos temas que no han sido abordados y a indicar las referencias
bibliográficas
bibliogr´ aficas para un tratamiento más m´as amplio del material que hemos
considerado.
Bastante a menudo remitiremos al texto [QSS06] donde muchas de
las cuestiones abordadas en este libro se tratan con mayor profundidad,
y donde se prueban resultados teóricos.
te´oricos. Para una descr descripci´
ipciónon m´
más
as minu-
ciosa de   MATLAB  enviamos a [HH05]. Todos los programas incluidos
en este texto pueden descargarse de la direcci´ dirección on web
 mox.polimi.it/qs.
No se piden especiales prerrequisitos al lector, con la excepción excepci´on de un
curso de Cálculo
C´alculo elemental.
Sin embargo, a lo largo del primer cap cap´ı́ıtulo
tulo recordamos los principales
resultados del Cálculo
C´alculo y la Geometr
Geometr´ı́ıaa que se utilizarán
utilizar´an extensamente a
través
trav´es de este texto. Los temas menos elementaleselementales,, aqu´aquéllos
ellos que no son
tan necesarios para un recorrido educacional introductorio se destacan

con el s´ı́ımbolo
mbol o especi
especial
al   .

Agradecemos a Francesca Bonadei de Springer-Italia su colaboración


colaboraci´
on
indispensable a lo largo de este proyecto, a Paola Causin el habernos
propuesto varios problemas, a Christophe Prud´homme, John W. Eaton
y David Bateman su ayuda con Octave, y al proyecto Poseidón Poseid´on de la
Escuela Politécnica
Polit´ecnica Federal de Lausanne su apoyo económico.
econ´omico.
Finalmente, queremos expresar nuestra gratitud a Alfredo Bermúdez Berm´udez
por la traducción
traducci´ on cuidadosa de este libr
libro,
o, aass´ıı́ como por sus numerosas y
acertadas sugerencias.

Laus
Lausan
anne
ne y Mi
Mila
lano
no,, ju
juli
lioo de 2006
2006 Al
Alfio
fio Quar
Quarte
tero
roni
ni,, Fau
aust
stoo Sale
Saleri
ri
 

´
Índice
Indice

1 Lo que no
no se
se pue
pued
de ign
ignorar   . . . . . . . . . . . . . . . . . . . . . . . . . . .
ora 1
1.1 Núumeros
´ meros reales
reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 C´óomo
mo re repr
pres
esenentatarl
rlos
os . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 C´óomo
mo operamos con n´ núm
umer eros
os de pu pun nto flo flota tannte . . 4
1.2 Núumer
´ meros
os compl
complej ejos
os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.
1.33 Matr
Matricices
es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.
1.3.1
3.1 Vec ectotore
ress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Func
uncione
ioness reales
reales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.
1.4.1
4.1 Los
Los ce cero
ross . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.
1.4.2
4.2 Polin
olinom omioioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.
1.4.3
4.3 InInte
tegrgrac
aci´
ión
on y diferenciaci´
diferenciación on . . . . . . . . . . . . . . . . . . . . 21
1.5
1.5 Erra
Errarr no s´óolo
lo es huma
humano no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5.1
1.5.1 HaHabla
bland ndoo de cos costetess . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.6 Los entor
entornos
nos MA MATLA TLAB B y OctOctav avee . . . . . . . . . . . . . . . . . . . . . 28
1.7 El le
leng
nguaje
uaje MA MATL TLAB AB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.7.1
1.7.1 InInst
strurucc
ccion
ioneses de MA MATL TLAB AB . . . . . . . . . . . . . . . . . . . . 31
1.7.2
1.7.2 PrProg
ogram
ramac aci´ión
on en MATL MATLAB AB . . . . . . . . . . . . . . . . . . . . 33
1.7.3 Eje
1.7.3 Ejempl
mplos os de dif difere
erenci
ncias as enentre
tre los
los leng
lenguajes
uajes
MATLAB  y Oct Octav avee . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.
1.88 Lo que no le hem hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.
1.99 Ejer
Ejerci
cici
cios
os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2 Ecua
Ecuaci
cion
ones
es no li
line
neales   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
ales
2.1 Método
M´etodo de bisecci´
bisección
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2 Métod
M´etodoo de Newton
Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.2.1 C´óomo
mo ter
termin
minar ar las itera
iteraciociones
nes de Newt Newton on . . . . . . . . 49
2.2.2 M´
Método
etodo de Newton para sistem sistemas as de ecuaciones
ecuaciones
no lineal
lineales
es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
2.
2.33 Iter
Iterac
acion
iones
es de pun
punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.3.1 C´óomo
mo ter
termin
minar ar las itera
iteraciociones
nes de pun punto to fijo . . . . . . 58
 

VIII   ´ÍIndice
ndice

2.4 Aceleraci´
Aceleración
on utilizando
utilizando el m´ método
etodo de Aitk Aitken en . . . . . . . . . . . . 58
2.
2.55 Pol
olino
inomi
mios
os alge
algebr braic
aicos
os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
2.
2.5.1
5.1 Algo
Algoritritmo
mo de H¨ Hör
ornenerr . . . . . . . . . . . . . . . . . . . . . . . . . . 64
2.5.2 M´Método
etodo de Newton-H¨
Newton-Hör ornenerr . . . . . . . . . . . . . . . . . . . . 66
2.6 Lo que no le hem hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.7 Ejer
Ejerci
cici
cios
os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

3 Aprox
roxima on de funciones y datos   . . . . . . . . . . . . . . . . . . . 73
imaci´
ión
3.1 Inte
Interpo
rpolac
laci´
ión
on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.1.11 Po
3.1. Polino
linomio mio de interinterpolac
polaci´ ión
on de LagrLagran angege . . . . . . . . . 77
3.1.2
3.1.2 InInte
terpo
rpolaclaci´
ión
on de Cheb Chebys yshe hevv. . .. .. . .. .. .. . .. .. . . 82
3.1.3
3.1.3 InInte
terpo
rpolaclaci´
ión
on trigonom
trigonom´etrica étrica y FFT . . . . . . . . . . . . 84
3.2 In
Inte
terpo
rpola
laci
ci´óon
n linea
lineall a troztrozos os . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.3 Apro
Aproxim
ximacaci´ión
on por funciones  spline  . . . . . . . . . . . . . . . . . . . . . 90
3.4 Método
M´etodo de m´ı́ınimos
nimos cuadrados . . . . . . . . . . . . . . . . . . . . . . . 95
3.5 Lo que no le hem hemos os dicho
dicho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.6 Ejerci
Ejercicio
cioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

4 Dife
Difere
renc
ncia
iaci
ci´
on
ón e integración
integraci´
on num´
numér
eric as . . . . . . . . . . . . . . . . 105
icas
4.
4.11 Apro
Aproxixima
maci ci´óon
n de derivadas de funciones . . . . . . . . . . . . . . . 107
4.2 In
Inte
tegr
grac
aci´
ión
on num num´éerica
rica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
4.2.1 F´óormula
rmula del punto punto medio . . . . . . . . . . . . . . . . . . . . . . 110
4.2.2 F´óormula
rmula del trapecitrapecioo . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.2.3 F´óormula
rmula de Simps Simpson on . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.3 Cuadra
Cuadraturturasas de tipo inter interpolat
polatorioorio . . . . . . . . . . . . . . . . . . . . 115
4.4 F´óormula
rmula de Simps Simpson on adaptativ
adaptativaa . . . . . . . . . . . . . . . . . . . . . . 119
4.5 Lo que no le hem hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
4.6 Ejerci
Ejercicio
cioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

5 Si
Sist
stem
emas
as li
line
neales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
ales
5.1 Método
M´etodo de factorizaci´
factorización on LU . . . . . . . . . . . . . . . . . . . . . . . . . . 131
5.2 La técni

ecnica
ca del pivoteo
pivoteo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
5.3 ¿C´óomo
mo es de precisa la factorizaci´factorización on LU? . . . . . . . . . . . . . . 140
5.4 ¿C´óomo
mo resolver un sistema tridiagonal?. . . . . . . . . . . . . . . . 144
5.5 Sistem
Sistemas as sob
sobredredete
etermi
rminadnados os . . . . . . . . . . . . . . . . . . . . . . . . . 146
5.6 Lo que se esconde detr´ detrásas del comando
comando    . . . . . . . . . . . . . . 148
5.7 Métodos
M´etodos iterat
iterativos
ivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.7.1 C´óomo mo construir un m´ método
etodo iterativo . . . . . . . . . . . . 151
5.8 Métodos
M´etodos de Ric Richardso
hardson n y del gradient
gradientee . . . . . . . . . . . . . . . . 155
5.9 Método
M´etodo del gradient
gradientee conju conjugado gado . . . . . . . . . . . . . . . . . . . . . . 158
5.10 ¿Cu´ando deber´
¿Cuándo deberı́a ıa parars
pararsee un m´ métod
etodoo iterativo?
iterat ivo? . . . . . . . . . 161
5.11 Confrontando
Confrontando:: ¿direc ¿directo to o itera
iterativo
tivo?? . . . . . . . . . . . . . . . . . . . 164
5.12 Lo que no le hem hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
5.13 Ejerci
Ejerciciocioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
 

´In
Índice IX

6 Auto
Autov
valores
alores y auto
autovectoress   . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
vectore
6.1 Métod
M´ etodoo de la pote
potenci
nciaa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.1
.1..1 An´áalisis
lisis de la con
conve
verge
rgenci
nciaa . . . . . . . . . . . . . . . . . . . . 179
6.2 Gene
Genera raliz
lizac
aci´
ión
on del método
m´etodo de la potencia
potencia . . . . . . . . . . . . . . 180
6.3 Como
´ómo calcu
calcular
lar la trasl
traslaci´
ación
on . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.4 Calculo
´álculo de todos los auto
autov valores . . . . . . . . . . . . . . . . . . . . . . 185

6.5
6.6 Lo quecios
Ejerci no
Ejercicios . le
. . hemos
. . . . . . dic
dicho
. . .ho
. . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 189
190

7 Ecuac
Ecuacion
iones
es difer
diferenc
encial
iales
es ordinariass . . . . . . . . . . . . . . . . . . . . 193
ordinaria
7.1 El proproble
blemama de Cau Cauch chy y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
7.2 Métodos
M´ etodos de Euler
Euler.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
7.2.
2.11 Anáalisis
´lisis de la con conveverge
rgencinciaa . . . . . . . . . . . . . . . . . . . . 200
7.3 Método
M´ etodo de Crank-
Crank-Nicols Nicolson on . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
7.4 Cero-e
Cero-esta
stabili
bilidad
dad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
7.5 Estabi
Estabilida
lidadd sobre
sobre inter
interv valos no acotad acotados os . . . . . . . . . . . . . . . 208
7.5.
7.5.11 Reg egi´
ión
on de es estab
tabilid
ilidad
ad absolu
absoluta ta . . . . . . . . . . . . . . . . . 211
7.5.22 La est
7.5. estabi
abilida
lidad d absolut
absolutaa con controtrolala las pert
perturb urbaciacione
oness 211
7.6 Métodos
M´ etodos de orden superior . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
7.7 Métodos
M´ etodos predic
predictor-co
tor-correctrrector or . . . . . . . . . . . . . . . . . . . . . . . . . . 223
7.8 Sistem
Sistemasas de ecuac
ecuacion ioneses difere
diferenci nciale
aless . . . . . . . . . . . . . . . . . . . 225
7.9 Alguno
Algunoss eje
ejempl
mplos os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7.9.1 El p´ péndulo
endulo esf´ esférico
erico . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
7.
7.9.2
9.2 El proble
problema ma de los los tres
tres cuecuerpo
rposs . . . . . . . . . . . . . . . . 235
7.9.33 Alg
7.9. Alguno
unoss problemas
problemas rr´ı́ıgidos gidos (sti(stiff ff ) . . . . . . . . . . . . . . 237
7.100 Lo que no le hem
7.1 hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
7.111 Ejerci
7.1 Ejercicio
cioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241

8 Métodos
M´etodos num´
numericos
éricos para problemas de valores
iniciales y de contorno   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
8.
8.11 Apro
Aproxi
xima
maci
ci´on
ón de pro
proble
blemas
mas de contor
contorno
no . . . . . . . . . . . . . . 248

8.
8.1.1
8.1.1 Apro
8.1.2
1.2 Apro
Aproxi
Ap roxixima
maci
xima
maci ci´óon
ci´óon
n por
n por ele dife
diferen
elemenrencia
mentos ciassfinitos
tos finitas
finitas. .. .. .. .. .. .. .. .. .. .. .. .. 249
251
8.
8.1.3
1.3 Apro Aproxi xima
maci ci´óon
n por diferencias finitas de
problemas
proble mas bidime
bidimensionansionales les . . . . . . . . . . . . . . . . . . . . 254
8.1.4
8.1 .4 Con Consis
sisten
tenciacia y conconve verge
rgenci
nciaa . . . . . . . . . . . . . . . . . . . . 260
8.
8.22 Apro
Aproxixima
maci ci´on
ón por diferencias finitas de la ecuación ecuaci´on del
calor
calor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
8.
8.33 Ecua
Ecuacici´óon
n de las ond ondas as . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
8.
8.3.1
3.1 Apro Aproxi xima
maci ci´óon
n por difediferen
renciaciass finitas
finitas . . . . . . . . . . . . 269
8.4 Lo que no le hem hemos os dic
dichoho . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
8.5 Ejerci
Ejercicio
cioss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
 

X   ´Indice
Índice

9 Solu
Soluci
cion
ones
es de lo
loss ejer
ejerci
cicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
cios
9.1 Cap´
Capı́ıtulo
tulo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
9.2 Cap´
Capı́ıtulo
tulo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
9.3 Cap´
Capı́ıtulo
tulo 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
9.4 Cap´
Capı́ıtulo
tulo 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
9.5 Cap´
Capı́ıtulo
tulo 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

9.6
9.7 Cap´
Cap
Capı́ıtulo
Cap´ tulo
tulo 67 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 298
ı́ıtulo 302
9.8 Cap´
Capı́ıtulo
tulo 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

Referencias   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

´
Índ ice alfab´
Indice alf abét ico   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
etico
 

Programas

2.1   bisection: m´
mét etoodo de bise
bi secc
cci´ión
on . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2   newton: m´méto
etodo do de NewtNewtonon   . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3   newtonsys: m´ método
etodo de Newton para sistemas no lineales   . . . 52
2.4   aitken: m´
méto
etodo do de Ait Aitken
ken   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
2.5   horner: algoritmo de la división
divisi´on si sint´
ntét
etic
icaa  . . . . . . . . . . . . . . . . . 65
2.6   newtonhorner: m´ méto
etodo
do de Newt
Newton- on-H¨Hörner
orner . . . . . . . . . . . . . . . . 67
3.1   cubicspline:  spline   c´ cúbico
ubico de interpolación
interpolaci´on   . . . . . . . . . . . . . . . 92
4.1   midpointc: fórmula
f´ormula de cuadratura del punto medio compuesta compuesta112 112
4.2   simpsonc: fórmula
f´ormula de cuadratura de Simpson compuesta compuesta .  . . . 11
1144
4.3   simpadpt: fórmula
f´ormula de Simpson adaptativa   . . . . . . . . . . . . . . . 122
5.1   lugauss: factorización
factorizaci´ on de Gauss   . . . . . . . . . . . . . . . . . . . . . . . . 136
5.2   itermeth: m´métod
etodoo iterativo
iterati vo general   . . . . . . . . . . . . . . . . . . . . . 153
6.1   eigpower: m´métoetododo de la potpotencia
encia . . . . . . . . . . . . . . . . . . . . . . . . 178
6.2   invshift: m´
método
etodo de la potencia inversa con traslación traslaci´on . . . . . . . 182
6.3   gershcircles: c´ı́ırculo
rc uloss de Ger
Gershgshgorin
orin   . . . . . . . . . . . . . . . . . . . . . 183
6.4   qrbasic: m´
méto
etodo do de iteraci
iteraciones
ones QR . . . . . . . . . . . . . . . . . . . . . . 187
7.1   feuler: m´
métod
etodoo de Euler progresiv
progresivoo . . . . . . . . . . . . . . . . . . . . . . 198
7.2 beuler: m´
  méto
etododo de Euler regresi
regresivo vo   . . . . . . . . . . . . . . . . . . . . . . 199
7.3 cranknic: m´
  méto
etododo de Crank-N
Crank-Nicolso icolson n  . . . . . . . . . . . . . . . . . . . . 204
7.4 predcor: metodo predictor-corrector .
  predictor-corrector . . . . . . . . . . . . . . . . . . . . . 224
7.5 onestep: un paso de Euler progresivo (eeonestep), un paso
 
de Euler regresivo (eionestep), un paso de Crank-Nicolson
(cnonestep)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
7.6   newmark: m´ méto
etododo de Newm
Newmark ark   . . . . . . . . . . . . . . . . . . . . . . . . 230
7.7   fvinc: t´
térmi
erminono forzante
forza nte para el problema
probl ema del péndu p´endulo lo esféri
esf´ericoco   234
7.8   trescuerpos: t´ término
ermino forzante para el sistema simplificado
de tres cuerpos   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
8.1   bvp: aproximación
aproximaci´on de un problema de contorno
unidimensional por el m´ método
etodo de diferencias finitas . . . . . . . . . 250
 

XII Programas

8.2   poissonfd: aproximación


aproximaci´on del problema de Poisson con dato
de Dirichlet mediante el m´ método
etodo de diferencias finitas con
cinco puntos   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
8.3   heattheta:   θ-m´
-métod
etodoo para la ecuaci´ ecuación on del calor en un
dominio
domin io cuadra
cuadradodo   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
8.4   newmarkwave: m´ método
etodo de Newmark para la ecuación ecuaci´ on de

9.1   las
rk2ondas
: m´
méto do
etodo. . .de
. . .Heun
. . . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 269
Heun . 306
9.3   neumann: aproximación
aproximaci´on de un problema de contorno de
Neumann   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Neumann
 

Lo que no se puede ignorar

En este libro usaremos sistemáticamente


sistem´aticamente concepto
conceptoss matemáticos
matem´aticos elemen-
tales que el lector
lector o la lecto
lectora ra ya deber
deber´ıa
ı́a conocer, aunque podr podr´ıaı́a no
recordarlos inmediatamente.
Por consiguien
consiguiente te apro
aprovecvecharem
haremos
os este cap´
capıtulo
ı́tulo para refresrefrescarlos
carlos y
tambi´en
tambi én para introducir nuevosnuevos conceptos que pertenecen al campo del
Análisis
An´ alisis Num
Num´éerico.
rico. Empezar
Empezaremos emos explo
explorando
rando su significado
significado y utilidad
utilidad
con la ayuda de MATLAB (MA MATTrix   LABoratory), un entorno integrado
para la programación
programaci´on y la visualización
visualizaci´on en cálc´alcu
culo
lo cient´
ci entı́ıfico
fi co.. Tambi´
También en
usaremos GNU Octave (abreviadamente, Octave) que es en su mayor
parte compatible con   MATLAB. En las Secciones 1.6 y 1.7 daremos
una rápida
r´apida introducci´
introducciónon a MATLAB y Octave, que es suficiente para el
uso que vamos a hacer aqu aqu´ı́ı.. Tambi´
ambién
en incluimos
inclui mos algunas
alguna s notas sobre las
diferencias entre MATLAB y Octave que son relevantes para este libro.
Sin embargo, remitimos a los lectores interesados al manual [HH05] para
una descripción
descripci´on del lenguaje   MATLAB   y al manual manual [Eat [Eat02]
02] para una
descripción
descripci´ on de Octave.
Octave es una reimplementación
reimplementaci´on de parte de   MATLAB  que incluye
una gran parte de los recursos num num´éericos
ricos de   MATLAB  y se distribuye
libremente bajo la Licencia Pública P´
ublica General GNU.
A lo largo del texto haremos uso frecuente de la expresión expresi´on “comando
de   MATLAB”; en ese caso,   MATLAB   deberı́a deber´ıa ser entendido como el
lenguaje  que
  que es el subconjunto común com´un a ambos programas   MATLAB   y
Octave.
Hemos procurado asegurar un uso transparente de nuestros códigos c´odigos
y programas bajo   MATLAB  y Octave. En los pocos casos en los que
esto no se aplica, escribiremos una corta nota explicativa al final de la
correspondiente sección.
secci´on.
En el presente Cap Cap´ı́ıtulo
tulo hemos condensa
condensado do nociones
noci ones que son t´ıpicas ı́picas
de cursos
curs os de Cálc ulo,,  Algebra
C´alculo ´ lgebr a Lineal y Geometr
Á Geometr´ıa,ı́a, reformulándolas
reformul´andolas sin
embargo de una forma apropiada para su uso en el cál
c´alcul
culoo cient
cient´ıfico
ı́fico..
 

2 1 L
Lo
o que no se puede ignorar

Números
umeros reales
1.1 N´

Mientras que el conjunto de los números


n´umeros reales   R  es conocido por todo el
mundo, la manera en la que los computadores los tratan es quizás
quiz´as menos
conocida. Por una parte, puesto que las máquinas
m´aquinas tienen recursos limi-
tados, solamente se puede representar un subconjunto   F   de dimensión
dimensi´on
finita de. R
 flotante  . Los
Por n´
números
otraumeros de esteveremos
parte, como subconjunto
en la se llaman
Secci´
Sección  n´ 
umeros
on 1.1.2, de
  F  est´
 está punto
a carac-
terizado por propiedades que son diferentes de las de   R. La razón
raz´on es que
cualquier
cualqu ier n
n´ú
umero
mero real
real x
 x es
 es truncado, en principio, por la máquina
m´aquina dando
origen a un nue nuevo
vo n´
número
umero (llamado  n´ umero de punto flotante ), ), denotado
por   f l(x), que no necesariamente coincide con el número
por n´
umero origina
originall   x.

1.1.1
1.1.1 C´
Cómo
omo representarlos

Para conocer la diferencia entre R y   F, hagamos unos cuantos experimen-


tos que ilustren la forma en que el computador (un PC por ejemplo) trata
los números

umeros reales. Nótese
N´otese que utilizar   MATLAB  u Octave en lugar de

otro lenguaje
nuestro esdependen,
c´alculo
cálculo tan solo unaencuestión
cuesti´
efecto,onprimariamente
de conveniencia.de Los resultados
la manera de
en que
el computador trabaja y sólos´olo en menor medida del lenguaje de progra-
mación.
maci´on. Consideremos el número

umero racional 
racional   x  = 1/7, cuya representación
representaci´on
decimal es 0.0.142857.   Esta
´ sta es una representación
É representaci´on infinita, puesto que el
número

umero de cifras decimales
decimales es infinit
infinito.o. Para
Para obtener
obtener su represen
representaci´
tación
on
>> en el computad
computador, or, introd
introducimos
ucimos despu´
después
es del   prompt  (
 (el
el s´ımbol
ı́mb oloo   >>
>>)) el
cociente   1/7  y obtenemos
>> 1/7

ans
ans =
0.1429

que es un número
n´umero con s´ sólo
olo cu
cuat
atro
ro ci
cifr
fras
as decidecima
male
les,
s, sien
siendo do la ultima

´ltima
diferente de la cuarta cifra del número

umero original.
Si ahora considerásemos
consider´asemos 11/ /3 enc
encont
ontra
rarr´ıamos
ı́a mos 0.333
3333,
3, as
as´ıı́ que la cuarta
cuar ta
cifra decimal ser
ser´ı́ıaa exacta. Este comp
comportamiento
ortamiento se debe al hecho de que
los números
n´umeros reales son   redondeados  por el computador. Esto significa,
ante todo, que sólo
s´olo se devuelve un número
n´umero fijo a priori de cifras decimales,
y además
adem´as la ultima
última
´ cifra decimal se incrementa en una unidad siempre
y cuando la primera cifra decimal despreciada sea mayor o igual que 5.
La primera observ
observaci´
ación
on que debe hacerse es que usar s´ sólo
olo cuatro cifras
decimales para representar los números

umeros reales es cuestionable. En efecto,
la representaci´
representaci óon
n interna del n´ número
umero se hace con 16 cifras decimales, y
lo que hemos visto es simplemente uno de los varios posibles formatos de
salida de   MATLAB. El mismo número
n´umero puede tomar diferentes expre-
siones dependiendo de la declaración
declaraci´on espec´
especıfica
ı́fica de formato que se haga.
 

1.1
1.1 Nú

ummeros reales 3

Por ejemplo, para el número



umero 11/
/7, algunos posibles   formatos   de salida
son:
format long   de
devu
vuel
elv
ve 0.
0.14285714285714
14285714285714,,
format short e   ” 1.4286 −
4286ee 01
01,,
format long e   ” 1.428571428571428
428571428571428ee − 01
01,,
format short g   ” 0.14286
14286,,
format long g   ” 0.142857142857143
142857142857143.. format

Algunos de ellos son m´


más
as coherentes que otros con la representaci´
representación
on
interna del computador. En realidad, un computador almacena, en ge-
neral, un número

umero real de la forma siguiente

x  = ( 1)s (0.a
− · (0.a1 a2 . . . at ) β e = ( 1)s m β e−t ,
· − · · a1 = 0
  (1.1)

donde   s  es 0 o 1,   β 
donde  β  (un
 (un entero positivo mayor o igual que 2) es la  base 
adoptada por el computador espec espec´ı́ıfico
fico que estemos manejando, m
manejando,  m es
 es un
entero llamado  mantisa   cuya longitud 
longitud   t  es el m´
máxi
aximomo n´
número
umero de cifras
ai   (con 0   ai   β   1) que se almacenan, y   e   es un número n´
umero entero
llamado  exponente . El formato   lon
  ≤   ≤  − long g e  es aqu´
aquél el que más
m´as se parece a esta
representación
representaci´ on y   e  representa el exponente; sus cifras, precedidas por el
signo, se declaran a la derecha del carácter
car´acter   e. Los números
n´ umeros cuyas formas
se dan en (1.1) se llaman números

umeros de punto flotante, porque la posici´ posición
on
de su punto decimal no es fija. Las cifras   a1 a2 . . . a p   (con  (con   p   t) suelen
 ≤
llamarse   p  primeras cifras significativas de 
llamarse de   x.
La condición
condici´  a 1 = 0 asegura que un número
on a   n´
umero no puede tener m´ múltiples
ultiples
represe
rep resentaci
ntacione
ones.
s. Po
Porr ej
ejempl
emplo,
o, sin ´ésta
esta rest
restric
ricci´
ción
on el
e l n´
n umero
úmero 1/1/10 podrı́
dr´ıaa
ser representado (en la base decimal) como 0. 0.1 100 , pe
· pero
ro también
tambi´en como
0.01 101 , etc.
·
Por consiguiente el conjunto   F  est´  estáa totalmente caracterizado por la
base   β , el número
base n´
umero de cifras significativas 
significativas   t  y el rango (L, (L, U 
U )) (con 
(con   L <  0
 F
y
En  U  MATLAB
>  0) de variación
variaci´
on del
 tenemos de l ´ı́n
ındidice
ce
(2 ,e53
  F   =   F(2,
. Por
53, eso ,se

, 1021
1021, denota
1024) (en por (β,t,L,U 
efecto, ).
).
53 cifras
significativas en base 2 corresponden a los 15 cifras significativas que
muestra   MATLAB  en base 10 con el   forma format long).
t long
Afortunadamente, el  error de redondeo  que se genera inevitablemente
siempre que un número
n´  
umero real   x = 0 se reemplaza por su representante
f l(x) en   F, es pequeño,
peque˜no, porque

|x − f l(x )| ≤   1 M    (1.2)


|x| 2

donde   M   =  β 1−t proporciona la distancia entre 1 y el número


donde  n´umero en punto
flotante mayor que 1 y más m´as cercano a ´éeste.
ste. N´
Nótese
otese que 
que   M   depende de
β 
β    y   t. En   MATLAB   M  puede obtenerse mediante el comando   eps, y   eps
 

4 1 L
Lo
o que no se puede ignorar

se tiene   M    = 2−52   2.22  10−16 . Señalemos


  · Se˜
nalemos que en (1.2) estimamos
el  error relativo  sobre
 sobre   x, que es indudabl
in dudablemente
emente m´más
as significa
si gnificativo
tivo q que
ue el
error absoluto x f l(x) . En realidad, este ultimo
 | − | último
´ no tiene en cuenta el
orden de magnitud de  de   x  mientra
 mientrass que el primero s´ı.
ı́.
El número

umero 0 no pertenece a   F, pues en tal caso tendr´ amos   a1   = 0
tendrı́ıamos 
en (1.1); por tanto se maneja separadamen
separadamente.te. Además,
Adem´ as, como
como   L   y   U 
U    son
finitos, uno no
trariamente puedeo representar
grande n´umeros
números
arbitrariamente cuyo
peque˜no .valor
pequeño absoluto
Siendo más sea arbi-
m´as concretos,
el número

umero real positivo más
m´as grande y el más
m´as peque˜
pequeño
no de   F  vienen dados,
respectivamente, por

xmin   = β L−1 , xmax   = β U (1 − β  t).


En MATLAB estos valores pueden obtenerse mediante los comandos


realmin realmin   y  realmax, que producen
realmax
xmin   = 2.225073858507201 10−308 ,·
xmax   = 1.7976931348623158 10+308 . ·
Un n´número
umero positivo menor que   xmin   produce un mensaje de   un-
derflow   y se trata como un cero o de una manera especi especial
al (véase
(v´
ease,, por
ejemplo,, [QSS06
ejemplo [QSS06],], Cap
Cap´ı́ıtulo
tulo 2). Un número
n´umero positivo mayor que
que x
 x max  ori-
Inf gina en cambio un mensaje de  overflow  y se almacena en la variable   Inf
(que es la representación
representaci´on en el computador de + ). ∞
Los elementos de   F   son más
m´as densos cerca de   xmin  y menos densos
cuando se aproximan a x a xmax . En realidad, los números

umeros de F m´ más
as cercanos
a   xmax  (a su izquierda) y a   xmin  (a su derecha) son, respectivamente,
+308
x−
max   = 1.7976931348623157 10 , ·
+ −308
xmin   = 2.225073858507202 10 .·
modo  x +
De este modo x min − xmin  10 −323
, mientras que x
que  x max − xmax  10292

(!). Sin embargo,


podemos deducir la
dedistancia
(1.2). relativa es pequeña
peque˜
na en ambos casos, como

1.1.2
1.1.2 C´
Cómo
omo operamos con números

umeros de punto flotante

Puesto que   F es un subconjunto propio de   R, las operaciooperaciones


nes algebraicas
algebraicas
elemen
ele mental
tales
es sobre
sobre núm

umereros
os de pu punnto flota
flotan nte no gozagozan
n de to toda
dass la
lass
propiedades de las operaciones análogas
an´alogas en   R. Concretamente, la conmu-
tatividad
tativi dad para la su
suma
ma to
todav
dav´ıa
ı́a se verifica (esto eses f
 f l(x + y ) = f l(y + x))
as
as´ıı́ como para la multiplic
multiplicaci´
ación
on (f l(xy
xy)) =   f l(yx
yx)),
)), pero se violan otras
propiedades tales como la asociativa y la distributiva. Además, Adem´as, el 0 ya
no es unico.
único.
´ En efecto, asignemos a la variable   a  el valor 1, y ejecutemos

>las
> ainstrucciones
= 1; b = 1 ; siguientes:
=1 wh i
ille a +
+bb ~= a ; b =
=bb/
/22 ; end
 

1.1
1.1 Nú

ummeros reales 5

La variable   b   se divide por dos en cada etapa, en tanto en cuanto la


suma de   a   y   b   permanezca
permanezca diferente
diferente (~=) de   a. Si operásem
oper´asemos
os sobre
números
n´umeros reales, este programa nunca acabaracabar´ı́ıa,
a, mientras que, en nues-
tro caso, termi
termina na desp
despu´
ués
es de un n´
número
umero finito de pasos y devuelve el
siguiente valor para   b:  1.1102e-16=   M /2. Por tanto, existe al menos
un número

umero   b   diferente de 0 tal que   a+b=a. Esto es posible porque   F
consta de números

umeros aislados; cuando se suman dos n´ números
umeros   a   y   b   con
b<a   y   b   menor que   M , siempre obtenemos que   a+b   es igual a   a. El
número
n´umero de MATLAB a+eps  es el menor número n´umero de   F  mayor que  a . As´ sı́ı,,
la suma   a+b  devolver´
 devolveráa   a  para todo   b < eps.
La asociatividad se viola siempre que ocurre una situación situaci´on de  over-
 flow   o   underflow . Tomemos
omemos por eje ejempl
mploo   a=1.0e+308,   b=1.1e+308   y
c=-1.001e+308, y llevemos a cabo la suma de dos formas diferentes.
Encontramos que

a + (b + c) =  1 .0990e + 308,   (a + b) +  c  =  Inf .

Este es un ejemplo particular de lo que ocurre cuando uno suma dos


números

umeros con signos opuestos pero de valor absoluto similar. En este caso
el resultado puede ser totalmente inexacto y nos referimos a tal situación
situaci´on
como de   pérdiida , o   cancelación,
p´erd cancelaci´on, de cifras significativas . Por ejemplo,
calculemos ((1+ x) 1)/x − 1)/x (el
 (el resultado obvio es 1 para cualquier x
cualquier  x = 0):  
>> x = 1. e -
-115
5;; ((
(11+x
x))-
-11)/ x

ans
ans = 1.11
1.1102
02

Este resultado es bastante impreciso, ¡el error relativo es superior al 11%!


Otro caso de cancelación
cancelaci´on numérica
num´erica se encuentra cuando se evalúa
eval´ua la
función
funci´
on

f ((x) = x7
f  − 7x6 + 21x 21x5 − 35
35xx4 + 35x
35x3 − 21 x2 + 7x
21x 7x − 1 (1.3)
− −
en 401 puntos equiespaciados con abscisas en [1 − 2 · 10 8 , 1+ 1+22 · 10 8 ]. Ob-
tenemos la gráfica
gr´afica ca´
caótica
otica recogida en la Figura 1.1 (el comportamiento
(x − 1)7 , que
real es el de (x qu e es sustancia
su stancialmente
lmente con
constante
stante e igual a la función
funci´on
nula en tal diminuto entorno de  de   x  = 1). El comando de   MATLAB   que
ha generado esta gráfica
gr´afica ser´
seráa ilustrado en la Secci´
Sección
on 1.4.
Finalmente, es interesante observar
observar que en F no hay lugar para formas
indeterminadas tales como 0/ 0/0 o / . Su presencia produce lo que se
 ∞ ∞
llama  not a number   (NaN   en   MATLAB  u Octave), al que no se aplican   NaN
las reglas normales del cálculo.
c´alculo.

Observación
Observaci´on 1.1  Si bien es cierto que los errores de redondeo son normal-
mente pequeños,
peque˜nos, cuando se repiten dentro de largos y complejos algoritmos,
pueden dar origen a efectos catastróficos.
catastr´oficos. Dos casos destacados conciernen a la
on del cohete Arianne el 4 de Junio de 1996, generada por un  overflow 
explosión
explosi´
en el comp
computad
utador
or de a bordo, y al fracaso
fracaso de la misi´
misió
on n de un misil americano
americano
 

6 1 L
Lo
o que no se puede ignorar
−14
x 10
1.5

0.5

−0.5

−1

Figura 1.1. Comportamiento
1.1.  Comportamiento oscilatorio de la función
funci´
on (1.3) causado por
p or los
errores de cancelación
cancelaci´
on

patriot , durante la guerra del Golfo en 1991, a causa de un error de redondeo


en el cálculo

alculo de su trayectoria.
Un ejemplo con consecuencias menos catastrófica
catastr´
oficass (pero
(p ero todav
to dav´ı́ıa
ammoles
olestas)
tas)
lo proporciona la sucesión
sucesi´
on

z 2  = 2, z n+1   = 2n −1 /2 1−n n


2
 1 − √ 1 − 4 z  , n  = 2, 3, . . .   (1.4)
que converge a  a   π  cuando
 cuando   n   tiende a infinito. Cuando se usa   MATLAB  para
calcular z 
calcular  z n , el error relativo encontrado entre π
entre  π   y  z n  decrece para las primeras
16 iteraciones, para crecer a continuación
continuaci´
on debido a los errores de redondeo
(como se muestra en la Figura 1.2).   •
Véanse

eanse los ejercici
ejercicios
os 1.1-1
1.1-1.2.
.2.

0
10

−2
10

−4
10

−6
10

−8
10

−10
10
5 10 15 20 25 30

Figura 1.2.
1.2.   Logaritmo del error relativo π  | − z  |/π
/π frente
n  frente a 
a n
 

1.2 Nú

um meros complejos 7


1.2 Números
umeros complejos

Los números
n´umeros complejos, cuyo conjunto se denota por   C, tienen la forma
√ −
z   =   x +
 + iy
 iy,, donde 
donde   i   = es   i2 = 1),
1 es la unidad imaginaria (esto es   −
mientras que  que   x  = Re(z
Re(z ) e   y  = Im(z
Im(z ) son las partes real e imaginaria de
z , respectivamente. Generalmente se representan en el computador como
pares de números
Salvo n´
umeros
que reales. de otra manera, las variables de   MATLAB   i
se redefinan
y   j  denotan la unidad imaginaria. Para introducir un número n´umero complejo
con parte real   x   y parte imaginaria   y, uno puede escribir simplemente
x+i*y; como alternativa, se puede utilizar el comando  complex(x,y).   complex
Mencion
Menc ionemos
emos tambi´
t ambién
en la
lass representa
repr esentacio
ciones
nes expo
ex ponenc
nencial
ial y ttrig
rigono
onom´
métri
etricaca
de un número
n´umero complejo 
complejo   z , que son equivalentes gracias a la   f´  ormula de 
Euler 

z   =  ρeiθ =  ρ
 ρ(cos
(cos θ +
 + i
 isen
senθθ); (1.5)

ρ =
 x
2 + y 2 es el mód
m´odul
uloo del
del n´
núme
umero
ro comple
complejo
jo (puede
(puede obt
obtene
enerse
rse
poniendo   abs(z)) mientras que   θ   es su argumen
argumento,
to, esto es el ´angulo
ángulo   abs
entre el eje   x   y la l´ı́ınea
nea rec
recta
ta que sal
salee del orig
origen
en y pasa
pasa por el punto
punto
de coordenadas (x, (x, y ) en el plano complejo. 
complejo.   θ  puede hallarse tecleando
angle(z). Por consiguiente, la representación
representaci´on (1.5) es   angle

abs(z) ∗ (cos(angle(z)) + i ∗ sin(angle(z)))


)))..

La represen
representaci´
tación
on polar gr´
gráfica
afica de uno o m´
más
as n´
númer
umeros
os complejos
complejos
puede obtenerse mediante el comando  compass(z), donde   z  es un solo   compass
número

umero complejo o un vector cuyas componentes son n´
números
umeros complejos.
Por ejemplo, tecleando
>> z = 3 + i *
*33; co
ommp
paas
sss(z)
);;

se obtiene el gráfico
gr´afico mostrado en la Figura 1.3.
Para un número

umero complejo dado   z, se puede extraer su parte real con
el comando   real(z)   y su parte imaginaria con   imag(z). Finalmente, real
imag
el comple
complejo jo con
conjug
jugado  −
ado z̄z¯   =   x  iy   de   z , se puede obtener escribiendo
simplemente  conj(z).   conj
En   MATLAB   todas las operaciones se llevan a cabo suponiendo
impl´ı́ıcitamente
impl citam ente que q ue los ope
operandos
randos as´
asıı́ como los resulta
resultadosdos son complejos.
complejo s.
Por tanto podemos encontrar algunos resultados aparentemente sorpren-
dentes. Por ejemplo, si calculamos la ra ra´ız
ı́z c´
cúbica
ubica de 5 con el comando
 −
de MATLAB(-5)^(1/3), en lugar de 1.7099 . . .  obtenemos el número
 − n´umero
complejo 0. 0.8550 + 1. 1.4809
4809ii. (Anticipamos el uso del s´ı́ımbolo mbolo   ^   para el
^
exponente de la potencia). En realidad, todos los números n´umeros de la forma√ 
ρei(θ+2
+2kπ kπ))
, con 
con   k  entero, son indistinguibles de  de   z   =  ρeiθ . Al calcular z
  3

√ 
hallamos ρei(θ/3+2
  3 θ/3+2kπ/ 3)
kπ/3)
, esto es, las tres ra ra´ıces
ı́ces distintas
√  iθ/33 ,
z1   = ρeiθ/
  3
z2  =
√ ρei(θ/θ/3+2
  3 3+2π/ 3)
π/3)
, z3  =
√ ρei(θ/θ/3+4
  3 3+4π/ 3)
π/3)
.
 

8 1 L
Lo
o que no se puede ignorar

90
 5
120 60

 4

 3
150 30

 2

 1

180 0

210 330

240 300

270

Figura 1.3.
1.3. Resultado
 Resultado del comando de  MATLAB   compass

MATLAB seleccionaráa la primera que se encuentre recorriendo el plano


seleccionar´

complejo en sentido
la representaci´
representaci óon polantihorario,
n polar de   z   = empezando
ar de  −
5 es desde
es   ρeiθ con
con   ρ   =el5eje
y   θreal.
  = Puesto que
π , las tres
 −
ra
ra´ıces
ı́ces son (v´
(véase
ease la Figura 1.4 para su representaci´
representación on en el plano de
Gauss)

z1   =
√ 5(cos(−π/
  3
π/3)3) + i sen(−π/
+ isen( 3))   0
π/3))  0..8550 − 1.4809
4809i,
i,
√ 5(cos(π/
  3
z2   = 5(cos( π/3)
3) + i
+ isen(
sen(π/
π/3))
3))   0
 0..8550 + 1.
1.4809
4809i,
i,
√    3
z   = 5(cos(−π ) + i sen(−π ))  −1.7100
+ isen( 7100..
3

La segunda ra´
raız
ı́z es la seleccionada.
seleccio nada.
Finalmente, por (1.5) obtenemos

cos(θθ) =   1 eiθ + e−iθ ,   sen(θ


sen(θ) =   1 eiθ −iθ
cos(
   − e .   (1.6)
2 2i
Octave 1.1   El comando  compass  no está
est´a disponible en Octave, sin em-
bargo puede ser emulado con la siguiente función:
funci´
on:
f un
un c
ctti
ioon oc
cttc
coom
mppa
asss(
(zz ) xx = [ 0 1 . 8 1 . 8
8]].’;
yy = [ 0 0 . 0 8 0 - . 08 ] . ’ ;
a rr
rr o
oww = xx + yy. .*
*sqrrtt(-1));
;
z = arrow * z;
[th,r]=cart2pol(real(z),imag(z));
polar(th,r);
return   
 

1.3 Matrices 9

Im(z 
Im(z )
z 2

ρ
π
z 3 3

Re(z 
Re(z )

z 1

Figura 1.4.   Representación


Representaci´
on en el plano complejo de las tres ra
ra´ıces
ı́ces c´
cúbicas
ubicas
complejas del número

umero real 5  −

1.3 Matrices

Sean   n   y   m  enteros positivos. Una matriz con   m  filas y 


Sean  y   n  columnas es
un conjunto de   m  n   elementos   aij , con   i   = 1, . . . , m,
 × m,   j   = 1, . . . , n,
n,
representado mediante la siguiente tabla:
 a11   a12   . . . a1n

 a21   a22   . . . a2n 
A= .. .. ..  .   (1.7)
 . . .
am1   am2   . . . amn

En forma compacta escribimos A = (a ( aij ). Si los elementos de A fue-


sen números

umeros reales, escribir amos A   Rm×n , y A   Cm×n si fuesen
escribi r´ı́ıamos  ∈  ∈
complejos.
Las matrices cuadrad
cuadradas
as de dimensi´
dimensión
on n n so
 son
n aqu´
aquél
ella
lass co
conn  m
 m =
 = n
 n.. Una
matriz con una sola columna es un   vector vector columna , mientras que una
matriz con una sola fila es un  vector fila .
Para introducir una matriz en   MATLAB  uno tiene que escribir los
elementos de la primera fila a la ultima,
última,
´ introduciendo el carácter
car´ acter  ;  para
separar las diferentes filas. Por ejemplo, el comando
>> A = [ 1 2 3 ; 4 5 6 ]

devuelve
A =
1 2 3
4 5 6
esto es, una matriz 2 3 cuyos elementos se indican arriba. La matriz zeros
×
m n  zeros(m,n)  tiene todos los elementos nulos,  eye(m,n)  tiene todos
× eye
 

10 1 Lo que no se puede ign


ignorar

los elementos nulos salvo  salvo   aii ,   i  = 1, . . . , min(


min(m, m, n), en la diagonal donde
todos son iguales a 1. La matriz identidad n identidad  n n se obtiene con el comando
×
eye(n): sus elementos son δ  son δ ij
ij  = 1 si isi i =
 = j  j,, 0 en caso contrario, para i,
para  i, j   =
n. Finalmente, mediante el comando   A=[ ]   podemos inicializar
1, . . . , n.
unaa mat
un matri rizz vac´
vacıa.
ı́a.

Recordamos las siguientes operaciones matriciales:


1. si A = (aij ) y B = ((bbij ) son matrices 
matrices   m n, la  suma  de
×   de A y B es la
matriz A + B = (a( aij   + bij );
2. el  producto  de una matriz A por un número n´umero real o complejo 
complejo   λ  es la
matriz   λA = (λaij );
matriz
3. el producto  de dos ma
matrices
trices es p
posible
osible s´
sólo
olo para tama
tama˜ nos
ños compatibles,
concretamente, si A es m
es  m  p  p y
 y B es p
es  p n, para algún
× alg´
× un entero positivo
 p
 p.. En tal caso C = AB es una matriz matriz   m n  cuyos elementos son
×
 p
cij   = aik bkj ,   para 
para   i  = 1, . . . , m
m,, jj   = 1, . . . , n .
k =1

He aqu´
aqu ıı́ un ejemplo de suma y producto de dos matrices.
>> A=
=[[1 2 3; 4 5 6];
>> B=
=[[ 7 8 9; 10 1 1 12 ]
];;
>> C=[[113 14
4;; 15 16
6;; 17 188]
];
>> A+B

ans
ans =
8 10 12
14 16 18

>> A*C

ans
ans =
94 100
229 244

N´otese
Nótese que   MATLAB   devuel
devuelve
ve un mensaje
mensaje dia
diagn´
gnóst
ostico
ico cua
cuando
ndo uno
trata de llevar a cabo operaciones sobre matrices con dimensiones in-
compatibles. Por ejemplo:
>> A=
=[[1 2 3; 4 5 6];
>> B=
=[[ 7 8 9; 10 1 1 12 ]
];;
>> C=[[113 14
4;; 15 16
6;; 17 188]
];
>> A+C

???
??? Erro
Error
r usin
using
g ==>
==> + Matr
Matrix
ix dime
dimens
nsio
ions
ns must
must agre
agree.
e.

>> A*B
 

1.3 Matrices 11

???
??? Erro
Error
r usin
using
g ==>
==> * Inne
Inner
r matr
matrix
ix dime
dimens
nsio
ions
ns must
must agre
agree.
e.

Si A es una matriz cuadrada de dimensión


dimensi´on n
 n,, su  inversa  (si
  (si existe) es
una matriz cuadrada de dimensión  n,, denotada por A−1 , que satisface la
dimensi´on n
on matricial AA−1 = A−1 A = I. Podemos obtener A−1 mediante
relación
relaci´
el comando  inv(A). La inversa de A existe si y sólo s´olo si el  determinante   de   inv
A, un número

umero denotado por det(A), es no nulo. La ´ultima última condición
condici´on se
satisface si y sólo
s´olo si los vectores columna de A son linealmente indepen-
dientes
dien tes (v´
(véase
ease la Secc
Secci´
ión
on 1.3.1). El determinante de una matriz cuadrada
se define mediante la siguiente fórmula
f´ormula recursiva (regla de Laplace ): ):
  si
si   n  = 1,
 a 11

det(A) = n (1.8)
 ∆ ij aij ,   para 
para   n >  1
 1,,   ∀i = 1, . . . , n ,
j =1

donde   ∆ij   = ( 1)i+j det(Aij ) y Aij   es la matriz obtenida eliminando



la   i-ésima
-´esima fila y la   j -ésim

esimaa colum
columna na de la matri
matrizz A. (El resultado
resultado es
independiente del ´ındice
ı́ndice de la fila
fila   i.)
En particular, si A   R1×1 ponemos det(A) = 
 ∈ =   a11 ; si A   R2×2 se  ∈
tiene

= a 11 a22
det(A) = a  − a12a21;
si A ∈   R3 ×3
obtenemos
det(A) =  a11 a22 a33  +  a31 a12 a23  +
 + a  + a
 a21 a13 a32

−a11a23a32 − a21a12 a33 − a31a13 a22.


Finalmente, si A = BC, entonces det(A) = det(B)det(C).
×
Para invertir una matriz 2 2 y calcular su determinante podemos
proceder como sigue:
>> A = [
[11 2; 3 4]
];;
>> inv(A)

ans
ans =
-2.0000 1.0000
1.5000 -0.5000

>> det(A)

ans
ans =
-2

Si una matriz fuese singular, MATLAB devolver


devol ver´ı́ıaa un mens
mensaa je diag-
dia g-
n´ostico,
nóstico, segui
seguido
do p
por
or una matriz cuyos elementos
elementos son todos iguales a  Inf ,
como se ilustra en el ejemplo siguiente:
 

12 1 Lo que no se puede ign


ignorar

>> A = [
[11 2; 0 0]
];;
>> inv(A)

Warning:
Warnin g: Matrix
Matrix is singul
singular
ar to workin
working
g precis
precision
ion.
.
ans
ans =
Inf Inf
Inf Inf

Para clases especiales de matrices cuadradas, el c´ cálculo


alculo de inversas
inversas
y determinantes es bastante sencillo. En particular, si A es una   matriz 
diagonal , es decir, una matriz para la que sólo s´olo son non nulos los elementos
diagonales   akk ,   k   = 1, . . . , n,
diagonales n, su determinante viene dado por det(A) =
a11 a22 ··· ann . En particular, A es no singular si y sólo s´olo si  
si   akk = 0 para
todo   k. En tal caso la inv
todo inversa
ersa de A todav´
todavıa
ı́a es diagon
diagonalal con elem
element
entos
os
−1
akk .
diag dimensi´on   n. El comando  diag(v)  produce una
Sea   v  un vector de dimensión
matriz diagonal cuyos elementos son las componentes del vector   v. El
comando más m´as general  diag(v,m)   produce una matriz cuadrada de di-

m
deenlos
si´óon
n  n+abs(m)
elementos  cuya m
 cuya
con  m-´
´ındices
ı́ndices-ésima
esima
  i, i +d
diagon
 + miagonal
 m) al sup
) tiene superior
erior (esiguales
elementos deci
decir,
r, laa las
diago
diagonal
nal
com-
ponentes de   v, mientras que los restantes elementos son nulos. Nótese N´otese
que esta extensión
extensi´on es v´
váli
alida
da también
tambi´en cuancuandodo   m  es negativo, en cuyo caso
los únicos
unicos
´ elementos afectados son los de las diagonales inferiores.
Por ejemplo, si   v = [1 2 3]  entonces:
>> A=diag(v,-1)

A =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0

Otros casos especiales son las matrices   triangulares superiores   y las


triangulares
triangular es inferior es . Una matriz cuadrada de dimensión
inferiores  dimensi´on   n   es   trian-
gular infer ior   (respectivamente,   superior ) si todos los elementos por
inferior 
encima (respectivamente, por debajo) de la diagonal principal son cero.
Su determinante es simplemente el producto de los elementos diagonales.
tril Mediante los comandos  tril(A)  y   triu(A), uno puede extraer de la
triu   matriz   A  de di
dime
mensnsi´
ión
on   n  sus partes inferior y superior. Sus extensiones
tril(A,m)   o  triu(A,m), con   m  recorriendo de   -n   a   n, permiten la ex-
tracción
tracci´
on de las partes triangulares aumentadas por, o privadas de,   m
extradiagonales.
Por ejemplo, dada la matriz   A =[3 1 2; -1 3 4; -2 -1 3], mediante
el comando  L1=tril(A)  obtenemos
 

1.3 Matrices 13

L1 =
3 0 0
-1 3 0
-2 -1 3
mientras que, mediante  L2=tril(A,1), obtenemos

L2 =
3 1 0
-1 3 4
-2 -1 3
Finalmente, recordamos que si A   Rm×n su traspuesta AT    Rn×m
 ∈ ∈
es la matriz obtenida intercambiando filas y columnas de A. Cuando A =
AT  la matriz A se dice  si méettrica . Finalmente,  A’  denota la traspuesta de   A’
 sim´
A, si   A  es real, o su traspuesta conjugada, esto es, AH , si   A  es compleja.
Una matriz cuadrada compleja que coincide con su traspuesta conjugada
AH  se llama  hermitiana .
notaci´on similar,   v’, para el traspuesto conjugado   vH  v’
Se utiliza una notación
del vector   v. Si  v i  denota las componentes de   v, el vector adjunto   vH  es
Si v
un vector fila cuyas componentes son los complejos conjugados vv̄¯i   de 
de   vi .

Octave 1.2   Octave tambi


tambi´en
én devuelve un mensaje diagn´
diagnóstico
ostico cuando
uno trata de llevar a cabo operaciones sobre matrices que tienen dimen-
siones incompatibles. Si repetimos los ejemplos de   MATLAB   previos,
obtenemos:
oc tta
av e ::11> A=[
[11 2 3; 4 5 6] ];
;
o ct
ct a
avve: :22> B=[
[77 8 9; 10 11 12 2]
];
o ct
ct a
avve: :33> C=[113
3 14
4;; 15 16
6;; 17 188]
];
o c ta
ta v e :
:44> A+C

error: operat
error: operator
or +: noncon
nonconfor
forman
mant
t argume
arguments
nts (op1
(op1 is
2x3,
2x3, op2
op2 is 3x2)
3x2)
erro
error:
r: eval
evalua
uati
ting
ng bina
binary
ry oper
operat
ator
or ‘+’
‘+’ near
near line
line 2,
colu
column
mn 2

o c ta
ta v e :
:55> A*B

error: operat
error: operator
or *: noncon
nonconfor
forman
mant
t argume
arguments
nts (op1
(op1 is
2x3,
2x3, op2
op2 is 2x3)
2x3)
erro
error:
r: eval
evalua
uati
ting
ng bina
binary
ry oper
operat
ator
or ‘*’
‘*’ near
near line
line 2,
colu
column
mn 2

Si A es singular, Octave devuelve un mensaje diagnóstico


diagn´ostico seguido por la
matriz a invertir, como se ilustra en el siguiente ejemplo:
o ct
ct a
avve: :11> A=[[1
1 2; 0 0]
];;
o c ta
ta v e :
:22> in
nvv(A)
 

14 1 Lo que no se puede ign


ignorar

warning:
warning: invers
inverse:
e: singul
singular
ar matrix
matrix to machin
machine
e
prec
precis
isio
ion,
n, rcon
rcond
d = 0
ans
ans =
1 2
0 0   

1.3.1 Vectores

Los vectores serán


ser´an indicados en negrita; con más m´as prec
precisisi´
ión
on,,   v  denotar´
 denotaráa
un vector columna cuya   i-ésim
-´esimaa comp
component
onentee es   vi . Cuando todas las
n´umeros reales podemos escribir   v   Rn .
componentes son números  ∈
En   MATLAB, los vectores se consideran como casos particulares
de matrices. Para introducir un vector columna uno tiene que insertar
entre corchetes los valores de sus componentes separadas por punto y
coma, mientras que para un vector fila basta con escribir los valores
de las componentes separados por blancos o comas. Por ejemplo, me-
diante
dian te las instr
instruccio
ucciones
nes   v = [1;2
[1;2;3 ]   y   w = [ 1 2 3 ]   inicializamos
;3] inicializamos el
vector columna   v  y el vector fila   w, ambos de dimensión
dimensi´on 3. El comando
zeros zeros(n,1)  (respectivamente,  zeros(1,n)) produce un vector columna
(respectivamente, fila) de dimensión
dimensi´on   n   con elementos nulos, que deno-
ones An´alogamente, el comando  ones(n,1)  genera el vector
taremos por   0. Análogamente,
columna, denotado por   1, cuyas componentes son todas iguales a 1.
}
Un sistema de vectores y1 , . . . , ym   es  linealmente independiente   si
 {
la relación
relaci´on

α1 y1  +
 + . . . . +
 + α
 αm ym   =  0

implicaa que todos los coefi


implic coeficie
cientes   α1 , . . . , αm   son nulo
ntes ulos.
s. Un sist
sistem
emaa
n
  = y1 , . . . , yn   de   n   vectores linealmente independientes en   R (o
B  { }
C ) es una   base   para   Rn (o   Cn ), esto es, cualquier vector   w   en   Rn
n

puede escribirse como combinaci´


combinación
on lineal de los elementos de ,  B
n
w  = wk yk ,
k =1

para una elección


elecci´on ú
unica
´ nica posible de los coeficient
coeficientes
es wk . Estos ultimos
 { } últimos
´ se
llaman  componentes   de   w  con respecto a la base . Por ejemplo, la base
 B
onica de   Rn es el conjunto de vectores e1 , . . . , en , donde   ei   tiene
canónica
can´  { }
su   i-´
su -ésima
esima comp
componente
onente igual a 1 y todas las otras comp
componentes
onentes iguales
a 0, y es la que se usa normalmente.
El  producto escalar  de dos vectores   v, w   Rn se define como
 ∈
n
(v, w) =  w T  v  =
v w , k k
k=1
 

1.3 Matrices 15

{ } { }
siendo vk y wk las componentes de v y w, respectiv
resp ectivamente.
amente. El corres-
pondiente comando es  w’*v  o tamb
mbi´iéen
n  dot(v,w), donde ahora la prima   dot
denotaa traspos
denot trasposici´
ición
on de un vector. La longitud (o módulo)
m´odulo) de un vector
v  viene dada por
  n
2
v =  (v, v) = 
v
k =1
k

y puede calcularse mediante el comando  norm(v). norm


El producto vectorial de dos vectores   v, w   Rn ,   n   3,   v  w   o
 ∈  ≥  ×
v w, es el vector   u   Rn ortogonal a ambos,   v   y   w, cuyo módulo
∧  ∈ m´odulo es
u   = v w sen(
| |  | | | | sen(α
α), donde   α   es el ´angulo
ángulo formado por   v   y   w. Puede
obtenerse por medio del comando  cross(v,w).   cross
La visualización
visualizaci´on de un vector se consigue mediante el comando de quiver
2 3
MATLAB   quiver   en   R y  quiver3   en   R .
quiver3
El comando de   MATLAB  x.*y   o  x.^2  indica que estas operaciones
.*
se llev
l levar
ar´ıan
ı́an a cabo componente a componente. Por ejemplo si definimos
.  ˆ
los vectores
>> v = [ 1 ; 2 ; 3 ] ; w = [ 4 ; 5 ; 6 ] ;
la instrucción
instrucci´on
>> w’*v

ans
ans =
32

proporciona su producto escalar, mientras que


>> w.*v

ans
ans =
4
10
18

devuelve un vector cuya 


cuya   i-ésima
-´esima compo
componente
nente es igual a   xi yi .
Finalmente, recordamos que un vector   v   Cn , con   v =   0, es un
 ∈  
autovector  de una matriz A   Cn×n asociado al número
 ∈ n´
umero complejo
complejo   λ   si

Av  =
 = λ
 λv.

El número

umero complejo   λ  se llama  autovalor   de A. En general, el cálculo
c´alculo
de autov
autovalores
alores es bastante dif´
dif ı́ıcil.
cil. Casos excepcionales corresponden a la
matrices diagonales y triangulares, cuyos autovalores son sus elementos
diagonales.

Véanse

eanse los ejercici
ejercicios
os 1.3-1.6.
1.3-1 .6.
 

16 1 Lo que no se puede ign


ignorar

1.4 Funciones reales

Este cap
cap´ı́ıtulo
tu lo tra
tratar
tar´áa de la manipulaci´
manipulación
on de funciones reales definidas
fplot sobre un intervalo (a, (a, b). El comando  fplot(fun,lims)  dibuja la gráfica
gr´afica
de la función
funci´ on fun  (que se almacena como una cadena de caracteres) sobre
el intervalo (lims(1),lims(2)). Por ejemplo, para representar   f ( f (x) =
1/(1 + x
+ x2 ) sobre el intervalo ( 5, 5), podemos escribir

>> f u
unn =’1/(
(11+x.^2
2))’; li
imms=[-5,5]
];; fp
pllo
ott(fu
unn, li
imms);

o, más
m´as directamente,
>> f p l o t ( ’ 1 / ( 1
1++ x . ^ 2)
2) ’ , [ - 5 5 ] )
);;

MATLAB  obtiene la gráfica


gr´afica muestreando la funci´
función
on sobre un con-
 junto de abscisas no equiespaciadas y reproduce la verdadera gr´ gráfica
afica de
f  con
f  con una tolerancia de 0.2%. Para mejorar la precisi´
precisión
on podr
po dr´ı́ıamos
am os usar
usa r
el comando
>> f p l o
ott(fun,lims,tol,n,’ Line
eSSpec’,P1,P2,..).

donde   tol  indica la tolerancia deseada y el parámetro ≥


par´ametro   n   (  1) asegura
que la función
funci´on será
ser´a dibuja
dibujadada con un m´ınimo
ı́nimo de   n + 1 puntos.
puntos.  LineSpec
es una caden
cadenaa de carac
caracteres
teres que especi
especifica
fica el estilo
estilo o el color de la l´ınea ı́nea
utilizada para hacer la gráfica.gr´afica. Por ejemplo,  LineSpec=’--’   se utiliza
paraa una l´ı́ınea
par ne a dis
disconti
continua,
nua,  LineSpec=’r-.’  para una l´ı́ınea nea ro
roja ja de pun-
tos y trazos, etc. Para usar valores por defecto para   tol,   n   o  LineSpec
se pueden pasar matrices vac vac´ıas
ı́as ([ ]).
eval Para evaluar una función
funci´on fun  en un punto  x  escribimos y=eval(fun),
después
despu´ es de habhaber
er inici
inicializad
alizadoo  x . El valor correspondie
correspondiente nte se almac
almacena ena en
y. N´
Nótese
otese que   x  y, por tanto,   y  pueden ser vectores. Cuando se usa este
comando, la restricción
restricci´on es que el argumento de la función funci´on   fun  debe ser
x. Cuando el argumento de   fun  tenga un nombre diferente (este caso es
frecuente si este argumento se genera en el interior de un programa), el
comando  eval  se reemplazará
reemplazar´a por  feval  (v´  (véa
easese la Obse
Observa
rvaci
ci´óon
n 1.3)
1. 3)..
grid Finalmente señalamo
se˜
nalamoss que si se escribe
escribe   grid on des
grid  despu´
pués
es del com
coman
ando
do
fplot, podemos obtener una rejilla de fondo como en la Figura 1.1.

Octave 1.3   EnEn Oc Octatav


ve, us
usan
ando
do el co
comamand
ndoo   fplot(fun,lims,n)   la
gráfica
gr´
afica se obtiene muestreando la funci´función
on definida en  fun  (ese es el nom-
bre de una  function  o  o una expresión
expresi´on que contenga a  x ) sobre un conjunto
de abscisas no equiespaciadas. El parámetro
par´ametro opcional   n   (   1) asegura

que la función
funci´on ser´
seráa d
dibu
ibujad
jadaa co
connu
unn m´
mınimo
ı́ni mo de  n +1 puntos. Por ejemplo,
para representar 
representar   f ( + x2 ) usamos los comandos siguientes:
f (x) = 1/(1 + x
>> f u
unn =’1./(
(11+x.^2
2))’; li
imms=[-5,5
5]];
>> fplot(fun,lims)   
 

1.4 Funciones reales 17

1.4
1.4.1
.1 Los ceros
ceros

Recordamos que si  si   f 


f ((α) = 0, 
0,   α  se llama  cero   de 
de   f  
f   o  ra´
 raı́ız z   de la ecuación
ecuaci´on

f (
f (x) = 0. Un cero es  simple   si  
si   f  (α) = 0, y   m´ 
ultiple  en  en caso contrario.
De la gráfica
gr´afica de una función
funci´on se puede inferir (dentro de cierta tole-
rancia) cuáles
cu´ales son sus ceros reales. El cálculoc´alculo directo de todos los ceros
de una función
funci´on dada no siempre es posible. Para funciones que son poli-
nomios de grado 
grado   n  con coeficientes reales, es decir, de la forma
n

2 n
 pn (x) =  a 0  +
 + a
 a1 x +
 + a
 a2 x + . . . +
 + a
 an x = ak xk ,  ∈   R, an = 0,
ak
k=0

podemos obtener el único unico


´ cero  −
cero   α   = a0 /a1 , cuando 
cuando   n  = 1 (es decir 
decir   p1
representa
repres enta una
un a l´
l ı́ınea
nea recta),
recta) , o los dos ceros, α
ceros,  α +   
y  α − , cuando n
cuando  n =
 = 2 (esta
vez   p2  representa una parábola)
vez par´
abola)   α±   = ( a1 −  ± 2  −
a1 4a0 a2 )/(2 (2aa2 ).
Sin embargo, no hay fórm f´
ormulas
ulas expl´
explıcitas
ı́citas para los ceros de un poli-
nomio arbitrario 
arbitrario   pn   cuando   ≥
cuando   n  5.
En lo que sigue denotaremos
denotaremos por  P n  el espacio de polinomios
polinomios de grado
menor o igual que que   n,
n
 p (x) = a xk (1.9)
n k
k=0

los   ak  son coeficientes dados, reales o complejos.


donde los 
Tampoco el númeron´
umero de ceros de una función funci´ on puede ser, en general,
determinado   a pri ori . Una excepción
priori  excepci´on la proporcionan los polinomios,
para los cuales el número
n´umero de ceros (reales o complejos) coincide con el
grado del polinomio. Además,
Adem´as, si αsi  α = = x
 x + iy
iy con
 con y  
 y = 0 fuese un cero de un
polinomio de grado n  ≥
grado  n  2 con coeficientes reales, su complejo conjugado
α =
ᾱ
¯  = x −
 x iy ta
iy  tambi
mbi´en
én ser
se r´ıa
ı́a un cero
ce ro..
Para calcular en MATLAB  un cero de una función funci´on   fun, cerca de un
valor   x0, real o complejo, se puede utilizar el comando   fzero(fun,x0).   fzero
El resultado
res ultado es un valor aproximado del cero deseado, y también tambi´en el inter-
valo en el que se hizo la búsqueda.
b´usqueda. Alternativamente, usando el comando
un,[x0 x1]), se busca un cero de   fun  en el intervalo cuyos ex-
fzero(fun,[x0
fzero(f
tremos son   x0,x1, con tal de que  que   f 
f  cambie
 cambie de signo entre   x0   y   x1.
Consideremos, por ejemplo, la función f (x) =   x2  1 +  e x . Obser-
funci´on   f ( −
vando su gráfica −
gr´afica se ve que existen dos ceros en ( 1, 1). Para calcularlos
necesitamos ejecutar los comandos siguientes:
f un
u n = i n li
l i ne
ne ( ’ x ^ 2 - 1 + e x
xpp ( x ) ’ ,’
, ’ x ’)
’)
fzero(fun,1)

ans =
5.4422e-18

fzero(fun,-1)
 

18 1 Lo que no se puede ign


ignorar

ans
ans =
-0.7146
Alterna tivamente, despu´
Alternativamente, después
es de observar en la gr´
gráfica
afica de la función
funci´on que
existe un cero en el intervalo [ 1, 0.2] y otro en [ 0.2, 1],
− − −1] , podr´
drı́a
ıamo
moss
haber escrito
f z e ro
ro ( f u n , [ - 0 . 2 1 ] )

ans =
ans
-5.2609e-17
f z er
e r o ( f un
un , [ - 1 - 0 .
.22])

ans
ans =
-0.7146
El resultado obtenido para el primer cero es ligeramente distinto del
obtenido previamente, debido a una diferente inicialización
inicializaci´
on del algoritmo
implementado en  fzero.
En el Cap
Cap´ı́ıtulo
tulo 2 introd
introduciremos
uciremos y estudiar
estudiaremos
emos varios m´
métod
etodosos para
el c´
cálculo
alculo aproximado de los ceros de una funci´
función
on arbitraria.
Octave 1.4  En Octave,  fzero s´ sólo
olo acepta funciones definidas utilizando
la palabra clave  function  y su correspondiente sintaxis es como sigue:
f un
un c
ctti
ioon y = fu
unn(x
x))
y = x. .^
^2 - 1 + exp ((x
x));
;
end

f ze
ze r o ( " f
fuun", 1)

ans
ans = 2.37
2.3762
62e-
e-17
17
fzero("fun",-1)

ans
ans = -0.7
0.71456
1456   

1.4.2
1.4.2 Po
Polino
linomios
mios

Los polinomios son funciones muy especiales y hay una  toolbox   1 especial
polyval en   MATLAB,  polyfun, para su tratamiento. El comando  polyval   es
apto para evaluar un polinomio en uno o varios puntos. Sus argumentos
de entrada son un vector  p  y un vector  x , donde las componentes de  p  son
los coeficientes del polinomio almacenados en orden decreciente, desde
an  hasta
 hasta a
 a 0 , y las componentes de   x  son las abscisas donde el polinomio
necesita ser evaluado. El resultado puede almacenarse en un vector   y
escribiendo
1
Una  toolbox  es una colección
colecci´
on de funciones  MATLAB  de propósito
prop´
osito especial.
 

1.4 Funcion
iones reales 19

>> y = p o
olly
yvva
all(p,x
x))

de  p((x) = x 7 + 3x2 1, en las abscisas equiespa-


Por ejemplo, los valores de p −
ciadas   xk   = 1 + k/
ciadas  − +  k/44 para 
para   k   = 0, . . . , 8, pueden obtenerse procediendo
como sigue:
>> p = [ 1 0 0 0 0 3 0 - 1 ] ; x = [ - 1 : 0 . 2 5 : 1 ] ;
>> y = p o
olly
yvva
all(p,x
x))

y =
Colu
Co lumn
mns
s 1 thro
throug
ugh
h 5:

1.000
1.00000 0.55
0.554
402 -0.2
-0.257
5781
81 -0.8
-0.812
1256
56 -1.0
-1.00
0000
000
Colu
Column
mns
s 6 thro
throug
ugh
h 9:

-0.81244 -0.24219 0.82098 3.00000

Alterna tivamente, se po
Alternativamente, podr
dr´ıa
ı́a usar el comando  feval. Sin embargo, en
tal caso uno deber
deber´ı́ıaa dar la expresi´
expresión
on anal
anal´ıtica
ı́tica entera del polinomio en
la cadena de caracteres de entrada, y no simplemente los coeficientes.
El programa  roots  proporciona una aproximación
aproximaci´on de los ceros de un   roots
polinomio y sólo
s´olo requiere la introducci´
introducciónon del vector   p.
Por ejemplo, podemos calcular los ceros de p de  p((x) = x 3 6x2 + 11x
− −
11x 6
escribiendo
>> p = [ 1 - 6 1 1 - 6
6]]; fo r
rmma
att lo
onng
g;;
>> r o o t
tss(p)

ans
ans =
3.00000000000000
2.00000000000000
1.00000000000000

PorDesafortunadamente, el resultado
ejemplo, para el polinomio p
polinomio  p((x) = (no siempre
x+1) 7
, cuyotiene
´ tanta
unico
único precisi´
precisión.
cero es α
es  = on.1
 α =  −
con multiplicidad 7, encontramos (de manera bastante sorprendente)
>> p = [ 1 7 21 35 35 21 7 1];
>> r o o t
tss(p)

ans =
ans
-1.0101
-1.006
-1.0063
3 + 0.0079
0.0079i
i
-1.006
-1.0063
3 - 0.0079
0.0079i
i
-0.997
-0.9977
7 + 0.0099
0.0099i
i
-0.997
-0.9977
7 - 0.0099
0.0099i
i
-0.990
-0.9909
9 + 0.0044
0.0044i
i
-0.990
-0.9909
9 - 0.0044
0.0044i
i
 

20 1 Lo que no se puede ign


ignorar

De hecho, los m´
métodos
etodos num num´éericos
ricos para el c´
cálculo
alculo de las ra´
raı́ıces
ces de
un polinomio con multiplicidad mayor que uno están est´
an particularmente
sujetos a errores de redondeo (v´ (véase
ease la Secci´
Sección
on 2.5.2).
conv El comando  p=conv(p1,p2)  devuelve los coeficientes del polinomio
dado por el product
productoo de dos polinomios cuyos coeficientecoeficientess están
est´
an con-
tenidos en los vectores   p1   y   p2.
deconv An´
Análogamente,
alogamente, el comando  [q,r]=deconv(p1,p2)   suministra los coe-
ficientes
ficientes del polinomio obtenido dividiendo
dividiendo   p1   por   p2, es decir,   p1 =
conv
conv(p
(p2,q) + r. En otras palabras,   q   y   r  son el cociente y el resto de
2,q)
la división.
divisi´
on.
Consideremos por ejemplo el producto y el cociente de los dos poli-
nomios   p1 (x) =  x4 1 y   p2 (x) =  x 3 1:
nomios − −
>> p
p11 = [1 0 0 0 -1];
>> p
p22 = [1 0 0 -1];
>> p=conv(p1,p2)

p =
1 0 0 -1 -1 0 0 1

>> [q,r]=deconv(p1,p2)

q =
1 0
r =
0 0 0 1 -1

polinomios   p(x) =  p 1 (x) p2 (x) =  x 7


Por consiguiente encontramos los polinomios  −
x4 x3 + 1,
− 1,   q (x) =  x
 x y −
 y   r(x) =  x 1 tales que p
que  p 1 (x) = q (x) p2 (x) + r(x).
polyint Los comandos  polyint(p)   y  polyder(p)   proporcionan, respectiva-
polyder   men
mente,
te, los coeficientes
coeficientes de la primit primitiv
ivaa (que se anu
anulala en
en   x  = 0) y los de
la derivada del polinomio cuyos coeficientes están est´an dados por las compo-

nentes
Si   xdel
  es vector
un vector  p. de abscisas y   p   (respectivamente,   p   y   p ) es un
1 2
vector que contiene los coeficientes de un polinomio p polinomio  p   (respectivamente,
 p1   y   p2 ), los comandos previos se resumen en la Tabla 1.1.
polyfit Un comando adicional,   polyfit, permite el cálculo c´alculo de los   n  + 1 coe-
ficientes de un polinomio   p   de grado   n   una vez que se dispone de los
valores de  de   p   en
en   n + 1 nudos distintos (véase
(v´ease la Sección
Secci´on 3.1.1).

polyderiv Octave 1.5   Los coman


comandos dos   polyderiv   y   polyinteg   tienen la misma
polyinteg   funcionalidad que  polyder   y   polyfit, respectivamente. Nótese
N´otese que el
comando  polyder  est´
 estáa disponible tambi
tambi´en
én en el repositorio de Octave,
Octave,
véa

easese la Secc
Se cci´
ión
on 1.6.
1. 6.   
 

1.4 Funcion
iones reales 21

comando proporciona
y=polyval(p,x) y  = valores de 
de   p(x)
z=roots(p) z  = ra´
raı́ıces
c es de   p  tales que 
que   p(z ) = 0
p=conv(p1 ,p2 ) p  = coeficientes del polinomio 
polinomio   p1 p2
[q,r]=deconv(p 1 ,p2 ) q  =
  = coeficientes de 
de   q ,   r  = coeficientes de 
de   r
tales que 
que   p1  =
 = q
 qp
p2  +
 + r
 r
y=polyder(p) de   p (x)
y  = coeficientes de 

y=polyint(p) y  = coeficientes de
  x

 p
 p((t)   dt
0

Tabla 1.1.
1.1. Comandos
 Comandos de   MATLAB  para operaciones con polinomios

1.4.3 In
Integra
tegraci´
ción
on y diferenciación
diferenciaci´
on

Los dos resultados siguientes serán


ser´an inv
invocados
ocados a menudo a lo largo de este
libro:

1.  teorema on : si f 


fundamental de integraci´ 
[a, b), entonces si  f  es
 es una función
funci´on continua en


F ((x) =
 x

f (
f (t)   dt   ∀x ∈ [a,
 [ a, b),
a

es una función
funci´on diferenciable, llamada una  primitiva   de 
de   f ,
f , que satis-
face,

F  (x) =  f 


 f ((x)   ∀x ∈ [a,
 [ a, b);

2.   primer teorema del valor medio para integrales : si  si   f  es


f  es una función
funci´on
continua en [a,
[a, b) y x
y  x1 ,  x2  [ [a,
a, b) con x
con x1   < x2 , entonces ξ   (  (x
x1 , x2 )
tal que  ∈ ∃  ∈
x2
 
  1

f ((ξ ) = f (
f (t)   dt.
x2 x1
 − x1

Aun cuando exista, una primitiva po podr


dr´ıa
ı́a ser imposible de determinar
o dif´
difıcil
ı́cil de calcular.
calcular. Por ejem
ejemplo, ||
plo, saber que ln x   es una primitiva de
1/x
/x es
 es irrelevante si uno no sabe cómoc´omo calcular eficientemente los loga-
ritmos. En el CapCap´ı́ıtulo
tulo 4 intro
introduciremo
duciremoss varios m´métod
etodos
os para calcular
calcul ar la
integral de una función
funci´on continua arbitraria con una precisi´
precisión
on deseada,
independientemente del conocimiento de su primitiva.

Recordamos
renciable que una
en un punto ¯ función
x
x̄ funci´
 ( a, bon 
 (a,
 ∈ )  sif 
f  definida
 definida en un nte
existe el siguie intervalo
siguiente ımite [a,

lı́mite [a, b] es dife-
 

22 1 Lo que no se puede ign


ignorar

1
f  (x̄
¯) = lim (f (
x) f (x̄
x +
¯ + h
 h)) − f (
f (x))

¯))..   (1.10)
h→0 h

El valor de de   f  (x̄


x)
¯) proporciona la pendiente de la recta tangente a la
gráfica
gr´
afica dede   f  en
f  en el punto x̄ x.
¯.
Decimos que una función, funci´on, continua junto con su derivada en todo
punto de [a,
[a, b], pertenece al espacio C espacio  C 1 ([a,
([a, b]). Con más
m´as generalidad
generalidad,, una
función
funci´
on con derivadas continuas hasta el orden orden   p  (un entero positivo) se
dice que pertenece a C  a  C  p ([
([a, particular, C 0 ([a,
a, b]). En particular, C  ([a, b]) denota el espacio
de las funciones continuas en [a, [a, b].
Un resultado que será ser´a usado a menudo es el  teorema del valor medio,
de acuerdo con el cual, si  si   f   C 1 ([
 ∈
 ∈ ([a,
a, b]), existe   ∈
 ∈
existe   ξ   (
 (a,
a, b) tal que

f  (ξ ) = (f 


f ((b) − f (
f (a))/
))/(b − a).

Finalmente, merece la pena recordar que una función


funci´on que es continua
 junto con todas sus deriv
derivadas
adas hasta el orden de   x0 ,
orden   n + 1 en el entorno de 
puede ser aproximada en tal entorno por el llamado  polinomio de Taylor 
de grado n  en el punto 
punto   x0 :
 1
T n (x) = f 
 f ((x0 ) + (x
(x 
+ . . . + (x − x0 )n f (n) (x0 )
− x0)f  (x0 ) + . n!
n

=
(x − x0 )  k f (k)(x0 ).
k!
k=0

diff La  toolbox   de   MATLAB  symbolic  proporciona los comandos  diff,


int int   y   taylor   que
que nos perm
permite
iten
n obt
obtene
enerr la exp
expres
resi´
ión
on anal´
analıtica
ı́tica de la
taylor   deriv
derivada,
ada, la integ
integral
ral indefini
indefinida
da (es decir una primi
primitiv
tiva)
a) y el polinomio de
Taylor, respectivamente, de una función
funci´on dada. En particular, habiendo
definido en la cadena de caracteres   f   la función
funci´on sobre la que estamos
interesados en operar,  diff(f,n)   proporciona su derivada de orden   n,

int(f)
lor  su integral
asociado indefinida,
de grado   n  en unyentorno de   x0   = 0. elLa
 taylor(f,x,n+1) polinomio
variablede
  x  Tay-
debe
syms ser declarada   symbolic   usando el comando   sym syms s x. Esto permitirá
permitir´a su
manipulación
manipulaci´on algebraica sin especificar su valor.
Para hacer esto para la función f (x) = (x2 + 2x
funci´on   f ( 2x + 2)/2)/(x2 1), pro-

cedemos como sigue:
>> f = ’ ( x ^ 2
2++2*x+2
2))/(x^
^22-1)’;
>> s y m
mss x
>> diff(f)

(2*x+2)/(x^2-1)-2*(x^2+2*x+2)/(x^2-1)^2*x

>> int(f)

x+5/2*log(x-1)-1/2*log(1+x)
 

1.5
1.5 Errar
Errar no s´
sól
oloo es human
umano
o 23

Figura 1.5.
1.5. Interfaz
 Interfaz gr´
gráfico
afico del comando   funtool

>> t a y l
loor(f,x,6)

-2-2*x-3*x^2-2*x^3-3*x^4-2*x^5

Observamos que usando el comando   simple   es posible simplificar las simple


expresiones generadas por  diff,   int  y  taylor  con objeto de hacerlas lo
as sencillas posible. El comando  funtool, mediante el interfaz gráfico
más
m´ gr´afico funtool
ilustrado en la Figura 1.5, permite una manipulación
manipulaci´on muy fácil
f´acil de fun-
ciones arbitrarias.

Octave 1.6  Los cálculos


c´alculos simb´
simbóli
olicos
cos todav
to dav´ı́ıaa no están
est´an disponibles en Oc-
tave, aunque existe trabajo en curso al respecto. 2 

Véanse

eanse los ejercici
ejercicios
os 1.7-1
1.7-1.8.
.8.

1.5 Errar no sólo



olo es humano

En realidad, parafraseando el lema latino  Errare humanum est , podrı́ dr´ıamo


a moss
decir que en el cálculo
c´alculo num´
numérico
erico el error es incluso inevi
inevitable.
table.
Como hemos visto, el simple hecho de usar un computador para re-
presentar los números

umeros reales introduce errores. Por consiguiente, lo im-
portante
portan te es no tan
tantoto esfor
esforzarse
zarse por
p or elimin
eliminar
ar los errores,
errores, sino m´
más
as bien
ser capaces de controlar sus efectos.
Hablando en general, podemos identificar varios niveles de errores
que ocurren durante la aproximación
aproximaci´on y resoluci´
resolución
on de un problema
proble ma f´ısico
ı́sico
(véase
(v´
ease la Fig
Figura
ura 1.6
1.6).
).
2
http://www.octave.org
 

24 1 Lo que no se puede ign


ignorar

En el nivel superior se sitúasit´ua el error e


error em  que ocurre cuando se fuerza la
realid
rea lidad
ad f´ı́ısica
si ca (P F 
F    signific
significaa el problema f´ısico
ı́sico y   xf  denota su solución)
soluci´on)
para obedecer a cierto modelo matemático matem´atico ((M M M , cuya solución
soluci´on eses   x).
Tales errores limitarán
limitar´an la aplicabilidad del modelo matem´ matemático
atico a ciertas
situaciones que se sitúan
sit´ uan más
m´as all´
alláa del control del CálC´alcul
culoo Ci
Cient
ent´ıfico.
ı́fico.
El modelo matemático
matem´atico (expresado por una integral como en el ejem-
plo de la Figura 1.6, una ecuación
ecuaci´on algebraica o diferencial, un sistema
lineal o no lineal) generalmente no es resoluble en forma expl expl´ı́ıcita.
cita. Su re-
solución
soluci´on mediante algoritmos computacionales seguramente involucrar´ involucraráa
la introducción
introducci´on y propagaci´
propagación on de error
erroreses de redon
redondeo,
deo, como m´ınimo.ı́nimo.
Llamemos   ea  a estos errores.
Llamemos
Por otra parte, a menudo es necesario introducir errores adicionales
puesto que cualquier procedimiento de resolución
resoluci´on del modelo matem´
matemático atico
que involucre una sucesión
sucesi´
on infinita de operaciones aritm´aritméticas
eticas no puede
realizarse por el computador salvo de manera aproximada. Por ejemplo,
el c´
cálculo
alculo de la suma de una serie será ser´a llevado a cabo necesari
necesariamente
amente de
manera aproximada, considerando un truncamiento apropiado.
Seráa por
Ser´ p or tanto
ta nto necesario
necesar io iintroduc
ntroducir
ir un problema
probl ema num´
numérico,
erico, P  P N 
N ,, cuya
solución
soluci´
on   .xnT ales
camiento difieerrores
difiere
re de   xno
  ensólo
un error
s´olo   et  en
ocurren quemodelos
se llama   err
erroraticos
de tru
matemáticos
matem´ trun-
n-
que
est´an ya p
están plante
lanteado
adoss en dim
dimensi
ensi´óon
n finita (por ejemplo, cuando se resuelve
un sistema lineal). La suma de errores   ea   y   et   constituye el  error com-
putacional   ec , la cantidad en la que estamos interesados.
El error computacional  absoluto  es la diferencia entre 
entre   x, la solución
soluci´on
del model
modeloo matemático,
matem´atico, y x, la solución
soluci´on obtenida al final del proceso
 
num´
nu mér
eriico
co,,

xf 

e
m
P F 

  T   x
ec
M M  x  = φ(t)dt
0

P N 
et
ea
xn   =
 φ(tk )αk
k

Figura 1.6.
1.6. Tipos
 Tipos de errores en un proceso computacional
 

1.5
1.5 Errar
Errar no s´
sól
oloo es human
umano
o 25

eabs
c   = x | − x|,
 
mientras que (si 
(si   x = 0) el error computacional  relativo   es
 
erel
c   = x | − | | |
x/x,

donde  denota el módulo,


m´odulo, u otra medida del tama˜tamaño,
no, dependiendo del
significado de 
de   x.
 | |·· |
El pro
proceso
ceso num´
numérico
erico es general
generalmente
mente una aproximac
aproximaci´ ión
on del mode
modelolo
matemático
matem´ atico obtenido como funci´función
on de un par´parámetro
ametro de discretizaci´
discretización,
on,
que será
ser´a denotado por
por h
 h y
 y supondremos positivo. Si, cuando h
cuando  h tiende
 tiende a 0,
el proceso
pro ceso num´
numérico
erico devuelve la soluci´
solución
on del modelo matem´
matemático,
atico, diremos
que el proceso
pro ceso num´
numérico
erico es  convergente . Adem´
Además,as, si el error (absoluto o
relativo) se puede acotar como función
funci´on de
de   h, de la forma

ec  ≤ C h p (1.11)

donde   C  es
donde  C  es un número

umero positivo independiente de de   h   y   p, diremos que el
méeto
m´ toddo es  convergente de orden   p. A veces es posible incluso reemplazar
el s´ımb
ı́mbol
oloo  p
 por
or , en caso de que,
 ≤   adem´
además
as de la cota superior (1.11), se
inferior  C  h p  ec  (siendo
disponga de una cota inferior C  ≤  C  otra constante (  C )
 (siendo C  ≤
independiente de de   h   y   p).

Ejemplo 1.1   Supongamos


Supong amos que aproximamos la l a der
derivada
ivada de una
u na func
funci´
ión
on f 
 f    en
un punto x̄ x
¯   por el cociente incremental que aparece en (1.10). Obviamente,

si 
si   f  
f   es diferenciable en x̄x, reemplazando   f  por el cociente
¯, el error cometido reemplazando 
incremental tiende a 0 cuando h
cuando  h → 0. Sin embargo, como veremos en la Sección
2
Secci´on
4.1, el error puede ser considerado como   C h   s´ sólo
olo si   ∈
 ∈
si   f   C  en un entorno de
x.

¯.   

Mientras se estudian las propiedades de convergencia de un procedi-


miento num´
numérico,
erico, a menudo manejar
manejaremos
emos gráficas
gr´aficas que muestran el error

como función
abscisas funci´ on de
y log(e
log( ec )  hen
  enel escal
escala
eje dea logar
logar´ ı́ıtmica,
tmica, El
ordenadas. estopropósito
es log(h
prop´log(
ositoh),deen el eje
esta de
repre-
sentaci
sent aci´on
ón es fácil
f´acil de ver: si si   ec   =   C h p entonces log ec  = log C   + p log h.
Por tanto,   p   en escala logar logar´ı́ıtmica
tmica representa la pendiente de la l´ı́ınea nea
recta log ec , as´ ası́ı que si debemos comparar dos métodos, m´etodos, el que presente
la mayor pendiente será ser´a el de mayor orden. Para obtener gráficas gr´aficas en es-
calaa log
cal logarar´ıtmica
ı́tm ica s´ olo se necesita teclear  loglog(x,y), siendo   x   e   y   los   loglog
sólo
vectores que contiene las abscisas y las ordenadas de los datos que se
quiere representar.
A modo de ejemplo, ejemplo, en la Figura 1.7 recog recogemos
emos las l´ı́ıneas
neas rectas re-
lativas al comportamiento de los errores en dos métodos m´etodos diferentes. La
l´ınea
ı́nea continua representa una aproximac aproximaci´ ión
on de primer orden, mientras
que la l´ı́ınea
nea de trazos representa un métod m´etodoo de segundo orden.
Hay una alternativa a la manera gráfica gr´
afica de establecer el orden de un
método
m´ etodo cuando uno conoce los errores errores   ei  para algunos valores dados 
dados   hi
 

26 1 Lo que no se puede ign


ignorar
−2
10

−4
10

1
−6
10
1

−8
10

−10
10
1

−12
10
−6 −5 −4 −3 −2
10 10 10 10 10

Figura 1.7.
1.7. Di
 Dibujo
bujo en escala logar´
logarıtmica
ı́tmica

del parámetro
par´ametro de discretización,
discretizaci´on, con
con   i   = 1, . . . , N :  consiste en suponer
 p
que   ei   es igual a   C hi , donde   C  
C   no depende de   i. Entonces se puede
aproximar   p  con los valores:
aproximar

 pi  = log(e
log(ei /ei−1 )/ log(
log(h
hi /hi−1 ), i  = 2, . . . , N .   (1.12)

Realmente el error no es una cantidad computable puesto que depende


de la solución
soluci´on desconocida. Por consiguiente es necesario introducir can-
tidades computables que puedan ser usadas para acotar el error, son
los llamad
llamadosos  estimadores de error . Veremos algunos ejemplos en las Sec-
ciones 2.2.1, 2.3 y 4.4.

1.5.1 Habl
Hablando
ando de costes

En general un problema se resuelve en el computador mediante un algo-


ritmo, que es una directiva precisa en forma de texto finito, que especifica
la ejecución
ejecuci´ on de una serie finita de operaciones elementale
elementales. s. Estamos in-
teresados en aquellos algoritmos que involucran sólos´olo un n´
número
umero finito de
etapas.
El   coste co mputacional   de un algoritmo es el número
computacional  n´umero de operacio-
nes de punto flotante que se requieren para su ejecución.
ejecuci´on. A menudo la
velocidad de un computador se mide por el máximo m´aximo n´ número
umero de ope-
raciones en punto flotante que puede efectuar en un segundo ( flops ). ).
En particular, las siguientes notaciones abreviadas se usan comúnmente:
com´unmente:
Megaflops, igual a 106 flops
flops,, Gigaflops igual a 109 flops
flops,, Teraflops igual
a 1012 flops
flops.. Los computad
computadores
ores m´
más
as r´
rápidos
apidos hoy d´ıaı́a alcanzan unos 40
Teraflops.
En general, el conocimiento exacto del número
n´umero de operaciones re-
querido por un algoritmo dado no es esencial. En cambio es útil util
´ deter-
minar su orden de magnitud como función
funci´on de un par´
parámetro
ametro   d  que está
est´a
 

1.5
1.5 Errar
Errar no s´
sól
oloo es human
umano
o 27

relacionado con la dimensión


dimensi´on del problema. Por tanto decimos que un
algoritmo tiene complejidad   constante   si requiere un número
n´umero de ope-
raciones independiente de   O
de   d, es decir (1) operaciones, complejidad   li-
neal   si requiere (d) operaciones, o, con más
 O m´as generalidad, complejidad
omica   si requiere (dm ) operaciones, para un entero positivo   m.
polin´   O
Otros algoritmos pueden tener complejidad  exponencial   ( (cd ) operacioO
op eracio--
nes)
O (dmo)incluso  factorial 
significa   ( (d!) oper
“se comporta, O operacione
paraaciones).s). Recordamos
Recordamo
  d   grande, como unas que
qu e el s´ımbolo
constante ı́mbolo
por
m
d ”.

matriz-vector)   Sea A una matriz cuadrada


Ejemplo 1.2 (producto matriz-vector) cuadrada de or-
n
sea   v  un vector de   R . La
den   n  y sea 
den La   j -ésima

esima compone
componente produc to Av  est´
nte del producto  está
a
dada por

aj 1 v1  + a
 +  aj 2 v2  + .
 +  . . . + a
 + ajn vn ,

y requiere 
requiere   n  productos y n −
y  n 1 sumas. Por tanto, uno necesita 
necesita   n(2n −
(2n 1) ope-
raciones para calcular todas las componentes. De este modo, este algoritmo
requiere (n2 ) oper
O operaciones,
aciones, as´
asıı́ que tiene compleji
complejidad
dad cuadrática
cuadr´atica con resp
respecto
ecto
3
al parámetro
par´
ametro   n. El mismo algoritmo requeri
requerirr´ıa  O
ı́a (n ) operaciones para calcu-

lar el producto
debido aS de dos
Strassen,
trassen, que matrices
“s´
“sólo” de orden
olo” requier
requiere
e (n  nlog
. Sin
 O 7 embargo, hay un algoritmo,
) operaciones y otro, debido a
2

2.376
Winograd y Coppersmith, que requiere (n  O ) operaciones.   

Ejemplo 1.3 (c´(cálculo


alculo del determinante de una matriz)   Como omo se ha
mencionado anteriormente, el determinante de una matriz cuadrada de orden
n  puede calcularse usando la fórmula
f´ormula recursiva (1.8). El algoritmo correspon-
diente tiene complejidad factorial con respecto a n a  n  y s´
sólo
olo ser´
serı́a
ıa util
ut iliz
izabl
ablee para
par a
matrices de pequeña
peque˜na dimensión.
dimensi´ on. Por ejemplo, si   n  = 24, un ordenador capaz
de realizar 1 Petaflops de operaciones (es decir, 10 15 operaciones en punto
flotante por segundo) necesit
necesitar
ar´ıa
ı́a 20 a˜
años
nos para llevar a cabo este cálculo.
c´alculo. Por
tanto uno tiene que recurrir a algoritmos más m´as eficientes. En efecto, existe un
algoritmo que ppermite
ermite el c´
cálculo
alculo d dee deter
determinantes
minantes mediante productos
produc tos matriz
matriz--
log  7
matriz, por tanto con una complejidad de (n ) operaciones
operaciones,, aplicando
2
aplicando el
algoritmo de Strassen mencionad
mencionado o (v´
(véase  O
ease [BB96]).   

El número

umero de operaciones no es el unico
único
´ parámetro
par´ametro que interviene en
el análisis
an´alisis de un algoritmo. Otro factor relevante lo representa el tiempo
que se necesita para acceder a la memoria del computador (que depende
de la forma en que el algoritmo ha sido codificado). Un indicador de
las prestaciones de un algoritmo es, por consiguiente, el tiempo de CPU
(CPU significa  unidad central de proceso ), y puede obtenerse usando el
comando de   MATLAB  cputime. El tiempo total transcurrido entre las   cputime
fases de  entrada   y  salida  puede obtenerse con el comando  etime. etime

Ejemplo 1.4   Para calcular el tiemp


tiempo
o necesar
necesario
io para una multiplicaci
multi plicaci´

onn matriz-
vector escribimos el siguiente programa:

>
>>
> n
s
siiz=e A
4000
0
=0 [
; ]s;te
eppc o u
=n t50
0;; A; = rand (
= 1 (nn,
,nn)
);; v = rand ( n
n)); T =
=[[] ;
>> f o
orr k = 50 0:
:stteep: :nn
 

28 1 Lo que no se puede ign


ignorar
0.5

0.4

0.3

0.2

0.1

0
0 500 1000 1500 2000 2500 3000 3500 4000

Figura 1.8. Producto
1.8.  Producto matriz-vector: tiempo de CPU (en segundos) frente a
la dimensión
dimensi´
on   n  de la matriz (en un PC a 2.53 GHz)

AA = A ((1
1::kk,1 1:
:k)
);; vv = v ( (1
1::k
k)’’;;
t = c pu t i m e ; b = AA * *v
vv ; t t = c p ut i m e - t ;
T = [ T , tt ] ];; si z
zeeA = [ s
siizeA , k ]
];;
end

La instrucción
instrucci´
on  a:step:b  que aparece en el bucle  for  genera todos los números

umeros
que son
valor de la forma   a+step*k   donde   k   es un entero que va de   0   al mayor
  kmax   para el cual   a+step*kmax  no es mayor que   b  (en el presente caso,
rand a=50,   b=4000   y   step=50). El comando   rand(n,m)   define una matriz   n  m   de×
elementos aleatorios. Finalmente,   T  es el vector cuyas componentes contienen
el tiempo de CPU necesario para llevar a cabo un producto matriz-vector,
mientras que   cputime   devuelve el tiempo de CPU en segundos que ha sido
utilizado por el proceso   MATLAB  desde que   MATLAB   empezó. empez´o. El tiempo
necesario para ejecutar un solo programa es, por tanto, la diferencia entre el
tiempo de CPU y el calculado
calculado antes de la ejecuc
ejecuci´
ión
on del programa
programa en curso,
curso,
que se almacena en la variable  t . La Figura 1.8, obtenida mediante el comando
plot(sizeA,T,’o’) , muestra que el tiempo de CPU crece como el cuadrado
del orden de la matriz   n.   

1.6 Los entornos MATLAB y Octave

Los progra
programas
mas   MATLAB   y Octave, son entornos integrados para el

cálculo
alculo y la visualización
visualizaci´on cient
cient´ıficos.
ı́fico s. Están
Est´an escritos en lenguajes C y
C++.
MATLAB  est´ estáa distribuido por The MathWorks
MathWorks (véase
(v´ease el sitio web
www.mathworks.com). El nombre significa  MAT  MATrix rix LABoratory   puesto
que originalmente fue desarrollado para el cálculo c´alculo matricial.
Octave,
Octav e, conocido tambi
tambi´éen
n como GNU Octav Octavee (véase
(v´ease el sitio web
www.octave.org), es un soft softwware ququee se distr
distrib
ibuy
uyee libre
libreme
mennte
te.. Un
Unoo
puede
pue de redist
redistribu
ribuirlo
irlo y/o modifi
modificarcarlo
lo en los t´ térm
ermino
inoss de la Licenc
Licencia
ia
Pública

ublica General (GPL) de GNU publicada por la   Free Software Foun-
dation .
 

1.6
1.6 Los
Los ento
entorn
rnos
os MATL
MATLAB
AB y Octa
Octav
ve 29

Como se ha mencionado en la introducción


introducci´on de eesteste Cap
Cap´ıtulo,
ı́tu lo, hay ddife
ife--
rencias
renci as entre
entre los en entornos
tornos,, lenguajes y  toolboxes   de MATLAB y Octave.
Sin embargo, hay un nivel de compatibilidad que nos permite escribir
la mayor
mayor´ıaı́a de los
l os programas
prog ramas de este libro y ejecutarlos sin dificultad en
MATLAB   y Octave. Cuando esto no es posible, bien porque algunos
comandos se deletrean de manera diferente, o porque operan de forma
diferente
difere nte,, o simp
simplemen
lemente te porque no est´están
an implem
implemen entados
tados,, se escribir´
escribiráa
una nota al final de cada sección secci´on que proporcionar´
proporcionaráa una explicación
explicaci´on e
indicaráa qué
indicar´ qu´e se podrı́dr´ıaa ha
hace
cer.
r.
As´ıı́ como   MATLAB   tiene sus   toolboxes , Octave tiene un rico con-
 junto de funciones disponibles
disp onibles a trav´
través
es del proyecto llamado Octave-forge
(véase
(v´ease el sitsitio
io web  octave.sourceforge.net). Este repositorio de fun-
ciones crece continuamente en muchas áre ´areas
as di
difer
ferentes
entes ttale
aless como ´algebr
álg ebraa
lineal, soporte de matrices
matrices hueca
huecass (o dispersas)
dispersas) u optimizaci´
optimización,on, por citar
algunas. Para ejecutar adecuadamente todos los programas y ejemplos
de este libro bajo Octave, es imprescindible instalar Octave-forge.
Una vez vez insinstal
talado
ados,s, la eje
ejecuc
cuci´
ión
on de   MATLAB   y Octav Octavee permite
permite
el acceso a un entorno de trabajo caracterizado por los   prompt   >>   y   >>
MATLAB
octave:1>, respectivamente.
en un computador Por ejemplo, cuando se ejecuta
personal vemos   octave:1>

< M A T L A B >
Copyrigh
Copyright
t 1984
1984-20
-2004
04 The Math
MathWork
Works,
s, Inc.
Version
Version 7.0.
7.0.0.19
0.19901
901 (R14
(R14)
)
May
May 06
06,
, 20
2004
04

To get
get st
start
arted,
ed, se
selec
lect
t "MA
"MATL
TLAB
AB Help"
Help" fro
from
m the Hel
Help
p me
menu.
nu.
>>

Cuando ejecutamos Octave en nuestro ordenador personal vemos


GNU Octa
Octave,
ve, vers
version
ion 2.1.
2.1.72
72 (x86_64-
(x86_64-pc-l
pc-linux
inux-gnu
-gnu).
).
Copyr
Copyrigh
ight
t (C) 200
2005
5 Joh
John
n W. Eaton.
Eaton.

This is free
This free sof
softwa
tware;
re; see the so
sourc
urce
e cod
code
e fo
for
r co
copyi
pying
ng con
condit
dition
ions.
s.
There
There is ABSOL
ABSOLUTE
UTELY
LY NO WARRAN
WARRANTY;
TY; not ev
even
en for MER
MERCHA
CHANTI
NTIBIL
BILITY
ITY or
FITNE
FITNESS
SS FOR A PAR
PARTIC
TICULA
ULAR
R PU
PURPO
RPOSE.
SE. For deta
detail
ils,
s, typ
type
e ‘w
‘warr
arrant
anty’.
y’.

Additional
Additional informat
information
ion abou
about
t Octa
Octave
ve is avai
availab
lable
le at
http://www.octave.org.

Please
Please con
contri
tribut
bute
e if you
you fi
find
nd this
this sof
softw
tware
are us
usefu
eful.
l.
For more informat
information,
ion, visit http://w
http://www.octave
ww.octave.org/help
.org/help-wanted.
-wanted.html
html

Report
Report bug
bugss to <bug@
<bug@oct
octave
ave.or
.org>
g> (but
(but fi
first
rst,
, pl
pleas
ease
e rea
read
d
http://w
http://www.o
ww.octav
ctave.or
e.org/bu
g/bugs.h
gs.html
tml to learn
learn how to writ
write
e a help
helpful
ful
report).

octave:1>
 

30 1 Lo que no se puede ign


ignorar

1.7 El lenguaje MATLAB

Despu´es de las observaciones introductori


Después introd uctorias
as hechas en la sección
secci´on anterior,
estamos preparados para trabajar en los entornos   MATLAB  y Octave.
Además,
Adem´ as, en adelante,   MATLAB   deber´ deberıa
ı́a entenders
entendersee como el lenguaj
lenguajee
MATLAB  que es la intersección
intersecci´on de ambos,   MATLAB  y Octave.
Tras pulsar la tecla  enter   (o  return ),), todo lo que se escribe despu´
después
es
 3
del  prompt  se
 ser´ráa int
inter
erpr
preta do.. Concretamente,   MATLAB  comprobar´
etado  comprobaráa
primero si lo que se escribe corresponde a variables que ya han sido
definidas o al nombre de uno de los programas o comandos definidos en
MATLAB. Si todas esas comprobaciones fallan, MATLAB devuelve un
aviso de error. Caso contrario, el comando es ejecutado y posiblemente
se visualizar´
visualizaráa una  salida . En todos los casos, el sistema devolverá
devolver´a even-
tualmente el   prompt  para poner de manifiesto que est´ estáa preparado para
un nuevo comando. Para cerrar una sesión sesi´on de   MATLAB   uno uno de
deb
ber´
erı́ıaa
quit escribir el comando   quit   (o  exit) y pulsar la tecla  enter . En adelante
exit   se ent
entende
ender´
ráa que para ejecutar un programa o un comando uno tiene
que pulsar la tecla   enter . Además,
Adem´as, los t´ términos
erminos progr
programa,
ama, funci´
función
on o
comando se utilizarán
utilizar´an de forma equivalente. Cuando nuestro comando
coincida con una de las estructuras elementales que caracterizan a MAT-
LAB  (por ejemplo un númeron´
umero o una cadena de caracteres que se ponen
entre apóstrofe
ap´ostrofes)
s) ´éstos
estos son inmedia
inmediatamente
tamente devuelt
devueltos
os como  salida  en la
ans variable por defecto   ans  (abreviatura de  answer ). He aqu´
aquıı́ un ejemplo:
>> ’c
caasa ’

ans
ans =
casa

Si ahora escribimos una cadena de caracteres (o número) n´


umero) diferente,
ans  asu
 asumir´
miráa este nuevo valor.
Podemos
Pode mos de desact
sactivar
ivar la pr
presenta
esentaci´
ción
on autom´
au tomática
atica de la  salida  escribien-
  escribien-
do un punto y coma después
despu´es de la cadena de caracteres. De este modo, si
escribimos  ’casa’;   MATLAB   devolverá
devolver´a simplemente el   prompt   (asig-
nando sin embargo el valor  ’casa’  a la variable   ans).
= Con más
m´as generalidad, el comando  =  permite la asignaasignaci´
ción
on de un valor
(o de una cadena de caracteres) a una variable dada. Por ejemplo, para
asignar la cadena   ’Bie
’Bienve
nvenid
nidoo a Madrid
Madrid’ ’  a la variable   a  podemos es-
cribir
>> a = ’ B i e n
nvven
niido a Mad
drrid’;

De este modo no hay necesidad de declarar el  tipo  de una variable,


MATLAB lo haráhar´a automática
autom´atica y din´dinámicamente.
amicamente. Por ejemplo, si escribi-
mos   a=5, la variable   a  contendr´
 contendráa ahora un n´
número
umero y ya no una cadena
3 Ası,
As´
ı́, un prog rama   MATLAB   no tiene necesariamente que ser compilado
programa
como requieren otros lenguajes, por ejemplo, Fortran o C.
 

1.7 El len
lenguaj
ajee MATLAB 31

de caracteres. Esta flexibilidad no es gratis. Si ponemos una variable


de nombre   quit   igual al número

umero   5  estamos inhibiendo el comando de
MATLAB quit. Por consiguiente, deber´ deberı́ıamos
amos tratar de evitar el uso de
variables que tengan el nombre de comandos de MATLAB. Sin embargo,
mediante el comando  clear  seguido por el nombre de una variable (por   clear
ejemplo  quit), es posible cancelar esta asignación
asignaci´on y restaurar el signifi-
cado original del comando  quit.
Mediante el comando  save  todas las variables de la sesiónsesi´on (que están
est´an   save
almacenadas en el llamado “espacio básico b´asico de trabajo”,  base workspace ),
se salvan en el archivo binario  matlab.mat. Análogamente,
An´alogamente, el comando
load   restaura en la sesión
sesi´on en curso todas las variables almacenadas en   load
 matlab.mat. Se puede especificar un nombre de fichero despu´ después
es de  save
o  load. Uno puede también
tambi´en salvar s´
sólo
olo variables seleccionadas, digamos
v1,   v2   y   v3, en un fichero llamado, por ejemplo,   area.mat, usando el
comando   sav rea v1 v2 v3.
save area
Mediante el comando  help  uno puede ver la totalidad de la familia   help
de comandos y variables predefinidas, incluyendo las llamadas  toolboxes 
que son conjuntos de comandos especializados. Entre ellos recordemos
aquéllos
aqu´ellos que definen las funciones elementales tales como seno (sin(a)),   si sin
sqrt
n cos
cos
sqrt exexp
p
coseno (cos(a)), ra´ raı́ızz cuadrad
cuad radaa (sqrt(a)), exponencial (exp(a)).
Hay caracteres especiales que no pueden aparecer en el nombre de
una variable ni tampoco en un comando, por ejemplo los operadores
al
alge
gebr
brai
aico
coss (+,   -,   *   y   /), los operadores
oper adores lógicos
l´ogicos   y   (&),   o   (|),   no   (˜ ),
),
+ -
los operadores relacionales   mayor que   (>),   mayor o igual que    (>=),
* / & |
menor que   (<),  menor o igual que   (<=),  igual a   (==). ==). Finalmente, un
~   >>
>>==<
nombre nunca puede empezar con una cifra, un corchete o un signo de <===
puntuación.
puntuaci´ on.

1.7.
1.7.1
1 Inst
Instrucc
ruccione
ioness de MA
MATLAB
TLAB

Unalengua
est´
estálenguajeje especial
disponible, de programación,
programaci´
permitiendo on, el lenguaje
a los usuarios escribir  MATLAB , tambi´
mbién
nuevos programas. en
Aunque no se requiere su conocimiento para entender cómo c´omo usar los di-
versos programas que introduciremos a lo largo de este libro, puede pro-
porcionar al lector la capacidad de modificarlos as as´ı́ı como la de producir
otros nuevos.
El lenguaje   MATLAB   incluye
incluye instr
instruccio
ucciones
nes est´
estánd
andar,
ar, tal
tales
es como
como
condicionale
condi cionaless y bucle
bucles.
s.
El  if-elseif-else  condicional tiene la siguiente forma general:
if con nddic
ciion(1 1)
)
instruccion(1)
e l s e if
if c o n d i
iccion(2)
instruccion(2)
.
.
.
 

32 1 Lo que no se puede ign


ignorar

else
instruccion(n)
end

donde   condicion(1),   condicion(2), ... representan conjuntos de ex-


presiones lógicas
l´ogicas de   MATLAB, con valores 0 o 1 (falso o verdadero) y
la construcción
construcci´on entera permite la ejecuci´ejecución
on de la instrucci´
instrucciónon correspon-
diente a la condición
condici´on que toma el valor igual a 1. Si todas las condiciones
fuesen falsas, tendr
tendr´ıa
ı́a lugar la ejecuci´
ejecuciónon de  instruccion(n). De hecho, si
el valor de  condicion(k)  fuese cero, el control se mover mover´ı́ıaa hacia delante.
Por ejemplo, para calcular las ra ra´ı́ıces
ces de un polinomio cuadr´ atico   ax2 +
cuadrático
bx +
bx  + c
 c uno
 uno puede usar las siguientes instrucciones (el comando  disp(.)
simplemente presenta lo que se escribe entre corchetes):
>> if a ~= 0
sq = sqrt
sqrt(b
(b*b
*b - 4*a*
4*a*c)
c);
;
x(1)
x(1) = 0.5*
0.5*(-
(-b
b + sq)/
sq)/a;
a;
x(2)
x(2) = 0.5*
0.5*(-
(-b
b - sq)/
sq)/a;
a;
elseif b ~= 0
x(1)
x(1) = -c/b
-c/b;
; (1.13)
elseif c ~= 0
disp(’
disp(’ Ecuacion
Ecuacion imposible’
imposible’);
);
else
disp
disp(’
(’ La ecua
ecuaci
cion
on dada
dada es una
una iden
identi
tida
dad’
d’)
)
end

Nótese
otese que MATLAB no ejecuta ej ecuta la construcc
construcci´
ión
on co
completa
mpleta hasta que no no
se teclea
tecl ea la inst
instrucrucci´
ción
on   end.
MATLAB   permite dos tipos de bucles, un bucle   for   (comparable
al bucle   do   de FORTRAN o al bucle   for   de C) y un bucle   while . Un
bucle   for  repite las instrucciones en el bucle mientras el ´ındice ı́ndice toma los
valores contenidos en un vector fila dado. Por ejemplo, para calcular los
seis pri
primero
meross t´ térmi
erminos
nos de la suce
sucesi´
sión
on de Fib
Fibona
onacci
cci f 
 f i   = f i−1 + f i−2 , para
i  3, con 
 ≥ con   f 1   = 0 y   f 2  = 1, uno puede usar las siguientes instrucciones:
>> f (
(11 ) = 0 ; f (2
(2) = 1;
>> f
foor i = [3 4 5 6]
f (i
(i ) = f (
(ii-1
1)) + f(
(ii-2
2));
end

N´otese que se puede usar un punto y coma para separar varias ins-
Nótese
trucciones   MATLAB  te  teclea
cleadas
das en la mism
mismaa l´ınea.
ı́ne a. Obsérves
Obs´ervesee también
tambi´en
que podemos reemplazar la segunda instrucción
instrucci´on por   for i = 3:6, que
es equivalente. El bucle  while  se repite en tanto en cuanto la  condici´
 condición
on
dada sea cierta. Por ejemplo, el siguiente conjunto de instrucciones puede
utilizarse como alternativa al conjunto anterior:
>> f
f(( 1 ) = 0 ; f (2
(2 ) = 1 ; k = 3;

>> w h
hii
f(l
lee
k )k= <f
=( 6
k--1
1) + f(k -
-22); k = k + 1;
end
 

1.7 El len
lenguaj
ajee MATLAB 33

Existen otras instrucciones de uso quizás quiz´as menos frecuente, tales como
switch ,  case ,  otherwise . El lector interesado puede tener acceso a su sig-
nificado a trav´
través
es del comando  help.

1.7.
1.7.22 Prog
Programac
ramaci´
ión
on en MA
MATLAB
TLAB

Expliquemos breveme
brevemente
nte cómo
c´omo escribir programas en   MATLAB. Un
programa nuevo debe introducirse en un archivo con un nombre dado con
extensión
extensi´ on   m, que se llama  m-file . Estos ficheros deben estar localizados
en una de las carpetas en las que   MATLAB   busca automáticamente
autom´aticamente
los   m-files ; su lista puede obtenerse mediante el comando   path   ((v v´éeaase   path
help
hel path  para saber cómo
p path c´
omo a˜añadir
nadir una carpeta a esta lista). La primera
carpeta escaneada por   MATLAB  es la “carpeta de trabajo en curso.
A este nivel es importante distinguir entre   scripts   y  functions . Un
script  es simplemen
simplemente te una colecci´
colección
on de comandos de   MATLAB  en un
m-file  y puede ser usado interactivamente. Por ejemplo, el conjunto de
instrucciones (1.13) puede dar origen a un   script   ((queque po
podr
dr´ı́ıamos
amos lla-
mar  equation) copiándolo
copi´andolo en el archivo  equation.m. Para lanzarlo, se
puede escribir simplemente la instrucción
instrucci´
on  equation  de
 desp
spu´
ués
es del
de l  prompt 
de   MATLAB   >> >>.. Mostramos a continuación
continuaci´on dos ejemplos:
>> a = 1 ; b = 1 ; c = 1 ;
>> equation

ans =
ans
-0.5
-0.500
000
0 + 0.86
0.8660
60i
i -0.5
-0.500
000
0 - 0.86
0.8660
60i
i

>> a = 0 ; b = 1 ; c = 1 ;
>> equation

ans
ans =
-1

Puesto que no tenemos interfaz de entrada-salida, todas las variables usa-


das en un  script  so
 sonn también
tambi´en las variables de la sesión
sesi´on de trabajo y son,
por tanto, borradas
b orradas solamente ba bajo
jo un comando expl´
explıcito
ı́cito (clear). Esto
no es en absoluto satisfactorio cuando uno intenta escribir programas
más
m´as complejos involucrando muchas variables temporales y comparati-
vamente menos variables de entrada y salida, que son las unicas únicas
´ que
pueden ser efectivamente salvadas una vez terminada la ejecución ejecuci´on del
programa. Mucho más m´as flexible que los  scripts  son las  functions .
Una   function   también
tambi´en se define en un   m-file , por ejemplo   name.m,
pero tiene un interfaz de entrada/salida bien definido que se introduce
mediante el comando  function   function
f u n c t io
io n [ o u t 1 , .
...., out
tnn]= nam
mee(in1,..., inm)
 

34 1 Lo que no se puede ign


ignorar

donde  out1,...,outn  son las variables de salida e  in1,...,inm  son las


variables de entrada.
El archivo siguiente, llamado  det23.m, define una nueva función
funci´on de-
nominada   det23   que calcula, de acuerdo con la fór
f´orm
mula
ula da
dada
da en la
Sección
Secci´
on 1.3, el determinante de una matriz cuya di
dimensi´
mensión
on podr
po dr´ı́ıaa ser 2
o 3:
f u n c ti
ti o n d e t = d e t 2 3 ( A )
% D E T2
T2 3 c a allc
cuul
laa el d e t teer
rmminna
antte
e de un na
a ma attrriiz cu
uaad
drra
adda
% de d i m e n s i o n 2 o 3
[ n ,m
,m ]]==siz ze
e(A); if n= ===m
if n = = =2
2
d et
et = A ( 1 , 1 1))*A(2, ,22)-A(2,1 1)
)*A(1,2 2));
e ls
ls e i
iff n == 3
d et
et = A ( 1 , 1 ) )**det2 233(A([2,3],[ [22 , 3 ] ))
)) - . . .
A(1,2)*det23(A([2,3],[1,3]))+...
A(1,3)*det23(A([2,3],[1,2]));
else
d is
is p ( ’ S o
ollaammeenntte
e ma attr
riic
cees 2x2 o 3x3’) );;
end
else
d is
is p ( ’ S o lla
ame ennte mat tr
riccees cua ad
dra addas’);
e nd
nd r e t tuurn

... N´otese el uso de los puntos suspensivos   ...   que significan que la ins-
Nótese
% tru
trucci
cci´on
ón cont
contin
in´ ua
úa en la l´ı́ınea
nea siguie
siguiente
nte y el carácter
car´
acter   %  para iniciar co-
mentarios. La instrucción
instrucci´on  A([i,j],[k,l])   permite la construcción
construcci´on de
 ×
una matriz 2   2 cuyos elementos son los de la matriz original A que
están
est´
an en las intersecciones de las filas   i-´ -és
esiima y   j-´
-ésim
esimaa con las colum-
col um-
nas   k-´
-éesi
simma y   l-é
-´essima.
Cuando se invoca una  function , MATLAB crea un espacio de trabajo
local (el   espacio de trabajo de la function ). ). Los comandos dentro de la
 function   no se pueden referir a variables del espacio de trabajo global
(interactivo) salvo que se pasen como entradas. En particular, las varia-
bles utilizadas por una  function   se borran b orran cuando la ejecuci´
ejecución
on termina,
salvo que se devuelvan como parámetros par´ametros de salida.

Observación
Observaci´ on 1.2 (variables globales)  Existe la posibilidad de declarar va-
riables  globales , y utilizarlas dentro de una  function  sin necesidad de pasarlas
como entradas. Para ello, deben declararse como tales en todos los lugares
donde se prentenda utilizarlas. A tal efecto,   MATLAB  dispone del comando
global global  (v´
 (véase,
ease, por ejemplo, [HH05]). Si vavarias
rias funciones, y posiblemente el es-
pacio de trabajo, declaran un nombre particular como variable global, entonces
todas comparten una copia de esa variable. Una asignación
asignaci´on a esa variable en
cualquiera de ellas (o en el espacio de trabajo), queda disponible para todas
las demás.
dem´ as.   •
Generalmen
Gene ralmente te las   functions   terminan cuando se alcanza el   end   de la
instrucci´on  return  para forzar
return  function , sin embargo se puede usar una instrucción
un regreso más
m´as temprano (cuando se cumple cierta condición).
condici´on).
Por ejemplo, para aproximar el númer n´
umeroo de la secc
secci´
ión
on de oro   α   =
1.6180339887 . . ., que es el l´ı́ımite
mite para
para   k  → ∞
  del
del coc
cocieien
nte de do
doss
 

1.7 El len
lenguaj
ajee MATLAB 35

n´umeros de Fibonacci consecutivos,   f k /f k−1 , iterando hasta que la di-


números
ferencia entre dos cocientes consecutivos sea menor que 10−4 , podemos
construir
construir la siguient
siguientee  function :
f u n c t io
io n [ g o l d e
enn ,k]=fibonacci0
f (1
(1 ) = 0 ; f ( (22) = 1; goldenold = 0;
k ma
ma x = 1 0 00
0 ; to l = 1 . .e
e-0
044;

for f k
(k =
(k ) 3 =: f
k(m
ma
(kax
k -1
1)) + f( (k
k-22));
g o ld
ld e n = f ( k ) )/
/f(k-1) );
;
if ab bss(gol ldde
enn - go ol
ldde
enno
olld
d) <= to
oll
return
end
g ol
ol d
deenno
olldd = go olld
deen;
end
return

Su ejecución
ejecuci´on se interr
i nterrump
umpee d
despu´
espués
es de  kmax=100  iteraciones o cuando el
valor absoluto de la diferencia entre dos iterantes consecutivos sea más
m´as
pequeña
peque˜na que  tol=1.e-04. Entonces, podemos escribir

[alpha,niter]=fibonacci0

alph
alpha
a =
1.61805555555556
nite
niter
r =
14

Despu´es de 14 iteraciones
Después iteraci ones la  function  ha devuelto un valor aproximado
que comparte con 
con   α  las 5 primeras cifras significativas.
El número
n´umero de par´
parámetros
ametros de entrada y salida de una   function   en
MATLAB  puede variar. Por ejemplo, po podr
dr´ı́ıamos
amos modificar la  function 
de Fibonacci como sigue:
f u n c t io
io n [ g o l d e
enn ,k]=fibonacci1(to ol
l ,kmax)
if na r rg
gi n == 0
k ma
ma x = 1 0 00
0 ; tol = 1 . .ee-004
4; % va allo
orre
ess po
orr de
effe
ecct
too
e ls
ls eeiif na ar
rggi
in == 1
k ma
ma x = 1 0 00
0; % va allo
orr po r d eeffe
ecct
too soollo paar
ra kmmaax
end
f (1
(1) = 0; f ( (22) = 1; goldenold = 0;
for k = 3: k m maax
f (k
(k ) = f ( (kk-1 1)) + f( (k
k-22));
g o ld
ld e n = f ( k ) )//f(k-1) );
;
if ab bss(gol lddeenn - go ol
ldde
enno
olld
d) <= to ol
l
return
end
g ol
ol d
deenno
olld
d = go ol
ldde
en;
end
return

La  function   nargin  cuenta el número



umero de par´
parámetros
ametros de entrada. En la   nargin
nueva versión
versi´on de la  function   fibonacci   podemos prescribir el máximo
m´aximo
número

umero de iteraciones internas permitidas (kmax) y especificar una tole-
rancia  tol . Cuando esta información
informaci´on se olvida, la  function  debe
  debe suminis-
 

36 1 Lo que no se puede ign


ignorar

trar valores
valores por defec
defecto
to (en nue
nuestro
stro caso,   kmax 100  y   tol
kmax = 100 tol = 1.e-04).
1.e-04
Un ejemplo de ello es el siguiente:
[alpha,niter]=fibonacci1(1.e-6,200)

alph
alpha
a =
1.61803381340013
nite
niter
r =
19

N´otese que utilizando una tolerancia más


Nótese m´as estricta hemos obtenido un
nuevo valor aproximado que comparte con  con   α  ocho cifras significativas.
La  function   nargin  puede ser usada externamente a una  function   dada
para obtener el número

umero de sus parámetros
par´ametros de entrada. He aqu aqu´ıı́ un ejem-
plo:
nargin(’fibonacci1’)

ans
ans =
2

inline Observaci´
Observación on 1.3 (funci
(funciones
ones en l´ınea)
ı́nea)   El comando   inline, cuya sintaxis
más
m´ as simple es   g=inline(expr,arg1,arg2,...,argn), declara una función funci´on   g
que depende de las cadenas de caracteres   arg1,arg2,...,argn. La cadena
expr contiene la expresión
expresi´on de g. Por ejemplo,  g=inline(’sin(r)’,’r’) declara
la funci´
función
on   g (r ) = sen(r). El coma comand ndo
o abre
abrevia
viado
do   g=inline(expr)   asume
impll´ıcit
imp ı́citame
amente
nte ququee   expr  es una función
funci´ on de la variable por defecto   x. Una vez
que una función
funci´ on   inline   ha sido declarada, puede ser evaluada para cualquier
conjunto de variables a trav´ través
es del comando  feval. Por ejemplo, para evaluar
g  en los puntos   z z=[
=[00 1]  podemos escribir
>> feval(’g’,z);

Nótese
otese que, contrariamente al caso del comando  eval, con  feval el nombre
de la variable (z) no necesita coincidir con el nombre
nombre simbólico
simb´olico (r) asignado
por el comando   inline.   •
Despu´
Desp ués
es de esta rápida
r´apida introducci´
introducción,
on, nuestra sugerencia es explorar
MATLAB   usandousando el com
comand
andoo   help, y ponerse al tanto de la imple-
mentación
mentaci´ on de varios algoritmos mediante los programas descritos a lo
largo de este libro. Por ejemplo, tecleando   help for   conseguimos no
help for
sólo
s´olo una descripci´
descripción
on completa del comando   for  sino tambi´
tambiénen una ind
indi-
i-
cación
caci´on sobre instrucciones similares a  for , tales como  if ,  while,  switch,
break y  end. Invocando sus  help  p
 podemos
odemos mejorar progresiv
progresivamente
amente nue
nues-
s-
tro conocimiento de   MATLAB.

Octave 1.7   Hab


Habla
land
ndoo en gene
genera
ral,
l, un ´area
á rea con
con poc
pocos
os elem
elemen
ento
toss en
com´
común
un es la de los medios para dibujar de   MATLAB  y Octave. Com-
probamos
probam os que la ma
mayor
yor´ıa
ı́a de los comandos
comandos de dibujo que aparec
aparecen
en en
el libro son reproducibles en ambos programas, pero existen de hecho
 

1.7 El len
lenguaj
ajee MATLAB 37

muchas diferencias fundamentales


muchas fundamentales.. Por defecto, el entorno de Octav Octavee para
dibujar es GNUPlot; sin embargo el conjunto de comandos para dibujar
es diferente y opera de forma diferente de   MATLAB. En el momento
de escr
escribir
ibir esta secc
secci´
ión,
on, exist
existen
en otras bibliot
bibliotecas
ecas de dibujo en Octa
Octave
ve
tales como  octaviz  (v´
 (véa
ease
se el si
siti
tioo web,   http://octaviz.sourceforge.
http://octaviz.sourceforge.
net/),  epstk   (http://www.epstk.de/) y  octplot   (http://octplot.
sourceforge.net). La última
ultima
´ es un intento de reproducir los comandos
de dibujo de   MATLAB  en Octave.   

Véanse

eanse los Ejerci
Ejercicios1.9
cios1.9-1.13
-1.13..

1.7.3 Ejem
Ejemplos
plos de difer
diferencias entre los lenguajes   MATLAB   y
encias
Octave

Como ya se ha mencionado,
mencionado, lo que se ha escrito
escrito en las secc
secci´
ión
on anterior
anterior
sobre el lenguaje   MATLAB   se aplica a ambos entornos,   MATLAB   y
Octave, sin cambios. Sin embargo, existen algunas diferencias para el
lenguaje
lengua je en s´ı.
ı́. As´
Ası,
ı́, programas escritos en Octave
Octave pueden no correr en
MATLAB  y viceversa. Por ejemplo, Octave soporta cadenas de carac-
teres con comillas simples y dobles
o c ta
ta v e : 1 > a = " B i e
ennve
enniddo
o a Mad
drrid"
a = Bi ieennvve
enni
iddo a Ma addr
riid

o c ta
ta v e : 2 > a = ’ B i e
ennve
enniddo
o a Mad
drrid’
a = Bi ieennvve
enni
iddo a Ma addr
riid

mientras que   MATLAB   sólo


mientras s´
olo soporta
soporta com
comilla
illass se
senci
ncillas
llas;; las com
comilla
illass
dobles originan errores.
Proporcionamos aqu´
aquı́ı una lista con otras cuantas incompatibilidades
entre los dos lenguajes:
  MATLAB
- ejemplo,    [0
[no permite
0 1]’
1] un blanco
’  funciona antes del
en   MATLAB operador
, pero trasponer.
  [0 1] Por
’   no. Octave
permite ambos casos;
-   MATLAB  siempre requiere   ...,
r an
an d ( 1 , . .
...
2)

mientras que ambas


r an
an d ( 1 ,
2)

y
rand (1 , \
2)

funcionan en Octave además


adem´as de   ...;
 

38 1 Lo que no se puede ign


ignorar

- para la exponenc
exponenciaci´
iación,
on, Octave puede usar   ^  o   **; MATLAB requiere
^;
- como termi
terminacion
naciones,
es, Octav
Octavee usa   end  per
 peroo ta
tambi
mbi´en
én   endif,   endfor,...;
MATLAB  requiere   end.

1.8 Lo que no le hemos dicho

Una discusión
discusi´on sistemática
sistem´atica sobre los n´
números
umeros de punto flotante puede
encontrarse en [Ube97], ¨ be97], [Hig02] o en [QSS06].

Para cuestiones relativas al tema de la complejidad, remitimos, por
ejemplo, a [Pan92].
Paraa una int
Par introducci´
roducción
on m´
más
as si
siste
stem´
máti
aticaca a   MATLAB  el lector intere-
sado puede consultar el manual de   MATLAB   [HH05] as as´ıı́ como libros
libro s
espec´ı́ıficos
espec ficos tales como [HLR01], [Pra02], [EKM05], [Pal04] o [MH03].
Para Octave recomendamos el manual mencionado al principio de
estee ca
est cap p´ı́ıtul
tulo.
o.

1.9 Ejercicios

Ejercicio 1.1   ¿Cuántos


¿Cu´ antos n´
números
umeros pertenecen al conjunto   F(2, −
(2, 2, 2, 2)? ¿Cuál
¿Cu´
al
es el valor de 
de   M   para este conjunto?

Ejercicio 1.2  Demostrar que  F (β,t,L,U ) contiene precisamente 2(β  1)β t


2(β  1)β  − −1

 −
 −
(U  L + 1) elementos.

Ejercicio 1.3   Probar que   ii es un número



umero real; a continuaci´
continuación
on comprobar
este resultado utilizando  MATLAB  u Octave.

Ejercicio 1.4   Escribir en MATLAB las instrucciones para construir una ma-
triz triangular sup
superior
erior (respectivam
(respectivamente,
ente, inferior)
i nferior) de dimensión
dimensi´
on 10 teniendo 2
 −
en la diagonal principal y 3 en la diagonal superior (respectivamente, infe-
rior).

Ejercicio 1.5   Escribir


Escribir en   MATLAB   las instrucciones que permiten el in-
tercambio de las l´ı́ıneas
neas tercera y séptima

eptima de las matrices construidas en el
Ejercicio 1.3, y luego las instrucciones que permiten el intercambio entre las
columnas cuarta y octava.

Ejercicio 1.6   Verificar si los siguientes vectores de   R4 son linealmente inde-


pendientes:

1],   v2  = [1 2 3 4],
v1  = [0 1 0 1], 0],   v4  = [0 0 1 1].
4] ,   v3  = [1 0 1 0], 1].
 

1.9 Ejercicios 39

Ejercicio 1.7   Escribir las siguientes funciones y calcular sus deriv


derivadas
adas primera
y segunda, as´
asıı́ como sus primitivas,
primitivas, usando la  toolbox   de cálcu

alculolo simbólic
simb´olicoo de
MATLAB:

f (
f (x) =
  x2 + 1,
1, sen(x3 ) + cosh(x
g (x) = sen(x cosh(x).

Ejercicio
mando   c= 1.8   Para
c=poly(v)
poly(v) cualquier
  uno vector dado
puede construir (  n
el (n v   de dimensión
dimensi´
esimo on
  + 1)-ésimo
1)-´   n, iente
usando
coeficiente
coefic delelpoli-
co--   poly
poli
nomio   p(x) = n
nomio
 +1
k=1  c (k)x
n+1 k −
que es igual a a   Π kn=1 (x v(k)).
− )) . En ari
aritm´
tmét
eticica
a
exacta,
exac ta, uno enc
encontrar´
ontrarı́a
ıa que   v = root
roots(po
s(poly(c
ly(c)) )). Sin embargo, esto no puede
ocurrir debido a los errores de redondeo, como puede comprobarse usando el
comando   roots(poly([1:n])), donde   n  va de 2 a 25.

Ejercicio 1.9   Escribir un programa para calcular la siguiente sucesión:


sucesi´on:
 1
− 1),
1),
I 0   = (e
e
− (n + 1)I 
I n+1   = 1 1)I  ,   para 
para   n  = 0, 1, . . .
n

Comparar el resultado numérico


num´erico con el l´ı́ımite exacto   I   → 0 para 
mite exacto para   n → ∞.
n

Ejercicio 1.10   Explicar el compor


comportam
tamient
iento
o de la sucesi´
sucesión
on (1.4) cuan
cuando
do se
calcula con  MATLAB.

Ejercicio 1.11   Consid´


Co nsidérese
erese el siguiente
si guiente algoritmo para calcular
c alcular   π. Genere 
Genere   n
 { }
pares (xk , yk )   de números
n´ umeros aleatorios en el intervalo [0, [0 , 1], entonces calcule
el número

umero m m  de los que están
est´an de
dentro
ntro de
dell primer
pr imer cuadrante del c´ı́ırculo
rculo unidad.
Obviamente,   π   resulta
result a ser el l´ı́ımite
mite de la sucesión
sucesi´on   πn   = 4m/n
m/n.. Escriba un
programa en  MATLAB  para calcular esta sucesi´ sucesión
on y compruebe el error para
valores crecientes de 
de   n.

Ejercicio 1.12   Puesto que 


que   π  es la suma de la serie

π  = 16 n
 
n=0
8 n +
4 1  − 8 n +
2 4   + 8 n +
1 5   + 8 n +
1 6  ,

po demos calcular una aproximación


podemos aproximaci´on de 
de   π   sumando
suman do hasta
hast a el térmi
t´ermino
no   n-´
-éessimo,
para un n
un n suficientemente
 suficientemente grande. Escribir una  function  MATLAB para calcu-
lar sumas finitas de la serie anterior. ¿Cómo
¿C´omo deb debee ser de grande n
grande n para
 para obtener
una aproximación
aproximaci´on de
de π
 π  al menos tan precisa como la almacenada en la varible
π?

Ejercicio 1.13   Escribir un programa para el cálculo c´alculo de los coeficientes bi-
n
nomiales ( k ) =   n!/(k!(n −
!(n k)!), donde 
donde   n   y   k   son dos números

umeros naturales con

k n.

Ejercicio 1.14   Escribir en   MATLAB   una  function   recursiva que calcule el


n-´
-ési
esimomo eleme
elemento
nto   f n  de la sucesión
sucesi´on d
dee Fibonac
F ibonacci.
ci. Observando qu
quee
 

40 1 Lo que no se puede ign


ignorar
  
  f i
 =
 1 1
 
  f i
−1
  (1.14)
f i 1
− 1 0 f i
−2

escribir otra   function   que calcule   f n   basado en esta nueva forma recursiva.
Finalmente, calcular el tiempo de CPU correspondiente.
 

Ecuaciones no lineales

Calcular los   ceros  


ceros   de una función
funci´on real   f  
f   (equivalentemente, las   raı́
ra´ıce
ces s 
de la ecuación
ecuaci´on   f (
f (x) = 0) es un problema que encontramos bastante a
menudo en cálculo
c´alculo cient
cient´ıfico.
ı́fico. En general, esta tarea no puede realizarse
en un número
n´umero finito de operaciones. Por ejemplo, ya hemos visto en la
Sección
Secci´
on 1.4.1 que cuando   f   f   es un polinomio gen gen´éerico
rico de grado mayor
mayor
o igual que cuatro, no existe una fórmula f´ormula explexpl´ıcita
ı́cita para los ceros. La
situación
situaci´
on es a´
aún
un m´
más
as dif´
difı́ci
ıcill cua
cuando
ndo   f  no
f  no es un polinomio. Por tanto se
emplean métodos
m´etodos iterativos. Empezando por uno o varios datos iiniciales, niciales,
(k )
los m´
métod
etodos
os construyen una sucesi´ sucesión
on de valores 
valores   x que se espera que
converjan a un cero 
cero   α  de la función
funci´on   f  que
f  que nos ocupa.

Problema 2.1 (Fondos de inversi´ on)   Al principio de cada año


inversión) a˜no un
banco deposita 
deposita   v  euros en un fondo de inversión
inversi´on y retira un capital de
M    euros al final del   n-´
M  -és
esim
imoo ano.

˜ o. Queremos calcular el tipo medio de
inte
in ter´
rés
es anu
anual
al   r  de esta inversión.
inversi´on. Puesto que 
que   M 
M    está
est´a relacionado con 
con   r
por la igualdad
n
 1 + r
+ r
M   = v + r))k = v
(1 + r  r))n − 1] ,
  [(1 + r
r
k=1

deducimos que 
que   r  es ra
ra´ız
ı́z de la ecua
ecuaci´
ción
on algeb
algebraica:
raica:
1 + r
+ r
f ((r) = 0,   donde 
f  f ((r) = M   − v
donde   f   r))n − 1]
  [(1 + r 1]..
r
Este problema será
ser´a resuelto en el Ejemplo 2.1.   

Problema 2.2 (Ecuaci´ on de estado de un gas)  Queremos determi-


(Ecuación
nar el volumen 
volumen   V 
V  ocupado
 ocupado por un gas a temperatura 
temperatura   T 
T    y presión
presi´on   p. La
ecuación
ecuaci´
on de estado
es tado (es decir,
d ecir, la ecuaci´
ecuación
on que relaciona 
relaciona   p,   V 
V    y   T 
T )) es
2
 
 p +
 p  + a
 a((N/V  )
 ) (V   N b)  kNT,   (2.1)

42 2 Ecuacio
ion
nes no li
lin
neal
alees

donde   a   y   b   son dos coeficientes que dependen de cada gas,   N  N    es el


número

umero de mol´ moléculas
eculas que est´ están
an contenidas en el volumen   V 
V    y   k   es la
constante de Boltzmann. Por tanto, necesitamos resolver una ecuación ecuaci´ on
no lineal cuya ra ra´ız
ı́z es
es   V 
V    (v´
(véase
ease el Ejer
Ejercici
cicioo 2.2)
2 .2)..   

Prob lema
Problem a 2.3 (Est´
(Estátic a)   Consideremos
atica) Consideremos el sistema mec´ mecánico
anico repre-
sentado por las cuatro barras r´ıgidas ı́gida s  a i  de la Figura 2.1. Para cualquier
valor admisible del ´ángulo
angulo   β , determinemos el valor del correspondiente
´ángulo  α entre
angulo α  entre las barras a
barras  a 1   y  a 2 . Empezando por la identidad vectorial

a1 − a2 − a3 − a4   =  0

y observando que la barra a


barra  a1  est´
 estáa siempre alineada con el eje x
eje  x,, podemos
deducir la siguiente relación
relaci´on entre 
entre   β   y   α:

a1   a1 a21  +  a22 − a23  +


 + a  a24
 + a
cos(β 
cos( β ) − cos(α
cos(α) − cos(
cos(β 
β  − α) = − ,   (2.2)
a2 a4 2a2 a4

donde  a i  es la longitud conocida de la i


donde a la  i-´
-és
esimimaa ba
barr
rra.
a.  Esta

´ sta es la ecuación
ecuaci´on
de Freudenstein, y podemos reescribirla como sigue:   f  f ((α) = 0, donde

  a21  +  a22 − a23  +


 + a  a24
 + a
f ((x) = (a1 /a2 ) co
f  cos(
s(β 
β ) − (a1 /a4 ) co
cos(
s(x
x) − cos(
cos(β 
β  − x) + .
2a2 a4

Se dispone de una solución


soluci´on expl
expl´ıcita
ı́cita solamente para valores especiales
de β 
de  β . Tambi´
ambién
en nos gus gustar
tar´ıa
ı́a menc
mencion
ionar
ar que no exi existe
ste sol
soluci´
ución
on para todos
los valores de 
de   β , e incluso puede no ser ´unica. única. Para resolver la ecuación
ecuaci´on
para cualquier β 
cualquier β  dado
  dado entre 0 y π
y π d
 debeber´
erı́ıamo
a moss inv
invooca
carr m´
mét
etoodo
doss num´
numér
eric
icos
os
(véase
(v´
ease el Ejercici
Ejercicioo 2.9).   

y
a3

a2 a4

α β 

x
a1

Figura 2.1.
2.1. Sistema
 Sistema de cuatro barras del Problema 2.3
 

2.1 M´
Métod
etodo o de bisecc
bisecci´
ió
on n 43

Problem a 2.4 (Din´


Problema (Dinámica
amica de po poblacion
blaciones)
es)  En el estudio de las po-
ecuaci´on   x+ =   φ(x) =   xR
blaciones (por ejemplo de bacterias), la ecuación xR((x)
establecee un v´ınculo
establec ı́nculo entre el n´
número
umero de individuos de una generación
generaci´on   x
y el número

umero de individuos en la generación
generaci´on siguiente. La función
funci´on   R(x)
modela la tasa de variación
variaci´on de la población
poblaci´on considerada y puede elegirse
de formas diferentes. Entre las másm´as conocidas, podemos mencionar:
1. el modelo de Malth
Malthus
us (Thomas Malthus,
Malthus, 1766-1834),
1766-1834),

R(x) = R M (x) =  r, r >  0;

2. el modelo de crecimiento con recursos limitados (Pierre Francois


Francois Ver-
Ver-
hulst, 1804-1849),
  r
R(x) = R V   (
 (x x) = , r > 0
 0,, K > 0
 0,,   (2.3)
1 + xK 
+ xK 
que mejora el modelo de Malthus considerando que el crecimiento de
una población
poblaci´
on está
est´a limitado por los recursos disponibles;
3. el modelo depredador/pre
depredador/presa sa con saturación,
saturaci´
on,
  rx
R(x) = RP   = ,   (2.4)
(x/K )2
1 + (x/K 

que representa la evolución


evoluci´on del modelo de Verhulst en presencia de
una población
poblaci´
on antagonista.
La dinámica
din´amica de una población
poblaci´on se define, por tanto, por el proceso itera-
tivo

x(k) =  φ
 φ((x(k−1) ), k ≥ 1,   (2.5)

donde   x(k) representa el número



umero de individuos que todav todav´ıa ı́a est´
están
an pre-
sentes   k   generaciones más
sentes m´as tarde que la generación inicial   x(0) . Además,
generaci´on inicial  Adem´as,
los esta
estados
dos estacionarios
estacionarios (o de equili
equilibrio)  x ∗ de la población
brio) x poblaci´on considerada
son las soluciones del problema

x∗ = φ
 φ((x∗ ),

o, equivalentemente,   x∗ =   x∗ R(x∗ ), es decir,   R(x∗ ) = 1. La ecuación


ecuaci´on
(2.5) es un ejemplo de m´
métod
etodoo de punto fijo (v´
(véase
ease la Secci´
Sección
on 2.3).   

2.1 M´
Méto
etododo de bise
bisecci´
cción
on

Sea  f  una
Sea f   una función
funci´on continua en [[a,
a, b] que satisfac
satisfacee  f 
 f ((a)f (
f (b)  <  0. Entonces
 < 0.
f  
f   tiene, necesariamente, al menos un cero en (a, (a, b). Supongamos por
simplicidad que es unico,
uni co, y lla
llammemos
emosle
le   α. (En el caso de varios ceros,

44 2 Ecuacio
ion
nes no li
lin
neal
alees

podemos localiz
lo calizar
ar un interv
intervalo
alo que conten
contenga
ga s´sólo
olo uno de ellos con ayuda
del comando  fplot.)
La estrategia
estrateg ia del m´ métod
etodoo de bisecci´
bisección
on es dividir
dividi r en dos partes iguale
igualess
el intervalo dado y seleccionar el subintervalo donde   f  experimenta
f  experimenta un
cambio de signo. Concretamente, llamando   I (0) = (a, b) y, en general,
I (k) al subintervalo seleccionado en la etapa   k, elegimos como   I (k+1)
el subintervalo de de   I (k) en cuyos extremos 
extremos   f  
f   experimenta un cambio de
signo. Siguiendo este procedimiento, se garantiza que cada   I (k) selec-
cionado de esta forma contendrá
contendr´a a   α. La sucesi ón   {x(k) }, de los puntos
suc esi´on
subintervalos   I (k) , tenderá
medios de estos subintervalos  tender´a inevitablemente aa   α  puesto
que la longitud de los subintervalos tiende a cero cuando   k   tiende a
infinito.
Concretamente,
Concretamen te, el método
m´etodo se inicializa poniendo

a(0) =  a, b(0) =  b, I (0) = (a(0) , b(0) ), x(0) = (a(0) + b(0) )/2.

subintervalo  I (k) = (a(k) , b(k) ) del


etapa  k ≥ 1 seleccionamos el subintervalo I 
En cada etapa k
intervalo   I (k−1) = (a(k−1) , b(k−1) ) como sigue:
intervalo

dado   x(k−1) = (a(k−1) +  b (k−1) )/2, si   f (


f (x(k−1) ) = 0 entonces   α   =
x(k−1) y el m´
méto
etodo
do termina
ter mina;;

caso contrario,

si  f ((a(k−1) )f 


si   f  f ((x(k−1) )  <
 <   0 ponemos   a(k) =  a (k−1) , b(k) = x (k−1) ;
pon

si  f ((x(k−1) )f 


si   f  f ((b(k−1) ) <
 <   0 ponemos   a(k) =  x (k−1) , b(k) =  b(k−1) .
pon

definimos   x(k) = (a(k) + b(k) )/2 e incrementamos 


Entonces definimos  incrementamos   k  en 1.

(0)
y I  f 
(1)

a(0) x(0) x(1) x(2) b(0)


x

I (3)
I (2)
2.2.  Unas cuantas iteraci
Figura 2.2. Unas iteraciones
ones del metodo de bisecci
biseccion
on

2.1 M´
Métod
etodo o de bisecc
bisecci´
ió
on n 45

Por ejemplo, en el caso representado en la Figura 2.2, que corres-


ponde a la elección f (x) =  x 2 − 1, tomando 
elecci´on   f ( tomando   a(0) = −0.25 y   b(0) = 1.25,
obte
ob tend
ndrr´ı́ıamo
a moss
I (0) = (−0.25
25,, 1.25)
25),, x(0) = 0.5,
I (1) = (0.
(0.5, 1.25)
25),, x(1) = 0.875
875,,
I (2) = (0.
(0.875
875,, 1.25)
25),, x(2) = 1.0625
0625,,
I (3) = (0.
(0.875
875,, 1.0625) (3)
0625),, x = 0.96875
96875..


Nótese
otese que cada subin subinterv alo   I (k) contiene al cero   α. Además,
tervalo Adem´as, la
n   {x(k) }   converge necesariamente a   α   puesto que en cada paso
sucesi´óon
la longitud   |I (k) |   =   b(k) − a(k) de   I (k) se divide por dos. Puesto que
|I (k) | = (1/
(1/2)k |I (0) |, el error en la etapa 
etapa   k  satisface
 k+1
 1 1
|e(k) | = |x(k) − α| < |I (k) | = (b − a).
2 2

Para garantizar que   |e(k) |   < ε, para una tolerancia dada   ε, basta con
llevar cabo  k min  iteraciones, siendo k
a ualdad
cabo k
la desigualdad
desig siendo  k min  el menor entero que satisface

kmin   >  log 2


 b−a
−1   (2.6)
ε

Obviamente, esta desigualdad tiene sentido en general, y no está est´a limitada


por la elección
elecci´on espec
esp ec´ı́ıfica
fica de
de   F  que hayamos hecho previamente.
F  que
El métod
m´etodoo de bisección
bisecci´on se impleimplemen
ment´
tóo en el Program
Programaa 2.1:   fun   es
una function 
una  function    (o una  inline function ) especificando la función
funci´on   f ,
f ,   a   y   b
son los extremos del intervalo de búsqueda,
b´usqueda, tol  es la tolerancia ε
tolerancia  ε,, y  nmax
es el número

umero máximo
m´aximo de iteraciones asignadas. La La function 
 function   fun, adem´áass
del primer argumento que representa la variable independiente, puede
aceptar otros par´ametros
parámetros
Los parámetros
par´ametros de salida auxiliares.
son  zero, que contiene el valor aproximado
de   α, el residuo   res   que es el valor de   f  
f   en   zero   y   niter   que es el
número
n´umero total de iteraciones realizadas. El comando  find(fx==0)  halla   find
los ´ı́nd
ındices
ices del vector
vecto r   fx  correspondiente a las componentes nulas.
Programa 2.1.   bisection:
bisection: méto

etododo de bisecci´
bisec ción
on

functi ioo n [ z e ror o , r es


es , n i t e r ] = b i s e c t i on
on ( f u n , a , b , t o l , . . .
nmax,varargin)
% B I SE
S E CT
C T IO
I O N H ala l la
l a r c ere r os
o s d e f un u n ci
c i on
o n es
es .
% Z ERE R O = B I S EC
E C T IO
I O N ( F UN
UN , A , B , TO
TO L , N M A X ) t r at at a d e h a ll ll a r
% u n c e r o Z E R O d e l a f u ci c i on
on c on o n ti
t i n ua
ua F U N e n e l
% i ntn t er
e r va
v a lo
l o [ A , B ] u sa s a nd
n d o e l m et e t od
o d o d e b is i s ec
e c ci
c i on
on .
% F U N a ce c e pt
p t a e scs c al
a l ar
a r es
e s r eae a le
l e s x y d ev e v ue
u e lv
l v e u n e sc s c al
a l ar
ar
% r eae a l . S i l a b us u s qu
q u ed
e d a f ala l la
l a s e m ue u e st
s t ra
r a u n m en e n sa
s a je
je d e
% e rrr r or
o r . F UNUN p ue
u e de
d e s e r t am a m bi
b i en
e n u n o bj b j et
e t o i nln l in
in e .
% Z ERE R O = B I S EC
E C T IO
I O N ( F UN
UN , A , B , T OL
OL , N MA
MA X , P 1 , P2
P 2 , ..
. . . ) p a sasa
% l os
os p ar
a r am
a m et
e t ro
r o s P 1 , P2
P 2 , ..
. . a l a f un
u n ci
c i on
o n F UN
UN ( X , P1
P1 , P2
P 2 , ..
. . ).
).

46 2 Ecuacio
ion
nes no li
lin
neal
alees

% [ Z ER
E R O , R ES
E S , N I T ER
E R ] = B I S E CT
CT I ON
O N ( F UN
U N , . .)
. ) d e vuv u e lv
l v e e l v a lo lo r
% d e l r ese s id
i d uo
u o e n Z ER E R O y e l n um u m er
er o d e i te t e ra
r a ci
c i on
o n es
es e n
% l a s q u e Z ER ER O f ue ue c al a l cu
c u la
l a do
do .
x = [ a , ( a + b )* ) * 0.
0 . 5 , b ] ; f x = f ev e v al
a l ( fu
f u n , x , v a ra
r a rg
r g in
i n { : } );
);
i f f x ( 1)
1 ) * fx
fx ( 3)
3) > 0
e r ro
ro r ([
( [ ’ E l s i g no no d e l a f un
u n ci
c i o n e n l o s ’ , .. .. .
’ e x t re
r e m os
o s d ele l i n tet e r va
v a l o d ebe b e s ere r d i fef e r en
e n t e ’ ] );
);
e ls
l s ei
eizefro fx =( 1)
1)a ; = = r0
a; e s = 0; 0; n i t e r = 0; 0; return
e ls
l s ei
e i f f x ( 3)3) = = 0
z e r o = b; b ; r e s = 0; 0; n i t e r = 0; 0; return
end
n it
i t er
er = 0 ;
I = ( b - a )* )*0 .5 ;
w h il
il e I > = t o l & n i te te r < = n ma ma x
n i te
te r = n i t er er + 1 ;
i f f x (1( 1 ) ) * fx
f x (2
(2 ) < 0
x (3
( 3 ) = x ( 2) 2) ; x (2
( 2 ) = x ( 1) 1 ) +(
+( x (3
( 3 ) - x (1
( 1 ))
) ) *0
* 0 .5
.5 ;
f x = f ev e v al
a l ( f un
un , x , v a ra
r a rg
r g in
i n { : } );
) ; I = ( x ( 3) 3) - x ( 1 ))
) ) *0
* 0 .5
.5 ;
e ls
l s ei
e i f f x (2( 2 ))
) ) * fx
f x ( 3)
3) < 0
x (1
( 1 ) = x ( 2) 2) ; x (2
( 2 ) = x ( 1) 1 ) + ( x (3
( 3 ) - x (1
( 1 ))
) ) *0
* 0 .5
.5 ;
f x = f ev e v al
a l ( fu
f u n , x , v a ra
r a rg
r g in
i n { :}
: } );
) ; I = ( x ( 3) 3) - x ( 1 ))
) ) *0
* 0 .5
.5 ;
else
x ( 2)
2 ) = x ( fi f i nd
n d ( fx
f x = =0
= 0 ))
)) ; I = 0 ;
end
end
i f n iti t er
er > n ma ma x
f pr
p r in
i n tf
t f ( [ ’ la
l a b isi s ec
e c ci
c i on
o n s e p ar a r o s inin c on o n ve
v e rg
r g er
e r ’ , .....
’ a l a t ol o l er
e r an
a n ci
c i a d ese s ea
e a da
d a p oro r qu
q u e ’ , .... .
’ se
s e a lcl c an
a n zo
z o e l n um u m er
e r o m axa x im
i m o ’ , .... .
’ d e i t e r a c ioio n e s \ n ’ ] ) ;
end
z er
e r o = x ( 2) 2 ) ; x = x ( 2) 2 ) ; r eses = f ev e v al
a l ( fu
f u n , x , v a ra
r a rg
r g in
i n { : })
}) ;
return

Ejemplo 2.1 (Fondo de inversión)


inversi´on)   Apli
Ap liqu
quemo
emoss el m´
mét
etododo
o de b
bis
isec
ecci
ci´ó
onn pa
pa--
ra resolver el Problema 2.1, suponiendo que   v   es igual a 1000 euros y que
despu´
des pués
es de 5 a˜
años
nos   M 
M    es igual a 6000 euros. La gráfica
gr´afica de la función
funci´on   f 
f    puede

obtenerse mediante las instrucciones siguientes


f = i n l in
in e ( ’ M - v * (
(11+I).*
*(((1
1++I).^5 - 1).
.//I’,’I’,’
’MM’,’v’)
);;
plot([0.01,0.3],feval(f,[0.01,0.3],6000,1000));
Vemos que   f  
f   tiene un unico
´
único cero en el intervalo (0.
(0.01,
01, 0.1), que es apro-
ximadamente igual a 0. 0.06. Si ejecutamos el Programa 2.1 con   tol= 10−12 ,
a= 0.01 y   b= 0.1 como sigue
[zero,res,niter]=bisection(f,0.01,0.1,1.e-12,1000,...
6000,1000);
despu´
después
es de 36 iteraciones el método
m´etodo converge al valor 0.06140241153618, en
perfecta coincidencia con la estimación
estimaci´
on (2.6), de acuerdo con la cual  kmin  = 36.
cual k
De este modo, concluimos que el tipo de interés
inter´es   I 
I  es
 es aproximadamente igual
a 6.14%.   

A pesar de su simplicidad, el m´método


etodo de bisección
bisecci´
on no garantiza una
reducci´
reducción
on mon´
monót
oton
onaa de
dell er
erro
ror,
r, si
sino
no si
simp
mple
leme
men nte que
que el inte
interv
rval
aloo de
 

2.2
2.2 M´etod
é todo
o de Ne
Newt
wton
on 47

b´usqueda se divida a la mitad de una iteración


búsqueda iteraci´on a la siguiente. Por consi-
guiente, si el único
unico
´ criterio de parada adoptado es el control de la longitud
de   I (k) , uno po
de podr
dr´ıa
ı́a descarta
descartarr aproximaci
a proximaciones
ones de 
de   α  muy precisas.
En realidad, este m´ método
etodo no tiene en cuenta apropiadamente el com-
portamiento real de f de  f .. Un hecho sorprendente es que no converge en una
sola iteración
iteraci´on incluso si si   f  
f   es una función
funci´on lineal (salvo que el cero
cero   α   sea
el punto medio del intervalo inicial de búsqueda). b´usqueda).

Véanse

eanse los Ejercici
Ejercicios
os 2.1-2
2.1-2.5.
.5.

2.2 M´
Méto
etododo de Newt
Newton
on
El signo de la función
funci´
on dada 
dada   f  en
f  en los extremos del intervalo es la ´única
unica
información
informaci´ on explot
explotada
ada por el m´ método
etodo de bisecci´
bisección.
on. Se puede construir
un m´
mét
etoodo m´
más
as eficiente explotando los valores alcanzados por por   f  
f   y su
derivada (en caso de que 
que   f  sea
f  sea diferenciable). En ese caso,
 f (x(k) ) + f 
y (x) = f ( + f  (x(k) )(x
)(x − x(k) )
proporciona la ecuación
ecuaci´on de la tangente a la curva (x, (x, f (
f (x)) en el punto
(k )
x .
que   x(k+1) sea tal que 
Si pretendemos que  que   y (x(k+1) ) = 0, obtenemos:

(k+1) (k ) f (x(k) )
  f (
x =  x −  (k ) , k≥0 (2.7)
f  (x )

con tal de que   f  (x(k) )   =  0. Esta fórmula


f´ormula nos permite calcular una
(k )
sucesi´
suce sión valore s   x empezando por una conjetura inicial 
on de valores inicial   x(0) . Este
método
m´etodo se conoce como m´ método
etodo de Newton y corresponde a calcular el
cero de   f  
f   reemplazando localmente   f   f   por
p or su recta tangente (v´(véase
ease la
Figura 2.3).
En realidad, desarrollando 
desarrollando   f 
f  en
 en serie de Taylor en un entorno de un
punto
pu nto ge
gen´
nér icoo   x(k) hallamos
eric
f ((x(k+1) ) = f 
f   f ((x(k) ) + δ 
+ δ (k) f  (x(k) ) + O((δ 
((δ (k) )2 ),   (2.8)
donde δ (k) = x (k+1) −x(k) . Forzando a f 
donde δ  a f ((x(k+1) ) a ser cero y despreciando
el t´
tér
ermi no   O ((
mino δ (k) )2 ), podemos obtener x
((δ  obtener  x (k+1) en función
funci´on de  x (k) , como
de x
se establece en (2.7). A este respecto (2.7) puede considerarse como una
aproximación
aproximaci´ on de (2.8).
Obviamente, (2.7) converge en una sola etapa cuando f  cuando  f  es
 es lineal, esto
es cuando 
cuando   f f ((x) = a1 x +  + a
 a0 .

Ejemplo
como dato2.2   Resolvamos
Resol
inicial
inicial  vamos
  x(0) el Problema
= 0.3. Problem
esade
Después
Despu´ 2.16p
por
or el métod
m´etodo
iteraciones o de
la Newton
Newton,, entre
diferencia tomando
dos
iterantes consecutivos es menor o igual que 10 −12 .   

48 2 Ecuacio
ion
nes no li
lin
neal
alees
8

f  
4

x (2) α x (3)
0
(1) (0)
−2 x  x 

−4

−6
−2 −1.5 −1 −0.5 0 0.5 1 1.5 2

2.3. Las primeras iiteraciones


Figura 2.3. Las teraciones generadas
g eneradas por
p or el método

etodo de Newton con
(0)
dato inicial 
inicial   x para la función
funci´on   f (
f (x) =  x
 x +
 + e x
 e + 10/ +  x2 ) 5
10/(1 + x −
En general, el m´método
etodo de Newton no conv
converge
erge para todas las posibles
iones de   x(0) , sino sólo
elecciones
elecc s´olo para aquell
aquellos
os valores que están
est´
an   suficien-
temente cer a   de   α. A primera vista, este requerimiento parece signi-
cercca  
ficativo: en efecto, para calcular   α   (que es desconocido), ¡uno deber
deber´ıa
ı́a

empezar
En lapor untica
pr´acti
prác valor
ca,, sesuficientemente
pued
puedee ob
obte nerr cercano
tene un posiba  le

posible α! valo
alorr ini
inici al   x(0) re-
cial
curriendo
curriendo a una cuantas cuantas iterac
iteraciones
iones del m´
método
etodo de bisecbisecci´
ción
on o, alter-
nativamente,
nativam ente, a travtrav´éess de una investigaci´
investigación
on de la gr´ gráfica f . Si   x(0)
afica de   f .
se escoge apropiadamente y   α   es un cero simple (esto es,   f  (α)    = 0)
entoncess el m´
entonce método
etodo de Newton conv converge.
erge. Además,
Adem´ as, en el caso especial
de que 
que   f 
f    sea continuamente diferenciable hasta su segunda derivada, se
tiene el siguiente resultado de convergencia
convergencia (v´(véase
ease el Ejercicio 2.8),

x(k+1) − α   f  (α)


lim  =    (2.9)
k→∞ (x(k) − α)2 2f  (α)

Consiguientemente,
verge cuadr´ 
verge  cuadr´ 
aticamente  si  ,f o(con
si  α)   
=orden
0 el m´
método
2,etodo
puesto deque
Newton
Newto
paran valores
se dice suficien-
que con-
temente grandes de  de   k  el error en la etapa (k (k  + 1) se comporta como el
cuadrado del error en la etapa  etapa   k  multiplicado por una constante que es
independiente de de   k.
En el caso de ceros con multiplicidad   m   mayor que 1, el orden de
convergencia
conv ergencia del m´ método
etodo de Newton se degrada a 1 (véase (v´ease el Ejercicio
2.15). En tal
t al caso uno podrpo dr´ıa
ı́a recup
recuperar
erar el oorden
rden 2 mo
modifican
dificandodo eell métod
m´etodoo
original (2.7) como sigue:

(k+1) (k )  f (x(k) )
 f (
x =  x − m  (k ) , k≥0   (2.10)
f  (x )

que   f  (x(k) )  


con tal de que  = 0. Obviamente, este m´
este  método
etodo de Newton
New ton modi-
ado   requiere el conocimiento a
 ficado
 fic conocimiento  a priori   de
de   m. Si no es ´este
éste el caso, uno

2.2
2.2 M´etod
é todo
o de Ne
Newt
wton
on 49

po dr´ı́ıaa desarro
podr desa rrolla
llarr u
unn  m´
 método
etodo de New
Newtonton adapt
adaptativ o, to
ativo todav
dav´ı́ıaa de ord
orden
en 2,
como se describe en [QSS06, Secci´ Sección
on 6.6.2].

Ejemplo 2.3   L Laa func


fu nci´
ión
on   f (
f (x) = (x 1) log(
log(x −
x) tiene un solo cero   α  = 1 de
multiplicidad   m  = 2. Calculémoslo
multiplicidad Calcul´emoslo mediante el m´
método
etodo de Newton (2.7) y su
versión
versi´
on modificada (2.10). En la Figura 2.4 mostramos el error obtenido en
cada uno de los métodos
m´ etodos frente al número

umero de iteraciones. N´Nótese
otese que para la
versión
versi´
on cl´
clásica
asica del método
m´etodo de Newton la convergencia
convergencia sólo
s´olo es lineal.   

2
10

0
10

−2
10

−4
10

−6
10

−8
10

10−10
0 5 10 15 20 25 30

2.4.  Error frente a número


Figura 2.4. Error n´
umero de iteraciones para la funci´
funciónon del Ejemplo
2.3.. La l´ınea
2.3 ı́ne a de trazos
tra zos cor
corres
respo
ponde
nde al méto
m´etodo
do de
d e Ne
Newto
wton
n (2
(2.7)
.7),, la
l a l´
lı́ınea
nea conti
continua
nua
al m´
método
etodo de Newton modificado (2.10) (con  (con   m  = 2)

2.2.1 Cómo
omo terminar las iteraciones de Newton

En teor
teor´ı́ıa,
a, un m´
método
etodo de Newton conv convergente
ergente devuelve el cero   α   ss´óollo
despu´
des pués
es de un núumero
´mero infinito de iteraciones. En la pr´
práctica,
actica, uno requiere
una aproximación
aproximaci´on de de   α  hasta una tolerancia prescrita 
prescrita   ε. De este modo
las iteraciones pueden terminarse para el menor valor de   kmin   para el
cual se verifica la siguiente desigualdad:

|e(k min )
| = |α − x(k min )
| < ε.
´ ste es un test sobre el error. Desgraciadamente, puesto que el error

Este
es desconocido, uno necesita adoptar en su lugar un   estimador del -
error  apropiado,
 apropiado, esto es, una cantidad que pueda ser fácilmente
f´acilmente calculada
y a tra
trav´
vés
es de la cua
cuall podamo
podamoss est
estima
imarr el verda
verdader
deroo err
error.
or. Al fina
finall de
la Sección
Secci´on 2.3, veremos que un estimador del error apropiado para el
método
m´ etodo de Newton
Newton viene proporci
proporcionado
onado por la diferencia
diferencia ent
entre
re dos ite-
rantes consecutivos. Esto significa que uno termina las iteraciones en la
etapa   kmin  tan pronto como
etapa
|x(k min )
− x(k min 1)
|<ε   (2.11)

50 2 Ecuacio
ion
nes no li
lin
neal
alees

´ ste es un test sobre el incremento.


Este

En la Sección
Secci´on 2.3.1 veremos que el test sobre el incremento es satis-
factorio cuando 
cuando   α  es un cero simple de de   f .
f . Altern
Alternativamente,
ativamente, uno po podr
dr´ıa
ı́a
usar un test sobre el residuo
el  residuo en etapa   k ,   r(k) =  f 
 en la etapa   f ((x(k) ) (nótese
(n´otese que el
cuando   x(k) es un cero de la función
residuo es nulo cuando  funci´on   f ).
f ).
Concretamente,
Concretamen te, podr
podr´ıamos
ı́amos parar las iteraciones para el primer primer   k
min
para el cual
|r(k min )
f (x(k
| =|f ( min )
)| < ε   (2.12)

El test sobre el residuo es satisfactorio solamente cuando   |f  (x)|    1


en un entorno 
entorno   I α  del cero 
cero   α  (v´
 (véase
ease la Figura 2.5). Caso contrario, pro-
sobreestimaci´on del error si   |f  (x)|   1 para   x   ∈   I α   y una
duciráa una sobreestimación
ducir´
on si   |f  (x)|  1 (v´
subestimación
subestimaci´ (véa
easese tambi´
también
en el Ej
Ejerc
ercici
icioo 2.
2.6).
6).

y f  y

f (x(k) )

α x(k) α x(k) f ((x(k) )



x   x
(k)
e e(k)

2.5.  Dos situaciones en las que el residuo es un pobre estimador del


Figura 2.5. Dos

|
error: f  (x) |1 (izquierda ), f  (x) |
1 (derecha ), |
), con x
con  x en
 en un entorno de α
de  α

En el Progra
Programa
ma 2.2 implemen
implementamos
tamos el m´
método
etodo de Newton
Newton (2.7). Su

forma modificad
modificadaa puede obten
obtenerse
erse reem
reemplazan
plazando
do simplemen
simplementete   f  por
f  /m
/m.. Los parámetros
par´ametros de entrada   fun   y   dfun   son las cadenas de ca-
racteres que definen la función
funci´on   f 
f  y
 y su primera derivada, mientras que
x0   es el dato inicial. El m´
método
etodo finalizar´
finalizaráa cuando el valor absoluto de
la diferencia entre dos iterantes consecutivos sea menor que la toleran-
cia   tol  prescrita, o cuando se alcance el número
n´umero máximo
m´aximo de iteraciones
nmax.
Programa 2.2.   newton:
newton: méto

etododo de Newton

io n [ z e ro
f u n c t io r o , r es
es , n i t e r ] = n e w t o n ( f un
un , d f un
un , x 0 , t ol
ol , . ..
..
nmax,varargin)
% N EW
E W TO
T O N H al
a l la
l a r c ere r os
o s d e f un u n ci
c i on
o n es
es .
% Z E RORO = N E W TO
T O N ( F UN
UN , D FU
FU N , X 0 , T OL
OL , N M AX
A X ) t ra
r a t a d e h al a l l ar
ar e l
% c ere r o Z ER
E R O d e l a f un u n ci
c i on
o n c on
o n ti
t i nu
n u a y d if i f e re
r e n ci
c i ab
ab l e
%
% F
FUUN
UN
UN m as
N y as
sucd
er
er ca
ca
er
er n oad
no
iv
iv ad a
a X
D 0F
FU u sa
UN sa
a nd
n
cd
ceeo el e m
pt a
pt nt
ntet
et
ra
raod
od
da
dao s d ee sc
N al
sc ew
ew
a to
to
l ar
a n s.
r es
e
% r ea
e a le
l e s x y d ev
e v ue
u e lv
l v e u n e sc
s c al
a l ar
a r r ea
ea l . S i l a b us
u s qu
q u ed
ed a

2.2
2.2 M´etod
é todo
o de Ne
Newt
wton
on 51

% f al
a l la
l a s e m ue u e st
s t ra
r a u n m en e n sa
s a je
j e d e e rr r r or
or . F U N y
% D FU
F U N p ueu e de
d e n s erer t am a m bi
b i en
e n o bjb j et
e t os
o s i nln l in
in e .
% Z E RO
RO = N E W TO
T O N ( F UN
UN , D FU
FU N , X 0 , T OL
OL , N MA
MA X , P 1 , P2
P 2 , . ..
.. ) p a sasa l osos
% p ar
a r am
a m et
e t ro
r o s P 1 , P2P 2 , ..
. . a l as as f un u n ct
c t io
i o ns
n s : F UNUN ( X , P1
P1 , P2
P 2 , ..
.. )
% y D F UNUN ( X , P1
P 1 , P 2 , . . .)
.) .
% [ Z ER
E R O , R ES
E S , N I T ER
E R ] = N E W TO
T O N ( F UN
UN , . ..
. . ) d e vuv u e lv
l v e e l v a lo lo r
% d e l r ese s id
i d uo
u o e n Z ER E R O y e l n um u m er
er o d e i te t e ra
r a ci
c i on
o n es
es e n
%
x = la xs0 ;q u e Z ERER O f ue ue c al a l cu
c u la
l a do
do .
f x = f e va v a l ( f un
un , x , v a ra
r a r gi
gi n { : } );
);
d fx
f x = f e va va l ( d fu
fu n , x , v a r ar
a r g in
i n { : })
}) ;
n i te
te r = 0 ; d i ff ff = t o l +1 +1;
w hi
h i le
le d if i f f > = t ol ol & n it it er
e r < = n ma ma x
niter = niter + 1; d iff = - fx / dfx ;
x = x + diff ; diff = abs ( diff );
f x = f e va v a l ( f un
un , x , v a ra
r a r gi
g i n { : } );
);
d fx
f x = f e va va l ( d fu
fu n , x , v a r ar
a r g in
i n { : })
}) ;
end
i f n itit er
e r > n ma ma x
f pr
p r in
i n tf
t f ( [ ’ n ew
e w to
t o n s e p ar a r o s inin c on o n ve
v e rg
r g er
e r ’ , ..
.. .
’ p ar
ar a l a t ol o l er
e r an
a n ci
c i a d ese s ea
e a da
d a p oro r qu
q u e s e a lcl c an
a n zo
z o ’ , ..
.. .
’ e l n u mem e r o m a xix i m o d e i t er e r a c io
i o n es
es \ n ’ ] ) ;
end
zero = x ; res = fx ;
return

2.2.2 M´
Método
etodo de Newton para sistemas de ecuaciones no
lineales

Consideremos un sistema de ecuaciones no lineales de la forma


 f 1 (x1 , x2 , . . . , xn ) = 0,
 f 2 (x1 , x2 , . . . , xn ) = 0,
(2.13)
..
.
f n (x1 , x2 , . . . , xn ) = 0,

Poniendo  f    = (f 1 , . . . , fn  )T  y
donde   f 1 , . . . , fn   son funciones no lineales. Poniendo f 
donde
x  = (x1 , . . . , xn )T  , el sistema (2.13) puede escribirse de forma compacta
como

f (x) =  0
f (  0..   (2.14)

Un ejemplo viene dado por el siguiente sistema no lineal


  f 1 (x1 , x2 ) = x 21  +  x22  = 1,
 + x

(2.15)
f 2 (x1 , x2 ) = + x32   =
sen(πx1 /2) + x
sen(πx 0.

Para
la exten der
extender
primera el m´
métod
derivadaetodo
deoladefunción
N
Newton
ewton
funci´ aall caso  f  
on escalar 
escalar f de un la matriz
  por sistema,
si stema,
la  matrizreemplazamos
reemplaza mos
Jacobiana   Jf 
Jacobiana  
de la función
funci´on vectorial
vectorial   f  cuyas
  cuyas componentes son

52 2 Ecuacio
ion
nes no li
lin
neal
alees

  ∂f i
(Jf )ij   ≡ , i, j   = 1, . . . , n .
∂x j
El s´ı́ımb oloo   ∂f i /∂x j  representa la derivada parcial de   f i  con respecto a
mbol
xj   (véase
(v´ease la defin
definiciici´óon
n 8.3). Con esta notaci´
notación,
on, el método
m´etodo de Newton
para (2.14) es como sigue : dado   x(0) ∈   Rn , para  para   k   = 0, 1, . . .,
., hasta la
convergencia

resolver Jf (x(k) )δ x(k) = −f 


f ((x(k) )
(2.16)
(k +1) (k ) (k )
poner   x = x + δ x

Por consiguiente, el método


m´etodo de Newton aplicado a un sistema requiere,
soluci´on de un sistema lineal con matriz Jf (x(k) ).
en cada etapa, la solución
El Programa 2.3 implemen
implementa ta este m´
método
etodo utilizando el comando de
MATLAB   \  (v´
 (véase
ease la Secci´
Secciónon 5.6) para resolver el sistema lineal con la
matriz jacobiana. Como entrada debemos definir un vector columna   x0
que representa el dato inicial y dos functions 
dos  functions ,  Ffun  y  Jfun, que calculan
(respectivamente) el vector columna   F  que contiene las evaluaciones de f  de  f 
paraa un vector
par vecto r genéri
gen´erico co  x  y la matriz jacobiana J , ttambi´
ambiénen eval
evalua
uada
da para
para
un vecto
vectorr gen´
genéri
ericoco   x. El m´método
etodo se para cuando la diferediferencia
ncia enentre
tre dos
iterantes consecutivos
consecuti vos tiene una n norma
orma eucl
eucl´ı́ıdea
dea menor que  tol  o cuando
nmax, el número
n´ umero m´ máximo
aximo de iteraciones permitido, ha sido alcanzado.
Programa 2.3.   newtonsys:
newtonsys: método

etodo de Newton para ssistemas
istemas no lineales

fun ncc t io
i o n [ x , F , i tet e r ] = n e wt w t o ns
n s y s ( F fu
fu n , J fu
f u n , x 0 , t ol
ol , ..
.. .
n ma
ma x , v a ra r a r gi
gi n )
% N EW
E W TO
T O NS
N S YS
Y S h ala l la
l a u n c er e r o d e u n s is i s te
t e ma
m a n o l in i n ea
ea l .
% [ Z E RORO , F , I T E R ] = N E W T O N S Y S ( F F UN
UN , J F UN
UN , X 0 , T OL
OL , N M A X )
% t rara ta
ta d e h a ll ll a r e l v ec
ec to
to r Z E R O , c e r o d e u n s is is te
t e ma
ma
% n o l in i n ea
e a l d efe f in
i n id
i d o e n F FU F U N c onon m at a t ri
r i z j aca c ob
o b ia
i a na
na
% d efe f in
i n id
i d a e n l a f un u n ct
c t io
i o n J F U N , m as as c er e r ca
c a no
n o a l v ec e c to
to r
% X0 .
i t e r = 0 ; e rr = to l + 1 ; x = x0 ;
w h i le
le e r r > t o l & i t e r < = n m a x
J = f ev e v a l ( Jf
J f un
un , x , v a ra
r a r gi
gi n { : } ) ;
F = f ev e v a l ( Ff
F f un
un , x , v a ra
r a r gi
gi n { : } ) ;
d el
el t a = - J \F \F ;
x = x + delta;
e rr
rr = n or o r m ( d el
el ta
ta ) ;
iter = iter + 1;
end
F = n o rm rm ( f e v al
a l ( F fu
f u n , x , v a r a rg
rg i n { : } ))
)) ;
i f i tet e r > = n ma ma x
f pr
p r in
i n tf
t f ( ’ N o c on o n ve
v e rg
r g e e n e l n um u m er
e r o m axa x im
i m o ’ , .... .
’ d e i te t e ra
r a ci
c i on
o n es
e s \ n ’ ); );
f pr
p r in
i n tf
t f ( ’ E l i te t e ra
r a nt
n t e d eve v ue
u e lt
l t o t iei e ne
n e u n r es e s id
i d uo
u o ’ , ..
.. .
’ rer e la
l a ti
t i vo
v o % e\ e \ n ’,
’ , F)
F);
else
f pr
p r in
i n tf
t f ( ’ E l m et e t od
o d o c ono n ve
v e rg
r g io
i o e n l a i te t e ra
r a ci
c i on
o n ’ , . ..
..
’ %i
% i c on
on u n r es
e s id
i d uo
u o % e \ n ’,
’ , it
i t er
er , F );
);
end
return

2.2
2.2 M´etod
é todo
o de Ne
Newt
wton
on 53

Ejemplo 2.4   Consideremos el sistema no lineal (2.15) que admite las dos
(gráficame
(gr´
aficamente
nte detectables)
detectables) soluciones
soluciones (0
(0..4761 −
4761,, 0.8794) y ( 0.4761 −
4761,, 0.8794)
(donde sólo

olo mostramos las cuatro primeras cifras significativas). Para utilizar
el Programa 2.3 definimos las siguientes   functions 
f u nc
nc t i
ioon J=Jfu un
n(x)
p i2
i2 = 0 . .5
5*p
pii;
J(
J (1
2, 1)
,1
,1 = 2
) = p*ix
2
2*(1
* c
co)
o ;s
s((p
pii2 * x (
(11 ))
)) ; J
J((1
2,, 22
2))
) =
= 2
3 ** xx ((
(22
2 ))
)^;
^22;
;
return

f u nc
nc t i
ioon F=Ffu un
n(x)
F (1
(1 , 11)
) = x(1 1)
)^^2
2 + x( (2
2) ^
^22 - 1;
F ( 2 , 1)
1) = s i
inn(pii**x(1
1))/
/22) + x(2) )^
^33;
;
return
Partiendo del dato inicial   x0=[1;1], el método

etodo de Newton lanzado con el
comando
x0=[1;1]; tol=1e-5;maxite err =100;
;
[ x , F , i te
te r ] = n e w
wtton
nssys(@F
Fffuun
n ,@JJf
fuun
n ,x
x00,to
oll ,maxi
itter);
converge en 8 iteraciones a los valores
4.760958225338114e-01
-8.793934089897496e-01
(El carácter
car´acter especial  @  dice que, en  newtonsys,  Ffun  y  Jfun  son  functions .)
.)
Nótese
N´otese que el méto
m´etodo
do converge a la otra ra´raız
ı́z partie
partiendo
ndo de   x0=[-1,-1]. En
general, exactamente como en el caso de funciones escalares, la convergencia
del m´
méto
etodo
do de Newton depender´
depen derá
a realmente de la elección
elecci´on del dato inicial  x(0)
inicial x
ı́amos garantizar que det(Jf  (x(0) )) = 0.
y, en particular, deber´
deberıamos   

Resumamos

1. Los m´
métodos
etodos para calcu
calcular
lar los ceros de una funci´
función
on   f  
f   son general-
mente de tipo iterativo;

2. el
unam´
métod
etodoo on
sucesi´de de
sucesión bisección
bisecci´ on calcula
intervalos cuyaunlongitud
cero de se una funci´
función
divide on   f  
por f dos
  generando
en cada
iteración.
iteraci´
on. Este m´método
etodo es convergente
convergente con tal de que que   f  sea
f  sea continua
en el intervalo inicial y tenga signos opuestos en los extremos de este
intervalo;
3. el m´
método
etodo de Newt
Newton on calcu
calcula
la un cero 
cero   α   de   f  
f   teniendo en cuenta
los valores de   f 
f  y
 y de su derivada. Una condición condici´on necesaria para la
convergencia es que el dato inicial pertenezca a un entorno apropiado
(suficientemente pequeño)
peque˜ no) de 
de   α;
4. el m´
métod
etodoo de N
Newton
ewton es cuadr cuadr´aticame
áti camente
nte converg
c onvergente ente s´sólo
olo cuando
cua ndo α
 α
es un cero simple de  de   f 
f ,, caso contrario la convergencia es lineal;
5. el m´
método
etodo de Newton
Newton puede extenderseextenderse al caso de un sist sistemaema ecua-
ciones no lineales.
Véanse

eanse los Ejercici
Ejercicios
os 2.6-2
2.6-2.14.
.14.

54 2 Ecuacio
ion
nes no li
lin
neal
alees

2.3 Iteraciones de punto fijo

Jugando con una calculadora de bolsillo, uno puede verificar que apli-
cando repetidamente la tecla coseno al valor real 1, se consigue la si-
guiente sucesión
sucesi´on de números

umeros reales:

x(1) = cos(1) = 0. 0.54030230586814


54030230586814,,
x(2) = cos(
cos(xx(1) ) = 0.85755321584639
85755321584639,,
..
.
x(10) = cos(x
cos(x(9) ) = 0.74423735490056
74423735490056,,
..
.
x(20) = cos(x
cos(x(19) ) = 0.73918439977149
73918439977149,,

que ten
tender
der´ıa
ı́a al valor   α  = 0.73908513 . . .. Puesto que, por construcción,
construcci´on,
x(k+1) = cos(x
cos(x(k) ) para k
para k =  = 0, 1, . . . (con  x(0) = 1)
.  (con x 1),, eell lı́
l´ımit
m itee α
 α satisface
 satisface la
ecuación
ecuaci´
on cos(α
cos(α) =  α.
 α . Por esta razón
raz´on   α  se llama punto fijo de la función funci´on
coseno. Podemos preguntarnos cuántas cu´antas de tales funciones de iteraci´ iteración
on
po dr´ıan
podr ı́an ser ú
utiles
´ tiles para calcular los ceros de una funci´ función
on dada. En el
ejemplo anterior,   α   no es sólo
s´olo un punto fijo de la funci´función
on coseno sino
tambi´éen
tambi n un cero de la función
funci´on   f (
f (x) =   x − cos(
cos(x
x), por tanto el métod
m´etodoo
propuesto
propue sto puede consi
considerars
derarsee como un m´ método
etodo para calcu
calcular
lar los ceros
ceros
de   f 
f .. Por otra parte, no toda funciónfunci´on tiene puntos fijos. Por ejemplo,
repitiendo el experimento anterior con la función funci´on exponencial y  x (0) = 1,
y x
uno se encuentra con una situación situaci´on de   overflow  
overflow   despu´
de spués
es de 4 etapas
solamente (v´ (véase
ease la Figur
Figuraa 2.6).
Aclaremos la idea intuitiva anterior considerando el siguiente pro-
blema. Dada una función  φ : : [a, b] → R, hallar α
funci´on φ hallar α ∈ [a, b] tal que α
que α =
 = φ
 φ((α).

2 2

y y
1.5 1.5
y  =
 = x
 x y  = x
 =  x
φ
1 1

x
0.5
φ 0.5

0
x
0
α

−0.5 −0.5
−0.5 0 0.5 1 1.5 2 −0.5 0 0. 5 1 1.5 2

Figura
Figura 2.6.   La fun
funci´
ción
on   φ(x) = cos(x
cos(x) admite
x
uno y sól

oloo un pu
pun
nto fijo
fijo
(izquierda ),
), mientras que la funcion
funci on   φ(x) =  e no tiene ninguno (derecha )

2.3 It
Iteracion
iones de punto fijo 55

Si existe un tal α
tal  α se
 se llamará
llamar´a punto fijo   de
 punto fijo  de φ
 φ y
 y pod
p odrr´ı́ıaa ccalcu
alcular
larse
se me
media
diante
nte
el siguie
siguient
ntee algorit
algoritmo:
mo:

x(k+1) = φ
 φ((x(k) ), k≥0 (2.17)

donde x(0) es una conjetura inicial. Este algoritmo se llama de iteraciones 


donde x de  iteraciones 
de punto fijo   y   φ   se dice que es la   funci´  on de ite
iterraci ´  . El ejemplo
aci´ 
on 
introductorio es, por tanto, un ejemplo de iteraciones de punto fijo con
φ(x) = cos(x
cos(x).
Una interpretación
interpretaci´on geométrica
geom´ etrica de (2.17) se proporciona en la Figura
2.7 (izquierda 
(izquierda ).
). Se puede conjeturar que si   φ  es una función
funci´on continua y
el l´ımite
ı́mi te de la suce
sucesi´on  { x(k) }  existe, entonces tal l´ı́ımite
sión mite es un punto fijo
de   φ. Precisaremos más
de m´as este resultado en las Proposiciones 2.1 y 2.2.

Ejemplo 2.5   El m´
método
etodo de Newton (2.7) puede
puede consid
considerarse
erarse como un algo-
ritmo de punto fijo cuya función
funci´on de iteración
iteraci´
on es
  f (
f (x)
φ(x) =  x − f  (x) .
   (2.18)
En adelante esta función
funci´on será
ser´ a denotada por  φN  (donde
por φ  (donde N 
 N  quiere
  quiere decir Newton).
Este no es el caso para el méto
m´etodo do de bisecc
bisecci´
ión
on puesto que el iterante
itera nte g
gen´
enérico
erico
(k+1) (k ) (k−1)
x depende no sólo

olo de 
de   x si sino
no ta
tambi´
mbién
en de 
de   x .   

Como se muestra en la Figura 2.7 (derecha 


(derecha ),
), las iteraciones de punto
fijo pueden no converger. De hecho se verifica el resultado siguiente.

2
y y
1.5

y   =  x 1.5

1
1

0.5 0.5 φ
φ
x
x 0
α x(0) (2)
0
(0) (2) α (1) x(1) x
x x x
−0.5 y  = x
 =  x
−0.5
−0.5 0 0.5 1 1.5 2 −0.5 0 0.5 1 1.5 2

Figura 2.7.   Representación


Representaci´ on de unas cuantas iteraciones para dos funciones
de iteración
iteraci´
on diferentes. A la izquierda, las iteraciones convergen al punto fijo
α, mientras que, a la derecha, las iteraciones producen una ssucesi´
ucesión
on divergen
divergente
te
 

56 2 Ecuacio
ion
nes no li
lin
neal
alees

Proposici´
Proposiciónon 2.1  Supongamos que la funci´  on en  (2.17)
on de iteraci´    (2.17)
satisface las siguientes propiedades:
1.   φ(x) ∈ [a, b]  para todo 
todo   x ∈ [a, b];
2.   φ   es diferenciable en   [a, b];

3.   ∃K <  1  tal que   |φ (x)| ≤ K 
K  para todo   x ∈ [a, b].
 para todo 
Entonces   φ φ  tiene un unico
´  fijo   α ∈ [a, b]  y la sucesi´ 
punto fijo on definida 
en  (2.17) converge
  (2.17)  converge a   α,
α , cualquiera que sea la elecci´  on del dato inicial 
(0)
x en   [a, b]. Adem´  as 

x(k+1) − α
lim ( k )
  = φ (α) (2.19)
k→∞ x −α

De (2.19) se deduce que las iteraciones de punto fijo convergen al


menos linealmente, esto es, para 
para   k  suficientemente grande el error en la
etapa   k  + 1 se comporta como el error en la etapa   k  multiplicado por
etapa

una constante  menor
constante 
estrictamente φ (α) que
que es
1. independiente de 
de   k  y cuyo valor absoluto es

Ejemplo 2.6   La funci´


función
on   φ(x) = cos(x
cos(x) satisface todas las hipótesis
hip´otesis de la

Proposición
Proposici´  |
on 2.1. En efecto, φ (α) = sen( | | sen(α α) | 0.67 <
67  < 1,
 1, y de este modo por

la continuidad existe un entorno I 
entorno  I α   de α  | | √ 
de  α  tal que φ (x) < 1 para todo  ∈
todo   x I α .
2
La función
funci´
on φ
 φ((x) =  x 1 tiene dos puntos fijos α
− fijos  α ±  = (1 ± 5)/
5)/2, sin embargo
√ 

no satisface las hipótesis
hip´  |
otesis para ninguno porque φ (α± )   = 1 |  | ± | 5   >  1. Las
correspondientes iteraciones de punto fijo no converger´ convergerán.
an.   

Ejemplo 2.7 (Din´ amica de poblaciones)   Apliqu


(Dinámica Apliquemo emoss las iterac
iteracion
iones
es de
funci´on   φV   (
punto fijo a la función  (xx) =   rx/(1
rx/(1 +  xK 
 xK )) del modelo de Verhulst (2.3)
2 2
y a la función
funci´on   φP  (x) =   rx /(1 + (x/K 
(x/K ) ), para   r   = 3 y   K  =
K  = 1, del modelo
depredador/presa (2.4). Empezando por el punto inicial   x(0) = 1, hallamos el
punto fijo 
fijo   α  = 2 en el primer caso y  y   α  = 2.6180 en el segundo caso (véase (v´ease la
Figura 2.8). El punto fijo αfijo  α = = 0, común
com´ un a  φV    y  φ P  , puede obtenerse utilizando
las iteraciones de punto fijo sobre  sobre   φP   pero no sobre φ hecho,  φ P  (α) = 0,
sobre  φ V   . De hecho, φ

mientras que   φV    (
 (αα) =   r >   1. El tercer punto fijo de   φP  ,   α   = 0.3820 . . ., no
puede obtenerse mediante iteraciones de punto fijo porque   φP  (α)  >  1.   
 > 1.

El m´etodo
étodo de New
Newton
ton no es el ú unico
´ nico procedimien
procedimiento to iterativo
iterativo que
posee convergencia cuadrática.
cuadr´atica. En efecto, se tiene la siguiente propiedad
general.
 

2.3 It
Iteracion
iones de punto fijo 57
5

4.5

3.5

2.5

1.5

0.5

0
0 1 2 3 4 5

Figura 2.8. Dos
2.8.  Dos puntos fijos para dos dinámicas
din´amicas de pobl
poblaci´
ación
on diferentes
diferentes:: mo-
delo de Verhulst (lı́n

ıneaea conti
con tinu a ) y modelo depredador/presa (l´ınea
nua  traz os )
ı́n ea de trazos 

Proposici´
Proposición
on 2.2  Supongamos que se satisfacen todas las hip´ otesis 
de la Proposici´  as que   φ  es dos veces dife-
on 2.1. Supongamos adem´ 
renciable y que 

φ (α) = 0, φ (α) 


= 0.

Entonces las iteraciones de punto fijo  (2.17)


 (2.17)   convergen con orden   2

x(k+1) − α   1 
lim   = φ (α) (2.20)
k→∞ (x(k) − α)2 2

El ejemplo
ejempl o 2.5 muestra
muestr a que las iteraci
iteraciones
ones de punto fijo fi jo (2.
(2.17)
17) p
podr
odr´ı́ıan
an
ser utilizadas para calcular los ceros de la función
funci´on   f .
f . Claramente, para
cualquier f  dada,
cualquier f  dada, la función
funci´on φ
 φ definida
 definida en (2.18) no es la ´unica
única función
funci´on de
iteración
iteraci´
on posible . Por ejemplo, para la solución
soluci´on de la ecuaci´
ecuación
on log(log(x
x) = γ ,
despu´
de spués
es de pon
oner
er f 
 f ((x) = log(x
log(x) − γ , la elec
elecci´
ción
on (2.18)
(2. 18) podr
po dr´ı́ıaa con
conduci
ducirr a
la función
funci´on de iteraci´
iteración
on

φN (x) =  x (1 − log(
 x(1 log(x
x) + γ 
+ γ ).

Otro algoritmo de iteración


iteraci´on de punto fijo se podr po dr´ı́ıaa obtener a˜añadien-
nadien-
do   x   a ambos lados de la ecuación
ecuaci´on   f (
f (x) = 0. La función
funci´on de iteraci´
iteración
on
ahora   φ1 (x) =   x + log(x
asociada es ahora  log(x) − γ . Un m´ méto
etodo do adicion
adi cional
al podr
po dr´ıa
ı́a
obtenerse eligiendo la función
funci´on de iteración
iteraci´on φ φ 2 (x) =  x log(
log(xx)/γ . No todos
estos m´ métodos
etodos son conv
convergentes
ergentes.. Por ejemplo, si   γ  γ    =   −2, los méto
m´etodos
dos
correspondiente a las funciones de iteración
iteraci´on   φN   y   φ2  son ambos conver-
gentes, mientras que el correspondiente a φ a  φ 1  no lo es porque  | φ (x)| >  1
1
en un entorno del punto fijo 
fijo   α.

58 2 Ecuacio
ion
nes no li
lin
neal
alees


2.3.1 Cómo
omo terminar las iteraciones de punto fijo

En general, las iteraciones de punto fijo se terminan cuando el valor


absoluto de la diferencia entre dos iterantes consecutivos es menor que
una tolerancia prescrita 
prescrita   ε.
Puesto que α
que  α =  φ((α) y  x (k+1) = φ
 = φ  φ((x(k) ), usando el teorema del valor
medioo (véase
medi (v´ease la Secc
Secci´
ión
on 1.4.3)
1.4 .3) hal
hallam
lamosos

α − x(k+1) = φ
 φ((α) − φ(x(k) ) =  φ (ξ (k) ) (α − x(k) ) con 
con   ξ (k) ∈ I α,x( ) , k

siendo k extremos   α   y   x(k) . Usando la identidad


siendo   I α,x( )   el intervalo con extremos 

α − x(k) = (α − x(k+1) ) + (x
(x(k+1) − x(k) ),

se sigue que
  1
α − x(k) = ( x(k+1)
− x(k )
).   (2.21)
1 − φ (ξ (k) )

En consecuencia, si φ
si  φ  (x)  0 en un entorno de α
de  α,, la diferencia entre dos
iterantes consecutivos proporciona un estimador del error satisfactorio.
Este es el caso para los m´ métodos
etodos de orden 2, incluyendo
incluyendo el método
m´etodo de
Newton. Esta estimación
estimaci´on se hace menos satisfactoria a medida que  que   φ se
aproxima a 1.

Ejemplo 2.8   Calculemos


Calcu lemos con
c on el méto
m´etododo de Newton
New ton el ccero
ero α  = 1 de la función
 α = funci´on
m−1
f (x) = (x 1)
f ( − log(x
log( x) para m
para  m =  = 11 y m
y  m =
 = 21, cuya multiplicidad es igual a
m. En este caso el método
m´etodo de Newton convergeconverge con orden 1; adem´
además,
as, es posible

probar (véase
(v´ease el Ejercicio
Ejerci cio 2.15) que φ
que  φ N (α) = 1 1/m
− siendo  φ N  la función
/m,, siendo φ funci´on de
iteración
iteraci´
on del método
m´ etodo considerado como un a algoritmo
lgoritmo de iteraci
iteraci´

onn de punto fijo.
Cuando   m  crece, la precisión
Cuando precisi´on de la estimación
estimaci´on del error proporcionada por la
diferencia entre dos iterantes consecutivos decrece. Esto es confirmado por los

resultados num´
numerror
del verdadero ericos
éricoscon
de el
la de
Figura 2.9 estimador
nuestro donde comparamos
para   m  =el11
comportamiento
y   m  = 21. La
diferencia entre estas dos cantidades es mayor para   m  = 21.   

2.4 Aceleración
on utilizand
Aceleraci´ utilizando
o el m´
méto
etododo de Aitken

En esta sección
secci´on ilustr
ilustraremo
aremoss una técnic

ecnicaa que permite acele acelerar
rar la con-
vergencia de una sucesión
sucesi´
on obtenida v´ı́ıaa iteraciones de punto fijo. Por
consiguiente, supongamos que   x(k) =   φ(x(k−1) ),   k   ≥   1. Si la sucesión
sucesi´on
{x(k) } converge
converge linealmente 
 linealmente  a
  a un punto fijo α
fijo  α   de φ
de  φ,, de (2.19) deducimos
que, para una   k   dada, debe existir un valor valor   λ  (a determinar) tal
que
φ(x(k) ) − α =  λ((x(k) − α),
 = λ   (2.22)

2.4 Aceler
Aceleraci´
ación
on utiliz
utilizando
ando el m´
método
etodo de Aitk
Aitken
en 59
0
10

−2
10

−4
10

−6
10

−8
10

−10
10
(1)   (2)
−12
10
0 100 200 300 400 500

Figura 2.9. Valores
2.9. Valores absolutos de los errores ( l´ınea
ı́n ea conti
con tinu
nua a ) y valores absolu-
tos de las diferencias entre dos iterantes consecutivos ( l´ınea ı́n ea de traz os ), frente
trazos 
al número

umero de iteraciones, para el caso del Ejemplo 2.8. La gr´ gráfica
afica (1) se refiere
a   m  = 11, la gráfica
gr´afica (2) a
a   m  = 21

identificar  φ((x(k) ) con x


donde deliberadamente hemos evitado identificar φ con  x (k+1) . En
efecto,
efecto, la idea sub
subyac
yacen
ente
te al método
m´etodo de Aitk
Aitken
en cons
consiste
iste en defini
definirr un
nuevo valor para   x(k+1) (y de este modo una nuev nueva sucesi´
sucesión)
on) que es
(k )
mejor aproximación
aproximaci´on de α
de  α que
 que la dada por φ
por  φ((x ). En realidad, de (2.22)
tenemos que
  φ(x(k) ) − λx(k)   φ(x(k) ) − λx(k) + x(k) − x(k)
α  =   =
1−λ 1−λ
o
α =  x (k) + (φ
 = x (φ(x(k) ) − x(k) )/(1 − λ) (2.23)

Ahora debemos calcular 


calcular   λ. Para ello, introducimos la sucesión
sucesi´on

(k )   φ(φ(x(k) )) − φ(x(k) )
λ = (k ) (k )
  (2.24)
φ(x ) − x
y verificamos que se cumple la siguiente propiedad:

Lema 2.1  Si la sucesi´  on de elementos   x(k+1) =  φ


 φ((x(k) )  converge a 
entonces    lim λ(k) = φ (α).
α, entonces  
k →∞

Demostraci´
Demostraciónon 2.1   Si   x(k+1) =   φ(x(k) ), entonces   x(k+2) =   φ(φ(x(k) )) y de
que   λ(k) = (x(k+2) x(k+1) )/(x(k+1) x(k) ) o
(2.24), obtenemos que  − −
x(k+2) α
k k
(k)   x( +2) − α − (x ( +1) − α) x(k+1) − α − 1
=
λ
x(k+1) − α − (x − α)   = 1 −   x − α
(k) (k )

x −α (k+1)

60 2 Ecuacio
ion
nes no li
lin
neal
alees

de lo cual, calculando el l´ımite


ı́mite y recordando (2.19),
(2.19 ), hallamos
halla mos

(k)   φ (α) 1

lim λ = 
  =  φ  (α).
k→∞ −
1 1/φ (α)

Gracias al Lema 2.1 podemos concluir, para un k


un k dado, que λ(k) puede
 dado, que λ
considerarse como una aproximación
aproximaci´on del valor desconocido
desconocido λ
 λ introducido
 introducido
anteriormente. De este modo, utilizamos (2.24) en (2.23) y definimos un
nuevo   x(k+1) como sigue:
nuevo

(k+1) (k )   (φ(x(k) ) − x(k) )2


x =  x − , k≥0 (2.25)
φ(φ(x(k) )) − 2φ(x(k) ) + x
+ x(k)

Esta expresión
expresi´on se conoce como   f´ 
ormula de extrapolaci´
extrapolación Aitken    y,
on de Aitken 
gracias a (2.25), puede considerarse como una nueva 
una  nueva   iteración
iteraci´on de punto
fijo para la función
funci´on de iteraci´
iteración
on

xφ((φ(x)) − [φ(x)]2
  xφ
φ∆ (x) = φ(φ(x)) − 2φ(x) + x
+ x

(este m´
método
etodo se llama a vecesveces   método
m´etodo de Steff
Steffense n ).
ensen  ). Claramente, la
on   φ∆   es ind
función
funci´ indete
etermi
rminad
nadaa par
paraa   x   =   α   ya que
que num umer
erad
ador
or y de-
de-
nominador se anulan. Sin embargo, aplicando la fórmula f´ormula de l’Hˆ
l’Hôpital
opital

y suponiendo que 
que   φ  es diferenciable con 
con   φ (α) =  1 se obtiene que

+ αφ (φ(α))φ
  φ(φ(α)) + αφ ))φ (α) − 2φ(α)φ (α)
lim φ∆ (x) =
x→α φ (φ(α)) φ (α) − 2φ (α) + 1
))φ
  α +  α[[φ (α)]2 − 2αφ (α)
 + α
=   =  α.
[φ (α)]2 − 2φ (α) + 1

En consecuencia,   φ∆ (x) puede ser extendida por continuidad a   x   =   α


poniendo   φ∆ (α) = α
poniendo  α..
Cuando   φ(x) =   x − f 
Cuando caso   φ (α) = 1 corresponde a una ra´
f ((x), el caso  raız
ı́z
con multiplicidad al menos 2 para   f   f   (puesto que   φ (α) = 1 − f  (α)).
Sin embargo, en tal situación,
situaci´on, podemos probar una vez más m´as evaluando
el l´ımit
ı́m itee qu
quee   φ∆ (α) =  α
 α.. Además,
Adem´as, tambi´
también en podemos
po demos comprobar
comprob ar que los
puntos fijos de  de   φ∆  son exclusivamente todos los puntos fijos de φ de  φ..
De estestee modo, el m´éetodo todo de Ait
Aitkeken n puede
puede apli
aplicar
carse
se a cualqu
cualquier
ier
méto
m´etodo do de resoluc
reso luci´
ión
on de una ecuaci´
ecuación
on no lineal. En efecto, se tiene el
siguiente teorema:
 

2.4 Aceler
Aceleraci´
ación
on utiliz
utilizando
ando el m´
método
etodo de Aitk
Aitken
en 61

Teorema 2.1   Considérense


Consid´erense las iteraciones de punto fijo (2.17) con 
φ(x) =   x  −  f 
 f ((x)   para
para calcular las ra
ra´ıces de   f .
ı́ces de   f . Enton
Entoncces si   f  
f   es 
suficientemente regular tenemos:
- si las
las it
iter
erac
acio
ione
ness de punt
punto
o fij
fijo
o con
onve
verrge
gen
n li
line
neal
alme
ment
ntee a una 
una 
ra
ra´ız
ı́z simple de  de    f f ,, ent
entonc
onceses el m´ méto
etododo de AiAitke
tken n conver
onverge  ge 
cuadr´  aticame
aticamente nte a la mism misma a ra´
raı́ız;
z;
- si las itera
iteracion
ciones es de punto fijo conve onverrgen con or den   p   ≥   2   a una 
orden 
ra
ra´ız
ı́z simple
sim ple de  de    f ,
f , ento
entonc
nces
es el méto
m´ etodo
do de Aitken
Aitken conver
onverge ge a la 
misma
mis ma ra orden   2 p − 1;
ra´ı́ızz con orden  
- si las iter
iteraciones
aciones de punto fijo co convergen
nvergen linealinealmente
lmente a una ra´ raı́ızz de 
f    con multiplicidad   m   ≥   2, entonces el m´
f  método
etodo de Aitken con-
verge linealmente
l inealmente a lla am
misma
isma ra´
raı́ızz con un factor de convergencia 
asint´  otico de   C   = 1 − 1/m /m..
En particular, si   p  = 1  y la ra´ de    f 
raı́ızz de  f    es simple, el método

etodo de extra-
polaci´ 
on de Aitken converge incluso si las correspondientes iteracio-
nes de punto fijo divergen.

En el Programa 2.4 presentamos una implementación


implementaci´on del méto m´etodo
do de
Aitke
Ai tken.
n. Aqu
Aq u´ı́ı  phi  es una function 
una  function    (o una 
una   inline function ) que define la
expresión
expresi´on de la funci´
función
on de iteraci´
iteración
on del m´
méto
etododo para
p ara la ecuaci´
ecua ción
on no lineal
al que se aplica la técnica
t´ecnica de extrapolaci´
extrapolación
on de Aitken. El dato inicial se
define mediante la variable  x0 , mientras que  tol  y  nmax son la toler tolerancia
ancia
del criterio de parada (sobre el valor absoluto de la diferencia entre dos
iterantes consecutivos) y el número n´
umero máximo
m´aximo de iteraciones permitidas,
respectivamente.
respec tivamente. Si ´estos
éstos no
n o se definen, se asumen los valores
valore s por
p or defecto
 defecto
nmax=100   y  tol=1.e-04.
Programa 2.4.   aitken:
aitken: méto

etododo de Aitken
Ait ken

funct tii o n [ x , n i t e r ] = a i t k e n ( p h i , x 0 , t o l , n m axax , v a r a r g i n )


% A I TK
T K EN
E N m ete t od
o d o d e A it i t ke
ke n .
% [ A L PHPH A , N I TE
T E R ] = A I TK
T K E N ( PH
P H I , X 0 ) c a lcl c u la
l a u nana
% a prp r ox
o x im
i m ac
a c io
i o n d e u n p un u n to
t o f ijij o A LP LP HA
HA d e l a f un u n ci
c i on
on P H I
% p ara r ti
t i en
e n do
d o d e l d at a t o i nin i ci
c i al
a l X 0 u sa s a nd
n d o e l m et e t od
od o
% d e e xt x t ra
r a po
p o la
l a ci
c i on
o n d e A it i t ke
k e n . E l m et e t od
o d o s e p ar ar a t ra ra s
% 1 000 0 i tet e ra
r a ci
c i on
o n es
e s o d es e s pu
p u es
e s d e q u e e l v al a l or
o r a bsb s ol
o l ut
ut o
% d e l a d if i f er
e r e nc
n c ia
i a e ntn t re
r e d osos i te t e ra
r a n te
t e c ono n se
s e cu
c u t iv
i v os
os
% e s m en e n or
or q ue ue 1 . e - 04 0 4 . P H I d eb e b e d efe f in
i n ir
i r se
s e c omom o
% u n a f un u n ct
c t io
i o n o u n a i nl n l in
i n e f unu n ct
c t io
io n .
% [ A L PHPH A , N I TE
T E R ] = A I TK
T K E N ( PH
PH I , X0
X 0 , T OL
O L , N MA
M A X ) p e rmr m i te
te
% d efe f in
i n ir
i r l a t ol o l er
e r an
a n ci
c i a d e l c ri r i te
t e ri
r i o d e p ar a r ad
ad a y
% e l n um u m er
e r o m axa x im
i m o d e i te t e r ac
a c io
i o ne
ne s .
i f n a rgrg in
in = = 2
t o l = 1. 1 . e -0
-0 4 ; n m a x = 10 10 0;
e ls
l s ei
e i f n ara r gi
gi n = = 3
n ma
ma x 1 00
00 ;
end
x = x0 ; di ff = tol + 1; n iter = 0;

62 2 Ecuacio
ion
nes no li
lin
neal
alees

wh
hii le
le n itit er
e r < = n ma ma x & d if i f f > = t ol ol
g x = f e vav a l ( p hi
hi , x , v a ra
r a r gi
g i n { : } );
);
g gx
g x = f e vav a l ( p hi
hi , gx
g x , v a ra
r a r gi
g i n { : } );
);
x n ew
ew = ( x * g gx gx - g x ^ 2)
2 ) /(
/ ( g gx
g x - 2*
2 * g x + x );
);
d if
i f f = a bsb s ( x - x n ew
ew ) ;
x = xnew ;
niter = niter + 1;
1;
end
i f n it
i t er
er > = n ma ma x
f pr
p r in
i n tf
t f ( ’ N o c on o n ve
v e rg
r g e e n e l m ax a x im
i m o ’ , ..
.. .
’ n um
u m er
e r o d e i te t e r ac
a c io
i o n es
e s \ n ’ );
);
end
return

Ejemplo 2.9   Para calcul


c alcular
ar la
l a raı́z
ra´ız simple
s imple α  = 1 de la función
 α =  f ((x) =  ex (x 1)
funci´on f  −
aplicamos
aplicam os el m´
método
etodo de Aitk
Aitkenen empezand
empezando o por las dos funci
funciones
ones de iterac
iteraci´
ión
on
siguientes
x   ex + x
φ0 (x) = log(xe
log(xe ), φ1 (x) = x .
e +1
Utilizamos el Programa 2.4 con   tol=1.e-10,   nmax=100,   x0=2  y definimos las
dos funciones de iteraci´
iteración
on como sigue:
p hi
hi 0 = i n l
liine(’l loog(x*e ex
xp(x) )))’,’x’) );
;
p hi
hi 1 = i n
nllinne
e ( ’ ( e x p ( x )+
)+ x ) / ( e x
xpp(x)+1
1))’,’x’)
);;
Ahora corremos el Programa 2.4 como sigue:
[alpha,niter]=aitken(phi0,x0,tol,nmax)

alpha =
alpha
1.0000
1.0000 + 0.0
0.0000
000i
i
niter
niter =
10

[alpha,niter]=aitken(phi1,x0,tol,nmax)

alpha
alpha =
1
niter
niter =
4

Como podemos ver, la convergenc


convergencia
ia es extremadame
extremadamente nte r´
rápida.
apida. A modo de
comparación,
comparaci´ on, el método

etodo con función
funci´
on de iterac
ite raci´
ión
on   φ1   y el mismo criterio de
parada habr
habr´ı́ıa
a requerido 18 iteraciones, mientras que el m´ método
etodo correspon-

diente a 
a   φ0  no habr´
habr ı́ıa
a convergido porque  |
por que φ0 (1) = 2. |   

Resumamos
1. Un numero
n umero   α  verificando
 verificando   φ(α) =   α   se llama punto fijo de   φ. Para
calcularlo podemos utilizar las llamadas iteraciones de punto fijo:
x(k+1) = φ
 φ((x(k) );

2.5
2.5 Polin
olinom
omio
ioss alge
algeb
braic
raicos
os 63

2. las iteraci
iteraciones
ones de punt
puntoo fijo convergen
convergen bajo hipótesis
hip´
otesis apropiadas so-
bre la función
funci´
on de iteración
iteraci´on   φ   y su primera derivada. T´ı́ıpicamente,
picam ente,
la convergencia es lineal, sin embargo, en el caso especial de que
φ (α) = 0, las iteraciones de punto fijo convergen cuadr´
cuadráticamente;
aticamente;
3. las iteraciones de punto fijo tambi´
también
en pueden utilizarse para calcular
los
4. dad
dadaceros
a unade
iteuna
iterac
raci´funci´
función;
ión
on de on; fijo  x (k+1) = φ
punto fijo x  φ((x(k) ), siempre es posible
construir una nueva sucesión
sucesi´on usando el m´ método
etodo de Aitken el cual, en
general, converge más
m´as r´
rápidamente.
apidamente.

Véanse

eanse los Ejercic
Ejercicios
ios 2.15-
2.15-2.18.
2.18.

2.5 Polinomios algebraicos

En esta sección
secci´on consideraremos el caso en que   f   f   es un polinomio de
grado   n ≥ 0 de la forma (1.9). Como ya hemos anticipado, el espacio de
grado
todos los polinomio
polinomioss (1.9) se denot denotaa por el s´ımbolo
ı́mbolo   Pn . Cuando 
Cuando   n   ≥   2
coeficientes   ak   son reales, si   α   ∈   C  es una ra
y todos los coeficientes  ra´ı́ızz compleja de
 pn   ∈   Pn  (es decir, con Im(αIm(α)    = 0), entonces ᾱ α (el
¯  (el complejo conjugado
de   α) ta
de tambi
mbi´enén es una raı́ızz de   pn .
un a ra´
El teorema de Abel garantiza que no existe una fór f´ormul
mulaa expexpll´ıcit
ı́c itaa
para calcular todos los ceros de un polinomio gen´ genérico
erico p cuando  n ≥ 5.
 p n , cuando n
Este hecho motiva motiva el empleo de m´ métodos
etodos num
num´éericos
ricos para calcular las
ra´
aı́ıcces de   pn .
Como hemos visto anteriormen
anteriormente, te, para tales m´ métodos
etodos es importante
(0)
elegir un dato inicial apropiado   x o un intervalo de búsquedab´usqueda con-
veniente [a, [a, b] para la ra´
raı́ız.
z. En el caso de los polinomios,
polinomios, esto suele ser
posible sobre la base de los siguientes resultados.

Teorema 2.2 (regla de los signos de Descartes)   Denotemos 


por  ν  el umero de cambios de signo de los coeficientes   {aj }  y por   k
 ν  el n´ 
el n´ 
umero
ume ro de
d e ra´
raı́ıces
ces re
reales
ales positiv
positivas de    pn , cada una contada tantas 
as de 
Entonces   k ≤ ν 
veces como indica su multiplicidad. Entonces   ν    y   ν  − k  es par.

polinomio  p 6 (x) =  x 6 2x5 + 5x4 6x3 + 2x2 + 8x 8 tiene


Ejemplo 2.10  El polinomio p − − −
los ceros  {± ± ±}
1, 2i, 1 i  y de este modo posee una ra´ ra ı́ızz real positiva ((k
k  = 1).
En efecto, el número
n´umero de cambios de signo ν 
signo  ν  de
 de sus coeficientes es 5 y por tanto
≤ −
k ν   y   ν  k  = 4 es par.   
 

64 2 Ecuacio
ion
nes no li
lin
neal
alees

de   pn   se incluyen en el 


Teorema 2.3 (Cauchy)   Todos los ceros de  

cı́ırc
rcuulo   Γ  
Γ   del plano complejo

Γ   = {z  ∈
Γ   C :   |z | ≤ 1 + η
+ η },   donde   η   = max |ak /an |.   (2.26)
0≤k≤n−1

Esta propiedad es apenas útil util


´ cuando
cuando   η    1 (por ejemplo, para el poli-
nomio p
nomio  p 6  del Ejemplo 2.10, tenemos η
tenemos  η =
 = 8, mientras que todas
toda s llas
as ra
ra´ıces
ı́ces
están
est´
an en c´ c ırculos
ı́rculo s co
conn rradios
adios claramente menores).

2.5
2.5.1
.1 Alg
Algori
oritmo
tmo de H¨
Hörner
orner

En este párrafo
p´arrafo daremos un m´método
etodo para la evaluaci´
evaluación
on efectiva de un
polinomio (y su derivada) en un punto dado   z . Tal algoritmo permite
generar un procedimiento automático,
autom´ atico, llamado m´
llamado mét etodo
odo de de
defla
flaci ´  , para
ci´ 
on 
la aproximación
aproximaci´on sucesiva de
de todas   lass ra´
 todas  la raıces
ı́ces de un pol
polinomio
inomio..
Desde el punto de vista algebraico, (1.9) es equivalente a la siguiente
representación
representaci´
on
 pn (x) =  a0  +
 + x
 x((a1  +
 + x
 x((a2  +
 + . . . . +
 + x
 x((an−1  +
 + a
 an x) . . .)).
)).   (2.27)

Sin embargo, mientras que (1.9) requiere   n   sumas y 2n 2n − 1 productos


para evaluar   pn (x) (para un   x   dado), (2.27) sólo s´olo requiere   n   sumas y
n   productos. La expresión
expresi´on (2.27), tambi
tambi´en én conocida como el algoritmo
del producto anidado, es la base del algoritmo de Hörn H¨orner.
er. Este méto
m´etodo
do
permite evaluar efectivamente el polinomio 
polinomio   pn  en un punto 
punto   z  usando el
siguiente algoritmo
siguiente  algoritmo de divisi´ 
on si
sint
nt´éetica 
t ica 

bn   = a n ,
(2.28)
bk   = a k  +  bk+1 z,
 + b k  =
 = n
 n − 1, n − 2,..., 0

En (2.28) todos los coeficientes b


coeficientes  bk  con
 con k
 k ≤ n−1 dependen de z
de z y
 y podemos
que   b0  =
comprobar que   = p
 p n (z ). El polinomio

n
q n−1 (x; z ) = b1  +
 + b
 b2 x +
 + ...
 ... +  bn xn−1 =
 + b bk xk−1 ,   (2.29)
k=1

grado   n − 1 en
de grado  en   x, depende del parámetro
par´ametro   z   (v´
(vı́ıaa los co
coefici
eficientes
entes   bk )
y se llama 
llama   polinomio asociado   a   pn . El algoritmo (2.28) se implementa
en el Programa 2.5. Los coeficientes   aj   del polinomio que se evalúa eval´ua se
almacenan en el vector   a  empezando desde 
desde   an  hasta
 hasta   a0 .
 

2.5
2.5 Polin
olinom
omio
ioss alge
algeb
braic
raicos
os 65

Programa 2.5.   horner:


horner: algorit
alg oritmo
mo de la divisi
div isi´

onn sint´
sin téti
eticaca

fuunn ct
c t io
i o n [ y , b ] = h or o r ne
n e r ( a,
a, z )
% H O R NE
N E R A l gog o r it
i t m o d e H o rn rn e r
% Y = HO
H O RN
R N E R(
R ( A,
A , Z)
Z ) c alal cu
cu l a
% Y = A (1 ( 1 ) * Z^
Z ^ N + A (2 ( 2 ) * Z^
Z ^ ( N -1
- 1 ) + . ... . + A (N
( N )*
)* Z + A ( N+
N+1)
% u s a n d o e l a lg l g o r i t m o d e H or o r n e r d e la
la
%
n = d lien
envigt
gtsiho( na ) s
-1
-1in;tetica .
b = z er e r os
o s ( n + 1 ,1
, 1 );
);
b ( 1)
1 ) = a ( 1) 1) ;
f or
o r j = 2 : n +1+1
b ( j ) = a ( j )+ )+ b (j
( j - 1 )*
)* z ;
end
y = b (n ( n +1
+1);
b = b ( 1: 1 : e nd
nd - 1)1) ;
return

Ahora queremos introducir un algoritmo tal que, conociendo la ra´ raız


ı́z
de un polinomio (o una aproximación),
aproximaci´on), sea capaz de eliminarla y permitir
entonces el c´
cálculo
alculo de la siguiente hasta que est´
estén
en determinadas todas
ellas.
Paraa hacer esto deber
Par deber´ı́ıamos
amos recor
recordar
dar la siguie
siguiente
nte propiedad
propiedad de la
divisi´ 
on polin
pol in´
ómica ::
omica 

Proposici´
Proposición polinomios   hn   ∈   Pn   y 
on 2.3   Dados dos polinomios   y    gm   ∈   Pm   con 
m   ≤   n, existe un unico
´  polinomio   δ   ∈   Pn−m   y un unico
polinomio ´  polinomio
ρ ∈ Pm−1  tal que 

hn (x) =  gm (x)δ (x) + ρ


+ ρ((x).   (2.30)

polinomio   pn   ∈ Pn   por 
De este modo, dividiendo un polinomio  por   x − z  se deduce de
(2.30) que

( x − z )q n−1 (x; z ),
 pn (x) =  b0  + (x

habiendo denotado por  por   q n−1  el cociente y por   b0  el resto de la división.
divisi´on.
Si   z   es una ra´raız
ı́z de   pn , entonces tenemos   b0   =   pn (z ) = 0 y por con-
siguiente   pn (x) = (x − z )q n−1 (x; z ). En este caso la ecuación
siguiente ecuaci´on algebraica
q n−1 (x; z ) = 0 proporciona las  las   n − 1 ra´
raı́ıces
ces rest
restantes
antes de
de   pn (x). Esta ob-
servación
servaci´ on sugiere adoptar el siguiente criterio
siguiente  criterio de deflaci´  on  para
  para calcular
todas  l
todas   las
as ra´
raı́c
ıces de   pn :
es de 
Para   m  =
Para  = n,
 n, n − 1, . . . , 1:
1. hal
hallar
lar una
u na raı́z
ra´ız r
 r m   de
de p
 p m  con un méto
m´etodo
do de aproxi
a proximaci
maci´on
ón apropiado;
2. cal
calcul
cular  q m−1 (x; rm ) utilizando
ar q  utilizando (2.28)
(2.28)-(2.29)
-(2.29) (habiendo definido
definido z
 z   =
rm );
3. poner
poner   pm−1   = q m−1 .

66 2 Ecuacio
ion
nes no li
lin
neal
alees

En el párrafo
p´arrafo siguie
siguiente
nte proponemos
proponemos el m´ método
etodo de este grupo m´
más
as
ampliamente conocido, que utilutiliza
iza el m´
método
etodo de Newton para la aproxi-
mación
maci´
on de las ra´
raı́ıces.
ces .

2.5.2 M´
Métod
etodo o de Newton
Newton-H¨
-Hörner
orner
Como su nombre sugiere, el  m´  mét
etodo
odo de Newt
Ne wton
on-H
-H¨ ö
orne r    implementa el
rner 
procedimiento de deflación
deflaci´on ututiliza
ilizando
ndo el m´
métod
etodoo de Newton para calculcalcular
ar
la
lass ra´
raı́ıces
c es   rm . La ventaja reside en el hecho de que la implementaci´
implementación on
del métod
m´etodoo de N Newton
ewton explota convenientemente el aalgori lgoritmo
tmo de Hörner
H¨orner
(2.28).
En realidad, si q si  q n−1  es el polinomio asociado a p a  p n  definido en (2.29),
puesto que
 pn (x) = q n−1 (x; z ) + (x
(x − z )q n −1 (x; z ),
se tiene
 pn (z ) = q n−1 (z ; z ).
Gracias a esta identidad, el m´ método
etodo de Newton-Hörner
Newton-H¨ orner para la aproxi-
mación
maci´on de una ra´
raız
ı́z (real o comp
compleja)
leja)   rj   de   pn   ( j   = 1, . . . , n)
n) toma la
(0)
siguiente forma: dada una estimación
estimaci´on inicial r
inicial  r j   de la ra´ raı́ız,
z, cal
calcula
cularr para
cada   k ≥ 0 y hasta la convergencia
cada

(k ) (k )
(k +1) (k )  pn (rj   ) (k )  pn (rj   )
rj   = r j   − (k )
= r j   − (k ) (k )
(2.31)

 p (rj   ) q n−1 (rj   ; rj   )
n

Ahora utilizamos la técnica


t´ecnica de deflaci´
deflación,
on, explotando el hecho de que
 pn (x) = (x − rj ) pn−1 (x). Entonces proprocedemos
cedemos a la
l a aaproximaci´
proximación
on de un
un
cero de   pn−1  y as
as´ıı́ suce
sucesiv
sivamen
amente
te hasta que sean procesadas
procesadas todas las
ra´ı́ıccN´ de  epnque,
esotese
Nótes   . cua ndo   rj   ∈   C, es necesario realizar el cálculo
cuando c´alculo en arit-
(0)
métic
m´ eticaa comp
complej lejaa toma ndo   rj   con part
tomando partee imagin
imaginaria
aria no nnula.
ula. Cas
Casoo con-
(k )
trario, el m´ método
etodo de Newton-H¨
Newton-Hörner
orner generarı́a sucesi´on   {rj   }   de
generar´ıa una sucesión
números
n´umeros reales.
El métod
m´etodoo de Newton-H¨
Newton-H öorner
rner se ha implementado en el Programa
2.6. Los coeficientes   aj  del polinomio para el cual intentamos calcular
las ra
ra´ı́ıces
ces se almacenan
almacena n en el vector   a  empezando desde a
desde  a n  hasta
 hasta a
 a 0 . Los
otros parámetros
par´ ametros de entrada,  tol  y  nmax, son la tolerancia del criterio de
parada (sobre el valor absoluto de la diferencia entre dos iterantes conse-
cutivos)
cutiv os) y el n´número
umero m´
máximo
aximo de iteraciones permitidas, respectivamente.
Si no se definen, los valores  por defecto   que se asumen son  nmax=100   y
tol=1.e-04. Como salida, el programa devuelve en los vectores  roots
e  iter  las ra
ra´ı́ıces
ces calculadas y el número
n´umero de iteraciones requeridas para
calcular cada uno de los valores, respectivamente.

2.5
2.5 Polin
olinom
omio
ioss alge
algeb
braic
raicos
os 67

Programa 2.6.   newtonhorner:


newtonhorner: méto

etododo de Newton-H¨
Newton -Hörner
orner

io n [ r o o ts
f u n c t io ts , i t e r ] = n e w t o n h o r n e r ( a , x0
x 0 , t ol
ol , n m a x )
% N E W T O NH
N H O R NE
NE R m e to
t o d o d e N ew e w to
t o n - H o r ne
ne r
% [ r o otot s , I TE
T E R ] = N E W TO
T O N H OR
O R N E R ( A , X0
X0 ) c a lcl c u la
l a l as
a s r a icic e s
% d elel p ol o l in
i n om
o m io
io
% P (X( X ) = A (1 ( 1 ) *X
* X ^N
^ N + A (2 ( 2 ) * X ^(
^( N -1
- 1 ) + . .. . . + A (N ( N )*
)* X +
% A ( N +1+1 )
% u sas a nd
n d o e l m et e t od
o d o d e N ew ew to
to n - H o rn
r n er
er
% p ara r ti
t i en
e n do
d o d elel d at a t o i nin i ci
c i al
al X0 .
% E l m et e t od
o d o s e p ar ar a p ar ar a c ad ad a r ai ai z
% d ese s pu
p u es
e s d e 1 00 0 0 i tet e ra
r a ci
c i on
o n es
e s o d es e s pu
p u es
e s d e q ue ue
% e l v al a l or
o r a bsb s ol
o l ut
ut o de la
% d i fef e r en
e n c ia
i a e ntn t r e d oso s i t e rar a n te
t e s c o n ses e c ut
u t i v os
os
% s eaea m en en or
o r q u e 1 .e . e - 04
04 .
% [ r o otot s , I TE
T E R ] = N E W TO
T O N H OR
O R N E R ( A ,X
, X 0 , T OL
O L , N M AX
A X ) p e rmr m i te
te
% d efe f in
i n ir
i r l a t ol o l er
e r an
a n ci
c i a s obo b re
r e e l c ri r i te
t e ri
r i o d e p ar a r ad
ad a
% y e l n um u m er
e r o m axa x im
i m o d e i te t e ra
r a ci
c i on
o n es
es .
i f n a rgrg in
in = = 2
t o l = 1 .e . e - 04
0 4 ; n m axax = 1 0 0; 0;
e ls
l s ei
e i f n ara r gi
gi n = = 3
n ma
m a x = 1 00 00 ;
end
n = l en
e n gt
g t h ( a ) -1
- 1 ; r ooo o ts
t s = z er e r os
o s ( n , 1)
1 ) ; i tet e r = z er e r os
o s ( n , 1)
1) ;
for k = 1: n
% I t ere r ac
a c i on
o n es
e s d e N ew e w to
to n
n iter = 0 ; x = x0 ; d iff = tol + 1;
w hi
h i le
le n it it er
e r < = n ma ma x & d if i f f > = t ol ol
[ pz
pz , b ] = h or o r ne
n e r (a
( a , x );
); [ dp d p z , b ] = h or o r ne
n e r (b
( b , x)
x);
xnew = x - pz / dpz ; d i f f = a b s ( x n e w -x -x );
niter = niter + 1; x = xnew ;
end
i f n itit er
e r > = n ma ma x
f pr
p r in
i n tf
t f ( ’ N o c on o n ve
v e rg
r g e e n e l m ax a x im
i m o ’ , .....
’ n um
u m er
e r o d e i te t e ra
r a c io
i o ne
n e s \ n ’ ););
end
% D e flf l a ti
ti o n
[ pz
pz , a ] = h or o r ne
n e r (a
( a , x );
); r oo o o ts
t s ( k ) = x ; i te t e r (k
( k ) = n it i t er
er ;
end
return

Observaci´
Observación on 2.1   Con vistas a minimizar la propagación
propagaci´on de los errores de
redondeo durante el proceso de deflación deflaci´on es mejor aproximar primero la ra´
raız
ı́z
r1   con m´ınimo
ı́nimo valor absoluto y, a continuaci´ continuación,
on, proceder al cálculo

alculo de las
siguient
sig uientes
es ra´
raıces
ı́ce s   r2 , r3 , . . .,
., hasta que se obtenga la de mayor valor absoluto
(para saber más,
m´ as, v´véase
ease por ejemplo [QSS06]
[QSS06]).
).   •
Ejemplo 2.11   Para
Par a calcul
calcular ı́ces 1, 2, 3   del polinomio   p3 (x) =   x3
ar las ra´
raıces  { } −
6x2 + 11x
11x 6 utilizamos el Programa 2.6

a=[1 -6 11 -6]
];; [x,nite
err]=newton
nhhor
rnner(a,0,1
1..e-15,10
000)

x =
1
2
3

68 2 Ecuacio
ion
nes no li
lin
neal
alees

nite
niter
r =
8
8
2

El métod
m´etodoo calcu
calcula
la las tres ra´
raıces
ı́ces con precisi´
precis ión
on en unas pocas iteraciones. Sin
embargo, como se señal´
se˜naló
o en la Observaci´
Observación
on 2.1, el m´
método
etodo no siempre es tan
polinomio   p4 (x) =  x 4 7x3 + 15x
efectivo. Por ejemplo, si consideramos el polinomio  − 15x2 −
13
13xx + 4 (que tiene la ra
ra´ı́ızz 1 con multiplicidad 3 y una ra´
raız
ı́z simple de valor 4)
encontramos los siguientes resultados
a = [1
[1 - 7 1 5 - 1
133 4]
];; fo
orrm
maat lo
onng;
[x,niter]=newtonhorner(a,0,1.e-15,100)

x =
1.00000693533737
0.99998524147571
1.00000782324144
3.99999999994548
nite
niter
r =
61
101
6
2

La p´
pérdida
erdida de precisión
precisi´on es bastante evidente para el cálculo

alculo de la ra´
raız
ı́z
múltiple,
m´ultiple, y se hace menos relevante a medida que la multiplicidad crece (v´
(véase
ease
[QSS06]).   

2.6 Lo que no le hemos dicho

Los méto
m´etodos
dos m´
más
as sofistic
sofi sticado
adoss par
paraa el cálculo
c´alculo de los ceros de una funci´
función
on
combinan diferentes algoritmos. En particular, la función
funci´
on de   MATLAB
fzero fzero   (véase
(v´ease la Secci´
Sección
on 1.4.1
1.4.1)) adopta el llamad
llamadoo m´
métod
etodoo de Dekker-
Brent (véase
(v´ease [QSS06
[QS S06],
], Secc
Secci´
ión
on 6.2.3). En su forma b´básica
asica fzero(fun,x0)
calcula los ceros de la función
funci´on   fun, donde   fun  puede ser una cadena de
caracteres que es una función
funci´on de   x, el nombre de una 
una   inline function , o
el nombre de un m-file 
un  m-file .
Por ejempl
ej emplo,
o, p
pod
odrr´ı́ıamos
am os reresolve
solverr el p
prob
roblema
lema del Ejem
Ejemplo
plo 2.1 también
tambi´en
mediante   fzero, usando el valor inicial   x0=0.3   (como se hizo con el
méto
m´etodo
do de Newt
Newton)
on) v´ıa ı́a las ins
instruc
truccio
ciones
nes siguie
sig uientes:
ntes:
f u nc
nc t i
ioon y=Ifu un
nc(I)
y = 6 00
00 0 - 1 0
0000
0**(
(11+I)
)//I*(
(((1
1++I)^5 - 1)
);;
end
x0=0.3;
[ alpha,res,flag]=fzero(’Ifunc’,x0);

2.6 Lo que no le hemos dicho 69

Obtenemos  alpha=0.06140241153653  con residuo  res=9.0949e-13   en


iter=29  iteraciones. Un valor de  flag  negativo significa que  fzero   no
puede hallar el cero. El m´
método
etodo de Newton
Newton con
conver
verge
ge en 6 iteraciones
iteraciones al
valor 0.06140241153652 con un residuo igual a 2.3646e-11.
Par
araa ca
calc
lcula
ularr los ce
ceros
ros de un pol
polin
inom
omio
io,, adem
adem´as
ás del m´
método
etodo de
Newton-H¨
Newton-Hörn orner
er podem
podemos os citar
citar los m´éetodos todos basado
basadoss en suc sucesi
esione
oness de
Sturm,, el método
Sturm m´etodo de M¨ Müller,
uller, (véase
(v´ease [Atk89] o [QSS06]) y el método m´etodo
de Bairstow ([RR85], págin p´aginaa 371 y sig siguie
uient
nte).
e). Una enfoqueenfoque dife diferen
rente
te
consiste en caracterizar los ceros de una función funci´on como los autovalores de
una matriz especial (llamada matriz
(llamada matriz compa˜  nera ) y entonces
enton ces usar usa r t´
técni
ecnicas
cas
apropiadas para su cálculo. c´alculo. Este enfoque es el adoptado por la funci´ funciónon
de   MATLAB  roots  que ha sido introducida en la Sección Secci´on 1.4.2.
Hemos visto en la Sección Secci´on 2.2.2 c´ cómo
omo aplicar el m´ método
etodo de Newton
a un sistema no lineal como (2.13). De forma más m´as general, cualquier
méto
m´ etodo
do de it itera
eraci
ci´on
ón funcional puede extenderse fácilmente f´acilmente para calcular
las ra
ra´ı́ıces
ces de sist
sistemas
emas no lineal
lin eales.
es. También
ambi´en exi existen
sten otrotrosos méto
m´etodos,
dos, como
el de Broyden y los m´ métodos
etodos quasi-Newton, que pueden ser considerados
como generalizaciones del m´ método
etodo de Newton (véase (v´ease [DS83], [Deu04],
[QSS06,, Cap´
[QSS06 Capı́ıtulo
tulo 7]) y [SM03]
[SM03]..
instrucci´on de   MATLAB  zero=fsolve(’fun’,x0)   permite el   fsolve
La instrucción

cálc
alculo
ulo de un cer ceroo de un sis sistem
temaa no lin lineal
eal defi
definid nidoo v´ıaı́a la fun
funci´
ción
on de
usuario   fun, em empez
pezanando
do por el vec ectotorr   x0   como
como conjetconjetura ura ini
inicia
cial.
l. La
función
funci´ on   fun   devuelve
devuelve los   n   valores   f i (x x̄
¯1 , . . . , ¯
, x̄
xn ),   i   = 1, . . . , n,
n, para

cualquier vector de entrada (x̄ x1 , . . . , ¯
(¯ , x̄
xn ) .
Por ej ejem
empl
plo,
o, papara
ra rereso
solv
lver
er el si sist
stem
emaa no linea lineall (2 (2.15
.15)) utili
utiliza
zand
ndoo
fsolve, la correspondiente función funci´on de usuario en   MATLAB, que lla-
mamos  systemnl, se define como sigue:
f u n c t io
io n f x = s y s t e m n
nll(x)
f x ( 1)
1) = x ( 1 ) )^^2+x(2 2))^2-11;;
fx(2) = si in
n(pi*0. .55*x(1)) )++x(2)^3
3;;

Por consiguiente, las instrucciones de   MATLAB  para resolver este sis-


tema son
x0 = [ 1 1 ] ;
alpha=fsolve(’systemnl’,x0)

alph
alpha
a =
0.4761 -0.8794
Utilizando este procedimiento hemos hallado sólo
s´olo una de las dos ra´
raıces.
ı́ces.
La otra puede calcularse empezando desde el dato inicial   -x0.

Octave 2.1  Los comandos fzero y fsolve tienen exactamente el mismo


objetivo en   MATLAB  que en Octave, sin embargo el interfaz difiere li-
geramente
mamos entre aMATLAB
al lector estudiar laydocumentación
Octave en losonargumentos
documentaci´ de ayuda (opcionales. Ani-
help) de ambos
comandos en cada entorno, para los detalles adicionales.   

70 2 Ecuacio
ion
nes no li
lin
neal
alees

2.7 Ejercicios

Ejercicio 2.1   Dada la función


funci´on   f ( −
f (x) = cosh x  + cos x γ , para   γ γ    = 1, 2, 3
hallar un intervalo que contenga al cero de  de   f 
f .. A continuación
continuaci´
on calcular el cero
por el m´
méto
etodo
do de bisecc
bisecci´on con una tolerancia de 10−10 .
ión

Ejercicio 2.2 (Ecuación


(Ecuaci´ on de estado de un gas)   Par Para a el di´
dió
oxid
xido
o de car-
car-
bono
bo no (CO
(CO2 ) los coe
coeficficie
ien
nte
tess   a   y   b   en (2.1
(2.1)) toma
toman
n los sisigu
guie
iennte valor
alores:
es:
6 −6 3
a   = 0.401Pa m ,   b   = 42 ·
42..7 10 m (Pa significa Pascal). Hallar el volumen
ocupado por 1000 moléculas
mol´ eculas de CO2  a la temperatura 
temperatura   T  =
T  = 300K y la presión
presi´on
7
 p  ·
 p   = 3.5 10 Pa por el método
m´ etodo de bisecci´ on, con una tolerancia de 10−12 (la
bisección,
constante de Boltzmann es  es   k  = 1.3806503 10−23 Joule K−1 ).
·
Ejercicio 2.3   Consi
Consid´
dérese
erese un plano cuya pend
pendiente
iente var
var´ıa
ı́a con tasa consta
constante
nte
ω , y un objeto sin dimensiones que está
est´
a parado en el instante inicial t
inicial  t =
 = 0. En
el tiempo 
tiempo   t > 0 su posición
posici´on es
 g
s(t, ω) = 2ω 2 [senh(
[senh(ωt
ωt)) − sen(
sen(ωt
ωt)]
)],,
donde  g  = 9.8 m/s2 denot
donde g denotaa la aceleraci´
aceleración
on de la gravedad. Suponiendo que este
objeto se ha movido un metro en un segundo, calcular el correspondiente valor
de   ω  con una tolerancia de 10 −5 .
de 

Ejercicio 2.4  Probar la desigualdad (2.6).

Ejercicio 2.5   Razonar por qué


qu´
e en el Programa
Programa 2.1 la instru
instrucci´
cción
on   x(2)
x(2) =
x(1)+(x(3)-
x(1)+(x(3 )- x(1))*0.5   ha sido utilizada para calcular el punto medio, en
lugar de la más

as natural   x(2)=(x(1)+x(3))*0.5.

Ejercicio 2.6   Aplicar el método



etodo de Newton para resolv
resolver
er el Ejercicio
Ejercicio 2.1.

¿Por qu´
quée est
estee m´
méto
etododo no tiene
tie ne buen
buenaa precis
pre cisi´
ión
on cuan
cuando
do   γ   = 2?
Ejercicio 2.7   Aplica
Aplicarr el método
m´ etodo de New
Newton
ton para
para calc
calcula
ularr la ra´
raız
ı́z de un
número

umero positiv
positivo
o   a. Proceder de la misma manera para calcular la ra´
raız
ı́z cúbica

ubica
de 
de   a.

Ejercicio 2.8   Suponiendo que el método


m´ etodo de Newton converge, demostrar que
(2.9) es cierto cuando   α   es una ra
ra´ı́ızz simple de   f 
f ((x) = 0 y   f 
f    es dos veces
continuamente diferenciable en un entorno de   α.

Ejerc icio 2.9 (Est´


Ejercicio (Estática)
atica)   Aplicar el método
m´etodo de Newton para resolver el Pro-
  ∈∈
blema 2.3 para   β    [0
[0,, 2π/ 3] con una tolerancia de 10−5 . Supóngase
π/3] Sup´ongase que las
longitudes de las barras son a
son  a 1  = 10 cm, a
cm,  a 2  = 13 cm, a
cm,  a 3  = 8 cm y a
y  a4  = 10 cm.
Para cada valor de   β  erense dos posibles datos iniciales,   x(0) = 0.1 y
 considérense
β  consid´
x(0) = 2π/ 3.
π/3.  −

2.7 Ejercicios 71

Ejercicio 2.10   Nótese


N´otese que la función f (x) =  e x 2x2 tiene 3 ceros, 
funci´on   f ( − ceros,   α1   <  0,
(0)
α2   y   α3   positivo.
po sitivo. ¿Para qué
qu´e valores de 
de   x el m´ método
etodo de Newton conv
converge
erge a
α1 ?

Ejercicio 2.11   Usar el m´


método
etodo de Newton para calcul
calcularar el cero de   f 
f ((x) =
3 2 −x −x −x
x 3x 2 + 3x 3x4 8 en [0,
[0, 1] y explicar por qu´
quée la conv
convergencia
ergencia no es

cuadrática.
cuadr´
atica. −
Ejercicio 2.12   Se lanza un proyectproyectil
il con velocidad
velocidad v  v 0   y angulo α

´ngulo  α en
 en un túnel
 t´
unel
de altura h
altura h y  y alcanza
alcanz a su
s u ra
rango
ngo m´
máximo
aximo cuando α
cuando  α es
 es tal que sen(αsen(α) = 2gh/v02 ,
donde   g   = 9.8 m/s2 es la aceleraci´
donde aceleración
on de la gravedad.
gravedad. Calcular
Calcular   α  utilizando el
méto
m´etodo
do de Newto
Newton,n, suponiendo
supo niendo que 
que   v0  = 10 m/s y 
y   h  = 1 m.

Ejercicio 2.13 (Fondo de inversión)


inversi´on)   Resolver el Problema 2.1 por el m´ mé-
e-
−12
todo de Newton con una tolerancia de 10 , suponiendo M 
suponiendo  M  =
 = 6000 euros, v
euros,  v =
 =
1000 euros y n
y n =
 = 5. Como conjetura inicial tomar el resultado obtenido despu´
despuéses
de 5 iteraciones del método
m´etodo de bisecci´
bisección
on aplicado en el interv
intervalo
alo (0.
(0.01,
01, 0.1).

Ejercicio 2.14   Un pasi


pasill
llo
o ti
tien
enee la form
forma
a indi
indica
cada
da en la Figu
Figura
ra 2.10
2.10.. La
máxima
m´axima longitud
longitud   L   de una barra que puede pasar de un extremo al otro
desliz´
deslizándose
andose sobre el suelo está
est´a dada por

L  =  l 2 /(sen(
 = l (sen(ππ − γ  − α)) + l
+  l /sen(
sen(α
1α),

donde   α  es la soluci


donde soluci´on
ón de la ecuaci´
ecuaci on
ón no linea
lineall
cos(π
cos(π − γ  − α)  − l cos(α)
cos(α
l2 1   = 0.   (2.32)
sen2 (π − γ  − α) sen2 (α)
Calcular   α  por el método
Calcular m´
etodo de Newton cuando l
cuando  l 2  = 10, 
10,   l1   = 8 y   γ   = 3π/
π/5.
5.

  l1
L α
γ 

l2

Figura 2.10.
2.10. Problema
 Problema de una barra deslizándose
desliz´
andose en un pasillo

Ejercicio 2.15   Sea φ


Sea  φN  la función
funci´on de iteración
iteraci´
on del m´
méto
etododo de Newton
Newto n ccuando
uando

se considera como una iteración
iteraci´on de punto fijo. Demostrar que  φN (α) = 1 1/m
que φ
donde α es
donde α  es un cero de f 
de  f  con
  con multiplicidad m
multiplicidad m.. Deducir
De ducir que el méto
m´etodo −
do de Newton
converge cuadráticamente
cuadr´aticamente si  si   α  es una ra´
raı́ızz simple de 
de   f 
f ((x) = 0, y linealmente
en otro caso.

72 2 Ecuacio
ion
nes no li
lin
neal
alees

Ejercicio 2.16  Deducir de la gráfica


gr´ de  f ((x) =  x 3 + 4x2 10 que esta función
afica de f  − funci´
on
tiene un unico
único
´ cero real α
real  α.. Para calcular α
calcular  α utilizar
 utilizar las siguientes iteraciones de
(0) (k+1)
punto fijo: dado 
dado   x , definir 
definir   x tal que

(k+1)   2(
2(xx(k) )3 + 4(x
4(x(k) )2 + 10
x =   , k ≥ 0,
3(
3(xx(k) )2 + 8x
8x(k)
y analizar su convergencia a   α.

Ejercicio 2.17  Analizar la convergencia de las iteraciones de punto fijo

(k+1)   x(k) [(
[(xx(k) )2 + 3a
3a]
x =   , k ≥ 0,
3(
3(xx(k) )2 + a
para el cálculo
c´alculo de la ra
ra´ı́ızz cuadrada de un n
n´umero
úmero positiv
positivo
o   a.

Ejercicio 2.18   Repetir los cálculos


c´alculos realizados en el Ejercicio 2.11, esta vez
utilizando
utilizando el criterio
criterio de parad
paradaa basado en el residuo.
residuo. ¿Qu
¿Qu´ée result
resultado
ado es más

as
preciso?
 

Aproximación
Aproximaci´
on de funciones y datos

Aproximar una función


funci´on   f 
f    consiste en reemplazarla por otra de forma
as simple,  f ,
más
m´ f ˜, que puede ser usada como un sucedáneo.
suced´aneo. Como veremos
en el cap´
capı́ıtulo
tulo siguiente, esta estrategia se util utiliza
iza frecuentemente
frecuentemente en in-
b
tegraci´on num
tegración num´éerica
rica donde, ben lugar de calcular
   a   f (
f (x)dx
dx,,uno lleva a
c´alculo exacto de a f 
cabo el cálculo ˜(x)dx
f ( dx,, siendo  f  
f ˜  una función
funci´on f´
fácil
acil de inte-
grar (por ejemplo un polinomio). En otros casos la función funci´on f 
 f  puede
 puede estar
disponiblee sólo
disponibl s´
olo parcialmente por medio de sus valores en algunos puntos
seleccionados. En esos casos deseamos construir una función funci´on continua  f ˜
que podr
po dr´ıa
ı́a representa
repr esentarr la ley emp
emp´ı́ırica
ri ca que est´
estáa detr´
detrás
as del conjunto finito
de datos. Proporcionamos ejemplos que ilustran este tipo de enfoque.

Prob lema 3.1 (Cli


Problema (Climato
matolog ı́a)   La temperatura del aire cerca de la
log´ıa)
tierra depende de la concentración
concentraci´on   K  K    de acido
´ácido carbónico
carb´ onico (H2 CO3 ) en
´el.
él. En la Tabla 3.1 recogemos, para diferentes latitudes sobre la tierra y
para diferentes valores de 
de   K , la variación K   =  θ K   − θK 
variaci´on   δ K  ¯   de la tempera-

tura
a un promedio con respecto
valor de referencia ¯  a  de
 K  
K̄ la  temperatura
uı́ı  K  
K . Aqu´ promedio
¯    se
K̄ correspondiente
refiere al valor medido
en 1896, y está
est´a normalizado a uno. En este caso podemos generar una
función
funci´
on que, sobre la base de los datos disponibles, proporcione un valor
aproximado de la temperatura promedio en cualquier latitud posible y
para otros valores de 
de   K  (véase
  (v´ease el Ejem Ejemplo
plo 3.13.1).).   

Problema 3.2 (Finanzas)  En la Figura 3.1 recogemos el precio de una


acción
acci´
on en la Bolsa de Zurich a lo largo de dos a˜ años.
nos. La curva fue obtenida
uniendo con una l´ınea
ı́nea recta los precios recogidos al cierre de cada d´ıa.
ı́a.
Esta representaci
representaci´on
ón simple asume impl impl´ıcitamente
ı́citam ente que los precios cam-
bian linealmente en el curso del d´ıa ı́a (anticipamos que esta aproximaci´
aproximación
on
se llama interpolación
interpolaci´on lineal compuesta). Nos preguntamos si a partir de
esta gráfica
gr´afica uno
u no podr´
p odrı́a
ıa predecir
pr edecir el precio
pre cio de la acci´
acc ión
on para un corto inter-
valo de tiempo más
m´as allá
all´a de la última
ultima
´ cotizaci´
cotización.
on. Veremos en la Sección
Secci´on

74 3 Aproximaci´

on n de funciones y datos

δ K
Latitud   K   = 0.67   K   = 1.5   K   = 2.0   K   = 3.0
65 -3.1 3.52 6.05 9.3
55 -3.22 3.62 6.02 9.3
45 -3.3 3.65 5.92 9.17
35 -3.32 3.52 5.7 8.82
25 -3.17 3.47 5.3 8.1
15 -3.07 3.25 5.02 7.52
5 -3.02 3.15 4.95 7.3
-5 -3.02 3.15 4.97 7.35
-15 -3.12 3.2 5.07 7.62
-25 -3.2 3.27 5.35 8.22
-35 -3.35 3.52 5.62 8.8
-45 -3.37 3.7 5.95 9.25
-55 -3.25 3.7 6.1 9.5
Tabla 3.1.   Variación
Variaci´
on de la temperatura media anual de la tierra para cua-
concentraci´on   K  
tro valores diferentes de la concentración K   del ´
acido
ácido carbónico
carb´
onico a diferentes
latitudes (tomada de Philosophical Magazine 41, 237 (1896))

predicci´on podr
3.4 que este tipo de predicción podr´ıa
ı́a ser conje
conjeturada
turada recur
recurriendo
riendo a
una técnica
t´ecnica especi
especial
al cono
c onocida
cida como aproximaci
aproximaci´onón de datos por m´
por  mı́ın
nimos 
 (véase
cuadrados  (v´
cuadrados  ease el Ejem
Ejemplo
plo 3.9
3.9).
).   

16

14

12

10

0
nov00 ma01 nov01 ma02

Figura 3.1.
3.1. Variaci´
 Variación
on del precio de una acci´
acción
on a lo largo de dos años

nos

Prob lema
Problem a 3.3 (Bio
(Biomec áni ca)   Consideramos un test mecánico
mec´
anica) mec´anico para
establecer la relaci´
relación
on entre tensiones y deformaciones en una mues
muestra
tra de
tejido biológico
biol´ogico (un disco interv
intervertebral,
ertebral, v´
véase
ease la Figura 3.2). Partiendo
de los datos recogidos en la Tabla 3.2, en el Ejemplo 3.10 estimaremos la
deformación
deformaci´on correspondiente a una tensión
tensi´on de 
de   σ   = 0.9 MPa (MPa= 100
N/cm2 ).   

3 Apro
Aproxi
xima
maci
ci´

on n de fu
func
ncio
ione
ness y dato
datoss 75

A σ  =  F /A
 = F

  =  ∆L/L
 = ∆L/L

∆L L
Figura 3.2.
3.2.   Repr
Represent
esentaci´
ación
on esqu
esquem´
emática
atica de un disco intervertebral

test
test tens
tensi´on   σ   deformación
ión deformaci´on      test
test tens
tensi´on   σ   deformación
ión deformaci´on   
1 0.00 0.00 5 0.31 0.23
2 0.06 0.08 6 0.47 0.25
3 0.14 0.14 7 0.60 0.28
4 0.25 0.20 8 0.70 0.29
Tabla 3.2.   Valores de la deformación
deformaci´on para diferentes valores de la tensión
tensi´
on
aplicada a un disco intervertebral (tomada de P. Komarek, Cap. 2 de  Biome-
chanics of Clinical Aspects of Biomedicine , 1993, J. Valenta ed., Elsevier)

Problema 3.4 (Rob´ otica)   Queremos aproximar la trayectoria plana


(Robótica)
seguida por un robot (idealizado como un punto material) durante un
ciclo de trabaj
trabajoo en una industria. El robot
rob ot deber
deb er´ıaı́a satisfacer unas cuan-
tas restricciones: en el instante inicial (pongamos,   t   = 0) debe estar
estacionado en el punto (0, (0, 0) del plano, trans
transitar
itar a tratrav´
vés
es del pun
punto
to
(1,, 2) en 
(1 en   t  = 1, alcanzar el punto (4,
(4 , 4) en 
en   t  = 2, parar y volver a em-
pezar inmediatamente y alcanzar el punto (3, (3, 1) en t
en t = = 3, volver al punto
inicial en el tiempo t
tiempo  t =
 = 5, parar y recomenzar un nuevo ciclo de trabajo.
En el Ejemplo 3.7 resolveremos este problema usando funciones spline funciones  spline .

Una función
funci´
on   f  
f   puede ser reemplazada en un intervalo dado por su
polinomio de Taylor, que fue introducido en la Sección Secci´
on 1.4
1.4.3.
.3. Esta t´técni
ecnicaca
es cara computacionalmente porque requiere el conocimiento de  de   f  y
f  y sus
derivadas hasta el orden   n   (el grado del polinomio) en un punto   x0 .
Además,
Adem´ as, el polinomio de Taylor puede fallar para representar a   f   f   sufi-
cientemente
cientem ente lejos del punto
punto x  x0 . Por ejemplo, en la Figura 3.3 comparamos
el comportamiento de  de   f (
f (x) = 1/x/x con
 con el de su polinomio de Taylor de
grado 10 construido alrededor del punto  punto   x0   = 1. Esta gráfi
gr´aficaca ta
tambi
mbi´enén
muestra el interfaz gráfico
gr´afico de la funci´
función
on de   MATLAB   taylortool   taylortool
que permite el cálculo
c´alculo del polinomio de Taylor de grado arbitrario para
cualquier funcion
funcion dada   f .
f . La concordancia entre la funcion
funcion y su poli
nomio de Taylor es muy buena en un pequeño
peque˜no entorno de  de   x0  = 1 mien-
tras que resulta insatisfactoria cuando   x  −  x 0  se hace grande. Afortu-

76 3 Aproximaci´

on n de funciones y datos

0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3

2 3 4 5 6 7 10
T (x) = 2−x+(x−1) −(x−1) +(x−1) −(x−1) +(x−1) −(x−1) +...+(x−1)
10

Figura 3.3. Comparaci´
3.3.  Comparación on   f 
on entre la funci´
función f ((x) = 1/x
/x   (l´
lı́n
ıneaea con
conti
tinu a ) y su
nua 
polinomio de Taylor de grado 10 referido al punto   x0   = 1 (l´ı́ınea
n ea de traz os ).
trazos 
También
ambi´
en se muestra la forma expl´
explı́ıcita
cita del poli
polinomio
nomio de Taylor

nadamente, no es ´éeste
ste el caso de otras funciones tales como la función
funci´on
exponencial que se aproxima bastante bien, para todo   x   ∈   R, por su
polinomio de Taylor referido a   x0   = 0, con tal de que el grado   n   sea
suficientemente grande.
En el curso de este cap
cap´ı́ıtulo
tulo introduciremo
introd uciremoss m´
métod
etodosos de aproximac
aproximaci´
ión
on
basados en enfoques alternativos.

3.1 Interpolación
on
Interpolaci´

Como hemos visto en los Problemas 3.1, 3.2 y 3.3, en varias aplica-
ciones puede suceder que una función
funci´on sea conocida s´ sólo
olo por sus valores
en algunos puntos dados. Por consiguiente, nos enfrentamos a un caso
(general) cuando se dan  dan   n + 1 pares   {xi , yi },   i  = 0, . . . , n;
n; los puntos 
puntos   xi
son todos distintos y se llaman nudos 
llaman  nudos .
Por ejemplo, en el caso de la Tabla 3.1,  3.1,   n  es igual a 12, los nudos  nudos   xi
son los valores de la latitud recogidos en la primera columna, mientras
que los   yi   son los correspondientes valores (de la temperatura) en las
restantes columnas.
En esta situación
situaci´on parece natural exigir a la funci´ función on aproximada  f ˜
que satisfaga el conjunto de relaciones
˜(xi ) =  yi , i  = 0, 1, . . . , n

f (   (3.1)

3.1 Int
Interpolac
erpolaci´
ió
onn 77

Una tal  f ˜  se llama 


f   interpolante   del conjunto de datos   {yi }  y las ecua-
llama   interpolante  
ciones (3.1) son las condiciones de interpolación.
interpolaci´on.
Podr´ı́ıan
Podr an considerarse varios tipos de interpolantes como:
-   el interp
interpolante omico :
olante polin´ 
omico:


f (
˜(x) =  a0  +
 + a
 a1 x +
 + a
 a2 x2 + . . . +  an xn ;
 + a

-   el interpolante
inter polante tri
trigono
gonom´
métr ico::
etrico

f ˜(x) = a −M e−iM


f ( iMxx
+ . . . +
 + a
 a0  +
 + . . . . +  aM eiM x ,
 + a

donde  M  es
donde M   es un entero igual a n/
a  n/22 si
si n
 n es
 es par, (n
(n − 1)
1)//2 si n
si  n es
 es impar,
e   i  es la unidad imaginaria;
-   el interp
interpolante
olante ra cional :
racional 
k
  a0  + a
 +  a 1 x  + .
 +  . . .  + a
 +  ak x
f ˜(x) =
f ( .
ak+1  +
 + a
 ak+2 x +  + . . . . +ak+n+1 xn

Por simplicidad solamente consideramos aquellos interpolantes que


dependen linealmente de los coeficientes desconocidos a
desconocidos  a i . Ambos, los in-
terpolantes polinómi
polin´
omico
co y ttrig
rigono
onom´
métri
etrico,
co, entra
entrann een
n eesta
sta categor´
cat egorı́a,
ıa, mien
mien--
tras que el interpolante racional no.

3.1.1 Polinomio de interpolaci´


interpolación
on de Lagrange

Centr´emonos en la interpo
Centrémonos interpolaci´
lación
on polin´
polinómica.
omica. Se tiene el siguiente resul-
tado:

Proposici´
Proposición on 3.1   Para
Para cualq
cualquier
uier conju
onjunto
nto de par es   {xi , yi },   i   =
ares 
0, . . . , n,
n, con nudos distintos   xi , existe un unico
´  polinomio de grado
menor o igual que   n, que indicamos por   Π n  y llamamos polinomio
de interpolaci´  on de los valores   yi  en los nudos   xi , tal que 

Π n (xi ) =  yi , i  = 0, . . . , n   (3.2)

En caso de que los   {yi ,   i  = 0, . . . , n}  representen los valores alcan-


zados por una funci´  on continua   f f ,,   Π n  se llama polinomio de inter-
on de   f 
polaci´  f    (abreviadamente, interpolante de   de   f )
f ) y ser´ 
a denotado
por   Π n f .
f .

Par
araa ver
erifi
ifica
carr la un
unic
icida
idad
d pr
proce
ocede
demo
moss por redu
reducc
cci´
ión
on al absu
absurd
rdo.
o.

grado  n,,  Π n   y  Π n ,
Supongamos que existan dos polinomios distintos de grado n
ambos satisfaciendo la relaci´
relación diferencia,  Π n − Π n∗ , será
on nodal (3.2). Su diferencia, Π  ser´a
un polinomio de grado n
grado  n  que se anula en 
en   n + 1 puntos
puntos distin
distintos.
tos. Debid
Debidoo

78 3 Aproximaci´

on n de funciones y datos

a un teorema de  Algebra
´ lgebra bien conocido, tal polinomio deber
Á deber´ı́ıaa anularse

idéntic
id´
enticament
amentee y enton
entonces
ces   Π n   coincidir con 
con   Π n .
Para obtener una expresión
expresi´ on para
para   Π n , empezamos por un caso muy
especial en el que   yi   se anula para todo   i   salvo   i   =   k  (para un   k   fijo)
para el cual 
cual   yk  = 1. Poniendo entonces   ϕk (x) =   Π n (x), debemos tener
(véase
(v´
ease la Fig
Figura
ura 3.4
3.4))

ϕk   ∈ Pn , ϕk (xj ) = δ jjkk   =
  1 si 
si   j   = k
 k,,
0 caso contrario,
donde   δ jk
donde jk  e
 ess el s´ı́ımbolo
mbolo de Kronecker.

1.2

0.8

0.6

0.4

0.2
x
0

−0.2

−0.4

−0.6
0 0.5 1 1.5 2

Figura 3.4. El
3.4.  El polinomio 
polinomio   ϕ2   ∈ P4  asociado a un conjunto de 5 nudos equies-
paciados

funciones   ϕk  tienen las siguiente expresión:


Las funciones expresi´on:
n
x − xj
ϕk (x) = 
j =0
xk  − xj , k  = 0, . . . , n .   (3.3)
k
j=

Vamos ahora al caso general en que   {yi , i  = 0, . . . , n}  es un conjunto de


valores arbitrarios. Usando un principio de superposición
superposici´on obvio podemos
obtener la siguiente expresi´
expresión
on para 
para   Π n

 n
Π n (x) = yk ϕk (x) (3.4)
k =0

En efecto, este polinomio satisface las condiciones de interpolaci´


interpolación
on (3.2),
puesto que
n n
Π n (xi ) = yk ϕk (xi ) = yk δ iikk   =  y i , i  = 0, . . . , n .
k=0 k=0

3.1 Int
Interpolac
erpolaci´
ió
onn 79

Debido a su papel especial, las funciones   ϕk   se llaman   polinomios 


sti cos de Lagrange , y (3.4) es la  forma de Lagrange  
caracter´ı́ısticos
caracter Lagrange   del inter-
polante. En   MATLAB   podemos almacenar los   n+1  pares   {(xi , yi )}   en
instrucci´on  c=polyfit(x,y,n)  propor-   polyfit
los vectores   x   e   y, y entonces la instrucción
cionaráa los coeficient
cionar´ coeficientes es del polinomio de int
interpolaci´
erpolación.
on. Para ser m´
más
as pre-
n n 1
cisos,  c(1)  contendr´
 contendráa el coeficiente de  de   x − ,   . . .   y  c(n+1)
de   x ,  c(2)  el de 
el valor de   Π n (0). (Más
(M´as informaci´
información on sobre este comando puede encon-
trarse en la Sección
Secci´on 3.4). Como ya hemos visto en el Cap´ Capıtulo
ı́tulo 1, despu´
despuéses
podemos utilizar la instrucción
instrucci´on  p=polyval(c,z)   para calcular el valor
p(j)   alcanzado por el polinomio de interpolación
interpolaci´on en  z(j),  j=1,...,m,
siendo este último
ultimo
´ un conjunto de   m  puntos arbitrarios.
En cascasoo de que la forforma
ma exp
expll´ı́ıcita
cita de la funfunci´
ción
on   f   esté
est´e disp
dispon onib
ible,
le,
podemos usar la instrucción
instrucci´on  y=eval(f)  para obtener el vector  y  de valo-
res de   f  en algunos
alguno s nudos espec
espec´ıficos
ı́ficos (que se almacenar
almacena r´ıan
ı́an en un vector
x).

Ejempl o 3.1 (Clima


Ejemplo (Climatolo
tologg´ıa)
ı́a)   Para obtener el ppolinomi
olinomioo de interpol
interpolaci´
ación
on de
los datos del Problema 3.1 relativos al valor   K   = 0.67 (primera columna de la
Tabla 3.1), empleando sólo

olo los valore
aloress de la temperatura para las latitudes
latitudes 65,
35, 5, -25, -55, podemos utilizar las siguientes instrucciones de   MATLAB:
x = [ - 55
55 - 2
255 5 35 65]];
; y=[- -3
3..2
25 -3
3..2 -3
3..0
022 -3
3..3
322 -3
3..1
1]];
f o rm
rm a t s h o
orrt e; c=polly
yfi
itt(x,y,44)
)

c =
8.28
8.2819
19e-
e-08
08 -4
-4.5
.526
267e
7e-0
-07
7 -3
-3.4
.468
684e
4e-0
-04
4 3.
3.77
7757
57e-
e-04
04 -3
-3.0
.013
132e
2e+0
+00
0

La gráfica
gr´
afica del polinomio de interpolaci´
interpolación
on se puede obtener como sigue:
z=linspace(x(1),x(end),100);
p=polyval(c,z);
p lo
lo t ( z , p )
);;hold on;pl
loot(x,
,yy,’o’)
);;grid on;
Para conseguir una curva regular hemos evaluado nuestro polinomio en 101
puntos
pun tos equiespac
equiespaciados
iados en el int
intervalo [−55
ervalo 55,, 65] (en realidad, los dibujos de
MATLAB  se construyen
construyen siempre por interpolaci´
interpolaciónon lineal a trozos entre pun-
tos cercanos). Nótese

otese que la instrucc
instrucci´
ión
on   x(end)  toma directamente la última
ultima
´
componente del vector   x, sin especificar la longitud del vector. En la Figura
3.5 los c´ı́ırculos
rculos rellenos corresponden a aquellos valores que han sido utilizados
para construi
construirr el poli
polinomio
nomio de interpol
interpolaci´
ación,
on, mientras que los c´ırculos
ı́rculo s vac´
vacıos
ı́os
corresponden a los valores que no han sido usados. Podemos apreciar la con-
cordancia cualitativa entre lla a curva
curva y la distribuci´
distribución
on de datos.   

Utilizando el resultado siguiente podemos evaluar el error obtenido


reemplazando   f 
reemplazando f  por interpolaci´on   Π n f :
 por su polinomio de interpolación f :
 

80 3 Aproximaci´

on n de funciones y datos
−2.95

−3.05

−3.15

−3.25

−3.35

−3.45
−60 −40 −20 0 20 40 60 80

Figura 3.5. Polinomio
3.5.  Polinomio de interpolaci´
interpolación
on de grado 4 introducido en el Ejemplo
3.1

Proposici´
Proposición Sea    I  
on 3.2   Sea  I   un intervalo acotado y consideremos  
consideremos   n  +
1   nudos distintos de interpolaci´
interpolación on   {xi , i   = 0, . . . , n}   en  
en   I . Sea  
Sea   f 
conti
ontinuame
nuamente nte difer
diferencia
enciable
ble hast
hasta
a el orden    n  + 1   en  
orden  en   I . Ento
Entonc
nces 
es 
∀x  ∈  I   ∃ξ   ∈  I  tal
 I  tal que 

n
  f (n+1) (ξ )
E n f (
f (x) = f (
 f (x) − Π n f 
f ((x) = (x − x i ) (3.5)
(n + 1)! i=0

Obviamente,   E n f 
Obviamente,  f ((xi ) = 0, 
0,   i  = 0, . . . , n.
n.
El resultado (3.5) puede especificarse mejor en el caso de una dis-
tribución
tribuci´on unif unifor
orme
me de nud udos os,, es
esto
to es es,, cu
cuan
ando
do   xi   =   xi−1   +   h   para
i   = 1, . . . , n,
n, para un   h >   0 y un   x0   dados. Como se ha establecido
en el Ejercicio 3.1,   ∀x  ∈  (x (x0 , xn ) se puede comprobar que

n
 hn+1
(x − xi ) ≤  n!
 n !  ,   (3.6)

i=0
 4

y, por consiguiente,

max|f (n+1) (x)|
x∈I 
max|E n f 
f ((x)| ≤   hn+1 .   (3.7)
x∈I  4(n
4(n + 1)

Desafortunadamente, no podemos deducir de (3.7) que el error tienda


a 0 cuando n que  hn+1 /[4(
cuando  n  → ∞, a pesar de que h [4(nn + 1)] tiende
tiende a 0. De hechecho,
ho,
como se muestra en el Ejemplo 3.2, existen funciones 
funciones   f  
f   para las cuales
el l´ımite
ı́mite puede ser incluso infinito, esto es,
f ((x)|  =  ∞ .
lim max|E n f 
n→∞ x∈I 

3.1 Int
Interpolac
erpolaci´
ió
onn 81

Este sorprendente resultado indica que, haciendo crecer el grado   n


del polinomio de interpolación,
interpolaci´on, no necesariamente obtenemos una mejor
reconstrucción
reconstrucci´ on de
de   f .
f . Por ejemplo, si utilizásemos
utiliz´asemos todos los datos de la
segunda columna de llaa Tabla 3.1, obtendr
obtendr´ıamos
ı́amos el polinomio de interpo-
lación
laci´
on   Π 12
12 f  
f   representado en la Figura 3.6, cuyo comportamiento en el

entorno del extremo


que el obtenido en laizquierdo delusando
Figura 3.5 intervalo
un es muchomucho
n´umero
número menosmás
satisfactorio

as peque˜
pequeño
no
de nudos. Un resultado aún

un peor puede ocurrir para una clase especial
de funciones, como recogemos en el siguiente ejemplo.

Ejemplo 3.2 (Runge)  Si la función  f ((x) = 1/(1 + x2 ) se interpola en nudos


funci´on f 
I   = (−5, 5), el error maxx∈I  | |E n f 
equiespaciados en el intervalo   I   f ((x)|   tiende a
infinito cuando   n   → ∞. Esto se debe al hecho de que si   n   → ∞   el orden
de magnitud de maxx∈I   || f (n+1) (x)|   pesa más
m´as que el orden infinitesimal de
n+1
h /[4(n + 1)]. Esta conclusi
[4(n conclusi´on
ón puede comprobar
comprobarsese calcula
calculando
ndo el máximo
m´aximo de
f  y
f  y sus derivadas hasta el orden 21 por medio de las siguientes instrucciones
de   MATLAB:
s ym
ym s x ; n = 2
200; f=1 1//(
(11+x^22)
); df f==diif
ff((ff,1));
;
c df
df = c hhaar(d df
f);
fo r i = 1 : n n++1 , df = d i if
ff((ddf , 1 )
);; cddf
fn = ch ha
ar(
(ddf )
);;
x = fz ze
erro
o(cd dffn ,0
0)); M(i) = ab bs
s(ev vaal(ccd
df)) );
; cddf
f = cddf
fn;
end

aximos de los valores absolutos de las funciones   f (n) ,   n  = 1, . . . , 21,


Los máximos

se almacenan en el vector M . NóteseN´otese que el comando  char co convier
nvierte
te la expresi
exp resi´
on
ón
simb
si mb´
oli
ól ica   df  en una cadena de caracteres que puede ser evaluada mediante la
funci´
on
ó n  fzero. En particular,
particul ar, los m´
máximos
aximos de lo
loss valores a
absolutos de f (n) para
bsolutos de f 
n  = 3,   9,   15
15,,   21 son:
>>   M([3,9,15,21])
M([3,9,15,21]) =
ans =
4.66
4.6686
86e+
e+00
00 3.
3.24
2426
26e+
e+05
05 1.
1.21
2160
60e+
e+12
12 4.
4.84
8421
21e+
e+19
19
n

mientras que los correspondiente va


valores
lores del máximo

aximo de (x − xi )/(n + 1)!
son

i=0

z = lin nsspa ac
ce( -5,5,10
0000
000)
);;
f or
or n = 0 : 2
200; h=10//(
(n+1); x=[-55:
:h:5];
c=poly(x);
r(n+1)=max(polyval(c,z));
r(n+1)=r(n+1)/prod([1:n+2]);
end
r([3,9,15,21])

ans
ans =

2.89
2.8935
35e+
e+00
00 5.
5.18
1813
13e-
e-03
03 8.
8.58
5854
54e-
e-07
07 2.
2.14
1461
61e-
e-11
11
c=poly(x)  es un vector cuyas componentes son los coeficientes del polinomio   poly
cuyas
cuyas ra´
raı́ıces
ces son los elemen
elementos vector   x. Se sigue que max x∈I  | | E n f 
tos del vector f ((x)|
alcanza los valores siguientes:

82 3 Aproximaci´

on n de funciones y datos
−2.7 2

−2.8
1

−2.9

0
−3

−3.1 −1

−3.2
−2

−3.3

−3
−3.4

−3.5 −4
−60 −40 −20 0 20 40 60 80 −5 −3 −1 1 3 5

Figura 3.6. Dos
3.6.  Dos ejemplos del fenómeno
fen´ izquierda,   Π 12
omeno de Runge: a la izquierda,  12  calcu-
lado para los datos de la Tabla 3.1, columna   K   K   = 0.67; a la derecha,   Π 1212 f 
(l´
lı́n
ıneaea con
conti
tinu a ) calculado sobre los 13 nudos equiespaciados para la función
nua  funci´ on
2
f (
f (x) = 1/(1 + x+ x ) (l´ı́ınea
n ea de traz os )
trazos 

>>   forma
format
t sho
short
rt e;
1.35
1.3509
09e+
e+01
01 1.
1.68
6801
01e+
e+03
03 1.
1.04
0442
42e+
e+06
06 1.
1.03
0399
99e+
e+09
09
para   n  = 3,   9,   15,
para  15,  21, respectivamente.
La falta de
d e convergencia v viene
iene indicada
i ndicada tambi´
t ambién
en po
porr la pre
presencia
sencia de oscilaciones
oscilac iones
severas en la gráfica
gr´afica del polinomio de interpolación
interpolaci´ on con respecto a la gráfica  f ,,
gr´afica f 
especialmente cerca de los extremos del interv intervalo
alo (véase
(v´ease la Figura 3.6, parte
derecha). Este comportamiento se conoce como  fen´  omeno de Runge .   

Además
Adem´
as de (3.7), puede probarse la siguiente desigualdad:
max|f  (x) − (Π n f 
f )) (x)| ≤  C hn max|f (n+1) (x)|,
x∈I  x∈I 

donde  C  es
donde C   es una constante independiente de h de  h.. Por consiguiente, si apro-
ximamos la primera derivada de   f   f   por la primera derivada de   Π n f , f ,
perdemos un orden de convergencia con respecto a  a   h.
En   MATLAB, (Π n f  f )) pue
puede
de cal
calcul
culars
arsee utiliz
utilizand
andoo la instru
instrucci
cci´
on
ón
polyder [d]= poly
polyder(c
der(c) ), donde   c   es el vector de entrada en el que almace-
namos los coeficientes del polinomio de interpolación,
interpolaci´on, mientras que   d
es el vector de salida donde almacenamos los coeficientes de su primera
derivada
deri vada (v´
(véase
ease la Secc
Secci´
ión
on 1.4.2).

polyderiv Octave 3.1  El comando análogo


an´alogo en Octave es  d=polyderiv(c).   

Véanse

eanse los Ejercici
Ejercicios
os 3.1-3
3.1-3.4.
.4.

3.1.2 Int
Interpolaci
erpolaci´
ón de Chebyshev
on
El fenómeno
fen´
omeno de Runge puede evitarse si se usa una distribución
distribuci´on apro-
piada de los nudos. En particular, en un intervalo arbitrario [a,
[a, b], pode-
mos considerar los llamados   nudos de Chebyshev  
Chebyshev   (véase
(v´ease la Figura
Figur a 3.7,

3.1
3.1 In
Inte
terp
rpol
olac
aci´
ió
onn 83
1

0.8

0.6 π/n

0.4

0.2

0
−5 −3 −1 1 3 5 −1 = x0       xi 0 xn  = 1

Figura 3.7. La
3.7. La figura de d e la izquier
izquierda
da muestra lal a compar
comparaci´
ación
on entr
entree la funci´
fun ción
on
2
f ( +  x ) (l´ı́ınea
f (x) = 1/(1 + x nea contin
continua ua del gada ) y sus polinomios
delgada  polin omios de interpol
interpolaci´
ación
on
de Chebyshev de grado 8 ( lı́n l´
ınea
ea de trazo s ) y 12 (l´ı́ınea
tra zos  n ea con
conti
tinua
nua gru esa ). Nótese
gruesa  N´
otese
que la amplitud de las oscilaciones espurias decrece cuando el grado crece. La
figura de la derecha muestra la distribución
distribuci´ on de los nudos de Chebyshev en el
intervalo [−1, 1]

derecha):

  a +  b   b − a
 + b
xi   =   + xi ,   donde xi   = − cos(
    πi/n)), i  = 0, . . . , n   (3.8)
cos(πi/n
2 2

(Obviamente,   xi   = xi ,   i = 0, . . . , n,
  n, cuando [a, [a, b] = [−1, 1]).
En efecto, para esta distribución
distribuci´on especial de los nudos es posible probar
que, si  si   f  es
f  es una función
funci´on continua y diferenciable en [[a, a, b], Π 
],  Π n f  
f   converge
a   f  
f   cuando 
cuando   n  → ∞  para todo todo   x  ∈  [ [a,
a, b].
Los nudos de Chebyshev, que son las abscisas de nudos equiespaciados
sobre
sob re la sem semici
icircu
rcunfe
nferen
rencia
cia uni
unidaddad,, est est´áan
n en el interior de [[a, a, b] y s e
acumulan cerca de los puntos extremos de este intervalo (v´
(véase
ease la Figura
3.7).
Otra distribución
distribuci´
on no uniforme de nudos en el intervalo (a,(a, b), que
comparten las mismas propiedades de convergencia que los nudos de
Chebyshev, viene proporcionada por

xi   =
  a +  b   b − a
 + b
  −   cos
 2i + 1 π
 , i  = 0, . . . , n   (3.9)
2 2 n + 1 2

Ejemplo 3.3   Consideramos funci´on   f 


Conside ramos de nuevo la función f    del ejemplo de Runge y
calculamos su polinomio de interpolaci´
interpolación
on en los nudos de Chebyshev. Estos
´ltimos pueden obtenerse mediante las siguientes instrucciones de  MATLAB:

ultimos
xc = - c o
oss(pi*
*[[0
0::n]/n)
);; x = ( a + b )*
)* 0
0..5
5++(b-a
a))*x
xcc*0.
.55;

84 3 Aproximaci´

on n de funciones y datos

donde   n+1  es el número



umero de nudos, mientras que   a  y   b  son los puntos extremos
del interv
intervalo
alo de interpolaci´
interpolación
on (en lo que sigue elegimos  a=-5  y   b=5). Entonces
calculamos el polinomio de interpolación
interpolaci´
on mediante las siguientes instrucciones:
f= ’1.
.//(
(11+x.^
^22)’; y = ev
vaal(f)
);; c = po
olly
yffi
itt(x,
,yy,n)
);;
Calculemos ahora los valores absolutos de las diferencias entre   f 
f    y su in-
terpolante de Chebyshev en 1001 puntos equiespaciados del intervalo [−5, 5] y
tomemos el valor máximo
m´aximo del error:
x = lin
nsspa
acce( -5,5,10
0000
0)); p=pol
lyyvaal
l(c,x);
fx = ev
vaal(
(ff); errr
r = maax
x(abbs
s(p-ffx
x)));;
Como vemos en la Tabla 3.3, el m´
máximo cuando   n  crece.
aximo del error decrece cuando

n   5 10 20 40
E n   0.6386 0.1322 0.0177 0.0003
Tabla 3.3.   Error de interpolación
interpolaci´
on de Chebysh
Chebyshev
ev para la función
funci´
on de Runge
2
f (
f (x) = 1/(1 + x
+ x )

3.1.3 Int
Interpolaci
erpolaci´
ón trig
on trigono
onom´
métri
etricaca y FFT

Queremos aproximar una función funci´on peri´


periódica
odica f   f    : [0,
[0, 2π ]  → C, es decir satis-
faciendo f 
faciendo  f (0)
(0) = f 
= f (2
(2π
π ), por un polinomio
pol inomio trigo
trigonom´ etrico  f  
nométrico f ˜  que interpole
a   f  en
f  en los  nudos   xj   = 2πj
los   n + 1 nudos  πj//(n + 1), 
1),   j   = 0, . . . , n , es
,  es decir,

f ˜(xj ) =  f (
f (  f (xj ),   para 
para   j   = 0, . . . , n .   (3.10)

El  interpolante  f  se
El interpolante  f ˜ se obtiene mediante una combinación
combinaci´on lineal de senos y
cosenos.
En particular, si 
si   n  es par,  f  
f ˜  tendrá
tendr´a la forma
M 
  a0
f ˜(x) =   +
f ( [ak cos(
 cos(kx
kx)) + b
+ bk sen(
sen(kx
kx)]
)] ,   (3.11)
2
k=1

donde   M   =  n/


donde  n/22 mientras que, si 
si   n  es impar,

f ˜(x) =
f (


a0   (3.12)
 + [ak cos(
 cos(kx
kx)) + b
+ bk sen(
sen(kx
kx)]
)] + a
+ aM +1
+1 cos((
 cos((M 
M   + 1)x
1)x),
2
k=1

donde   M   = (n − 1)/


donde 1)/2. Podemos reescribir (3.11) como


f ˜(x) =
f ( ck eikx ,   (3.13)
k=−M 

3.1 Int
Interpolac
erpolaci´
ió
onn 85

siendo   i  la unidad imaginaria. Los coeficientes complejos 


siendo  complejos   ck   están
est´an rela-
cionados con los coeficientes 
coeficientes   ak   y   bk   (tambi´
(también
en complejos)
complej os) como sigue:

ak   = c k  +
 + c  i((ck  − c−k ), k  = 0, . . . , M .
 c−k , bk   = i   (3.14)
ikx
En efecto, de (1.5) se sigue que 
que   e = cos(kx
cos(kx)) + i
+ isen(
sen(kx
kx)) y
M  M 
ck eikx = ck (cos(
 (cos(kx
kx)) + i
+ isen(
sen(kx
kx))
))
k =−M  k=−M 
M  
= [ck (cos(
(cos(kx
kx)) + i
+ isen(
sen(kx
kx))
)) + c
+ c−k (cos(
(cos(kx
kx)) − isen(
sen(kx
kx))]
))] + c
+ c0 .
k =1

Por consiguiente deducimos (3.11), gracias a las relaciones (3.14).


Análogamente,
An´alogamente, cuando
cuando   n  es impar, (3.12) resulta
M +1
˜(x) =

f ( ck eikx ,   (3.15)
k=−(M +1)

donde los coeficientes   ck   para   k   = 0, . . . , M   son los mismos de antes,
mientras que 
que   cM +1   =   c−(M +1)   =   aM +1 /2. En ambos casos, podr
po dr´ı́ıamos
amos
escribir
M +µ
f ˜(x) =
f (
 ck eikx ,   (3.16)
k=−(M +µ)

con µ =
con µ  = 0 si n
si  n es es par y µ
y µ =  = 1 si n
si  n es
 es impar. Si f 
Si f  fuese
  fuese real, sus coeficientes
ck   sati
satisf
sfar´
arı́ıan
a n  c −k   = c̄c¯k ; de (3.14) se sigue que los coeficientes  a k   y  b k   son
todos reales.
 ˜
A causa
Fourier de su
discreta  analog
analog´ı́ıaa conlalas
. Imponiendo seriesondedeFinterpolaci´
condici´
condición ourier, f  se
f  seonllama serie
interpolación llama  serie
en los de 
nudos
xj   =  j
 jhh, con 
con   h  = 2π/ π/((n + 1), hallamos que
M +µ
 ck eikjh = f (
 f (xj ), j   = 0, . . . , n .   (3.17)
k=−(M +µ)

c´alculo de los coeficientes  { ck }  multipliquemos las ecuaciones


Para el cálculo
por   e−imxj =  e −imjh , donde 
(3.17) por  donde   m  es un entero entre 0 y   n, y luego
sumemos con respecto a  a  j:
n M +µ n
ck eikjh e−imjh = f (xj )e−imjh .
f (   (3.18)
 
j =0 k=−(M +µ) 
j =0

Ahora requerimos la siguiente identidad:

86 3 Aproximaci´

on n de funciones y datos

n
eijh (k−m) = (n + 1)δ 
1)δ km
km .
j =0

Esta identidad es obviamente cierta si   k  =


 = m
 m.. Cuando 
Cuando   k  
= m
 m tenemos
 tenemos
n
 eijh (k−m) =   1 − (ei(ki− m)h )n+1
(k−m)h
  .
j =0
1 − e

El numerador del segundo miembro es nulo porque

1 − ei(k−m)h(n+1) = 1 − ei(k−m)2π

= 1 − cos((k − m)2
cos((k π ) − isen((
)2π k − m)2
sen((k )2π
π ).

Por consiguiente, de (3.18) obtenemos la siguiente expresi´


expresión
on expl
expl´ıcita
ı́cita
para los coeficientes de  f :
f ˜:

n
  1 −ikjh
ck   = n + 1 j =0f 
 f ((xj )e , k  =  − (M   + µ
 µ)), . . . , M   + µ   (3.19)

El cálc
c´alculo
ulo de todos los coefi
coeficie
cient es   {ck }   puede
ntes puede rea
realiz
lizars
arsee con un
número

umero de operaciones del orden de   n log2 n   usando la   transformada 
r´ 
apida ourier    (FFT), que est´
apida de Fourier  estáa imple
implemen
mentadatada en el programa
programa de
fft MATLAB   fft  (v´  (véase
ease el Ejemplo 3.4). Similares conclusiones se verifi-
can para
pa ra la transfo
transformada
rmada inversa a tr
trav´
avés
es de la cual
cua l obtenemos
obt enemos llos
os valores
f ((xj )}  a partir de los coeficientes  { ck }. La transformada rápida
{f  r´apida inversa
ifft de Fourier está
est´a implementada en el programa de   MATLAB  ifft.

Ejemplo 3.4   Consid´


Co nsidére
eresese la funci´
func ión f (x) =   x(x − 2π)e−x para
on   f ( para   x   ∈   [0,
[0, 2π].
Para usar el programa de   MATLABfft  primero calculamos los valores de   f 
nudos  x j   =  jπ/
en los nudos x  j π/5 para  j   = 0, . . . , 9 mediante las instrucciones siguientes
5 para j
(rec
(recu´
uér
erdes
desee qu
quee   .*  is el producto de vectores componente a componente):
x=pi/5*[0:9]; y=x.*(x-2*pi).*exp(-x);
Ahora, mediante la FFT calculamos el vector de los coeficientes de Fourier,
1)[c0 , . . . , cM +µ , c−M , . . . , c−1 ], con las siguientes instrucciones:
Y= (n + 1)[c
Y=fft(y);

Y =
Co l
luum
mnns 1 y 2:
- 6.
6. 5
522003
32 + 0..0
0000
0000
0i -0
0..4
4667
7228 + 4.
.220
0001
122i
Co l
luum
mnns 3 y 4:
1 .2
.2 6
6880
055 + 1
1..6
6221
1110i 1.
.009
9884
499 + 0
0..6
6000
0880i
Co l
luum
mnns 5 y 6:
0 .9
.9 2
2558
855 + 0
0..2
2113
3998i 0.
.887
7001
100 + 0
0..0
0000
0000i
Co 0
l
luu.9
m
mn
.9 n2s
2558
857
5 y
- 8
0 :.
.22113
3998
8i 1.
.009
9884
499 - 0
0..6
6000
0880i
C ol
ol u
ummnnss 9 y 10 0::
1 .2
.2 66880
055 - 1.6 6221
1110i - 0.
0. 4
4667
7228 - 4.2
2000
0112i

3.1 Int
Interpolac
erpolaci´
ió
onn 87
0.5

−0.5

−1

−1.5

−2

−2.5
0 1 2 3 4 5 6 7

Figura 3.8. La
3.8.  La función
funci´ on f   x (x − 2π)e−x (l´ı́ınea
 f ((x) = x( traz os ) y el correspon-
n ea de trazos 
diente interpolante (l´ı́ınea
n ea conti
con tinu
nua a ) relativo a 10 nudos equiespaciados


Nótese
otese que el programa  ifft  alcanza la máxima

axima eficiencia cuando
cuando n  es una
 n es
potencia de 2, aunque trabaja para cualquier valor de   n.   

El comando
datos. Requiere interpft
como entrada  proporcionaenteroel m y
un entero m interpolante
 y un vector de queun conjunto los
representa de   interpft
valores tomados por una funciónfunci´on (peri´
(periód
odicicaa ccon
on per´
erı́ıodo
o do p
 p)) en el conjunto
de pun tos   xj   =   j p/
puntos p/((n  + 1),   j   = 0, . . . , n. n.   interpft   devuelv
devuelvee los   m
valores del interpolante, obtenidos mediante la transformada de Fourier,
en los nudos   ip/m,,   i   = 0, . . . , m − 1. Por ejemplo, reconsideremos
nudos   ti   =  ip/m
la función
funci´on del Ejemplo 3.4 en [0 [0,, 2π ] y tomemos sus valores en 10 nudos
equiespaciados   xj   =  j π/5,
equiespaciados π/5,   j   = 0, . . . , 9. Los valores del interpolante en,
equiespaciados  t i  =
digamos, los 100 nudos equiespaciados t  = iπ
 iπ//100,
100, i  i =
 = 0, . . . , 99 pueden
calcularse como sigue (véase(v´ease la Figura 3.8)
x=pi/5*[0:9]; y=x.*(x-2*pi).*exp(-x); z= interp
pfft(y ,100)
);;
En algunos casos la precisión
precisi´on de la interpolaci´
interpolación
on tri
trigon
gonom´
ométr
etrica
ica pued
puedee
degradarse dramáticamente,
dram´aticamente, como se muestra en el siguiente ejemplo.
Ejemplo 3.5   Aproximemos la función funci´on   f (
f (x) =   f 1 (x) +  f 2 (x), con   f 1 (x) =
sen(x
sen( x) y   f 2 (x) = sen(5x
sen(5x), usando nueve nudos equiespaciados en el intervalo
[0, 2π]. El resul
[0, resultado
tado se muestra
muestra en la Figur
Figura a 3.9. Nótes
N´otesee que en algunos
algunos in-
tervalos la aproximación
aproximaci´on tri
trigono
gonom´
métr
etrica
ica muestra
muest ra incluso
incl uso una inversi´
invers ión
on de
d e ffase
ase
con respecto a la función on   f .
funci´ f .   

Esta pérd
p´erdida
ida de prec
precisi
isi´on
ón puede explicarse como sigue. En los nudos
funci´on   f 2   es indistinguible de   f 3 (x) =   −sen(3
considerados, la función sen(3xx) que
tiene una frecuencia inferior (véase (v´ease la Figura 3.10). La funci´
función
on que real-
mente se aproxima es, por consiguiente,   F ( F (x) = f 1 (x) + f 3 (x) y no f 
no  f ((x)
(de hecho, la l´ı́ınea
nea de trazos de llaa Figure 3.9 coincide con   F  F ).
).
Este
funci´
función fen´omeno
fenómeno
on que se aproximar
se quiere conoce como la suma  de
es  aliasing 
 aliasing   y puede
varias ocurrir cuandoque
componentes la
tienen diferentes frecuencias. Tan pronto como el número
n´umero de nudos no es

 
 

88 3 Aproximaci´

on n de funciones y datos

1.5

0.5

−0.5

−1

−1.5

−2
0 1 2 3 4 5 6

Figura 3.9.
Figura 3.9.   Los efectos de   aliasing : comparación
comparaci´on entre la funci´ on   f 
función f ((x) =
sen(x
sen( x)+sen(5
)+sen(5x x) (l´ı́ınea
n ea con
conti
tinu con  M    = 3 (l´
a ) y su interpolante (3.11) con M 
nua  lı́ın
nea de 
trazos )

suficiente para resolver las frecuencias más m´as altas, estas últimas
ultimas
´ pueden
interferir con las bajas frecuencias, dando origen a interpolantes de poca
precisión.
precisi´
on. Con objeto de conseguir una mejor aproximaci´ aproximaciónon para fun-
ciones con frecuencias altas, uno tiene que incrementar el número n´
umero de
nudos de interpolación.
interpolaci´on.
Un ejemplo de  aliasing 
 aliasing    en la vida real lo proporciona la aparente
inversión
inversi´
on del sentido de rotaci´
rotación on de los radios de una rueda. Una vez que
se alcanz
alcanzaa una ve velocidad
locidad crcr´ı́ıtica,
tica, el cere
cerebro
bro humano
humano ya no es capaz de
muestrear con precisión
precisi´on la imagen m´ móvil
ovil y, consiguientemente, produce
imágenes
im´agenes distorsionadas.

1.5

1
0.5

−0.5

−1

−1.5

−2

1 2 3 4 5 6

Figura 3.10. El
3.10.  El fenómeno
fen´ sen(5x) (l´ı́ınea
omeno de  aliasing : las funciones sen(5x traz os )
n ea de trazos 
y   −sen(3x) (l´ı́ınea
sen(3x n ea de punt os ) toman los mismos valores en los nudos de inter-
pu ntos 
polación.
polaci´on. Esta circunstancia explica la p´ pérdida
erdida severa de precisión
precisi´ on mostrada
en la Figura 3.9
 

3.2 Int
Interpolac
erpolaci´
ió
on n lineal a trozos 89

Resumamos

1. Apr
Aprox
oxima
imarr un conjun
conjuntoto de dat
datos
os o una func
funci´
ión
on   f  
f   en [a, b] consiste
funci´on apropiada  f  que
en hallar una función f ˜ que los represente con suficiente

2. precisión;
precisi´
el proceson;o de int
proceso interpol
erpolaciaci´óon
n consiste en determinar una funci´ on  f  
función f ˜  tal
que  f (
f ˜(xi ) = yi , donde los  { xi }  son los nudos dados y los  { yi }  son los
f (xi )}  o bien un conjunto de valores prescritos;
valores   {f (
3. si los   n  + 1 nu
nudos
dos   {xi }  son distintos, existe un ´único
unico polinomio de
grado menor o igual que   n   que inter interpola
pola un con
conjun
junto
to de valoaloresres
prescritos   {yi }  en los nudos   {xi };
4. para u una
na dis
distribuc
tribuci´ión
on equiespaciada de los nudos en [[a, a, b], el error de
interpolación
interpolaci´ on en cualquier punto de [[a, a, b] no necesariamente tiende
a 0 cuando   n   tiende a infinito. Sin embargo, existen distribuciones
especiales de los nudos, por ejemplo los nudos de Chebyshev, para
los cuales esta propiedad de convergencia se verifica para todas las
funciones continuas;
5. la interpolación
interpolaci´on trigon
trigonom´ométrica
etrica es apropiada
apropiada para aproaproximar
ximar fun-
ciones peri´ odicas, y se basa en elegir  f  
periódicas, f ˜  como combinación
combinaci´on lineal de
funciones seno y coseno. La FFT es un algoritmo muy eficiente que
permite el cálculo
c´alculo de los coeficientes de Fourier de un interpolante a
partir de sus valores nodales y admite una inversa igualmente rápida, r´
apida,
la IFFT.

Interpolaci´
3.2 Interpolación
on lineal a trozos

El interpolante de Chebyshev proporciona una aproximación


aproximaci´on precisa de
funciones regulares f 
regulares f   cuya expresi´
expresión
on es ccono
onocida.
cida. Cuando
Cuando f 
 f  no
 no es regular
o cuando f 
cuando  f    sólo

olo se conoce por sus valores en un conjunto de puntos (que
no coincide
coi ncide con los
lo s nudos de Chebyshev), uno puede pu ede recurrecurrirrir a un m´
métod
etodoo
de interpolación
interpolaci´on diferente, que se llama interpolaci´
interpolación on lineal compuesta.
Concretamente, dada una distribución
distribuci´on (no necesariamente uniforme)
nudos   x0   < x1  < . . . < xn , denotamos por 
de nudos  por   I i   el intervalo [x [xi , xi+1 ].
Aproximamos f 
Aproximamos  f  por
 por una función
funci´on continua que, sobre cada intervalo, est´ estáa
dada por el segmento que une los dos puntos (x ( xi , f (
f (xi )) y (x (xi+1 , f (
f (xi+1 ))

(véase
(v´
ease la Figura 3.11). Esta funci´
función,
on, denotada por por Π   Π 1   f ,
f , se llama inter-
llama  inter-
polaci´ on lineal polin´  trozos   de
omica a trozos   de   f  y su expresión
f  y expresi´on es:
f ((xi+1 ) − f 
  f  f ((xi )
Π 1H   f (
f (x) =  f (
 f (xi ) + (x − xi ) para   x  ∈  I i .
xi+1  − xi
El sup
superer´ı́ındi
ndice
ce   H  denota
  denota la máxima
m´axima longitud de los intervalos
intervalos   I i .
El siguiente resultado se puede inferir de (3.7) poniendo   n   = 1 y
h  =
 = H 
 H ::

 
 

90 3 Aproximaci´

on n de funciones y datos
80

70

60

50

40

30

20

10

0
−2 0 2 4 6 8

Figura 3.11. La
3.11.  La función
funci´  f ((x) = x 2 + 10/
on f  10/(sen(
(sen(x x) + 1. 1.2) (l´
lı́n
ıneaea conti
con tinu a ) y su
nua 

interpolaci´
interpo lación
on lineal poli
polin´
nómica trozos   Π 1   f 
omica a trozos f    (l´ı́ınea
n ea de traz os )
trazos 

on 3.3   Si   f   ∈  C 2 (I ), donde   I   = [x0 , xn ], entonces 


Proposición
Proposici´

f ((x) − Π 1H   f (


max|f  f (x)| ≤   H 2  max|f  (x)|.
x∈I  8 x∈I 

Por tanto, para todo  interpolaci´on,   Π 1H   f (


todo   x  en el intervalo de interpolación, f (x) tiende
a   f ( cuando   H   →  0, con tal de que 
f (x) cuando  que   f 
f  sea
 sea suficientemente regular.
interp1 A trav´
través
es de la instruc
ins trucci´on  s1=interp1(x,y,z)  se pueden calcular los
ción
valores en puntos arbitrarios, que son almacenados en el vector   z, de la
función
funci´ on lineal a trozos que interpola los valores  y(i)  en los nudos  x(i),
para   i = 1,..
1,...,.,n+ 1. Nótese
n+1 N´otese que   z   puede tener dimensión
dimensi´on arbitraria.
Si los nudos están
est´an en orden creciente (es decir   x(i+ x(i+1)1) > x(i) x(i), para
interp1q  i=1,...,n) entonces podemos usar la versión versi´on m´
más
as rápida
r´apida  interp1q   (q 
quiere decir rápida).
r´apida). N´
Nótese
otese que  interp1q   es másm´as rápido
r´apido que  interp1
sobre datos
sobre no uniformemente
los datos de entrada. espaciados porque no hace ningún ning´un chequeo
Merece la pena mencionar que el comando  fplot, que se utiliza para
mostrar la gráfica
gr´afica de una funci´
función
on f 
 f  sobre
 sobre un intervalo dado [a,
[ a, b], reem-
plaza en efecto la función
funci´on por su interpolante lineal a trozos. El conjunto
de los nudos de interpolación
interpolaci´on se genera autom´
automáticamente
aticamente a partir de la
función,
funci´
on, siguiendo el criterio de agrupar estos nudos alrededor de los
puntos donde 
donde   f 
f    muestra fuertes variaciones. Un procedimiento de este
tipo se llama 
llama   adaptativo.
adaptativo.

Octave 3.2   interp1q  no


  no está
est´a disponible en Octave.   
 

3.3 Aproximaci´
Aproximación
on ppor
or funciones
f unciones  spline    91

3.3 Aproximaci´
Aproximación
on por funciones  spline

Del mismo modo que hemos hecho para la interpolación


interpolaci´on lineal a trozos,
tambi´en
tambi én se puede definir la interpolación
interpolaci´
on polin´
polinómica
omica a trozos de grado
cuadr´ atica a trozos   Π 2H   f  
n   ≥   2. Por ejemplo, la interpolante cuadrática f   es una
funci´on continua que, sobre cada intervalo   I i , reemplaza a 
función a   f  por
f  por su in-
terpolación
terpolaci´ on polinómica
polin´omica en los puntos extremos de  I i  y en su punto medio.
de I 
3
Si
Si f 
 f   ∈  C  (I ),
), el error f 
error  f  − H 
 − Π 2   f  en la norma del máximo
f  en m´aximo decae como H  como  H 3
si 
si   H  tiende
  tiende a cero.
El principal inconveniente de esta interpolación
interpolaci´on a trozos es que  Π kH   f 
que Π 
con   k   ≥  1, no es más
con m´as que una funci´función
on globalmente continua. En reali-
dad, en varias aplicaciones, por ejemplo en gráficos gr´aficos por computador, es
deseable tener una aproximación
aproximaci´on por funciones regulares que tengan al
menos una derivada continua.
Con este objetivo, podemos construir una función funci´on s  s 3  con las siguien-
tes propiedades:
1. sobre cada inter interv alo   I i   = [xi , xi+1 ], para 
valo para   i   = 0, . . . , n − 1, s3   es un
polinomio de grado 3 que interpola los pares de valores (x (xj , f (
f (xj ))
para   j   =  i, i + 1;
para
2.   s3  tiene derivadas primera y segunda continuas en los nudos   xi ,   i  =
1, . . . , n − 1.
Para su com
comple
pleta
ta determ
determinac
inaci´
ión,
on, neces
necesitam
itamos
os 4 condic
condicion
iones
es sobre
sobre
cada intervalo, por consiguiente un total de 4n
4n  ecuaciones que podemos
proporcionar como sigue:
-   n + 1 condiciones provienen del requerimiento de interpolación interpolaci´on en los
nudos   xi ,   i  = 0, . . . , n;
nudos n;
-   n − 1 ecuaciones adicionales se siguen del requerimiento de continuidad
del polinomio en los nudos interiores 
interiores   x1 , . . . , xn−1 ;
- 2(
2(nn   −   1) nuevas
primera ecuaciones
y segunda se obtienen
sean continuas en losexigiendo que las derivadas
nudos interiores.
Todav
odav´ıa
ı́a nos faltan dos ecua
ecuacione
cioness adicio
adicionales
nales,, que podemos elegi
elegirr
ejemplo  como
por ejemplo como

s3 (x0 ) = 0, s3 (xn ) = 0.   (3.20)

La función
funci´on s
 s3  que obtenemos de esta forma se llama spline
llama  spline c´ 
ubico natural 
de interpolaci´  on .
Eligiendo apropiadamente las incógnitas
inc´
ognitas para representar
representar   s3   ((v
v´éeaase
[QSS06, Sección n + 1) × (n +1) con matriz
Secci´on 8.6.1]), llegamos a un sistema ((n
tridiagonal que puede resolverse mediante un núme n´
umeroro de oper
operaci
acioneoness
proporcional a  a   n  (v´
 (véase
ease la Secc
Secci´
ión
on 5.4) y cuya soluci´
solución
on son los valores
s (xi ) para 
para   i  = 0, . . . , n.
n.
Usan
Us ando
do el Pr Progogram
ramaa 3.1,
3.1, es
estata so
solu
luci
ci´
óon
n pu
pued
edee obte
obtene
ners
rsee co
con
n un
número

umero de operaciones igual a la dimensi´ dimensión
on del propio sistema (v´
(véase
ease

92 3 Aproximaci´

on n de funciones y datos

la Sección
Secci´on 5.4). Los par´ parámetros
ametros de entrada son los vectores   x   e   y  de los
nudos y los datos para interpolar, más m´as el vector   zi  de las abscisas donde
queremos evaluar el spline 
el  spline    s3 .
En lugar de (3.20) pueden elegirse otra condiciones para cerrar el
sistema
siste ma de ecuaciones
ecuaciones;; por ejemp ejemplo
lo podr´
podrıamos
ı́amos prescribir
prescribir el valor de la
primera derivada de  de   s3  en los dos puntos extremos 
extremos   x0   y   xn .
Salvo que se especifique lo contrario, el Programa 3.1 calcula el spline  el  spline 

cúbico
ubico de interpolación
interpolaci´ on natural. Los par´parámetros
ametros optimos
óptimos
´   type   y   der
(un vector con dos componentes) sirven para seleccionar otros tipos de
splines . Con   type=0  el Programa 3.1 calcula el  spline   spline    c´
cúbico
ubico de inter-
polación
polaci´ on cuya primera derivada se da mediante  der(1)   en  en   x0   y  der(2)
en   xn . Con   type=1  obtenemos el  spline 
 spline    c´
cúbico
ubico de interpolación
interpolaci´on cuyos
valores de la segunda derivada en los extremos se dan mediante  der(1)
en   x0   y  der(2)   en
en en   xn .
Programa 3.1.  cubicspline:  spline 
 spline    c´
cúbico
ubico de interpolaci´
interpolación
on

i o n s = c u b i c s p l i n e ( x , y , zi
f u n c t io zi , t yp
yp e , d e r )
% C U B I CS
C S P LI
L I N E c a lcl c u la
l a r u n s p li l i n e c u bibi c o
% S = C UBU B IC
I C SP
S P LI
L I NE
N E ( X , Y , ZI
ZI ) c al a l cu
c u la
l a e l v al a l or
or e n
% l a s a bs b s ci
c i sa
s a s Z I d el el s pl p l in
i n e c ubu b ic
i c o n ata t ur
u r al
al d e
% i n t ere r p o la
l a c io
io n
% q u e i nt n t er
e r po
p o l a l o s v al a l or
or es
es Y e n l o s n u d os os X .
% S = C U B I CSC S P L IN
I N E ( X , Y , ZI
ZI , T Y PE
PE , D ER
E R ) s i T YP Y P E = 0 c a lcl c u la
la
% l o s v al a l or
o r es
e s e n l a s a bs b s ci
c i sa
s a s Z I d el el s pl p l in
i n e c ubu b ic
ic o
% q ueue i nt n t er
e r po
p o la
l a l osos v al a l or
o r es
e s Y c on on p ri r i me
m e ra
r a d ere r iv
i v ad
ad a
% e n l o s e xt x t re
r e mo
m o s i gug u al
a l a l os os v al a l or
o r es
e s D E R (1( 1 ) y D E R (2 ( 2 ).
).
% S i T YP Y P E =1
= 1 l osos v al al or
o r es
e s D E R (1( 1 ) y D ER ER ( 2)
2) so n lo s de
% l a s eg e g un
u n da
d a d ere r iv
i v ad
a d a e n l os os e xt x t re
r e mo
mo s .
[n,m]=size(x);
if n == 1
x = x ’; y = y ’; n = m;
end
i f n a rgrg i n = = 3
der0 = 0; dern = 0; type = 1;
else d er
e r 0 = d e r (1 ( 1 );
); d er er n = d er er ( 2)
2) ;
end
h = x ( 2 : e ndnd ) - x ( 1:
1 : e nd
nd - 1)
1) ;
e = 2 *[* [ h ( 1 );
) ; h ( 1:1: e nd
nd - 1)
1 ) + h (2
( 2 : en
e n d );
) ; h ( ene n d )]
)] ;
A = s pdp d ia
i a gs
g s ( [[
[ [ h ; 0 ] e [ 0; 0 ; h ]]] ] , -1
- 1 : 1 , n ,n
, n );
);
d = ( y ( 2 : e ndn d ) - y ( 1:
1 : e nd
nd - 1 ))
)) . / h ;
r h s = 3 * ( d ( 2 : e n d ) - d ( 1 : e ndnd - 1 ) );
);
if t ype = = 0
A (1
( 1 , 1)
1) = 2 * h (1 (1 ) ; A (1
( 1 ,2
, 2 ) = h (1 (1 ) ;
A ( n,
n , n ) = 2 * h ( en e n d );
) ; A ( enen d , e nd
n d - 1)
1 ) = h ( en e n d );
);
r hs
h s = [ 3 *( * ( d ( 1)
1 ) - d er
e r 0 ) ; r hsh s ; 3 *(* ( d e rn
rn - d ( e nd
nd ) ) ] ;
else
A (1
( 1 , :)
:) = 0 ; A (1 ( 1 , 1)
1) = 1 ;
A (n
( n ,:
, : ) = 0 ; A (n (n ,n
,n ) = 1 ;
rh s [ d er
e r 0 ; r hs
hs ; d er
er n ];
];
end
S = z er e r os
o s ( n , 4)
4) ;
S ( : ,3
, 3 ) = A \ rh rh s ;
f o r m = 1 : n -1 -1
S ( m , 4 ) = ( S ( m + 1 , 3)
3) - S ( m , 3 ) ) /3
/3 / h ( m ) ;

3.3 Aproximaci´
Aproximación
on ppor
or funciones
f unciones  spline    93

S(m, ,22 ) = d ( m ) - h ( m )/
) / 3*
3 * ( S (m
( m + 1 , 3 )+
) + 2*
2 * S ( m , 3)
3) );
);
S (m
( m , 1)
1 ) = y (m
( m );
);
end
S = S (1
( 1 : n -1
- 1 , 4 : - 1:1: 1 ) ; p p = m kp
kp p (x
( x ,S
, S );
);
s = p pv
p v al
a l ( pp
p p , z i );
);
return

El comando de MATLAB spline (v  (v´éeaase tambi´


mbiéen
n la   toolbox  splines
  splines)   spline
fuerza a la tercera derivada de   s3  a ser continua en   x1   y   xn−1 . A esta
condición
condici´on se le da el curioso nombre de   condici´  on no un nudo.nudo. Los
parámetros
par´
ametros de entrada son los vectores  x  e  y  y el vector  zi  (mismo signifi-
 mkpp
cado que antes). Los comandos  mkpp  y  ppval  que se usan en el Programa ppval
3.1 son utiles
útiles
´ para construir y evaluar un polinomio compuesto.

Ejemplo 3.6   Consideremos de nuevo los datos de la Tabla 3.1 correspon-


dientes a la columna   K  
K   = 0.67 y calculemos el   spline   cubico asociado   s3 .
Los diferentes valores de la latitud proporcionan los nudos   xi ,   i   = 0, . . . , 12.
Si estamo
estamoss inter
interesa
esados
dos en calcul
calcular
ar los valo
alores donde   z i   =   −55 +  i
res   s3 (z i ), donde  i,,

i  = 0, . . . , 120, podemos proceder como sigue:


x = [-55: :110
0::6
655]
];;
y = [-3..225 -3 3..3
377 -33.
.335
5 -3
3..2 -3
3..1
122 -3
3..0
022 -3
3..0
022 ..
...
- 3.
3. 0
077 -33..1
177 -33.
.332
2 -3
3..3 -3
3..2
222 -3
3..1
1]];
z = [-55: :11:
:665
5]];
s = sp
plli
inne((xx,y,,zz);
La gráfica
gr´ de   s3 , que se recog
afica de recogee en la Figura
Figura 3.12,
3.12, parece
parece más

as plausible
plausible que la
del interpolante de Lagrange en los mismos nudos.   

Ejemplo 3.7 (Rob´ (Robótica)


otica)   Par
Para a hall
hallar
ar la tr traayecto
ectoria
ria de un ro
robot
bot sa
sati
tisf
sfa-
a-
ciendo
ciendo las resrestri
tricci
ccione
oness dad
dadas,
as, desdescom
compone
ponemos mos el inter
interv
valo de tiempo [0, 5]
tiempo [0,
en los dos subintervalos [0, [0, 2] y [2,
[2, 5]. Entonces en cada subintervalo buscamos
on,   x   =   x(t) e   y   =   y (t), que interpolen los valores
dos   splines  de interpolación,
interpolaci´
dados y tengan derivada nula en los extremos.

−2.7

−2.8

−2.9

−3

−3.1

−3.2

−3.3

−3.4
−3.5
−60 −40 −20 0 20 40 60

Figura 3.12. Comparaci´
3.12. Comparación
on entre el  spline  c´
 c ú
ubico
bico y el interpolante de Lagrange
para el caso considerado en el Ejemplo 3.6

94 3 Aproximaci´

on n de funciones y datos

3.5

2.5

1.5

0.5

−0.5
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 3.13.   Trayectoria en el plano   xy   del robot descrito en el Problema


3.4. Los c´ı́ırculos
rculos representa
representann la posición
posici´
on de los puntos de control a trav´
travéess de
los cuales deber´
deberıa
ı́a pasar el robot durante su movimiento
movimiento

Utilizando el Programa 3.1 obtenemos el resultado deseado mediante las


instrucciones:
x1 = [ 0 1 4 ] ; y1 = [ 0 2 4 ] ;
t1 = [0 1 2] ];; ti1 = [ 0
0::0
0..0
011:
:22]
];;
x2 = [ 0 3 4 ] ; y2 = [ 0 1 4 ] ;
t2 = [0 2 3] ];; ti2 = [ 0
0::0
0..0
011:
:33]
];; d=
=[[0 , 0
0]];
s ix
ix 1 = cubbi
icsp pl
lin
nee(t1,xx1
1,ti i1
1 ,0,d));
;
s iy
iy 1 = cubbi
icsp pl
lin
nee(t1,yy1
1,ti i1
1 ,0,d));
;
s ix
ix 2 = cubbi
icsp pl
lin
nee(t2,xx2
2,ti i2
2 ,0,d));
;
s iy
iy 2 = cubbi
icsp pl
lin
nee(t2,yy2
2,ti i2
2 ,0,d));
;
La trayectoria obtenida se dibuja en la Figura 3.13.   

El error que obtenemos al aproximar una función


funci´on   f  
f   (continuamente
diferenciable hasta su cuarta derivada) por el  spline 
 spline    c´
cúbico
ubico natural sa-
tisface las siguientes desigualdades:
(r ) (r ) 4−r (4)
x∈I  |f  (x) − s3   (x)| ≤  C r H 
max max
x∈I  |f  (x)|, r  = 0, 1, 2, 3,
donde   I   = [x0 , xn ] y   H  =
donde    = maxi=0,...,n−1 (xi+1  − xi ), mientras que 
que   C r   es
una constante apropiada que depende de   r, pero que es independiente
de   H . Entonces está
est´a claro que no sólos´olo   f ,
f , sino tambi
tambi´éen
n sus derivadas
derivadas
primera, segunda y tercera se aproximan bien mediante   s3   cuando   H 
tiende a 0.

Observaci´
Observación on 3.1   En general los   splines   cúbicos
c´ ubicos no preservan la monoton´
monoton ıa
ı́a
entre dos nudos vecinos. Por ejemplo, aproximando la circunferencia unidad
en el primer cuadrante usando los puntos (x sen(kπ/6)
( xk  = sen(kπ/ 6),, yk   = cos(kπ/
cos(kπ/6)),
6)),
para   k   = 0, . . . , 3, obte
para obtendr´
ndrı́amo
ıamoss un   spline   oscilatorio
oscilat orio (v´
(véase
ease la Figura 3.14).
En estos casos, pueden ser mas apropiadas otras tecnicas de aproximaci
aproximacion.
on.
  MATLAB
pchip Por ejemplo,
Hermite c´ el comando
cúbico
ubico a trozos que  pchip
de es localmente  proporciona
monótono
mon´ otono e interpolael interpolante de
la función
funci´
on
y su primera derivada en los nudos   {xi , i   = 1, . . . , n  −  1 }   (véase
(v´ease la Figura
Figu ra
3.14). El interpolante de Hermite se puede obtener utilizando las siguientes

3.4 M´
Metodo
étodo de m´ınimos
ı́nimos cuadrado
cuadradoss 95

0.8

0.6

0.4

0.2

0
0 0.2 0.4 0.6 0.8 1

Figura 3.14
Figura 3.14..   Aproximación
Aproximaci´ on del primer cuarto de la circunferencia unidad
usando sólo

olo 4 nu
nudos.
dos. La l´ı́ınea
nea de trazo
trazoss es el   spline   cúbico,

ubico, mientras que la
l´ı́ınea
nea contin
continua
ua es el interpolante
interpolante de Hermite cúbico

ubico a trozos

instrucciones:
t = lin ns
spaacce(0,pi/
/22,4)
x = cos ( t
t)); y = sin (
(tt)
);;
xx = linnsspaac
ce(0,1,400));
plot(x,y,’o’,xx,[pchip(x,y,xx);spline(x,y,xx)])

Véanse

eanse los Ejercici
Ejercicios
os 3.5-3
3.5-3.8.
.8.

3.4
3. 4 M´
Mét
eto o do de m´ınim
ı́n imos
os cu
cuad
adra
rado
doss
Ya hemos observado que una interpolación
interpolaci´on de Lagrange no garantiza
una mejor aproximación
aproximaci´on de una función
funci´on dada cuando el grado del poli-
nomio se hace grande. Este problema puede ser superado mediante la
interpolación
interpolaci´ on compuesta (tal como la interpolaci´
interpolación
on lineal a trozos o por
splines )).. Sin embargo, ninguna es apropiada para extrapolar información
informaci´on
de los datos disponibles, esto es, para generar nuevos valores en puntos
situados fuera del intervalo donde se dan los nudos de interpolación.
interpolaci´on.

Ejemplo 3.8 (Finanzas)  Sobre la base de los datos recogidos en la Figura


3.1, nos gustar
gustar´ıa
ı́a predecir si el precio de la acci´
acción
on crecer´
crecerá
a a disminuir´
disminuirá a en los
próximos
pr´
oximos d´ıas.
ı́as. El polinomio
polin omio de interpo
interpolaci´
lación
on no es prácti
pr´actico,
co, ya que
qu e requ
r equeri
erirr´ıa
ı́a
un polinomio
polinomio (trem
(tremendam
endament
entee oscilator
oscilatorio)
io) de grado
grado 719 que proporciona
proporcionarr´ıa ı́a
una predicción
predicci´on completamente errónea.
err´onea. Por otra parte, la interpolación
interpolaci´on lineal
a trozos, cuya gráfica
gr´afica se recoge en la Figura 3.1, proporciona resultados ex-

trapolados explotando
este modo la s´
sólo
olo losPara
historia previa. valores de los dos
conseguir un ´ultimos
últi
mejormosresultado
dı́as,
d´ıas, desprec
despobviar´
reciand
iando
obviar o de
ı́ıamos
amos
el requerimiento de interpolación,
interpolaci´
on, inv
invocando
ocando una aproxima
aproximaci´ ción
on de m´ı́ınimos
ni mos
cuadrados como se indica más

as abajo.   

96 3 Aproximaci´

on n de funciones y datos

Supongamos que se dispone de los datos {(xi , yi ), i  = 0, . . . , n}, donde


ahora y
ahora  y i  po
 podr
dr´ıa
ı́a representa
repr esentarr llos
os valores
valore s  f (
 f (xi ) alcanzados por una función
funci´on
dada f 
dada  f  en
  en los nudos x
nudos  xi . Para un entero dado mdado m  ≥  1 (usualmente, m
(usualmente,  m    n
 n))
buscamos un polinomio  f ˜  ∈ Pm  que satisfaga la desigualdad

n n
[yi  −  f 
˜(xi )]2 ≤
f ( [yi  −  pm (xi )]2 (3.21)
i=0 i=0

para cada polinom


p olinomio io p  pm   ∈ Pm . Si existe,  f ˜  será
ser´a llamada
llamada  aproximaci´  on de 
m´ınim
ı́n imosos cu
cuad
adrado
rados s    en   Pm  del conjunto de datos   {(xi , yi ), i  = 0, . . . , n}.
Salvo   m  ≥  n
Salvo  n,, en general no será ser´a posible garantizar que  f ( f ˜(xi ) =  y i   para
todo   i  = 0, . . . , n.
todo n.
Poniendo

f ˜(x) = a 0  +
f (  + a
 a1 x +
 + . . . . +  am xm ,
 + a   (3.22)

donde los coeficientes   a , . . . , am  son desconocidos, el problema (3.21)


0
puede ser replanteado como sigue: hallar   a0 , a1 , . . . , am  tales que

Φ(a0 , a1 , . . . , am ) = min Φ(b0 , b1 , . . . , bm ),


{bi , i=0,...,m}

donde
n
2
Φ(b0 , b1 , . . . , bm ) = [yi  − (b0  +
 + b
 b1 xi +
 + . . . . +  bm xim  )] .
 + b
i=0

Resolvamos este problema en el caso especial de que 


que   m = 1. Puesto que
n
Φ(b0 , b1 ) = yi2  + b20  +  b21 x2i   + 22bb0 b1 xi − 2b0 yi − 2b1 xi yi2 ,
 + b
i=0
 
la gráfica
gr´afica de
de   Φ  es un paraboloide convexo. El punto (a
(a0 , a1 ) en el que 
que   Φ
alcanza su m´ı́ınimo
nimo satisfa
satisface
ce llas
as ccondici
ondiciones
ones
∂Φ   ∂Φ
(a0 , a1 ) = 0, (a0 , a1 ) = 0,
∂b 0 ∂b 1
mb olo   ∂Φ/∂bj   denota la derivada parcial (esto es, la tasa
don de el s´ı́ımbolo
donde
variaci´on) de   Φ   con respecto a   bj , después
de variación) despu´es de haber congelado las
restantes variables (v´ (véase
ease la Definici
Definici´óon
n 8.3).
Calculando explexpl´ıcitamente
ı́citamente las dos derivad
derivadas as parciales obtenemos
n n
2
 [a0  +  a1 xi −
 + a yi ] = 0,  i
[a x  +
0  + a i
 a x   −
1 xi yi ] = 0,
i=0 i=0

que es un sistema de 2 ecuaciones para las 2 incógnitas


inc´ognitas   a0   y   a1 :

3.4 M´
Metodo
étodo de m´ınimos
ı́nimos cuadrado
cuadradoss 97

  n n
a0 (n + 1) + a
+ a1 xi   = yi ,
i=0 i=0
n
   n n (3.23)
a0 xi +
 + a
 a1 x2i   = yi xi .
i=0 i=0 i=0

Poniendo   D  = (n + 1)
Poniendo
  n
i=0 x2i   − (
n
i=0 xi )2 , la solución
soluci´on se escribe
n
  n n n
 1
a0   = ( yi xj2  − xj xi yi ),
D i=0 j =0 j =0 i=0
  n n n (3.24)
 1
a1   = (( n + 1) xi yi −
((n xj yi ).
D i=0 j =0 i=0

El correspondiente polinomio  f ( f ˜(x) =  a 0  +


 + a
 a1 x  se conoce como recta 
como  recta 
de m´ı́ınimos
ni mos cu
cuadrad os , o  recta de regresi´ 
adrados  on .
El en enfoqu
foquee ante
anterio
riorr pupued
edee se
serr gene
genera
raliz
lizad
adoo de var arias
ias for
forma
mas.
s. La

(prime
primera
ra ×gene
m + 1) generalizac
ralizaci´
(m + ión
on iado,
es alque
1) asociado,
asoc caso
es de   etrico,
m   arbitra
arbitrario
simétrico,
sim´ rio.
a. laElforma:
tendr´
tendrá sis
sistem
temaa lineal
lineal

 n  n n

a0 (n + 1) +a1 xi   + . . . +
 + a
 am xim   = yi ,
i=0 i=0 i=0
n
 n  n n
a0 xi   +a1 x2i   + . . . +
 + a
 am xim+1  = xi yi ,
i=0 i=0 i=0 i=0
.. .. .. ..
. . . .
n
  n  n n

+1
a0 xm
i   +a1 xm
i   + . . . +
 + a
 am xi2m   = xim  yi .
i=0 i=0 i=0 i=0

conCuando
Cuando    m   =   de
el polinomio n, el polinomio
ondedemLagrange
interpolaci´
interpolación ´ı́ınimos
nimos cuadr
cuadrados
  Π n ados debe
  (véase
(v´ease coinc
coincidir
el Ejer idir
Ejercici
cicio
o
3.9).
El comando de   MATLAB  c=polyfit(x,y,m)   calcula por defecto
los coeficientes del polinomio de grado   m   que apro aproxima
xima   n+1   pares de
datos  (x(i),y(i))  en el sentido de los m´ınimos ı́nimos cuadrados. Como ya se
señal´
se˜
nalóo en la Secci´
Secciónon 3.1.1, cuando   m  es igual a   n  devuelve el polinomio
de interpolación.
interpolaci´on.

Ejemplo 3.9 (Finanzas)   En la Figura 3.15 dibujamos las gráficas gr´aficas de los
polinomios de m´ınimos
ı́nimos cuadrados de grados 1, 2 y 4 que aproximan los datos
de la Figura 3.1 en el sentido de los m´ınimos
ı́nimos cuadrados. El polinomio de grado
4 reprodu
reproducece muy
muy razon
razonablem
ablement
entee el compor
comportamie
tamiento
nto del precio de la acción
acci´
on
en el int
interv
ervalo
alo de tiempo considera
considerado
do y sugi
sugiere
ere que en el futuro
futuro próximo
pr´
oximo la
cotización
cotizaci´
on crecer´
crecerá.
a.   

98 3 Aproximaci´

on n de funciones y datos

15

10

nov00 ma01 nov01 ma02

Figura 3.15. Aproximaci´
3.15. Aproximación on de m´ı́ınimos
nimos cuadrados de llos os datos del Problema
P roblema
3.2 de grado 1 (l´ı́ınea
nea de trazos y punto
puntos s ),
), grado 2 (l´ı́ınea
n ea de traz os ) y grado 4
trazos 
(l´ınea
ı́nea contin
continua
ua grue sa ). Los datos exactos se representan por la  l´
gruesa   lı́ınea
n ea con
conti
tinu
nua 

 fina 

Ejemplo 3.10 (Biom


(Biomec´
ecánica)
anica)   Usando el método

etodo de m´ınimos
ı́nimos cuadrados
podemos responder a la cuestión
cuesti´on del Problema 3.3 y descubrir que la recta que
mejor aproxima los datos dados tiene por ecuaci´ on   (σ) = 0.3471
ecuación 3471σ σ  + 0.0654
ease la Figura 3.16); cuando   σ   = 0.9 propo
(véase
(v´ proporciona
rciona la estimaci
estimaci´
ón      = 0.2915
on 
para la deformación.
deformaci´
on.   

Una generali
g eneralizaci´
zación
on aadicion
dicional
al de la aproximaci
aproximaci´ óon
n de m´ı́ınimos
ni mos cuadra
cua dra--
dos consiste en utilizar en (3.21)  f  ˜  y  p m  que ya no sean polinomios sino
f  
funciones de un espacio   V m   obtenido com combinand
binandoo lineal
linealmen
mente te   m   + 1
funciones independientes   {ψj , j   = 0, . . . , m}.
Casos especiales
especiales los proporcionan, por ejem ejemplo,
plo, las funcio
funciones
nes trigono-
méettricas ψj (x) = cos(γ
m´ cos(γ j x) (para un parámetro
par´ametro dado
dado γ   γ   =
 0), las funciones
δj x
exponenciales ψ
exponenciales  ψ j (x) =  e (para algún
alg´ un δ δ >  0), o un conjunto apropiado
de funcio
funciones
nes spline 
 spline .

0.5

0.4

0.3
ε

0.2

0.1

−0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
σ

Figura 3.16
Figura 3.16..   Aproximación
Aproximaci´
on lineal
lineal de m´ı́ınimos
nimos cuadrados
cuadrados de los datos
datos del
Problema 3.3

3.4 M´
Metodo
étodo de m´ınimos
ı́nimos cuadrado
cuadradoss 99
−2.95

−3.05

−3.15

−3.25

−3.35

−3.45
−60 −40 −20 0 20 40 60 80

Figura 3.17. Aproximaci´
3.17. Aproximación
on de m´ı́ınimos
nimos cuadrados de llos
os datos del Problema
P roblema
3.1 usando
usando una base de coseno
cosenos.
s. LoLoss datos
datos exacto
exactoss se repres
represen
entan
tan por los
pequeño
peque˜noss c´ırcu
ı́r culo
loss

elecci´on de las funciones   {ψj }   la dicta el comportamiento que


La elección
se conjetura
nistrados. para
Por la ley en
ejemplo, subyacente a la distribución
la Figura 3.17 distribuci´
dibujamosonlade gr´los datos
gráfica
afica de la sumi-
apro-
ximación
ximaci´ on de m´ m ı́ınimos
nimos cuadrados de los datos del Ejemplo 3.1, calculada
utilizando
utili zando las funcion
funciones es trigo
trigonom´
nométricas  ψj (x) = cos( j
etricas ψ  jtt(x)),
)), j
 j   = 0, . . . , 4,
con   t(x) = 120(π/
con 120(π/2)(2)(xx  + 55). Suponemos que los datos son periódicosperi´odicos
con per
pe r´ı́ıodo
o do 120(
120 (π/
π/2).
2).
El lector puede verificar que los coeficientes desconocidos de
m
f ˜(x) =
f ( aj ψj (x),
j =0

se pueden obtener resolviendo el siguiente sistema (de   ecuaciones nor-


males )
BT Ba  = BT y   (3.25)

donde B es la matriz rectangular (n (n + 1) × (m + 1) de elementos 


elementos   bij   =
),   a  es el vector de coeficientes desconocidos, mientras que   y  es el
ψj (xi ), 
vector de datos.

Resumamos
1. El in
inter
terpolan
polante
te com
compue
puesto
sto lineal
lineal a trotrozos
zos de una funci´
funcióon
n   f  
f   es una
on continua lineal a trozos  f ,
función
funci´ f ˜, que interpola a 
a   f  en
f  en un conjunto
dado de nudos  { xi }. Con esta aproaproximac
ximaciion obviamos los fen
fenomenos
omenos
de tipo Runge cuando el número
n´umero de nudos crece;
2. la in
inter
terpolac
polaci´
ión
on por
por splines 
 splines    cúbicos
c´ubicos permite aproximar
aproximar   f  
f   mediante
una función
funci´ ubica a trozos  f ˜ que
on c´
cúbica  que es continua junto con sus derivadas
primera y segunda;

100 3 Aproximaci´

on n de funciones y datos

3. en la aproximación
aproximaci´on de m´ı́ınimos
nimos cuadr
cuadrados
ados buscamos
buscamos una apro aproxi-
xi-
maci´on  f  que
mación f ˜ que sea un polinomio de grado m
grado  m  (
 (tt´ıpic
  ı́p icam
amentente,
e,   m   n
 n)) y
atico medio i=0 [yi −  f ( f ˜(xi )] . El mismo
n 2
que minimice
minimi ce eell error cuadr´
cuadrático
criterio de minimización
minimizaci´on puede ser aplicado a una clase de funciones
que no sean polinomios.
Véanse

eanse los Ejercic
Ejercicios
ios 3.9-3
3.9-3.14.
.14.

3.5 Lo que no le hemos dicho

Para una introducción


introducci´on m´
más
as ggeneral
eneral a llaa teo
teorr´ı́ıaa de la
l a iinterpol
nterpolaci´
ación
on y apro-
ximación
ximaci´
on remitimos al lector, por ejemplo, a [Dav63], [Gau97] y [Mei67].
La interpolación
interpolaci´
on polin´
polinómica
omica tambi´
también
en puede utili utilizarse
zarse para aproximar
datos y funciones en varias dimensiones. En particular, la interpolación interpolaci´on
compuesta, basada en funciones lineales a trozos o funciones  spline , se
adapta bien cuando la región
regi´on Ω 
 Ω  en
  en cuestión
cuesti´on se divide
d ivide en pol´
polı́gonos,
ıgonos, en 2D
(tri´angulos
(triángulos o cuadril´
cuadriláteros),
Una situación
situaci´ ateros),ocurre
on especial o en poliedros, en  es
cuando   Ω  
Ω  3Dun(tetraedros o prismas).
rect´angulo
rectángulo o un pa-
ralelep´ıpedo
ralelep ı́pedo en cuyo caso pueden utilizarse los comandos de   MATLAB
interp2 interp2   e   interp3, respectivamente. En ambos casos se supone que
interp3   quere
queremosmos reprrepresen
esentar
tar sobre una
una rejilla (o malla) fina re regular
gular una func
funci´
ión
on
de cuyos valores se dispone sobre una rejilla (o malla) regular más m´as gruesa.
Considerem
Consi deremos
os por ejemp
ejemplolo los valores de
de f 
 f ((x, y ) = sen(2πx
sen(2πx)) co
cos(
s(22πy
πy))
sobre una rejilla (gruesa) de 6 × 6 nudos equiespaciados sobre el cuadrado
[0,, 1]2 ; estos valores pueden obtenerse usando los comandos:
[0
[x,y]=meshgrid(0:0.2:1,0:0.2:1);
z=sin(2*pi*x).*cos(2*pi*y);

Mediante el comando  interp2  se calcula primero un spline 


un  spline   c´
cúbico
ubico sobre
la as

másmalla
finaa gruesa,
fin de 21 ×y21despu´
después
es equiespaciados:
nudos se evalúa
eval´
ua en los puntos nodales de una malla
xi = [0:0
0..05:
:11]; yi=[0:
:00.05
5::1];
[xf,yf]=meshgrid(xi,yi);
pi3=interp2(x,y,z,xf,yf);

 meshgrid El comando meshgrid transforma el conjunto de los pares  (xi(k),yi(j))


en dos matrices  xf  y  yf  que pueden ser utilizadas para evaluar funciones
de dos variables y dibujar superficies tridimensionales. Las filas de   xf
son copias del vector   xi, las columnas de   yf   son copias de   yi. Alter-
nativamente, para el procedimiento anterior podemos usar el comando
griddata griddata, disponible tambi
tambi´éen
n para datos tridimensionales (griddata3)
y para la aproximacion
aproximacion de superficies 
superficies   n-dimensionales (griddatan).
Los comandos que se describen a continuación
continuaci´on son solamente para
MATLAB.
Cuando   Ω 
Cuando Ω    es un dominio bidimensional de forma arbitraria, puede
pdetool dividirse en triángulos
tri´angulos usando el interfaz gr´afico  pdetool.
gráfico

3.6 Ejercicios 101

Para una pre


Para presen
sentac
taci´
ión
on gegeneneral
ral de las func funcio
ione
ness   spline  
spline   véa
v´ease
se,, por
ejemplo, [Die93] y [PBP02]. La toolbox  La  toolbox    de   MATLAB  splines  nos per-
mite explorar varias aplicaciones de las funciones  spline . En particular,
el comando   spdemos   ofrece al usuario la posibilidad de investigar las   spdemos
propiedades
propie dades de los tipos más m´ as importantes de funcionesfunciones spline 
 spline . Los splines 
Los splines 
racionales, es decir funciones que son el cociente de dos funciones  spline ,
están
est´an aaccesible
ccesibless p
poror m
medio
edio de los omandos  rpmak  y  rsmak. Ejemplos es-  
l os ccomandos rpmak
peciales son los llamados splines 
llamados  splines  NURBS,   NURBS, que se utilizan habitualmente rsmak
en CAGD (Computer
(Computer Assisted Geometric Design ). ).
En el mismo contexto de la aproximación aproximaci´ on de Fourier, mencionamos
la aproximación
aproximaci´on basada en o en  ond´ as .. Este tipo de aproximación
ndı́ıcculas  aproximaci´on es am-
pliamente utilizada para la reconstrucción
reconstrucci´on y compresión
compresi´on de im´ imágenes
agenes y
en análisis
an´alisis de la se˜
señal
nal (para una introducci´
introducción,
on, v´
véanse
eanse [DL92],
[DL92] , [Urb02
[Urb02]).]).
Una rica familia de o de  on
nd´
dı́ıcu
c ulas   (y sus aplicaciones) puede encontrarse en
as  (y
la  toolbox    de   MATLAB  wavelet.
la toolbox    wavelet

3.6 Ejercicios

Ejercicio 3.1   Probar la desigualdad (3.6).

Ejercicio 3.2  Dar una cota superior del error de la interpolación


interpolaci´on de Lagrange
para las funciones siguientes:

f 1 (x) = cosh(x


cosh(x), f 2 (x) = senh(x
senh(x), xk   = − 1 + 0.
0.5k, k  = 0, . . . , 4,
f 3 (x) = cos(x
cos(x) + sen(x
sen(x), xk   = − π/
π/2 + πk/
2 + πk /4, k  = 0, . . . , 4.

Ejercicio 3.3   Los datos


datos sigu
siguien
ientes
tes están
est´
an relacionad
relacionados
os con la espera
esperanza
nza de
vida de los ciudadanos de dos regiones europeas:

1975 1980 1985 1990


Europa
Europa Oc
Occi
cide
den
ntal
tal 72..8
72 74..2
74 75..2
75 76.4
76.
Europa Orien
iental 70.2 70..2
70 70..3
70 71.2
71.

Usar el polinom
polinomioio de int
interpolac
erpolaci´
ión
on de grad
gradoo 3 para estimar la esperanza
esperanza de
vida en 1970, 1983 y 1988. Extrapolar después
despu´es un valor para el a˜
año
no 1995. Se
sabe que la esperanza de vida en 1970 era 71.8 añosa˜nos para los ciudadanos de
Europa Occidental, y 69.6 para los de Europa Oriental. Recordando esos datos,
¿es posible
p osible estimar la precisi´
precisión
on de la esperanza
esp eranza de vida predicha para 1995?

Ejercicio 3.4  El precio (en euros) de una revista ha cambiado como sigue:
Nov.87   Dic.88
Nov.87 Dic.88   Nov.90
Nov.90   Ene.93
Ene.93   Ene.95
Ene.95   Ene.96
Ene.96   Nov.96
Nov.96   Nov.00
Nov.00
4.5 5.0 6.0 6.5 7.0 7.5 8.0 8.0

Estimar el precio en Noviembre de 2002 extrapolando esos datos.

102 3 Aproximaci´

on n de funciones y datos

Ejercicio 3.5   Repetir los cálculos


c´alculos realizados en el Ejercicio 3.3, utilizando
ahora el  spline   cúbico

ubico de interpolaci´
interpolación
on calculado mediante la  function 
 function    spline.
Después
Despu´es comparar los resultados
resultado s obtenido
obtenidoss con los dos métodos

etodos..

Ejercicio 3.6  En la tabla que figura más


m´as abajo mostramos los valores de la
3
mar  ρ  (en Kg/m ) correspondientes a diferentes valores
densidad del agua del mar ρ
temperatura   T 
de la temperatura  T    (en grados Celsius):
T    4o 8o 12o 16o 20o
ρ   1000.779
1000. 794
4 1000.6427 1000.2805
100 999.7165 998.9700
Calcular el   spline   cúbico

ubico de interpolaci´
interpolación
on asociado, sobre 4 subintervalos del
intervalo de temperatura [4, [4, 20]. Despu´
Después
es comparar
c omparar los rresultados
esultados proporciona-
propor ciona-
dos por el  spline  de
  de interpolación
interpolaci´on con los siguientes (que corresponden a valores
de   T 
adicionales de  T ):
):
T    6o 10o 14o 18o
ρ   1000.740
1000. 408
88 1000.48
000 488
82 00..0224
1000 999.3650

Ejercicio 3.7  La producción


producci´
on italiana
ita liana de c´
cı́trico
ıtricoss ha evolucionado como sigue:
añ
a˜noo 1965 1970 1980 1985 1990 1991
on (×105 Kg)
producción
producci´ 17769 24001 25961 34336 29036 33417
Usar  splines   cúbicos

ubicos de interpolaci´
interpolación
on de diferentes tipos para estimar la pro-
ducción
ducci´on en 1962, 1977 y 1992. Comparar estos resultados con los valores reales:
12380, 27403 y 32059, respectivamente. Comparar los resultados con los que
se obtendr´
obtendr ı́ıan
an utiliz
utilizando
ando el poli
polinomio
nomio de interpol
interpolaci´
ación
on de Lagrange.

Ejercicio 3.8   Evalu


Evaluar ar la ffunc
unci´
ión  f ((x) = sen(2πx
on f  sen(2πx)) en 21 nudos equiespaciados
del intervalo [−1, 1]. Calcular el polinomio de interpolación interpolaci´on de Lagrange y el
spline   cúbico

ubico de interpolación.
interpolaci´ on. Comparar las gr´ gráficas
aficas de estas dos funciones
de f  sobre
con la de f    sobr e el iintervalo
ntervalo dado. Rep Repetir
etir eell mismo cálculo
c´alculo usando
u sando el siguiente
conjunto de datos perturbado:   f ( sen(2πx i ) + (−1) 10−4 , y observar
f (xi ) = sen(2πx i+1

que el polinomio
polinomio de interpolac
interpolaci´ ión
on de Lagrang
Lagrangee es másm´ as sensible
sensible a pequeñas
peque˜ nas
perturbaciones que el  spline   cúbico.

ubico.

Ejercicio 3.9   Verificar que si   m  =   n   el poli polinomio


nomio de m´ınimos
ı́nimos cuadrados de
una función
funci´  f  en
on f  nudos x0 , . . . , xn  coincide con el polinomio de interpolación
 en los nudos x interpolaci´on
Π n f  en
f  en los mismos nudos.

Ejercicio 3.10   Calcular el polinomio de m´ınimos


ı́nimos cuadrados de grado 4 que
de   K 
aproxima los valores de  K  mostrados
 mostrados en las diferentes columnas de la Tabla
3.1.

Ejercicio 3.11   Repetir los cálculos



alculos realizados en el Ejercicio 3.7 utilizando
ahora una aproximación
aproximaci´
on de m´ı́ınimos
nimos cuadrados de grado 3.

Ejercicio 3.12   Expresar los coeficientes del sistema (3.23) en funci´


  función
on de la
  1 n   1 n 2
media   M   = (n+1) i=0 xi  y la  varianza   v  = (n+1) i=0 (xi − M ) del conjunto
de datos   {xi , i  = 0, . . . , n}.

3.6 Ejercicios 103

Ejercicio 3.13   Verifica


Verificarr que la recta de regresi´
regresión
on pasa por el puntopunto cuy
cuya
a
abscisa es la media de   {xi }  y cuya ordenada es la media de   {f 
f ((xi )}.

Ejercicio 3.14  Los siguientes números



umeros

caudal 0 35 0.125 5 0 5 1 0.5 0.125 0


representan
represent an los valore
aloress medido
medidoss del caudal
caudal sang
sangu u´ı́ıneo
neo en una secci´
sección
on de la
arteria carótida
car´
otida durante un latido del coraz´
corazón.
on. La frecuencia de adquisición
adquisici´on de
10 /T ,, donde 
los datos es constante e igual a 10/T  donde   T  =
T  = 1 s es el per´
perı́ıodo
odo del latido.
Representar
Represe ntar estos datos mediante una función
funci´on continua de per´ ıodo igual a  T 
perı́odo  T ..
 

Diferenciación
Diferenciaci´
on e integració
integraci´
on n nu
num´
mé
erricas

En este cap
cap´ı́ıtulo
tu lo pro
propo
ponemo
nemoss m´ méto
etodos
dos par
paraa llaa aaproxi
proximaci maci´on
ón num´
num eric
ér icaa de
derivadas e integrales de funciones. Con respecto a la integración, integraci´on, se sabe
que para una función
funci´on ge
gen´nérica
erica no sie
siempre
mpre es posible
posi ble ha hallar
llar una p primiti
rimitiva va
en forma
f orma explı́ci
expl´ıcita.
ta. Incl
Incluso
uso si ffuese
uese con
conoc
ocida
ida,, ppododrr´ı́ıaa ser dif´
difı́ci
ıcill de utiliz
uti lizar.
ar.
´
Éste es el caso, por ejemplo, de la función
Este funci´on   f (
f (x) = cos(4xcos(4x) coscos(3s
(3sen(
en(x x)),
para el cual tenemos
π
  4   ∞
 3   (−9/4) k

f ((x)dx
dx =
 = π
 π ;
2 k!(k
!(k + 4)!
0 k=0

la tarea de calcular una integral se transforma en la, igualmente incómoda, inc´omoda,


de sumar una serie. En otras circunstancias, la función funci´on que queremos in-
tegrar o derivar sólo
s´olo se cono
conocer
cer´ı́ıaa en un conjunto de nudos (por ejemplo,
cuando representa los resultados de una medida experimental), exacta-
mente como sucede en el caso de la aproximaci´ aproximaciónon de funciones,
f unciones, que fue
discutido
discuti do en el Cap
Cap´ı́ıtulo
tulo 3.
En toda
todass estas situaci
situaciones
ones es necesari
necesarioo considerar
consider ar métod
m´etodosos numéricos
num´ ericos
para obtener
o btener un valor ap aproximado
roximado de la cantidad de d e inter´
interés,
es, in
indepen
dependien-
dien-
tementee de lo dif
tement dif´ı́ıcil
cil que sea la funci´
función
on a integrar o derivar.

Prob
Problemlemaa 4.1 (Hid
(Hidr´rául ica))  La altura q 
aulica altura  q (t) alcanzada en tiempo t
tiempo  t p
 por
or
un fluido, en un cilindro recto de radio R
radio  R =
 = 1 m con un agujero circular de
radio r
radio  r =
 = 0.1 m en el fondo,
fo ndo, ha sido
si do medida
medi da cada
cad a 5 segundos
s egundos obteni´
obteniéndose
endose
los siguientes valores

t   0 5 10 15 20
q (t) 0.6350 0.5336 0.4410 0.3572 0.2822

Queremos calcular una aproximación


aproximaci´on de la velocidad de vaciado del cilin-
dro   q  (t) y despu
dro despu´es
és compa
compararla
  rarla con la predic
predicha
ha por la ley de Torrice
orricelli:
lli:
q  (t) = γ (r/R
 − r/R))2 2gq (t), donde   g  es la aceleración
aceleraci´on de la gravedad y

106
106 4 Dif
ifer
eren
encciaci
acion
ón e integración
´ integraci´on num´
num eric
ér icas
as

γ   = 0.6 es un factor de corrección.


γ   correcci´on. Para la solución
soluci´on de este problema,
véase

ease el Ejem
Ejemplo
plo 4.1
4.1..   

´ ptica)   Para planificar una sala de rayos infrarrojos


Problema 4.2 (Optica)

estamos interesados en calcular la energ
energ´ıa
ı́a emitida por un cuerpo negro
(esto es, un objeto capaz de radiar en todo el espectro a temperatura
ambiente) en el espectro (infrarrojo) comprendido entre las longitudes de
onda 3µ
3µm y 14µ
14µm. La solución
soluci´on de este problema se obtiene calculando
la integral

14·10−4
dx
 
T )) = 2.39 10−11
·
E (T 
3·10−4
x5 (e1.432/(T x) − 1) ,   (4.1)

que es la ecuación
ecuaci´on de Plan
P lanck
ck para
pa ra la ener
energg´ıa E 
ı́a  E (T 
T ),
), donde x
donde  x es
 es la longitud
de onda (en cm) y  y   T 
T  la
 la temperatura (en Kelvin) del cuerpo negro. Para
  
su cálcul
c´alculoo v´
véase
ease el Ejercici
Ejercicioo 4.17.

Problema 4.3 (Electromagnetismo)   Con Consid´


sidéres
eresee una esfer
es feraa conduc-
cond uc-
tora de la electricidad
electricidad de radio arbitrario r
arbitrario r y y conductividad σ
conductividad σ.. Queremos
calcular la distribución on de la densidad de corriente   j  como función
distribuci´ funci´on de
r   y   t   (el tiempo), conociendo la distribución
distribuci´on inicial de la densidad de
carga   ρ(r). El problema puede resolverse usando las relaciones entre la
carga
densidad
densi dad de corrie
corriente
nte,, el campo el´eléctr
ectrico
ico y la densi
densidad
dad de carga y ob-
servando
serv ando que, por la simetr
simetr´ıa
ı́a del problema, ||
problema,   j(r, t) =   j (r, t)r/ r , donde
 j  | |
 j   =  j j . Obtenemos
r
−σt/ε0
  σ 2
 j((r, t) = γ (r)e
 j , γ (r) = ε0 r2
 ρ(ξ )ξ  dξ,   (4.2)
0

donde   ε0   = 8.859 10−12 far


donde  · faradi
adio/m
o/m es la cons
constante
tante die
diel´
léctr
ectrica
ica del vac
vac´ıo.
ı́o.
Para el cálculo
c´alculo de esta integral, v´
véase
ease el Ejercicio 4.16.   

Prob lema
Problem a 4.4 (Dem
(Demogra ı́a)  Consideramos una población
ograff´ıa) poblaci´on de un nú-

u-
mero M 
mero  M  muy
 muy grande de individuos. La distribución
distribuci´on   N (h) de sus alturas
puede representarse por una funciónfunci´on “campana” caracterizada por el
valor medio   h̄
¯  de la altura y la desviación
h de desviaci´on estándar
est´andar   σ
  M  ¯ 2
/(2σ 2 )
N (h) = e−(h−h̄h) .
σ 2π√ 
Entonces

4.1 Apr
Aprox
oxima
imaci´
ción
on de der
deriv
ivada
adass de fun
funcio
ciones
nes 107

800

700

600

              )
     h500
              (

     N
400

300

200

100

0
1 1.5 1.8 1.9 2 2.5

h
Figura 4.1. 
4.1.   Distribuci´
Distribución
on de las alturas de una población
poblaci´on de
de   M  
M   = 200 indi-
viduos

h+∆h
 
N   = N (h)   dh   (4.3)
h

representa el número
n´ umero de individuos cuya altura está est´a entre   h   y   h +
 + ∆h
 ∆h
(para un   ∆h   positivo). Un ejemplo lo proporciona la Figura 4.1 que
M    = 200,   h̄
corresponde al caso   M  ¯   = 1.7 m,   σ   = 0.1 m, y el ´area
h área de la
región
regi´
on sombreada da el número
n´umero de individuos cuya altura está est´a en el rango

1.8 1.9 m. Para la solución
soluci´on de este problema v´ véase
ease el Ejemplo 4.2.   

4.1 Apro
Aproximac
ximaci´
ión
on de derivadas de funciones

Consid´
Con sidéres
eresee una funci´
fun ción
on   f  
f   : [a, b]  →   R   continuamente diferenciable en
[a, b]. Buscamos una aproximación
aproximaci´on de la primera derivada de   f  
f   en un
puntoo ge
punt gen´
néri
ericoco x̄

¯   de (a, b).
En virtud de la definición
definici´on (1.10), para 
para   h  suficientemente pequeño
peque˜ no y
positivo, podemos suponer que la cantidad

(δ + f 
f )(
)(¯x)) =

  f (
f (x̄
x +
¯ + h
 h)) − f (
f (x)

¯)
  (4.4)
h

es una aproximación de   f  (x̄


aproximaci´on de x)
¯) que se llama  diferencia finita progresiva .
Para estimar el error, basta desarrollar   f  
2
f   en serie de Taylor; si   f   ∈
C  (a, b), tenemos
2
f (
f (x̄
x +
¯ + h
 h)) =  f 
 f ((x̄
x)
¯) + hf 
+ hf  (x̄
x)
¯) + 
+   h   f  (ξ ),

  (4.5)
2
donde ξ 
donde  ξ  es
  es un punto apropiado en el intervalo (x̄,
(¯x, ¯
 x̄
x+ + h). Por consiguiente

108
108 4 Dif
ifer
eren
encciaci
acion
ón e integración
´ integraci´on num´
num eric
ér icas
as

  h 
(δ + f )(
f )(¯x)) =  f  (x̄
x̄ x)
¯) + f  (ξ ),   (4.6)
2
y de este modo (δ (δ + f 
f )(
)(¯x)) proporciona
x̄ proporciona una apro
aproximacximaci´ión
on de primer orden

a  f  (x̄
¯) con respecto a h
x) a  h.. Asum
Asumiend
iendoo todav que  f   C 2 (a, b), mediante
to dav´ı́ıaa que f   ∈
 ∈
un procedimiento similar podemos deducir de la serie de Taylor

  h2 
f (
f (x̄
x¯ − h) = f  ¯) −
 f ((x̄
x) hf  (x̄
x)
¯) +   f  (η )
2
(4.7)

con   η
con  ∈ ( (¯x̄x − h, ¯
h, x̄
x),
), la   diferencia finita regresiva 

(δ − f 
f )(
)(¯x)) =

  f (
f (x̄
x)
¯) − f (
f (x¯ − h)

  (4.8)
h

que es tambi´
también
en una apro
aproximac
ximaci´ión
on de prim primer er or
orde
den.n. N´Nót
otes
esee que
que la
lass

fórmulas
ormulas (4.4) y (4.8) tambi
tambi´éen n se pueden obtener derivando el polinomio
de interpolación
interpolaci´on lineal dede f  f  en
 en los puntos x, ¯ x̄
¯, x̄
x + h  y x x̄
¯ h, ¯
h, x̄
x , respec-
tivamente. De hecho,
h echo, desde
desd e el punto de vista geom´ geométrico,
 { etrico, estos esq
}  { − esquemas
uemas}

equivalen a aproximar 
aproximar   f  (x̄x)
¯) por la pendiente de la l´ınea ı́nea recta que pasa
por los dos puntos (x̄, (¯
x, f 
f ((x̄
x))
¯)) y (x̄

x +
 + h,
 h, f 
f ((x +

¯  + h h)),
)), o (x̄
(¯  −
x  h, f (f (x

¯  h h))
)) y −
(x,

¯, f (
f (x̄
x)),
¯)), respectivamente
respe ctivamente (véase
(v´ease la Figur
Figuraa 4.2).

m2
m1


m3

¯

x −h ¯ 

x ¯ + h

x +  h

Figura
Figu 4.2.   Aproximación
ra 4.2. Aproximaci´ on por diferencias finitas de   f  (x̄ x):
¯): regresiva (l´ lı́ın
nea 
continua ), ), progresiva (l´ınea pun tos ) y centrada (l´ı́ınea
ı́nea de puntos  traz os ).   m1   =
n ea de trazos 
f )(¯
(δ  f )(
− ),   m2   = (δ + f )(¯
x),
x̄ f )(x̄
x)) y   m3   = (δf )(¯
δf )( x)) denotan las pendientes de las tres

l´ınea
ı́n eass re
rect
ctasas

Finalmente, introducimos la fórmula



ormula de la  diferencia finita centrada 

También podría gustarte