Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Algorithme

Posté par
ReIZeN
16-02-17 à 13:59

Bonjour j'ai un problème avec un exercice que je doit faire pour la rentrée. Voici la consigne :
1a. appliquer l'algorithme ci dessous avec a = 2, b = 1 et x = 4; puis avec a = 2, b = 1 et x = -1
Algorithme:
Variables : a, b, x, y nombres
Entrées : saisir a, b ,x
Traitement et sorties :
y prend la valeur ax+b-1/x
si y = 0 alors afficher "solution"
                 sinon afficher "pas solution"
fin si

1b. Que fait cet algorithme?
2. Quel message doit il afficher pour a = b =1, x= (racine de 5-1)/2
3. On a programmé cet algorithme sur le logiciel scilab, en faisant de plus afficher y. En entrant les valeurs de la Q2, on obtient l'écran dont une copie est donnée ci-dessous

a=1
b=1
x=(sqrt(5)-1)/2
pas solution
y = 2,220446049D-16

D'où peut venir le problème constaté?
comment modifier le test et les sorties de l'algorithme pour remédier à  ce problème.

J'ai répondu a la Q1 a et b et à la Q2

Posté par
kenavo27
re : Algorithme 16-02-17 à 14:24

bonjour,

Citation :

a=1
b=1
x=(sqrt(5)-1)/2
pas solution
y = 2,220446049D-16

tu es sûr ?

Posté par
ReIZeN
re : Algorithme 16-02-17 à 14:27

Bonjour,
Oui je suis sûr, j'ai réécrit mot pour mot le sujet.

Posté par
kenavo27
re : Algorithme 16-02-17 à 14:30

concernant : y = 2,220446049D-16

Posté par
ReIZeN
re : Algorithme 16-02-17 à 14:34

C'est ce qui est écrit sur le sujet, et quand je résous l'équation ax+b-1/x c'est à dire 1*(sqrt(5)-1)/2 +1 - 1/(sqrt(5)-1)/2 je trouve 0, mais quand je fait l'algorithme sur Algobox en affichant y je trouve 2,220446e-16.

Posté par
mathafou Moderateur
re : Algorithme 16-02-17 à 14:37

Bonjour,

c'est sans doute y = 2,220446049E-16 (faute de farppe) qui veut dire y = 2,220446049 × 10-16

contrairement à un algorithme (qui est quelque chose d'abstrait et de purement théorique), sa réalisation sous forme de programme dans une machine avec un langage donné effectue généralement tous ses calculs numériques donc approchés

les chances pour que ça donne très exactement 0 sont donc quasiment nulles....
même si "théoriquement" ça doit donner 0.

il faut donc faire un test
si y "à peu près nul"
au lieu du test si y = 0

et pour réaliser ce test "à peu près nul"
on peut tester si la valeur absolue de y est < e fixée à priori, qui doit être > aux imprécisions de la machine.
ici la machine calcule avec une imprécision de l'ordre de 10-15 près,
il faut donc choisir e > 10-15, avec de la marge pour tenir compte des accumulations d'erreurs au cours du calcul.

on peut dire si la valeur absolue de y est < 0.00000001 par exemple

Posté par
ReIZeN
re : Algorithme 16-02-17 à 14:42

Je comprend mieux, mais je ne sais pas quoi changer dans le test et les sorties de l'algorithme pour régler le problème.

Posté par
mathafou Moderateur
re : Algorithme 16-02-17 à 14:46

je te l'ai écrit :

Citation :
si la valeur absolue de y est < 0.00000001


et on peut aussi pour faire plus "propre" changer le message pour dire "solution approchée" au lieu de "solution".

Posté par
ReIZeN
re : Algorithme 16-02-17 à 15:02

D'accord merci beaucoup.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1675 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !