MTODOS NUMRICOS CON SOFTWARE MATLAB
LGEBRA MATRICIAL
Matrices Numricas.- MATLAB permite trabajar con matrices numricas de forma muy cmoda y extensa. No
obstante, se trata de un programa especializado en clculo matricial. La tabla que se presenta a continuacin
muestra las funciones matriciales numricas que pueden realizarse con MATLAB.
logm (A)
Logaritmo neperiano de la matriz A
sqrt(A)
Raz cuadrada de la matriz cuadrada A
funm.(A,funcin)
Aplica la funcin a la matriz cuadrada A
transpose(A) o A
Matriz transpuesta de A
inv(A)
Matriz inversa de la matriz cuadrada A ( A 1 )
det(A)
Determinante de la matriz cuadrada A
rank(A)
Rango de la matriz A
trace(A)
Suma de los elementos de la diagonal de A
norm(A)
Norma de A o 2-norma (mayor valor singular de la matriz A)
norm(A,1)
1-norma de A (mayor suma de la columnas de A)
norm(A,inf)
Norma infinita de A (Mayor suma de las filas de A)
A^p
Matriz A elevada a la potencia escalar p
p^A
Escalar p elevado a la matriz A
rand(n)
Matriz aleatoria de orden n
magic(n)
Matriz mgica de orden n
eig(A)
Halla los autovalores de la matriz cuadrada A
[V,D]=eig(A)
Halla la matriz diagonal D de autovalores de A y una matriz V cuyas columnas son
los autovectores correspondientes, cumplindose que A*V=V*D
eig(A,B)
Devuelve un vector con los autovalores generalizados de las matrices cuadradas A y
B. Los autovalores generalizados de A y B son las races del polinomio en
det( * C
[V,D]=eig(A,B)
hess(A)
poly(A)
eye(m)
zeros(m)
zeros(m,n)
ones(m,n)
size(A)
tril (A)
triu(A)
diag(A)
A(a,:)
A(:,b)
[L,U]=lu(A)
[L,U,P]=lu(A)
R=chol(A)
jordan(A)
[V,J]=jordan(A)
A)
Halla la matriz diagonal D de autovalores generalizados de A y B y una matriz V
cuyas columnas son los autovectores correspondientes, cumplindose A*V=B*V*D
Devuelve la matriz de Hessemberg H
Devuelve el polinomio caracterstico de la matriz A
Devuelve una matriz identidad de orden mxm
Devuelve una matriz nula de orden mxm
Devuelve una matriz nula de orden mxn
Devuelve una matriz de unos de orden mxn
Devuelve el orden de la matriz A
Devuelve la parte triangular inferior de la matriz A
Devuelve la parte triangular superior de la matriz A
Extrae la diagonal de la matriz A como vector columna
Define la fila a-sima de la matriz A
Define la columna b-sima de la matriz A
Descompone la matriz A en el producto A=L*U , siendo U una matriz triangular
superior y L una matriz pseudotriangular inferior (triangularizable mediante
permutacin)
Da una matriz triangular inferior L, una matriz triangular superior U y una matriz
de permutacin P tales que P*A=L*U
Devuelve la matriz triangular superior R tal que R*R=A (Descomposicin de
cholesky de A) en caso de que A sea definida positiva. Si A no es definida positiva
devuelve un error
Halla la matriz cannica de jordan J de la matriz A (J tiene los autovalores de A en
la diagonal)
Halla la matriz cannica de Jordan J de la matriz A y la matriz de paso V cuyas
columnas son los autovectores de A cumplindose que V 1 * A *V J
DR. SORIA QUIJAITE JUAN JESS
Operadores Matriciales.A+B , A-B , A*B
A\B
B/A
An
pA
Suma, resta y producto de matrices
Si A es cuadrada, A \ B =inv(A)*B. Si A no es cuadrada, A\B es la solucin en el
sentido de mnimos cuadrados del sistema A.X=B
Coincide con (A \ B)
Coincide con A*A*A*A* *A n veces (n=escalar)
Realiza el clculo slo si p es un escalar
4
E-1) Introducir la matriz A
2 5
3
6
1 entonces al utilizar los comandos de la tabla se tiene:
3
A=[4 2 6;-2 5 -1;3 5 -3]
A=
4 2 6
-2 5 -1
3 5 -3
diag(A)
% calcula la diagonal de la matriz A como vector columna
ans =
4
5
-3
diag(A)'
% calcula la diagonal de la matriz A como vector fila
ans = 4 5 -3
transpose(A)
% calcula la transpuesta de la matriz A
ans =
4 -2 3
2 5 5
6 -1 -3
inv(A)
% calcula la matriz inversa de la matriz A
ans =
0.0481 -0.1731 0.1538
0.0433 0.1442 0.0385
0.1202 0.0673 -0.1154
trace(A)
% calcula la traza de la matriz A
ans = 6
eig(A)
% calcula los valores propios de la matriz A
ans =
5.5536 + 3.1439i
5.5536 - 3.1439i
-5.1072
det(A)
% calcula el determinante de la matriz A
ans =
-208
[V,D]=eig(A)
% construye una matriz D de valores propios de la matriz A
V=
0.5737 + 0.4973i 0.5737 - 0.4973i -0.5461
-0.4737 + 0.2961i -0.4737 - 0.2961i -0.0252
0.0458 + 0.3307i 0.0458 - 0.3307i 0.8373
D=
5.5536 + 3.1439i
0
0
0
5.5536 - 3.1439i
0
0
0
-5.1072
tril(A)
% calcula la matriz triangular inferior de la matriz A
DR. SORIA QUIJAITE JUAN JESS
ans =
4 0 0
-2 5 0
3 5 -3
triu(A)
ans =
4 2 6
0 5 -1
0 0 -3
size(A)
ans = 3 3
% calcula la matriz triangular superior de la matriz A
% calcula el orden de la matriz A
poly(A)
% calcula el polinomio caracterstico de la matriz A
ans = 1.0000 -6.0000 -16.0000 208.0000
norm(A)
% calcula la norma de la matriz A
ans = 7.7240
>> I=[ones(3,4),zeros(3,4),eye(3,4)]
I=
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
I(1,:)
ans =
1 1 1 1 0 0 0 0
I(:,11)
ans = 0 0 1
% grfico de la matriz A
% calcula la matriz particionada de orden 3x12
1
0
0
0 0 0
1 0 0
0 1 0
% identifica la primera fila de la matriz I
0 0 0
% identifica la columna N 11 de la matriz I
Grficos Matriciales.1)%Grfica de la matriz de orden 10x10
A=[2 4 5 2 5 7 8 7 4 6
;
2 7 -4 4 6 -7 8 9 5 7
;
5 4 -6 4 7 9 -4 7 9 6
;
2 1 -5 -9 3 5 -2 1 5 -4 ;
1 3 6 -8 4 3 -6 4 2 3
;
3 -4 5 6 3 7 4 7 4 5
;
9 2 4 -6 4 4 7 5 -8 8
;
2 3 4 7 2 13 4 9 5 -3 ;
4 5 -7 -5 5 7 2 -1 3 -4 ;
2 -4 6 3 -3 3 -9 7 -8 4 ]
mesh(A)
title('MATRIZ DE ORDEN
10X10','FontSize',[16],'color','b')
xlabel('EJE ABSCISAS (i)','FontSize',[12],'color','r');
ylabel('EJE ORDENADAS (j)','FontSize',[12],'color','r');
zlabel('EJE DE ALTURAS (aij)','FontSize',[12],'color','r');
grid on
zoom on
DR. SORIA QUIJAITE JUAN JESS
2) %Grfica de una matriz generada por A1(i,j)=i+sin(i+j);
%A1(i,j)es de orden 15x15
clear all
figure('units','Normal','pos',[0 0 1 1],'MenuBar','None', ...
'Name',' PLOTEOS DE MATRICES GENERADAS
');
n=20;
m=20;
for i=1:m
for j=1:n
A1(i,j)=i+sin(i+j);
end
end
mesh(A1)
title('MATRIZ GENERADA','FontSize',[17],'color','g')
xlabel('EJE i','FontSize',[15],'color','b');
ylabel('EJE j','FontSize',[15],'color','b');
zlabel('EJE aij','FontSize',[15],'color','b');
grid on
zoom on
LABORATORIO CON MATLAB
1
2
3
1
1
2
1
3
3
1
I.- Dadas las siguientes matrices de orden 6x6
1
1
1
2
2
4
4
3
2
4
3
2
1
1
1
2
2
3
5
3
4
1
1
3
2
1
1
3
2
3
2
5
3
3
5
3
1
2
4
1
1
3
2
1
1
5
7
2
1
3
2
6
6
3
3
5
4
3
3
4
3
4
7
8
9
2
6
4
2
3
4
1
4
1
1
2
2
3
1
2
1) Calcular las siguientes operaciones matriciales :
a) A+B
b) B-C
c) A-BxC
d) A 1
e) B
i) Diagonal de B j) AxB k) BxC
l) Ax(BxC)
f) C 1
g) AT xB 1
ll) (AxB)xC
m) A
2
xB
h) Diagonal de A
n) valores propios
q) A B
B)
2) Graficar las matices generadas por A(i, j ) cos (i) 2 sin( i j ) ; B(i, j ) j cos3 (i j ) sin 3 (i j ) ;
C(i, j ) 1/(i j 1) ; D(i, j ) ei j sin(i j ) ; E (i, j ) esen(i j ) sen( j ) 3) Graficar las matrices de
de A, B y C
o) Determinante de A, B y C
p) ( A B)( A
2
orden 10x10 definidas por :
aij
ij ; i
i i. j
j ;i
bij
cos(ij) ; i
i i. j
j ;i
DR. SORIA QUIJAITE JUAN JESS
j
j
; cij
sin( i
j) ; i
i i. j
j ;i
MTODOS NUMRICOS CON SOFTWARE MATLAB
SISTEMAS TRIANGULARES
Sistemas Lineales Triangulares
Definicin.1) Se dice que la matriz A [aij ] de orden nxn es triangular superior cuando sus elementos verifican
aij
0 ;
2) Se dice que la matriz A
aij
0 ;
[aij ] de orden nxn es triangular inferior cuando sus elementos verifican
i
Si A es una matriz triangular superior, entonces se dice que el sistema de ecuaciones AX=B es un sistema
triangular superior de ecuaciones lineales, sistema que tiene la forma:
a11 x1
a13 x3 a1 n 1 xn
a1 n xn
b1
a23 x3 a2 n 1 xn
a2 n xn
b2
a33 x3 a3 n 1 xn
a3 n xn
b3
a12 x2
a22 x2
an
(1)
1 n 1 n 1
an
bn
an n xn
bn
1n n
Teorema.- (Sustitucin regresiva)
Supongamos que AX=B es un sistema triangular superior como el dado en (1). Si akk
,entonces existe una solucin nica de (1) .
Teorema.Si una matriz A
1,2,, n
0 ; para k
[aij ] de orden nxn es triangular superior o inferior, entonces el determinante de la matriz A es:
n
a11 . a22 .a33 . . ann
det( A)
aii
i 1
E-1) Usar el mtodo de sustitucin regresiva para resolver el sistema lineal:
4 x1
x2
2 x3
3 x4
20
2 x2
7 x3
4 x4
6 x3
5 x4
3 x4
6
Resolucin
Llevndolo a la forma matricial AX=B, se tiene:
4
0
1 2
2 7
3
4
x1
x2
x3
x4
20
7
4
6
, donde A
4
0
3
4
a) ploteo de la matriz A
1 2
2 7
DR. SORIA QUIJAITE JUAN JESS
x1
; X
x2
x3
x4
20
7
4
6
b) Usando el programa backsub
%Sustitucin regresiva
%Soluciona un sistema triangular superior AX=B
%por el mtodo de sustitucin regresiva
function X=backsub(A,B)
n=length(B);
X=zeros(n,1);
X(n)=B(n)/A(n,n);
for k=n-1:-1:1
X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);
end
-------------------------------------------------------------------------------------
Compilarlo con :
A=[4 -1 2 3;
0 -2 7 -4;
0 0 6 5;
0 0 0 3]
B=[20;-7;4;6]
backsub(A,B)
------------------------------------------------------------------------------------%resultados
backsub(A,B)
A = 4
-1
2
3
0
-2
7
-4
0
0
6
5
0
0
0
3
B = 20
-7
4
6
ans= 3
-4
-1
2
Luego la solucin del sistema es:
{( x1; x2 ; x3 ; x4 )} {(3 ; 4 ; 1 ;2)}
E-2) Usar el mtodo de sustitucin regresiva para resolver el sistema lineal:
sen1 x1
sen2 x2
sen3 x3
cos1 x2
sen4 x4
cos 2 x3
senh1x3
sen5
cos 3 x4
senh2 x4
log 2 x4
cos 4
senh3
log 4
Llevndolo a la forma matricial AX=B, se tiene:
sen1
0
sen2 sen3
cos1 cos 2
sen4
cos 3
x1
senh1
senh2
x2
x3
log 2
x4
sen5
cos 4
senh3
log 4
-------------------------------------------------------------------------------------------------------------------------------------%Lo compilamos con:
A=[sin(1) -sin(2) sin(3) -sin(4);
0 -cos(1) cos(2) cos(3);
0 0 sinh(1) sinh(2);
0 0 0 log10(2)]
B=[sin(5);cos(4);sinh(3);log10(4)]
backsub(A,B)
-----------------------------------------------------------------------------------
DR. SORIA QUIJAITE JUAN JESS
%Resultados:
backsub(A,B)
A =
0.8415
-0.9093
0.1411
0.7568
0
-0.5403
-0.4161
-0.9900
0
0
1.1752
3.6269
0
0
0
0.3010
B =-0.9589
-0.6536
10.0179
0.6021
ans=-7.9431
-4.2664
2.3521
2.0000
LABORATORIO CON MATLAB
E-1) Resuelva el sistema triangular superior y halle el valor del determinante de la matriz de los coeficientes as
como el ploteo.
3x1 2 x2
4 x2
a)
tan1 x1
x3
x4
x3
2 x4
2 x3
3x4
11
5 x4
15
tan 2 x2
2 tan 3 x3
tan 4 x2
d)
2 ln 5 x3
5 x1 3x2
b)
11x2
7 x3
x4
9 x3
5 x4
3x3 13x4
Ln4
log 3x4
sen4
5 cos 8 x3 3 log 2 x4
sen9
cos15 x4
[bi 1 ]10 x1 siendo bi 1
11
14
[bi 1 ]30 x1 siendo bi 1
2 x4
7 x5
x4
2 x5
2 x4
x5
10
3x5
[aij ]15 x15
[aij ]20 x 20
8 cos 7 x3
ln 3x4
senh4
2senh5 x4
cosh 9
cos 3 x4
senh3
cos(ij) ; i
sen(i j ) ; i
cos(i. j )
;i
i
j
j
j
log( i j ) ; i
Ln(i. j )
;i
i
j
j
j
sen(i ) , resolver AX=B.
A [aij ]30 x 30
log( i 1) , resolver AX=B.
DR. SORIA QUIJAITE JUAN JESS
sen214
log 5 x4
5 cos 8 x3
[uij ]10 x10 con uij
x5
cot(i ) , resolver AX=B.
d) Resolver el sistema de ecuaciones AX=B siendo
y B
2sen8 x3
tan 5 x2
e)
0
[bi 1 ]20 x1 siendo bi 1
x3
2 x4
tan(i )
c) Resolver el sistema de ecuaciones AX=B siendo
y B
6 x3
c)
0
[bi 1 ]15 x1 siendo bi 1
2 x3
ln 7
b) Resolver el sistema de ecuaciones AX=B siendo
y B
x2
2 x2
log 2 x1 ln 2 x2
E-2) a) Resolver el sistema de ecuaciones UX=B, siendo U
y B
22
7 x4
log 3x4
4 x1
14
1
;i
i j 1
senh(i j )
0
i
j
;i
j
Tarea Domiciliaria
E-1) Se dice que un sistema lineal AX=B es triangular inferior cuando aij
0 siempre que i<j. Construya un
programa forsub , anlogo al programa backsub para resolver el siguiente sistema triangular inferior.
a11 x1
b1
a21 x1
a22 x2
a31 x1
a3 2 x2
an
an 11 x1
an1 x1
b2
a33 x3
b3
12 2
an 2 x2
an
x an
13 3
bn
1n 1 n 1
an 3 x3 an n 1 xn
an n xn
bn
E-2) Resolver los siguientes sistemas triangulares inferiores y calcular det(A) as como su ploteo.
2 x1
a)
x1
6
4 x2
3 x1 2 x2
x3
x1 2 x2
6 x3
4
3 x4
b)
5 x1
10
x1 3x2
3x1
4 x2
2 x3
x1 3x2
6 x3
2
x4
sen2 x1
c)
log 4
cos 3 x1 sinh 5 x2
sen6
tan 2 x1 2sen6 x2
log 4 x1
tanh 2 x2
4 x3
2 cos 6 x3
ln 6
3x4
E-3) Usar el programa forsub (creado por Ud) para resolver los siguientes sistemas de ecuaciones triangulares
Inferiores :
a) Resolver el sistema de ecuaciones LX=B, siendo L
y B
[bi 1 ]20 x1 siendo bi 1
[lij ]20 x 20 con lij
[aij ]15 x15
[bi 1 ]30 x1 siendo bi 1
j
j
j
[aij ]20 x 20
j
j
j
sen(i ) , resolver AX=B.
d) Resolver el sistema de ecuaciones AX=B siendo
y B
log( i j ) ; i
Ln(i. j )
;i
0
[bi 1 ]20 x1 siendo bi 1
cot(i ) , resolver AX=B.
c) Resolver el sistema de ecuaciones AX=B siendo
y B
sen(i j ) ; i
cos(i. j )
;i
0
[bi 1 ]15 x1 siendo bi 1
j ;i
b) Resolver el sistema de ecuaciones AX=B siendo
y B
A [aij ]30 x 30
log( i 1) , resolver AX=B.
DR. SORIA QUIJAITE JUAN JESS
1
;i j
i j 1
senh(i j )
;i j
0
; i j
MTODOS NUMRICOS CON SOFTWARE MATLAB
SISTEMAS DE ECUACIONES LINEALES
Descomposicin triangular.-
Dada la matriz
a11
a12
a13
a21
a31
an 11
a22
a32
an 12
an1
an 2
a1n
b1
a23 a2 n
a33 a3n
an 13 an 1n
b2
b3
bn 1
bn
an 3
ann
Sea el sistema A. X b , puede ser almacenado en un arreglo de nx(n+1), donde los coeficientes del vector b se
almacenan en la columna (n+1) del arreglo. Esta nueva matriz se le conoce como matriz aumentada y se la denota
como Aa [ A | b ] .
Las operaciones con filas, pueden aplicarse a la matriz aumentada que son:
fj
Intercambio.- El orden de dos filas puede ser cambiado , f i
Escalamiento.- Una fila se puede multiplicar por una constante diferente de cero fi
. fi
Reemplazo.- Una fila puede reemplazada por la suma de esa fila y un mltiplo de otra fila f i
fi
k fj
I.- Mtodo de eliminacin de GAUSS
Algoritmo
Gauss
for i=1 to n-1
if a[i , i] =0 then
Intercambio de filas
for j=i+1 to n
m=a[ j, i] / a[i , i]
for k=i to n+1
a[j,k]=a[ j,k]-m*a[i , k]
end Gauss
El nmero arr o el valor en la celda (r , r) cuando es usado para eliminar la variable xr en la filas r+1; r+2; ; n es
conocido como el elemento pivotal r, siendo la fila r la fila pivotal.
E-1) Resolver el sistema de ecuaciones lineales por el mtodo de eliminacin de GAUSS
x1 2 x2
x3 3x4
x5
2 x1
x2
3x3
x4
2 x5
x1 3x2
2 x3
x4
x5
3x1
2 x3
x4
x4
x5
x2
2 x1 4 x2
x3
x5
2
4
3
1
8
Resolucin
Llevando a la forma matricial se tiene :
x1
1
2
2
1
1
3
3
1
1
2
x2
2
4
x3
1
1
x4
x5
entonces se tiene A. X
1
8
i) Ploteando la matriz A se tiene :
DR. SORIA QUIJAITE JUAN JESS
A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];
mesh(A)
title('MATRIZ "A" DE ORDEN 5x5','FontSize',[16],'color','g')
xlabel('EJE ABSCISAS (i)','FontSize',[10],'color','b');
ylabel('EJE ORDENADAS (j)','FontSize',[10],'color','b');
zlabel('EJE DE ALTURAS (aij)','FontSize',[10],'color','b');
grid on
zoom on
El programa Eliminacin soluciona este sistema de ecuaciones lineales (De cualquier orden)
%guardarlo en una ventana con Eliminacin.m
function x=Eliminacion(AA,b)
[n n]=size(AA);
x=zeros(n,1);
A=[AA b'];
n1=n+1;
for i=1:n
if A(i,i)==0
A=Intercambio(A,i);
end
for k=i+1:n
Pivote=A(k,i)/A(i,i);
for j=i:n1
A(k,j)=A(k,j)-Pivote*A(i,j);
end
end
end
x(n)=A(n,n1)/A(n,n);
for i=n-1:-1:1
suma=A(i,n1);
for j=i+1:n
suma=suma-A(i,j)*x(j);
end
x(i)=suma/A(i,i);
end
----------------------------------------------------------------------------------------------------------------------------------Crear una nueva ventana y guardarlo con Intercambio.m :
function A=Intercambio(A,i)
[n n1]=size(A);
k=i+1;
while (k<=n)&(A(k,i)==0)
k=k+1;
end
if k<=n
for j=1:n1
temp=A(i,j);
A(i,j)=A(k,j);
A(k,j)=temp;
end
end
10
DR. SORIA QUIJAITE JUAN JESS
----------------------------------------------------------------------------------------------------------------------------------Compilarlo con
A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];
b=[2 4 3 -1 8];
Eliminacion(A,b)
Cuyos resultados son :
ans = 2
-1
-2
1
3
II.- Mtodo de GAUSS-JORDAN
Para invertir una matriz, el mtodo de Gauss-Jordan es el ms eficiente; esto quiere decir que para el sistema
A. X b usando la matriz aumentada, el mtodo de Gauss-Jordan produce la solucin.
Del sistema A. X b y sabiendo que A es invertible, entonces :
A 1 ( A. X )
A 1.b
I .X
X
A 1.b
A 1.b
Si se aplica Gauss-Jordan a una matriz aumentada Aa
O. E
A b
A | b se tendra entonces :
I b* , donde b* es la solucin del sistema de ecuaciones.
Es una variante del mtodo de eliminacin de Gauss; siendo la principal diferencia, que cuando se elimina una
incgnita no slo se elimina de las ecuaciones siguientes sino de todas las otras ecuaciones. Es decir:
Sea W
A b
a11
a21
a12
a22
a13
a23
a31
a32
a33
b1
b2 , se transforma en
b3
1 0 0 b1'
W
I b'
0 1 0 b2'
0 0 1 b3'
y la solucin es x b '
ALGORITMO
Gauss-Jordan
for i=1 to n
if a[i,i]=0 then
Intercambiar filas
m=a[i , i]
for k=i to n+1
a[i,k]=a[i,k]/m
for j=1 to n
if i <> j then
m=a[j,i]
for k=i to n+1
a[j,k]=a[j,k]-m*a[i,k]
end Gauss-Jordan
E-1) Resolver el sistema de ecuaciones lineales por el mtodo de GAUSS-JORDAN
x1 2 x2
x3 3x4
x5
2 x1
x2
3x3
x4
2 x5
x1 3x2
2 x3
x4
x5
3x1
2 x3
x4
x4
x5
x2
2 x1 4 x2
x3
x5
2
4
3
1
8
Resolucin
Llevando a la forma matricial se tiene :
11
DR. SORIA QUIJAITE JUAN JESS
x1
1
2
2
1
1
3
3
1
1
2
x2
2
4
x3
x4
x5
entonces la matriz aumentada Aa
1
8
1
2
2
1
1
3
3
1
1
2
2
4
1
1
1
8
Que con las operaciones elementales se lleva dicha matriz aumentada a la solucin.
1 0 0 0 0
0 1 0 0 0
Aa
0 0 1 0 0
2
1
2 lo que implica que solucin del sistema AX=b es X=(2 ; -1 ; -2 ; 1 ; 3)
0 0 0 1 0
0 0 0 0 1
El programa Gauss-Jordan resuelve este sistema de ecuaciones lineales:
%soluciona un sistema lineal de cualquier orden
%Guardarlo con GaussJordan.m
function x=GaussJordan(AA,b)
[n n]=size(AA);
x=zeros(n,1);
A=[AA b'];
n1=n+1;
for i=1:n
if A(i,i)==0
A=Intercambio(A,i);
end
Piv=A(i,i);
for j=i:n1
A(i,j)=A(i,j)/Piv;
end
for k=1:n
if k~=i
Pivote=A(k,i);
for j=i:n1
A(k,j)=A(k,j)-Pivote*A(i,j);
end
end
end
end
for i=1:n
x(i)=A(i,n1);
end
------------------------------------------------------------------------------------
Compilarlo con
A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];
b=[2 4 3 -1 8];
GaussJordan(A,b)
------------------------------------------------------------------------------------
Cuyos resultados son:
ans = 2.0000
-1.0000
-2.0000
1.0000
3.0000
12
DR. SORIA QUIJAITE JUAN JESS
LABORATORIO CON MATLAB
E-1) Utilice el mtodo de eliminacin de Gauss y el mtodo de Gauss-Jordan para resolver los siguientes sistemas
de ecuaciones lineales:
x1
a)
4 x2
x3
2 x1 7 x2
x4
x3
x1 4 x2
x1
2 x4
x3
3x1 10 x2
2 x4
2 x3
16
b)
1
5 x4
15
4 x2
9 x3 16 x4
4 x1 9 x2 16 x3
9 x1 16 x2
16 x1
25 x4
25 x3
25 x2
30
x1
54
36 x4
36 x3
86
49 x4
126
x1
3x3
4 x4
5 x5
13
x1
x2
2 x1
x2
2 x3
3x4
4 x5
10
x1
2 x2
d) 2 x1
2 x2
x3
2 x4
3x5
11
2 x1
2 x2
2 x3
x1
20 x4
35 x5
126
2 x1
2 x2
2 x3
x4 2 x5
2 x4 x5
x1 5 x2 15 x3 35 x4
70 x5
210
f)
x2
x3
x4
x5
x3
x6
x6
0
g)
10 x2 10 x3 15 x5 5 x6
5 x1 10 x2 20 x4 200
sen1 x1
sen2 x2
3 x1 3 x2
h)
x1 3x2
3x4
x3
2 x4
x3
x4
3x3
x4
15
4 x4
5 x5
35
6 x3 10 x4 15 x5
4 x2 10 x3
2 x2
2 x3
70
x2
x5
3x3
x5
x2
2 x1 3x2
2 x2
x1
x4
3x1
x1
e)
x3
c)
x2
5 x3
sen3 x3
2 x4
4 x5
sen4 x4
7 x6
0.05 x1 0.07 x2
0.06 x3
0.05 x4
0.23
0.07 x1 0.10 x2
0.08 x3
0.07 x4
0.32
0.06 x1 0.08 x2
0.10 x3
0.09 x4
0.33
0.05 x1 0.07 x2
0.09 x3
0.10 x4
0.31
sen5 x5
sen6 x6
sen7
10
cos 2 x1 cos 3 x2
cos 4 x3
cos 5 x4
cos 6 x5
cos 7 x6
cos 8
senh1x1
senh3 x3
senh4 x4
senh5 x5
senh6 x6
senh7
senh2 x2
log 1x1 log 2 x2
log 3 x3
log 4 x4
log 5 x5
log 6 x6
log 7
tan 1x1
tan 3 x3
tan 4 x4
tan 4 x5
tan 5 x6
tan 6
tan 2 x2
TAREA DOMICILIARIA
E-1) Utilice el mtodo de eliminacin de Gauss y el mtodo de Gauss-Jordan para resolver los siguientes sistemas
de ecuaciones lineales:
x1
2 x2
2 x1 3x2
a) 3x1
5 x5
4 x2
4 x1 2 x2
6 x1 6 x2
7 x3 10 x4 13x5
7 x3
5 x3
ln 2 x1 ln 3 x2
c)
4 x4
5 x2 11x3 16 x4
2 x1 7 x2
x1
3x3
7 x4
21x5
2 x5
3x4 10 x5
ln 4 x3
5 x3 3 x4
12
17
5 x3 18 x4
10 x1 9 x2
7 x3
b) 12 x1 12 x2
24 x4
13x3
30 x5
27 x4
18
35 x5
8 x1 6 x2
6 x3
20 x5
16
4 x1 5 x2
4 x3 15 x4 15 x5
11
ln 5 x4
ln 6 x5
6 x5 8 x6
ln 7 x6
15 x4
14
57
ln 8
20
cos 2 x1 cos 3 x2
cos 4 x3
cos 5 x4
cos 6 x5
cosh1x1 cosh 2 x2
cosh 3 x3
cosh 4 x4
cosh 5 x5
cos 7 x6
cosh 6 x6
log 1x1 log 2 x2
log 3 x3
log 4 x4
log 5 x5
log 6 x6
log 7
cot1x1 cot 2 x2
cot 3 x3
cot 4 x4
cot 4 x5
cot 5 x6
cot 6
13
20 x5
DR. SORIA QUIJAITE JUAN JESS
cos 8
cosh 7
32
MTODOS NUMRICOS CON SOFTWARE MATLAB
SISTEMAS DE ECUACIONES LINEALES ITERATIVOS
I. MTODO ITERATIVO DE JACOBI
Consideremos una ecuacin lineal Ax y , donde A es una matriz cuadrada , x es un vector desconocido y y
es el trmino de origen. Todos los mtodos iterativos requieren una estimacin inicial para comenzar la iteracin,
mismo que denotaremos por x( 0) . La estimacin inicial puede ser cualquier vector arbitrario. Si se dispone de una
buena estimacin, la convergencia de la resolucin iterativa ser rpida; si no, se puede utilizar como estimacin
inicial un vector nulo.
Condicin de Convergencia.Una condicin suficiente para que la resolucin iterativa converja es:
n
ai ,i
ai ,i
, i
j 1
j i
Si embargo, si A es irreducible , es decir; sin ninguna parte de la ecuacin puede resolverse independientemente del
resto, una condicin suficiente es:
n
ai ,i
ai ,i
, i
j 1
j i
Con desigualdad estricta para por lo menos una i.
El mtodo Iterativo de Jacobi se escribe como:
xi(t )
1
. yi
aii
ai , j x (jt
1)
j 1
j i
Donde t es la cuenta de iteraciones. Cuando t=1 en la ecuacin anterior, x del miembro derecho tiene superndice 0
,lo que significa que el valor es una estimacin inicial. En cada ciclo de iteracin se evala xi en orden creciente
segn i.
II. MTODO ITERATIVO DE GAUSS-SEIDEL.El mtodo de Gauss-Seidel es un poco diferente del mtodo iterativo de Jacobi y se escribe como :
xi( t )
1
. yi
aii
i 1
ai , j x (jt )
j 1
ai , j x (jt
1)
1,2,3
j i 1
III. MTODO DE SOBRERRELAJACIN SUCESIVA (SOR) .La Sobrerrelajacin Sucesiva (SOR) es uan mejora del esquema de Gauss-Seidel y su expresin matemtica es
xi( t )
w
. yi
aii
i 1
ai , j x (jt )
j 1
ai , j x (jt
1)
(1 w) xi( t
1)
j i 1
Donde w es un parmetro de sobrerrelajacin que satisface 1 w 2
como regla emprica, se puede asignar a w un valor entre 1.2 y 1.7
E-1) Resolver el sistema de ecuaciones lineales por el mtodo iterativo de Jacobi
10 x1
x2
x3
12
x1 10 x2
x3
12
x1 x2 10 x3
12
Resolucin
Llevando a la forma matricial Ax=b se obtiene
14
DR. SORIA QUIJAITE JUAN JESS
1,2,3
10 1
1 10
1
1
x1
x2
12
12
10
x3
12
%MTODO ITERATIVO DE JACOBI
function x=Jacobi(A,b)
[n n]=size(A);
x=zeros(n,1);
y=zeros(n,1);
error=0.0005;
NTOL=50;
k=0;
fprintf('%5d',k);
for m=1:n
fprintf('%10.5f',x(m));
end
while 1
flag=1;
for i=1:n
suma=0;
for j=1:n
if i~=j
suma=suma+A(i,j)*x(j)/A(i,i);
end
end
y(i)=b(i)/A(i,i)-suma;
end
k=k+1;
fprintf('\n%5d',k);
for i=1:n
if abs(y(i)-x(i))>error
flag=0;
end
x(i)=y(i);
fprintf('%10.5f',x(i));
end
if (NTOL==k)|(flag==1)
break
end
end
----------------------------------------------------------------------------------------------------------------------------------------Compilarlo con
%compilacin de Jacobi
A=[10 1 1;1 10 1;1 1 10];
b=[12 12 12 ];
Jacobi(A,b)
-----------------------------------------------------------------------------------------------------------------------------------------Resultados
Jacobi(A,b)
0 0.00000 0.00000 0.00000
1 1.20000 1.20000 1.20000
2 0.96000 0.96000 0.96000
3 1.00800 1.00800 1.00800
4 0.99840 0.99840 0.99840
5 1.00032 1.00032 1.00032
6 0.99994 0.99994 0.99994
ans =
0.9999
0.9999
0.9999
15
DR. SORIA QUIJAITE JUAN JESS
%Solucin exacta por el programa eliminacin.m (verificando)
Eliminacion(A,b)
ans =
1
1
1
E-2) Resolver el sistema de ecuaciones lineales por el mtodo iterativo de Gauss-Seidel
20 x1
x2
2 x1 10 x2
x1 x2
x3
x3
20 x3
20
11
18
Resolucin
Llevando a la forma matricial Ax=b se obtiene
20
1
2 10
1
1
x1
x2
20
x3
20
11
18
%PROGRAMA ITERACIN DE GAUSS-SEIDEL
function x=GaussSeidel(A,b)
[n n]=size(A);
x=zeros(n,1);
y=zeros(n,1);
error=0.0005;
NTOL=50;
k=0;
fprintf('%5d',k);
for m=1:n
fprintf('%10.5f,x(m)');
end
while 1
flag=1;
for i=1:n
suma=0;
for j=1:n
if i~=j
suma=suma+A(i,j)*x(j)/A(i,i);
end
end
y(i)=b(i)/A(i,i)-suma;
if abs(y(i)-x(i))>error
flag=0;
end
x(i)=y(i);
end
k=k+1;
fprintf('\n%5d',k);
for i=1:n
fprintf('%10.5f',x(i));
end
if (NTOL==k)|(flag==1)
break
end
end
-----------------------------------------------------------------------------------------------------------------------------------Compilarlo con
A=[20 -1 1;2 10 -1;1 1 -20];
b=[20 11 -18];
GaussSeidel(A,b)
---------------------------------------------------------------------------------
16
DR. SORIA QUIJAITE JUAN JESS
Resultados por Gauss-Seidel
GaussSeidel(A,b)
0
1 1.00000 0.90000 0.99500
2 0.99525 1.00045 0.99979
3 1.00003 0.99997 1.00000
4 1.00000 1.00000 1.00000
ans =
1.0000
1.0000
1.0000
Resultados por Jacobi
Jacobi(A,b)
0 0.00000 0.00000 0.00000
1 1.00000 1.10000 0.90000
2 1.01000 0.99000 1.00500
3 0.99925 0.99850 1.00000
4 0.99992 1.00015 0.99989
5 1.00001 1.00000 1.00000
ans =
1.0000
1.0000
1.0000
Resultados por Eliminancin
Eliminacion(A,b)
ans =
1
1
1
LABORATORIO CON MATLAB
E-1)En los ejercicios del 1 al 8 :
a) Empiece con x(0) 0 , use el mtodo iterativo de Jacobi y calcule x (t ) para t=1,2,3. Converge la iteracin
de Jacobi a la solucin ?
b) Empiece con x(0) 0 , use el mtodo iterativo de Gauss-Seidel y calcule x (t ) para t=1,2,3. Converge la
iteracin de Gauss-Seidel a la solucin ?
1.-
4 x1
x2
15
x1 5 x2
5 x1
x3
x2
5.- 2 x1 8 x2
x1 x2
17
x3
4 x3
2.-
10
11 6.3
8 x1 3 x2
10
x1 4 x2
2 x1 8 x2
5 x1
x2
x1 x2
x3
x3
4 x3
3.-
11
10
3
DR. SORIA QUIJAITE JUAN JESS
x1 3 x2
6 x1
4.-
2 x2
x1 5 x2
x3
x3
13
7.- 4 x1
x2
2 x1 x2
6 x3
2 x1 3 x2
7 x1
4 x1
8.-
2 x2
x2
x3
13
x1 5 x2
x3
2 x1 x2
6 x3
TAREA DOMICILIARIA
E-1) En los ejercicios
c) Empiece con x(0) 0 , use el mtodo iterativo de Jacobi y calcule x (t ) Converge la iteracin de Jacobi a
la solucin ?
d) Empiece con x(0) 0 , use el mtodo iterativo de Gauss-Seidel y calcule x (t ) Converge la iteracin de
Gauss-Seidel a la solucin ?
x1
a)
4 x2
x3
2 x1 7 x2
x3
x1 4 x2
c)
x2
x1
2 x2
x1
2 x4
x1
16
5 x4
x4
x5
3x3
b)
2 x3
x3
x1 3x2
2 x4
x3
3x1 10 x2
x1
x4
4 x4
15
5 x5
35
6 x3 10 x4 15 x5
4 x2 10 x3
70
d)
9 x3 16 x4
4 x1 9 x2 16 x3
9 x1 16 x2
16 x1
15
4 x2
49 x4
86
126
x1
2 x2
3x3
4 x4
5 x5
13
2 x1
x2
2 x3
3x4
4 x5
10
2 x1
2 x2
x3
2 x4
3x5
11
x4 2 x5
2 x4 x5
35 x5
126
2 x1
2 x2
2 x3
x1 5 x2 15 x3 35 x4
70 x5
210
2 x1
2 x2
2 x3
DR. SORIA QUIJAITE JUAN JESS
54
36 x4
36 x3
20 x4
18
25 x4
25 x3
25 x2
30