Christian Wolinski

MaplePrimes Activity


These are answers submitted by Christian Wolinski

You're obviousy thinking of surd. Look at the following:
surd(x,3) assuming x, real;

it will give you:
signum(x)*abs(x)^(1/3);

Try this code:

 

restart;
rec:=collect(solve({2*(k+1)*X(k+1)+(k+1)*Y(k+1)-X(k)-Y(k)+(1)/k!,(k+1)*X(k+1)+(k+1)*Y(k+1)+2*X(k)+Y(k)+(1)/k!},{X,Y}(k+1)), [X,Y]);
eq:=map2((expand@lhs = proc(f) setattribute(f, remember) end@rhs)@map, unapply, subs(k = k-1, rec), k);
init:=X(0) = 2, Y(0) = 1;
assign(eq, init);
L:=seq([X, Y](i),i=0..20);
 

((x->x), (content@numer)/(content@denom))((1/1296)*cBooP0-(1/1296)*cSRP0-(1/1296)*tStartRamp*f__SR/N);
proc(x,y) ``(x)*y end((%[1]/%[2]),%[2]);

 

This is for printing purposes only. Expansion will always occur when multiplying by a rational. More options in ?content

I think this is the plot of your function (Int(1/sqrt(sin(x0)-sin(x)),x=0..x0)):

plot([arcsin(s), 2*EllipticF(sqrt(s)/sqrt(s+1), I*sqrt(-s^2+1)/(-1+s))/sqrt(1-s), s = 0 .. 1], view = [0 .. Pi/2, 0 .. 5]);

#and another one (edit):

plot([arcsin(2*t^2-1), sqrt(2)*(EllipticK(t)-EllipticF(sqrt(2)/(2*t), t)), t = sqrt(2)/2 .. 1], view = [0 .. Pi/2, 0 .. 5]);

Perhaps you can use this definition to invert your function.

proc(P, V, f) local l; zip(f, [coeffs](P, V, 'l'), [l]) end(14*c^4 + 84*c^3*d + 180*c^2*d^2 + 165*c*d^3 + 55*d^4 + 5*c^3 + 21*c^2*d + 28*c*d^2 + 12*d^3 + 2*c^2 + 5*c*d + 3*d^2 + c + d + 1, [c,d], (p,q) -> `if`(degree(q, [c, d])=3, [p, q], NULL));


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('"');

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