Matrix power vs for loop
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
L
am 26 Jun. 2023
Beantwortet: James Tursa
am 26 Jun. 2023
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 Kommentare
Akzeptierte Antwort
Angelo Yeo
am 26 Jun. 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 Kommentare
Weitere Antworten (1)
James Tursa
am 26 Jun. 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 Kommentare
Siehe auch
Kategorien
Mehr zu Quadratic Programming and Cone Programming finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!