{VERSION 4 0 "IBM INTEL LINUX22" "4.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Text Output" -1 2 1 {CSTYLE "" -1 -1 "Courier" 1 10 0 0 255 1 0 0 0 0 0 1 3 0 3 1 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Heading 1" 0 3 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 1 }1 0 0 0 8 4 0 0 0 0 0 0 -1 0 } {PSTYLE "Heading 2" 3 4 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }0 0 0 -1 8 2 0 0 0 0 0 0 -1 0 }{PSTYLE "Warning" 2 7 1 {CSTYLE "" -1 -1 "" 0 1 0 0 255 1 0 0 0 0 0 0 1 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Output" 0 11 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 3 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 11 12 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }1 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Maple Plot" 0 13 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "Title" 0 18 1 {CSTYLE "" -1 -1 "" 1 18 0 0 0 0 0 1 1 0 0 0 0 0 0 1 }3 0 0 -1 12 12 0 0 0 0 0 0 19 0 }} {SECT 0 {EXCHG {PARA 18 "" 0 "" {TEXT -1 24 "Poisson's Equation in 2D " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "with(linalg):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "w ith(plots):" }}{PARA 7 "" 1 "" {TEXT -1 80 "Warning, the protected nam es norm and trace have been redefined and unprotected\n" }}{PARA 7 "" 1 "" {TEXT -1 50 "Warning, the name changecoords has been redefined\n " }}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 17 "Analytic Solution" }}{PARA 0 "" 0 "" {TEXT -1 47 "(see the lectures about obtaining the solution) " }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 24 "We consider the solution" } {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 47 "u_an := (x,y) - > sin(Pi*x)*sinh(Pi*y)/sinh(Pi);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>% %u_anGR6$%\"xG%\"yG6\"6$%)operatorG%&arrowGF)*&*&-%$sinG6#*&%#PiG\"\" \"9$F4F4-%%sinhG6#*&F3F49%F4F4F4-F76#F3!\"\"F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 67 "which solves the Poisson equation with homogeneou s right hand side:" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 43 "-diff(u_an(x,y),x,x) - diff(u_an(x,y),y,y);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 48 "and satis fies the following boundary conditions:" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "u_an(0,y); u_an(1,y);" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "u_an(x,0); u_an(x,1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#-%$sinG6#*& %#PiG\"\"\"%\"xGF(" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 30 "Here's a pl ot of the solution:" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "plot3d(u_an,0..1,0..1,axes=boxed);" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6$-%%GRIDG6%;$\"\"!F($\"\"\"F(F&X,% )anythingG6\"6\"][[[[]\\q\\bm\":\":00000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000003F584F050584A4733F68846921787C023F72A68 1406405783F795CBB2E7D1A003F80412F0DC6F80B3F841B6796F8A9533F884DF36D8B9 7C73F8CEB42CA31910E3F9103CD71303A7D3F93DCB779A128773F970CE16FF7FFB53F9 AA24C8A156F1E3F9EACB6C72489393FA19EF00B33C6613FA434EC27CFB8873FA723ABA 9C7B7D03FAA78106BDDB54B3FAE40BAC9E11ED03FB14724F05F396B3FB3B9D24916CC7 63FB68326465D833E3FB9AF5E627426CA3FBD4C6A7F31BF4C3FC0B5150F6DA2C900000 000000000003F6819C7E3D13BA63F784EB711083DC53F827DA888CFC50E3F89252F59B 92D323F901D9594A9F7E03F93EF5E2DD8C60E3F9818B8A30BD0173F9CABECCB205FEF3 FA0DE89BB4A702B3FA3B1375BBAB6213FA6DA65D3CD23213FAA67F7AD5C02883FAE698 86D69E05B3FB1785891BD92633FB408AADB9D04973FB6F0FE23FC00223FBA3E180EEDC D143FBDFE78EFADEC113FC1214DBDFC41903FC38E9E97E7E2B03FC651D84FD5F5C13FC 9771D9159C4F53FCD0C3FB83764443FD0907DC193068900000000000000003F71D13E1 A1BF9223F81F86051B1B8423F8B5711ED1B167F3F9296EE6068806A3F97D3FC9F54725 D3F9D79B6A219EC6A3FA1D07591681FB53FA53250D009133F3FA8F1488C53E56E3FAD1 DD1499B78DF3FB0E5206BD716D53FB3858F6ECE95683FB67BBF8445C7663FB9D4B3355 625563FBD9F1EE3DD89E53FC0F5D4B141A6063FC3669A8D225ACB3FC62C997F6CD1B13 FC954005F2BD2313FCCEAA9E4E816703FD0802CC34589843FD2D3805B160B973FD5798 6D9FAA8A33FD87DE2A6AEA95800000000000000003F77478CF6844FA53F877AAE64F96 BB83F91DC5CE32773013F9849D7DC3AC76C3F9F22045018F4153FA341798F52747D3FA 74686F3E1EFEF3FABB1D2B66902EA3FB04B632C9EF5583FB30570E31C5D103FB6130CE 007A4B93FB981A08F0857D83FBD603F5041FF523FC0DFF458D0C1C33FC359E98D18299 B3FC628E017B726BE3FC9592E33B6C1353FCCF8D5B5C0BD873FD08BE0C9E7A01E3FD2E 405E8BEE4573FD58F268211A2573FD898FB660054FA3FDC0EDD67F8C6393FDFFFFFFFF FFFF100000000000000003F7C57E39D992E333F8C96244C31F3883F95BEF4CE628C8E3 F9D925DC129702D3FA2F3D6BE8DC1933FA771BF908FBDD83FAC56A49CB2AC3E3FB0DC0 2C65C81883FB3D6C26F290EA33FB728A7DAB8DC073FBAE0486C665BEE3FBF0DF868CB4 8FA3FC1E20958542ACC3FC48BA4B0F6D0C03FC78F806089826D3FCAFADAFD0D2E343FC EDCB9BE4DAFB33FD1A3153C7F2B073FD425474461CABE3FD6FFF7F91F2F0E3FDA3FB11 98886FC3FDDF2B8349217FA3FE114A6AD42E5BF3FE37AF93F9513E1000000000000000 03F807609E6242E473F909A318655D25F3F99424C2BB5E3D03FA12CADD91B50E53FA60 3A7284F26FC3FAB3B54869586A43FB07550A1366C603FB3954311AD90D93FB70B3B8DE E4B173FBAE66DF0BAD0403FBF37CABE52EF043FC20924C6DC423C3FC4C59E2D0EDC7C3 FC7DD56953E05783FCB5DE3D55D8F093FCF56A84322B2D53FD1EC8B241562843FD47C7 E82ECD2503FD7666FACCC9F613FDAB72B5FDC27753FDE7D41E3A53A513FE164A38140F 2293FE3D70D6DC706AC3FE6A09E667F3BC200000000000000003F82780787079DBE3F9 2A09812572D9C3F9C56FFA89371483FA344F259527D553FA8B30A1BE0F5CD3FAE8DA17 34A08AC3FB27737A92504993FB5F8BC1E286E293FB9DAC4AC4FAD9E3FBE2E5FDFEC8A1 03FC18347959937513FC43C4D3178374B3FC74E369CC91D383FCAC680298590763FCEB 467DF9FF7B73FD1949838D876E93FD41C36879E09DF3FD6FC2BB0CE6E1F3FDA411896A A62263FDDF959A24C41163FE11AA2EC9E6CF03FE383BB5239DC963FE6428CC207EA2F3 FE963268B57248700000000000000003F84291F4B8A1A163F9455671343D86C3F9EEF9 0938C8B4E3FA508CF676780723FAAF63CAFD994A53FB0AD0CE9BBFD2A3FB4283C6333C 5633FB7FBF7875F0A2F3FBC390E0EDB0D243FC0790F4085F0AB3FC31DF3FF28BB303FC 616D2B142D8853FC970B9A80C62DC3FCD3A6172062A723FD0C236C2AA89523FD330DAA B4542F33FD5F3CB8E74F88A3FD9172AD7DF1C293FDCA8C18C8918853FE05C1E6C7CA0D E3FE2ABB9770EC9A83FE54D58ADBBDCBD3FE84C8B1F5E8BD73FEBB67AE8584C9E00000 000000000003F8581E827B8324C3F95B12536863D1D3FA0804FFC5639543FA67089BF2 220953FACC355DF52B3D13FB1CA3DAC8419813FB580F616D677933FB99624776EA04B3 FBE1BB8089BBC3F3FC192C6DF2A6A183FC464E3C39837483FC79096C2BAE52F3FCB23C D75ADAE603FCF2E3C2C52820F3FD1E0D174C9F2ED3FD4790DAE116DE43FD76B389519C 0893FDAC4430A0A91FA3FDE92E1D2C230823FE173E71A48FA1A3FE3EB07B56A1D593FE 6B9A71E8861703FE9EC1A11EE221A3FED906BCF328D3900000000000000003F867C7BD F187D323F96ADDF4A97E1D23FA14090380EE32C3FA775F9AF899C313FAE1271F2A422E F3FB29981CEC0F4D63FB67B7EC9F960673FBAC03E4475A8D53FBF7A806B93832D3FC25 F84CF4C15A93FC5527ED41CC04B3FC8A322B23342DF3FCC6000486954933FD04CC16F0 E67553FD2B11CA19608AA3FD56793AA9059743FD87C1127D0D5CA3FDBFC1CBED84D553 FDFF7168BCAC02A3FE23F3D55E80C673FE4D31705C81A993FE7C26AE59763673FEB1A1 D5BD4DFBE3FEEE8DD4748BF0800000000000000003F871490DBDA93AB3F9747424EF1D 5E53FA1B53EE2780BE73FA814A610C8F84C3FAEDDD50E37FAC23FB3174D70CE5A063FB 7138D170D65FA3FBB752B2E610B273FC027B35AA980AD3FC2DBC83FC34C3C3FC5E2B46 C1EB9623FC949C3EBCCEF313FCD1FE91A770E803FD0BAFF25D0F1B63FD32F87E93C23B 03FD5F857D7276A1D3FD921AA25B805403FDCB961FC3593E03FE067A3B9FBD9EB3FE2B AA675C99D233FE55FEEEE6708403FE8631C47D411C83FEBD16A1A403A113FEFB9EA92E C688E00000000000000003F87478CF6844FA63F977AAE64F96BB93FA1DC5CE32773023 FA849D7DC3AC76E3FAF22045018F4163FB341798F52747D3FB74686F3E1EFF13FBBB1D 2B66902EC3FC04B632C9EF5583FC30570E31C5D103FC6130CE007A4B93FC981A08F085 7D93FCD603F5041FF543FD0DFF458D0C1C43FD359E98D18299C3FD628E017B726BF3FD 9592E33B6C1373FDCF8D5B5C0BD883FE08BE0C9E7A01F3FE2E405E8BEE4583FE58F268 211A2583FE898FB660054FB3FEC0EDD67F8C63A3FEFFFFFFFFFFFF2000000000000000 03F871490DBDA93AC3F9747424EF1D5E73FA1B53EE2780BE83FA814A610C8F84C3FAED DD50E37FAC33FB3174D70CE5A073FB7138D170D65FA3FBB752B2E610B283FC027B35AA 980AE3FC2DBC83FC34C3D3FC5E2B46C1EB9633FC949C3EBCCEF313FCD1FE91A770E813 FD0BAFF25D0F1B63FD32F87E93C23B13FD5F857D7276A1E3FD921AA25B805413FDCB96 1FC3593E13FE067A3B9FBD9EC3FE2BAA675C99D243FE55FEEEE6708413FE8631C47D41 1CA3FEBD16A1A403A123FEFB9EA92EC688E00000000000000003F867C7BDF187D323F9 6ADDF4A97E1D23FA14090380EE32C3FA775F9AF899C333FAE1271F2A422EF3FB29981C EC0F4D73FB67B7EC9F960673FBAC03E4475A8D73FBF7A806B93832E3FC25F84CF4C15A A3FC5527ED41CC04C3FC8A322B23342E03FCC6000486954953FD04CC16F0E67563FD2B 11CA19608AB3FD56793AA9059753FD87C1127D0D5CA3FDBFC1CBED84D563FDFF7168BC AC02C3FE23F3D55E80C683FE4D31705C81A9A3FE7C26AE59763683FEB1A1D5BD4DFBF3 FEEE8DD4748BF0800000000000000003F8581E827B8324E3F95B12536863D1E3FA0804 FFC5639553FA67089BF2220973FACC355DF52B3D23FB1CA3DAC8419823FB580F616D67 7953FB99624776EA04C3FBE1BB8089BBC403FC192C6DF2A6A193FC464E3C39837493FC 79096C2BAE5303FCB23CD75ADAE613FCF2E3C2C5282123FD1E0D174C9F2EE3FD4790DA E116DE53FD76B389519C08B3FDAC4430A0A91FC3FDE92E1D2C230853FE173E71A48FA1 B3FE3EB07B56A1D5A3FE6B9A71E8861723FE9EC1A11EE221B3FED906BCF328D3C00000 000000000003F84291F4B8A1A193F9455671343D86E3F9EEF90938C8B523FA508CF676 780753FAAF63CAFD994A93FB0AD0CE9BBFD2C3FB4283C6333C5673FB7FBF7875F0A333 FBC390E0EDB0D283FC0790F4085F0AD3FC31DF3FF28BB333FC616D2B142D8883FC970B 9A80C62DE3FCD3A6172062A763FD0C236C2AA89543FD330DAAB4542F53FD5F3CB8E74F 88D3FD9172AD7DF1C2E3FDCA8C18C8918893FE05C1E6C7CA0E13FE2ABB9770EC9AB3FE 54D58ADBBDCC03FE84C8B1F5E8BDB3FEBB67AE8584CA300000000000000003F8278078 7079DC23F92A09812572DA03F9C56FFA893714F3FA344F259527D5A3FA8B30A1BE0F5D 33FAE8DA1734A08B33FB27737A925049E3FB5F8BC1E286E2E3FB9DAC4AC4FADA53FBE2 E5FDFEC8A173FC18347959937553FC43C4D3178374F3FC74E369CC91D3D3FCAC680298 5907D3FCEB467DF9FF7BE3FD1949838D876ED3FD41C36879E09E43FD6FC2BB0CE6E253 FDA411896AA622D3FDDF959A24C411D3FE11AA2EC9E6CF53FE383BB5239DC9A3FE6428 CC207EA353FE963268B57248C00000000000000003F807609E6242E4D3F909A318655D 2643F99424C2BB5E3D83FA12CADD91B50EA3FA603A7284F27033FAB3B54869586AE3FB 07550A1366C653FB3954311AD90DF3FB70B3B8DEE4B1D3FBAE66DF0BAD0483FBF37CAB E52EF0E3FC20924C6DC42423FC4C59E2D0EDC823FC7DD56953E057E3FCB5DE3D55D8F1 13FCF56A84322B2DF3FD1EC8B2415628A3FD47C7E82ECD2563FD7666FACCC9F693FDAB 72B5FDC277D3FDE7D41E3A53A593FE164A38140F22E3FE3D70D6DC706B23FE6A09E667 F3BC900000000000000003F7C57E39D992E3B3F8C96244C31F3923F95BEF4CE628C953 F9D925DC12970353FA2F3D6BE8DC1983FA771BF908FBDDE3FAC56A49CB2AC483FB0DC0 2C65C818D3FB3D6C26F290EAA3FB728A7DAB8DC0F3FBAE0486C665BF63FBF0DF868CB4 9043FC1E20958542AD23FC48BA4B0F6D0C63FC78F80608982743FCAFADAFD0D2E3C3FC EDCB9BE4DAFBD3FD1A3153C7F2B0C3FD425474461CAC43FD6FFF7F91F2F153FDA3FB11 98887033FDDF2B8349218043FE114A6AD42E5C43FE37AF93F9513E7000000000000000 03F77478CF6844FAF3F877AAE64F96BC23F91DC5CE32773093F9849D7DC3AC7773F9F2 2045018F4213FA341798F5274843FA74686F3E1EFF93FABB1D2B66902F63FB04B632C9 EF55F3FB30570E31C5D173FB6130CE007A4C23FB981A08F0857E33FBD603F5041FF5F3 FC0DFF458D0C1CA3FC359E98D1829A23FC628E017B726C73FC9592E33B6C1413FCCF8D 5B5C0BD933FD08BE0C9E7A0253FD2E405E8BEE45F3FD58F268211A2613FD898FB66005 5053FDC0EDD67F8C6453FDFFFFFFFFFFFFF00000000000000003F71D13E1A1BF92D3F8 1F86051B1B84E3F8B5711ED1B16913F9296EE606880763F97D3FC9F54726E3F9D79B6A 219EC7E3FA1D07591681FC03FA53250D009134D3FA8F1488C53E57D3FAD1DD1499B78F 23FB0E5206BD716E03FB3858F6ECE95743FB67BBF8445C7753FB9D4B3355625673FBD9 F1EE3DD89F93FC0F5D4B141A6113FC3669A8D225AD83FC62C997F6CD1BF3FC954005F2 BD2403FCCEAA9E4E816833FD0802CC345898F3FD2D3805B160BA33FD57986D9FAA8B13 FD87DE2A6AEA96900000000000000003F6819C7E3D13BC33F784EB711083DE23F827DA 888CFC5253F89252F59B92D503F901D9594A9F7F43F93EF5E2DD8C6253F9818B8A30BD 0343F9CABECCB2060113FA0DE89BB4A703F3FA3B1375BBAB63A3FA6DA65D3CD233D3FA A67F7AD5C02A83FAE69886D69E0813FB1785891BD92783FB408AADB9D04AF3FB6F0FE2 3FC003E3FBA3E180EEDCD333FBDFE78EFADEC353FC1214DBDFC41A53FC38E9E97E7E2C 73FC651D84FD5F5DD3FC9771D9159C5143FCD0C3FB83764683FD0907DC193069D00000 000000000003F584F050584A4B83F68846921787C463F72A681406405AC3F795CBB2E7 D1A463F80412F0DC6F8383F841B6796F8A98C3F884DF36D8B980D3F8CEB42CA31915F3 F9103CD71303AAD3F93DCB779A128AE3F970CE16FF7FFF53F9AA24C8A156F693F9EACB 6C72489903FA19EF00B33C6933FA434EC27CFB8C03FA723ABA9C7B8113FAA78106BDDB 5963FAE40BAC9E11F253FB14724F05F399B3FB3B9D24916CCAE3FB68326465D837D3FB 9AF5E627427123FBD4C6A7F31BF9F3FC0B5150F6DA2F700000000000000003C731085F 3EDE6743C833A656E6A4C6F3C8D40FEC7E938AA3C93E40CBC937A1F3C997EFA3973340 D3C9F89E724C9BE313CA30FAF61BA885B3CA6AE267779EB603CAAB03E905B7D013CAF2 7930E6F8DAA3CB213E1287AF8AE3CB4E361F1373EA43CB80EA47BB9D4D93CBBA394732 07FF63CBFB1EDB9AEAC2C3CC225C0C32912B73CC4C242547960343CC7B9F426ADCF1F3 CCB19DF615325183CCEF0D700ED250F3CD1A7DC7AB5AFE23CD424DC1CE8299C3CD6FA5 8954193EF3CDA34C4C6628B75-%*AXESSTYLEG6#%$BOXG" 1 2 0 1 10 0 2 1 1 2 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}}{SECT 0 {PARA 3 "" 0 "" {TEXT -1 14 "Discretization" }}{PARA 0 "" 0 "" {TEXT -1 212 "We c onsider a two-dimensional mesh of grid points. We will prescribe the t emperature at the boundary points (Dirichlet conditions), and compute \+ the values at the inner points via the discretized poisson equation." }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 66 "N and M denote the number of gri d intervals in x- and y-direction:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "N := 4; M := 4;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"NG\"\"%" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"MG\"\"%" }}}{EXCHG {PARA 0 "" 0 " " {TEXT -1 59 "The arrays x and y hold the coordinates of the grid poi nts:" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 76 "x := arr ay(0..N, [seq(n/N, n=0..N)]): \ny := array(0..M, [seq(m/M, m=0..M)]): " }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 8 "And the " }{XPPEDIT 18 0 "(N+1 )*(M+1);" "6#*&,&%\"NG\"\"\"F&F&F&,&%\"MGF&F&F&F&" }{TEXT -1 10 " unkn owns " }{XPPEDIT 18 0 "u[n,m];" "6#&%\"uG6$%\"nG%\"mG" }{TEXT -1 19 " \+ will be stored in " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "unbek := seq( seq(u[n,m], n=0..N), m=0..M);" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%&un bekG6;&%\"uG6$\"\"!F)&F'6$\"\"\"F)&F'6$\"\"#F)&F'6$\"\"$F)&F'6$\"\"%F) &F'6$F)F,&F'6$F,F,&F'6$F/F,&F'6$F2F,&F'6$F5F,&F'6$F)F/&F'6$F,F/&F'6$F/ F/&F'6$F2F/&F'6$F5F/&F'6$F)F2&F'6$F,F2&F'6$F/F2&F'6$F2F2&F'6$F5F2&F'6$ F)F5&F'6$F,F5&F'6$F/F5&F'6$F2F5&F'6$F5F5" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 60 "The function f will be used to compute the right hand sid es:" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "f := (x,y ) -> 0;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fG\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "And the function g will implement the bou ndary values" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 115 "g := proc(x,y)\n if x=0 or x=1 or y=0 then return 0\n else if y=1 then return sin(Pi*x) end if; end if;\nend proc;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"gGR6$%\"xG%\"yG6\"F)F)@%55/9$\"\"!/F.\"\"\"/9%F/OF/ @$/F3F1O-%$sinG6#*&%#PiGF1F.F1F)F)F)" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 53 "Und unser Gleichungssystem sieht damit wie folgt aus:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 313 "gls := \{ seq( seq(\n -u[n-1, m]-u[n,m-1] + 4*u[n,m] \n -u[n+1,m]-u[n,m+1] = f(x[n],y[n]) ,\n n=1..N-1), m=1..M-1),\n seq( u[n,0]=g(x[n],0), n=0 ..M ), \n seq( u[n,M]=g(x[n],1), n=0..M ),\n seq( u[0, m]=g(0,y[m]), m=1..M-1), \n seq( u[N,m]=g(1,y[m]), m=1..M-1) \+ \};" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$glsG<;/,,&%\"uG6$\"\"!\"\"\" !\"\"&F)6$F,F+F-*&\"\"%F,&F)6$F,F,F,F,&F)6$\"\"#F,F-&F)6$F,F6F-F+/,,F2 F-&F)6$F6F+F-*&F1F,F4F,F,&F)6$\"\"$F,F-&F)6$F6F6F-F+/,,F4F-&F)6$F@F+F- *&F1F,F>F,F,&F)6$F1F,F-&F)6$F@F6F-F+/,,&F)6$F+F6F-F2F-*&F1F,F7F,F,FAF- &F)6$F,F@F-F+/,,F7F-F4F-*&F1F,FAF,F,FJF-&F)6$F6F@F-F+/,,FAF-F>F-*&F1F, FJF,F,&F)6$F1F6F-&F)6$F@F@F-F+/,,&F)6$F+F@F-F7F-*&F1F,FQF,F,FVF-&F)6$F ,F1F-F+/,,FQF-FAF-*&F1F,FVF,F,FgnF-&F)6$F6F1F-F+/,,FVF-FJF-*&F1F,FgnF, F,&F)6$F1F@F-&F)6$F@F1F-F+/&F)6$F+F+F+/F.F+/F;F+/FEF+/&F)6$F1F+F+/&F)6 $F+F1F+/F^o,$*$-%%sqrtG6#F6F,#F,F6/FcoF,/FjoFip/&F)6$F1F1F+/F(F+/FNF+/ F[oF+/FHF+/FenF+/FhoF+" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "l sg := solve(gls,\{unbek\});" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$lsgG <;/&%\"uG6$\"\"!F*F*/&F(6$\"\"\"F*F*/&F(6$\"\"#F*F*/&F(6$\"\"$F*F*/&F( 6$\"\"%F*F*/&F(6$F*F:F*/&F(6$F.F:,$*$-%%sqrtG6#F2F.#F.F2/&F(6$F2F:F./& F(6$F6F:FA/&F(6$F:F:F*/&F(6$F*F.F*/&F(6$F*F2F*/&F(6$F*F6F*/&F(6$F:F.F* /&F(6$F:F2F*/&F(6$F:F6F*/&F(6$F6F6,&#\"#6\"$7\"F.*&#\"#P\"$C#F.FCF.F./ &F(6$F2F6,&#FeoFboF.*&F`oF.FCF.F./&F(6$F.F6F_o/&F(6$F2F2,&#F.\"\")F.*& #F.\"#;F.FCF.F./&F(6$F6F2,&FgpF.*&FgpF.FCF.F./&F(6$F.F2F\\q/&F(6$F6F., &#F6FboF.*&#\"\"&FfoF.FCF.F./&F(6$F.F.Fdq/&F(6$F2F.,&#FhqFboF.*&FeqF.F CF.F." }}}{SECT 0 {PARA 4 "" 0 "" {TEXT -1 21 "Plotting the solution" }}{PARA 0 "" 0 "" {TEXT -1 93 "Maple provides a function surfplot that can produce a 3D function plot out of discrete data. " }}{PARA 0 "" 0 "" {TEXT -1 68 "However, it requires the solution to be present as a list of points." }}{PARA 0 "" 0 "" {TEXT -1 59 "We'll define a couple of helper functions for that purpose:" }}{EXCHG {PARA 0 "" 0 "" {TEXT -1 104 "The first function produces one point of the solution (i .e. a triple of x-coord., y-coord. , and value):" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 48 "punkt := (i,j) -> [x[i],y[j],subs(lsg, u[i,j])];" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%&punktGR6$%\"iG%\"jG6\"6$%)operatorG %&arrowGF)7%&%\"xG6#9$&%\"yG6#9%-%%subsG6$%$lsgG&%\"uG6$F1F5F)F)F)" }} }{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "See the midpoint as an example:" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "punkt(N/2, M/2);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#7%#\"\"\"\"\"#F$,&#F%\"\")F%*&#F%\"#;F%-%%sqrtG6#F &F%F%" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 141 "Now, surfdata can do it s work, and produce a nice plot. Note that it interpolates the data, w hich may lead to certain artefacts in the plot. " }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "surfdata([seq([seq(punkt(i,j), i=0..N)],\n \+ j=0..N)],axes=BOXED); " }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6$-%%MESHG6#7'7'7%$\"\"!F*F)F)7%$\"+++++D!#5F)F)7%$\"++++ +]F.F)F)7%$\"+++++vF.F)F)7%$\"\"\"F*F)F)7'7%F)F,F)7%F,F,$\"+I\")HNe!#6 7%F0F,$\"+cxN_#)F=7%F3F,F;7%F6F,F)7'7%F)F0F)7%F,F0$\"+wM))3:F.7%F0F0$ \"+wM)Q8#F.7%F3F0FF7%F6F0F)7'7%F)F3F)7%F,F3$\"+:17=LF.7%F0F3$\"+x6`#p% F.7%F3F3FP7%F6F3F)7'7%F)F6F)7%F,F6$\"+5y1rqF.7%F0F6F67%F3F6FZ7%F6F6F)- %*AXESSTYLEG6#%$BOXG" 1 2 0 1 10 0 2 1 1 2 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 47 "In a s imilar way, we can produce an error plot." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 65 "fehler := (i,j) -> [x[i],y[j],subs(lsg, u [i,j])-u_an(x[i],y[j])];" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 78 "surfdat a([seq([seq(fehler(i,j), i=0..N)],\n j=0..N)],axes=BOXED );" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'fehlerGR6$%\"iG%\"jG6\"6$%)op eratorG%&arrowGF)7%&%\"xG6#9$&%\"yG6#9%,&-%%subsG6$%$lsgG&%\"uG6$F1F5 \"\"\"-%%u_anG6$F.F2!\"\"F)F)F)" }}{PARA 13 "" 1 "" {GLPLOT3D 400 300 300 {PLOTDATA 3 "6$-%%MESHG6#7'7'7%$\"\"!F*F)F)7%$\"+++++D!#5F)F)7%$\" +++++]F.F)F)7%$\"+++++vF.F)F)7%$\"\"\"F*F)F)7'7%F)F,F)7%F,F,$\"*&H&f;& !#67%F0F,$\"*vgdI(F=7%F3F,F;7%F6F,F)7'7%F)F0F)7%F,F0$\")`I%)**F.7%F0F0 $\"**R*>T\"F.7%F3F0FF7%F6F0F)7'7%F)F3F)7%F,F3$\"*(RNr6F.7%F0F3$\"*nWll \"F.7%F3F3FP7%F6F3F)7'7%F)F6F)7%F,F6F)7%F0F6F)7%F3F6F)7%F6F6F)-%*AXESS TYLEG6#%$BOXG" 1 2 0 1 10 0 2 1 1 2 2 1.000000 45.000000 45.000000 0 0 "Curve 1" }}}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}}} {MARK "2 9 8 0 0" 0 }{VIEWOPTS 1 1 0 2 1 1805 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }