Статистические модели макроэкономики. Модель Леонтьева

Автор работы: Пользователь скрыл имя, 15 Июня 2011 в 02:22, контрольная работа

Описание

Даны: вектор непроизводственного потребления , матрицы межотраслевого баланса и .

Рассчитать матрицу В.
Найти вектор валового выпуска х, обеспечивающий данный вектор потребления.
Рассчитать произведение вектора на матрицу А×х.
Рассчитать вектор .

Работа состоит из  1 файл

Курсовик..docx

— 37.61 Кб (Скачать документ)
 
 

     1. Постановка задачи.

     Даны:  вектор непроизводственного потребления , матрицы межотраслевого баланса и .

  1. Рассчитать матрицу В.
  2. Найти вектор валового выпуска х, обеспечивающий данный вектор потребления.
  3. Рассчитать произведение вектора на матрицу А×х.
  4. Рассчитать вектор .

     Все расчеты произвести с использованием программы, написанной на алгоритмическом  языке ПАСКАЛЬ. 

№ варианта Вектор потребления, Матрица межотраслевого

баланса

Матрица межотраслевого баланса 

      4                       3                               1/2        1/4                              2/5       1/5

                                1                              1/4         1/4                              1/3       1/3  
 
 
 
 

 

 
 

2. Блок-Схема алгоритма. 

 

     

     

       

     

                                                                                                                                                                               

        

       

       

     

     

     

     

     

       

       

     

       

       
 

     

     

       
 

     

     

     

     

       
 
 
 
 

3. Программа на алгоритмическом  языке Pascal. 
 
 

     program kursovaya;

     uses crt;

     type int=0..10;

     vec=array [0..10] of real;

     matr=array [0..10,0..10] of real;

     var x,x_1,ax,ax_1,c:vec;

     e,a,a_1,b,b_1,br,br_1: matr;

     m,n:int;

     name:char;

     procedure readvec (var x:vec; name:char; n:int);

     var i:int;

     begin

     writeln(' Ввести вектор ',name,' размера n=', n); for i:=0 to n-1 do

     begin

     write (' ',name,'[',i:2,']='); readln(x[i])

     end;

     end;readvec

     procedure writevec (var x:vec; name:char; n:int);

     var i:int;

     begin

     writeln(' Вывести вектор ',name, ' размера n=', n); for i:=0 to n-1 do

     begin

     write (' ',name,'[',i:2,']='); writeln(x[i]:10:5)

     end;

     end;writevec

     procedure readmatr(var y:matr; name:char; n,m:int);

     var i,j:int;

     begin

     writeln ('  Ввести матрицу ',name,

     ' размера : n=' ,n,', * m=' ,m); for i:=0 to n-1 do

     for j:=0 to m-1 do

     begin

     write('  ',name, '[' ,i:2,' ,' ,j:2, ']= ');

     readln (y[i,j])

     end;

     end;readmatr

     procedure writematr(var y:matr; name:char; n,m:int);

     var i,j:int;

     begin

     writeln ('  Вывести матрицу ',name,

     ' размера: n=' ,n,', * m=' ,m);

     for i:=0 to n-1 do

     for j:=0 to m-1 do

     begin

     write('  ',name, '[' ,i:2,' ,' ,j:2, ']= ');

     writeln (y[i,j]:8:4)

     end;

     end;writematr

     procedure Em (var E:matr; n:int);

     var i,j:int;

     begin

     for i:=0 to n do

     for j:=0 to n do

     if i=j then E[i,j]:=1 else E[i,j]:=0;

     end;end E

     procedure Rmatr(var a,b,c:matr; n,m:int);

     var i,j:int;

     begin

     for i:=0 to n do

     for j:=0 to m do

     c[i,j]:=a[i,j]-b[i,j];

     end;Rmatr

     procedure obrmatr (Var  AIS,AP: matr; n:int);

     var i,j,k,l:integer;

     a:matr;

     begin

     a:=AIS;

     n:=n-1;

     for k:=0 to n do begin

     for j:=0 to n do

     if (j<>k) then AP[k,j]:=-a[k,j]/a[k,k];

     for i:=0 to n do

     if (i<>k) then AP [i,k]:=a[i,k]/a[k,k];

     for i:=0 to n do

     for j:=0 to n do

     if (i<>k) and (j<>k)

     then AP[i,j]:= a[i,j]-a[i,k]*a[k,j]/a[k,k];

     AP[k,k]:=1/a[k,k]; a:=AP;

     end;

     end; end obrmatr

     procedure matrvec(var b:matr; var c,x:vec; n:int);

     var i,j:int;

     begin

     for j:=0 to n-1 do begin

     x[j]:=0;

     for i:=0 to n-1 do

     x[j]:=x[j]+b[i,j]*c[i]

     end;

     end; end matrvec

     { ТЕЛО ПРОГРАММЫ }

     begin

     clrscr;

     readvec (c,'C',2);

     readmatr (a,'A',2,2);

     readmatr (a_1,'Z',2,2);

     Em(e,2); rmatr(e,a,br,2,2); rmatr(e,a_1,br_1,2,2); obrmatr(br,b,2); obrmatr(br_1,b_1,2); matrvec (B,C,x,2); matrvec (B_1,C,x_1,2); matrvec (A,x,ax,2); matrvec (A_1,x_1,ax_1,2);

     if (ax[0]<=c[0]) and (ax[1]<=c[1]) then

     writeln ('   Экономика матрица A -  эффективна') else

     writeln ('   Экономика матрица A -  не эффективна');

     if (ax_1[0]<=c[0]) and (ax_1[1]<=c[1]) then

     writeln ('   Экономика матрица A_1 -  эффективна') else

     writeln ('   Экономика матрица A_1 -  не эффективна');

     readln

     write matr(B,’B’,2,2);

     write matr (B1,’Z’,2,2);

     write vec (x,’x’.2);

     write vec(x1,’y’,2);

     end.

       {Окончание программы} 
 
 
 

     1.Процедура  ввода вектора

