Смекни!
smekni.com

Исследование и компьютерная реализация экономико-математической модели зависимости поступлений в бюджет от величины налоговой ставки (стр. 4 из 4)

Рассмотрев данную модель, можно прийти к выводу, что, несмотря на то, что кривая Лаффера действительно отражает зависимость поступлений в бюджет от величины налоговых ставок, применение её в «необработанном», теоретическом виде приведёт к отрицательному результату. Использовать её надо очень осторожно, делая поправку на конкретную экономическую ситуацию в стране и задумываясь о возможных последствиях.


Заключение

Проведя исследования зависимости поступлений в бюджет от величины налоговой ставки, можно сделать вывод, что поступления в бюджет за определённый период будут наибольшими не при максимальной, а для оптимальной для бюджета ставке налога, то есть с ростом налоговой ставки поступления в бюджет будут сперва увеличиваться, а затем уменьшатся.

Чем выше рентабельность предприятия, тем ярче выражена оптимальная ставка налогообложения, но с ростом рентабельности оптимальная ставка уменьшается, стремясь к фиксированной величине, на нашем графике, примерно, к 21 %.

Анализ результатов имитации будет неожиданным для стран с прогрессивным налогообложением сверхприбылей корпораций: нем выше рентабельность, тем выгоднее бюджету уменьшить ставку налога. Фирмы с низкой рентабельностью целесообразно облагать более высокими налогами. Разумеется, молодым фирмам необходим льготный период.

Закономерность, открытая американским экономистом Лаффером, действительно существует. Правительство тоже хотело бы снизить налоги, чтобы предприятиям оставалось больше денег на расширение производства.

Но беда в том, что при снижении налогов может потребоваться много месяцев (экономисты называют это время "лагом"), прежде чем такая операция скажется на уровне производства. Тут важно позаботиться о том, чтобы все связанные со снижением налогов работы проводились быстро и оперативно.

Но ослаблять налоговый пресс надо осторожно. При недоборе налогов государственный бюджет не сможет выполнять свои функции, государство вынуждено будет пойти на дополнительную денежную эмиссию, инфляция снова усилится и народное хозяйство попадет в заколдованный круг:

Дефицит бюджета - инфляция - сокращение производства - дефицит бюджета


Список используемой литературы

1. Гультяев А.К. Имитационное моделирование в среде Windows: Практическое руководство. – СПб.: КОРОНА принт, 2001. ­– 400 с.

2. Цисарь И.Ф., Нейман В.Г. Компьютерное моделирование экономики. – М.: Диалог-МИФИ, 2002. – 304 с.

3. Налоги: Учеб. пособие/Под ред. Д. Г. Черника. – 4-е изд, перераб и доп. – М.: Финансы и статистика, 1998. – 544 с.

4. Экономическая теория/Под ред. А.И. Добрынина, Л.С. Тарасевича, 3-е изд. – Спб: Питер, 2001. – 544 с.

5. Мировая экономика: Учебник/Под ред. проф. А.С. Булатова. – М.: Юристъ, 2001. – 734 с.

6. Борисов Е.Ф. Экономическая теория: Учебник. – М.: Юристъ, 1997. – 568 с.

7. Майбурд Е.М. Введение в историю экономической мысли. От пророков до профессоров. – 2-е изд., испр. и доп. – М.: Дело, 2000. – 560 с.

8. Емельянов А.А. и др. Имитационное моделирование экономических процессов: Учеб. пособие / А.А. Емельянов, Е.А. Власова, Р.В. Дума; Под ред. А.А. Емельянова. – М.: Финансы и статистика, 2002. – 368 с.

9. Говорухин В., Цибулин В. Компьютер в математическом исследовании. Учебный курс. – СПб.: Питер, 2001. – 624 с.

10. Замков О.О., Толстопятенко А.В., Черемных Ю.Н. Математические методы в экономике: Учебник. – М.: МГУ им М.В. Ломоносова, Издательство «ДИС», 1997. – 368 с.


