Question: Solve command Issue due to Computational Cost

Hello Everyone;

Hope you are fine. I am solving system of odes using rk-4 method. For this purpose I formulate the "residual" (on maple file) which is further function of "x" and "y". With the help of discritization point further I convert "residual" into system of ode's. Then i used "sys111 := solve(odes_Combine, `~`[diff](var, t))" to simplify the system. Finnally i applied RK-1. Code is pasted and attached. This all process is for "N=4". When i increase the value of "N", number of Odes increase accordingly. With increasing value of "N" the comand "sys111 := solve(odes_Combine, `~`[diff](var, t))" taking a lot of time due to heavy computation. Is that any way to proceed without this comand for rk-1?

Question1.mw

 


 

restart; with(PDEtools, Solve); with(LinearAlgebra); with(plots); DD := 30; Digits := DD; N := 4; nu := 1.0; t0, tf := 0, 1; Ntt := 10; h := evalf((tf-t0)/(Ntt-1)); xmin := 0; xmax := Pi; `Δxx` := 1.0*xmax/N; ymin := 0; ymax := xmax; `Δyy` := 1.0*ymax/N

0, 1

 

.111111111111111111111111111111

 

.785398163397448309615660845820

 

.785398163397448309615660845820

(1)

residual := 1.000000000*(diff(A[0, 0](t), t))-32.00000000*A[2, 0](t)-32.00000002*A[0, 2](t)+(diff(A[1, 1](t), t))*(4.000000001-8.000000003*y-8.000000003*x+16.00000000*x*y)+(diff(A[1, 0](t), t))*(-2.000000000+4.000000000*x)+(diff(A[0, 3](t), t))*(-4.000000000+40.00000000*y-95.99999994*y^2+64.00000001*y^3)+(diff(A[0, 2](t), t))*(3.000000000-16.00000001*y+16.00000001*y^2)+(diff(A[0, 1](t), t))*(-2.000000001+4.000000000*y)-A[3, 3](t)*(768.0000000-7680.000000*y+18432.00000*y^2-12288.00000*y^3-1536.000000*x+15360.00000*x*y-36863.99998*x*y^2+24576.00000*x*y^3)-A[3, 2](t)*(-576.0000002+3072.000000*y-3072.000000*y^2+1152.000000*x-6144.000000*x*y+6144.000000*x*y^2)-A[3, 1](t)*(384.0000000-768.0000000*y-768.0000006*x+1536.000000*x*y)-A[3, 0](t)*(-192.0000000+384.0000000*x)-A[2, 3](t)*(-128.0000000+1280.000000*y-3072.000000*y^2+2048.000000*y^3)-A[2, 2](t)*(96.00000000-512.0000002*y+512.0000002*y^2)-A[2, 1](t)*(-64.00000002+128.0000000*y)-A[3, 3](t)*(767.9999998-1536.000000*y-7679.999998*x+15360.00000*x*y+18432.00000*x^2-36864.00000*x^2*y-12288.00000*x^3+24576.00000*x^3*y)-A[2, 3](t)*(-575.9999998+1152.000000*y+3072.000000*x-6144.000000*x*y-3072.000000*x^2+6144.000000*x^2*y)-A[3, 2](t)*(-128.0000000+1280.000000*x-3072.000000*x^2+2048.000000*x^3)-A[1, 2](t)*(-64.00000002+128.0000000*x)-A[1, 3](t)*(384.0000000-768.0000000*y-767.9999998*x+1536.000000*x*y)-A[2, 2](t)*(96.00000004-512.0000002*x+512.0000002*x^2)+(diff(A[3, 3](t), t))*(16.00000000-160.0000000*y+383.9999999*y^2-256.0000000*y^3-160.0000000*x+1600.000000*x*y-3839.999999*x*y^2+2560.000000*x*y^3+384.0000000*x^2-3840.000000*x^2*y+9215.999998*x^2*y^2-6144.000001*x^2*y^3-256.0000000*x^3+2560.000000*x^3*y-6143.999998*x^3*y^2+4096.000000*x^3*y^3)+(diff(A[3, 2](t), t))*(-12.00000000+64.00000002*y-64.00000002*y^2+120.0000000*x-640.0000002*x*y+640.0000002*x*y^2-288.0000001*x^2+1536.000000*x^2*y-1536.000000*x^2*y^2+192.0000000*x^3-1024.000000*x^3*y+1024.000000*x^3*y^2)+(diff(A[3, 1](t), t))*(8.000000003-16.00000000*y-80.00000003*x+160.0000000*x*y+192.0000000*x^2-384.0000000*x^2*y-128.0000001*x^3+256.0000000*x^3*y)-A[0, 3](t)*(-191.9999999+384.0000000*y)+(diff(A[3, 0](t), t))*(-4.000000000+40.00000000*x-96.00000002*x^2+64.00000001*x^3)+(diff(A[2, 3](t), t))*(-12.00000000+120.0000000*y-287.9999999*y^2+192.0000000*y^3+64.00000000*x-640.0000000*x*y+1536.000000*x*y^2-1024.000000*x*y^3-64.00000000*x^2+640.0000000*x^2*y-1536.000000*x^2*y^2+1024.000000*x^2*y^3)+(diff(A[2, 2](t), t))*(8.999999999-48.00000002*y+48.00000002*y^2-48.00000000*x+256.0000001*x*y-256.0000001*x*y^2+48.00000000*x^2-256.0000001*x^2*y+256.0000001*x^2*y^2)+(diff(A[2, 1](t), t))*(-6.000000002+12.00000000*y+32.00000001*x-64.00000000*x*y-32.00000001*x^2+64.00000000*x^2*y)+(diff(A[2, 0](t), t))*(3.000000000-16.00000000*x+16.00000000*x^2)+(diff(A[1, 3](t), t))*(8.000000003-80.00000003*y+192.0000000*y^2-128.0000000*y^3-16.00000000*x+160.0000000*x*y-383.9999999*x*y^2+256.0000000*x*y^3)+(diff(A[1, 2](t), t))*(-6.000000000+32.00000001*y-32.00000001*y^2+12.00000000*x-64.00000002*x*y+64.00000002*x*y^2):

