Professional Documents
Culture Documents
Abstract
A continuación se realizará el desarrollo de las actividades propuestas para el capitulo de introdución a los
métodos iterativos.
I. Ejercicios
RESULTADO:
>> A=[2 1;3 2];
>>B=[3 4;-1 5];
>> C = producto_matrices(A,B);
C =
5 13
7 22
1
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
[m,n] = size(A);
filas = m;
columnas = n;
for i = 0:1:filas
for j = 0:1:columnas
T(j,i) = A(i,j);
end
end
end
RESULTADO:
>> C = transpuesta(A);
C =
2 3
1 2
2
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
[m,n] = size(A);
filas = m;
columnas = n;
for i = 0:1:filas
for j = 0:1:columnas
E(i,j) = k*A(i,j);
end
end
end
RESULTADO:
4 0 2
6 0 0
10 2 2
3
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
n = length(A);
suma = 0;
for i = 1:n
suma = suma + A(i)^2;
end
N = suma^(1/2);
end
RESULTADO:
>> A=[1,-1,2,3,-10,6];
>> C = NormaVector(A);
C =
12.2882
4
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
for i = 1:n
T = T + A(i,i);
end
end
RESULTADO:
>> A=[1,-1;2,3];
>> T = traza_Matrizr(A);
T =
4
5
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 6 Construya un algoritmo para determinar la inversa de una matriz A, siendo una matriz no
singular. (Sugerencia: La matriz inversa puede calcularse resolviendo el sistema matricial AX= In). Halle la
solución de los siguientes sistemas lineales, utilizando el método de Gauss, Gauss - Jordan, compruebe su
solución utilizando los códigos desarrollados para ello.
CODIGO DE FUENTE DE MATLAB.
function b = mat_inv2(a)
[r,c] = size(a);
% detiene si el ingreso es incorrecto
if r ~= c
disp('Solo matriz cuadrada')
b = [];
return
end
b = eye(r);
for j = 1 : r
for i = j : r
if a(i,j) ~= 0
for k = 1 : r
s = a(j,k); a(j,k) = a(i,k); a(i,k) = s;
s = b(j,k); b(j,k) = b(i,k); b(i,k) = s;
end
t = 1/a(j,j);
for k = 1 : r
a(j,k) = t * a(j,k);
b(j,k) = t * b(j,k);
end
for L = 1 : r
if L ~= j
t = -a(L,j);
for k = 1 : r
a(L,k) = a(L,k) + t * a(j,k);
b(L,k) = b(L,k) + t * b(j,k);
end
end
end
end
break
end
if a(i,j) == 0
disp(Advertencia: Matriz Singular')
b = 'error';
return
end
end
a
6
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 7
x1 + 2x2 = 7
2x1 + 3x2 − x3 = 9
4x2 + 2x3 + 3x4 = 10
2x3 − 4x4 = 12
METODO DE GAUSS:
Se extrae los valores numéricos de las ecuaciones en el respectivo orden correspondiente:
1 2 0 0 7
2
3 −1 0 9
0 4 2 3 10
0 0 2 −4 12
Se aplica el métode de GAUSS para la primera fila:
1 2 0 0 7
0
−1 −1 0 −5
0 4 2 3 10
0 0 2 −4 12
Se aplica el métode de GAUSS para la tercera fila y queda la matriz diagonal superior:
1 2 0 0 7
0
−1 −1 0 −5
0 0 −2 3 −10
0 0 0 −1 −2
METODO DE GAUSS-JORDAN:
>>A = [1 2 0 0;
2 3 -1 0;
0 4 2 3;
0 0 2 -4];
>>b = [7; 9; 10; 12];
C = gauss_jordan(A,b);
1 3 2 -2
7
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
1 2 0 0 7
2 3 -1 0 9
0 4 2 3 10
0 0 2 -4 12
8
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
x1 = 1 x2 = 3 x3 = 2 x4 = -2
9
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 8
x1 + x2 + x3 = 1
2x1 − x2 + 3x3 = 4
3x1 + 2x2 − 2x3 = −2
RESULTADO:
>>A = [1 1 1;
2 -1 3;
3 2 -2];
>>b = [1; 4; -2];
C = gauss_jordan(A,b);
Reescribamos el sistema de ecuaciones en la forma de una matriz y lo resolvamos por el método de eli
1 1 1 1
2 -1 3 4
3 2 -2 -2
10
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 9
x1 + 20x2 − x3 + 0.001x4 = 0
2x1 − 5x2 + 30x3 − 0.1x4 = 1
5x1 + x2 − 100x3 − 10x4 = 0
2x1 − 100x2 − x3 + x4 = 0
RESULTADO:
>>A = [1 20 -1 0.001;
2 -5 30 -0.1;
5 1 -100 -10;
2 -100 -1 1];
>>b = [0;1; 0; 0];
C = gauss_jordan(A,b);
Reescribamos el sistema de ecuaciones en la forma de una matriz y lo resolvamos por el método de eli
1 20 -1 0.001 0
2 -5 30 -0.1 1
5 1 -100 -10 0
2 -100 -1 1 0
11
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Resultado:
x1 = 0.0604
x2 = -0.0016
x3 = 0.0282
x4 = -0.2520
12
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 10
−5 2 −1
1 0 3
3 1 6
−5 2 −1
U = 1 0 3
3 1 6 F + 1 ∗F
2 5 1
−5 2 −1
U = 0 25 14
5
3 1 6 F + 3 ∗F
3 5 1
−5 2 −1
2 14
U = 0 5 5
11 27
0 5 5
F2 ↔ F3
−5 2 −1
U = 0 115
27
5
2 14
0 5 5 F − 2 ∗F
3 11 2
−5 2 −1
U = 0 115
27
5
20
0 0 11
1 0 0
L= 0 1 0
0 0 1
1 0 0
L = − 15 1 0
−3 2 1
5 11
1 0 0
L = − 35 1 0
− 15 11
2
1
RESULTADO:
−5 2 −1
A= 1 0 3
3 1 6
1 0 0
L = − 35 1 0
− 15 112
1
−5 2 −1
11 27
U= 0 5 5
20
0 0 11
13
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
P*A=L*U
−5 −1
1 0 0 −5 2 −1 1 0 0 2
0 1 0 ∗ 1 0 3 = − 35 1 0 ∗ 0 11
5
27
5
0 0 1 3 1 6 −1 2
0 0 20
5 11 11
−5 2 −1 −5 2 −1
3 1 6 = 3 1 6
1 0 3 1 0 3
14
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 11
1 0 3
3 1 6
−5 2 −1
1 0 3
U= 3 1 6
−5 2 −1 F ↔ F
3 1
−5 2 −1
U= 3 1 6
1 0 3 F + 3 ∗F
2 5 1
−5 2 −1
U= 0 11 27
5 5
1 0 3 F + 1 ∗F
3 5 1
−5 2 −1
11 27
U= 0
5 5
2 14
0 5 5 F − 2 ∗F
3 11 2
−5 2 −1
11 27
U= 0
5 5
20
0 0 11
1 0 0
L= 0 1 0
0 0 1
1 0 0
L = − 15 1 0
− 35 11
2 1
RESULTADO:
1 0 3
A= 3 1 6
−5 2 −1
1 0 0
L = − 15 1 0
− 35 11
2 1
−5 2 −1
11 27
U= 0 5 5
20
0 0 11
P*A=L*U
−5 −1
1 0 0 −5 2 −1 1 0 0 2
0 1 0 1 0 3 = − 35 1 0 0 11
5
27
5
0 0 1 3 1 6 − 15 2
11 0 0 20
11
−5 2 −1 −5 2 −1
3 1 6 = 3 1 6
1 0 3 1 0 3
15
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 12
4 2 1
2 5 −2
1 −2 7
4 2 1
U= 2 5 −2
1 −2 7 F − 1 ∗F
2 2 1
4 2 1
U= 0 4 − 52
1 −2 7 F − 1 ∗F
3 4 1
4 2 1
U= 0 4 −5 2
0 − 52 27
4 F3 + 58 ∗ F2
4 2 1
U= 0 4 − 25
83
0 0 16
1 0 0
L= 0 1 0
0 0 1
1 0 0
L = 12 1 0
1
4 − 58 1
RESULTADO:
4 2 1
A= 2 5 −2
1 −2 7
1 0 0
L = 12 1 0
1 5
4 − 8 1
4 2 1
U = 0 4 − 52
0 0 8316
P*A=L*U
1 0 0 4 2 1 1 0 0 4 2 1
1
0 1 0 2 5 −2 =
2 1 0 0 4 − 25
1 83
0 0 1 1 −2 7 4 − 58 1 0 0 16
4 2 1 4 2 1
2 5 −2 = 2 5 −2
1 −2 7 1 −2 7
16
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ejercicio 13
1 1 0 1
2
−1 5 0
5 2 1 2
−3 0 2 6
1 1 0 4
2 −1 5 0
U =
5
2 1 2
−3 0 2 6 F ↔ F
3 1
5 2 1 2
2 −1 5 0
U =
1
1 0 4
−3 0 2 6 F − 2 ∗ F
2 5
1
5 2 1 2
0 − 9 23 − 4
U = 5 5 5
1 1 0 4
−3 0 2 6 F − 1 ∗F
3 5 1
5 2 1 2
0 − 9 23 − 4
U = 5 5 5
3 1 18
0
5 − 5 5
−3 0 2 6 F +3F
4 5 1
5 2 1 2
0 − 9 23 − 4
U = 5 5 5
3
0
5 − 51 18 5
6 13 36
0 5 5 5 F +1F
3 3 2
5 2 1 2
0 − 9 23 − 4
U = 5 5 5
0 0 4 10
3 3
6 13 36
0 5 5 5 F4 + 32 ∗ F2
5 2 1 2
0 − 95 23
5 − 45
U=
0 4 10
0 3 3
17 20
0 0 3 3
F3 ↔ F4
5 2 1 2
0 − 59 23
5 − 45
U=
0 17 20
0 3 3
4 10
0 0 3 3 4 ∗F
F4 − 17 3
5 2 1 2
0 − 95 23
5 − 45
U=
0 17 20
0 3 3
30
0 0 0 17
17
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
1 0 0 0 1 0 0 0
1 0 0 0
2 2
0 1 0 0
5 1 0 0
5 1 0 0
L= L= L=
1
− 13 − 35 − 32
0 0 1 0 1 0 1 0
5
1
0 0 0 1 − 53 − 23 4
17 1 5 − 13 4
17 1
RESULTADO:
1 1 0 1
2 −1 5 0
A= 5
2 1 2
−3 0 2 6
1 0 0 0
2 1 0 0
L= 5
−3 −2 1 0
5 3
1
5 − 13 17 4
1
5 2 1 2
0 − 9 23 − 4
U= 5 5 5
0 0 17 20
3 3
30
0 0 0 17
P*A=L*U
1 0 0 0 5 2 1 2
1 0 0 0 1 1 0 4
0 1 0 0 2 −1 5 0 2 1 0 0 0 − 95 23
− 45
= 5 5
0 2 7 − 35 − 23
0 0 1 0 −3 1 0 0 17 20
0 3 3
1
0 0 0 1 −3 0 2 6 5 − 13 4
17 1 0 0 0 30
17
5 2 1 2 5 2 1 2
2
−1 5 0 2
= −1 5 0
−3 0 2 6 −3 0 2 6
1 1 0 4 1 1 0 4
18
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
1 3 5 7 1
2 −1 3 5 2
A=
0
,b =
0 2 5 3
−2 −5 −3 1 4
function [L U P X]=fac_LUP(A,B)
%Programa que permite factorizar LU a una matriz cuadrada A
% [L U P X]=fac_LUP([1 3 5;0 5 2;-1 4 2],[1;-2;-1])
% RECORDAR Y = inv(L)*P*b
% X = inv(U)*Y
[n,n]=size(A);
L=eye(n);
P=eye(n);
for k=1:n-1
[a,b]=max(abs(A(k:n,k)));%calcula el maximo considerando los elementos bajo la diagonal principa
if a==0
error('La matriz es singular')
return
end
m=k+b-1;
A=cambio_Filas(A,k,m);%Utiliza la funcion creada cambiando las filas
U=A;
P=cambio_Filas(P,k,m);
for k=1;n-1%columna
for j=k+1:n%fila
mult=U(j,k)/U(k,k);
U(j,k:n)=U(j,k:n)-mult*U(k,k:n);
L(j,k)=mult;
end
end
end
M=P*B;
Y=metodo_gauss(L,M);
X=metodo_gauss(U,Y');
end
19
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Solución:
Ab =
1 0 0 0 2
0 1 0 0 6
0 0 1 0 0
0 0 0 1 3
Ab =
L =
1.0000 0 0 0
-1.0000 1.0000 0 0
0.5000 0 1.0000 0
0 0 0 1.0000
U =
P =
0 1 0 0
0 0 0 1
1 0 0 0
0 0 1 0
X =
20
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
2 −2 0
U = e−2 2 0
0 − 1 3 F − e −2 ∗ F
2 2 1
2 −2 0
U= 0 e 0
0 −1 3 F + 1 ∗F
3 e 2
2 −2 0
U= 0 e 0
0 0 3
1 0 0 1 0 0
e −2
L= 0 1 0 L= 2 1 0
0 0 1 0 − 1e 1
L∗Y = b
Y = ( L − 1) ∗ b
0 0|1 0 0
1
L− 1 = e−2 2 1 0|0 1 0
−
0 e1 1|0 0 1 F −( 2 )∗ F1
2 e −2
0 0|1
1 0 0
L− 1 = 0 1 0| e−−22 1 0
0 −e1 1|0 0 1 F + 1 ∗F
3 e 2
1 0 0|1 0 0
−2
L − 1 = 0 1 0 | e −2 1 0
0 0 1| e ( − 2
e −2)
1
e 1
de donde:
1 0 0
L− 1 =
( e−−22 ) 1 0
( e(e−−22) ) 1
e 1
21
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
Ahora obtenemos Y:
1 0 0
0
Y = L− 1 ∗ b =
( e−−22 ) 1 0
∗ e
( e(e−−22) ) 1
e 1 2
0
Y= e
3
2 −2 0|1 0 0
U − 1 = 0 e 0|0 1 0
0 0 3|0 0 1 F /2
2
1 −2 0| 12 0 0
U−1 = 0 e 0|0 1 0
0 0 3|0 0 1 F /e
2
1 −1 0| 12 0 0
U − 1 = 0 1 0|0 1e 0
0 0 3|0 0 1 F /3
3
1 −1 0| 12 0 0
U − 1 = 0 1 0|0 1e 0
0 0 1|0 0 13 F + F
2 1
1 0 0| 12 1e 0
U − 1 = 0 1 0|0 1e 0
0 0 1|0 0 13
Ahora obtenemos X:
X = (U − 1 ) ∗ Y
1 1
2 e 0 0
X = U−1 ∗ Y = 0 1
e 0 ∗ e
1 3
0 0 3
1
X= 1
1
22
Métodos Numéricos • 29 de Junio de 2015 • Nrc: 1683
II. Conclusiones
• Después de realizar este trabajo se puede afirmar que existe la ventaja de la automatización
de casi cualquier método para resolución de los sistemas existentes tal es el caso de los
métodos iterativos como son Gauss, Gauss-Jordan estudiados en el presente curso.
• Es necesario mostrar que así como se puede incorporar la gran facilidad de la automatización
del uso de los diferentes algoritmos estos aún no sustituyen la presencia del hombre ya que
éste se encargará de realizar un correcta interpretación.
• Mycgas veces los sistemas por más elaborados que se encuentren no pueden realizar ciertas
operaciones tal como se pudo ver en el ejercicio 15 en el cual fue necesario realizar un
desarrollo manual y solo hasta llegar a cierto punto para poder llegar a un resultado en el
cual la computadora pueda ayudar con su rapidez de ejecución.
References
[1] Mgs. Ordóñez Moreno, Fabián M., Trabajo 2, Ejercicios Propuestos, Metodos matemáticos. 1de
junio de 2015.
23