Inscription / Connexion Nouveau Sujet
Niveau concours
Partager :

Equations et algorithmes

Posté par
superninie
31-12-20 à 23:53

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?

Posté par
flight
re : Equations et algorithmes 01-01-21 à 00:18

salut

sauf erreur il s'agirait de resoudre une équation du second degré en r2

Posté par
flight
re : Equations et algorithmes 01-01-21 à 00:29

pour r2 je trouve  8,95 cm sauf erreur

Posté par
flight
re : Equations et algorithmes 01-01-21 à 00:30

et pour ton programme il suffit d'introduire les solutions de l'équation du second degré en r2(une seule convient)

Posté par
mathafou Moderateur
re : Equations et algorithmes 01-01-21 à 18:27

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.

Posté par
verdurin
re : Equations et algorithmes 05-01-21 à 22:32

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 v en cm3 d'eau ajouté :

v=\pi R^2\times h-\frac43 \pi r^3
avec R=10, h=2r et r=5.

Donc v=\frac{5\,000}3\pi ( calcul élémentaire ).

On cherche x entre 5 et 10 tel que :

\frac43\pi x^3+v=\pi R^2 (2x) soit \frac43\pi x^3+\frac{2\,500}3\pi=200\pi x

On pourrait commencer ici la résolution numérique, mais comme on est entre matheux on va diviser par 4\pi et multiplier par 3.

L'équation devient x^3-150x+625=0.

On pose f(x)=x^3-150x+625 et on vérifie que l'équation f(x)=0 à une solution entre 6 et 9. Un calcul facile donne f(6)=-59 et f(9)=4.
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.

Avec tous mes vœux de réussite,
verdurin.

Posté par
mathafou Moderateur
re : Equations et algorithmes 06-01-21 à 11:09

Citation :
Contrairement aux posteurs précédant

hum ...
en fait le sens de mon message n'était pas autre chose,
Citation :
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é

j'étais même encore plus drastique car je n'écrivais même aucune équation du tout , me contentant de calculer des volumes et de de comparer des volumes dans la boucle !
mais bon ... on a le droit de "mâcher" un peu plus les calculs par une étude théorique donnant une équation, d'ailleurs du 3ème degré , on est d'accord.

Citation :
Ça c'est un peu léger comme justification, mais je vais m'en contenter.

là je suis d'accord
moi je disais même (avec r ∈ [0; 10] sauf 5)

par ailleurs la main était chez le demandeur qui n'avait pas pipé mot depuis.
lui donner autant de détails n'était pas d'actualité à mon avis.

meilleurs voeux.

Posté par
flight
re : Equations et algorithmes 06-01-21 à 19:39

l'equation donnée par Verdurin (x3-150x+625=0) que je salue ,donne
x1 = 8,95  x2 = -13,95 et x3 = 5  ( la valeur de x3 =5 cm correspondant à celle de l'énoncé )



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

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 !