`````{exercise} :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$, 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 $qq_0$, la situation s'inverse et l'entreprise réalise un profit. :::: ::::{weightDistribution} :logic: 25 :abstraction: 30 :reasoning: 35 :calculation: 10 :::: ::::: `````