Sunteți pe pagina 1din 9

Prctica 4: RESOLUCIN DE SISTEMAS

LINEALES. METODOS ITERATIVOS.

Normas vectoriales y normas matriciales. Nmero de condicin


de una matriz.
Cuando se construye una sucesin de vectores aproximacin de la solucin de un sistema lineal, para estudiar la
convergencia interesa medir la distancia entre las dos ltimas aproximaciones, y para medir esta distancia es
necesario utilizar el concepto de norma de un vector . Tanto en el estudio del condicionamiento de un sistema de
ecuaciones lineales cuando se resuelve mediante mtodos directos, como en el estudio de la convergencia de los
mtodos iterativos para la resolucin de sistemas lineales, es necesario el concepto de norma de una matriz.En la
versin 4 de Mathematica, dentro del paquete <<LinearAlgebraMatrixManipulations, los comandos Vector-
Norm y MatrixNorm permiten obtener normas vectoriales y matriciales.El comando VectorNorm requiere que el
argumento sea un vector de nmeros aproximados (con . decimal o dados por N[]). En la versin 5 de Mathemat-
ica no es necesario cargar ningn paquete. El comando Norm proporciona, por defecto, la norma eucldea de un
vector o de una matriz.

Por otra parte, algunos sistemas son muy sensibles a los errores de redondeo y el vector solucin 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 pequeos cambios en los coeficientes o en los trminos independientes dan

K(A) = A . A-1
lugar a cambios apreciables en la solucin. El nmero de condicin de una matriz A se define como :

y sirve para tener una medida del condicionamiento de una matriz. Dentro del mismo paquete <<LinearAlgebra-
MatrixManipulations, el comando MatrixConditionNumber permite obtener el nmero de condicin de una
matriz. Por defecto proporciona la norma del mximo.

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

de b: b1 , b2 y b . Idem para la matriz A y para su


3.38 0.83
inversa. Calcular el nmero de condicin de la matriz
utilizando la norma del mximo.

A = {{3.02,-1.05,2.53},
{4.33,0.56,-1.78},{-0.83,-0.54,1.47}};MatrixForm[A]

b = 81.63, 7.23, 3.38<; MatrixForm@bD

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

MaxA9 Abs@A@@1, kDDD, Abs@A@@2, kDDD, Abs@A@@3, kDDD=E


3 3 3

k=1 k=1 k=1

Norm@A, 1D

MaxA9 Abs@A@@k, 1DDD, Abs@A@@k, 2DDD, Abs@A@@k, 3DDD=E


3 3 3

