vv

9122 Reputation

18 Badges

5 years, 233 days

MaplePrimes Activity


These are answers submitted by vv

Maple has commands for Sturm polynomials.

P :=x^6-4*x^3+x-2:

ss:=sturmseq(P, x);

sturm(ss,x,-3,3); #number of roots in (-3,3]

         2

You can inspect the source code, e.g.:

interface(verboseproc=3);
print(sturmseq);
print(`sturm/sturmrem`);
print(sturm);

 

It also has the command

realroot(P,10^(-4));

for isolating the real roots (based on Descartes' rule instead of Sturm).

 

 

co:=coeffs(p1-p2, [ln(E),ln(K),ln(L)]);

seq(u_=0, u_=[co]);

D(F) is the derivative function of F. For example, for F = sin, D(F) equals cos.

If you define an explicit function such as

F := sin

or

F:= x -> x^10;

and execute again your definition, the derivatives will be computed effectively.

BTW, subs is superfluous.

for m from 0 to n do
   A[m]:=eval(diff(F(add(lambda^i*exp(y[i]),i=0..m)),[lambda$m])/m!,lambda=0)
end do;

(I would not write such formulas in 2D math, but maybe I am too old).

 

This is THE ART GALLERY problem invented by the well known mathematician Victor Klee in 1973:

Find the fewest number of (stationary) guards needed to protect a polygonal gallery.

The following theorem is known.

To cover a polygon with n vertices, floor(n/3) guards are needed for some polygons, and sufficient for all of them.

This particular configuration could be solved with some combinatorics and a series of simplex-es.
If I remember correctly, a general algorithm for the minimal number of guards does not exist for the moment.

[attachment deleted]

It seems that there is a bug in plottools:-`transform/object`

I have included the altered procedure [one line only] in the startup code of the attached worksheet

(Maple 2015).

 

Edit: it's line 20, from

     outdim := nops(t);

to

     if [t]<>[] then outdim := nops(t) end if;

Why don't you use theta0(z)  ( or theta[0](z) ) instead of theta(z,0) ?

ode := diff(theta0(z), z, z)+theta0(z):
ibc:=theta0(0)=beta, D[1](theta0)(0)=0:
dsolve({ode,ibc});
                    theta0(z) = beta cos(z)

 

The result of fsolve could be NULL (if no solution found).

You should test this first, otherwise  NULL < 0   will produce the error.

pts:=[3,7],[6,5],[5,3],[1,2],[7,1]:
population:=5,2,2,1,3:

res:=seq(x-pts[i][1] <=  a||i,i=1..nops([pts])),
     seq(x-pts[i][1] >= -a||i,i=1..nops([pts])),
     seq(y-pts[i][2] <=  b||i,i=1..nops([pts])),
     seq(y-pts[i][2] >= -b||i,i=1..nops([pts])):
c:=add(population[i]*(a||i+b||i),i=1..nops([pts])):
s:=simplex[minimize](c,[res]):
eval(["x"=x,"y"=y,"min"=c],s);
                 ["x" = 5, "y" = 5, "min" = 51]

 

I always prefer a homemade version:

plot3d([u,(u^2-1)*cos(v)+1,(u^2-1)*sin(v)],u=1..2,v=0..2*Pi,
axes=normal,view=[-1..3,-4..6,-5..5],labels=[x,y,z],axes=boxed);

 

 

What is degrevlex?

Use e.g.

G:=Basis(K, 'tord', variables={r,u,v,w}); tord;

You could define the polynomial functions and use the composition operator @.

Or, better, use subs.
Notice first that the degrees of a and b must be 1.

a:=a1*x+a0;
                           a1 x + a0
b:=b1*x+b0;
                           b1 x + b0
c:=subs(x=a,b);
                      b1 (a1 x + a0) + b0
coeffs(collect(c-x,x),x):
sol:=solve([%],[a0,a1,b0,b1]):

# So, the general form of a,b is

{'a','b'} = eval({a,b},op(sol)); 

           {a,b} = {x/b1+a0, -a0*b1+b1*x}

# here a0,b1 are arbitrary constants, b1<>0.

Edit: actually c computes b o a, but the final result is of course the same. 

> min(extrema(x,{x^2 + x*y + y^2 = 2}));

It's a bug.

It seems that Apolonius works correctly only if all the 8 circles exist.

First 90 91 92 Page 92 of 92