Sei sulla pagina 1di 15

INFORME

Facultad de Ingeniera

Asignatura: MATEMATICA APLICADA

Horario: 17:00

Alumnos: Aybar Tilca Daniel, Valdiviezo Jos

Trabajo Prctico N:

Fecha de Entrega: 11/11/2013

Matemtica Aplicada

1
TRABAJO PRCTICO N4
Sistemas de Ecuaciones Lineales:
Mtodos de Gauss
Mtodos Iterativos: Jacobi Gauss Seidel

Problema 1
Dado el siguiente seudocdigo del METODO DE GAUSS-SEIDEL, desarrollar un
programa en C.
Lista de smbolos utilizados en el seudocdigo

n: numero de ecuaciones

A: matriz de ecuaciones

: cota de error

x: matriz con vectores solucin en cada iteracin

N: vector para la norma en cada iteracin

i max: nmero mximo de iteraciones

niter: nmero de iteraciones efectuadas

aux: variable auxiliar

Seudo cdigo
PASO 1:
PASO 2:
PASO 3:
PASO 4:
PASO 5:
PASO 6:
PASO 7:
PASO 8:
PASO 9:
PASO 10:

DATOS: n, A = { a ij ; 1 i n, 1 j n } , i max, x = {x0 ; 1 i n}


PARA k = 0, i max1 HACER
PARA i = 1, HACER
aux 0
PARA j = 1, i 1 HACER
aux aux + a ij x k+1,j
FIN-PARA
PARA j = 1, i + 1 HACER
aux aux + a ij x k,j
FIN-PARA

PASO 11:
PASO 12:
PASO 13:

SI i = ENTONCES
N
|x 1 - x

PARA 14:

SINO SI |x

PASO 15:
PASO 16:
PASO 17:
PASO 18:
PARA 19:
PASO 20:
PASO 21:
PASO 22:
PASO 23:
PASO 24:

-x
|x

1|

>N
-x

ENTONCES
1

FIN-SI
FIN-PARA
MUESTRE Iterac n N k 1 Norma Nk+1
PARA i = 1, n HACER
MUESTRE xk+1,i
FIN-PARA
SI N
ENTONCES
MUESTRE La soluc n se obtuvo en k 1 terac ones
DETENER EL ALGORITMO

Matemtica Aplicada
PASO 25:
PASO 26:
PASO 27:

FIN-SI
FIN-PARA
MUESTRE: No se logr la prec s n deseada en i max terac ones.

Programa en C
/*TRABAJO PRACTICO N4*/

#include <stdio.h> /*libreria estandar de entrada y salida (printf y scanf)*/


#include <stdlib.h> /*libreria estandar (funciones auxiliares)*/
#include <math.h> /* libreria matemtica */
// Declaracin de Variables Globales
int main(){
//Declaracion de variables locales
double A[100][100],x[100][100],e,aux,N[100];
int n,imax,i,j,k;
// Ingreso de Datos
printf("Ingrese el numero de ecuaciones n:\r\n");
scanf("%d",&n);
for (i=1;i<=n;i++){
for (j=1;j<=n+1;j++){
printf ("Ingrese el coeficiente a[%d][%d] \r\n",i,j);
scanf("%lf",&A[i][j]);
}
}
for (j=1;j<=n;j++){
printf ("Ingrese el vector inicial x[%d][%d] \r\n",0,j);
scanf("%lf",&x[0][j]);
}
printf("Ingrese la cota de error e:\r\n");
scanf("%lf",&e);
printf("Ingrese el numero maximo de iteraciones:\r\n");
scanf("%d",&imax);
// Aplicar Mtodo
for (k=0;k<=imax-1;k++){
for (i=1;i<=n;i++){
aux=0;
for (j=1;j<=i-1;j++){
aux=aux+A[i][j]*x[k+1][j];
}
for (j=i+1;j<=n;j++){
aux=aux+A[i][j]*x[k][j];
}
x[k+1][i]=(A[i][n+1]-aux)/A[i][i];
if (i==1){
N[k+1]=fabs(x[k][i]-x[k+1][i]);
}
else if(fabs(x[k][i]-x[k+1][i])>N[k+1]){
N[k+1]=fabs(x[k][i]-x[k+1][i]);
}
}
printf("\r\n");
printf ("Iteracion Nro.%d\r\n",k+1);
printf("\r\n");
for (i=1;i<=n;i++){
printf ("x[%d]= %lf\r\n",i,x[k+1][i]);
}
printf ("N[%d]= %10.8lf\r\n",k+1,N[k+1]);
if(N[k+1]<=e){

Matemtica Aplicada
printf("\r\n");
printf("La solucion se obtuvo en %d iteraciones.\r\n",k+1);
system("\r\n Pause");
return 0;
}
}
printf("\r\n");
printf("No se logro la precision deseada en %d iteraciones.\r\n",imax);
system ("\r\n Pause");
return 0;
}

Verificar el correcto funcionamiento del programa con el siguiente sistema de ecuaciones


10x1 + 3x2 + x3 = 14
2x1 10x2 + 3x3 5
x1 + 3x2 + 10x3 = 14
para i max = 20, = 105, vector inicial x= ,0 0 0-

Ingrese el numero de ecuaciones n:


3
Ingrese el coeficiente a[1][1]
10
Ingrese el coeficiente a[1][2]
3
Ingrese el coeficiente a[1][3]
1
Ingrese el coeficiente a[1][4]
14
Ingrese el coeficiente a[2][1]
2
Ingrese el coeficiente a[2][2]
-10
Ingrese el coeficiente a[2][3]
3
Ingrese el coeficiente a[2][4]
-5
Ingrese el coeficiente a[3][1]
1
Ingrese el coeficiente a[3][2]
3
Ingrese el coeficiente a[3][3]
10
Ingrese el coeficiente a[3][4]
14
Ingrese el vector inicial x[0][1]
0
Ingrese el vector inicial x[0][2]
0

Matemtica Aplicada
Ingrese el vector inicial x[0][3]
0
Ingrese la cota de error e:
1E-5
Ingrese el numero maximo de iteraciones:
20
Iteracion Nro.1
x[1]= 1.400000
x[2]= 0.780000
x[3]= 1.026000
N[1]= 1.40000000
Iteracion Nro.2
x[1]= 1.063400
x[2]= 1.020480
x[3]= 0.987516
N[2]= 0.33660000
Iteracion Nro.3
x[1]= 0.995104
x[2]= 0.995276
x[3]= 1.001907
N[3]= 0.06829560
Iteracion Nro.4
x[1]= 1.001227
x[2]= 1.000817
x[3]= 0.999632
N[4]= 0.00612221
Iteracion Nro.5
x[1]= 0.999792
x[2]= 0.999848
x[3]= 1.000066
N[5]= 0.00143504
Iteracion Nro.6
x[1]= 1.000039
x[2]= 1.000028
x[3]= 0.999988
N[6]= 0.00024739

Matemtica Aplicada

Iteracion Nro.7
x[1]= 0.999993
x[2]= 0.999995
x[3]= 1.000002
N[7]= 0.00004607
Iteracion Nro.8
x[1]= 1.000001
x[2]= 1.000001
x[3]= 1.000000
N[8]= 0.00000840
La solucion se obtuvo en 8 iteraciones.
Problema 2
Utilice el programa desarrollado en el punto anterior para resolver el siguiente sistema de
ecuaciones:
2x1 + 3x2 + x3 = 2
x1 + 2x2 + 3x3 = 1
3x1 + x2 2x3 = 4
para i max = 20, = 105, vector inicial x= ,0.5 0 0.5No se logro la precision deseada en 20 iteraciones.
Condicin de convergencia
n

|a | |a |
1

Ec.1: |3| |1| |2|


Ec.2: |1| |3| |2|

A no es diagonal dominante y estricta

Ec.3: |3| |1| |-2|

por lo tanto no hay convergencia.

Problema 3
Utilice el programa desarrollado en el punto 1 anterior para resolver el siguiente sistema
de ecuaciones:
4
1
0
1
0
0

1 0 1 0
4 1 0 1
1 4
0
0 0 4 1
1 0 1 4
0 1 0 1

0
0
1
0
1
4

x1
x2
x3
x4
x5
x6

2
1
2
=
2
1
2

para i max = 22, = 108, vector inicial x= [0.1 -0.1 0.1 -0.1 0.1 -0.1]

