Matlab - Matriz Estrictamente Dominante

   
Vista:

Matriz Estrictamente Dominante

Publicado por Juan José (60 intervenciones) el 09/10/2014 14:04:41
Hola amigos,

Soy relativamente nuevo en MATLAB, y estoy aprendiendo autodidácticamente mediante este libro:
"Matlab y matemática computacional" Sagrario y Bernardo

Ya he avanzado y "aprendido" los temas de CONTROL DEL MATLAB (básico). Ahora, estoy en la parte de Matemática Computacional e intento realizar los programas por mi mismo sin mirar la solución pero en pocas ocasiones consigo sacarlo. ¿Alguna recomendación para tener mente de programador?

Disculpad todo este rollo pero me frusta tener que mirar la solucion para la solución de los ejercicios.

AL PROBLEMA:
Estoy en la sección de sistemas lineales de ecuaciones iterativos y aparece el concepto MATRIZ ESTRICTAMENTE DOMINANTE, la cual tiene dos versiones:
- Dominante por filas ( |aii| > SUMA[j~=i] |aij| ) para todo i
- Dominante por columnas ( |ajj| > SUMA[i~=j] |aij| ) para todo j

Básicamente, que el valor absoluto de los elementos de la diagonal en una fila o columna sea mayor que la suma de los valores absolutos del resto de elementos de esa fila o columna, para todas las filas o columnas.

Problema: escribir una función para saber si cualquier matriz cuadrada es estrictamente diagonal dominante por filas o por columnas.

CÓDIGO:

function edd(A)
n=length(A);
kf=0;kc=0;
for i=1:n
sf=sum(abs(A(i,:)));
if(2*abs(A(i,i))>sf)
kf=kf+1;
end
sc=sum(abs(A(:,i)));
if(2*abs(A(i,i))>sc)
kc=kc+1;
end
end
if(kf==n)
disp('A es est. diag. dom. por filas')
else
disp('A NO es est. diag. dom. por filas')
end
if(kc==n)
disp('A es est. diag. dom. por columnas')
else
disp('A NO es est. diag. dom. por columnas')
end
end

El código funciona perfectamente, pero teniendo en cuenta la teoría, ¿Alguien sabe decirme porque está el 2 en la frase destacada en negrita del código?

Muchas gracias y perdonad el parrafazo.

Saludos!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Matriz Estrictamente Dominante

Publicado por Juan José (60 intervenciones) el 09/10/2014 16:51:40
Tengo la solución:

La línea negrita (y concretamente el 2) aparece de la ecuación de la definición:

|aii| > SUMA[j~=i] |aij|

Sabiendo:

sf=sum(abs(A(i,:)));
if(2*abs(A(i,i))>sf)

En la primera frase suma todos los componentes de la fila, para igualar el cambio realizado en la derecha de la desigualdad, debe introducirse el elemento diagonal a la izquierda de la desigualdad para no modificar nada.

Esto da como resultado:
2*abs(A(i,i))>sf

Saludos y espero que ha alguien le ayude!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar