Bonsoir à vous! Je sollicite votre aide pour un DM parlant de dichotomie, une notion que je n'ai pas encore vu.
Je vous ai mis en vert ce dont je suis sûre, en bleu ce dont je ne suis pas sûre et en rouge là où je n'y arrive pas.
Je vous présente le sujet:
La fonction f est définie sur [0;+infini[ par f(x)= (x3 +x2 -2x-3)/(x+1)
1.Déterminer les réels a et b tels que, pour tout x de [0;+infini[, on ait:
f(x)=x2 + a + b /(x+1)
Ça, c'est bon, j'ai trouvé a = -2 et b =-1
2. Soit u et v les fonctions définies sur [0;+infini[ par:
u (x)= x2 v (x)=-2-1/(x+1)
a. Déterminer le sens de variation de u et v sur cet intervalle.
Pour u , la fonction est croissante car c'est une fonction carrée et que dans cet intervalle, elle est croissante.
Pour v , la fonction est aussi croissante sur cet intervalle.
b.En déduire le sens de variation de la fonction f sur cet intervalle
Là, j'avoue ne pas savoir comment faire pour argumenter. J'ai écrit que f est croissante sur cet intervalle car cette fonction est l'addition des fonctions u et v et que les 2 sont croissantes comme vu avant.
c.Calculer f(1) et f(2)
f(1)= (13 + 12 -2*1-3)/(1+1)
= (1+1-2-3)/2
=-3/2
f(2)= (23 + 22 -2*2-3)/(2+1)
=(8+4-4-3)/3
=5/3
En déduire que sur [0;+infini[, l'équation f(x)=0 admet une unique solution i et que cette solution appartient à l'intervalle [1;2]
Sachant que sur l'intervalle [0;+infini[ f est croissante, et donc monotone, f et également croissante sur l'intervalle [1;2]. De plus, pour f(1), on a une image négative et que pour f(2), l'image est positive. La fonction passe donc bien par 0 et n'admet qu'une solution qui appartient à l'intervalle [1;2]
Jusque ici, tout va à peu près bien, c'est après que ça se corse.
Je vous mets une image des énoncés pour faciliter la compréhension:
** image supprimée ** conformément à Sujet ancien- ne plus donner ce lien-merci
Toute cette partie, je ne sais pas comment m'y prendre. Notre professeur nous a conseillé de faire le programme sur EduPython, malheureusement je n'y connais pas encore grand chose dessus.
De plus, je ne comprends pas la question b.
J'aimerai donc que vous m'aidiez à créer ce programme et pour le b. ,le reste je pense qu'une fois le programme fait, cela sera beaucoup plus simple!
Je vous remercie de votre aide!
Veuillez m'excusez pour l'image!
L'énoncé était le suivant:
3.On considère l'algorithme suivant:
Entrée: Introduire un nombre entier naturel n
Initialisation: Affecter à la variable N la valeur n
Affecter à la variable a la valeur 1
Affecter à la variable b la valeur 2
Traitement: Tant que b - a > 10N
Affecter à la variable m la valeur (a+b)/2
Affecter à la variable P le produit f(a)*f(m)
Si P > 0 affecter à la variable a la valeur m
Si P < ou égale à 0 affecter à la variable b la valeur m
Sortie: Afficher a
Afficher b
a.On fait fonctionner cet algorithme pour n = 2
Je dois donc reproduire se programme mais comme dit avant, je ne sais pas comment m'y prendre.
Encore désolée pour le post de l'image
Bonjour,
Pour l'algo
soit tu cherches à traduire mot à mot l'algorithme fourni avec des outils obsolètes (par exemple Algobox, dans lequel c'est du simple "mot à clic" pour le traduire)
soit tu cherches à être plus cohérent que ton prof en posant un tel énoncé obsolète
l'énoncé est incohérent à partir du moment ou il suggère de le faire avec EduPython
alors qu'il y a dedans des opérations obsolètes (introduire, afficher, déclarations "ringardes" etc)
le conseil de EduPython est une excellente occasion de se mettre à la page et d'utiliser Python pour faire ça
(même si c'est un logiciel à installer, ça vaudra le coup)
d'abord ça ne mord pas (ni Algobox, ni Python ni aucun logiciel)
et on trouve facilement des tutoriels sur Python en ligne, ou l'aide incluse dans EduPython
donc ici il va s'agir de rédiger une fonction
def ma_dichotomie(n)
...
return a,b
en écrivant au milieu ce qui est décrit comme opérations dans l'algorithme fourni
essaies et lances toi (encore une fois ça ne mord pas)
a b m f(a) f(m) P
1ère boucle 1 2 1.5 -1.5 -0.15 > 0 donc a devient 1.5
2ème boucle 1.5 2 1.75 ...
...
edit :
en fait EduPython n'est pas du vrai Python
cela ressemble à du Python, inclut Python, a la syntaxe de Python mais n'est pas conforme aux "nouvelles directives" supprimant entre autres les entrées sorties de tous les algorithmes.
du coup on n'a même pas besoin de faire ça par la définition d'une fonction comme j'ai dit.
et donc du coup on rate l'intérêt de la chose :
cela devient une espèce d'Algobox où on est obligé de taper tout son code au lieu de simplement cliquer et de remplir des boites de dialogue.
cela n'empêche : bonne occasion d'appendre la syntaxe de base de Python.
le prof n'a pas encore fait le stage python
en premiere la methode peut passer.
Je le donne comme preconise en seconde:
def f(x):
return (x**3+x**2-2*x-3)/(x+1)
def EncadrerSolution(n):
N=n # inutile
a=1.0
b=2.0
while b-a>10**(-n):
m=(a+b)/2
P=f(a)*f(m)
if P>0:
a=m
else:
b=m
return a,b
EncadrerSolution(2)
Merci de votre réponse.
°Notre professeur nous a simplement conseillé d'utiliser EduPython, mais l'énoncé nous dis que nous pouvons également programmer sur la calculatrice.
Je ne sais plus où donner de la tête.
°Pour la 2nd étape, je trouve:
a b m P
1.5 2 1.75 <0 donc b deviendrait 1.75?
Dans mon énoncé, on nous donne les étapes de 3 à 4 de manière complète. Pour l'étape 3 on nous indique:
a b m P
1.5 1.625 1.625 -0.038950...
Je suis désolée je n'y comprends plus rien
et sur EduPython "suggéré" dans cet énoncé :
from lycee import *
def f(x) :
return (x**3+x**2-2*x-3)/(x+1)
n = demande("précision")
a=1.0
b=2.0
while b-a>10**(-n):
m=(a+b)/2
P=f(a)*f(m)
if P>0:
a=m
else:
b=m
print(a,b)
le retour des entrés sorties, conformément à la demande de l'énoncé tel qu'il est (et pas tel que certains voudraient qu'il soit)
vu qu'elles ont toujours existé et existeront toujours, ce n'est pas un problème de Python c'est un problème de caciques
nota : en Python pur, c'est à dire sans le "from lycee", l'entrée de n peut se faire par
n = int(input("précision")) ce qui est assez ésotérique
le temps d'installer EduPython la discussion a évolué ...
si tu ne souhaites pas pour l'instant programmer quoi que ce soit mais juste remplir le tableau (avais tu seulement dit au départ ici qu'il y avait un bout de tableau dans l'énoncé ? non !)
il te suffit de respecter scrupuleusement chaque étape de l'algorithme.
1.5 2 1.75 <0 donc b deviendrait 1.75?
bein oui ! c'est bien ce que dit de faire l'algo si P < 0 non ?
le numérotage des étapes n'est peut être pas le même dans le tableau que j'ai commencé et dans celui de l'énoncé :
et on revient sur un énoncé incomplet !
et comme dit alb12, les calculs numériques intermédiaires des valeurs de f(m) se font à la calculette (et de m = (a+b)/2 .. pour éviter des erreurs bêtes )
la valeur numérique de P n'a aucune importance, seul son signe compte (appliquer de tête la règle des signes)
Merci! Je retrouve bien la fin de mon tableau!
J'ai des amis qui m'ont expliqué et je pense avoir compris! Je vous remercie d'avoir pris de votre temps pour moi!
Je vous souhaite une excellente soirée!
Je m'excuse pour vous avoir donné des énoncés incomplets, je suis très tête en l'air et je n'ai pris du tout mon temps. Veuillez m'excuser pour tout ça et encore merci!
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :