## 622 Reputation

14 years, 260 days

## Solve then plot...

gives this:

 R := z = RootOf(-8649 + 270100*_Z + 9000*_Z^2 + 100*_Z^3, .3198736765e-1) .. .1; A := [[3/2 + 1/10*(-8649+270100*z + 9000*z^2 + 100*z^3)^(1/2), z, 'R'], [3/2 - 1/10*(-8649 + 270100*z + 9000*z^2 + 100*z^3)^(1/2), z, 'R']]; plot(A);

Thumb if you like.

## Just rename....

If you dont want something expanded, then name it:

 CG:=proc(E) map(q -> collect(q, G, proc(E) if type(E, `*`) then map(collect, E, [F], factor) else collect(E, [F], factor) end if end@factor), E); end: eqn := 5*(x*y)^2 + x/G = 2*F^3 + x^2, F = 3*x^3 + y^2, G^2 = y, G = sqrt(y); #implicitdiff({eqn[1..-2]}, {y, F, G}(x), {y}, x): implicitdiff({eqn[1..-2]}, {x, F, G}(y), {x}, y): simplify(%, [eqn[-2]]); applyop(CG, [1,2], convert(%, parfrac, G)); subs([eqn[2..-1]], %);

Thumb if you like.

## Domains package....

Maybe this is what you need:

 with(Domains): GI := Gaussian(Z): F:=proc(a,b)    local i, s, t, g;    g := op('procname');    i := g[Input](a), g[Input](b);    i, PrincipalIdeal(g, i, 's, t'), s, t; end proc; F[GI](-87+47*I, -90+43*I);

Thumb if you like.

## Not algsubs....

What you are trying to do is specifically intended for the command simplify:

 simplify(expr, [expression = V1]);

Thumb if you like.

## Two ways:...

Two ways:

 GST := AE + AI - ANB - AR - CP; GSTf := evalindets(GST, name, unapply('unapply(a[i], i), a')); GSTf ~ ([\$1..3]); GSTg := evalindets(GST, name, unapply('G[a], a')); G := () -> op(procname)['args']; GSTg ~ ([\$1..3]); ;

Thumb if you like.

## Algebra....

Replace the capital I in your formulas with lower case i and the problem will disappear. Capital I means (-1)^(1/2) which in algebraic formulas will be transformed by simplifications.

Thumb if You like.

## Like this....

This is a basic rule of valuations:

'
log[2]'(3);

T
humb if you like.

## Simply:...

 A := Y = (-2*k^3+6*k^2+sqrt(k^8-12*k^7+64*k^6-198*k^5+448*k^4-636*k^3+369*k^2)-7*k-15)/((k^3-3*k^2+5*k-15)*(1+k)); collect((evala@Norm)((lhs-rhs)(A)), Y, proc(E) convert(E, parfrac, k, {I, sqrt(5)}); map(radnormal, %); end); collect((evala@Norm)((lhs-rhs)(A)), Y, proc(E) convert(E, parfrac, k); map(normal, %); end);

Thumb if you like.

## Two versions....

Edit:

Try these two. If you need the derivation I can post it too.

 (abs(psi)^2*abs(rho)^2+abs(chi)^2*abs(phi)^2)*abs(lambda1-lambda2)^2+(abs(phi)^2*abs(rho)^2+abs(chi)^2*abs(psi)^2)*abs(-conjugate(lambda1)+lambda2)^2-8*Re(conjugate(phi)*conjugate(rho)*chi*psi)*Im(lambda1)*Im(lambda2); (abs(chi)^2*abs(phi)^2+abs(psi)^2*abs(rho)^2+2*Re(conjugate(phi)*conjugate(rho)*chi*psi))*abs(lambda1-lambda2)^2+(abs(psi)^2*abs(chi)^2+abs(phi)^2*abs(rho)^2-2*Re(conjugate(phi)*conjugate(rho)*chi*psi))*abs(-conjugate(lambda1)+lambda2)^2;

Thumb if you like.

## A simplier example....

How long does this example take on your computer?

 T := w^3 + w*z + x^2 + 1, w*z + x*y + x*z + 1, w*x + w*z + y*z + z; P := Expand(`*`(T)) mod 2; print(degree(P)); Factor(P) mod 2;

Thumb if you like.

## Simplify....

This code will suffice:

 map(factor @ simplify, evecA1[2], [rho*c^2/(gamma-1)*(1/rho)+(1/2)*u^2 = H], [c, u, H]);

Thumb if you like.

## Much simplier....

Assuming your expression is contained in f, use the following code:

 T[0]  := f: T[10] := sqrt(omega) * 12^(1/4); T[20] := evalindets(T[0], specfunc(anything, exp), exp @ proc(P) global T; radnormal(op(1, P) / T[10]) * T[10] end): T[30] := [sqrt(omega) = Omega / (12^(1/4)), (omega) = (Omega / (12^(1/4)))^2]; T[40] := factor(expand(subs(T[30], T[20]))); T[50] := [exp(Omega) = beta[1], exp(I * Omega) = beta[2]]; T[60] := factor(radnormal(subs(T[50], T[40]))): op(map(rhs = lhs, T[50])), Omega = solve(T[30][1], Omega), T[60]; subs(%);

omega = RootOf(cos(2*12^(1/4)*sqrt(_Z))*(exp(2*12^(1/4)*sqrt(_Z)))^2+cos(2*12^(1/4)*sqrt(_Z))-2*exp(2*12^(1/4)*sqrt(_Z)), 4.450852611);
or
omega = (1/24)*RootOf(cos(_Z)*exp(2*_Z)+cos(_Z)-2*exp(_Z),7.853204624)^2*sqrt(3);

## Not a problem....

 _interface(showassumed = 0): assume(x > 0, t > 0, k > 0): pde := diff(u(x, t), t) = k * diff(u(x, t), x\$2): ic := u(x, 0) = 0: bc := u(0, t) = t: sol:= pdsolve({pde, ic, bc}, u(x, t)):

Your problem arises from assume/additionally as it generates a chain of assignments every time you make an assumption on a variable. The is/assume facility responds to every variable in the chain the same way, but we can expect pdsolve does not, hence your error. Simply put the assumption (assignment) at the beginning of everything. Alleviating this difficulty was the one of the reasons why "assuming" was created.

## Use map(Testzero, A-~B);...

Evalb is too literal and not intended for the test case you included. For floats you'd always use fnormal.

## Real solutions....

If you know the solutions are reals then:

 `@`(sort, combine, expand, evalc, map)(Re, [solve](5*x^3 - 5*x + 1, x));
 4 5 6 7 8 9 10 Page 6 of 10
﻿