% IS_LM_Plotter.m % Questo script MATLAB implementa il modello IS-LM linearizzato (basato sulle % slide 25-27 del documento allegato) e genera un grafico con 4 pannelli % che mostrano i mercati interconnessi nel layout 2x4. % % NUOVO LAYOUT (2x4): % - (1,1) Mercato Moneta (3) | (1,[2-3]) IS-LM (4) | (1,4) Mercato S/I (1) % - (2,1) VUOTO | (2,[2-3]) Croce Keynesiana (2) | (2,4) VUOTO % % L'allineamento verticale dei pannelli IS-LM (4) e Croce Keynesiana (2) % è assicurato per l'asse X (Reddito/PIL - Y). % --- 1. Definizione dei Parametri del Modello (Slide 25-27) --- % C = a + b(Y - T) -> a: Consumo autonomo, b: Propensione Marginale al Consumo (PMC) % I = c - d*r -> c: Investimento autonomo, d: Sensibilità di I a r % L = e*Y - f*r -> e: Sensibilità di L a Y, f: Sensibilità di L a r % % Dove: % Y = Reddito/PIL % r = Tasso di interesse reale % T = Tasse (esogene) % G = Spesa Pubblica (esogena) % M_P = Saldi Monetari Reali (M/P) (esogeni) % Parametri comportamentali (valori di esempio) a = 150; % Consumo autonomo b = 0.75; % Propensione Marginale al Consumo (0 < b < 1) c = 400; % Investimento autonomo d = 2000; % Sensibilità dell'Investimento a r (d > 0) e = 0.5; % Sensibilità della Domanda di Moneta a Y (e > 0) f = 3000; % Sensibilità della Domanda di Moneta a r (f > 0) % Variabili esogene di Politica Fiscale e Monetaria G = 250; % Spesa Pubblica T = 100; % Tasse M_P = 1500; % Offerta di Saldi Monetari Reali (M/P) % Intervallo di PIL per il grafico Y_min = 1500; Y_max = 3500; Y_range = linspace(Y_min, Y_max, 100); % --- 2. Calcolo delle Curve (Algebra IS-LM) --- % 2.1. Curva IS (Slide 26) % r = (1/d) * [A_bar - (1-b)Y], dove A_bar = a + c + G - bT A_bar = a + c + G - b*T; r_IS = (1/d) * (A_bar - (1-b)*Y_range); % 2.2. Curva LM (Slide 27) % r = (e/f)Y - (1/f)M_P r_LM = (e/f)*Y_range - (1/f)*M_P; % 2.3. Equilibrio del Modello (IS = LM) % Sistema di equazioni per trovare Y_eq e r_eq % Y_eq = (f*A_bar + d*M_P) / (f*(1-b) + d*e) Y_eq = (f*A_bar + d*M_P) / (f*(1-b) + d*e); r_eq = (e/f)*Y_eq - (1/f)*M_P; % Usando l'equazione LM % 2.4. Calcolo delle Curve per gli altri Mercati all'Equilibrio % Calcolo dei valori I, S, E, L per il punto di equilibrio C_eq = a + b*(Y_eq - T); % Consumo all'equilibrio I_eq = c - d*r_eq; % Investimento all'equilibrio S_eq = Y_eq - C_eq - G; % Risparmio Nazionale all'equilibrio (in un'economia chiusa e senza trasferimenti) E_eq = C_eq + I_eq + G; % Spesa Programmata all'equilibrio (E = Y) L_eq = e*Y_eq - f*r_eq; % Domanda di Moneta all'equilibrio (L = M/P) % Intervallo del Tasso di Interesse per grafico (Mercato I/S) r_min = min(r_IS(end), r_LM(1)) - 0.01; r_max = max(r_IS(1), r_LM(end)) + 0.01; r_range = linspace(r_min, r_max, 100); % Curva di Investimento I(r) per il grafico S/I (I = c - d*r) I_range = c - d*r_range; % Risparmio Nazionale (S) non dipende da r in questo modello (S = Y - C - G) S_fixed = Y_eq - (a + b*(Y_eq - T)) - G; % Spesa programmata E (per la Croce Keynesiana) E_range = A_bar - d*r_eq + b*Y_range; % E = C(Y-T) + I(r_eq) + G % Domanda di saldi monetari reali L (per il Mercato Moneta) % L(r) per Y_eq: L = e*Y_eq - f*r L_r_range = e*Y_eq - f*r_range; % Offerta fissa di saldi reali (M/P) M_P_fixed = M_P; % --- 3. Generazione dei 4 Grafici Interconnessi (Layout 2x4) --- % Configurazione del layout figure('Name', 'Modello IS-LM e Mercati Collegati', 'Position', [100 100 1400 800]); % Pannello (1,1): Mercato della Moneta (Plot 3) ax1 = subplot(2, 4, 1); plot(L_r_range, r_range, 'r-', 'LineWidth', 2, 'DisplayName', 'Domanda L(r, Y_{eq})'); hold on; plot([M_P_fixed, M_P_fixed], [r_min, r_max], 'k--', 'LineWidth', 2, 'DisplayName', 'Offerta M/P'); plot(L_eq, r_eq, 'bo', 'MarkerFaceColor', 'b', 'MarkerSize', 8, 'DisplayName', 'Equilibrio'); grid on; title('Mercato della Moneta (LM)', 'FontSize', 14); xlabel('Saldi Monetari Reali (L, M/P)', 'FontSize', 12); ylabel('Tasso di Interesse, r', 'FontSize', 12); xlim([min(L_r_range)*0.9, max(M_P_fixed)*1.1]); ylim([r_min, r_max]); % Pannello (1,[2-3]): Curva IS-LM (Plot 4) ax2 = subplot(2, 4, [2 3]); % Spanning columns 2 and 3 plot(Y_range, r_IS, 'b-', 'LineWidth', 3, 'DisplayName', 'Curva IS'); hold on; plot(Y_range, r_LM, 'r-', 'LineWidth', 3, 'DisplayName', 'Curva LM'); plot(Y_eq, r_eq, 'ko', 'MarkerFaceColor', 'k', 'MarkerSize', 10, 'DisplayName', 'Equilibrio IS-LM'); % Linee guida per l'equilibrio plot([Y_eq, Y_eq], [r_min, r_eq], 'k:'); plot([Y_min, Y_eq], [r_eq, r_eq], 'k:'); text(Y_eq*1.01, r_eq*1.05, ['Y=', num2str(Y_eq, '%.0f'), ', r=', num2str(r_eq, '%.4f')], 'FontSize', 10); grid on; title('Modello IS-LM (Y, r)', 'FontSize', 16, 'FontWeight', 'bold'); xlabel('Reddito, PIL (Y)', 'FontSize', 14); ylabel('Tasso di Interesse, r', 'FontSize', 14); legend('Location', 'northeast'); xlim([Y_min, Y_max]); ylim([r_min, r_max]); % Pannello (1,4): Mercato Risparmio-Investimento (Plot 1) ax3 = subplot(2, 4, 4); plot(I_range, r_range, 'b-', 'LineWidth', 2, 'DisplayName', 'Investimento I(r)'); hold on; plot([S_fixed, S_fixed], [r_min, r_max], 'r--', 'LineWidth', 2, 'DisplayName', 'Risparmio S(Y_{eq})'); plot(I_eq, r_eq, 'ko', 'MarkerFaceColor', 'k', 'MarkerSize', 8, 'DisplayName', 'Equilibrio'); grid on; title('Mercato Risparmio-Investimento (IS)', 'FontSize', 14); xlabel('Investimento (I) / Risparmio (S)', 'FontSize', 12); ylabel('Tasso di Interesse, r', 'FontSize', 12); xlim([min(I_range)*0.9, max(S_fixed)*1.1]); ylim([r_min, r_max]); % Pannello (2, [2-3]): Croce Keynesiana (Plot 2) ax4 = subplot(2, 4, [6 7]); % Spanning columns 2 and 3 in the second row (2*4 + 2 = 10, 2*4 + 3 = 11. indices are 6, 7) plot(Y_range, E_range, 'r-', 'LineWidth', 2, 'DisplayName', 'Spesa Programmata E(Y, r_{eq})'); hold on; plot([Y_min, Y_max], [Y_min, Y_max], 'k--', 'LineWidth', 1, 'DisplayName', 'Spesa Effettiva (E=Y)'); plot(Y_eq, E_eq, 'bo', 'MarkerFaceColor', 'b', 'MarkerSize', 8, 'DisplayName', 'Equilibrio'); % Linee guida per l'equilibrio plot([Y_eq, Y_eq], [min(E_range)*0.9, E_eq], 'b:'); plot([Y_min, Y_eq], [E_eq, E_eq], 'b:'); grid on; title('Croce Keynesiana (IS)', 'FontSize', 14); xlabel('Reddito, PIL (Y)', 'FontSize', 12); ylabel('Spesa Programmata (E)', 'FontSize', 12); legend('Location', 'northwest'); xlim([Y_min, Y_max]); ylim([Y_min*0.9, Y_max*1.1]); % --- Allineamento degli Assi per Connessione Economica --- % 1. Allinea l'asse X (Reddito/PIL - Y) tra IS-LM e Croce Keynesiana (RICHIESTO) linkaxes([ax2, ax4], 'x'); % 2. Allinea l'asse Y (Tasso di Interesse - r) tra Mercato Moneta, IS-LM e S/I linkaxes([ax1, ax2, ax3], 'y'); % Titolo generale sgtitle('Analisi Grafica del Modello IS-LM Interconnesso (Layout 2x4)', 'FontSize', 18); hold off; % La pendenza della curva IS è - (1-b)/d. La pendenza della LM è e/f. % Verifica dei calcoli: disp(['Y di equilibrio: ' num2str(Y_eq, '%.2f')]); disp(['r di equilibrio: ' num2str(r_eq, '%.4f')]);