[Scilab-users] isreal question
Samuel Gougeon
sgougeon at free.fr
Fri Mar 6 21:51:33 CET 2020
Le 06/03/2020 à 19:31, kjubo a écrit :
> Dear all,
>
> consider this code:
>
> ==start of code
> clc
> clear
>
> a3 = 1
> a2 = -1
> a1 = 0.106865
> a0 = -0.002212
> mode(0)
> sol = roots([a3 a2 a1 a0])
> isreal(sol(1))
> isreal(sol(2))
> isreal(sol(3))
> ==end of code
>
> i get this print in console:
>
> sol =
>
> 0.8816333
> 0.0907062
> 0.0276605
> ans =
>
> F
> ans =
>
> F
> ans =
>
> F
>
> I do not understand, why the isreal return false flag, if all roots are real
> with no imaginary part.
>
> I am missing something? Or it is bug?
isreal() tests the encoding as complex, not the mathematical realness.
If you wish to test the realness, then you have to use
isreal(x, 0)
Then, isreal(,0) still looks awkward, because we expect an element-wise
answer, while only one scalar boolean is returned when x is a vector or
a matrix.
Samuel
More information about the users
mailing list