Retrouver tous les sujets résolus.
-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:01
Si l'algorithme renvoie
a et
b, ce sont bien ces valeurs qui sont affichées.
Si tu fais un peu de Python, tu peux programmer cet algorithme dont je te donne une implémentation :
Code : Tout sélectionner
import math
def f(x):
return 3*math.cos(2*x)-2
a = 0
b = 1
c = 0.5
n = 0
while b-a > 0.1:
c = (a + b) / 2
if f(a)*f(c) < 0:
b = c
else:
a = c
n = n + 1
print(a,b,n)
Après exécution, l'affichage est le suivant :
Ce qui correspond bien à ce que tu as obtenu.
Bonne continuation
-
Léa
Message
par Léa » dim. 2 janv. 2022 11:02
Bonjour
ok merci
et pour l'encadrement, sont a est compris entre 0,375 et 0,4375 est ce correct?
-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:08
Oui c'est cela :
0,375<α<0,4375
Cela est cohérent avec ce qu'on trouve sur GeoGebra
α≈0,42.
Avec l'algorithme, on peut améliorer la précision de l'encadrement en prenant une amplitude plus faible.
Par exemple avec :
On a :
Il faut dix étapes pour l'obtenir.
Tu noteras la puissance et l'intérêt de recourir à un programme informatique pour faire cette recherche.
Bonne fin d'exercice
-
léa
Message
par léa » dim. 2 janv. 2022 11:09
Merci
Par contre, je n'ai jamais fait de python et donc, je ne comprend pas la question 2 cet b pouvez vous m'aidez s'il vous plait
Léa
-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:10
Quelle est la question 2b ?
S'il s'agit de faire le programme en langage Python, j'y ai déjà répondu.
-
Léa
Message
par Léa » dim. 2 janv. 2022 11:11
Car on m'a donner un programme, celui ci mais je ne sais pas ce qu'il faut faire avec enfin, je ne sais pas ou il faut le compléter
-
Fichiers joints
-

-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:22
Cela correspond à peu près à ce que je t'avais donné.
Je te laisse terminer le travail en te redonnant le début de la complétion. Il te reste à reprendre ce que j'ai proposé dans mon précédent message :
Code : Tout sélectionner
from math import *
def f(t):
return 3*cos(2*t)-2 # fonction dont on cherche l'antécédent de 0
a = float(input("Entrer la borne de gauche de l'intervalle : "))
b = float(input("Entrer la borne de droite de l'intervalle : "))
d = float(input("Entrer l'amplitude désirée : "))
while b-a > d:
c = (a + b) / 2
..... # à toi de reprendre ce que j'ai fait
print("La solution de l'équation est comprise entre ",a, " et ", b)
Dans une console, on obtient par exemple :
Code : Tout sélectionner
Entrer la borne de gauche de l'intervalle : 0
Entrer la borne de droite de l'intervalle : 1
Entrer l'amplitude désirée : 0.001
La solution de l'équation est comprise entre 0.419921875 et 0.4208984375
Tu peux tester ton code dans un interpréteur en ligne comme replit :
https://replit.com/
Bonne programmation
-
Léa
Message
par Léa » dim. 2 janv. 2022 11:25
Bonjour,
j'ai fait ça mais ça ne marche pas
il y a t-il quelque chose de faux ?
Léa
-
Fichiers joints
-

-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:28
Le message de l'interpréteur t'indique un problème d'indentation : en Python, les instructions sont décalées, ce qui permet de marquer l'appartenance à un bloc d'instructions.
Ici, la ligne du if est décalée d'une espace de trop : il faut qu'elle soit alignée avec la ligne "c=.." et le "else".
Corrige cela et cela devrait être bon.
-
L2a
Message
par L2a » dim. 2 janv. 2022 11:30
J'arrive a mettre le premier chiffre, mai après ça me met cela
Léa
-
Fichiers joints
-

-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:30
Pour le site que tu proposes, cela fonctionne normalement.
Je viens de l'essayer et il renvoie le bon affichage.
-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:34
Il y a deux remarques sur ce que tu fais :
- les nombres décimaux doivent être saisis avec un point décimal et non une virgule : 0.375.
- il faut que tu mettes les valeurs initiales de a et b, c'est-à-dire 0 et 1, car tu n'es pas censée savoir que tu obtiendras 0,375
Reprends cela avec la saisie :
Bonne conclusion
-
Léa
Message
par Léa » dim. 2 janv. 2022 11:37
Merci
Mais du coup, ce n'est pas ce que j'ai trouvé a la question 1b est ce normal?
-
sos-math(21)
- Messages : 10401
- Enregistré le : lun. 30 août 2010 11:15
Message
par sos-math(21) » dim. 2 janv. 2022 11:39
Si tu veux retrouver ce que tu as fait à la main, il faut saisir une amplitude de 0.1 :
Bonne conclusion