Ввод  вектора X размерностью n
Для I от n до n-1 с шагом 1 делать
  Ввести значение элемента массива X[i]
 

2.Процедура вывода вектора

Вывод вектора X  размерностью n
Для i от 0 до n-1 с шагом 1 делать
  Вывести вектор X[i;j]
 

 

3.Процедура  ввода матрицы

Ввод  размерности n,m ввод элементов массива Y[i;j]
Для i от 0 до n-1 с шагом 1 делать
  Для i от 0 до m-1 с шагом 1 делать
    Ввести  значение элемента массива Y[i;j]
 

4.Процедура  вывода матрицы

Вывод массива Y[i;j] размерностью n,m
Для i от 0 до n-1 с шагом 1 делать
  Для i от 0 до m-1 с шагом 1 делать
  Вывести массив Y[i;j]
 

5.Процедура  вывода единичной матрицы

Вывод массива E[i;j] размерностью n
  Для i от 0 до n-1 с шагом 1 делать
  Для i от 0 до m-1 с шагом 1 делать
                                                                 I=j

                        Да                                                                                          Нет

  E [I;j] = 1                                                          F[j;j]=0
  Вывести матрицу  E [i;j]
 
 

6.Процедура  умножения вектора на матрицу

Для i от 0 до n-1 с шагом 1 делать
  Для i от 0 до m-1 с шагом 1 делать
  C[i;j]:=a[i;j]-b[i;j]

 

7.Процедура умножения вектора на матрицу

Для i от 0 до n-1 с шагом 1 делать
  X[i;j]:=0
  Для i от 0 до n-1 с шагом 1 делать
  X[j]:=x[j]+c[i]*b[i;j]
 

8.Процедура образования матрицы

Информация о работе Статистические модели макроэкономики. Модель Леонтьева