Экономико-математическое моделирование : Статистические модели макроэкономики
Статистические модели макроэкономики
Российский государственный гидрометеорологический университет Экономический и социально-гуманитарный факультет Кафедра Экономики и менеджментаКурсовая работапо дисциплине «Информатика»Статистические модели макроэкономикиСанкт-Петербург2008г.1. Постановка задачи. Даны: вектор непроизводственного потребления , матрицы межотраслевого баланса и . 1. Рассчитать матрицу В. 2. Найти вектор валового выпуска х, обеспечивающий данный вектор потребления.3. Рассчитать произведение вектора на матрицу Ах.4. Рассчитать вектор .Все расчеты произвести с использованием программы, написанной на алгоритмическом языке ПАСКАЛЬ.|
№ варианта | Вектор потребления, | Матрица межотраслевого баланса | Матрица межотраслевого баланса | | 1 | 1/3 | 1/3 1/6 ? ? | ? ? ? 1/4 | | | 11 program KURSOVOJ_PROJECT;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;beginwriteln(' Ввести вектор ',name,' размера n=', n); for i:=0 to n-1 dobeginwrite (' ',name,'[',i:2,']='); readln(x[i])end;end;readvecprocedure writevec (var x:vec; name:char; n:int);var i:int;beginwriteln(' Вывести вектор ',name, ' размера n=', n); for i:=0 to n-1 dobeginwrite (' ',name,'[',i:2,']='); writeln(x[i]:10:5)end;end;writevecprocedure readmatr(var y:matr; name:char; n,m:int);var i,j:int;beginwriteln (' Ввести матрицу ',name,' размера : n=' ,n,', * m=' ,m); for i:=0 to n-1 dofor j:=0 to m-1 dobeginwrite(' ',name, '[' ,i:2,' ,' ,j:2, ']= ');readln (y[i,j])end;end;readmatrprocedure writematr(var y:matr; name:char; n,m:int);var i,j:int;beginwriteln (' Вывести матрицу ',name,' размера: n=' ,n,', * m=' ,m);for i:=0 to n-1 dofor j:=0 to m-1 dobeginwrite(' ',name, '[' ,i:2,' ,' ,j:2, ']= ');writeln (y[i,j]:8:4)end;end;writematrprocedure Em (var E:matr; n:int);var i,j:int;beginfor i:=0 to n dofor j:=0 to n doif i=j then E[i,j]:=1 else E[i,j]:=0;end;end Eprocedure Rmatr(var a,b,c:matr; n,m:int);var i,j:int;beginfor i:=0 to n dofor j:=0 to m doc[i,j]:=a[i,j]-b[i,j];end;Rmatrprocedure obrmatr (Var AIS,AP: matr; n:int);var i,j,k,l:integer;a:matr;begina:=AIS;n:=n-1;for k:=0 to n do beginfor j:=0 to n doif (j<>k) then AP[k,j]:=-a[k,j]/a[k,k];for i:=0 to n doif (i<>k) then AP [i,k]:=a[i,k]/a[k,k];for i:=0 to n dofor j:=0 to n doif (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 obrmatrprocedure matrvec(var b:matr; var c,x:vec; n:int);var i,j:int;beginfor j:=0 to n-1 do beginx[j]:=0;for i:=0 to n-1 dox[j]:=x[j]+b[i,j]*c[i]end;end; end matrvec{ ТЕЛО ПРОГРАММЫ }beginclrscr;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]) thenwriteln (' Экономика матрица A - эффективна') elsewriteln (' Экономика матрица A - не эффективна');if (ax_1[0]<=c[0]) and (ax_1[1]<=c[1]) thenwriteln (' Экономика матрица A_1 - эффективна') elsewriteln (' Экономика матрица A_1 - не эффективна');readlnwrite 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.Процедура образования матрицы|
А=ais;n:=n-1 | | Для k от 0 до n с шагом 1 делать | | | Для i от 0 до n с шагом 1 делать | | | | j?k true | | | | Ap[k;j]:=-a[k;j]/a[k;k] | | | Для I от 1 до n с шагом 1 делать | | | | i?k true | | | | Ap[i;k]:=A [i;k]/A[k;k] | | | | Для i от 0 до n с шагом 1 делать | | | | Для j от 0 до nс шагом 1 делать | | | | i?k;j?k true | | | | AP[i;j]:=a[i;j]-a[i;j]*a[k;j]/a[k;k] | | | | AP[k;k]:=1/a[k;k] | | | | Q:=AP | | | Расчеты при вводе значенийПри добавлении:B[0,0]=4.6154B[0,1]=1,0462B[1,0]=3,0769B[1,1]=2,0308Вывести матрицу Z размера :n=2,m=2Z[0,0]=2,400Z[0,1]=0,800Z[1,0]=0,800Z[1,1]=1,600Вывести вектор Х размера n=2Х[0]=13,84615Х[1]=7,13846Вывести вектор x размера n=2Y[0]=4,8000Y[1]=5,6000
|