## 12685 Reputation

8 years, 265 days

## Just use ReducedRowEchelon...

Just use ReducedRowEchelonForm and append the identity matrix to your square matrix.

 > restart;
 > with(LinearAlgebra):
 > n:=3:
 > A:=RandomMatrix(n);
 (1)
 > LinearAlgebra:-ReducedRowEchelonForm();
 (2)
 > B:=%[..,n+1..];
 (3)
 > A.B; #check

 (4)
 >

## You just need a pencil for this.c=5, a=1...

You just need a pencil for this.

c=5, a=12/2=6, b^2 = a^2 - c^2 = 11

So, x^2/36 + y^2/11 = 1.

## I see the QuantifierElimi...

I see the QuantifierElimination package (new in Maple 2023) as experimental.
Here is a much simpler problem and the solution obtained by  QuantifierElimination.

 > restart;
 > with( QuantifierElimination );
 (1)
 > f:=(x-1)/(x^2+x+1);
 (2)
 > fmax:=evala(maximize(f));
 (3)
 > forall(x, f <= K);
 (4)
 > sol:=QuantifierEliminate( % ); ### ?
 (5)
 > should_be = (K >= fmax);   # !!
 (6)
 > is(eval(sol, K=fmax));            # ckeck
 > is(eval(sol, K=fmax-10^(-20)));   #
 (7)

N.B. Why do you use such an unusual UserProfile?  The output of   2*x + 30  is:

## 3 half-lines...

The system is not very simple, but I agree that SolveTools:-SemiAlgebraic is very slow in general, and I had not the patience for a result.

Anyway, the result (for eq1) seems to be (and is confirmed by MMA):

```a := RootOf(_Z^3 - 4*_Z^2 - 27, 5.054 .. 5.063):
sol := {z=0, y = x, a < x}, {y=0, z = x, a < x}, {x=0, y = z, a < z};
```

plots:-spacecurve([[t,t,0], [t,0,t], [0,t,t]], t=a..3*a, color=[red,blue,green], thickness=5);

Can the equation (x-a)^4 + (x-b)^4 = c have four different integer solutions,where  a, b, c  are integers?

The answer is NO.  Actually not even four real solutions!

Suppose the polynomial  f := (x-a)^4 + (x-b)^4 - c  has 4 real solutions. After a shift, we may suppose that one of the solutions is 0, so c = a^4 + b^4,  a, b nonzero.

 > restart;
 > f := (x-a)^4 + (x-b)^4 - a^4 - b^4;
 (1)
 > factor(f);
 (2)

 > f1:=op(-1,%);
 (3)

f1  must have two real solutions

 > d1:=discrim(f1,x); # should be >0. But
 (4)
 > d2:=discrim(%,a);  # should be >= 0 (otherwise d2<0 implies d1<0).  ==>
 (5)
 (6)
 > solve(f1,x);  # Actually:
 (7)

## ALG...

The procedure ALG works only for finite sets! Actually, the support for infinite sets in Maple is very limited, see ?SetOf.

[0,2] is a list, not an interval. [0,1) is a nonsense in Maple (for 1D input).

Note also that ALG computes the algebra generated by C, not the sigma-algebra; of course, X, C must be finite, so this is the same thing.

## Pure maths...

You cannot solve such theoretical problems using Maple. You cannot even formulate them within Maple, because a CAS does other things!

But your problem is very simple if you know basic measure theory:

If A is a Borel subset in R^n and  g : A --> R  and  h : R^n \ A  --> R are continuous
then the function f : R^n --> R,  f(x) = g(x), if x in A, and f(x) = h(x), if x in R^n \ A
is a Borel function.

In your example, A = {(0,0)}; in your previous version A = {0} x R.

## utf-8...

Use:

```LEN:=proc(s::string) Python:-EvalFunction("len",s) end proc:
```

It works for utf-8 characters, used by Maple, see https://mapleprimes.com/posts/214347-Multibyte-Characters

For example

LEN("România"); #  7

Note that the solution proposed by mmcdara works only for characters coded with at most 2 bytes.

## workaround...

```LC := proc(expr)
local i;
if type(expr, {numeric,name,string}) then return 1  # or maybe atomic
else add(i, i = map(thisproc,[op(expr)]))  +  1
end if
end proc;
```

## OK...

Everything is correct, even for a without assumptions (i.e. for any complex a).

```a:=sqrt(3):
plot3d(y^2,  x=y/a .. 1-y/a, y=0...a/2, orientation=[-75,60]);
```

## du*dx etc...

I suspect that you actually want du*dx instead of dudx etc. If so, try:

```ss:=convert(aa,string):
ss:=StringTools:-SubstituteAll(ss,"dudx","du*dx"):
ss:=StringTools:-SubstituteAll(ss,"dudy","du*dy"):
ss:=StringTools:-SubstituteAll(ss,"dvdx","dv*dx"):
ss:=StringTools:-SubstituteAll(ss,"dvdy","dv*dy"):
ddaa:=parse(ss):
collect(ddaa,[du,dv,dx,dy],distributed);
```

## Telescoping sums...

Why do you complicate things?

The identity

holds for k in Z, x in C  (actually for k,x in C).
Summing for k in 0..n-1  we obtain S1 and summing for -k in 1..n  we obtain S6.

## Workaround...

 > restart;
 > expr := [ exp(y*LambertW(ln(y))), (ln(y)/LambertW(ln(y)))^y, eval(x^(x^x), x = exp(LambertW(ln(y)))), eval(x^(x^x), x = ln(y)/LambertW(ln(y))) ]:
 > Matrix(4, (i,j)->'is'(expr[i]=expr[j])): simplify(%) assuming y>1;
 (1)

Workaround

 > Y:=solve(LambertW(ln(y))=t, y);
 (2)
 > mat:=simplify(subs(LambertW(ln(y))=t, y=Y, expr)) assuming t>0;
 (3)
 > Matrix(4, (i,j)->is(mat[i]=mat[j]) );
 (4)

## direct...

We don't need Maple for this.

ΔABC is similar to ΔEBC and ΔFDC. So, D is the midpoint of BC. DF=AE=EB=3, DE=AF=FC=4, DB=DC=5 (Pythagoras).

H being the centroid of ΔABC we have AD=BD=DC=5, and finally DH = AD/3 = 5/3.

 3 4 5 6 7 8 9 Last Page 5 of 113
﻿