Carl Love

Carl Love

28160 Reputation

25 Badges

14 years, 9 days
Himself
Wayland, Massachusetts, United States
My name was formerly Carl Devore.

MaplePrimes Activity


These are replies submitted by Carl Love

@puckie When I execute your worksheet, it works perfectly for me. I didn't make any changes. Try Execute -> Worksheet from the Edit menu.

@puckie When I execute your worksheet, it works perfectly for me. I didn't make any changes. Try Execute -> Worksheet from the Edit menu.

@puckie I didn't see any attached file. Please attach the worksheet itself. Just from your description, I suspect that in the definition of Matrix M, you have F[i](V[i]) instead of the correct F[i](V(j)).

@puckie I didn't see any attached file. Please attach the worksheet itself. Just from your description, I suspect that in the definition of Matrix M, you have F[i](V[i]) instead of the correct F[i](V(j)).

Perhaps this is more clear:

restart:
Digits:= 200:
Order:= 20:
S:= convert(asympt(ln(n!), n), polynom);

evalf[10](evalf(eval(S, n= (1024+83/99)*10^95)/ln(10)));

Perhaps this is more clear:

restart:
Digits:= 200:
Order:= 20:
S:= convert(asympt(ln(n!), n), polynom);

evalf[10](evalf(eval(S, n= (1024+83/99)*10^95)/ln(10)));

Bravo. This is a beautiful and complicated geometric construction done entirely in Maple's geometry package, with step-by-step plots.

@erik10 If you show an example of each situation, I can explain why Maple responded the way that it did.

@erik10 If you show an example of each situation, I can explain why Maple responded the way that it did.

1. Remove all elements of list U from list A:

remove(`in`, A, U);

But searching a list is linear time whereas searching a set is logarithmic time because sets are stored sorted. So the above has time complexity O(|A|*|U|), but a trivial conversion of U to a set lowers the time complexity to O(|A|*ln(|U|)). This makes a huge difference in time when U is large. So, change the above command to

remove(`in`, A, {U[]});

And do likewise for all the other alternatives for removing list U from list A: Replace U with {U[]}.

2. Merge two lists into a list of pairs:

Use zip(`[]`, A, B) instead of zip((a,b)-> [a,b], A, B). This yields about 40% savings because `[]` is a kernel procedure whereas (a,b)-> [a,b] is, of course, user-defined.

@Markiyan Hirnyk Well, if we're having a competition for shortness,

nops([StringTools:-SearchAll("5", sprintf("%q", $1..2013))]);

@Markiyan Hirnyk Well, if we're having a competition for shortness,

nops([StringTools:-SearchAll("5", sprintf("%q", $1..2013))]);

@CarlitosVillalbaGalea I does mean the imaginary unit, sqrt(-1), but in the example above it cancels, leaving only real values. The cancellation can usually not be realized algebraically, but it can sometimes be realized through a conversion to trigonometric functions. I found a slightly simpler example:

 

(**)

p:= x^3-3*x+1;

x^3-3*x+1

(1)
(**)

fsolve(p);

-1.879385242, .3472963553, 1.532088886

(2)
(**)

discrim(p,x);

81

(3)

The discriminant is positive. There are three real roots.

(**)

Sol:= [solve](p);

[(1/2)*(-4+(4*I)*3^(1/2))^(1/3)+2/(-4+(4*I)*3^(1/2))^(1/3), -(1/4)*(-4+(4*I)*3^(1/2))^(1/3)-1/(-4+(4*I)*3^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/2)*(-4+(4*I)*3^(1/2))^(1/3)-2/(-4+(4*I)*3^(1/2))^(1/3)), -(1/4)*(-4+(4*I)*3^(1/2))^(1/3)-1/(-4+(4*I)*3^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/2)*(-4+(4*I)*3^(1/2))^(1/3)-2/(-4+(4*I)*3^(1/2))^(1/3))]

(4)
(**)

convert(Sol, trig);

[(1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))+(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi)), -(1/4)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/4)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))+((1/2)*I)*3^(1/2)*((1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))), -(1/4)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/4)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))-((1/2)*I)*3^(1/2)*((1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi)))]

(5)
(**)

simplify(%);

[2*cos((2/9)*Pi), -cos((2/9)*Pi)-3^(1/2)*sin((2/9)*Pi), -cos((2/9)*Pi)+3^(1/2)*sin((2/9)*Pi)]

(6)

All imaginary parts cancelled.

(**)

evalf(%);

[1.532088886, -1.879385242, .3472963559]

(7)

Same roots as with fsolve.

 

Now do it with your Matrix.

(**)

A4:= LinearAlgebra:-BandMatrix([[a||(1..3)], [-a1, -b1-a2, -b2-a3, -b3], [b||(1..3)]]);

Matrix(4, 4, {(1, 1) = -a1, (1, 2) = b1, (1, 3) = 0, (1, 4) = 0, (2, 1) = a1, (2, 2) = -b1-a2, (2, 3) = b2, (2, 4) = 0, (3, 1) = 0, (3, 2) = a2, (3, 3) = -b2-a3, (3, 4) = b3, (4, 1) = 0, (4, 2) = 0, (4, 3) = a3, (4, 4) = -b3})

(8)
(**)

LinearAlgebra:-CharacteristicPolynomial(A4,x);

x^4+(b3+b2+a3+b1+a2+a1)*x^3+(b2*b3+b3*b1+b3*a2+b3*a1+b1*b2+b2*a1+a3*b1+a3*a2+a3*a1+a1*a2)*x^2+(b1*b2*b3+b3*b2*a1+b3*a1*a2+a1*a2*a3)*x

(9)
(**)

p:= collect(expand(%/x),x);

x^3+(b3+b2+a3+b1+a2+a1)*x^2+(b2*b3+b3*b1+b3*a2+b3*a1+b1*b2+b2*a1+a3*b1+a3*a2+a3*a1+a1*a2)*x+b1*b2*b3+b3*b2*a1+b3*a1*a2+a1*a2*a3

(10)
(**)

d:= discrim(p,x);

-2*a2^3*a1^3-2*b3^3*a1^3-2*a3^3*a1^3+a2^2*a1^4+b3^2*a1^4+b2^2*a1^4+a3^2*a1^4+a2^4*a1^2+a3^4*a1^2+b2^4*a1^2+b3^4*a1^2-2*b2^3*a1^3+6*a2*b2*b1*a1^3-8*b1*b2*b3*a1^3+4*b2*b3*a2*a1^3-4*b2*b3*a3*a1^3+2*a2^3*a3*a1^2+2*a2^3*b1*a1^2+4*a2^3*b2*a1^2+2*a2^3*b3*a1^2-6*a2^2*a3^2*a1^2+a2^2*b1^2*a1^2+6*a2^2*b2^2*a1^2-6*a2^2*b3^2*a1^2+2*a2*a3^3*a1^2+4*a2*b2^3*a1^2+2*a2*b3^3*a1^2-6*a3^3*b1*a1^2+4*a3^3*b2*a1^2+6*a3^2*b1^2*a1^2+2*b2*b3^3*a1^2-2*a2^4*a3*a1-2*a2^4*b3*a1+2*a2^3*a3^2*a1+2*a2^3*b3^2*a1+2*a2^2*a3^3*a1+2*a2^2*b3^3*a1-2*a2*a3^4*a1-2*a2*b3^4*a1+2*a3^4*b1*a1-6*a3^3*b1^2*a1+2*b1*a2^2*a1^3-6*a2*b2^2*a1^3-6*b2*a3^2*a1^3-6*a3*b2^2*a1^3+4*b1*b2^2*a1^3+4*a3^2*b1*a1^3+2*a3^2*a2*a1^3+2*b3*a2^2*a1^3+2*a3*a2^2*a1^3-6*a3*b3^2*a1^3+2*b2*b3^2*a1^3+4*b3^2*b1*a1^3+2*b3^2*a2*a1^3-2*b3*a2*a1^4+4*a3^3*b3*a1^2-2*a3*a2*a1^4+4*a3^2*b1^3*a1+4*b1^3*b2^2*a1+4*b1^3*b3^2*a1-6*b1^2*b2^3*a1-6*b1^2*b3^3*a1+2*b1*b2^4*a1+2*b1*b3^4*a1-2*b2^4*b3*a1+2*b2^3*b3^2*a1+2*b2^2*b3^3*a1-2*b2*b3^4*a1-6*a2^2*b2*a1^3+2*a3*b3*a1^4-2*b2*b3*a1^4+2*b2^2*b3*a1^3+2*b2*a3*a1^4-6*b3*a3^2*a1^3+2*a2*b2*a1^4+6*a3^2*b2^2*a1^2+6*a3^2*b3^2*a1^2+4*a3*b2^3*a1^2+4*a3*b3^3*a1^2+6*b1^2*b2^2*a1^2+6*b1^2*b3^2*a1^2-6*b1*b2^3*a1^2-6*b1*b3^3*a1^2+2*b2^3*b3*a1^2-6*b2^2*b3^2*a1^2-4*a2*b1*b2*b3^3-2*a3^3*b1*b2*b3+10*a3^2*b1^2*b2*b3-6*a3^2*b1*b2^2*b3-6*a3^2*b1*b2*b3^2-4*a3*b1^3*b2*b3+8*a3*b1^2*b2^2*b3+8*a3*b1^2*b2*b3^2-6*a3*b1*b2^3*b3-4*a3*b1*b2^2*b3^2-6*a3*b1*b2*b3^3+2*a2^3*a3*b1*b2+8*a2^3*a3*b1*b3+6*a2^3*a3*b2*b3-2*a2^3*b1*b2*b3-2*a2^2*a3^2*b1*b2-18*a2^2*a3^2*b1*b3-2*a2^2*a3^2*b2*b3+6*a2^2*a3*b1^2*b2+12*a2^2*a3*b1^2*b3+4*a2^2*a3*b1*b2^2-18*a2^2*a3*b1*b3^2+6*a2^2*a3*b2^2*b3-10*a2^2*a3*b2*b3^2-6*a2^2*b1^2*b2*b3-6*a2^2*b1*b2^2*b3+10*a2^2*b1*b2*b3^2+6*a2*a3^3*b1*b2+8*a2*a3^3*b1*b3+2*a2*a3^3*b2*b3-10*a2*a3^2*b1^2*b2-18*a2*a3^2*b1^2*b3+6*a2*a3^2*b1*b2^2+12*a2*a3^2*b1*b3^2+4*a2*a3^2*b2^2*b3+6*a2*a3^2*b2*b3^2+6*a2*a3*b1^3*b2+8*a2*a3*b1^3*b3-2*a2*a3*b1^2*b2^2-18*a2*a3*b1^2*b3^2+2*a2*a3*b1*b2^3+8*a2*a3*b1*b3^3+2*a2*a3*b2^3*b3-2*a2*a3*b2^2*b3^2+6*a2*a3*b2*b3^3-6*a2*b1^3*b2*b3-4*a2*b1^2*b2^2*b3+8*a2*b1^2*b2*b3^2-6*a2*b1*b2^3*b3+8*a2*b1*b2^2*b3^2+a2^4*a3^2+a2^4*b3^2-2*a2^3*a3^3-2*a2^3*b3^3+a2^2*a3^4+a2^2*b3^4+a3^4*b1^2-2*a3^3*b1^3+a3^2*b1^4+b1^4*b2^2+b1^4*b3^2-2*b1^3*b2^3-2*b1^3*b3^3+b1^2*b2^4+b1^2*b3^4+b2^4*b3^2-2*b2^3*b3^3+b2^2*b3^4+4*a3^3*b1^2*b2+4*a3^3*b1^2*b3-6*a3^2*b1^3*b2-6*a3^2*b1^3*b3+6*a3^2*b1^2*b2^2+6*a3^2*b1^2*b3^2+a3^2*b2^2*b3^2+2*a3*b1^4*b2+2*a3*b1^4*b3-6*a3*b1^3*b2^2-6*a3*b1^3*b3^2+4*a3*b1^2*b2^3+4*a3*b1^2*b3^3+2*a3*b2^3*b3^2+2*a3*b2^2*b3^3-2*b1^4*b2*b3+2*b1^3*b2^2*b3+2*b1^3*b2*b3^2+2*b1^2*b2^3*b3-6*b1^2*b2^2*b3^2+2*b1^2*b2*b3^3-2*b1*b2^4*b3+2*b1*b2^3*b3^2+2*b1*b2^2*b3^3-2*b1*b2*b3^4+2*a2^4*a3*b3+4*a2^3*a3^2*b1+2*a2^3*a3^2*b2-6*a2^3*a3^2*b3-6*a2^3*a3*b3^2+4*a2^3*b1*b3^2+4*a2^3*b2*b3^2-6*a2^2*a3^3*b1+2*a2^2*a3^3*b2+4*a2^2*a3^3*b3+6*a2^2*a3^2*b1^2+a2^2*a3^2*b2^2+6*a2^2*a3^2*b3^2+4*a2^2*a3*b3^3+a2^2*b1^2*b2^2+6*a2^2*b1^2*b3^2-6*a2^2*b1*b3^3+6*a2^2*b2^2*b3^2-6*a2^2*b2*b3^3+2*a2*a3^4*b1-6*a2*a3^3*b1^2+4*a2*a3^2*b1^3+2*a2*b1^3*b2^2+4*a2*b1^3*b3^2+2*a2*b1^2*b2^3-6*a2*b1^2*b3^3+2*a2*b1*b3^4+4*a2*b2^3*b3^2-6*a2*b2^2*b3^3+2*a2*b2*b3^4+12*a3*b1^2*b2*a1^2+12*a3*b1^2*b3*a1^2-18*a3*b1*b2^2*a1^2-18*a3*b1*b3^2*a1^2+8*a3*b2*b3^2*a1^2-12*b1^2*b2*b3*a1^2+6*b1*b2^2*b3*a1^2+6*b1*b2*b3^2*a1^2+8*a3^3*b1*b2*a1+8*a3^3*b1*b3*a1-2*a3^3*b2*b3*a1-18*a3^2*b1^2*b2*a1-18*a3^2*b1^2*b3*a1+12*a3^2*b1*b2^2*a1+12*a3^2*b1*b3^2*a1-6*a3^2*b2^2*b3*a1-6*a3^2*b2*b3^2*a1+8*a3*b1^3*b2*a1+8*a3*b1^3*b3*a1-18*a3*b1^2*b2^2*a1-18*a3*b1^2*b3^2*a1+8*a3*b1*b2^3*a1+8*a3*b1*b3^3*a1-6*a3*b2^3*b3*a1-6*b1*b3*a2*a1^3-6*b1*a3*a2*a1^3+8*b2*a3*b1*a1^3-4*b2*a3*a2*a1^3+8*a3*b3*b1*a1^3+4*a3*b3*a2*a1^3+8*a3*b3*b2^2*a1^2+10*a3^2*b3*b2*a1^2-18*a3^2*b3*b1*a1^2+6*a3^2*b3*a2*a1^2-6*a2^3*a3*b1*a1-6*a2^3*a3*b2*a1+4*a2^3*a3*b3*a1+2*a2^3*b1*b2*a1-6*a2^3*b1*b3*a1-8*a2^3*b2*b3*a1+8*a2^2*a3^2*b1*a1-4*a2^2*a3^2*b2*a1+6*a2^2*a3^2*b3*a1-6*a2^2*a3*b1^2*a1-6*a2^2*a3*b2^2*a1+6*a2^2*a3*b3^2*a1+4*a2^2*b1^2*b2*a1-6*a2^2*b1^2*b3*a1+6*a2^2*b1*b2^2*a1+8*a2^2*b1*b3^2*a1-12*a2^2*b2^2*b3*a1+6*a2^2*b2*b3^2*a1-4*a2*a3^3*b1*a1-4*a3*b2^2*b3^2*a1-6*a3*b2*b3^3*a1-8*b1^3*b2*b3*a1+6*b1^2*b2^2*b3*a1+6*b1^2*b2*b3^2*a1+4*b1*b2^3*b3*a1-12*b1*b2^2*b3^2*a1+4*b1*b2*b3^3*a1-4*a2^2*a3*b1*a1^2+8*a2^2*a3*b2*a1^2-12*a2^2*a3*b3*a1^2-2*a2^2*b1*b2*a1^2-4*a2^2*b1*b3*a1^2+6*a2^2*b2*b3*a1^2+8*a2*a3^2*b1*a1^2+8*a2*a3^2*b2*a1^2-6*a2*a3*b1^2*a1^2+10*a2*a3*b2^2*a1^2+6*a2*a3*b3^2*a1^2+6*a2*b1^2*b2*a1^2-6*a2*b1^2*b3*a1^2-10*a2*b1*b2^2*a1^2+8*a2*b1*b3^2*a1^2+6*a2*b2^2*b3*a1^2-12*a2*b2*b3^2*a1^2-18*a3^2*b1*b2*a1^2-6*a2*a3^3*b2*a1-8*a2*a3^3*b3*a1+10*a2*a3^2*b1^2*a1-6*a2*a3^2*b2^2*a1-12*a2*a3^2*b3^2*a1-2*a2*a3*b1^3*a1-2*a2*a3*b2^3*a1-8*a2*a3*b3^3*a1+2*a2*b1^3*b2*a1-2*a2*b1^3*b3*a1-2*a2*b1^2*b2^2*a1+10*a2*b1^2*b3^2*a1+6*a2*b1*b2^3*a1-4*a2*b1*b3^3*a1-8*a2*b2^3*b3*a1+6*a2*b2^2*b3^2*a1+4*a2*b2*b3^3*a1+8*a2^2*a3*b1*b2*b3+8*a2*a3^2*b1*b2*b3-2*a2*a3*b1^2*b2*b3-6*a2*a3*b1*b2^2*b3-2*a2*a3*b1*b2*b3^2-6*a2*a3*b1*b2*b3*a1-6*a2^2*a3*b1*b2*a1+16*a2^2*a3*b1*b3*a1+2*a2^2*a3*b2*b3*a1-8*a2^2*b1*b2*b3*a1-2*a2*a3^2*b1*b2*a1-12*a2*a3^2*b1*b3*a1-8*a2*a3^2*b2*b3*a1+8*a2*a3*b1^2*b2*a1+20*a2*a3*b1^2*b3*a1+8*a2*a3*b1*b2^2*a1-12*a2*a3*b1*b3^2*a1-8*a2*a3*b2^2*b3*a1+2*a2*a3*b2*b3^2*a1-8*a2*b1^2*b2*b3*a1+2*a2*b1*b2^2*b3*a1-4*a2*b1*b2*b3^2*a1+20*a3^2*b1*b2*b3*a1-12*a3*b1^2*b2*b3*a1-4*a3*b3*a2*b2*a1^2-12*a3*b3*b1*b2*a1^2+16*a3*b1*b2^2*b3*a1+16*a3*b1*b2*b3^2*a1-2*a2*a3*b1*b2*a1^2+16*a2*a3*b1*b3*a1^2+2*a2*b1*b2*b3*a1^2

(11)

It would be extremely difficult to determine in general when the discriminant is positive, hence when the roots are real.

 

Set all parameters to 1.

(**)

Evals:= [a||(1..3), b||(1..3)] =~ [1$6];

[a1 = 1, a2 = 1, a3 = 1, b1 = 1, b2 = 1, b3 = 1]

(12)
(**)

fsolve(eval(p, Evals));

-3.41421356237310, -2., -.585786437626905

(13)
(**)

eval(d, Evals);

32

(14)
(**)

 

 

 

Download cubic.mws

@CarlitosVillalbaGalea I does mean the imaginary unit, sqrt(-1), but in the example above it cancels, leaving only real values. The cancellation can usually not be realized algebraically, but it can sometimes be realized through a conversion to trigonometric functions. I found a slightly simpler example:


(**)

p:= x^3-3*x+1;

x^3-3*x+1

(1)
(**)

fsolve(p);

-1.87938524157182, .347296355333861, 1.53208888623796

(2)
(**)

discrim(p,x);

81

(3)

The discriminant is positive. There are three real roots.

(**)

Sol:= [solve](p);

[(1/2)*(-4+(4*I)*3^(1/2))^(1/3)+2/(-4+(4*I)*3^(1/2))^(1/3), -(1/4)*(-4+(4*I)*3^(1/2))^(1/3)-1/(-4+(4*I)*3^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/2)*(-4+(4*I)*3^(1/2))^(1/3)-2/(-4+(4*I)*3^(1/2))^(1/3)), -(1/4)*(-4+(4*I)*3^(1/2))^(1/3)-1/(-4+(4*I)*3^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/2)*(-4+(4*I)*3^(1/2))^(1/3)-2/(-4+(4*I)*3^(1/2))^(1/3))]

(4)
(**)

convert(Sol, trig);

[(1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))+(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi)), -(1/4)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/4)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))+((1/2)*I)*3^(1/2)*((1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))), -(1/4)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/4)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi))-((1/2)*I)*3^(1/2)*((1/2)*4^(1/2)*(cos((2/9)*Pi)+I*sin((2/9)*Pi))-(1/2)*4^(1/2)*(cos((2/9)*Pi)-I*sin((2/9)*Pi)))]

(5)
(**)

simplify(%);

[2*cos((2/9)*Pi), -3^(1/2)*sin((2/9)*Pi)-cos((2/9)*Pi), 3^(1/2)*sin((2/9)*Pi)-cos((2/9)*Pi)]

(6)

All imaginary parts cancelled.

(**)

evalf(%);

[1.53208888623796, -1.87938524157182, .347296355333861]

(7)

Same roots as with fsolve.

 

Now do it with your Matrix.

(**)

A4:= LinearAlgebra:-BandMatrix([[a||(1..3)], [-a1, -b1-a2, -b2-a3, -b3], [b||(1..3)]]);

Matrix(%id = 18446744073913204870)

(8)
(**)

LinearAlgebra:-CharacteristicPolynomial(A4,x);

x^4+(b3+b2+a3+b1+a2+a1)*x^3+(a1*a2+a1*a3+a1*b2+a1*b3+a2*a3+a2*b3+a3*b1+b1*b2+b1*b3+b2*b3)*x^2+(a1*a2*a3+a1*a2*b3+a1*b2*b3+b1*b2*b3)*x

(9)
(**)

p:= collect(expand(%/x),x);

x^3+(b3+b2+a3+b1+a2+a1)*x^2+(a1*a2+a1*a3+a1*b2+a1*b3+a2*a3+a2*b3+a3*b1+b1*b2+b1*b3+b2*b3)*x+a1*a2*a3+a1*a2*b3+a1*b2*b3+b1*b2*b3

(10)
(**)

d:= discrim(p,x);

a1^4*a2^2-2*a1^4*a2*a3+2*a1^4*a2*b2-2*a1^4*a2*b3+a1^4*a3^2+2*a1^4*a3*b2+2*a1^4*a3*b3+a1^4*b2^2-2*a1^4*b2*b3+a1^4*b3^2-2*a1^3*a2^3+2*a1^3*a2^2*a3+2*a1^3*a2^2*b1-6*a1^3*a2^2*b2+2*a1^3*a2^2*b3+2*a1^3*a2*a3^2-6*a1^3*a2*a3*b1-4*a1^3*a2*a3*b2+4*a1^3*a2*a3*b3+6*a1^3*a2*b1*b2-6*a1^3*a2*b1*b3-6*a1^3*a2*b2^2+4*a1^3*a2*b2*b3+2*a1^3*a2*b3^2-2*a1^3*a3^3+4*a1^3*a3^2*b1-6*a1^3*a3^2*b2-6*a1^3*a3^2*b3+8*a1^3*a3*b1*b2+8*a1^3*a3*b1*b3-6*a1^3*a3*b2^2-4*a1^3*a3*b2*b3-6*a1^3*a3*b3^2+4*a1^3*b1*b2^2-8*a1^3*b1*b2*b3+4*a1^3*b1*b3^2-2*a1^3*b2^3+2*a1^3*b2^2*b3+2*a1^3*b2*b3^2-2*a1^3*b3^3+a1^2*a2^4+2*a1^2*a2^3*a3+2*a1^2*a2^3*b1+4*a1^2*a2^3*b2+2*a1^2*a2^3*b3-6*a1^2*a2^2*a3^2-4*a1^2*a2^2*a3*b1+8*a1^2*a2^2*a3*b2-12*a1^2*a2^2*a3*b3+a1^2*a2^2*b1^2-2*a1^2*a2^2*b1*b2-4*a1^2*a2^2*b1*b3+6*a1^2*a2^2*b2^2+6*a1^2*a2^2*b2*b3-6*a1^2*a2^2*b3^2+2*a1^2*a2*a3^3+8*a1^2*a2*a3^2*b1+8*a1^2*a2*a3^2*b2+6*a1^2*a2*a3^2*b3-6*a1^2*a2*a3*b1^2-2*a1^2*a2*a3*b1*b2+16*a1^2*a2*a3*b1*b3+10*a1^2*a2*a3*b2^2-4*a1^2*a2*a3*b2*b3+6*a1^2*a2*a3*b3^2+6*a1^2*a2*b1^2*b2-6*a1^2*a2*b1^2*b3-10*a1^2*a2*b1*b2^2+2*a1^2*a2*b1*b2*b3+8*a1^2*a2*b1*b3^2+4*a1^2*a2*b2^3+6*a1^2*a2*b2^2*b3-12*a1^2*a2*b2*b3^2+2*a1^2*a2*b3^3+a1^2*a3^4-6*a1^2*a3^3*b1+4*a1^2*a3^3*b2+4*a1^2*a3^3*b3+6*a1^2*a3^2*b1^2-18*a1^2*a3^2*b1*b2-18*a1^2*a3^2*b1*b3+6*a1^2*a3^2*b2^2+10*a1^2*a3^2*b2*b3+6*a1^2*a3^2*b3^2+12*a1^2*a3*b1^2*b2+12*a1^2*a3*b1^2*b3-18*a1^2*a3*b1*b2^2-12*a1^2*a3*b1*b2*b3-18*a1^2*a3*b1*b3^2+4*a1^2*a3*b2^3+8*a1^2*a3*b2^2*b3+8*a1^2*a3*b2*b3^2+4*a1^2*a3*b3^3+6*a1^2*b1^2*b2^2-12*a1^2*b1^2*b2*b3+6*a1^2*b1^2*b3^2-6*a1^2*b1*b2^3+6*a1^2*b1*b2^2*b3+6*a1^2*b1*b2*b3^2-6*a1^2*b1*b3^3+a1^2*b2^4+2*a1^2*b2^3*b3-6*a1^2*b2^2*b3^2+2*a1^2*b2*b3^3+a1^2*b3^4-2*a1*a2^4*a3-2*a1*a2^4*b3+2*a1*a2^3*a3^2-6*a1*a2^3*a3*b1-6*a1*a2^3*a3*b2+4*a1*a2^3*a3*b3+2*a1*a2^3*b1*b2-6*a1*a2^3*b1*b3-8*a1*a2^3*b2*b3+2*a1*a2^3*b3^2+2*a1*a2^2*a3^3+8*a1*a2^2*a3^2*b1-4*a1*a2^2*a3^2*b2+6*a1*a2^2*a3^2*b3-6*a1*a2^2*a3*b1^2-6*a1*a2^2*a3*b1*b2+16*a1*a2^2*a3*b1*b3-6*a1*a2^2*a3*b2^2+2*a1*a2^2*a3*b2*b3+6*a1*a2^2*a3*b3^2+4*a1*a2^2*b1^2*b2-6*a1*a2^2*b1^2*b3+6*a1*a2^2*b1*b2^2-8*a1*a2^2*b1*b2*b3+8*a1*a2^2*b1*b3^2-12*a1*a2^2*b2^2*b3+6*a1*a2^2*b2*b3^2+2*a1*a2^2*b3^3-2*a1*a2*a3^4-4*a1*a2*a3^3*b1-6*a1*a2*a3^3*b2-8*a1*a2*a3^3*b3+10*a1*a2*a3^2*b1^2-2*a1*a2*a3^2*b1*b2-12*a1*a2*a3^2*b1*b3-6*a1*a2*a3^2*b2^2-8*a1*a2*a3^2*b2*b3-12*a1*a2*a3^2*b3^2-2*a1*a2*a3*b1^3+8*a1*a2*a3*b1^2*b2+20*a1*a2*a3*b1^2*b3+8*a1*a2*a3*b1*b2^2-6*a1*a2*a3*b1*b2*b3-12*a1*a2*a3*b1*b3^2-2*a1*a2*a3*b2^3-8*a1*a2*a3*b2^2*b3+2*a1*a2*a3*b2*b3^2-8*a1*a2*a3*b3^3+2*a1*a2*b1^3*b2-2*a1*a2*b1^3*b3-2*a1*a2*b1^2*b2^2-8*a1*a2*b1^2*b2*b3+10*a1*a2*b1^2*b3^2+6*a1*a2*b1*b2^3+2*a1*a2*b1*b2^2*b3-4*a1*a2*b1*b2*b3^2-4*a1*a2*b1*b3^3-8*a1*a2*b2^3*b3+6*a1*a2*b2^2*b3^2+4*a1*a2*b2*b3^3-2*a1*a2*b3^4+2*a1*a3^4*b1-6*a1*a3^3*b1^2+8*a1*a3^3*b1*b2+8*a1*a3^3*b1*b3-2*a1*a3^3*b2*b3+4*a1*a3^2*b1^3-18*a1*a3^2*b1^2*b2-18*a1*a3^2*b1^2*b3+12*a1*a3^2*b1*b2^2+20*a1*a3^2*b1*b2*b3+12*a1*a3^2*b1*b3^2-6*a1*a3^2*b2^2*b3-6*a1*a3^2*b2*b3^2+8*a1*a3*b1^3*b2+8*a1*a3*b1^3*b3-18*a1*a3*b1^2*b2^2-12*a1*a3*b1^2*b2*b3-18*a1*a3*b1^2*b3^2+8*a1*a3*b1*b2^3+16*a1*a3*b1*b2^2*b3+16*a1*a3*b1*b2*b3^2+8*a1*a3*b1*b3^3-6*a1*a3*b2^3*b3-4*a1*a3*b2^2*b3^2-6*a1*a3*b2*b3^3+4*a1*b1^3*b2^2-8*a1*b1^3*b2*b3+4*a1*b1^3*b3^2-6*a1*b1^2*b2^3+6*a1*b1^2*b2^2*b3+6*a1*b1^2*b2*b3^2-6*a1*b1^2*b3^3+2*a1*b1*b2^4+4*a1*b1*b2^3*b3-12*a1*b1*b2^2*b3^2+4*a1*b1*b2*b3^3+2*a1*b1*b3^4-2*a1*b2^4*b3+2*a1*b2^3*b3^2+2*a1*b2^2*b3^3-2*a1*b2*b3^4+a2^4*a3^2+2*a2^4*a3*b3+a2^4*b3^2-2*a2^3*a3^3+4*a2^3*a3^2*b1+2*a2^3*a3^2*b2-6*a2^3*a3^2*b3+2*a2^3*a3*b1*b2+8*a2^3*a3*b1*b3+6*a2^3*a3*b2*b3-6*a2^3*a3*b3^2-2*a2^3*b1*b2*b3+4*a2^3*b1*b3^2+4*a2^3*b2*b3^2-2*a2^3*b3^3+a2^2*a3^4-6*a2^2*a3^3*b1+2*a2^2*a3^3*b2+4*a2^2*a3^3*b3+6*a2^2*a3^2*b1^2-2*a2^2*a3^2*b1*b2-18*a2^2*a3^2*b1*b3+a2^2*a3^2*b2^2-2*a2^2*a3^2*b2*b3+6*a2^2*a3^2*b3^2+6*a2^2*a3*b1^2*b2+12*a2^2*a3*b1^2*b3+4*a2^2*a3*b1*b2^2+8*a2^2*a3*b1*b2*b3-18*a2^2*a3*b1*b3^2+6*a2^2*a3*b2^2*b3-10*a2^2*a3*b2*b3^2+4*a2^2*a3*b3^3+a2^2*b1^2*b2^2-6*a2^2*b1^2*b2*b3+6*a2^2*b1^2*b3^2-6*a2^2*b1*b2^2*b3+10*a2^2*b1*b2*b3^2-6*a2^2*b1*b3^3+6*a2^2*b2^2*b3^2-6*a2^2*b2*b3^3+a2^2*b3^4+2*a2*a3^4*b1-6*a2*a3^3*b1^2+6*a2*a3^3*b1*b2+8*a2*a3^3*b1*b3+2*a2*a3^3*b2*b3+4*a2*a3^2*b1^3-10*a2*a3^2*b1^2*b2-18*a2*a3^2*b1^2*b3+6*a2*a3^2*b1*b2^2+8*a2*a3^2*b1*b2*b3+12*a2*a3^2*b1*b3^2+4*a2*a3^2*b2^2*b3+6*a2*a3^2*b2*b3^2+6*a2*a3*b1^3*b2+8*a2*a3*b1^3*b3-2*a2*a3*b1^2*b2^2-2*a2*a3*b1^2*b2*b3-18*a2*a3*b1^2*b3^2+2*a2*a3*b1*b2^3-6*a2*a3*b1*b2^2*b3-2*a2*a3*b1*b2*b3^2+8*a2*a3*b1*b3^3+2*a2*a3*b2^3*b3-2*a2*a3*b2^2*b3^2+6*a2*a3*b2*b3^3+2*a2*b1^3*b2^2-6*a2*b1^3*b2*b3+4*a2*b1^3*b3^2+2*a2*b1^2*b2^3-4*a2*b1^2*b2^2*b3+8*a2*b1^2*b2*b3^2-6*a2*b1^2*b3^3-6*a2*b1*b2^3*b3+8*a2*b1*b2^2*b3^2-4*a2*b1*b2*b3^3+2*a2*b1*b3^4+4*a2*b2^3*b3^2-6*a2*b2^2*b3^3+2*a2*b2*b3^4+a3^4*b1^2-2*a3^3*b1^3+4*a3^3*b1^2*b2+4*a3^3*b1^2*b3-2*a3^3*b1*b2*b3+a3^2*b1^4-6*a3^2*b1^3*b2-6*a3^2*b1^3*b3+6*a3^2*b1^2*b2^2+10*a3^2*b1^2*b2*b3+6*a3^2*b1^2*b3^2-6*a3^2*b1*b2^2*b3-6*a3^2*b1*b2*b3^2+a3^2*b2^2*b3^2+2*a3*b1^4*b2+2*a3*b1^4*b3-6*a3*b1^3*b2^2-4*a3*b1^3*b2*b3-6*a3*b1^3*b3^2+4*a3*b1^2*b2^3+8*a3*b1^2*b2^2*b3+8*a3*b1^2*b2*b3^2+4*a3*b1^2*b3^3-6*a3*b1*b2^3*b3-4*a3*b1*b2^2*b3^2-6*a3*b1*b2*b3^3+2*a3*b2^3*b3^2+2*a3*b2^2*b3^3+b1^4*b2^2-2*b1^4*b2*b3+b1^4*b3^2-2*b1^3*b2^3+2*b1^3*b2^2*b3+2*b1^3*b2*b3^2-2*b1^3*b3^3+b1^2*b2^4+2*b1^2*b2^3*b3-6*b1^2*b2^2*b3^2+2*b1^2*b2*b3^3+b1^2*b3^4-2*b1*b2^4*b3+2*b1*b2^3*b3^2+2*b1*b2^2*b3^3-2*b1*b2*b3^4+b2^4*b3^2-2*b2^3*b3^3+b2^2*b3^4

(11)

It would be extremely difficult to determine in general when the discriminant is positive, hence when the roots are real.

 

Set all parameters to 1.

(**)

Evals:= [a||(1..3), b||(1..3)] =~ [1$6];

[a1 = 1, a2 = 1, a3 = 1, b1 = 1, b2 = 1, b3 = 1]

(12)
(**)

fsolve(eval(p, Evals));

-3.41421356237310, -2., -.585786437626905

(13)
(**)

eval(d, Evals);

32

(14)
(**)

 

 


Download cubic.mws

After reading the help page, which has far too few examples, and also reading the long thread referred to by PatrickT, I would think that you could achieve what you what by using pre(x(t)), that being the previous value of x(t). But I can't make it work. Perhaps pre only works with discrete variables. Specifically, I don't understand why events= [[abs(pre(x(t)) - x(t)) - 1e-8, halt]] does not work.

First 629 630 631 632 633 634 635 Last Page 631 of 711