factorize
Class Crout

java.lang.Object
  |
  +--factorize.Crout

public class Crout
extends java.lang.Object

Factoriza una matriz cuadrada en LU (U con diagonal de unos).

Ejemplo de uso: squ: SquaredMatrix, vect: vector (double[])

 	Crout cro = new Crout(); 
 	vectX = cro.solve(squA, vectB); // Llama a cro.factorize(smA)
 	VectorPos.printColumn(vectX, "x");
 	squL = cro.getLowerMatrix();
 	squU = cro.getUpperMatrix();
 

Version:
2.0, 25/09/2001
Author:
Omar Posada Villarreal

Field Summary
private  SquaredMatrix A
          Matriz cuadrada original.
private  SquaredMatrix L
          Matriz triangular inferior.
private  int nSize
          Dimension de renglones y columnas de todas las matrices.
private  SquaredMatrix U
          Matriz triangular superior.
 
Constructor Summary
Crout()
          Constructor vacio.
 
Method Summary
private  double calculateLiiDiagCrout(int i, int j)
          Calcula la diagonal de la matriz (Lii).
private  double calculateLijInfCrout(int i, int j)
          Calcula la matriz triangular inferior.
private  double calculateUijSupCrout(int i, int j)
          Calcula la matriz superior con la diagonal con unos.
 void factorize(SquaredMatrix squA)
          Introduce la matriz cuadrada a factorizar.
 SquaredMatrix getLowerMatrix()
          Regresa la matriz inferior.
 SquaredMatrix getUpperMatrix()
          Regresa la matriz superior con unos en la diagonal.
 double[] solve(SquaredMatrix squA, double[] b)
          Busca la solucion de una matriz cuadrada.
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

Field Detail

nSize

private int nSize
Dimension de renglones y columnas de todas las matrices.

A

private SquaredMatrix A
Matriz cuadrada original.

L

private SquaredMatrix L
Matriz triangular inferior.

U

private SquaredMatrix U
Matriz triangular superior.
Constructor Detail

Crout

public Crout()
Constructor vacio.
Method Detail

calculateLiiDiagCrout

private double calculateLiiDiagCrout(int i,
                                     int j)
Calcula la diagonal de la matriz (Lii).

calculateLijInfCrout

private double calculateLijInfCrout(int i,
                                    int j)
Calcula la matriz triangular inferior.

calculateUijSupCrout

private double calculateUijSupCrout(int i,
                                    int j)
                             throws java.lang.ArithmeticException
Calcula la matriz superior con la diagonal con unos.
Throws:
java.lang.ArithmeticException - Division entre cero. L(i,i) debe ser distinto de 0.0.

solve

public double[] solve(SquaredMatrix squA,
                      double[] b)
               throws java.lang.ArithmeticException
Busca la solucion de una matriz cuadrada. Ax = b.
Parameters:
squA - Matriz cuadrada.
b - Vector del lado derecho.
Returns:
Vector solucion x.
Throws:
java.lang.ArithmeticException - Division entre cero.

factorize

public void factorize(SquaredMatrix squA)
               throws java.lang.ArithmeticException
Introduce la matriz cuadrada a factorizar. Se crean dos matrices cuadradas con las mismas dimensiones. Usar "getLowerMatrix()" y "getUpperMatrix()" para los resultados.
Parameters:
squA - Matriz cuadrada de entrada.
Throws:
java.lang.ArithmeticException - Division entre cero.
See Also:
getLowerMatrix(), getUpperMatrix()

getLowerMatrix

public SquaredMatrix getLowerMatrix()
Regresa la matriz inferior. Usar luego de "factorize".

getUpperMatrix

public SquaredMatrix getUpperMatrix()
Regresa la matriz superior con unos en la diagonal. Usar luego de "factorize".