Matemtica Aplicada
Iteracion Nro.1
x[1]= 0.450000
x[2]= 0.412500
x[3]= 0.578125
x[4]= 0.637500
x[5]= 0.487500
x[6]= 0.766406
N[1]= 0.86640625
Iteracion Nro.2
x[1]= 0.762500
x[2]= 0.707031
x[3]= 0.868359
x[4]= 0.812500
x[5]= 0.821484
x[6]= 0.922461
N[2]= 0.33398438
Iteracion Nro.3
x[1]= 0.879883
x[2]= 0.892432
x[3]= 0.953723
x[4]= 0.925342
x[5]= 0.935059
x[6]= 0.972195
N[3]= 0.18540039
Iteracion Nro.4
x[1]= 0.954443
x[2]= 0.960806
x[3]= 0.983250
x[4]= 0.972375
x[5]= 0.976344
x[6]= 0.989899
N[4]= 0.07456055
Iteracion Nro.5
x[1]= 0.983295
x[2]= 0.985723
x[3]= 0.993905
x[4]= 0.989910
x[5]= 0.991383
x[6]= 0.996322
N[5]= 0.02885208

Matemtica Aplicada
Iteracion Nro.6
x[1]= 0.993908
x[2]= 0.994799
x[3]= 0.997780
x[4]= 0.996323
x[5]= 0.996861
x[6]= 0.998660
N[6]= 0.01061268
Iteracion Nro.7
x[1]= 0.997780
x[2]= 0.998105
x[3]= 0.999191
x[4]= 0.998660
x[5]= 0.998857
x[6]= 0.999512
N[7]= 0.00387233
Iteracion Nro.8
x[1]= 0.999191
x[2]= 0.999310
x[3]= 0.999705
x[4]= 0.999512
x[5]= 0.999583
x[6]= 0.999822
N[8]= 0.00141100
Iteracion Nro.9
x[1]= 0.999705
x[2]= 0.999749
x[3]= 0.999893
x[4]= 0.999822
x[5]= 0.999848
x[6]= 0.999935
N[9]= 0.00051402
Iteracion Nro.10
x[1]= 0.999893
x[2]= 0.999908
x[3]= 0.999961
x[4]= 0.999935
x[5]= 0.999945
x[6]= 0.999976
N[10]= 0.00018725

Matemtica Aplicada
Iteracion Nro.11
x[1]= 0.999961
x[2]= 0.999967
x[3]= 0.999986
x[4]= 0.999976
x[5]= 0.999980
x[6]= 0.999991
N[11]= 0.00006821
Iteracion Nro.12
x[1]= 0.999986
x[2]= 0.999988
x[3]= 0.999995
x[4]= 0.999991
x[5]= 0.999993
x[6]= 0.999997
N[12]= 0.00002485
Iteracion Nro.13
x[1]= 0.999995
x[2]= 0.999996
x[3]= 0.999998
x[4]= 0.999997
x[5]= 0.999997
x[6]= 0.999999
N[13]= 0.00000905
Iteracion Nro.14
x[1]= 0.999998
x[2]= 0.999998
x[3]= 0.999999
x[4]= 0.999999
x[5]= 0.999999
x[6]= 1.000000
N[14]= 0.00000330
Iteracion Nro.15
x[1]= 0.999999
x[2]= 0.999999
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[15]= 0.00000120

Matemtica Aplicada
Iteracion Nro.16
x[1]= 1.000000
x[2]= 1.000000
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[16]= 0.00000044
Iteracion Nro.17
x[1]= 1.000000
x[2]= 1.000000
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[17]= 0.00000016
Iteracion Nro.18
x[1]= 1.000000
x[2]= 1.000000
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[18]= 0.00000006
Iteracion Nro.19
x[1]= 1.000000
x[2]= 1.000000
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[19]= 0.00000002
Iteracion Nro.20
x[1]= 1.000000
x[2]= 1.000000
x[3]= 1.000000
x[4]= 1.000000
x[5]= 1.000000
x[6]= 1.000000
N[20]= 0.00000001

Matemtica Aplicada

10

La solucion se obtuvo en 20 iteraciones.


Problema 4
Resuelva en forma manual el siguiente sistema de ecuaciones aplicando el mtodo de Jacobi.
5.2x1 2.5x2 + 0.6x3 = 1.0
0.2x1 6.3x2 + 0.8x3 = 0.0
1.3x1 0.9x2 9.9x3 3.2
para i max = 5, = 102, vector inicial x= [-0.2 0.0 0.2]. Verifique lo resultados con el programa
desarrollado en el problema 1.
Condicin de convergencia
n

|a | |a |
1

Ec.1: |-2.5| |0.6| |5.2|


Ec.2: |0.2| |0.8| |-6.3|

A es diagonal dominante y estricta

Ec.3: |-1.3| |-0.9| |-9.9|


Iteracin 1
x1 (1)

x2

(1)

x3 (1)

1.0

k=0

2.5 x2(0) 0.6 x3(0)


0.265384
5.2

