Построение графика функции
Лабораторная работа, 21 Января 2013, автор: пользователь скрыл имя
Краткое описание
Цель работы: построить график функции в среде разработки Visual Basic.NET.
Будем считать, что на рынке одного товара функция спроса и функция предложения – линейные функции цены на момент времени или цены предыдущего момента времени.
Составить программу, которая:
1. Изображает кривую спроса и кривую предложения на плоскости, по оси абсцисс которой отложена цена , а по оси ординат – количество сделок.
2. Вычисляет начальное предложение исходя из начального значения цены на момент времени .
3. Изображает маршрут "изменение цены → изменение числа сделок", который имеет вид "паутины", повторив несколько раз процессы.
Файлы: 25 файлов
лаб 3 рис 1.PNG
— 45.97 Кб (Скачать)лаб 3 рис 2.PNG
— 46.37 Кб (Скачать)лаб 3 рис 3.PNG
— 42.72 Кб (Скачать)лаб 3 рис 4.PNG
— 44.47 Кб (Скачать)рис 4 1.PNG
— 59.89 Кб (Скачать)рис 4 2.PNG
— 46.20 Кб (Скачать)рис 4 3.PNG
— 47.77 Кб (Скачать)рис 4 4.PNG
— 47.53 Кб (Скачать)ЛР №4 Теория потребления.pdf
— 119.86 Кб (Скачать)| Page 1 |
Отношения предпочтения, характерные для каждого индивида, отража-
ют посредством кривой безразличия, а условия, ограничивающие потреби-
тельское поведение, задают уравнением бюджетного ограничения. Если обо-
значить рыночные цены первого и второго блага через
1
p и
2
p , а доход потре-
бителя через Q, то для плана потребления
(
)
2
1
, x
x
уравнение бюджетного ог-
раничения, или уравнение бюджетной прямой данного индивида, будет выгля-
деть следующим образом:
Q
x
p
x
p
=
+
2
2
1
1
(в более общем случае справедливо неравенство) .
Будем считать, что каждый индивид в рамках бюджетного ограничения
старается распределить свой доход между различными потребительскими бла-
гами таким образом, чтобы максимизировать полезность:
max
→
U
. Соответ-
ствующий набор благ
( )
*
2
*
1
,x
x
называется оптимальным планом потребления и
обычно обозначает точку касания бюджетной линии и кривой безразличия.
Итак, в условиях, когда рыночные цены и доход индивида заданы извне, оп-
тимальный план потребления индивида определяется на основе принципа мак-
симизации полезности. Оптимальный план потребления изменяется в зависимо-
сти от цен и дохода. Этот факт в виде функции можно записать так:
(
)
(
)
.
,
,
,
,
,
2
1
2
*
2
2
1
1
*
1
Q
p
p
x
x
Q
p
p
x
x
=
=
Приведенные функции называют функциями спроса домашнего хозяй-
ства. Они являются разновидностью функций потребления. Суть функции
спроса отражена в кривых «доход-потребление» и «цены-потребление». Пер-
вая показывает, каким образом при фиксированных ценах объем потребления
каждого из благ меняется в зависимости от изменения дохода. Вторая кривая
демонстрирует, как при фиксированном доходе объем потребления каждого из
благ меняется в зависимости от изменения цен. Все изложенное выше можно
проиллюстрировать на основе компьютерной графики.
Задание
Составить программу, которая последовательно изображает на экране
монитора следующие кривые.
1. Четыре кривые безразличия, касательными к которым служат четыре
бюджетные прямые, а также кривую доход-потребление. В качестве функции
полезности возьмем
2
2
1
1
ln
ln
x
b
x
b
U
+
=
(
1
b и
2
b постоянные).
2. Кривые, описанные в предыдущем пункте, но с учетом того, что коэф-
фициент
1
b функции полезности, отражающий важность первого блага, меня-
| Page 2 |
ется в зависимости от размера дохода. Иными словами, в зависимости от до-
хода изменяются предпочтения. Положим
(
)
.
40
/
sin
05
.0
5.
0
1
Q
b
⋅
+
=
3. Четыре кривые безразличия и касательные к ним четыре бюджетные
прямые, а также кривую цены-потребление, зафиксировав доход Q и цену
второго блага
2
p и изменяя цену первого блага
1
p .
4. Кривые, описанные в п. (3); однако коэффициент
1
b , отражающий
важность первого блага, уменьшается по мере роста цены этого блага. Поло-
жим
1
1
/1 p
b =
5. Кривую цены-потребление, описанную в третьем пункте, как кривую
спроса, отложив по оси Y цену первого блага
1
p .
Список переменных:
U
–
индекс полезности;
( )
i
Y
I
Y
=
–
потребление i-го блага;
( )
i
b
I
B
=
–
коэффициенты функции полезности;
( )
i
P
I
P
–
цена i-го блага;
IN
–
доход;
3
,2
,1
I
I
I
–
начальный, конечный размер дохода и величина шага при-
роста дохода;
3
,2
,1
J
J
J
–
начальная (1000/J = Pi), конечная цена и величина шага
прироста цены.
Комментарии
Если форма кривых безразличия (предпочтения индивида) не зависит от
изменений дохода или цен, то кривые доход-потребление и цены-потребление
представляют собой прямые линии (случаи 1 и 3). Обычно в учебниках по
микроэкономическому анализу внимание на таких случаях не акцентируют,
соответствующие примеры не приводят, и эти кривые изображают в виде изо-
гнутых линий. В нашей программе коэффициент функции полезности
1
b изме-
няется в зависимости от дохода и цен (случаи 2 и 4). Мы просмотрели лите-
ратуру и провели несколько самостоятельных экспериментов, однако не смог-
ли найти конкретные функции полезности, достаточно убедительные с точки
зрения экономической науки, которые задавали бы кривые доход-потребление
и цены-потребление изогнутой формы. Попытайтесь сами подобрать подходя-
щие формулы для
( )
Q
f
b =
1
и
( )
1
1
p
f
b =
, которые задавали бы кривую доход-
потребление изогнутой формы.
| Page 3 |
3. Процедура поиска точек касания кривых безразличия и бюджетных
прямых, основана на следующих рассуждениях.
Согласно формуле предельной нормы замещения
2
1
1
2
/
/
x
U
x
U
dx
dx
∂
∂
∂
∂
=
−
и учитывая, что частные производные функции
2
2
1
1
ln
ln
Y
b
Y
b
U
+
=
равны со-
ответственно
1
1
1
/
/
x
b
x
U
=
∂
∂
2
2
2
/
/
x
b
x
U
=
∂
∂
имеем:
(
) (
)
1
2
2
1
1
2
/
/
/
x
x
b
b
dx
dx
⋅
=
−
.
С другой стороны, согласно уравнению бюджетной прямой
2
1
1
2
/
/
p
p
dx
dx
=
−
.
Следовательно,
(
) (
)
2
1
1
2
2
1
/
/
/
p
p
x
x
b
b
=
⋅
.
Подставив это выражение в уравнение дохода
2
2
1
1
x
p
x
p
Q
+
=
и выпол-
нив необходимые преобразования, получаем:
.
;
2
1
2
2
*
2
2
1
1
1
*
1
b
b
b
p
Q
x
b
b
b
p
Q
x
+
⋅
=
+
⋅
=
| Page 4 |
| Page 5 |
'ТЕОРИЯ ПОТРЕБЛЕНИЯ
Option Explicit
Dim X0, Y0, XX, YY, SX, SY
Dim B(2), C(2), P(2)
Private Sub Form_Load()
ScaleMode = 3 ' устанавливаем измерение в пикселях.
X0 = 100 'ось Y от левого края
Y0 = 800
XX = 400
YY = 400
SX = XX / (600 - X0)
SY = YY / (Y0 - 16)
FontSize = 10 ' устанавливаем размер фонта.
FontName = Screen.Fonts(5) 'устанавливаем фонт Sans Serif
End Sub
'КРИВАЯ ДОХОД-ПОТРЕБЛЕНИЕ 1
Private Sub Command1_Click()
Dim U1, U2, X1, U, X
Dim I, IT, I1, I2, I3, YZ
Dim Y(2)
Call Osi(X0, Y0)
B(1) = 1: B(2) = 1: P(1) = 3: P(2) = 2
| Page 6 |
CurrentX = 300
CurrentY = 20
Print "КРИВАЯ ДОХОД-ПОТРЕБЛЕНИЕ"
CurrentX = 300
CurrentY = 40
"ПОЛЕЗНОСТЬ=";
B(1);
"*LogX(1)+
";
B(2);
"*
LogX(2)"
CurrentX = 300
CurrentY = 60
Print "ДОХОД = P(1)*X(1)+P(2)*X(2)"
CurrentX = 300
CurrentY = 80
Print "P(1)="; P(1); "( const. )";
CurrentX = 300
CurrentY = 100
Print "P(2)="; P(2); "( const. )"
I1 = 200: I2 = 500: I3 = 100
DrawWidth = 2
For IT = I1 To I2 Step I3 ' строим 4 графика
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
U = B(1) * Log(Y(1)) + B(2) * Log(Y(2))
Line (X0, Y0 / 2 - IT / P(2) / SY / 2)-(IT / P(1) / SX
+ X0, Y0 / 2), 1
For X = 1 To XX Step SX
YZ = (Exp(U) / X ^ B(1)) ^ (1 / B(2))
PSet (X / SX + X0, Y0 / 2 - YZ / SY / 2), 1
Next X
Next IT
CurrentX = 300
CurrentY = 140
Print " "
I1 = 100: I2 = 550: I3 = 1
DrawWidth = 1
For IT = I1 To I2 Step I3
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
PSet (Y(1) / SX + X0, Y0 / 2 - Y(2) / SY / 2), 1
Next IT
End Sub
'КРИВАЯ ДОХОД-ПОТРЕБЛЕНИЕ 2
Private Sub Command2_Click()
| Page 7 |
Dim U1, U2, X1, U, X
Dim I, IT, I1, I2, I3, YZ
Dim Y(2)
Call Osi(X0, Y0)
Cls 'Очистка формы.
Call Osi(X0, Y0)
B(2) = 1: P(1) = 3: P(2) = 2
CurrentX = 200
CurrentY = 20
Print "КРИВАЯ ДОХОД-ПОТРЕБЛЕНИЕ"
CurrentX = 200
CurrentY = 40
Print "ИЗМЕНЕНИЕ ПРЕДПОЧТЕНИЙ В ЗАВИСИМОСТИ ОТ ДОХОДА"
CurrentX = 200
CurrentY = 60
Print "ДОХОД=P(1)*X(1)+P(2)*X(2)";
CurrentX = 200
CurrentY = 80
Print " P(1)="; P(1); "( const. )"
CurrentX = 200
CurrentY = 100
Print " P(2)="; P(2); "( const. )"
I1 = 200: I2 = 500: I3 = 100
DrawWidth = 2 ' Толщина линий
For IT = I1 To I2 Step I3 '
B(1) = 0.5 + 0.05 * Sin(IT / 40)
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
U = B(1) * Log(Y(1)) + B(2) * Log(Y(2))
Line (X0, Y0 / 2 - IT / P(2) / SY / 2)-(IT / P(1) / SX
+ X0, Y0 / 2), 1
For X = 1 To XX Step SX
YZ = (Exp(U) / X ^ B(1)) ^ (1 / B(2))
If X < 16 Then GoTo 73
PSet (X / SX + X0, Y0 / 2 - YZ / SY / 2), 1
73 Next X
Next IT
I1 = 100: I2 = 550: I3 = 1
DrawWidth = 1
For IT = I1 To I2 Step I3
B(1) = 0.5 + 0.05 * Sin(IT / 40)
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
| Page 8 |
Next I
PSet (Y(1) / SX + X0, Y0 / 2 - Y(2) / SY / 2), 1
Next IT
End Sub
'КРИВАЯ ЦЕНЫ-ПОТРЕБЛЕНИЕ
Private Sub Command3_Click()
Dim U1, U2, X1, U, YZ, X, J1, J2, J3, J, IT, I
Dim Y(2)
Call Osi(X0, Y0)
B(2) = 1
B(1) = 1: P(2) = 1.5: IT = 400
CurrentX = 300
CurrentY = 20
Print "КРИВАЯ ЦЕНЫ-ПОТРЕБЛЕНИЕ"
CurrentX = 300
CurrentY = 40
Print "Полезность"; B(1); "*LogX(1)+"; B(2); "*LogX(2)"
CurrentX = 300
CurrentY = 60
Print "Доход=P(1)*X(1)+P(2)*X(2)"
CurrentX = 300
CurrentY = 80
Print "ДОХОД="; IT; "( const. )"
CurrentX = 300
CurrentY = 100
Print " P(2)="; P(2); "( const. )"
J1 = 1000: J2 = 250: J3 = 250
DrawWidth = 2
For J = J1 To J2 Step -J3
P(1) = 1000 / J
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
U = B(1) * Log(Y(1)) + B(2) * Log(Y(2))
Line (X0, Y0 / 2 - IT / P(2) / SY / 2)-(IT / P(1) / SX
+ X0, Y0 / 2), 1
For X = 1 To XX Step SX
YZ = (Exp(U) / X ^ B(1)) ^ (1 / B(2))
PSet (X / SX + X0, Y0 / 2 - YZ / SY / 2), 1
Next X
Next J
J1 = 1200: J2 = 40: J3 = 4
DrawWidth = 1
For J = J1 To J2 Step -J3
| Page 9 |
P(1) = 1000 / J
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
PSet (Y(1) / SX + X0, Y0 / 2 - Y(2) / SY / 2), 2
Next J
End Sub
'КРИВАЯ ЦЕНЫ-ПОТРЕБЛЕНИЕ
Private Sub Command4_Click()
Dim Y2, X2
Dim U1, U2, X1, U, YZ, X, J1, J2, J3, J, IT, I
Dim Y(2)
B(2) = 2: C(1) = 2: C(2) = 4:
IT = 400: P(1) = 3: P(2) = 1.5
Call Osi(X0, Y0)
CurrentX = 200
CurrentY = 20
Print "КРИВАЯ ЦЕНЫ-ПОТРЕБЛЕНИЕ"
CurrentX = 200
CurrentY = 40
Print "СПРОС НА БЛАГО 1 ИЗМЕНЯЕТСЯ В ЗАВИСИМОСТИ ОТ P(1)"
CurrentX = 200
CurrentY = 60
Print "Доход = P(1)*X(1)+P(2)*X(2)"
CurrentX = 200
CurrentY = 80
Print "Доход="; IT; "( const. )"
CurrentX = 200
CurrentY = 100
Print "P(2)="; P(2); "( const. )"
J1 = 1000: J2 = 250: J3 = 250
DrawWidth = 1
For J = J1 To J2 Step -J3
P(1) = 1000 / J
B(1) = 1 / Sqr(P(1))
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
U = B(1) * Log(Y(1)) + B(2) * Log(Y(2))
Line (X0, Y0 / 2 - IT / P(2) / SY / 2)-(IT / P(1) / SX
+ X0, Y0 / 2), 1
For X = 1 To XX Step SX
YZ = (Exp(U) / X ^ B(1)) ^ (1 / B(2))
PSet (X / SX + X0, Y0 / 2 - YZ / SY / 2), 1
| Page 10 |
Next X
Next J
J1 = 1200: J2 = 40: J3 = 4
DrawWidth = 1
For J = J1 To J2 Step -J3
P(1) = 1000 / J
B(1) = 1 / Sqr(P(1))
For I = 1 To 2
Y(I) = IT * B(I) / P(I) / (B(1) + B(2))
Next I
PSet (Y(1) / SX + X0, Y0 / 2 - Y(2) / SY / 2), 2
Next J
End Sub
Private Sub Osi(X0, Y0)
Cls
DrawWidth = 1
Line (X0, 16)-(X0, 450), 1
Line (10, Y0 / 2)-(650, Y0 / 2), 1
CurrentX = 60
CurrentY = X0 / 8 - 3
Print "X(2)"
CurrentX = 600
CurrentY = Y0 / 2 + 10
Print "X(1)"
End Sub
Private Sub Command5_Click()
Unload Form1
End ' Ends the application.
End Sub