Kitonum

21123 Reputation

26 Badges

16 years, 210 days

MaplePrimes Activity


These are answers submitted by Kitonum

There are no 4 cases here. For any value of the parameter  , your function  x->Pre  has a single critical point  x = k/(k+1) . I do not understand why you apply the  seq command to the expression  Pre_double_prime . In this case, you simply get a sequence of operands of this expression, which is not relevant to your task.

restart

Pre := -(6*(x-1))*(k-1)*x/(((x-1)*k-x)^2*(k+1))

Pre_prime := diff(Pre, x)

critical_points := solve(Pre_prime = 0, x)

k/(k+1)

(1)

diff(Pre_prime, x); Pre_double_prime := simplify(diff(Pre_prime, x))

-12*(k-1)/(((x-1)*k-x)^2*(k+1))+24*(k-1)^2*x/(((x-1)*k-x)^3*(k+1))+24*(x-1)*(k-1)^2/(((x-1)*k-x)^3*(k+1))-36*(x-1)*(k-1)^3*x/(((x-1)*k-x)^4*(k+1))

 

-12*((x-1)*k^2+2*k-x)*(k-1)/(((x-1)*k-x)^4*(k+1))

(2)

second_derivative_evaluation := simplify(subs(x = critical_points, Pre_double_prime))

-(3/4)*(k-1)*(k+1)^3/k^3

(3)

max_points := solve(second_derivative_evaluation < 0, k)

RealRange(Open(-1), Open(0)), RealRange(Open(1), infinity)

(4)

plot(eval(Pre, k = -1/2), x = -4 .. 4, -1 .. 10); plot(eval(Pre, k = 3/2), x = -3 .. 7, -20 .. 2)

 

 
 

 

Download Maximum_expression_new.mw

From dsolve,numeric,DAE

dsys := {1 - x(t)^2 - y(t)^2, diff(x(t), t, t) = -2*x(t)*lambda(t), diff(y(t), t, t) = -9.8 - 2*y(t)*lambda(t)}

{1-x(t)^2-y(t)^2, diff(diff(x(t), t), t) = -2*x(t)*lambda(t), diff(diff(y(t), t), t) = -9.8-2*y(t)*lambda(t)}

(1)

dini := {lambda(0) = 5.025000000, x(0) = 0, y(0) = -1, D(x)(0) = 1/2, D(y)(0) = 0}

{lambda(0) = 5.025000000, x(0) = 0, y(0) = -1, (D(x))(0) = 1/2, (D(y))(0) = 0}

(2)

dsol1 := dsolve(dsys union dini, numeric);

