Bonsoir,
Je dois réfléchir sur le sujet assez connu qui suit.
On considère un récipient cylindrique de rayon intérieur 10 cm et de hauteur
intérieure 22 cm. On place une boule de rayon 5 cm au fond du récipient puis
on verse de l'eau jusqu'à recouvrir exactement la boule (cette boule étant de
densité plus grande que l'eau, ne flotte pas). On enlève cette boule et on la
remplace par une seconde boule de même densité et de rayon différent ; l'eau
recouvre à nouveau exactement la seconde boule. On se demande quel est le
rayon r de cette boule.
Mais au delà de la résolution du problème que j'ai faite je dois:
Écrire un algorithme pour trouver une valeur approchée à 0,001 près de la plus grande des solutions et le mettre en œuvre sur Python.
Et là c'est difficile pour moi tel que j'ai écrit ceci:
from math import*
def rayon (r2):
r2=r2
R=10
r1=5
h1=10
h2=2*r2
V1=(Pi*R**2*h1)-4/3*Pi*r1**3
V2=(Pi-R**2*h2)-4/3*Pi*r2**3
Solve(V1-V2).evalf(4
Et c'est un programme qui ne fonctionne pas, pouvez-vous m'aider?
et pour ton programme il suffit d'introduire les solutions de l'équation du second degré en r2(une seule convient)
Bonjour,
c'est sur que un programme avec
r2 = 8.95
print(r2)
ou juste quelques "décorations" autour sera de peu d'intérêt
à peu près autant qu'une fonction
def rayon(x):
return x
avant de rédiger un programme, il faut déja définir précisément (en français) ce qu'on veut qu'il fasse et avec quelle méthode.
moi je comprends qu'il faut rédiger un programme qui cherche par une méthode d'approximations successives
(explicite, pas planquée dans un "solve") la solution au problème, sans la connaitre à priori.
dans un intervalle déterminé par le diamètre du récipient et c'est à peu près tout ce que l'on sait (avec r ∈ [0; 10] sauf 5)
en s'arrêtant quand la précision est ≤ 0,001
donc avec des boucles "tant que" qui balayent des valeurs de r et qui calculent des volumes avec cette valeur
et pas qui résout une équation du second degré pour laquelle la question de chercher une valeur approchée n'a aucun sens
vu qu'on sait en calculer une valeur exacte !
encore moins à qui on fournirait déja cette solution.
Bonsoir superninie et bonne année 2021.
Contrairement aux posteurs précédant je crois que l'on a une équation du troisième degré.
Elle a certes une solution évidente qui permet de la réduire au second degré, mais on va oublier ça pour l'instant.
On calcule le volume en cm3 d'eau ajouté :
avec ,
et
.
Donc ( calcul élémentaire ).
On cherche x entre 5 et 10 tel que :
soit
On pourrait commencer ici la résolution numérique, mais comme on est entre matheux on va diviser par et multiplier par
.
L'équation devient .
On pose et on vérifie que l'équation f(x)=0 à une solution entre 6 et 9. Un calcul facile donne
et
.
La fonction f étant continue elle s'annule au moins une fois entre 6 et 9.
La nature du problème montre qu'il y en a au plus une.
Ça c'est un peu léger comme justification, mais je vais m'en contenter.
On va chercher cette solution par dichotomie.
En pseudo-code :
eps=0.001 # c'est la précision demandé
a= 6
b= 9
tant que b-a>eps :
c= (a+b)/2
si f(c)>0 alors :
b=c
sinon :
a=c
À la fin c est une approximation à eps près de la solution.
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :