mmcdara

2000 Reputation

14 Badges

4 years, 321 days

MaplePrimes Activity


These are replies submitted by mmcdara

@acer 

That is indeed an excellent argument.
I can't wait to read the rest, have a good day

@leouam 

You are right, the need for initial conditions for higher order derivatives is essentially related to the method I used,maybe I should have specified it.
Which is probably a drawback of this method.

A completely different way to replace the computation of higher order derivatives by divided differences (centered in this case)

PS: The fifth derivative seems to contain a kind of discontinuity arround t=5 ... probably a numerical artifact that could be fixed by adjusting the value of h and the value of Digits.
 

restart:

with(plots):

rhsz := -y(t)*abs(y(t)):


sys := {
  diff(y(t), t) = dy(t)
  ,diff(dy(t), t) = rhsz
  ,y(0) = 1.0, dy(0) = 0.
}:


tmax := 10:

dsol := dsolve(sys, numeric, range = 0 .. tmax);

proc (x_rkf45) local _res, _dat, _vars, _solnproc, _xout, _ndsol, _pars, _n, _i; option `Copyright (c) 2000 by Waterloo Maple Inc. All rights reserved.`; if 1 < nargs then error "invalid input: too many arguments" end if; _EnvDSNumericSaveDigits := Digits; Digits := 15; if _EnvInFsolve = true then _xout := evalf[_EnvDSNumericSaveDigits](x_rkf45) else _xout := evalf(x_rkf45) end if; _dat := Array(1..4, {(1) = proc (_xin) local _xout, _dtbl, _dat, _vmap, _x0, _y0, _val, _dig, _n, _ne, _nd, _nv, _pars, _ini, _par, _i, _j, _k, _src; option `Copyright (c) 2002 by Waterloo Maple Inc. All rights reserved.`; table( [( "complex" ) = false, ( "left" ) = 0., ( "right" ) = 10. ] ) _xout := _xin; _pars := []; _dtbl := array( 1 .. 4, [( 1 ) = (array( 1 .. 24, [( 1 ) = (datatype = float[8], order = C_order, storage = rectangular), ( 2 ) = (datatype = float[8], order = C_order, storage = rectangular), ( 3 ) = ([0, 0, 0, Array(1..0, 1..2, {}, datatype = float[8], order = C_order)]), ( 4 ) = (Array(1..54, {(1) = 2, (2) = 2, (3) = 0, (4) = 0, (5) = 0, (6) = 0, (7) = 1, (8) = 0, (9) = 0, (10) = 1, (11) = 0, (12) = 0, (13) = 0, (14) = 0, (15) = 0, (16) = 0, (17) = 0, (18) = 1, (19) = 30000, (20) = 0, (21) = 0, (22) = 1, (23) = 4, (24) = 0, (25) = 1, (26) = 15, (27) = 1, (28) = 0, (29) = 1, (30) = 3, (31) = 3, (32) = 0, (33) = 1, (34) = 0, (35) = 0, (36) = 0, (37) = 0, (38) = 0, (39) = 0, (40) = 0, (41) = 0, (42) = 0, (43) = 1, (44) = 0, (45) = 0, (46) = 0, (47) = 0, (48) = 0, (49) = 0, (50) = 50, (51) = 1, (52) = 0, (53) = 0, (54) = 0}, datatype = integer[8])), ( 5 ) = (Array(1..28, {(1) = 10.0, (2) = 0.10e-5, (3) = .0, (4) = 0.500001e-14, (5) = .0, (6) = 0.5047658755841546e-2, (7) = .0, (8) = 0.10e-5, (9) = .0, (10) = .0, (11) = .0, (12) = .0, (13) = 1.0, (14) = .0, (15) = .49999999999999, (16) = .0, (17) = 1.0, (18) = 1.0, (19) = .0, (20) = .0, (21) = 1.0, (22) = 1.0, (23) = .0, (24) = .0, (25) = 0.10e-14, (26) = .0, (27) = .0, (28) = .0}, datatype = float[8], order = C_order)), ( 6 ) = (Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order)), ( 7 ) = ([Array(1..4, 1..7, {(1, 1) = .0, (1, 2) = .203125, (1, 3) = .3046875, (1, 4) = .75, (1, 5) = .8125, (1, 6) = .40625, (1, 7) = .8125, (2, 1) = 0.6378173828125e-1, (2, 2) = .0, (2, 3) = .279296875, (2, 4) = .27237892150878906, (2, 5) = -0.9686851501464844e-1, (2, 6) = 0.1956939697265625e-1, (2, 7) = .5381584167480469, (3, 1) = 0.31890869140625e-1, (3, 2) = .0, (3, 3) = -.34375, (3, 4) = -.335235595703125, (3, 5) = .2296142578125, (3, 6) = .41748046875, (3, 7) = 11.480712890625, (4, 1) = 0.9710520505905151e-1, (4, 2) = .0, (4, 3) = .40350341796875, (4, 4) = 0.20297467708587646e-1, (4, 5) = -0.6054282188415527e-2, (4, 6) = -0.4770040512084961e-1, (4, 7) = .77858567237854}, datatype = float[8], order = C_order), Array(1..6, 1..6, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (1, 6) = 1.0, (2, 1) = .25, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (2, 6) = 1.0, (3, 1) = .1875, (3, 2) = .5625, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (3, 6) = 2.0, (4, 1) = .23583984375, (4, 2) = -.87890625, (4, 3) = .890625, (4, 4) = .0, (4, 5) = .0, (4, 6) = .2681884765625, (5, 1) = .1272735595703125, (5, 2) = -.5009765625, (5, 3) = .44921875, (5, 4) = -0.128936767578125e-1, (5, 5) = .0, (5, 6) = 0.626220703125e-1, (6, 1) = -0.927734375e-1, (6, 2) = .626220703125, (6, 3) = -.4326171875, (6, 4) = .1418304443359375, (6, 5) = -0.861053466796875e-1, (6, 6) = .3131103515625}, datatype = float[8], order = C_order), Array(1..6, {(1) = .0, (2) = .386, (3) = .21, (4) = .63, (5) = 1.0, (6) = 1.0}, datatype = float[8], order = C_order), Array(1..6, {(1) = .25, (2) = -.1043, (3) = .1035, (4) = -0.362e-1, (5) = .0, (6) = .0}, datatype = float[8], order = C_order), Array(1..6, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = 1.544, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (3, 1) = .9466785280815533, (3, 2) = .25570116989825814, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (4, 1) = 3.3148251870684886, (4, 2) = 2.896124015972123, (4, 3) = .9986419139977808, (4, 4) = .0, (4, 5) = .0, (5, 1) = 1.2212245092262748, (5, 2) = 6.019134481287752, (5, 3) = 12.537083329320874, (5, 4) = -.687886036105895, (5, 5) = .0, (6, 1) = 1.2212245092262748, (6, 2) = 6.019134481287752, (6, 3) = 12.537083329320874, (6, 4) = -.687886036105895, (6, 5) = 1.0}, datatype = float[8], order = C_order), Array(1..6, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = -5.6688, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (3, 1) = -2.4300933568337584, (3, 2) = -.20635991570891224, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (4, 1) = -.10735290581452621, (4, 2) = -9.594562251021896, (4, 3) = -20.470286148096154, (4, 4) = .0, (4, 5) = .0, (5, 1) = 7.496443313968615, (5, 2) = -10.246804314641219, (5, 3) = -33.99990352819906, (5, 4) = 11.708908932061595, (5, 5) = .0, (6, 1) = 8.083246795922411, (6, 2) = -7.981132988062785, (6, 3) = -31.52159432874373, (6, 4) = 16.319305431231363, (6, 5) = -6.0588182388340535}, datatype = float[8], order = C_order), Array(1..3, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = 10.126235083446911, (2, 2) = -7.487995877607633, (2, 3) = -34.800918615557414, (2, 4) = -7.9927717075687275, (2, 5) = 1.0251377232956207, (3, 1) = -.6762803392806898, (3, 2) = 6.087714651678606, (3, 3) = 16.43084320892463, (3, 4) = 24.767225114183653, (3, 5) = -6.5943891257167815}, datatype = float[8], order = C_order)]), ( 9 ) = ([Array(1..2, {(1) = .1, (2) = .1}, datatype = float[8], order = C_order), Array(1..2, {(1) = -.27818348802247095, (2) = -.959707455555317}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .9463272613427799, (2) = -.23010938955589016}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..2, {(1, 1) = .0, (1, 2) = .0, (2, 1) = .0, (2, 2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..2, {(1, 1) = .0, (1, 2) = .0, (2, 1) = .0, (2, 2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..6, {(1, 1) = .9463272613427799, (1, 2) = .8962603573901237, (1, 3) = .9049371517416286, (1, 4) = .9415086854835145, (1, 5) = .9455734705165051, (1, 6) = .9141927519884745, (2, 1) = -.23010938955589016, (2, 2) = -.3194253044640166, (2, 3) = -.3045868802154244, (2, 4) = -.23980103092612265, (2, 5) = -.2309498427916678, (2, 6) = -.2897655862058427}, datatype = float[8], order = C_order), Array(1..2, {(1) = 0, (2) = 0}, datatype = integer[8]), Array(1..2, {(1) = -.29474531222316497, (2) = -.9545284405123327}, datatype = float[8], order = C_order), Array(1..2, {(1) = -.23010938955589016, (2) = -.9727935347969681}, datatype = float[8], order = C_order), Array(1..2, {(1) = 0.6024149190597683e-7, (2) = 0.6695400345257951e-8}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .9227476322493314, (2) = -.2752179702196032}, datatype = float[8], order = C_order)]), ( 8 ) = ([Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, {(1) = -1.0, (2) = .0}, datatype = float[8], order = C_order), 0, 0]), ( 11 ) = (Array(1..6, 0..2, {(1, 1) = .0, (1, 2) = .0, (2, 0) = .0, (2, 1) = .0, (2, 2) = .0, (3, 0) = .0, (3, 1) = .0, (3, 2) = .0, (4, 0) = .0, (4, 1) = .0, (4, 2) = .0, (5, 0) = .0, (5, 1) = .0, (5, 2) = .0, (6, 0) = .0, (6, 1) = .0, (6, 2) = .0}, datatype = float[8], order = C_order)), ( 10 ) = ([proc (N, X, Y, YP) option `[Y[1] = dy(t), Y[2] = y(t)]`; YP[1] := -Y[2]*abs(Y[2]); YP[2] := Y[1]; 0 end proc, -1, 0, 0, 0, 0, 0, 0]), ( 13 ) = (), ( 12 ) = (), ( 15 ) = ("rkf45"), ( 14 ) = ([0, 0]), ( 18 ) = ([]), ( 19 ) = (0), ( 16 ) = ([0, 0, 0, []]), ( 17 ) = ([proc (N, X, Y, YP) option `[Y[1] = dy(t), Y[2] = y(t)]`; YP[1] := -Y[2]*abs(Y[2]); YP[2] := Y[1]; 0 end proc, -1, 0, 0, 0, 0, 0, 0]), ( 22 ) = (0), ( 23 ) = (0), ( 20 ) = ([]), ( 21 ) = (0), ( 24 ) = (0)  ] )), ( 3 ) = (array( 1 .. 24, [( 1 ) = (datatype = float[8], order = C_order, storage = rectangular), ( 2 ) = (datatype = float[8], order = C_order, storage = rectangular), ( 3 ) = ([0, 0, 0, Array(1..0, 1..2, {}, datatype = float[8], order = C_order)]), ( 4 ) = (Array(1..54, {(1) = 2, (2) = 2, (3) = 0, (4) = 0, (5) = 0, (6) = 0, (7) = 1, (8) = 1, (9) = 0, (10) = 1, (11) = 301, (12) = 301, (13) = 0, (14) = 0, (15) = 0, (16) = 0, (17) = 0, (18) = 575, (19) = 30000, (20) = 5, (21) = 0, (22) = 1, (23) = 4, (24) = 0, (25) = 1, (26) = 15, (27) = 1, (28) = 0, (29) = 1, (30) = 3, (31) = 3, (32) = 0, (33) = 1, (34) = 0, (35) = 0, (36) = 0, (37) = 0, (38) = 0, (39) = 0, (40) = 0, (41) = 0, (42) = 0, (43) = 1, (44) = 0, (45) = 0, (46) = 0, (47) = 0, (48) = 0, (49) = 0, (50) = 50, (51) = 1, (52) = 0, (53) = 0, (54) = 0}, datatype = integer[8])), ( 5 ) = (Array(1..28, {(1) = 10.0, (2) = 0.10e-5, (3) = .11660878946462283, (4) = 0.500001e-14, (5) = .0, (6) = 0.5047658755841546e-2, (7) = .0, (8) = 0.10e-5, (9) = .0, (10) = .0, (11) = .0, (12) = .0, (13) = 1.0, (14) = .0, (15) = .49999999999999, (16) = .0, (17) = 1.0, (18) = 1.0, (19) = .0, (20) = .0, (21) = 1.0, (22) = 1.0, (23) = .0, (24) = .0, (25) = 0.10e-14, (26) = .0, (27) = .0, (28) = .0}, datatype = float[8], order = C_order)), ( 6 ) = (Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order)), ( 7 ) = ([Array(1..4, 1..7, {(1, 1) = .0, (1, 2) = .203125, (1, 3) = .3046875, (1, 4) = .75, (1, 5) = .8125, (1, 6) = .40625, (1, 7) = .8125, (2, 1) = 0.6378173828125e-1, (2, 2) = .0, (2, 3) = .279296875, (2, 4) = .27237892150878906, (2, 5) = -0.9686851501464844e-1, (2, 6) = 0.1956939697265625e-1, (2, 7) = .5381584167480469, (3, 1) = 0.31890869140625e-1, (3, 2) = .0, (3, 3) = -.34375, (3, 4) = -.335235595703125, (3, 5) = .2296142578125, (3, 6) = .41748046875, (3, 7) = 11.480712890625, (4, 1) = 0.9710520505905151e-1, (4, 2) = .0, (4, 3) = .40350341796875, (4, 4) = 0.20297467708587646e-1, (4, 5) = -0.6054282188415527e-2, (4, 6) = -0.4770040512084961e-1, (4, 7) = .77858567237854}, datatype = float[8], order = C_order), Array(1..6, 1..6, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (1, 6) = 1.0, (2, 1) = .25, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (2, 6) = 1.0, (3, 1) = .1875, (3, 2) = .5625, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (3, 6) = 2.0, (4, 1) = .23583984375, (4, 2) = -.87890625, (4, 3) = .890625, (4, 4) = .0, (4, 5) = .0, (4, 6) = .2681884765625, (5, 1) = .1272735595703125, (5, 2) = -.5009765625, (5, 3) = .44921875, (5, 4) = -0.128936767578125e-1, (5, 5) = .0, (5, 6) = 0.626220703125e-1, (6, 1) = -0.927734375e-1, (6, 2) = .626220703125, (6, 3) = -.4326171875, (6, 4) = .1418304443359375, (6, 5) = -0.861053466796875e-1, (6, 6) = .3131103515625}, datatype = float[8], order = C_order), Array(1..6, {(1) = .0, (2) = .386, (3) = .21, (4) = .63, (5) = 1.0, (6) = 1.0}, datatype = float[8], order = C_order), Array(1..6, {(1) = .25, (2) = -.1043, (3) = .1035, (4) = -0.362e-1, (5) = .0, (6) = .0}, datatype = float[8], order = C_order), Array(1..6, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = 1.544, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (3, 1) = .9466785280815533, (3, 2) = .25570116989825814, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (4, 1) = 3.3148251870684886, (4, 2) = 2.896124015972123, (4, 3) = .9986419139977808, (4, 4) = .0, (4, 5) = .0, (5, 1) = 1.2212245092262748, (5, 2) = 6.019134481287752, (5, 3) = 12.537083329320874, (5, 4) = -.687886036105895, (5, 5) = .0, (6, 1) = 1.2212245092262748, (6, 2) = 6.019134481287752, (6, 3) = 12.537083329320874, (6, 4) = -.687886036105895, (6, 5) = 1.0}, datatype = float[8], order = C_order), Array(1..6, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = -5.6688, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (3, 1) = -2.4300933568337584, (3, 2) = -.20635991570891224, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (4, 1) = -.10735290581452621, (4, 2) = -9.594562251021896, (4, 3) = -20.470286148096154, (4, 4) = .0, (4, 5) = .0, (5, 1) = 7.496443313968615, (5, 2) = -10.246804314641219, (5, 3) = -33.99990352819906, (5, 4) = 11.708908932061595, (5, 5) = .0, (6, 1) = 8.083246795922411, (6, 2) = -7.981132988062785, (6, 3) = -31.52159432874373, (6, 4) = 16.319305431231363, (6, 5) = -6.0588182388340535}, datatype = float[8], order = C_order), Array(1..3, 1..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 1) = 10.126235083446911, (2, 2) = -7.487995877607633, (2, 3) = -34.800918615557414, (2, 4) = -7.9927717075687275, (2, 5) = 1.0251377232956207, (3, 1) = -.6762803392806898, (3, 2) = 6.087714651678606, (3, 3) = 16.43084320892463, (3, 4) = 24.767225114183653, (3, 5) = -6.5943891257167815}, datatype = float[8], order = C_order)]), ( 9 ) = ([Array(1..2, {(1) = .1, (2) = .1}, datatype = float[8], order = C_order), Array(1..2, {(1) = -.27818348802247095, (2) = -.959707455555317}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .9463272613427799, (2) = -.23010938955589016}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..2, {(1, 1) = .0, (1, 2) = .0, (2, 1) = .0, (2, 2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..2, {(1, 1) = .0, (1, 2) = .0, (2, 1) = .0, (2, 2) = .0}, datatype = float[8], order = C_order), Array(1..2, 1..6, {(1, 1) = .9463272613427799, (1, 2) = .8962603573901237, (1, 3) = .9049371517416286, (1, 4) = .9415086854835145, (1, 5) = .9455734705165051, (1, 6) = .9141927519884745, (2, 1) = -.23010938955589016, (2, 2) = -.3194253044640166, (2, 3) = -.3045868802154244, (2, 4) = -.23980103092612265, (2, 5) = -.2309498427916678, (2, 6) = -.2897655862058427}, datatype = float[8], order = C_order), Array(1..2, {(1) = 0, (2) = 0}, datatype = integer[8]), Array(1..2, {(1) = -.29474531222316497, (2) = -.9545284405123327}, datatype = float[8], order = C_order), Array(1..2, {(1) = -.23010938955589016, (2) = -.9727935347969681}, datatype = float[8], order = C_order), Array(1..2, {(1) = 0.6024149190597683e-7, (2) = 0.6695400345257951e-8}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .9227476322493314, (2) = -.2752179702196032}, datatype = float[8], order = C_order)]), ( 8 ) = ([Array(1..2, {(1) = .0, (2) = 1.0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .0, (2) = .0}, datatype = float[8], order = C_order), Array(1..2, {(1) = .9463272613427799, (2) = -.23010938955589016}, datatype = float[8], order = C_order), 0, 0]), ( 11 ) = (Array(1..6, 0..2, {(1, 1) = 9.940875667952055, (1, 2) = -.34757897349681083, (2, 0) = -.34757897349681083, (2, 1) = -.9355294641958094, (2, 2) = 9.9730433717291, (3, 0) = 9.9730433717291, (3, 1) = -.3190966682681482, (3, 2) = -.9462539302140262, (4, 0) = -.9462539302140262, (4, 1) = 10.005211075506146, (4, 2) = -.2899897759007725, (5, 0) = -.2899897759007725, (5, 1) = -.9560519956303511, (5, 2) = 10.037378779283191, (6, 0) = 10.037378779283191, (6, 1) = -.2603093958281944, (6, 2) = -.9649043882005256}, datatype = float[8], order = C_order)), ( 10 ) = ([proc (N, X, Y, YP) option `[Y[1] = dy(t), Y[2] = y(t)]`; YP[1] := -Y[2]*abs(Y[2]); YP[2] := Y[1]; 0 end proc, -1, 0, 0, 0, 0, 0, 0]), ( 13 ) = (), ( 12 ) = (Array(1..301, 0..2, {(1, 1) = .0, (1, 2) = .0, (2, 0) = .0, (2, 1) = 1.0, (2, 2) = 0.12619146889603864e-2, (3, 0) = 0.12619146889603864e-2, (3, 1) = -0.12619140191307675e-2, (3, 2) = .9999992037858701, (4, 0) = .9999992037858701, (4, 1) = 0.2523829377920773e-2, (4, 2) = -0.25238240192455345e-2, (5, 0) = -0.25238240192455345e-2, (5, 1) = .9999968151460167, (5, 2) = 0.3785744066881159e-2, (6, 0) = 0.3785744066881159e-2, (6, 1) = -0.3785725981365349e-2, (6, 2) = .9999928340880467, (7, 0) = .9999928340880467, (7, 1) = 0.5047658755841546e-2, (7, 2) = -0.504761588658618e-2, (8, 0) = -0.504761588658618e-2, (8, 1) = .9999872606246398, (8, 2) = 0.26419192149687607e-1, (9, 0) = 0.26419192149687607e-1, (9, 1) = -0.26413055639296572e-1, (9, 2) = .9996510541575261, (10, 0) = .9996510541575261, (10, 1) = 0.4779072554353367e-1, (10, 2) = -0.4775437254771474e-1, (11, 0) = -0.4775437254771474e-1, (11, 1) = .9988584590917482, (11, 2) = 0.6916225893737973e-1, (12, 0) = 0.6916225893737973e-1, (12, 1) = -0.6905211571084993e-1, (12, 2) = .9976101977694447, (13, 0) = .9976101977694447, (13, 1) = 0.905337923312258e-1, (13, 2) = -0.9028694888311248e-1, (14, 0) = -0.9028694888311248e-1, (14, 1) = .995907408150396, (14, 2) = .11351237421120217, (15, 0) = .11351237421120217, (15, 1) = -.11302641540392834, (15, 2) = .993571277622765, (16, 0) = .993571277622765, (16, 1) = .13649095609117853, (16, 2) = -.1356473051783028, (17, 0) = -.1356473051783028, (17, 1) = .9907139454185376, (17, 2) = .1594695379711549, (18, 0) = .1594695379711549, (18, 1) = -.15812629607725773, (18, 2) = .9873384022899256, (19, 0) = .9873384022899256, (19, 1) = .18244811985113127, (19, 2) = -.18044045801003872, (20, 0) = -.18044045801003872, (20, 1) = .9834481720918397, (20, 2) = .20778010085083568, (21, 0) = .20778010085083568, (21, 1) = -.20482199528697823, (21, 2) = .9785679294849486, (22, 0) = .9785679294849486, (22, 1) = .2331120818505401, (22, 2) = -.22894634650834067, (23, 0) = -.22894634650834067, (23, 1) = .9730732543537424, (23, 2) = .2584440628502445, (24, 0) = .2584440628502445, (24, 1) = -.252784832201489, (24, 2) = .9669710211856939, (25, 0) = .9669710211856939, (25, 1) = .2837760438499489, (25, 2) = -.27630969543490785, (26, 0) = -.27630969543490785, (26, 1) = .9602688220881896, (26, 2) = .31115799771047437, (27, 0) = .31115799771047437, (27, 1) = -.3013546453590999, (27, 2) = .9523590867744622, (28, 0) = .9523590867744622, (28, 1) = .33853995157099975, (28, 2) = -.32596934128007415, (29, 0) = -.32596934128007415, (29, 1) = .9437693976817552, (29, 2) = .3659219054315252, (30, 0) = .3659219054315252, (30, 1) = -.35012283291484203, (30, 2) = .934511953482712, (31, 0) = .934511953482712, (31, 1) = .3933038592920506, (31, 2) = -.37378583650069236, (32, 0) = -.37378583650069236, (32, 1) = .9245997813763377, (32, 2) = .42272800812146594, (33, 0) = .42272800812146594, (33, 1) = -.3986354716376452, (33, 2) = .9132343521228253, (34, 0) = .9132343521228253, (34, 1) = .4521521569508813, (34, 2) = -.4228549301137987, (35, 0) = -.4228549301137987, (35, 1) = .9011469522643191, (35, 2) = .48157630578029664, (36, 0) = .48157630578029664, (36, 1) = -.4464147641061637, (36, 2) = .8883565481003606, (37, 0) = .8883565481003606, (37, 1) = .511000454609712, (37, 2) = -.4692881307598211, (38, 0) = -.4692881307598211, (38, 1) = .8748829388599098, (38, 2) = .5426327192182325, (39, 0) = .5426327192182325, (39, 1) = -.4930847043428988, (39, 2) = .8596597162830206, (40, 0) = .8596597162830206, (40, 1) = .5742649838267531, (40, 2) = -.516033299129792, (41, 0) = -.516033299129792, (41, 1) = .8436971201077453, (41, 2) = .6058972484352735, (42, 0) = .6058972484352735, (42, 1) = -.5381109145929419, (42, 2) = .8270223245522875, (43, 0) = .8270223245522875, (43, 1) = .637529513043794, (43, 2) = -.5592982430246403, (44, 0) = -.5592982430246403, (44, 1) = .8096631783343333, (44, 2) = .6717191620680958, (45, 0) = .6717191620680958, (45, 1) = -.581179371503818, (45, 2) = .7901638671685349, (46, 0) = .7901638671685349, (46, 1) = .7059088110923974, (46, 2) = -.6019873191086447, (47, 0) = -.6019873191086447, (47, 1) = .769934786448526, (47, 2) = .7400984601166992, (48, 0) = .7400984601166992, (48, 1) = -.6217121022018788, (48, 2) = .7490127811819837, (49, 0) = .7490127811819837, (49, 1) = .774288109141001, (49, 2) = -.6403485933590629, (50, 0) = -.6403485933590629, (50, 1) = .7274349600144009, (50, 2) = .8100357518279009, (51, 0) = .8100357518279009, (51, 1) = -.6586701873149312, (51, 2) = .7042129807132624, (52, 0) = .7042129807132624, (52, 1) = .8457833945148008, (52, 2) = -.6758067800267917, (53, 0) = -.6758067800267917, (53, 1) = .680357282120382, (53, 2) = .8815310372017006, (54, 0) = .8815310372017006, (54, 1) = -.6917687095596848, (54, 2) = .6559100228224367, (55, 0) = .6559100228224367, (55, 1) = .9172786798886005, (55, 2) = -.7065713541650316, (56, 0) = -.7065713541650316, (56, 1) = .6309129050757729, (56, 2) = .9538618270128608, (57, 0) = .9538618270128608, (57, 1) = -.7205409033183106, (57, 2) = .6048051694122543, (58, 0) = .6048051694122543, (58, 1) = .9904449741371213, (58, 2) = -.7333444547533049, (59, 0) = -.7333444547533049, (59, 1) = .5782078280997044, (59, 2) = 1.0270281212613817, (60, 0) = 1.0270281212613817, (60, 1) = -.7450134637062518, (60, 2) = .5511629470636833, (61, 0) = .5511629470636833, (61, 1) = 1.063611268385642, (61, 2) = -.7555836708695197, (62, 0) = -.7555836708695197, (62, 1) = .5237113639873157, (62, 2) = 1.1012746641596243, (63, 0) = 1.1012746641596243, (63, 1) = -.7653601230026618, (63, 2) = .4950659531361107, (64, 0) = .4950659531361107, (64, 1) = 1.1389380599336068, (64, 2) = -.7740619857895429, (65, 0) = -.7740619857895429, (65, 1) = .4660727424067541, (65, 2) = 1.176601455707589, (66, 0) = 1.176601455707589, (66, 1) = -.7817406831026915, (66, 2) = .4367712248877654, (67, 0) = .4367712248877654, (67, 1) = 1.2142648514815715, (67, 2) = -.7884508917037885, (68, 0) = -.7884508917037885, (68, 1) = .4071988948157737, (68, 2) = 1.2533798792313857, (69, 0) = 1.2533798792313857, (69, 1) = -.7944564734895141, (69, 2) = .3762380650294237, (70, 0) = .3762380650294237, (70, 1) = 1.2924949069812002, (70, 2) = -.7995477068206903, (71, 0) = -.7995477068206903, (71, 1) = .34506045076973424, (71, 2) = 1.3316099347310146, (72, 0) = 1.3316099347310146, (72, 1) = -.8037949887324122, (72, 2) = .31370043215621546, (73, 0) = .31370043215621546, (73, 1) = 1.3707249624808289, (73, 2) = -.8072708049574603, (74, 0) = -.8072708049574603, (74, 1) = .2821895933024423, (74, 2) = 1.4118978596501799, (75, 0) = 1.4118978596501799, (75, 1) = -.8101779024103697, (75, 2) = .24888956902918022, (76, 0) = .24888956902918022, (76, 1) = 1.453070756819531, (76, 2) = -.8124015247645981, (77, 0) = -.8124015247645981, (77, 1) = .2154842379790618, (77, 2) = 1.494243653988882, (78, 0) = 1.494243653988882, (78, 1) = -.8140317950170664, (78, 2) = .18199988059674344, (79, 0) = .18199988059674344, (79, 1) = 1.535416551158233, (79, 2) = -.8151597897775532, (80, 0) = -.8151597897775532, (80, 1) = .14845904574175217, (80, 2) = 1.5798051278709895, (81, 0) = 1.5798051278709895, (81, 1) = -.8159189195249082, (81, 2) = .11225686646410866, (82, 0) = .11225686646410866, (82, 1) = 1.624193704583746, (82, 2) = -.8163171851019666, (83, 0) = -.8163171851019666, (83, 1) = 0.7602943291967894e-1, (83, 2) = 1.6685822812965025, (84, 0) = 1.6685822812965025, (84, 1) = -.8164709545484371, (84, 2) = 0.3979017770603844e-1, (85, 0) = 0.3979017770603844e-1, (85, 1) = 1.712970858009259, (85, 2) = -.8164966880259306, (86, 0) = -.8164966880259306, (86, 1) = 0.35473664206431e-2, (86, 2) = 1.7637477972687559, (87, 0) = 1.7637477972687559, (87, 1) = -.8164751185747242, (87, 2) = -0.37911598974392974e-1, (88, 0) = -0.37911598974392974e-1, (88, 1) = 1.8145247365282526, (88, 2) = -.8162932449685467, (89, 0) = -.8162932449685467, (89, 1) = -0.7936613510396101e-1, (89, 2) = 1.8653016757877496, (90, 0) = 1.8653016757877496, (90, 1) = -.8157772322571207, (90, 2) = -.12080368912951751, (91, 0) = -.12080368912951751, (91, 1) = 1.9160786150472464, (91, 2) = -.814753240192459, (92, 0) = -.814753240192459, (92, 1) = -.16220288027164917, (92, 2) = 1.975620739396534, (93, 0) = 1.975620739396534, (93, 1) = -.8126723029879589, (93, 2) = -.21065843472607507, (94, 0) = -.21065843472607507, (94, 1) = 2.0351628637458212, (94, 2) = -.809377488999241, (95, 0) = -.809377488999241, (95, 1) = -.2589552658456358, (95, 2) = 2.094704988095109, (96, 0) = 2.094704988095109, (96, 1) = -.8045967896372321, (96, 2) = -.3070130334166121, (97, 0) = -.3070130334166121, (97, 1) = 2.1542471124443967, (97, 2) = -.7980656823727151, (98, 0) = -.7980656823727151, (98, 1) = -.3547353864616628, (98, 2) = 2.2030905647972547, (99, 0) = 2.2030905647972547, (99, 1) = -.791221474918791, (99, 2) = -.3935543329616533, (100, 0) = -.3935543329616533, (100, 1) = 2.251934017150113, (100, 2) = -.7828918793676342, (101, 0) = -.7828918793676342, (101, 1) = -.4320031937229579, (101, 2) = 2.3007774695029712, (102, 0) = 2.3007774695029712, (102, 1) = -.7729490124383936, (102, 2) = -.47000631786554325, (103, 0) = -.47000631786554325, (103, 1) = 2.3496209218558297, (103, 2) = -.7612737182250108, (104, 0) = -.7612737182250108, (104, 1) = -.5074820116209731, (104, 2) = 2.3922063547391996, (105, 0) = 2.3922063547391996, (105, 1) = -.749594599897991, (105, 2) = -.5396576253925294, (106, 0) = -.5396576253925294, (106, 1) = 2.4347917876225695, (106, 2) = -.7364487387362528, (107, 0) = -.7364487387362528, (107, 1) = -.5713048251690112, (107, 2) = 2.4773772205059394, (108, 0) = 2.4773772205059394, (108, 1) = -.7217773735732441, (108, 2) = -.602359914511835, (109, 0) = -.602359914511835, (109, 1) = 2.5199626533893094, (109, 2) = -.7055298748948873, (110, 0) = -.7055298748948873, (110, 1) = -.6327568681406321, (110, 2) = 2.5600171270606222, (111, 0) = 2.5600171270606222, (111, 1) = -.6887717470228312, (111, 2) = -.6606857388636452, (112, 0) = -.6606857388636452, (112, 1) = 2.600071600731935, (112, 2) = -.6705540345909939, (113, 0) = -.6705540345909939, (113, 1) = -.6879141759360526, (113, 2) = 2.6401260744032475, (114, 0) = 2.6401260744032475, (114, 1) = -.6508567882471131, (114, 2) = -.7143833302095859, (115, 0) = -.7143833302095859, (115, 1) = 2.6801805480745604, (115, 2) = -.6296683587499349, (116, 0) = -.6296683587499349, (116, 1) = -.7400337260050057, (116, 2) = 2.71888871471503, (117, 0) = 2.71888871471503, (117, 1) = -.6077721907004339, (117, 2) = -.7639877853720859, (118, 0) = -.7639877853720859, (118, 1) = 2.7575968813555, (118, 2) = -.5844852365947142, (119, 0) = -.5844852365947142, (119, 1) = -.7870672958651885, (119, 2) = 2.79630504799597, (120, 0) = 2.79630504799597, (120, 1) = -.5598203800281075, (120, 2) = -.8092186811709294, (121, 0) = -.8092186811709294, (121, 1) = 2.8350132146364397, (121, 2) = -.5337986794160733, (122, 0) = -.5337986794160733, (122, 1) = -.8303890340727911, (122, 2) = 2.8728265712890355, (123, 0) = 2.8728265712890355, (123, 1) = -.5070963250204371, (123, 2) = -.850072875616883, (124, 0) = -.850072875616883, (124, 1) = 2.9106399279416317, (124, 2) = -.4791618970138555, (125, 0) = -.4791618970138555, (125, 1) = -.8687235583409372, (125, 2) = 2.948453284594228, (126, 0) = 2.948453284594228, (126, 1) = -.45003772245966506, (126, 2) = -.8862952970126416, (127, 0) = -.8862952970126416, (127, 1) = 2.9862666412468237, (127, 2) = -.4197734815714396, (128, 0) = -.4197734815714396, (128, 1) = -.9027440638579348, (128, 2) = 3.0205868816265933, (129, 0) = 3.0205868816265933, (129, 1) = -.3913656518904838, (129, 2) = -.9166658151202456, (130, 0) = -.9166658151202456, (130, 1) = 3.0549071220063624, (130, 2) = -.36211311606632757, (131, 0) = -.36211311606632757, (131, 1) = -.929597945644854, (131, 2) = 3.089227362386132, (132, 0) = 3.089227362386132, (132, 1) = -.3320679874339276, (132, 2) = -.941512357764949, (133, 0) = -.941512357764949, (133, 1) = 3.1235476027659015, (133, 2) = -.3012866437827305, (134, 0) = -.3012866437827305, (134, 1) = -.952382829612279, (134, 2) = 3.154470340495429, (135, 0) = 3.154470340495429, (135, 1) = -.27297200431942786, (135, 2) = -.9612630189353296, (136, 0) = -.9612630189353296, (136, 1) = 3.185393078224956, (136, 2) = -.24415577875917815, (137, 0) = -.24415577875917815, (137, 1) = -.9692597549850598, (137, 2) = 3.2163158159544833, (138, 0) = 3.2163158159544833, (138, 1) = -.2148871898712219, (138, 2) = -.9763582854640993, (139, 0) = -.9763582854640993, (139, 1) = 3.247238553684011, (139, 2) = -.18521748610523964, (140, 0) = -.18521748610523964, (140, 1) = -.982545420715685, (140, 2) = 3.2753187801906796, (141, 0) = 3.2753187801906796, (141, 1) = -.15797222799504831, (141, 2) = -.9873644720213639, (142, 0) = -.9873644720213639, (142, 1) = 3.303399006697348, (142, 2) = -.13048110497487386, (143, 0) = -.13048110497487386, (143, 1) = -.991414918925389, (143, 2) = 3.3314792332040173, (144, 0) = 3.3314792332040173, (144, 1) = -.10278607766240619, (144, 2) = -.9946904436209595, (145, 0) = -.9946904436209595, (145, 1) = 3.359559459710686, (145, 2) = -0.7492984920224276e-1, (146, 0) = -0.7492984920224276e-1, (146, 1) = -.9971859227335731, (146, 2) = 3.384928640257116, (147, 0) = 3.384928640257116, (147, 1) = -0.49660517687947166e-1, (147, 2) = -.9987664717829827, (148, 0) = -.9987664717829827, (148, 1) = 3.410297820803547, (148, 2) = -0.243273784329431e-1, (149, 0) = -0.243273784329431e-1, (149, 1) = -.9997050808583386, (149, 2) = 3.4356670013499775, (150, 0) = 3.4356670013499775, (150, 1) = 0.10370363630522591e-2, (150, 2) = -1.0000005414994602, (151, 0) = -1.0000005414994602, (151, 1) = 3.4610361818964077, (151, 2) = 0.2640012970072976e-1, (152, 0) = 0.2640012970072976e-1, (152, 1) = -.9996524746207593, (152, 2) = 3.4841264118153648, (153, 0) = 3.4841264118153648, (153, 1) = 0.4945616343842594e-1, (153, 2) = -.9987766279445955, (154, 0) = -.9987766279445955, (154, 1) = 3.507216641734322, (154, 2) = 0.7245952587153798e-1, (155, 0) = 0.7245952587153798e-1, (155, 1) = -.9973689742330085, (155, 2) = 3.530306871653279, (156, 0) = 3.530306871653279, (156, 1) = 0.9538583071253354e-1, (156, 2) = -.9954310094714879, (157, 0) = -.9954310094714879, (157, 1) = 3.553397101572236, (157, 2) = .11821091888044927, (158, 0) = .11821091888044927, (158, 1) = -.9929647919177513, (158, 2) = 3.577106888626673, (159, 0) = 3.577106888626673, (159, 1) = .14151803008486977, (159, 2) = -.9898854471434342, (160, 0) = -.9898854471434342, (160, 1) = 3.60081667568111, (160, 2) = .16466766526341023, (161, 0) = .16466766526341023, (161, 1) = -.9862553147861681, (161, 2) = 3.624526462735547, (162, 0) = 3.624526462735547, (162, 1) = .18763473605915978, (162, 2) = -.98207842357413, (163, 0) = -.98207842357413, (163, 1) = 3.648236249789984, (163, 2) = .2103946839251738, (164, 0) = .2103946839251738, (164, 1) = -.977359392798354, (164, 2) = 3.6742329759862975, (165, 0) = 3.6742329759862975, (165, 1) = .2350834509821379, (165, 2) = -.9715682703798932, (166, 0) = -.9715682703798932, (166, 1) = 3.700229702182611, (166, 2) = .2594635681867855, (167, 0) = .2594635681867855, (167, 1) = -.9651392722297651, (167, 2) = 3.726226428378925, (168, 0) = 3.726226428378925, (168, 1) = .2835052775725552, (168, 2) = -.9580808045247332, (169, 0) = -.9580808045247332, (169, 1) = 3.7522231545752383, (169, 2) = .30717995697683287, (170, 0) = .30717995697683287, (170, 1) = -.9504020354313842, (170, 2) = 3.780244232095442, (171, 0) = 3.780244232095442, (171, 1) = .33225564871049645, (171, 2) = -.9414420876368342, (172, 0) = -.9414420876368342, (172, 1) = 3.8082653096156465, (172, 2) = .35684026730305607, (173, 0) = .35684026730305607, (173, 1) = -.931786306916202, (173, 2) = 3.836286387135851, (174, 0) = 3.836286387135851, (174, 1) = .38090288026784, (174, 2) = -.9214488798754661, (175, 0) = -.9214488798754661, (175, 1) = 3.8643074646560547, (175, 2) = .4044144995135589, (176, 0) = .4044144995135589, (176, 1) = -.9104448368176132, (176, 2) = 3.894404749196777, (177, 0) = 3.894404749196777, (177, 1) = .42902366457069363, (177, 2) = -.8979010086053706, (178, 0) = -.8979010086053706, (178, 1) = 3.9245020337374985, (178, 2) = .45293515286219477, (179, 0) = .45293515286219477, (179, 1) = -.8846269514162772, (179, 2) = 3.9545993182782206, (180, 0) = 3.9545993182782206, (180, 1) = .4761209585531949, (180, 2) = -.8706440744190564, (181, 0) = -.8706440744190564, (181, 1) = 3.984696602818943, (181, 2) = .4985560119118174, (182, 0) = .4985560119118174, (182, 1) = -.8559745905024739, (182, 2) = 4.017091408213085, (183, 0) = 4.017091408213085, (183, 1) = .5218394830295495, (183, 2) = -.8394443772721313, (184, 0) = -.8394443772721313, (184, 1) = 4.049486213607228, (184, 2) = .5442038819450092, (185, 0) = .5442038819450092, (185, 1) = -.8221747506305143, (185, 2) = 4.08188101900137, (186, 0) = 4.08188101900137, (186, 1) = .5656295231595256, (186, 2) = -.8041957882494979, (187, 0) = -.8041957882494979, (187, 1) = 4.114275824395513, (187, 2) = .5861007789670084, (188, 0) = .5861007789670084, (188, 1) = -.7855381452004866, (188, 2) = 4.149383234332877, (189, 0) = 4.149383234332877, (189, 1) = .6071952231776089, (189, 2) = -.7645880348974472, (190, 0) = -.7645880348974472, (190, 1) = 4.18449064427024, (190, 2) = .6271457274938457, (191, 0) = .6271457274938457, (191, 1) = -.7429174450840723, (191, 2) = 4.219598054207603, (192, 0) = 4.219598054207603, (192, 1) = .6459481728429501, (192, 2) = -.7205665900235457, (193, 0) = -.7205665900235457, (193, 1) = 4.254705464144967, (193, 2) = .6636036619506687, (194, 0) = .6636036619506687, (194, 1) = -.6975757420523532, (194, 2) = 4.290698290787354, (195, 0) = 4.290698290787354, (195, 1) = .6805202475183755, (195, 2) = -.6733827426758096, (196, 0) = -.6733827426758096, (196, 1) = 4.326691117429741, (196, 2) = .6962500002563891, (197, 0) = .6962500002563891, (197, 1) = -.6486023005102711, (197, 2) = 4.362683944072127, (198, 0) = 4.362683944072127, (198, 1) = .7108101548077047, (198, 2) = -.6232768061633336, (199, 0) = -.6232768061633336, (199, 1) = 4.398676770714514, (199, 2) = .7242227799451093, (200, 0) = .7242227799451093, (200, 1) = -.5974479453799106, (200, 2) = 4.435577003144494, (201, 0) = 4.435577003144494, (201, 1) = .736810282627052, (201, 2) = -.570488134430805, (202, 0) = -.570488134430805, (202, 1) = 4.472477235574475, (202, 2) = .7482535224346655, (203, 0) = .7482535224346655, (203, 1) = -.5430850899211082, (203, 2) = 4.509377468004455, (204, 0) = 4.509377468004455, (204, 1) = .7585905341401292, (204, 2) = -.5152803201676925, (205, 0) = -.5152803201676925, (205, 1) = 4.546277700434436, (205, 2) = .7678633287616811, (206, 0) = .7678633287616811, (206, 1) = -.48711385687893305, (206, 2) = 4.584360161842154, (207, 0) = 4.584360161842154, (207, 1) = .7763658775502331, (207, 2) = -.4577064680704589, (208, 0) = -.4577064680704589, (208, 1) = 4.622442623249872, (208, 2) = .7838380799618279, (209, 0) = .7838380799618279, (209, 1) = -.4279950985027139, (209, 2) = 4.660525084657589, (210, 0) = 4.660525084657589, (210, 1) = .7903375425496586, (210, 2) = -.3980178793029921, (211, 0) = -.3980178793029921, (211, 1) = 4.698607546065308, (211, 2) = .7959247565175209, (212, 0) = .7959247565175209, (212, 1) = -.36781069172216624, (212, 2) = 4.738303233015056, (213, 0) = 4.738303233015056, (213, 1) = .8008458711676867, (213, 2) = -.3361153050366841, (214, 0) = -.3361153050366841, (214, 1) = 4.777998919964805, (214, 2) = .804918935194283, (215, 0) = .804918935194283, (215, 1) = -.304241667043344, (215, 2) = 4.817694606914553, (216, 0) = 4.817694606914553, (216, 1) = .8082204697843074, (216, 2) = -.2722219160740773, (217, 0) = -.2722219160740773, (217, 1) = 4.857390293864301, (217, 2) = .8108287070355251, (218, 0) = .8108287070355251, (218, 1) = -.24008511732494228, (218, 2) = 4.899428464940563, (219, 0) = 4.899428464940563, (219, 1) = .81292372668092, (219, 2) = -.20595308371667778, (220, 0) = -.20595308371667778, (220, 1) = 4.941466636016825, (220, 2) = .8144271485791111, (221, 0) = .8144271485791111, (221, 1) = -.17174576101362832, (221, 2) = 4.983504807093087, (222, 0) = 4.983504807093087, (222, 1) = .8154363376824191, (222, 2) = -.13748596828176637, (223, 0) = -.13748596828176637, (223, 1) = 5.025542978169349, (223, 2) = .8160492870221461, (224, 0) = .8160492870221461, (224, 1) = -.10319241736448809, (224, 2) = 5.044344449837058, (225, 0) = 5.044344449837058, (225, 1) = .8162212026433564, (225, 2) = -0.878477873271113e-1, (226, 0) = -0.878477873271113e-1, (226, 1) = 5.063145921504767, (226, 2) = .816342425870176, (227, 0) = .816342425870176, (227, 1) = -0.725004154540721e-1, (227, 2) = 5.081947393172476, (228, 0) = 5.081947393172476, (228, 1) = .8164218068189143, (228, 2) = -0.5715117162589299e-1, (229, 0) = -0.5715117162589299e-1, (229, 1) = 5.1007488648401855, (229, 2) = .816468199989222, (230, 0) = .816468199989222, (230, 1) = -0.41800759283215624e-1, (230, 2) = 5.114106815993953, (231, 0) = 5.114106815993953, (231, 1) = .8164859519156161, (231, 2) = -0.30894286507534334e-1, (232, 0) = -0.30894286507534334e-1, (232, 1) = 5.127464767147719, (232, 2) = .8164947372636484, (233, 0) = .8164947372636484, (233, 1) = -0.19987639964905504e-1, (233, 2) = 5.140822718301486, (234, 0) = 5.140822718301486, (234, 1) = .8164977617759125, (234, 2) = -0.9080918431822578e-2, (235, 0) = -0.9080918431822578e-2, (235, 1) = 5.154180669455253, (235, 2) = .8164980848027914, (236, 0) = .8164980848027914, (236, 1) = 0.18258218458196418e-2, (236, 2) = 5.167538620609021, (237, 0) = 5.167538620609021, (237, 1) = .8164972446049164, (237, 2) = 0.12732560129047943e-1, (238, 0) = 0.12732560129047943e-1, (238, 1) = 5.180896571762787, (238, 2) = .8164926943404307, (239, 0) = .8164926943404307, (239, 1) = 0.23639265946930325e-1, (239, 2) = 5.1942545229165535, (240, 0) = 5.1942545229165535, (240, 1) = .8164812560378407, (240, 2) = 0.3454586851549105e-1, (241, 0) = 0.3454586851549105e-1, (241, 1) = 5.207612474070321, (241, 2) = .8164597518936704, (242, 0) = .8164597518936704, (242, 1) = 0.4545225459996539e-1, (242, 2) = 5.261044278685389, (243, 0) = 5.261044278685389, (243, 1) = .8162096367582131, (243, 2) = 0.8907188804435025e-1, (244, 0) = 0.8907188804435025e-1, (244, 1) = 5.314476083300456, (244, 2) = .8155443400326652, (245, 0) = .8155443400326652, (245, 1) = .1326679627522744, (245, 2) = 5.367907887915524, (246, 0) = 5.367907887915524, (246, 1) = .8142612825663837, (246, 2) = .1762128924730646, (247, 0) = .1762128924730646, (247, 1) = 5.421339692530592, (247, 2) = .812159222965392, (248, 0) = .812159222965392, (248, 1) = .21966828878194697, (248, 2) = 5.467741414991637, (249, 0) = 5.467741414991637, (249, 1) = .8095146299064704, (249, 2) = .25729575142975525, (250, 0) = .25729575142975525, (250, 1) = 5.514143137452682, (250, 2) = .8059731908718666, (251, 0) = .8059731908718666, (251, 1) = .29478016795880113, (251, 2) = 5.560544859913727, (252, 0) = 5.560544859913727, (252, 1) = .8014087993805634, (252, 2) = .3320770077751142, (253, 0) = .3320770077751142, (253, 1) = 5.606946582374772, (253, 2) = .7956988307132438, (254, 0) = .7956988307132438, (254, 1) = .3691359615553157, (254, 2) = 5.653348304835817, (255, 0) = 5.653348304835817, (255, 1) = .78872466846216, (255, 2) = .405901093016289, (256, 0) = .405901093016289, (256, 1) = 5.699750027296862, (256, 2) = .7803722169072924, (257, 0) = .7803722169072924, (257, 1) = .4423110209216267, (257, 2) = 5.7461517497579075, (258, 0) = 5.7461517497579075, (258, 1) = .7705337969804744, (258, 2) = .4782993109124349, (259, 0) = .4782993109124349, (259, 1) = 5.792553472218953, (259, 2) = .7591091340112507, (260, 0) = .7591091340112507, (260, 1) = .513794697218456, (260, 2) = 5.834793194554369, (261, 0) = 5.834793194554369, (261, 1) = .7472519456748333, (261, 2) = .5456138766919327, (262, 0) = .5456138766919327, (262, 1) = 5.877032916889787, (262, 2) = .733940365767322, (263, 0) = .733940365767322, (263, 1) = .5769016617765405, (263, 2) = 5.919272639225204, (264, 0) = 5.919272639225204, (264, 1) = .7191184082611198, (264, 2) = .6075954530720066, (265, 0) = .6075954530720066, (265, 1) = 5.9615123615606205, (265, 2) = .7027380797519652, (266, 0) = .7027380797519652, (266, 1) = .6376304558110151, (266, 2) = 6.001479384042767, (267, 0) = 6.001479384042767, (267, 1) = .6857682330896163, (267, 2) = .6653825330945813, (268, 0) = .6653825330945813, (268, 1) = 6.041446406524914, (268, 2) = .6673412232837103, (269, 0) = .6673412232837103, (269, 1) = .6924272877042903, (269, 2) = 6.08141342900706, (270, 0) = 6.08141342900706, (270, 1) = .6474385764355084, (270, 2) = .7187061250989774, (271, 0) = .7187061250989774, (271, 1) = 6.121380451489206, (271, 2) = .6260501111069855, (272, 0) = .6260501111069855, (272, 1) = .744159884634539, (272, 2) = 6.160043872194004, (273, 0) = 6.160043872194004, (273, 1) = .603943643326489, (273, 2) = .767942280905619, (274, 0) = .767942280905619, (274, 1) = 6.198707292898801, (274, 2) = .5804512106186973, (275, 0) = .5804512106186973, (275, 1) = .7908430974340601, (275, 2) = 6.237370713603598, (276, 0) = 6.237370713603598, (276, 1) = .5555870015106854, (276, 2) = .8128090312681806, (277, 0) = .8128090312681806, (277, 1) = 6.276034134308396, (277, 2) = .5293733596250251, (278, 0) = .5293733596250251, (278, 1) = .833787498111597, (278, 2) = 6.313814065063845, (279, 0) = 6.313814065063845, (279, 1) = .5024843756072372, (279, 2) = .8532832002141256, (280, 0) = .8532832002141256, (280, 1) = 6.351593995819293, (280, 2) = .4743720817142172, (281, 0) = .4743720817142172, (281, 1) = .8717397681234964, (281, 2) = 6.389373926574741, (282, 0) = 6.389373926574741, (282, 1) = .4450799366409873, (282, 2) = .8891118092798913, (283, 0) = .8891118092798913, (283, 1) = 6.4271538573301905, (283, 2) = .4146586997170152, (284, 0) = .4146586997170152, (284, 1) = .905355729025183, (284, 2) = 6.461315281368762, (285, 0) = 6.461315281368762, (285, 1) = .3862272598577276, (285, 2) = .9190378784550052, (286, 0) = .9190378784550052, (286, 1) = 6.495476705407333, (286, 2) = .35696776275027853, (287, 0) = .35696776275027853, (287, 1) = .9317344646776813, (287, 2) = 6.529638129445904, (288, 0) = 6.529638129445904, (288, 1) = .3269323689930917, (288, 2) = .943418089480715, (289, 0) = .943418089480715, (289, 1) = 6.5637995534844755, (289, 2) = .29617738229359025, (290, 0) = .29617738229359025, (290, 1) = .9540632211459323, (290, 2) = 6.594590527045678, (291, 0) = 6.594590527045678, (291, 1) = .26789006525024445, (291, 2) = .962748639527406, (292, 0) = .962748639527406, (292, 1) = 6.625381500606881, (292, 2) = .2391139312628601, (293, 0) = .2391139312628601, (293, 1) = .9705554078149073, (293, 2) = 6.656172474168085, (294, 0) = 6.656172474168085, (294, 1) = .20989795520975701, (294, 2) = .9774692258927483, (295, 0) = .9774692258927483, (295, 1) = 6.686963447729288, (295, 2) = .1802930655498065, (296, 0) = .1802930655498065, (296, 1) = .9834773407476526, (296, 2) = 6.71492662599411, (297, 0) = 6.71492662599411, (297, 1) = .1531143649448019, (297, 2) = .9881395103291938, (298, 0) = .9881395103291938, (298, 1) = 6.742889804258933, (298, 2) = .1256991572158716, (299, 0) = .1256991572158716, (299, 1) = .9920382722897136, (299, 2) = 6.770852982523756, (300, 0) = 6.770852982523756, (300, 1) = 0.9808903015078332e-1, (300, 2) = .9951675916216095, (301, 0) = .9951675916216095, (301, 1) = 6.798816160788578, (301, 2) = 0.70326273876483e-1}, datatype = float[8], order = C_order)), ( 15 ) = ("rkf45"), ( 14 ) = ([0, 0]), ( 19 ) = (0), ( 16 ) = ([0, 0, 0, []]), ( 17 ) = ([proc (N, X, Y, YP) option `[Y[1] = dy(t), Y[2] = y(t)]`; YP[1] := -Y[2]*abs(Y[2]); YP[2] := Y[1]; 0 end proc, -1, 0, 0, 0, 0, 0, 0]), ( 22 ) = (0), ( 23 ) = (0), ( 20 ) = ([]), ( 21 ) = (0), ( 24 ) = (0)  ] )), ( 4 ) = (3)  ] ); _y0 := Array(0..2, {(1) = 0., (2) = 0.}); _vmap := array( 1 .. 2, [( 1 ) = (1), ( 2 ) = (2)  ] ); _x0 := _dtbl[1][5][5]; _n := _dtbl[1][4][1]; _ne := _dtbl[1][4][3]; _nd := _dtbl[1][4][4]; _nv := _dtbl[1][4][16]; if not type(_xout, 'numeric') then if member(_xout, ["start", "left", "right"]) then if _Env_smart_dsolve_numeric = true or _dtbl[1][4][10] = 1 then if _xout = "left" then if type(_dtbl[2], 'table') then return _dtbl[2][5][1] end if elif _xout = "right" then if type(_dtbl[3], 'table') then return _dtbl[3][5][1] end if end if end if; return _dtbl[1][5][5] elif _xout = "method" then return _dtbl[1][15] elif _xout = "storage" then return evalb(_dtbl[1][4][10] = 1) elif _xout = "leftdata" then if not type(_dtbl[2], 'array') then return NULL else return eval(_dtbl[2]) end if elif _xout = "rightdata" then if not type(_dtbl[3], 'array') then return NULL else return eval(_dtbl[3]) end if elif _xout = "enginedata" then return eval(_dtbl[1]) elif _xout = "enginereset" then _dtbl[2] := evaln(_dtbl[2]); _dtbl[3] := evaln(_dtbl[3]); return NULL elif _xout = "initial" then return procname(_y0[0]) elif _xout = "laxtol" then return _dtbl[`if`(member(_dtbl[4], {2, 3}), _dtbl[4], 1)][5][18] elif _xout = "numfun" then return `if`(member(_dtbl[4], {2, 3}), _dtbl[_dtbl[4]][4][18], 0) elif _xout = "parameters" then return [seq(_y0[_n+_i], _i = 1 .. nops(_pars))] elif _xout = "initial_and_parameters" then return procname(_y0[0]), [seq(_y0[_n+_i], _i = 1 .. nops(_pars))] elif _xout = "last" then if _dtbl[4] <> 2 and _dtbl[4] <> 3 or _x0-_dtbl[_dtbl[4]][5][1] = 0. then error "no information is available on last computed point" else _xout := _dtbl[_dtbl[4]][5][1] end if elif _xout = "function" then if _dtbl[1][4][33]-2. = 0 then return eval(_dtbl[1][10], 1) else return eval(_dtbl[1][10][1], 1) end if elif _xout = "map" then return copy(_vmap) elif type(_xin, `=`) and type(rhs(_xin), 'list') and member(lhs(_xin), {"initial", "parameters", "initial_and_parameters"}) then _ini, _par := [], []; if lhs(_xin) = "initial" then _ini := rhs(_xin) elif lhs(_xin) = "parameters" then _par := rhs(_xin) elif select(type, rhs(_xin), `=`) <> [] then _par, _ini := selectremove(type, rhs(_xin), `=`) elif nops(rhs(_xin)) < nops(_pars)+1 then error "insufficient data for specification of initial and parameters" else _par := rhs(_xin)[-nops(_pars) .. -1]; _ini := rhs(_xin)[1 .. -nops(_pars)-1] end if; _xout := lhs(_xout); if _par <> [] then `dsolve/numeric/process_parameters`(_n, _pars, _par, _y0) end if; if _ini <> [] then `dsolve/numeric/process_initial`(_n-_ne, _ini, _y0, _pars, _vmap) end if; `dsolve/numeric/SC/reinitialize`(_dtbl, _y0, _n, procname, _pars); if _Env_smart_dsolve_numeric = true and type(_y0[0], 'numeric') and _dtbl[1][4][10] <> 1 then procname("right") := _y0[0]; procname("left") := _y0[0] end if; if _xout = "initial" then return [_y0[0], seq(_y0[_vmap[_i]], _i = 1 .. _n-_ne)] elif _xout = "parameters" then return [seq(_y0[_n+_i], _i = 1 .. nops(_pars))] else return [_y0[0], seq(_y0[_vmap[_i]], _i = 1 .. _n-_ne)], [seq(_y0[_n+_i], _i = 1 .. nops(_pars))] end if elif _xin = "eventstop" then if _nv = 0 then error "this solution has no events" end if; _i := _dtbl[4]; if _i <> 2 and _i <> 3 then return 0 end if; if _dtbl[_i][4][10] = 1 and assigned(_dtbl[5-_i]) and _dtbl[_i][4][9] < 100 and 100 <= _dtbl[5-_i][4][9] then _i := 5-_i; _dtbl[4] := _i; _j := round(_dtbl[_i][4][17]); return round(_dtbl[_i][3][1][_j, 1]) elif 100 <= _dtbl[_i][4][9] then _j := round(_dtbl[_i][4][17]); return round(_dtbl[_i][3][1][_j, 1]) else return 0 end if elif _xin = "eventstatus" then if _nv = 0 then error "this solution has no events" end if; _i := [selectremove(proc (a) options operator, arrow; _dtbl[1][3][1][a, 7] = 1 end proc, {seq(_j, _j = 1 .. round(_dtbl[1][3][1][_nv+1, 1]))})]; return ':-enabled' = _i[1], ':-disabled' = _i[2] elif _xin = "eventclear" then if _nv = 0 then error "this solution has no events" end if; _i := _dtbl[4]; if _i <> 2 and _i <> 3 then error "no events to clear" end if; if _dtbl[_i][4][10] = 1 and assigned(_dtbl[5-_i]) and _dtbl[_i][4][9] < 100 and 100 < _dtbl[5-_i][4][9] then _dtbl[4] := 5-_i; _i := 5-_i end if; if _dtbl[_i][4][9] < 100 then error "no events to clear" elif _nv < _dtbl[_i][4][9]-100 then error "event error condition cannot be cleared" else _j := _dtbl[_i][4][9]-100; if irem(round(_dtbl[_i][3][1][_j, 4]), 2) = 1 then error "retriggerable events cannot be cleared" end if; _j := round(_dtbl[_i][3][1][_j, 1]); for _k to _nv do if _dtbl[_i][3][1][_k, 1] = _j then if _dtbl[_i][3][1][_k, 2] = 3 then error "range events cannot be cleared" end if; _dtbl[_i][3][1][_k, 8] := _dtbl[_i][3][1][_nv+1, 8] end if end do; _dtbl[_i][4][17] := 0; _dtbl[_i][4][9] := 0; if _dtbl[1][4][10] = 1 then if _i = 2 then try procname(procname("left")) catch:  end try else try procname(procname("right")) catch:  end try end if end if end if; return  elif type(_xin, `=`) and member(lhs(_xin), {"eventdisable", "eventenable"}) then if _nv = 0 then error "this solution has no events" end if; if type(rhs(_xin), {('list')('posint'), ('set')('posint')}) then _i := {op(rhs(_xin))} elif type(rhs(_xin), 'posint') then _i := {rhs(_xin)} else error "event identifiers must be integers in the range 1..%1", round(_dtbl[1][3][1][_nv+1, 1]) end if; if select(proc (a) options operator, arrow; _nv < a end proc, _i) <> {} then error "event identifiers must be integers in the range 1..%1", round(_dtbl[1][3][1][_nv+1, 1]) end if; _k := {}; for _j to _nv do if member(round(_dtbl[1][3][1][_j, 1]), _i) then _k := `union`(_k, {_j}) end if end do; _i := _k; if lhs(_xin) = "eventdisable" then _dtbl[4] := 0; _j := [evalb(assigned(_dtbl[2]) and member(_dtbl[2][4][17], _i)), evalb(assigned(_dtbl[3]) and member(_dtbl[3][4][17], _i))]; for _k in _i do _dtbl[1][3][1][_k, 7] := 0; if assigned(_dtbl[2]) then _dtbl[2][3][1][_k, 7] := 0 end if; if assigned(_dtbl[3]) then _dtbl[3][3][1][_k, 7] := 0 end if end do; if _j[1] then for _k to _nv+1 do if _k <= _nv and not type(_dtbl[2][3][4][_k, 1], 'undefined') then userinfo(3, {'events', 'eventreset'}, `reinit #2, event code `, _k, ` to defined init `, _dtbl[2][3][4][_k, 1]); _dtbl[2][3][1][_k, 8] := _dtbl[2][3][4][_k, 1] elif _dtbl[2][3][1][_k, 2] = 0 and irem(iquo(round(_dtbl[2][3][1][_k, 4]), 32), 2) = 1 then userinfo(3, {'events', 'eventreset'}, `reinit #2, event code `, _k, ` to rate hysteresis init `, _dtbl[2][5][24]); _dtbl[2][3][1][_k, 8] := _dtbl[2][5][24] elif _dtbl[2][3][1][_k, 2] = 0 and irem(iquo(round(_dtbl[2][3][1][_k, 4]), 2), 2) = 0 then userinfo(3, {'events', 'eventreset'}, `reinit #2, event code `, _k, ` to initial init `, _x0); _dtbl[2][3][1][_k, 8] := _x0 else userinfo(3, {'events', 'eventreset'}, `reinit #2, event code `, _k, ` to fireinitial init `, _x0-1); _dtbl[2][3][1][_k, 8] := _x0-1 end if end do; _dtbl[2][4][17] := 0; _dtbl[2][4][9] := 0; if _dtbl[1][4][10] = 1 then procname(procname("left")) end if end if; if _j[2] then for _k to _nv+1 do if _k <= _nv and not type(_dtbl[3][3][4][_k, 2], 'undefined') then userinfo(3, {'events', 'eventreset'}, `reinit #3, event code `, _k, ` to defined init `, _dtbl[3][3][4][_k, 2]); _dtbl[3][3][1][_k, 8] := _dtbl[3][3][4][_k, 2] elif _dtbl[3][3][1][_k, 2] = 0 and irem(iquo(round(_dtbl[3][3][1][_k, 4]), 32), 2) = 1 then userinfo(3, {'events', 'eventreset'}, `reinit #3, event code `, _k, ` to rate hysteresis init `, _dtbl[3][5][24]); _dtbl[3][3][1][_k, 8] := _dtbl[3][5][24] elif _dtbl[3][3][1][_k, 2] = 0 and irem(iquo(round(_dtbl[3][3][1][_k, 4]), 2), 2) = 0 then userinfo(3, {'events', 'eventreset'}, `reinit #3, event code `, _k, ` to initial init `, _x0); _dtbl[3][3][1][_k, 8] := _x0 else userinfo(3, {'events', 'eventreset'}, `reinit #3, event code `, _k, ` to fireinitial init `, _x0+1); _dtbl[3][3][1][_k, 8] := _x0+1 end if end do; _dtbl[3][4][17] := 0; _dtbl[3][4][9] := 0; if _dtbl[1][4][10] = 1 then procname(procname("right")) end if end if else for _k in _i do _dtbl[1][3][1][_k, 7] := 1 end do; _dtbl[2] := evaln(_dtbl[2]); _dtbl[3] := evaln(_dtbl[3]); _dtbl[4] := 0; if _dtbl[1][4][10] = 1 then if _x0 <= procname("right") then try procname(procname("right")) catch:  end try end if; if procname("left") <= _x0 then try procname(procname("left")) catch:  end try end if end if end if; return  elif type(_xin, `=`) and lhs(_xin) = "eventfired" then if not type(rhs(_xin), 'list') then error "'eventfired' must be specified as a list" end if; if _nv = 0 then error "this solution has no events" end if; if _dtbl[4] <> 2 and _dtbl[4] <> 3 then error "'direction' must be set prior to calling/setting 'eventfired'" end if; _i := _dtbl[4]; _val := NULL; if not assigned(_EnvEventRetriggerWarned) then _EnvEventRetriggerWarned := false end if; for _k in rhs(_xin) do if type(_k, 'integer') then _src := _k elif type(_k, 'integer' = 'anything') and type(evalf(rhs(_k)), 'numeric') then _k := lhs(_k) = evalf[max(Digits, 18)](rhs(_k)); _src := lhs(_k) else error "'eventfired' entry is not valid: %1", _k end if; if _src < 1 or round(_dtbl[1][3][1][_nv+1, 1]) < _src then error "event identifiers must be integers in the range 1..%1", round(_dtbl[1][3][1][_nv+1, 1]) end if; _src := {seq(`if`(_dtbl[1][3][1][_j, 1]-_src = 0., _j, NULL), _j = 1 .. _nv)}; if nops(_src) <> 1 then error "'eventfired' can only be set/queried for root-finding events and time/interval events" end if; _src := _src[1]; if _dtbl[1][3][1][_src, 2] <> 0. and _dtbl[1][3][1][_src, 2]-2. <> 0. then error "'eventfired' can only be set/queried for root-finding events and time/interval events" elif irem(round(_dtbl[1][3][1][_src, 4]), 2) = 1 then if _EnvEventRetriggerWarned = false then WARNING(`'eventfired' has no effect on events that retrigger`) end if; _EnvEventRetriggerWarned := true end if; if _dtbl[_i][3][1][_src, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_src, 4]), 32), 2) = 1 then _val := _val, undefined elif type(_dtbl[_i][3][4][_src, _i-1], 'undefined') or _i = 2 and _dtbl[2][3][1][_src, 8] < _dtbl[2][3][4][_src, 1] or _i = 3 and _dtbl[3][3][4][_src, 2] < _dtbl[3][3][1][_src, 8] then _val := _val, _dtbl[_i][3][1][_src, 8] else _val := _val, _dtbl[_i][3][4][_src, _i-1] end if; if type(_k, `=`) then if _dtbl[_i][3][1][_src, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_src, 4]), 32), 2) = 1 then error "cannot set event code for a rate hysteresis event" end if; userinfo(3, {'events', 'eventreset'}, `manual set event code `, _src, ` to value `, rhs(_k)); _dtbl[_i][3][1][_src, 8] := rhs(_k); _dtbl[_i][3][4][_src, _i-1] := rhs(_k) end if end do; return [_val] elif type(_xin, `=`) and lhs(_xin) = "direction" then if not member(rhs(_xin), {-1, 1, ':-left', ':-right'}) then error "'direction' must be specified as either '1' or 'right' (positive) or '-1' or 'left' (negative)" end if; _src := `if`(_dtbl[4] = 2, -1, `if`(_dtbl[4] = 3, 1, undefined)); _i := `if`(member(rhs(_xin), {1, ':-right'}), 3, 2); _dtbl[4] := _i; _dtbl[_i] := `dsolve/numeric/SC/IVPdcopy`(_dtbl[1], `if`(assigned(_dtbl[_i]), _dtbl[_i], NULL)); if 0 < _nv then for _j to _nv+1 do if _j <= _nv and not type(_dtbl[_i][3][4][_j, _i-1], 'undefined') then userinfo(3, {'events', 'eventreset'}, `reinit #4, event code `, _j, ` to defined init `, _dtbl[_i][3][4][_j, _i-1]); _dtbl[_i][3][1][_j, 8] := _dtbl[_i][3][4][_j, _i-1] elif _dtbl[_i][3][1][_j, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_j, 4]), 32), 2) = 1 then userinfo(3, {'events', 'eventreset'}, `reinit #4, event code `, _j, ` to rate hysteresis init `, _dtbl[_i][5][24]); _dtbl[_i][3][1][_j, 8] := _dtbl[_i][5][24] elif _dtbl[_i][3][1][_j, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_j, 4]), 2), 2) = 0 then userinfo(3, {'events', 'eventreset'}, `reinit #4, event code `, _j, ` to initial init `, _x0); _dtbl[_i][3][1][_j, 8] := _x0 else userinfo(3, {'events', 'eventreset'}, `reinit #4, event code `, _j, ` to fireinitial init `, _x0-2*_i+5.0); _dtbl[_i][3][1][_j, 8] := _x0-2*_i+5.0 end if end do end if; return _src elif _xin = "eventcount" then if _dtbl[1][3][1] = 0 or _dtbl[4] <> 2 and _dtbl[4] <> 3 then return 0 else return round(_dtbl[_dtbl[4]][3][1][_nv+1, 12]) end if else return "procname" end if end if; if _xout = _x0 then return [_x0, seq(evalf(_dtbl[1][6][_vmap[_i]]), _i = 1 .. _n-_ne)] end if; _i := `if`(_x0 <= _xout, 3, 2); if _xin = "last" and 0 < _dtbl[_i][4][9] and _dtbl[_i][4][9] < 100 then _dat := eval(_dtbl[_i], 2); _j := _dat[4][20]; return [_dat[11][_j, 0], seq(_dat[11][_j, _vmap[_i]], _i = 1 .. _n-_ne-_nd), seq(_dat[8][1][_vmap[_i]], _i = _n-_ne-_nd+1 .. _n-_ne)] end if; if not type(_dtbl[_i], 'array') then _dtbl[_i] := `dsolve/numeric/SC/IVPdcopy`(_dtbl[1], `if`(assigned(_dtbl[_i]), _dtbl[_i], NULL)); if 0 < _nv then for _j to _nv+1 do if _j <= _nv and not type(_dtbl[_i][3][4][_j, _i-1], 'undefined') then userinfo(3, {'events', 'eventreset'}, `reinit #5, event code `, _j, ` to defined init `, _dtbl[_i][3][4][_j, _i-1]); _dtbl[_i][3][1][_j, 8] := _dtbl[_i][3][4][_j, _i-1] elif _dtbl[_i][3][1][_j, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_j, 4]), 32), 2) = 1 then userinfo(3, {'events', 'eventreset'}, `reinit #5, event code `, _j, ` to rate hysteresis init `, _dtbl[_i][5][24]); _dtbl[_i][3][1][_j, 8] := _dtbl[_i][5][24] elif _dtbl[_i][3][1][_j, 2] = 0 and irem(iquo(round(_dtbl[_i][3][1][_j, 4]), 2), 2) = 0 then userinfo(3, {'events', 'eventreset'}, `reinit #5, event code `, _j, ` to initial init `, _x0); _dtbl[_i][3][1][_j, 8] := _x0 else userinfo(3, {'events', 'eventreset'}, `reinit #5, event code `, _j, ` to fireinitial init `, _x0-2*_i+5.0); _dtbl[_i][3][1][_j, 8] := _x0-2*_i+5.0 end if end do end if end if; if _xin <> "last" then if 0 < 0 then if `dsolve/numeric/checkglobals`(op(_dtbl[1][14]), _pars, _n, _y0) then `dsolve/numeric/SC/reinitialize`(_dtbl, _y0, _n, procname, _pars, _i) end if end if; if _dtbl[1][4][7] = 0 then error "parameters must be initialized before solution can be computed" end if end if; _dat := eval(_dtbl[_i], 2); _dtbl[4] := _i; try _src := `dsolve/numeric/SC/IVPrun`(_dat, _xout) catch: userinfo(2, `dsolve/debug`, print(`Exception in solnproc:`, [lastexception][2 .. -1])); error  end try; if _src = 0 and 100 < _dat[4][9] then _val := _dat[3][1][_nv+1, 8] else _val := _dat[11][_dat[4][20], 0] end if; if _src <> 0 or _dat[4][9] <= 0 then _dtbl[1][5][1] := _xout else _dtbl[1][5][1] := _val end if; if _i = 3 and _val < _xout then Rounding := -infinity; if _dat[4][9] = 1 then error "cannot evaluate the solution further right of %1, probably a singularity", evalf[8](_val) elif _dat[4][9] = 2 then error "cannot evaluate the solution further right of %1, maxfun limit exceeded (see ?dsolve,maxfun for details)", evalf[8](_val) elif _dat[4][9] = 3 then if _dat[4][25] = 3 then error "cannot evaluate the solution past the initial point, problem may be initially singular or improperly set up" else error "cannot evaluate the solution past the initial point, problem may be complex, initially singular or improperly set up" end if elif _dat[4][9] = 4 then error "cannot evaluate the solution further right of %1, accuracy goal cannot be achieved with specified 'minstep'", evalf[8](_val) elif _dat[4][9] = 5 then error "cannot evaluate the solution further right of %1, too many step failures, tolerances may be too loose for problem", evalf[8](_val) elif _dat[4][9] = 6 then error "cannot evaluate the solution further right of %1, cannot downgrade delay storage for problems with delay derivative order > 1, try increasing delaypts", evalf[8](_val) elif _dat[4][9] = 10 then error "cannot evaluate the solution further right of %1, interrupt requested", evalf[8](_val) elif 100 < _dat[4][9] then if _dat[4][9]-100 = _nv+1 then error "constraint projection failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-100 = _nv+2 then error "index-1 and derivative evaluation failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-100 = _nv+3 then error "maximum number of event iterations reached (%1) at t=%2", round(_dat[3][1][_nv+1, 3]), evalf[8](_val) else if _Env_dsolve_nowarnstop <> true then `dsolve/numeric/warning`(StringTools:-FormatMessage("cannot evaluate the solution further right of %1, event #%2 triggered a halt", evalf[8](_val), round(_dat[3][1][_dat[4][9]-100, 1]))) end if; Rounding := 'nearest'; _xout := _val end if else error "cannot evaluate the solution further right of %1", evalf[8](_val) end if elif _i = 2 and _xout < _val then Rounding := infinity; if _dat[4][9] = 1 then error "cannot evaluate the solution further left of %1, probably a singularity", evalf[8](_val) elif _dat[4][9] = 2 then error "cannot evaluate the solution further left of %1, maxfun limit exceeded (see ?dsolve,maxfun for details)", evalf[8](_val) elif _dat[4][9] = 3 then if _dat[4][25] = 3 then error "cannot evaluate the solution past the initial point, problem may be initially singular or improperly set up" else error "cannot evaluate the solution past the initial point, problem may be complex, initially singular or improperly set up" end if elif _dat[4][9] = 4 then error "cannot evaluate the solution further left of %1, accuracy goal cannot be achieved with specified 'minstep'", evalf[8](_val) elif _dat[4][9] = 5 then error "cannot evaluate the solution further left of %1, too many step failures, tolerances may be too loose for problem", evalf[8](_val) elif _dat[4][9] = 6 then error "cannot evaluate the solution further left of %1, cannot downgrade delay storage for problems with delay derivative order > 1, try increasing delaypts", evalf[8](_val) elif _dat[4][9] = 10 then error "cannot evaluate the solution further right of %1, interrupt requested", evalf[8](_val) elif 100 < _dat[4][9] then if _dat[4][9]-100 = _nv+1 then error "constraint projection failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-100 = _nv+2 then error "index-1 and derivative evaluation failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-100 = _nv+3 then error "maximum number of event iterations reached (%1) at t=%2", round(_dat[3][1][_nv+1, 3]), evalf[8](_val) else if _Env_dsolve_nowarnstop <> true then `dsolve/numeric/warning`(StringTools:-FormatMessage("cannot evaluate the solution further left of %1, event #%2 triggered a halt", evalf[8](_val), round(_dat[3][1][_dat[4][9]-100, 1]))) end if; Rounding := 'nearest'; _xout := _val end if else error "cannot evaluate the solution further left of %1", evalf[8](_val) end if end if; if _EnvInFsolve = true then _dig := _dat[4][26]; _dat[4][26] := _EnvDSNumericSaveDigits; _Env_dsolve_SC_native := true; if _dat[4][25] = 1 then _i := 1; _dat[4][25] := 2 else _i := _dat[4][25] end if; _val := `dsolve/numeric/SC/IVPval`(_dat, _xout, _src); _dat[4][25] := _i; _dat[4][26] := _dig; [_xout, seq(_val[_vmap[_i]], _i = 1 .. _n-_ne)] else Digits := _dat[4][26]; _val := `dsolve/numeric/SC/IVPval`(eval(_dat, 2), _xout, _src); [_xout, seq(_val[_vmap[_i]], _i = 1 .. _n-_ne)] end if end proc, (2) = Array(0..0, {}), (3) = [t, dy(t), y(t)], (4) = []}); _vars := _dat[3]; _pars := map(rhs, _dat[4]); _n := nops(_vars)-1; _solnproc := _dat[1]; if not type(_xout, 'numeric') then if member(x_rkf45, ["start", 'start', "method", 'method', "left", 'left', "right", 'right', "leftdata", "rightdata", "enginedata", "eventstop", 'eventstop', "eventclear", 'eventclear', "eventstatus", 'eventstatus', "eventcount", 'eventcount', "laxtol", 'laxtol', "numfun", 'numfun', NULL]) then _res := _solnproc(convert(x_rkf45, 'string')); if 1 < nops([_res]) then return _res elif type(_res, 'array') then return eval(_res, 1) elif _res <> "procname" then return _res end if elif member(x_rkf45, ["last", 'last', "initial", 'initial', "parameters", 'parameters', "initial_and_parameters", 'initial_and_parameters', NULL]) then _xout := convert(x_rkf45, 'string'); _res := _solnproc(_xout); if _xout = "parameters" then return [seq(_pars[_i] = _res[_i], _i = 1 .. nops(_pars))] elif _xout = "initial_and_parameters" then return [seq(_vars[_i+1] = [_res][1][_i+1], _i = 0 .. _n), seq(_pars[_i] = [_res][2][_i], _i = 1 .. nops(_pars))] else return [seq(_vars[_i+1] = _res[_i+1], _i = 0 .. _n)] end if elif type(_xout, `=`) and member(lhs(_xout), ["initial", 'initial', "parameters", 'parameters', "initial_and_parameters", 'initial_and_parameters', NULL]) then _xout := convert(lhs(x_rkf45), 'string') = rhs(x_rkf45); if type(rhs(_xout), 'list') then _res := _solnproc(_xout) else error "initial and/or parameter values must be specified in a list" end if; if lhs(_xout) = "initial" then return [seq(_vars[_i+1] = _res[_i+1], _i = 0 .. _n)] elif lhs(_xout) = "parameters" then return [seq(_pars[_i] = _res[_i], _i = 1 .. nops(_pars))] else return [seq(_vars[_i+1] = [_res][1][_i+1], _i = 0 .. _n), seq(_pars[_i] = [_res][2][_i], _i = 1 .. nops(_pars))] end if elif type(_xout, `=`) and member(lhs(_xout), ["eventdisable", 'eventdisable', "eventenable", 'eventenable', "eventfired", 'eventfired', "direction", 'direction', NULL]) then return _solnproc(convert(lhs(x_rkf45), 'string') = rhs(x_rkf45)) elif _xout = "solnprocedure" then return eval(_solnproc) elif _xout = "sysvars" then return _vars end if; if procname <> unknown then return ('procname')(x_rkf45) else _ndsol; _ndsol := pointto(_dat[2][0]); return ('_ndsol')(x_rkf45) end if end if; try _res := _solnproc(_xout); [seq(_vars[_i+1] = _res[_i+1], _i = 0 .. _n)] catch: error  end try end proc

