[Scilab-users] display of complex/not real numbers, again

Stéphane Mottelet stephane.mottelet at utc.fr
Tue Sep 17 15:23:16 CEST 2019


Le 17/09/2019 à 15:19, Federico Miyara a écrit :
>
> Stéphane,
>
>> --> x=1:0.1:2
>>  x  =
>>
>>    1.   1.1   1.2   1.3   1.4   1.5   1.6   1.7000000   1.8 1.9   2.
>>
>
nothing triggers it in actual Scilab version. This was just an example 
of what could be displayed after the patch I propose (in its last week 
version). But the discussion has been fruitfull and I will propose 
something that will satisfy (I hope so) everyone.

S.


> However I get this:
>
>   > x=1:0.1:2
>  x  =
>
>    1.   1.1   1.2   1.3   1.4   1.5   1.6   1.7   1.8   1.9   2.
>
> But it is true that x(7) - 1.7 yields 2.220D-16. Here there are two 
> problems, an arithmetic one and a display one. Formatting to a 
> sufficiently large number of digits the arithmetic problem (or 
> limitation, probably unsurmountable, originated in the incompatibility 
> of binary and decimal systems) is evident:
>
>   > format(20)
>
>   > x=1:0.1:2
>  x  =
>
>          column 1 to 6
>
>    1.   1.10000000000000009   1.19999999999999996 
> 1.30000000000000004   1.39999999999999991   1.5
>
>          column 7 to 11
>
>    1.60000000000000009   1.70000000000000018   1.8 
> 1.89999999999999991   2.
>
>
> Why this triggers showing several zeros I don't understand, probably a 
> bug, but it can be seen that it happens when the numeric error affects 
> te 16th decimal digit.
>

> Regards,
>
> Federico Miyara
>
>
>
>
>
>
>> --> x(7)
>>  ans  =
>>
>>    1.6
>>
>> --> x(7)-1.6
>>  ans  =
>>
>>    0.
>>
>> --> x(8)
>>
>>  ans  =
>>
>>    1.7000000
>>
>> --> x(8)-1.7
>>  ans  =
>>
>>    2.220D-16
>>
>> I think that we do agree about the fact that the actual Scilab display
>>
>> --> x=1:0.1:2
>>  x  =
>>
>>    1.   1.1   1.2   1.3   1.4   1.5   1.6   1.7  1.8   1.9 2.
>>
>> --> x(7)
>>  ans  =
>>
>>    1.6
>>
>> --> x(7)-1.6
>>  ans  =
>>
>>    0.
>>
>> --> x(8)
>>  ans  =
>>
>>    1.7
>>
>> --> x(8)-1.7
>>  ans  =
>>
>>    2.220D-16
>>
>> is pretty but not correct/homogeneous/honest. The display that is 
>> obtained with the patch (first lines of this email) is correct+honest 
>> but not homogeneous. A pretty + mathematically correct display would be:
>>
>> --> x=1:0.1:2
>>  x  =
>>
>>    1.0000000   1.1000000   1.2000000   1.3000000   1.4000000 
>> 1.0000005   1.6000000   1.7000000   1.8000000   1.9000000 2.0000000
>>
>> --> x(7)
>>  ans  =
>>
>>    1.6
>>
>> --> x(8)
>>  ans  =
>>
>>    1.7000000
>>
>> --> x(8)-1.7
>>
>>  ans  =
>>
>>    2.220D-16
>>
>> i.e. when the matrix to display is not a scalar, add always trailing 
>> zeros for homogeneity, BUT when it is a scalar, add trailing zeros 
>> only when the actual stored value is different from the displayed value.
>>
>> The first thing that you can see is that the default format(10) would 
>> be very verbose, but this is tunable. A value of 7 would be ok, but 
>> quite low for format("e").
>>
>> S.
>>
>> Le 13/09/2019 à 13:37, Stéphane Mottelet a écrit :
>>>
>>>
>>> Le 13/09/2019 à 13:07, Samuel Gougeon a écrit :
>>>> Le 12/09/2019 à 18:55, Stéphane Mottelet a écrit :
>>>>> I prefer the display after applying 
>>>>> https://codereview.scilab.org/#/c/20981/:
>>>>>
>>>>> --> x0=%pi/4;h=%eps/2
>>>>>  h  =
>>>>>
>>>>>    1.110D-16
>>>>>
>>>>> --> cos(x0+%i*h)
>>>>>  ans  =
>>>>>
>>>>>    0.7071068 - 7.850D-17i
>>>>>
>>>>> However, we could discuss if the arbitrary switch to "e" mode is 
>>>>> desirable or not, but since Scilab 6.0 we have got used to this 
>>>>> display mixing "v" and "e" mode...
>>>>
>>>>
>>>> ... and IMO it's very suitable. The only rule should be that, */for 
>>>> a given format's width/*, */the more the number of significant 
>>>> displayed figures the better./* When the exponent format is used, 
>>>> it takes 4 or 5 digits (D+12, D+123). As a consequence, in v mode, 
>>>> small (absolute) values should be displayed in normal mode down to 
>>>> 4 non-significant 0 (e.g. 0.000012), and switched to "e" mode beyond.
>>>>
>>>> In v mode, forcing the display of 0.0123456  in "e" mode on the 
>>>> (bad) reason that some other huge or tiny numbers in the matrix are 
>>>> displayed in this mode, would print 1.234D-02, and so make 
>>>> invisible 2 significant figures.
>>>> I do not see any reason that would impose the display mode to be 
>>>> homogeneous over all elements of a matrix, possibly canceling the 
>>>> display of significant figures in the given format's width.
>>>>
>>> I agree Samuel.
>>>>
>>>> Regards
>>>>
>>>> Samuel
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> users mailing list
>>>> users at lists.scilab.org
>>>> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
>>> -- 
>>> Stéphane Mottelet
>>> Ingénieur de recherche
>>> EA 4297 Transformations Intégrées de la Matière Renouvelable
>>> Département Génie des Procédés Industriels
>>> Sorbonne Universités - Université de Technologie de Compiègne
>>> CS 60319, 60203 Compiègne cedex
>>> Tel : +33(0)344234688
>>> http://www.utc.fr/~mottelet
>>>
>>> _______________________________________________
>>> users mailing list
>>> users at lists.scilab.org
>>> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users
>> -- 
>> Stéphane Mottelet
>> Ingénieur de recherche
>> EA 4297 Transformations Intégrées de la Matière Renouvelable
>> Département Génie des Procédés Industriels
>> Sorbonne Universités - Université de Technologie de Compiègne
>> CS 60319, 60203 Compiègne cedex
>> Tel : +33(0)344234688
>> http://www.utc.fr/~mottelet
>>
>> _______________________________________________
>> users mailing list
>> users at lists.scilab.org
>> http://lists.scilab.org/mailman/listinfo/users
>
>
> <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
> 	Libre de virus. www.avast.com 
> <https://antispam.utc.fr/proxy/2/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=emailclient> 
>
>
> <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users

-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20190917/c88e7352/attachment.htm>


More information about the users mailing list