J'ai le texte suivant MATLAB extrait:
>> 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.
>>
Ma question est, pourquoi la norme L2 de calcul beaucoup plus lente que la L1 ou L infini norme? C'est une matrice aléatoire des fins de test, bien sûr, mais pour la matrice dans mon travail, je peux voir une tendance similaire en termes de temps écoulé.
Cependant, sur Julia, les résultats sont comme suit
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)
Cela n'a aucun sens. Toute aide est appréciée!
BenchmarkTools
comme @ColinTBowers points, le temps sont les suivants: 1-norm=17ms, 2-norm=23m, inf-norm=29ms. Donc, il n'est pas aussi crûment lent que le temps de la question. Quant à savoir pourquoi il n'est pas plus rapide, il ressemble 1-norme et 2-norme d'appel spécialisé BLAS méthodes, tandis que d'inf-norme n'a qu'un générique Julia de mise en œuvre.