for i2 from 0 while i2 <= N-1 do odes11[0, i2] := simplify(eval(residual, [x = 0, y = i2*ymax/(N-1)])) = 0; odes11[N-1, i2] := simplify(eval(residual, [x = xmax, y = i2*ymax/(N-1)])) = 0 end do:

8

(2)

odes_Combine := {seq(seq(odes11[i, j], i = 0 .. N-1), j = 0 .. N-1)}:

sys111 := solve(odes_Combine, `~`[diff](var, t)):

ICS1 := {A[0, 0](0) = .444104979341173495851499233536, A[0, 1](0) = .198590961107083475045046921568, A[0, 2](0) = -0.167999146492673347540059075790e-1, A[0, 3](0) = -0.869171705198864625153083083786e-3, A[1, 0](0) = .198590961107083475045046921567, A[1, 1](0) = 0.888041604305848495880917177172e-1, A[1, 2](0) = -0.751243816645416714455046298805e-2, A[1, 3](0) = -0.388668563362181391196975707953e-3, A[2, 0](0) = -0.167999146492673347540059075793e-1, A[2, 1](0) = -0.751243816645416714455046298835e-2, A[2, 2](0) = 0.635518954643030408055028178047e-3, A[2, 3](0) = 0.328796368925226898150257328603e-4, A[3, 0](0) = -0.869171705198864625153083083734e-3, A[3, 1](0) = -0.388668563362181391196975707910e-3, A[3, 2](0) = 0.328796368925226898150257328592e-4, A[3, 3](0) = 0.170108305076655667148638268230e-5}:

f, diffs := eval(GenerateMatrix(`~`[`-`](`~`[rhs](sys222), `~`[lhs](sys222)), var1))

