Matrix power vs for loop
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hi.
I have to iterate a linear system of the type x(k+1) = Ax(k), with x being a vector of 1024 elements. I only care about the last vector obtained, this is, x(endtime).
What would be faster?
x0 =rand(1024,1)
x = x0;
for i = 1:endtime
x = A*x
end
or
x = (A^endtime) * x0
Thanks.
0 Commenti
Risposta accettata
Angelo Yeo
il 26 Giu 2023
Hi Luisa,
If you only want to calculate the time it took to run a snippet of code, you can use tic and toc. Below is an example. You can see the latter one is faster.
endtime = 10000;
A = rand(1024, 1024);
case1 = tic;
x0 =rand(1024,1);
x = x0;
for i = 1:endtime
x = A*x;
end
toc(case1)
case2 = tic;
x = (A^endtime) * x0;
toc(case2)
0 Commenti
Più risposte (1)
James Tursa
il 26 Giu 2023
Note that the A^endtime method is probably going to be more accurate as endtime gets larger. The loop method can have a tendancy to build up errors.
0 Commenti
Vedere anche
Categorie
Scopri di più su Quadratic Programming and Cone Programming in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!