A voir également:
- Programmation
- Application de programmation - Guide
- Programmation logo tortue télécharger - Télécharger - Études & Formations
- Programmation carte à puce vierge ✓ - Forum Matériel & Système
- Problème de programmation digicode extel klavy 3 ✓ - Forum Loisirs / Divertissements
- Programmation binaire - Guide
7 réponses
@nGel_974
Messages postés
3163
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
25 avril 2010
157
21 août 2008 à 11:04
21 août 2008 à 11:04
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
je ne sais pas, désolé mais c'était trop tentant ^^'
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
00000000001010101011111110100000000011111111100000000010100000000000101
01010100000001010101010000000101010000000010100000000101000000000001000
je ne sais pas, désolé mais c'était trop tentant ^^'
bapfuror
Messages postés
45
Date d'inscription
mardi 19 août 2008
Statut
Membre
Dernière intervention
23 juin 2009
5
21 août 2008 à 11:05
21 août 2008 à 11:05
Salut,
Ce n'est pas trop dure et en cherchant bien sur google tu trouveras certainement un prog fait ou l'algorithme !
Mais le forum n'est pas là pour tout te donner mais pour t'aider à te faire avancer. As tu déjà fais quelque chose sur ce programme ?
Ce n'est pas trop dure et en cherchant bien sur google tu trouveras certainement un prog fait ou l'algorithme !
Mais le forum n'est pas là pour tout te donner mais pour t'aider à te faire avancer. As tu déjà fais quelque chose sur ce programme ?
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
21 août 2008 à 11:18
21 août 2008 à 11:18
il faut que tu prenne le cas général.
Déjà il te faut savoir la taille de ta matrice, puis tu fait faire à ton programme les équation:
X = a*x + b*y + c*z
Y = d*x + e*y + f*z
Z = g*x + h*y + i*z
et tu fait exprimer x,y et z en fonction X,Y et Z (a,b,c,d,e,f,g,h,i étant le constante de ta matrice de taille trois)
ainsi tu auras ta matrice inverse.
Si la taille est plus grande que troi, tu rajoute deux inconnu:pour taille 4
X = a*x + b*y + c*z + j*w
Y = d*x + e*y + f*z + k*w
Z = g*x + h*y + i*z + l*w
W = m*x + n*y+ o*z + p*w
et tu exprimes x,y,z,w en fonction de X,Y,Z,W
Déjà il te faut savoir la taille de ta matrice, puis tu fait faire à ton programme les équation:
X = a*x + b*y + c*z
Y = d*x + e*y + f*z
Z = g*x + h*y + i*z
et tu fait exprimer x,y et z en fonction X,Y et Z (a,b,c,d,e,f,g,h,i étant le constante de ta matrice de taille trois)
ainsi tu auras ta matrice inverse.
Si la taille est plus grande que troi, tu rajoute deux inconnu:pour taille 4
X = a*x + b*y + c*z + j*w
Y = d*x + e*y + f*z + k*w
Z = g*x + h*y + i*z + l*w
W = m*x + n*y+ o*z + p*w
et tu exprimes x,y,z,w en fonction de X,Y,Z,W
Cher ami zozopa, je te repond comme l'ami qui m'a précédé que le forum est là pour t'aider cad vous pouvez commencer par faire quelque chose et situer ta difficulté là on peut t'aider. Tresor
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Inversion de matrice par la méthode de Pan et Reiff.
Le programme en Turbo Pascal
SOURCE : http://www.chez.com/algor/pan.htm
Cliquez ici pour charger une archive contenant les implémentations de l'algo en Turbo Pascal et en Delphi.
Merci
Inversion de matrice par la méthode de Pan et Reiff.
Le programme en Turbo Pascal
SOURCE : http://www.chez.com/algor/pan.htm
Cliquez ici pour charger une archive contenant les implémentations de l'algo en Turbo Pascal et en Delphi.
PROGRAM Pan_Reiff; USES Crt; TYPE Matrice=ARRAY[1..10,1..10] OF REAL; VAR MatA,MatB,MatC:Matrice; N:BYTE; OK:BOOLEAN; PROCEDURE Intro(VAR N:BYTE;VAR Mat:Matrice); VAR i,j:BYTE; BEGIN CLRSCR; TEXTCOLOR(YELLOW); WRITE('Nombre de lignes:');READLN(N); FOR i:=1 TO N DO FOR j:=1 TO N DO BEGIN {GOTOXY(3,4);CLREOL; WRITE('Introduisez A(',i,',',j,'): '); READLN(Mat[i,j]);} Mat[i,j]:=RANDOM(100);{Pour tester} END; END; PROCEDURE Attente; VAR St:STRING; BEGIN TEXTCOLOR(LIGHTRED); St:='Une touche pour continuer.'; GOTOXY(40-LENGTH(St) DIV 2,25);WRITE(St);READKEY; END; PROCEDURE Affiche(S:STRING;N:BYTE;Mat:Matrice); VAR i,j:BYTE; BEGIN CLRSCR; TEXTCOLOR(LIGHTGREEN); WRITELN(S); FOR i:=1 TO N DO BEGIN FOR j:=1 TO N DO WRITE(Mat[i,j]:9:4); WRITELN; END; END; PROCEDURE Somme(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice); VAR i,j:BYTE; BEGIN FOR i:=1 TO N DO FOR j:=1 TO N DO MatC[i,j]:=MatA[i,j]+MatB[i,j]; END; PROCEDURE Difference(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice); VAR i,j:BYTE; BEGIN FOR i:=1 TO N DO FOR j:=1 TO N DO MatC[i,j]:=MatA[i,j]-MatB[i,j]; END; PROCEDURE Produit(N:BYTE;MatA,MatB:Matrice;VAR MatC:Matrice); VAR i,j,k:BYTE; BEGIN FOR i:=1 TO N DO FOR j:=1 TO N DO BEGIN MatC[i,j]:=0; FOR k:=1 TO N DO MatC[i,j]:=MatC[i,j]+MatA[i,k]*MatB[k,j]; END; END; PROCEDURE Inverse(N:BYTE;A:Matrice;VAR X:Matrice;VAR OK:BOOLEAN); VAR Id,E,B:Matrice; Old,New:REAL; Cpt:BYTE; FUNCTION Norme_Ligne(N:BYTE;B:Matrice):REAL; VAR Tmp,Tmp2:REAL; i,j:BYTE; BEGIN Tmp:=0; FOR i:=1 TO N DO BEGIN Tmp2:=0; FOR j:=1 TO N DO Tmp2:=Tmp2+ABS(B[i,j]); IF Tmp2>Tmp THEN Tmp:=Tmp2; END; Norme_Ligne:=Tmp END; FUNCTION Norme_Colonne(N:BYTE;B:Matrice):REAL; VAR Tmp,Tmp2:REAL; i,j:BYTE; BEGIN Tmp:=0; FOR i:=1 TO N DO BEGIN Tmp2:=0; FOR j:=1 TO N DO Tmp2:=Tmp2+ABS(B[j,i]); IF Tmp2>Tmp THEN Tmp:=Tmp2; END; Norme_Colonne:=Tmp END; PROCEDURE Init(N:BYTE;A:Matrice;VAR B:Matrice;VAR OK:BOOLEAN); VAR i,j:BYTE; T:REAL; BEGIN FILLCHAR(Id,SizeOf(Id),0); T:=Norme_Ligne(N,A)*Norme_Colonne(N,A); IF ABS(T)>1E-10 THEN BEGIN OK:=TRUE; FOR i:=1 TO N DO BEGIN Id[i,i]:=1; B[i,i]:=A[i,i]/T; FOR j:=i+1 TO N DO BEGIN B[i,j]:=A[j,i]/T; B[j,i]:=A[i,j]/T; END; END; END ELSE OK:=FALSE; END; PROCEDURE Calcule_E; VAR C:Matrice; BEGIN Produit(N,B,A,C); Difference(N,Id,C,E); END; PROCEDURE Calcule_B; VAR C,D:Matrice; BEGIN Somme(N,Id,E,D); Produit(N,D,B,C); B:=C END; BEGIN Init(N,A,B,OK); IF NOT OK THEN WRITELN('Matrice nulle!') ELSE BEGIN Calcule_E; Old:=Norme_Ligne(N,E); New:=Old; Cpt:=0; WHILE NOT ((New<1E-6) OR ((New>Old) AND (Cpt>5))) DO BEGIN Old:=New; Calcule_B; Calcule_E; New:=Norme_Ligne(N,E); INC(Cpt); END; OK:=TRUE; IF New<1E-6 THEN X:=B ELSE OK:=FALSE END; END; BEGIN Intro(N,MatA); Affiche('A=',N,MatA); Attente; Inverse(N,MatA,MatB,OK); IF OK THEN BEGIN Affiche('Inverse de A=',N,MatB); Attente; Produit(N,MatA,MatB,MatC); Affiche('Produit des matrices inverses=',N,MatC); Attente; END ELSE BEGIN CLRSCR; WRITELN('Pas d''inverse!'); END; END.
Merci
varfendell
Messages postés
3256
Date d'inscription
jeudi 27 décembre 2007
Statut
Membre
Dernière intervention
8 février 2020
704
21 août 2008 à 11:24
21 août 2008 à 11:24
ouai, il est bien ce programme, il prend les matrice de n'importe quelle taille.
Cependant c'est de l'algorithme, pas du pascal, non?
Cependant c'est de l'algorithme, pas du pascal, non?