Rechercher : dans
Par :

[Algorithme] déterminant de matrice

Dernière réponse le 4 sep 2009 à 15:37:00 Omega_55, le 14 jui 2006 à 14:55:16 
 Signaler ce message aux modérateurs

Salut à tous,

Quelqu'un connaît il un algorithme de calcul de déterminant (pour une matrice carrée) autre que la règle des cofacteurs ?

J'ai essayé les cofacteurs en C++ avec un algorithme récursif, c'est une horreur. Il peut mettre plus de 10 secondes à calculer le déterminant d'une matrice 10x10 ... :-(

Merci pour vos idées.

A+

Configuration: Dev C++

Meilleures réponses pour « [Algorithme] déterminant de matrice » dans :
Concaténer les vecteurs ou les matrices sous Matlab VoirL'opération de concaténation des variables de Matlab consiste à regrouper ces variables dans une seule (vecteur ou matrice). Exemple : |2 3 4| X= |1 2 5| |0 2 7| Avec : |9 6 8| Y= |5 6 2| |3 2 1| Donne...
Déterminer le format d'un fichier VoirLa méthode de base pour déterminer le type d'un fichier est de regarder son extension. Toutefois, il est parfois possible que l'extension ne corresponde pas ou bien que le fichier ne possède plus d'extension, dans le cas par exemple d'une erreur de...
Introduction à l'algorithmique VoirNotion d'algorithme La mise au point d'un programme informatique se fait en plusieurs étapes. Il s'agit de fournir la solution à un problème, la première étape consiste donc à analyser le problème, c'est-à-dire en cerner les limites et le mettre...

1

Omega_55, le 14 jui 2006 à 20:52:52
  • +1

Re-salut tout le monde,

Si jamais, j'ai trouvé un début de réponse à mon problème: je fais une décomposition LU de la matrice, puis je calcule le déterminant avec les éléments diagonaux uniquement.

C'est bien plus rapide, mais encore bien plus lent que MATLAB. Je me demande comment ils font...

*L'algèbre linéaire, quand ça te tient... ;-) *

A+

Répondre à Omega_55

2

96763287, le 26 mar 2008 à 10:21:28
  • +1

Salut,

je trouve un probléme pour calculer l'inverse et le determinent d'un matrice en languaga java


merci à votre aide

Répondre à 96763287

3

mimi, le 12 mai 2008 à 16:51:05

Je cherche un algorithme en language pascal qui permet de caluler le determinant d'une matrice d'ordre n*n

Répondre à mimi

5

bakarim, le 22 fév 2009 à 13:06:22
  • +3

Voila le programme on pascal qui vous permet de calculer det(*par kamal bakarim *)
program determinant;
uses crt;
var n, i, j: integer;
mat : array[0..20,0..20] of real;

procedure remplire;
begin
writeln('entrez les elements du matrice');
for i := 0 to n-1 do for j := 0 to n-1 do read(mat[i, j]);
end;

procedure subst(p:integer);
var t:integer;
mat0 : array[0..20, 0..20] of real;
begin
t := -1;
for i := p+1 to n-1 do
begin
if mat[i,p] <> 0 then
begin
for j := 0 to n-1 do
begin
mat0[p,j] := mat[i,j];
mat0[i,j] := mat[p,j];
end;
t := i;
i := n + 1;
end;
end;
if t <> -1 then
begin
for i := 0 to n-1 do
begin
for j := 0 to n-1 do if (i <> p)and(i <> t) then mat0[i,j] := mat[i,j];
end;
for i := 0 to n-1 do for j := 0 to n-1 do mat[i,j] := mat0[i,j];
end;
end;

function det(e :integer) : real;
begin
det := 1;
for i := 0 to n-1 do det := det * mat[i,i];
if (e mod 2 = 1) then det := det * (-1);
end;

var t, k, e : integer;
cont : boolean;

begin
writeln(' calcule du determinant ');
writeln('entrez l''ordre du matrice dont le determinant est a calculer: ');
readln(n);
remplire();
t := 0;
k := 1;
e := 0;
cont := true;
while (k < n)and(cont)do
begin
if mat[t,t] = 0 then
begin
subst(t);
inc(e);
end;
if mat[t,t] = 0 then
begin
writeln('le determinant de cette matrice est: 00');
cont := false;
end
else
begin
for j := n-1 downto t do mat[k, j] := mat[k,j] - ((mat[k, t]*mat[t, j])/mat[t, t]);
inc(k);
if (k = n)and(t < n - 1) then
begin
inc(t);
k := t + 1;
end;
end;
end;
if cont then
writeln('le determinant de cette matrice est: ', det(e):5:3);
readln;
readln;
readln;
end.

Répondre à bakarim

6

zanu, le 4 sep 2009 à 15:06:40

Quelqu'un aurait il le code en C (recursif ou iteratif) svp?

Répondre à zanu

8

 zanu, le 4 sep 2009 à 15:37:00

Je suis pas informaticien, et ça me plait juste de voir comment tourne les algorithmes. je voudrais le tester dans un compilateur C.
merci de répondre plus gentiment et de cacher de temps en temps vos caractères bestiaux.

Répondre à zanu