Mám tieto MATLABU úryvok:
>> 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.
>>
Moja otázka je, prečo by L2 normy výpočtu sa, že oveľa pomalšie ako L1 alebo L infinity normy? Toto je náhodný matice pre účely testovania, samozrejme, ale pre skutočný matice v mojej práci môžem pozorovať podobný trend z hľadiska uplynulý čas.
Avšak, na Julia, výsledky sú nasledovné
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áva žiadny zmysel vôbec. Každá pomoc je ocenil!
BenchmarkTools
ako @ColinTBowers poukazuje na to, že časy sú: 1-norm=17ms, 2-norm=23ms, inf-norm=29ms. Takže to nie je tak ostro pomaly ako časy v otázke. Ako dôvod, prečo to nie je rýchlejšie, vyzerá to, že 1-normy a 2-norm hovor špecializované BLAS metódy, keďže inf-norm má len všeobecný Julia implementácie.