Un petit exercice d'algorithmique.

Aller en bas

Un petit exercice d'algorithmique.

Message par Dlzlogic le Mer 27 Déc - 17:07

Bonsoir,
Pour le fun, la question n'a pas été posée ici, donc rien ne m'interdit de répondre, c'est à dire d'aider l'auteur de la question.
https://www.maths-forum.com/superieur/resolution-systeme-aide-algorithme-t191063.html
Pour plus de lisibilité, je recopie l'énoncé.
On veut résoudre le système linéaire avec A une matrice d'ordre n à coefficients réels et x et b:vecteurs d'ordre n à coefficient réels.
on introduit la matrice et on note Lk la ligne k de la matrice .

1) Que fait l'algorithme suivant?
a)Pour i = 1, ..., n-1
b)Pour k= i+1, ..., n
c) Lk = Lk + Li * at(k,i) / at(i,i)
d)Fin de boucle
e)Fin de boucle

2) Comment appelle-t-on le nombre at(i,i)?

3)Que se passe-t-il si la valeur est nulle?

Pour bien comprendre, le plus simple est de mettre des accolades et/ou de l'indentation.
Par exemple :
Pour i = 1, ..., n-1
{
Pour k= i+1, ..., n
{
Lk = Lk - Li * at(k,i) / at(i,i)
} //d)Fin de boucle i
} //e)Fin de boucle k

Donc, il y a une première boucle qui va de 1 à n-1. Donc au premier passage i=1
Puis il y a une boucle intérieure qui va de i+1 à n. Donc au premier passage k = i+1 = 2
A l'intérieur de cette boucle, c'est à dire pour chaque valeur de k cad 2, 3, ..., n chaque valeur sera le résultat de l'opération précisée.
Li est la ligne de rang i, c'est à dire les termes de Li et Lk appartiennent à la même colonne. Le terme at(k,i) est le paramètre de ligne k et de colonne i, le terme at(i,i) est le paramètre de ligne i et de colonne i. C'est à dire les termes de la diagonale. Si at(i,i) est nul, c'est à dire que le paramètre de l'inconnue de rang i est nul, la ligne Lk doit rester inchangée.
Il est clair que donner comme réponse "va voir la méthode du pivot de Gauss" n'apportera rien.
L'exercice consiste à comprendre 5 lignes d'algorithme et savoir l'expliquer.

Cordialement.




Dlzlogic

Messages : 1163
Date d'inscription : 04/07/2017
Age : 73
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Un petit exercice d'algorithmique.

Message par Dlzlogic le Jeu 28 Déc - 22:39

Bonsoir,
Il y a trois ténors qui ont répondu, ou plutôt qui ont donné une réponse.
La question est précise : "que fait cet algorithme ?".
L'énoncé ne parle en aucun cas du pivot de Gauss, saul éventuellement le nom de la variable at(i,i), encore que moi, je vois pas pourquoi on appellera ça le pivot.
Bref, c'est un exercice d'algorithmique et les réponses concernent l'analyse.
Personnellement, je pense qu'au lieu du terme "matrice" il aurait bien mieux valu enployer l'expression "représentation matricielle".
Si le demandeur a compris ces "réponses", alors il est vraiment malin. Mais s'il donner ces réponses sur sa copie, il aura forcément 0.
En fait, sauf erreur (il faut que je vérifie) le pivot est le premier terme non nul, dans l'ordre croissant du calcul. Autrement dit, rien n'impose qu'il soit sur la diagonale, mais encore une fois, il faut que je vérifie.


Dlzlogic

Messages : 1163
Date d'inscription : 04/07/2017
Age : 73
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Un petit exercice d'algorithmique.

Message par Dlzlogic le Ven 29 Déc - 11:01

Bonjour,
Je me suis remis en mémoire la résolution d'un système d'équation par la méthode du pivot de Gauss.
Concernant le diviseur at(i,i), la réponse est plus compliquée.
Cette valeur peut très bien être nulle dans l'une ou l'autre des équations du système. Ce n'est ni impossible ni incorrect.
Le grand intérêt de la méthode du pivot de Gauss est de n'effectuer des opérations que sur des nombres tels qu'on ne perd pas de précision. C'était vrai à l'époque de Gauss, c'était vrai à l'époque où on calculait il y a quelques décennies et c'est toujours vrai avec l'informatique. C'est d'autant plus vrai avec les machines qu'on n'a jamais les calculs intermédiaires sous les yeux et on peut chercher longtemps pourquoi un calcul est faux. (J'en sais quelque-chose)
C'est la raison pour laquelle la méthode du pivot prévoit de trier les équations suivant les paramètres.
Je crois qu'il y a là un nouvel exemple d'utilisation abusive du terme "matrice". On est en informatique, on gère des tableaux. Un logiciel ne sait pas ce qu'est un espace vectoriel, une application linéaire, encore moins cet objet mathématique que l'on appelle "matrice".
Donc, une équation d'un système linéaire à n inconnues comporte les n paramètres des inconnues et une constante à droite du signe '='. Le système comporte n équations. On va donc créer un tableau de (n+1) colonnes et n lignes. Il n'y a pas de matrice dans tout cela.

Enfin pour répondre à la question "que se passe-t-il si at(i,i) est nul" :
Si cette valeur est nulle au cours du calcul, on passe à la suivante. Si cette valeur est nulle quand le calcul est terminé, cela signifie que le système est incorrect.

On constatera naturellement que les réponses données sur le forum, non seulement ne répondent pas à la question posée mais surtout font du hors sujet complètement inintéressant.

Bonne journée.

Dlzlogic

Messages : 1163
Date d'inscription : 04/07/2017
Age : 73
Localisation : Proville

Voir le profil de l'utilisateur http://www.dlzlogic.com

Revenir en haut Aller en bas

Re: Un petit exercice d'algorithmique.

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum