3
Prácticas de Matemáticas con Mathematica . Matemáticas II . Ingeniería Técnica Industrial Mecánica. Práctica nº 2. Resolución de sistemas lineales: Método de Jacobi. Departamento de Matemática Aplicada. E.P.S. de Zamora Universidad de Salamanca Veremos en esta práctica la utilización del Mathematica para la resolución de un sistema de ecuaciones lineales mediante el método de Jacobi. Ejemplo 1: Calcule mediante el método de Jacobi la solución aproximada del sistema 7x+3y+z=5 x+4y=-3 2x+y-7z=-6 Primero introducimos los datos en el formato del Mathematica a = 887, 3, 1<, 81, 4, 0<, 82, 1, - 7<<;b = 85, - 3, - 6<; y consideramos como aproximación inicial la dada por x0 = 80, 0, 0<; Indicamos otros datos necesarios en la ejecución del programa como el número de ecuaciones y la tolerancia requerida: n = Length@x0D; tol = 10^ H- 4L; Si en la iteración n el valor de la solución es xn, entonces el valor de la siguiente iteración viene dado por la fórmula: xn1 = Table@ Hb@@iDD - HSum@a@@i, jDD xn@@jDD, 8j, 1, i - 1<D + Sum@a@@i, jDD xn@@jDD, 8j, i + 1, n<DLL a@@i, iDD, 8i, 1, n<D Comenzando con xn=x0, al ejecutar lo anterior resulta la primera aproximación

Práctica de resolución de sistemas (Jacobi) (4-2011)

  • Upload
    higinio

  • View
    49

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Práctica de resolución de sistemas (Jacobi) (4-2011)

Prácticas de Matemáticas con Mathematica .

Matemáticas II . Ingeniería Técnica Industrial Mecánica. Práctica nº 2. Resolución de sistemas lineales: Método

de Jacobi.

Departamento de Matemática Aplicada.E.P.S. de Zamora

Universidad de Salamanca

Veremos en esta práctica la utilización del Mathematica para la resolución de un sistema de ecuacioneslineales mediante el método de Jacobi.

Ejemplo 1: Calcule mediante el método de Jacobi la solución aproximada del sistema 7x+3y+z=5 x+4y=-3 2x+y-7z=-6

Primero introducimos los datos en el formato del Mathematica

a = 887, 3, 1<, 81, 4, 0<, 82, 1, -7<<; b = 85, -3, -6<;

y consideramos como aproximación inicial la dada por

x0 = 80, 0, 0<;

Indicamos otros datos necesarios en la ejecución del programa como el número de ecuaciones y la toleranciarequerida:

n = Length@x0D;

tol = 10^H-4L;

Si en la iteración n el valor de la solución es xn, entonces el valor de la siguiente iteración viene dado por lafórmula:

xn1 = Table@Hb@@iDD - HSum@a@@i, jDD xn@@jDD, 8j, 1, i - 1<D + Sum@a@@i, jDD

xn@@jDD, 8j, i + 1, n<DLL � a@@i, iDD, 8i, 1, n<DComenzando con xn=x0, al ejecutar lo anterior resulta la primera aproximación

Page 2: Práctica de resolución de sistemas (Jacobi) (4-2011)

xn = x0;

xn1 = Table@Hb@@iDD - HSum@a@@i, jDD xn@@jDD, 8j, 1, i - 1<D + Sum@a@@i, jDD

xn@@jDD, 8j, i + 1, n<DLL � a@@i, iDD, 8i, 1, n<D

:5

7, -

3

4,

6

7>

Si identificamos el valor obtenido con xn y seguimos iterando con la misma fórmula obtendremos las sucesi-vas aproximaciones proporcionadas por el método de Jacobi. Esto lo podemos incluir en una función dondehay que indicar el valor inicial, la tolerancia y el número máximo de iteraciones (por defecto ponemos 100):

metodoJacobi@x0_, tol_, maxiter_: 100D := Hxn = x0;