(1)

f := proc(tau, h, n)
  # 2nd order approximations of the derivative of order n
  # fd = forward  divided difference
  # bd = backward divided difference
  # cd = centered divided difference

  local F  := proc(u) eval(dy(t), dsol(u)) end proc;
  local fd := (m, p) -> (-1)^m * sum((-1)^k * binomial(m, k) * H(p+k*h), k=0..m);
  local bd := (m, p) -> sum((-1)^k * binomial(m, k) * H(p-k*h), k=0..m);
  local cd := (m, p) -> `if`(
                           m::even,
                           (bd(m, p+m/2*h) + fd(m, p-m/2*h)) / (2*h^m),
                           (bd(m, p+(m-1)/2*h) + fd(m, p-(m-1)/2*h)) / (2*h^m)
                        ):
  local z:
  z := cd(n, tau):
  if tau::numeric and h::numeric then
    return eval(z, H=F):
  else
    return z
  end if:
end proc:

# check the formulas

print~(simplify([seq(f(T, h, o), o=1..4)])):

-(1/2)*(H(T-h)-H(T+h))/h

 

(H(T+h)-2*H(T)+H(T-h))/h^2

 

(1/2)*(-2*H(T+h)+2*H(T-h)-H(T-2*h)+H(T+2*h))/h^3

 

