Maple 18 Questions and Posts

These are Posts and Questions associated with the product, Maple 18

Hi Everybody,

I installed the Maple Toolbox for matlab and tried to run my old code.  For some reason, maple('restart') will cause Matlab to lock up.  Any ideas?

Windows 7 64-bit.  Matlab 2012b 32-bit, Maple 18 32-bit

Here's an example compound inequality I'm working on.

Working it out manually.... 

Compound Inequality
4477.25 <= 4477.25+.25*(t-32450) <= 16042.25;

Distribute the coefficient
4477.25 <= 4477.25+.25*t - 8112.50 <= 16042.25;

Combine like terms
4477.25 <= -3635.25+.25*t <= 16042.25;

Add 3635.25 to all sides
8112.50 <= .25*t <= 19677.50;

Divide all sides by .25
32450 <= t <= 78710;

 

How can I ask Maple to simplify this compound inequality? Obviously this is not the correct syntax, It seems Maple doesn't understand what I want it to do.

4477.25 <= 4477.25 + .25 * (t-32450) <= 16042.25;

                       0.00 <= 0.25 t - 8112.50 and 0.25 t <= 19677.50                (112)

 

Also is there a way to ask Maple to only perform one step? In the above example, is it possible to ask Maple to "Distribute the .25", then show the result, next ask it to combine like terms, etc?

Hi,

I need to solve systems of numerical equations. I encountered a problem, where one of the parameters (tau[p3]) become FREE, see Maple worksheet attached.

That was clearly not expected.

I spent about 40 mintues to inspect what the problem is, eventually, I find that fsolve works perfectly.

Though fsolve would be the "first" choice for solving floating point problems. I really dont see why the simple "solve" syntax can not work. It is acting strange. And why is *tau[p3]*  FREE, not the others?

 

Could this be a bug? Or maybe is just WRONG to use solve?

 

Casper

solve-fsolve.mw

 

 

I'm having some trouble maybe someone can point out my error please. I'm using the Maple 18 worksheet to try some basic linear equations. The trouble is in the last step.

 

1.) I start with 2 ordered pairs (2, 14) and (14,18)

Then I put in my formula to discover the slope. I confirm it looks correct in the Variables window.

m := (y2-y1)/(x2-x1);

 

2.)  Next I input the values for my ordered pairs. I also confirm thru the Variables window.

x1 := 2;

y1 := 14;

x2 := 3;

y2 := 18;

 

3.) Now I can type m and expect to get an answer to what my slope is.

m;

4.) Now I want Slope/Intercept form of y=mx+b. When I put in the formula y-y1=m(x-x1) i get a strange result

 

When I execute this formula, the result is y-14=4. (or thru context menu I tell it to solve for y, then I get y=18)

y-y1=m(x-x1) 

When I manually input the values, the output is y-14=4x-8 (or thru context menu I tell it to solve for y, then I get y=4x+6)

y-14 = 4*(x-2)

 

 

 

Why is my equation (y-y1=m(x-x1)) not executing properly?

This is one is for Edgardo: In the "mini course", there is a command "PlotExpression" used that does not seem to do anything, at least for me. This is in a fresh Maple 18.01 installation on Linux with the latest version of Physics pulled off the Web today.

I cannot find any reference to PlotExpression in the Maple Help files, so where is this thing supposed to be defined? I >am< running a .mapleinit file of my own, configuring some of the plots[setoptions] parameters to my liking, but it should not clobber anything from the system mapleinit.

Another person managed to get the definition of PlotExpression and send it to me. From that I can see that the underlying plots:-plotcompare command seems to work, at least in part.

???

USPAS

 

hello

this is my program and fsolve for low intensity solve the equations but for high intensity cannot solve why?

this is my code:

ep0 := 1/(4*3.14);

el := 8.54*10^(-2);

hbar := 1;

vf := 1/300;

kb := 1;

tem := 2.586*10^(-2);

ci := 1;

p := 1.458*10^16;

beta := 2;

ai := 7.1*10^(-4);

bi := ai/sqrt(3);

enph := .196;

d := enph/(kb*tem);

n0 := 1/(exp(enph/(kb*tem))-1);

gama := hbar*vf;

