Mám následující MATLAB úryvek:
>> R = randn(3000,6000); % build a random 3000 by 6000 matrix
>> tic; norm(R, 1); toc;
Elapsed time is 0.005586 seconds.
>> tic; norm(R, 2); toc;
Elapsed time is 3.019667 seconds.
>> tic; norm(R, inf); toc;
Elapsed time is 0.005393 seconds.
>>
Moje otázka je, proč by L2 norma výpočtu bude mnohem pomalejší než L1 nebo L nekonečno norma? To je náhodné matice pro účely testování, samozřejmě, ale za skutečný matrix v mé práci vidím podobný vzor z hlediska uplynulého času.
Nicméně, na Julii, výsledky jsou následující
julia> @time norm(R, 1);
0.007156 seconds (1 allocation: 16 bytes)
julia> @time norm(R, 2);
0.009142 seconds (1 allocation: 16 bytes)
julia> @time norm(R, Inf);
0.034633 seconds (1 allocation: 16 bytes)
To nedává žádný smysl vůbec. Každá pomoc je vítána!
BenchmarkTools
stejně jako @ColinTBowers poukazuje na to, časy jsou: 1-norma=17ms, 2-norm=23ms, inf-norma=29ms. Takže to není tak ostře pomalé časy v otázce. Jako proč to není rychlejší, vypadá to, že 1-standard a 2-norma zavolat specializované BLAS metody, vzhledem k tomu, inf-norma má pouze obecný Julia provádění.