From 19f8bec6ede249366cb7360984d96dadbdfa4008 Mon Sep 17 00:00:00 2001 From: Janis Hutz Date: Mon, 29 Sep 2025 21:22:01 +0200 Subject: [PATCH] [NumCS] Restructure --- semester3/numcs/numcs-summary.pdf | Bin 415369 -> 415432 bytes semester3/numcs/numcs-summary.tex | 23 ++++- .../00_rounding-errors.tex} | 0 .../01_time-complexity.tex} | 0 .../02_matrix-multiplication.tex} | 0 .../00_polynomial/00_intro.tex | 37 +++++++ .../00_polynomial/01_monome.tex | 39 ++++++++ .../00_polynomial/02_newton-basis.tex | 2 + .../00_polynomial/03_barzycentric-formula.tex | 2 + .../04_chebychev-interpolation.tex | 8 ++ .../01_trigonometric/00_intro.tex} | 5 +- semester3/numcs/parts/interpolation.tex | 91 ------------------ 12 files changed, 107 insertions(+), 100 deletions(-) rename semester3/numcs/parts/{introduction/rounding-errors.tex => 00_introduction/00_rounding-errors.tex} (100%) rename semester3/numcs/parts/{introduction/time-complexity.tex => 00_introduction/01_time-complexity.tex} (100%) rename semester3/numcs/parts/{introduction/matrix-multiplication.tex => 00_introduction/02_matrix-multiplication.tex} (100%) create mode 100644 semester3/numcs/parts/01_interpolation/00_polynomial/00_intro.tex create mode 100644 semester3/numcs/parts/01_interpolation/00_polynomial/01_monome.tex create mode 100644 semester3/numcs/parts/01_interpolation/00_polynomial/02_newton-basis.tex create mode 100644 semester3/numcs/parts/01_interpolation/00_polynomial/03_barzycentric-formula.tex create mode 100644 semester3/numcs/parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex rename semester3/numcs/parts/{fourier.tex => 01_interpolation/01_trigonometric/00_intro.tex} (73%) delete mode 100644 semester3/numcs/parts/interpolation.tex diff --git a/semester3/numcs/numcs-summary.pdf b/semester3/numcs/numcs-summary.pdf index e0d8c42cbafba3f9772e243e848bdf74f44bf9a7..a722c8d88b80f10cd890cc52111400072345f7c4 100644 GIT binary patch delta 38111 zcmV({K+?a7tr^Iz8L%Er0yH<1VFW0D?Of}V8#i+QzJJB!8@DV%gZGTCQWfib_SqMy zBunR{qTB~AIm;c19PV*QNxQkL{Ojq)V+J5Ge5}^7<6M=kB|!|(Xf%HPK=1kiSxHL8RQC2d6D3i(%5*76sb%(dmc1Lj+%BtiJ)JBr$DH%gi)wR!v$`C! zVl-=Q%k}CKzOC_#82x^=yxnf9OX?fmOzWzdR`3K>c|Q7abyYX^m**4cHNC0UPwe*} zCQa>z{Nr|WfBBcUKV1Cb?Zsa&C{UYcw5N^|T9nyzdGYQqc{YRJe#mmd%Od+^dM=@- zBDv!5d6B)jczuyaE0!4*gbT%g!X-;ZBrWZd+2xp0AokTIr=t}toR03A)v}%}U>#hk z(f7@!THnHF{CTpeR}E6T!^}JzGfs5r`1ri4?c!#YW6k#sFu)E34Dlmpj@PppSXk7#;lrD~9j`>h@EKXWRYS=A8i z2}{TeQWO%FL`f+f)4!>!!5KcgUqq%r+IeBv#z{^KWQ!<;9imPUqKJb2L8qIlZrjRj z-kXh~NKm44peH932gh!I|7}UlNe=V`?I7;$rdlkj=INiB6>#s#WzU4H;6!P5+CYxQ zpOD4X0wgFQ8$u9~e}QNedBjVa7qAyHPcb^lWGdmPC7B$J%n7GDWHL-b;i%|h^v}sn z#b54Ho61NI+jsV+&a1`7?`gYQEQpsonIixo#zjZBy)xgbS>4Qkx6Ry;yU+cx(u7JR zhm%4SerZf3)+7m&z$gt%vHd(dX|Oy=6i^(lF0~Z^d4jWWd8dsE3tTh zsiY(-Qs|i66nIO2QUH$_^kSWO$OI`cusKHp4WULwb9@rQZ(1G(_-PsO}v&xpJRV+cT)~l;UwFKB|(V{T`wph5OiO~wt zOOL$Cu`uIPFpC%%Qv13GWC=hiXof{O>e||x3Bp(mFpK;4li8*Z8%x>R3{y&?=}E(b z85-G}u=90)TUYCB zhY?hwh$Wc;%X5-cZ<1Qpu(O6vI#jmN)PCBXCxQBX&8hZI9!=7`CvAuh4v+uMSfv6E zoHteBvpEy{kfteNrFuMbRI*X+X2eswv>*SBcDdnyWpZbP=vWllBRL~X>y%Q8rUm;_ zMp_T|%97B`7B#vu>8%rP>x$!B7t&P-;8~f}m3gEs1mg)isZ>LD68w@{-@6g9%Xw4P zX?%j;o+k*EU^O#&l+c23O+!Klgb~QQP8yR}38hV;gFJ4sfW@N9aPHsjDQ*8v+uu|- z-Hrx-hhv;vsyehM^YrO*;%nLde9{^RSV(91Blw~bbeiFRmdF<{fI2Gid&_VF^39}a zEFl66HCdD~Fj(CIhpKqE=J3wq^Xh)px~vTy?V?}^cJ z!hz{y@FJLxYrRk4=ew~4YG~SN(gMh#M9XfulqaTA0PH+s-uom3(=zg}Q}_xhPpjmA zQ2C*u9wl(ENXErZ%KX~8bD8R9Qe4C$W5wv+~`oSH&9R=@|bdKC0iY>ES4aqmuV$k2L4wPZ)K4*F?bG!8BN7HA_~Df zD_IyDs6KiNmIM*>n3{qIl#CsJ9>dG&s>K}| z+@<#ehD{lAGPa-?V)1Kjr)?F@73{ix$X*Q{g(`igL8S~?TPG!+C7yj} z?Nv}CKpC22pHp1JyF?y;Zwj*T?PbA7>w3OIJlm{+i?s>wnYh~lJ4Y0nD5+1dbGQ=b z>~P5t_e7C>ILF{Ai2!{c**ox*M8xV$0gy`uK0t5p_y#mBz(f2x>AxH^5b?_wY zaw(YZ2k%-O0XURz3e26Z%@fm)?bqZ9_yx@!^Uot%JEDZAl|E>H?f5=M)ZR=s_ukNv z=NdY}Z2N|eU)nJ{ClFXea(p^yo)ZbjDIyxrhf(*{q*(3DkodSYDz)$h$ ztXFrQNB5-wr@-MV89;l8a0*71y6oF@PBhct(RYJ)Ej_?>O`$*M+dMJd(2m-E{@)V7 zX;fJ9Fu=J!_Uf!M`6RW=!7)Im&jz}F)-M3MUS3l`2cBGiu4zm>V#bf%6;c;FeT4_a zxjL70IAn$h_-f!{MDf`F_>e#$0A?3l_c!9h*G$(3v2DM<{-;C;jH3uEm{({QS4@)+ zo&?4piBLSC9`CWx?JSN(#RgIdN`V(yUGVLAP)wc@6q9jQhS2ppo6gJ7M&&~2LU z0wM>WJXh?0ABgztM?~YMJq{!S62Lj3M=;U%Itq%#$)LD9QeI!s$ZFei8NdS zC;||Fvi}2cS&)L4lt*|eb5M>VfJ;e5fA)?x1WizX`n|kgqG7j1~w?hG>GvZBSdN}if zr7=Js$nSWSo`;v=Oc98|Ay9do7&nBwQNCV(hr70tB^?nH$8d}drb>#@D_iw46l=Rn zdZ{2Jk{>OH=#!|AUQj%6qodR$X>K?lR--W#j;y@6Ub^cVd)vCHmrIvnI_4DpSh1JZ z-1?Y?JFK`(SU=V{1v;zOpgw)R^}Mo?Pnd2K7R0P)KE3(gSIYQOE)yv+WgITmxAxh8 z+LhPEli|#>M?YE#?oAf1I_|qgRZnlW&Ae^z+Knd#H>Ob-{2O{Et2jUD$q= zUcMQsTYglbf;ZUeXsyp)vg>fEPq46mlog5DwMs?nH=Etva3o@LoM^=}Ogt%BQ10Ps z6(o1^r+lLXl60c2*lELnn!ETENqkhGYhhaI(@@izkb;GmWC)}1s7x|f#q~dBUdH0T zyYDL8_uc6a7DffPyG?>d!-l*lV)F8+atbgx2LMIGkUth9=&zI!o!c6)AcEYti$wd-I49DvCm&!#nkulM zO!nLz%1x1tgr@iG+uZbX^^)1<8OQhfF+$Oge!~I)O|&flShx zF&dU`lE#6_-0j-m_AA;s=K3ms4S%7ZHaUFw0|#|&N>M2=Ze3;97q6{b5Cg3cMCP)4 z*i7&BD(-Gx(V9_-3kl@>P2p1nU^@*K>u878EdOWNfMOtMSk zjl7uHY?aTcY9TCqEin$yes&$gBW+K?%?fqMfFj0mj@R6deYc>9_2dD6lbFT`NBs}F z^S6B!|5vP%U5P3qi8@kw zd`O&pw-aijPmm?pr;IdV^O+GX7}$_SpTwev{PnWYJ#T=%dY&xe_jsyd;@2N z38Svhe%pY3tp)F1YvH_q&@N=*OM6YIc!H_09!#-F8Nd{f)I73nu1pkpvYp;sP0Yt9 zUG;K2R`?kBkBh3SVm1LK7~fp|)zx~p@E9C*@WfQ?r~ij{s=vm>gRQSLcE0zftD^q6 z`guL+Lw+>I4SZqta^ijbAbQ}KBYFij#zoBFqb>e6<>lR4n(gL)zI$IspQ38x9k7?` zzOFFD@N6JX&A0*?(7)Qdc+IhDv(Qm^T7&5i`icdY@o;8xB}H%%JR)K!mWHM-7!Q*8Y-fWWFRq4#*6CNj{|eC*VS~gsbqS+6_m=Fo`Ba0=T+iL5ku#gYA_T+Q z)-al@o9*@ftM8r$nJ&KL$Cb1DUt+ifiGBL7lldBNw8){AcKH$9t@QZ>Loe$)q{P0A z5etLxeQ@RlhTr0^D}22nz9HybE_k7m(!NFFq*pxHM@_lX*Y3uux^ZIDrS|s)m`HS8 zx$lliJN44NtDt``o0ZYX3Q9qVz;aN1&MPAaUyjMp;qf7a(!KxbO?A7emX2Cy;4t^n zF3>I*5<`?S4;A+3r*8y0gPBGDc-SgF4*H#was-~m$A6!W=&Xg#AK(9X*?AjY zyTsBwuOG$#G>3rw{r~5>|DS{Z_xJyn{x=)>-|_0Cw=?dacGY7vOSss$4?332*#sQ3 zT5h>F+`;O;Fq>nw@y?)ylM=_?DMU6x#%M6!1LFq=h7#II?f1ag1EUFyJPpsTdtmGu z7~32(?qKyt-hX_IP}=FV4s4GJxIg-{t8i5Prj~E?Jop^D$anuV^QV5B@o2bO%6I>K zyWb=BZ#?#U#BWOwSZ+Jj+-1V<`{A@tYw$A;OqKwuzyCTULiA2?$iv+T4uXeAzo|vL zY3r#z?`!(etsl6!Y4W{QxmyqP?lhoYhLI1qlbbr8*FuK1kl`BsORVv8y@+3Hh5HM> zdHn!kOMlRC%VtoU{(BP*b50&ELF!bgqgvNNZIw)Ly+$*;sM(vQi1S*#IoZEFCKM_K zml*C-(<+y%KvCY)gu7kAY1G)7j}augBi@E{0M3D;_}IQITZo-K?AN0qMbCt-;Iud>^Ulj5Jp@A>!QYBahT{SwKV+lu5~i0HJPq~6*VkvONK+;a-U}O5gS2tJnm7qg9F59Bk17rb z;_psI?NON{`!ThOBj99m+OV2ptUzTQC4V_>drGQm2lP*YXDuZ&?GKbDcvx~AC_a_n zM)N?KL#a}79;TcVvkgvD$O@&&no`OY=k82uRn@wxO;y{fc2(`GI@|&Gdt=C3fS*&D z;Bd}BF*v1p9K?(h%K4=zYM!5VqD4qTS;3C0;lPDC#;I=45A+aCEi-$IG@Z*5lv1v6xN&dsyu>KaOZNeq{6Ng zId@U9k=AQscCU$wf-}}M2NCRjUVkSTNv~JM?i{cV_e_8_v{oW$_(ulejlC1FJ2c3S z0yO7=ZW5s%CG0*pjJky|s?1hll+#dm82NVP9A!5?J~e4qpPyFJqITLm#aS!o?5a>- zaaQh>E^^v#1<51Md)3ofoUN;;M>Ni`)zdQ?4r@xAnjNR*+9@69=!> zhOJ;|)B+53+75;~K1UcD`P6$v)7iJKn)7@EElu~%I=+dcoP@odQjl3{o57aTSyvjGnlF9_P12k8{rvJuYm%X*Foq9GREU zTH{5;abgo%m9Q|qAuSdUG(N$;dB*{J^_i=&v8~4TES#Hn2fqeYUKs8$BzwC6Z?Ct6 zw^z>*-rj5u?*{Gfc_Nc=Z8d*Hnf!mg)1-q?#GllLXhkF+BFd^AgK%)U6o$W*7W^(h z3C-VAi~QZP5w5zJlpabeuSFs&19OaqIZk9m__10{ZlASI`DOV2_b3U!v)2Csl=IlB zlhFedgF$YGL2dzuL2d%KL2d&&K@TztFHB`_XLM*XATl#FIhPIE1s4N1IW?ETBLOLY zbyS<%wmytI#odCtJH_4Iid%4kyHlXJySuv;iWMzh+@;0cT|c_dJ!kKG?(g4kWF&8% zsn42guK8vpp(IsSV-zv7Hvvl8gIpL{nOOJ$@(OCkAZJz|$jP5;t}M@&UMAECEWUF7K{?P5?F*7G4BOfD{k}bb42s0Zcpr3P2ZQbx#K% zD}cuMFQ9Di?80bb?EJ0jgUkT3ObSc@MSJ&mp%s9}9t1D}S{mD$1MJNK>OgIPhMI(`8bC@_NkdtGjh5*> zu$rrbgT2%La1m2e*N|cWh>IwyO8|hH3;-z&HT6HQ>Ojyte+veHqWZi3Po8(fKkf<= z>LTi&lqFc1|EvMP3UC8DIa~cn`(NCs-kAaZruOb??qqNGR{{WyrHhLLA2YMNyE~JG ztFsG}y^{r#gY94Z)Ge)?0q*vHPBwt|s}s-`_*Y?EL1ypebg=~fE5M&k0mxgK0zuBe zKTeYN|5Dn$m-5}|UGDN9V(*1;`4iLjU*-U3An<>su{3u6%U51mSsq|#Yz1-wf{a0? z?}jeMF0Rf1qrYVDPoNp~zX$>WVy;e3e{v}NTjlhhH2@^S!J-kVecWF}^BXZOz98R1X)#I4@zR_4I>3xc<^u^SNJ;^YeS_5P>gefaBy|;1(@4AA^h1-F3$J(e?Qv{sX=fF#iX9XJGLU_)fv{Kak^n zS(cs-mO#)yEZ${S|A6njZ2ke?iP`=GzB9A?8?wGL`$s6&cV_l~CwsTG2mOQTdwVfE z{H=cXbufN^pOm&hbCeEvfqFwV8_Wma(6LAHfF+ zkBiUwk17^=S}fwk zIWdIBj_JwvK^%SSn(`sCawh;%mEdEe` z59y4*tpd=O6g0bAKrpSA`KF%wcp?WzAHpxd4RZ+05hqg;&6D)@Q(HaOB17$6ecRIY zJMkhGlz$r1TN%RSlCGi=FpPH~7{PFE z_aB%3+oJJbujNqj@@LxJt=Yb}Rh$_@Q?WA}6YbFmDUWSJD={;NZDy$0O7VV2@>07v zpcaMyf76@=X8La?yuW{!DHi^T@%qSF^=s)8uM|@u>s!0y~R$S_7ps1&>!UwJux_B z5-T~Unf%2-TxYQ>Xr45G7SQLeBpEg`CdVqn4UCyi`+VQBfj}jJI%vR~q?SYB&-k5B zTm&Q89ox;ct~Jr!IZtX))QbFOmfB$@gwwBdyy#Bmtv~7xyl}7<#P2`|PH#f`@a5J) za6Mr!&XQSj%uT454qMbFYA7(AZpdW#5`G`Bw0(m#2sLo_Snj9+D_cIhc?JQ{x$3BY^oql_MRVYp?T*wEGn`maOr-Z@?FYV>NZN4eI2uioX920W{8pF7WK4<#R% zx&~gnOf@2vR*}}0e?3+5a+#Ljo>6FKD(FTOzG<1us>eR(x_P?l$#*hBKjb?+Q)PNG zMcw6z@Lf$HS#AjYNU_`NCAw09_g7)^o3EkhQ9-NOuR}*( z+|24X>Ud6HqJn`)jx&lf1ElGXVywctWJ>fc7fUdZhG<40;B03II<*-m(X)(4pK^TG z^ZCHsRSyK&{c?;pktWQuem%zh+z0X&kMvQ5(HMGvq{OP@K?@cU6LT}QY{t$=Yld3G zhIkqSFbqN2G@x?>)g8m&OTc%gHL24U@w7uVy0(i|(D7=!D{Ex0(6uy!cFQah-W2m3 zKef9|WRz}7>fg8Hp?#T>^+7X?NQ^2B&N(ufkO@@uV6Py~jF}^@4IZhbs=EzN3F|Lh zv$VAY4#->{MqAz2E zgo~>n(o1P*Z?r)B1YMYM$$svmRZZk+w<^&cKt zYsv1%rbNtcRm35iZpOt)9B_?Ri72VMGn(JKW8V#p19P$&Bo#ggIBS>W!IhK}I_)hV z=c}9O(?(rbtR7aLKU^8SPx%^p`_Y!)S9H{ia24Oynu)WSdx1j8N&NoqKG8(O+&#>gm5 z34kyujG?2a(5nyZxt%bU=WHMR4ilDzWQ0OCoKVEnKGc=jfT|% zZiSHQZ33*nb^9@3g|~1$pe1KOqiP?e3*AtQmRaSQ*jn+4rRi*Ay>P#W=GTD=Mhd zoyy*irQ?OZPM|5Hg?)jz_Pmuh4RuBi1PSY_Jlqd)3wxHuvQriZ{Et{;>-s|E27`f)iCTc6i|E*(`myMr9LT3JHpYi1>p z9lIN}Tp4suMa42aq9(XJH&vA|BuC2+w9D*T{H3y^>u6uEcf5ms8Lk=jM`{(G2hf<` z2cMlv%+xI)fr>uArPF@E&{AxL5T#$Vx+tnx8QlWt_2~^z${*3XHi74FYpb}JY-cC{ zUTNX{B{P`Y9n8Va> zY{XBxkws$$%8dQcWZu5|GWa7CZ1ZOiktLvtYzIFPNZN)2iQ zVO^|$m@%ikzh-I&#+phwkw`P&4R4Famc)%$c!Y_1>M*mx&pvECWnAb0rg82U+bz^5 zJdXL`#LJkpU4228)6|F>JRNUcO$rR2;pgcWlgmFttc6efcfQ10^9-koBws>G*h|=<6z4 z-^6G|P800s^f`F5_>Q(ocMF!BIl-9_wT~UfX;@oC()i5&bz?k>;gAp4?y(0W9Gn*e zu3FF>k{N6MHG(UWH>#XFqn?&pbHl;Bd+ycNf;2BNCqrCOk_s6~n!NJ&ZELAU+LdiryEEE!m*!@sD^oubrHEIo<9s}eK{jD2mRSF!!6kg>@U@@@oO!K` zoy&q!*?jmD1(R0mKui#X<0jUVt?GP#$}pkHP}JgEOx5R$OsRdxI)jMi&x-Ck^GT80 z#6DY2>6%kgwEJL860rHT^H|jg#sbSoq5wHZ6%~k@f$#F>Hi&7HVkA-*Wx8@`O8k*Q z$djbRj58#z3nSp8n%ia21TQ^tCwbk)X!u$YZ_XO$3vVPgucjP2pJ>HJ3>cDsNN5QT zFdV`;_1RqgxqQ(K+1P%qz_~&{pOIwx79HAsOCT2SyCWV0Ua%nbs$xNZVh`Kj!8Y?Q zTi5i(Q5=Ss5SG_XSyF{NBkBRmBF?7yicet!#lNixyi#spKL!IcQ?SU)#d$jszZOYQ z)yFHtOX?(xf#so`ZkXJnp19?I*Ed=qizSSsZPhT%$0yXaze>B(9axTn2mhYPZ!@I{ zR9L~(K${r3rt-_?j#{1i2==NORuHT0K>i`SB%>q1BbM1|V&~?Q{7Ee25^oz8U{Lh} z4^&Gq?7C?mpmm$E@%xd2_o|j4EputKvFkhtc(q`0zc+_4@fpZ+i>yU|`O#unp!4{E z&9!i2TzZEGO;C5RV{}3R1-^KdVwPkLvm$h*m{w}8w8cio?uCGZ_96ERtd+*VEz9Qx z@+S?S4wVxy>QY3!Jjm>`+yw;Wow&#Lg8mXh{y_#$V#=FYMt4rwoBN$qLE-+c9%GV!bGlb`Pty@6(KxC;E$d*-1RR@Aw|10FTO;4)3 z4z9^os*sDq$$<6P4S47&IuLu#FeF8Zxd(bzrpM&<+Q*ON^BLNkLkxIorMS=Arvju>f-K@n+54Y!1{QAu7)qMz> zS2b&T)q>=0)m67-d4K6Xy8mpbcwsB0ohJQ%Oy)h+2Szjg2eqe-hf1ZpxO$@MqU!g5u>11tPn~4=OFMUm`Hc7YIFN^fHG6SBdqSg6mUPOIxW1nB_ z_r*Qgy6Tm;iokwGem>q;rIABtDNACof#Y}zt%e$%B!>hlDiBKo;`{W5W6N-w>ti=n zJb33&Sz3~-T>zulUC7hLEj8$EpG1`7)pb(7##-yb%RFy?&NuxiIr^fi-#}=@6@pZb z8=h)Y9g4V1g0M&A*Da8ta5l8-Z$Ch_cIbSRNywQ70~`M$Y&99+L`k&~ z)sg-UvUga2@%Z-!pw07WQ9Mb&`^}3j=0R)dg@RR#Nq43l0v&HOyiWM?)!g?~>LZsO;CjwVRHlrwEFf9ImL?e>&U=j!ZH9wR zALloJ!?L{0ee1l|ez{Faaax=qRy>N>A}q{ThVHUEnS}%zG28_&kbl4w%T8t0midyL zTnrgMZm0ly!_UL~uG7PQ1iR_q^_l#U`7Jk8TB21k09P~DVhFe?{zTT6BbplKqYWc+ z4(4A(>KnpqQER~UX~`sny+(6aJ-Zx<0e(Dxq=JmY$gg# zB@f*_r(F9p^i?mD{kND*GAG7qovm+wjK_3H=@tzb^!J|H58Cxm;1Z1c7SQN5I{D09 zS+VgH+C3?{_g%9UA$}%bJHevI5M)=`j=*_v{Jkr3z3rr41cp^#G2^47G+rAZJ)ICt zMLsl}d57NI3Qic5^p%NO+ta-9HfM(=_`E>4O(gv^g9>Y|SLi}*<=yyTP)PuPX-n}- zE)E>NKzLimk6kuE~8 zpo9Y2%vB`^pe#jt>ukZ90H@bm#+q_V(IIRME(_M7wd! z0@bXxW$gFd1kqM3 zE80mrh24ET2F|*?>wI#5khP>CrJx<2-jheYYc&2ByeLCOP4MhV#tkqp`qad&&GB*N zFt<&xtNOubIFCM)m+YihR&5&z`Jd~Abr=4u4GtKj_Zwo(^|%r!xmg&sRG41&Nv4*( zKT%!jqa7j{i&*s>xJ~C9b)>lpDjXX#y)GEj%!DNy665JvM;=~(*1Ci`f}Gxh{0l6P z{3>T=6?S^@e8>kdmDOmr3NDyq_=0F12kYu_Dj;*n zuYV2`AV_QQdC@HJc+eUU-VjuSQ}hg{oO61-ff6qr2HZ=NPthrqkrl(Q$63qyS(%C~ zq*z3;+U&U3;oG8ruhDbgH?*+LP;P*9GQwQZ^N?oh@*qWn#42C7#H2iGX2(OCwcc$~ z51j=|^Tv*>dnFw`jA>!?CBNs8M?MjfqxmXW&9=kPll`Ku^cl8y_enNYs0p7$czFU2 zmA%(2)~#0qQ{Q64G#m^Eym8CI%Jj5(>lG&G2s46<> zJ?|&wnz4#bT)($M_Bn%Ip#c(yf|aVL<@Om#Wb-@xFq#jo-A0>eHtAj6tfeG zXj9a{B2<5WF2+Dw`U_MY&Si9ZyohYp;=yK3s-ZnQ7^-YzGPMoIb|pH`*ii2bnAGI4 zMhW9EE779zNPo52^;M}nsNBFTQzFxzMALxyF!a$&Qm(XuSflOuiTClgFVMnyVTeE_ zJHfH9Ew0}ovrVNzI-+noi{I(wBuu`XjbIgYAU<$^>Ly-5W*qU}E2$GQgcZVmtD8aizuqmOiScw$TDUq7y<~~d{WaTaLfI-1b4ewmDG+VfICVnWRwDGjN z0Uhyw&OjNl>m$Km_N4o%Q65IqhSYlJVjeR1sKA>Ces!8Ffd1%>$q6T9!@BpucpxAR%$ETV8@qe;a_ z_b91-t?k|_Q~kG6HIXYtdw(&ukY+ZG0;Ym(6I`zEL99rEq?;cl)PE0@oiOq%=F3O?FM0nB%(3=qc0InmeYz|Qu~5xW1Dih zBf1(<34q#7{~-fYAh?W5F(4 zs1l_Vwq9^ZgpH43W0oSEGN-0+3NIZ8Pgyu5kKpa76jXBAA~DMpP{vyU4YP%RNIQ}~ z33l(%$t76+zM2H?ccuz(>o;2%sQ<8YWxbz8r4eI_|54p!fuSQGOanK16JD8wA-%Q% zj;AEEh?Ros$v{*)W4Mg^{kH@IG^ItI#gw=;c*Odu>WNQW)?C9cgI8Z(+Ez_K&vjvkHiA#E~3uJKSEMN$e zju95HHmgOBA-sK45eVU+`%*1)TikJso}T%w4#Jbj(V<|uilQ%*jaN!G`aW>n@0!Pv^p5F>FQXgduDstyyUQP4RPUDRam^oGpc8~U&wp)ySJg^}!*lBV z>Cyqq!@D@K1IZ@8gNKnULYp1yEnUNa!&FZ7ytP&EOm9S`!3^T<19p5RnxpvJX0td} zvXbX|4l93D`1L&!sGHB!D~UhvOr}?L1E1ib8|^lzIgTTkEkI^mktyU% zYn40>nbv2Zj+M`{a3QP8DRIxJ`ao)b61{g2sk~uNIn}Nt zU>IP4#KwZG47EZq&4Wn-av4L!XeMjdTA{ub-j1!&mhs7)pKsM-hNP46^Jemh^E^0I z+Epy`pWl`HX2Bq6P1SVe?AtEhlx+PLg1(Tv=QX;X4%heMR&ph*q3mYVi|uz}^s#Wx z>9d)^=K;}zAUmOd2{S8cU_omiVym#VOTMp!JoIH^aYis(?S_J0-;g)$0W+m6M zt&W+=L%p_H1vVuPv!~p#yL^6u$=NQv-p~~oS!j#f8J~oI#5$emG5ma#8k)j4v?$7u_9^ge z8d7itu|l;4ym~nbuP@;dDaf}`Nbu~mpR9YVshZ>OB;vfbI`=hn;~86b2%jYA%yl__6_0+&*_@ z?p}|76+hp@D*T=EfeOH|bk=P*+jJ?a$?fM~CAnh>dis>@lOiX@Ynq?(SfMh~U}7m1 zr^-njSRWCCqQcLG={2P}ZiPQL)j7`keL8++j+y2|<*3UQZ+^&yoC^&a%bBuj)MkK0 zN)(%g06aj$zaquXNk09F-ELr8i_ziM=9q-0{z2n5-M~-hLLtACN{Vf+Qfdz;W2v zRGp~5XoML|-re)~E{=#7i+63J@-Wu15y1^H(qo zK)0eU-^uh&c=JFKp);~$|L&ZQC7~*;V@nHne{{69nd@Winx=Jn$IN^&-f_o9Ut<~l z;(UjuV%133+VWkOQW+AB&V#Volsh^~@9Vu&wwMjD6_Fp6;>z|0pFmbaiN~bQcX+9; z1W6U!&)uMTa^${t^EnPS?(P;E4tIgN>4`4|7KTj(M2=m`Tj0RQn^`rA!1I=E#NqC$ zf5j58>(zGdl15NwxL2Q~)(g&eW6g2cg=*5kM=7l=t<3{=8<5j}^yp-bZKtiaCD@!P zv|Y$l7=ScXow}&%8+h9QuaKws!>UtVC|lC?Jk~%Zu@gm0fz8AXc35i_~c>Kz}o1uHF_D$nqr_tetiDysw0;dF9f2z+f z*b1g{GCAa!q`?)Oi*WgwOQW2O_;{A`Eo&)5um!)(Si04TZAwnmT;__0hx5xQ#*l3? z9STO!!DT$3i>kz^bqVg`t(^t&#DkkMqcW`bK?SyDmx*I|I=5%-CS>J+0N5{dPhNjG z^9<9jFh@PBEPO9;GIipPFXEDJe`-=m6O}xO#FB*SY-N_NQ44WtanzM@Vw))c{>y=U zmk%hAoFL8f6fW;YCv0JT7bZiFTWK?wpAH1M>};ri#+yf+g^SD2(cBS|%9`B_!QRO( zE_6EoDe5piUkDf%E{0`KOQtV`!(vYB`QnfhGmWEF!qaf9{%l6z(j8_te@3%Vv3Mxd z-Y)EiFs7zk4b2loeZ-2XNcW=|Mwkt&P%tPrH#zTn{Y6K@^!%hF2HTM~;qSp;XG_#x z^a*zY*iS(nE#3Io+Wwu6*Rpi!ZBE!e(KQ`33+sB#UM!b>|Y1f5MpAHhtk<<0dY2~rIrqK91 zdLo{iQz8vO9=rn!!IB3-q5GA(9Rp?ktcwe60qBHnS(e&Zi6s-?UNhpk`YL`o)*;0U zk)BwDWk-Vm+}!@9V~b_fVMQY~>WKl5_P5xHj~9>?-}U6S3`}a6e*)3<&-XI$H`4ObVT2q;q?a3O+L&W3Pu6jj zLC#HEaU-Xt4jIEf<6uN=9>N>w;r8g%)T;bV%bj088>AkYC&Wq|21;U!i%|KglkhiY zb#=1GJIk+@xN~t}f2o?$c++pMR>?1jUS)XY5k|7Oz#!uzIofDsB;MDZqj8%%v$jQo z%namfar}7Gb?<6N(wZlUHXp~gZt{ZEXLM|^*zgJW6r(!N`M2C&=Gup+{p~`0IA1iQ zzWGf3yki*Gq~|;MPTT zahGv4o&OYz{W#8!MzGb>GP8`&{5b~|L~{Le(nTDasBU;TSfFH$;M;~*aI`_G}Cr^>iZ_k@q)_e^9!O_yBaCn}A1R>>NpK_6n+1 z%~xpN+eGrA*xElfGv9OB8LQ;E-{4-U)E^!Z&_=?({Xn?s%n9bUoQXvXUJfk7x?R;A zGRShjrz(QjOXsDr%gV|r;Y2Gqh-jrb9n2M=NK@uJ|4_^Ks})8=wS%zJy#T{&X>(mZ zuZlRMf3LNT4*MpaP3TFurF=s)gIoU6lYFogD{J%~DIDM?MnK>7A=o2HBTUR!?#-4; zg-vqjgTkoW!KYG%sse5jgtf&ER~jOZhm|cHyD3L=$i+mgD@iKLj=6qGS4aOi!{6(} z|K}%cg1xfI?HMCds(xh6D;sZWgS$J&mQ}`Ce59;Ath=e1OVwzGu6Q z+-`|w$fjdU%%+}Vm!xTKM@<=O1eMIR(17a5yqA$QyotG4TExbu=DY4WgE$UEQSonU ze_G3*phR(zKNn$m)*Zinn&6G>xXaa)fPfpru;Mo{dvUVMLiBEXN&QYPBobMKlOzS9 z(oRO3UA}6B^blSr+EVvfApS07<8W2?j>bdS@$5@xilE~ zYDIhn|Dh~IFajGgLHy-Kh3vDLKxSzdfAam8)+M_BA|Y&2h$6k74mZ`dJ)l&O-%Ffl ztjO724X%E6j~n6hUQ9v)g4z8y`9 zY(tmM=cg^M#oj4414u#J(mG;xLf-hRm`{+T(q;nC@%O}$JP4vQf0bd@ z@u}ZobI_Mcb9Z0x)trQuX!>~^6a4vNSBYlgQr(B8{lpE1(92`+fj>*1DR_Qf#46K5|0$&H^w@4iw zqKTiS+*^-W&ItV^BEpnhVG?GXf2_ydxJVv9bdOKKRc~OXvbq|HcS=g9iAudybe97e z_G)n=MG27mtE?>jV)4P+8YNpu)AK8ekRv&(m{oF1D=&9jXg6zVv#3^QO=0OSf{Xgz z&~;!EP6)9jsz7dL{T!9Zh0D}?CC?cBN1$Lp!l^P`F3VMa_4W)bi>l*Ne;Odl!#$&% zGW9SUe^wdVH56N(Q#)Xd3MFFm|MB;;HMQUJJ@9Q^NviO~kGPQs#{CndpXzyVHiuz; zDR%ALPxQSUay5YOxqM>ihXzR{F~luBgJUh~F0`&~I_6EWh_2iZ@HGhQN1=694XkcC zPM`$o02`Pr8AIhzcY3|3f16Xx_BBt|X~7}$X5(I*8)6Wg@{UNlyd8!n5O!Rsw5XHo zf~Hx#drdJOeHEY=56Z9iG$Gv5trtcQNH{U|6 zCjUgwoD^vpdiA;V(8}_9QkIGTR2Hk_yGIXl>5+obIK1F?p4(6y-c!2-_*}2p4VR;h zZux_Kyp;9Unkseff5bSy{B$GES(Sn?XEK!`B+Sz2N2*an=wluEyfoay?7JjxRE=&J zc^tZBWEPvY(|vb*-VZr+yKD35zd~#LB7>GS%RFEP!b&hK4S71TF=q9-S2mrGX6Gm! z7CI;I>BXDow~xE7qd?5OqYcd;aW{P4h=7Jj8ptN=Vw&kNe`-&X-r!%lB#q-HR!OD= z^bcBvUzSXrJaf9`a|gl7B?k5zj+6b0$vcg%{5C_pUirFWFY&jPi0)c)L91jy-aWhtTI1@OjyE44DA7J;T-$&lnBiudYIJRk zxEyMQ$#V+%;1uT;NT8t+OS@r56)CSZrZS7XCC{BmTis~!6p!+4Y`FOc5nNmem&KUQ zp1DeFe`-u`zd@Z9X6R>b1BjYnQN-r~q5VLPs+G^aqIa&AD7O^|xO)mc(mR3J!${s# zz02oDa~t#aRCJ_mT_M@iK1~e*^!=G@%&l<0q`JZ7x@yPVo$hW0s87`#;U;Z)%c#7e z1f~k%^Dp`cZa+V4@rp%j?64B>M-vNM7*h`Pf1BQ*q01Lm8g+oP66<2jk}BG$w%u6D zE@j!MrXl1ORfQ@`UA@M^dnEenrBX5-7mskunOLWvJ&O1qKu(m1-5+C@}y@f%BB;=Gh74B<1uC-}TB)bm*?GO=XuIHDC ze@HBP39sH->CYocom<2MjG+|2pNr+1-LJu$rrFBASt9^pwW~teGYLZ2Lz=&M0cM*I zHfkgzdYe*shMtAub-B~(c{<4gS2O*xzg3c69!eOWT+*jTc&YOb&^Ll zen3^yG(zrCEcsufcx~BPFUi*VJ$C`Sf1t2miMKmTv2hn*h1(l(DIVBLN>F0Z?il0! zX=oRZlMD0Gflg>`fJpwj2ReO?$yI5;ze22NN}o22w!QM(aU|5S3)xyg<#` zEcTg;IG9t&AM4eoCh!ss^gp<{`#6z4f2C0>{FPuj|A^vBl3@#K)k+vh0I(Cmf0Na1 z3rErmB^;0QNV3=e>`F#P68%6|-4tw~o^jQWnWos+Zx4qC!#jcxjZJ#s_p#{5chP8r1*3$B;UM- zz@CPoPs)gn@6?MTO0}uPpJ4Pr(WLmPwhm>@b=Ih>damNB7x)NTfwPeGe=N-TUV6vd zp~in_DZ>xHqJ$Z_{74_TQN4H|`6xSLPa(WPPOx=5@AVd7@#!0aP=ThA3vKC@uuqE{ zP+V{X3PrulZH?pOZMHWv_O_6|1M`)@US=yx!EHvh(kW_6S*FBy%fp=cCdW2=nAsJE zAF*{5i><>SF>yUqciTqIf28n>gTqX~HJw9oEQt}!703b?<*o}J+r6&vJUO%kXVqt{ zGSNs=4wn1`vbwgQ%&VIe=FP*M9)1ZJO(C>^ zYvr%w>jD&2nw&k6>KbF*JuKi-rFP#m>kqx2lhV;f-psG(6jn+6{ zQ`#NgTR{DVmouQAqpjHYg)gC)-_puYsOh`+{a!7pafs_jn!8_et~l5i_=jE1>!C~W zyA+iKy5TYNANcNCJjnuiyY0$LWu*I*6-ab>GY%1Iy=rF5fAkVllO*=1cFH?vnliT1 z+3XFl2+AxCiV*w`yKV(IM1@dcAt>VdoS^fJAR_wG5&4yYKgG2ArU(PVB$+Quxd^OH ztyn82aKy;VzOGcDvra`(xwJ^1)x_dYoZv{{P>jjp?^!}*x&^D2iKqP%muslF zBZee($GsUk6D{a72SrVXNMb!~4^ruk!bU$O?vmeReUJ4#STt5-U_OIdy3Y+d3V?ix z)E$M_L@ihsTD#FShXtmzls^ewa@DXZaH*7;Zk+RohH0l{&koI4qC4QR%lFX7Klu^OTbHO`y4ZbL^TC*fNP0_^+iaTg9)HU-3PE191D z#+JHzt3&0O_C{^Uu2XoDsVS8Ku;D)+F=?i?f9)|sDe*skdeIvMI#n{e^wh5#Ja<_q zKXW6j*w`0>BUCT<;Gcj{FL6_u&ie?&)Zh-{n-yB7W(qJu%zvAc}6Hj5JoH& zj~f`)RLX}M6;sG(OgBznmfzT}7^%b&{ZDQ&AhQqJ%pSG!9#@V^zN`O&YQ2FaAk|Mk zf3?2Pdz+tDUT5bOK9Y7NpDSvM+3Do{aakTZMIR@_>$-Sh^YtMuR``Z)Vc;a7Ng9{i z(;JxBN)1bHBn0mP$)-q3T?ESRVDK3yzrdJ_>ris2=F|OwN~vK8fD_dn%eDLHa8f7a zQA9RnQ5(Op4Uq=gzaR_*?Cj zaM|e&>vPW-)MO1sR|Utsr6oNtzB>(T06ul(P0TJF%9ouIaibhVP!30u^%D>_CQMf0(MO z^3A~H!nUYl>1jd`tgv+4gnRCSaOBl9aD$Gyd-2$PXdo!5eOV~t@k7hRmA^qw+j$+o z^&4USSPp-hiy2^SE7rVx*YHE-H~E=PYmjqa(FfI+l2ywUl=`Hj*uA}vMdg(wU+Rh* z=S0(Heu-;>vYg` zYvk)3a1L#jV-AmFSX?+_SYjzbV!4|7ZCPEoz;UkMDw0S0^-wtcTB2@=o(5<5=5b9G5rp@O=m6Yw$mY-ETF2iEJ%ts+cWnJ|_ zZRjB+_I4S?zoGQpX}!Ue?Gcuk5@+(jY%ce=wz%_8WD@_QeqsP$E(FaK5RaWSsSz>N0%>U!d?wV80itnqs0a zkW3C$JT~ZHvhWD+5{C9fV+?q}FE2`R!N=Tt-HJY|wOObAy{wr0>p3XxxL+=t2q6Mx z7u4(1>GCEy@e_5C5fK-P%$o$~=mP#e+;$ls85_x%uLzhVf9F2wWaLSsYx?*V0=3yM zmqObfN%Yap;iWX7a--gd^@6MK0gS)x^LIJ1X=hZM4BEtR^^QK*ORq`BqjHO6J-Ck8 z7|)ZU)wn&mpE5+JvV}JE9(u6bekfAY4E)-{e2}W#MVmyk78V{iR>D1Dm1mAz7}T}0 z_IVn3nCueuf4D+{ckrLDAZSHwn3bePqKyEH zAXlS#^2^DqCac=?3$9{nfb5k|-;<$_^GC}K&yW4)e>m|Qw0PViJ@}yv9~IXNC&s1B zS(VYzo>lartzX-9X9n@?#AhRns!HHQNHYn|aYNbQO-ke~&9x(WxgR!`cVp5BX~PZ< z`j&$sRikwHB55Feit0K~dVnKbunPLhs5RmoBlu#ROa?Epepm%{6tMbeKrp?mb z7j0^IcXjs$z7}Q-Fu5OKx%S!A*_H7QuR@m!yAgB*l(j#46ll0tU9sg4-a50K!Df1? zP*T_ft$zlxwT|-4Ao7~8J5*w4vUIb+$~h45f0`T0U85h;y0@Oo5ede45s{&kh6uo> zUAARp3})z43Gt7Z^`u03)@9(74=%(Vw#CzJw5AFy*B)ZbWG-9UTAv`KdWwnIUBV2k zqL?sId)?r<_`Y<1wS9a;7lnb#c)M~W96k#O^Bl$F6GZeA%H%Jk~yE1 z6c6PL&oY4D2>F1^Ecp@B}u zdEbtBiO5i-t=Y83m>N(0X-$`x^^GshfA-^u8tarN)E09QOgmM_Cqmn;Wo-5`4CZMx zt1-fpbIs7eUUH9q*nXshrIx0qEpCERFi^a*LPo0QU==%``vHgPdY>_LbuH}4Ox`&I z2qYJ!&b2HgcohvgoT^cKMm^Dil~W`b*%SU|1XF0M;dte<6&iQaX+?GeYokXzf4cRz z5fM6%9ZET;`s)AH&Hd2W-u=dv_*)ZBegTE&)t+i71Wwn2L2YK1tcFDocxqw#!&txs zP#DIksv}31--VTn{TS*5uYgp?>_5@4>Ot-76$nvQAQJ)Q$|bxT+3; zs&hASQE$}kdF|IorpSR>W|n((mqs{a=06}j9dBrarO`3fb5fypN~h|7e`Cxe=QNvc z!asu|x(yOgIF6igM8rPrD*)#4XDC0xWp}9cQ)A~c8TMvHSiif-BytQ_rLy?{TK=qi z)}@Uir-LLJ#(JK(>pdUvfy*<9@)%G}gR2kw%6-Q-fyE)4`bKU3B(VfKtoQAzpBd9*!sFMSp|ekU-(wI>52{j<@H5du9HWgQTi%HK z^47Ue5^p=gS4of@93VNg=d=s23_C=kE(SF?-COlCqarYN;d9+btMQ76MK8SCXf>d1 zDueiHt(K^`!(x{TTd~oxS-9Ascb|yGN=iwDet+VskDt0g3V-JAe-%-$^)DdePp@QF zG|XpJQ?oY4p?pGkf0w_L&2A0ed-jrvS}k?7UAmg;^efYvbtDIjz-48K_4a9<$RSsf zSg;MYFdZ*_2H^bI$>+Cl&mX@fT?*~m(H8>popyUbDsiK5S-7fKKZem_{)7jIe-DP- z0Oxf#w)Ab+FB!u{e-Z^T?7h%lsDW#K*(kH(q9rguVGI*6r}&QOXZ2iyijh>^qs4n} zS!&oWXQp3Bl&6cw+~qlEQF2H@-8fxHq`5SddiX7k5UWtaXqA;dNj%l#QJVS_Jb(1j zuwAE7w#lejAfeJifmM=Nu$&MC20*f(!Fr$#wU)-K=|-nxe_)MZJ-@VGl+L33p$CpB z*=kU+aVaA4TyUE|nJVJ1*J5t)t?}v5Umf-v43aA%pszE2`N$nCBf50Va%F9mGut==UtM>*7z3@5v7EBKq;pVjoxJ0);SYxi{xR=Rx5hwB^ zZE2Gxp4=^8fF^|V5aV}Ee~N$z zCpbkgsx_*$D%|14%~1{wzS%F4SVhxaPXuyuz{X;7f8Vl!Xgf)dC@%6}Cb0M{&mhFi zfTOH0UvFIO7xdl)(I%KMeNVAjS-28ykze-k!|w}bpq}5&T&$tVjL3e31oRSCv)>}a zz~N;LpdxZr`@5m&Z8b0Wsl0W6ozqrY$<8rVX#K5!hE;8PNyb_$D6lZh>kj*uH>6gw zCfjy%f07C;LT>Mkrha7(x3S!XQ8N{6OPcI0rqZ%58x$KbPBRwm7+=e9K;#w;-esSK ztg-M|t5l!9uJtI&j(7Ko>ouV$V(|SBC@6(D~z*7&9>#M~$iI ze+>(h6aGGn|CjN$0!yU0HXT(R8#r6m;TEe*QP_*L22QT>d6e#BBx+^5U2`4zxai~< zP;#wwSccluBqC{puQ8{`o53&;0)NZxkbwouqBsZ3Q9@Uf8ij=!^vtrIH-^fmJ>sLtz>INfMOS08o$J*u~Pu>4Lv*{M4{Z`Kqv6 ze++b*`KEl4AF{zV%!mZZ*4pJgApIsn2$qxD2p!0AqJ6=#^liARj4sz)ohEEEf1U(` zYLsv)7nj6WMp&chWxMU~jvLJ|T3XLML0K`f@mJw+<{oQ*OK}YFJ~!Pg@U;lGeb1E$ zSrL+N2iaxHz+7Kk6K8G-c^LQWEGAp#Iw~*7bf{$g>5K68E#iQ9JPF1O-xucAV&yHOrq{nkL)>e?k^autFC7+cR`?B)qP=ra>!ey5cLyPdhI`C|;{a zAo#isXM7Ot2~PmUg6Ds3A*US-F`7ngjOt)cJ$rad>4n@^aRKPSxP<>v2mX~6B~F->^rJkWhEK$F-bXLdvq}jU?nFm|*~$e>MD1H7I1z zIq0&~=PLtuoVk#@)4rlE66wSleGfP_z?3T1NPkkVDxL2^iMUELmjKOfbo0N7h)wa^ z*BGHug#ii(7Vf<8PmA2|;r3xX2Fz8%qX5%YvECgr6kRzaJq3`d4;)Uy!*k;)3z#~5 z{TaF2Wy?X(&Smgi#;xL6f9}OVW3Sg12#aoy;LR5T!ox8qHGSnWk*+ghTHw|EL+$rI zIj7Ga(c#JjyFeu*ZHwY@)?YjVjbjBO_WY@)nT134mQdn0Y#z}M^1*Lc?vN00pd{9x zv2V0m5`vtg*=)dhMi}O^Z12myM#CUct8H5`lt6B;W;Kmpt-kw7SqAj&o{{(RK^Rk%(gyL2d+WyU^$cJCh$Hg_%er) zseT_2f8d-`?{U88E+gBNpxJH+Tg|M*%&N)WKW3i6;|^GT;tXmpx4*OdI=>ci?+K8a zV@}d9Ge4O1e(yl$e{Yp;n3Fn;4n4aa1&lg*IFYI5o@*GXTAe3z80&I4X)d?m6pJP> zTMC4B7;ypPP*rVra#*LlCQB8R#@^%lbTKA;w(NSA#gOa4%yTivs?+hgF*Jc|9%E`F zC-x)@|5;un>qDaorsz1;pu*>d?rTDm_GKl*TNhPh(2W_te<$^vuwiU-tZfYuKAn+( zNo$Yvv#u|1J!Ic2o3WoMy6X}i9E zS<_j;i1^m^*4BUep(`b91`2K2=y`>EYdPoKAEuc@+0|#OzH%lCw%a+o5W)1(Nibe* zL@s@cSON+Lf6c05a=si5F?C^NupHuq*;>Af=hIql0>f6M`gef_6OccN*HHDsT7}N- z#JFa`VWLd75XY|HOdI_PK&N7ijQ_1KHKm!wj-0sa>7oWoY}2B>A7B)Ubhtz^Jivq5 z)$q(C$4Nbx9E#UDyzF&VC*C>+rc0ILh3Ku5)o679e@6BL8s4eHvGCXNf1I(d$~xZe z7{51-7#q0Yh2wqtmk1+iGg_)sq}Y+&JfsFw)C^&axF**!_6&1bGZirFRV?$xQTiof zP$m&!PWND2f`u*lJ}D(1efcgKc?lQ)ZyQJ{$`ivbGaC_zdawJo*h`z1Jt6ZT}4_1qX9!zQ+#%oOUa*KTT_2^b}R?>A0|FfrSTD;mMM3Fn;mwE)2?#@s46<{o2 zJ{}PDe%8xKI`Wx#^7fAC z&RU-8s5hSH*nK6BVDJ#S1`p<9lWBhkrX(2MF~EV*#qJcDa>ASodWT%;tP#jvkl!Us z8YE;fne#KiEE~&kM%u^!zB<(x=*LnAL)X7g=UFAR!A({?&e3AP3>1ZXo-pxC$_I@?D}VrEdfyJdlL%=4M!-6{)^kY6RvG5aRR*@>Dl2iizs0Josk+M_@lYM2q8=a8$Xa!J-!EwZsTe?;yP8pRhR ztukewPS<$+-%KI3o_6%3L9DhY^TztS1q4Zn0_@}Z7E|oAyFc6xAhNj)a@6rD(!JH^ zizqYBHbshPXjpnSPF?0CLMjget7Z=`%>`pWkc(}zt)qnK?vsRH`fFsT@105p(Au$H ztaRvmx8#cR?~3W`B7gqIe>(cM#K1qMrys*cp-o-pb8Fo;qAp>7Vn6J_Lq}Q<)_~oh zZ`grg#Am1P%M7JzycSHf+?74=!XQg{0RXW$m6(ds(e&IevTa4a>o- zNg0Jgu#=Dv1@bM{Q;6VA8(S}-1Z?nPmP}Aq*52MC7enJYxR!`>bPYcl7G@y5el|H{_Vx|_LbFbl6uFn zLfWx{EkpSfrQtKV>MApEJ(!CgpT;$*djHQ4=uUd0n^g#%e-pBaafIK{NT&N#CUfGN zs?=&z*A5R~J{9mw|H+Uige3Px+9|b6((E(#7`Vzd{Ms`8z?ZR?lE%{iZSO;7!N86S z358w+>^r@TwzTDKP_-W6-^b}^_TI|34c>oC@A(_TthxN7r5&3@4Wo z1h;v%dVzxAukY_&(WUO?*j6l=i>v2%xH^kHVNU75J5j7yd$q z%e6OkqhCxj##V!stnB) zvg4IVB{}4tk)Jykd7tflrmL{mvAnG)3e&06musLWwF_=*qt4@!OIuZOQ60&?Tq?xlUx5YLna>p&Ee?rs~24$dJ zcE|Pw9pBe=qzMO*NKaQD_MhpEx-yDXHdcLVqb>Aoe)MJOe`B-$?WT@3L-%w|0ZB4{5Bp!n&zcxi zpnY9BfJ%S*wFXayA|jGo(uYd?9*s(DC8z_8R^7uMJTS~Q^Su)Ny@E4&YM5LJqXj?) z%`>j8g^RYNM2r$cpgs95Ph3T22kcmMX0YX3R*;onCJICvwM!*o=PXCOg3OeCOnrA6 ze{rl9Mef5sOontNziFdq?yE$Wbcv%&MgelGCYOobrG7|M!mM_5-1+kauQ(0X8G2}; zSiInBJw)rr`%gTd{D33g76ko4$5iTugCTa4-gV6Vw;g+@F0UXt@Pd=iX8%fQGJY zjB7hxO0>_cWB}EI@Bg_#B+D&tSIoo{OtuHrXp*X;tv=vcM;-CM>f6N^mMU_NjDfFO zq7OBRL_-6Eh#p?h_wj_=s+u`X4hR#7xz~T#fd^zh!K5N2OCK#JeoVPXhnN9yfBh}A z0N)131D8-e_Iwbub9bqpzXKvOKPEDqI_nh*Gz{{_w&+I&B5={EBa`T50GGz{S!jhq z3oAI>thFS*ifc~=HaQR!d+rJK6(Pu2RD)Sx+pzy~M|tWf(emk*RUc`gK&E1;jML?K zO*~l>AqwnquGxbZ7-B>~O-K^!e;y~RjP>0Ce#+5^MT%}ZFXGp#Jakm4rH zv>S21DE?}uitofp*7C)L0Zvd0slUkxqPoPh1}-3-$Bez%=Y%UTb`iRPhyTbK;ikN1#NeTj`V1Y{?K9#e_%7GZM=ic z^@7Fua>xnIL!E!`;PM12!*Wtf#Y!R$MAd+aEuI?H(|ccp>zhde%DcA4gbLmQaYi5W z5som(j^h&4|no_ER2j^xe)_`SJJ!v5^rMH=wwY zqG{L#IR^+BCC|IP)f=BVwTGd!l6_F+2bqU>wBU4?+Bgv;I))KmMIAohgSa8 z3~^K<3S_{hxSRgecBsbg?U1KyXa)aIpy(7P=kl&?!yKys!xPjX8=6Z=ajmqNw@;6T z?p-0<(@2S7_}OiDf171NPy`(}l?2yu6^$J-f?D5v%v&!pEt`|3I4t@GY=7b#H2@cW zv$zjTL zG^NI++hC0cVEn&D+Zh=UY4FL4F8raP7ZbsebJa)!2gbaqe}vCPLAZTXT(o_f251ed z)uXNKx&0pYC+k9;$Gf|Quvwl0XQQ~1Q0-I#5(|kcI$#aVIAl~JES%(^>;Ah}alszP zk$iFKjhlFm7V~(-RNZ}1=INqtEf)yo=FHG|*WSgohPTl0{7E|h)m3s9&zrsCcins1 z+Q^e=RG{g#e_D*2(o!zXl8N z<-Ram!;>tqj8Mo>N0U+|k>CY*41!D=2f8H0+$u80NynTcSVJs=KTy}1ZC|4b8iy%H z_v55cPHL)@=1zYIQt~mp0hIUOLJewIPwOhYU=E$Ie>GZs(Q)KgrXmX^KbUPP9|*I2 zDFgQZHe20oZ)VaBleyV1<*tKBDDPBE`y1N*!8@K&EL}?aGy`4tc6wCyj@eCi<&YxC zpXYszXY~so3t`Ez&%QiYCb~!^B4B8+?b#@I^`J<6Fw-^{dsap(2die-2LH4m-(;4@ zRj*U%e~V&UHVTS$ruTH-af%})ez+e{De{PKLUlhX{!2pxHEcCp;w^=9Q+1 z5R861R$cT5g2UkX5@Wxz|M%Y($~Wxpq^kD(BZ7)(cQs-pORH z+w=V5n09Wzho3p~%Cr%-98a*0VDN(b0)bMx#-_3aYKe${EP!Y)JeQZ82rNofhbth$ zNFyUp%H95zWfPRl$3oCZHy4n|7i4yEf2srjJNGAxTcXr8TW zAEII!-Sg_F#bSTC1X&sexZ(G92HJ55g~PrCj-)-7rM%H*Ej71k9ev-JNuaSeaF0(1 zIP?9}iKq%suf88KS z^1Ol^$k!6#l2-v4x12(-dMKd~Cgc-Q<4Lv_r2$I9V*T zN7c4n*DGEVp@=W19jYd%jiO&tG-*Ir)Hp~=8AOLJpX)8B47ux}diKI=1FWV(AYuHlv`n?TDf1m2%fx%55 zt;34L1&>N`m92fjBEUhfbno&SE8S9$YP(~Q%3kXSlrOt1HUwj=I7C#$0?xGNR`)`6 zyrMy-gix|L--JT(l_GqD7<*Ni29a3eTjVp^10S&Vu3`O6GyT4_=%xjx$mxo;hLicU zr>f1IxdU*mjN!IeIdq6}e?yjY22HPG`24&rP+3!v1UeM=VQG~{gYIl|0b9IR-gxbk z<6j^}NUOXUx1hRL=R0yqwsU}cN%aF^@`eaL-jydDPV$QswgEpRfuHJb0-4Z{B>Xyze_(bKFA(uya zPv1ly+Wohn=>zu*NQ_V+QZoHXw8uwap`i7`SHj6i^DK`BqDsB1@Qg}D2|LvEjSIie zGalJ!k(8@nAkj}42r?1LdrKwwJ7S+3T9>H>Y{Q6B>K0z0Lmoi+j?xe@!Ci7C3ygb^P}(D@M6W z#e|J@H^=#ax(Jl>kt_iiALwCdW?YjbHnR9vHxRFH=XOZ=bt}Y0jguS!PY9;71q_jOq~Z`DqM_DGyIHtYQzQiFA%n0d2K$>UBnUGj=y-~3zo+OV z0pl&@$Ex~i()e8qiX`Sq`TU1;T!2}P(W}ec92GR`f6z7-c2PPcd;3R#--SYi8QgT` zH2C1@*!y81Re*T_VBQU;PMlc$d7Y`;V19CiKA@c>RB&aKs0SO3;?(sw9pC>!P_^(_ zQfa1_UaG-UgV!TBy8a$^2@F?DGW3bgGj z=8?1N8Z;Bmt6It7dq($s3H-}D9Q(i?)a=^lmtoD5(E}5Qj1UBej1UF4j1UGhD=9KD zGBGqWD=;!AFfb=63NKA>WJFjDeMC%5geBW;dn8%5<@V9x2U>z9Zc`+iq`K|-^_xe5D1ZbH z+0nbRJJGEoP^ikv{PL^k8AbpQ%D@bx9pVm8jr9mAUPXy01BzB)i|AP$ z@e1ZzZ=v-t!U+S|Blk|ix)R}b3N-|>NM~@2!g0<*D`6cMkT;ab3&dL?O;m_P$pHcw zWALe!*k{p7f1u_#9T7?tHDj17IK!dgL5W5ghsmLTiQMg1DXllrO zRM_HT(I|U>Ru?U38l*%U@X#UxF(NMp5EUp}#0!O#5O{%rC;$)a00c!7Q^Eqk9=j}< zrpNKlxC6jd2@hPL{)LBrhvpN2y2ZiBAg~Qq1J+5I8K1f`EWyLxgA1iZs_i zFT_VH4>5k}01wxGfTtgS>eSj`e@L6t3=ui!{`?w(`k^d>jo3O3yatd4;)6EW1H6IX zDsyNtkW;@s1TPg1=R&N7Fo9SE4dbNXA;Lgca442no)$!Cf&-&1AkG0X=M94A11yNw z4g*T#HsE!DY=(9TFbQy~kcJ>xo=yu8j!w&(JddFkDiYC5 zqt->Wn)E1^ zqE>6RHQnr|_wbKFMR#Q?_1}(Qy$2qBWBAYHKTp z&?ReHd~Gc9Z!u(2%7)f2=|UZhnB{y(3A0q-u%^;gS1v=8pghO)Vu+LMS_=-)BK0cb zM-hEP^ti`=$7W_Tnp;hhX|g*EjIv&Vt{wIBb!xRqRA7tHQV6J-VdXX#lNG~l*9aPb zY?_(+^O@NH7nqUC_{_~HaRHe=sR4EriR+*Fq@`p~MkM9;iAZK}&SF zkLD)oWJYX2i9U|Aq7DM}ZL*x2$xP&22ojHoCA-P4GrOVQe*_@+s)j}&NO?>%nn&nJ zc7v9M1r!xT*3on6lZ8S&78uKoMo%!&VaxHxQoi++d&$ONpNagz4ueNqk9O))zQsNm zX$0~UEyIcCMa7l_xRA1=r<|Vy!4DidRE(n-MHbs>RxrD#>G&mu<_c?wnDmAb(MvRs zpg03iDFd+?e~di1l+`p9k+>tLGR$B_!A1fbW6T&rBOR6r${iocfGmxZn$V<36BK1j zM3!R@A_AzU$b?wu&ctnlis1;MFnbxrH4sr$f{-R#3dkw$|5%TjY|DUk@;I=o7$`f2 zlpRdq*nu*qd=2`8ek#-vFT3G1Wp4?f~oekl0#WSp}pLOkGN(Q zS$!TQfAgM}E#)?lwK=ZqVoVaQ{gG!sZVi}B_J{d&OMuDq>gKkUtaqQb15s+$_txum z;OGv^O=;~=Jk#NkJqC=Mh2+XyfVsNV$t#ka$y8lLDpai_RXQpmF@3OFy`+*p(iWG^ zgIdRQoT3u|Jm(V_=L5w?AE_FQ{V(P&WC0^;47`+18&*wQ@NM3k zLzXh_N?W6!NBDN08&(_#Zc3R}(Rl}7W4%T2)+G!u!^J9Bim4XER;MaUq+Vrl@1z3t ze`-ovmN#o;K|FIgnp@2wK_M7?x{#iVrO)CgKjA=c$tWzHK~S>CA{}Vhm<~u3CEG|T z-=;BWwVH|>UteoMWe{#9vgl!;ewL9w@y}A)Re=k4$5)iB>FCsR!sQbbEI2IE%&t|W zgikZLUui77l%+DxTf~ieJaDe-x!HJbf3-%=wWsqbtCvp=I0SCl9i26$LQdd@)j_EM zSmL`6OgxIthnyxo(OHh6GdW9}A`vM4MZ!Uo(@}{Mkq^Fhw28J<9y*iGQKg|Gb?_B-0zx3rWLf68zT zJi|1pP2NvF8p*n;3iu&WLS<1x{a=a_z&l1`zD_NsNAzQk+0+Iqs<~}Nbd21cKh7m} zX0R!V!8Rq;4+3gLPn$(L7vgRvsyQi8>fx=thJ#I`xO{Lf+Q|A)iYzyJN9y!bY)it_1Xym(yAFK5H)Vlq3R`?J9{12{`UQg z=YKmnJsm7=o_t+Y->iTXpz_Fvj^}H}V>F8+kwfOa+GQ~p`9ephV{M@Tg z2j!#rWi?)a&m5G;gXyzsczv@d;0D*l2M?iuJ1Czo2BYESqw)2q!iR4b)$K2!)PwSU znqjmA0yl%%n`%+~RDPZfe=e(=#c+Bx`Exv~zAV~3Gn~_O-A&s=?xxLv->L;Z{5-tA zZr!(@R$ueG#k9U7GWk^QShQ}N$#e^|r-NBFPOG+V(p^oqeRo~X?{04g3sA(>a6TOk zzBL`N$f8^fM_1LK!>j56Yvt(>&{RUg9{2UZKmM_k;-7xJ_;`Gge-zJJ*`{@^K8(!ncpt%I3ndYAYx*ZV_hmYNs6ntxOtmB;1d@=1A8o|mu7x8?hCP!2}Zn?d=x zyqo|ads{C4hYvZH$!RO@Y-TU*C7Cv?(JR*Uk zP5eRN1k(%7s4bb@e@C)+FW;X%ebWF9VNy=URTD|FxKU0=cXNPdKKxoPZe~?gF8-X9fB&jxlQvdyAFO_U_T{F!b#=68!D)1KZ@fh7^ z@bpy!eWid8e;F>utWO9}%by`kJTG6A|AgdlTAr0JDMh>~FCb0)QobucVyc)gAY{yc zgKY8nZZxVEOZTdi$JMZ!RrBE-vPcW`@(cbyEb0G0s#*&-<;}P04ZxfSrtuK;lC;yK z9}ZlboodDF4I^e^&l$jVkvF_wV05fAaiQtxB~; zmEc97%7EX2^&M4qgFW8vVClj2YV-)S_yRPDnxmxNO6vsuO$vMo=4BcnEU!L~2<-Z% z!FG{QT#w&g`Qqr+izgpXYy7rE3LP!tXQ2$R7V(P>eqPudKf2BEvwa@X3W1{S5y#*S zKZ7SUe_jAS&=z*DfdAsn`&VykV+mVq#bCV0Zz5YMevqyBURyZ@zh=v*GvN%h+%5#v zUMb+ilk>BGzHVaN(PVV>^7Cl;`(4!|aP*i4@XO!$MR}<7?kn&^sg^0uTm7+-GgwTC^ynj=X&6t4#1wIM|96@nj~KYMocvB7(@mAPd$#eaM7 z9d4CbS%^EN)n|}SPnU@Ql0tF|<1g(rSmU}e|1B-H&S-5U_X@@zULBvjKWUQLW+bhu zf0LQ9KMcwKboLmKyChfrEd{8KlkOFYAAfjr`o7+#z4>jMe?lVuJXzcJdJV79Ej4xz3ae=mlx+;IG5I36y(m7{7tzrDM>DQ^eU`C?Mu z4#!XvFXxV{YdSpPI*a`tB?q$x{~ufpF9+=nwcaa{y!deb^xauoQ`>gbP$onx@gMQv zzn4-!LQ(xYiUy~_Vllj|7L#cgqUmgS+dfXxd!>}uuTIXM;D+IJGM=0)HYXKpf7mZQ z{-Z3Rvl_{%w)84LK!n1ruWr!2vY(Z8Jz3Wc(`7_zpAYH1V*1I4m#-clCxN%_kSvzf z=##iX64Kp&gS6rF03-Qh&Xx7nXRyHCPjjN#I-p$H4^_N2U67WP5cq$f}pByQi$}Gp|gRIJMKJ-Yb_}96fq|bk-OvbKO_vCR+{U zow=><2S4N7$A3G0b95?2&uJNC06aKR_>wcK>`>J>(|e-S7ZqAr+UXqNcK*VWocGuot1rHup8<_D6CthWMKjqC`~1k%E7{#e@=DB6<}d~UMWH$ zk<~thk661xDPQ6dvszn!;@LA6r-WXr5qH)to*xcj+kvNug*NR2szQfsGn*X>u8mjA zh)Bo0>D36QjASw_H%2VV#Te6g4@>!*GC3VG(jJ#L$+QoqBm_a6lYYzQ)}OGF={1L} zMHJ;n2wknSxMYvCe{XEUb6zh@%imYGg!p~yus;PyDXb7%Tl&@mJQD#c6knKcy{~q zyyf+Cmu0uYvIsfPc(>$P?!vR*pXV(vmb*NMF3)HT8O$PMS?$7d*q`OChb$eY^=5O% zW1^)wukx%{e|e7k^Stf2q06$_#Inmc4rT|At=OOAZaLiH(5!Iie8ytPS@f$6$$LQ9 z{~dr1Z&Gx5Gi{A$0W5?rety+Tt=ga6{@3tbZdc6H=G@xMrM%mPS-n5A{cqO0%$hCG z=5f~U!mZh#+x{2bU2ff$tl*d2;*Zhn!0kOUS^vA-e=fHx!Bv|Uw|Su2$!zbD!}{Nx zcDPk5PUiAdfZu~!GP{%6-XnSSzWMC(y5eHq_oXc_cVYG(X>0SV%Pz-eBf3&%wL#Ro zaD0!X)$_`+%j&9=sU9c8pB~%Js=G(F>VI3;`^Uac~Fk4)Bo#NXw1n;~S;*2i7Ay+`)i8?{I)~GF5WG%UA5cQ>el(c)NXam zxW$_#wqX}$*QB!Z!F4r1D32$1_yXYo?q_&ze}_K}NYnp0yqXuk@&*ro-H|`JHpJg) zOrMTF*&IG?Si2XlBP9c;*s3y9qqg;vi<0zhsUTWphP6 zH0{Og5^mduyC%{FL1>bE#OWc1tv{8mub;UD1l7_*Lm9k~<{I@rXEpXSvizH&gx z%nDcairJ_YuIfi1xeaZaAiJ--?mjPR&{}RyKavn@`hku$EBy-TxD}o=e!8PqVR_G= z!vyEntb$UAHT|GSZ&p_CQ0z`wvcOSTaR8xzg3O;feVR=c(nl0hB8*jjO&N1MfVyOI zeZcvkNhx)x&wPi#QFS=R@u!d!%eV8Y$qO&1)%X!{P=uw2{x|81C&H7_0~436QU+d8 zGB!pvGBidrGeI>pF)&6mF+xK&I6^r$MlnW2GBHCiJ|H|YHbylvG)6NsK{YfnFh(;m zLPItoj;9th&VH~s-u5R2eQ zTLhs{5Ne?i*Y`L1@LPMIbM`%ZuXD|;JY6u$kHRrH?q&@}GPm!35A2yrck?Ss1-HUM zrJ|YDPk#pu&L0MzE)X^vMtK&hRQt3jwnl~Rn|mVi85cIvNqDcN_B2E zca>(i)m~JZ85j4lT0d05^d7TdRgk_Wm7yNKWb6Q`0UBWgWBW->FdMcowvW^dpTI80 z_L5ql6?QYWhcpM~0%c+%Z-aTjZHWiu?a%?=Fn_j_)Cpa1n6a-&^I-vW!$RnRKDWBf zdi`E59wAjo>tPLShPAK}wsFZJsKNj&g2nJD48jsv3d>+Qtbos<-)&a2*8L1t!fF_D zYr3R~FIa6Wi~^S=9+0>rY43F?+VNq~9Yfr!_ux0@!)}%HdY)cJi}Spkm&w<;RS#%Z z?|-|ABv>~ea~s^CS?$3%=tpV~cEGsX=uKU+o!K$aaZ~2ndma3Q+eD47~}kQL9^3iDYJYJ%Gp=9I>UOcLG{^1wPfBy$Zt9y(ZEjEg zP@3o7^NUiu`^i3~4);fElsdi8eP5}|3*Y~&G~Wxq{i?LU3(pTJb$fAiL}{TH(+^5L zo;5yH>h)~$g;K?{v%^Y#o?ZA)so%3#50t828oQ-5;H4|QN{hVovR!Ghm)_KymuCJd z2XAi&?+yolXTd+Gg7;5@4^zSam*ObwT97>sYTpFq_^->GszJ+m&~`fLyc~4Lqw>nj zVBk(Lcr{plE*RPytU9j6X|6N@`mpJeGzs)Z;`2-Tx{r81{A1j<=TG|x2EwyYmta-~ P9||-xHwq;sMNdWw$=JpI delta 38016 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 Y00>dCR+pbv1|JGDI4}w&B}Gq03Pa_g+W-In diff --git a/semester3/numcs/numcs-summary.tex b/semester3/numcs/numcs-summary.tex index de2d741..07bbfde 100644 --- a/semester3/numcs/numcs-summary.tex +++ b/semester3/numcs/numcs-summary.tex @@ -62,15 +62,28 @@ % ╭────────────────────────────────────────────────╮ % │ Main content │ % ╰────────────────────────────────────────────────╯ + +% ── Introduction ──────────────────────────────────────────────────── \newsection \section{Einführung} -\input{parts/introduction/rounding-errors.tex} -\input{parts/introduction/time-complexity.tex} -\input{parts/introduction/matrix-multiplication.tex} +\input{parts/00_introduction/00_rounding-errors.tex} +\input{parts/00_introduction/01_time-complexity.tex} +\input{parts/00_introduction/02_matrix-multiplication.tex} + +% ── polynomial interpolation ──────────────────────────────────────── +\newsection +\section{Polynomiale Interpolation} +\input{parts/01_interpolation/00_polynomial/00_intro.tex} +\input{parts/01_interpolation/00_polynomial/01_monome.tex} +\input{parts/01_interpolation/00_polynomial/02_newton-basis.tex} +\input{parts/01_interpolation/00_polynomial/03_barzycentric-formula.tex} +\input{parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex} -\input{parts/interpolation.tex} -\input{parts/fourier.tex} +% ── trigonometric interpolation ───────────────────────────────────── +\newsection +\section{Trigonometrische Interpolation} +\input{parts/01_interpolation/01_trigonometric/00_intro.tex} \end{document} diff --git a/semester3/numcs/parts/introduction/rounding-errors.tex b/semester3/numcs/parts/00_introduction/00_rounding-errors.tex similarity index 100% rename from semester3/numcs/parts/introduction/rounding-errors.tex rename to semester3/numcs/parts/00_introduction/00_rounding-errors.tex diff --git a/semester3/numcs/parts/introduction/time-complexity.tex b/semester3/numcs/parts/00_introduction/01_time-complexity.tex similarity index 100% rename from semester3/numcs/parts/introduction/time-complexity.tex rename to semester3/numcs/parts/00_introduction/01_time-complexity.tex diff --git a/semester3/numcs/parts/introduction/matrix-multiplication.tex b/semester3/numcs/parts/00_introduction/02_matrix-multiplication.tex similarity index 100% rename from semester3/numcs/parts/introduction/matrix-multiplication.tex rename to semester3/numcs/parts/00_introduction/02_matrix-multiplication.tex diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/00_intro.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/00_intro.tex new file mode 100644 index 0000000..bad5dd7 --- /dev/null +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/00_intro.tex @@ -0,0 +1,37 @@ +Bei der Interpolation versuchen wir eine Funktion $\tilde{f}$ durch eine Menge an Datenpunkten einer Funktion $f$ zu finden.\\ +Die $x_i$ heissen Stützstellen/Knoten, für welche $\tilde{f}(x_i) = y_i$ gelten soll. (Interpolationsbedingung) +\begin{align*} + \begin{bmatrix} + x_0 & x_1 & \ldots & x_n \\ + y_0 & y_1 & \ldots & y_n + \end{bmatrix}, + \quad x_i, y_i \in \mathbb{R} +\end{align*} + +Normalerweise stellt $f$ eine echte Messung dar, d.h. macht es Sinn anzunehmen dass $f$ glatt ist. + +Die informelle Problemstellung oben lässt sich durch Vektorräume formalisieren: + +$f \in \mathcal{V}$, wobei $\mathcal{V}$ ein Vektorraum mit $\dim(\mathcal{V}) = \infty$ ist. \\ +Wir suchen d.h. $\tilde{f}$ in einem Unterraum $\mathcal{V}_n$ mit endlicher $\dim(\mathcal{V}_n) = n$. +Sei $B_n = \{b_1,\ldots,b_n\}$ eine Basis für $\mathcal{V}_n$. +Dann lässt sich der Bezug zwischen $f$ und $\tilde{f} = f_n(x)$ so ausdrücken: +\begin{align*} + f(x) \approx f_n(x) = \sum_{j=1}^n \alpha_j b_j(x) +\end{align*} + +\setcounter{all}{2} +\inlineremark Unterräume $\mathcal{V}_n$ existieren nicht nur für Polynome, wir beschränken uns aber auf $b_j(x) = x^{i-1}$. +Andere Möglichkeiten: $b_j = \cos((j-1)\cos^-1(x))$ \textit{(Chebyshev)} oder $b_j = e^{i2\pi j x}$ \textit{(Trigonometrisch)} + +% FIXME: This could go into a special "maths theory" section -> GOOD + +\setcounter{all}{5} +\fancytheorem{Peano} $f$ stetig $\implies \exists p(x)$ welches $f$ in $||\cdot||_\infty$ beliebig gut approximiert. + +\setcounter{all}{7} +% FIXME: \inlinedef \textit{(Monom)} = \fancydef{Monom} (exactly the definition of fancy* macros) +\fancydef{Raum der Polynome} $\mathcal{P}_k := \{ x \mapsto \sum_{j = 0}^{k} \alpha_j x^j \}$ +\inlinedef \textit{(Monom)} $f: x \mapsto x^k$ + +\fancytheorem{Eigenschaft von $\mathcal{P}_k$} $\mathcal{P}_k$ ist ein Vektorraum mit $\dim(\mathcal{P}_k) = k+1$. diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/01_monome.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/01_monome.tex new file mode 100644 index 0000000..7da3f84 --- /dev/null +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/01_monome.tex @@ -0,0 +1,39 @@ +\subsection{Monombasis} + +\fancytheorem{Eindeutigkeit} $p(x) \in \mathcal(P)_k$ ist durch $k+1$ Punkte $y_i = p(x_i)$ eindeutig bestimmt. + +Dieser Satz kann direkt angewendet werden zur Interpolation, in dem man $p(x)$ als Gleichungssystem schreibt. +% FIXME: It'd probably be better to use align* environment in general, it's much more flexible +% FIXME: Having a new line before $$ (or align* environment for that matter) makes the space between text and math env larger! +$$ + p_n(x) = \alpha_n x^n + \cdots + \alpha_0 x^0 \quad \iff \quad + \underbrace{ + \begin{bmatrix} + 1 & x_0 & \cdots & x_0^n \\ + 1 & x_1 & \cdots & x_1^n \\ + \vdots & \vdots & \ddots & \vdots \\ + 1 & x_n & \cdots & x_n^n \\ + \end{bmatrix} + }_\text{Vandermonde Matrix} + \begin{bmatrix} + \alpha_0 \\ + \alpha_1 \\ + \vdots \\ + \alpha_n + \end{bmatrix} + = + \begin{bmatrix} + y_0 \\ + y_1 \\ + \vdots \\ + y_n + \end{bmatrix} +$$ + +Um $\alpha_i$ zu finden ist die Vandermonde Matrix unbrauchbar, da die Matrix schlecht konditioniert ist. + +Zur Auswertung von $p(x)$ kann man direkt die Matrix-darstellung nutzen, oder effizienter: + +\fancydef{Horner Schema} $p(x) = (x \ldots x ( x (\alpha_n x + \alpha_{n-1}) + \ldots + \alpha_1) + \alpha_0)$ + +\fhlc{Cyan}{In NumPy} \verb|polyfit| liefert die direkte Auswertung, \verb|polyval| wertet Polynome via Horner-Schema aus. (Gemäss Script, in der Praxis sind diese Funktionen \verb|deprecated|) diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/02_newton-basis.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/02_newton-basis.tex new file mode 100644 index 0000000..5da7a88 --- /dev/null +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/02_newton-basis.tex @@ -0,0 +1,2 @@ +\subsection{Newton Basis} +Session: Herleitung unwichtig, konzentrieren auf Funktion/Eigenschaften von Newton/Lagrange. diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/03_barzycentric-formula.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/03_barzycentric-formula.tex new file mode 100644 index 0000000..e983180 --- /dev/null +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/03_barzycentric-formula.tex @@ -0,0 +1,2 @@ +\subsection{Baryzentrische Formel} +Session: Gemäss TA sehr gut beschrieben im alten Script diff --git a/semester3/numcs/parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex b/semester3/numcs/parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex new file mode 100644 index 0000000..680c25b --- /dev/null +++ b/semester3/numcs/parts/01_interpolation/00_polynomial/04_chebychev-interpolation.tex @@ -0,0 +1,8 @@ +\subsection{Chebychev Interpolation} + +Session: Chebyshev Pol. : Abzisse = Extrema, Knoten = Nullstellen + +Lecture: Orthogonalität ist eine wichtige Eigenschaft: Siehe Lecture notes (handgeschr.) für Veranschaulichung. \\ +$\rightarrow$ Orth. liefert die Koeff. ohne Rechenaufwand. + +Lecture: Clenshaw-Alg. relativ zentral (Taschenrechner nutzen diesen intern) diff --git a/semester3/numcs/parts/fourier.tex b/semester3/numcs/parts/01_interpolation/01_trigonometric/00_intro.tex similarity index 73% rename from semester3/numcs/parts/fourier.tex rename to semester3/numcs/parts/01_interpolation/01_trigonometric/00_intro.tex index b61cdd5..b0e4157 100644 --- a/semester3/numcs/parts/fourier.tex +++ b/semester3/numcs/parts/01_interpolation/01_trigonometric/00_intro.tex @@ -1,6 +1,3 @@ -\newsection -\section{Trigonometrische Interpolation} - Lecture: Wir besitzen nicht das komplette Vorwissen in der Analysis für dieses Kapitel, d.h. wird totales Verständnis nicht -Lecture: Intuitiv wird Fourier-Trans. zur Kompression genutzt, z.b. jpg format. \ No newline at end of file +Lecture: Intuitiv wird Fourier-Trans. zur Kompression genutzt, z.b. jpg format. diff --git a/semester3/numcs/parts/interpolation.tex b/semester3/numcs/parts/interpolation.tex deleted file mode 100644 index 3351232..0000000 --- a/semester3/numcs/parts/interpolation.tex +++ /dev/null @@ -1,91 +0,0 @@ -\newsection -\section{Polynomiale Interpolation} -Bei der Interpolation versuchen wir eine Funktion $\tilde{f}$ durch eine Menge an Datenpunkten einer Funktion $f$ zu finden.\\ -Die $x_i$ heissen Stützstellen/Knoten, für welche $\tilde{f}(x_i) = y_i$ gelten soll. (Interpolationsbedingung) - -$$ -\begin{bmatrix} - x_0 & x_1 & \ldots & x_n \\ - y_0 & y_1 & \ldots & y_n -\end{bmatrix}, -\quad x_i, y_i \in \mathbb{R} -$$ - -Normalerweise stellt $f$ eine echte Messung dar, d.h. macht es Sinn anzunehmen dass $f$ glatt ist. - -Die informelle Problemstellung oben lässt sich durch Vektorräume formalisieren: - -$f \in \mathcal{V}$, wobei $\mathcal{V}$ ein Vektorraum mit $\dim(\mathcal{V}) = \infty$ ist. \\ -Wir suchen d.h. $\tilde{f}$ in einem Unterraum $\mathcal{V}_n$ mit endlicher $\dim(\mathcal{V}_n) = n$. -Sei $B_n = \{b_1,\ldots,b_n\}$ eine Basis für $\mathcal{V}_n$. -Dann lässt sich der Bezug zwischen $f$ und $\tilde{f} = f_n(x)$ so ausdrücken: - -$$f(x) \approx f_n(x) = \sum_{j=1}^n \alpha_j b_j(x)$$ - -\setcounter{all}{2} -\inlineremark Unterräume $\mathcal{V}_n$ existieren nicht nur für Polynome, wir beschränken uns aber auf $b_j(x) = x^{i-1}$. -Andere Möglichkeiten: $b_j = \cos((j-1)\cos^-1(x))$ \textit{(Chebyshev)} oder $b_j = e^{i2\pi j x}$ \textit{(Trigonometrisch)} - -% This could go into a special "maths theory" section - -\setcounter{all}{5} -\fancytheorem{Peano} $f$ stetig $\implies \exists p(x)$ welches $f$ in $||\cdot||_\infty$ beliebig gut approximiert. - -\setcounter{all}{7} -\fancydef{Raum der Polynome} $\mathcal{P}_k := \{ x \mapsto \sum_{j = 0}^{k} \alpha_j x^j \}$ \inlinedef \textit{(Monom)} $f: x \mapsto x^k$ - -\fancytheorem{Eigensch. von $\mathcal{P}_k$} $\mathcal{P}_k$ ist ein Vektorraum mit $\dim(\mathcal{P}_k) = k+1$. - -\subsection{Monombasis} - -\fancytheorem{Eindeutigkeit} $p(x) \in \mathcal(P)_k$ ist durch $k+1$ Punkte $y_i = p(x_i)$ eindeutig bestimmt. - -Dieser Satz kann direkt angewendet werden zur Interpolation, in dem man $p(x)$ als Gleichungssystem schreibt. - -$$ -p_n(x) = \alpha_n x^n + \cdots + \alpha_0 x^0 \quad \iff \quad -\underbrace{ - \begin{bmatrix} - 1 & x_0 & \cdots & x_0^n \\ - 1 & x_1 & \cdots & x_1^n \\ - \vdots & \vdots & \ddots & \vdots \\ - 1 & x_n & \cdots & x_n^n \\ - \end{bmatrix} -}_\text{Vandermonde Matrix} -\begin{bmatrix} - \alpha_0 \\ - \alpha_1 \\ - \vdots \\ - \alpha_n -\end{bmatrix} -= -\begin{bmatrix} - y_0 \\ - y_1 \\ - \vdots \\ - y_n -\end{bmatrix} -$$ - -Um $\alpha_i$ zu finden ist die Vandermonde Matrix unbrauchbar, da die Matrix schlecht konditioniert ist. - -Zur Auswertung von $p(x)$ kann man direkt die Matrix-darstellung nutzen, oder effizienter: - -\fancydef{Horner Schema} $p(x) = (x \ldots x ( x (\alpha_n x + \alpha_{n-1}) + \ldots + \alpha_1) + \alpha_0)$ - -\fhlc{Cyan}{In NumPy} \verb|polyfit| liefert die direkte Auswertung, \verb|polyval| wertet Polynome via Horner-Schema aus. (Gemäss Script, in der Praxis sind diese Funktionen \verb|deprecated|) - -\subsection{Newton Basis} -Session: Herleitung unwichtig, konzentrieren auf Funktion/Eigenschaften von Newton/Lagrange. - -\subsection{Baryzentrische Formel} -Session: Gemäss TA sehr gut beschrieben im alten Script - -\subsection{Chebychev Interpolation} - -Session: Chebyshev Pol. : Abzisse = Extrema, Knoten = Nullstellen - -Lecture: Orthogonalität ist eine wichtige Eigenschaft: Siehe Lecture notes (handgeschr.) für Veranschaulichung. \\ -$\rightarrow$ Orth. liefert die Koeff. ohne Rechenaufwand. - -Lecture: Clenshaw-Alg. relativ zentral (Taschenrechner nutzen diesen intern) \ No newline at end of file