intensity:=9000000

 

w := 7.28;

impurity := 7.2*10^3;

g := hbar*beta/(bi^2*sqrt(2*p*enph));

aa := g^2*(n0+1)/(2*Pi*hbar*gama^2);

bb := g^2*n0/(2*Pi*hbar*gama^2);

cc := 2/(Pi*gama^2);

l := (1*hbar)*w/(2*kb*tem);

 

u := el^2*intensity/(32*w*hbar^2);

[fsolve({op([((enph*ln(1+exp(c+enph/(kb*tem)))/(kb*tem)-polylog(2, -exp(c))+polylog(2, -exp(c+enph/(kb*tem))))*enph*(kb*tem)^2-(enph^2*ln(1+exp(c+enph/(kb*tem)))/(kb^2*tem^2)+2*enph*polylog(2, -exp(c+enph/(kb*tem)))/(kb*tem)+2*polylog(3, -exp(c))-2*polylog(3, -exp(c+enph/(kb*tem))))*(kb*tem)^3+(-exp(b)*enph*ln(1+exp(c+enph/(kb*tem)))+exp(c+d)*enph*ln(1+exp(b-d+enph/(kb*tem)))+exp(b)*kb*tem*polylog(2, -exp(c))-exp(c+d)*kb*tem*polylog(2, -exp(b-d))-exp(b)*kb*tem*polylog(2, -exp(c+enph/(kb*tem)))+exp(c+d)*kb*tem*polylog(2, -exp(b-d+enph/(kb*tem))))*enph*(kb*tem)^2/((exp(b)-exp(c+d))*kb*tem)+(exp(b)*enph^2*ln(1+exp(c+enph/(kb*tem)))-exp(c+d)*enph^2*ln(1+exp(b-d+enph/(kb*tem)))+2*exp(b)*enph*kb*tem*polylog(2, -exp(c+enph/(kb*tem)))-2*exp(c+d)*enph*kb*tem*polylog(2, -exp(b-d+enph/(kb*tem)))+2*exp(b)*kb^2*tem^2*polylog(3, -exp(c))-2*exp(c+d)*kb^2*tem^2*polylog(3, -exp(b-d))-2*exp(b)*kb^2*tem^2*polylog(3, -exp(c+enph/(kb*tem)))+2*exp(c+d)*kb^2*tem^2*polylog(3, -exp(b-d+enph/(kb*tem))))*(kb*tem)^3/((exp(b)-exp(c+d))*kb^2*tem^2))*bb+u*(1/(1+exp(-l-c))-1/((1+exp(-l-c))*(1+exp(l-b))))-(((1*enph)*(enph-2*kb*tem*ln(1+exp(-b+enph/(kb*tem))))/(2*kb^2*tem^2)+2*kb^2*tem^2*(-polylog(2, -exp(-b+enph/(kb*tem)))+polylog(2, -cosh(b)+sinh(b))))*enph*(kb*tem)^2-(enph^2*(enph-3*kb*tem*ln(1+exp(-b+enph/(kb*tem))))-6*kb^2*tem^2*(enph*polylog(2, -exp(-b+enph/(kb*tem)))+kb*tem*(-polylog(3, -exp(-b+enph/(kb*tem)))+polylog(3, -cosh(b)+sinh(b)))))*(kb*tem)^3/(3*kb^3*tem^3)-(-exp(b)*enph^2+exp(c+d)*enph^2-2*exp(c+d)*enph*kb*tem*ln(1+exp(-b+enph/(kb*tem)))+2*exp(b)*enph*kb*tem*ln(1+exp(-c-d+enph/(kb*tem)))+2*exp(c+d)*kb^2*tem^2*polylog(2, -exp(-b))-2*exp(b)*kb^2*tem^2*polylog(2, -exp(-c-d))-2*exp(c+d)*kb^2*tem^2*polylog(2, -exp(-b+enph/(kb*tem)))+2*exp(b)*kb^2*tem^2*polylog(2, -exp(-c-d+enph/(kb*tem))))*enph*(kb*tem)^2/((2*(-exp(b)+exp(c+d)))*kb^2*tem^2)-(exp(b)*enph^3-exp(c+d)*enph^3+3*exp(c+d)*enph^2*kb*tem*ln(1+exp(-b+enph/(kb*tem)))-3*exp(b)*enph^2*kb*tem*ln(1+exp(-c-d+enph/(kb*tem)))+6*exp(c+d)*enph*kb^2*tem^2*polylog(2, -exp(-b+enph/(kb*tem)))-6*exp(b)*enph*kb^2*tem^2*polylog(2, -exp(-c-d+enph/(kb*tem)))+6*exp(c+d)*kb^3*tem^3*polylog(3, -exp(-b))-6*exp(b)*kb^3*tem^3*polylog(3, -exp(-c-d))-6*exp(c+d)*kb^3*tem^3*polylog(3, -exp(-b+enph/(kb*tem)))+6*exp(b)*kb^3*tem^3*polylog(3, -exp(-c-d+enph/(kb*tem))))*(kb*tem)^3/((3*(-exp(b)+exp(c+d)))*kb^3*tem^3))*aa-u*(1/(1+exp(l-b))-1/((1+exp(-l-c))*(1+exp(l-b)))) = 0, -cc*polylog(2, -exp(b))+cc*polylog(2, -exp(-c))-impurity = 0])}, {op([b, c])})];

 

