Spaces:
Runtime error
Runtime error
:title: Seuil de rentabilité d'une entreprise
:modules:
:recommendedExecutionTime: 18
:level: Advanced
:chap:
:involvedConcepts:
:originalSource:
:visibility: All
:variations:
:comment: Appliqué (économie & gestion) : profit comme différence recette − coût, seuil de rentabilité, interprétation des signes et lecture graphique.
````{python}
import random as rd
import math
import matplotlib.pyplot as plt
from sympy import symbols, latex, Rational
from pyxiscience.Mes_fctions_generalistes_bis import pxs_config, pxsl_latex_coefficient as lc
from pyxiscience.Mes_fctions_probabilistes_bis import pxsl_res_num
config_standard = pxs_config()
q = symbols('q')
# Tirage avec contraintes
for _ in range(2000):
prix_unitaire = rd.choice(range(40, 105, 5))
cout_variable = rd.choice(range(10, 55, 5))
if prix_unitaire <= cout_variable:
continue
cout_fixe = rd.choice(range(500, 3100, 100))
coef_profit = prix_unitaire - cout_variable
q_seuil = Rational(cout_fixe, coef_profit)
q_test_1 = rd.choice([10, 15, 20, 25, 30, 35, 40])
q_test_2 = rd.choice([50, 55, 60, 65, 70, 75, 80])
if q_test_1 < q_seuil < q_test_2:
break
profit_expr = coef_profit * q - cout_fixe
q_seuil_entier = math.ceil(cout_fixe / coef_profit)
qSeuilExactAff = latex(q_seuil)
qSeuilDecimalAff = pxsl_res_num(q_seuil, dec=2, egal=False)
# Marges et profits aux points de test
marge_un = coef_profit * q_test_1
marge_deux = coef_profit * q_test_2
profit_un = marge_un - cout_fixe
profit_deux = marge_deux - cout_fixe
# Chaînes d'affichage
piMidUn = f"{prix_unitaire}q - ({cout_fixe} + {cout_variable}q)"
piMidDeux = f"{prix_unitaire}q - {cout_fixe} - {cout_variable}q"
piFinalAff = f"{coef_profit}q {lc(-cout_fixe, ones=True, sign=True)}"
line1Un = f"{coef_profit}\\times {q_test_1} - {cout_fixe}"
line2Un = f"{marge_un} - {cout_fixe}"
line1Deux = f"{coef_profit}\\times {q_test_2} - {cout_fixe}"
line2Deux = f"{marge_deux} - {cout_fixe}"
# Variables injectées (sans underscore)
prixUnit = prix_unitaire
coutVar = cout_variable
coutFixe = cout_fixe
coefProfit = coef_profit
qTestUn = q_test_1
qTestDeux = q_test_2
qSeuilEntier = q_seuil_entier
profitUn = profit_un
profitDeux = profit_deux
# Figure (construite une seule fois dans le bloc unique)
q_seuil_f = float(q_seuil)
fig, ax = plt.subplots(figsize=(6, 5))
q_vals = [0, 100]
R_vals = [prix_unitaire * v for v in q_vals]
C_vals = [cout_fixe + cout_variable * v for v in q_vals]
ax.plot(q_vals, R_vals, 'b-', linewidth=2, label=f'$R(q)={prix_unitaire}q$')
ax.plot(q_vals, C_vals, 'r-', linewidth=2, label=f'$C(q)={cout_fixe}+{cout_variable}q$')
y_seuil = prix_unitaire * q_seuil_f
ax.plot([q_seuil_f, q_seuil_f], [0, y_seuil], 'k--', linewidth=1)
ax.plot([0, q_seuil_f], [y_seuil, y_seuil], 'k--', linewidth=1)
ax.plot(q_seuil_f, y_seuil, 'ko', markersize=6)
ax.text(q_seuil_f, y_seuil + 200, '$q_0$', ha='center')
ax.set_xlabel('$q$ (unités)', fontsize=11)
ax.set_ylabel('Euros', fontsize=11)
ax.set_xlim(-5, 105)
ax.set_ylim(-200, max(R_vals[-1], C_vals[-1]) + 500)
ax.grid(True, alpha=0.3)
ax.legend(fontsize=10)
ax.axhline(y=0, color='k', linewidth=0.8)
ax.axvline(x=0, color='k', linewidth=0.8)
plt.tight_layout()
plt.show()
globals()
````
:::::{question}
:questionType: STQ
:questionId: 0
:questionIndex: 0
::::{questionStatement}
Une entreprise produit et vend $q\geq 0$ unités d'un bien. La recette est $R(q)={{ prixUnit }}q$ euros et le coût total est $C(q)={{ coutFixe }} + {{ coutVar }}q$ euros. Écrire la fonction profit $\Pi(q)=R(q)-C(q)$ et simplifier.
::::
::::{questionHint}
$\Pi(q)=R(q)-C(q)$ : penser à distribuer le signe moins sur les deux termes de $C(q)$.
::::
::::{detailedSolution}
Règle utilisée : différence de deux fonctions, puis regroupement des termes.
\begin{equation*}
\Pi(q) &= {{ piMidUn }} \\
&= {{ piMidDeux }} \\
&= {{ piFinalAff }}.
\end{equation*}
::::
::::{weightDistribution}
:logic: 15
:abstraction: 20
:reasoning: 30
:calculation: 35
::::
:::::
:::::{question}
:questionType: STQ
:questionId: 1
:questionIndex: 1
::::{questionStatement}
Déterminer le seuil de rentabilité $q_0$, c'est-à-dire la valeur de $q$ pour laquelle $\Pi(q)=0$.
::::
::::{questionHint}
Résoudre l'équation du premier degré ${}{{ piFinalAff }}=0$.
::::
::::{detailedSolution}
On résout $\Pi(q_0)=0$.
\begin{equation*}
{{ coefProfit }}q_0 - {{ coutFixe }} &= 0 \\
q_0 &= \frac{ {{ coutFixe }} }{ {{ coefProfit }} } \\
&= {{ qSeuilExactAff }} \approx {{ qSeuilDecimalAff }}.
\end{equation*}
L'entreprise atteint le seuil de rentabilité à partir de ${}{{ qSeuilEntier }}$ unités vendues (arrondi au nombre entier supérieur).
::::
::::{weightDistribution}
:logic: 20
:abstraction: 25
:reasoning: 30
:calculation: 25
::::
:::::
:::::{question}
:questionType: STQ
:questionId: 2
:questionIndex: 2
::::{questionStatement}
Calculer $\Pi({{ qTestUn }})$ et $\Pi({{ qTestDeux }})$, puis interpréter.
::::
::::{questionHint}
Substituer chaque valeur dans $\Pi(q)={{ piFinalAff }}$ et comparer avec le seuil $q_0$.
::::
::::{detailedSolution}
On évalue la fonction profit.
\begin{equation*}
\Pi({{ qTestUn }}) &= {{ line1Un }} \\
&= {{ line2Un }} \\
&= {{ profitUn }}.
\end{equation*}
\begin{equation*}
\Pi({{ qTestDeux }}) &= {{ line1Deux }} \\
&= {{ line2Deux }} \\
&= {{ profitDeux }}.
\end{equation*}
Pour $q={{ qTestUn }}<q_0$, l'entreprise est en perte (${}{{ profitUn }}$ euros) ; pour $q={{ qTestDeux }}>q_0$, elle réalise un bénéfice de ${}{{ profitDeux }}$ euros.
::::
::::{weightDistribution}
:logic: 15
:abstraction: 20
:reasoning: 30
:calculation: 35
::::
:::::
:::::{question}
:questionType: STQ
:questionId: 3
:questionIndex: 3
::::{questionStatement}
Sur la figure ci-dessus, identifier graphiquement le seuil de rentabilité comme l'intersection des courbes de $R$ et $C$.
::::
::::{questionHint}
Le seuil de rentabilité est le point où recette = coût, c'est-à-dire l'intersection des deux droites.
::::
::::{detailedSolution}
Au seuil de rentabilité, les courbes de la recette $R$ et du coût total $C$ se croisent : à gauche de $q_0$ le coût dépasse la recette (perte), à droite la recette dépasse le coût (bénéfice).
Sur le graphique, on observe que les deux droites se coupent en $q_0 \approx {{ qSeuilDecimalAff }}$, ce qui correspond au calcul algébrique effectué à la question précédente. Pour $q<q_0$, la droite rouge (coût) est au-dessus de la droite bleue (recette), indiquant une perte. Pour $q>q_0$, la situation s'inverse et l'entreprise réalise un profit.
::::
::::{weightDistribution}
:logic: 25
:abstraction: 30
:reasoning: 35
:calculation: 10
::::
:::::