## 12745 Reputation

8 years, 296 days

## . (dot)...

Don't use the dot (.) operator for usual multiplication; it is reserved for noncommutative multiplication  (usually dot product) . Use * instead.
For example,

simplify(v . ( 2/v + 1));
is not simplified if v is a name.

1. Use
or better:
because DEtools is a table-based package.

2.

ode:=y(x)*(2*x^2*y(x)^3+3)+x*(x^2*y(x)^3-1)*diff(y(x),x)=0;

## floats...

If possible, don't use floats in symbolic computation (here limit)

Compare:

```limit(n*(1/3 - 1/(3+1/n)),n=infinity);
#                               1/9
limit(n*(1/3. - 1/(3+1/n)),n=infinity);
#                        -Float(infinity)
```

So, replace in W:  3.6  with 36/10  etc.

## pdf...

Of course, just use the menu File > Page Setup...
or Ctrl+Shift+P
Then Export or Print to a pdf port.

## General form...

A is a diagonalizable matrix (the minimal polynomial being X^2 - X)

The possible diagonal forms are D1 and D2 below.

 > restart;
 > with(LinearAlgebra):
 > D1, D2 := DiagonalMatrix([0,0,1]), DiagonalMatrix([0,1,1]);
 (1)

The general form for a nonzero A is  T^(-1) . Dk . T,  where T is nonsingular and k in {1,2}.

Example:

 > T:=RandomMatrix(3, generator=rand(-3..3)): A:=T^(-1).D1.T;
 (2)
 > A^2-A;  # Check
 (3)
 >

## _EnvProbabilistic≔0...

 Try _EnvProbabilistic≔0; See:

Probabilistic Algorithm Control - Maple Help (maplesoft.com)

## Finite Differences...

```restart;
FD:=proc(f::procedure, i::nonnegint, h::algebraic)# Finite Difference
if i=0 then return f fi;
x -> ( FD(f,i-1,h)(x+h) - FD(f,i-1,h)(x) )
end proc:

f:= x -> x^5:
FD(f,3,h)(x): simplify(%);
seq( simplify(FD(f,i,1)(x)), i=0..6 );
```

150*h^5+180*h^4*x+60*h^3*x^2

x^5, 5*x^4+10*x^3+10*x^2+5*x+1, 20*x^3+60*x^2+70*x+30, 60*x^2+180*x+150, 120*x+240, 120, 0

## duplicate again...

Denote by p the polynomial.
Solving the equation p=0 wrt sigma and ploting the result
it is easy to conclude that p has a unique positive root in Z for any real sigma.
This root can be obtained by solve symbolically or numerically (for a numeric sigma).

 > p:=6125*Z^4 + 68644*Z^3*sigma - 219625*Z^3 + 255712*Z^2*sigma - 959250*Z^2 + 238144*Z*sigma - 1113500*Z - 245000;
 (1)
 > s:=solve(p,sigma);
 (2)
 > plot(s, Z=0 .. 60);
 > sol:=solve(eval(p, sigma=2), Z, explicit)[1]; # Take e.g.sigma=2
 (3)
 > evalf(sol)
 (4)
 >

## Useless examples...

```restart;
eq:=sin(x)+x^4+x^2+x+1;
s:=solve(eq, x);      # RootOf(eq, x)
is(eval(eq, x=s)=0);  # FAIL
```

## 0^n again...

This seems to be related to the bug in the evaluation of 0^n.
See strange odetest result. Is this valid? - MaplePrimes

```restart;
diff(1,x)^n;  # 0
0^n;          # 0^n
diff(1,x)^n;  # 0^n```

Also for  diff(1,x) replaced with sin(0).

## 0^x...

```restart;
simplify(0^x) assuming x>0;
0^x
normal(0^x) assuming x>0;
0^x
eval(0^x) assuming x>0;
0^x
expand(0^x) assuming x>0;
0^x
0.0^x assuming x>0;
0.^x
#########################
is(0^x = 0) assuming x>0;
true
limit(0^x, x=x) assuming x>0;
0
eval(z^x, z=0) assuming x>0;
0
simplify(sin(0)^x) assuming x>0;
0
is(0.0^x = 0) assuming x>0;
true
#########################
eval(z^x, z=0) assuming x<0;   # ?
0
```

The bug seems to be rather old.
Also strange, in Maple 2018,  0^x  automatically simplifies to 0 (without any assumption).
I suspect that 0^x = 0 was removed from automatic simplification but the evaluation/simplification was not modified.

## bug...

```restart
```

Error, (in dsolve) numeric exception: division by zero

## dsolve and multiple solutions...

You asked a similar question recently.
In your examples dsolve simply does not eliminate a solution even when obtainable from another.
Anyway, note that actually:

•  (x + y(x))*(1+diff(y(x),x)) = 0 has one solution: y(x) = -x + c.
•  (x + y(x))*(a+diff(y(x),x)) = 0 has two solutions  (shown).
• (x + y(x))^2 *(1+diff(y(x), x))=0 has also one solution: y(x) = -x + c.

## standard ode...

If you express the ode in a standard form (as I told you in a comment a few days ago for a similar question),  ODESteps works.

```restart;
ode1:=diff(y(x), x) = abs(x - 2)^(2/3);
ic:=y(2)=1;
Student:-ODEs:-ODESteps([ode1,ic]);
```

Note that the final result is actually
y(x) = 1+3/5*abs(x-2)^(5/3)*signum(x-2);

Edit.
Maybe better (valid in complex too):

`ode1:=diff(y(x), x) = ((x - 2)^2)^(1/3);`

then:

 1 2 3 4 5 6 7 Last Page 1 of 113
﻿