Forum Liberty Basic France

Débutant » Système d'équations linéaires Méthode du Pivot de Gauss
Sondage: Qu'est-ce qui vous chipote ?
100.0% - [1 Vote]
100.0%
Le 26/11/2016 à 15h08

Libertynaute Débutant

Groupe: Membre

Inscrit le: 19/09/2013
Messages: 16
Le fichier en question est un intermédiaire avec un autre programme qui crée les équations.
Ce pourrait être :ZX.eq avec en 1ère ligne n , un titre
puis les coefficients des inconnues séparés par "," et suivis du terme indépendant.
Exemple 3,ZX81
2,-1,1,5
1,5,-2,1
3,-2,3,3
dont la solution est x1=3.357 x2=-1.928 x3=-3.642
Un système de 100 équations à 100 inconnues est résolu en moins de 5 secondes .
J'ajoute que contrairement à ce que j'ai lu ici, il peut très bien y avoir des 0 dans la diagonale et même rien que des 0

Code VB :
 
'         GAUSS-JORDAN    16/11/2016     Jacques Donner
input "Nom du fichier ? "; nom$
open nom$ for input as #1       'entrée des données
input #1,n,txt$ : print "Titre : ";txt$ :m = n+1:D=1
dim A(n,m),X(n)
for i=1 to n
    for j=1 to m
        input #1,A(i,j)
    next j
next i
close #1
t1=time$("ms")
 
for i = 1 to n
    max = 0          'recherche du max de la colonne i
    for l=i to n
        if abs(A(l,i))> max then max = A(l,i) : k=l  'max de la colonne
    next l
 
    for j  = i to m   'échange des lignes k et i
        tt = A(k,j) : A(k,j) = A(i,j) : A(i,j) = tt
    next j
 
    pivot = A(i,i) :D = D * pivot
    if pivot = 0 then print "Pas de solution " :goto [z]
 
    for j=1 to m         'division
         A(i,j)=A(i,j)/pivot
    next j
 
    for k = 1 to n       'élimination
        p=A(k,i)
        if k <> i then
            for j = 1 to m
                A(k,j) = A(k,j) - A(i,j) * p
            next j
        end if
    next k
next i
 
t2=time$("ms")
for i=1 to n
     X(i) = A(i,m)
     print "X(";i;") = ";X(i)
next i
print "Déterminant = ";D
print t2-t1;" millisecondes"
[z]
end
 
____________________
jacques845

Web    
Le 26/11/2016 à 15h13

Libertynaute Débutant

Groupe: Membre

Inscrit le: 19/09/2013
Messages: 16
Je vois que la copie a détruit la mise en page. Dommage.
____________________
jacques845

Web    
Le 26/11/2016 à 22h35

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2081
Citation:
Je vois que la copie a détruit la mise en page. Dommage.

J'ai mis le code en conteneur (balises [] )code=vb et /code
Par contre ton truc c'est pour les "gros matheux"
Te reste plus qu'à pondre le cours dont au sujet duquel ce machin se rapporte
Des systèmes de 100 équations à 100 inconnues, ça doit pas courir les rues

M'en vais voir le pivot de Gauss, en espérant ne pas prendre le ressort dans la tronche.
....
Edit:Je reviens du pivot de Gauss, le ressort est tendu comme un arc, il retient 4000 ans de mathématiques, si le bazar se décroche, j'imagine pas les dégâts.
____________________
Roro

   
Le 28/11/2016 à 16h38

Libertynaute Débutant

Groupe: Membre

Inscrit le: 19/09/2013
Messages: 16
Qu'est-ce que ça veut dire :
"J'ai mis le code en conteneur (balises [] )code=vb et /code" ??
Sinon, les 100 équations, c'est pour tester la vitesse.
Le fichier auxiliaire me sert pour transmettre les équations complexes de circuits électriques RLC qui m'ont intéressés dans une vie antérieure.
____________________
jacques845

Web    
Le 28/11/2016 à 19h40

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2081
Mettre le code en conteneur, c'est lui dédier une fenêtre spéciale avec ascenseur
Ce qui permets de le copier sans s'emméler les pinceaux avec le reste du texte

Pour ce faire, il faut mettre avant le code la mention: "code=vb" entre crochets
Le terminer par: "/code" entre crochets

Et par la magie du html le code se retrouve en conteneur
Tel que tu le vois dans ton premier message

Si tu veux poster un code avec des dépendances (bmp's, fichiers, dossiers)
Il faut mettre le tout dans un dossier, le compresser en .zip et le mettre dans ton espace de stockage
Accessible dans ton profil (haut de page à gauche) (et: gestion des dossiers, ajout de fichiers)
Sur le forum, en cliquant sur le nuage à droite de la barre d'outils, ça t'envoie dans ton espace de stock
Et l'icône de droite sous le zip concerné, met le lien du zip dans le message forum
ça paraît compliqué, mais c'est simple
____________________
Roro

   
Débutant » Système d'équations linéaires Méthode du Pivot de Gauss  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie