Как мне найти рыночное равновесие с двумя участниками рынка (фирма, устанавливающая цену, и правительство, устанавливающее акцизный налог) в Python?

#python

#python

Вопрос:

Я пытаюсь найти равновесие на рынке с заданной функцией спроса, фирма максимизирует свою прибыль, а правительство устанавливает акцизный налог, чтобы максимизировать налоговый доход. Я написал код для решения проблем максимизации, которые фирма и правительство используют для максимизации своей прибыли / налогов. Теперь я не уверен, каков следующий шаг для нахождения равновесия. Кто-нибудь может помочь мне со следующим шагом?

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

Это код, который я написал, я ищу следующий шаг для решения проблемы равновесной цены и акцизного налога на основе их наилучших ответов.

 from scipy import stats, optimize

alpha1 = 10
beta1 = -0.5
c1 = 0.5

def Q1(P1,t1):
    return alpha1 beta1*P1*(1 t1)

def profits1(P1,t1,c1):
    return Q1(P1,t1)*(P1-c1)

def taxes(t1,P1):
    return Q1(P1,t1)*P1*t1

def reactionfirm1(t1,c1):
    P1 = optimize.fminbound(lambda x: -profits1(x,t1,c1),0,100)
    return P1

def reactiongovernment1(P1):
    t1 = optimize.fminbound(lambda x: -taxes(x,P1),0,100)
    return t1
 

Решение этого с помощью ручки и бумаги дает t1 = 3,73 и P1 = 2,36 (оба округлены).

Чтобы решить эту проблему с помощью ручки и бумаги, я сначала нахожу лучшие ответы фирмы и правительства. Для фирмы наилучший ответ можно найти, взяв первую производную от функции прибыли по отношению к P1, поставив ее равной 0 и записав P1 как функцию от t1. Что дает:

P1 = (10.25 0.25t1) / (1 t)

Аналогично, для наилучшего ответа правительства можно найти, взяв первую производную от налогового дохода по отношению к t1, поставив это равным 0 и записав t1 как функцию P1, что дает:

t1 = 10 / P1 -0,5

Чтобы найти P1 и t1, вы либо подключаете t1 к P1, либо P1 к t1 и решаете ее.

Итак, я подключил P1 к t1, чтобы получить:

t1 = (10 10t) / (10.25 0.25t) -0.5

Что дает t1 = 3,73

и, включив t1 = 3,73 в наилучший ответ фирм, я получаю P1 = 2,36

То, что я надеялся сделать с помощью Python, — это вычислить и решить наилучшие ответы фирмы и правительства, чтобы найти t1 и P1. Потому что я хочу расширить модель, что усложняет ее решение с помощью ручки и бумаги. Кроме того, имея его в python, будет легче изменить параметры alpha1, beta1 и c1, чтобы увидеть, как изменяются оптимальные значения P1 и t1.

Комментарии:

1. Вам нужно будет знать и предоставить алгоритм, который вы действительно хотите реализовать, чтобы получить помощь в этом. Наличие тестовых данных с вашим ожидаемым результатом также поможет вам намного лучше.

2. @KenSyme Спасибо за ваш отзыв. Я отредактировал свой первоначальный вопрос, чтобы объяснить, как я решаю его с помощью ручки и бумаги и какое решение я получаю (какой результат ожидается). Я надеюсь, что это прояснит то, что я хочу сделать в Python. Проблема в том, что я не уверен, как это закодировать на Python, поэтому я также не знаю алгоритм.

3. Честно говоря, я не уверен, как справиться с этим с места в карьер. На ум приходят два варианта — напишите еще две функции для вычисления производной от имеющихся у вас функций прибыли и налога, а затем используйте их для решения вашей проблемы. Или посмотрите на что-то вроде tensorflow или pytorch, которые, если вы можете написать свой алгоритм в их структурах, будут выполнять автоматическую дифференциацию и оптимизацию.