[Scilab-users] Is cond([]) 0 or 1 ? (bug 15579)

Samuel Gougeon sgougeon at free.fr
Sun May 27 19:51:36 CEST 2018


Hello Philippe,

Le 24/05/2018 à 23:20, philippe a écrit :
> Le 21/05/2018 à 15:46, Samuel Gougeon a écrit :
>> There are at least two way to do it :
>>
>>    * either keep *cond([])* to *1* and set all *cond([], p)* to 1 instead
>>      of 0
>>    * or set *cond([])* to *0*.
>>
>> I don't see any clear reason enforcing a choice rather than the other.
>> Do you?
> from a mathematical point of view  the Condition number of a matrix A is
> defined by
>
> cond(A)=||A|| . ||A^(-1)||
> its interest is that when solving A*x=y rounding errors on y (eps) are
> amplified to be cond(A)*eps. The optimal value of cond(A) is 1 (for
> identity matrix) so for me it looks natural that cond([])=1 .

I must confess that, unless claiming that *norm([])***is NOT 0,  i do 
not catch clearly the logical of your conclusion

  * /"The optimal value of cond(A) is 1 (for identity matrix) so for me
    it looks natural that cond([])=1"/

Indeed, cond([]) = norm([])*norm(inv([])) = 0*norm([]) = 0*0 = 0

By the way, according to the clear explanation you give about the 
meaning of the condition number, the value 0 is even more optimal: it 
says that small variations are not getting amplified, but killed.

Please let us know more about your proposal for 1 instead of 0.

Regards
Samuel

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


More information about the users mailing list