(H(T+2*h)-4*H(T+h)+6*H(T)-4*H(T-h)+H(T-2*h))/h^4

(2)

plot('f(s, 1e-6, 1)', s=0..10, title=Diff('y(t)', t$2));
plot('f(s, 1e-6, 2)', s=0..10, title=Diff('y(t)', t$3));
plot('f(s, 1e-4, 3)', s=0..10, title=Diff('y(t)', t$3));

 

 

 

 


 

Download HOD_DD.mw

 

@leouam 

As you were writting your reply I was sending a correction of my initial answer.
To "validate" the method I applyied it to the case the exact solution is known (y"(t)=cos(t)).

The prblem in your case is that on can only fix the initial condition for the third derivative of y(t).
As this derivative is equal to the first derivative of the source term -y(t)*abs(y(t)), it contains only y(t) and its first derivative, two finctions whose initial values are known.
Thus is the initial value for the second derivative of y(t).

But what can we set for the initial condition of higher order derivatives?
 

@acer 

Thank you for all these useful informations (in brackets your fractal app is very nice)

I'm used to develop mapets-based applications (either programmatically, or by using the maplet assistant  to build a framework that I then complexify):
For some time now, I've been wondering if it wouldn't be a good idea to convert some of my maplet-based applications into DocumentTolls'. Of course this depend on what the app is intended for (I think that some are more natural when developped with maplets) but the question deserves to be asked for others. 
This point put aside : 

  • How do maplets and embedded components compare in terms of development difficulty?
  • My main grievance against maplets is the impossibility do debug them (and sometimes to kill proprely their execution): It all seems very simple with embedded components, isn't it?
  • The collection of embedded components seems to be poorer than that of maplets, am I wrong?


For the specialist that you are, what would be your criteria to choose embedded components (more generally DocumentTools features) instead of maplets?


 

@acer 

I'm not off the hook yet but things are getting clearer.
Until now, I had not understood the relationship between embedded components and DocumentTools (I guess I must seem a little weird to you?).
I'm probably old-school but I never open the palette on the left part of the main window and I've spent about ten minutes before finding how you included the plot component in your workshee (I was seeking for a programmatic way to do this or to something in the Insert Menu, where Section and Code Edit Region are).

Let's say you get me on track but it's going to be a long road.

Thanks fot your jelp

@acer 

Thank you acer.
I  updated my original post:

  • I corrected the second code snippet which wasn't consistent with the surrounding text,
  • I've inserted an image of the error window,
  • I've attached the mw file.

I didn't enter the File > Document Properties menu to set any specific property

@Suy 

Waiting Carl's reply a solution is

f:= [x__1, 0, 1]:
x:= [x__1, x__2, x__3]:
VectorCalculus:-Jacobian(f, x);

 

@Carl Love 

Thanks for the "Heavside(0):= 0 (or 1)" tip.

"And why reinforce the OP's bad practice by not using unapply for your definition of G?​​​​​​" : 
I simply used the OP's practice to focus only on the Heaviside tip and not ti interfere with other responses, like yours.
I think @Pepini will understand that your advice and the use of Heaviside are not exclusive.
But I agree that unapply is better practice.

@adel-00 

Need clarifications : 

  • n(t) is a priori complex but, as this simple command proves, n(t) is real
    plots:-odeplot(res1, [Re(n(t)), Im(n(t))], t=0..TMAX);
    
  • next point: 
    • Do you want to plot n(t) versus t for a countable set of delta values in 3D-like representation (a solution is given below)?
    • Do you want to consider n is a function of t AND delta? In such case you have a PDE system and not an ODE one



Dsys_ter.mw
PS: one could probably do better than this using the CurveFitting package.
PS: in dsolve, an output of type array would brobably be better to build this kind of plot

LAST PS : there is an error in the tickmarks for the t axis, replace what is written by

[seq(nt=sprintf("%1.1f", (TMAX*nt-1)/(NT-1)), nt in [seq(1..NT, (NT-1)/10)])],

 

@adel-00
With all the parameters freed
Dsys_bis.mw

@Preben Alsholm  @acer

Maybe this could help

restart:
f:=proc() 
  local x;   
  DEBUG(): 
  return x;  
end proc:   
a1 := proc() DEBUG(): f()+f() end proc:
a1()
                              2 x

a2 := proc() DEBUG(): f()-f() end proc:
a2();
                             x - x

a2r := proc() DEBUG(): -f()+f() end proc:
a2r();
                             -x + x

a3 := proc() DEBUG(): f() + f() - f() + f() end proc:
a3()
                              2 x


Given the results a1, a2 and a2r on may expect as a3() is executed that the DEBUG window displays

  1. going into a3 with automatic simplification (same as a1())
    a3:
       2   2*f()
    
  2. going into f() to treat the term -f()
    f:
       1   DEBUG();
    
    ============================================
    f:
       2   return x
  1. going into f() to treat the last term f()
    f:
       1   DEBUG();
    
    ============================================
    f:
       2   return x

But this last step is not performed, thus the value 2*x.
showstat shows that the body of a3() is simplified

showstat(a2)

a2 := proc()
   1   DEBUG();
   2   f()-f()
end proc

showstat(a2r)

a2r := proc()
   1   DEBUG();
   2   -f()+f()
end proc

showstat(a3)

a3 := proc()
   1   DEBUG();
   2   2*f()
end proc

I do not know (of course) the reason why it is so, but this could maybe explain why f()+f()-f()+f() returns 2*x instead of 2*x-x+x

@one man 

I think that I simply plotted the curve and trusted my eyes rather than my brain. In any case I screwed up in every possible way.

To try to redeem myself, here are all the zeros obtained by concatenating the NextZeros twice, first on f(x), next on the function f(-x) from minus the largest one of f(x).
In some sense I search the zeros  from left to right and next from right to left (a kind of PreviousZero function).
Once merged in a single set I pruned it to discard points that are equal up to the precision defined by Digits.

 

restart: 
Digits := 10;

f := proc (x) options operator, arrow; x*(1+1.0001*sin(x^2)) end proc:

sol := NULL:
s := 1.0:
s := RootFinding:-NextZero(f, s): 
sol := sol, s:

for j from 2 to 100 do 
  s   := RootFinding:-NextZero(f, s): 
  sol := sol, s:
end do:
                               10
g := proc (x) options operator, arrow; f(-x) end proc:

s   := -sol[-1]:
s   := RootFinding:-NextZero(g, s): 
sol := sol, -s:

for j from 2 to 100 do 
  s   := RootFinding:-NextZero(g, s): 
  sol := sol, -s:
end do:

allsol := {sol}:
pruned := allsol[1]:
for j from 2 to numelems(allsol)-1 do
  if `not`(verify(allsol[j], pruned[-1], truefalse(float(2)))) then 
    pruned := pruned, allsol[j]
  end if:
end do:
pruned := {pruned}:
zer:= k -> evalf(sqrt((-1)^(k+1)*arcsin(10000/10001)+k*Pi)):

for j from 1 to numelems(pruned) do
  printf("%3d  %2.8f     exact = %2.8f    difference = %+2.8f\n", j, pruned[j], zer(j), pruned[j]-zer(j)):
end do;
  1  2.16754410     exact = 2.16754410  difference = -0.00000000
  2  2.17405854     exact = 2.17405854  difference = +0.00000000
  3  3.31382449     exact = 3.31382449  difference = +0.00000000
  4  3.31808918     exact = 3.31808918  difference = -0.00000000
  5  4.15507136     exact = 4.15507136  difference = +0.00000000
  6  4.15847341     exact = 4.15847342  difference = -0.00000000
  7  4.85260789     exact = 4.85260789  difference = -0.00000000
  8  4.85552123     exact = 4.85552123  difference = -0.00000000
  9  5.46177523     exact = 5.46177523  difference = -0.00000000
 10  5.46436380     exact = 5.46436380  difference = -0.00000000
 11  6.00950696     exact = 6.00950697  difference = -0.00000000
 12  6.01185970     exact = 6.01185970  difference = -0.00000000
 13  6.51132546     exact = 6.51132546  difference = -0.00000000
 14  6.51349694     exact = 6.51349694  difference = -0.00000000
 15  6.97714444     exact = 6.97714444  difference = -0.00000000
 16  6.97917099     exact = 6.97917099  difference = -0.00000000
 17  7.41375275     exact = 7.41375275  difference = -0.00000000
 18  7.41565998     exact = 7.41565998  difference = +0.00000000
 19  7.82604084     exact = 7.82604084  difference = +0.00000000
 20  7.82784762     exact = 7.82784762  difference = +0.00000000
 21  8.21767002     exact = 8.21767002  difference = +0.00000000
 22  8.21939071     exact = 8.21939071  difference = +0.00000000
 23  8.59146587     exact = 8.59146587  difference = +0.00000000
 24  8.59311171     exact = 8.59311171  difference = +0.00000000
 25  8.94966318     exact = 8.94966318  difference = +0.00000000
 26  8.95124317     exact = 8.95124317  difference = +0.00000000
 27  9.29406566     exact = 9.29406566  difference = +0.00000000
 28  9.29558710     exact = 9.29558710  difference = +0.00000000
 29  9.62615405     exact = 9.62615405  difference = -0.00000000
 30  9.62762301     exact = 9.62762301  difference = +0.00000000
 31  9.94716176     exact = 9.94716176  difference = +0.00000000
 32  9.94858332     exact = 9.94858332  difference = +0.00000000
 33  10.25812908     exact = 10.25812909  difference = -0.00000001
 34  10.25950756     exact = 10.25950756  difference = +0.00000000
 35  10.55994307     exact = 10.55994307  difference = +0.00000000
 36  10.56128215     exact = 10.56128215  difference = +0.00000000
 37  10.85336735     exact = 10.85336736  difference = -0.00000001
 38  10.85467024     exact = 10.85467024  difference = +0.00000000
 39  11.13906496     exact = 11.13906497  difference = -0.00000001
 40  11.14033443     exact = 11.14033444  difference = -0.00000001
 41  11.41761593     exact = 11.41761593  difference = +0.00000000
 42  11.41885443     exact = 11.41885444  difference = -0.00000001
 43  11.68953116     exact = 11.68953117  difference = -0.00000001
 44  11.69074086     exact = 11.69074087  difference = -0.00000001
 45  11.95526345     exact = 11.95526345  difference = +0.00000000
 46  11.95644626     exact = 11.95644627  difference = -0.00000001
 47  12.21521630     exact = 12.21521631  difference = -0.00000001
 48  12.21637395     exact = 12.21637395  difference = +0.00000000
 49  12.46975120     exact = 12.46975119  difference = +0.00000001
 50  12.47088521     exact = 12.47088521  difference = +0.00000000
 51  12.71919337     exact = 12.71919338  difference = -0.00000001
 52  12.72030515     exact = 12.72030515  difference = +0.00000000
 53  12.96383683     exact = 12.96383684  difference = -0.00000001
 54  12.96492763     exact = 12.96492763  difference = +0.00000000
 55  13.20394830     exact = 13.20394830  difference = +0.00000000
 56  13.20501926     exact = 13.20501927  difference = -0.00000001
 57  13.43977068     exact = 13.43977069  difference = -0.00000001
 58  13.44082285     exact = 13.44082286  difference = -0.00000001
 59  13.67152593     exact = 13.67152594  difference = -0.00000001
 60  13.67256027     exact = 13.67256027  difference = +0.00000000
 61  13.89941749     exact = 13.89941749  difference = +0.00000000
 62  13.90043487     exact = 13.90043487  difference = +0.00000000
 63  14.12363239     exact = 14.12363239  difference = +0.00000000
 64  14.12463362     exact = 14.12463363  difference = -0.00000001
 65  14.34434304     exact = 14.34434304  difference = +0.00000000
 66  14.34532886     exact = 14.34532887  difference = -0.00000001
 67  14.56170877     exact = 14.56170878  difference = -0.00000001
 68  14.56267989     exact = 14.56267989  difference = +0.00000000
 69  14.77587722     exact = 14.77587723  difference = -0.00000001
 70  14.77683426     exact = 14.77683427  difference = -0.00000001
 71  14.98698546     exact = 14.98698546  difference = +0.00000000
 72  14.98792901     exact = 14.98792902  difference = -0.00000001
 73  15.19516102     exact = 15.19516102  difference = +0.00000000
 74  15.19609165     exact = 15.19609166  difference = -0.00000001
 75  15.40052284     exact = 15.40052284  difference = +0.00000000
 76  15.40144106     exact = 15.40144107  difference = -0.00000001
 77  15.60318201     exact = 15.60318202  difference = -0.00000001
 78  15.60408831     exact = 15.60408832  difference = -0.00000001
 79  15.80324252     exact = 15.80324253  difference = -0.00000001
 80  15.80413735     exact = 15.80413735  difference = +0.00000000
 81  16.00080184     exact = 16.00080185  difference = -0.00000001
 82  16.00168562     exact = 16.00168562  difference = +0.00000000
 83  16.19595150     exact = 16.19595150  difference = +0.00000000
 84  16.19682463     exact = 16.19682463  difference = +0.00000000
 85  16.38877757     exact = 16.38877757  difference = +0.00000000
 86  16.38964043     exact = 16.38964043  difference = +0.00000000
 87  16.57936113     exact = 16.57936114  difference = -0.00000001
 88  16.58021407     exact = 16.58021408  difference = -0.00000001
 89  16.76777865     exact = 16.76777865  difference = +0.00000000
 90  16.76862200     exact = 16.76862201  difference = -0.00000001
 91  16.95410234     exact = 16.95410234  difference = +0.00000000
 92  16.95493643     exact = 16.95493643  difference = +0.00000000
 93  17.13840049     exact = 17.13840050  difference = -0.00000001
 94  17.13922561     exact = 17.13922562  difference = -0.00000001
 95  17.32073777     exact = 17.32073777  difference = +0.00000000
 96  17.32155421     exact = 17.32155420  difference = +0.00000001
 97  17.50117545     exact = 17.50117545  difference = +0.00000000
 98  17.50198346     exact = 17.50198347  difference = -0.00000001
 99  17.67977170     exact = 17.67977170  difference = +0.00000000
100  17.68057155     exact = 17.68057156  difference = -0.00000001
101  17.85658177     exact = 17.85658178  difference = -0.00000001
102  17.85737371     exact = 17.85737371  difference = +0.00000000
103  18.03165821     exact = 18.03165822  difference = -0.00000001
104  18.03244246     exact = 18.03244246  difference = +0.00000000
105  18.20505104     exact = 18.20505104  difference = +0.00000000
106  18.20582781     exact = 18.20582782  difference = -0.00000001
107  18.37680790     exact = 18.37680791  difference = -0.00000001
108  18.37757741     exact = 18.37757742  difference = -0.00000001
109  18.54697425     exact = 18.54697426  difference = -0.00000001
110  18.54773671     exact = 18.54773671  difference = +0.00000000
111  18.71559348     exact = 18.71559348  difference = +0.00000000
112  18.71634906     exact = 18.71634907  difference = -0.00000001
113  18.88270702     exact = 18.88270703  difference = -0.00000001
114  18.88345592     exact = 18.88345593  difference = -0.00000001
115  19.04835452     exact = 19.04835452  difference = +0.00000000
116  19.04909690     exact = 19.04909691  difference = -0.00000001
117  19.21257388     exact = 19.21257389  difference = -0.00000001

Of course this doesn't explain the hole between 7.5 and 10 when f(x) is swept from left to right, neither why this hole is filled when f(x) is swept from right to left.
Zeros.mw

@Mikhail Drugov 

You are right, I used the example described in the help pages Statistics[Distribution] without much thought.
In my opinion it would be better to use CDF instead of PDF if you want to use only one of them.

 

@vv @one man

Damn, I didn't even realize that the sine term was sin(x^2): I had read sin(x)^2 and all my "fabulous idea" was based on my blindness
Sorry for all this mess, there are days one would better go to sleep.

I'm going to suppress this answer right now.
Seems it's no longer possible

@tomleslie 

Since Maple 18???
So I was as ignorant of this as Kitonum.

By the way, while reading again more carefully the post about the Maple's 2021 release I just saw that the new feature I talked about was titled  "Numerically Solve Vectorised Differential Equations".
My apologies

1 2 3 4 5 6 7 Last Page 1 of 68