Вы находитесь на странице: 1из 10

EJERCICIO 7.

x1 + 2x2
2x1 + 3x2 x3
4x2 + 2x3 + 3x4
2x3 4x4

=7
=9
= 10
= 12

Para resolver el siguiente sistema de ecuaciones lineales, realizaremos el procedimiento de


Gauss.

2 0
0 7
2

3 1 0 9
1
=
0
4 2
3 10
0 2 4 12 F 2<>F 1
0

9
2
3 1 0
0
1/2 1/2 0 2,5

=
0
4
2
3 10
0
2 4 12 F 2<>F 3
0

9
3 1
0
2

4 2
3
0
10
=

0 1/4 3/8 1,25


0
0 2
4
12 F 3<>F 4
0

9
3 1
0
4 2
3
10

0 2
4
12
0 0 0,125 0,25

1
2

0
0

2
0

0
0

2
0

0
0

2
0

0
0

3 1 0 9
2 0
0 7

=
4 2
3 10
0 2 4 12 F 21/2F 1

9
3 1 0
4
2
3 10

=
1/2 1/2 0 2,5
0
2 4 12 F 31/8F 2

9
3 1
0
4 2
3
10

=
12
0 2
4
0 1/4 3/8 1,25 F 41/8F 3

Este es el procedimiento de Gauss para llegar a una matriz triangular superior que se puede
resolver mas facilmente, a continuacion compararemos este procedimiento con un codigo en
Matlab y obtendremos respuestas al sistema.

CODIGO EN MATLAB
%Programa para resolver un sistema lineal de ecuaciones
%utilizando el metodo de Gauss obteniendo una matriz triangular superior
function gauss(A,b)
1

fprintf(Programa para resolver un sistema de ecuaciones por el metodo de Gauss)


