Inscription / Connexion Nouveau Sujet
Niveau seconde
Partager :

Algorithme, DSF pour 08/03/2010

Posté par
Maths-DSF
03-03-10 à 01:14

Bonjour, j'ai un DSF à rendre pour le lundi 8 Mars 2010 sur les algorithmes. J'ai répondu a toutes ces question sauf à la dernière. En effet, j'ai déjà fait un algorithme mais celui ci ne fonctionne pas.

F est une fonction définie sur un intervalle [a;b] représentée ci-contre. On suppose que l'équation f(x)=0 admet une solution unique x0 dans l'intervalle [a;b]. On considère l'algorithme suivant:

Entrées
Saisir
a,b:bornes de l'intervalle de définition
f:fonction étudiée
N:entier naturel, N>=1
Traitement
Pour k de 1 jusqu'à N
      m prend la valeur a+b
                            2
      Si f(m) et f(a) sont de même signe alors
          a prend la valeur m
          sinon
          b prend la valeur m
      FinSi
FinPour
Sorties
Afficher a,b

a)On applique cet algorithme à la fonction f définie sur l'intervalle [0;1] par f(x)=x3+2x-2. Prendre N=4 et compléter le tableau suivant:

b)Quel est le rôle de cet algorithme? Expliquer en particulier la fonction de la variable N.

c)Traduire cet algorithme dans un langage de programmation et tester le programme obtenu.

Mon algorithme est le suivant. Ma calculatrice est une Casio Graph 100+.
"BORNE A" ? → A ↔
"BORNE B" ? → B ↔
"N=" ? → N ↔
For 1 → K  To N ↔
(A+B):2 → M ↔
M^3 + 2M - 2 → C ↔
A^3 + 2A - 2 → D ↔
If C x D >= 0 ↔
Then A → M ▲
Else B → M ↔
If End ↔
Next ↔
A ▲
B ▲

Voila mon algorithme qui ne marche pas. Je vous éclaire sur les symboles (qui ne sont pas très représentatifs sur l'ordinateur) :
→ : flèche qui signifie "Dans"
↔ : Exe (Entrée)
▲ : Afficher
^ : exposant
x : fois

Je tiens également à préciser que je dispose d'une calculatrice Casio Graph 100+ dans laquelle les réglages sont un peu différents.

Merci beaucoup de votre aide !

Posté par
Maths-DSF
re : Algorithme, DSF pour 08/03/2010 03-03-10 à 01:16

Je crois que le problème dans cet algorithme est la fonction, je ne sais pas vraiment comment la matérialiser en "langage machine".
J'espère que l'un d'entre vous pourra résoudre ce problème...

Posté par
plumemeteore
re : Algorithme, DSF pour 08/03/2010 03-03-10 à 01:39

Bonjour.
2) la fonction doit remplir deux conditions pour que le programme s'y applique utilement
avec le a et le b de départ, f(a) et f(b) doivent être de signe différent
entre le a et le b départ, la fonction doit être continuée
à chaque étape, l'intervalle diminue de moitié et les valeurs de la fonction à ses extrémités sont de signes différents; le zéro de la fonction est donc cerné dans des intervalles de plus en plus petit; intervalles de départ divisé par 2N

Posté par
Maths-DSF
re : Algorithme, DSF pour 08/03/2010 03-03-10 à 10:51

Merci Plumeteore, mais j'avais bien compris à quoi servait cette methode de dichotomie. J'ai déjà répondu aux 2 premières questions sur ma feuille. Par contre, mon probleme est d'écrire cet algorithme en langage machine, soit en langage de programmation afin de l'écrire dans ma calculette. Est ce que tu as trouvé l'erreur dans mon algorithme ? Je ne sais pas comment entrer/saisir la fonction f au début donc je ne l'ai pa mise dans les entrée et je pense qe c'est justement ça le probléme.

Posté par
plumemeteore
re : Algorithme, DSF pour 08/03/2010 03-03-10 à 21:06

Bonsoir.
Voici une solution par tableur.
Dans A1, début de l'intervalle; 0
Dans B1, fin de l'intervalle; 1
Dans C1 : moyenne; =(A1+B1)/2
Dans E1 : formule appiquée à A1; = A1^3+2*A1-2
recopier cette formule dans F1 et G1 pour l'appliquer à B1 et à C1
Dans A2 : nouvelle valeur du début de l'intervalle : =SI(SIGNE(D1)=SIGNE($F1);$C1;A1) elle devient la moyenne si fonction(A1) en D1 a le même signe que fonction(C1) en F(1).
Dans B2 : nouvelle valeur du début de l'intervalle; c'est A2 recopié; dans les cellules A2 et B2, $F et $C ne change pas grâce au symbole $, ce qui permet de se reférer dans les deux cas à la moyenne.
C2 à F2 : recopiage des cellules C1 à F1.
Sélectionner les cellules A2 et F2, aller au coin inférieur droit du rectangle de sélection (le curseur doit devenir +) et tirer vers le bas, jusqu'à la ligne N+1.

Voici un programme en langage C.
Option explicit 'déclaration de variable obligatoire

Function formule(x)
formule = (x^3+2*x-2)
End Function

Function algorithme()
Dim a As Double, b As Double, m As Double
Dim n As Byte, i as Byte 'de 0 à 255
a = Inputbox("a = ")
b = Inputbox("b = ")
If Sgn(formule(a)) = Sgn(formule b)) Then
MsgBox("programme inapplicable)
Exit Function
End If
n = Inputbox("i = ")
For i = 1 To n
m = (a+b)/2
If Sgn(formule(a)) = Sgn(formule(m)) Then
a = m
Else
b = m
End If
Next i
MsgBox("la solution est comprise entre "; a; " et " b)
End Function

Posté par
Maths-DSF
re : Algorithme, DSF pour 08/03/2010 03-03-10 à 22:21

C'est le langage calculatrice ? Parce que j'ai pas trop compris ... Désolé ... Est-ce que tu peux me dire la (ou les) fautes que j'ai commises dans mon algorithme et eventuellement faire copier coller et le recopier sans les fautes ?
Merci ça serait super sympa !!

Posté par
co11
re : Algorithme, DSF pour 08/03/2010 06-03-10 à 00:48

bonsoir maths-dsf
je ne suis pas championne en calculatrice, mais est-ce que tu n'aurais pas plutôt dû écrire lignes 9 et 10:
MA
et
MB
au lieu de
AM et BM
?

Posté par
Maths-DSF
re : Algorithme, DSF pour 08/03/2010 06-03-10 à 12:30

Merci beaucoup co11 ! Mon algorithme marche ! Je l'ai rentrer dans ma calculette et ça marche !! Merci beaucoup, c'était tout bête !!  

Posté par
co11
re : Algorithme, DSF pour 08/03/2010 06-03-10 à 14:40

je suis bien contente



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 1674 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 !