leontif.py

Created by vovenastream

Created on September 30, 2025

1.96 KB


Objectif
# - Determiner la production brute x necessaire pour satisfaire une
#   demande finale d, connaissant les coefficients techniques A.
#
# Ce qu'on te demande typiquement
# - Construire la matrice A des coefficients techniques a_ij.
# - Verifier la "productivite" (souvent colonnes < 1) et que (I - A) est inversible.
# - Resoudre x = (I - A)^(-1) * d (production totale requise).
#
# Definitions / Formules
# - a_ij = quantite de l'input du secteur i necessaire pour produire 1 unite
#   d'output dans le secteur j (convention colonnes -> sorties).
# - Demande finale: d (vecteur colonne).
# - Leontief (ouvert) : x = A*x + d  =>  (I - A) x = d  =>  x = (I - A)^(-1) d
# - Condition d'existence classique: rayon spectral(A) < 1 (souvent verifie si
#   chaque colonne de A a une somme < 1). En pratique: det(I-A) != 0.
#
# Methode pas-a-pas
# 1) A partir de l'enonce, remplir A avec les a_ij (inputs par unite d'output j).
# 2) Former I - A (I identite).
# 3) Verifier que det(I - A) != 0 (ou colonnes < 1 comme verif rapide).
# 4) Calculer (I - A)^(-1) (2x2: formule; 3x3: Gauss-Jordan).
# 5) Calculer x = (I - A)^(-1) * d.
# 6) Interpretion: composantes de x = production brute requise par secteur.
#
# Petit exemple (2 secteurs)
# A = [[0.2, 0.1],
#      [0.3, 0.2]]
# d = [[100],
#      [ 80]]
# I - A = [[1-0.2,   -0.1 ],
#          [ -0.3 , 1-0.2]] = [[0.8, -0.1], [-0.3, 0.8]]
# det = 0.8*0.8 - (-0.1)*(-0.3) = 0.64 - 0.03 = 0.61  -> inversible
# (I - A)^(-1) = (1/0.61) * [[ 0.8,  0.1],
#                            [ 0.3,  0.8]]
# x = (I - A)^(-1) * d = (1/0.61) * [[0.8*100 + 0.1*80],
#                                    [0.3*100 + 0.8*80]]
#   = (1/0.61) * [[88], [94]] ~ [[144.26], [154.10]]
# Interpretation: produire env. 144.26 (secteur 1) et 154.10 (secteur 2).
#
# Bonus (prix, si vu en cours)
# - Modele des prix: p^T = v^T (I - A)^(-1), avec v^T = couts primaires (valeur ajoutee).
#   On peut aussi ecrire p = (I - A)^(-T) v si on travaille en vecteurs colonnes.

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.