From 7a4d57da4488ca9c47415d1e088537028319d9b9 Mon Sep 17 00:00:00 2001 From: thomassargent30 Date: Sun, 4 Feb 2024 17:42:05 +0800 Subject: [PATCH 1/3] Tom's Feb 4 edits of two intro lectures --- .../long_run_growth/tooze_ch1_graph.png | Bin 169652 -> 169659 bytes lectures/cons_smooth.md | 167 ++++++++++-------- lectures/pv.md | 95 +++++++--- 3 files changed, 160 insertions(+), 102 deletions(-) diff --git a/lectures/_static/lecture_specific/long_run_growth/tooze_ch1_graph.png b/lectures/_static/lecture_specific/long_run_growth/tooze_ch1_graph.png index bb1ace2a203d44c339b2c9d7d0d4402aab752df9..c36dce064d6d68d26eff77c386de662456e8b63a 100644 GIT binary patch delta 50096 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

SJAqg(r0 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 z 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 delta 50190 zcmZ7dXE4S|P&Fsb=`I;}U{4Wht268PDb$3A z=K%eC@9{qurlluu#t1GkzL(q^EE)6bUtwN1I<{MtsLDkpBzsj;Iq{@j-1oD$r2r-V z853s7W%~w%dkuGYPC_!?&m`(jYSzU2GeQRySM9p8(2G7IFpMzjp<|^u6j>Lx3T{E9 zm<{fC09&YuVAarCGJDjq{?Q8scl3K`(JQUg^}}gpXOF&}O@dwB<5hdv)k`8n-5bnD z*H=q{I!A=5+g)jfcjv`x9N!$9t_1!Gp*J?461_#T@sHk1b?RL0xK;4T)_-GMfpT5L z(mwnY(B}VZl3;(dMcih6o1G9I9^P%4BNY}t2UO6^cD*1i!wKP-bblQa-)CaMHK)x#)+1Pv3RmEmZ%Uh$v2PX3H*6 zk}AXAdJmx4%^$68^zi)J{jwjD4SQVhMBXr{GTaP)IV9a22qg|h^;yI(&kzC{fotSUApURnf15D8uLYll^D^(SsHn)l4;h(z zU&Xsky16$7saQMSu5tyf3a9rs_7|LR2v_SO8$)Lg#&92xsaGh9r+I$aTEXy;*+-Zy zPz|YLYi1^qWmz;j9bRE^#<#vrU(&~#>LXa1$>b}b%{A7%r|%Lken=NuQhhdni+S!W z=;Pe8M@utk@zMEQkV5Ba1lD%Rdsb&`*M~eM{s8l2rwCnDY4(h}DK{fk&dRTdg}rW! z8(RIoUCY|?DW&aM=AA!Uk|@Lz%cFoc4}1|zT#5G0)#Vd*yhg>lp!s5P!daR9L9)03 zM0pWw$0*6T;^!ZtA5EX?0{wJdUX)>dZwPa#Rt{=4&{3j!aNCz>!x7Mt5oaMTEvHWc z_T+TR>1_s*ZFR>jAub}V%lJ}1$rVzz@5K<9qwj`aQQ#|8H0)#X+>|S#LR%}^U-gan zS?x(-wVo6W;J8Lf;6yBUO(6Yos*pNYhZkH2i0oK>?+*+*w>Rs`z~sILiJjx-u`5m3 za-3v)UC(B^ZQZ=;)pbiP@-8vg`l%<^CFy8qgoXX&+RobD6!i-+X4zwMSaOS0{x@A! zJb0Z;|I=S}l6SJYO|u@a(pQC}{tX=~YzG;lY%|-F|RC=S%3JkWw!s1yK43bj1V(KcZ+Wnm?7(+#8g81P9&hG@rTs zR*+MZur>-}qE0`K-8M8uZ;GSa=QgUTH~J(XCLO|VKBG1zTtkpG-Jv7PR2Zh28&Of#}D@# z+*m-6y$xcg@DV?&u0I}%*`aGBS9n76isy+!8~r8|nV14+EyV!pvqym92oK3e9uTi7Bw3^1Xa{P8cI0CG3l07Fm0=Xs0v^Un-&B z=$|(FrJq__H&KJF4?FPLojuQT68dXz(kbd#O1l~GdFuC${OUYE%`Z_)W`1>`cq{aF zza&&Nv5zDGI%|A2z6LnjCjY&!4^8~2bc2Uq-6AJ}r10~j|6!_?%<+NuQ@U}^tH?Et z#|^nvUSihA?!?DcFQ-4WLufu)Kp}j7b~;R&O7MRro2u@Q&WpE$YY`{TMmKn_mp)#+ zmz);A#tv#8`ZdW?mhtC7wZ4}|ct;FzJv%)NBI_TD-= z9Y*fdAMIxpn^O#CSO|M0elb94EmQi!PkTX9{OU^CfeI6q-?e}rak?^Z;_Y6$d{}a4 zWffDJ6)xsIO4w%s{(1Gz!!+pRv;t#sTWTOwt@-T>qc(Coah~U3;wn^K1y%o%{S(Ij zm=jP9^SosS;$Wn6$({A2OR%T1sjq^F4p!&uNEVlj1scn3$rl1qarfERe|!ZY_T>~gxzL8)m}<==#|e0JF*SP`nOwm54C^#x#VTSItAUGwEO;@ zM{?h$Zy9F}bQ>10YZP;d@v|%2BD>u0V>61&X#*EZ+4XQ}y*X#WH5W)rmg5h#T<7uc z66^aE@-9=&oN2Pnubezul75kASvJ24TGL6NggmG`?0D#!C_H9;mG#_qIQw|{A2)j@kaI@k^)cR*L(HVQg++nO4-OD%= z_nA+@7N52T$D$p7UO9xll7Ff|L*Qqeen?x?zxg`&mm@_#xmC1<>TfQwXA(+3-SdrtbM+(f_YTZ##C zbNdIStYDmXEd=bR&ak_Om=$cmV#Q`pypv2t$iN2KLAq?91+z9lo&pXF#haE&@aLP@ z%e*B7jgOdK&s^trh_+K$9=Aw(V0ySP-l`3hMo*8tiWm`xIO>hYv>1L-rRS=R_yp2U z&W!HSgy=F^FM#R(xNwyG(ojS)x{o-x=0!)v&DyWG z1%H6~?w#90^TWe|aJ%2+YC3n;t~EK;l7ANm_u`hQw4O7j$y!p$X8!SNpL6F_J0pE> zoBmxQI;i^J3!_h=;T>noTKs8BN*5$TB!}aKRDnI0?p;PYQ91zfY6q0)pg0*BT;W;U5V|7 zl5Y$;?^VhZz`E$mQ`Q;Ni!E{pF9;BVF7zlk2dN16%*AFQP?}ATPYz6|`4$(xWc=@OMl)Te;_LVMBc2)YA-r^1x6jWJ3-V#5X|7&zR>VfkpWc_~ zG@T|}2(_hr1blneLePBkV*)sWAzK?oCR81wZ>vt5b`Iu+(H6VT~$+ko+ zO`=V8U)ol;PZ#VQC-K%5JNF)eX>-(Bcb>^-!b~8%jVS%sDy9X^ zG%_)bQFuJX$b>s z8JrEao(+u&t38+8WlUvhhwa^|(b@%lf{!_?h|}${8V*ZEl9n04k`^png^C-J7dNTS zcr$r6?ws@8W-g%)nj1Emd>^XrI)VdpbaiRj4YEt0<0HqOxN1L5(=YrxRxSuelhO7~ zAby;E*LcMxI&J7sSVJ+MmJc;@LQvnn7&bctsjW7}Kzkq^mR1G*{VJI$Ieh$z77k?W ziuXBN)4VEpPIF$YchX@ze%^7aVDM}5|5zOMZLrAeoi2W88Qou%L?XKY4J+Qby#aRk znBsW+>e(qP4=sXWgEO|QOS_8Yx5}R;ZulQ}nS*z2C$IFs%+ls)r!x_5>b0>x+v()N z_4a8=Gqnj-x-uWA=F%ce;;3@(bX~xY=N_X&k z;W8&OF8`*Pj8&j_9{&;RyLKujn;3O>=hJfw??MKAN7ynKri1c#?OnFRDOI#U11iP3 zcggu_24cYXN~?S7&Xto7lNUD*Nar{76#g2 zLV0s36fio+awj^k0-b{Q>x$9Qsd`Y@ujt%EAtKihwi&M@P2_fG^A%*UH@4DYWS|Yz z<8^>z`J+WsQuyaxucW}h$&(fSTNtiTC~Em2&z|2)j9lt_mY;shvtR=iQ##khiuD2Z zabgF5%n-?zN0{OlU+BKp6&d)W5plbLB*8?xo!hL2Z zZ?vPa>mCN`Ub<3C|5krd(f&_JPv+k@U_v@AG^8m|wZf&MOI}SYgl??}t9L@y)sJEE z48D;s`?kB5`Sg?OAs0McxBYmCn-ioxE8&9p&@3a8%=_k6iBvX8Umen`-<@FrTpWmM zPUwRv$@5JCz$iP3ha-xfRXxN`;y(blrQGDX@t*@_%It%bG{S?t5@}=r^We;Jwf#2r zUQA^1?+iWV=2GVGOd!JU_nf#=i`pKS%3#n|=z|%>Fr#-nrQg-ZrAb*a8k-p~1`*CCr}-G+G=`i*U15-)a6DGR_l?=S>xP7v#+Q~*m@uE*%| z&U#&kI_d7s*Yh>r#yM)A*yh$j3;PWhG@1B$?NO7r1!zxyy`6rcE~ubAIFfsS+v-w4 z9X1QQIv(Be7_I!3ka)J{QD{JL{Wk0~rYOpwg>nU}>wyBBWzp8c)5T3<5L9F|Km3R0 zQ6-#zOp8d%ohNK?hQ5?zT~@}tDo6zqfAb zmVfwWdV(SPltrdydgGCwAcd2O(FS#{_9EIAk-MhLsoc`&wacJ$@i_U7ogKS-N`?B5 z6%8jE>QSdMB zpNVol5WtD*647WGXQMdWU;H(pNRHzvNu(&TCe>2JDM@6rR8%}&wZ#X183XS>+(tw@?J5RFzh6olCxN%Q zKdyQUIN%>0b9xj8*d%x8H}&h4(wdlPAPO(c+=6Iw4*X5QELG1%&eG}_qE;|hS2xEw zS<}BZn(QL|>rWl^S{+Z~rGZrP$&=_FwX;H%5Rl7D}R79On?fQL0JvE5-b8?QJ>pvjfcs z42(NGgLyi>T#}`Ze!<7n>W$y-*1x?;n4BT6kA@HXII;71dna~ics8YJ04u+{m{Gm_qI82b`DM~hiTye3lH14UFg5KwBa?CV>#CGxg{Y>*^4!r!Veaad zUAxl?Y+kMV(?ERX$7qn>ye!OwQ*Su^ziap1dNvgoi8kAPpe9>Kak|dFl@cJV)6EH?QpVZ&_?P#Yww7Gu1R2a}LXqL=UqHUMkNBBS+ zn1!M69=ky0A+DqG5Lf98k;c$A?)|;o@m$GenF;+oZ9Jz3to=D`4qc6PTYs;+dIBR@ zwdkvqJuPgAY$?sZ#eu9phi`XaH2R_v3e zHHy9Vhtmi!y5Q5yAYw-$^1un2j(kpL3n0Zjnv+VFj4Ku9G)*%#>Ffa^?qAJq^2i&! zm|E`{5ztCu@JJr>O^jrgq~X zkW7Imn||gkpz?r&GUl}A9ArlN@`qc~@3??}k$p2~zdYP3CI1=a_R3%s;r5tl3*+<< zmF;BxHo!+fy2T=&7xR8Q6SiO_km|N$LT(#PG~+tPYTvxH zXJzVphZe_=-K1dDeCmCR6RTl<`=Rp6$2+?D6$a~DA>8U^$8M9}ALt2Wj1beqEq{Qz zK?_W4M<3Yxrw+<=qj0}+p)&rmu*zwYe}6dX;P8^A*Pt6gLD8?T#OGyVGM)QJvzPve zcprOohNNw8dWP27V@`~{2j_W}_+GG}gsG3f^}@_)scFekC;nR^ z976LT0V^6+Jc@0S#VLT~w?`toRIELyGc$BuYcslLqJj#bB81XUy3$nGhYgQbKF?30 zqa5LMD2?>AO7_&E0Hzx3-@4RtuA{c10tGUPR+!6l{M@wjy{IM& zhZP`YIzS*LxH4_r!J|*zfh@y4o`(_c**yFIwj)lO^!$ zF7x-BcMoH6sh_8?BsI8x5hca2k~^JB;&!VKc)kajd3!GX^L!)^OS}!ppX8{Zad9y+ z^<60~3S=|3ySZOFbt8O2uRjkJa||m;YAt~fH}Cszis?!eHMjM;r{L6$Hl}))=bZZ8 zWzc+`d(_%*cZ;Mk$k^Ba;8pvlLn*Xey>hCi^3NVFx>9XKpM`0?lD-4UsD=LJ)EeJm zh`5Yikf(3$Lf`szdl&^Um;pE00w$N|bU+6h#$8e=mTw5Q-pi{9Me)u`Eosx(W>3 z+-Mmd2Mlx{&{sGv0___+x|gWFL{o>D6#gq+2;AJ6gxuAdg#DKH;C2YaZrrtx>J`+~ z1El9w5Tji@iqJQ8>CfUk>({+w8bUm8+AP2O^f}Rl6)a=$GxdP0j|K8P9}kXv8@t)K z7XyS4p!VTL2*p~hhg2tAglQ=@pWr?9Ax}?d@gy|mEhMJwo8)3 zPy$DP0{g$c^)R6lH#y<%22ov4Gx4a&xx3<~cd3Qn3!oY)5>G-p^O5x{-{mQfpEr8( zJx3+y{KXJsqABJuwpkyi^jcXCQ49R3(U_Kku9m4}GFw^j@*Gmo&E-?aEO*+&AZc`S zp;)6+jgpHmIS>ck^l|SOeXGJP)?iM{=Ti;m8;}NR4oQ`bJd!q&A?X)dx56_7=mc*) zpPIz6bZhdZ571c&d*Jukh!c`IJ@P6$C7Mf;?dTu$C;Bybwzucl_NrFXvl58qh*NyZ z`yoiBKL*j@&;3%Xmn`>})%$@ps)a5dysNXC;R$L3cyCS8?J`^d)B+ootkdMLgZori zMIPG!H2Xh`Dm;AdTSa20l@tlEz1mOx_cU1qNJbX@nwPBe#x#j&cTTr~r_zva zV&ii-&*rwT5S$565u!=xNw@S}xgS|P=hi$w1#Iivs0}aAia_W7IFIt9m7ztUaPtp8 z3W_;;V6$H8Bj2TX-iZFdo~|xZXMQu)Ep~`BB}+a&y~p^IgKx9>EIvPZ{7-V{U05** z@cVLJ_RrUWj!Q2xmeIbMLHaX3PZ*A)u~~CgO}$?Zyg#W~&1GPE7Xt1ywmp&`umuoR z`G4_wB3;J_NH(=5ZH#IUh~vyV zG`DYZHW)jpG;fW|yS^o;2k2=jZE!cadveoECn~y7kDnl5w9tDv@NY7O>*Jr#l5#)J zM|S98$mW#kp|Sar%Hxb8QKW7;XIf_p=W+ZC=Yp>Kq&0r#L4TL@%=u!_UQBcUBH0vc zcG6F?*6wVn|3=X#HZUjyHiz9`qEQM2l!+;T%U0(P_1{b@gx%qjK+6NfzRCg_`NLCT zF9L-}7SI4f8B1veyY=*oW)yRjPmbhmgN3SP4?t33mgXD%cAv5S@h4%q z;F7z71C|6Z4TCInhyHG7(-Smbp5x#c6*ah<9yuOfih?RiJFGYLmtB(A=etO}=j;coB2}$79U~@R@?7_#hO0SBN{EWg0Se6Px3%EXqf%fpV<7$iiou+Aa~$J8 z?43R#>wDUq+U@jO%eYye!8-K@*uC}oZa(Qp@9Dqaub}6s5_slZ*YoKZTujY|)0xtcdnKc$eHhmvxdu!NwpX<2;k&!ZA z8Q-AjqYyqjn@Q4VpPXV^aNoZj?=kpKD^EwANd)p zNleKcm)Iko_nhU1@ZQ23m7IF73GVvqM3-z~Jicu;1eb2WDpnI0LRid!ACFDb$mW*?uxPSQttDV<9fJ<(MYCGKWKb7MFQke~PMC@kH27G54OQOZA2jBk@5Y#{dRvb= zs{^F_XD!QPJ&RK80t*Qccevu(z9UC}oT^Tv1c1L~vuDtmE!t zK3mt$`09x9bKW{My|iMgHBGWH5N?Gz%s=Iom;1RqaK~|w(b`orL7F`fevbEpr^@4{ zFH%r$l=V<|jrqd+c0amqiG}Qo&WT7+gD@Xh%RhVw&}sjJzADEiRokT)%dZz_Zy&u8 zS}bV!z^cwg$8COy1m0p=jnF+`q*SPC&Q8P-{+bjxf+ywSzUrWOwA#9aF17gHI75Ll zB-151b*^!|V=q{xdyP&e=YZ?qF~OS`H5&EQ^Va%pk$L+Je;Y`M?Y1#9^=`t4%?3 zv-Q#dV0~v2RiKEYom{wkQManH+FK+vEc6XNRd83Mo3*KJ21eGBRUvK71Zmtr29*$w za)p*QiM@XU;IQ(aFIV>}QX|hbPd_y_?6bOC{ii0**)T;Pup!*q=t)&qEgAboZVKZ< z;eNlEtVb#<^Fo~B^1OtOxM8>P-|};Bd6{cHKUD3;WR2zD1Fm~~GabJ-)8u>5Xgp9T zV3JRqJtflUc7)O8f5p^l2%lb z_!bczJw)HXdXxYJ#k2bR8ENGe$XYaNdzY-PVy2tSCHWD;kyD{r_aPzsj9&%uErX*i*VTglu6K=3zn`?H_M7;?UXzzlq`rCwio6OUHC# zHpVdkEpkSYD&bD3@`PNlA{~U|nh6{=ji$?*#>|gJ3sos~I9ei^9u_zCwFk8Z56H?m zL!N(2cyC`5UOJel0&Vb#H(^R7qyWlZ;);@C(uk$Zl3}J#n9pujJ}q)0v}eH&xIAv% zEt0CfW`LTCM^t2n*3jY-_+v1!`ajw%D}Ix6Fm)A(&k);_{>E`RV{^;vL`s7xdoShG zaV4ztmuifyk0?~?`oiR}0X6{(hU~L>@1h-PqMorVM>uPDbk3wb{JJ|>G0kv8?e@co zn6&V>*Z3$0jjA+aR{%V(?;e}S8*a8!9SMW1x(NGTI6Ay=9kDNuIK1uLuR8V8=3A%j zO4-!`UzmopRf_5<;I>Q3JVB)fk)!i*@8o$$+7-khNV z;Whmf*`km7n=$*1Hg&}ko_FvD{m7IO$qd!Rb{Yxb$Ck(G1UA`aMR8qFq?Ct5ls=X; zzepQQmjc_B)O&DmOKivHoWktD`_!UQ)ywOX-Z%G?sV2`q2XsF*FyruvQp~X(^)jsu zJAKO_V)3&B7wXA}zY-@$*@GHCNiA??Bevfya6QX)hHWXYsO{nPV+x6hN}_-ThTrs& z-dR&^oF&NzKv^}TM|5-mGbdA>of}K_OyKGtht{Ze*6?LZc&C&9=$KK5B>ehm+%U))*25`t#++aFJlx)rcg}3)$8|2F42%ha%LMe0*v@%)* zd?DE*Boxl@Lm~J_7fOtcvZUZKf2(YPM08%Ic~;+`F;-SDsY{gP&`t8}Inq4elrewn z>$p67(YiGBHsaq51~KF7C! z><#Dy4i$wXzIpun}&HI^>teW0_5Rdh-{{N3*J(nP+ zWXY?86VpeFFEx4TkqdYMv(s;vSg(&RLgEZ*J`@9$(cywXj#;)ZZL$|0o8iYom)#R) zrKqnd@7|NC61)6`qHz)s2Bp#Iao!PvTA^UoHdFj?CpN9BBKtO%?i25DW2g;)HvSt; zPLu+Ifbbm)da{oX*IC}CUEHnI4v$4cp^8PgbR3OXK}h*o#A600_G7`Q`mlqyThmbV z=kpq0$qoUvEiBKfgN~z`^70n6#jH1ZN4@z7qlP>BZ%!ITZheNIJKS!{F6L{_{Hiu0 zpl})#9-(`@i@TH1Yi;((z(4|5Uu5w}dDlSEyM9A%hs!*X43}Y{RB0179E)Q70Sg~> z*#4X_3s=9{p`{y^Y-71nOc>meI=HWp#%D$8Y!?U(#7BW?`=DF#S(&_FaCr6reKt3E zk^dE9J>v+bWZ~E$7{npcA~xB>Oekv+>0Lt`ov-~4-7cyf+w5X?E*{^ZNbk)sX zKXKbV$y16dEc{`ur8**%!;F%H@=sJ$x%@;Lm*Bn=y4W+ogSgX*WKRa$R%Vro3}~0URoxzc&n=YA*cZ%PTw`7nPSk zuQK}U-!Y)k+HHx8?K$6ygA;@1eHIGJ;~b}x&BZQoNTd0?tR6%RGjJJQ3JLpdXSG7E z+|6LNF>nenps#%A=Uf*_wt#D%OwpM`fhv3+kxQ&Jq>$*PI2m0YO+l`H6?w zA<4l4pZSa6)CRv>%Vnse3#qfMKdFBGmHiG^3Pr*GGF{PLOReBAgPLtGMM0xWW|f^K zRSP78g7cDsyn~Z~Aw2IYO*qBt0hzSLDa8ZOFax%VM7(?zeoYj-#6+2eIVU=C4(O+j^4_i6SAk1ROTSM2ak z)kt(b_D`z~rWZ)@GblG<*s}XhWGQq6lZ(l3s$pK9`375!kq=dzWZCT?DI6~mSr>8& znhiYDjZnuS08jbs)*SKl+d~Ok`{BAixUNLQHP&Va3e|y|DBxeXd;xdZKG3HgHl#I7nj<-7xAb5<)DZ-0#|x>S3O z#3^=WQq#)Ap`C6SPlv;y!@$5SJ%2>g4(`%ac}tig`8{(#3qpu`5^{UBzqC2r(onpO z&3{KasAU8<6~@xa|GSTC+AsEn!Gl!o&n>_I>*O}u1bTaK2WEhDVf>o(`{s@EPspyB z^EOTzGD&0OfKZMqua4>~zkmk$PQxMJELmS7h1hsZyNY|C5i6q7X(dOse}T;eq?-ML zXzXg(xU_qnf8*#h*QVrT=OF)z>AvTVgkHZ4J-(={lkAH3lZ>Ei@JN!Cdl*$7X8#*i zqLxu@KwfB!q~7nPv}23@5LK-bmob;aq)_Y&W1zX%IP~QsyMox-n!6JJA3mYHQWn_B zKD64f*kI9mCB=}>T_4}lv^}-nV`YGH$>%{^A(-_p&YujT5u&}^+H==?HLd*qH=|{$TQoI69rQ`EHgZyaOaelTsyzeXT zJ510wNBsP_-6%rZ#Z)&%uqJ7@2j5vs$3dM&!OA|S%1;#{+%pLW%wEPt99W(vKx6uT zbJFemNqT48aYb!^gt{Jr4FTi6cGoX8YBv>*QL74<)!)C+S74+0NQ;O#@hj@O2hVgE zJ$)bg*Y4){=Klxe+6xnt*BCeJq?VS=6oPLG5ye}hGG4u29`ch*k?cu?4#y6v7 z9SxACs_JdN`F}q-X+$Lg^o_g`Lm9pG!hQ}k2_cwNpXg=N#J*4`=00NvTEwg$=wI=6 z(QiAoJaiOBl9iMY$Cc$wk7b$lW&;XZA|iljcs?=^|3NkU@R9$CXUH~r5FLV@sq?2@ zD6NHmnh1?DZ%IBd?ajGE|LH85ze5?8q?k%8%3{j(#&!v5yWDvfD8ckKN8R|{Kr*&iDvioxucPu0Si?|ucPG~ z@dE_UuYprNccMdRz3<}8^iikvYUX(@PShJhw~h6=0Q=>pCXvQkp-8OC7xH&GN!A-O zAF@54vKhY5H?S^1V+hD(dJy=_6u}zuMqbs$)Xf>%*pL&_!8R8;_merm_19F#?{`nf zRzBMrz7Z(=L8he=QxyKeN>U3S`$+`W@w{XC$P+oyO^?vO`*Vd-W>Ig{g;bzlf6G`{ zljKg)fit>l3x-gab7F_llYcICgc+GL`Z^whOt*EY?ORV4NeJPCu3~(={?}T6_Q2E3 zRKMH&&j%n9{@D3^sX0GTHKI-uE$!I4%hkwX4}o zau)fhOtRS#eds>&~Gpf&!NBf+OP zb#EU6N&P?2-Q*G&#yuDa;cFH#Y71V>tL<`Z`wiHx7A(*#sCTb4Mc}ldl&IYtyqp~(^=VZ2TKY@1&`>Lz|PC{Y58urC6go(|Qg|Fco`{ zhN8M6<}xjbQ1Erda=F@6*`K+O0G^lLTvc>nx%d_0_?jhI21~DWG=>28jwVy*f+T`KhW$9`}Gr_Yw?Ya;UJb#mT3>ncsz-TxU(nX20x zAq`lPVZXd9h2xyPqyw#gZ9e|3gchmw?OB)+@=hS*RV*C_pR|-E51`{-@!kz8@XuvG zAXYF6+4wemCpt&P6Bq2^C9m9B+ROSV-eeqy6}8)!N`j?tYKNf;Ppa9M;^tI_o;8^& z6ySbWF`z#8j^Yhh3hxen>=s^DO;eqi1~IFvmwj27Lo`|MjozfkX=2hL_TUf5&hfID zm~>^e+m0ud5%xO(myJwF;Rmr%a^&t*b*(ibyL@}GJ_kr=3*iSC78tc=^M7I5BI%p8 zYamC&-1_OmF76i&ytsnf|1O11;JJKnel zOS?#E$``&YRG4OnaK9>}9vAsZTBiSKw%k|*yCzrH1;9xxTJj{D`#!MPV2#N8gt@W!EmW5}wd8wLoEGx7<}LBcLbz> z<8uZ_^2FM_QH0aKgT;>VqWczs7*$O&1oT$Iod4IPZzI*GgOi&q2P(Gd@2I<<$uvhp zqU^fm-^h}go4@JAcdj6JTnr1+*8scY5i^B}wjNt3PS#Yc?=RX~9s>o>3PwO-T%&2}Vp|*7e z1{fq!qG9fbZAn0Nc>+xj!`Kp<1KHSfx&68EJt#Jl(y-8?08j%N_!=*5Xx^rClhOt4 zFLs=qBx&vKd*?p*b4&HMwIVhhZsHR6tk&CIHC>M5>fIlqZ!QN@W2}nBG5#eEIVv^U z=ux6L?KVey5K7e`q=$^jB!VcX@Ey%Z+n7T-;1V%RMMn>Vx@OkJ#u}`7vkEWT5?6?@ z8=BlGz&dPpdbCLJfNQlT|3@aR>G`{ss&z>gb$>5)I^#{I&iZbACja-n{rdVFA!6DN z`x_93VXe&=a&>rrieUwo9)4g?FFF;T2G7`U4{1 zwO}21vinTU<#vZ|qkxpN+`TBtJ!IJw>@Iz_1cT#p*M)Z`Y)>G&O~RI%IXRm^)~o zUm=uA+yABb^JfPM5W@NTZxTHB64$PW5Nm!l3Ny9yd82C9qt7lq;z#G+<~#A&n-Zv_ z0H#2nT=@-}f>uj7o4({Op`3t*t>d#SpR!!V7i)}Jz~g}~w-Zu2=^WN45Z7x1So0b0 zcq25T>r?-Q`rovQpE-Mg# zdjar%OP5D*EnCh($-?<^n#;ZY=oxG2C;wpH{l|P0#VA39XkqxbZWnEwBOueKzUD|; z!bYq2JNBOmGNxk#L+y5SB|!`!`=CDEx+-qW{Ot{22dI4UySiTK~n${gw@dUwqsP&uY~NYiL}+&@5)xCuuy1TpK!#EZ25;XIha;>;R&T`@$M+s z8r)^nC`_V=y}J`LHv zuup$*jGWzeNX&5Aaom&)wF4F(t3-43h+Rep00xTil02dYRH|E-1E1c2#?v{8)YlQU z8$&OR5EMZvw(sT|)k5t@%3ew_$!4Pmiw3{JMSUVy@03@&H}qaD!)$eum|5ayF4y|>aXelQu4Hn^_9 zf5O;4n^e}bUb{0Sl|T!dM!7*a!5uQ@VzMXo3EK>pYs}Brz9bk_ciF@qwNItn)Gi{L z#a~ZlAyTRuwlS4-pZug8d8VtUg5EnBIO3M=iuah>N8-oX6V!iQ#@^5$$S0)Kj@ht- z2HFr|P4)!Cj*AO!k2&{uFFZ#5QUM71=p6=VzsEgUmM6$OS?VPfUu%nh0UK#pov$B& z1@^29D7`8*ooMMHlp}x70PdsAHSj5IZ8D{6s!K5L$6SRdK*H;~?w?-T)V%Buiscdk zu4U`1e}#LsVIrxgDDmX$sygz9Vz!W{%U{Wq6u<936B7wN*(Id9J+>wTzEbo>tqy0h zCIVJA6X^PYAK7W|Hnu!5cBWF>tfc^SmU&!cqD23>47!tpl<*|vs5!>Oc=G^in6~*0 z9M}t!_Y61L7qm(Oj&?ix3BQB)xqQ+0ckU^tYMV+PVmr@qQEK;}ESQy1cMxEXp3 zU#U^1MYw4cl`>@k*Jp?)*~AH8XNLBy<8fkC+K2FRngB1u#Bl>UjY~KfpnrN9UZJAV z&Z#pHDd)%5RCNF59AOXolc4y8nmzJ+Z<$1o#ERV=5qQ*WDlNgeeNaa8?m~+%@vnrV zAjhAHTu7KXZ$&@F6s6U;#N~wapYUKGn+dz0u(=LOX=A#OSST6k223=Z`{Kew{#|mv zeXN5u1~3Lopf2lUjiCkebX(9%-7mo#1X+IE4kij_Zr-ABO)RwTj3){D4Lbe=?ZN2~ z$7P9I`e5Qe-VZk<&guR)8+ExR(!i#sT-0aFCAHUo!So8#aXihlXaQsWn>{ufLJj|8 zo`kTPF;`R>p=>e%BWEb@ia{e~aw73-g0&IPLhdkD939PtXERa5@2zuPY1xd>+0_HU ztDEVxNl0{T1X#v7T()e9Mp8EG%7mejV&0T^fkmAg#!0sXXddW8fM1daA(|2q8cY72 z#P{ECy2UuYa#Bj3C?<^&qA{R~C7ltX(P4o5xT_=zA~bcN`~>~GgRhsIG!4=7?cR4E z>V9*Of8ap3NG)TRoH>By#md!;e`CrU(SE!Rt{|cL3&2a;(0N`O<*cr7k4>lt3J${( zJ3+~jpoFrW>8lk{aPM0U`zot1?bkULZW}%@7#xCuQK5-1QiP?$kyVvTBxq*?Clll} zfqxUUTW$ruf!`j^4~)gV@xVZg{({u`gZ$j#Rmqb4HU?;M{7y(shVg{STDV>OAevm- zvDBOV^p?SP?OE&%SFYJ8Bw1QMP~Wle>0cGlval5?iwhR|$voLqE+%m+mz;b_D}_pZ zE1NJR8SIN}gLcWfa;vttFOPwrQ>B$-Dp}TD72_+J;QldUlI`-t3y(XoIZV!*Zc*)7 zE)CfsxaWb5bb`FW!&e;ao?*lP@dBjC428JfpOu}YpTuagz%iTQ9ZkEj$*eRV%G;bo zIJLl5TasXK73e}LSS-~{!tACL z896aaHQ1PmWpR~9-8vE+`Qm(o3qbGe<7-^o#QM zVA>owg3LnDw}ePLsUY7qxGq06nb{6eDy$#C`mc?#M`H6R;PvHJsU$XhJx1_!wipvb zVWNO1aSH8qys)3x#+wCo9D{LSMP$U*aX_bYlH~F;o(rPC3>!ZG!0WCBA>Q5Te7lwX zJK#cvza6>Ty*m2Q(T0q{2uZpWJxj6zHol5|%kOVJz%$bg-V4(2aARK>TskA6q`Xmy zZ-{7BDDtE8c)>sc)ECJ)szsm)Too&J59!rk;%rP2$L8Lc+A#-5H9Y-^&$)lI_+dz5 zu6`pL{eJLV4<{x3R}c8#s+ri{X}Hll|I9w%L;PS0O6Vdd5Nbj6Tg4x`DNVQeQxT_| zdFKR+lnjXe@VJTz9Op=8(QAh56VS+$`hQx}%p^+KU}1dtMWBg#fWk`$4t+(^5MyX) z2Gz^sUK;U?`Jv5F#79OPlDu4S_TrFt z$D33UA=X!C)*?TI4=wK5biAm0m`~f+tb@5$%9*qDRlOuuG9Ci$2$l4$y=d&QiI>O1 z0d!YsDBLi%FBMOVCVbZWN;-H(DZ<_*6OJ+hkrau=EAMVGDwVrHO`Y zvFI0~SLGPjkQT|eKhdLkryL8($(@rV#1nvqO_)4^@$n*x9@4gNYK!;OYS_{4fTqBS5d&k)p zp^~)V&UATH&v|5`sQFxQtM{TCZyqW7fixoVs@wZwh^re${~IP?vbpq(@@3;4acnbR z&u$*>R)zOU1X9Cd-LW_;}b7& zp0UUmt???PYSV8zNRNNQO2m3&=|7K#S?A09)X%iWRzEtFTsx>`AgrrEGkWmpV+cW=G*fpCw>W*1I<@}3((XB!T z1mrD8Dg2z3kRHKMjrycK1j1OSw&wRG$yF=_5)$tRTvH>9eAKcfIezeHYj6wRXSd;? zmWJP(eHCR(<5j=sBEvd5F=3;=Fa~s&rbt@P!{^BI(x~b9OGoz^W^W&SMH>*k0upYt zeW=G{&ko^p49DM4vj2QfB7{GUGc%4Q=`rWTD^vSD{s6BOYLkqdTR6ay&du=UFR*Tbnc=ofm*M!W*uQ1mS z|8X;jCnn~(&;)DgP5@(9{z2;BAd-$aTyFf@Cj9!&`#H?Sa(IS35BIkD4OX@3+2~6Y z&(K(5$6rd!N3TRVBucC$rcnzJ!8=6E5`=95J zg_*3Eerj2-PhiL($%CMOzU2O;)Up}`oiDKRph=Pf6+HWl~ zkw7vspl8;BRNE^!tRfi!UNEHd2trVwCq1CzwAu()ANzCV>`HU~(8wRXx86s+mr}l{ zRN>YcjE=!y0q!>OYYEklIV((bup8`cr{h6fUKfF4d%n1)8`Vj{QIDo)hqc43J)qz& z4{{%C*MmvbyOw$<3p$*t%Kg#z;~O|G;JTc-TnX*ieGIRDx)SSj$a*atI>9F^kVIIX zUK?rIqW*BC3=%`&PBf;~Xz_gA!4s}-_rz<}%5zYWf0n{0_b4;P?6SVFs5e|rBDhOd zw-0f5`B2k9M<|r8rI#laF|Wk&$bgEx3qm>|UX=d4>S%%r(eRVmXMM+kB68o$bcr51 zK|`;^UCz$q8&3SGn_Yv3>(jF%;E5=tDUOWbyO*B$oVIT*Y@@SmG!%dDdprsU97UDy zQe~FB3;bhiMTqxu?>oQ@P3_|o^DlP{zN1?e0LGNva$AF`=EJo(W6pzT))CJ!s9nOFzhAoG+zYwSKyxd!cZ<&Bi))0 z_KTQ2oN$4{$RU+>7@!+~Rk?5ZUbK`g)?_4d(ZX999^T#d5ObG)oFIuQYubGVq>hU^ zM@XwF>4zK{@(ws}o7(f41a*bc92Np7QOK~uGdHj}FD0dd~5;cw#5 zE0};V6`l!}cbD%DB)w3u3H8wLxZL?SCt?4Wla#v=;&y<4%$eaDjGJghz_?|gk#aqL z(@R00C?RUYZ#rx^;f*CVf0X(X1FhKzhk;n9Og`jk->2lh7pqiB4he*Ahj@~xiqaa& zac%N#WW5}z#T(!&;M51{XsaxYlS`W~OMlU9DbB9MnWfi~^V z5!C$m>jvW7D1NbEX_7D9jXH3H3(fKbJgqo6A^5b>P(%Td(rQ;umAQ#$UaOJX$OAyI;B*o8?fkH=AwK(Cx*>1NE|DH+6ku2M zWl!>rwKccU(=~IPTU~QrSlWf)iRq70{o<0){64lq$U+k%N0guDh3%3AHWzh`PFd5D+6N zXbF9YgLJ$cK817~c^0c*$W_I7O zoW=)OWh23@ww`}pn42Ha#KoT}C1L;k1};VQO2Mea;z{gm%+{>?@x*v9%gZZ2&!)D~ zwaD_&7&?Vp!3>c!lAE(*!8Xt<=Q*Hw%is7&zbRldLgy;^+s`fzZo}?IBOsst$b=kS?%aE4r?lC?Y&F=P6MJd<)uGzBcf+yYR%7@l(n(Ini1G0c zEx+H5hFia&yZP0o8NeR4{=Y6tDxX~B%KPa0=J0T9Za4i*qTKWB_dwVmJM>G{J-8u& zr-BpnYjTr=Yk!9y{AiY!yg0?u|1Z-0F#E@G3{=2S-Z+-ILto?A#XLRsrt31Uvjia9 zdjsQa45hG`*{HQ@`%7+w^A^PTz^S93UqetireEXFGqSqW>fMG(86>>)oT4L~WRz`c z3r-ZBEp1+cmSM)_V)U*C)D#S`#t@2D4zoHH>~=Ms)&@R|P`7kUwxDryNHMzSfMXjJ zrnD-%%1DpvgGGmocl=7fYI0G@t<)Z1x>ITi?sn_*v4GGxr*!Q%`(!!Q0Gx9Ckv72p zvqCY-clW2qCcMqmx?#s+>gA!D52z9QXV30K(2W@Qo0g$p7nQ0#fyeE$aG+Mj3qv4} zqxr>ZE6?6-Yb`li7dFJIAA9FM1lidToY_He)GigG@{lz2zC*fm?lSw_B5Q45gO_fzp2SO zI5+GcBX2B)C1$wvf8bY-?K{%k>zRV;9EDKH};mji!Vi&FK{kw zDQXd6uG;P}NFIj_-dU29qMFfb3;z00iN@zWKQr{nGz`2nvsw$@HtPs-ds12-fKs7% zg7tF6j9CJLC9+A!R@o3n?V!zs(9>JYhA&nZ(Qh_(%u2ajBA{8C`HH*A$0uzzNW)*W z+i9trjzNPst@rj`OJqVt8!XzjG%>b7TF);4Hhs8WN7vZ7qe{i`W4v^fkDHi7NEutX zG=sH3vts=XOOEF~N<9)8<#PQMUDL~QXQ~MO4fBy*jMz5^q^s-U*^6%U12gmp_e0sZ z^KioTpQ2(`a8;^UmdM%-S~WxE{pkmKG2NAj8uvTIxd_-Tsj;FnUthH49LlhD(RG+T zH4A-NSKZ~Fq@hyWq|S>gOGXGVDMSeyz91<4+Epv(r_GOD@@uqh9yst(MAYds2{~EX zVcbQ%3k#A*vYF;|EUPxs%wg9ip#=(%mSmeuOge$a6SVMrBLXtT|bk~ zB|Wz0U9LP50&*cfKH`|<%I&?e~5NUVroF z65x~kmrl;pRwQz=?QdWnQ0at4w+Xi6wHT(VMz($Gm=>PSYH!~39QCs50bY~C*AhOj z=M}s|1g<_z`1}VzMi480Z(htJCsk&~5nr1FFz&>c>FBMar>s8gPu5p_@b?M!@+ns7 zGDctz-PwvsV6Ma-cn%>U%#%TSry!wTLsO_)xBvVV9x?SR5UNa+x*O~Qs>1YeksrDG z5R_kLOW5LaQ+nSPp`tRtLrKkHQ2p>&-a0eqoVt~4DQFfs-J0!{Ir>#d);_R7rjfkG zIV@=T{-J<_iP^z;dvf^e-MKDC>t|8C?1EWbu~7`nX@-V6BVu;=ic6{d?qkhyc(#QS z*dSN7Qfmru!Y=Zvj1OXYq+$MFNxpV7p$o|LX^?Mu^1G-@(ak zhu{)j)Q~sbh$r|`rN~AsXMeCqvU?Bt`G~)1Pj+izCd4xK_-T`w8#ksiWYBr%sb3fR zHSRjF4u2s9{n80J|1Rk|A%{SF6g#Tv;m!jrw*eJ(^k=o;fx`D$k9Eu6 zE-ei&>J*7Wr|qZ|dBG$lqs^X)g;(|5x=4uip4Yj!`C3R$>ZB?%&QmmA`T4nAKuEWp zOL{ABPM7wz9-femL)68~?L88yI0Dpy1I#wIUu#u6AxAupoSH6{)u`&!jZ8=~B%79K z@i6>UsW$|`>gQc5$h=+QVw@UFWjX$i~CYvnzZ;aKmQdv!<^H&yp(oOO*3*dD$nNU=h$egd8g6@}0k zfG_C8lNpq;y$BxO$tX!SvjC^2wD7~;LF*-8EEr~=2Gy~mY;7OQ@lIx9+D(2!#fQCI6s2MFv*99w#*Vw&=E#klGwM`?Z?>9=R+Th5G7zsp@VlBF&W9_*%wf=U1aoCo_B| zRV&53kd_f;1mF371~x1s2=xffPtjqY7WZcc&9|PeTdi17c(`-9Ee+hIwe4qb0@OrO zx`)@x+qp4_iEbWD9VaFI^fW>Z0q}^rZ#ib3*+%2{O_S=DfwEPHhJCNC8Py!Gu>K+X zqv5Qwr0PJ_^I8~9-?Br;O7dXS4(g2P==jZAGugSq_kWuy(8tMgPy>%SH_Qu-gwaBS zT4P;8wub|MJQ96tQiU$Agh-zsP`~dQmjsnw)yoV|YvB<#DgdDs!G@`-$Nkh2K>Rhb zw}P*!H{KKiE?Gti-3u})nes&X7Y8G3U136^3tfyyuQaGWp6ZMHRN$@JrB?gXL z!$)rDO*CCmGr7nQ6C9NiBmvWeIdTMumzLgJA3osL4_->Cr1ZG`mO*rGu$k5y??Y}k zRmCK}YIu{?dfOhn%(b{CWIDMaON14puBbApTOr8^&*M*2DD3^nC{t z=DI+@2Ht1faG2i*yR_@3kYGgn6%-m!_?#fVhdVck3`eGK#v;ff z>+3HW3D#2j`Jo>qCY~jEV`jTX78ErV!jIl?y;7Z-*7!@8(Qk77bA+njGj{+M60kf1 zr*vQMCya9;dF8e-akCVj#1o>G`sB2$lNvwu<_E%9!N4j!`C{9M9jP&F76bAbh$2&wxmMzDxpfWCI zeDrUBI&y^oC!0i&Bv<)4i`swvxe;AZrDHcosXIDxW}fXx%Wqpc$V=yj9;K!xrxyC` zSStMIBT1D#{?_W!AAb&~CVh6lsYQ9L1o@=>4HwACj(>+BjdMFI@Z5T`Fa=H#1zhA_ zY1tSn{S9pj`Vbt?(IyGwdj>Z8>?{>gWZhHBV?*pu2r(n^XQ!LN<(Dvihg8?!p>KCm z3)9Caf+&D_@rRf>>IzZ-G4sQs_*#nTC+tKB0Mx+vdgFXpD4RBD!oD4A$_nSOruzU_ zn~(44r3O_E3M9toYnkfeWAjx%SuIJnk$End_P)yM)Q9{T4H&}Z}%lI3Y2P?eMS z0W&0^hA6@K6^W#U7}=y)lb1^#{f>VoZ--BRU9F$&+EFMvT2ZomWe-6 zhx%R=$=;OBGlp>P)_@9l129`D3YkouCghjf5~(4pHb=k9ad7>GyZdj zvz*#%%=|pvK*82}*IKe%d~K zvShdJxxM}hi}p2XEmw;KEuf&oa&_{v)kBe|t}~G2@(8f`r8cH5p4sc>@?JX}^}*d| zx%}rFnti2a(%HF}gm`&V{S7N9VG zW_sN^KE+#Qji!9!>Q!O7<0uq%`5V@@ll|%km6Gpx)CG|85N@Kxs}d8JWqS|hEBC^2 zG3Q1gxXPQFq{gdfg`3A!yPr%-?Y0JP42|q319YDzYfWn)Q;4?jD!i)+fPhM0>sl)) z6+(WUJxED;WN$ZLlP_P~TtNx$_tee(s{K18_}@CTYX7?qjp7j=+ppRv>Xknx$h+3e zj-cL=tu6_(osJL=?tYdY)+19eZcJf#&8QH)Tb9rY5ZBkjqpYohnp!Ux-}=Hqhy( zcyEDYu5;fNvAKt~8aA>V1q`UvH>`a>OH;&UVmA!kpccrygh_7XC09}^qy4{H~t7xy&z$ z9JoXK4#gnlTlj#ZC@IPm@xe3(;hQs-L0Dnvy<{Ar*+|c@X|f?FX->9MLihQ+H&sdQ z4mDPYsSa4pyW5bIMdwi>BAv|NL8zZ%1Fft^Ztk^!LPG zz0-sy_{%Of!lFmr3{E&NUkwY*iVEhub`yppVX=wC>}?`Gb-7bvR)3PgQsN}MF; zovi~G6xpx%HWYIod#A-L?%W9Yx7YkB&(hEDhAfZMV_bY@ z&vX{>HlcFu_#;lwQtxHoTW`51&8IAsynz?+!300&O#y3?-+`aRR%y?E`mo5?NKdNH zX732U@PWy{MAjBg&{Mt)aVJ8X3*75<^>CwzelDHgW%aXKdhAAk@}T9M!_E2p4|C7= zy+p_96qp6sC>dP`=L+GA&*3=&L2|7o34GVvS=hQ~NZr0MCc}v=P5Fr<2(1}6RL?=X zSZ^A6)?3~=J|qU=clEjS%|Ryu7l8F57=q5!Jkktx-FUsiKEwl=1&z#EL)jHZSr(8t zlx9bLagvxO>>1_}JvLiP81^GaMSyyo`CUU}lW-_ni5*a3%{D|MT6e-T! z*_NHt*itsBcn1a>;x~K(9X9LC;ZD^P?1oT8$Pn)C?~Rm6P&v6{EGFHHmb$zJeXEL>xvyqWHSS0QJmk7{pn;~u5X z$VvXb^BAH%qba?XC6tK5n2>1cu?DHB-u#T!IWC1Fs^nuMvOo|!EF5k z0Xe1Km|=4qs7wbV#n=?UH@=vB?xCgJwK%B24^cC3FKKB1Kw;M)y;gW)mJSc6&^LR^ zeK{f;I6YnGDj%^_RogMz{#_VXTvJqfjFRUB>s5WPBdFUX8QV{OtUQx%$W;>NOGMvj z3GNUiQzSEU4SDpKm5G}aA>wpZ-)KqPAcRJ1q55IUxtffN429KD9Lo8E2Cvq8UgrzE za#H1qsUA2-D+NIXBG`I3*`1JJw>NBj^H@ONME~f__@aUQUD1t3u=}Mt%D554(1G6J z+N5Zc_Q)pzbHO9na`(Xru3x+{_hT|y#3bVH*VcNLM=lBG`ic);xd^)8Og_gNuiqM! zZqK}kN%|9 zr28mBaqGv}=o@hP^ZA$ayMN`M74sV8LSIqU_)FwX`4lsjU-%iLS=3(O9_?Z~3@L!j zBqE;Bb|!SrvFkD8LX4H<5?PHEwc8~%Sp{&;-hMxKIA}1mV8QraI>eM5b+~6$LBU#+^bSl;>=5&{Jmt{^gW z=c7xhlOJ73lCE1opq3Zt2Q=p85!dcK)xK9>9}=p9blEp^lP)leQ7-$uTSiCd1LJ)l zvj9#B7i7;*rpYK+Bquk;LPa~1Olo7tAS?y~rVyaJiYwf&g67|D=CXG52`|4Bb{>f` z_*|_%)n*7H$&TM>I(96TdnKq>hQzL&YN)0dx`$F+7Hot$T*z{ zS$kNwn*3C>|9I5ihSwTAXkm~$dKsDP7^M=UdKXgRFQ**j&NH;A_}qtmuPRQM=?#|JMe+6|Oki=^8g&*&`ZaQSrJ+O8N>b>#HJG|sEfduQ6( z8m6jivgYE|wenKY6l|zPbx-Aj)}|MCkjNhY_fmd!G2?Dmo$C&7FtNjjdQ{hzaFvqd zG^hwIS@j%NTMi~jL>XU_oCgN2Mn~95>yW&qKg&FoOy%?!Y6ZOo15Gt8>L4zMW;2Q} zxSsNyv&IGTA6V$0(E(5t3@Ai5aii8$r!Z)&4o&7C0Y*&oQWGY`S~D|fSwPR7YOPdD z(`^Wa0iFTf4an<>lpYAgUC5|}aW|v6-V0yPR_1J4C0W@FyQct?vPj~JzVE;Vr{^jr zSZFs^@gqYe$7{{NUP@79u{2V-Rwc5&y-H1ugj`#nk|K_%*RkhIhS7*I+7py&Em5J# zBO`Te=PJ4xzv9*y4L%)dnF%l}FbJ~kFRjV(P74rczGO1hB!+wn3112vclF^hE0?pF z3ABPUW?6Q8$Tx|y>Otr@#HyPKHueSN5t4$2v}~DME#KPi5o5&mnr)=pHRmKkEMZe$ExndH$olf{-XSGNldDh)R!5{%FDV3QNZ=i+nXpd3{nuH zj9ye(W$)6kINtt!em(E`W7R&>219={6|t@tA^DUrwneP9rz9zkN+;+^P3RI`H z;ujmi;Aw=f#a>iGK9NtZ(T9VCC^AL4uG|1O3r+O;NLX8S8sYWsxF;3!Z`p%g;1zd0 ziumKPvQEWJQlWMJwiBsr4&zbrk(w%ZL#M?($JL?^44g;xg=R5(Q?~( zjZE1v53|@SG!N1qcUn+f!E;U&!nm-Hx7!s7uxZSzkNA#wBL5g>Ut%_#&Ug0dHy7{s zJ1|RV>Dt%>Z-nNhU=kq1aulpI@naF=dJ)-U)_CD`bDE$k7xQp&h6riZ7{AM4Se)gQw> zfDem@5r?+GxFn(V*PG#yKn&9IkC^2aAx_Squ+Znp;X@CZ&4#=ByGeJkiDW#95<@`f z;9oEV{{4l`^!7rH^MBK?hy1&xNY(2jm4nOQiql!HHN#_3>VYtGUR#jJ5Lnn;lThgGX9zv*QdyU745TN~U-0Z(ubVk$u zg{?>*OF;o)DqDzn0mJ&w3(*!|!&%Uy#4uHHv9>gn^K3vEVQjgFbXu96W_da*J($z7m1(Y{@_ec^t5K~Qsr10)eHAaiT{1n?A}i$r>uE}>x@M+Ye{y@K z139A@=CO3XAa&iEgUIJPwi&ef>Ae(aPu9cNX4}njgjteg#B}6bjL`Y+PuG^EARUlT z=3Jas;ChjWp1F2cPYxYgzRjD1MCyStrV0rO6@uHmX)CUReIteK%h&K~JD0S&I~5O#P8_fAlCz+7<#SW2DjWUAp!0xTCQ;>G(M;Q9CaI95_LNRr zK|RZKMjirum^#{62qkz83yFY1nH&vGp#1tdxiWeg8eESl9m>^JAFo=_&vmvFKK8i5 zU`+76Dc4@B@M1z3*Lxy6qJ%Y(40upj9|Y2EK|i%hYK;3darnX#iL3!mUjL*1_aq6t z)CGJ~<;x$AlQ>4m@xBa>=*8SM9BF3>`$&p+DMH9L^46vX zY(a@*;0O%$7z~O0c`kMX!ZrBe*15JOS0=(ED{qt(9)|7MKI+`p1 z!p#TN2E$|oe~*2e^y5!-3|Ta(510gM@l(&^aZCL%&aHa^nsB(3cQhE5lf0gW+)MkXC4qdla__*aYihv1i%F%aW$bteUKZ-= z@yQXBL<-|(`m8+JpIK10<&l5&(I*-BIBaT1F8_R|FvLauOLgJCR!YObgm4(cEdol3Li`*=W&*wRNGGh!^0$ zdHkZ9DO_dLX6>`=caN6LmNOhv^mtv3!D z+@(f&_EF1F_3l=TwK}&4fM#&eF9TATo1^rrHCwNq2c?#n8u3ay-Mb>=bfvuXCXaa) z3zfYv3~UIZN<4?l8spmlim&sM5Or?7W_C0#S^K)FT_Ral>73iedY^%zu5XoZ-|8+y z;pJbXpxawv%9bevWwzT9`HOa@O}u3fE@#sySss3J<~8XTASjK#yDrTQ`H*bVksQeI z(%kjJ$8z_Knff|=iv&KCQki(`I&ox~fn~&KDzU;~bi~90wIFwDhLHOU1d=@gMcsfl zP01doP$0&T`MghsXp@S`rSZ=@vYj6tpb$Dg5yyVCYtZIUXA5evxgzb71QY0Gcx4K^ zf=@#F11T?{A~NauO?jE&MI09hll7#lN+Us{1E#1caNi)$Yj0pl-i@0lsPwHt{YPPYyJVG zVywzK_!1TIa*paX(w3*x$MQ6mQvz|ZvH7%=Mx1k7W633E5;P=pxz2NT&xjR1cMB`~ z(5l(QxRb~qnccW^Ba}%R{7oqw^~n(~kf&!J<5V74^HvOBdgNVF{Y z($j=lIus`nO(JMvTi01)OM1gP_R;pgQX16K=T}ALYo3>5h|E-_uNft_x|9r75?!xM z+7sy4=nSUKX}o$#f%Y=|icOWB3jm9syEVBm_TOwLD!uVSJ7xyiu*ny3!oQQ=bqTHXx&z%=x!eGqr$4!#UU?_a=nqXxA zqxn(I0}P$k*2zV~aR%OwqkgrFb-fz4|E4i}x>cQY;I_S%?I_C zaqCutKz@M1kctQgM5_Q|?76lg(t*cpS|O8|*!p{OBUgV@Mm_fRuVg%hA)3rx(}%WwUcY4c2c0ZC|e&rmi+ zz3MR<0?ADVw+Mi%1ac|0t8oF9c#kFD-Qav8nE+mL$5w-b>Xi2#eN2;ZvT|AsO}A19 zq@)BrFJ4h%r%wu!(r38o#uYc-cbcSa(}H(djeH=_ z1oOx1`Sv*Vs}=Gjj`-OL3dr)M9`mQg?-fTqzkgdkX5b#BVfT{plvtGPFYSn7>?|hp zG2b6S*Ha4pjW?t!ouXdy?Og6!+b`&oq;wr=g&wbQ8jDLvn4Z}({k=7W2k7tBFM#;s z|72$m_h&{Ij|FXA;k4RA_5Cqqi_sUqWu6L2LnE&X%sLYT%2)T4id>z7KnOxkAjB85 z8p$6rUvS?6ci&u?h?5~*@`|dp>JyO86HcpVu9I1=@0sT?yUCPmi4EqvVcy=U7Wx2j zu>88YU*+G)qV8wrzJ1<>qmL z&`><{C7*SvZ}F5v*-MApox`J&&D!$lku-I>nbCo7 z(g?@v%@T4XsPPy&ZKW7GZ)3TaCNI=3|Fg_N>#99CBc~n1`hvs;r*+l2@&QPHB;h7T6zg=`^PP}ls<{LRmdci!5HjRXk*5&vo2D)FIfwPG zZOQJd{^1d{zn7mS?z)yWT>GY{NNq}tLP(%&RVnBtdU@K0W3TZ?1vJzb-72&iR!;cA zkj06kkmqA5VCv~QvwT)C`J2G@T2X+G+r95&OIJMcq*9fHOzn_M9IUa{m()vM1K6$m zXXu3o(_Im*o@0VBrLXtuIrMFg@rB~SE;Dnp!rTz_CC3*1$z*-8Ug8Y3FJ0F}Pf5wt zg~%n=xkg|7sIsT}FFT;$ObYjwk4p#~?51ExPFD=IUm9Yq$Ih+8vJ&amU{dzTcCHb1 zs_0Ib^Ve$K2!~=j4NVO=C6t0yj*5{=w6z^^Gc>=w%Op`*rrdlWgShIWY$8$S2ia+~ z&=t$M5y2k@420pJDF&4_>uDhJ#A^Kt|JIE3a?pCm)#Djs9RiVMNX0Mg?{0e{#SvWs z*7vGj4A`olA#R=>xc=6)jxFU8n7VM}A}!Wmd8Ui8;%e(td6w;#J>}XTcR^^d!cbG zZ^8E%en7}j><`ScU}+3Y{P~22Y+wm&;wd%1=Ml3&IOb5YTFe1m+NzGwq^Ps^q=UzH z3bq=qDw_`+Qs+!+`%BP4j;zvUE{t6brB??4Ez z1j^8`yG_-axvLSEhSlMJ+x$HEh7QsJ-GNF7J-C`V>oL;J=U!~w6V>78PLD{ozh}`6FmX}hjFt=MDXJTX zO!E@q4XZ3s@=1Jhx4@#VV=5$m^Zn@;-;R&-!E*gCEb-H@=n@uwl)IK>Y2;ET7`p(k zllp&`ii5Tu36MFgieD%}bllb_kG&HLIsMFagnk7YMxwpH;oupOBTvbBdWpF`kGPqm z$>dKVmm?p2;!@|Q;EIjlfAI8t6NI*0dknEIu8t@1O|`|40TNGr~TH`_E^ zb6PPe(7MU^98aDsw8&)!OAY^c(Hk^hnljCP-wXO&sf_~j3Zpp zEj!c27L<}c_dWa8S?YWm?P@5ZpJ9pEq3S!!Gv$`jR<)Y7x0w7Z7~~)&@7hv+F{^fv ziuL=*V{W-c<6TF{xaS<%h8_g{sV~~#>ral6-&pEq%=mh54-V0Byq#NCWTRa!N5)!- z;J7cQ4r`?|ZY<+J#{$=|OAf_>qW);!n26M}`CRvJf!~t;cXiqPi^vvPi^cQ0wBfip zt%l3Q+P`eYWvWKG>aMwLu$mX-%>Ih@tCMxq)9+$WD=E5I$ zir;sYr{3&IE{q+&71LvDcdOSA?VAj9idN~J=n$LzC8vK|I0KC!&}I2^-78JDkl-Yw zBupG->2c}tLl2xs8}wL$b{3Yzv8DO8W8JxS=}_^lxR}3x?{y#LqDA$1DX50u$I-kW zV|uFgH{NJl^=WSmCs!)ZL^CNQhr*I3zdyJ*{Wjp3>2ijSknK1HqN338{Y$UytXx0w zYwl(w@>5AflSa4EXB?@vrbgr_h-dKiPSB1rHBKyj9>I%BAye# zf;b^hF6md(tA4pe;64I?rd5~3P z^LT>balL(MkQ;DfBbrFXYP@^%$US!R<|ux&hoBvQ4=`~=ky`eu#LNg=?sCcT@@;GW z=4*8GZ*7pbxB4*F6L6J`=42FV2=8Ol-a<6acs=iS)p6BsJAkm$R@Os(H!sj)nhnO; z*>8e&xcg;OdGsFFI$q75OnrSZZ&l#wJ=Z=N8(HpB#H6_I+W&Ug_wCmYJCVn)s~)0- z@3@EA?&4G2NPzyc1bvh!M#APk+Wg&bk)2aMu&iMb^;d2?|3)JW>V_ZEkABs{4Q|JO z2q&&4SKFUo7YLh1W}ce<3?yU%(v2>VZkkLvl%GY7THaxq@y?^v4-C94JH&lrR)uox zY{{URGK*-oka}Y8CSQghK=(U++~=w!Gtyykb~a5p8)RzE(}EeId`!<(X|7D z<(BkeQ*)OkPk?o6fR9Cy{x$})l;ZUFpqgM-#-pR*L6~T>WIGAUQg_Ej(#@YW@f9yu z#>VaZr(ef8(HOQ-a<^vGUwWB_$>Jr^;pb|dm`}>HZ7(#88(XA6%l^-zN0y8KeLNPC zhg4+%R)3LidWDz#UW`BlgBinwAqU&{0I@L$q@vtTA8sKsi+6)WF#7h`CFA&b z2dJdxfry^ylmNdU(dCqI&^Ya?JjO`et^(IqzNmeZ2FgZ>G0&+`Zp&|H-D6tE3tGrQ ztcB3FlmyxoRmRO3gjfJ@f-xpRFV*(>sbW;sh*n`X@9 zS5Ka*oN~24YTSMc-(*lx`mASd{( z$k{gR=+i>8_&Z-?gC2J9r_%?j4U{e^cig#8>y~=ry`f&C5u0003>hetL35W_`+!() zdxfgh8iPn+nk;dBu^IU1%j;%CXlxc0(SM)|n5FW&Alc3i2QreAh&Q;clGQS&fErj8 zAMrEJv6A4T(vN$=y!A}|<`aRT&Ml+Q1Ei}3ix?>~fEwSAvRK74QB)vi^n~kSM9zF- z&i1Ixl-jI2Xm~WNE37~&&#K5c?h?PTo_&95X7E>xV(GhK>I#!xdw}!4 z4YjY;iK~?-QLIpy$-7qsK2T}9r90p~o_*cD;Z)(%XH_e*ZtA3!0j0+tuTWP7Q5c^M z(ql)q|6O7JTjzXlHCW{7f-ZMUWj?e?p@mblWU)q8rFE=rJz|oqIB%`!tcT$RwnE_W z&|-ttXpTVT+`ZD6HP@*UHmR`rN(IL?a3~cTQnYWo#9QHTqobycljD2s6O-5G zm#9jGiA#sDsH+O|BR={~F-+Vf@ADNShgZ_A-t+kX+SrbyU?C%Bi6C>f zLULmQ7U)iOg*lE5u4mgPce!tJIZJNUg2J=>tG5Jm~X3vypO7LL#_=ENA=aseX@MtSV&kt<5lIMMr z|9u5uBWbd0dadc~xRVSqUL<0keW{IC12Baw?_+#Q#t^n8OoK3Acd8mQk*X9?+A+Be zvHHaq&g=VSNbQw)vT+KQPP4hpR}oFdTpBag&+0AEFCH$P`nZJ(uLmmMkyxA?8=t2x zR2L%^{|Hd9K>ogDsr`t&ITlJw}&V(+ud!QWD}_x-KQ>u2lbqTfAC2lo)5 zJ#Lx_QAv= zXQ$M^t<23E8%`_Fm~BoLF7DJc9M>H5$EyzQmA+C#qd7Rw4mx(gXt`I-#!_C~hBxfM z51KF5M}S|Q?I^hUu3A;j^~QB6vXVDskZ3H%XSDsGus;rC*Wr{-{l8J|{2!L!xobqR zsIUzbXA9@q4(EpnRRx6vZH{}yDk>`A`FQSx?OcVSAP{-4nO1GpUHX&n=r@0aW{zim z2YR@F{rdIb`xW0H`d*rMJcevFwtz?j<6Oji7z z7WB&23A+Ls`?2;EKYFL-!=JSe;+3eKa8AzCRqdTc&NEm}PL7hQI8IjeXy8#XgupZgZtW!A2qOgV8xqm;L}GCT{byz8*Vh}GB@>OWYn}-Ek0BaU zrJtp#7veYc2yW;GOW#w@d+hOJ5ViX`;2r*lE&)F=+8$*~l}XUru1?h7t`1jk;qvTL z5t7;%(-Df3`~RN7c?HbuL-E_yG3dPye})S^Y``pSr#uS#h6SH7GDi@$2%l{vRXb=} zGVC}xQC2%;Q!*GV^ts>hN$YXD>3&N?Xz@>e)#KqO zG1e0&l~%szHfikL@|fyBmH)p`F)*DNiM{>n`wcX!9ZdYgS@(yN?&o$`{sI$VqS zclIkA*fr>YXmfuh=sxM$D(5NhO9dbMj&`OFDb>A#8@P#muzQ@qt=*3oJ02}wesf5r z3dUR1>-gIxwZw+qTYo6{CiOQ8HpER<4e3hqbO>R3++JcNGK{_%NY6IkJ3=q_zw4CbUR3B$W|$aontt$BjQLDX+s?=>HV=9Z*fB?YgL=&aWsl zqlhA96cv>s3P=fv$_Ubt-cb<{kltIiBO{E3FcyjsiqdNk2%Vs!AYE$cMGP&39(uxk zH!%OqIsaLA-MjvC?%iw6WCyde_xF8od7kHe_s-3KY%@ObdS9CnVisw<{a)suBxy5( zv|6GUNbslGrI4w$R1KM#@A?+<3yAI${4fO+cu<(%%oFpTrpr~~r1?Z$D#9SFyQf@C zlR2F@U0c3ZyOi0#lBsK95oh7Ztx>ep-@qf^r)(4Z@M5?&tHFE6%b z@MFL7cU@XYO^$hB*;~_By7cu)p*Qpl?z1nn4q6^#;w0@3?K z|F-Qv-AC&^NhqDINu%?}c)g)nh`wU&V=fdBx)#RM36q}-{ramQ!syxiE|&E7F3f0L zTK&+H17KroVXAJcN9D*w<`}+NV8u^uv5UvVk#Rk32sz%_|c~z>wRxX5AfUFkGfJ6Bx zHf;6%{RwT{{>Y}(@ceLfqUOBu+t@1fM;-pQxe;#0S#aFR?bM|PE5r}E_F(I1BRy#h znTx3Y_qPq^$T(}_0fQ^DqtRm37nzzGFZ1q7* zOpGp-?!!$q+V@H|iRM~YSC?UQ?%*EG`8-VJMGU5UMygmm|Mlx*to!!SJ{SEpQ=9!? z`+v$e>Dx;JX}31+Hj zow=%?Xs1*a{f4JbuvK9*4y98YF8*M(@-tt!tn5L7&%l6Epz>~A+T$Y z=B;nE-2>9GIW^wwE;3$ed`LeD~)#HpdU|Cha%A z!GBc#dZJb>6+nYvpVv@uJ`Q4~T!}3MO)j1;cRle_uCc3JUnTqI3ng(gzU7O)rriJH zIlqJFJXcSi*;_shrp{=0WV9z$m4R0*HHVY(N*xRjF~`jr=@{vJBss=sPgMx7xmh{f zJkEV3n7GzA#o&Q>7Dm>Hk$JROIwFga{ufvJ5oT;Omf3>r>CO))%dK`cehp!chP3yV zci#JYAa?1y2R|G1Efg@@`#)5_;Fl=H{cyW2&u}k$;z2YoK|r9EGpX>niJHsBRVGC) zJJ+XqnH9R-%w@Utkw2dIYyHi5(cSJ(B~vA%A0Hi9+Pyx&o6)s^4s40MzG6-YzhSxi0#=M6j z0;@h>Vha71FPM1^?o?HWpQld0b?44^iXl9oeEa5jByqXP7QW2o5oD&_*zuN&%TFvK z7cT~)XX`0)^_9+|m#&PbdriOJ9Zoj)rm*8>eLdLFC-MKe5nG z?QemS$K7>ko1Q#NCYYNOnN1;BH^*IngAaKjrsY`fkV`A0W^CvKVJ^N46ZlWp{>v)s zMw`@s`19&hk;;fNp6{B}&m4NPG$*${N1;~)u~oPuy|P?Q4JA&4AJX(Lm@{X?oyS{K z%Z~ogWcquf=$px*xu+?sOEP?2+t?G*BAcpzt4h3XZbxvG$0^g zsWtf$(KcH4caKB=^~}J;h(e}+!%#YGQD?>m?T`O)bGTK@9-e(`I}NGqqHg=4*DlMf z?D0q}!lSLNeL7S*+y3aotJ{*{DUv`k{-~woyE7$m&VwIzmM(PJMd0zjr0P7N7DML$ z1gT=C!y@F^i|UCliZ8ye_@SRM>FG@C5?57II~G-c``$g)5SiKUaom{vc=B;u{eoCK z-(MTWyBrt3dM{KSbrc*(3^)4_d{pAgU9kag9sp@h|8=D)~yGmlh_9HB{+&}Hnz zIG4bhe+y??Z9j#`0k;!bU3Z-78%j%?T@NY0BD@`j8o^P@5y@#w={>Ks&t4(3I)fCc zZfT`2P-~SmLDew|>z}yLd2O!Sz`w1uH6e`iqIb3Ojq~-G$7dcLfAcw-u^JyVQZ?+f zfAwds{3`O?%)pG35V^~an|Fje`cqJu=!KWDv4n_-!{Ug2mrj`vT?-&jx?84v(0-fl ze0yn+iHL@1Omb!LQGtsW^<;e)bO6|fX396*lxT|zV^Vb|UJ zxkN58=Cy|&@yCd)(5cqH1qB^_&Sn1g?OTpA1$A}Yd5cQcc>C`BB)f3N?Bb%tPX`VJ z6G$sH@l=HOl3z!JxLw%!JD-1ucjzs4AgAc2hn@GDzBzc`myPhn5ZkYZ|+<=lUh4Ej>I}czz9*6@wHiQbpnrT)! z=Uuu>DnOSMmJ4gcSV-#ju;sUeYv0qJC*uC7eD)^Iaa!X+#^+I|h_w@6mu z*FE7=RnyZ>Ls=!07Z#@aktV8;QQqg#rud**B3zH7YJ|x9&!0aRrnrATk}>-b?|f)` z$=pM{;U}r@Sy(R9U&rkTPfSQSVKMOTR|mO+I&DGe=miKF=Vv%Y=a|PU1S1z*TwKnU zGE;8E%a9fx5?;#(agL3Rh5DEZ=w*m-Uc7hLI}@IMW$efu% z){XsF7upK?vFTu=wFJA~Vt1H|h&_AuaQS1g*zxAXCq_iu#EcBVll=VDZ`Chw<>uKp zf6d9wCEn}2u)MlzY_>Q2qIpduyP=_Bq{yug*G%KZa&`&$Nm)0_t(PXLM~}DmmwLMr z?GUnhQ&Uq-ZEefUP*v#j=WprmG$jVr9tlP@GO;!K;Lbu~eODr>iQX6hJJ@7uv3_ZB7rZZC9PRwmolQJ?AwPImm z(Uz*s|M20%F|eJkQt#Y7d-tAH8flD0$UE3%;+{YMNewUAG;0KB-~?W%mtk;gJOqc+ z^Ybf(z~?sbZW|1=R)ke)UCzR;J>$kyUzreUt`E;qp63405qgeNx2NF>3kyqWT#|tD z{YVk`kc&Vu1lQp9Ok;f|ac>8QtQO+ct5=_r&5_>E_4V$Y<*-IW$Z(XSM_0=ea43)H zEYlL{%F3#$qmHFBfwjh`d1QTB3#Uk{`1aA>l7bsrTDQmC6B84UJbU&mX&Iu%1rJ)6 zC1-eexOFLWg{pA#W}MB$%QM=7nLGLiR19-(_Y^wgsHPK{I@O#Rvu*f#yi|(~YUxk8 zF&-~5q{6}u1Ed^VhKAfDwC;j}ye%j7?Dr?znDvwVgI~TpnEV!|trBbusMq%`OM&~2 za>AmrXKgyG$LN=1$^8)!IEXWJvN3h% z&thX8ITz;|g=O zTZxx)eG2}2c<0WY3R+rPp?-yt5{@xr(qNYCebNQ+fcZk8Icjs`?U_`!0ezzahu){h zgWhezw=M|J&{&qmcRRz&}fnX6cOK-V5g*V5V6V-WdLdFuBVn=P)=$anE zj8>?3`SSgiW4L5ONXGlK=5?L<_T5kK-)CuIdv{34=#F=D0FH#!eD;*_B@UEH@|Ql1)oe@C^8UQM9N9QpwtaU!Zj# zy>{&ydzL#GS~9N~jIWNe1QY?o?*5cluCJMT+&a4^+@;d+`w4i_`*G9M0v_x)3A-RF zYKr|iC5=s=PvNPEsdY#8t*~KkIc(3^fFpgpO}L6z+AT$EwS*F8tZD}`m7b(E7_UO6 z5s}OF!Gj0L(=y*hJxRy9i1SIrN*uRws_annkcy$}2pUy*acVI#%Wuqh4FmZ7gsfq# z3P6!mU56W@jZ^(gGCje2Ta=8U`MXH*`XLVnq<7 z#U1!KM#Xh?amq1r5tz1)r1ku0Q<4+{w&wZJbz!2@;=7$YUtuLZUe=g_M1rtY#MS@i z+TM`GQ`KXJuauOO*c+CYhC*~rOeXGz96o;)!e^#apSFgqrR_PBLQTZm+xw8`W0hCu zEbF7sXeXT(7uS8>nx-qD7A;NGA{X7ycz*!W*0m>xY^d#-xP|-Mc8GaQ7(Brcad`Nb zm$^AqF}rqEpgQ?^?Xk>x{#xqwZ>%w?lX(ASO8D6`XPom&Jg2hy%6yF@S5a5!nj5Zn z#axn*(1$E~k&cA=n};WxmUy7?HQrQ5Cm}?R*+JuS*`=|h)gZa|SJP#!hMqyL?^syg z`JNtSNmGJ!p4yvdqh0G7C2nVB3xY(k@`8>LM5@&2sHk*^$px-q!lt&i#*A&oCMNi- za;A?WhM!;29AOZN!Q0tW#xm@C3U9yzaKqwd5$gu7hrj*iiZ*P=mpKn9pteR?0yLov;nXwF zcYgGBdRB2wvyr81&YkL?3WlnWOni)zN*8Rn>Xe!*->{L(riJ%N-?s%Af>_x4YH^!+ z++(cJ)9+{`?)>gMNjm$%gN0nNF)>*Xl%j?g$J=UWeSib=s?tIQ^o?Tn7HYpRtZi&0 z!w=4Km2-<))xi^kPk6Zn=fDs?8%uSUBjqH8sqDuY%u&7e_W68TlD3vQP2KZcR1tZVTIRlE2@z8eAD5T67q+{__6T{ojAD8L(@g z39i4$H956+GXWWz5v&_yk`^Ej-t!h7K-AT&>;e3A1QVI2I9Ds*ep9ip z#<0`ajP0<~RelyBO#?(m-@GAi0fcflT_bY4XeKfMO4t5oJ|iRdob{eRY379r+1OKepjnqXlo= zsqGGg-8y<|miFK#ky5Tn@eE*ga*rQB&XMV7&)J2U)oZ{m4er)n{lNB)wc-n!oxzWY zh-1GQ@DxbL+V}2d{PfdLV*V>`RdZ39KW{9Upp1-3ykdw)-rVf$JQ_9%)t#N+_W8}J zY4=B*w=lu+TW3c#FF(hw@3YW&$vrhGTjaawpj}ejw~pFwJzn>a^|8X%wmX|`&k9@? zS~TQdbvZjbE32vLUcLIjp>#&Ue`zqNtIW3m@Dk$AT=RxG{>6@*)dsn{HOmx(LJ?Yw z@Wu>a<)XmBjq>ge-UT(z5MYI~6e&AfbFtSm7L1eIU!un;z@dn8C>&zuMA8Hs9>*&; z*|e53bZ*VV#qiauSL)@mw6RsN2Z)WK7>HU9U_+=Klj4$GDv^y`TMs}vMd8IMwPw(p z-n@HvS*aN?ZX3zpS1tCEDV0nhLu8$Yv~Aa!W66o}$N(FoNUrT=Wo?Bt(FRE7Y(E*U z{$)(e;6**~~YSv^*TOXHnn4AO)bPF(j(2Y0Ve-_gSTMMh2F# zqO7c}1!3>R83?A}XU(6V@e%Jf9S6XFcb&;tVXjVz+qDaV)!zVfcCRa+ET-mp&D<^s z`30guRAHf{_UbA!RbC*o2uGrvE48t0_3ebOoS0Z^e0QZvgZJCwLsIf;b9xPDpXC0q z^dPck)9=Ok)SqL$CBkGU{~TnYnEfquqpa> z<=G_lyO0d-?DNp;l@jp%LjpV|TE<(ec`7Jyu^%aSC>}c{4g^w4N~(+GUjkVNXXf?1<3z4kH$R~XKmvIgq(Ww<_yJ{ZJ1-V4tg4-+!ZLx8>rnG}AZ;8Rjg zt3`?_K}{y1*3a}Z#0Ut(-?jj4F){(Nl`B&xT1@Noo>#ODJ{#kt?y7a!qVWV%X zx}S`t(pej>4hYyDx5fuRU~Cnf{IbpK%8eV()))){nWZo+a%efjFgGnR!eVuSmSmlz z(){k%9pbk>AiwPy31c|v=Fj#%&f)!BV|Jj>pe>pRfSf@&hd9f)=7VGSfWHWo_0Rqx z-eKxa5tNhbAM^mv=*6Dq5yWdK}E0Strl(9;V8s$w)) znwKY*JSEyZwOkFreSC4)H+I8~L^XhKnt!F?o%e5NVbPpJ^YaZXmc-*Tddz*Y$8f5A zodm?|#vmR_Oz9R?xD}waqf1xxbR}KB{T|4AE?r*79ldx@69B*|)rdH7!xVtVv?UlxFgHf8K1zbTI#urIjYRMLe8kqs z%d3#b``eG&{V)-9sJNBjU7?p^ACF82#lAbURIzNikKa1QMm$v16EF#3#$zjR}33va^GKmPr9r#w+n zQ6iKYT&kXnc07|J3nM?#E+Xc`(Cnh4N6F*(@|SU9Js)zj_U zv51kifx%Amt7bT5}Kc% zRCyT@fusNzm0SUhnE;`y1kb_Fp2&7-=`zG~m-$dqufNSfw*i-tU|@xY-}}9iaH&KS z)_s4cp#5>2cdV?&p`as9FJmlptM8t*+_`%+HG{8iKvXMx985Uvh9#@hNzs(rqAIjx#N0YZ5MjUj-=(vrWnA( zEpvwHdkh15z2yEVxBf)(stPtaqnz| zAYIQ4FXlmBf7J!}XW=eE-^BT0s{f$+cFWD_$cJpKy$Y+IL8fVm9wacQvp-FM zDHV}%j~~1E5O@Hc#xp|w*Gr0{Sfm1?b*+Ic0YrZ>UbmU57vA&f-?z>7U-i%~LDrcd zjpfReJNA>n0$uz*OSvQCFF{vyT+WY!B&w{c+6sAfYBXIt8K;+JV&hYp#Q*i{S5+Eg zb!!D4}+DOZRWPfLqBfu7O+^2Bq*}+tDwtlMrhwP|3%k*saqTBP-jbXrpiL zPfRVdsM=rUDwYXqLO?flTj-4!hUvnPe*jT~OIOpn*w0`{6U7|Brh*Gx^vsfEOw%X4 z^u146PoE6D72$w6S3RE+pHo9JuVqfxMT4kE>v&s1qnprQh?>;M)EgS&AF{BQbl?$P z4phb-;MvK2S^V@WUO^-Fl^}z;R@DroNP7@pS}Mbs2|-$m-KkvuL_2ajcu^LBQJ>PF zW=;u*dn;Fr0cDKEB^*y&JfS4f>(+9Ow)+oTVY{|R85@i(%AvU0P5(i_ZnommS_N;9 z$sQY93Hz=*_?dB(+#>kUML}l`a!#bR%P#ZTdWn8e0NR=+$%NSM68`;=09%Duu^uC^ zHrjBacy3-^f z1Et>Bu(qb=`K`k|{-EZ*%KGu>QL0#Fn<&1T6L@uh3#yXSN1G~|gark~WFI6R2V8K0 zxH>;Jw>(;F_d6kPvE04%Dw0)=T2;byN=!HS^*tr-n4b>$i4!AHAe<%z)K}9 zgzB56j*i|9AA0imv0Jx&feoc56h{I+0UE9WoF=E#;o4;BoH}IJ+9tD{JC7C+TDSgS zX%6pU#}e8_G(pxZJgf~b$Q>2}YXf8jV5PkkOCyp6Gv^@xjs@{zo${bhBs3yo)I|mz zpQyDZ*#~l>5a9(V20*KOT1T>+fGcy<#mbqd>k~Zk2t~u33@FokVEDzvbPD=>(o+c& ztHm-9xskT!L=|otAgx~KDsG37KSY-v)O=F~dNlourR%WJH&zf{_U*W@q^0%zSoI7$ zO#X~G5Ra#5*vo23RN>&mU`jp|3Fv2uZQrp&&2@c+Twcs&uA_6O$D`XmX=dBDZIzJf zWcmu&hbn_bGuv{lHTWbX$dn~mj8~P&?wvc2q^72}0je8^c7{&VLV zuV23|QlAMS46wkM2alAzZpvf4siuL!UGE9&SbwV;eb6-Dx>NO3T-gvV$$^*kpq-a+ z#e$YFKhfDDhFx2l32Q%Yow6s~2qdWYiKAMzuaY-w5Im5Mb3((ythl7zK95mfXk0q) zfB0^5f>O~CM7uk%6_zs5lN94lpcSV|4s*X-FJHct43_hrO_*6MU+?|?`|m~SA3c72 z0W=mG;t~yN3?_39?5?CIx8$5B?{nq#5>WXf+o^5o;ctP?w-iDYumD)49uxumD%EM< z(joKe$YkM#p8>g`@*D);u4$-i)uR}!mhpZDT8Dz6JQ7iK zz=n=FEFd*^a6>g}t7sHqm49cM0_v1B;NSES$p57=@1N4;&`8h8H zoC%nNp0w-m(|m{Cw5Ly5TS}q4WeXHO$@uh##bxDoxOu~&SDHT6-`|7_4%P)cTt)ub zF8c$A>jKmz#$N~VT%hmVwJQxA#kM)&k&CMtWJ2(MfmVp%IqH^HR%fN8456r|PQDHa7NXw4!-q#bgdXAFOFJUpGT?$i zA9#5pRXtjIyyI;=g!K$S%>sOU@@S#TlMPwz?iaJ~5(`<-GBL?O72kQu@0DyjvR@aw zjlF@w7h1Y9E^yEti+>dt_cMxkX?(#osAjIep_$j|y9}S%(9F}6_Hn#q5kGbDVteY< z-WI}n#Glhe1;9J`$OBR9AGau;B~ z3s9Q1US65zCOsF|&~4kOu1vS#Q4FeZ_ihTs9SUl9?sa6pA42OI(?mSL#O~4d%&02r z((>{V6uvuy=o7+Zz&|6?3Jq`Gypbt3yK^UDrkX!iXGJ_3#DK$4g`&{W`eTMkQI3`! zR2aaJN;=4zDiv=g{n#d2%9Bb`sG-E zwFr?bC~*YfB|tnR6=3RxvF`h&;U>qor}%BqbGIY|XUwLci{NQ(va z9AtF#gHS3&KL|qioA~&)B3EmGKB+bB$E>ptI1Wz$r`V`MLIKRu((;U)oH+_upFV8` zMv@67k+VPl9H$IXG&=yU2rZKW9jf{KS<}oc2Fie~2}%c0i2(9n0U^wtjaxb))3^Z4 z-=e0v`i83N)7wz8OxHgLm_fG_oo!8RDYW8``Pmxu6;jB9{qXY7Eo$(Yz(3!>&PDkv zyZ`q7e!b=wC?NlHyD18^eRG5MYuGwicXDsO-~9jo`SBZ{|2GcbIRC$KJbM0r=Wz7= z|IYFM7l(&OeEoVGN^&Zo=Hm#E^~_tv$w-!|0My5-=xA66h3IV8d2~pyY24Ucv+xKA zq&Cd8{M(2TI?} zplwgPAG-2FpFJC#A@cao-`JG(;g`aLV*F;SpY-ur5v2ArqN3VR zTLj>p1@YYtzy+WOby#{1qJlRRk&~dS=d`RWVhX$yZQ4)>;mHIk;H>%H&Fh=~ZgT|( z_&}yj8mtJybODY>gB+B!?KwSbg$nLgKR=0E$i7vf>bZDYNJvNxWVJVk&Y5LETWA>O zl!%BX%-71)I@1y4nfh5QP|FNxzqf@ILGwV5zfACBj8q?SULNJ9P?a|wq?<}%*9xJ85DzV5;l_1aX5Vq`vYO+@ zrD(caHO6Fu3wFQE?kWb5anG&u1|#T#qdRC?b`RknjtD^A@;UOlGk2NAvJtg0drDE;b!ihDvy5y#a8 zOD$7;YGVK_nx-J_pc^kd^Z7MYqHLjw30Gpa#+X9%Z{L1%N+TwtC0PSg$s{9;@Ub6- zI8>u9*6Y;$$i+DBKwF_nlTVhpG=#H*-eYrFpZPBk40cUr{-ePJrcmKEKL+1^9*sq$!OnSFRjl>S7n6O?V6hC1@lg zTZG6ap;dEe|dq!ch- z%hr(DT6FQ^O^YKcVCB$4(b?fYu;m!Vv8vaC2H9~RZtqvJC1*u5fj>%j!5uq#1w6>fnTA#Xz*5wa#dkZ{Mu9E3 zjmtR=+($@jvnq-u=H=Mpv7{(Lf;UXjSwN>v%(b~j*&d=V1lc6Uy}r^;9lzV3pq6Nw z=nJ(5bW7X26(Qn%pym!Y*?nv!XBdi>tWXQCxZZ3XVzb04ld zQcI1#uY@}&Wf@rtw1 z=Be)YE|cd$Yl3Y7x)(GlWHHtXB=sB=C(w?>)Cjoi=PINbGJmY!8&Gcm&pV=E3<}Py z6;6H-CS7$&iksi{4p%6@fv_$=Zv~NkLv6nV6-3}JCKPHZ0AOi|Px1Z?I++T+U7Bug zZVz2^b92-EvsX6XSfGQ1I zwXZ`)(j}=wU2CWjs_tPU{s@?_G?+=~)D~dO=G(}NEG*B_NSOwPiSsZribRF$9MtS0gbYZ! zDi*5Qsi3tY{WKz|yyDn3F9wKCJX2eXTd1=If1E}^1%N7??YQsg>maulH3=K&Miib( z0&s#|rf`(a)(8|sWw*7=*VDeARMzvBPZ1|Z)9N6VtXl#Y!pR;9|!e&&mmc27e)ZlD=p3>X5MXF)vYo&#|`8Jd8o4>`~Dsd(xdq(2f8-h&7B75UKoUK5-Ne1|CH_ z5*63ST9ToLljbr4KkG6If`1FNh75P^{nKJ@K))zDOwB9+n^dTA`@qrelu&&=NfMwG z^n2!!8Uey6{1fLTzrxzLXju?61UjsQ00dV`A&?`K#hLrlL!qJ0IF-Eh-6oIMSSv(q zeGY6)<0=M>9qsNwrw3XNpzY}fR1~3-=LTmRhg0YPiK-&kS64SdPczZFk;l^7S^(Vb zJaYa#^snXuiPYXl*fQK~xh*r=TqBlyfr?pMyBjb6op>F^pa1XJ4tn|j@#^9H|36O; l@#p{R=~+Dfr%%7m_Q%x_qq{UdGj#HmuBrc$b@k?h{{@%|qBsBm diff --git a/lectures/cons_smooth.md b/lectures/cons_smooth.md index bc43a5d4..886ed823 100644 --- a/lectures/cons_smooth.md +++ b/lectures/cons_smooth.md @@ -17,17 +17,28 @@ kernelspec: ## Overview -Technically, this lecture is a sequel to this quantecon lecture {doc}`present values `, although it might not seem so at first. -It will take a while for a "present value" or asset price explicilty to appear in this lecture, but when it does it will be a key actor. +In this lecture, we'll study a famous model of the "consumption function" that Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) proposed to fit some empirical data patterns that the original Keynesian consumption function described in this quantecon lecture {doc}`geometric series ` missed. + +In this lecture, we'll study what is often called the "consumption-smoothing model" using matrix multiplication and matrix inversion, the same tools that we used in this quantecon lecture {doc}`present values `. + +Formulas presented in {doc}`present value formulas` are at the core of the consumption smoothing model because we shall use them to define a consumer's "human wealth". -In this lecture, we'll study a famous model of the "consumption function" that Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) proposed to fit some empirical data patterns that the simple Keynesian model described in this quantecon lecture {doc}`geometric series ` had missed. +The key idea that inspired Milton Friedman was that a person's non-financial income, i.e., his or +her wages from working, could be viewed as a dividend stream from that person's ``human capital'' +and that standard asset-pricing formulas could be applied to compute a person's +``non-financial wealth'' that capitalizes the earnings stream. + +```{note} +As we'll see in this quantecon lecture {doc}`equalizing difference model `, +Milton Friedman had used this idea in his PhD thesis at Columbia University, +eventually published as {cite}`kuznets1939incomes` and {cite}`friedman1954incomes`. +``` -The key insight of Friedman and Hall was that today's consumption ought not to depend just on today's non-financial income: it should also depend on a person's anticipations of her **future** non-financial incomes at various dates. +It will take a while for a "present value" or asset price explicilty to appear in this lecture, but when it does it will be a key actor. -In this lecture, we'll study what is sometimes called the "consumption-smoothing model" using only linear algebra, in particular matrix multiplication and matrix inversion. -Formulas presented in {doc}`present value formulas` are at the core of the consumption smoothing model because they are used to define a consumer's "human wealth". +## Analysis As usual, we'll start with by importing some Python modules. @@ -39,13 +50,13 @@ from collections import namedtuple +++ {"user_expressions": []} -Our model describes the behavior of a consumer who lives from time $t=0, 1, \ldots, T$, receives a stream $\{y_t\}_{t=0}^T$ of non-financial income and chooses a consumption stream $\{c_t\}_{t=0}^T$. +The model describes a consumer who lives from time $t=0, 1, \ldots, T$, receives a stream $\{y_t\}_{t=0}^T$ of non-financial income and chooses a consumption stream $\{c_t\}_{t=0}^T$. We usually think of the non-financial income stream as coming from the person's salary from supplying labor. -The model takes that non-financial income stream as an input, regarding it as "exogenous" in the sense of not being determined by the model. +The model takes a non-financial income stream as an input, regarding it as "exogenous" in the sense of not being determined by the model. -The consumer faces a gross interest rate of $R >1$ that is constant over time, at which she is free to borrow or lend, up to some limits that we'll describe below. +The consumer faces a gross interest rate of $R >1$ that is constant over time, at which she is free to borrow or lend, up to limits that we'll describe below. To set up the model, let @@ -65,22 +76,27 @@ To set up the model, let * $a_{T+1} \geq 0$ be a terminal condition on final assets -While the sequence of financial wealth $a$ is to be determined by the model, it must satisfy two **boundary conditions** that require it to be equal to $a_0$ at time $0$ and $a_{T+1}$ at time $T+1$. +The sequence of financial wealth $a$ is to be determined by the model. + +We require it to satisfy two **boundary conditions**: + + * it must equal an exogenous value $a_0$ at time $0$ + * it must equal or exceed an exogenous value $a_{T+1}$ at time $T+1$. -The **terminal condition** $a_{T+1} \geq 0$ requires that the consumer not die leaving debts. +The **terminal condition** $a_{T+1} \geq 0$ requires that the consumer not leave the model in debt. -(We'll see that a utility maximizing consumer won't **want** to die leaving positive assets, so she'll arrange her affairs to make -$a_{T+1} = 0.) +(We'll soon see that a utility maximizing consumer won't **want** to die leaving positive assets, so she'll arrange her affairs to make +$a_{T+1} = 0$.) -The consumer faces a sequence of budget constraints that constrains the triple of sequences $y, c, a$ +The consumer faces a sequence of budget constraints that constrains sequences $(y, c, a)$ $$ a_{t+1} = R (a_t+ y_t - c_t), \quad t =0, 1, \ldots T $$ (eq:a_t) -Notice that there are $T+1$ such budget constraints, one for each $t=0, 1, \ldots, T$. +Equations {eq}`eq:a_t` constitute $T+1$ such budget constraints, one for each $t=0, 1, \ldots, T$. -Given a sequence $y$ of non-financial income, there is a big set of **pairs** $(a, c)$ of (financial wealth, consumption) sequences that satisfy the sequence of budget constraints {eq}`eq:a_t`. +Given a sequence $y$ of non-financial incomes, a large set of **pairs** $(a, c)$ of (financial wealth, consumption) sequences satisfy the sequence of budget constraints {eq}`eq:a_t`. Our model has the following logical flow. @@ -93,19 +109,19 @@ Our model has the following logical flow. * If it does, declare that the candidate path is **budget feasible**. - * if the candidate consumption path is not budget feasible, propose a path with less consumption sometimes and start over + * if the candidate consumption path is not budget feasible, propose a less greedy consumption path and start over Below, we'll describe how to execute these steps using linear algebra -- matrix inversion and multiplication. The above procedure seems like a sensible way to find "budget-feasible" consumption paths $c$, i.e., paths that are consistent with the exogenous non-financial income stream $y$, the initial financial asset level $a_0$, and the terminal asset level $a_{T+1}$. -In general, there will be many budget feasible consumption paths $c$. +In general, there are **many** budget feasible consumption paths $c$. -Among all budget-feasible consumption paths, which one **should** the consumer want to choose? +Among all budget-feasible consumption paths, which one **should** a consumer want? -We shall eventually evaluate alternative budget feasible consumption paths $c$ using the following **welfare criterion** +To answer this question, we shall eventually evaluate alternative budget feasible consumption paths $c$ using the following utility functional or **welfare criterion**: ```{math} :label: welfare @@ -115,9 +131,9 @@ W = \sum_{t=0}^T \beta^t (g_1 c_t - \frac{g_2}{2} c_t^2 ) where $g_1 > 0, g_2 > 0$. -The fact that the utility function $g_1 c_t - \frac{g_2}{2} c_t^2$ has diminishing marginal utility imparts a preference for consumption that is very smooth when $\beta R \approx 1$. +When $\beta R \approx 1$, the fact that the utility function $g_1 c_t - \frac{g_2}{2} c_t^2$ has diminishing marginal utility imparts a preference for consumption that is very smooth. -Indeed, we shall see that when $\beta R = 1$ (a condition assumed by Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`), this criterion assigns higher welfare to **smoother** consumption paths. +Indeed, we shall see that when $\beta R = 1$ (a condition assumed by Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`), criterion {eq}`welfare` assigns higher welfare to **smoother** consumption paths. By **smoother** we mean as close as possible to being constant over time. @@ -127,7 +143,7 @@ Let's dive in and do some calculations that will help us understand how the mode Here we use default parameters $R = 1.05$, $g_1 = 1$, $g_2 = 1/2$, and $T = 65$. -We create a namedtuple to store these parameters with default values. +We create a Python **namedtuple** to store these parameters with default values. ```{code-cell} ipython3 ConsumptionSmoothing = namedtuple("ConsumptionSmoothing", @@ -145,7 +161,7 @@ def creat_cs_model(R=1.05, g1=1, g2=1/2, T=65): ## Friedman-Hall consumption-smoothing model -A key object in the model is what Milton Friedman called "human" or "non-financial" wealth at time $0$: +A key object is what Milton Friedman called "human" or "non-financial" wealth at time $0$: $$ @@ -153,9 +169,9 @@ h_0 \equiv \sum_{t=0}^T R^{-t} y_t = \begin{bmatrix} 1 & R^{-1} & \cdots & R^{-T \begin{bmatrix} y_0 \cr y_1 \cr \vdots \cr y_T \end{bmatrix} $$ -Human or non-financial wealth is evidently just the present value at time $0$ of the consumer's non-financial income stream $y$. +Human or non-financial wealth at time $0$ is evidently just the present value of the consumer's non-financial income stream $y$. -Notice that formally it very much resembles the asset price that we computed in this quantecon lecture {doc}`present values `. +Formally it very much resembles the asset price that we computed in this quantecon lecture {doc}`present values `. Indeed, this is why Milton Friedman called it "human capital". @@ -165,22 +181,22 @@ $$ a_{T+1} = 0, $$ -it is possible to convert a sequence of budget constraints into the single intertemporal constraint +it is possible to convert a sequence of budget constraints {eq}`eq:a_t` into a single intertemporal constraint -$$ -\sum_{t=0}^T R^{-t} c_t = a_0 + h_0, -$$ +$$ +\sum_{t=0}^T R^{-t} c_t = a_0 + h_0. +$$ (eq:budget_intertemp) -which says that the present value of the consumption stream equals the sum of finanical and non-financial (or human) wealth. +Equation {eq}`eq:budget_intertemp` says that the present value of the consumption stream equals the sum of finanical and non-financial (or human) wealth. -Robert Hall {cite}`Hall1978` showed that when $\beta R = 1$, a condition Milton Friedman had also assumed, -it is "optimal" for a consumer to **smooth consumption** by setting +Robert Hall {cite}`Hall1978` showed that when $\beta R = 1$, a condition Milton Friedman had also assumed, it is "optimal" for a consumer to **smooth consumption** by setting $$ c_t = c_0 \quad t =0, 1, \ldots, T $$ -(Later we'll present a "variational argument" that shows that this constant path is indeed optimal when $\beta R =1$.) +(Later we'll present a "variational argument" that shows that this constant path maximizes +criterion {eq}`welfare` when $\beta R =1$.) In this case, we can use the intertemporal budget constraint to write @@ -194,23 +210,22 @@ Equation {eq}`eq:conssmoothing` is the consumption-smoothing model in a nutshell ## Mechanics of Consumption smoothing model -As promised, we'll provide step by step instructions on how to use linear algebra, readily implemented -in Python, to compute all the objects in play in the consumption-smoothing model. +As promised, we'll provide step-by-step instructions on how to use linear algebra, readily implemented in Python, to compute all objects in play in the consumption-smoothing model. In the calculations below, we'll set default values of $R > 1$, e.g., $R = 1.05$, and $\beta = R^{-1}$. ### Step 1 -For some $(T+1) \times 1$ $y$ vector, use matrix algebra to compute $h_0$ +For a $(T+1) \times 1$ vector $y$, use matrix algebra to compute $h_0$ $$ -\sum_{t=0}^T R^{-t} y_t = \begin{bmatrix} 1 & R^{-1} & \cdots & R^{-T} \end{bmatrix} +h_0 = \sum_{t=0}^T R^{-t} y_t = \begin{bmatrix} 1 & R^{-1} & \cdots & R^{-T} \end{bmatrix} \begin{bmatrix} y_0 \cr y_1 \cr \vdots \cr y_T \end{bmatrix} $$ ### Step 2 -Compute the optimal level of consumption $c_0 $ +Compute an time $0$ consumption $c_0 $ : $$ c_t = c_0 = \left( \frac{1 - R^{-1}}{1 - R^{-(T+1)}} \right) (a_0 + \sum_{t=0}^T R^t y_t ) , \quad t = 0, 1, \ldots, T @@ -218,9 +233,10 @@ $$ ### Step 3 -In this step, we use the system of equations {eq}`eq:a_t` for $t=0, \ldots, T$ to compute a path $a$ of financial wealth. +Use the system of equations {eq}`eq:a_t` for $t=0, \ldots, T$ to compute a path $a$ of financial wealth. + +To do this, we translate that system of difference equations into a single matrix equation as follows: -To do this, we translated that system of difference equations into a single matrix equation as follows (we'll say more about the mechanics of using linear algebra to solve such difference equations later in the last part of this lecture): $$ \begin{bmatrix} @@ -244,18 +260,18 @@ $$ \begin{bmatrix} a_1 \cr a_2 \cr a_3 \cr \vdots \cr a_T \cr a_{T+1} \end{bmatrix} $$ -It should turn out automatically that + +Because we have built into our calculations that the consumer leaves the model with exactly zero assets, just barely satisfying the +terminal condition that $a_{T+1} \geq 0$, it should turn out that $$ a_{T+1} = 0. $$ + -We have built into the our calculations that the consumer leaves life with exactly zero assets, just barely satisfying the -terminal condition that $a_{T+1} \geq 0$. - -Let's verify this with our Python code. +Let's verify this with Python code. -First we implement this model in `compute_optimal` +First we implement the model with `compute_optimal` ```{code-cell} ipython3 def compute_optimal(model, a0, y_seq): @@ -279,10 +295,14 @@ def compute_optimal(model, a0, y_seq): return c_seq, a_seq ``` -We use an example where the consumer inherits $a_0<0$ (which can be interpreted as a student debt). +We use an example where the consumer inherits $a_0<0$. + +This can be interpreted as a student debt. The non-financial process $\{y_t\}_{t=0}^{T}$ is constant and positive up to $t=45$ and then becomes zero afterward. +The drop in non-financial income late in life reflects retirement from work. + ```{code-cell} ipython3 # Financial wealth a0 = -2 # such as "student debt" @@ -297,7 +317,7 @@ print('check a_T+1=0:', np.abs(a_seq[-1] - 0) <= 1e-8) ``` -The visualization shows the path of non-financial income, consumption, and financial assets. +The graphs below show paths of non-financial income, consumption, and financial assets. ```{code-cell} ipython3 # Sequence Length @@ -314,9 +334,9 @@ plt.ylabel(r'$c_t,y_t,a_t$') plt.show() ``` -Note that $a_{T+1} = 0$ is satisfied. +Note that $a_{T+1} = 0$, as anticipated. -We can further evaluate the welfare using the formula {eq}`welfare` +We can evaluate welfare criterion {eq}`welfare` ```{code-cell} ipython3 def welfare(model, c_seq): @@ -332,12 +352,12 @@ print('Welfare:', welfare(cs_model, c_seq)) ### Feasible consumption variations -Earlier, we had promised to present an argument that supports our claim that a constant consumption play $c_t = c_0$ for all +We promised to justify our claim that a constant consumption play $c_t = c_0$ for all $t$ is optimal. Let's do that now. -Although simple and direct, the approach we'll take is actually an example of what is called the "calculus of variations". +The approach we'll take is an elementary example of the "calculus of variations". Let's dive in and see what the key idea is. @@ -348,18 +368,20 @@ $$ \sum_{t=0}^T R^{-t} v_t = 0 $$ -This equation says that the **present value** of admissible variations must be zero. +This equation says that the **present value** of admissible consumption path variations must be zero. -(So once again, we encounter our formula for the present value of an "asset".) +So once again, we encounter a formula for the present value of an "asset": -Here we'll compute a two-parameter class of admissible variations + * we require that the present value of consumption path variations be zero. + +Here we'll restrict ourselves to a two-parameter class of admissible consumption path variations of the form $$ v_t = \xi_1 \phi^t - \xi_0 $$ -We say two and not three-parameter class because $\xi_0$ will be a function of $(\phi, \xi_1; R)$ that guarantees that the variation is feasible. +We say two and not three-parameter class because $\xi_0$ will be a function of $(\phi, \xi_1; R)$ that guarantees that the variation sequence is feasible. Let's compute that function. @@ -389,13 +411,13 @@ $$ This is our formula for $\xi_0$. -Evidently, if $c^o$ is a budget-feasible consumption path, then so is $c^o + v$, +**Key Idea:** if $c^o$ is a budget-feasible consumption path, then so is $c^o + v$, where $v$ is a budget-feasible variation. Given $R$, we thus have a two parameter class of budget feasible variations $v$ that we can use to compute alternative consumption paths, then evaluate their welfare. -Now let's compute and visualize the variations +Now let's compute and plot consumption path variations variations ```{code-cell} ipython3 def compute_variation(model, ξ1, ϕ, a0, y_seq, verbose=1): @@ -415,7 +437,7 @@ def compute_variation(model, ξ1, ϕ, a0, y_seq, verbose=1): +++ {"user_expressions": []} -We visualize variations with $\xi_1 \in \{.01, .05\}$ and $\phi \in \{.95, 1.02\}$ +We visualize variations for $\xi_1 \in \{.01, .05\}$ and $\phi \in \{.95, 1.02\}$ ```{code-cell} ipython3 fig, ax = plt.subplots() @@ -518,26 +540,25 @@ plt.show() ## Wrapping up the consumption-smoothing model -The consumption-smoothing model of Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) is a cornerstone of modern macro -that has important ramifications about the size of the Keynesian "fiscal policy multiplier" described briefly in +The consumption-smoothing model of Milton Friedman {cite}`Friedman1956` and Robert Hall {cite}`Hall1978`) is a cornerstone of modern macro that has important ramifications for the size of the Keynesian "fiscal policy multiplier" described briefly in quantecon lecture {doc}`geometric series `. -In particular, Milton Friedman and others showed that it **lowered** the fiscal policy multiplier relative to the one implied by -the simple Keynesian consumption function presented in {doc}`geometric series `. +In particular, it **lowers** the government expenditure multiplier relative to one implied by +the original Keynesian consumption function presented in {doc}`geometric series `. -Friedman and Hall's work opened the door to a lively literature on the aggregate consumption function and implied fiscal multipliers that -remains very active today. +Friedman's work opened the door to an enlighening literature on the aggregate consumption function and associated government expenditure multipliers that +remains active today. -## Difference equations with linear algebra +## Appendix: solving difference equations with linear algebra In the preceding sections we have used linear algebra to solve a consumption smoothing model. -The same tools from linear algebra -- matrix multiplication and matrix inversion -- can be used to study many other dynamic models too. +The same tools from linear algebra -- matrix multiplication and matrix inversion -- can be used to study many other dynamic models. -We'll concluse this lecture by giving a couple of examples. +We'll conclude this lecture by giving a couple of examples. -In particular, we'll describe a useful way of representing and "solving" linear difference equations. +We'll describe a useful way of representing and "solving" linear difference equations. To generate some $y$ vectors, we'll just write down a linear difference equation with appropriate initial conditions and then use linear algebra to solve it. @@ -570,10 +591,10 @@ y_1 \cr y_2 \cr y_3 \cr \vdots \cr y_T \begin{bmatrix} \lambda y_0 \cr 0 \cr 0 \cr \vdots \cr 0 \end{bmatrix} -$$ +$$ (eq:first_order_lin_diff) -Multiplying both sides by inverse of the matrix on the left provides the solution +Multiplying both sides of {eq}`eq:first_order_lin_diff` by the inverse of the matrix on the left provides the solution ```{math} :label: fst_ord_inverse @@ -597,7 +618,7 @@ y_1 \cr y_2 \cr y_3 \cr \vdots \cr y_T ```{exercise} :label: consmooth_ex1 -In the {eq}`fst_ord_inverse`, we multiply the inverse of the matrix $A$. In this exercise, please confirm that +To get {eq}`fst_ord_inverse`, we multiplied both sides of {eq}`eq:first_order_lin_diff` by the inverse of the matrix $A$. Please confirm that $$ \begin{bmatrix} diff --git a/lectures/pv.md b/lectures/pv.md index f4678a2a..c9923531 100644 --- a/lectures/pv.md +++ b/lectures/pv.md @@ -18,40 +18,73 @@ kernelspec: This lecture describes the **present value model** that is a starting point of much asset pricing theory. -We'll use the calculations described here in several subsequent lectures. +Asset pricing theory is a component of theories about many economic decisions including -Our only tool is some elementary linear algebra operations, namely, matrix multiplication and matrix inversion. + * consumption + * labor supply + * education choice + * demand for money + +In asset pricing theory, and in economic dynamics more generally, a basic topic is the relationship +among different **time series**. + +A **time series** is a **sequence** indexed by time. + +In this lecture, we'll represent a sequence as a vector. + +So our analysis will typically boil down to studying relationships among vectors. + +Our main tools in this lecture will be + + * matrix multiplication, and + * matrix inversion. + +We'll use the calculations described here in subsequent lectures, including {doc}`consumption smoothing `, {doc}`equalizing difference model `, and +{doc}`monetarist theory of price levels `. Let's dive in. +## Analysis + + + Let * $\{d_t\}_{t=0}^T $ be a sequence of dividends or "payouts" * $\{p_t\}_{t=0}^T $ be a sequence of prices of a claim on the continuation of - the asset stream from date $t$ on, namely, $\{d_s\}_{s=t}^T $ + the asset's payout stream from date $t$ on, namely, $\{d_s\}_{s=t}^T $ * $ \delta \in (0,1) $ be a one-period "discount factor" * $p_{T+1}^*$ be a terminal price of the asset at time $T+1$ We assume that the dividend stream $\{d_t\}_{t=0}^T $ and the terminal price $p_{T+1}^*$ are both exogenous. +This means that they are determined outside the model. + Assume the sequence of asset pricing equations $$ p_t = d_t + \delta p_{t+1}, \quad t = 0, 1, \ldots , T $$ (eq:Euler1) -This is a "cost equals benefits" formula. +We say equation**s**, plural, because there are $T+1$ equations, one for each $t =0, 1, \ldots, T$. + + +Equations {eq}`eq:Euler1` assert that price paid to purchase the asset at time $t$ equals the payout $d_t$ plus the price at time $t+1$ multiplied by a time discount factor $\delta$. -It says that the cost of buying the asset today equals the reward for holding it -for one period (which is the dividend $d_t$) and then selling it, at $t+1$. +Discounting tomorrow's price by multiplying it by $\delta$ accounts for the ``value of waiting one period''. -The future value $p_{t+1}$ is discounted using $\delta$ to shift it to a present value, so it is comparable with $d_t$ and $p_t$. +We want to solve the system of $T+1$ equations {eq}`eq:Euler1` for the asset price sequence $\{p_t\}_{t=0}^T $ as a function of the divident sequence $\{d_t\}_{t=0}^T $ and the exogenous terminal +price $p_{T+1}^*$. -We want to solve for the asset price sequence $\{p_t\}_{t=0}^T $ as a function -of $\{d_t\}_{t=0}^T $ and $p_{T+1}^*$. +A system of equations like {eq}`eq:Euler1` is an example of a linear **difference equation**. -In this lecture we show how this can be done using matrix algebra. +There are powerful mathematical methods available for solving such systems and they are well worth +studying in their own right, being the foundation for the analysis of many interesting economic models. + +For an example, see {doc}`Samuelson multiplier-accelerator ` + +In this lecture, we'll solve system {eq}`eq:Euler1` using matrix multiplication and matrix inversion, basic tools from linear algebra introduced in {doc}`linear equations and matrix algebra `. We will use the following imports @@ -64,9 +97,9 @@ import matplotlib.pyplot as plt +++ -## Present value calculations +## Representing sequences as vectors -The equations in [](eq:Euler1) can be stacked, as in +The equations in system {eq}`eq:Euler1` can be arranged as follows: $$ \begin{aligned} @@ -109,7 +142,7 @@ recover the equations in [](eq:Euler_stack). ```{exercise-end} ``` -In vector-matrix notation, we can write the system [](eq:pvpieq) as +In vector-matrix notation, we can write system {eq}`eq:pvpieq` as $$ A p = d + b @@ -143,19 +176,20 @@ $$ \end{bmatrix} $$ -The solution for prices is given by +The solution for the vector of prices is $$ p = A^{-1}(d + b) $$ (eq:apdb_sol) -Here is a small example, where the dividend stream is given by +For example, suppose that the dividend stream is $$ d_{t+1} = 1.05 d_t, \quad t = 0, 1, \ldots , T-1. $$ +Let's write Python code to compute and plot the dividend stream. ```{code-cell} ipython3 T = 6 @@ -171,6 +205,7 @@ ax.legend() ax.set_xlabel('time') plt.show() ``` +Now let's compute and plot the asset price. We set $\delta$ and $p_{T+1}^*$ to @@ -198,7 +233,7 @@ Let's inspect $A$ A ``` -Now let's solve for prices using [](eq:apdb_sol). +Now let's solve for prices using {eq}`eq:apdb_sol`. ```{code-cell} ipython3 b = np.zeros(T+1) @@ -212,7 +247,7 @@ plt.show() ``` -We can also consider a cyclically growing dividend sequence, such as +Now let's consider a cyclically growing dividend sequence: $$ d_{t+1} = 1.01 d_t + 0.1 \sin t, \quad t = 0, 1, \ldots , T-1. @@ -248,7 +283,7 @@ Compute the corresponding asset price sequence when $p^*_{T+1} = 0$ and $\delta :class: dropdown ``` -We proceed as above after modifying parameters and $A$. +We proceed as above after modifying parameters and consequently the matrix $A$. ```{code-cell} ipython3 δ = 0.98 @@ -281,6 +316,8 @@ eliminates the cycles. ## Analytical expressions +By the [inverse matrix theorem](https://en.wikipedia.org/wiki/Invertible_matrix), a matrix $B$ is the inverse of $A$ whenever $A B$ is the identity. + It can be verified that the inverse of the matrix $A$ in {eq}`eq:pvpieq` is @@ -302,13 +339,13 @@ $$ (eq:Ainv) Check this by showing that $A A^{-1}$ is equal to the identity matrix. -(By the [inverse matrix theorem](https://en.wikipedia.org/wiki/Invertible_matrix), a matrix $B$ is the inverse of $A$ whenever $A B$ is the identity.) + ```{exercise-end} ``` -If we use the expression [](eq:Ainv) in [](eq:apdb_sol) and perform the indicated matrix multiplication, we shall find that +If we use the expression {eq}`eq:Ainv` in {eq}`eq:apdb_sol` and perform the indicated matrix multiplication, we shall find that $$ p_t = \sum_{s=t}^T \delta^{s-t} d_s + \delta^{T+1-t} p_{T+1}^* @@ -317,12 +354,12 @@ $$ (eq:ptpveq) Pricing formula {eq}`eq:ptpveq` asserts that two components sum to the asset price $p_t$: - * a **fundamental component** $\sum_{s=t}^T \delta^{s-t} d_s$ that equals the discounted present value of prospective dividends + * a **fundamental component** $\sum_{s=t}^T \delta^{s-t} d_s$ that equals the **discounted present value** of prospective dividends * a **bubble component** $\delta^{T+1-t} p_{T+1}^*$ The fundamental component is pinned down by the discount factor $\delta$ and the -"fundamentals" of the asset (in this case, the dividends). +payout of the asset (in this case, dividends). The bubble component is the part of the price that is not pinned down by fundamentals. @@ -343,7 +380,7 @@ $$ ## More about bubbles -For a few moments, let's focus on the special case of an asset that will never pay dividends, in which case +For a few moments, let's focus on the special case of an asset that never pays dividends, in which case $$ \begin{bmatrix} @@ -385,8 +422,9 @@ $$ (eq:eqbubbleterm) for some positive constant $c$. -In this case, it can be verified that when we multiply both sides of {eq}`eq:pieq2` by -the matrix $A^{-1}$ presented in equation {eq}`eq:Ainv`, we shall find that +In this case, when we multiply both sides of {eq}`eq:pieq2` by +the matrix $A^{-1}$ presented in equation {eq}`eq:Ainv`, we + find that $$ p_t = c \delta^{-t} @@ -402,11 +440,10 @@ $$ R_t = \frac{p_{t+1}}{p_t} $$ (eq:rateofreturn) -Equation {eq}`eq:bubble` confirms that an asset whose sole source of value is a bubble -that earns a gross rate of return +Substituting equation {eq}`eq:bubble` into equation {eq}`eq:rateofreturn` confirms that an asset whose sole source of value is a bubble earns a gross rate of return $$ -R_t = \delta^{-1} > 1 . +R_t = \delta^{-1} > 1 , t = 0, 1, \ldots, T $$ @@ -417,7 +454,7 @@ $$ :label: pv_ex_a ``` -Give analytical expressions for the asset price $p_t$ under the +Give analytical expressions for an asset price $p_t$ under the following settings for $d$ and $p_{T+1}^*$: 1. $p_{T+1}^* = 0, d_t = g^t d_0$ (a modified version of the Gordon growth formula) From dfd749d560a6db74d43af1e40c947d982d8ee05c Mon Sep 17 00:00:00 2001 From: Humphrey Yang <39026988+HumphreyYang@users.noreply.github.com> Date: Mon, 5 Feb 2024 10:27:16 +1100 Subject: [PATCH 2/3] Add Admonitions for Migrated Lectures (#340) * update admonitions for migrated lectures * update migration admonition for schelling * remove contents tags * migrate complex_and_trig lecture * update migration taf for scalar_dynam * update config and intersphinx * merge main and fix pv intersphinx --- lectures/_config.yml | 27 +- lectures/_toc.yml | 1 + lectures/complex_and_trig.md | 530 +++++++++++++++++++++++++++++++++++ lectures/geom_series.md | 6 +- lectures/lp_intro.md | 6 + lectures/pv.md | 2 +- lectures/scalar_dynam.md | 6 + lectures/schelling.md | 6 + lectures/short_path.md | 6 + 9 files changed, 586 insertions(+), 4 deletions(-) create mode 100644 lectures/complex_and_trig.md diff --git a/lectures/_config.yml b/lectures/_config.yml index 4e8c9093..6b99e06b 100644 --- a/lectures/_config.yml +++ b/lectures/_config.yml @@ -35,7 +35,7 @@ latex: targetname: quantecon-python-intro.tex sphinx: - extra_extensions: [sphinx_multitoc_numbering, sphinxext.rediraffe, sphinx_exercise, sphinx_togglebutton, sphinx_proof, sphinx_tojupyter] + extra_extensions: [sphinx_multitoc_numbering, sphinxext.rediraffe, sphinx_exercise, sphinx_togglebutton, sphinx.ext.intersphinx, sphinx_proof, sphinx_tojupyter] config: # false-positive links linkcheck_ignore: ['https://doi.org/https://doi.org/10.2307/1235116'] @@ -68,6 +68,31 @@ sphinx: binderhub_url : https://mybinder.org # The URL of the BinderHub (e.g., https://mybinder.org) colab_url : https://colab.research.google.com thebe : false # Add a thebe button to pages (requires the repository to run on Binder) + intersphinx_mapping: + pyprog: + - https://python-programming.quantecon.org/ + - null + intro: + - https://intro.quantecon.org/ + - null + dle: + - https://quantecon.github.io/lecture-dle/ + - null + dps: + - https://quantecon.github.io/lecture-dps/ + - null + eqm: + - https://quantecon.github.io/lecture-eqm/ + - null + stats: + - https://quantecon.github.io/lecture-stats/ + - null + tools: + - https://quantecon.github.io/lecture-tools-techniques/ + - null + dynam: + - https://quantecon.github.io/lecture-dynamics/ + - null mathjax3_config: tex: macros: diff --git a/lectures/_toc.yml b/lectures/_toc.yml index 04d3b875..8a9ba039 100644 --- a/lectures/_toc.yml +++ b/lectures/_toc.yml @@ -14,6 +14,7 @@ parts: - caption: Essential Tools numbered: true chapters: + - file: complex_and_trig - file: linear_equations - file: eigen_I - file: intro_supply_demand diff --git a/lectures/complex_and_trig.md b/lectures/complex_and_trig.md new file mode 100644 index 00000000..a8ebb1bb --- /dev/null +++ b/lectures/complex_and_trig.md @@ -0,0 +1,530 @@ +--- +jupytext: + text_representation: + extension: .md + format_name: myst +kernelspec: + display_name: Python 3 + language: python + name: python3 +--- + +(complex_and_trig)= +```{raw} html +

+``` + +```{index} single: python +``` + +# Complex Numbers and Trigonometry + +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). +``` + +## Overview + +This lecture introduces some elementary mathematics and trigonometry. + +Useful and interesting in its own right, these concepts reap substantial rewards when studying dynamics generated +by linear difference equations or linear differential equations. + +For example, these tools are keys to understanding outcomes attained by Paul +Samuelson (1939) {cite}`Samuelson1939` in his classic paper on interactions +between the investment accelerator and the Keynesian consumption function, our +topic in the lecture {doc}`Samuelson Multiplier Accelerator `. + +In addition to providing foundations for Samuelson's work and extensions of +it, this lecture can be read as a stand-alone quick reminder of key results +from elementary high school trigonometry. + +So let's dive in. + +### Complex Numbers + +A complex number has a **real part** $x$ and a purely **imaginary part** $y$. + +The Euclidean, polar, and trigonometric forms of a complex number $z$ are: + +$$ +z = x + iy = re^{i\theta} = r(\cos{\theta} + i \sin{\theta}) +$$ + +The second equality above is known as **Euler's formula** + +- [Euler](https://en.wikipedia.org/wiki/Leonhard_Euler) contributed many other formulas too! + +The complex conjugate $\bar z$ of $z$ is defined as + +$$ +\bar z = x - iy = r e^{-i \theta} = r (\cos{\theta} - i \sin{\theta} ) +$$ + +The value $x$ is the **real** part of $z$ and $y$ is the +**imaginary** part of $z$. + +The symbol $| z |$ = $\sqrt{\bar{z}\cdot z} = r$ represents the **modulus** of $z$. + +The value $r$ is the Euclidean distance of vector $(x,y)$ from the +origin: + +$$ +r = |z| = \sqrt{x^2 + y^2} +$$ + +The value $\theta$ is the angle of $(x,y)$ with respect to the real axis. + +Evidently, the tangent of $\theta$ is $\left(\frac{y}{x}\right)$. + +Therefore, + +$$ +\theta = \tan^{-1} \Big( \frac{y}{x} \Big) +$$ + +Three elementary trigonometric functions are + +$$ +\cos{\theta} = \frac{x}{r} = \frac{e^{i\theta} + e^{-i\theta}}{2} , \quad +\sin{\theta} = \frac{y}{r} = \frac{e^{i\theta} - e^{-i\theta}}{2i} , \quad +\tan{\theta} = \frac{y}{x} +$$ + +We'll need the following imports: + +```{code-cell} ipython +import matplotlib.pyplot as plt +plt.rcParams["figure.figsize"] = (11, 5) #set default figure size +import numpy as np +from sympy import (Symbol, symbols, Eq, nsolve, sqrt, cos, sin, simplify, + init_printing, integrate) +``` + +### An Example + +Consider the complex number $z = 1 + \sqrt{3} i$. + +For $z = 1 + \sqrt{3} i$, $x = 1$, $y = \sqrt{3}$. + +It follows that $r = 2$ and +$\theta = \tan^{-1}(\sqrt{3}) = \frac{\pi}{3} = 60^o$. + +Let's use Python to plot the trigonometric form of the complex number +$z = 1 + \sqrt{3} i$. + +```{code-cell} python3 +# Abbreviate useful values and functions +π = np.pi + + +# Set parameters +r = 2 +θ = π/3 +x = r * np.cos(θ) +x_range = np.linspace(0, x, 1000) +θ_range = np.linspace(0, θ, 1000) + +# Plot +fig = plt.figure(figsize=(8, 8)) +ax = plt.subplot(111, projection='polar') + +ax.plot((0, θ), (0, r), marker='o', color='b') # Plot r +ax.plot(np.zeros(x_range.shape), x_range, color='b') # Plot x +ax.plot(θ_range, x / np.cos(θ_range), color='b') # Plot y +ax.plot(θ_range, np.full(θ_range.shape, 0.1), color='r') # Plot θ + +ax.margins(0) # Let the plot starts at origin + +ax.set_title("Trigonometry of complex numbers", va='bottom', + fontsize='x-large') + +ax.set_rmax(2) +ax.set_rticks((0.5, 1, 1.5, 2)) # Less radial ticks +ax.set_rlabel_position(-88.5) # Get radial labels away from plotted line + +ax.text(θ, r+0.01 , r'$z = x + iy = 1 + \sqrt{3}\, i$') # Label z +ax.text(θ+0.2, 1 , '$r = 2$') # Label r +ax.text(0-0.2, 0.5, '$x = 1$') # Label x +ax.text(0.5, 1.2, r'$y = \sqrt{3}$') # Label y +ax.text(0.25, 0.15, r'$\theta = 60^o$') # Label θ + +ax.grid(True) +plt.show() +``` + +## De Moivre's Theorem + +de Moivre's theorem states that: + +$$ +(r(\cos{\theta} + i \sin{\theta}))^n = +r^n e^{in\theta} = +r^n(\cos{n\theta} + i \sin{n\theta}) +$$ + +To prove de Moivre's theorem, note that + +$$ +(r(\cos{\theta} + i \sin{\theta}))^n = \big( re^{i\theta} \big)^n +$$ + +and compute. + +## Applications of de Moivre's Theorem + +### Example 1 + +We can use de Moivre's theorem to show that +$r = \sqrt{x^2 + y^2}$. + +We have + +$$ +\begin{aligned} +1 &= e^{i\theta} e^{-i\theta} \\ +&= (\cos{\theta} + i \sin{\theta})(\cos{(\text{-}\theta)} + i \sin{(\text{-}\theta)}) \\ +&= (\cos{\theta} + i \sin{\theta})(\cos{\theta} - i \sin{\theta}) \\ +&= \cos^2{\theta} + \sin^2{\theta} \\ +&= \frac{x^2}{r^2} + \frac{y^2}{r^2} +\end{aligned} +$$ + +and thus + +$$ +x^2 + y^2 = r^2 +$$ + +We recognize this as a theorem of **Pythagoras**. + +### Example 2 + +Let $z = re^{i\theta}$ and $\bar{z} = re^{-i\theta}$ so that $\bar{z}$ is the **complex conjugate** of $z$. + +$(z, \bar z)$ form a **complex conjugate pair** of complex numbers. + +Let $a = pe^{i\omega}$ and $\bar{a} = pe^{-i\omega}$ be +another complex conjugate pair. + +For each element of a sequence of integers $n = 0, 1, 2, \ldots, $. + +To do so, we can apply de Moivre's formula. + +Thus, + +$$ +\begin{aligned} +x_n &= az^n + \bar{a}\bar{z}^n \\ +&= p e^{i\omega} (re^{i\theta})^n + p e^{-i\omega} (re^{-i\theta})^n \\ +&= pr^n e^{i (\omega + n\theta)} + pr^n e^{-i (\omega + n\theta)} \\ +&= pr^n [\cos{(\omega + n\theta)} + i \sin{(\omega + n\theta)} + + \cos{(\omega + n\theta)} - i \sin{(\omega + n\theta)}] \\ +&= 2 pr^n \cos{(\omega + n\theta)} +\end{aligned} +$$ + +### Example 3 + +This example provides machinery that is at the heard of Samuelson's analysis of his multiplier-accelerator model {cite}`Samuelson1939`. + +Thus, consider a **second-order linear difference equation** + +$$ +x_{n+2} = c_1 x_{n+1} + c_2 x_n +$$ + +whose **characteristic polynomial** is + +$$ +z^2 - c_1 z - c_2 = 0 +$$ + +or + +$$ +(z^2 - c_1 z - c_2 ) = (z - z_1)(z- z_2) = 0 +$$ + +has roots $z_1, z_1$. + +A **solution** is a sequence $\{x_n\}_{n=0}^\infty$ that satisfies +the difference equation. + +Under the following circumstances, we can apply our example 2 formula to +solve the difference equation + +- the roots $z_1, z_2$ of the characteristic polynomial of the + difference equation form a complex conjugate pair +- the values $x_0, x_1$ are given initial conditions + +To solve the difference equation, recall from example 2 that + +$$ +x_n = 2 pr^n \cos{(\omega + n\theta)} +$$ + +where $\omega, p$ are coefficients to be determined from +information encoded in the initial conditions $x_1, x_0$. + +Since +$x_0 = 2 p \cos{\omega}$ and $x_1 = 2 pr \cos{(\omega + \theta)}$ +the ratio of $x_1$ to $x_0$ is + +$$ +\frac{x_1}{x_0} = \frac{r \cos{(\omega + \theta)}}{\cos{\omega}} +$$ + +We can solve this equation for $\omega$ then solve for $p$ using $x_0 = 2 pr^0 \cos{(\omega + n\theta)}$. + +With the `sympy` package in Python, we are able to solve and plot the +dynamics of $x_n$ given different values of $n$. + +In this example, we set the initial values: - $r = 0.9$ - +$\theta = \frac{1}{4}\pi$ - $x_0 = 4$ - +$x_1 = r \cdot 2\sqrt{2} = 1.8 \sqrt{2}$. + +We first numerically solve for $\omega$ and $p$ using +`nsolve` in the `sympy` package based on the above initial +condition: + +```{code-cell} python3 +# Set parameters +r = 0.9 +θ = π/4 +x0 = 4 +x1 = 2 * r * sqrt(2) + +# Define symbols to be calculated +ω, p = symbols('ω p', real=True) + +# Solve for ω +## Note: we choose the solution near 0 +eq1 = Eq(x1/x0 - r * cos(ω+θ) / cos(ω), 0) +ω = nsolve(eq1, ω, 0) +ω = float(ω) +print(f'ω = {ω:1.3f}') + +# Solve for p +eq2 = Eq(x0 - 2 * p * cos(ω), 0) +p = nsolve(eq2, p, 0) +p = float(p) +print(f'p = {p:1.3f}') +``` + +Using the code above, we compute that +$\omega = 0$ and $p = 2$. + +Then we plug in the values we solve for $\omega$ and $p$ +and plot the dynamic. + +```{code-cell} python3 +# Define range of n +max_n = 30 +n = np.arange(0, max_n+1, 0.01) + +# Define x_n +x = lambda n: 2 * p * r**n * np.cos(ω + n * θ) + +# Plot +fig, ax = plt.subplots(figsize=(12, 8)) + +ax.plot(n, x(n)) +ax.set(xlim=(0, max_n), ylim=(-5, 5), xlabel='$n$', ylabel='$x_n$') + +# Set x-axis in the middle of the plot +ax.spines['bottom'].set_position('center') +ax.spines['right'].set_color('none') +ax.spines['top'].set_color('none') +ax.xaxis.set_ticks_position('bottom') +ax.yaxis.set_ticks_position('left') + +ticklab = ax.xaxis.get_ticklabels()[0] # Set x-label position +trans = ticklab.get_transform() +ax.xaxis.set_label_coords(31, 0, transform=trans) + +ticklab = ax.yaxis.get_ticklabels()[0] # Set y-label position +trans = ticklab.get_transform() +ax.yaxis.set_label_coords(0, 5, transform=trans) + +ax.grid() +plt.show() +``` + +### Trigonometric Identities + +We can obtain a complete suite of trigonometric identities by +appropriately manipulating polar forms of complex numbers. + +We'll get many of them by deducing implications of the equality + +$$ +e^{i(\omega + \theta)} = e^{i\omega} e^{i\theta} +$$ + +For example, we'll calculate identities for + +$\cos{(\omega + \theta)}$ and $\sin{(\omega + \theta)}$. + +Using the sine and cosine formulas presented at the beginning of this +lecture, we have: + +$$ +\begin{aligned} +\cos{(\omega + \theta)} = \frac{e^{i(\omega + \theta)} + e^{-i(\omega + \theta)}}{2} \\ +\sin{(\omega + \theta)} = \frac{e^{i(\omega + \theta)} - e^{-i(\omega + \theta)}}{2i} +\end{aligned} +$$ + +We can also obtain the trigonometric identities as follows: + +$$ +\begin{aligned} +\cos{(\omega + \theta)} + i \sin{(\omega + \theta)} +&= e^{i(\omega + \theta)} \\ +&= e^{i\omega} e^{i\theta} \\ +&= (\cos{\omega} + i \sin{\omega})(\cos{\theta} + i \sin{\theta}) \\ +&= (\cos{\omega}\cos{\theta} - \sin{\omega}\sin{\theta}) + +i (\cos{\omega}\sin{\theta} + \sin{\omega}\cos{\theta}) +\end{aligned} +$$ + +Since both real and imaginary parts of the above formula should be +equal, we get: + +$$ +\begin{aligned} +\cos{(\omega + \theta)} = \cos{\omega}\cos{\theta} - \sin{\omega}\sin{\theta} \\ +\sin{(\omega + \theta)} = \cos{\omega}\sin{\theta} + \sin{\omega}\cos{\theta} +\end{aligned} +$$ + +The equations above are also known as the **angle sum identities**. We +can verify the equations using the `simplify` function in the +`sympy` package: + +```{code-cell} python3 +# Define symbols +ω, θ = symbols('ω θ', real=True) + +# Verify +print("cos(ω)cos(θ) - sin(ω)sin(θ) =", + simplify(cos(ω)*cos(θ) - sin(ω) * sin(θ))) +print("cos(ω)sin(θ) + sin(ω)cos(θ) =", + simplify(cos(ω)*sin(θ) + sin(ω) * cos(θ))) +``` + +### Trigonometric Integrals + +We can also compute the trigonometric integrals using polar forms of +complex numbers. + +For example, we want to solve the following integral: + +$$ +\int_{-\pi}^{\pi} \cos(\omega) \sin(\omega) \, d\omega +$$ + +Using Euler's formula, we have: + +$$ +\begin{aligned} +\int \cos(\omega) \sin(\omega) \, d\omega +&= +\int +\frac{(e^{i\omega} + e^{-i\omega})}{2} +\frac{(e^{i\omega} - e^{-i\omega})}{2i} +\, d\omega \\ +&= +\frac{1}{4i} +\int +e^{2i\omega} - e^{-2i\omega} +\, d\omega \\ +&= +\frac{1}{4i} +\bigg( \frac{-i}{2} e^{2i\omega} - \frac{i}{2} e^{-2i\omega} + C_1 \bigg) \\ +&= +-\frac{1}{8} +\bigg[ \bigg(e^{i\omega}\bigg)^2 + \bigg(e^{-i\omega}\bigg)^2 - 2 \bigg] + C_2 \\ +&= +-\frac{1}{8} (e^{i\omega} - e^{-i\omega})^2 + C_2 \\ +&= +\frac{1}{2} \bigg( \frac{e^{i\omega} - e^{-i\omega}}{2i} \bigg)^2 + C_2 \\ +&= \frac{1}{2} \sin^2(\omega) + C_2 +\end{aligned} +$$ + +and thus: + +$$ +\int_{-\pi}^{\pi} \cos(\omega) \sin(\omega) \, d\omega = +\frac{1}{2}\sin^2(\pi) - \frac{1}{2}\sin^2(-\pi) = 0 +$$ + +We can verify the analytical as well as numerical results using +`integrate` in the `sympy` package: + +```{code-cell} python3 +# Set initial printing +init_printing() + +ω = Symbol('ω') +print('The analytical solution for integral of cos(ω)sin(ω) is:') +integrate(cos(ω) * sin(ω), ω) +``` + +```{code-cell} python3 +print('The numerical solution for the integral of cos(ω)sin(ω) \ +from -π to π is:') +integrate(cos(ω) * sin(ω), (ω, -π, π)) +``` + +### Exercises + +```{exercise} +:label: complex_ex1 + +We invite the reader to verify analytically and with the `sympy` package the following two equalities: + +$$ +\int_{-\pi}^{\pi} \cos (\omega)^2 \, d\omega = \pi +$$ + +$$ +\int_{-\pi}^{\pi} \sin (\omega)^2 \, d\omega = \pi +$$ +``` + +```{solution-start} complex_ex1 +:class: dropdown +``` + +Let's import symbolic $\pi$ from `sympy` + +```{code-cell} ipython3 +# Import symbolic π from sympy +from sympy import pi +``` + +```{code-cell} ipython3 +print('The analytical solution for the integral of cos(ω)**2 \ +from -π to π is:') + +integrate(cos(ω)**2, (ω, -pi, pi)) +``` + +```{code-cell} ipython3 +print('The analytical solution for the integral of sin(ω)**2 \ +from -π to π is:') + +integrate(sin(ω)**2, (ω, -pi, pi)) +``` + +```{solution-end} +``` diff --git a/lectures/geom_series.md b/lectures/geom_series.md index 3d9bfe70..af7ec7b8 100644 --- a/lectures/geom_series.md +++ b/lectures/geom_series.md @@ -25,8 +25,10 @@ kernelspec: # Geometric Series for Elementary Economics -```{contents} Contents -:depth: 2 +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). ``` ## Overview diff --git a/lectures/lp_intro.md b/lectures/lp_intro.md index 8f2c02af..26896607 100644 --- a/lectures/lp_intro.md +++ b/lectures/lp_intro.md @@ -12,6 +12,12 @@ kernelspec: (lp_intro)= # Linear Programming +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). +``` + In this lecture, we will need the following library. Install [ortools](https://developers.google.com/optimization) using `pip`. ```{code-cell} ipython3 diff --git a/lectures/pv.md b/lectures/pv.md index c9923531..7bdfa0fc 100644 --- a/lectures/pv.md +++ b/lectures/pv.md @@ -82,7 +82,7 @@ A system of equations like {eq}`eq:Euler1` is an example of a linear **differen There are powerful mathematical methods available for solving such systems and they are well worth studying in their own right, being the foundation for the analysis of many interesting economic models. -For an example, see {doc}`Samuelson multiplier-accelerator ` +For an example, see {doc}`Samuelson multiplier-accelerator ` In this lecture, we'll solve system {eq}`eq:Euler1` using matrix multiplication and matrix inversion, basic tools from linear algebra introduced in {doc}`linear equations and matrix algebra `. diff --git a/lectures/scalar_dynam.md b/lectures/scalar_dynam.md index bfb1274e..864cb54d 100644 --- a/lectures/scalar_dynam.md +++ b/lectures/scalar_dynam.md @@ -20,6 +20,12 @@ kernelspec: (scalar_dynam)= # Dynamics in One Dimension +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). +``` + ## Overview In this lecture we give a quick introduction to discrete time dynamics in one dimension. diff --git a/lectures/schelling.md b/lectures/schelling.md index 94dd0987..1bdc9004 100644 --- a/lectures/schelling.md +++ b/lectures/schelling.md @@ -28,6 +28,12 @@ kernelspec: ```{index} single: Models; Schelling's Segregation Model ``` +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). +``` + ## Outline In 1969, Thomas C. Schelling developed a simple but striking model of racial diff --git a/lectures/short_path.md b/lectures/short_path.md index d9eb0771..68ab9e97 100644 --- a/lectures/short_path.md +++ b/lectures/short_path.md @@ -23,6 +23,12 @@ kernelspec: ```{index} single: Dynamic Programming; Shortest Paths ``` +```{admonition} Migrated lecture +:class: warning + +This lecture has moved from our [Intermediate Quantitative Economics with Python](https://python.quantecon.org/intro.html) lecture series and is now a part of [A First Course in Quantitative Economics](https://intro.quantecon.org/intro.html). +``` + ## Overview The shortest path problem is a [classic problem](https://en.wikipedia.org/wiki/Shortest_path) in mathematics and computer science with applications in From 43fd5a3ba220286b454977ff3f2631ab2b662ba3 Mon Sep 17 00:00:00 2001 From: thomassargent30 Date: Mon, 5 Feb 2024 09:12:38 +0800 Subject: [PATCH 3/3] Tom's edits of three more lectures in intro repo --- lectures/cagan_ree.md | 35 ++++---- lectures/equalizing_difference.md | 85 +++++++++++-------- lectures/inflation_history.md | 130 +++++++++++++++++------------- 3 files changed, 142 insertions(+), 108 deletions(-) diff --git a/lectures/cagan_ree.md b/lectures/cagan_ree.md index 2ae3e749..4273c69c 100644 --- a/lectures/cagan_ree.md +++ b/lectures/cagan_ree.md @@ -13,23 +13,26 @@ kernelspec: # A Monetarist Theory of Price Levels -## Introduction +## Overview We'll use linear algebra first to explain and then do some experiments with a "monetarist theory of price levels". -Sometimes this theory is also called a "fiscal theory of price levels". -Such a theory of price levels was described by Thomas Sargent and Neil Wallace in chapter 5 of -{cite}`sargent2013rational`, which reprints a 1981 Federal Reserve Bank of Minneapolis article entitled "Unpleasant Monetarist Arithmetic". + -Sometimes people call it a "monetary" or "monetarist" theory of price levels because fiscal effects on price levels occur through the effects of government fiscal policy decisions on the path of the money supply. +Economist call it a "monetary" or "monetarist" theory of price levels because effects on price levels occur via a central banks's decisions to print money supply. * a goverment's fiscal policies determine whether it **expenditures** exceed its **tax collections** - * if its expenditures exceeds it tax collections, it can cover the difference by **printing money** + * if its expenditures exceeds it tax collections, the government can instruct the central bank to cover the difference by **printing money** * that leads to effects on the price level as price level path adjusts to equate the supply of money to the demand for money -The theory has been extended, criticized, and applied by John Cochrane in {cite}`cochrane2023fiscal`. +Such a theory of price levels was described by Thomas Sargent and Neil Wallace in chapter 5 of +{cite}`sargent2013rational`, which reprints a 1981 Federal Reserve Bank of Minneapolis article entitled "Unpleasant Monetarist Arithmetic". + +Sometimes this theory is also called a "fiscal theory of price levels" to emphasize the importance of fisal deficits in shaping changes in the money supply. + +The theory has been extended, criticized, and applied by John Cochrane {cite}`cochrane2023fiscal`. In another lecture {doc}`price level histories `, we described some European hyperinflations that occurred in the wake of World War I. @@ -39,29 +42,29 @@ Elemental forces at work in the fiscal theory of the price level help to underst According to this theory, when the government persistently spends more than it collects in taxes and prints money to finance the shortfall (the "shortfall" is called the "government deficit"), it puts upward pressure on the price level and generates persistent inflation. -The "monetarist or fiscal theory of price levels" asserts that +The ''monetarist'' or ''fiscal theory of price levels" asserts that -* to **start** a persistent inflation the government simply persistently runs a money-financed government deficit +* to **start** a persistent inflation the government beings persistently to run a money-financed government deficit -* to **stop** a persistent inflation the government simply stops persistently running a money-financed government deficit +* to **stop** a persistent inflation the government stops persistently running a money-financed government deficit -Our model is a "rational expectations" (or "perfect foresight") version of a model that Philip Cagan {cite}`Cagan` used to study the monetary dynamics of hyperinflations. +The model in this lecture is a "rational expectations" (or "perfect foresight") version of a model that Philip Cagan {cite}`Cagan` used to study the monetary dynamics of hyperinflations. While Cagan didn't use that "rational expectations" version of the model, Thomas Sargent {cite}`sargent1982ends` did when he studied the Ends of Four Big Inflations in Europe after World War I. * this lecture {doc}`fiscal theory of the price level with adaptive expectations ` describes a version of the model that does not impose "rational expectations" but instead uses what Cagan and his teacher Milton Friedman called "adaptive expectations" - * a reader of both lectures will notice that the algebra is easier and more streamlined in the present rational expectations version of the model - * this can be traced to the following source: the adaptive expectations version of the model has more endogenous variables and more free parameters + * a reader of both lectures will notice that the algebra is less complicated in the present rational expectations version of the model + * the difference in algebra complications can be traced to the following source: the adaptive expectations version of the model has more endogenous variables and more free parameters -Some of our quantitative experiments with our rational expectations version of the model are designed to illustrate how the fiscal theory explains the abrupt end of those big inflations. +Some of our quantitative experiments with the rational expectations version of the model are designed to illustrate how the fiscal theory explains the abrupt end of those big inflations. In those experiments, we'll encounter an instance of a ''velocity dividend'' that has sometimes accompanied successful inflation stabilization programs. To facilitate using linear matrix algebra as our main mathematical tool, we'll use a finite horizon version of the model. -As in the {doc}`present values ` and {doc}`consumption smoothing` lectures, the only linear algebra that we'll be using are matrix multiplication and matrix inversion. +As in the {doc}`present values ` and {doc}`consumption smoothing` lectures, our mathematical tools are matrix multiplication and matrix inversion. ## Structure of the model @@ -71,7 +74,7 @@ The model consists of * a function that expresses the demand for real balances of government printed money as an inverse function of the public's expected rate of inflation -* an exogenous sequence of rates of growth of the money supply. The money supply grows because the government is printing it to finance some of its expenditures +* an exogenous sequence of rates of growth of the money supply. The money supply grows because the government prints it to pay for goods and services * an equilibrium condition that equates the demand for money to the supply diff --git a/lectures/equalizing_difference.md b/lectures/equalizing_difference.md index bb95bf75..623367cc 100644 --- a/lectures/equalizing_difference.md +++ b/lectures/equalizing_difference.md @@ -18,27 +18,30 @@ kernelspec: This lecture presents a model of the college-high-school wage gap in which the "time to build" a college graduate plays a key role. -```{note} -Milton Friedman used our model to study whether differences in the earnings of US dentists and doctors were justified by competitive labor markets or whether -they reflected entry barriers imposed by US governments working in conjunction with doctors' lobbies. Chapter 4 of Jennifer Burns {cite}`Burns_2023` presents an -interesting account of Milton Friedman's joint work with Simon Kuznets that eventually led to the publication of {cite}`kuznets1939incomes` and {cite}`friedman1954incomes`. To map Friedman's application to our model, think of our high school students as Friedman's dentists and our college graduates as Friedman's doctors. -``` -The model is "incomplete" in the sense that it is just one "condition" in the form of a single equation that would be part of set equations comprising all "equilibrium conditions" of a more fully articulated model. +Milton Friedman invented the model to study whether differences in earnings of US dentists and doctors were outcomes of competitive labor markets or whether +they reflected entry barriers imposed by governments working in conjunction with doctors' professional organizations. + +Chapter 4 of Jennifer Burns {cite}`Burns_2023` describes Milton Friedman's joint work with Simon Kuznets that eventually led to the publication of {cite}`kuznets1939incomes` and {cite}`friedman1954incomes`. + +To map Friedman's application into our model, think of our high school students as Friedman's dentists and our college graduates as Friedman's doctors. + -The condition featured in our model determines a college, high-school wage ratio that equalizes the present values of a high school worker and a college educated worker. +Our presentation is "incomplete" in the sense that it is based on a single equation that would be part of set equilibrium conditions of a more fully articulated model. -The idea behind this condition is that lifetime earnings have to adjust to make someone indifferent between going to college and not going to college. +This ''equalizing difference'' equation determines a college, high-school wage ratio that equalizes present values of a high school educated worker and a college educated worker. -(The job of the "other equations" in a more complete model would be to fill in details about what adjusts to bring about this outcome.) +The idea is that lifetime earnings somehow adjust to make a new high school worker indifferent between going to college and not going to college but instead going to work immmediately. -It is just one instance of an "equalizing difference" theory of relative wage rates, a class of theories dating back at least to Adam Smith's **Wealth of Nations** {cite}`smith2010wealth`. +(The job of the "other equations" in a more complete model would be to describe what adjusts to bring about this outcome.) + +Our model is just one example of an "equalizing difference" theory of relative wage rates, a class of theories dating back at least to Adam Smith's **Wealth of Nations** {cite}`smith2010wealth`. For most of this lecture, the only mathematical tools that we'll use are from linear algebra, in particular, matrix multiplication and matrix inversion. -However, at the very end of the lecture, we'll use calculus just in case readers want to see how computing partial derivatives could let us present some findings more concisely. +However, near the end of the lecture, we'll use calculus just in case readers want to see how computing partial derivatives could let us present some findings more concisely. -(And doing that will let us show off how good Python is at doing calculus!) +And doing that will let illustrate how good Python is at doing calculus! But if you don't know calculus, our tools from linear algebra are certainly enough. @@ -51,7 +54,7 @@ import matplotlib.pyplot as plt ## The indifference condition -The key idea is that the initial college wage premium has to adjust to make a representative worker indifferent between going to college and not going to college. +The key idea is that the entry level college wage premium has to adjust to make a representative worker indifferent between going to college and not going to college. Let @@ -59,7 +62,7 @@ Let * $t = 0, 1, 2, \ldots T$ denote the years that a person either works or attends college - * $0$ denote the first period after high school that a person can go to work + * $0$ denote the first period after high school that a person can work if he does not go to college * $T$ denote the last period that a person works @@ -75,7 +78,12 @@ Let * $D$ be the upfront monetary costs of going to college +We now compute present values that a new high school graduate earns if + + * he goes to work immediately and earns wages paid to someone without a college education + * he goes to college for four years and after graduating earns wages paid to a college graduate +### Present value of a high school educated worker If someone goes to work immediately after high school and works for the $T+1$ years $t=0, 1, 2, \ldots, T$, she earns present value @@ -91,6 +99,8 @@ $$ The present value $h_0$ is the "human wealth" at the beginning of time $0$ of someone who chooses not to attend college but instead to go to work immediately at the wage of a high school graduate. +### Present value of a college-bound new high school graduate + If someone goes to college for the four years $t=0, 1, 2, 3$ during which she earns $0$, but then goes to work immediately after college and works for the $T-3$ years $t=4, 5, \ldots ,T$, she earns present value @@ -101,13 +111,13 @@ $$ where $$ -A_c = (R^{-1} \gamma_c)^4 \left[ \frac{1 - (R^{-1} \gamma_c)^{T-3} }{1 - R^{-1} \gamma_c } \right] +A_c = (R^{-1} \gamma_c)^4 \left[ \frac{1 - (R^{-1} \gamma_c)^{T-3} }{1 - R^{-1} \gamma_c } \right] . $$ The present value $c_0$ is the "human wealth" at the beginning of time $0$ of someone who chooses to attend college for four years and then start to work at time $t=4$ at the wage of a college graduate. -Assume that college tuition plus four years of room and board paid for up front costs $D$. +Assume that college tuition plus four years of room and board amount to $D$ and must be paid at time $0$. So net of monetary cost of college, the present value of attending college as of the first period after high school is @@ -115,9 +125,7 @@ $$ c_0 - D $$ -We now formulate a pure **equalizing difference** model of the initial college-high school wage gap $\phi$ defined by - -Let +We now formulate a pure **equalizing difference** model of the initial college-high school wage gap $\phi$ that verifies $$ w_0^c = \phi w_0^h @@ -125,7 +133,7 @@ $$ We suppose that $R, \gamma_h, \gamma_c, T$ and also $w_0^h$ are fixed parameters. -We start by noting that the pure equalizing difference model asserts that the college-high-school wage gap $\phi$ solves +We start by noting that the pure equalizing difference model asserts that the college-high-school wage gap $\phi$ solves an "equalizing" equation that sets the present value not going to college equal to the present value of going go college: @@ -139,7 +147,7 @@ $$ w_0^h A_h = \phi w_0^h A_c - D . $$ (eq:equalize) -This is the "indifference condition" that is at the heart of the model. +This "indifference condition" is the heart of the model. Solving equation {eq}`eq:equalize` for the college wage premium $\phi$ we obtain @@ -147,7 +155,9 @@ $$ \phi = \frac{A_h}{A_c} + \frac{D}{w_0^h A_c} . $$ (eq:wagepremium) -In a **free college** special case $D =0$ so that the only cost of going to college is the forgone earnings from not working as a high school worker. +In a **free college** special case $D =0$. + +Here the only cost of going to college is the forgone earnings from being a high school educated worker. In that case, @@ -155,9 +165,9 @@ $$ \phi = \frac{A_h}{A_c} . $$ -Soon we'll write Python code to compute the gap and plot it as a function of its determinants. +Soon we'll write Python code to compute $\phi$ and plot it as a function of its determinants. -But first we'll describe a possible alternative interpretation of our model. +But first we'll describe an alternative interpretation of our model that mostly just relabels variables. @@ -185,13 +195,18 @@ This cost might include costs of hiring workers, office space, and lawyers. What we used to call the college, high school wage gap $\phi$ now becomes the ratio of a successful entrepreneur's earnings to a worker's earnings. -We'll find that as $\pi$ decreases, $\phi$ increases. +We'll find that as $\pi$ decreases, $\phi$ increases, indicating that the riskier it is to +be an entrepreuner, the higher must be the reward for a successful project. + +## Computations -Now let's write some Python code to compute $\phi$ and plot it as a function of some of its determinants. -We can have some fun providing some example calculations that tweak various parameters, +We can have some fun with examples that tweak various parameters, prominently including $\gamma_h, \gamma_c, R$. +Now let's write some Python code to compute $\phi$ and plot it as a function of some of its determinants. + + ```{code-cell} ipython3 class equalizing_diff: """ @@ -219,10 +234,10 @@ class equalizing_diff: ``` +Using vectorization instead of loops, +we build some functions to help do comparative statics . -We can build some functions to help do comparative statics using vectorization instead of loops. - -For a given instance of the class, we want to compute $\phi$ when one parameter changes and others remain unchanged. +For a given instance of the class, we want to recompute $\phi$ when one parameter changes and others remain fixed. Let's do an example. @@ -315,7 +330,7 @@ plt.show() ``` Notice how the intitial wage gap falls when the rate of growth $\gamma_c$ of college wages rises. -It falls to "equalize" the present values of the two types of career, one as a high school worker, the other as a college worker. +The wage gap falls to "equalize" the present values of the two types of career, one as a high school worker, the other as a college worker. Can you guess what happens to the initial wage ratio $\phi$ when next we vary the rate of growth of high school wages, holding all other determinants of $\phi$ constant? @@ -363,9 +378,9 @@ Does the graph make sense to you? So far, we have used only linear algebra and it has been a good enough tool for us to figure out how our model works. -However, someone who knows calculus might ask "Instead of plotting those graphs, why didn't you just take partial derivatives?" +However, someone who knows calculus might want us just to take partial derivatives. -We'll briefly do just that, yes, the questioner is correct and that partial derivatives are indeed a good tool for discovering the "comparative statics" properities of our model. +We'll do that now. A reader who doesn't know calculus could read no further and feel confident that applying linear algebra has taught us the main properties of the model. @@ -433,7 +448,7 @@ Now let's compute $\frac{\partial \phi}{\partial D}$ and then evaluate it at the ϕ_D_func(D_value, γ_h_value, γ_c_value, R_value, T_value, w_h0_value) ``` -Thus, as with our graph above, we find that raising $R$ increases the initial college wage premium $\phi$. +Thus, as with our earlier graph, we find that raising $R$ increases the initial college wage premium $\phi$. +++ @@ -469,7 +484,7 @@ Let's compute $\frac{\partial \phi}{\partial γ_h}$ and evaluate it at default p ϕ_γ_h_func(D_value, γ_h_value, γ_c_value, R_value, T_value, w_h0_value) ``` -We find that raising $\gamma_h$ increases the initial college wage premium $\phi$, as we did with our graphical analysis earlier +We find that raising $\gamma_h$ increases the initial college wage premium $\phi$, as we did with our earlier graphical analysis. +++ diff --git a/lectures/inflation_history.md b/lectures/inflation_history.md index e6e0ac83..b82c628f 100644 --- a/lectures/inflation_history.md +++ b/lectures/inflation_history.md @@ -13,7 +13,7 @@ kernelspec: # Price Level Histories -This lecture offers some scraps of historical evidence about fluctuations in levels of aggregate price indexes. +This lecture offers some historical evidence about fluctuations in levels of aggregate price indexes. The rate of growth of the price level is called **inflation** in the popular press and in discussions among central bankers and treasury officials. @@ -21,36 +21,34 @@ The price level is measured in units of domestic currency per units of a represe Thus, in the US, the price level at $t$ is measured in dollars in month $t$ or year $t$ per unit of the consumption bundle. -Until the early 20th century, throughout much of the west, although price levels fluctuated from year to year, -they didn't have much of a trend. +Until the early 20th century, throughout much of the west, although price levels fluctuated from year to year, they didn't have much of a trend. -Thus, they tended to end a century at close to a level at which they started it. +They tended to end a century near where they started it. Things were different in the 20th century, as we shall see in this lecture. -This lecture will set the stage for some subsequent lectures about a particular theory that economists use to -think about determinants of the price level. +We'll indicater a widely believed explanation of this big difference -- countries' abandoning gold and silver standards in early twentieth century. +This lecture sets the stage for some subsequent lectures about a theory that macroeconomists economists use to think about determinants of the price level, namely, {doc}`this lecture ` and +{doc}`this lecture ` -## Four Centuries of Price Levels -We begin by displaying some data that originally appeared on page 35 of {cite}`sargent2002big`. +## Four Centuries of Price Levels -The data price levels for four "hard currency" countries from 1600 to 1914. +We begin by displaying data that originally appeared on page 35 of {cite}`sargent2002big` and that show price levels for four "hard currency" countries from 1600 to 1914. -The four countries are * France * Spain (Castile) * United Kingdom * United States -In the present context, the phrase hard currency means that the countries were on a commodity-money standard: money consisted of gold and silver coins that circulated at values largely determined by the weights of their gold and silver contents. +In the present context, the phrase ''hard currency'' means that the countries were on a commodity-money standard: money consisted of gold and silver coins that circulated at values largely determined by the weights of their gold and silver contents. -(Under a gold or silver standard, some money also consisted of "warehouse certificates" that represented paper claims on gold or silver coins. Bank notes issued by the government or private banks can be viewed as examples of such "warehouse certificate".) - -The data we want to study data originally appeared in a graph on page 35 of {cite}`sargent2002big`. +```{note} +Under a gold or silver standard, some money also consisted of "warehouse certificates" that represented paper claims on gold or silver coins. Bank notes issued by the government or private banks can be viewed as examples of such "warehouse certificates''. +``` As usual, we'll start by importing some Python modules. @@ -107,49 +105,50 @@ plt.show() We say "most years" because there were temporary lapses from the gold or silver standard. -By staring at the graph carefully, you might be able to guess when these temporary lapses occurred, because they were also times during which price levels rose markedly from what had been average values during more typical years. +By staring at the graph carefully, you might be able to guess when these temporary lapses occurred, because they were also times during which price levels temporarily rose markedly: - * 1791-1797 in France (the French Revolution) - * 1776-1793 in the US (the US War for Independence from Great Britain) - * 1861-1865 in the US (the US Civil War) + * 1791-1797 in France (French Revolution) + * 1776-1790 in the US (War for Independence from Great Britain) + * 1861-1865 in the US (Civil War) -During each of these episodes, the gold/silver standard was temporarily abandoned as a government printed paper money to help it finance war expenditures. +During these episodes, the gold/silver standard was temporarily abandoned when a government printed paper money to pay for war expenditures. Despite these temporary lapses, a striking thing about the figure is that price levels hovered around roughly constant long-term levels for over three centuries. -Two other features of the figure attracted the attention of leading economists such as Irving Fisher of Yale University and John Maynard Keynes of Cambridge University in the early century. +In the early centuryTwo other features of these data attracted the attention of Irving Fisher of Yale University and John Maynard Keynes of Cambridge University. - * There was considerable year-to-year instability of the price levels despite their long begin anchored to the same average level in the long term + * Despite beig anchored to the same average level over long time spans, there were considerable year-to-year variations in price levels - * While using valuable gold and silver as coins was a time-tested way to anchor the price level by limiting the supply of money, it cost real resources. + * While using valuable gold and silver as coins succeeded in anchoring the price level by limiting the supply of money, it cost real resources. - * that is, society paid a high "opportunity cost" for using gold and silver as coins; gold and silver could instead be used as valuable jewelry and also as an industrial input. + * a country paid a high "opportunity cost" for using gold and silver as coins as money: that gold and silver could instead have been made into valuable jewelry and other durable goods. -Keynes and Fisher proposed what they suggested would be a socially more efficient way to achieve a price level that would be at least as firmly anchored, and would also exhibit less year-to-year short-term fluctuations. +Keynes and Fisher proposed what they claimed would be a more efficient way to achieve a price level that + * would be at least as firmly anchored as achieved under a gold or silver standard, and + * would also exhibit less year-to-year short-term fluctuations. -In particular, they argued that a well-managed central bank could achieve price level stability by +They said that central bank could achieve price level stability by - * issuing a **limited supply** of paper currency - * guaranteeing that it would not print money to finance government expenditures + * issuing **limited supplies** of paper currency + * refusing to print money to finance government expenditures -Thus, the waste from using gold and silver as coins prompted John Maynard Keynes to call a commodity standard a “barbarous relic.” +This logic prompted John Maynard Keynes to call a commodity standard a “barbarous relic.” -A paper fiat money system disposes of all reserves behind a currency. +A paper currency or ''fiat money'' system disposes of all reserves behind a currency. -But notice that in doing so, it also eliminates an automatic supply mechanism constraining the price level. +But adhereing to a gold or silver standard had provided an automatic mechanism for limiting the supply of money, thereby anchoring the price level. -A low-inflation paper fiat money system replaces that automatic mechanism with an enlightened government that commits itself to limiting the quantity of a pure token, no-cost currency. +To anchor the price level, a pure paper or fiat money system replaces that automatic mechanism with a central bank with the authority and determination to limit the supply of money +(and to deter counterfeiters!) -Now let's see what happened to the price level in our four countries when after 1914 one after another of them -left the gold/silver standard. - -We'll show a version of the complete graph that originally appeared on page 35 of {cite}`sargent2002big`. +Now let's see what happened to the price level in our four countries when after 1914 one after another of them left the gold/silver standard by showing the complete graph that originally appeared on page 35 of {cite}`sargent2002big`. The graph shows logarithms of price levels our four "hard currency" countries from 1600 to 2000. -Although we didn't have to use logarithms in our earlier graphs that had stopped in 1914 -- we use logarithms now because we want also to fit observations after 1914 in the same graph as the earlier observations. +Although we didn't have to use logarithms in our earlier graphs that had stopped in 1914, now we use logarithms because we want also to fit observations after 1914 in the same graph as the earlier observations. + +After the outbreak of the Great War in 1914, the four countries left the gold standard and in so doing acquired the ability to print money to finance government expenditures. -All four of the countries eventually permanently left the gold standard by modifying their monetary and fiscal policies in several ways, starting the outbreak of the Great War in 1914. ```{code-cell} ipython3 fig, ax = plt.subplots(figsize=[8, 5], dpi=200) @@ -170,18 +169,21 @@ fig.text(.5, .0001, plt.show() ``` -The graph shows that achieving a price level system with a well-managed paper money system proved to be more challenging than Irving Fisher and Keynes perhaps imagined. +The graph shows that paper-money-printing central banks didn't do as well as the gold and standard silver standard in anchoring price levels. + +That would probably have surprised or disappointed Irving Fisher and John Maynard Keynes. -Actually, earlier economists and statesmen knew about the possibility of fiat money systems long before -Keynes and Fisher advocated them in the early 20th century. +Actually, earlier economists and statesmen knew about the possibility of fiat money systems long before Keynes and Fisher advocated them in the early 20th century. -It was because earlier proponents of a commodity money system did not trust governments properly to manage a fiat money system that they were willing to pay the resource costs associated with setting up and maintaining a commodity money system. +Proponents of a commodity money system did not trust governments and central banks properly to manage a fiat money system. -In light of the high inflation episodes that many countries experienced in the twentieth century after they abandoned commodity monies, it is difficult to criticize them for their preference to stay on the pre-1914 gold/silver standard. +They were willing to pay the resource costs associated with setting up and maintaining a commodity money system. -The breadth and length of the inflationary experiences of the twentieth century, the century of paper money, are historically unprecedented. +In light of the high and persistent inflation that many countries experienced after they abandoned commodity monies in the twentieth century, we hesitate to criticize advocates of a gold or silver standard for their preference to stay on the pre-1914 gold/silver standard. -## Ends of Four Big Inflations +The breadth and lengths of the inflationary experiences of the twentieth century under paper money fiat standards are historically unprecedented. + +## Four Big Inflations In the wake of World War I, which ended in November 1918, monetary and fiscal authorities struggled to achieve price level stability without being on a gold or silver standard. @@ -358,7 +360,7 @@ for i in range(4): df_Aus, df_Hung, df_Pol, df_Germ = df_list ``` -Let's dive in and construct graphs for our four countries. +Let's construct graphs for our four countries. For each country, we'll plot two graphs. @@ -577,29 +579,43 @@ plt.show() ## Starting and Stopping Big Inflations -A striking thing about our four graphs is how **quickly** the (log) price levels in Austria, Hungary, Poland, -and Germany leveled off after having been rising so quickly. +It is striking how **quickly** (log) price levels in Austria, Hungary, Poland, +and Germany leveled off after rising so quickly. -These "sudden stops" are also revealed by the permanent drops in three-month moving averages of inflation for the four countries. +These "sudden stops" are also revealed by the permanent drops in three-month moving averages of inflation for the four countries plotted above. In addition, the US dollar exchange rates for each of the four countries shadowed their price levels. - * This pattern is an instance of a force modeled in the **purchasing power parity** theory of exchange rates. + * This pattern is an instance of a force featured in the **purchasing power parity** theory of exchange rates (see ). Each of these big inflations seemed to have "stopped on a dime". -Chapter 3 of {cite}`sargent2002big` attempts to offer an explanation for this remarkable pattern. +Chapter 3 of {cite}`sargent2002big` offers an explanation for this remarkable pattern. + +In a nutshell, here is the explanation offered there. + +After World War I, the United States was on a gold standard. + +The US government stood ready to convert a dollar into a specified amount of gold on demand. -In a nutshell, here is his story. +Immediately after World War I, Hungary, Austria, Poland, and Germany were not on the gold standard. -After World War I, the United States was on the gold standard. The US government stood ready to convert a dollar into a specified amount of gold on demand. To understate things, immediately after the war, Hungary, Austria, Poland, and Germany were not on the gold standard. +Their currencies were “fiat” or "unbacked", meaning that they were not backed by credible government promises to convert them into gold or silver coins on demand. + +The governments printed new paper notes to pay for goods and services. + +```{note} +Technically the notes were "backed" mainly by treasury bills. But people could not expect that those treasury bills would be paid off by levying taxes, but instead by printing more notes or treasury bills. +``` + This was done on such a scale that it led to a depreciation of the currencies of spectacular proportions. + + In the end, the German mark stabilized at 1 trillion ($10^{12}$) paper marks to the prewar gold mark, the Polish mark at 1.8 million paper marks to the gold zloty, the Austrian crown at 14,400 paper crowns to the prewar Austro-Hungarian crown, and the Hungarian krone at 14,500 paper crowns to the prewar Austro-Hungarian crown. -In practice, their currencies were largely “fiat” or "unbacked", meaning that they were not backed by credible government promises to convert them into gold or silver coins on demand. The governments of these countries resorted to the printing of new unbacked money to finance government deficits. (The notes were "backed" mainly by treasury bills that, in those times, could not be expected to be paid off by levying taxes, but only by printing more notes or treasury bills.) This was done on such a scale that it led to a depreciation of the currencies of spectacular proportions. In the end, the German mark stabilized at 1 trillion ($10^{12}$) paper marks to the prewar gold mark, the Polish mark at 1.8 million paper marks to the gold zloty, the Austrian crown at 14,400 paper crowns to the prewar Austro-Hungarian crown, and the Hungarian krone at 14,500 paper crowns to the prewar Austro-Hungarian crown. +Chapter 3 of {cite}`sargent2002big` described deliberate changes in policy that Hungary, Austria, Poland, and Germany made to end their hyperinflations. -Chapter 3 of {cite}`sargent2002big` focuses on the deliberate changes in policy that Hungary, Austria, Poland, and Germany made to end their hyperinflations. -The hyperinflations were each ended by restoring or virtually restoring convertibility to the dollar or equivalently to gold. +Each governent stoppped printing money to pay for goods and services once again made its currency convertible to the US dollar or the UK pound, thereby vitually to gold. -The story told in {cite}`sargent2002big` is grounded in a "monetarist theory of the price level" described in {doc}`this lecture ` and further discussed in +The story told in {cite}`sargent2002big` is grounded in a "monetarist theory of the price level" described in {doc}`this lecture ` and {doc}`this lecture `. -Those lectures discuss theories about what holders of those rapidly depreciating currencies were thinking about them and how that shaped responses of inflation to government policies. +Those lectures discuss theories about what owners of those rapidly depreciating currencies were thinking and how their beliefs shaped responses of inflation to government monetary and fiscal policies.