Soyez le premier à donner votre avis sur cette source.
Snippet vu 19 357 fois - Téléchargée 72 fois
'Resolution d'un système matriciel A.X = B par la méthode de Gauss, la 'matrice A étant une matrice carrée d'ordre n, B est un vecteur colonne '1 x n et X le vecteur solution. 'Dans la procédure ci dessous, "Matrice" est une matrice de n lignes et 'n+1 colonnes obtenue par la juxtaposition de la matrice A et du vecteur B 'La procédure rajoute une colonne à cette matrice et stockera le vecteur 'solution X dans cette Colonne. Public Sub GaussReso(ByRef Matrice() As Double) Dim M(), X() As Double Dim Tampon As Double Dim n, I, J, K, T, Max As Long n = UBound(Matrice, 1) If UBound(Matrice, 2) <> n + 1 Then Exit Sub ReDim X(n) ReDim M(n, n + 1) ReDim Preserve Matrice(n, n + 2) For I = 1 To n For K = 1 To n + 1 M(I, K) = Matrice(I, K) Next K Next I For I = n To 2 Step -1 Max = I For J = 1 To I - 1 If Abs(M(J, I)) > Abs(M(Max, I)) Then Max = J Next J If Max <> I Then For K = 1 To n + 1 Tampon = M(I, K) M(I, K) = M(Max, K) M(Max, K) = Tampon Next K End If For J = 1 To I - 1 M(J, n + 1) = M(J, n + 1) - M(I, n + 1) * M(J, I) / M(I, I) For K = 1 To I M(J, K) = M(J, K) - M(I, K) * M(J, I) / M(I, I) Next K Next J Next I X(1) = M(1, n + 1) / M(1, 1) For I = 2 To n X(I) = M(I, n + 1) For K = 1 To I - 1 X(I) = X(I) - M(I, K) * X(K) Next K X(I) = X(I) / M(I, I) Next I For I = 1 To n Matrice(I, n + 2) = X(I) Next I End Sub
tu pourrais m'expliquer en detail comment faire pour executer le code: interface, boutons...
je suis encore debutant en vb
merci
J'ai testé rapidement le code et je pense qu'il est buggé. N'ayant plus la méthode en tête, je verrai pour un correction ultérieurement.
Résolution du système testé :
- - -
|x 1 |x 0 | x = 1
|x + y 2 donne |y 2 au lieu de | y = 1
|x + y + z 3 |z 1 | z = 1
- - -
voici le code de test :
Sub TestGaussReso()
Dim M() As Double
Dim i As Long
Dim strRes As String
ReDim M(0 To 2, 0 To 3)
M(0, 0) 1: M(0, 1) 0: M(0, 2) = 0: M(0, 3) = 1
M(1, 0) 1: M(1, 1) 1: M(1, 2) = 0: M(1, 3) = 2
M(2, 0) 1: M(2, 1) 1: M(2, 2) = 1: M(2, 3) = 3
Call GaussReso(M)
For i = 0 To 2
strRes strRes & Chr(120 + i) & " " & M(i, 4) & Chr(13)
Next i
Call MsgBox(strRes)
End Sub
donc voila koi je voudrais une expliquation tré détaillé de cette source si c'est possible.
j'ai msn pour ce qui veulent discuter ou m'aidé en direct voicis mon adresse : mocktarm@hotmail.com.
merci d'avence
cordialement
MokMap
mais est ce que je peut trouver le programmation d autre methode comme cholski ou l equat de la chaleur
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.