26 sept 2023

Modelo de Oferta y Demanda en Matlab

Syms es una función que se utiliza para declarar símbolos o variables simbólicas. Estos símbolos no tienen un valor numérico asignado de forma predeterminada, en contraste con las variables normales en MATLAB que almacenan valores numéricos. En su lugar, los símbolos se utilizan para realizar cálculos simbólicos, como álgebra simbólica, cálculo, manipulación de expresiones matemáticas y resolución de ecuaciones simbólicas.

syms x
ezplot(x^2 - x*1.5, [-2 2])

Puedes utilizar syms en MATLAB para simular las curvas de oferta y demanda mediante ecuaciones simbólicas y luego graficar los resultados. Definiendo con syms las variables del modelo, posteriormente necesitamos definir las expresiones que definen las curvas de oferta y demanda y resolver el sistema de ecuaciones (solve). Posteriormente se utiliza la función subs, que permite remplazar valores dentro de una expresión simbólica. Es decir, dentro de la función demanda, podemos recuperar los valores para el precio de demanda que corresponden a cada una de las cantidades demandadas[1].

 syms P Q
 
oferta = 1.2*Q + 5;
demanda = 10 - 0.45*Q;
 
equilibrio = solve(oferta == demanda, [P, Q]);
 
Q_values = linspace(0, 10, 100); % Valores de Q para el gráfico
 
oferta_values = subs(oferta, Q, Q_values);
demanda_values = subs(demanda, Q, Q_values);

Finalmente, se grafican los resultados. Teniendo en cuenta que, en MATLAB, se utiliza el comando figure antes de crear un gráfico para crear una nueva ventana de figura o lienzo de dibujo en la que se mostrará el gráfico. Esto es útil cuando deseas tener múltiples gráficos en ventanas separadas o cuando deseas personalizar aspectos específicos de la figura, como su tamaño o propiedades. Hold on permite anexar series a un mismo gráfico, como múltiples layers en el caso de ggplot2 para los usuarios de R. Finalmente, se agregan las etiquetas y las opciones sobre formato del gráfico.

figure;
plot(Q_values, oferta_values, 'b', 'LineWidth', 2);
hold on;
plot(Q_values, demanda_values, 'r', 'LineWidth', 2);
scatter(equilibrio.Q, equilibrio.P, 100, 'k', 'filled'); % Punto de equilibrio
xlabel('Cantidad (Q)');
ylabel('Precio (P)');
title('Curvas de Oferta y Demanda');
legend('Oferta', 'Demanda', 'Equilibrio', 'Location','best');
grid on;


[1] syms x y
 
expr = x^2 + y;
valor_x = 3;
valor_y = 4;
 
resultado = subs(expr, [x, y], [valor_x, valor_y]);

Creando variables por grupos en dplyr (group_by + mutate)

  Simulemos una base de hogares, donde se identifica el hogar, el sexo (1 mujer) y provincia y edad para cada miembro.   # Definir la lista ...