Приложение 1. Исходный текст программы

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeeProcs, TeEngine, Chart, StdCtrls, Buttons, ExtCtrls,Series;

type

TForm1 = class(TForm)

Panel1: TPanel;

lbedMinNalog: TLabeledEdit;

lbedStartCapital: TLabeledEdit;

lbedMaxRent: TLabeledEdit;

lbedMinRent: TLabeledEdit;

lbedStepRent: TLabeledEdit;

BitBtn1: TBitBtn;

lbedMinPeriod: TLabeledEdit;

Chart: TChart;

lbedMaxNalog: TLabeledEdit;

lbedStepNalog: TLabeledEdit;

lbedMaxPeriod: TLabeledEdit;

lbedStepPeriod: TLabeledEdit;

Timer1: TTimer;

procedure BitBtn1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure lbedMaxNalogKeyPress(Sender: TObject; var Key: Char);

private

MaxP,MinP,Period,StepP:Integer;

function Postupleniya(Nalog,Rentab,Capital:Double;years:integer):Double;

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.Postupleniya(Nalog, Rentab, Capital: Double;

years: integer): Double;

var

Pribil,PribilVNalog,OstPribili,Kapital:Double;

begin

Result:=0.0;

while years>0 do

begin

dec(years);

Pribil:=Capital*Rentab/100;

PribilVNalog:=Pribil*Nalog/100;

OstPribili:=Pribil-PribilVNalog;

Capital:=Capital+OstPribili;

Result:=Result+PribilVNalog;

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

var

MinNalog,MaxNalog,StepNalog,Rent,DohodVBudget,

StavkaNaloga,NachKapital,MinRentab,

MaxRentab,StepRent:Double;

i:integer;

begin

for i:=0 to ComponentCount-1 do

if Components[i] is TLabeledEdit then

if TLabeledEdit(Components[i]).Text='' then

begin

Timer1.Enabled:=false;

Exit;

end;

MinNalog:=StrToFloat(lbedMinNalog.Text);

MaxNalog:=StrToFloat(lbedMaxNalog.Text);

StepNalog:=StrToFloat(lbedStepNalog.Text);

NachKapital:=StrToFloat(lbedStartCapital.Text);

MaxRentab:=StrToFloat(lbedMaxRent.Text);

MinRentab:=StrToFloat(lbedMinRent.Text);

StepRent:=StrToFloat(lbedStepRent.Text);

MinP:=StrToInt(lbedMinPeriod.Text);

MaxP:=StrToInt(lbedMaxPeriod.Text);

StepP:=StrToInt(lbedStepPeriod.Text);

Timer1.Enabled:=true;

with Chart do

begin

SeriesList.Clear;

Legend.LegendStyle:=lsSeries;

Title.Text.Strings[0]:=IntToStr(Period)+' лет';

Rent:=MinRentab;

while Rent<=MaxRentab do

begin

AddSeries(TLineSeries.Create(Self));

Series[SeriesCount-1].Title:=FloatToStr(Rent)+'%';

StavkaNaloga:=MinNalog;

while StavkaNaloga<=MaxNalog do

begin

DohodVBudget:=Postupleniya(StavkaNaloga,Rent,NachKapital,Period);

Series[SeriesCount-1].AddXY(StavkaNaloga,DohodVBudget,'');

StavkaNaloga:=StavkaNaloga+StepNalog;

end;

Rent:=Rent+StepRent;

end;

end;

end;

procedure TForm1.Timer1Timer(Sender: TObject);

begin

if Period<=MaxP then

begin

Period:=Period+StepP;

BitBtn1Click(Self);

end

else

Period:=MinP;

end;

procedure TForm1.lbedMaxNalogKeyPress(Sender: TObject; var Key: Char);

begin

if key=#13 then BitBtn1Click(Self);

if not(Key in ['0'..'9',#8,','])then Key:=#0;

end;

end.