k=1 k=1 k=1

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
solucin exacta y x = jj
j
z
z
z
j z
k 2.66 {
la solucin 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 condicin de la
matriz, e inferiormente por el cociente del residuo relativo entre el n de condicin de la matriz.

xe = 81., 2., 1.<; xa = 8.88, 2.34, 2.66<;


e = xe xa; errorel = Norm@eD Norm@xeD

resi = b A.xa; resirelat = Norm@resiD Norm@bD

errorel
m resirelat

resirelat m
errorel

El mtodo 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 mtodo de Jacobi se implementa el siguiente proceso iterativo:
xHkL aij xHk1L aij xHk1L
i1 n
i = 1
aii j j
j=1 k=i+1
El superndice (k) correponde a la etapa de iteracin.

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 aproximacin inicial : x0 = j
j z .Calcular, en cada iteracin, el
j z
1
z
k2{
error absoluto y relativo.

A = 884, 1, 1<, 84, 8, 1<, 82, 1, 5<<;


practica4sr.nb 4

b = 87, 21, 15<; x0 = 81., 2, 2<; xn = x0;

DoADoAxn@@iDD =
i
j y
z
j
j A@@i, kDD x0@@kDDz
z
j z A@@i, iDD,
i1 3

k {
b@@iDD A@@i, kDD x0@@kDD

8i, 3<E; Print@xnD; erabs = Norm@xn x0D; errel = erabs Norm@xnD;


k=1 k=i+1

Print@"El error relativo es: ", errelD; x0 = xn, 8iter, 5<E


Print@"El error absoluto es: ", erabsD;

El mtodo 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 mtodo de Gauss-Seidel se implementa el siguiente proceso iterativo:
xHkL aij xHkL aij xHk1L
i1 n
i = 1
aii j j
j=1 k=i+1
El superndice (k) correponde a la etapa de iteracin.

Ejemplo 4.
Consideremos el sistema de ecuaciones del ejemplo anterior . Realizar 5 iteraciones del mdo. de Gauss-Seidel
partiendo de la misma aproximacin inicial .Calcular el error absoluto y relativo.

A = 884, 1, 1<, 84, 8, 1.<, 82, 1, 5<<;

b = 87, 21, 15<; x0 = 81., 2, 2<; xn = x0;

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
i1 3

k {
8i, 3<E; Print@xnD; erabs = Norm@xn x0D; errel = erabs Norm@xnD;
k=1 k=i+1

Print@"El error relativo es: ", errelD; x0 = xn, 8iter, 5<E


Print@"El error absoluto es: ", erabsD;

La condicin necesaria y suficiente para que un mtodo iterativo de resolucin 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 mdulo 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

k 0 0 .. ann { k an1 an2 .. 0 {


.. .. .. .. .. ..

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 mtodo de Jacobi es :
T j = D-1 .HL + UL

TG = HD - LL-1 .U
y la del mtodo de Gauss-Seidel :

Ejemplo 5.
Calcular las matrices de paso de los mtodos de Jacobi y Gauss-Seidel de los ejemplos anteriores,y sus respectivos
radios espectrales,comprobando que son menores que la unidad.

d = Table@A@@i, iDD, 8i, 3<D; diag = DiagonalMatrix@dD

L = A; Do@L@@i, jDD = 0, 8i, 3<, 8j, i, 3<D; L

U = A; Do@U@@i, jDD = 0, 8i, 3<, 8j, i<D; U

Para el mtodo de Jacobi T = D-1 .HL + UL:

Tj = Inverse@diagD.HL + UL; MatrixForm@TjD

Max@Abs@Eigenvalues@TjDDD

Para el mtodo de Gauss-Seidel T = HD - LL-1 .U :

Tg = Inverse@diag LD.U; MatrixForm@TgD

Max@Abs@Eigenvalues@TgDDD
practica4sr.nb 6

Resolucin de sistemas no lineales. El mtodo de Newton. El


comando FindRoot.
Sea el sistema 9 , y sea J(x,y) la matriz Jacobiana de f1 y f2 respecto a x e y. Sea Pk Hxk , yk L la
f1Hx, yL = 0
f2Hx, yL = 0

i f1HPk L zy
1.- Evaluar F(Pk ) = jj
aproximacin de la solucin 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 aproximacin : Pk+1 = Pk + Dp .

Ejemplo 6 :
Sea el sistema :
9 2
x2 - y = 0.2
,
y - x = 0.3
Representar grficamente para obtener la aproximacin inicial correspondiente a la raiz del primer cuadrante, y
calcular 3 iteraciones del mtodo de Newton .

f@x_, y_D = x ^ 2 y .2; g@x_, y_D = y ^ 2 x .3;

<< Graphics`ImplicitPlot`

graf1 = ImplicitPlot@f@x, yD 0, 8x, 2, 2<D

graf2 = ImplicitPlot@g@x, yD 0, 8x, 2, 2<D

Show@graf1, graf2D

jacob@x_, y_D = 88x f@x, yD, y f@x, yD<, 8x g@x, yD, y g@x, yD<<;
indep@x_, y_D = 8f@x, yD, g@x, yD<;

Print@MatrixForm@jacob@x, yDD, " ", MatrixForm@indep@x, yDDD

x0 = 1.2; y0 = 1.2; itermax = 3;


practica4sr.nb 7

Do@Print@"Jacob= ", MatrixForm@jacob@x0, y0DD,


" ", "Term.In= ", MatrixForm@indep@x0, y0DDD;
sol = LinearSolve@jacob@x0, y0D, indep@x0, y0DD;
Print@"Delta= ", MatrixForm@solDD;
x0 = x0 + sol@@1DD; y0 = y0 + sol@@2DD;
Print@"K= ", k, " x= ", x0, " y= ", y0D, 8k, itermax<D

El comando FindRoot
Como en el caso de una sola ec. no lineal, el comando FindRoot nos permite obtener una solucin numrica
(aproximada) de un sistema de ecuaciones no lineales partiendo de una aproximacin inicial. Una de sus ociones
nos permite especificar el n mximo de iteraciones a realizar. Si se alcanza el n mximo de iteraciones sin haber
obtenido la solucin el comando FindRoot nos devuelve la aproximacin calculada en la ltima etapa que se puede
utilizar como aproximacin inicial de un nuevo comando FindRoot.
Es conveniente realizar una representacin grfica, cuando sea posible, para obtener una buena aproximacin
inicial.
El comando FindRoot puede resolver ec. no lineales en variable compleja. Para ello solo es preciso incluir la
unidad imaginaria I en la aproximacin inicial. Por ejemplo:

FindRoot[Sin[x] == 2, {x, 1}]

FindRoot[Sin[x] == 2, {x, I}]

Para resolver el sistema anterior utilizando el comando FindRoot:

FindRoot@8f@x, yD 0, g@x, yD 0<, 8x, 1.2<, 8y, 1.2<D

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 solucin exacta xe = 81.827586, 0.6551724, 1.965517< y como solucin aproximada xa =
x1 + 2 x2 + 4 x3 = 11

81.8, 0.64, 1.9<. Calcular , para las normas l1 , l2 y l :


a) la norma del vector error absoluto y del vector residuo.
b) el error relativo y el residuo relativo.
c) la norma y el nmero de condicin de la matriz de coeficientes, comprobando que cualquiera de las
normas es mayor que el radio espectral de la matriz.

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 aproximacin inicial x0= y

k 0 3 1 8 { k t { k 15 { k0{
10 1 2 0 z 6 0

utilizando el mtodo de Jacobi , con un error absoluto menor que 10-3 y fijando un nmero mximo de iteraciones
Nmax = 20.

mat = 881, 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 mtodo de Gauss-Seidel partiendo de la aproximacin inicial : j z
z
j z
z
j
j z
z
j z
. Comprobar la

k 0.1 {
0.3

convergencia del mtodo.

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

x0 = .7; y0 = .5; z0 = .3; t0 = .1;

4- Resolver el siguiente sistema mediante los mtodos 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 mximo. Comparar el n de iteraciones requeridos
por cada mtodo.
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 {
xn1 0
. . . 0 1
2
0

5.- Resolver el siguiente sistema no lineal primero utilizando el mtodo de Newton y a continuacin con el
comando FindRoot:

x2 - 81 Hy + 0.2L2 + senHzL + 1.06 = 0


3 x - cos(y.z) - 1/2 = 0

10 p-3
e-xy + 20 z +
= 0
Tomar como aproximacin inicial x1H0L = 0.1, x2H0L = 0.1 y x3H0L = - 0.1
3

f1@x_, y_, z_D = 3 x Cos@y zD .5;


f2@x_, y_, z_D = x ^ 2 81 Hy + .2L ^ 2 + Sin@zD + 1.06;
f3@x_, y_, z_D = Exp@x yD + 20 z + H10 Pi 3L 3;

S-ar putea să vă placă și