Matrix power vs for loop
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
L
el 26 de Jun. de 2023
Respondida: James Tursa
el 26 de Jun. de 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 comentarios
Respuesta aceptada
Angelo Yeo
el 26 de Jun. de 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 comentarios
Más respuestas (1)
James Tursa
el 26 de Jun. de 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 comentarios
Ver también
Categorías
Más información sobre Quadratic Programming and Cone Programming en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!