## 11843 Reputation

7 years, 185 days

## "Just math is needed"...

@nm It is exactly maths which does not agree with your opinion. See e.g. Richardson's theorem - Wikipedia

## ​​​​​​​IsRowPerm...

@Carl Love Should be:

```IsRowPerm:= (A::Matrix, B::Matrix)-> #Is A a row permutation of B?
evalb(`=`((sort@convert)~([A,B], 'listlist')[])):
```

to avoid
IsRowPerm( <1;2;2;1>, <1;1;1;2> )  = true

## @nm Yes, simplification is sometime...

@nm Yes, simplification is sometimes "art and craft":

```r := sqrt(-x + 1/2 - sqrt(-4*x + 1)/2) + 1/2 - sqrt(-4*x + 1)/2:
xx := solve(sqrt(-4*x + 1)=t, x):
simplify(eval(r,x=xx)) assuming t>1;  # 0
simplify(eval(r,x=xx)) assuming t>0;  # ((signum(-1+t) - 1)*(-1+t))/2
```

## @rlopez Of course, but for the func...

@rlopez Of course, but for the function defined implicitely by w=0, x = c is a (vertical) asymptote.

## comment...

@Carl Love The fact that

```sys:=[a*x1^3 + b*x1^2 + c*x1 + d, a*x2^3 + b*x2^2 + c*x2 + d, a*x3^3 + b*x3^2 + c*x3 + d, x1*x2*x3 = -d/a, x1 + x2 + x3 = -b/a, x1*x2 + x1*x3 + x2*x3 = c/a]:
solve(sys, {x1, x2, x3}, explicit);
```

does not work, is a weakness of solve.
It is easy to see (but not for a CAS) that sys is equivalent to sys[4..6], which works!

## the other two...

```g := (x, T) -> T*x + x^2:  #just an example
dgdx1:=(x,T) -> D[1](g)(x,T);
dgdx2:=  D[1](g);
dgdx1(1, 2);  # 4
dgdx2(1, 2);  # 4

g := (x, T) -> T*x + 7*x^2:
dgdx1(1, 2); # 16
dgdx2(1, 2); # 4
```

For a fixed g, dgdx2 is of course more efficient, but I don't think this matters here.

## point=infinity...

Your odetest examples are not correctly treated. You cannot use asympt when the series solution is around a finite point (e.g. 'point'=0). asympt does a series expansion around infinity!
Note also that not all ode solutions have series expansions; e.g. for Ex 6, the series can be obtained only with MultiSeries:-series,
so, for x>0 (series and dsolve cannot do it).

## Of course...

@acer  Of course, but that is what the user has asked.

## asympt...

@Axel Vogt Your last command should be:
MultiSeries:-asympt(%, x, 6);
or simply,
asympt(%, x, 6);

Actualy, odetest(sol, ode)  does essentially the same thing.

## Puiseux series...

@nm All your "positive" examples are regular series or Puiseux series.
The solution of the ode in the question is not of these types, and I suspect that odetest rejects it.
But the asympt approach is acceptable in my opinion and works.

## ?...

@smithss  This one cannot have a solution: there are more columns than colors!

## < 10^5...

@Carl Love Actually the max number of permutations used is small:

(9!/(3!*2!*2!)) * 6 = 90720

because once a permution if found for a column, it is kept.
The puzzle can be easily solved by hand.

It would be interesting to find a puzzle which cannot be solved this way!

## infinity...

@C_R It would not be a good idea to simply return infinity, because the arithmetic with oo is complicated.
This is why there is try ... end try.  See also ?events
Example

```try
EllipticK(1)
catch "numeric exception: div":
infinity;
end try;
```

infinity

## @jud What I get is: ...

@jud What I get is:

 2 3 4 5 6 7 8 Last Page 4 of 162
﻿