0.0 0.2 x1(0) 0.8 x3(0)


0.019048
6.3
3.2

1.3 x1(0)
9.9

Iteracin 2

x2 (2)

x3

(2)

1.0

0.9 x3(0)

N(1) = max*|

x1 (2)

x(0) (0.2 0.2 0.2)

k=1

0.331313

)| |

| |

|+

x(1) = (0.265384,0.019048,0.331313)

2.5 x2(1) 0.6 x3(1)


0.163 37
5.2

0.0 0.2 x1(1) 0.8 x3(1)


0.050496
6.3
3.2

1.3 x1(1)
9.9

N(2) = max*|0.163 37
N(2) = 0.102147

0.9 x3(1)

0.286652

0.265384| |0.050496

0.019048| |0.286652

0.331313|+

Matemtica Aplicada
Iteracin 3
x1

(3)

x2 (3)
x3 (3)

1.0

k=2

11
x(2) = (0.163237,0.050496,0.286652)

2.5 x2(2) 0.6 x3(2)


0.183509
5.2

0.0 0.2 x1(2) 0.8 x3(2)


0.041582
6.3
3.2

1.3 x1(2)
9.9

0.9 x3(2)

| |0.041582

N(3) = max*|0.183509
N(3) = 0.020272
Iteracin 4
x1 (4)
x2 (4)

x3

(4)

1.0

k=3

x2

x3 (5)

|+

2.5 x2(3) 0.6 x3(3)


0.178006
5.2

0.0 0.2 x1(3) 0.8 x3(3)


0.043566
6.3
3.2

1.3 x1(3)
9.9

Iteracin 5

(5)

| |0.297206

x(3) = (0.183509,0.041582,0.297206)

0.9 x3(3)

1.0

k=4

0.295355
| |0.043566

N(4) = max*|0.178006
N(4) = 0.005503

x1 (5)

0.297206

| |0.295355

|+

x(4) = (0.178006,0.043566,0.295355)

2.5 x2(4) 0.6 x3(4)


0.179173
5.2

0.0 0.2 x1(4) 0.8 x3(4)


0.043156
6.3
3.2

1.3 x1(4)
9.9

N(5) = max*|0.179173
N(5) = 0.001167

0.9 x3(4)

0.295897
| |0.043156

Verificacin de los resultados con el programa


Iteracion Nro.1
x[1]= 0.169231
x[2]= 0.030769
x[3]= 0.298213
N[1]= 0.36923077

| |0.295897

|+

Matemtica Aplicada

12

Iteracion Nro.2
x[1]= 0.172691
x[2]= 0.043351
x[3]= 0.296615
N[2]= 0.01258134
Iteracion Nro.3
x[1]= 0.178925
x[2]= 0.043346
x[3]= 0.295797
N[3]= 0.00623313
La solucion se obtuvo en 3 iteraciones.
Problema 5
Resuelva en forma manual el siguiente sistema de ecuaciones aplicando el mtodo de Gauss.
2x1 + 3x2 + x3 = 2
x1 + 2x2 + 3x3 = 1
3x1 + x2 2x3 = 4

ecuacin 1
ecuacin 2
ecuacin 3

Mtodo de Gauss

7
2

7
2 1

1) De la ecuacin 2, hago 0 la incgnita x1


a21 1
n21
a11 2
a22

1
3
2

1
2

a23

1
3 1
2

5
2

b2

1
1 2
2

2) De la ecuacin 3, hago 0 la incgnita x1


a31 3
n31
a11 2
a32

a33
b3

3
3
2

7
2

3
7
2 1
2
2
3
4 2 1
2

0
0

2
0

Matemtica Aplicada

13

3) De la ecuacin 3, hago 0 la incgnita x2


7
a32
2 7
n32
1
a22
2
7
5
( 7)
14
2
2

a33

( )

2
0
0

4) De la ecuacin 3, despejo la incognita x3


x3

x3

14

5) De la ecuacin 2, despejo la incognita x2


1
5
5
x2
x3 0
x2
2
2
14
6) De la ecuacin 3, despejo la incognita x1
x1

x2 x3

x1

Programa en C
No se logro la precision deseada en 20 iteraciones.
Condicin de convergencia
n

|a | |a |
1

Ec.1: |3| |1| |2|


Ec.2: |1| |3| |2|

A no es diagonal dominante y estricta

Ec.3: |3| |1| |-2|

por lo tanto no hay convergencia.

14 1

Matemtica Aplicada

14

Potrebbero piacerti anche