Vous êtes sur la page 1sur 3

Prcticas de Matemticas con Mathematica .

Matemticas II . Ingeniera Tcnica Industrial Mecnica. Prctica n 2. Resolucin de sistemas lineales: Mtodo de Jacobi.

Departamento de Matemtica Aplicada. E.P.S. de Zamora Universidad de Salamanca Veremos en esta prctica la utilizacin del Mathematica para la resolucin de un sistema de ecuaciones lineales mediante el mtodo de Jacobi. Ejemplo 1: Calcule mediante el mtodo de Jacobi la solucin aproximada del sistema 7x+3y+z=5 x+4y=-3 2x+y-7z=-6 Primero introducimos los datos en el formato del Mathematica

a x0

7, 3, 1 , 1, 4, 0 , 2, 1, 0, 0, 0 ;

;b

5,

3,

6 ;

y consideramos como aproximacin inicial la dada por

Indicamos otros datos necesarios en la ejecucin del programa como el nmero de ecuaciones y la tolerancia requerida:

n Length x0 ; tol 10^ 4 ;


Si en la iteracin n el valor de la solucin es xn, entonces el valor de la siguiente iteracin viene dado por la frmula:

xn1

Table b i Sum a i, j xn j , j, i

xn j 1, n

, j, 1, i 1 Sum a a i, i , i, 1, n

i, j

Comenzando con xn=x0, al ejecutar lo anterior resulta la primera aproximacin

Prctica de resolucin de sistemas (Jacobi) (4-2011).nb

xn x0; xn1 Table b i Sum a i, j xn j , j, i 5 7 , 3 4 , 6 7

xn j 1, n

, j, 1, i 1 Sum a a i, i , i, 1, n

i, j

Si identificamos el valor obtenido con xn y seguimos iterando con la misma frmula obtendremos las sucesivas aproximaciones proporcionadas por el mtodo de Jacobi. Esto lo podemos incluir en una funcin donde hay que indicar el valor inicial, la tolerancia y el nmero mximo de iteraciones (por defecto ponemos 100):

metodoJacobi x0_, tol_, maxiter_: 100 : xn x0; Do xn1 i b i Sum a i, j xn j , j, 1, i 1 Sum a i, j xn j , j, i 1, n a i, i , i, 1, n ; cont 1; While Max Abs xn1 xn xn1 tol && cont maxiter, cont ; xn xn1; Do xn1 i b i Sum a i, j xn j , j, 1, i 1 Sum a i, j xn j , j, i 1, n a i, i , i, 1, n ; cont, xn1, N Max Abs a.xn b
El criterio de paro lo podemos referir al error relativo: Max[Abs[(xn1-xn)/xn1]]>tol o al error absoluto: Max[Abs[xn1-xn]]>tol, y as, mientras estos errores sean mayores que la tolerancia se seguir iterando (siempre que el nmero mximo de iteraciones se mantenga menor que maxiter). Veamos la ejecucin de la funcin anterior para distintos valores de los parmetros. La salida que se obtiene es el nmero de iteraciones realizado, el valor aproximado y una medida del error cometido obtenida como el mximo de los valores absolutos al sustituir el valor obtenido en la expresin a.x-b (esto debera ser cero si el valor obtenido es solucin de la ecuacin):

metodoJacobi 9,

0, 0, 0 , 10^ ,

4 , 10 330 438 495 10 330 523 392 , 0.000250503

5 165 186 949 5 165 261 696

5 903 082 055 5 903 156 224 8

Si utilizamos valores reales el formato de salida es con decimales:

metodoJacobi 16, 1.,

0., 0, 0 , 10^

1., 1. , 4.26355 10

Si queremos ms precisin se los podemos indicar:

SetPrecision metodoJacobi

0., 0, 0 , 10^

16

, 20

32.000000000000000000, 1.0000000000000000000, 1.0000000000000000000, 1.0000000000000000000 , 0


Llegados a este punto podemos comprobar si los valores enteros que parecen ser la solucin en realidad lo son:

a. 1,

1, 1

0, 0, 0

Prctica de resolucin de sistemas (Jacobi) (4-2011).nb

Ejemplo 2: Calcule mediante el mtodo de Jacobi la solucin aproximada del sistema de ecuaciones x+0.3636 y+0.273 z=0.18182 0.75 x+y+0.125 z=1.25 0.5 x+0.5 y+z=0.25 Como ya tenemos definida la funcin en el problema anterior, slo habr que indicar quienes son la matriz de coeficientes y el vector de trminos independientes:

a b

1, 0.3636 , 0.273 , 0.75 , 1, 0.125 , 0.5 , 0.5 , 1 0.18182, 1.25, 0.25 ; 0., 0, 0 , 10^ 4

metodoJacobi 44,

0.260657, 1.49113, 0.2, 1.5,

0.365261 , 0.0000319472 0.3 , 10^ 4

Si tomamos la solucin inicial ms prxima a la solucin verdadera necesitaremos menos iteraciones:

metodoJacobi 36,

0.260637, 1.49115,

0.365234 , 0.0000288222

Si pedimos demasiada precisin llegamos al nmero mximo de iteraciones por defecto antes de alcanzar la precisin deseada:

metodoJacobi 100,

0.2, 1.5,

0.3 , 10^

12
11

0.260646, 1.49114,

0.365247 , 1.05952 10

Tendremos que aumentar el nmero mximo de iteraciones (si no se pone nada en la tercera variable se toma el valor por defecto, 100, y si se le indica qu nmero mximo de iteraciones queremos, ese ser el valor mximo que considere el programa):

metodoJacobi 115,

0.2, 1.5,

0.3 , 10^

12 , 200
13

0.260646, 1.49114, 0.2, 1.5,

0.365247 , 3.28737 10 0.3 , 10^ 12 , 50


6

metodoJacobi 50,

0.260646, 1.49114,

0.365247 , 1.1276 10

Vous aimerez peut-être aussi