Christian Wolinski

MaplePrimes Activity


These are answers submitted by Christian Wolinski


This is not a complete solution but you will find it useful:

 

A := cos(2*Pi*(x+y-2*z))+cos(2*Pi*(y+z-2*x))+cos(2*Pi*(z+x-2*y)) = 0;
B := {0 <= x, x <= 1, y <= 1, z <= 1, x < y, y < z};
V := [op](map2(op, 1, indets(A, trig)));
E0 := [n || ($1..3)] =~ V;
E := eliminate(E0, {x, y, z, n1});
A2 := add(cos(n), n = factor(subs(E[1], V)));
S := subs(E[1], B);

solve(S, {n2, n3});

solve(A2, {n2, n3});
#solve(A2, {n2, n3}, allsolutions=true);


Thumb if you like.

I believe this code is satisfactory for this task:

 

F := proc ()
local S, E, L, Lexc, Linc, i, s;
E, S := selectremove(type, {args}, identical({}));
L := [op](S);
S := NULL;
for i to nops(L) do
   Linc, Lexc := selectremove(member, L[i], `union`(S));
   if Linc = {} then S := S, Lexc
      else S := seq(
         proc ()
            local X;
            X := [`intersect`, `minus`](s, Linc);
            if X[1] = {} then E := {{}} end if;
            op(remove(type, X, identical({})))
         end proc(),
         s = [S]), `if`(Lexc <> {}, Lexc, NULL)
   end if
end do;
op(`union`({S},E))
end proc;


 

But I still am wondering if there is existing Maple function to carry out calculation of this combinatorial problem.

I would attempt this:

 

Sol[1] := {solve}(sys, vars, explicit = false):
Sol[2] := factor(map(proc(E, S) solve(E union {b <> c, 0 < a^2 - b^2 + c^2}, vars, useassumptions = true, tryhard = false, explicit = true) assuming b::real, a::real, c::real, b <> c, 0 < a^2 - b^2 + c^2; end proc, Sol[1])):
Cases := Sol[2]:
for j do
td := Cases;
for i in Cases do td := map(proc(S, T) if evalb((S intersect T) = {}) then S else S intersect T, S minus T end if; end proc, td, i) end do;
if td = Cases then break else Cases := td end if;
print(j);
end do:
print(nops(Cases));

for j from 3 by -1 to 1 do print(op(select(nops = j, Cases))) end do;


Every subcase statement is a selection from these 90 statements.

 

Thumb if you like.

You should familiarize yourself with Maple's evaluation rules first. B(4) is a function call. The result of a call (or the assignment) will be respresented without further valuation. To see this in action inject this print command before the fsolve:

 

print(B(4) = eval(B(4)));
A(p) := fsolve(B(4), x, ':-complex');


Replace B(4) with eval(B(4)).


Thumb if you like.

I think what you are trying to do is:

restart;
S := seq(u[k] = u[k](x,y,t),k = 1 .. 4), seq(a[k] = a[k](x,y,t),k = 1 .. 4);
alias(S);
op(a[1]);

Observe the contents of S.

 

Thumb if You like.

 

Also, you may want to take a look at
evalc(x^(1/3)); #and
solve(evalc(Im(x^(1/3))), {x});

Since the result is clearly a real number I presume you seek an algebraic computation on real values only:

(64*abs(b)^4+4*(a-2)*((a-2)*abs(sinh(c))^2-8*Im(b)*Re(sinh(c))+8*Re(b)*Im(sinh(c)))*abs(b)^2+a^2*(16*Im(b)^2-4*Im(b)*(a-2)*Re(sinh(c))-16*Re(b)^2-4*Re(b)*(a-2)*Im(sinh(c))+a^2))/(4*abs(b)^2*abs(sinh(c))^2+a*(-4*Im(b)*Re(sinh(c))-4*Re(b)*Im(sinh(c))+a));



Thumb if You like.

 

If you are trying to view text form of your formula then lprint it.
lprint(expand(Q(h)));

Can you verify this formula?
 

((product(q^i - 1, i = n + 1 - r .. n - 1))^2*((-(q^n - q - 1)^2 + q + 1)/(q^r)
   + ((q^n - 1)^2*(q^n - q)^2)/((q^r - 1)*(q^n)^2) - ((q^n)^2)/((q^r)^2))*
  q^(1/2*r^2)*q^(- 1/2*r)*(q^n)^2)/((product(q^i - 1, i = 1 .. r - 1))*q^2);

Thumb if You like.

I think your second code is equivalent to the following;
evalf(''Pi'');
eval(evalf(''Pi''));
evalf(eval(evalf(''Pi'')));

It should have been:
evalf(''Pi''):
evalf('"');

If you want to use solve in your example then you can simply use this option:
[solve]({0 < 272*c^3-213*c^2+52*c-4}, c, real, explicit = false); evalf(%); evalc(convert(%%, radical));

Thumb if You like.

Is this form more acceptable:

Your expression is always a root (in lambda) of one of these:

3*lambda^2+(l^4+36)*lambda+3*l^4+108
-3*lambda^4+((3/2)*l^4+18)*lambda^3+(l^8+(141/4)*l^4+81)*lambda^2+(3/2)*(l^4-12)*(l^4+18)*lambda+81*l^4-972
162+2*lambda^4+(l^4+24)*lambda^3+((7/2)*l^4+108)*lambda^2+(3*l^4+216)*lambda
l^4*lambda+3*l^4-3*lambda^2

 

Thumb if You like.

 

How about this:

sys := {w = -2*Pi*i*k_2*v + 2*Pi*i*k_2*(4*K^2)/(5*Pi)*u, z = -2*Pi*i*k_1*v + 2*Pi*i*k_1*(4*K^2)/(5*Pi)*u, p*s*x = -2*Pi*i*k_1*u - 4*Pi^2*(k_1^2 + k_2^2)*x + a_1, p*s*y = -2*Pi*i*k_2*u - 4*Pi^2*(k_1^2 + k_2^2)*y + a_2, k_1*z + k_2*w = 0, k_1*x + k_2*y = 0};
sys union {-RootOf(_Z^2+1)*z-w, RootOf(_Z^2+1)*x+y};
solve(% union {w<>0});
map2(remove, evalb, [%]);
eliminate(%[1], {x, y, z, u, v, w});
collect(%, [Pi, K], factor);

In the title.
                                 

4 5 6 7 8 9 10 Last Page 6 of 21