43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
#ifndef _LRMP_H_
|
|
#define _LRMP_H_ 1
|
|
|
|
#include "vorrueckwaertsub.h"
|
|
#include <math.h>
|
|
|
|
int LRmP (int n, double ** a, int * p);
|
|
/* LR-Zerlegung mit halbmaximaler Pivotsuche */
|
|
/* Eingabe: */
|
|
/* n : Groesse der Matrix, */
|
|
/* a : Matrix, */
|
|
/* p : Vektor der Laenge n fuer Permutationen. */
|
|
/* Rueckgabe: */
|
|
/* a : LR-zerlegte Matrix, */
|
|
/* unterhalb der Diagonale ist L gespeichert, */
|
|
/* in der Diagonale und oberhalb R, */
|
|
/* p : Permutationen bei Pivotsuche. */
|
|
/* Rueckgabewert: */
|
|
/* bei Fehler */
|
|
/* (Matrix 'fast' singulaer, d.h. */
|
|
/* Pivotelement kleiner als eps = 1.0e-8) */
|
|
/* wird 1 zurueckgegeben, */
|
|
/* sonst 0. */
|
|
|
|
int Solve (int n, double ** a, double * b, int * p);
|
|
/* Berechnet Loesung von Ax=b mittels : */
|
|
/* Routine LRmP(n,a,p) fuer LR-Zerlegung, */
|
|
/* dann Substitutionen mit 'vorrueckwaertsub'. */
|
|
/* Eingabe: */
|
|
/* n : Groesse des Systems, */
|
|
/* a : Matrix, */
|
|
/* b : rechte Seite des LGS, */
|
|
/* p : Vektor, um die Permutationen zu speichern. */
|
|
/* Rueckgabe: */
|
|
/* b : Loesung, */
|
|
/* p : Permutationen von LRmP, */
|
|
/* a : LR-zerlegte Matrix. */
|
|
/* Rueckgabewert: */
|
|
/* falls die LR-Zerlegung nicht funktioniert 1, */
|
|
/* sonst 0. */
|
|
|
|
#endif
|