Do@xn1@@iDD = Hb@@iDD - HSum@a@@i, jDD xn@@jDD, 8j, 1, i - 1<D +

Sum@a@@i, jDD xn@@jDD, 8j, i + 1, n<DLL �a@@i, iDD, 8i, 1, n<D; cont = 1;

While@HMax@Abs@Hxn1 - xnL � xn1DD > tolL && cont < maxiter,

cont++; xn = xn1;

Do@xn1@@iDD = Hb@@iDD - HSum@a@@i, jDD xn@@jDD, 8j, 1, i - 1<D +

Sum@a@@i, jDD xn@@jDD, 8j, i + 1, n<DLL � a@@i, iDD,

8i, 1, n<DD; 8cont, xn1, N@Max@[email protected] - bDDD<LEl criterio de paro lo podemos referir al error relativo: Max[Abs[(xn1-xn)/xn1]]>tolo al error absoluto: Max[Abs[xn1-xn]]>tol, y así, mientras estos errores sean mayores que la tolerancia seseguirá iterando (siempre que el número máximo de iteraciones se mantenga menor que maxiter).

Veamos la ejecución de la función anterior para distintos valores de los parámetros. La salida que se obtiene esel número de iteraciones realizado, el valor aproximado y una medida del error cometido obtenida como elmáximo de los valores absolutos al sustituir el valor obtenido en la expresión a.x-b (esto debería ser cero si elvalor obtenido es solución de la ecuación):

metodoJacobi@80, 0, 0<, 10^H-4LD

:9, :5 165 186 949

5 165 261 696, -

5 903 082 055

5 903 156 224,

10 330 438 495

10 330 523 392>, 0.000250503>

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

metodoJacobi@80., 0, 0<, 10^H-8LD916, 81., -1., 1.<, 4.26355 ´ 10-8=Si queremos más precisión se los podemos indicar:

SetPrecision@metodoJacobi@80., 0, 0<, 10^H-16LD, 20D832.000000000000000000, 81.0000000000000000000,

-1.0000000000000000000, 1.0000000000000000000<, 0<Llegados a este punto podemos comprobar si los valores enteros que parecen ser la solución en realidad lo son:

a.81, -1, 1< - b

80, 0, 0<

2 Práctica de resolución de sistemas (Jacobi) (4-2011).nb

Page 3: Práctica de resolución de sistemas (Jacobi) (4-2011)

Ejemplo 2: Calcule mediante el método de Jacobi la solución 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 función en el problema anterior, sólo habrá que indicar quienes son la matriz decoeficientes y el vector de términos independientes:

a = 881, 0.3636 , 0.273 <, 80.75 , 1, 0.125 <, 80.5 , 0.5 , 1<<;

b = 80.18182, 1.25, 0.25<;

metodoJacobi@80., 0, 0<, 10^H-4LD844, 8-0.260657, 1.49113, -0.365261<, 0.0000319472<Si tomamos la solución inicial más próxima a la solución verdadera necesitaremos menos iteraciones:

[email protected], 1.5, -0.3<, 10^H-4LD836, 8-0.260637, 1.49115, -0.365234<, 0.0000288222<Si pedimos demasiada precisión llegamos al número máximo de iteraciones por defecto antes de alcanzar laprecisión deseada:

[email protected], 1.5, -0.3<, 10^H-12LD9100, 8-0.260646, 1.49114, -0.365247<, 1.05952 ´ 10-11=Tendremos que aumentar el número máximo de iteraciones (si no se pone nada en la tercera variable se toma elvalor por defecto, 100, y si se le indica qué número máximo de iteraciones queremos, ese será el valor máximoque considere el programa):

[email protected], 1.5, -0.3<, 10^H-12L, 200D9115, 8-0.260646, 1.49114, -0.365247<, 3.28737 ´ [email protected], 1.5, -0.3<, 10^H-12L, 50D950, 8-0.260646, 1.49114, -0.365247<, 1.1276 ´ 10-6=

Práctica de resolución de sistemas (Jacobi) (4-2011).nb 3