Beruflich Dokumente
Kultur Dokumente
TAREA 3
TEMA: ERRORES
FECHA: 28/04/2015
Los archivos .txt son MatrizA y MatrizB matrices cuadradas de 40x40 y no necesariamente
simtricas, se muestran a continuacin:
MATRIZ A
MATRIZ B
El resultado en MATLAB es el siguiente:
MATRIZ A
MATRIZ B
No se puede observar la totalidad de los resultados debido a las dimensiones de las matrices.
2.- CONDICIONES PARA EL INGRESO DE MATRICES
A continuacin se muestran algunas sentencias que avisan al usuario cuando se intentan ingresar
matrices de dimensiones incorrectas.
[m,n]=size(A);
[f,c]=size(B);
if m~=n;
disp('la matriz A debe ser cuadrada');
end;
if f~=c;
disp('la matriz B debe ser cuadrada');
end;
if m>40;
disp('la matriz A excede el numero maximo');
end;
if f>40;
disp('la matriz B excede el numero maximo');
end;
if f~=m;
disp('las matrices deben ser del mismo orden');
end;
La siguiente captura muestra parte de la Matriz C que almacena los resultados de la suma:
RESTA
%RESTA DE MATRICES
disp('Resta (Matriz D)')
for i=1:m
for j=1:n
D(i,j)=A(i,j)-B(i,j);
end;
end;
disp (D);
MULTIPLICACIN
%MULTIPLICACIN DE MATRICES
disp('Multiplicacion (Matriz E)')
for i = 1 : m;
for j = 1 : c;
s=0;
for k=1:f;
A(i,k);
B(k,j);
s=s+A(i,k)*B(k,j);
end;
E(i,j)=s;
end;
end;
disp(E);
En este caso f denota las filas y c las columnas, se utiliza en contador k de acuerdo a la definicin
de multiplicacin de matrices.
MATRIZ TRASPUESTA
%TRASPUESTA MATRICES
disp('Matrices Transpuestas:')
for i=1:m;
for j=1:n;
Ct(i,j)= C(j,i);
Dt(i,j)= D(j,i);
Et(i,j)= E(j,i);
end
end
disp('Transpuesta de C (Matriz Ct)')
disp(Ct);
disp('Transpuesta de D (Matriz Dt)')
disp(Dt);
disp('Transpuesta de E (Matriz Et)')
disp(Et);
NOTA: Al intentar operar las matrices con la Matriz A alterada MATLAB presente el siguiente error,
puesto que no se pueden sumar matrices de distinto orden.
Lo mismo ocurrir al intentar realizar las dems operaciones ya que las matrices no cumplen las
condiciones necesarias.
MTODO FADEV-LEVERRIER
A continuacin se muestra el script para calcular la matriz inversa por este mtodo. En la primera
parte se define a la matriz P{1} que ser igual a la matriz C de la que se quiere obtener la inversa,
sta matriz es parte del arreglo de celdas P que almacena todas las matrices P{1,2,3,,n} a lo largo
de la iteracin. Los arreglos de celdas son arreglos especiales de MATLAB que contienen en sus
elementos llamados celdas otros arreglos por ejemplo matrices.Tambin se define a p(1) como la
traza de la matriz C. La traza es la suma de los elementos de la diagonal de una matriz.
A continuacin se emplea la funcin for para crear un bucle, en este caso se usa el contador i
empezando en 2 hasta el orden de la matriz m porque ya se han definido los valores de P{1} y
p(1).El trabajo del bucle es continuar calculando los elementos del vector p y el arreglo P y
almacenarlos.
NOTA: Inicialmente el vector p se ha definido como un vector de unos ones() a lo largo de la
iteracin cada elemento de p cambiar su valor 1 por el de la traza correspondiente.
La penltima lnea muestra el calculo de la matriz inversa a partir de los valores finales resultantes
del bucle.
%Matriz Inversa Metodo FADEV LEVERRIER
disp('Inversas (Metodo FADEV-LEVERRIER)')
%MATRIZ INVERSA C
disp('iC')
P{1}=C;
p=ones(1,m);
p(1)=trace(C);
for i=2:m;
P{i}=C*(P{i-1}-p(i-1)*eye(m));
p(i)=(1/i)*trace(P{i});
end;
iC=(1/p(m))*(P{m-1}-p(m-1)*eye(m));
disp(iC);
5.- ERRORES
ERROR VERDADERO
%VALORES APROXIMADOS
disp('ERROR VERDADERO CON inv(C)')
disp('VALORES APROXIMADOS')
disp('inC')
inC=cell(1,5)
for i=m-4:m;
inC{i}=(1/p(i))*(P{i-1}-p(i-1)*eye(m));
end
for i=m-4:m;
disp(inC{i})
end
Para el calculo del error verdadero se utilizan valores aproximados, estos se los obtiene mediante
el proceso de iteracin de la inversa de FADEV-LEVERRIER, tomando los 5 ltimos valores de las
iteraciones a los cuales se los almacena en una celda de inversas de la matriz con los llamados
valores aproximados, con la celda de matrices inversas se procede a obtener el Error Verdadero.
Como se observa se almacenan en la celda inC las matrices de las 5 ultimas iteraciones
%ERROR VERDADERO
disp('ERROR VERDADERO')
ETC=cell(1,5)
for i=m-4:m;
ETC{i}= invC - inC{i} ;
end
for i=m-4:m;
disp(ETC{i})
end
Con los valores aproximados obtenidos y almacenados en la celda de valores aproximados (inC) se
procede a calcular el error verdadero con la diferencia entre la inversa (de matlab inv() ) y la celda
obtenida de valores aproximados. Estos se almacenan en una nueva celda que contiene las
matrices de error verdadero para cada iteracin.
Una vez obtenida la celda la celda con matrices de error verdadero de cada iteracin se puede
obtener el error relativo y a su vez el error relativo absoluto anteponiendo el absoluto en el
siguiente bucle que realiza el cociente entre las matrices de error verdadero con la matriz de valor
verdadero para cada una de las cinco matrices provenientes de las diferentes iteraciones.
Con las matrices de Error relativo absoluto almacenadas en una nueva celda, para cada una de las
matrices se realiza el promedio de los errores, con los cuales se almacenan en un nuevo vector de
errores promedio.
Con el nuevo Vector Errores Promedio se tiene el promedio de errores para matriz de error
absoluto de cada iteracin, teniendo 5 valores de error, uno para cada iteracin, las cuales se las
pasa a graficar teniendo como ejes el numero de iteracin con su respectivo valor de error relativo
absoluto, se forma una lnea entre los cinco puntos para iteracin.
ERROR APROXIMADO
%ERROR APROXIMADO
for i=m-4:m;
EaC{i}=P{i}-P{i-1};
end;
disp('ERROR APROXIMADO');
for i=m-4:m
disp(EaC{1,i})
end
Para calcular los errores tambin se utilizan contadores que llamen las matrices de la iteracin
Fadev Leverrier en parejas, operen con ellas y almacenen los elementos dentro de los arreglos de
celdas. Los cdigos se han escrito siguiendo las definiciones de los distintos tipos de errores. Luego
se emplea tambin un contador para mostrar los ltimos 6 elementos del arreglo Error
Aproximado EaC en pantalla.
Se procede de igual forma para los dems errores y aplicando las definiciones respectivas.
ERROR APROXIMADO RELATIVO
%ERROR APROXIMADO RELATIVO
for i=m-4:m;
EarC{i}=(P{i}-P{i-1})./P{i};
end;
disp('ERROR APROXIMADO RELATIVO');
for i=m-4:m
disp(EarC{1,i})
end
CONCLUSIONES:
1. Mediante el uso de celdas para almacenar las matrices con procesos realizados a cada una
de ellas, se facilita en gran parte el trabajo ya que se almacenan matrices que se les trata
en bucles de iteraciones.
2. Para el proceso de FADEV-LEVERRIER es necesario terminar el nmero completo de
repeticiones del proceso para obtener una mayor precisin, como se puede observar en
las grficas de errores vs nmero de iteracin.
3. Tras realizar varias veces la comparacin de matrices inversas se concluye que los
resultados presentan precisin mas no exactitud.