Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Contenido
Prefacio
1 Presentacin y repaso
1.1 Motivacin . . . . . . . . . . . . . . . .
1.2 Bosquejo del contenido . . . . . . . . .
1.3 Repaso: Normas en espacios vectoriales
1.3.1 Normas de vectores . . . . . . .
1.3.2 Normas de matrices . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
11
12
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
15
16
17
20
22
28
3 Ecuaciones no lineales
3.1 Mtodo de biseccin . . . . . .
3.2 Mtodo de Newton . . . . . . .
3.2.1 Ejercicios . . . . . . . .
3.2.2 Anlisis de Convergencia
3.3 Iteraciones de punto jo . . . .
3.4 Ejercicio . . . . . . . . . . . . .
3.5 Anlisis de convergencia local .
3.6 Ejemplos . . . . . . . . . . . . .
3.7 Ejercicios suplementarios . . . .
3.8 Examen de entrenamiento . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
31
35
38
38
40
44
45
47
50
52
. . . .
. . . .
. . . .
Local
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4 Interpolacin
4.1 Tablas . . . . . . . . . . . . .
4.2 Teorema fundamental . . . . .
4.2.1 Intento 1 . . . . . . . .
4.2.2 Intento 2 . . . . . . . .
4.2.3 Clculo de coecientes
4.3 Forma de Newton . . . . . . .
4.4 Forma de Lagrange . . . . . .
4.5 Ejercicios . . . . . . . . . . .
4.6 Error al interpolar . . . . . .
4.7 Ejercicios suplementarios . . .
4.8 Examen de entrenamiento . .
Contenido
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
55
57
57
59
62
63
66
67
68
69
71
5 Integracin numrica
5.1 Frmulas bsicas . . . . . . . . . . . . . . . . .
5.1.1 Ejercicio . . . . . . . . . . . . . . . . . .
5.1.2 Cambio de intervalo . . . . . . . . . . .
5.2 Error en la cuadratura . . . . . . . . . . . . . .
5.3 Cuadraturas compuestas . . . . . . . . . . . . .
5.4 Ejercicios . . . . . . . . . . . . . . . . . . . . .
5.5 Cuadraturas de Newton-Cotes . . . . . . . . . .
5.6 Mtodo de coecientes indeterminados . . . . .
5.7 Cuadratura de Gauss . . . . . . . . . . . . . . .
5.8 Ejercicios . . . . . . . . . . . . . . . . . . . . .
5.9 Polinomios ortogonales . . . . . . . . . . . . . .
5.10 Frmula de recurrencia de tres trminos . . . .
5.11 Cuadratura gaussiana y polinomios ortogonales
5.12 Ejercicios . . . . . . . . . . . . . . . . . . . . .
5.13 Ejercicios suplementarios . . . . . . . . . . . . .
5.14 Examen de entrenamiento . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
73
74
76
76
77
78
79
80
81
82
84
84
86
87
90
91
93
.
.
.
.
.
95
95
96
97
101
101
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Contenido
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
102
103
108
110
111
112
113
114
115
115
116
118
118
118
119
123
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
133
133
134
134
135
137
138
142
143
145
147
148
149
150
154
154
156
Contenido
8 Material de inters
8.1 Referencias generales . . . . .
8.2 LAPACK . . . . . . . . . . .
8.3 Templates y otras colecciones
8.4 MATLAB y otros . . . . . . .
Referencias
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
157
157
158
159
160
161
Prefacio
En estas notas ofrecemos una variedad de temas del anlisis numrico,
que pueden servir de motivacin y de gua a estudiantes de nuestra
Universidad y a otros interesados. Se pueden considerar como unas
notas de clase, pero, para la seleccin de temas y enfoques, no se sigui
un programa de curso dado.
Los ms de 100 ejercicios estn repartidos en pequeas listas en
medio de la exposicin, ejercicios suplementarios y exmenes de entrenamiento. Hay cerca de 30 ejemplos resueltos en detalle, que casi
siempre aparecen con su rutina MATLAB acompaante. Dichas rutinas
se presentan nicamente con nes didcticos y no sustituyen software
de calidad.
Pretendemos publicar estas notas en la WEB y mantenerlas en evolucin. Por eso los aportes de usuarios son muy importantes. Comentarios, correcciones y sugerencias son bienvenidos en la direccin electrnica
cemejia@perseus:unalmed:edu:co:
Expresamos nuestro reconocimiento a la Universidad Nacional de
Colombia, por habernos concedido el ao sabtico durante el cual escribimos estas notas.
Parte de este documento se utilizar como gua en un cursillo de
la XIII Escuela Latinoamericana de Matemticas, que se reunir en
Cartagena, Colombia de julio 29 a agosto 3 de 2002.
Medelln, julio 15 de 2002
Contenido
Presentacin y repaso
Motivacin
Bosquejo del contenido
Repaso
1.1
Motivacin
10
1. Presentacin y repaso
11
1.3
12
1. Presentacin y repaso
Normas de vectores
"
n
P
j=1
jxj j2
# 21
0.5
0.5
-0.5
-1
-1
-0.5
-0.5
0.5
-1
-1
-0.5
0.5
13
t = 0:pi/20:2*pi;
subplot(121)
plot(sin(t),cos(t),r)
x=-1:.1:1;y=1-abs(x);
subplot(122)
plot(x,y,r,x,-y,r)
1.3.2
Normas de matrices
14
1. Presentacin y repaso
B es (B) = max j j j :
j 2L
Ejemplo 4 La matriz
A=
3
4
0 6
innito vectorial).
n
P
j =1;2;:::;n i=1
torial).
1
3. Norma 2: kAk2 =
AT A 2 . (Compatible con norma 2 vecto
rial).
#
21
"
n P
n
P
jaij j2 : (Compatible con
4. Norma de Frobenius: kAkF =
i=1 j =1
norma 2 vectorial).
Ejemplo 5 La matriz
2
0
6 1
A =
6
4
2
3
1
2
3
4
2
3
4
5
3
3
4
7
7
5
5
0
A=
0
184:
1
0
16
if nargin == 2
n = 100;
end
if n~=1
y = d1:(d2-d1)/(n-1):d2;
else
y = d2;
end
17
2.2
Los M-archivos
18
xx=-1:.01:1;
y=sin(pi*xx);z=sin(9*pi*xx);
plot(xx,y,k--,xx,z,r);
set(gca,XTick,-1:.25:1)
grid on
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.75
-0.5
-0.25
0.25
0.5
0.75
19
function x=fib(n);
% uso: x=fib(n)
x=ones(1,n);
for j=3:n
x(j)=x(j-1)+x(j-2);
end
x =
1
1
2
3
5
8
13
21
34
55
clf
hold on
x=[0;0];y=[0;rand];line(x,y)
% a lo ms 10 niveles de ramas
n=rand*10
for i=1:n,
[m,longi]=size(x);
angu1=(pi/2)*rand(1,longi);
angu2=(pi/2)*rand(1,longi)+angu1;
x=[x(2,:),x(2,:);x(2,:)+(2/i)*rand*cos(angu1),...
x(2,:)+(3/i)*rand*cos(angu2)];
y=[y(2,:),y(2,:);y(2,:)+(2/i)*rand*sin(angu1),...
y(2,:)+(3/i)*rand*sin(angu2)];
line(x,y);
end
Uno de los rboles que pueden obtenerse con esta rutina, aparece en
la siguiente gura.
20
4.5
3.5
2.5
1.5
0.5
0
-1.5
-1
-0.5
0.5
1.5
2.3 Ejercicios
1. Use el sistema de ayudas de MATLAB para encontrar informacin
sobre las siguientes constantes especiales: realmin, realmax, inf, NaN,
pi, eps.
2. Repase los M-archivos vistos hasta ahora y obtenga ms informa
cin sobre los comandos utilizados en ellos, por medio de los sistemas
de ayuda de MATLAB. En particular, consulte sobre for, if, end, tres
puntos (...), hold y line.
3. Intentemos calcular de forma ingenua lim r (x) ;donde
x!0
x
2
5
; se puede obtener por Regla de LHopital.
24
2.3. Ejercicios
21
format short e
x=(10.^(-(1:9)));
res=x.^(-3).*(log(1-x)+x.*exp(x/2));
Resultado numrico =
-2.3341e-001
-2.1064e-001
-2.0856e-001
-2.0835e-001
-1.6282e-001
-2.8964e+001
5.2635e+004
-5.0248e+007
2.8282e+010
La discrepancia es enorme, denitivamente con este archivo no se
puede aproximar ese lmite. Cmo explica esta discrepancia y qu
estrategia recomienda para poder obtener resultados correctos?
Sugerencia: Como estrategia para hacer bien los clculos,
utilice
x
expansiones en serie de Taylor para log (1 x) y x exp
alrededor
2
de x = 0: Con
serie de Taylor para r (x) que resulta
ellas, construya la
5
11
379
ser + x
x ::: donde el factor entre parntesis es
24
48 1920
una serie que no requerimos en ms detalle.
Como explicacin de la discrepancia, piense en error de redondeo,
sustraccin de cantidades casi iguales y en el cociente de dos cantidades
cercanas a cero. Reexione sobre estas fuentes de error y observe que
en este ejemplo aparecen juntas.
4. Use el sistema de ayuda en lnea de MATLAB para estudiar so
bre las siguientes formas de generar matrices: linspace, zeros, eye y
rand. Practique con todos.
22
clear all;
load seamount;
subplot(1,2,1);
plot(x,y,k.,markersize,15)
%xlabel(Longitud);ylabel(Latitud);
title( Localizacion);
grid on
subplot(1,2,2);
[xi,yi]=meshgrid(210.8:.01:211.8,-48.5:.01:-47.9);
zi=griddata(x,y,z,xi,yi,cubic);
[c,h]=contour(xi,yi,zi,k-);
clabel(c,h,manual);
%xlabel(Longitud);ylabel(Latitud);
23
figure
subplot(2,1,1);
surface(zi);shading interp;
xlabel(Longitud);ylabel(Latitud);
colorbar(vert);
subplot(2,1,2);
surf(zi);
shading interp
xlabel(Longitud);ylabel(Latitud);
zlabel(Altura);
grid on
Curvas de nivel
-47.95
-47.9
-48
-48
-48.05
-48.1
-48.1
-48.15
-48.2
-48.2
-2
-48.25
00
-3000
-48.3
-350
-48.3
-48.35
-4000
-48.4
-48.4
-48.45
210.5
211
211.5
212
-48.5
210.8
211.3
211.8
24
% k parametro de discretizacion
% uso exa4(k)
gen1
load mar1.dat;
25
x=mar1(:,1);y=mar1(:,2);z=mar1(:,3);nr=mar1(:,4);nv=mar1(:,5);
[xi,yi]=meshgrid(linspace(mx,Mx,k),linspace(my,My,k));
zi=griddata(x,y,z,xi,yi,cubic);
figure;
subplot(2,1,1);
surface(xi,yi,zi) % Visualizacion
shading interp;
subplot(2,1,2);
surf(zi);
zlabel(Profundidad);colormap(copper)
colorbar(vert);
figure;
subplot(1,2,1)
plot(nr,z,k);title(Transmisividad ptica);
subplot(1,2,2)
plot(nv,z,k);title(Velocidad);
26
Velocidad
-1
-1
-2
-2
-3
-3
-4
-4
-5
-5
-6
-6
-7
-7
-8
-8
40
60
80
100
50
100
150
27
% x: coordenada x, y: coordenada y
% z: profundidad,
fi1=fopen(mar1.dat,w);
% transmisividad optica
A=40;B=80;step=.4;
r=A+step:step:B;lr=length(r);
s=rand(size(r));
nr=2*log(r-A)+0.1;
C=nr(1);D=nr(lr);
c1=(A-B)/(C-D);c2=(B*C-A*D)/(C-D);
nr=c1*nr+c2;
nr=nr+3*round(rand)*s;
% velocidad
v0=40;vf=140;
v=linspace(v0+1,vf,lr);
nv=3*log(v-v0)+2*rand;
cv=nv(1);dv=nv(lr);
d1=(v0-vf)/(cv-dv);d2=(vf*cv-v0*dv)/(cv-dv);
nv=d1*nv+d2;
s=rand(size(r));
nv=nv+6*round(rand)*s;
x=linspace(0,5000,10);y=linspace(0,3000,10);
l10=floor(lr/10);
nx=linspace(0,5000,lr);ny=linspace(0,3000,lr);
for j=1:lr-1
m=mod(j,l10);q=(j-m)/l10;
% j=l10*q+m
if mod(j,l10)==0
nx(j)=x(j-q*l10+1);
else
nx(j)=x(j-q*l10);
end
ny(j)=q*300;
28
end
for i=1:lr
end
fclose(all);
2.5 Ejercicios
1. Revise la ayuda en lnea de MATLAB para saber ms acerca de
los comandos de visualizacin grca que hemos utilizado hasta ahora.
Algunos de ellos son: gure, plot, subplot, griddata, meshgrid,
shading y surf.
2. Por medio de la ayuda en lnea, consulte acerca de los comandos
mod, round y oor.
3. De nuevo, utilice la ayuda en lnea para conocer ms acerca del
manejo de archivos en MATLAB. En particular, consulte sobre fopen,
fclose, load, save y diary.
4. A continuacin presentamos un M-archivo para jugar Punto y
Fama. Es rudimentario pues el usuario debe entrar los nmeros en
forma de vectores pero es correcto desde el punto de vista lgico. Tam
bin inclumos la salida en pantalla que proporcion en un juego especco. Se consigui al invocar el comando diary pyf.dat.
% punto y fama pyf1.m
res=1;
nro=randperm(10);
nro=rem(nro(1:4),10);
nfa=0;
cont=0;
]);
2.5. Ejercicios
29
]);
while nfa~=4
fa=find(nro-x==0);
nfa=size(fa,2);
npu=0;
for i=1:4
for j=1:4
npu=npu+1;
end
end
end
cont=cont+1;
end
end
pyf1
Famas: 1 Puntos: 1
Famas: 1 Puntos: 1
Famas: 0 Puntos: 2
Famas: 0 Puntos: 0
Famas: 4 Puntos: 0
30
Lo hizo en 5 intentos
Ecuaciones no lineales
Mtodo de biseccin
Mtodo de Newton
Iteracin de Punto Fijo
Las ecuaciones no lineales de la forma f (x) = 0 aparecen frecuente
mente en la computacin cientca y la mayora exigen tratamiento
numrico. El mtodo ms importante para su solucin es el de New
ton, que puede enunciarse para ecuaciones escalares o vectoriales. Para
las primeras, lo estudiamos en la seccin 3.2 y para las segundas lo
presentamos en la seccin 6.15 y lo utilizamos varias veces en estas
notas.
Adems del mtodo de Newton, comentamos tambin un poco so
bre el mtodo de biseccin, que aunque lento, tiene asegurada su con
vergencia en intervalos cerrados que contienen zeros de la funcin f:
Adems, tambin presentamos las iteraciones de punto jo, de las cuales
el mtodo de Newton es un importante caso particular.
Sobre ecuaciones no lineales hay captulos en los principales libros
de anlisis numrico. En estas notas seguimos a Stewart, 1996 [29],
Atkinson, 1978 [4] y Kincaid y Cheney, 1994 [21]. Sin embargo, creemos
que estas notas se pueden utilizar junto con cualquier otro libro de texto
de anlisis numrico.
3.1
Mtodo de biseccin
32
3. Ecuaciones no lineales
tan(x) x = 0:
sen(x) x = 0
x -1
sin(x)-x
tan(x)-x
0.5
-2
-4
-4
-2
-2
-4
-4
-0.5
-2
-1
-1
x2[a;b]
33
% Uso m1(fun,a,b)
k=1;
fa=feval(fun,a); fb=feval(fun,b);
break;
end
c = (a+b)/2;
if (c==a j c==b)
break;
end
fc = feval(fun,c);
if (fc==0)
a = c; b = c;
fa =fc; fb = fc;
break;
end
if (sign(fc)~= sign(fb))
a = c; fa = fc;
else
b = c; fb = fc;
end
k = k + 1;
end
34
3. Ecuaciones no lineales
y = x^3-1;
% y = sin(x)-x;
% y = tan(x)-x;
% y = cos(x)*cosh(x) +1;
% y = x*exp(x)-exp(x)+1;
% y = x^2-2;
35
x 10
25
20
500
400
300
200
100
1.5
15
10
5
0.5
0
0
0
-5
-100
-200
-10
-0.5
-15
-1
-20
1
1.5
4.5
-300
5
-1
7
7.5
10
11
12
3.2
Mtodo de Newton
36
3. Ecuaciones no lineales
f (x 0)
:
f 0 (x0 )
primera aproximacin
f (x n )
= xn 0
, n = 0; 1; :::
f (xn )
:
% Uso z = m2(fun,fprima,x0);
y
% fprima respectivamente. x0 es la primera aproximacion
fprintf(Mtodo de Newton nnnn);
37
v=feval(fun,x0);vp=feval(fprima,x0);
disp( k x f(x) );
out=[0,x0,v];
for k=1:Nuit
x1=x0-v/vp;
v=feval(fun,x1);vp=feval(fprima,x1);
out=[k,x1,v];
if (abs(x1-x0)<epsi j abs(v)<epsi)
break
end
x0=x1;
end
Para ejecutar este archivo con cada una de las funciones denidas en
el M-archivo f1.m, se requiere de otro M-archivo f2.m con las derivadas.
El archivo f1.m que proponemos como ejemplo, lo listamos arriba en
la seccin 3.1. Ntese que utilizamos el signo de comentario % para
inhabilitar las funciones que no se requieren en cada experimento.
El archivo de derivadas correspondiente a f1.m es
function y = f2(x)
y = 3*x^2;
% y = cos(x)-1;
% y = sec(x)^2-1;
% y = cos(x)*sinh(x) - sin(x)*cosh(x);
% y = x*exp(x)+exp(x)-exp(x);
% y = 2*x;
38
3. Ecuaciones no lineales
k
0
1
2
3
4
3.2.1
xk
8.00000000e+000
7.87238132e+000
7.85506067e+000
7.85475753e+000
7.85475744e+000
f (xk )
-2.15864768e+002
-2.31372508e+001
-3.91280475e-001
-1.18472167e-004
-1.03985709e-011
Ejercicios
Trate de practicar con estas rutinas o con otras parecidas para resolver
los siguientes ejercicios:
1. Resuelva el problema anterior con x0 = 7: Obtiene lo que espera?
Es correcto el resultado que obtiene?
2. Busque ceros de la funcin f(x) = tan(x) x que sean cercanos a
100:
Respuesta: Los ms cercanos son, aproximadamente, 98.9500628 y
102.091966. Trate de no usar esta informacin para que experimente
en condiciones normales.
3.2.2
(3.2)
39
k!1
(3.3)
f (x) f 00 (x)
f 0 (x)2
pero como f (
x) = 0 y f 0 (
x) =
6 0; entonces g 0 (
x) = 0: Por continuidad
0
de g en x;
para todo 0 < C < 1; existe > 0 tal que si 0 < jx xj
<
x)j = jg 0 (x)j C < 1: Por tanto, debemos escoger
entonces jg 0 (x) g 0 (
x0 que cumpla jx0 x
j < : Como 0 est entre x0 y x;
entonces
je1 j = jg 0 ( 0 )j je0 j C je0 j < C < :
De aqui, jx1 xj
< ; lo que indica que este argumento se puede repetir.
Llegamos a
je2 j = jg 0 ( 1 )j je1j C je1 j < C 2 je0 j < C 2 < :
40
3. Ecuaciones no lineales
Por induccin,
jek+1 j = jg 0 ( k )j jek j C jek j < C k+1 je0 j < C k+1 < :
Esto prueba que los iterados pertenecen todos al intervalo con radio
en torno a la raz y que lim jek j = 0:
k!1
Para saber qu tan rpida es esta convergencia, usamos Teorema de
x) = 0: Es decir,
Taylor para g; teniendo en cuenta que g 0 (
1
g (xk ) g (
x) = g 00 ( k ) (xk x)
2;
2
donde k est entre xk y x
: Esto lo reescribimos asi:
1
ek+1 = g 00 (k ) e2k :
2
De aqui encontramos que
ek+1
x)
1 00
1 f 00 (
g
(
x)
=
:
=
2
0
k!1 e
2
2 f (
x)
k
lim
41
= x2 4x + 6
= 5 x6
1
= (5x 6) 2
2
= x 5+6 :
% Uso z = m3(f_fun,g_fun,s,x0);
% x0 es la primera aproximacion
v=feval(f_fun,x0);e0=s-x0;
out=[0,x0,v,e0];
for k=1:Nuit
x1=feval(g_fun,x0);
42
3. Ecuaciones no lineales
v=feval(f_fun,x1);
e1=s-x1;
out=[k,x1,v,e1,e1/e0];
if (abs(x1-x0)<epsi j abs(v)<epsi)
break
end
x0=x1;e0=e1;
end
% z=x^2-5*x+6;
z=x^3-13*x+18;
function z = g(x);
% z = x^2-4*x+6;
% z = 5-6/x;
% z = (5*x-6)^(1/2);
% z = (x^2+6)/5;
% z = x^3-12*x+18;
% z = (x^3+18)/13;
% z = (13*x-18)^(1/3);
z = (13*x-18)/x^2;
43
k
0
1
2
3
4
5
6
7
8
9
10
xk
0.00e+000
6.00e+000
1.80e+001
2.58e+002
6.55e+004
4.29e+009
1.84e+019
3.40e+038
1.16e+077
1.34e+154
Inf
f (xk )
6.00e+000
1.20e+001
2.40e+002
6.53e+004
4.29e+009
1.84e+019
3.40e+038
1.16e+077
1.34e+154
Inf
NaN
ek
2.00e+000
-4.00e+000
-1.60e+001
-2.56e+002
-6.55e+004
-4.29e+009
-1.84e+019
-3.40e+038
-1.16e+077
-1.34e+154
-Inf
e k =ek 1
-2.00e+000
4.00e+000
1.60e+001
2.56e+002
6.55e+004
4.29e+009
1.84e+019
3.40e+038
1.16e+077
Inf
xk
0.00e+000
-Inf
5.00e+000
...
3.03e+000
...
3.00e+000
...
3.00e+000
f (x k )
6.00e+000
Inf
6.00e+000
...
2.74e-002
...
3.45e-003
...
4.52e-004
ek
2.00e+000
Inf
-3.00e+000
...
-1.03e+000
...
-1.00e+000
...
-1.00e+000
ek =ek 1
Inf
0.00e+000
...
9.87e-001
...
9.98e-001
...
1.00e+000
xk
1.99e+000
1.95e+000
1.66e+000
6.69e-001
f (xk )
1.01e-002
5.56e-002
4.56e-001
3.10e+000
ek
1.00e-002
5.28e-002
3.40e-001
1.33e+000
e k =ek 1
1.53e+000
1.67e+000
2.17e+000
44
3. Ecuaciones no lineales
xk
0.00e+000
3.58e+000
3.43e+000
3.29e+000
f (xk )
6.00e+000
-2.11e+000
4.21e-001
3.13e-001
ek
2.00e+000
-1.58e+000
-1.43e+000
-1.29e+000
ek =ek 1
8.17e-001
9.16e-001
9.43e-001
xk
0.00e+000
1.81e+000
1.95e+000
1.99e+000
2.00e+000
2.00e+000
f (xk )
6.00e+000
2.33e-001
5.75e-002
5.55e-003
1.80e-003
5.89e-004
ek
2.00e+000
1.95e-001
5.45e-002
5.52e-003
1.80e-003
5.89e-004
ek =ek 1
7.48e-001
7.86e-001
7.99e-001
8.00e-001
8.00e-001
3.4 Ejercicio
Para el polinomio q (x) = x 3 13x + 18 presentado antes, considere las
siguientes funciones de iteracin de punto jo y decida cules permiten
45
3.5
(3.4)
(3.5)
46
3. Ecuaciones no lineales
(3.6)
Sea C una constante positiva tal que jg 0(s)j < C < 1: Por continuidad
de g 0 ; para " = C jg 0 (s)j ; existe tal que jg 0 (x) g 0(s)j " siempre
que 0 < jx sj < : De aqui obtenemos jg 0 (x)j " + jg 0(s)j = C < 1
para todo x 2 I :
Sea I = [s ; s + ] : Veamos que si x 0 2 I ; la iteracin de punto
jo xk+1 = g(xk ) es convergente. Por (3.6),
je1 j jg 0 (0 )j je0 j :
Como 0 est entre x0 y s; entonces est en I : Luego
je1 j C je0 j < C < :
(3.7)
k!1
47
3.6. Ejemplos
0 lim
jek+1 j
= jg 0 (s)j :
k!1 jek j
lim
1 (p)
p
g (k ) (xk s) ;
p!
3.6
Ejemplos
f (2) (s)
:
f 0 (s)
48
3. Ecuaciones no lineales
% Uso z = m4(f_fun,f_prima,s,x0);
% x0 es la primera aproximacion
v=feval(f_fun,x0);vp=feval(f_prima,x0);e0=s-x0;
out=[0,x0,v,e0];
for k=1:Nuit
x1=x0-v/vp;
v=feval(f_fun,x1);vp=feval(f_prima,x1);
e1=s-x1;
out=[k,x1,v,e1,e1/e0,e1/e0^2];
end
x0=x1;e0=e1;
end
49
3.6. Ejemplos
mximo de 20 iteraciones.
p
1. Aproximacin del cero s = 2 de la funcin f(x) = x2 2 por el
Mtodo de Newton.
k
0
1
2
3
4
5
6
7
8
9
xk
50
25.0200
12.5500
6.3547
3.3347
1.9672
1.4919
1.4162
1.4142
1.4142
f (xk )
2.5e+003
6.2e+002
1.6e+002
3.8e+001
9.1e+000
1.9e+000
2.3e-001
5.7e-003
4.1e-006
2.1e-012
ek
-4.9e+001
-2.4e+001
-1.1e+001
-4.9e+000
-1.9e+000
-5.5e-001
-7.8e-002
-2.0e-003
-1.4e-006
-7.4e-013
ek =ek1
ek = (ek 1)2
4.9e-001
4.7e-001
4.4e-001
3.9e-001
2.9e-001
1.4e-001
2.6e-002
7.1e-004
5.1e-007
-1.0e-002
-2.0e-002
-4.0e-002
-7.9e-002
-1.5e-001
-2.5e-001
-3.4e-001
-3.5e-001
-3.5e-001
k
0
1
2
.
8
9
10
11
12
13
xk
2.0000
1.4323
0.9638
...
0.0276
0.0139
0.0070
0.0035
0.0018
0.0009
f (xk )
8.4e+000
2.8e+000
9.1e-001
...
3.9e-004
9.8e-005
2.5e-005
6.1e-006
1.5e-006
3.8e-007
ek
-2.0e+000
-1.4e+000
-9.6e-001
...
-2.8e-002
-1.4e-002
-7.0e-003
-3.5e-003
-1.8e-003
-8.8e-004
ek =ek 1
ek = (ek 1 )2
7.2e-001
6.7e-001
...
5.1e-001
5.0e-001
5.0e-001
5.0e-001
5.0e-001
5.0e-001
-3.6e-001
-4.7e-001
...
-9.4e+000
-1.8e+001
-3.6e+001
-7.2e+001
-1.4e+002
-2.9e+002
50
3. Ecuaciones no lineales
La penltima columna sugiere convergencia lineal. La ltima no invita a pensar en convergencia cuadrtica. De todas maneras, como lo
dijimos antes, los experimentos nunca son la ltima palabra.
Estos dos ejemplos sugieren la preparacin de tablas con cocientes
de errores consecutivos para tratar de encontrar patrones que despus
conduzcan a armaciones matemticas generales. Tales patrones no
siempre se encuentran, como en el siguiente caso:
3. Aproximar el cero s = 1 de la funcin x3 1:
k
0
1
2
3
4
5
6
xk
3.0000
2.0370
1.4384
1.1200
1.0124
1.0002
1.0000
f (xk )
2.6e+001
7.5e+000
2.0e+000
4.1e-001
3.8e-002
4.5e-004
6.9e-008
ek
-2.0e+000
-1.0e+000
-4.4e-001
-1.2e-001
-1.2e-002
-1.5e-004
-2.3e-008
ek =e k1
ek = (ek1 )2
5.2e-001
4.2e-001
2.7e-001
1.0e-001
1.2e-002
1.5e-004
-2.6e-001
-4.1e-001
-6.2e-001
-8.6e-001
-9.8e-001
-1.0e+000
1+x
3. Encuentre todas las races de log
.
1 x2
Sugerencia: Con una buena grca conjeture que hay una sola
51
52
3. Ecuaciones no lineales
plementario nmero 3.
53
3. Evale
s=
r
3
6+
q
3
6+
p
3
6 + ::::
p
3
6 + x: El nmero
1
a
xn+1 = 1
xn +
n
n
y que dos errores consecutivos satisfacen la relacin
1
(x n a) :
xn+1 a = 1
n
Por qu motivo esta relacin sugiere que la convergencia es
lenta?
54
3. Ecuaciones no lineales
Interpolacin
Tablas
Teorema fundamental
Forma de Newton (Diferencias divididas)
Forma de Lagrange
4.1
Tablas
0 1
x0 x 1
y0 y1
n
xn
yn
(4.1)
56
4. Interpolacin
x 10
1.35
1.3
1.25
1.2
1.15
1.1
1.05
0
10
15
20
25
30
35
40
45
% uso: m5
x=1996:2000;xp=1996:.1:2000;
y1=interp1(x,y,xp,linear);
plot(y1,k+);
y2=interp1(x,y,xp,cubic);
plot(y2,k);
y3=interp1(x,y,xp,spline);
plot(y3,k--);
57
4.2
Teorema fundamental
0
1
2
1
2
3
1 1/2 1/3
3
4
1/4
(4.2)
Intento 1
58
4. Interpolacin
3
P
j=0
[f (xj ) yj ]2 sea
% sistema redundante
% uso: redun
x=Any
z=1:3/100:4;
plot(z,1./z,r,z,polyval(p,z),k--);
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
1
1.5
2.5
3.5
59
Intento 2
60
4. Interpolacin
luego a = 1
Para 2:
1
= p(2) = a + b;
2
luego b =
1
2
Para 3:
1
= p(3) = a + 2b + 2c;
3
luego c =
Para 4:
1
1
= p(4) = a + 3b + 6c + 6d; luego d = :
4
24
1
6
z=1:3/100:4;
x=[1 2 3 4];y=1./x;
polin=interp1(x,y,z,cubic);
plot(z,1./z,k,z,polin,k--);
set(gca,XTick,x),grid on
axis([1 4 0 1]),
61
0.5
0.3333
0.25
62
4. Interpolacin
Consideremos el polinomio
pk (x) = pk 1 (x) + c(x x0 )(x x1 ):::(x xk1 ):
Por supuesto es interpolante de los datos hasta k 1; pues pk 1 lo es.
Para que tambin interpole en xk ; pedimos que
yk = pk (xk ) = pk 1 (xk ) + c(xk x0 )(xk x 1):::(xk xk1 )
lo cual proporciona un nico valor para c: El despeje de c se puede
hacer pues los xj son todos distintos por hiptesis.
4.2.3
Clculo de coeficientes
k
X
j=0
con la convencin
m
Q
s=0
cj
j 1
Y
(x xs )
s=0
(x xs ) = 1 si m < 0:
Para evaluar los pk y por tanto, para calcular los ck ; se usa la multi
63
0
x0
y0
1
x1
y1
n
xn
yn
(4.5)
4.3
Forma de Newton
64
4. Interpolacin
p0 (x) = y0 = c0
p1 (x) = p0 (x) + c1 (x x0 )
p2 (x) = p1 (x) + c2 (x x0 )(x x1 )
..
.
pk (x) =
k
X
j=0
con la convencin
m
Q
s=0
cj
j 1
Y
(x xs )
s=0
(x xs ) = 1 si m < 0:
x1
x0
f [x1 ; x2 ] f [x0 ; x1 ]
= f [x 0; x1 ; x2 ]
c2 =
x 2
x0
..
.
ck =
En general,
f [xk+1 ; x k+2 ; xk+j ] f [xk ; xk+1; xk+j 1 ]
xk+j xk
(4.6)
En resumen, la forma de Newton del polinomio interpolante de la tabla
dada es
j1
n
Y
X
pn (x) =
f [x0; x1 ;
; xj ] (x xs ):
f [xk; xk+1 ; ; xk+j ] =
j=0
s=0
65
f [x0 ]
f [x1 ]
f [x0 ; x1 ]
f [x1 ; x2 ]
..
.
x2
..
.
xn 1
xn
f [x2 ]
..
.
f [xn 1 ] f [xn 1 ; xn ]
f [xn ]
% uso: difdiv
% diferencias divididas
d=zeros(n);
d(:,1)=y(:);
for j=2:n
for i=1:n-j+1
66
4. Interpolacin
d(i,j)=(d(i+1,j-1)-d(i,j-1))/(x(i+j-1)-x(i));
end
end
d =
1 7
7 1
8 28 12 0
64 76
0 0
216 0
0 0
n
P
k=0
n
P
yk lk (x)
(4.7)
f (xk ) lk (x);
k=0
donde
lk (x) =
n
Y
(x xs )
:
(xk
xs )
s=0; s=k
6
(4.8)
67
4.5. Ejercicios
(4.9)
4.5
Ejercicios
1990
18
1994 1998
8.7
10
68
4. Interpolacin
diferencias divididas. Note que slo tiene que completar el trabajo que
ya hizo en la parte a., no necesita empezar desde el principio.
2. Use el mtodo de coecientes indeterminados para encontrar un
polinomio cuadrtico p (x) tal que p (1) = 0; p0 (1) = 7 y p (2) = 10:
(Note la evaluacin de la derivada.) La interpolacin polinomial que
incluye informacin sobre derivadas, es importante pero no hace parte
de estas notas. Sugerimos a los interesados que estudien interpolacin
de Hermite, para darse una idea sobre el tema.
3. Una funcin spline de grado k con nodos x0 ; x1 ; :::; xn es una
funcin S que cumple:
a. En cada intervalo [xj1 ; xj ); S es un polinomio de grado k:
b. S tiene derivadas continuas hasta de orden k 1 en [x0 ; x n ] :
Ejemplos: Los splines de grado 0 son funciones constantes a trozos,
los de grado 1 son funciones continuas lineales a trozos y los de grado
2 son continuas, con primera derivada continua y denidos en cada
subintervalo por un polinomio cuadrtico.
Determine los valores de a; b; c y d para que la funcin
x 2 [0; 1]
3 + x 9x3 ;
f (x) =
2
3
a + b (x 1) + c (x 1) + d (x 1) ;
x 2 [1; 2]
sea un spline cbico con nodos 0; 1 y 2:
Los ejercicios 2. y 3. abren un espacio para temas no tratados en
detalle en estas notas. Sugerimos consultar Kincaid y Cheney (1994),
cap. 6.
f (n) (z)
n!
69
4.7
n
Y
j=0
(x xj ):
Ejercicios suplementarios
Tabla 1
-2 -1 0 1
2 14 4 2
x
y
Tabla 2
-1 0
2 3
-1 3 11 27
-2 -1 0
2 14 4
-2
6
70
4. Interpolacin
2j
b. Utilizando los puntos xj n = cos
:
n
Haga grcas de las funciones de error f (x) p (x) en todos los
casos. Comente sus resultados.
71
-2 -1 0
-39 1 1
1
3
2
3
4
25 181 801
-39
1
1
3
25
181
801
40 -20 7
0
1 3
2 10 19
22 67 55
156 232
620
-1
4
9
1
1
4.8
Examen de entrenamiento
0
0
1
1
2
0
72
4. Interpolacin
-2 -1 0
-5 1 1
1
1
2 3
7 25
x en los
Integracin numrica
Frmulas bsicas
Error en la cuadratura
Cuadraturas compuestas
Frmulas de Newton-Cotes
Coecientes indeterminados
Cuadratura de Gauss
Polinomios ortogonales
Rb
La integral denida a f (x) dx es un nmero y el proceso de calcu
larlo, con base en valores de la funcin f; se conoce como integracin
numrica o cuadratura. (Esta ltima palabra se reere a encontrar un
cuadrado cuya rea sea igual al rea bajo una curva.) Ms
R b precisamente,
toda frmula de integracin numrica para la integral a f (x) dx es una
suma de la forma
n
X
Aj f (xj ) :
j=0
74
5. Integracin numrica
Z 1
1
1
f (x) dx
f (0) + 4f
+ f (1) :
=
6
2
0
El smbolo
= se lee: es aproximadamente igual a. Empecemos usando
esta regla y la ms elemental de las rutinas de cuadratura que ofrece
MATLAB.
Ejemplo 15 Utilizar la rutina bsica de cuadratura proporcionada por
MATLAB, llamada quad, y la regla de Simpson bsica para aproximar
las integrales entre 0 y 1 de las siguientes funciones: f (x) = jsin (2x)j ;
2
f (x) = p exp (x 2) y f (x) = x (x 0:5) (x 1) + 5:
2
erf (z) =
p exp x2 dx
est tabulada. Las tablas para erf y muchas otras funciones denidas
en trminos de integrales, son indicativo de lo importante que es tener
buenas rutinas para integracin numrica. Dichas tablas se pueden con
sultar, por ejemplo, en la compilacin Abramowitz y Stegun (1970) [1].
Preparamos el siguiente M-archivo para hacer los clculos:
function simpson(fun,a,b)
i1=quad(fun,0,1);
c=(b-a)/6;
fa=feval(fun,a);
f2=feval(fun,(a+b)/2);
75
fb=feval(fun,b);
i2=c*(fa+4*f2+fb);
2
p exp x2 dx
R 01
(x (x 0:5) (x 1) + 5) dx
0
quad.m Simpson
0:6366 1:2246 1016
Exacto
0:6366
0:8427
0:8431
0:8427
76
5. Integracin numrica
1.2
0.8
0.6
0.4
0.2
0
-1
5.1.1
Ejercicio
Cambio de intervalo
Las dos frmulas bsicas que hemos presentado fueron dadas para el
intervalo [0; 1] pero el M-archivo simpson.m, lo escribimos con base en
un intervalo genrico [a; b] : Los cambios de intervalo son tan fciles de
hacer, que a menudo se presentan las frmulas nicamente para [0; 1] :
Para cambiar de intervalo, basta escribir la variable x como funcin
lineal de otra variable y, as:
x = p + qy:
Enseguida pedimos x = a cuando y = 0 y x = b cuando y = 1, lo cual
exige tomar p = a y q = b a: La expresin anterior se cambia por
x = a + (b a) y
g (y) = f (a + (b a) y) :
77
Rb
Finalmente, dx = (b a)dy y la integral a f (x) dx la podemos evaluar
as:
Z b
Z 1
f (x) dx = (b a)
g (y) dy:
a
Como
1
a+b
g (0) = f (a) ; g
=f
y g (1) = f (b) ;
2
2
entonces en el intervalo [a; b] la regla de Simpson es
Z
ba
a+b
f (x) dx =
f (a) + 4f
+ f (b)
6
2
y la regla trapezoidal es
Z b
ba
f (x) dx
[f (a) + f (b)] :
=
2
a
5.2
Sean
y
Error en la cuadratura
ba
a+b
S (f; a; b) =
f (a) + 4f
+ f (b)
6
2
ba
[f (a) + f (b)] :
2
Si f tiene sucientes derivadas, los errores en cada una de estas
cuadraturas estn dados por
Z b
1
f (x) dx S (f; a; b) = (b a)5 f (4) ( )
90
a
T (f; a; b) =
1
(b a)3 f (2) () ;
12
a
donde y estn entre a y b: La justicacin de estas igualdades puede
verse en Kincaid y Cheney (1994) [21].
f (x) dx T (f; a; b) =
78
5. Integracin numrica
h
(f (xj 1) + f (xj ))
2
n
P
j=1
n
P
T (f; xj1 ; xj )
h
(f (xj 1 ) + f (xj ))
j=1 2
nP
1
h
h
=
f (x0 ) +
f (xj ) + f (x n ) :
2
2
j=1
=
5.4. Ejercicios
79
5.4
Ejercicios
80
5. Integracin numrica
Rb
a
f (x) dx de la forma
n
P
Aj f (xj ) ;
j=0
j=0
(5.2)
j=0
dem:
Puesto que los polinomios de Lagrange tienen grado n; para ellos
debe cumplirse el lado derecho de (5.2), es decir,
Z b
n
X
lk (x) dx =
Aj lk (x j ) = Ak :
a
j =0
n
X
j=0
p (xj ) lj (x) :
81
Por tanto,
Z
p (x) dx =
n
X
p (x j )
lj (x) dx =
j=0
n
X
Aj p (xj ) :
j=0
5.6
Aj f (x j )
82
5. Integracin numrica
0 A0 + 0:5 A1 + 1 A2 =
Para x2 : 0 A0 +
R1
0
xdx = 0:5
R1
1
1
A1 + 1 A2 = 0 x2 dx = :
3
4
1
Este sistema tine una nica solucin dada por A0 = A2 =
y
6
2
A1 = : Estamos ante la cuadratura de Newton-Cotes sobre [0; 1] con
3
n = 2; x0 = 0; x1 = 0:5 y x2 = 1 y no es ms que la regla de Simpson.
Esta cuadratura tiene otra particularidad, que ya conocemos desde
que vimos los errores en la seccin 5.2. Para x3 ; la ecuacin que resulta
es
Z 1
1
1
A1 + A2 =
x3 dx =
8
4
0
y en efecto, los valores encontrados antes para A1 y A2 ; tambin satis
facen esta ecuacin. Esto signica que la regla de Simpson tambin es
exacta para polinomios de grado 3:
Ntese que la regla de Simpson no es una cuadratura de NewtonCotes para n = 3; pues no se utilizan 4 puntos en su formulacin.
Rb
a
83
x0 A0 + x1 A1 =
R1
0
R1
0
R1
0
xdx = 0:5
x2 dx =
1
3
(5.4)
1
x3 dx = :
4
84
5. Integracin numrica
5.8 Ejercicios
1. Resuelva exactamente el sistema de ecuaciones (5.4) y obtenga una
frmula de cuadratura gaussiana sobre [0; 1] que es exacta para poli
nomios de grado a lo ms 3.
2. Utilice la cuadratura gaussiana que acaba de deducir para calcular
las integrales del ejemplo 15.
3. Calcule C (1) y S (1) ; las integrales de Fresnel para z = 1; por
medio de esta cuadratura gaussiana. Las integrales de Fresnel fueron
denidas en la seccin de ejercicios 5.4.
f (x) w (x) dx
Aj f (xj ) :
j =0
85
j 6= k )
n
X
bj pj :
j=0
Adems, si q =
n
P
j=0
bj pj =
n
P
j=0
86
5. Integracin numrica
n
P
b j pj ; entonces
j=0
bj
j=0
entonces
Rb
a
(x d1 ) w (x) dx
Rb
Rb
xw (x) dx d1
Rb
w (x) dx;
xw (x) dx
d 1 = Ra b
Rb
(5.6)
87
Rb
a
Rb
a
En el lado derecho, los trminos despus del segundo son cero por
ortogonalidad. Luego
Rb 2
xp (x) w (x) dx
:
(5.7)
dn+1 = Ra b n
2 (x) w (x) dx
p
a n
y que los dems coecientes en (24) son cero. Para los detalles puede
verse Stewart (1996) [29].
Encontramos pues una frmula de recurrencia de tres trminos que
genera una sucesin de polinomios ortogonales y mnicos asociada con
el intervalo [a; b] y la funcin de ponderacin w (x) : Es la siguiente:
p0 = 1;
p1 = x d1 ;
pn+1 = xpn dn+1 pn en+1 pn 1 ; n = 1; 2; :::;
donde dn+1 y en+1 estn dadas por (5.7) y (7.2) respectivamente.
88
5. Integracin numrica
R
Esta cuadratura de Newton-Cotes para ab f (x) w (x) dx es exacta para
polinomios de grado hasta n; o sea que
Z b
n
X
grad (g) n )
g (x) w (x) dx =
Aj g (xj ) :
(5.9)
a
j=0
Resulta que, debido a los nodos que estamos usando, esta cuadratura
cumple mucho ms que sto. Demostremos que
grad (g) 2n + 1 )
g (x) w (x) dx =
n
X
Aj g (x j ) :
j=0
89
Aj g (xj ) =
j=0
j=0
n
P
Aj r (xj )
r (x) w (x) dx
por (5.9)
j=0
=
=
=
Rb
a
Rb
a
Rb
a
Aj f (x j ) ;
j=0
con
Aj =
90
5. Integracin numrica
y grad l2j = 2n: Por tanto, la cuadratura de Gauss es exacta para
l2j (x) y
Z b
n
X
2
0<
lj (x) w (x) dx =
Ak l2j (xk ) = Aj
a
k=0
por (4.9).
Notamos G (f; a; b; w; n) la cuadratura gaussiana sobre [a; b] ; con
funcin de ponderacin w (x) y con n + 1 nodos que aproxima
Z b
I=
f (x) w (x) dx:
a
5.12 Ejercicios
1. Demuestre que
n
P
j=0
Aj =
Rb
a
w (x) dx:
91
Utilice h = 2 ; con k = 1; 2; 3:
k
I=
f (x) dx = h
f (xj ) :
a
j=2
92
5. Integracin numrica
f (x) dx = af
+ bf (0) + cf
2
2
1
que es exacta para polinomios de grado 2 o menor.
1
c
1 + x2
dx:
a
93
94
5. Integracin numrica
6.1
4
.5
fn (t; y)
Queremos encontrar una funcin y : R ! Rn tal que
y0 = f (t; y)
y (t0 ) = y0 :
(6.1)
96
4
. 5
yn (t)
n
X
akj (t) yj ;
j=1
97
Ejemplo 25 1. Sean A =
R ! R2 tal que
30 28
0 2
y y0 =
2
1
: Encontrar y :
y0 = Ay
y (0) = y0 :
Este es un problema lineal homogneo y su solucin exacta es fcil de
obtener. Pero tambin es interesante resolverlo numricamente.
2. Encontrar y : R ! R2 tal que
0
y1 = y2
0
g
y2 = sin (y1 )
b
8
y (0) =
:
0
(6.2)
6.3
% uso: ode3
98
clear all
inte=[0 4];ci=[2;1];
t=linspace(inte(1),inte(2),800);
y=zeros(length(t),2);h=(inte(2)-inte(1))/length(t);
y(1,:)=ci(:);
for j=1:length(t)-1
y(j+1,:)=y(j,:)+h*feval(rhs3,t,y(j,:));
end
y1=y(:,1);
y2=y(:,2);
subplot(2,1,1);
plot(t,y1,k*,t,y2,k);
title(Ecuacion yprime=Ay);
subplot(2,1,2);
plot(y1,y2,r);xlabel(Y(1));ylabel(Y(2));
99
1.5
0.5
0
0
0.5
1.5
0.8
0.6
0.4
0.2
0
0
0.2
0.4
0.6
0.8
Diagrama de fase Y
1.2
1
VS Y
1.4
1.6
1.8
% SIAM, p. 151
tspan=[0,10];
yazero=[1;1];ybzero=[-5;2];yczero=[5;-2];
[ta,ya]=ode45(rhs1,tspan,yazero);
[tb,yb]=ode45(rhs1,tspan,ybzero);
[tc,yc]=ode45(rhs1,tspan,yczero);
[y1,y2]=meshgrid(-5:.5:5,-3:.5:3);
Dy1Dt=y2;Dy2Dt=-sin(y1);
quiver(y1,y2,Dy1Dt,Dy2Dt,k)
hold on
plot(ya(:,1),ya(:,2),k,...
yb(:,1),yb(:,2),k,yc(:,1),yc(:,2),k)
100
-1
-2
-3
-5
-4
-3
-2
-1
0
Diagrama de fase, y
1
1
VS y 2
Especies en competencia
1.8
1.6
1.4
1.2
0.8
0
2000
4000
6000
VS y
Diagrama de fase, y
1
8000
10000
101
6.4
6.5
Existencia y unicidad
102
Ejemplo 27 1. El PVI
y0 = y;
y (0) = 1
tiene una nica solucin y (t) = exp (t) : Las hiptesis del teorema an
terior se satisfacen en cualquier franja S que contenga al eje y en el
plano cartesiano R R:
2. El PVI
y0 = y2 ; y (0) = 1
(6.3)
tiene una nica solucin y (t) = 11 t ; denida nicamente para t < 1:
Esta asntota vertical no sorprende, pues de (6.3) vemos que la funcin
solucin del PVI debe ser positiva con derivada positiva y creciente. En
este caso, la existencia y unicidad de la solucin no se puede obtener
del Teorema 26. Recomendamos un libro especializado como Henrici
(1962) [14] para ms detalles tericos.
103
6.7
Mtodo de Euler
(6.4)
h2 00
y ();
2
(6.5)
104
Y j+1 = Y j + hf (tj ; Yj )
tj +1 = tj + h:
(6.6)
105
yprima = -10y, n = 2
yprima = -10y, n = 4
-1
0
-2
-2
-3
-4
-4
0
0.5
yprima = -10y, n = 8
0.5
yprima = -10y, n = 16
1
0.8
0.5
0.6
0.4
0.2
-0.5
0
0
0.5
yprima = -10y, n = 32
0.5
yprima = -10y, n = 64
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0.5
0.5
0.8
0.8
0.6
0.6
0.4
0.4
0.2
0.2
0
0
0.5
0.5
106
107
yprima = 5y, n = 4
150
150
100
100
50
50
0.5
yprima = 5y, n = 8
0.5
yprima = 5y, n = 16
150
150
100
100
50
50
0
0
0.5
yprima = 5y, n = 32
0.5
yprima = 5y, n = 64
150
150
100
100
50
50
0
0
0.5
0.5
150
150
100
100
50
50
0
0
0.5
0.5
108
6.7.1
Anlisis de error
(6.7)
(6.8)
109
j = 1; 2; :::; n:
K (tj t0 )
e
1 :
K
110
je j j 5h e10 1 ;
lo cual no dice mucho.
6.7.2
Consistencia
(6.9)
111
6.7.3
Estabilidad
(6.10)
!0
kk1 (b t 0 )K
max jej j e(bt0 )K j"j +
e
1 :
0j N
K
Claramente, si ! 0; entonces ej ! 0 para todo j; es decir, el mtodo
de Euler es estable.
112
6.7.4
Errores de redondeo
0jN
1.2
0.8
0.6
0.4
0.2
0
0
0.05
0.1
0.15
h
0.2
0.25
113
Estabilidad absoluta
(6.12)
114
h2 00
h3
y (t) + y000 () ;
2
3!
G (tj ; Y j ; h; f) = f (tj ; Yj ) +
h
(f (t ; Y ) + fy (tj ; Yj ) f (tj ; Y j )) :
2 t j j
115
6.9
Mtodos de Runge-Kutta
1
[k1 + 2k 2 + 2k3 + k4 ] ;
6
donde
k1 = f (tj ; Y j )
1
1
k2 = f tj + h; Y j + hk1
2
2
1
1
k3 = f tj + h; Y j + hk2
2
2
k4 = f (tj + h; Yj + hk 3 ) :
La deduccin de mtodos de Runge-Kutta que requieren nicamente
dos evaluaciones de la funcin f; es un ejercicio que recomendamos.
Aparece en muchos libros, por ejemplo, Kincaid y Cheney (1994) [21]
o Stoer y Bulirsch (1992) [30].
6.10 Ejercicios
1. Comprobar que el mtodo de Taylor orden 2 y el mtodo RungeKutta clsico satisfacen la condicin de consistencia (6.9).
116
;
f
(t;
y)
=
7
6
.. 7
4 .. 5
4
. 5
fn (t; y)
yn
que satisfacen una condicin de borde de una de las siguientes clases:
r (y (a) ; y (b)) = 0;
en la que la funcin r puede ser no lineal en una o ambas de sus dos
componentes,
Ay (a) + By (b) = c;
donde A y B son matrices de orden n y c 2 Rn o nalmente,
A1 y (a) = c1; A2 y (b) = c2 ;
(6.14)
117
y(a) = A;
y(b) = B;
(6.16)
y00 = y
y(0) = A; y() = B:
(6.17)
1 1
C1
A
=
:
e e1
C2
B
118
119
0
0
..
.
(6.18)
120
t
y(2) = : La solucin exacta es y (t) = arccot
y la usamos para
4
2
comparacin con la solucin obtenida por diferencias nitas.
El siguiente M-archivo es tomado de Lpez 2000 [22].
function pvfDFnl(fun,gun,hun,p1,p2,v1,v2,n,m,tol,wun)
121
% y(a)=v1 y(b)=v2
% pvfDFnl(fun,gun,hun,p1,p2,v1,v2,n,m,tol,wun)
% fun= f(x,y,y).
% p1=a p2=b
% n= nmero de subintervalos
% tol= tolerancia
a=zeros(n-1,1);b=zeros(n-2,1);c=zeros(n-2,1);
d=zeros(n-1,1);
h=(p2-p1)/n;k=1;pe=(v2-v1)/(p2-p1);
x=p1:h:p2;w=feval(wun,x);
y=v1+pe*(x-p1);
while k<=m
for i=1:n-1
t(i)=(y(i+2)-y(i))/(2*h);
a(i)=2+(h^2)*feval(gun,x(i+1),y(i+1),t(i));
d(i)=y(i)-2*y(i+1)+y(i+2)-(h^2)*feval(fun,x(i+1),y(i+1),t(i));
end
for i=1:n-2
b(i)=-1+(h/2)*feval(hun,x(i+1),y(i+1),t(i));
c(i)=-1-(h/2)*feval(hun,x(i+2),y(i+2),t(i+1));
end
J=diag(a)+diag(b,1)+diag(c,-1);
v=Jnd;
y=y+[0;v;0];
if norm(v)<tol
disp([x,w,y]);
disp([k,norm(y-w)]);
disp( xito);break
end
k=k+1;
122
end
if k>m
disp(excede # iteraciones);
end
% Las siguientes instrucciones muestran una grfica de la
solucin
% con las aproximaciones obtenidas
subplot(1,2,1);
plot(x,y,r);
xlabel(Tiempo);
title(PVF no lineal)
hold on
fplot(wun,[p1 p2],k*);
zoom
hold off
subplot(1,2,2);
% Grfica de los errores
ee=w-y;
plot(x,ee,k);
title(Error);
print -deps2 .nfignpvfDFnl.eps
Con este archivo generamos las siguientes guras:
PVF no lineal
Error
-5
1.6
x 10
1.5
1.4
1.3
1.2
1.1
0.9
0.8
0.7
0
0
0.5
1
t
1.5
0.5
1
t
1.5
123
6.16. Ejercicios
6.16 Ejercicios
1. Repita el procedimiento de diferencias nitas explicado arriba para
el PVF
1 < a t b < 1
(6.19)
y00 (t) = f (t; y; y 0);
con condiciones de borde
y(a) = A;
y(b) = B:
(6.20)
1; y(1) = 2:
00
b. y = y; y(0) = 3; y
= 7:
2
c. y 00 = 2et y; y(0) = 2; y(1) = e + cos (1) :
3. Para los tres ejemplos propuestos en el numeral anterior, encuentre
la solucin exacta y repita 2. calculando, adems de la solucin, la
distribucin del error en los puntos de la malla. Calcule adems la
norma 2 del error.
4. En 2. utilice mallas uniformes de tamao de paso 2k ; k = 2; 3; :::; 10:
Graque k VS Norma 2 del error.
.
F :
6 .
7!6 .
7
6
6
7
7
4 tn 5
4 vn 5
tn+1
vn+1
124
y adems, tienen soporte compacto. Para una descripcin de los Bsplines, recomendamos Kincaid y Cheney (1994) [21].
La funcin F se representa
F (t) =
n+1
X
vj Bj0 (t) :
(6.21)
j =0
n+1
X
vj j (t) :
(6.22)
j=0
125
funcin F; dada por (6.22), que aproxima la solucin del PVF (6.15)
- (6.16). En los casos en que el PVF es lineal, el anlisis es sencillo.
El problema consiste en identicar los coecientes vj por medio de la
solucin de un sistema lineal de ecuaciones. La matriz de este sistema
es dada por bandas cuando las funciones j tienen soporte compacto.
Los B-splines se usan frecuentemente por tener soporte compacto y
tambin son muy comunes las funciones trigonomtricas. En este ltimo
caso, se habla de mtodos espectrales para la solucin de ecuaciones
diferenciales. Tienen la ventaja de ser rpidos en el computador pues
generalmente el procedimiento numrico est basado en transformadas
rpidas de Fourier. El libro Trefethen (2000) [33] es una reciente y til
referencia para mtodos espectrales. El mismo autor ofrece en Internet
Trefethen (1996) [32], que es un moderno libro inconcluso sobre solucin
numrica de ecuaciones diferenciales que tambin se reere al tema de
los mtodos espectrales.
Presentamos las ideas del mtodo de colocacin para el PVF
u 00 + pu + q = w
u (0) = 0; u (1) = 0:
(6.23)
n
X
j =1
aj vj
126
tal que
Lv (ti ) = w (ti) ; i = 1; :::; n:
A tal funcin la encontramos, gracias a la linealidad de L; por medio
de la solucin del sistema lineal de ecuaciones
n
X
(6.24)
j=1
h = (b-a)/(n+1);t = a+h:h:b-h;
127
% coeficientes
q=4*ones(size(t));w=cos(t);p=zeros(size(t));
for m=1:n
[j k]=poten(m);
lv = j*(j-1)*vf(j-2,k,t)-2*j*k*vf(j-1,k-1,t)+k*(k-1)*vf(j,k-2,t);
lv = lv + p.*(j*vf(j-1,k,t)-k*vf(j,k-1,t)) + q.*vf(j,k,t);
ma(:,m)=lv;
end
%c=manw;
c=bicgstab(ma,w,1e-4,50);
up=cell(size(c));u=zeros(size(c));
for m=1:n
[j k]=poten(m);
up{m}=vf(j,k,t);
u=u+c(m).*up{m};
end
ex=exaf(t);er=u-ex;
er2=sqrt((1/(n+2))*sum(er.^2))
ee2=norm(er)
plot(T,u,r,T,ex,k--)
title(Mtodo de Colocacin)
xlabel t,
j=3+m-1;k=3;
j=3+m-6;k=4;
j=3+m-11;k=5;
j=3+m-16;k=6;
128
j=3+m-21;k=7;
end
0.3
0.2
0.1
-0.1
-0.2
-0.3
-0.4
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Para poder resolver el sistema lineal, tuvimos que acudir a un sosticado mtodo iterativo para la solucin del sistema de ecuaciones (6.24).
Se trata de BI-CGSTAB, publicado por primera vez por H. A. van
der Vorst en 1992. Se trata de un mtodo de gradiente conjugado con
biortogonalizacin, que adems posee un caracter estabilizador. MAT
LAB incluye este mtodo en la rutina bicgstab.m. Para saber ms
sobre este mtodo recomendamos Trefethen y Bau (1997) [34].
Los resultados son de inferior calidad a los obtenidos antes por dife
rencias nitas para un problema no lineal. Hay una razn numrica de
peso para esperar pobres resultados. Se trata de los polinomios escogi
dos como funciones bsicas, que no se escogieron en ninguna familia
de polinomios ortogonales. Los polinomios escogidos generan sistemas
lineales muy mal condicionados.
Un caso anlogo y muy famoso, es el de tratar de usar los poli
nomios xj ; como funciones bsicas para construir el polinomio que sea
la mejor aproximacin de una funcin dada en el sentido de los mnimos
cuadrados. Con la funcin constante 1 como funcin de ponderacin,
el sistema lineal al que se llega es uno de los ms mal condicionados de
129
los que se tenga noticia, pues la matriz del sistema es la temida matriz
1
de Hilbert Hn ; cuyo elemento (i; j) es
: A medida que crece
i+j +1
n; el tamao de la matriz, tambin aumenta el nmero de condicin de
Hn : Ms detalles de este interesante ejemplo pueden verse en Atkinson,
1978 [4], seccin 4.3.
f (x) dx:
(6.26)
130
Y n = (1 100h)n + 1
y en el mtodo de Euler hacia atrs, son
Yn =
1
+ 1:
(1 + 100h)n
7. Considere el PVF
v00 = v4 ; 0 t 1; v (0) = 1; v (1) = 1=2:
131
; t > c:
4
Qu solucin de este PVI ser la que aproxima el mtodo de
Euler?
3. Resuelva por el mtodo de Euler con h = 0:25; el siguiente PVI:
y0 = 2ty; y (0) = 1; 0 t 1:
4. Convierta los PVIs siguientes, dados en trminos de ecuaciones
escalares de grado 2, a PVIs con variable vectorial.
a. y00 = sen (y) ; y (0) = =2; y0 (0) = 0:
b. y00 y = t; y(0) = 1; y 0(0) = 1:
132
7.1
134
135
7.3.1
Mtodos ms comunes
que conduce a
j
j
V ij +1 = Vij + r Vi1
2Vij + Vi+1
:
(7.2)
(7.3)
V j = Aj V 0 :
(7.4)
(7.5)
(7.6)
136
)
:
= i+1
k
h2
h2
Los dos mtodos anteriores son casos particulares de ste, basta hacer
= 0 y 1 respectivamente. El ms importante de los mtodos mixtos
1
es el que corresponde a = que se llama de Crank-Nicolson. Est
2
dado por la igualdad
Vij+1 V ij
1 j+1
j
j
j
= 2 Vi+1
2Vij+1 + V ij+1
+
V
2V
+
V
1
i+1
i
i1
k
2h
j +1
j +1
j
rVi1
+ 2 (1 + r) Vij+1 rVi+1
= rV ij1 + 2 (1 r) Vij + rV i+1
: (7.7)
137
n
10
10
20
20
30
30
40
40
50
50
60
60
r
0.5
0.8
0.5
0.8
0.5
0.8
0.5
0.8
0.5
0.8
0.5
0.8
Mtodos explcito e
Error (explcito)
4.1813e-002
2.1062e-002
1.1529e-002
5.6956e-003
5.2961e-003
8.7532e-003
3.0288e-003
3.6016e+001
1.9578e-003
2.6821e+011
1.3687e-003
4.7197e+022
implcito
Error (Implcito)
3.0735e-002
4.4402e-003
8.6889e-003
1.2394e-003
4.0122e-003
6.6802e-003
2.2990e-003
1.4966e-003
1.4874e-003
1.7249e-003
1.0403e-003
1.2066e-003
7.3.2
Ejercicios
1. Consideremos el problema
@u @ 2 u
= 2
@t
@x
para x 2 [0; 1] con condicin inicial, condiciones de borde y solucin
exacta dadas por
138
1
cos (2n + 1) x
u(t; x) = + 2
(1)n
exp 2 (2n + 1)2 t
2
(2n + 1)
n=0
8
>
>
1 si jx j <
>
>
< 1
u0 (x) =
si jx j =
>
2
>
>
>
:
0 si jx j >
1
2
1
2
1
:
2
1
Encuentre la solucin para t =
utilizando los tres mtodos pro
2
puestos en la subseccin 7.3.1: Utilice varios valores de h y k de manera
que r tome los valores 0:1n; con n = 1; 2; :::; 8:
139
function vnew=smith27ci(tfin,n);
% Herramienta didactica, Carlos E. Mejia, 2002
% ecuacion parabolica no lineal en 1-D
% ejemplo 2-7 de Smith
% metodo de Newton para hallar ceros de F(x)=0
% tfin: tiempo final
% n: numero de subintervalos en [0,1], n>2
% h: tamao de paso en espacio
% k: tamao de paso en tiempo
h=1/n;
k=.5*h^2; % k puede definirse en otras formas si se desea
p=h^2/k;
% x: dominio espacial, xa: dominio espacial ampliado
x=(h:h:1-h);xa=[0;x;1];
% vold: condicion inicial
vold=4.*x.*(1-x);
vnew=vold;
t=0;
while t<tfin
va=[0;vnew;0];
plot(xa,va,r);
title(Difusion no lineal);
xlabel(Espacio)
hold on;
count=floor(t/k)+1;
in2=1;it=1;
g=zeros(n-1,1);fv=g;jf=zeros(n-1);
g(1)=vold(2)^2-2*(vold(1)^2-p*vold(1));% 1
fv(1)=vnew(2)^2-2*(vnew(1)^2+p*vnew(1))+g(1);
jf(1,1)=-4*vnew(1)-2*p;
jf(1,2)=2*vnew(2);
140
g(n-1)=-2*(vold(n-1)^2-p*vold(n-1))+vold(n-2)^2;% 2
fv(n-1)=-2*(vnew(n-1)^2+p*vnew(n-1))+vnew(n-2)^2+g(n-1);
jf(n-1,n-2)=2*vnew(n-2);
jf(n-1,n-1)=-4*vnew(n-1)-2*p;
for i=2:n-2
g(i)=vold(i+1)^2-2*(vold(i)^2-p*vold(i))+vold(i-1)^2;% 3
fv(i)=vnew(i+1)^2-2*(vnew(i)^2+p*vnew(i))+vnew(i-1)^2+g(i);
jf(i,i-1)=2*vnew(i-1);
jf(i,i)=-4*vnew(i)-2*p;
jf(i,i+1)=2*vnew(i+1);
end
in=jfn-fv;
in2=norm(in);
vnew=vnew+in;it=it+1;
end
t=t+k;vold=vnew;
end
ahora
1
ih; j +
k la aproximacin de diferencias es
2
1 2
1
2
2
2
2
2
(Vi;j+1 Vi;j ) = 2 Vi1;j
+1 2Vi;j+1 + Vi+1;j +1 + Vi1;j 2Vi;j + Vi+1;j
k
2h
2
[g (V )]i = Vi21;j 2 Vi;j
pVi;j + Vi+1;j
2
2
2
[f (V )]i = V i1;j+1 2 Vi;j+1 + pVi;j+1 + V i+1;j+1
141
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
Espacio
0.6
0.7
0.8
0.9
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
Espacio
0.6
0.7
0.8
0.9
142
7.5 Ejercicio
Considere el problema
@u @ 2 u2
=
; 0 <x<1
@t
@x2
y suponga que la solucin u satisface la ecuacin no lineal
1
2u 3 + log u
= 2 (2t x)
2
(7.8)
(7.9)
para todo t y x:
a. Utilizando el mtodo de Newton para ecuaciones no lineales, obtenga
a partir de (7.9) la condicin inicial, las condiciones de borde y la solu
cin para t = 0:5.
b. Utilice el mtodo de Newton y el mtodo de diferencias nitas
descrito antes para aproximar la solucin de (7.8) en t = 0:5: Los
resultados para t = 0:5 en las partes a. y b. deben coincidir.
143
7.6
@u
;
@
@u
= H (u v) ;
@
144
j
;
V ij+1 = Vij + r Vij1 2V ij + Vi+1
(7.10)
k
donde r = 2 : En x = 0 y x = 1 optamos por utilizar nodos virtuales
h
no pertenecientes a la malla para realizar los clculos, en la siguiente
forma: En x = 0;
1 j
V1 Vj1 = V0j :
2k
Al eliminar lo correspondiente al nodo virtual i = 1 de estas dos
ecuaciones, llegamos a
j+1
j
j
j
Vn+1
= V n+1
+ r Vnj 2Vn+1
+ Vn+2
1 j
Vn +2 Vnj = Vnj+1 :
2k
j +1
j
j
V n+1
= Vn+1
+ 2r Vnj (1 + k) Vn+1
:
(7.12)
7.7
145
(7.13)
uji Nij = uji V ij + Vij Nij :
146
1.2
0.8
0.6
0.4
0.2
0
0
0.05
0.1
0.15
0.2
0.25
7.8
147
V j N j = Aj V 0 N 0
que lleva a
kV j N j k = kAj (V 0 N 0 )k
kAj k kV 0 N 0 k
y para que este error no crezca sin lmite, que es lo que llamamos
estabilidad, requerimos que kAj k sea acotada cuando j ! 1.
Recurrimos a un conocido teorema del lgebra lineal numrica que
aqu citamos de Ortega (1990) [26], pag. 25. Antes vemos la siguiente
denicin.
Denicin 38 Una matriz A es de clase M si para todos los valores
propios tales que jj = (A) ; se cumple que todos los bloques de
Jordan asociados con son 1 1:
Teorema 39 kAj k es acotada cuando j ! 1 si y solo si (A) < 1 o
(A) = 1 y A es de clase M.
En el caso del mtodo explcito (7.10), estamos ante la matriz
A = trid (r; 1 2r; r)
148
m
2
; m = 1; 2; :::; n:
m = 1 4rsen
n+1
y queremos
j m j 1 para todo m:
Ntese que
jm j 1 si y solo si r
2sen2
m
n+1
1
y esta ltima desigualdad es cierta si y solo si r :
2
Los mtodos de diferencias que son estables para todos los valores de
r se llaman incondicionalmente estables. Los dems, como el mtodo
explcito que acabamos de considerar, se denominan condicionalmente
estables.
7.9 Ejercicios
Considere los mtodos de diferencias denidos en la subseccin 7.3.1.
1. Compruebe que son consistentes con la ecuacin diferencial.
2. Compruebe que los valores propios de la matriz A asociada con el
mtodo (7.2) son los listados arriba.
3. Realice un anlisis matricial de estabilidad para el mtodo implc
ito (7.5) y para el mtodo de Crank-Nicolson. Demuestre que ambos
son incondicionalmente estables.
4. Para el mtodo explcito (7.2) aplicado a la ecuacin
@u @ 2 u
= 2; a < x < b
@t
@x
con condiciones homogneas en el borde y una condicin inicial u0 (x) ;
1
demuestre directamente que la condicin 0 < r es suciente para
2
149
Vi
j1 2rj
Vij
+
r V ij1
+
Vi+1
j
j j
=
(1
2r)
Vi
+ r Vi1
+
V
i+1j
j
(1
2r) max Vi + 2r max Vi
i
i
= max
Vij
:
i
j
Despus haga W j = max
Vi
y concluya que
i
lo que implica
W j W 0 para todo j
(7.14)
150
1 s
s
V i1;j 2Vi;js + V i+1;j
:
2
h1
1 s+1
Vi;j V i;js = D12 V s + D22 V s :
k
1
1
1
k
:
2 + 2
2
h1 h2
1 s+1
Vi;j Vi;js =
D1 V + D22 V s + D21 V s+1 + D 22 V s+1 :
k
2
El mtodo de Crank-Nicolson para (7.14) es incondicionalmente estable, lo cual es conveniente, pero no es recomendable porque para cada
paso en el sentido temporal, o sea de nivel s a nivel s + 1; el esfuerzo
computacional que se requiere es grande.
7.10.1
Mtodos ADI
151
1
s+
k:
2
Este mtodo se dene as:
1
s+
k 2
k 2
I + D2 V s
I D1 V 2 =
2
2
1
s+
k 2
k 2
s+1
I D2 V
=
I + D1 V 2 :
2
2
152
153
v=id1nrh;
vint(:,j)=v(:);
end
for i=1:n
if i==1
rh(:)=1+(ro-2)*vint(1,:)+vint(2,:);
elseif i==n
rh(:)=vint(n-1,:)+(ro-2)*vint(n,:)+1;
else
rh(:)=vint(i-1,:)+(ro-2)*vint(i,:)+vint(i+1,:);
end
% solucion corrector
rh(1)=rh(1)+1;rh(n)=rh(n)+1;
v=id2nrh;
vnew(i,:)=v(:);
end
t=t+k;vold=vnew;
end
1.0000
0.9999
0.9999
0.9999
0.9999
0.9999
0.9999
1.0000
1.0000
0.9999
0.9999
0.9999
0.9999
0.9999
0.9999
1.0000
1.0000
0.9999
0.9999
0.9999
0.9999
0.9999
0.9999
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
154
7.10.2
Ejercicio
@u
circular, que tambin implica que
= 0:
@r r=0
La ecuacin que nos ocupa es
@u @ 2 u 1 @u
1 @2 u @2 u
= 2 +
+ 2 2 + 2
@t
@r
r @r
r @
@z
y por simetra circular, se convierte simplemente en
@u @ 2u 1 @u
= 2 +
:
@t
@r
r @r
Esta
ecuacin tiene una singularidad cuando r = 0: Pero como
@u
= 0; esta singularidad no ofrece dicultades pues, la expansin
@r r=0
1 @u
@u
=
en torno a r = 0; nos permite concluir que
de Taylor de
@r
r @r
r=0
@ 2 u
:
@r 2
r=0
Ms detalles sobre sto pueden encontrarse en Smith, 1978 [28], pag.
40.
155
@u
(t; 0) = u (t; 0)
@x
@u
(t; 1) = u (t; 1) :
@x
3. Resuelva el problema parablico no lineal
@u @ 2 u
= 2 u x2 u3 ;
@t
@x
con condiciones de borde homogneas y condicin inicial u (0; x) =
sen (x) :
4. Utilice el mtodo ADI para resolver el problema
@u
@ 2 u @ 2u
= 2 + 2
;
@t
@x
@y
para 0 < x < 2; 0 < y < 1; con
u (t; 0; y) = u (t; 2; y) = 0;
u (t; x; 0) = u (t; x; 1) = 0:
Sugerencia: La solucin exacta es
156
Material de inters
Referencias generales
LAPACK
Templates y otras colecciones de software
MATLAB y otros
8.1
Referencias generales
158
8. Material de inters
plataformas.
8.2 LAPACK
Entre las herramientas para problemas generales, destacamos a LA
PACK (Linear Algebra Package) que es una coleccin de subrutinas
escritas en FORTRAN 77 para resolver los problemas matemticos
ms comunes que surgen a partir del modelamiento y que se enmarcan
en el campo del lgebra lineal numrica. El desarrollo de LAPACK es
una tarea que se empez antes de 1980 y aun no termina. Al principio
hubo dos colecciones de software, LINPACK que se ocupaba principalmente de la solucin de sistemas lineales y de la descomposicin en
valores singulares y EISPACK, que se dedicaba a los problemas de va
lores propios. LAPACK es el sucesor de ambos y a LAPACK le siguen
otras colecciones, como ScaLAPACK, por ejemplo, de manera que el
esfuerzo por dotar a la comunidad de herramientas computacionales de
primer nivel y de dominio pblico, contina.
En Meja, Restrepo y Tretz [24], tuvimos la oportunidad de presen
tar a LAPACK a un pblico general y aqu reproducimos algunas de
las ideas que expusimos all. La coleccin LAPACK, descrita en LA
PACK Users Guide [2], se puede obtener libremente en NETLIB en la
direccin
< http : ==www:netlib:org=lapack= > :
All tambin se puede obtener la mejor documentacin disponible sobre
LAPACK, incluyendo la Gua mencionada arriba. Las subrutinas de
LAPACK se basan en llamadas a unas subrutinas ms sencillas que se
conocen por la sigla BLAS (Basic Linear Algebra Subprograms). Hasta
el momento se dispone de subprogramas BLAS de tres niveles: Nivel 1,
publicado en 1979, que se encarga de operaciones de vector con vector.
Nivel 2, publicado en 1988, que se ocupa de operaciones de matriz con
vector. Nivel 3, publicado en 1990, que se dedica a operaciones entre
matrices.
La construccin de LAPACK con base en los subprogramas BLAS
genera un alto nivel de estandarizacin, proporciona gran rapidez de
clculo y hace ms fcil hacer un seguimiento cuando se presentan
dicultades. La utilizacin de LAPACK es universal, no solo directa
159
8.3
160
8. Material de inters
Referencias
[1] M. Abramowitz and I. A. Stegun, eds., Handbook of Mathe
matical Functions, Dover, 1970.
[2] E. Anderson, Z. Bai, C. Bischof, J. Demmel, J. Don
garra, J. DuCroz, A. Greenbaum, S. Hammarling,
A. McKenney, S. Ostrouchov, and D. Sorensen, LAPACK
Users Guide, SIAM, 1992.
[3] U. M. Ascher, R. M. M. Mattheij, and R. D. Russell, Nu
merical Solution of Boundary Value Problems for Ordinary Dif
ferential Equations, SIAM, 1995.
[4] K. E. Atkinson, An Introduction to Numerical Analysis, Wiley,
1978.
[5] R. Barrett, M. Berry, T. Chan, J. Demmel, J. Donato,
J. Dongarra, V. Eijkhoui, R. Pozo, C. Romine, and
H. van der Vorst, Templates for the Solution of Linear Sys
tems: Building Blocks for Iterative Methods, SIAM, 1993.
[6] R. L. Burden and J. D. Faires, Anlisis Numrico, Interna
tional Thomson, sexta ed., 1998.
[7] S. C. Chapra and R. P. Canale, Mtodos Numricos para
Ingenieros, McGraw Hill, tercera ed., 1999.
[8] W. Cheney and D. Kincaid, Numerical Mathematics and Com
puting, Brooks/Cole Publishing Co., 1980.
[9] P. J. Davis and P. Rabinowitz, Methods of Numerical Inte
gration, Academic Press, segunda ed., 1984.
[10] J. W. Demmel, Applied Numerical Linear Algebra, SIAM, 1997.
162
Referencias
Referencias
163