Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DIFERENCIALES ORDINARIAS I
TAREA 2
Christian Contreras
1
Problema 1: Consideren el problema
⎧
⎪
⎪
⎪u”(x) - 3u’(x) + 2u(x)=0, 0 < x < 1
⎨
⎪
⎪
⎪𝑢(0) = 1, 𝑢(1) = 3
⎩
𝑟 2 𝑒 𝑟 𝑥 − 3𝑟𝑒 𝑟 𝑥 + 2𝑒 𝑟 𝑥 = 0
(𝑟 2 − 3𝑟 + 2)𝑒 𝑟 𝑥 = 0
𝑢(0) = 𝐶1 𝑒 2⋅0 + 𝐶2 𝑒 0 = 1 ⇒ 𝐶1 + 𝐶2 = 1
𝑢(1) = 𝐶1 𝑒 2⋅1 + 𝐶2 𝑒 1 = 3 ⇒ 𝑒 2 𝐶1 + 𝑒𝐶2 = 3
⎧
⎪
⎪
⎪C1 + 𝐶2 = 1
⎨
⎪
⎪
⎪ 𝑒 2 𝐶 + 𝑒𝐶2 = 3
⎩ 1
2
(b) Resuelve el sistema usando los métodos vistos en clase. Invierte la matriz
tridiagonal usando el método de Thomas. Usa 100 puntos en la malla. Explica
tu procedimiento y describe lo observado.
1 1
Como se nos indica que se tomen 100 puntos, entonces ℎ = = . Entonces
𝑚+1 100 + 1
1
ℎ= , 𝑢(0) = 𝛼 = 1, 𝑢(1) = 𝛽 = 3
101
⎛1 3⎞ ⎛ 2 ⎞ ⎛1 3⎞
⎜ + ⎟𝑢𝑖−1 + ⎜− + 2⎟𝑢𝑖 + ⎜ − ⎟𝑢𝑖+1 = 0
⎜ ℎ2 2ℎ⎟ ⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
Casos particulares:
𝑖=1
(2 + 3ℎ)𝑢0 + (4ℎ2 − 4)𝑢1 + (2 − 3ℎ)𝑢2 = 0
2
(4ℎ − 4)𝑢1 + (2 − 3ℎ)𝑢2 = −(2 + 3ℎ)(1)
2
(4ℎ − 4)𝑢1 + (2 − 3ℎ)𝑢2 = −(2 + 3ℎ)
𝑖=𝑚
(2 + 3ℎ)𝑢𝑚−1 + (4ℎ2 − 4)𝑢𝑚 + (2 − 3ℎ)𝑢𝑚+1 = 0
(2 + 3ℎ)𝑢𝑚−1 + (4ℎ2 − 4)𝑢𝑚 = −(2 − 3ℎ)(3)
(2 + 3ℎ)𝑢𝑚−1 + (4ℎ2 − 4)𝑢𝑚 = (9ℎ − 6)
𝐴𝑈 = 𝐹
3
⎡4ℎ2 − 4 2 − 3ℎ 0 0 ⋯ 0 ⎤
⎢ ⎥
⎢ 2 + 3ℎ 4ℎ2 − 4 2 − 3ℎ 0 ⋯ 0 ⎥
⎢ ⎥
⎢ 0 2
2 + 3ℎ 4ℎ − 4 2 − 3ℎ ⋯ 0 ⎥
A = ⎢ ⎥,
⎢ ⋮ ⋮ ⋱ ⋱ ⋱ 0 ⎥
⎢ ⎥
⎢ 0 0 ⋯ 2 + 3ℎ 4ℎ − 4 2 − 3ℎ ⎥⎥
2
⎢
⎢ 0 0 ⋯ 0 2 + 3ℎ 4ℎ2 − 4⎥⎦
⎣
⎡ 𝑢1 ⎤ ⎡−(2 + 3ℎ)⎤
⎢ ⎥ ⎢ ⎥
⎢ 𝑢2 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥
⎢ 𝑢3 ⎥ ⎢ 0 ⎥
U = ⎢ ⎥ ,F = ⎢ ⎥
⎢ ⋮ ⎥ ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥
⎢𝑢 ⎥ ⎢ 0 ⎥
⎢ 𝑚−1 ⎥ ⎢ ⎥
⎢𝑢 ⎥ ⎢ (9ℎ − 6) ⎥
⎣ 𝑚⎦ ⎣ ⎦
De manera matricial:
⎡4ℎ2 − 4 2 − 3ℎ 0 0 ⋯ 0 ⎤ ⎡ 𝑢1 ⎤ ⎡−(2 + 3ℎ)⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 2 + 3ℎ 4ℎ2 − 4 2 − 3ℎ 0 ⋯ 0 ⎥ ⎢ 𝑢2 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 2
2 + 3ℎ 4ℎ − 4 2 − 3ℎ ⋯ 0 ⎥ ⎢ 𝑢3 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥ = ⎢ ⎥
⎢ ⋮ ⋮ ⋱ ⋱ ⋱ 0 ⎥ ⎢ ⋮ ⎥ ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 0 ⋯ 2 + 3ℎ 4ℎ − 4 2 − 3ℎ ⎥⎥
2 ⎢𝑢 ⎥ ⎢ 0 ⎥
⎢ ⎢ 𝑚−1 ⎥ ⎢ ⎥
⎢ 0 0 ⋯ 0 2 + 3ℎ 4ℎ2 − 4⎥⎦ ⎢𝑢 ⎥ ⎢ (9ℎ − 6) ⎥
⎣ ⎣ 𝑚⎦ ⎣ ⎦
1
Con 𝑖 = 1, 2, 3, … , 100. ℎ = . Se procederá a resolver el problema con el algoritmo de
101
Thomas:
clc
% Datos iniciales del problema
n =100;
h =1/( n +1);
u0 =1;
un =3;
4
b= ones (n ,1)*(4* h ^2 -4);
c= ones (n ,1)*(2 -3* h );
d= zeros (n ,1);
d (1)= - u0 *( a (1));
d(n )= - un *( c ( n ));
% Graficos
% plot (x , y )
plot (x , error )
hold on , grid on
% plot (x , solNumerica )
xlabel ( 'x ')
ylabel ( ' Error =| Real - Aproximado | ')
% legend ( ' Sol . exacta ' ,' Sol . aproximada ')
5
for n = 2:1: N
temp = b ( n ) - a ( n ) * c(n - 1);
if (n < N )
c ( n ) = c ( n ) / temp ;
end
d ( n ) = ( d ( n ) - a ( n ) * d(n - 1)) / temp ;
end
Para graficar el resultado del método aplicado, se debe tomar el vector 𝑥 y los valores
determinados por la función. Si se grafica también la solución exacta, se puede notar
que se superponen debido a la cantidad de puntos utilizada en el desarrollo.
6
(c) Compara la solución exacta y la numérica mostrando una gráfica de la difer-
encia. Explica tu procedimiento y describe lo observado.
Con los resultados obtenidos, se puede concluir que la gráfica desarrollada con el método
de Thomas tiene una buena aproximación a la gráfica real. Sin embargo, para poder
establecer mejor la cercanía entre los resultados, es necesario observar la gráfica de la
diferencia entre los valores reales y los calculados por el algoritmo.
7
Como se puede observar, el error máximo es menor a 1.5 ⋅ 10−5 y se da cuando 𝑥 ≈ 0.67.
Es importante resaltar que el error de truncamiento local se lo puede estimar por:
1
𝜏𝑖 = ⋅ ℎ2 𝑢 𝐼 𝑉 (𝑥𝑗 ), mientras que el error global para el sistema matricial viene dado por
12
||𝐸 ℎ || ≤ 𝑐 ⋅ ||𝜏 ℎ ||, donde ||(𝐴ℎ )−1 || ≤ 𝑐. Es decir que, 𝐸 ℎ se va a cero al menos tan rápido
como 𝜏 ℎ .
1
En este caso particular, el orden del error local es 2 y dado que ℎ = ≈ 0.0099, entonces
101
𝜏𝑖 ≈ 0.000008167 ⋅ 𝑢 𝐼 𝑉 (𝑥𝑗 ) = 8.1675 ⋅ 10−6 ⋅ 𝑢 𝐼 𝑉 (𝑥𝑗 ).
1
2𝑥 2 𝑥
Dado que la solución es 𝑢(𝑥) = ((3 − 𝑒) 𝑒 + (𝑒 − 3) 𝑒 ). Su cuarta derivada es:
𝑒2 − 𝑒
1
𝑢 𝐼 𝑉 (𝑥) = 2𝑥 2 𝑥
(16(3 − 𝑒)𝑒 + (𝑒 − 3)𝑒 )
𝑒2 − 𝑒
Al evaluar la cuarta derivada en 𝑥 = 0.68 y usarla para determinar 𝜏𝑖 se tiene que
𝜏𝑖 ≈ 4.58 ⋅ 10−5 , con lo cual se verifica que el error es menor que su cota en ese punto.
8
Problema 2: Consideren el problema
⎧
⎪
⎪ ′ ′
⎪(𝜅(𝑥)𝑢 (𝑥)) = 𝑓 (𝑥), 𝑎 < 𝑥 < 𝑏
⎨
⎪
⎪
⎪ 𝑢(𝑎) = 𝛼, 𝑢(𝑏) = 𝛽
⎩
donde 𝑎 = −1, 𝛼 = 0, 𝑏 = 1, 𝛽 = 1, 𝜅(𝑥) = 1 + 𝑥 2 , 𝑓 (𝑥) = 1 − 𝑥 2 .
Resuelve el sistema usando los métodos vistos en clase. Invierte la matriz tridi-
agonal usando el método de Thomas. Usa 100 puntos en la malla.
𝑢𝑖+1 − 𝑢𝑖−1
𝜅(𝑥𝑖+1/2 )𝑢 ′ (𝑥𝑖+1/2 ) = 𝜅(𝑥𝑖+1/2 )
ℎ
1 1 ⎡ 𝑢𝑖+1 − 𝑢𝑖 𝑢𝑖 − 𝑢𝑖−1 ⎤
′ ′ ′ ′ ⎢
⇒ (𝜅𝑢 ) (𝑥𝑖 ) ≈ [𝜅𝑖+1/2 𝑢𝑖+1/2 − 𝜅1𝑖−1/2 𝑢𝑖−1/2 ] = 𝜅𝑖+1/2 − 𝜅𝑖−1/2 ⎥
ℎ ℎ⎢ ℎ ℎ ⎥
⎣ ⎦
1
(𝜅𝑢 ′ )′ (𝑥𝑖 ) ≈ 2 [𝜅𝑖−1/2 𝑢𝑖−1 − (𝜅𝑖−1/2 + 𝜅𝑖+1/2 )𝑢𝑖 + 𝜅𝑖+1/2 𝑢𝑖+1 ]
ℎ
Se debe tener en cuenta que:
𝑥0 = −1, 𝑢0 = 0, 𝑢𝑚+1 = 1,
1 − (−1) 2
h= =
101 101
⎛ 1 ⎞
𝜅1/2 ⎜
= 𝜅(𝑥1/2 ) = 𝜅(𝑥0+ℎ/2 ) = 𝜅 −1 + ⎟
⎜ 101⎟
⎝ ⎠
Casos particulares:
𝑖=1
1
[𝜅1/2 𝑢0 − (𝜅1/2 + 𝜅3/2 )𝑢1 + 𝜅3/2 𝑢2 ] = 𝑓 (𝑥1 )
ℎ2
1 1
2
[−(𝜅1/2 + 𝜅3/2 )𝑢1 + 𝜅3/2 𝑢2 ] = 𝑓 (𝑥1 ) − 𝜅1/2 𝑢0
ℎ ℎ2
1
[−(𝜅1/2 + 𝜅3/2 )𝑢1 + 𝜅3/2 𝑢2 ] = 𝑓 (𝑥1 )
ℎ2
9
𝑖=𝑚
1
[𝜅𝑚−1/2 𝑢𝑚−1 − (𝜅𝑚−1/2 + 𝜅𝑚+1/2 )𝑢𝑚 + 𝜅𝑚+1/2 𝑢𝑚+1 ] = 𝑓 (𝑥𝑚 )
ℎ2
1 1
[𝜅 𝑢
𝑚−1/2 𝑚−1 − (𝜅 𝑚−1/2 + 𝜅 )𝑢
𝑚+1/2 𝑚 ] = 𝑓 (𝑥 𝑚 ) − 𝜅𝑚+1/2 𝑢𝑚+1
ℎ2 ℎ2
1 1
[𝜅 𝑢
𝑚−1/2 𝑚−1 − (𝜅 𝑚−1/2 + 𝜅 )𝑢
𝑚+1/2 𝑚 ] = 𝑓 (𝑥 𝑚 ) − 𝜅𝑚+1/2
ℎ2 ℎ2
𝐴𝑈 = 𝐹
A =
⎡−(𝜅1/2 + 𝜅3/2 ) 𝜅3/2 0 0 ⋯ 0 ⎤
⎢ ⎥
⎢ 𝜅3/2 −(𝜅3/2 + 𝜅5/2 ) 𝜅5/2 0 ⋯ 0 ⎥
⎢ ⎥
1⎢ 0 𝜅5/2 −(𝜅5/2 + 𝜅7/2 ) 𝜅7/2 ⋯ 0 ⎥
⎢ ⎥
ℎ2 ⎢ ⋮ ⋮ ⋱ ⋱ ⋱ 0 ⎥
⎢ ⎥
⎢ 0 0 ⋯ 𝜅𝑚−3/2 −(𝜅𝑚−3/2 + 𝜅𝑚−1/2 ) 𝜅𝑚−1/2 ⎥
⎢ ⎥
⎢ 0 0 ⋯ 0 𝜅𝑚−1/2 −(𝜅𝑚−1/2 + 𝜅𝑚+1/2 )⎥⎦
⎣
⎡ 𝑢1 ⎤ ⎡ 𝑓 (𝑥1 ) ⎤
⎢ ⎥ ⎢ ⎥
⎢ 𝑢2 ⎥ ⎢ 𝑓 (𝑥2 ) ⎥
⎢ ⎥ ⎢ ⎥
⎢ 𝑢3 ⎥ ⎢ 𝑓 (𝑥 3 ) ⎥
⎢ ⎥
U = ⎢ ⎥,F = ⎢
⋮ ⎥
⎢ ⋮ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢𝑢 ⎥ 𝑓 (𝑥𝑚−1 )
⎢ 𝑚−1
⎥ ⎢ ⎥
⎢𝑢 ⎥ ⎢ 1 ⎥
⎣ 𝑚 ⎦ ⎢𝑓 (𝑥 ) − 𝜅 ⎥
⎣ 𝑚 ℎ2 𝑚+1/2 ⎦
De manera matricial:
⎡ 10002 4951.2 0 0 ⋯ 0 ⎤ ⎡ 𝑢1 ⎤ ⎡ 0.0392 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢4951.2 9805 4854.2 0 ⋯ 0 ⎥ ⎢ 𝑢2 ⎥ ⎢ 0.0776 ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 4854.2 9616 4759.2 ⋯ 0 ⎥ ⎢ 𝑢 ⎥ ⎢ 0.1153 ⎥
⎢ ⎥ ⎢ 3 ⎥ = ⎢ ⎥
⎢ ⋮ ⋮ ⋱ ⋱ ⋱ 0 ⎥ ⎢ ⋮ ⎥ ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ 0 0 ⋯ ⎥ ⎢
4854.2 9805 4951.2⎥ ⎢𝑢𝑚−1 ⎥ ⎥ ⎢ ⎥
⎢ ⎢ 0.0776 ⎥
⎢ 0 0 ⋯ 0 4951.2 10002 ⎥⎦ ⎢⎣ 𝑢𝑚 ⎥⎦ ⎢−5050.2⎥
⎣ ⎣ ⎦
10
El sistema se resolvió con el algoritmo de Thomas. El gráfico resultante es:
clc
% Datos iniciales del problema
n =100;
inicio = -1;
fin =1;
h =( fin - inicio )/( n +1);
u0 =0;
um =1;
% D e c l a r a c i n del vector x
x= linspace ( -1 ,1 , n +2);
% I n i c i a l i z a c i n de los vectores a ,b ,c ,d
a= zeros (n ,1);
b= zeros (n ,1);
c= zeros (n ,1);
d= zeros (n ,1);
% D e c l a r a c i n de los valores de cada vector
for j =2: n +1
xi = x ( j ) - h /2;
11
xd = x ( j )+ h /2;
ki =1+ xi ^2;
kd =1+ xd ^2;
fxj =1 - x ( j )^2;
a (j -1)= ki / h ^2;
b (j -1)= -( ki + kd )/ h ^2;
c (j -1)= kd / h ^2;
d (j -1)= fxj ;
end
% Valores inicial y de frontera , se debe corregir para
% tener bien planteado los valores del vector "d"
fx1 =1 - x (2)^2;
fxm =1 - x ( end -1)^2;
d (1)= fx1 -( a (1)* u0 )/ h ^2;
d( end )= fxm -( c ( end )* um );
% Completar los valores de la matriz aumentada
for j =2: n -1
% d ( j )=1 -( x ( j +1))^2;
end
% Llamado de la f u n c i n del M t o d o de Thomas
solNumerica =[ u0 TDMAsolver1 (a ,b ,c ,d) um ];
%Gr ficos
plot (x , solNumerica )
xlabel ( 'x ')
ylabel ( ' S o l u c i n ␣ N u m r i c a ')
hold on
grid on
12
%d is the right vector
% N is the number of rows
N = length ( d );
% Modify the first - row coefficients
c (1) = c (1) / b (1); % Division by zero risk .
d (1) = d (1) / b (1);
for n = 2:1: N
temp = b ( n ) - a ( n ) * c(n - 1);
if (n < N )
c ( n ) = c ( n ) / temp ;
end
d ( n ) = ( d ( n ) - a ( n ) * d(n - 1)) / temp ;
end
% Now back substitute .
x(N) = d ( N );
for n = ( N - 1): -1:1
x ( n ) = d ( n ) - c ( n ) * x(n + 1);
end
end
Otra alternativa para resolver el mismo problema sería, escribir la ecuación diferencial
como:
𝜅𝑖 𝜅𝑖′
(𝑢 − 2𝑢𝑖 + 𝑢𝑖+1 ) +
2 𝑖−1
(𝑢𝑖−1 − 𝑢𝑖+1 ) = 𝑓 (𝑥𝑖 )
ℎ 2ℎ
⎛ 𝜅𝑖 𝜅𝑖′ ⎞ ⎛ 𝑘𝑖 ⎞ ⎛ 𝜅𝑖 𝜅𝑖′ ⎞
⎜ − ⎟𝑢𝑖−1 + ⎜−2 ⎟𝑢𝑖 + ⎜ + ⎟𝑢𝑖+1 = 𝑓 (𝑥𝑖 )
⎜ ℎ2 2ℎ⎟ ⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
1 ⎛ ⎛ 𝜅 ′⎞ ⎛ 𝜅 ′⎞ ⎞
⎜⎜𝜅𝑖 − ℎ 𝑖 ⎟𝑢𝑖−1 − 2𝑘𝑖 𝑢𝑖 + ⎜𝜅𝑖 + ℎ 𝑖 ⎟𝑢𝑖+1 ⎟ = 𝑓 (𝑥𝑖 )
ℎ2 ⎜ ⎜ 2⎟ ⎜ 2⎟ ⎟
⎝⎝ ⎠ ⎝ ⎠ ⎠
13
Se presentan dos casos particulares:
𝑖=1
⎛ 𝜅1 𝜅1′ ⎞ ⎛ 𝑘1 ⎞ ⎛ 𝜅1 𝜅 ′ ⎞
⎜ − ⎟𝑢0 + ⎜−2 ⎟𝑢1 + ⎜ + 1 ⎟𝑢2 = 𝑓 (𝑥1 )
⎜ ℎ2 2ℎ⎟ ⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 𝑘1 ⎞ ⎛ 𝜅1 𝜅 ⎞′ ⎛ 𝜅1 𝜅 ′ ⎞
⎜−2 ⎟𝑢1 + ⎜ + 1 ⎟𝑢2 = 𝑓 (𝑥1 ) − ⎜ − 1 ⎟𝑢0
⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ⎟ ⎜ ℎ2 2ℎ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
1 ⎛ ⎛ 𝜅 ′⎞ ⎞
1 ⎛ 𝜅′ ⎞
⎜−2𝑘1 𝑢1 + ⎜𝜅1 + ℎ 1 ⎟𝑢2 ⎟ = 𝑓 (𝑥1 ) − ⎜𝜅1 − ℎ 1 ⎟𝑢0
ℎ2 ⎜ ⎜ 2⎟ ⎟ ℎ2 ⎜ 2⎟
⎝ ⎝ ⎠ ⎠ ⎝ ⎠
𝑖=𝑚
⎛ 𝜅𝑚 𝜅𝑚′ ⎞ ⎛ 𝑘𝑚 ⎞ ⎛ 𝜅𝑚 𝜅 ′ ⎞
⎜ − ⎟𝑢𝑚−1 + ⎜−2 ⎟𝑢𝑚 + ⎜ + 𝑚 ⎟𝑢𝑚+1 = 𝑓 (𝑥𝑚 )
⎜ ℎ2 2ℎ ⎟ ⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
⎛ 𝜅𝑚 𝜅𝑚′ ⎞ ⎛ 𝑘𝑚 ⎞ ⎛ 𝜅𝑚 𝜅𝑚′ ⎞
⎜ − ⎟𝑢𝑚−1 + ⎜−2 ⎟𝑢𝑚 = 𝑓 (𝑥𝑚 ) − ⎜ + ⎟𝑢𝑚+1
⎜ ℎ2 2ℎ ⎟ ⎜ ℎ2 ⎟ ⎜ ℎ2 2ℎ ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠
1 ⎛ ⎛ 𝜅 ′ ⎞ ⎞ 1 ⎛ 𝜅′ ⎞
⎜⎜𝜅𝑚 − ℎ 𝑚 ⎟𝑢𝑚−1 − 2𝑘𝑚 𝑢𝑚 ⎟ = 𝑓 (𝑥𝑚 ) − ⎜𝜅𝑚 + ℎ 𝑚 ⎟𝑢𝑚+1
ℎ2 ⎜ ⎜ 2⎟ ⎟ ℎ2 ⎜ 2⎟
⎝⎝ ⎠ ⎠ ⎝ ⎠
Por lo tanto, el sistema matricial tendría la forma:
𝐴𝑈 = 𝐹
A =
⎡ ⎛ ℎ𝜅 ′ ⎞ ⎤
⎢ −2𝜅
1
⎜𝜅1 + 1 ⎟ 0 0 ⋯ 0 ⎥
⎢ ⎜ 2 ⎟ ⎥
⎢ ⎝ ⎠ ⎥
⎢⎛ ⎥
⎢⎜ ℎ𝜅2′ ⎞ ⎛ ℎ𝜅 ′ ⎞ ⎥
⎟ ⎜𝜅2 + 2 ⎟
⎢⎜𝜅2 − 2 ⎟ −2𝜅2
⎜ 2 ⎟
0 ⋯ 0 ⎥
⎢⎝ ⎠ ⎝ ⎠ ⎥
⎢ ⎥
⎢ ⎛ ℎ𝜅 ′ ⎞ ⎛ ℎ𝜅 ′ ⎞ ⎥
1⎢ 0 ⎜𝜅3 − 3 ⎟ −2𝜅3 ⎜𝜅3 + 3 ⎟ ⋯ 0 ⎥
⎢ ⎜ 2 ⎟ ⎜ 2 ⎟ ⎥
ℎ2 ⎢ ⎝ ⎠ ⎝ ⎠ ⎥
⎢ ⋮ ⋮ ⋱ ⋱ ⋱ 0 ⎥
⎢ ⎥
⎢ ⎛ ℎ𝜅 ′ ⎞ ⎛ ′ ⎞
ℎ𝜅𝑚−1 ⎥
⎢ 0 0 ⋯ ⎜𝜅𝑚−1 − 𝑚−1 ⎟ −2𝜅𝑚−1 ⎜𝜅𝑚−1 + ⎟⎥
⎢ ⎜ 2 ⎟ ⎜ 2 ⎟⎥
⎢ ⎝ ⎠ ⎝ ⎠⎥
⎢ ⎛ ℎ𝜅 ′ ⎞ ⎥
⎢ 0 0 ⋯ 0 ⎜𝜅𝑚 − 𝑚 ⎟ −2𝜅𝑚 ⎥
⎢ ⎜ 2 ⎟ ⎥
⎣ ⎝ ⎠ ⎦
14
⎡ ⎤
⎢ 1⎛ 𝜅1′ ⎞ ⎥
⎢ 𝑓 (𝑥1 ) − 2 ⎜𝜅1 − ℎ ⎟𝑢0 ⎥
⎡ 𝑢1 ⎤ ⎢ ℎ⎜ 2⎟ ⎥
⎢ ⎥ ⎢ ⎝ ⎠ ⎥
⎢ 𝑢2 ⎥ ⎢ 𝑓 (𝑥2 ) ⎥
⎢ ⎥ ⎢ ⎥
⎢ 𝑢3 ⎥ ⎢ 𝑓 (𝑥3 ) ⎥
U = ⎢ ⎥,F = ⎢ ⎥
⎢ ⋮ ⎥ ⎢ ⋮ ⎥
⎢ ⎥ ⎢ ⎥
⎢𝑢 ⎥ 𝑓 (𝑥
𝑚−1 ⎢ 𝑚−1 ) ⎥
⎢ ⎥ ⎢ ⎥
⎢𝑢 ⎥ ⎢ 1 ⎛ 𝜅 ′ ⎞
⎥
⎣ 𝑚 ⎦ 𝑚
⎢𝑓 (𝑥𝑚 ) − 2 ⎜𝜅𝑚 + ℎ ⎟𝑢𝑚+1 ⎥
⎢ ℎ⎜ 2⎟ ⎥
⎣ ⎝ ⎠ ⎦
Se debe recordar que 𝑢0 = 0 y que 𝑢𝑚+1 = 1. Entonces:
⎡ 𝑓 (𝑥1 ) ⎤
⎢ ⎥
⎢ 𝑓 (𝑥2 ) ⎥
⎢ ⎥
⎢ 𝑓 (𝑥3 ) ⎥
⎢ ⎥
⎢ ⋮ ⎥
⎢ ⎥
⎢ 𝑓 (𝑥𝑚−1 ) ⎥
⎢ ⎥
⎢ 1 ⎛ 𝜅 ′ ⎞⎥
⎢𝑓 (𝑥 ) − ⎜𝜅 + ℎ 𝑚 ⎟⎥
𝑚 𝑚
⎢ ℎ2 ⎜ 2 ⎟⎥
⎣ ⎝ ⎠⎦
El código implementado se muestra a continuación:
clc
% Datos iniciales del problema
n =100;
inicio = -1;
fin =1;
h =( fin - inicio )/( n +1);
u0 =0;
um =1;
% D e c l a r a c i n del vector x
x= linspace ( -1 ,1 , n +2);
% I n i c i a l i z a c i n de los vectores a ,b ,c ,d
15
a= zeros (n ,1);
b= zeros (n ,1);
c= zeros (n ,1);
d= zeros (n ,1);
for j =2: n +1
x (j -1);
x ( j );
x ( j +1);
16
%Gr ficos
plot (x , solNumerica )
xlabel ( 'x ')
ylabel ( ' S o l u c i n ␣ N u m r i c a ')
hold on
grid on
for n = 2:1: N
temp = b ( n ) - a ( n ) * c(n - 1);
if (n < N )
c ( n ) = c ( n ) / temp ;
end
d ( n ) = ( d ( n ) - a ( n ) * d(n - 1)) / temp ;
end
17
end
18