viernes, 17 de noviembre de 2023

Punto de Equilibrio de la función de la oferta y de la demanda

 

Usuario

Desarrolla un algoritmo con python del punto de equilibrio de las funciones de demanda y oferta con datos ficticios y que las funciones no sean lineales

CHATGPT

import numpy as np

from scipy.optimize import fsolve

import matplotlib.pyplot as plt

 

# Función de demanda (ficticia, en términos cuadráticos)

def demand_function(price):

    return 100 - 2 * price + 0.5 * price**2

 

# Función de oferta (ficticia, en términos cuadráticos)

def supply_function(price):

    return -20 + 3 * price - 0.1 * price**2

 

# Encontrar el punto de equilibrio

def equilibrium_price():

    def equation_to_solve(price):

        return demand_function(price) - supply_function(price)

 

    # Aproximación inicial para encontrar la raíz

    initial_guess = 10

   

    # Encontrar la raíz (punto de equilibrio)

    equilibrium_price = fsolve(equation_to_solve, initial_guess)

    return equilibrium_price[0]

 

# Crear un rango de precios

prices = np.linspace(0, 50, 100)

 

# Calcular la demanda y la oferta para cada precio

demand = demand_function(prices)

supply = supply_function(prices)

 

# Encontrar el punto de equilibrio

equilibrium = equilibrium_price()

equilibrium_demand = demand_function(equilibrium)

equilibrium_supply = supply_function(equilibrium)

 

# Graficar las funciones de demanda y oferta

plt.figure(figsize=(8, 6))

plt.plot(prices, demand, label='Demanda')

plt.plot(prices, supply, label='Oferta')

plt.axvline(x=equilibrium, color='r', linestyle='--', label='Equilibrio')

plt.scatter(equilibrium, equilibrium_demand, color='r')

plt.scatter(equilibrium, equilibrium_supply, color='r')

plt.xlabel('Precio')

plt.ylabel('Cantidad')

plt.title('Funciones de Demanda y Oferta')

plt.legend()

plt.grid(True)

plt.show()

 

print(f"El precio de equilibrio es: {equilibrium}")

print(f"La cantidad demandada en equilibrio es: {equilibrium_demand}")

print(f"La cantidad ofrecida en equilibrio es: {equilibrium_supply}")

 

 /usr/local/lib/python3.10/dist-packages/scipy/optimize/_minpack_py.py:177: RuntimeWarning: The iteration is not making good progress, as measured by the

  improvement from the last ten iterations.

  warnings.warn(msg, RuntimeWarning




Conclusion

El precio de equilibrio es: 4.1692243303444245

La cantidad demandada en equilibrio es: 100.3527670976791

La cantidad ofrecida en equilibrio es: -9.230570160640317

 

https://chat.openai.com/share/335a2991-df1b-47f1-b14f-7bc166dabfaf

 




0 comentarios:

Publicar un comentario