f, diffs := Matrix(16, 16, {(1, 1) = 0, (1, 2) = 0, (1, 3) = 32., (1, 4) = 0.494812294492356575865153049102e-27, (1, 5) = 0, (1, 6) = 0, (1, 7) = 0.120000000000000000001649374315e-7, (1, 8) = -0.107999999927999999998854228220e-6, (1, 9) = 32.0000000200000000000000000000, (1, 10) = -0.199999999999999999998350625685e-7, (1, 11) = 0.249999999859375000081951230025e-7, (1, 12) = -0.700000000203125000132933066388e-7, (1, 13) = 0.196000000000000000000494812294e-6, (1, 14) = 0.292000000072000000001204420404e-6, (1, 15) = -0.458000000726562499721923065316e-6, (1, 16) = 0.682900000453875000014432471170e-5, (2, 1) = 0, (2, 2) = 0, (2, 3) = 0, (2, 4) = -0.377561971763063776372092766396e-27, (2, 5) = 0, (2, 6) = 0, (2, 7) = 32.0000000000000000000000000000, (2, 8) = 0.719999999999999999998878327317e-7, (2, 9) = 0, (2, 10) = -0.125853990587687925457364255465e-27, (2, 11) = 0.906355783222184042180194163758e-27, (2, 12) = 0.135077431625990682476379737660e-25, (2, 13) = 96.0000000000000000000000000001, (2, 14) = 0.719999999999999999989394464730e-7, (2, 15) = -0.549999999914062500010607576813e-6, (2, 16) = 0.202000000048749999997617654955e-5, (3, 1) = 0, (3, 2) = 0, (3, 3) = 0, (3, 4) = 0.855583965847405137008732798371e-28, (3, 5) = 0, (3, 6) = 0, (3, 7) = -0.257808598553160159742093659020e-28, (3, 8) = -0.377264825438544618607975742790e-27, (3, 9) = 0, (3, 10) = 0.285194655282468379002910932790e-28, (3, 11) = 31.9999999925000000046874999970, (3, 12) = 0.326865301360930805043812804544e-26, (3, 13) = -0.773425795659480479226280977060e-28, (3, 14) = -0.313579545661510489918366218529e-27, (3, 15) = -0.149999999882812500075601322065e-6, (3, 16) = 0.324999999796875000093151106353e-6, (4, 1) = 0, (4, 2) = 0, (4, 3) = 0, (4, 4) = -0.384112032581666751703476763000e-29, (4, 5) = 0, (4, 6) = 0, (4, 7) = 0.265935771387910529598689301718e-29, (4, 8) = 0.399754551928273029196600976861e-28, (4, 9) = 0, (4, 10) = -0.128037344193888917234492254333e-29, (4, 11) = 0.173718566046259004921454811253e-28, (4, 12) = -0.553232882345597286403223410199e-27, (4, 13) = 0.797807314163731588796067905154e-29, (4, 14) = 0.427742792008362106477653509643e-28, (4, 15) = 31.9999999950000000007812499996, (4, 16) = 0.583137134641934297089284679036e-26, (5, 1) = 0, (5, 2) = 0, (5, 3) = 0, (5, 4) = 96.0000000000000000000000000001, (5, 5) = 0, (5, 6) = 0, (5, 7) = -0.125853990576278889372664086359e-27, (5, 8) = -0.780000000000000000003341913398e-7, (5, 9) = 0, (5, 10) = 32.0000000000000000000000000000, (5, 11) = 0.155215894719877680168982772333e-28, (5, 12) = 0.179999999957812500011610427218e-6, (5, 13) = -0.377561971728836668117992259076e-27, (5, 14) = 0.121999999999999999999928850210e-6, (5, 15) = 0.957742348838601502120463181878e-26, (5, 16) = 0.413250000106171874986265224797e-5, (6, 1) = 0, (6, 2) = 0, (6, 3) = 0, (6, 4) = -0.821348457439978150891092618719e-28, (6, 5) = 0, (6, 6) = 0, (6, 7) = -0.273782819058452669879599110853e-28, (6, 8) = 95.9999999999999999999999999997, (6, 9) = 0, (6, 10) = -0.273782819146659383630364206240e-28, (6, 11) = 0.294057068291966163490658104104e-27, (6, 12) = -0.253498333196688505804635565222e-27, (6, 13) = -0.821348457175358009638797332558e-28, (6, 14) = 95.9999999999999999999999999997, (6, 15) = 0.212121033252676198558579131631e-28, (6, 16) = 0.649999999999999999980740836208e-6, (7, 1) = 0, (7, 2) = 0, (7, 3) = 0, (7, 4) = 0.186123768597305842557431955743e-28, (7, 5) = 0, (7, 6) = 0, (7, 7) = 0.214460223691860703703477959545e-28, (7, 8) = 0.317673924810187018756335641686e-28, (7, 9) = 0, (7, 10) = 0.620412561991019475191439852476e-29, (7, 11) = 0.753895620987131323747484439705e-28, (7, 12) = 95.9999999700000000093749999970, (7, 13) = 0.643380671075582111110433878635e-28, (7, 14) = 0.348244413167432788858088750543e-30, (7, 15) = -0.195081345734130085456007896310e-26, (7, 16) = 0.162499999949218750020914346448e-6, (8, 1) = 0, (8, 2) = 0, (8, 3) = 0, (8, 4) = -0.835597462589282450911924283887e-30, (8, 5) = 0, (8, 6) = 0, (8, 7) = -0.168983990754200234313642237958e-29, (8, 8) = 0.255518912827614707211229660888e-30, (8, 9) = 0, (8, 10) = -0.278532487529760816970641427962e-30, (8, 11) = -0.912041057783558505972445866734e-29, (8, 12) = 0.152862192823148604497047654434e-28, (8, 13) = -0.506951972262600702940926713875e-29, (8, 14) = 0.212025424265299406832408057357e-29, (8, 15) = 0.158222957859551043617221056103e-27, (8, 16) = 96.0000000000000000000000000002, (9, 1) = 0, (9, 2) = 0, (9, 3) = 0, (9, 4) = -0.773425795970180636575593526265e-28, (9, 5) = 0, (9, 6) = 0, (9, 7) = 0.285194655390087477280223771532e-28, (9, 8) = -0.241100887243597349107036806234e-27, (9, 9) = 0, (9, 10) = -0.257808598656726878858531175422e-28, (9, 11) = 32.0000000125000000000000000004, (9, 12) = 0.999999999843750000174507862823e-8, (9, 13) = 0.855583966170262431840671314596e-28, (9, 14) = -0.104420360226003256663758222866e-27, (9, 15) = 0.600000000000000000027497059897e-7, (9, 16) = 0.900000000046874999977170328969e-6, (10, 1) = 0, (10, 2) = 0, (10, 3) = 0, (10, 4) = 0.643380671224932994877201196193e-28, (10, 5) = 0, (10, 6) = 0, (10, 7) = 0.620412562284547562356437593923e-29, (10, 8) = -0.782971264706294608812923943602e-28, (10, 9) = 0, (10, 10) = 0.214460223741644331625733732064e-28, (10, 11) = -0.117716452160171050903010422567e-27, (10, 12) = -0.324249553007268016939337229307e-26, (10, 13) = 0.186123768685364268706931278177e-28, (10, 14) = 0.210791990319339808396292213890e-27, (10, 15) = 95.9999999999999999999999999990, (10, 16) = 0.601289924118833452883693495332e-26, (11, 1) = 0, (11, 2) = 0, (11, 3) = 0, (11, 4) = -0.145794923079456919867181504653e-28, (11, 5) = 0, (11, 6) = 0, (11, 7) = -0.485983076931523066223938348837e-29, (11, 8) = 0.703045314344404024740114826873e-28, (11, 9) = 0, (11, 10) = -0.485983076931523066223938348844e-29, (11, 11) = 0.154061910958820937154327251969e-28, (11, 12) = 0.586431085917646726477197552134e-27, (11, 13) = -0.145794923079456919867181504651e-28, (11, 14) = 0.327116591013740734656854347967e-28, (11, 15) = 0.186427448215109472676159333906e-27, (11, 16) = 0.727156843809743343593213639608e-26, (12, 1) = 0, (12, 2) = 0, (12, 3) = 0, (12, 4) = 0.654542236344866764687318521378e-30, (12, 5) = 0, (12, 6) = 0, (12, 7) = 0.382930495785563772474113758933e-30, (12, 8) = -0.765771840140216030924576968705e-29, (12, 9) = 0, (12, 10) = 0.218180745448288921562439507126e-30, (12, 11) = -0.591357855581324858104400230586e-30, (12, 12) = 0.164090126078907967224367765176e-28, (12, 13) = 0.114879148735669131742234127680e-29, (12, 14) = -0.733606589050003370341598338138e-29, (12, 15) = 0.279365514914751130455040418258e-28, (12, 16) = -0.138821502091830040436688448298e-26, (13, 1) = 0, (13, 2) = 0, (13, 3) = 0, (13, 4) = 0.797807313447167969819086050522e-29, (13, 5) = 0, (13, 6) = 0, (13, 7) = -0.128037344212226672551029214969e-29, (13, 8) = 0.262885403001488132812902903311e-28, (13, 9) = 0, (13, 10) = 0.265935771149055989939695350174e-29, (13, 11) = -0.349411324204567081081722661297e-28, (13, 12) = 31.9999999950000000007812499995, (13, 13) = -0.384112032636680017653087644907e-29, (13, 14) = 0.119403167752948354510697994999e-28, (13, 15) = -0.452504513537780686847551220204e-27, (13, 16) = 0.149999999976562500006592455374e-6, (14, 1) = 0, (14, 2) = 0, (14, 3) = 0, (14, 4) = -0.506951972202161632959380608780e-29, (14, 5) = 0, (14, 6) = 0, (14, 7) = -0.278532487328297250365487744273e-30, (14, 8) = 0.100313589069551339782957918087e-28, (14, 9) = 0, (14, 10) = -0.168983990734053877653126869593e-29, (14, 11) = 0.876003797684675659527198447426e-29, (14, 12) = 0.309396538522635365039103628797e-27, (14, 13) = -0.835597461984891751096463232820e-30, (14, 14) = -0.169500948608311509445295032991e-28, (14, 15) = 0.104005614175784513152332127959e-27, (14, 16) = 95.9999999999999999999999999996, (15, 1) = 0, (15, 2) = 0, (15, 3) = 0, (15, 4) = 0.114879148750778899237620653952e-29, (15, 5) = 0, (15, 6) = 0, (15, 7) = 0.218180745498654813213727928025e-30, (15, 8) = -0.867251219227502985269662069579e-29, (15, 9) = 0, (15, 10) = 0.382930495835929664125402179841e-30, (15, 11) = -0.267864188359583543656192185112e-29, (15, 12) = -0.387791753042961333529856694716e-28, (15, 13) = 0.654542236495964439641183784074e-30, (15, 14) = -0.523627245808308931882255033583e-29, (15, 15) = 0.369199231034048272468531636165e-28, (15, 16) = -0.123439611085554953594747603640e-26, (16, 1) = 0, (16, 2) = 0, (16, 3) = 0, (16, 4) = -0.515746730509193430144544493936e-31, (16, 5) = 0, (16, 6) = 0, (16, 7) = -0.171915576836397810048181497977e-31, (16, 8) = 0.857347676859656256220355661580e-30, (16, 9) = 0, (16, 10) = -0.171915576836397810048181497979e-31, (16, 11) = 0.182597096197097886514765184582e-30, (16, 12) = -0.370616214664321329971866697584e-29, (16, 13) = -0.515746730509193430144544493932e-31, (16, 14) = 0.865925397235117524875431212196e-30, (16, 15) = -0.750058451906403875595888288641e-29, (16, 16) = 0.183460376006651920829411996611e-27}), Vector(16, {(1) = diff(A[0, 0](t), t), (2) = diff(A[0, 1](t), t), (3) = diff(A[0, 2](t), t), (4) = diff(A[0, 3](t), t), (5) = diff(A[1, 0](t), t), (6) = diff(A[1, 1](t), t), (7) = diff(A[1, 2](t), t), (8) = diff(A[1, 3](t), t), (9) = diff(A[2, 0](t), t), (10) = diff(A[2, 1](t), t), (11) = diff(A[2, 2](t), t), (12) = diff(A[2, 3](t), t), (13) = diff(A[3, 0](t), t), (14) = diff(A[3, 1](t), t), (15) = diff(A[3, 2](t), t), (16) = diff(A[3, 3](t), t)})

(3)

``

npts := Ntt:

``

``

``

``


 

Download Question1.mw

 

Please Wait...