Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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´
VI Pr´
ó
ologo
logo
vez.
vez. El s´ımbol
ı́mboloo se us
usar´
aráa para indicar la presencia de ejercicios, mien-
con el s´ı́ımbolo
mbol o especi
especial
al .
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
t´
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
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
2 1 L
Lo
o que no se puede ignorar
Números
umeros reales
1.1 N´
1.1.1
1.1.1 C´
Cómo
omo representarlos
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
n´
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
n´
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
n´
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
n´
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ú
N´
ummeros reales 3
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
n´
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
4 1 L
Lo
o que no se puede ignorar
1.1.2
1.1.2 C´
Cómo
omo operamos con números
n´
umeros de punto flotante
>las
> ainstrucciones
= 1; b = 1 ; siguientes:
=1 wh i
ille a +
+bb ~= a ; b =
=bb/
/22 ; end
1.1
1.1 Nú
N´
ummeros reales 5
ans
ans = 1.11
1.1102
02
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
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ú
N´
um meros complejos 7
N´
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
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
n´
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
n´
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
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
1.3 Matrices 9
Im(z
Im(z )
z 2
ρ
π
z 3 3
Re(z
Re(z )
z 1
1.3 Matrices
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
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.
= 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
ans
ans =
-2.0000 1.0000
1.5000 -0.5000
>> det(A)
ans
ans =
-2
>> 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
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
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 .
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
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
α1 y1 +
+ . . . . +
+ α
αm ym = 0
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
ans
ans =
32
ans
ans =
4
10
18
Av =
= λ
λv.
El número
n´
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
V´
eanse los ejercici
ejercicios
os 1.3-1.6.
1.3-1 .6.
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 ] )
);;
1.4
1.4.1
.1 Los ceros
ceros
ans =
5.4422e-18
fzero(fun,-1)
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))
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:
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
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
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).
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
F
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,
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´
lı́mite [a, b] es dife-
1
f (x̄
¯) = lim (f (
x) f (x̄
x +
¯ + h
h)) − f (
f (x))
x̄
¯)).. (1.10)
h→0 h
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
Véanse
V´
eanse los ejercici
ejercicios
os 1.7-1
1.7-1.8.
.8.
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 C es
donde C es un número
n´
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).
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
−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)
1.5.1 Habl
Hablando
ando de costes
1.5
1.5 Errar
Errar no s´
sól
oloo es human
umano
o 27
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.
El número
n´
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
>
>>
> 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
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
n´
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.
Los progra
programas
mas MATLAB y Octave, son entornos integrados para el
c´
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
P´
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
< 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.
>>
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>
ans
ans =
casa
1.7 El len
lenguaj
ajee MATLAB 31
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)
.
.
.
else
instruccion(n)
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
... 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
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
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
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´
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.
1.7 El len
lenguaj
ajee MATLAB 37
Véanse
V´
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
y
rand (1 , \
2)
- 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.
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
−
−
(U L + 1) elementos.
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).
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
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.
π = 16 n
n=0
8 n +
4 1 − 8 n +
2 4 + 8 n +
1 5 + 8 n +
1 6 ,
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
n´
umeros naturales con
≤
k n.
escribir otra function que calcule f n basado en esta nueva forma recursiva.
Finalmente, calcular el tiempo de CPU correspondiente.
Ecuaciones no lineales
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.
42 2 Ecuacio
ion
nes no li
lin
neal
alees
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
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
x(k) = φ
φ((x(k−1) ), k ≥ 1, (2.5)
x∗ = φ
φ((x∗ ),
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.
caso contrario,
(0)
y I f
(1)
I
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
N´
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
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
2.2
2.2 M´etod
é todo
o de Ne
Newt
wton
on 47
Véanse
V´
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 )
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
empezar
En lapor untica
pr´acti
prác valor
ca,, sesuficientemente
pued
puedee ob
obte nerr cercano
tene un posiba le
a
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),
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 )
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].
2
10
0
10
−2
10
−4
10
−6
10
−8
10
10−10
0 5 10 15 20 25 30
2.2.1 Cómo
omo terminar las iteraciones de Newton
C´
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
y f y
f (x(k) )
f
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
m´
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
f (x) = 0
f ( 0.. (2.14)
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
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
s´
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
m´
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
V´
eanse los Ejercici
Ejercicios
os 2.6-2
2.6-2.14.
.14.
54 2 Ecuacio
ion
nes no li
lin
neal
alees
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
n´
umeros reales:
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
s´
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)
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
s´
olo de
de x si sino
no ta
tambi´
mbién
en de
de x .
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
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 −α
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
l´
ı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
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) + γ
+ γ ).
58 2 Ecuacio
ion
nes no li
lin
neal
alees
C´
2.3.1 Cómo
omo terminar las iteraciones de punto fijo
α − x(k+1) = φ
φ((α) − φ(x(k) ) = φ (ξ (k) ) (α − x(k) ) con
con ξ (k) ∈ I α,x( ) , k
α − 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.
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
t´
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
n´
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
(k ) φ(φ(x(k) )) − φ(x(k) )
λ = (k ) (k )
(2.24)
φ(x ) − x
y verificamos que se cumple la siguiente propiedad:
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
(k) φ (α) 1
−
lim λ =
= φ (α).
k→∞ −
1 1/φ (α)
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
2.4 Aceler
Aceleraci´
ación
on utiliz
utilizando
ando el m´
método
etodo de Aitk
Aitken
en 61
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
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
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
V´
eanse los Ejercic
Ejercicios
ios 2.15-
2.15-2.18.
2.18.
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.
64 2 Ecuacio
ion
nes no li
lin
neal
alees
Γ = {z ∈
Γ C : |z | ≤ 1 + η
+ η }, donde η = max |ak /an |. (2.26)
0≤k≤n−1
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)
bn = a n ,
(2.28)
bk = a k + bk+1 z,
+ b k =
= n
n − 1, n − 2,..., 0
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
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
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
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
pn (x) = q n−1 (x; z ) + (x
(x − z )q n −1 (x; z ),
se tiene
pn (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
2.5
2.5 Polin
olinom
omio
ioss alge
algeb
braic
raicos
os 67
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
c´
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
c´
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]).
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);
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.
70 2 Ecuacio
ion
nes no li
lin
neal
alees
2.7 Ejercicios
¿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
n´
umero positiv
positivo
o a. Proceder de la misma manera para calcular la ra´
raız
ı́z cúbica
c´
ubica
de
de a.
2.7 Ejercicios 71
L = l 2 /(sen(
= l (sen(ππ − γ − α)) + l
+ l /sen(
sen(α
1α),
l1
L α
γ
l2
Figura 2.10.
2.10. Problema
Problema de una barra deslizándose
desliz´
andose en un pasillo
72 2 Ecuacio
ion
nes no li
lin
neal
alees
(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 α.
(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.
Aproximación
Aproximaci´
on de funciones y datos
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).).
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
a˜
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
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)
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
f ( (3.1)
3.1 Int
Interpolac
erpolaci´
ió
onn 77
f
f (
˜(x) = a0 +
+ a
a1 x +
+ a
a2 x2 + . . . + an xn ;
+ a
- el interpolante
inter polante tri
trigono
gonom´
métr ico::
etrico
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
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
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
n
Π n (x) = yk ϕk (x) (3.4)
k =0
3.1 Int
Interpolac
erpolaci´
ió
onn 79
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
N´
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.
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)
3.1 Int
Interpolac
erpolaci´
ió
onn 81
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).
Véanse
V´
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
84 3 Aproximaci´
ó
on n de funciones y datos
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
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
f ˜(x) =
f (
M
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
3.1 Int
Interpolac
erpolaci´
ió
onn 85
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
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 +µ)
86 3 Aproximaci´
ó
on n de funciones y datos
n
eijh (k−m) = (n + 1)δ
1)δ km
km .
j =0
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π
π ).
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
n´
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.
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´
Nótese
otese que el programa ifft alcanza la máxima
m´
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
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
H
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
3.3 Aproximaci´
Aproximación
on ppor
or funciones
f unciones spline 91
3.3 Aproximaci´
Aproximación
on por funciones spline
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
n´
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´
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
−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
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
s´
olo 4 nu
nudos.
dos. La l´ı́ınea
nea de trazo
trazoss es el spline cúbico,
c´
ubico, mientras que la
l´ı́ınea
nea contin
continua
ua es el interpolante
interpolante de Hermite cúbico
c´
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
V´
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.
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
m´
as abajo.
96 3 Aproximaci´
ó
on n de funciones y datos
n n
[yi − f
˜(xi )]2 ≤
f ( [yi − pm (xi )]2 (3.21)
i=0 i=0
f ˜(x) = a 0 +
f ( + a
a1 x +
+ . . . . + am xm ,
+ a (3.22)
donde
n
2
Φ(b0 , b1 , . . . , bm ) = [yi − (b0 +
+ b
b1 xi +
+ . . . . + bm xim )] .
+ b
i=0
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
(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
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
a
fina
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
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
V´
eanse los Ejercic
Ejercicios
ios 3.9-3
3.9-3.14.
.14.
3.6 Ejercicios
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
102 3 Aproximaci´
ó
on n de funciones y datos
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.
c´
ubico.
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
f ((x)dx
dx =
= π
π ;
2 k!(k
!(k + 4)!
0 k=0
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
106
106 4 Dif
ifer
eren
encciaci
acion
ón e integración
´ integraci´on num´
num eric
ér icas
as
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.
Prob lema
Problem a 4.4 (Dem
(Demogra ı́a) Consideramos una población
ograff´ıa) poblaci´on de un nú-
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̄
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)) =
x̄
f (
f (x̄
x +
¯ + h
h)) − f (
f (x)
x̄
¯)
(4.4)
h
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)) =
x̄
f (
f (x̄
x)
¯) − f (
f (x¯ − h)
x̄
(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´
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 +
x̄
¯ + h h)),
)), o (x̄
(¯ −
x h, f (f (x
x̄
¯ h h))
)) y −
(x,
x̄
¯, f (
f (x̄
x)),
¯)), respectivamente
respe ctivamente (véase
(v´ease la Figur
Figuraa 4.2).
m2
m1
f
m3
¯
x̄
x −h ¯
x̄
x ¯ + h
x̄
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
x̄
l´ınea
ı́n eass re
rect
ctasas