>
 

MATH 244 -- Linear Algebra 

A Leontief Model 

February 7, 2007 

 

Say we have an economy with three sectors: manufacturing, agriculture, 

services.   

 

Say to produce 1 unit of its output, the manufacturing sector will 

use .3 units input from its own sector, .3 units input from agriculture, 

and .2 units from the service sector.  Say to produce 1 unit of its 

output, the agricultural sector will use .4 units from manufacturing, 

.1 units from agriculture, and .2 units from service.  Finally, suppose 

that for each 1 unit of its output,  the service sector uses .3 units 

from manufacturing, .2 units from agriculture, and .1 units from  

service.   

 

This information specifies the Leontief consumption matrix  C: 

 

> with(linalg); -1
 

> C := matrix([[.3, .4, .3], [.3, .1, .2], [.2, .2, .1]]); 1
 

table( [( 2, 3 ) = .2, ( 2, 2 ) = .1, ( 1, 2 ) = .4, ( 2, 1 ) = .3, ( 1, 1 ) = .3, ( 3, 2 ) = .2, ( 1, 3 ) = .3, ( 3, 1 ) = .2, ( 3, 3 ) = .1 ] ) 

>
 

The Leontief model says:  In order to meet a final demand vector  d, 

the three sectors must set their production vector x  so that  

 

           x = Cx+d  or (if I - C is invertible)    

> IminusC := matrix([[.7, -.4, -.3], [-.3, .9, -.2], [-.2, -.2, .9]]); 1
 

table( [( 2, 3 ) = -.2, ( 2, 2 ) = .9, ( 1, 2 ) = -.4, ( 2, 1 ) = -.3, ( 1, 1 ) = .7, ( 3, 2 ) = -.2, ( 1, 3 ) = -.3, ( 3, 1 ) = -.2, ( 3, 3 ) = .9 ] ) 

> IminusCinverse := inverse(IminusC); 1
 

table( [( 2, 3 ) = .6705539359, ( 2, 2 ) = 1.661807580, ( 1, 2 ) = 1.224489796, ( 2, 1 ) = .9037900875, ( 1, 1 ) = 2.244897959, ( 3, 2 ) = .6413994169, ( 1, 3 ) = 1.020408163, ( 3, 1 ) = .6997084548, ... 

>
 

Say we want to meet a final demand of  

> d := matrix([[100], [100], [30]]); 1
 

table( [( 2, 1 ) = 100, ( 1, 1 ) = 100, ( 3, 1 ) = 30 ] ) 

> Aug := concat(IminusC, d); 1
 

table( [( 2, 3 ) = -.2, ( 2, 2 ) = .9, ( 3, 4 ) = 30, ( 1, 2 ) = -.4, ( 1, 4 ) = 100, ( 2, 1 ) = -.3, ( 1, 1 ) = .7, ( 3, 2 ) = -.2, ( 1, 3 ) = -.3, ( 3, 1 ) = -.2, ( 3, 3 ) = .9, ( 2, 4 ) = 100 ] ) 

> gaussjord(Aug); 1
 

table( [( 2, 3 ) = 0, ( 2, 2 ) = 1, ( 3, 4 ) = 178.7172011, ( 1, 2 ) = 0, ( 1, 4 ) = 377.5510204, ( 2, 1 ) = 0, ( 1, 1 ) = 1, ( 3, 2 ) = 0, ( 1, 3 ) = 0, ( 3, 1 ) = 0, ( 3, 3 ) = 1, ( 2, 4 ) = 276.676... 

>
 

This says:  the manufacturing sector must produce approx. 376 units, the  

agricultural sector must produce approx. 277 units, and the service 

sector must produce approx. 179 units.  We could also solve the model 

by computing: 

> multiply(IminusCinverse, d); 1
 

table( [( 2, 1 ) = 276.6763849, ( 1, 1 ) = 377.5510204, ( 3, 1 ) = 178.7172012 ] ) 

>