thank you.

 “Error, too many levels of recursion” ,but there’s just a single expression.

 

 

How can this happen?

The help documents read,

 The function unames returns an expression sequence consisting of all the active names in the current Maple session which are ``unassigned names''.

 

But what unames() returns is obviously not the contents one expects:

 


psif := (0.5731939284e-1*(x-97.79105004))/((x-97.79105004)^2+(y+.3750470777)^2)+(0.2599707238e-1*(y+.3750470777))/((x-97.79105004)^2+(y+.3750470777)^2)+(0.7176288278e-1*x-7.025711349)/((x-97.90174359)^2+(y-.8198365723)^2)+(-0.6648084910e-2*y+0.5450343145e-2)/((x-97.90174359)^2+(y-.8198365723)^2)+(0.6378426459e-1*x-6.295510046)/((x-98.70004908)^2+(y-1.715776493)^2)+(-0.5683341879e-1*y+0.9751344398e-1)/((x-98.70004908)^2+(y-1.715776493)^2)+(0.6500592479e-2*x-.6493949981)/((x-99.89781703)^2+(y-1.788933400)^2)+(-.1064315267*y+.1903989129)/((x-99.89781703)^2+(y-1.788933400)^2)+(-.1026176004*x+10.33830579)/((x-100.7459320)^2+(y-.9399922915)^2)+(-.1025177385*y+0.9636588393e-1)/((x-100.7459320)^2+(y-.9399922915)^2)+(-.1841914880*x+18.41914880)/((x-100.)^2+y^2)+.1461653667*y/((x-100.)^2+y^2)+3.*y-11.93662073*ln((x-100.)^2+y^2):

xf := 98.17642962:

ode := diff(X(t), t) = evalf(subs(x = X(t), y = Y(t), subs(vvx = Vx, vvx))), diff(Y(t), t) = evalf(subs(x = X(t), y = Y(t), subs(vvy = Vy, vvy))), diff(S(t), t) = -Y(t)*evalf(subs(x = X(t), y = Y(t), subs(vvx = Vx, vvx))):

ds := dsolve(odse, type = numeric, method = rkf45, maxfun = 0, output = listprocedure, abserr = .1^10, relerr = .1^10, minstep = .1^10);

