Computational Projects 5 5 Motivation Gaussian Elimination Introduction So far we considered algorithms that correspond to very short MATLAB programs, eg the main part of Euler's method is simply One of the aims of this section is to write a slightly longer piece of Matlab code, showing how it can = xstart; be constructed piece by piece Itx() is generally easier to write a basic code, and then refine it to make it y() = ystart; more sophisticated Lecture 5: Gaussian Elimination / for i=:n Remark This section also illustratesyprime how to= write a standard method, in this case [a very close relative x(i)*y(i)^; y(i+)algorithmic = y(i) + h*yprime; of] Gaussian elimination, in a neater form using matrices Needless to say, matrices are x(i+) = x(i) + h; important; as the abstract of a research seminar given this time last year put it: http://wwwmathscamacuk/undergrad/catam/part-ia-lectures 5 Functions of matrices are widely used in science, engineering and the social sciences, due If we want to dothey something more complicated, we need to to the succinct and insightful way allow problems to be formulated and solutions to be expressed New applications functions are regularly being found, understand howinvolving to buildmatrix up a longer program, based on simple ranging from small but difficult problems in medicine to huge, sparse systems arising in ingredients the solution of partial differential equations In the next lectures, we discuss an exted example of this LU factorization 5 The problem Definition Let A be a real n n matrix We say that the n n matrices L and U are an LU factorization of A if (i) L is lower-triangular, ie Li j = for i < j, Our method is based on a trick, which is to write A = LU Given an n n matrix A and an n-vector b (both with real-valued (ii) U is upper-triangular, ie Ui j = for i > j, and elements), we want to solve Ax = b to obtain x = A b where L is a lower triangular matrix and U is upper triangular (iii) A = LU sha_base64="civx6y/9uwyp/irfisozq9ptvg=">aaadaxicbvlljtmwfhxcayipkbbky9egdridjsmkwddsjlqa5sdr6yimvlzzri7kdphrfqmiff8iosevl+a/egqftgs5wf9hob7+pwbwghuxrz/csjr/cvlvuxn7r7++hd8+tlgdptncmwtklaiuoo+4ebrgccschjqwa/hbmwlmvqkgekyutznjdgpjdu/4iyqpdvkjbzv6u5jmrxkxwkwwyfpkoriq7fxqkpxetrkrva+ud9nbymtswgajem68kfwrnwqygczwydsva5kewujltquaslvyr9oeflhjgnskbnsdapa4ihg+ibqn8ul7j9em+joisghwybagnlxo8alwgymgnsdvidr7z8thx+romjndfcnl8+rhqjjwn6ng7ex/g68bxksbdnazsbtpmmwdlmy4jyoziwoqyhxnarzekjbixmyohtrbyyubxetofeitdudesa//enfpvruwktstj/cgqnuza8d/ccps5a9gfvdf6ucxzac8fioztu448z76fezccim9/fbeomyc7/edttpua9czxeaalsjeouiot86told5nr5+tri99bg9qqcoqs/rcxqlzlafsebd8cn4enwnp4ffwu/hj8vmnjwpei7ef78c4t8ws=</latexit> sha_base64="hdowt/gq+mxltlkpyp6qhsqnut8=">aaac/icbvlljtmwfhxcawivaksfiscqlo5fgmsmn6obfsawsnvzqqurgcrkrfksm5qchir+bnicfwm+wyid6yloccvl+ec6uf66zmzng4/hwen7eunn757/6dh496j5+cgdvoqsdecawngrjkmarjyyynptebmnkw58vzkngrdlpxozwdcyglkxgb66bf7dag87urzskrhrtljqiamh4gkeppcuihaczt+lolwpafsr4oo6bzywtlzlk78aq7cxzfvdbknvqljtxrkxs9l7rwfbbqrwzg/fc6wkbmwi8txefuxunnkkrzszfi8ehtmh5euzoraxxptcnobl4dmksvb4wznlwcgedxgdyk8gg9etvvskjuevhwgt+hqsbjm+sbpovfhnsenonisdsbmkri8xazyrt99rgbrieko6c6keqc8cymwy8a/8zcabekxrv4owhdfrktmln9bc5tz4p7wolnvgwybiyv5ljrxdvnb8zpmmxlpb5gyis5irtcrqqkz7djtdksrpqewdpgjbryzbrydn+mimhyyf9/vhhri99aw9ry9rgl6jy/qonaixise+br8cb6gn8nv4ffwx6udlyt9fohd//avxx86c=</latexit> Therefore the factorization takes the form U L A If the inverse does not exist then our method should notice and return an error Lij = for i > j 5 4 4 5=4 5 Uij = for i < j Our method will also work if b is a matrix of size n m If we set b to be the identity then we obtain x = A (if it exists) 5 Application: solution of linear systems We assume (for now) that this is possible In fact we assume that it is possible withax Lii==bThis for all Let A = LU and suppose we wish to solve is ithe same as L(Ux) = b, which we decompose You might remember that this can be done by a method called into cases where this is not possible are discussed later Gaussian elimination The method that we use is almost equivalent, it Ly = b, Ux = y is called Both latter systems are triangular and can be solved using forward/backward substitution Specifically, first we solve for y; thus sha_base64="ioio/sfzbcvsqyizidyuk7m=">aaacghicbvfni9swefxcr6z7lbbhxkszhtlrlqunpyykwhhrbqrbfiembybgrzcpjwbhh7p/pndwzvrq7hza8hhvzp7lddswjckn6powcnhj5+mj+knz56/edl59frsqhuocrmvdhallhwwkm8agycyiwm+xbe6+kgitq/cptglwpqlqobqcxqpxezgyvp7lgeoq8fmyxkukdsazxp/8lopixp5vpozwrchop8647vnnuppcp7yltqtam4afcgqgoli6qni4+/hcfdejjnzsm+6habjalqsj7+zouatqu4bguxlgncyonxgksmdqfbvgwklwgqeghxfl9ob9h5iclrujrzu6z/+d8kcsak8dpyvshenvyftmxd+wnlhw5ah5rfgpwtpk6mfdkeaa5ckwargr4a6ub8aad+e/dlwkk/rdfsazfufflsbywetpjyyx9p5efxkig5o5b5iyx8jofkk7kgc8ljdfkzgo+ooig6it5e7lyggzb8hbrz//ahi7xmg=</latexit> sha_base64="dv9cqm84debs4chhtxu9cnaph4=">aaacghicbvfda9swffw8j6bev7y97kushfqps8tgy+yhkjc9drduhtiea/naezfkicntgvap7r/z6yanfljaxraczrnhumoijblyso+jr4ydpj8bh8bpnl6+mrx+cmbjbcsey5qoai4irxdjubf5pgyalgvmxnfd6dog8kb9ddunkwm4hvn4aknthcgymaxz5nmex8nnuqasnfjsa5whvwsamq9pl8vlcgtsweh7edydqlgqufisf8nsu+x6kzxbqcusts8rj4zhesd+vjnjkl+6ipqtqakrnqyj5nzcnayuqxwryuwt7vyejonmylbrlwpgw6hxgaacixbl9+f9engslojhzl6j79d8kdthyni9dzv8deryf9qyddwxledktw4vuzoqwkfdq/ukacknmhesldkww8ndkduaaebcfxy4bfbco+voavnipqjfiwpwexzlem6y+z6fmibixeufekosks/knhwnfrbglklfbjxeurafrxyi9a4gw8xbcldr78hpstr</latexit> sha_base64="agwwih4+9/qggwckv4yvpldpii=">aaacghicbvfnj9mwehxdvzd8fthysegi7aneq5vaimoixjguetsftvxjmkvmnspfysopt/cfzxudnsxksw9vtczz7ogymss5kbuftg4apht8zh8dnnz+8nlx6fwnrnbc8frw5iohijoxdjhjf4bkhletn8o+/9bqnfbx+4xynrhruwpscgwvuemkzbkxe//kmcdx5olnlcurihyzjt95rrtowmfzeeczbw7dqfp5xqatqoee7txgxl7vyz4lmwnvhyurcbfx+p449msazzf/pmadmjkhltatlr8ahdlyctuuwng7lwtjbjqa7midfasvlgpuoncu/d6cjr4ptehlosjhdz/54unbuvb46+xfyupp/k9btq78tpjcn6dzw+nylzsv9m+avoig9yfjasbihwv8oyic78b8hlhuu+g6ekdmqg+kylprg8nbfkxr6fts+/djgnyvvyjpwqrj6sc/knxjaf4esg/bmnrdrfjehyjxqnhpk5kciz8b/9pevq==</latexit> sha_base64="kreyces9wfct6bf8pfmxdoafncm=">aaacyicbvfnb9naefbrxk+ahy5jahinck7qgqhdpvyasskipqmuhxf6/u4xmu/rnxata+8rf4h/wrzqzthejlscs9vtezm/mmr5xlcs/o/jw7tt7xchzx4+ojxk+htzfenk7gvfhlxnopsppceqsfj7xdrnofc7y9atxzxfovltmldyljrfgvlkwslqy+gvroyut5dtmgrdtypmlyxxumgkbn8jqzwbrtnplbay5vykrdtj++pstlpzvjyvjurv9vnmgcywsljvuwdjyvqhsbnpxncydgdsqr4gvbtjqnhm9bilsav7zrrz8gbuloba6pcszaqoes65bdutjotgeqbodi7alk+xwtzywgjbtfp4mnsa7kilhwhyxmpnxzqvcb6g4rr9ot6mhrwbrqwheeidiy/axhu/xni7mw7we/j8b6h8tilqrtci64alycstafdqrpufa4sig5cdlmcqlijgsknu5qvbdihwwr+a6nyq9bstnchy4tpnx+uvwdpx+z9kbe8fesjcszw/zmfvattiuiehv9cn6gpgnmff49/xkxga7modul+odfpmjiug==</latexit> sha_base64="y5qu5tytg564/zraeacvzdtg=">aaacghicbvfda9swffw8j6bev7y97kushfqps8tgy+yhkjc9drduhtiea/naezfkicntgvap7r/z6yanfljaxraczrnhumoijblyso+jr4ydpj8bh8bpnl6+mrx+cmbjbcsey5qoai4irxdjubf5pgyalgvmxnfd6dog8kb9ddunkwm4hvn4aknthcgymaxz5nmex8nnuqasnfjsa5whvwsamq9pl8vlcgtsweh7edydqlgqufisf8nsu+x6kzxbqcusts8rj4jdmju/vkmsysfdghibalaxsz78zsugtrkvywksxaajdispxnemmnifjwwlds4dfcbrlvy+a6+iewjaae45ydm/+o+fbwrutrejsxdvaz5pzuurlynolw4ekrlvracuoxstoqgmqtjlhyy4egulgaahphpw5cniiuxxgcxkhr6p5ah4pjsliaz9mfz9pzbenmyvcpvysljywdytr6tc7igjnysp6px6dikotpoy5tetuajyeytoajo6/jemss</latexit> sha_base64="y5qu5tytg564/zraeacvzdtg=">aaacghicbvfda9swffw8j6bev7y97kushfqps8tgy+yhkjc9drduhtiea/naezfkicntgvap7r/z6yanfljaxraczrnhumoijblyso+jr4ydpj8bh8bpnl6+mrx+cmbjbcsey5qoai4irxdjubf5pgyalgvmxnfd6dog8kb9ddunkwm4hvn4aknthcgymaxz5nmex8nnuqasnfjsa5whvwsamq9pl8vlcgtsweh7edydqlgqufisf8nsu+x6kzxbqcusts8rj4jdmju/vkmsysfdghibalaxsz78zsugtrkvywksxaajdispxnemmnifjwwlds4dfcbrlvy+a6+iewjaae45ydm/+o+fbwrutrejsxdvaz5pzuurlynolw4ekrlvracuoxstoqgmqtjlhyy4egulgaahphpw5cniiuxxgcxkhr6p5ah4pjsliaz9mfz9pzbenmyvcpvysljywdytr6tc7igjnysp6px6dikotpoy5tetuajyeytoajo6/jemss</latexit> sha_base64="vy7twtgg/jsbzcrqufscqmhi=">aaadcxicbvlljtmwfecayivaksvzriw4kqgshbaqrbcckqaltkzpsc5ny9wpyhamlvhskzgt9ghtnwfp8kkbu6nczrdlsxdnnfptefny6webxgf6foxqtbrnrsb9+7779jqyjacmsoaheouakr447gselqskpwdfddft+firgcqeuwjunmiueceeehwfdpwhjd9apoeiabuppapcesizvuovlpqukkqvt4bcpulcwyiohzy47hw5bsetysvqhd8pjp6tqpifm5zobpc9d5wxmq6aqdwzilauryduttfsbzigkmaibx8nwfegclp+iekvucykwznwhejpdesgi8q7drtbfqg8q+ufwlcxyzo6ghxek9evvpqpmagpz9e+4av5x+7jfzlq9qx+wmbjojfunfztanb9nwaavdjyojyokgpzvwxdjobppvxzlwhzkjhpvkuknntabltxwycmz5nr4oxxsh8zaiktxuvqisp7xmubf/htsqxp5/wxjwvq8xoguwvalvpvw4zn8icxngctpczwqsiiyw5z/gtpccxsm6bnzakluhkvoyxhsod/rjoj+8o+gdvthkthc8cb4g+espasog9fbutakwejdt+gx8gvofowfy9+nivg4tbnfrbjc+/nhlta==</latexit> sha_base64="zgxqgftgdbnyfgfuavxrqt4krwy=">aaac6icbvfnb9naefbrk+ahy5jgiqyiwykyq4gfqphediucrsv4qjalex9vsh7u7bogs/wpuics/igs/gzprnejnyienpvzmftv5l4tcofwxhjzubt/zuxvdu//g4apb4ycnzjsw8qkztjtndouheytfcj5aw5vbnkab4c9p6zqtrn/bdcnii6kawj6kn54hdwu5ubrsmnwuebkkiohxblmq+yuyrqosg467nfmwkudmou5xtdotmudtov+ubcu9asao8zsxyixviwqjfiollgctgojqvtvi8bk4r+eg78qyzwg8/aviooaqmyfwvzpmp8hierarwmpwb4xoivd6j+lusjqdedrnx/sx6n4eadjfuwt7zxpb/8yqrdfdontpqysucdzsi4jj7n/wof5ttqqlpvvqu8xdrnsoymxnike5rgizyyxutvc6tve4ze7pcvan/6dngyzfzfqh6wa5zhenykycguixcowwnkffwieos8lpcqyirvnv7/tpelyngmhosueqosq7zcbyehoyqejz8p94/ebibi8/icjaevkahjep5jhmcavebebczbu4bfwe/jjijumtjvpyu6ep/8cdbzrg==</latexit> sha_base64="t8k+mv9ihwvxvxaoqxupnipyi=">aaacuhicbvflb9naef6bvwmvfi5cvkrinck7qmqfoatlwrfitkkurg8htur7mpawbdeln8rv4g/wplmgnpgek84szpztd4ost5jfkfxg4ephj85ejp69vzfyfj49exzfsn8ejyzdvdorkgrzwiu8ahyczhuu8s84bfx6eha89vgxpqiwspqafxovxr6wbl9ufxzokxejjmostfrbpsomgirnziiy+bzvss+fqa6uz9f8gufnsz7vfqizpasobj4fzq6qcgsnqzo8cuuji9aw8zsahxjfs+lhgot5y4lk6jxdiapjoixcgivw6kajfjejnnkz/w+spdgwvzvh7/cfveq9f4oybomsanxxgvbqkq5styqniaxuuazsgkvbdttsev+hqv4rrpd95/mzrqrfudh8hhcrrldc7/ccvwlertpqm9wjebagyvdxbpmwodo5q+lcbqojwmvtkrqorfdhseqn6hp9zw+cur6esu/kch9cnkztzjp+o5nmpu8lojvtvgaxslmyvbolpiijqptabz9it/fp+iqlrehcbtpecmolhz/avjle=</latexit> sha_base64="56hti/n+f7l7wqsblmniee7i=">aaadgicbvjnj9mweecjy6mkry4gkiqoqmhushdisamcoczsdruoqaqjmms+ipytpcqyh9b4gt/hbviyoe/whknwys6yint4bv/gmnzacwzca/qqja9dvlyd7t5+7+vfv9gwenvlegyrpoczipyevzrxak6kwhtavn9w4adrmpzrdeijcllhxpoupnqcvbuj+uafl9sy5jjpu6l9g8r8nfbnqjonompusvcl4nsjrfcwfpw4axbv6xsrpmk9buvvale8ff66xmjwuatm8gxheu9bbjfyeistmmak9d5jvtgqcalylqisdeaimkvovo8ejtba6ys5t7hdyu56joyapwu9dexszonqcyb9mhtxvahyq+rkhkpqpuocvugb6dqea+hjbpki/5gnbxavdbvawdybvhi/7vjnoskt6ccbrfo9kn6/rom4e+uh4q5tivrikmyckjdl5bba88kgujv/kqcf+e6jgaegpj6zna9rlxk/7rz5fkx85qrsnkkewhvblgnlsfadjuidn/xhlhznzvdfibbpnzxwnskfita6bhtkv7adiyo5ck4ph/fogl87hby9o5slgupa6ebnhwijgkgthwsrgoqs/hv/cr9hn6fvpfpxkrqfzmpg5ifv4bycanw==</latexit> 4 L y = b L y +L y =b gives y, next yields y etc This is a supervisor s copy of the notes Please do not distribute to students Dr Rob Jack, DAMTP
Solving Ax = b Algorithm for inverting L and U Suppose Ax = LU x = b Let y = U x Then Ly = b sha_base64="bphjpnhmbwoeoryotw+gp/q8c=">aaacricbvhlbtswektul6u+pbycg7qe+gfaridjwqwjcefejrkapgus5frwzcjewqvgjbm/r/ojpzdydkitlkbiolplxq4zxzmxyfjb8x89fvleb58ollq9dvhm/fxzmyhriwvjsxfeagcsyssshulgyimq5jtz5eiarjsxtlawfgqtwceosy5adx+liuisdvrrexbbkkpciiyrgqsrilprbe5k6m7vnkojdumkbwdseqknsqnwjjoljvbpo6vdvjnmvinvtvbpc9uqogmfnozzf87jbs/ee4zlypk6n8a47xg5a4vg8njopaffdutgj94efgqghi9thxwr4j8lwgmqlnjizciklvrftgobjpkgokczw8jbsqsyzbpsswfhjpjotrusyv7l8vdrhgcjzmddzxti/+nlspbnc4bjlvlqdk7rkxfssx9ze4zxqodcbnjfdnkyybogmlrvo+iyax4dtsuhzcy6o6l7tjwevetkjxe45gz96ywboa/qipqminaaz9bvdobhrb+bnvbpvi/8xp/h/7xl9b+5j6cj/9btn4gy=</latexit> It turns out to be easy to invert triangular matrices So if we know L and U then we can obtain y as L b and then x as U y Ly = b means that sha_base64="yl94lrwovgmpesyybs4nfihwwk=">aaacjnicbvfnb9qwfhtcrugniaeby4wwyroq6rclamvlfbsa4cisulzwr7dijtbytu5hzexaz+qx8a844xzyfuezgk894bexawynkl9beo/+g4d7+4+ix8onh7gz55fmqbtlmpixp9rcawwrwbw4fuoakey8h6nujzndogn+qbbrskafsvoqurkdw8c+8buahy5nqexdljuybmnfbke5yt9piywowuwzwe9ycbaminys7fvlbtvqlwih6pwfpfwujxenvsulzqrbrzfnktnckoeynzgo4vt5jpsi8f6qjmkcxllbxn7xoacezslsamysaesgbaccubno8naoguomjdbzkzpdtgeonilwwh/lmvb9t8jb9kyjss+cipuan5p+rwfljvhvdtzpuinudkjbbs85i4lrhmpteca9xcxxtgjrq69nx6vm4przhu+qra5bpbdjuqsuj6dpmk/hk/opor7apx6a6hjgs7qobpactr7+agebm8cupwqgafr5pdynx5gxaqfd8l/bqyxi=</latexit> sha_base64="huf8nmbfpy5wgdhkm+7dzbbpc=">aaaddnicbzlljtmwfiadcbvcrqnlnhynehuqziqecxyjdqmsihq6uhnqwznjlxqsq74mipaiskgtdogtr8clsmzpu6azhmnsr/879rhpmaety5jfgfhtesbt46ubduxvv/opb4cntqvdymkoameguck5g47gscvqaipakmddxu+fqcjovafxrnbxnjssulzojzuiwqflfdnuxbzoybvrzoucsc4ahgukkxlsvtezunxasucujoht6dtneunbaq+oxfhqrewizjcyhnzwcumitw67iildevxhqwenvkit/uw8atlrzckwp9bwbnae8qfpc7wgvfj6jenmfzctyjsvuc6gejcmvqcfc4bjyputt+zzt6dzkxdfbmlkq5p4fhwlwtazjzvavw6eoi5pf4e+wazlui4jyustsob4lxnanwb68tvistsakzlxwryoftzlqdfuqdhbfa+kucrj/7mijtlargf7bsxww/+j8qv7yatxvtqpftowkwvsn7eeoc6aot/wnbnmul8rzktichp+d+xvwyi4b9fhpzpkvlhp5bzcfadhozqzpe+phsevdy7qi/re/qmpeglokzvamaibauwefga/at/bj+d+ep7epybdb8wjtrfjrl8xi9ce=</latexit> L B L B B B B B Ln, Ln sha_base64="hnnkx5/m9r9bolrmmezdh7eos=">aaad+nicdvpljtmwfhuthkn4taewbcw6jfhalurisabppg5ysbgeny7uvjhtoknvilspwusoe/yyfy8jp8avwogmo+pixzoxonunzh7rbecqudtfpcu+cfpw7ym7zt79x8c9o8enquskisoszzm8gijrvmm6fgzndklxflecuonedfq+mmsssuy8umxozxlagwm4kcyvhvt9bjitolivpi7yunedfmeislaetcpqzzjwjevxbafrxaud6tlbajep6m5mohbjatkqxlqtwp4y4guzlqsljkrpjyyfanggiyocssvaer+adu8ga65aykyrtabc4ogfitpgh+wrwpczb/xbxgaz8hmvvoet5b6sy8tmv6rz6bv9sbogmnapgci6udmy9azxciy9jtpv/mwkkox4/fzwwvxpdlnjpxuy+dvsdd+ib+4drwmdjzsp/xzjgunapnuqtuhnzpauqiyklrxkjojskajnrooekdqvrvrwconjhlbojpmcgb6oalcnglso6nslkdtcswau4aahj7okibzqvjbvorhioc5gs+mwypisbvy4yohizmqfzi4kitr8cvtz5jrduldrsdmzac8bhsgn/6lld74m/ohtjewapazpwdpggvfgflwdzamipxrkqvjf7i/d/mh/xemtxvfmedg69q9/vjlbma==</latexit> Plan for writing our program to solve Ax = b L Ln,n y b C B y C B b C CB C B C C B C B C CB C = B C CB C B C CB C B C A A A Lnn yn bn First row: y = b /L sha_base64="uo+7alfgjer+5cpny5o8dx=">aaacsicbvfnb9naefbj5zqimcry4ouivnkrugtuhfuxameqkrxveu47q+yhtbtue68d/hp/bhorfmfsmucr4szpzhtscw5ckv6p4emnt4+onwen7x4+wr4+svyhbe6oaaggwckzzalxrsgkgiwkc7mbzizx6qfbwwpovk85brcofbdxknhuittmqwz/ibvmc5gkhb7litrlcarw+xta+lycwmqftqhqw9sohpuve8knd8pqsdopcqfwxwvbqhr6obrp/uyaangpdb4hfv4baqroudejsnlzadb8+m7lzyob+qoergyt7wq5dyit6mkgf/jcyy5agaaxdpurulb+m4fsxmfhwa9axrybkpdmlvezxz/ceyxn67uyue9++fbnttpkqst7sd+t9tbjyy9jzvteokxrxqgxetbhfxww6gl5hccagcmxxqnbqgljzzosmbbh9fia5lizqjvipwdvkncbj9mdkdhnrwamqh6cnkwdib6jgzojgpek+g8uog/xyuyxmvdahznw/rqctyl9we/m=</latexit> sha_base64="7ebq9yahz5tetqdniourzeoxq=">aaackicbvfbaxqxgmmvdttlz8qg/bredtohffavgkk+kdqgwu9hzhist6ybnjsttdgnz6n/p/jss5ntplithyqczvkuyfmiedz5lpuvpfsbt66vxncpfe/qcph49jpulgvtqowjwq7jrhiu8+9ycfgmiyjydlztjo9ppwca++jvhc4lpfa85xt5s5fbnybal+ikgbpygyjymclfxwhkxgoncsxoqpcsqcsvkozcyr+gwirj6qed6rhis8enbt+tmtfgdz9w6d6+4d7qxlb95de+ywex8uauavhxlsor9k4wwe8dlaprqcpol4p6gbsrtngrsaxlxs8dtp5twel8xjgd6rkfslmeckvm5mhtvwufr6actbbxka/x7l8vauvnvplezo5l7qrwkf/tzov8dv6bxtnhlqxujonewmx9wdlqo7uvx9ty+fzif9hi6uoknqysmdhjvoubjjgdueiqldfb8atxcf6noop/swbynd8ay8aai8byfgczgcudb7qnuepk/sg/rj+ukynu6msdgi9jvfwh5emjl</latexit> sha_base64="cyaynpxaaqcbangdgxcyxz89a=">aaackicbvfnaxqxgm5mdba64qkiwftytk6jyfkw4ih4ukridws4yjjlmny+sdkts5ir/6e/5b/wbnnm7t7cftfshh4nvcjev5ibhc+y4l6ca6zct7bt+c/de//7sdonpwxetddhgdhbfds5lkx7mryhiurlcezyafnz8w6rtupzdsivgp4jwneeq7p8odlzefw8og7yksg9wtullzmya9q7jxqkbgqqjectqgqe8pfmhytutqnq9uqkleibgtmhzwvjer6dhafv4z78xlbt5de+zmen8uauavhxlvd7nbtgh4faavd8fhhxewbwvpb/fjwmjwtku4gdg6pm+enanmqwjzfogywneftno5qycncjcz8auhtyfswjye5egc/bciyoncxjkyxjxdy68n/auphwsrwzrrpffoqhsbvyad+bdillefra4ppbhti6xrzthenmxkxbnzlvwjieymqpdtuqqo9wdxn+hrdowdwmywafpwdoawctwcd6bizacfpxotpod5fh6mhtvk8/lfptzfxzakxf+uuvo7hk+w==</latexit> sha_base64="a48ay79tilcaoxvxkonhxq=">aaackicbvfbaxqxgmmt7rehafkhjsbz+efalepxrxxqqobcjvlkgqybc5kwralzcv/gf9z/4hns7spbuubhmm55cvosfgcoez7fesxrt+4+atjdu9ofvx/qf7h54nrjkrtrlbq9jdgxwrubee4fozwwyukey8lspn5obooa/xvzwbshymemp9leq+98lgyrwlkbq+obeovchwnjrdzcsuu6basqyquayhbsgk9lokrri7bqb5yuxkjbzjzwzbh5axzva7foq6svxspdeynggjivgfhpzigek45b9nwyqlqcverqiodpfnt4evz/xsvpokylobnrujzphjwnzzkliczhmmjhmzaovghjcqs8mrhs6husnyluxhqvidpfyswnk9yvovf/rjx9cekcguazxrddqobabgxfiw4pzrh6otokawx7tcosuwux+/agklilz5lu4jhlzbyuuxkvnlwyxp9exjib8esgabpaxpaql74ah8bmdgbcj4nwwm8nj9ff6ml5ly9ltvswxwkh7+c9iizma=</latexit> Assume that L, U, b are given and write functions for obtaining y = L b and x = U y sha_base64="w+gaqobfezfietd89tkuqm=">aaachicbvg7bhnbfjdxmf5gshprthifmhajubqecniduwkioe4ktexzmbvrkeexpmoko4ofjbpwinbooc5xwqzpnnecsvbruvtf86/adu/f7icphj56/kt9nmpyhmgzaahngiqxbfywddwloagneugetuhx+mqfxnktvrpdtnjksvlzogllzk6+jofrszxmtru9yw5zecrhgsa7ggmkpisp8phqppfelrgrftsu+pkslup9znodetktdva5fkhlqvfizxc5dkq/zjkycdgvi8ob4f7xpb5gywbvfgckhhb4waeug8w6hsutcgaosivvxuera+pz/broqqvbg8nc8ea8hw6sd9/rpmnevgmyleijbzzme/yqrowkxjmegunwvq7msfgcsygfkwxubojbvmaregp5jfetfhwyyrnfqzxdg/bfck+ktwtjqbnjrudet/tgnjyg8zzxdofdsaldzcow7q6ic6auxclghmw7oimswuxhllw65pcxarcceiansjmquitnb4mssyftnohcwrahxqcx6dxkhthd6jezrglhoxtamigvg8/hz/j9cpcbrtuy5on458nbovz</latexit> Assume that A is given and write a function for obtaining L and U sha_base64="knp8cxklepav5hhs5rmwb8m6o8g=">aaacyhicbvhljtnaebybjeay5cbmiktpedicgbw65yaceowylsvoqjvxs8dkazhzxttogsx/gtvoqf4cw4mwpzpu+lqu6uvnves+ewsx4h4z79+4/ohkypxr85omzwfmxf84lvezm9lyyxwcllzgqqu/lkhfqu+txftp9vuhwcao/467mswwvfqvggj66gvzkarc5+dgmkvndgwuleejuanrpvmwgavafmxrtpgbxdgq76bpjdt4/qhneznvrlvrub+vmcosvbuvrkhwgih9my5rngkkaan8vuofqjddfub6jbk5btogwjwx8glyljkcqwuikxt/ifvs8idrdzuyjqnkx/qsa9gsa4vrr8yqrdvltgjsg5rzruugzbomcs+7mbxtga6j4wkmnirtluw+5o89u+zvkygumf/nwhbobdtue/skatz78n7zospy4biwug+saxruvjaroap8xwgjlgfqpfakyzcwylzggah/65hlissnx44ekbnqgpvxnibxixhatjkz8fd+hye7ik/kgvcmp+uboyrcyjtpcgtfb5aanidfwzrchrvrja4zlwkrxx+/au57n8</latexit> Deal with cases where A can t be written as LU ( pivoting ) sha_base64="clooqdjerknklskcxcc8u7u+jcy=">aaacwxicbvfnj9mwehxcxi+tsanlhyt6nkpkgujdhykygeqhwi5waqus4k8sq7vijz+vf8gf4iz5xudsxksw9vzfjgb/jfgfgxvhvilx+87defowcphz+7j5em7qrloyprx+iijbjitmlxmcrhqgojiomyyattzvqhtxyh9qwahsslywsqynlrfqsi6q+6jkgidvfqioiixrc4sivsacekbllj5pwpylyihlujm7qm5mezxlkwt/anmxdrbzanuk7kexloystgbef4ehomnsxwmfm6dnxvowiopa+xq4szwbvnrawjicgdb9mbprm8vgxdwybl4fbc57/xgu7wlfbmke9ne+zpa9pleaatjqty+zjrozcewz5ednbqwoqlekhlmhkggwc7dzt8wvpjpjotb+sit7l8vjghjtilzmzf5rrwkf/t5oti8ck6rxn6vxjyqgyvjblu4zxqo9avigaheekyxrygmpqfhnspgk/btviazernvhldlpvg/hsuxkpk+l//gfvrf6gv6ie5sgdimpqmzneueb6mgy/basslcf+iodpyz9bbho4vzgakw==</latexit> Second row: y = (b sha_base64="k7p64tx+sofdmfbhvwjhkkismja=">aaacoicbvhlbtqwfhxcqwyvazzsre4rfqhtzervhasqnbskwbtonjumuwq7tscapylbarlz/g+jr9hxqjnmgxtcixlx+fc6ufixvojesxf86/adu/e7g8ephz+mnw6bntopn6iworvqzrozyjunmmsvpwampepjtdc+nnz5dugykiddbcohpjakaqdvq5/jksgpw6xj+iai7wa5qwskgf/bqs7pjvfcifm5fdrlhfilgjibur9ppplvyqxyzoxxguwrhnbmfspssofax7+eoxjut+ahuqrzn/bl6sapdqkx8l99xhidw5hcxjzbwjkh7maj9hjfdmlscuotiqjy+zptjciwz4ts8pzwqwsjzuk8qikenyvb++fhbmaqwcsdlrrwzf5b4zawzivwyoy+ak5rhfk/bd7a+lhmgxasyw5alshfofuhaimlkblc6yohoft4kyqjprgwyuaxbeuxhq4qwlrgzvet+umojmwztr8no6gnvrz4abbbhkjbitgcn8axmaec/ktbavodbwbf46/xsdxqxhuzwhgxexfwgfbmw</latexit> sha_base64="jjj7dffphykcnawyhch8bw4+a=">aaacoicbvfbaxqxfm6mt7revnujpqcfe6s7qogllyfefqny7hzhsdkzbtjcsdkts5i/iftnv+uf8ckhm7v74lyecpnyfefkjn/bmjprkurxfn+4eevny7vxvhzx8h/85msqxha6joorc4qrpzxjonbmcxqqduucc5rhajtsnqlfpymlqq6k6xmbllalffuuygq+8+tqyhrls+l9u6rolxoezlkl4qjqsslc9ho9bnarkpqdypnzdzbkvirhpojfcadm7vx+ajkhu6uidibzcgjfwiw74hp5d+mlabtoel+hpxhlbbbdnfsgbjiubkk7auhzy8ufaicjsv87rxrpbjwocgttjekzwyjhfowsaszuimrgjwfkjkgt/mk/fu4epokmmfjbxfsvxuecwvnaofm7ovqtar/9mmjavffp5jtgqybjrxdofoygastmkhhb6oohylh4kyrtzbbxywrrxaaunpxwjusi86o9kot8hjcbdmm4jjnay9gaz8amaupeamowudwbmaagd/rzvqyehxvxj/ir/hxmjwovjvpwvrexv/h/s/g</latexit> sha_base64="syyzyetolyihyudcqtyakjbh8=">aaacoicbvfbixmxfm6mt7xeqj4kctglrkhpiikoczrdchvbc7c5hjjnmnjsxicnswsl8duh/mx/ejx/mthwux4i+fj95+qkyg4nylya8ovnlvubwzd7t7fuxuvf//bsdwnowxmtddmhgdlbfds7lgt7kqdesiwebmo7pzpixxksjt6hzifgp4hwnavqv+e9gq/cnyeavlav5baqsoriabcsxoqpcsq9ploppcyjejwphr6qwbzwcffzj4zr7zzxlvx+8qoviuyff4wdmexhci7acs9ufwaeqharvifj7ai+vxo6/5omkiwazdbugy7b49/dphzcnr/nzeanpiprwwdpimtss8no5twcj7gstqtof4lecvfgyw/ilfysbaaespuwliml++fx9lahsqhs/uivah5p+seoqn4xnqm4cutvqgoeoadmkdkhlexrc45poahtwkdyyopcypb6djj4oy5fjziijujouxabhwgyb/o5opyerwilpulbab+l6du6qb/qirojiv5e9ht6fm8f+mv8rhq9q4wtc8rbsrf8bzp7rpq==</latexit> L y )/L since we already know y we can compute y Pk kth row: yk = bk j= Lkj yj /Lkk sha_base64="uzzfju6xz6/bjp5ebevyseq=">aaacpicbvhljtmwfhxcayipkbbky9gcyfoseqhwakrudfi9cevxxjeyt+hhzzptiyo/wz/wia5xofnsgkk6ouf6ps7nk8gts5lfuxzn7r7d4edh49fvldpjs+dzqjccmswezguxcfm8edwgvlegqucjhvpp+uejjuvy/xfphwskl4ivn4akgf7kkjc5/untzpkrydypmluwillo6cbtugdaslcfz6btmcsjab8nopvyxi7nc7/oxfdw7njoxkdrndoussvq7phciimwdrp/sejptnou5yboqgalxtscppxumoeomyshobzdyet6ungm/4rorjaohbng7spnkrfybxnasnmtcuka4ucrwgaol7q8etvryapaahoecvta/vvdg7skxni7nan7wo/j+ql5ee56jzt7lprwqvqnooqgtukllgd8gbgr5mpwwlbpglzzvqskvxha6lrquo6psm7bcbvozsbhx+jznx/pltshl8kr8pak5bm5j/jbzkrfphotfq+suj8bd4hi+vu+oo//ocheumfwegm9gz</latexit> sha_base64="sslrar69klolimk59a85oydwyc=">aaacpicbvhljtmwfhxcayivdixyslgygmbtkhejwkgrumhhinghftvjxmztephzdttiis/wp/xe7nkjdnqwe4kqwjc67v49y8ety6jpkdxxfurv/4ohh79hjj+f9y+ft6yudcmxkbwq4wbvc4dtwjnfugqeycp/l6ontkzswa/xdnruujfwqxniglldl/q+sapprnz5nhmdmtr6xbieyuvde5ncddnsgip8nhqpppgvgyeh7xtotqd7tu899nodgxtmlcfk9flcustvwxpbukimkarupxsm/oofmmg45logiovtuoo/jc77j8kwqa9ddi9odl/exncsexy/6finvepvjaqydpnlfh6m4xgmkmwafbwyxoaqgs78sowvglmquttwloobtl/fiqjyyd5ndmvamph/+akz8vpffdzortgpwoe7t7ic4aazcyxhjjhyvbkvmcauxcgy4rfffownpa5rizkrpyworgg6ffgnfyc6oycvymrwjkflezslxckhgheukeht9ijl4ffwtnsszxwoc7f+8iacrw99o9ps</latexit> sha_base64="alfatjwqmnrhggyrwnfjqjp/uw=">aaacpicbvhljtmwfhxcayip6cccbrulkqgjrmbhgvcixdjkgitawmqm6cm6lv4lszpk5uf4db6gda7s9y4brdhitzojrn+j7ozsrbjyixf46/adu/co7vcephz+lb/9griylozhlnslhqaguhbfy4ttwknluaqmcakw46pblebxipvtmmwrmec8ulzsb6ath/kvags/k7i6pheyzbtnuydkoqg9vogalvkcyl6gruulwcxdiqbte+miq7nctcom+rfnx6llelewkmnvwzpgikipdejuqtqlojbxzjqferaosdetjof/jabhtgt4e8q4cnz7ujr8+pp+al/xditurlmqbjznfubkdbtkt6geqdvbavncbmw8vsdrzt/gwps89k9oip4pszfsvz8csgmamfnmbkzxevi/mzhyf5o6rbjpftokwlbbu4gnocamfv5xyy5n5wypaggvl/trusxsxafu6raymyq+bstnmdkz+hvhx7jn8gdshz8ok8jje5jwfkmzkny8icerwkgzr+cb8ek7c6tydhz/npk9coevfvpvrw==</latexit> sha_base64="qnwhqy+9pelcwuicgibmdoh=">aaacuicbvfnb9qwehxcvm+tscni8uuujlmyaqukvflckba4cisulzri5jrpxxnyimjlp8l/g9/hdpongezsrl4/dmpopsozrpypgt+ffuxvv/oo9h6nhj588ftbef6u6lzissaq+vfhhrhvjcfppqriysxdng4qykej6+jflrwnzxxunwhkflshgkhp+ffsijnvpyzi4xtauqkjanliojhjbrndnork5salimoqjxwletgttlhvha5tlju5j96yqapo+anpndullpxvczxaqxnmggkacwc5ddmkiwpyzd+puxgfn5ntbwxsesiatrur+frzualnx5ngfmwdk7cizmaic7s8z8krhlidcyiawwyddolufsu8yi7nvpeg4qmuydklankivepq4ruh5lcopttcwy6b4dbxkmoz66y/7q6yfxg/7hlq4upknfoi8pwgomvq7acezueqydbtlfwfkk8qlkghrz+xoljkws6itaezgsvptldnl+buz8d78fk9npgr74bv4dq5acd6au/afniefwn5l78slvm/+mf+xmfxpb49lwao+gfwhiztij</latexit> sha_base64="7peovwczlogicrsa6iuznar5=">aaacuicbvhljtmwfhxcayiv8tixszgidyspcq+brioaksxysbgkohpkzhtoib4lsz4bisstxsor/+bhwogxdiyrwbo+57f6nww5kufq7ck9dvhzt7twz79+4/gd58dkrrvhe6jtwvrlgmnim6dqww+lzoygsmnmzrpken5tpvktv5quoqublpivjcdjowz4kqwvvgfjtq4ohusdbeachqaqxpbycydymsejskpapceicw6xnclmzpp+wvx5kjbqnqzeqo6osjooqyck5gymlhdidloy6lzkdjwjtdbhcyofs5stxkwyapysvsviave6hyi5cn96nxta54nymyf7x65/tdwdastb8k+yaqwvhnck9tyogrowsblgopv7tpoifrosec+luhqvbbrxr87pecfrxyrxq4rv/tsehoqnsk/uv68tcd/6pm7emel+wtdatozjsbhuth6agvukwz4os4yigskk+vhkzfcxhgrd6aulj9t4+aoieuvvhxzlqvj6aux9z+4hx7adaxb56cz+aaxoadoaafwamyahi8cy6cjpgytkisrkk+kqdbc9jsbnh+xfytdqx</latexit> sha_base64="zbfwdm7imnn77gkkxueplhft8=">aaacuicbvhljtmwfhxcayiv8tixszgilcveh4cjvquliwydfiddjsuylhcrothpzzgyr5d9hyyfwb+z4cty4brdhitzuj7nxt/rc7kguawd4jfnx7t+4+atvdudofvx8wfpjovnwtxgsgablswwpwqggmienjihnjmrzffv8fe6korx4orugldhaclpqjlsdugppeeyq7+zmji8wdyaqakkanhkojhiblnanedi5cajimssjnsjetortbtshg/zldnxt7pnvuwb4ejkqrlqgsl47gqesroiuji4uew8xddmciwp6atsxefr4ktxvysiuxswslkv9ah7ugvhnhub5nghfbqem6t/enx9tu/pvnstr8k+qbjkrgjokdwmgrwsgqkgxf7toocfdoseyufygtttbrxs87pacfrvri4rv/tmigrfhmvfzfv5e5hvwfn98w5hqghatqtedcpabnune5ngtixblmqu4qldbtcxckjshzw7kwpctsnsidmoo9uoflwa4mpy8nzvfwspspdjehngknoexcmfbcaw+ghmwa9h74h5kffbn/ryx/lsu+p757hycf89i998nx8</latexit> we already know y yk sha_base64="eldx9rrvsykudu/autlpcvm46=">aaacrnicbvhljtmwfhxcy4bykrbky9eiszkqgqhdcoudctbositrtdom7uih+r7uyjrhwmn8wpsmzps6azxmnstnx9fuxbmbbt9dsihdx89pjl9mnn67pmll9nxr9dgtzrqfvfc6escdovmpvlltprrlmqbadjus8hpbmljalf9iuozmag8kqrsb6kp/+shvqhfrp4mjxiyjetvjtvsay7/aklxrhlbags5cul7lbdgtae6wfx+sjsmofovlbtgxntvrpjzkpbkgryjglgfrexwlduoz7s8pihd7uqzuj9jozabixrprvykjnft6drytoh/g+iecwqnc5dm/vixpbzwwcdbmeenzrxoywinfrtwazidtd46eequm9lb+lnslwp7z+em/++8obmkythc8ctjvtyh8n7zpbfulcwomlyafshfufh7vgkmlkrhe9zea87nisgunxprrhxxzun5lby+pyeimrsvbbkpuclf+r4ezs7/dpadoreonfoa4rrbbpe9avwiesnarnwefgiozcdzif+sedmy/b9brhnu/a5uuw==</latexit> sha_base64="lwbtsnjjrq4najjlgnmvbuq=">aaacrnicbvhlbtnafbbrt4pbcdzyggiujuwlkclwebcsikbhsbfnx4ez8jysmxftasjx+gz+bhwjjmssmuvrjo65859nfsnbkbrb+d8n79bw8pdh+nhj95+uz5+ojfwqhwezoniit9wychnek6t8xyetlocqlgncnqaanqbpuqpzuealwcuiwe/l49pa7pqny6oph+i6nonvufgveojjjqjabj6wzwusaxrhgbtb+qs7nsicmkg+rkmzs7xo7sulmdxqd96ovha6lwunjl8dbpctdfrlewujicxl9qlg4z9atpx8frnnoevgvihtg+f/xy+eeu+/uplklzqaqkhy5zxnjmgbamcophawtgnrwrzceshduzg5jzy/feqbeldl+sys7l8/hahjolh4zgfbcsbyp9py9zwnzlh5lczjntgvcuxvxi4cy6zpsr6sgrdm/kyyrecsv95elxxl9tei8sxgbufnuwubxovwnjr97xz6jbryi+gneodidibotdgeaibafbsfaxoaujcbfmyb5ndypdn5dol8lvxhths=</latexit> sha_base64="gbcnwehhqgx94qfmn7+v5ylz4=">aaacrnicbvhljtmwfhxcy4bykrcdjcuuicuyqgyvmhewbacjnqmetrjenmrfgrc6uymqoh+ghlpiljjtfqga5k6eic6/s4tg4mzakfgxhrdt7h4chvdf/dwepxk6clopn6jworvrfayzyjuncmsvprampiiltpkhng55cuwykl9t9bmwkvkfsngpzwpf6qn6ej9cefute7apqsoqjhd4leq6jkoikkvlz7pepqlsigbs77fv5nkpxafswbrlzua94dpswyhq8phi4h6sccvgk+6pn4qxe7q47ifykmwayl9aadmioj+poqmsbwtrdvwnhz88fv//+gz/n4z++lgkflzzwmgyzr4nhgjlckd+tnbqbkgnltpoqrbteyvvb4lwdkxcntn7r4w/77w4ewphofzxyndegfyftmxt9t5zta6bsbjtvlucw4whu+csauqsd7kqdtzskyage+uvtdvlrfkvtj/fiqgxgxddtuqkwjn/6vild+wdsyheofeotcorqfodhg5ioshaqhafvgtmwchdhfubbddy/xmg9ijc/qva6tf9</latexit> General plan: split a big task into pieces and deal with them one at a time It's good if the pieces correspond to MATLAB functions We can use a loop to compute y, y,, yn sha_base64="jxz8tn54webykchdybcnstl4w=">aaacqhicbvfnbxmxepuuxyv8niujf4sugvav7vagckkvcueyjnitykyr5ltrphltrewsvax8mv4i5zxpnsglsnzenpvxjpzhhrbnc+yl67/6dh48oho+eph/hb89olc6cyywdattlkxihgchaeewgxxgkrvebbt7nel67boq7vn98awelypxjngfgrqsa/skmst9dnk/mtmfuenqmkguwjwqffxgwkqiqgczbpqsuijigw67p9tsggldjq9gl8m5+wd8qarpnqeazijcjqnmsndayk9xrdenbzcvvljw5elgvtxutquouq8ssbzrvade+gakayl6n/8rykhqngnidlpjf8fyjnaujqsbkhbeuuybmhihlckuxm7pcbykxxrw8yumd+9fink5vtkye/pbms9+t9tfj6ypws+qejuhh9+vf8jpbyd76veaewr5nxwxdlge+mvywbenfgo75fu9kblt5cy5op/hi+ddscv55sowavukvtuuoznjr6govoglitjyrl8vr9ok+l9ptnapomns/rxqtl9krn8=</latexit> sha_base64="dd5+lm/ttjnztqumb9yp9ggg=">aaacqhicbvfnj9mwehxck+chw4clhyrscqpivce5opv44folufjvvzdutrvv/yxywiiu/hf/gn9gjz5yb7rlsjaepvxzlyhrndns+xkt66fefuvyp7owcphz+mn767mzpjkymypafegeak5p57aefgapfuqehxevlse6rtuxlysnkhemmz8zgqxr9kqyzvpoett4wydr6zqgsc46pcov/gbasqlque6nfsgl8stgrjj/b5afduvlamyvzwrbl5b/yobglwoqdmimktaywnpgrgsn6hfnrv+xfxnryxtfyuinxu99x4mjtkm8aqb4dh6cvrq4wqmhwjf/ectzkuj4j4twiz4xfbmi9zwliulg5iwxnlmarosisdjstozx68juunepuxxhvihdpxcdpzbzdnegfyftmh98kzubowvwzbqgnfsp5wevxzc8xhvtomovxvsxwxblm49uqxaxilv8r5j5wbuftwm+dszbkpnh+njngzhal9er9bbl6cm6rv/qdmrs5lktzilefounavf+nbmia7mudoll6foqni=</latexit> sha_base64="xlndwr66roaotuh4lnjrujjjc=">aaacqhicbvfnbxmxepuuxyv8nmcbaxelfofqfewidggvckxjkeiajstlkdcakvr7cytrfwk/g/dd+daie8sq6kzsrlt+/negbeuco48nklvlx+87ecg9+w8e7g8fpt5urempkwlbc8ocsc4gqnnxsczsuakfvdqbjxiwuwjmvxbcg5pkck5zrnykqugphbl9feqz6othzhulq6jpklfg9kbd+ylpkorsjh4y6ukvgliykmu5xlyqtsmkoejf+6bcvdf+uiiyaazkthxgemwghtsnc4pvgaz5sq/yory6pyoxlijhxv8cabzevag+bqcnty8v9z/8/dphn9iowskkm8ecw6wz8bpa7gemwfxqnjcelyi5zclubejbh7wjnb4rwqwunypuxxmvihdpxctpzozdfenvyfnmt8/x4euooxvwztqg5ev5/ebzgfpipfi84yzbhwtfbekuyjfb6biecqg+wzsklbr+vvbropt4e8cv45ovyrbwippuppsuuofobhcezrflemslmw5onrdjiw6ddnappsa56gnujpx+nrpu=</latexit> [if Lkk = for some k then L sha_base64="b59hg+ipcliewfqtyoqpywqy=">aaacwicbvhlbtqwfhxcqwypdrcehcueqswyjqgegdfcamjlorenjumw8hxbjpw/ihsprk+bf4f6enc4c6blro7oudf+pyy5czynpdxtdurp9z+/u6n79bw/x48enxjvaqpzqrjspyuxwjmeuwwwwmrgyisq4s7pzebpurulhkcizzdwjxazqnf5vtesx6sjl6fqtfd6nclpxrdc+wancwk+qhccycsvs5lhiftwtm+zwelfei+fz7dtwthcbj5gjlmsz/sbnck4neoctjsfdtkip9yrzce4umcwvbbdrfg6di+hbmbwqwc6wvnmja4j4bpv+njokha+dbaatnntxavynqbttbehlotfmkawtxtqilamcwrdgzbqhpzbikbjbjil/rr8yvavnu7ayutrl/tjgijnmimntfpirwk/+tttn6/deynqvjlxfvhcdw4t4sxdeniyokkaozufwtndeepdpdtbsdpwxq8q5ainyq7astcpj6gvlpvqwtw4+dzxvokxqodlcgqfd9audozmibpou/qooo/xsyvzgkfdzbou7h/c5wz7s=</latexit> sha_base64="hrr/ug5kyvuhsplawgamnsnpcw=">aaacwicbvhlbhmxfpumrxiedbcehagdvbzemwhen6ckcamjlorudcplqutxgms8wnkeojyxjfxb/wi6zxjfmqlrs6oude+tzypyzy9pdxtfuhnr9pdu4n79x88b+enxqvkcptkjisp+vxabneiawwq5nrqyisg55yx7pb8abzisjbzwkyqc8lqroknhz4qijltwly9lroyq8gxsmrolgfikhhyqfvalbzowk8di7qhc7ois7sffbap5vljes+gzdrethuxzjzojuwsa/yfncknkoatpoewxiih5rzof4eqbwvjzdjfh6zi8hbqywfud6qjnye4joybmz8p99jruip8hwqbshf4/odkjloed78uskdgkkpzwym8ss4czzrduhezkblaepoyrqgjalmzk89fhlykrvbwsfq/yfyccecysrrk6ewvmvan/6dnosfzbytbwdbvwiuupyktyhhsumgdoqrcuiszciumcaejtihrrywl4bvipt8hs9ezlv5dk7fjel+bfgeerhfla+yhd79eh+okoqtr6fnkfoahcwf4ybwsvxtfm5gnaqtj/bbwqsg=</latexit> sha_base64="djayt5abixiszevqmpr/zi=">aaacwicbvhlbtqwfhxcqwyvksxhywiqyojrgqjoblqxqkkiiyjmkqtmhkcm44vpylbkrz+qf+gf/gnix4edy48zmgmm5q6nz7vw9pqdoodmjn8h4bxrn7ero9uhpvhw+hjamskekq7auemcczhypnlcnpoiklgkbbunftc9cgkxlsfwkgpxjvjfkrkdmwx9zqshllwsj/ao6nwgmvfbomlpmgkfkvkccjll4hncsesxnkubtaaapmukfzai/5zu7pmdwmhubh6hdm6rp7ge4uhobjqbhdytthkqxv7ixsrfhuohbulkmf/7rl/sg5jbu6pceelf7gijju8mw4lg8lhwvjguwc/b//jb95+/jmbdpmpactawsqjmdmkbmzuilamcvdtgyaqmtyblmpjrfgcrft8pppvmu766uthjj/jvhidbmiqrfvtglms9+t9ttpqpdmnqfsvelqpzjqaffi6zbmp9fcujvdn/k6zzogmptknlxpg5a7veewojcquwzlvxdyautztz57x96hvwhx+gzkujeomoedhcaibk+c98gn4dd8enahduqnqzwm4/qroxdxxwke=</latexit> 5 sha_base64="gyd5vk8ydlbbvoh4p9griado=">aaacfxicbvfnaxsxenvumjrv5ziuoheihmnskl5sar7emkdtbgnubszsbc+klspjvi/ahf6snqqt9lanhra8pvrg95qi7jzwfyzsfce7b88phwepzk6bpnw6pjs6cbydgtndihihgiuyee4fxbklrfibbvpo74aeu4vl/9xsbckmvfa86ij9ryaepdlnxfq55njpzhkhp6ppiljz4ucr4xrsurfwhne7bueriv4yimgbxbuoepxsuhri/natuxln/ga8xp/xbp9hoh6y+eomtbwvdbomr6utiofxvvpoeprngjgzzpjf4fyz5ma6nq4mistytxmiregluebtitpolmhwtt4meb9l/jwkrzmkjzd8u6uph/+anrz8salem8adyrvhdcow7mlgfbfafayx4orzhnffbeusyt4ey8dlbeigfitscq7opk7sdwhl8n8xl5lx/rgp7bc9rk/qa5sjusopqelnemm/uc/k/kipmtnqrvslta5rmy/qtqwnfwgr/clz</latexit> sha_base64="yzqhslaj6gbylhmohyprukp/e=">aaacfxicbvfnbxmxepuutjtwqbhlhznjq4oqa9gkklashdkuiurzkbp7vyvf8ntktw/gj+hbj/hbmsejmcsmtilp7em/ebvsfgcoez7gesru/t//g4ghvemntw/7z55fonyyizucvctgmugitz7gl8yykeswgizhnv5cm+u4vl/9yrczhcvfa7brren6ubs/skgfddsove6ugbjxqrssvuqjysvbxk8bgnpqs/ocdcugalyqoseohpjt7jzvvje4mb/oxx+ammge77x9lwxd+c7it+bo9p774qghdd7v/yortrvjlkccnjvmmfgzanzzklhahwzqjdwxayrkpdmzci6mryfr6bctbbxky/x7l8taarzkliz7e8u65p+aeprsngyjsekboxqhubvczdzljillefq6w4umvjrpguwal8rg7lgsmrplv8q5jzbdufjuwu+dizbgvl+jixemzpal9er9brl6bsncdjiaioh/od7kx7cd/upttrctkbjduyfqn9c+qlsrj</latexit> sha_base64="wrxrsti9lnsplaln9mjrlbio=">aaacfxicbvhlbhmxfpumtjtwaialg4umegsuzvrayaizdmfiykrtqxmkli9dxortseypyximo/on/sfkpgafqerjpakwzcwkk6ouden6tzqrbcuit5gcx7u/spth7hv+mnt/f6z5ebgydcatfbc4pssc4gonjtsc5nkakfzdrxbjtsswltfqqtqkcs5ulzijlhazfo68tq+rtpk+e7jlvfyvecnfevdybd9ylsvrpc/h49bnkrg5i8kpzbzbknsqnpojf8axdcv9wunxjgzijpi6glsz/keytfaf74jaw5g76/r7+ui9nz/yyva9ziui4jyutbqrpdgomwhbqbggcvuqc5ggqigew/hvmi+deyjq9qepxxesf9oecktxuoaorvl7wti/+ntrtxfsg8v7pxonjaqgoedjxuysyln8bcclhkhbkedsvstgxhlhxjyuo4hjci7dikrugtuxavnr8nwufrlsowtwtceeoleodcorcdohe7qkzoghn6g9fotbv9iq/jn/fwrphm5kxakvi479dbcyu</latexit> does not exist and this (usually) fails] 6 MATLAB function Ly = b so can compute yk 4 yk = bk Lkk sha_base64="+kdyskkakvfdnsmafnbyuphy=">aaacvicbvhljtmwfhxcayivahsknhytepupegsczywgdceswawsnyzuhmhndan7vimxbz/in+hh9hjdpjgs5wjutx59yxz8gkmot5hcu7p95+69g/ujbw8fpx4yfvrsdstjnrbgt7oc4wm5uzshwwwwulkrkywzx857plqkrjhfbkdoidbasoorzanujn/lcmnc/hrpmntphhejfqveoxcjrl+omqic5cvl87luknqxnc+ywywy5fzbhraqbektuatmfxvaodkwii77kvp6tp7mhnasxegt6euwlf6bzhqf/u6spuw75q6pzfuaartegnopl8etzjbsat5migzgchoyvgffnwqvlbpcufglnnecihbrnhnnzagqoqqdgalkmqkacmcdttpxwdkbwsghethch/tvhkdcmezhu9t87ke/b+bgsxbmqtzssa4wvshtog9uxdfnculbiiggwbovkg4j+nti5tvd+swhu6bwprcpddluzmcv5f79ovyetkejdsalwer8abkiip4ascgjowacr6erhn6pt+fo8jmwsrkrjaoh5dvyi7v4cmnbabq==</latexit> sha_base64="rbfcplx4t69srwsirlbybiewwy=">aaacvicbvhlbtqwfhxcqwyvatzibcw6sgw6sioqbfovzuexxrsjaspnquq4zowntmpztigy/bx8an/a/ajrhfmzsgxmnstn5xnkyagufq7cg/dvnpt79yohjx4/gt99dqhbtmeywyrwwjngfukjmhhpflqqjijsnpsqdn4rpwkrvphekpyjhaaxch4qbj/yirszfvdxthhebojjjd4htsnrjsghkorgwzjhe48gsmwicw6xtdmtw5yhug/vjduvpvmnjnavmjgkr9yk4rt7oxzyzvgozgxups5ld9adpd8ckujmltyhsyndcr55hxmffstq4neem96npta54m4myf7jy/kjwdgvbj/yaowd5wigxnseh5huqwkumxi/7wthojcimwzo5tgtjruvr6+brjswbpv/wsa+m+hrvzrnpe+cvi+vs4n4p+4ewfqd7mlqnagclxzvhcmmhyorsgkkoknt6giccvqb4v4ibx+xtu5svjbuxdu6ajr+eiq/lcjo5ojx67+ppxrfjsik98bk8am9adn6deakzsem4obfcbx8ck7dj+eifkhclibbtuc5imw/wsvsnxv</latexit> sha_base64="acijusqcwqlzfxnzoleupegeda=">aaacvicbvhlbtqwfhxcov4dbbbymprqwltuyjazdoqkau66kjitfnpeilh48x4yjuw7rqiywu+gtu/wd+w5xdgjtmzc6blspauzrkvnnkrrwjop9beopmrds7ucgd+/df/bw+ojxuw5ahcken6xrfyxshffbjoyari6kioixjkrlnfr8ekmupo4adpjco7mglyui+ohyvgjkivzrcbr+mmds7yhrviu5zbwezij9xwzksm5slibmzrabebojc9tsmm7ysrrpt/qxuqbyttsdqhrqp/cbkiwxjz8lw9fowyyrykxh6el9momwfz5gltptt6pheyrls4lgm6hxhcjgauwk4f4jvcdrsbxj9o5pvyxff9fvym/szbreccimznoar9lkfildmsp+lytixcn5mtqu4e4bldaevgc4/mynuo/4sbk/tfdou4hvfwx/fxv68h/cdpwvg9zs4vsdrf4vahqgtqn7icm6oint6gguvyux8rxavk9tpezqtc8iuixfwcyx5lr8vzbryfmrsfc+/uavowlraxpwhpwestgabydeagjgaht4oj4hwer4l56ei5boddy9t8bwhnfo9texg==</latexit> k X j= Lkj yj 5 function [ y ] = Lsolve( L,b ) %Lsolve: solve Ly = b (for y) where L is lower triangular and b is a vector % note: it is not checked that L is actually lower triangular [brows,bcols] = size(b); [LRows,LCols] = size(l); if LRows ~= LCols brows ~= LRows bcols ~= error('either L or b is the wrong size') if any( diag(l) == ) error('there are zeros on the diagonal of L') Testing A key advantage of breaking up the complex task into functions is that we can test each function separately Tests for the various functions that we write here are given in LUtestm It's a good idea to test some easy cases, but also to check what happens in nasty cases (eg if L and b don't have the right size, or L is a singular matrix) for k = :LRows for j = :k- y(k) = y(k) - L(k,j)*y(j); Example: Lsolvem 7 8
Similar algorithm for U sha_base64="fghciyfeyryrzon87inxg+wnw=">aaacuxicbvfnb9naefbj5bwfcqry4ouivnkixcvkqfclhylrjqioirg6g8za7xhrjb/ex+ip8kzdeidaznd6um9nz89jksudr9dsi79/8pdg8nhg8zonz54pxxxdofnbgvnhllgxkthussqpsvj4wvkensqcpetjp8+utppyu+qxchyvxkxaogtyhv5ikbgp+nne/ibwwsl+egpdrwqvlijtbaq5kywtsnokgkgsoztk++psqtpsw6t/rrj6x9hgh6m5lqucupttvvfobza/ckxjgng8eyzvsybkdfgpsvhcwh48pu4yq65ddkfronowvwvihoxyx+fl4r/fkgqnjqkfzsjqkjfa5akuohdg4regty4dzdejs6rbpdasvfecbbgshnsxzl/tvrghzuon/s/u4u65p+eu5yakrzvutlmikk8vj8o7ihgmlqryawqshjxekxcfwbdkg9ybuqc6rmr5hpnqblhx7bxcbrfvxj7+fsovvur+yqvwkvvsws4/sjhl5zkrhaunasfgy/haqhhev7trozb/os7vxo/gkiu9nj</latexit> sha_base64="z68tq4uwdxjka/wp+xcyaq5ii=">aaacuxicbvfnb9naefbj5bwfcqba5cvlrknyeygklvchvw4fonurxeujdfjemmu9odtsw/xf/id/rifwsq6kzq6rp/ddt7oyolhuxr7yc8c/fe/b9b4ohjx4/etp8dndutgmftorrxl5k4fdjcickseffbrfpjdjlunety7rommqb7sqcazhuclccibpzye/hpszn6ctr6ltxdljxfkclwvfbwugvmfpdlbfpenyqqyqbahhw7apjssxrk7z7qlrn/vnphugq7loiqu/xrvlfmj5a+ykxjwja8fyjvsafcnfgbtvdcwhotyq6+bdwguryvfbvewhj6+ul7mjlgz+fcpbxsnxoqeauemcvttravluijlhuhnygllhdqyquaaxdb7xjrztrwupik+zv/taee7t9kzv9l/nuevj/rsh4njwyqpuccuxgvqipphfuq8lxyf+qbyccjk75wleiwi8khutclrxsjfifmdl+o+ozabopztyofevzvb+wj9q+e8lestcszh/ykfvcztieieagoa4+bz/dkxdcmvyxurog57nbkdc9xcztw</latexit> sha_base64="bmnnoxy8nck59opwgriahcu4ic=">aaacuxicbvfnb9naefbrxi+mpydby4rwirokyavcpchvw4fokrxeujdfjemmu9odtsw/xefg/ggupnfknozcwoayetvzetsvrzrfew/gvdw7tt7+c7z4+ojxbn9v/8yzgoccaompu/boziljkiswvpkiuhu4thdddt9fihwsvn+owwfuwzuuzsahlqv+rvgbt87jo8eboduml7g8byvkvesei+frrkremgw7zjnfahqdxdttwx+onmqbnubp9s4hq9cv9b6amms5l4hlp9b5vqa+qmtcuk4ccf9qlbcixumw8uxxi4cz4lh6pdjdpkln/ibpeq+iqbwbbydpr65/8ftrr//gnotzykldgcsokpoyekkhd5l7bacsya5tjwsqaobnquttvyfz7kvgdyuxffsvxnaoewovuu4+76ph/k+bjqftrtzvjvhkdad8lpxmryligfsoiafqczbwom9clgabue+ykpbaolpjzvkanufhvfx8tncpzq4fopp/unvwfrmhphpksxsltthn9gpgzer7adhwyfgygcqlie9zxwdt84rtvej+armtfk=</latexit> Matlab translation x k = yk Ux = y You might imagine that there is a similar method that works for U sha_base64="xj/pgzpier6ykvsczy6etwk9yw=">aaaceicbvfnaxsxenvuizv9zmiuoxsilmnsf5aar7kmekddxingwmsbc+klrpjnh/uv/sa+fqrxohuqka4lhezn6wxtibhc+y4m6d7+g4chh48gj588ffz8+ollhdonpwxgtddkobjgis89wldmksakek8h6unfnbooa/xnbwxbslhsvoyufkswquasetfhdybnfdzhkhp6hokfxs8kbx7trwuokpqtqdtkcx4fqurpm7qxzfrxisik6m7on8fgd8bjq+jdfjcbscjrjjti8h+q9gkg+zpfdxwlasoz8lsac/m8m4rwhpobys+jwmg6bqudxcbzk5rdjmuikalwrw8yumt++9eaoncrplyau7mod+t9tvj6yjwzrrpflqhubvczdyljillefi6w4umvjrpiuwal8rq7lismrplv8q5jzbdufjew++diwytelf+aju6/9jedoipgrfofqittezokczrnep9dvzs/atp+kofze+vnk7mfdqp9oqvwsdcvg==</latexit> sha_base64="xl9nj4udfdgwqse4e9tdf/qlew=">aaaceicbvfnixnbeozxxwnhxv6kuxeuqkzcyuelecuxhcwewszeko7unznokvunvwdc8cp+bf/+ibgwj8nb7frq8hivql/xihjbnc+ynl6chjn7rj+7hdx89pu4/exrudgmpmittlg4jjgik994jdgmtaeseksppenhfronaffvrw+yslhwvoqufquvflqysdchzanvlahv7q6bsnfgvdkxb5rlswokpstsrtkcx5jqyrj+6rrbftcqlfj8zvyqbt8bhsppnf6i8nhu+gpslgkxwb5dswgl/7fjxgcjt+r/kstngmuwpaodmewb8pidnaowfrrhdnavxljzhaokc/owyaxflynt4vrb+jthg/bfiqdsubuksbnbduovj/qzx9yd54monim6naobgbgxci44pzrhyosofdl466ylsec9feuey5ljq6yb/eeswqxvh4zltvg/gqu75z/iyl9qts6qs/rc/qk5eg9gqpp6axneuu/o/kidlm/qsd9hx6ztuajruzzivto/v7nefa==</latexit> sha_base64="wepxnpzuvrpeuxvbjerotb4=">aaaceicbvfdaxnbfjdvqxoeffrlmbbeju8wqloglz5wmncdgmzsebifpfzgxtgpzh+bv8s774a/wlfsgiziz5mkxbg7ndvncm6pobmusx5f8d7+nbvdu7hjx89piw/+tpqvwnotcliitzvhilnemyouy4ngkdrjqcsni56ftsaoxlsn5kwfioesywsf6h5x+aamfjd+jqzhvpr+l5u65oixle4lv4rpuqrfy+nxanwvifprwpnbxtxltmpz+qwtw7dyfrb7xrd4fqsf8sr4bcd9wfjkfkxvgslrim/hp/+uzzm+d5pwgjqdrkibwznngu8mq4rjken8acjnrjzmewocqcbohxubt4zwaqxcstnnr4zf474ymwdixknmtbm9qhfk/bda4+kphmdsnakrnxdsvo4cxlxzabickkewpybxtbtgeunckhzcf8atwld4hs9efld6m5ty4prqfu6vfqmkfkyohparckxqpxugzokftrnfpdbtrfvrngqv47fbfrjadvzdoufpwxjjdf+q==</latexit> sha_base64="axnhyboqzousk4tfnce7pyec=">aaacwhicbvhljtmwfhxcayivaivexqkdneioshaivjcimeshqyulnvjnptwpujddtipwv4mv4edy4ns7odfeydhxoffmcophcyzl8juibn/dvnnwddv/oohj4apn5w5oou6ksecfcycfhikklhdewgcqkjavqnpzxdgntd6g4amcukisnggafsnfecnsyx74nbm/46rzg9xvfvncbugg7dmrimms59pjppfcoam+knxbfpztmolqqf9wqy6aiedvgiapkjxaibeuxbmrnlghkbzwv6zfisbnxxilaq9pjualuxgpql5nrkb4d6kosx/w9wi4ssbjnujjnli7kl8xwt4airqymm4nutbue+8clhgnbbwjk7aewugu+dmfitur8gpksvsefppfvw7plhmbvytk/v/ukted/+nmlvyf5l7opkxq/hjruqkhvzovjy4bh8kaxjvorbka+zzrydntbapaxgbdawvvc5velev6cvzmhmxpvyaj4487yq7ic/kchjguvcfh5isckinhbpouqsfyk/xvs4u+xpxg6lk9il++reag9yy</latexit> sha_base64="od+qyqrwsbptjnetrp5fjzeua=">aaacwhicbvhlihnbfkuxn8rvjiiuzwggsukxrlq5mm+5gmnmd6rcqk7ftrerrvtegiv+knn5d6np+la6iqlm+ofgss59xnfluudppkdxrfu7j5q977d+/df9b/+ojumczyghejjtrmampnixqoiszgjthysswaw7pjsh64trxfvwsxural4awdno/ymtmc/pdp8nglvet7+wuljksckv7uyylnoxpfp5cnj6xdgsojn+la7bjztalwwuegsw4h6jc9jkgggnzmapvkctwtoqnmxg6leajbqs6qomuwh57srqrclb5svzldldaacuut595nbsg56numyf7rs4uln4sqkn/tz4zvfggkydxbpwmnu58t49lcmcdmrgfwo45bqpsbn/frclr4iyiywxoanka7rfzs8u86tvbequ/+7ywh/o8bni+nih6wzb88ispeudecojnhgwpwysyytylcsnnflomy/nzzuoe8bzpdliotqjsixxk9pxgb++iuo9ofsyo88jc/jiunjojejskjgreepyk+rsfr5/htxmum/rypjantzoye/gpv8ktsg=</latexit> sha_base64="deakltgh/errrcfkixwgars=">aaacwhicbvhlihnbfkuxn8tnsvcfi4i4wgovsuxelgnunubdm9ka6huni7xaqebdxtibhod9hf8gv8eddwjmygs8uxm65rzqnqkvwmcs/o/ja9rsb+d7t5e+/+fv/bwznngsthxi9rxgdqtqmekbes5rcwverjimez47aksez/wvune8xmwpscmwzqtp8rr5ktzdefjomxlw+l7uyzerifelgpbckmxzofdyetzxbditpph+6ywbzli8jnhrnguowox9fyy4byo5ygavyabvm6ajqfburx9kiqarnkjpkfowe9iata7lqdwvl8ysi8o9sfwl7redto/sabjoujvjnmb8dpftx8ta/5ppdg8uaorhnbunsyt+jeskxjyoa8qwbwzikmilwe78wt6xpazkjpbhhaarr9n8oz5rzkweyu7/7jlxgf/jxgw7yze6lpbhyzqgwkrum7p+hmwoayfjgjxqitjemcs4bj9tlqglwbbugmwqhmqvszletsscyn4oirnm9gjt8gzckrs8pyckxnyskaer4+jd9fj9cn+gfexib9usuno/oi7et8/s9frecn</latexit> function [ x ] = Usolve( U,y ) %Usolve: solve Ux = y (for x) where U is upper triangular % note: it is not checked that U is actually upper triangular [yrows,ycols] = size(y); [URows,UCols] = size(u); We solve U x = y (for x) We consider the rows in turn, but now starting from the last (nth) row if URows ~= UCols yrows ~= URows ycols ~= error('either L or b is the wrong size') if any( diag(u) == ) error('there are zeros on the diagonal of U') Last row: Unn xn = yn sha_base64="gll+ygcgtns/f5lz4ucory7w=">aaacjxicbvfdaxqxfmmxwtdlvrf+cw8gnzazylfklsa/64emftpywyy7muwbl5immxmodf9a/j/tzzdopbuufwogceoscvnmxvj8jukhzx89pjjtpbs+nlagutnvjwgclrxjnzeizltnkpy47tcoijltrfxooj7pmyyjx+6lazzaresyyacqx/jvrmkw69mkypisi9ypcjuixld4ket6rzqqicuftyatzww4bqhuj7qwzzr5alzzoxxguxth/qbvadrmngxrh/wnhpwzxdshxz7wq5h5bdefjofkxvg/shoxqx6ff8davfgkely5wshawjtrnprjhckfbubfuancbzfkefqo/frpfr8ljavrpujrzq8zv+d8ccsxykydhafsxejvyfnmtc/wnumdsno5l8naobjpcxey4yoysfktgbddwlsxwyab4sjynlwwlf9s+inshrduondwo6ds4nxgt6ixmdfokjjvfvhqxoizpb9apmikcbqlt6fxot6jd+pjuo+no7mjdqo+osf7ififw==</latexit> sha_base64="mvf+ezkheqseh7g/yok6bprrsw=">aaacjxicbvhpaxqxgmmv+pa7aqoby/bvvczbsliiqfpejbqwwu9hzhi+ztddsfpfki5hwh/tf8bjj57nbpfgtn4qelzfxnj+4grpks+5wkt7fuxtv6/7gwfbdrzvdx+onw4tzroqhbynbbwtxlgj56wemzscjyqrbjxi/omhvcqx9+adhmwqnidafgiunf5yglnexic9gbryvc6pghjxripssxoqzysvbk8bglpqq/pydcuosajyq4seohfjtw7bzvvjb9/aewz+qe8n6mcuh+qbt+hjevuuq4w4ylafb4j8dxypxxeyotqutx8u9aatpiptwu4n8z4cbrodusojcomaalucutsnuijmbhvvshx4dmrosajpf6x/4ekm4tjymd/wfcdan/6dnw9+8nwwutouzoldgtsuw7iphdfcmupjqduhanl8k6zzseb9xm6gy5yjm+y7veesqevx4/ljjjeh8vn5t9jyp/rvwhl+gveony9a4doq/oceqrb+t7erz8jzdsq/sj+m6nwm/rrqvf/gjkbsrs</latexit> sha_base64="yi/iwynukjzro9/vzpsycjwuba=">aaacjxicbvhlbhmxfpvmezrqskacfmwswirwqyiaqewvcocfiykrdqvmthounprpgxsjtiuk/hnfwwfaskvwenissmuvlbdc6+pfs6pbbcusx5g8cadu/fubz7opdx69lg/eplorgudamwmhzqsaywrubo+4eo6knakey8h8onzgtowa/xdlwolxcqemupueavg8u8bkphu+t4r6vre/ltqpacrhavvyxc6qlbfx6fdrqfs7bzsgiprbdtxlviohpuveckd8/pd7xpfwtps9plhvdsuvfitvigupsclquxwangsblwrdbugi7hy+urvr7p4dfym/ealpi5lyvickzspdsdczwkfpwbyqgczhlkwavsganfplui8hpssvnueoh5fsvxmeplulsujn9xl7u+vi/mtxlufpp6runfmwujqhhyadzfjktughuhjidnty8fdmzgkaulgfnzcbegxmtxioj7ijkb8zygxy/hyznpt9cyp/qdwil+gveons9b4doi/ocirrb+jrehz9dzuxvxfrzqjapvzdzaq/jzx/hzju=</latexit> kth row: Ukk xk = yk sha_base64="esyev7jazniie9pngnpyeb6so=">aaacqnicbvfdb9mwfhuypkb56ucrf4swcqruywaciqn6gupa9flqcmr7tirg/jdrzvvn4kp4w/wjnolwe6csvbr+fc6t9ltacwzckv6n459btod7wupj46pfw78mjvyhdeyuv+yuis5ktmmopvbukboyw/w7nzaixt8rtba7oq6eyyihhkalumf+uagawufzpmdoho/scvyue4s4ycw9ieoijeuft6etzwvys4k4n7bttpplvyqxzzoxpgtrpt9rnxjxy7eerl8gunz4eu6hzdfdq/hotxvyw4bufjvyf6bx9kgwsuozvucgossbalebgkprqcp4l4jy8vaqsvjnbk7txntft4zbwjniaxgksiju6o/majrlulvzgxha+cewjkxckq5uh8rpblwrguomdp7xwti/+nzrtxfvx4jnxjqcrxjaqgq6dgtxnymkojc46xdbhdwqyqljfbxixnbxvzun5oxquscw6o9lrttwej/utsobazi6+txbtguegefgjujbbaevobjmamkolerfvru/hn/c+ec+vuuoorkktiiu/wlbqdjc</latexit> sha_base64="xxqk//oxvyo4kkyv69slw8rnoi=">aaacqnicbvhlbhmxfpvmeztwsmhjxqibgybophrrirvvyozlqartlakjj8ftoooxbe/bypkg/+bf+a+hdwejavscivbr+fc6t9bqkyntzjfkfxobt5v+ndvxf/wcp+zqmtiunyrhljvvpiqxhvjcxpzaru6uj4iujwdmmoj7j9pqkb7ahsjtjs4erslgnlbf/eukc7lpuut4tvmvevlpq4rpwbe7kgfhyjktl8thiu5wjo8oiuzhmqwrdwydfknhmdnq9w+srbm7azqoxfbzgyf65pplwsgngif+f+apt8slnd5txqf8uyjcx7zlma/d5nhsgx4harrshv/mfblwdacdh/kcst5wiixkyzpimyk4dpzirsjyrsek4qadkumaanfipm5po4fpalpbwupwhivl9t8kh7gxc6gzo6n5qrwkf/tjqtd6aoctvaivcqudyacxsdgirqgmwfgkiqxpmbxigdii7c5js4zws6j9xcdlhlnvhrvluvgzg8ypx+do59bkvybk/au/acpoa9oakfwdeyaxxtrs+jveht/dr+en+lj6vuofrxpaybevd/aaceci=</latexit> sha_base64="gut4tublolq89ns/jtmdp4koy=">aaacqnicbvhlbhmxfpvmeztwcrbky9gaqeaubusewvsmfzeokuzcli4/ezvgl9msrzhp/gfvwj4kdy4myicxsnvzr++ewilfjk+rfg9duxrt+vansbt+/c7d+7frkqzezy8mkpi6riywkmrbumnksneg8zcqrmgnz6degyrfz7tqzmrriaaxcggquh/zxxsptxatj8g7lvdzunekulwavf+qms86rqfw+gnmxcrngde8n5tzbkwpyu68twrgmoeqsb9am7axqefyodsafaxopz4sg7snfuf/cls8cpp95nnqvwryzcy7jpnaf/dzjgsa4g6rrshdz5tvfzr/rrsoj/ysujw6exqwzmktzacoausxigshcfcinoycragtgxu7ecphgalglxu4wsil++fq9yybs9dzvdtchryp9pk9bwenhhwotexjvqg4ztbjo4evqtb4hhfedyzarxdgmebdjcrpczyafeerhblrwzkroyvwtdsma4/bsfegvsg4fgexgkuvawhiap4bcmay6omfrbvqqfhf/ir/ekvqhkrhocniku/ietva==</latexit> Pn j=k+ Ukj xj n = URows; x = y; for k = n:-: % loop downwards from n to for j = k+:n x(k) = x(k) - U(k,j)*x(j); x(k) = x(k)/u(k,k); we know xj for j > k so we can compute xk sha_base64="d4mnzontr6ta9bkz9uslx7eim=">aaacqhicbvhlbtnafbbvwmvaesiieyhhzfqhwvavswaajevxfmmr5up5hnjjtgi8jx8apsgacekfa7uronps8lzacw5emv6p4vhdx8dpr49efrs+yvxydnvregwyjpoc5jryev7bwak4bwwqsqxktj7en4fxnktfrhdaytjlhsvocmuuovxr6ihhuprn6xtzxfltyqiksixefqqtetjvomlazzhsruw4jws647vpn8ucnes+gtrbmzafgjypso4uggultzi5xl8munigj5cndykt7ivgfa7nmtzbnen6hk/sabopfbdka5igiebr8z8wiruslgocwlvmsatpdgomwfhqdzcqhnlmazocis7mrvtezwu8cu+7qrrzes/9wecktukamvs77wtj/+nlvtxfv5rvrbflszvluco47j+csgau+fywgwpukiyywf/5mgud4gpchw9ikrtgvhbblrvg7hganpx9tyenj4nlr+gneos+oax9qafog5qjbwjrflpiilp8bzoi9/qtgvdzghetp8cmgdq+w==</latexit> sha_base64="8aufwl7e5gmttyvci7f87yue=">aaacqhicbvhlbtnafbbvzgvaeuenkjgibarjajkqqqudcsgkboojskdybizeh7wzlhpnpkx8gvs+azwjjmssmtdhzzn+esrndrsuxxfn+5e+/+g4ohyapht54+gzx/cwzayibucosdgmecktrxgphoekghwkhvv6ccwm5vp9c+ugzsrckf5xci5q88hpsgfd9lxps+erlzpsltvilly46rubewlkawvhynol9kceskwo+6bl8tipkic96mbsnw8+ns4pf9pzvgk4vnqf+v5zyorbxb6evknopeoqbwanajvuzdtrskvngmbtmm8cqb4dh6eve8fckhxfpanjkktzmpradzo86xxmw/gcspywkqrafawwwbbqhamjvzgxm7/dywi8elvyob9h/kzxia9eshmz+tntt68n/adpwvz9nnqv+nkwg6pwykdx/xg84izrf/xeckcghxxyib6slf9qysmbhirsn7jjfdmcq/acttcpzxgj6cfwonabthkbx6a6jjje7rfzrgesjkhoxzveef4jhcrf/6bga7mjdqlmpwfoprtba==</latexit> sha_base64="8pigtneapnn4gh+7avoymki=">aaacqhicbvhlbtnafbbr4t5nmasiyoeyhfzcmqkjcqstmwdfjtf8vrndmenppszpjpthin8ax8bv8dbs+gzxjjavscldh59znuvhzzlw/yriofvd/bf5a8fpt4ychg6bmzqpd6iqorsw5rpzyjunemcfputyuccxpgztrrxdxfim5klbatot6ekymhhkajuf/cgmlhd+zwbhhhr+asdye4yuyljiuiricycqxohns4hcgidurqxbfvsxyf7ytqg6q/ajwwlnivlchupljc9nl+msfygppfhtqqt6iwcjazndoton9gkwy6zdw6zybyoebvkwb48ll+pv5/fn4pvgtrpfwuokir9zo8y7mufgmcjpwkqvcpsoas6dvaiqemrs4ovavou9aiudxlp/vngkrfjhdl7o+nrsf/pbv+aesb7ytzdkpbdpc/udgxqwllvhdmuqmc7tcskagerf+tjnlqfkvdrcibhoglh5tvtug7pw/dk/gtw7bhsyh+8ak/aw5cdj+aefafjmaekiqiurbl8bt4hbfxtqhgrnoodipffwnnuda==</latexit> sha_base64="sosv7jhdamozxztbncuebiiffg=">aaacqhicbvfnj9mwehxci+tgthlhzdbejvlaxacekleufyjlpzftrhfaq/5s7oysvjl+gx8ec44rzolinzenpvxjpzhhjbruusf87/6dh4+ohg+eph/hh48ulc6qambe6pulacsevzuubpstqmjbesi5tppdxrlzcqx9uz9hswkrxilnwgsqgvidndfbnyatjsfpdbqgljxq4pcswuqzysvonz6btuqspid8tgpszrvuj8onhw7vh5onxg5xjs/zfv8dvgdewycbca4odxqheni7hrjrfftgvtbmbqdolyajzjlsa98faq9gqi9zmfwtymkjmxjuglwlndfu6afnaowhgrnddanrngiqawsaxfm9jin4epcaxr8jtde/bfcg/spkibpb97wovj/qjxeel56pbvngbrlujuvw7i+cs4y64hfjgdy8zirpgmqgltztomuaisvmwnxaetkzld65s64ojuei6ffk9h5l96yi/qkvubvuio+oxpdcqhneoit5gsztg7+nznmu/bljqk95iq4ijn8bylrseg==</latexit> sha_base64="xryqoveqpjjoxaumnxieiewz9u=">aaacqhicbvfnj9mwehxck+chw4clhyrsbuvckkbceqbeorakbruvjvnteovc7sysov4zfxj/bigaftge4ykqwn9y8m+iedz5lpudpldu7l77+h+78hdr4+f9j8+oe6szrnqbbaxhbwthdfjp57ws6mzscjyavzjtq9ugtwca++4hmwklxwtowueq6v8qdviiyhphh+obeovdhunkosn7pwk/arasldzui5gbsgl+cufeuzte6gwxv4ljbsdgl9k7eg98rmttl8gubxaw4xggllqgsc6jgt5zv/lgxzoyrnlijrzv/zgbztvang+b8dnl66umejoxpx/xhlasky8fedcnm+mnwwwnlpb4lcxuqg6ggwbrqhamjclwxnb/doycxrg5/yemv+wxfaorerjgze7rrwkf+t5svv4cxiyq6aqolu/uwiec8uoj7povdl46yylsec9ffubwtfwy+idksjoqpy6ltfb+ekwhjn/fh7jhzxhf6iv+gtytfhdia+ojgaijokyzsks/lxtpoi/thljvn9jxpugk5c9bdtn</latexit> sha_base64="ra5uigl7duvswmqdcyukst5we6c=">aaacqhicbvfnj9mwehxci+tscbaxelxqrcvzwsqhbaafevhiten4uakho7tmvvx4qdpzwvx8lp4nfwa7juktnowpdzsrlt+/negbeeco4dunyk4pvlx+87bd69+w8ehvyfpt6zuqkpmatdhowdlbfzs47gq7nzudsqtlyhlu6dkfqyx6qtbgzatmfe84hrcoir+j9xatftkp8nwlzwt7+wqkbysca9xlhvvesjqvt5ant6xijbubb+lb7apbtvej8onhw7vk5oxvzxjs/cf5sdvadewycbca4odxqheni7h4wrdlbfysavtbmbqeolfphytdzbl4oh4on6exn44efvcdh/e8ppi5lyviczqxbuahdpwkfoykzqqjczzneafktmz5jy4hebkxgl6/cuwxvwoptqjcgz9netryf9qcdx7meeqwtrbaoqed6uvwywtgxfc75ebrhmbfdaeubfuttdlwcqfcyei4nsjeqvnidnjmw5htl8gxjgbb+gzeo5eors9q6fomxqjcajrflmkiinx8fjoiu/bvpjaffzboftp4cxrwka==</latexit> Again, use a loop to compute x, x,, xn 9 sha_base64="pbu+qyntxzb7zhokzzmelkkvf4=">aaacfhicbvfna9wwejxdpex9vivoulaoxezqjrkkbpbsqw8pdopaelkkezwvqw8jywkw4z+zq/9il4vseendn+ma4phejn7whtacw5emp6p4wc7uwd7jwdpnj57/ml48tw5yhmgvaahnbiqxbfuwddwiuagneuge5xu6pb8cy7lw96hrkkl4pxnbexqmvqfzuxvf/7lb/zrlg8jwfzfcrpggupcdasmjknxmbs+kmqtgrf+rbbap7kqu+78twrvx+lptbknydxqnjzfnknyxhkxjdfp4psh6mej9nsgv4pssacckwqadzwru5j8zxjiaynrzqwlbkemybkilbzvmmba/cyjkcuw5vh8npjhwriunndu9q7wkf/tzorjuaeq7pxonitudui7dtuusyln8bcyldkhbkedsvssqxhltxiyuj4gpci7dikrugsruxafn++nwuoxbojo96spbq/qw/qezegqnaiv6axneum6hee+gf+ik/hb/vgno7mndqq+oavzc/q==</latexit> sha_base64="anuppdgrz94roenpluaoxdwsu=">aaacfhicbvhlihnbfkuzsmr6hln4xtgicgbt8bzsabfy5gmnmd6rcrqm9pitslqupxqtg/4x+58efccgjkowz8ulb4zx76zopuzw5/p8z5je9u/fupg5udw7tt7wvpzhxurumjkwlbu8pcsc4gonnxscpsuakfvds5bjxyowjmvxa8mzcq5u7zhjphizye6msrsfrgkfpsays4mktcrhkxwonkwtempssqdtv4ivker9grirx+qzblvkqll8zvzkbv8ypsuzt5ak/xztluvnwmb/l68jxqbefhcvvzdfeulh8+gvqtaslaa8e8s5azebpwvees4erkpwgsfssc5ggqeietwsripp8jpiljrnj7l8zr9dyiq6dxktjz7+4uaz5pa+ubdlhblwg+kbyyavmcvcz8yrrkf5mognsfm8rgrzgticfpxfjsucxdn4du8qlzbvcjuuqohkxiocrpsfepqbnhabh6df6igrfhhj+gytrbdp9dvzc/zt/6kwfosfb5ptzptzeou+mbvzhpxnw=</latexit> sha_base64="znmmcukkgwvfe4bltjyqdapeiy=">aaacfhicbvhlihnbfkuzsmr6hln4xtgicg7vg5uqaycefibdm9ka6hqvrpei9qkoejxt9o/6rc/ejsbwjmygq8uhm65t+7lxgoedz7pfybpjb9m7cobg/ul/8hw4antpvlymkpamegeck5h47gwcgqteugelxy57v7wa67hwx/kweysc8ubzoipnyokmszehyedvmozcohjnqyqxkzyofhxjwkqi6lcnxojpelrkqyd9uw5zbl9jq9mb8i5ew8ims+ty7xbyzrjspd/nrvga+toototx+9bpctif/qpqzvojyjnbnjswufgzqkznteacdowhcjouwjvuscm4vmb+fpuan9rgpzxeq/9bckdwkak/vdvwvf//ntvvfvj8frkzrqbhnokyvgvcp4xrboh5mghncbm87orzgljcflzfzpqfiavwhd4rqeydkq7gcpchoi4yovmbgpaimd9aq9rc9rgd6hy/qjnaajyugh+psjfvjnzrlx6qvn6vpsu5jhaqvvl/rtgfa==</latexit> sha_base64="+zikxtc7j6gigytgp4oxlpmqq=">aaacnhicbvfbi9qwgerbrvoz4ushc64itdk4q+rcymd4ikk9jpwnqckjtdczmbsbpocfn/j5/id6bzvbbfwdwmk5yu5h9acwzemv6l4xsbt+8cbdu//g4apx4ydzqxpdae4uv+ymis5kzrzhf6pgfanna4ms4slaixt8ptrnvkdc5zzqhygvqnf5yagaypkunb4jo/kidye4yclzl+ieoijctfzmadlwvya4k4nxdvloug4qxloxtlubpl9rnyomcxqm7xg+tabvmnke59/9y6xrexike+xz7o6tbjwepnnf/a6yaywauocrsz/ykqrrldpcefwlrjuu6vhxjhcaxhiy6lgzipo6sjaiqss78zronhgalgruw4sed++fr8lavucqf/nxtv68n/aonhu6vnujeosni5qg44darw4avm5s44hhfeanmaljghlexnjvpq5rfudxcpxkikrtqyuwfzuni8+ppot94nlb+aqpacvqabeghpwezychbdwozqmkugofhz/id/fxy5t4ioeqrip7/bbxwzse=</latexit> sha_base64="ydccor5yzxc55trd5fxmfjbc5y=">aaacnhicbvfbb9mwghxczancvrbhsmcxtokfkkfm7gxtppkabehdisquyrbcvarvksmxpz+q8pt74e/cm/abbnyspenzvot9plxxzmwc/wzcofvd/zfdb7+ojxk7+/xubumncwkkjkagcszpazjm9rdrfanoa4cwo7nrqgt8ottkjov6eqykhfkptxr/8grplfauiqehhprul5uyhijxhvyyyx9tpqqsbyuh4alwtk5wrxnrbbtxlnirglute9yswpwmsrmmthjymywgabaplafrnvurajok+ufm+ru44amf9wgyrwlebskghj4/hz9bqc4mpx/5iuitadseo6mmsrxzacoacsip/4htaevigtrscesisombqvcs88kwbs6x9krauh8rhblgnal7zo5v5qbwkf/tjrutt6aoyaqvjlollmcrybqewtfnivccfq8tbwwgkc6qrsx5xwpmlf9t8iteovoqosmlbfb+pxqlzb57b7a+vybqpwarwecxglzsf7cafsqmdvybbewvh4lhwxfgg/rvpdyfnzalyihp8fpboa==</latexit> sha_base64="iolvn4pbfwwhabhbq55fiz+gvsi=">aaacnhicbvhljtmwfhxcybkq8cyelhmrmjdlabbsbkulkgadigkwzquyrbcazw/yhszhk5rvy8t/zgsxy8wwwxmm7odncydlxofdhn4srzoyn4x9beo6jzs7uu9w7fvlxv/9gbfstcuj4kqfymqoz5kmlllotytnkccczngx6vtsngrdlpxkm4pobtqtrgqewu/n+t/ycmmsli6jhy+iafvnwjbomn7owsfivkccqll49grcsfsnocubu7baazrsvy5dom9rfqw6rgwv8xsgdvh6tkcrsfoezr+cc+stomgl+6u96s7jtpzfz8exquavgyafvhjweff78+n4y6//jcvqqaulhbkzselkthslhfo/unqqytefuimtjyusfazdsvjwnjgmqkwsvsjlvyx/y4jixpbpazd/mzaj/6dnalu+mjomq9pssdadyppdqcbvgwtynhhcmew8pi5dmkube+lttzltfk5tc7dildqjksuxaxj5o/osjd+wwmcugian4cliwetwdn6ce5acan4hgyakdsjh4zvwxfhhnrogm5qhycvc8v+jldep</latexit> Write y = U x so x = U Example: Usolvem Combining ingredients LU x = b Ukj xj j=k+ sha_base64="hgx4jnn8qibmmjeatnpbpanyc=">aaacnxicbvfdaxqxfmmxx9uqjgshdiibdzssil5xcivggushtfhbwiclkutljmihjc4h/8g/5x/ps5ntplitfxio59ybemuvpwzmyr/ovjw7tt7+chzx4+ojxk+huxpttjrqgwl4o8xmpqzswewwu5plaziye4zxe87ptunrbg/rbrrrccnulwmyjsoirh7whjzsllyatayk8g+smqpbgfahuas/scmekqxlppvcohskidupt5vqnwqxi7rbpds6zm6ryg/eyxhqpitrco/dlsickvd+mqfzrp4axw9cqhnnv47ivhkjkkm4aqdqdeejjubhe5mvdwkgljrwzm8tzrcoacsipgslcfsio6dxaiqqc7dxzso9wjswanq4sin++fq8kytcahs/ucua55p+ewurjwvhpgotlesqudvyabvyrqgwtfnig8klqszmcsks6qrswfzwwlj9t6+ewiuvnvhrdlpvg5nkbdb9noyopvww7ydn4bv4alwarybl+ayzaabl9glac96hb+mp8df49xqxhuzwdwxfnfwgxgc4c</latexit> sha_base64="c54rctmrx45+zzalxygomzk=">aaacnxicbvfdaxqxfmmxx9uqjgsfurzaumlrlphefogushtfhbwmzpjdlotl5jm7rlyczxj/k/cn9nro7d7rhytdoffmpxbkkantzi/uxzj5qbd7bu9u7df/dwux/78ymrrczkjcwt+rrehjaqynhsy8ipgtxkpgsbeadnptbagux+ckslhz4lwfcmbqkl/kdil/lcpclwhpvermpa8qpw8belsgpldlhonl5aordzpgdyctcyptnncvwalm6rbpds6ah6qyvceaxhqnpiclco/bls8cpod5nxqvznh4bhwzdyhnplg4iv+tjjmlggvgqndg6pfv/8dga4lvqxesvxy4mwmcfjjmmi7nqhbslmjezsgqiqbtazmqqoecdm6pboebgbmarwuocjlfyy/y4xiz8djkdp8zv7wo/j8aw9fuqouklaq8asdvsjudbcimmabtk4owpqgwsgeiywdcva6dij7jxydzfikndgpvdtuq5ogzdztmvwbepybvb4cl4av6bflwdh+aihimxwoayehbtri/j5/hh+fp8ezuar+uajaj4uwvxqtw==</latexit> sha_base64="zldsl6c4u77jzh6sof76zgwa/w=">aaacnxicbvfdaxqxfmmxx9wvvrwwcikixgvhpvjyhd6ivha7hzygqyezkiyttdgn5bb74j/rv+d+kzz98ftvzbwoofejtzs8wosunyo4qvxb9x89bw7d6du/fup+g/fhrkzksxgwpjpd4uksgmcjkdjyrdrbvgqkk5trpenrbsqxve7ugtkymgncxibqro/8gvqu8dkyfiu5d7cdxilcglxfkdevokahcphp5lnkzxgxn/j+u8ytvqwluve8kxpqhqjbg8wgodfa/fgity7mdctl9x8rmv+m9oedguxdpiwc+gpiiv5mkxaqybdg+9g/f859/zg6l/kvesdxyiixmyjhjmig7duhbihkjk7sgkiqbdeimaqreizm6pxme7gsmgrxu4qgll+y/fq5xyxa8djnd58xlrsp/paw7+foipua4naqzy6cvsfsdrkgmaatk4qwpmfwigdiizdsja6zag7jdbddblknvhpzvuugqpxw7dz9etw7anyxrz4ap6dlyaf78a+oachyawwuiierjvri/hz/dh+fh9epcbruuyxig4+wsldj</latexit> sha_base64="gd4u/fgv5m8+eafjdlccdieu=">aaacjhicbvhlahsxfnvm+kidnnx6whujahfsjzkpkqmulichdjlcnql4jnfo7stceifpehsx5dv7affrqtxzlenvavdoffqxjbam6ss5jfubzz6pgtp7vpenvpx+y/7b+8urcqnhqmvhfllgtigtmje8cchttgiicqysx6exyoxtmmfbqhjsivzbwjxavqr/nntgfwvkgxmovg9fyveyyvcs+xceoveeswph+pg58l4haucd9ummyzqkhzwiufzut6sltebtgqfg4ofnhu7we4snkgtxcdt88/4ggswbwg9boeb6up8v+tl4rwaqsjnfg7trptzp4yxyihyfxbiquyrvma5regj5tvan/hcyerfmlziob9h/jzwrq5fetrbv9j7wkv+t5vwrjqzesz7udso6oq5tgpkaosaaupbpyqgloyk6yiyql4zzblakjsrsfbzchaonl7stwef59g4zdpjrw9rwlbbe9q+/riurrmtpd9e5mickfkd7zvobbwfh8vf4to7jjqzl6jryq//qxptsbf</latexit> sha_base64="6jkfkriicizdigif9uccatn5+ze=">aaacjhicbvhlahsxfnvmhmdnnx6wbwkafxinamjcrqugkgmukdsbgmuajurml64wkswzeo/irr/vd+gvdfn7uwd9k4o59yrcvuotmzlkl+rfgdh48eb/6ew8fbb7vlv4skqlayuswvusyibc4kdbzhc6asikdlkxg7r6dggmiw/u4wgssbxklwmeheosfdhrokpnynsf+iiszcltvrdc+wjcwgvqhbz+nwwahwuijtswvgatbvlfurregzvgzphnth9pmsbw8wvaveecn+jfdx9uyudevpehmxtk6ylhwfpguwf/b9vynquh8vtl4rwaqsjnfg7shptxp4yxyihyfxbitoybwmapregb7zvanfh+yerfmlziol9l/jzwri5eetrbv9i7wkv+txvvrjozeyz7udslvfvc+wublphjtnaxciziqafnbfdeomos7czsnlciep+anshbtuondwo6di4/9cmjwjsmrvnnqdqedlkjjdia+onmrbt9jnaiv9hredc+jd/fp6vwofrpveqbfx/5cyvvyq8=</latexit> sha_base64="hcukeavzz7vu/czwxoxg6hemgm=">aaacjhicbvhdahnbgjd+lntbvorv4imnkk9cbvsolaqhyb4wcfc9kqzme/bybmhzoznwfy+hz6zj6ar+cskutou5opzzzzyz8xwam+us5fcubz4+ojx9ppoztnnuvd/eexvtwgwpaqrsxvqsxwjmhomonwpqquxdiitmg9bmbmjyp+ctniwfuzasyps4ie6t7kmplbznyb9eyoa8ltvrhb+ajcgnfqrkcynlnghjchclblubz6wbzikn7vmunbomd7wrpmbtorfao4n5/gmlr4qfig9+a9d8ke5jkyxwfzkuyeh56x8tfl5mun/yutfaghsuethaaldbpjgouqgmslmtazuyzrojiisgo/lkrbb4ns4ja8utlhpfrvcu+etqtrhmnl/au4r/8aqz6opzo6didpkqiqoxykt6jkhmglnramkinc/fdeomos7szinlcqep+ansrbtuwu6ty/f9smjajsephg7cb9arstehdi6+oasrbt9jnaif9hledc+jk/js9vohkphkanxj//asjgytq=</latexit> n X y and y = L b Given an n n matrix A, we want to find upper and lower triangular matrices such that A = LU, with Lii = for all i sha_base64="oekzyg8whwmrbdfr/edya4katw=">aaac8icbvjnj9mwehxck+chy5wdrihfcvrebwwbsobzjsehujtvrphaaz6i7kddiutx8inceuh8qf4czxxhzolnn6mjfzxvpgwcwzsxh8kwhvlx+87rd69+w8epuo/fnjuvkjnrdflb7iwfdojjyzjm9qdqfkxe6zvajlp+uqtzmys9w9g5gkvkbsngfwrr/5wodn6zj4+iaixvvsuxqggn/ixirphighqoyuhyalwqwjqhurkzye6nhztlbtqsxtaswpw6srpbelbokjmvomqmeywr5wsscfyhe4qfg5aww4uljnncvxxvvihhxg88puglzuhvw8jxslupmsbosltsatvoxzekfjhwosoukixcivwtmownqs+on4go8cxwdjbwaoi7nf/+akilkihymwsiss7d6ati5z6/wpdkyarwnkzhxl8wnouedx/hmvptfkl/wlvtvhwnhzfzkvrkzfzlut/ufltidzxrvwyrjflbr89a49rg4z5os6+xmyca+bdiuoigyvxojhsur6mtsehyuyrivxbbkozo+h/r8kn+pb6fvosipddhlgcqjt9amdoqkiwtjqgqu+hnx4lfwe/tixhkhx8xqdrpjzl+cl7dq=</latexit> sha_base64="grlfk5gernxsje6ceniogrwoa=">aaac8icbvjnb9naefbrxi+mskry4oaiqokbarqlvbocahhyitau4isbrdbzkfli766tr4l/cdxhlb/eh+amcwsc5kjy5pcbebpzzrokmpj+fcqrl77/6dg4edr4+fpdshj7nkrwhi6i4kpfzwaoz5kollocxlwagsg4hwelqcuplqbpuqxu67ovmbcsoirsd46/5ok9czunzjhtprom6qskkeiyvcsevdewuecbzlw4gjusfjiad4omwfh4xbzw7ckl7wlfjrrkdtxjjqaji5lajqjbmsk+vrnrhhmuavxsuqflufcyzzxfcvb4hxytppkviocb7ti7cktetgtrjc6goafrjhw5ljrdllilwor8e5jljuzlrhcs/ebl4nkh47p9chpyrquez7p8v6qwvfrcwzhjeld6kbbrjj+9wgvkawmkctdyx4tazuc48gv/kzfdo/uh6ttfbfdgfcmlxifgvrmbnjtcn/czpafqdtxrvwyrjdlbr89a49rg4z5os6+xmyca+bdiuoigyvxjtsur6ktsf7yuyriubbknlt//h9jlrxjh9adtal9bk9rgk6qxgzjeslbmncbc76gdfgt/b7+jagwa7nodql8odfgspu6w==</latexit> sha_base64="j6txsxnqe9kecbytdjudyszrevi=">aaac8icbvjnj9mwehxci+tscri8ugiqoqegraloukeobdd7ssa7uvnxecrqrtmpztruvys/hblz5qfwa+amccdoe6c5zepo88bzxpnizng4/hmen7eunn4g7nvhdw+7jx6fm6rwhi5ixst9kyghnek6ssxyeqebzfxos4wg5yfl6krjkf7frrqyc5zaujyhqvdktbzdemsupegimzulmuibhf44q6ypuqodmxtoync4vyescaazp8djdslrlxspzsdqtbkddxjjqaji5lajqjbmsk+vrnlhlpxuivxsuqftskfzmufakat+qy6tppkviocb7ti7cktetgtrju6goafrjhw5ljrdljilxuxonzhlgomxwp4l68cxwdjdtwd8+o+z/+jy9nxx/phlfakgljrymmssxslmhjlcqd+vnlqbwccctjyu4neaus9gvzcz/ln/klyay/y4emasreyrw8vmva5n/o+blz4ovmqtpssbadipqxrxhxtntlfh/upwbcy/fzmsnbdrv8deljlyjbunktmojuquwrldxd+quf/slmhxuhtnganqjn6avkdhqo4/ofiqcyabdlzwoazdl+hx8punaxpu/qxoq//gjn+vdq</latexit> we have done the hard part so this is easy now(!) sha_base64="eqst+spwtine8szymfcbsgk+4=">aaacrxicbvfnj9mwehuclev5ajhloykazfqsralnnbkvxbcjlpzqsmv4xaq/6i7ellzew/8lf4i5xxujnqxuanh5vxjpzpqilcjgkv6p4zt7r/ephwwepnr85gt49nmlm4lmovggntvmadsajiiqalxtqwmcglzsz5flyb64trfxwyxprav4awdtbj+ymtmc/ptp8n4jkvwdjxvuwjuaodxmowg6wyln+mbq+vwxxnek/adtdnst6tih8phhw7cw9ycablpnetbxbacnboqr7mvlgskqohma4wg4wnyoarm9fflmn9yuhqnknoynnbshmri4wwz8hktcknhljnjulsyzh+oilifjiogv+zjcycq5kcn/d7jvv6oialrywnvypdo/9mekac6kirhbduptcb/6pmzvyfz57oesgqfprqlujkybrwpoksxwdkkxgnerqq+ub4eyx7c8gyorkbvalh6aheqesm/kctu5fd8om6/japzl7kx+qfeuvosuo+kxpylvyqkehrufqoos+xu/iazzhp65d46jpeu4olf7+bedqjk=</latexit> sha_base64="krumiqqfmv/vjfxvih/qgfh/i=">aaacrxicbvfnb9naefbkcv8btgioyukqugotreftqhslhylropkcyjw6gyyn7ju6ivv4hvfvv8uc4m5yicjxwnvzmdmteflcl5jpkdxxfuju4f/ig9/dr4ydp+8+exzjtbxgehtxxbmgrqarl54czebqykcvmxghz8totacan/+lwfiwizlsrbmudor/olasl8yukyecuqzbcldvtam5prcw4obpzguqz4ctifxzm85khytvtsluyoghzr+kbihsr+t7ewm8oyugc7yewhonm+7vsdppugqseoiautxvznx8+tmrzj5jbsjf6lzthzq6urali+bt/bxn5ob7lplz4zsxfhkwjuasslpggwv8wwywrlczbw4snkq9cijamjvd7ukh/zqhmobdwbuzw7qbxaf+jxsvvoyculbxopmjvi6nhxettbqci+il4lxwmcvlknajhtcl6vocgl+jbugyxqhepvynlbufgwwengxrrrh+qleuoosuo+kzpyjzyteehrqfq+oo+xsfxkm7jn9vqonrlvcb7fs/+ainxsk=</latexit> sha_base64="kzgxkuncl6zt9qymtnaetaorrs=">aaacrxicbvfnj9mwehuclev56sircrlwsiuesojgrnaqreoiqkzwlcpxja9ufkevfz+cjz4w/wrzkzahuguisavzfjmxltfi4nys/o/jw7tshdw/v9e4/epjocf/oyauzjeuw4kyaeuwbjoghnhjvzvfpgqjgtfytjxrksez/9esajorntkgezx6haf9xxjnbmo8htqznxlwhl7uqykrinelglbckmvgflhsa5yn7omqzdttnszhfkxiohk/dqtrn9a+l5fgo7ocomdlokxrqp8e9msypinziaghmudzkpnqutf68aef5wmkorm66c47pn//o7offtp8hemjqhsumxpjnkn9jgadwsvgz4dmvefm8eyxcuuenyknnsv4iutdiwr/zg/6bezhybqkjoygdde5dvwfn589xeshk4bd5pvcwnpb5hx7xquljghkuvbenwyk+uocmezexpu5ycx4lu6bheqesq/lcto5fdfatadfulfpzguh5bl5su5isj6qc/kzxjar4dfb9cy6i97hb+nrnmfftqfxtmt5svysnvfwglyjg==</latexit> sha_base64="kfhpevbah5oy66wu8xrbkzaw=">aaacthicbvhlbhmxfpumrxiobfiysuirweuzviuiapuncxzfipkmtcypz7ghb9kewqr5e/hm/grnjswzcwk9s6oufa9/pcrdmzlst+j+mnm7du9m7o7pf//bw/gjxydwdybqbvfcmvomlovmovjjtntbsgsmnmct/nely6osuzjb6j6uqgm8karpclvdx+vwpksprp8z6hojgr6vtgiqy8brkekpoorasvblfb58kzbbe8t9pirdtsggfwnf9gj8rzmv9zudgrtjyha+tiwsymsytrwwzyazw4qjw7dagy5hw+xawh+8sfolsg+aieufhiftjstbntggvgwaezdectx+u9akxlrsey6sxeazdiupjgoe9hgz6lgpevndbmhrilald8agudzynswuszu6ecw/fegr8lajcaxs/+zvar5p+zeea9yvppo4clesyunnx6btspwnrzihxfuaiwjy7bwsntkiudjdnspryi+occhxkikr9qyvw8niab55/zsahnwbl9sbt8ay8adl4bw7bzamfoak+8mr5gmys9+mzupsepmajsodjanuvkxqkxqw==</latexit> sha_base64="simdsj8jnsfr5d+a6ukxju=">aaacthicbvhlbhmxfpumj5zaiccsjduwivuw6mgrfcrbfiwkblpvmqekcfjadzxsnpibl8pxwta/6bnxeslejllwdnxpteuaqslkl+rfgtfu7uzeg9x/spfwfdxkzoru5aykdvct+clsuxwxaaoo8hotcuilaxlymbs69kvayx6qtbgjax5elxmlpigcqgpndll/8gkyeknl8ipcjwrxczxiffso9vselx5fdijppfelsgrfhlctpplg7usfdal8kxtuhltodek4y7bbewcethmwtryafi8ptwrplwme4xzsct+m/bn4c/angfpgbgmh6eyhisjzbx4jkg4ob4x/xgekff8e9eaqplaocwdtle+pmnrsou8ggwc4yqhdltgmocksblfgrrwcaqxoswtnj4xf57wxnp7vkwknn/v7xevj/qxz9bu558pjim6llrajun++ngiremovc+4oshhrfdefaqhmckvkgokr5gleikvzg5vet+umohs5gognx8cxjgdu+gzkcvuireompczikalrxvqq+hcn46m4jnmqlxtlnzfgfrp4cxqjzxa==</latexit> sha_base64="9qvzrodtgwykaemufzcj9zsyw=">aaacthicbvhlbhmxfpumj5zaizqlg6steqtohkdbqklazcocrzfipimjdwet+oox7i9pzfl8tn8bf/bll9ayoeej8mctfzzte577x55akuwot5ecu7p95+7g5re/qdbdx/h+fgtlqtmzymqnpsmqio4kmlbwmnclnec8zycpmonzjdggsvhjzhwzcnquaexsoeq+t9yhxqpryadf5j7lvnwnogvzmsf+yil5hulh+nvms5sjommbt5v65muots5dynjwnfs9urzbezlcbqzzmnbdqxlswnoapiddsuhlwcajzkfa4zpj6zwj+cgzj4tgqf7pf/dzjasat4e6qrshuwn7++fv9zuvr/55xeoa6wmcfjjmmi7nqhbslmjdtygqiqbta5mqqoecdm6hagevgsmbwspq5bwlhg/7heddmzsuqfzxnc68n/aplx6mjqrwwclwsvlcmwgm76cckaojt8l6icgsaeov4hjtcnsxwrcqmsetipvwjs94zlv65sy4fteia8/bscowtiwvowa56dflwbr+a9oafjgkot6gveaj/tipcuywqxguvmereus/gjunyi</latexit> function [ x ] = LUsolve( L,U,b ) %LUsolve: solve LUx=b where U is upper triag and L is lower triag y = Lsolve(L,b); x = Usolve(U,y); Example: LUsolvem Assume that this is possible: Aij = For k =,,,, n Pn k= Lik Ukj, define rank-one matrices M (k) with elements (k) this is the philosophy of structured programming break the task into functions and write each one separately, then stick them together at the Mij = Li,k+ Uk+,j sha_base64="tqbc/qmu6shpixxn945ymdk=">aaac7nicbvhljtmwfhxcawivaksfisidjvmkkczacrkgelkaajtkdqsuu4n6nthpztktl5tfyibb8ekt+gjvojws6w946jzr+zgrtjtjop+ef66zdutq7hdy5e+/+g97dr6e6rbwfms5qc5sooezcwpddiezsgerkydjwoxafbicpvkpp5tnbtnbfplljbljqhnvdirlzzfbrxtdggxlobombhcqsrqugsjmjqnryxnbzjisbkdns6tojpapnbsiq6olljsjjboshiazlii6ujpykd4qjkizdwzdjsqnderapqpxb7jbaisjiohtafvomgsadj/sfvg8geamsmhario4pbioiuuwxndt7chxwiixdxg8dz697wvhfzzbzxj4brnvbvehegj7o4mff+umfobahngg9japkzcxrhleobrlaqvoqrywdvasaxpmt6do8dphzdha+alnhjl/vvdeqhrqqus/vlx9za8n/atdb565llsqonshrrkk85nivu74ozpoaad7emeaqymxxtjvgegnf9ns5l4cswdd4hu9eafv+5so4przgtd+fpwpsw7aen6cnarzf6hy7rescxoh67zzhrbyx/nf/o/+j4tu+v+pey74f/8c7bs6jo=</latexit> sha_base64="d4ewfnmtpm4ovgkjur/b/sgfuu=">aaac7nicbvhljtmwfhxcawivaksfisidjvmkkczacrkgeleinepympxkcm9yt4lsp6wy8hvseft+ir8bguctgs6w946jzr+zgrtjtjop+ev6vq9eu9i7gdy6fefuvc79b6e6rbwfis5qc5sooezcupddiezsgerkydrwgxafbqapvkpp5lvbrnbzplljbljqgnndirlzzfbbxtdggxlobomrhcqslrqugsjmjonbyxnbzjwsbgdns6uorlsteofvrxbdqewwcrjhzddlfznmtvc4v7hvhurihhgsluah8iduhtidgafzhfqemak6yyby77z/b/ejp8nlzuyyoaiqrge9xrbvppadn/givmglj7fdr5orxvd88zlndnon+ph68cxqbwfempxfwlixqy7fxxg9g6bum5xocr5wzwkimoxzccrwgitcczgdsocqc9msut9hgj47jco7wzetp8jr994clquuvsfm65e+qlxk/7rxbfkxe8tkvruqdnmorzkjw7vijomgbpt4wrqpibfdm5uyqad/dlnpgczaniftrovx7tlmjg97mdrp/7ohhufnrghhqhhab/f6au6rm/rcroi6rxhlfwln7lf/w/+d8qb6/fmq7yt/4y8cuvs</latexit> sha_base64="7mltcx5u4lsdkaymwnapcng=">aaac7nicbvhljtmwfhxcawivaksfgsidjvmkkctdfilyafiegi5gaujmopio5httfswf4mdyssfizbze7dfabugm9ynj865vo9zs5prpep4l+dfuxrt+o9m8gtfuuvcfciqkzimsqvq+rphhrhvjchppqrosxdngrlk5apxrgkhfk/fjroy4wgmaeexo6ads7tgsms+mksbhnrglqvbekurwcqcrlefedi5cyddkxjodjzjjgzwlurjkzbncvmqbvduvxs+nmtgsiyzkks7monhdsriw/thkosmozsutingqhbhmseegbkj8qbywbwtfbmfw/efzx75izwsfuceky4evofyrhslamhzxb4tshovjzyufwatwbnvmxzaedbtylwevgqlukcfuvd8z8/+8btzwgm7ynzkipcrlxemkqbqz4pzrfkkrltgmjbuibmmettwpjemtksjpfjtrcs//+migrtekzyz9uhelvyfnm58xjiqkgbtqtencoabnuf7vcneqctbtbthgwmk8rxjhlw7/k6xoweloicitpegpvctouyodnsjxev+egcewusqcegcdghytgbtgcb8exgalsvfg4t/cwfu/9b/5zepvrf98xdshp/jlzr7fg=</latexit> sha_base64="jpnec7k4pleycj+hxjbtyflg4g=">aaac8hicbvjnixnbeozv9b4ffxoptejzehczklosrzyuvbyybnzymrq9otnnmfqfn7szh/oc8eo/8ux/8gxpngezafd8v6/qq5xnvvsoizjxf44+atf7vbux/w8fh/8zmtzrl+iqzaexpbo5lofkebup+wlkokpn8mpxjjp+eceuece4rvhcwvklqjbady6v9mkbgyumiqevwaqbxqpkwpqqq5pl9x8nbmlqodnoh6taoavwxkm7bxxy6bjzkw7pdpahevdg7xnfacouqrmvertlbq+vslgzb7butber6wsko/cmvcswpug+kok9bk+6auqhxpdohwgl7uesxammhtvvxj76szmkifbbrx8qj+jnotjskgzbthi/6fndesvlwjk+dclikrnddgutdj/xc4xwwepz85lmnirt5slgs94jkefsf5opbvxudyrmyvznzi9leva/gzgou8boqkauwujbxtfq7vnlxyztdvlrfarpbvpwwffhj6/e9wxf5xrglocmoqosq7zct4orv6zjj/jweg7rwv75bl5toykiw/iixlpjsiesobdyiklyba8fv4pfxxetumtpqnzcfcn8btirr/q==</latexit> sha_base64="ifmre7u6f9+meuo58dyahoilza=">aaac8hicbvjnixnbeozv9b4ffxopxfhyikemuvregqhfwwfftabhuymnt9szp+glprdjco8z+8ivf/gl/fs+bp8gxpkopztachek9fvderzkophmbxzyc8cvxa9rs7nzubt+5e697/8gxm5vlfmimnpyka8elhyiaiu/kshluk+yhadlh+dcuueue4lplewuylqjbad7v9isbgbo6ytupeqqtupkwpqqi5pj9x8jbmlqodohgdaoa5wxkpwiabxyrbzvo9apdce+k7fznoeenyhjryrtebmuvpq6phurfyayikvovlc6mvvjnljwkxslh7asmnxsvpay5yreqapaskworqvgwrrqlv/nldu6jybtxtlu7ct9ebbcjjtk9+dvj9+fccgh+6fndesulwjk+dcoillnnrgutdj/xcv4ywwbcz4kcafheterwmhj7xse4ly/rsffov4oalhnllfmbrv/uitec/+pgfryvj7xqzyvcsujbxtfq9vnlxyztdvlrfarpbvpwwofhj6/w9mxn5yrghwcmwqosi7zcto7+/6zjb+8y6/jonbii/ky9ehcxpad8oyckifhwdvabofbmrthl/br+g9nqwmodkk8lvfwh8fo5</latexit> sha_base64="qtdisdbttxeacy4wtephiwgnm=">aaac8hicbvlnihnbeo4z/9b4f/w4l8ydiquyziiiimhclgokkwc5kyap6kib9mtx7g4c5gv8am/irfwgxwez4kp4nmejaezafd8x9vxv9vkphcm4/hmely5fuxpt6rnxsbt+97947cqayja+ykcyez+c4fjopukdkx6xlodljh9m8/lde6dmpoqfyufk5hquqgg6kfj9dagsmwzee+zaupo6oocljalkkpvgkdb5nfb7tzqwbkdwfebzpmddtdsltxdlvrlvyutrshm44lyrskn5rk5ddqunhr7vu7nd5uigvv8jwwlfutwuecublfdawftlladdku9rlfkkqrqe8rczy6tbxdyqva4m98wztabdtnpputrwxl4netjjsrp/4vvvd9s/phmun/slbkcymgnojjc5xxinfwstwwol8dmmoujnpqir5tia+tajosm9ucjxal/kmpqziu5m+frnzxav+jxtvwdwfkxfxlnvo8brqnbtdlce5q7+xaczwr+vshlyyojv9flxuujx4zugjlqjuroixoxq85z9l8s479pksyotskwekrxlyjoytv+sadaglxgcmoaswoq/h/cr6urybdwccbex77cxim7+m=</latexit> The first k rows of M (k) are full of zeros, as are the first k columns (by the triangular structure of L and U ) sha_base64="jiseeeoszrdomz+giivbjyqi=">aaadficbvjlb9naef6bvxtekry5rihqoadiqsa4ouq5ccwsasrfubpej+nv9qxdcutk+w8gcyj/wgx5cgf4cza9ygjltaxz7zepbyawuhppkdxtfuhnr9p9/chde/cfpbwepdrxpnicztxi44z5kekdtmukohuomaqkzdpntmwn5+d88loj7isfrsruuhommqwhe+6llljof6kkyfsvuw9sxxrmcbmlgtdbtdkmzx6xtakliwhim6nt7klzey9mwtvwzdwb4r9zxgq5gy9xvj4ktob6nmzlyuthysbpbqky+ugp9aztwnkcb+pgyz9pqsjlxpymj8hgqnhhav5ucnoye6iutcbqyl6nrqdemkoqxcttycignczfewzhua4yrblctpvvsnrmk46o9edse+msg/hq+gfbmvfgjkknm/mcqwlzvzoy6eiehvtsabal4gqmwc/r7s8a+ixecloyf45gkx/zdrmeb9vwxjzquqvymwf9iiwultshbavgiaxxyqkhlgpucfw44bh+nxemb8uep7wmqnema7jtpqr5dtjqnwcmwqemvw57py8hievmnxirkfvesnybpyldwne/kghjh5jjmci9s9dn6gnlv8tf4x/xz8uncdrzhpmdi/9bu/g/6g=</latexit> sha_base64="vepjuqx77rzqrn7g5ru+xprfg=">aaadficbvjlixnbeo4zx7vxldwjl8zfooeish6kouc9licsxkqranpybtpf9+wahvkbgif9josrx49+de8cfzmcjc7fjrdndfpb6uzerhmul+rvgvq9eu9jz7d8dfvof7evwnvksdhzi7irjhqtqmeabek6sa6yycznsowrxyrk4l4x+hyslm8uwwhscmwyh+v6mrmmvo+hiad5wds/rcgukcvaszwcc6mumdjkznnsqgjweyhjxnnjqzbnasqyctgnl6pbdplpbskcnwapprxsdptpzdgguuqcmordxrbzkdqzcewporchbwdtlyy7mjk/pekjouwletuhp6eheu4eagxgsoua+bzbdk6kll6gi4fgrdesidiomuxsgs6bex8/gssdcvocopsh77+8+srierov8douovaocmu+nw8tirgyujeqjkjafvislwaaxmu+fnd/vldh4vitgvjwtfiu+i/jjop7cqcy9bvffra+d5twwlyculbckhzdagikmfki4azyudjufc8f4uexwyssgfmewjltvspbngadcmaqfwp4uzblzvhtqvip4dugcuythygdwkj8mqvcch5a5impcixt9id5fn+op8zf4w/x9/tsonpz7zmvih8b+aoca==</latexit> sha_base64="azuelgnwzrysd7mgapu4z8+j4=">aaadficbvi7bxnben47xol5ovdsrihqkfbricoucqxuayjx5f8lron+dbev/anuuwtvcilhbpeijasgpp/qifetkfthhptap59pvht5nzktwmyy8ovnlvubw9u9m7du7nb7l5eloiy4kcydz8ydfbpgkfdcsxxavczhncglt4+beefe9wawgqfylqncgittbibztyxmtedzp85vdsrmcxkkvzsdwfckmvxqfdyvonimhjmayhtbojjsdrnmvqcqugth4h7dolvtq6cmwwlprkbptmwppphglktqcurrvrwrbzmzswduro+d5emvnz8jyi46mzc+oghouwnezufp6igeoyfagfgsgguqyazbll8tjkcj4lfrnhmijqmmu5sg8bwk87ozwewdnypxv/5+exxexm46/8onffkguyumfetqwjxwjmx6kgielrtczb5jajrmyk/ltu/qyhjikp4vx4wikxfrfrsu9uvhzetqv4igb/hqlf5oa6fthad5qlbrytaybrea5sibx/c7uwa8kcy45wuqimnyk4qjchtwizubdpvcjw4kmtl5+jpflipwdugcuysiygdwkj8mavcah5a5jcpcixudrx+jt/gh+hp8nf6ehpha859smhx97/m4qtt</latexit> sha_base64="zujo/xnaolr56fhrdtl7dduu=">aaac/nicbvi7j9naelbn6wivacxniaijakuakgftkpdqxfi5hzsoyrwmg8zb/w7jghsixrwt+hq7t8fx4gdtxrxaw5y6svrt8z8r6rwfme/wujkwvxbxzdhny6fefuveh9b6fojbjlbtp7fnoheqhcuqcjj5vfpnkjab5atlx6rqtez/ogfm8wwwhscm/lqfpg7q5jnzacmiccvuwqbqeakgikhtzding64uyrprznnjmtkuylz7kztohm6y9m+dnpg+rfuj6kvfgxrhi6qehwisevoozqbigfcvnwsevwwgrg8causqvfcg9me6cone8gds8grwmorciedqqftq7cqeqjvivugsczxrskxqsc+hsfwagxq5cox+o4ng8m7jsjlzcno7mq//zavda4waugtonsdxrbogwrjcol+dlgxvmjlppeuzgrdrnmdpounhllayax/mmch/pvrmoxcvuu+slppxeq68h/ceuf6kjdfutar5vvnsyu6c7myyeru5ekovgao/k/cswca9/oddsvqsuwshyk46ozklslxtp+p/ddjsej4ze9zefbo+bx8driglfbcfaoammaq/tsa/hf+jz9g6hvyx8ahxow+daop9/aw9t=</latexit> sha_base64="w75io55ko8qjsnziwwxzlwoyy=">aaac/nicbvjlixnbeo4zxt8rt6kvwedxjmrflpspclbw8rmjftag9nzpmm+7pobsmmqwde9j/4k8cv4sf4yxl7ssxiwuxyfn9xz686q5rfeu/g/dkwvxbxzc7n6fefuvf79b6fofbgsbhl7fnghspz4ogkktyrlhkdkuyyxbdjkyvaj5ntyvtjsflzkxgpohpvfacvtzj4ctr4kxtb9fkx5xltyzewujkgk5owvs4bbtuspefww7bdz5nkxzzkskl+swsnprus9bwemlwcgc4oqwcrmcmibzcsws8dtuoeb5rszbl9wcoxq6xobnbpiksjqedipxuehwgkhtaq78yl7ohamcuiflofgfa+fpoetrixduhbap4wgcbgshpvnmpjoz8/zhljj9p+7rmrkxjkg4c+m4qmjscetskpsrg4rlhz8jmpvllyjmzsb7twxcmzyirytyop9mnfw7t9azj+zucxe5dvwfn64pfzvpzfnvhkxynsprsnqrlmqigl8lmcmglnxvewsxxv/9lgv6iamfptdtnvdxrvkuo6fpb/7rxo+8yq/zg7yi/aypwuxolh7a7ysmmgirog/b5/a8/bj+db9tq8ngl/oq7vn4/s9qfmk</latexit> sha_base64="9nergubn8q+fey8gbnhwdjmc=">aaac/nicbvjlixnbej4zxt8rt6kvweduyymp6kovcphhywewszelo6drkvrj6k5jdmoaiog/8szebx+ez+gfg8jpkyhytaci+r55fdvzk4siof4trpctxrl7bu965cfpw7tvdu/donaksxyetizjdmuquoqbek8kyylulmsvmg5zmfwiemfkresekzbtibwfkounzoym5mdt/upewqqtupyomhfxbj9w45eyppqdohgdaoyfzzjetauysbnksq5ow9gxdxjshjxushkwqehwisezootbliancldysepwyukde8nizucagfmknmnwceav5o7a7gkwioaihf9yrvdezcaevq5ji/uimyrwrievqs/a+r4sfqijwbo7d8kux/4rxbrae/dfapj/58e//94pfjppsrnrpekdtejxnui9lgtfmkuas/aqvw5lxozvhyluakxtjenabh55zaq5sf5pgjx6bbnlhmrlfnivjnmvb/gjivjn4rosilufnmorsrqhtnmaqlnlwku8g4fx5w4awzjhv9d7su6cwmbnbatlvc9c/lcte5fdlzx6f/yivpnjyxvagebg8dvrbuxacvahogmhawyrswg/hx+hd9cn6hhzhebhnud+sgpr79rlpub</latexit> We will see later how to improve our Lsolve and Usolve functions, but the first job is usually to get something simple that works Define also A(k) = A sha_base64="vma+y+msabpqtn8yolo9wdobp4=">aaacyxicbvfbaxnbgjdbzxeoj76mjqrgrbhtyujniqhwoitgkaqjyns7ozzbbzwwdm8zhnvxb/hh/im/ojvvqth7wwegc78b5pjrbalotxdeuxvv/ooth6hj588fdz+/ujeyphmsassxwaikyfwrsqghktfqe8zsrsvqmanyqzsmunwy5lmodoxnkcygu/n7+teqluxtk46r/dnlwovmcccqwsjuicokl5hknhmnne4mgummb5t6lojoapnzsi6slmi5x5rwz5l76ybiwslu8mzufdhbaidgikz6ahc5mvsxg5+9blque4beennyle9dxgp4bydwtnr8yn6kergldbiaoaojov6bzbjxnaidgdj6gkelmvmkdmwm+ksrtuqecroph4kximezxldr7tazzqxwkafs9q6lunzlnvrkgh9u6vj/ntyuqfzpaksjje4pwivglqsfi/dgzuewz8qzkkskl+vogxscfs/gmtiwiuydgwqy5bvr8ubbootvx78tr9vn85+nrytgvegwwalwhhyaqaexgah8fhcbx8c7+ep8kr8oe6nayanpdgi8jf/wcybdtj</latexit> Pk r= M (r), with A() = A; also A(n) =