nb 1
Apellidos y Nombre:
Por otra parte, algunos sistemas son muy sensibles a los errores de redondeo y el vector solución puede ser
bastante inexacto. En este caso se dice que el sistema es inestable o que está mal condicionado. En este tipo de
sistemas lo que suele ocurrir es que pequeños cambios en los coeficientes o en los términos independientes dan
y sirve para tener una medida del condicionamiento de una matriz. Dentro del mismo paquete <<LinearAlgebra´-
MatrixManipulations´, el comando MatrixConditionNumber permite obtener el número de condición de una
matriz. Por defecto proporciona la norma del máximo.
i
j
−1.63 y i −1.05 2.53 y
j 7.23 z j z
Ejemplo 1º.-
z j 0.56 −1.78 z
Sea el vector b = j
j
j
z
z
z
j
j
j
z
z
z
3.02
j z j z
k { k −0.54 1.47 {
, y la matriz : A = 4.33 . Hallar las tres normas vectoriales
A = {{3.02,-1.05,2.53},
{4.33,0.56,-1.78},{-0.83,-0.54,1.47}};MatrixForm[A]
Norm@b, ∞D
practica4sr.nb 2
Norm@b, 1D
‚ Abs@b@@iDDD
3
i=1
Norm@b, 2D
$%%%%%%%%%%%%%%%%
⁄ b@@iDD %%%%%%%%
3
2
i=1
Norm@AD
Max@Eigenvalues@A.Transpose@ADDD ^ .5
Norm@A, ∞D
Norm@A, 1D
Norm@Inverse@ADD
Norm@Inverse@AD, 1D
Norm@Inverse@AD, ∞D
<< LinearAlgebra`MatrixManipulation`
m = MatrixConditionNumber@AD
practica4sr.nb 3
LUDecomposition@AD
i
j
1 y
z
Ejemplo 2º.-
j
j 2 z
z
Sea el sistema A. x = b, siendo A y b la matriz y vector respectivamente del ejemplo anterior. Sea x = j j z
z
j z
k −1 {
la
i
j
0.88 y
j −2.34 z z
solución exacta y xè = jj
j
z
z
z
j z
k −2.66 {
la solución aproximada. Calcular el error relativo y el residuo relativo. compro-
bar que el error relativo está acotado superiormente por el producto del residuo relativo por el nº de condición de la
matriz, e inferiormente por el cociente del residuo relativo entre el nº de condición de la matriz.
errorel
m ∗ resirelat
resirelat ê m
errorel
El método de Jacobi
i
j
a11 a12 .. a1 n y i x1 y i b1 y
z
z j z j z
Sea el sistema :
j
j j x2 z j b2 z
j
j 21 a22 .. a2 n z z
z
j
j
j
z
z
z
j
j
j
z
z
z
j
j z
z j
j z
z j
j z
j
j .. .. .. .. z z j .. z j .. z
z
j z j z j z
j z j z
a
. =
k an1 an2 .. ann { k xn { k bn {
.Jbi − ‚ −‚ N
Para resolverlo mediante el método de Jacobi se implementa el siguiente proceso iterativo:
xHkL aij xHk−1L aij xHk−1L
i−1 n
i = 1
aii j j
j=1 k=i+1
El superíndice (k) correponde a la etapa de iteración.
i
j
4 −1 1 y
z i
j
7 y
z
Ejemplo 3º.
j
j z
z j
j −21 z
z
Consideremos el sistema de ecuaciones : A . x = b, siendo A = j j 4 −8 1 z z , y b = jj z
z
j z j z
k −2 −1 5 { k 15 {
. Realizar 5
j y
i z
j
j 2zz
iteraciones del mdo. de Jacobi partiendo de la aproximación inicial : x0 = j
j z .Calcular, en cada iteración, el
j z
1
z
k2{
error absoluto y relativo.
DoADoAxn@@iDD =
i
j y
z
j
j A@@i, kDD ∗ x0@@kDDz
z
j ‚ ‚ z ì A@@i, iDD,
i−1 3
k {
b@@iDD − A@@i, kDD ∗ x0@@kDD −
El método de Gauss-Seidel
i a11 a12 .. a1 n z
j y j y j
i x1 z y
i b1 z
Considerando el mismo sistema anterior:
j
j z
z j
j z
z j
j b2 z
z
j
j z
z j
j z
z j
j z
z
j
j z j
z j z z j j z
z
j
j z
z j z j z
j j z
z j z j j z z
a21 a 22 .. a 2 n x2
. =
k an1 an2 .. ann { k xn { k bn {
.. .. .. .. .. ..
.Jbi − ‚ −‚ N
Para resolverlo mediante el método de Gauss-Seidel se implementa el siguiente proceso iterativo:
xHkL aij xHkL aij xHk−1L
i−1 n
i = 1
aii j j
j=1 k=i+1
El superíndice (k) correponde a la etapa de iteración.
Ejemplo 4º.
Consideremos el sistema de ecuaciones del ejemplo anterior . Realizar 5 iteraciones del mdo. de Gauss-Seidel
partiendo de la misma aproximación inicial .Calcular el error absoluto y relativo.
DoADoAxn@@iDD =
i
j y
z
j
j z ì A@@i, iDD,
jb@@iDD − ‚ A@@i, kDD ∗ xn@@kDD − ‚ A@@i, kDD ∗ x0@@kDDz z
i−1 3
k {
8i, 3<E; Print@xnD; erabs = Norm@xn − x0D; errel = erabs ê Norm@xnD;
k=1 k=i+1
La condición necesaria y suficiente para que un método iterativo de resolución de sistemas lineales sea conver-
gente es que el radio espectral de la matriz de paso sea menor que la unidad. (Se recuerda que el radio espectral de
una matriz es igual al mayor de los valores popios de la matriz en módulo o valor absoluto) con Mathematica
resulta muy sencillo calcular el radio espectral de una matriz utilizando el comando Eigenvalues.
Sea el sistema :
practica4sr.nb 5
i a11 a12
j
.. a1 n y i x1 y
z j z j y
i b1 z i a11 a12
j
.. a1 n y
z
j
j .. a2 n z
z j
j x2 z
z j
j z
z j
j a21 a22 .. a2 n z
z
j
j z
z j
j z
z j
j z , siendo A = j z
j
j z.j z j z z j
j z
z.
j
j .. .. z z
z
j
j z
z j
j z
z j
j .. .. z z
j j z
z j z j z
j z j
j z
z
a21 a22 b2
=
k an1 an2 .. ann { k xn { k bn { k an1 an2 .. ann {
.. .. .. .. .. ..
i
j
a11 0 .. 0 y
z i
j
.. 0 y
z
Definamos las matrices :
j
j z
z j
j .. 0 zz
j 0 a22 .. 0 z j −a21 z
D= j z , L=j z
0 0
j
j z
z j
j z
j
j
j
z
z
z
j
j
j .. .. z
z
z
z
0
j z j z
y
i
j
0 −a12 .. −a1 n y
z
j
j .. −a2 n z
z
j
j z
z
U=j j z
z
j
j z
z
j z
0 0
j z
.
k0 0 {
.. .. .. ..
0 ..
Entonces la matriz de paso del método de Jacobi es :
T j = D-1 .HL + UL
TG = HD - LL-1 .U
y la del método de Gauss-Seidel :
Ejemplo 5º.
Calcular las matrices de paso de los métodos de Jacobi y Gauss-Seidel de los ejemplos anteriores,y sus respectivos
radios espectrales,comprobando que son menores que la unidad.
Max@Abs@Eigenvalues@TjDDD
Max@Abs@Eigenvalues@TgDDD
practica4sr.nb 6
i f1HPk L zy
1º.- Evaluar F(Pk ) = jj
aproximación de la solución correspondiente a la etapa k. Los pasos correspondientes a la siguiente etapa son:
z.
k f2HPk L {
2º.- Calcular la matriz jacobiana en Pk , J(Pk ).
3º.- Resolver el sistema lineal : J(Pk ).Dp = - F( J(Pk ).)
4º.- Calcular la siguiente aproximación : Pk+1 = Pk + Dp .
Ejemplo 6º :
Sea el sistema :
9 2
x2 - y = 0.2
,
y - x = 0.3
Representar gráficamente para obtener la aproximación inicial correspondiente a la raiz del primer cuadrante, y
calcular 3 iteraciones del método de Newton .
<< Graphics`ImplicitPlot`
Show@graf1, graf2D
jacob@x_, y_D = 88∂x f@x, yD, ∂y f@x, yD<, 8∂x g@x, yD, ∂y g@x, yD<<;
indep@x_, y_D = 8−f@x, yD, −g@x, yD<;
à El comando FindRoot
Como en el caso de una sola ec. no lineal, el comando FindRoot nos permite obtener una solución numérica
(aproximada) de un sistema de ecuaciones no lineales partiendo de una aproximación inicial. Una de sus ociones
nos permite especificar el nº máximo de iteraciones a realizar. Si se alcanza el nº máximo de iteraciones sin haber
obtenido la solución el comando FindRoot nos devuelve la aproximación calculada en la última etapa que se puede
utilizar como aproximación inicial de un nuevo comando FindRoot.
Es conveniente realizar una representación gráfica, cuando sea posible, para obtener una buena aproximación
inicial.
El comando FindRoot puede resolver ec. no lineales en variable compleja. Para ello solo es preciso incluir la
unidad imaginaria I en la aproximación inicial. Por ejemplo:
Ejercicios
1º.- El sistema lineal :
0.04 x1 + 0.01 x2 - 0.01 x3 = 0.06
0.20 x1 + 0.50 x2 - 0.20 x3 = 0.30
tiene como solución exacta xe = 81.827586, 0.6551724, 1.965517< y como solución aproximada xa =
x1 + 2 x2 + 4 x3 = 11
mat = 88.04, .01, −.01<, 8.2, .5, −.2<, 81, 2, 4<<; b = 8.06, .3, 11<;
xe = 81.827586, 0.6551724, 1.965517<; xa = 81.8, .64, 1.9<;
practica4sr.nb 8
i
j
−1 11 −1 3 y i x y i 25 y
z j j z i
j
0y
z
z
2º.- Resolver el sistema :
j
j z
z j
j z
z j
j z
z j
j 0zz
j
j 2 −1 10 −1 z z j
j yzz j
j −11 z
z j
j z
z
j
j z
z j
j z
z j
j z
z j
j z
z
j
j z
z j
j z
z j
j z
z j
j z
z
j
j z j z j
z j z
z j z
j z
. = , partiendo de la aproximación inicial x0= y
k 0 3 −1 8 { k t { k 15 { k0{
10 −1 2 0 z 6 0
utilizando el método de Jacobi , con un error absoluto menor que 10-3 y fijando un número máximo de iteraciones
Nmax = 20.
mat = 88−1, 11, −1, 3<, 82, −1, 10, −1<, 810., −1, 2, 0<, 80, 3, −1, 8<<;
ind = 825, −11, 6, 15<; x0 = 80, 0, 0, 0<; eps = .001; Nmax = 20; n = 4;
i
j
0 y ixy i1y
zj z j z
3º.-Dado el siguiente sistema :
j 0 z j j 0z
j
j z
z j
j yzz
z j
j z
z
−2 1
j z j z j z
0
j
j z
z j
j z
z j
j z
z
j
j z
z j z j
j z
j zj j z z j j z z
1 −2 1
j z z
. =
k 0 1 −2 { k t { k 0 {
0 1 −2 1 z 0
i
j
0.7 y
z
j 0.5 z
0
j
j z
z
j
j
Realizar 4 etapas del método de Gauss-Seidel partiendo de la aproximación inicial : j z
z
j z
z
j
j z
z
j z
. Comprobar la
k 0.1 {
0.3
En lugar de trabajar con la matriz, introducimos las ecuaciones directamente (se ahorra espacio de memoria)
i
j
0 y
z
j
j z
j 0 zz
−2 1 0
j
mat = j z
z
j
j z;
j 1 −2 1 zz
−2
j z
1 1
j z
k 0 1 −2 {
0
0
4º- Resolver el siguiente sistema mediante los métodos de Jacobi y Gauss-Seidel para n=10, 50 y 100. Obtener las
soluciones con un error menor que 10-3 utilizando la norma del máximo. Comparar el nº de iteraciones requeridos
por cada método.
practica4sr.nb 9
i y i
j y
z
i
j 0 yz j 1
j z
z j
j z
z
j
j z j
z j z
z j
j z
z
1
j j z
0 z j z j z
x
j z j z j z
− 1
j − 12 z j z
1 0 0 . . 2
j
j z
z j z j
j z
z
z j z
2
j j z j z
x2
j z
0
j
j 0 0 zz j
j z
z j
j z
z
−
j z
1
j z j z
1 0 . .
j
j z
z j
j z
z j z
x3
j z
2 0
j
j z
z j
j z
z j
j z
z
j
j . zz j z j z
− −
z j z
1 1
j z
1 0 . .
j z j z j z
.
j j z j z
2 2
j
j . zz j z j z
z j z j z
=
j z j z
. .
j j z j z
. . . . . . .
j
j 1 z
z j
j z
z j
j z
z
j
j −2 zz j
j z
z j
j z
z
.
j z j z
. . . . . . .
j
j z j
z j
j
z
z
z j
j
j
z
z
z
1 { j z j z
− 12 .
j z
0 . . 0 1 .
k 0 k xn { k {
xn−1 0
. . . 0 − 1
2
0
5º.- Resolver el siguiente sistema no lineal primero utilizando el método de Newton y a continuación con el
comando FindRoot:
10 p-3
e-xy + 20 z + ÅÅÅÅÅÅÅÅ
ÅÅÅÅÅÅÅÅÅ = 0
Tomar como aproximación inicial x1H0L = 0.1, x2H0L = 0.1 y x3H0L = - 0.1
3