proc (t) local _res, _dat, _solnproc, _xout, _ndsol, _pars, _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](t) else _xout := evalf(t) 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 ] ) _xout := _xin; _pars := []; _dtbl := array( 1 .. 4, [( 1 ) = (array( 1 .. 20, [( 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..53, {(1) = 3, (2) = 3, (3) = 0, (4) = 0, (5) = 0, (6) = 0, (7) = 1, (8) = 0, (9) = 0, (10) = 0, (11) = 0, (12) = 0, (13) = 0, (14) = 0, (15) = 0, (16) = 0, (17) = 0, (18) = 1, (19) = 0, (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}, datatype = integer[8])), ( 5 ) = (Array(1..28, {(1) = .0, (2) = 0.10e-9, (3) = .0, (4) = 0.500001e-14, (5) = .0, (6) = 0.5313975432658623e-3, (7) = .0, (8) = 0.10e-9, (9) = .0, (10) = .0, (11) = 0.10e-9, (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..3, {(1) = .0, (2) = 98.17642962, (3) = -1.578177289}, 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..3, {(1) = 1.0, (2) = 1.0, (3) = 1.0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, 1..3, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0}, datatype = float[8], order = C_order), Array(1..3, 1..3, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0}, datatype = float[8], order = C_order), Array(1..3, 1..6, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (1, 6) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (2, 6) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (3, 6) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = 0, (2) = 0, (3) = 0}, datatype = integer[8]), Array(1..3, {(1) = .0, (2) = 98.17642962, (3) = -1.578177289}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order)]), ( 8 ) = ([Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = .0, (2) = .0, (3) = .0}, datatype = float[8], order = C_order), Array(1..3, {(1) = 15.054642426145987, (2) = 9.539259328516408, (3) = -7.5367596882075505}, datatype = float[8], order = C_order)]), ( 11 ) = (Array(1..6, 0..3, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (2, 0) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (3, 0) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (4, 0) = .0, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (5, 0) = .0, (5, 1) = .0, (5, 2) = .0, (5, 3) = .0, (6, 0) = .0, (6, 1) = .0, (6, 2) = .0, (6, 3) = .0}, datatype = float[8], order = C_order)), ( 10 ) = ([proc (N, X, Y, YP) option `[Y[1] = S(t), Y[2] = X(t), Y[3] = Y(t)]`; YP[1] := -Y[3]*(-0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)-0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-1.*(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6648084910e-2/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)-1.*(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-1.*(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.5683341879e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)-1.*(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-1.*(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-.1064315267/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)-1.*(-.1064315267*Y[3]+.1903989129)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-1.*(-.1026176004*Y[2]+10.33830579)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-.1025177385/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)-1.*(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-2.*(-.1841914880*Y[2]+18.41914880)*Y[3]/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667/((Y[2]-100.)^2+Y[3]^2)-.2923307334*Y[3]^2/((Y[2]-100.)^2+Y[3]^2)^2+3.-23.87324146*Y[3]/((Y[2]-100.)^2+Y[3]^2)); YP[2] := -0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)-0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-1.*(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6648084910e-2/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)-1.*(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-1.*(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.5683341879e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)-1.*(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-1.*(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-.1064315267/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)-1.*(-.1064315267*Y[3]+.1903989129)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-1.*(-.1026176004*Y[2]+10.33830579)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-.1025177385/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)-1.*(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-2.*(-.1841914880*Y[2]+18.41914880)*Y[3]/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667/((Y[2]-100.)^2+Y[3]^2)-.2923307334*Y[3]^2/((Y[2]-100.)^2+Y[3]^2)^2+3.-23.87324146*Y[3]/((Y[2]-100.)^2+Y[3]^2); YP[3] := -0.5731939284e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)+0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[2]-195.5821001)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[2]-195.5821001)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-0.7176288278e-1/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)+(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[2]-195.8034872)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2+(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[2]-195.8034872)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6378426459e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)+(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[2]-197.4000982)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2+(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[2]-197.4000982)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.6500592479e-2/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)+(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[2]-199.7956341)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2+(-.1064315267*Y[3]+.1903989129)*(2.*Y[2]-199.7956341)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2+.1026176004/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)+(-.1026176004*Y[2]+10.33830579)*(2.*Y[2]-201.4918640)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2+(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[2]-201.4918640)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2+.1841914880/((Y[2]-100.)^2+Y[3]^2)+(-.1841914880*Y[2]+18.41914880)*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667*Y[3]*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2)^2+11.93662073*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2); 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] = S(t), Y[2] = X(t), Y[3] = Y(t)]`; YP[1] := -Y[3]*(-0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)-0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-1.*(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6648084910e-2/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)-1.*(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-1.*(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.5683341879e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)-1.*(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-1.*(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-.1064315267/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)-1.*(-.1064315267*Y[3]+.1903989129)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-1.*(-.1026176004*Y[2]+10.33830579)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-.1025177385/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)-1.*(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-2.*(-.1841914880*Y[2]+18.41914880)*Y[3]/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667/((Y[2]-100.)^2+Y[3]^2)-.2923307334*Y[3]^2/((Y[2]-100.)^2+Y[3]^2)^2+3.-23.87324146*Y[3]/((Y[2]-100.)^2+Y[3]^2)); YP[2] := -0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)-0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[3]+.7500941554)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-1.*(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6648084910e-2/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)-1.*(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[3]-1.639673145)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-1.*(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.5683341879e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)-1.*(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[3]-3.431552986)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-1.*(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-.1064315267/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)-1.*(-.1064315267*Y[3]+.1903989129)*(2.*Y[3]-3.577866800)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2-1.*(-.1026176004*Y[2]+10.33830579)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-.1025177385/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)-1.*(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[3]-1.879984583)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2-2.*(-.1841914880*Y[2]+18.41914880)*Y[3]/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667/((Y[2]-100.)^2+Y[3]^2)-.2923307334*Y[3]^2/((Y[2]-100.)^2+Y[3]^2)^2+3.-23.87324146*Y[3]/((Y[2]-100.)^2+Y[3]^2); YP[3] := -0.5731939284e-1/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)+0.5731939284e-1*(Y[2]-97.79105004)*(2.*Y[2]-195.5821001)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2+0.2599707238e-1*(Y[3]+.3750470777)*(2.*Y[2]-195.5821001)/((Y[2]-97.79105004)^2+(Y[3]+.3750470777)^2)^2-0.7176288278e-1/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)+(0.7176288278e-1*Y[2]-7.025711349)*(2.*Y[2]-195.8034872)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2+(-0.6648084910e-2*Y[3]+0.5450343145e-2)*(2.*Y[2]-195.8034872)/((Y[2]-97.90174359)^2+(Y[3]-.8198365723)^2)^2-0.6378426459e-1/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)+(0.6378426459e-1*Y[2]-6.295510046)*(2.*Y[2]-197.4000982)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2+(-0.5683341879e-1*Y[3]+0.9751344398e-1)*(2.*Y[2]-197.4000982)/((Y[2]-98.70004908)^2+(Y[3]-1.715776493)^2)^2-0.6500592479e-2/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)+(0.6500592479e-2*Y[2]-.6493949981)*(2.*Y[2]-199.7956341)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2+(-.1064315267*Y[3]+.1903989129)*(2.*Y[2]-199.7956341)/((Y[2]-99.89781703)^2+(Y[3]-1.788933400)^2)^2+.1026176004/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)+(-.1026176004*Y[2]+10.33830579)*(2.*Y[2]-201.4918640)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2+(-.1025177385*Y[3]+0.9636588393e-1)*(2.*Y[2]-201.4918640)/((Y[2]-100.7459320)^2+(Y[3]-.9399922915)^2)^2+.1841914880/((Y[2]-100.)^2+Y[3]^2)+(-.1841914880*Y[2]+18.41914880)*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2)^2+.1461653667*Y[3]*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2)^2+11.93662073*(2.*Y[2]-200.)/((Y[2]-100.)^2+Y[3]^2); 0 end proc, -1, 0, 0, 0, 0, 0, 0]), ( 20 ) = ([])  ] ))  ] ); _y0 := Array(0..3, {(1) = 0., (2) = 0., (3) = 98.17642962}); _vmap := array( 1 .. 3, [( 1 ) = (1), ( 2 ) = (2), ( 3 ) = (3)  ] ); _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] < 10 and 10 <= _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 10 <= _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] < 10 and 10 < _dtbl[5-_i][4][9] then _dtbl[4] := 5-_i; _i := 5-_i end if; if _dtbl[_i][4][9] < 10 then error "no events to clear" elif _nv < _dtbl[_i][4][9]-10 then error "event error condition cannot be cleared" else _j := _dtbl[_i][4][9]-10; 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] < 10 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 10 < _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 <a href='http://www.maplesoft.com/support/help/search.aspx?term=dsolve,maxfun' target='_new'>?dsolve,maxfun</a> 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 10 < _dat[4][9] then if _dat[4][9]-10 = _nv+1 then error "constraint projection failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-10 = _nv+2 then error "index-1 and derivative evaluation failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-10 = _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]-10, 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 <a href='http://www.maplesoft.com/support/help/search.aspx?term=dsolve,maxfun' target='_new'>?dsolve,maxfun</a> 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 10 < _dat[4][9] then if _dat[4][9]-10 = _nv+1 then error "constraint projection failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-10 = _nv+2 then error "index-1 and derivative evaluation failure on event at t=%1", evalf[8](_val) elif _dat[4][9]-10 = _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]-10, 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(1..4, {(1) = 18446744074566161350, (2) = 18446744074566161614, (3) = 18446744074566161790, (4) = 18446744074566161966}), (3) = [t, S(t), X(t), Y(t)], (4) = []}); _solnproc := _dat[1]; _pars := map(rhs, _dat[4]); if not type(_xout, 'numeric') then if member(t, ["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(t, '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(t, ["last", 'last', "initial", 'initial', NULL]) then _res := _solnproc(convert(t, 'string')); if type(_res, 'list') then return _res[2] else return NULL end if elif member(t, ["parameters", 'parameters', "initial_and_parameters", 'initial_and_parameters', NULL]) then _xout := convert(t, 'string'); _res := _solnproc(_xout); if _xout = "parameters" then return [seq(_pars[_i] = _res[_i], _i = 1 .. nops(_pars))] else return [_res[2], seq(_pars[_i] = [_res][2][_i], _i = 1 .. nops(_pars))] end if elif type(_xout, `=`) and member(lhs(_xout), ["initial", 'initial', "parameters", 'parameters', "initial_and_parameters", 'initial_and_parameters', NULL]) then _xout := convert(lhs(t), 'string') = rhs(t); if lhs(_xout) = "initial" then if type(rhs(_xout), 'list') then _res := _solnproc(_xout) else _res := _solnproc("initial" = ["single", 2, rhs(_xout)]) end if elif not type(rhs(_xout), 'list') then error "initial and/or parameter values must be specified in a list" elif lhs(_xout) = "initial_and_parameters" and nops(rhs(_xout)) = nops(_pars)+1 then _res := _solnproc(lhs(_xout) = ["single", 2, op(rhs(_xout))]) else _res := _solnproc(_xout) end if; if lhs(_xout) = "initial" then return _res[2] elif lhs(_xout) = "parameters" then return [seq(_pars[_i] = _res[_i], _i = 1 .. nops(_pars))] else return [_res[2], 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(t), 'string') = rhs(t)) elif _xout = "solnprocedure" then return eval(_solnproc) elif _xout = "sysvars" then return _dat[3] end if; if procname <> unknown then return ('procname')(t) else _ndsol := `tools/gensym`("S(t)"); eval(FromInert(_Inert_FUNCTION(_Inert_NAME("assign"), _Inert_EXPSEQ(ToInert(_ndsol), _Inert_VERBATIM(pointto(_dat[2][2])))))); return FromInert(_Inert_FUNCTION(ToInert(_ndsol), _Inert_EXPSEQ(ToInert(t)))) end if end if; try _res := _solnproc(_xout); _res[2] catch: error  end try end proc

(1)

``

NULL

with(plots):

animate(plot, [[XX(t), YY(t), t = 0 .. (1/10)*a]], a = 1 .. 260);

 

plot([XX(t), YY(t), t = 0 .. 22.7])

with(DEtools)

solve([XX(t) = xf, t > 22, t < 23], [t], allsolutions = true)

[]

(2)

min(allvalues(abs(RootOf(50000000*X(_Z)-4908821481))))

min(abs(RootOf(50000000*X(_Z)-4908821481)))

(3)

remove_RootOf(t = RootOf(50000000*X(_Z)-4908821481))

50000000*X(t)-4908821481 = 0

(4)

allvalues(RootOf(50000000*X(_Z)-4908821481))

RootOf(50000000*X(_Z)-4908821481)

(5)

solve(50000000*X(t)-4908821481 = 0)

RootOf(50000000*X(_Z)-4908821481)

(6)

tyu := RootOf(50000000*XX(t)-4908821481, t)

allvalues(tyu)

NULL


Download for_clever_guys.mw


i m calculating space of this elipse,i need to find point t1 wherein [XX(t1), YY(t1)] creates full circle and get S(t1). here its between 22.6-22.7. but i need to find it with ~0.1^3  accuracy.

for_clever_guys.mw

In the old version of Maple, the accurate value of Sin()and Cos() at some particular points, such as Pi/10, can be returned as below:

 

But in Maple 18, it just returns the same as the input.

How to make Maple18 return the accurate value as before?

Here is the ODE:

 

dsolve((y(x)^2-x)*(D(y))(x)+x^2-y(x) = 0, {y(x)})

 

And the Maple 18 returns a very complex result.

But as we know,the more elegant result should be this:

 

How can I get this simple result with Maple?

with pointplot3d and 14,000 points when I enter symbol=point I get an empty plot.

Only when I set symbolsize=1 (a point) do I get points appearing in the graph.  Bug?

restart;
Eq1 := diff(T1(t), t) = (W*Cp*(To-T1(t))+UA*(Ts-T1(t)))/(M*Cp);
Eq2 := diff(T2(t), t) = (W*Cp*(T1(t)-T2(t))+UA*(Ts-T2(t)))/(M*Cp);
Eq3 := diff(T3(t), t) = (W*Cp*(T2(t)-T3(t))+UA*(Ts-T3(t)))/(M*Cp);
sys := Eq1, Eq2, Eq3;

Operational Veriables

W := 100;
UA := 10;
Cp := 2;
M := 1000;
To := 20;
Ts := 250;

Initial Conditions

sys1 := {Eq1, Eq2, Eq3};

nsys := nops(sys1);

ics := {T1(0) = 20, T2(0) = 20, T3(0) = 20};
{T1(0) = 20, T2(0) = 20, T3(0) = 20}
nics := nops(ics);
for i from 1 to nics do Sol ||i:=dsolve({sys1, ics[i]},{T1(t),T2(t),T3(t)},numeric)od;
Error, unable to match delimiters
Typesetting:-mambiguous(Typesetting:-mambiguous( for i from 1 to

nics do Sol verbarverbariAssigndsolvelpar(sys1comma ics(i))

commalcubT1(t)commaT2(t)commaT3(t)rcubcommanumericrparod,

Typesetting:-merror("unable to match delimiters")))

 

I was running some wav files through the spectrogram increasing the fft window size.  Generally just playing around.

I have run into an issue.  After running a few times the mem usage for maple.exe starts to run high.  I get it up to 600,000 K and still seems to run okay - ie able to produce a spectrogram.  However running it again at a higher window size of course eats up more memory and right around 1,000,000 K mem usage everything slows down and it appears to freeze.  The spectrogram is not displayed, after a short while CPU usage drops to zero the heartbeat circle (evaluating symbol - bottom left corner) stays solid and everything appears to stop. 

It is possible to close the worksheet in the same maple session after some time and open a new one.

Another note.  After one worksheet has ramped up the mem usage to a large value say 800,000 K (it doesn't really matter) .. when I close the worksheet (in the same maple session) the mem usage remains high even after a restart;gc():   I not sure if this has been normal throughout the ages, but I thought after closing a high mem usage worksheet in the same maple session the mem usage in the windows task manager would have updated back down under 100,000 K at least. 

The system Maple is running on right now is a P4 3Ghz Windows XP at 2.50 GB RAM Maple 18.00 stnd GUI 32 bit.  Using the spectrograms example in the application center for start.

Any insight as to why the computer starts to freeze up around 1,000,000 K mem usage would be helpful.  Also why closing a worksheet had no effect on the mem usage.  Would be interesting to know if this occurs on other machines as well.

As I stated in an earlier post, I'm new at this.

I'm trying to write a procedure to calculate what is called a "crescent latitude". The full formula can be seen here: https://db.tt/QAUzH5i0.

b is equal to 0.081819221; it takes a single parameter φ (latitude of a location in degrees)

 

I normally get errors like unable to parse, unable to match delimters, etc. and the result is the name of the procedure and whatevere value of the parameter I put in parenthesis, not the calculated value.

Anybody can help?

 

Thanlk you

Martina

First 58 59 60 61 62 63 Page 60 of 63