fprintf(\n)
fprintf(\n)
A=input(Ingrese la matriz A:\n)
b=input(Ingrese la matriz b:\n)
[n,n]=size(A);
Ab =[A b];% Matriz ampliada entre A y b
for k=1:n-1
[p,q]=max(abs(Ab(k:n,k)));
if p==0
error(La matriz es singular)
return
end
m = k + q -1;%Real ubicacion del elemento maximo
Ab=cambiofilas(Ab,k,m);
for j=k+1:n
Ab=combinacionfilas(Ab,k,j, - Ab(j,k)/Ab(k,k));
end
end
display(Luego de los cambios y combinaciones de filas, la matriz triangular superior ampli
Ab
x=matriztriansup(Ab(:,1:n),Ab(:,n+1));
display(La soluciones al sistema son: )
for i=1:1:n
fprintf(\n%.10f,x(i))
end
end
COMMAND WINDOW
Programa para resolver un sistema de ecuaciones por el metodo de Gauss
Ingrese la matriz A:
[1 2 0 0;2 3 -1 0;0 4 2 3;0 0 2 -4]
A =
1
2
0
0

2
3
4
0

0
-1
2
2

0
0
3
-4

Ingrese la matriz b:
[7;9;10;12]
b =
7
9
10
12
Luego de los cambios y combinaciones de filas, la matriz triangular superior ampliada a la
Ab =
2.0000
0
0
0

3.0000
4.0000
0
0

-1.0000
2.0000
2.0000
0

0
3.0000
-4.0000
0.1250

9.0000
10.0000
12.0000
-0.2500

La soluciones al sistema son:


1.0000000000
3.0000000000
2.0000000000
-2.0000000000>>

METODO
DE GAUSS-JORDAN

1
2
0
0
1
0
0
0

2
3
4
0
2
1
4
0

1 0
0 1

0 0
0 0

1 2
0
0
7
0
0 7
0 1 1 0 5
1 0 9

=
=
0 4
2
3 10
2
3 10
2 4 12 F 22F 1
0 0
2 4 12 F 21

0 0 7
1 0 2 0 3
0 1 1
1 0 5
0
5

=
=
0 0 2 3 10
2 3 10
2 4 12 F 34F 2yF 12F 2
0 0 2 4 12 F 3 1

2
2 0 3
1 0 0 3 7
0 1 0 3 0
1
0
5
2

=
=

0 0 1 3 5
1 3
5
2
2
0
1 12 F 2+2F 3Y F 2F 3yF 42F 3
0 0 0 1 2 F 41

1
0

0
0

0
1
0
0

0 3 7
1 0
0 1
0
0 23

0 0
1 3
5
2
0 1 2 F 3+ 3 F 4yF 2 3 F 4yF 13F 4
0 0
2

0
0
1
0

0 1
0 3

0 2
1 2

Despejando las variables obtenemos los valores de:


x1
x2
x3
x4

=1
=3
=2
= 2
(1)

CODIGO EN MATLAB
function [x Ab] = gauss(A,b)
%[x Ab] = gauss([8 1 6;3 5 7;4 9 2],[1;0;1])

[n,n]=size(A);
Ab=[A b]; %matriz ampliada entre A y b
for k=1:n-1
[p,q]=max(abs(Ab(k:n,k)));
if p==0
error(La matriz es singular)
return
end
m=k+q-1; % real ubicacion del elemento maximo y de la fila de cambio
Ab=cambiofilas(Ab,k,m);
for j=k+1:n
Ab=combinacionfilas(Ab,k,j,-Ab(j,k)/Ab(k,k));
end
end
Ab;
h=1;
4

x=matriztriansup(Ab(:,1:n),Ab(:,n+1));
%fprintf(El resultado del sistema de ecuaciones es:\n)
%for g=1:1:n
%fprintf(x%d=%f\n,g,x(h,g))
%end
end
COMMAND WINDOW
[x Ab] = gauss([1 2 0 0;2 3 -1 0;0 4 2 3;0 0 2 -4],[7;9;10;12])
x =
1

-2

Ab =
Columns 1 through 4
2.000000000000000
0
0
0

3.000000000000000
4.000000000000000
0
0

-1.000000000000000
2.000000000000000
2.000000000000000
0

0
3.000000000000000
-4.000000000000000
0.125000000000000

Column 5
9.000000000000000
10.000000000000000
12.000000000000000
-0.250000000000000
EJERCICIO 8.x1 + x2 + x3 = 1
2x1 x2 + 3x3 = 4
3x1 + 2x2 2x3 = 2
(2)

METODO
DE GAUSS

1
3 2 2 2
1 1
1
3

2 1 3
4
4
= 2 1 3
= 0
1 F 2 2 F 1
3 2 2 2 F 3<>F 1
1 1
1
1

2 2

7
3

13
3

16
3

3
0
0

2
7
3
1
3

2 2
13
3
5
3

16
3
5
3

F 3<>F 2

= 0
0

2
1
3
7
3

2 2
5
3
13
3

5
3
16
3

F 3+7F 2

F 3 13 F 1

3 2 2 2
5
= 0 13 35
3
0 0 16 |17

Despejando las variables obtenemos los valores de:


1
4
5
y=
16
17
z=
16

x=

(3)

CODIGO EN MATLAB
%Programa para resolver un sistema lineal de ecuaciones
%utilizando el metodo de Gauss obteniendo una matriz triangular superior
function gauss(A,b)
fprintf(Programa para resolver un sistema de ecuaciones por el metodo de Gauss)
fprintf(\n)
fprintf(\n)
A=input(Ingrese la matriz A:\n)
b=input(Ingrese la matriz b:\n)
[n,n]=size(A);
Ab =[A b];% Matriz ampliada entre A y b
for k=1:n-1
[p,q]=max(abs(Ab(k:n,k)));
if p==0
error(La matriz es singular)
return
end
6

m = k + q -1;%Real ubicacion del elemento maximo


Ab=cambiofilas(Ab,k,m);
for j=k+1:n
Ab=combinacionfilas(Ab,k,j, - Ab(j,k)/Ab(k,k));
end

end
display(Luego de los cambios y combinaciones de filas, la matriz triangular superior ampli
Ab
x=matriztriansup(Ab(:,1:n),Ab(:,n+1));
display(La soluciones al sistema son: )
for i=1:1:n
fprintf(\n%.10f,x(i))
end
end
COMMAND WINDOW
Programa para resolver un sistema de ecuaciones por el metodo de Gauss
Ingrese la matriz A:
[1 1 1;2 -1 3;3 2 -2]
A =
1
2
3

1
-1
2

1
3
-2

Ingrese la matriz b:
[1;4;-2]
b =
1
4
-2
Luego de los cambios y combinaciones de filas, la matriz triangular superior ampliada a la
Ab =
3.0000

2.0000

-2.0000

-2.0000
7

0
0

0.3333
0

1.6666
16.0000

1.6666
17.0000

La soluciones al sistema son:


0.250000000000000
-0.312500000000000
1.062500000000000 >>

METODO
DE GAUSS-JORDAN

1 1
1
1
1 1
1 1
1 1
1 1
2 1 3
4
2
2
= 0 3 1
= 0 3 1
=
3 2 2 2 F 22F 1
3 2 2 2 F 33F 1
0 1 5 5 F 2 1
3

1 1
1
0 1 1
3
0 1 5

1 0 0 14
0 1 0 5
16
0 0 1 17
16

2
3

F 1F 2yF 3+F 2

4
1 0
3
= 0 1 1
3
0 0 16
3

5
3
2
3
17
3

F 3 3
16

1 0
= 0 1
0 0

4
3
1
3

5
3
2
3
17
16

F 2+ 31 F 3yF 1 43 F 3

Despejando las variables obtenemos los valores de:


1
4
5
y=
16
17
z=
16

x=

(4)

CODIGO EN MATLAB
function [C x] = gaussjordan(A,b)
%[C x] = gaussjordan([1 20 -1 0.001;2 -5 30 -0.1;5 1 -100 -10;2 -100 -1 1],[0;1;0;0])
8

[n,n]=size(A);
Ab=[A b]; %matriz ampliada entre A y b
for k=1:n-1
[p,q]=max(abs(Ab(k:n,k)));
if p==0
error(La matriz es singular)
end
m=k+q-1;
Ab=cambiofilas(Ab,k,m);
for j=k+1:n
Ab=combinacionfilas(Ab,k,j,-Ab(j,k)/Ab(k,k));
end
end
for k=n:-1:2
for j=k-1:-1:1
Ab=combinacionfilas(Ab,k,j,-Ab(j,k)/Ab(k,k));
end
end
C=Ab;
for k=1:n
C(k,:)=C(k,:)/C(k,k);
end
x=matriztrianinf(C(:,1:n),C(:,n+1));
h=1;
x=matriztriansup(Ab(:,1:n),Ab(:,n+1));
fprintf(El resultado del sistema de ecuaciones es:\n)
for g=1:1:n
fprintf(x%d=%f\n,g,x(h,g))
end
end
COMMAND WINDOW
[C x] = gaussjordan([1 1 1;2 -1 3;3 2 -2],[1;4;-2])
El resultado del sistema de ecuaciones es:
x1=0.250000
x2=-0.312500
x3=1.062500
C =
9

1.000000000000000
0
0

0
1.000000000000000
-0.000000000000000

0
0
1.000000000000000

-0.312500000000000

1.062500000000000

x =
0.250000000000000

10

0.250000000000000
-0.312500000000000
1.062500000000000

Вам также может понравиться