[Scilab-users] lack of simplification for rational
philippe
rouxph.22 at gmail.com
Wed Nov 23 19:37:14 CET 2016
Hi,
I have a problem to simplify automatically rational with an imaginary
part. In my case I only manipulate polynomials with real coefficients
but some imaginary part arise due to rounding errors. See this example :
-->X=poly(0,'x');
-->A=(X-1)^2;
-->B=(X-1)*(X-2);
-->R=A/B// = (X-1)/(X-2)
R =
- 1 + x
-----
- 2 + x
-->A=clean(A+%eps*(1+%i))// add a rounding error
A =
Partie réelle
2
1 - 2x + x
Partie imaginaire
0
-->R=A/B// = no simplifications
R =
2
1 - 2x + 1x
--------------
2
2 - 3x + x
I can't simplify R, even using simp(R), I've found some work around
applying clean to numerator/denominator coefficients TWICE (I don't
known why twice?!?!?) :
-->R=poly(clean(coeff(numer(R))),'x')/poly(clean(coeff(denom(R))),'x')
R =
2
- 2 + x + x
---------
2
- 6 + x + x
-->R=poly(clean(coeff(numer(R))),'x')/poly(clean(coeff(denom(R))),'x')
R =
2 + x
-----
6 + x
but of course this doesn't work for polynomials with complex
coefficients like :
-->(X+%i)/(X^2+1) // = 1/(X-%i)
ans =
i + 1x
--------
2
1 + x
I would like to find a solution for all polynomials with real/complex
coefficients , any idea ?
Philippe
More information about the users
mailing list