proc (x_rkf45_dae) 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_dae) else _xout := evalf(x_rkf45_dae) 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 .. 26, [( 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..63, {(1) = 5, (2) = 4, (3) = 0, (4) = 0, (5) = 0, (6) = 2, (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) = 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, (55) = 0, (56) = 0, (57) = 0, (58) = 0, (59) = 10000, (60) = 0, (61) = 1000, (62) = 0, (63) = 0}, datatype = integer[8])), ( 5 ) = (Array(1..28, {(1) = .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..5, {(1) = .0, (2) = .5, (3) = -1.0, (4) = .0, (5) = 5.025}, 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..5, {(1) = .1, (2) = .1, (3) = .1, (4) = .1, (5) = .1}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..4, 1..4, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (3, 4) = .0, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (4, 4) = .0}, datatype = float[8], order = C_order), Array(1..4, 1..4, {(1, 1) = .0, (1, 2) = .0, (1, 3) = -2.0, (1, 4) = .0, (2, 1) = .5, (2, 2) = .0, (2, 3) = .0, (2, 4) = -1.0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (3, 4) = .0, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (4, 4) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..4, 1..4, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (3, 4) = .0, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (4, 4) = .0}, datatype = float[8], order = C_order), Array(1..5, 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, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (4, 4) = .0, (4, 5) = .0, (4, 6) = .0, (5, 1) = .0, (5, 2) = .0, (5, 3) = .0, (5, 4) = .0, (5, 5) = .0, (5, 6) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = 0, (2) = 0, (3) = 0, (4) = 0}, datatype = integer[8]), Array(1..5, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0}, datatype = float[8], order = C_order), Array(1..5, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0}, datatype = float[8], order = C_order), Array(1..5, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0}, datatype = float[8], order = C_order), Array(1..5, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), Array(1..10, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0, (6) = .0, (7) = .0, (8) = .0, (9) = .0, (10) = .0}, datatype = float[8], order = C_order)]), ( 8 ) = ([Array(1..5, {(1) = .0, (2) = .5, (3) = -1.0, (4) = .0, (5) = undefined}, datatype = float[8], order = C_order), Array(1..5, {(1) = .0, (2) = .0, (3) = .0, (4) = .0, (5) = .0}, datatype = float[8], order = C_order), Array(1..4, {(1) = .5, (2) = -.0, (3) = .0, (4) = .25}, datatype = float[8], order = C_order), 0, 0]), ( 11 ) = (Array(1..6, 0..5, {(1, 1) = .0, (1, 2) = .0, (1, 3) = .0, (1, 4) = .0, (1, 5) = .0, (2, 0) = .0, (2, 1) = .0, (2, 2) = .0, (2, 3) = .0, (2, 4) = .0, (2, 5) = .0, (3, 0) = .0, (3, 1) = .0, (3, 2) = .0, (3, 3) = .0, (3, 4) = .0, (3, 5) = .0, (4, 0) = .0, (4, 1) = .0, (4, 2) = .0, (4, 3) = .0, (4, 4) = .0, (4, 5) = .0, (5, 0) = .0, (5, 1) = .0, (5, 2) = .0, (5, 3) = .0, (5, 4) = .0, (5, 5) = .0, (6, 0) = .0, (6, 1) = .0, (6, 2) = .0, (6, 3) = .0, (6, 4) = .0, (6, 5) = .0}, datatype = float[8], order = C_order)), ( 10 ) = ([proc (N, X, Y, YP) local Z1, Z2, Z3, Z4, Z5; Z1 := Y[2]^2; Z2 := Y[4]^2; Z3 := Z1+Z2; Z4 := Y[1]^2; Z5 := Y[3]^2+Z4; Z5 := 1/Z5; Y[5] := -(1/10)*(-5*Z3+49*Y[3])*Z5; if N < 1 then return 0 end if; YP[2] := -(1/5)*(5*Z3-49*Y[3])*Y[1]*Z5; YP[4] := -(1/5)*(49*Z4+5*Y[3]*(Z1+Z2))*Z5; YP[1] := Y[2]; YP[3] := Y[4]; 0 end proc, -1, proc (X, Y, R) R[1] := Y[1]^2+Y[3]^2-1; R[2] := Y[1]*Y[2]+Y[3]*Y[4]; 0 end proc, proc (X, Y, J) J[1 .. 2, 1 .. 4] := 0; J[1, 1] := 2*Y[1]; J[1, 3] := 2*Y[3]; J[2, 1] := Y[2]; J[2, 2] := Y[1]; J[2, 3] := Y[4]; J[2, 4] := Y[3]; 0 end proc, 0, 0, 0, 0]), ( 13 ) = (), ( 12 ) = (), ( 15 ) = ("rkf45"), ( 14 ) = ([0, 0]), ( 18 ) = ([]), ( 19 ) = (0), ( 16 ) = ([proc (X, Y, R) R[1] := Y[1]^2+Y[3]^2-1; R[2] := Y[1]*Y[2]+Y[3]*Y[4]; 0 end proc, proc (X, Y, J) J[1 .. 2, 1 .. 4] := 0; J[1, 1] := 2*Y[1]; J[1, 3] := 2*Y[3]; J[2, 1] := Y[2]; J[2, 2] := Y[1]; J[2, 3] := Y[4]; J[2, 4] := Y[3]; 0 end proc, Array(1..4, {(1) = .0, (2) = .0, (3) = .0, (4) = .0}, datatype = float[8], order = C_order), [-1+x(t)^2+y(t)^2, x(t)*(diff(x(t), t))+y(t)*(diff(y(t), t))]]), ( 17 ) = ([proc (N, X, Y, YP) local Z1, Z2, Z3, Z4, Z5; Z1 := Y[2]^2; Z2 := Y[4]^2; Z3 := Z1+Z2; Z4 := Y[1]^2; Z5 := Y[3]^2+Z4; Z5 := 1/Z5; Y[5] := -(1/10)*(-5*Z3+49*Y[3])*Z5; if N < 1 then return 0 end if; YP[2] := -(1/5)*(5*Z3-49*Y[3])*Y[1]*Z5; YP[4] := -(1/5)*(49*Z4+5*Y[3]*(Z1+Z2))*Z5; YP[1] := Y[2]; YP[3] := Y[4]; 0 end proc, -1, proc (X, Y, R) R[1] := Y[1]^2+Y[3]^2-1; R[2] := Y[1]*Y[2]+Y[3]*Y[4]; 0 end proc, proc (X, Y, J) J[1 .. 2, 1 .. 4] := 0; J[1, 1] := 2*Y[1]; J[1, 3] := 2*Y[3]; J[2, 1] := Y[2]; J[2, 2] := Y[1]; J[2, 3] := Y[4]; J[2, 4] := Y[3]; 0 end proc, 0, 0, 0, 0]), ( 22 ) = (0), ( 23 ) = (0), ( 20 ) = ([]), ( 21 ) = (0), ( 26 ) = (Array(1..0, {})), ( 25 ) = (Array(1..0, {})), ( 24 ) = (0)  ] ))  ] ); _y0 := Array(0..5, {(1) = 0., (2) = 0., (3) = .5000000000000000000000, (4) = -1., (5) = 0.}); _vmap := array( 1 .. 5, [( 1 ) = (5), ( 2 ) = (1), ( 3 ) = (2), ( 4 ) = (3), ( 5 ) = (4)  ] ); _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 _dat[17] <> _dtbl[1][17] then _dtbl[1][17] := _dat[17]; _dtbl[1][10] := _dat[10] end if; 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]; if type(_EnvDSNumericSaveDigits, 'posint') then _dat[4][26] := _EnvDSNumericSaveDigits else _dat[4][26] := Digits end if; _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, lambda(t), x(t), diff(x(t), t), y(t), diff(y(t), 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_dae, ["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_dae, '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_dae, ["last", 'last', "initial", 'initial', "parameters", 'parameters', "initial_and_parameters", 'initial_and_parameters', NULL]) then _xout := convert(x_rkf45_dae, '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_dae), 'string') = rhs(x_rkf45_dae); 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_dae), 'string') = rhs(x_rkf45_dae)) elif _xout = "solnprocedure" then return eval(_solnproc) elif _xout = "sysvars" then return _vars end if; if procname <> unknown then return ('procname')(x_rkf45_dae) else _ndsol := 1; _ndsol := _ndsol; _ndsol := pointto(_dat[2][0]); return ('_ndsol')(x_rkf45_dae) end if end if; try _res := _solnproc(_xout); [seq(_vars[_i+1] = _res[_i+1], _i = 0 .. _n)] catch: error  end try end proc

(3)

r:=s->eval(sqrt(x(t)^2+y(t)^2), dsol1(s)):

plot(r, 0..3, size=[1000,400]);

 

 r(2);

NULL                                  0.999999999444845


Download computation_with_dsolve_exports_new.mw

Maple easily simplifies this expression, but does not show the steps.

restart;
simplify((2+10/(3*sqrt(3)))^(1/3)+(2-10/(3*sqrt(3)))^(1/3));
#   2

But we can solve the example by hand. Let's denote this expression by  a  and cube it using the well-known formula for the cube of the sum of two numbers. Simplifying, we easily arrive at a cubic equation for , which has a single real root a=2 :

restart;
a=(2+10/(3*sqrt(3)))^(1/3)+(2-10/(3*sqrt(3)))^(1/3):
a^3=4+3*(2+10*sqrt(3)*(1/9))^(1/3)*(2-10*sqrt(3)*(1/9))^(1/3)*a;
a^3=4+2*a;
solve(%);

       

 

If you solve this problem in Maple, then here is its full automation:

restart;
with(NumberTheory):
L:=[9,7,10,5,11]:
t1:=10*60+10: t2:=10*60+55: t3:=11*60+58:
n1:=t2-t1; n2:=t3-t2;
S1:=Divisors(n1); S2:=Divisors(n2);
S:=`intersect`(S1,S2);
select(`in`, L, S)[];

 

Note that  gamma  is a protected constant in Maple, not a symbol. Also, the functions  x(tau), t(tau), u(x,t) are not defined correctly.

restart

with(PDEtools)

with(LinearAlgebra)

with(Physics)

with(SolveTools)

undeclare(prime)

`There is no more prime differentiation variable; all derivatives will be displayed as indexed functions`

(1)

evalf(gamma);

.5772156649

(2)

_local(gamma); x(tau) := delta*(tau+1); t := tau; u(x, t) := U(xi)*exp(I*(-k*x+w*(t+1)))

Warning, A new binding for the name `gamma` has been created. The global instance of this name is still accessible using the :- prefix, :-`gamma`.  See ?protect for details.

 

pde := I*(diff(u(x, t), t))+alpha*(diff(u(x, t), `$`(x, 2)))+beta*(diff(u(x, t), x, t))+gamma*u(x, t)*V(xi) = 0

-U(xi)*w*exp(I*(-k*x+w*(tau+1)))-alpha*U(xi)*k^2*exp(I*(-k*x+w*(tau+1)))+beta*U(xi)*k*w*exp(I*(-k*x+w*(tau+1)))+gamma*U(xi)*exp(I*(-k*x+w*(tau+1)))*V(xi) = 0

(3)
 

``

Download non_sense_new.mw

A, B, C, D, E are the vertices and the center of a rectangle. 

restart;
local D:
A:=<a,3>: B:=<x1,2*x1+c>: C:=<5,b>: D:=<x2,2*x2+c>: E:=<x0,y0>:
sys:={E[1]=(A[1]+C[1])/2,E[2]=(A[2]+C[2])/2,E[1]=(B[1]+D[1])/2,E[2]=(B[2]+D[2])/2,(B-A).(D-A)=0,b=2*a+c} assuming real:
solve(sys);

{a = x1, b = -7+2*x1, c = -7, x0 = (1/2)*x1+5/2, x1 = x1, x2 = 5, y0 = -2+x1}, {a = x2, b = -7+2*x2, c = -7, x0 = 5/2+(1/2)*x2, x1 = 5, x2 = x2, y0 = -2+x2}


Edited.

restart;
g:=convert(9.8, rational):
solve({v1^2 = 2*g*(h-h1), (1/2)*g*t^2 = h2, v1*t+(1/2)*g*t^2 = h1}, {h, v1,t}, explicit):
simplify~([%])[];

You can significantly speed up your efforts to select the appropriate parameter values ​​by using the  Explore  command and then moving the corresponding sliders.

circles.mw
Procedure P solves the problem numerically. Formal arguments a, b are the lengths of the legs of a right triangle. The procedure returns a picture of the entire configuration for the user-specified values ​​of a and b. The global variable Sol stores the values ​​of all parameters of this configuration (points of contact, ellipse parameters, etc.):

restart;
P:=proc(a,b)
local R, h, F, s, c, V, F1, F2, G, c1, c2, Tr;
global Sol;
uses plots, plottools;

R:=proc(c,d)
local eq, eq1, eq2, dc;
eq:=(x-r)^2+y^2-r^2=0;
eq1:=c*cos(t); eq2:=d*sin(t);
dc:=implicitdiff(eq, y, x);
solve({eval(eq,[x=eq1,y=eq2]), diff(eq2,t)/diff(eq1,t)=eval(dc,[x=eq1,y=eq2])}, {r,t}, explicit);
eval(r,%[1]);
end proc:

h:=evalf(sqrt(a^2+b^2)):
F:=x^2/ a1^2+y^2/b1^2-1:  s:=b/sqrt(a^2+b^2): c:=a/sqrt(a^2+b^2):
V:=<c,s;-s,c>.<x-x0,y-y0>:
F1:=eval(F,[x=V[1],y=V[2]]):
F2:=solve(F1,y)[2]:
G:=(x+x4)^2+(y-x4)^2-x4^2:

Sol:=fsolve({eval(F1,[x=x1,y=0])=0,eval(implicitdiff(F1,y,x),[x=x1,y=0])=0,eval(F1,[x=x2,y=b/a*x2+b])=0,eval(implicitdiff(F1,y,x),[x=x2,y=b/a*x2+b])=b/a,eval(F1,[x=0,y=x3])=0,eval(implicitdiff(F1,x,y),[x=0,y=x3])=0,eval(G,[x=x5,y=eval(F2,x=x5)])=0,eval(diff(F2,x),x=x5)=eval(implicitdiff(G,y,x),[x=x5,y=eval(F2,x=x5)]),R(a1,b1)=x4},{a1=0..h/2,b1=0..b/2,x1=-a..-a/2,x2=-a..0,x3=b/2..b,x0=-a..0,y0=0..b,x4=0..b/2,x5=-a/2..0});

c1:=eval([x0,y0]+x4*[c,s],Sol):
c2:=eval([x0,y0]-x4*[c,s],Sol):

Tr:=curve([[0,0],[0,b],[-a,0],[0,0]], thickness=2);

display(Tr,implicitplot([eval(F1,Sol),eval(G,Sol),eval((x-c1[1])^2+(y-c1[2])^2=x4^2,Sol),eval((x-c2[1])^2+(y-c2[2])^2=x4^2,Sol)], x=-a..0, y=0..b, color=[blue,red,red,red],thickness=2, scaling=constrained, gridrefine=3), size=[800,500]);

end proc:


Examples of use:

P(2,1);
Sol;

                  


Using procedure P it is easy to trace how the configuration changes with the change in one of the parameters (b changes from 1 to 4):

plots:-animate(P,[a,1], a=1..4, frames=61, size=[800,500]);
               

In each of these two problems, the areas to be calculated are symmetrical about the horizontal axis. Therefore, it is sufficient to calculate only the halves of these areas, which are shaded in the pictures. The areas of these figures are easily found using the well-known formula for area in polar coordinates. It is more difficult to shade these areas. I have not found an easier way than replacing these areas with polygons with a sufficiently large number of sides. In the first problem, the area of ​​the entire figure is equal to twice the area of ​​the green figure. In the second problem, the area is equal to twice the sum of the areas of the pink and blue figures.

restart;
with(plots): with(plottools):
r1 := theta->-6*cos(theta):
r2 := theta->2-2*cos(theta):
r3 := theta->2+2*cos(theta):
t1:=solve(r3(theta)=3);
t2:=solve(r1(theta)=r2(theta));
P1:=plot([r1,r2], 0..2*Pi, color=[red,blue], thickness=2,coords=polar):
P2:=plot([3,r3], 0..2*Pi, color=[red,blue], thickness=2,coords=polar):
L:=line([0,0],[r1(t2)*cos(t2),r1(t2)*sin(t2)]):
Shade1:=polygon([seq([r3(s)*cos(s),r3(s)*sin(s)], s=0..evalf(t1),0.01),seq([3*cos(s),3*sin(s)], s=evalf(t1)..0,-0.01)], color="LightGreen"):
Shade2:=polygon([seq([r1(s)*cos(s),r1(s)*sin(s)], s=evalf(Pi/2)..evalf(t2),0.01),[0,0]], color=pink):
Shade3:=polygon([[0,0],[r2(t2)*cos(t2),r2(t2)*sin(t2)],seq([r2(s)*cos(s),r2(s)*sin(s)], s=evalf(2*Pi/3)..evalf(Pi),0.005)], color="LightBlue"):
display(P2,Shade1, scaling=constrained); # plot to the problem 1
display(P1,L,Shade2,Shade3, scaling=constrained); # plot to the problem 2
2*(1/2*int(r3(theta)^2-3^2, theta=0..t1)); # area of the region in the problem 1
evalf(%);
2*(1/2*int(r1(theta)^2, theta=Pi/2..t2)+1/2*int(r2(theta)^2, theta=t2..Pi)); # area of the region in the problem 2
evalf(%);

                             

                                                        

Download areas.mw

To calculate the hiker's coordinates, it is convenient to specify the points by the corresponding radius vectors. The problem is reduced to solving a system of two equations with 2 unknowns (the hiker is at point  ). The system may have several solutions, and to choose the right one, we check with the determinant that the shortest turns of the vectors  MS  and  MК  before aligning with the vectors MF and  MS  must occur counterclockwise. Procedure P returns the coordinates of the hiker (point M).

restart;
P:=proc(F::Vector,S::Vector,K::Vector,alpha,beta)
local M, Sol, a, b;
uses LinearAlgebra;
a:=evalf(alpha); b:=evalf(beta);
M:=<x,y>: 
Sol:=[solve({((F-M).(S-M))/sqrt((F-M).(F-M))/sqrt((S-M).(S-M))=cos(a),((K-M).(S-M))/sqrt((K-M).(K-M))/sqrt((S-M).(S-M))=cos(b)}, {x,y}, explicit)] assuming real;
select(t->Determinant(<eval(S-M,t) | eval(F-M,t)>)>0 and Determinant(<eval(K-M,t) | eval(S-M,t)>)>0, Sol)[];
end proc:


Example: calculation and visualization:

P(<1,2>,<3,4>,<7,1>,Pi/8, Pi/6);
M:=eval([x,y],%):
F:=[1,2]: S:=[3,4]: K:=[7,1]:
with(plots): with(plottools):
FS:=line(F,S,color=red): SK:=line(K,S,color=red):
MF:=line(M,F,linestyle=3,color=blue): MS:=line(M,S,linestyle=3,color=blue):
MK:=line(M,K,linestyle=3,color=blue):
T:=textplot([[F[],"F"],[S[],"S"],[K[],"K"],[M[],"M"]], font=[times,18], align={left,below}):
Points:=pointplot([F,S,K,M], color=[red$3,blue], symbol=solidcircle, symbolsize=15):
display(FS,SK,MF,MS,MK,T,Points, scaling=constrained);

                  

 

Let us denote by   the angle between the sides   and  . Using the law of cosines, we express the side  . By writing the doubled area of ​​the triangle in two ways, it is easy to find the height  h  dropped to  . Using the similarity of triangles, we find the side of the inscribed square  as a function of  .

restart;
a:=3: b:=4: 
c:=sqrt(a^2+b^2-2*a*b*cos(x)): 
h:=solve(h*c=a*b*sin(x), h);
d:=solve((h-d)/h=d/c, d); # The target function 
Optimization:-Maximize(d, {x>=0, x<=Pi}); # The answer

                      

Explanation: Triangle DBE is similar to triangle ABC with a similarity coefficient = BP/BQ

                           

 

The recursive procedure named  P  finds the list of values  x[n], y[n]  ​​for given  x0, y0, n .
As an example, the first 11 values ​​were found and the first 4 points were plotted:
 

restart;

P:=proc(x0,y0,n)
local Q;
option remember;
if n=0 then [x0,y0] else
Q:=P(x0,y0,n-1);
[Q[2]*Q[1]+2,(1/2)*Q[1]+Q[2]+1] fi;
end proc:

S:=seq(P(1,2,n), n=0..10):
A:=plots:-pointplot([S][1..4], color=red, symbol=solidcircle, symbolsize=15):
B:=plot([S][1..4], linestyle=3, color=blue):
plots:-display(A,B, view=[0..110,0..16]);

 

 


 

Download proc1.mw

Edited.


 

restart;
S := solve(x^2-2*x+1 > 0, x);
`union`(S);

S := solve(x^2-2*x+1 >= 0, x);
if S=x then convert(real, RealRange) fi;

S := solve(x^2-2*x+1 < 0, x);
if S=NULL then {} fi;

 

RealRange(-infinity, Open(1)), RealRange(Open(1), infinity)

 

`union`(RealRange(-infinity, Open(1)), RealRange(Open(1), infinity))

 

x

 

RealRange(-infinity, infinity)

 

 

{}

(1)

 


 

Download intervals.mw

restart;
l1:=<a,b,c>: l2:=<a,b,c>:
if LinearAlgebra:-Equal(l1, l2) then 
print("Equal Vectors");
end if:

# or
if andmap(t->t=0, l1-l2) then 
print("Equal Vectors");
end if:
2 3 4 5 6 7 8 Last Page 4 of 287