Repeating matrix multiplication linear system
4 views (last 30 days)
Show older comments
Hello, I am trying to do a matrix multiplication with a loop, I have a matrix A
A =
0 0 45
1/25 0 0
0 39/100 3/10
and a vector
x =
2000
100
25
Well, I do the multiplication
A*x
ans =
1125
80
93/2
But then I want to do A*ans
A*ans
ans =
4185/2
45
903/20
And I want to repeat this 50 times. My problem that I am running into is when I write a for loop, then it will only select the element. I don't know how to set an instance of a vector, here is what I have tried so far.
e = 2000;
l = 100;
a = 25;
x = [e; l; a];
for t = 0:50
if t == 0
PopulationInfo = A*x
else
PopulationInfo = A*PopulationInfo;
end
But this can't go anywhere because if I do A*x(t) it will just be an element of x, not the entire vector. Also, I want to do a plot starting at t=0 (the initial e, l, and a are populations at t=0), but with this loop there is no 0th element of an array.
2 Comments
Accepted Answer
Azzi Abdelmalek
on 16 Jul 2014
Edited: Azzi Abdelmalek
on 16 Jul 2014
A =[ 0 0 45
1/25 0 0
0 39/100 3/10]
e = 2000;
l = 100;
a = 25;
x = [e; l; a];
for t = 1:50
x(:,t+1) = A*x(:,t);
end
t = 0:1:50;
plot(t,x)
2 Comments
Sara
on 16 Jul 2014
Using Joseph answer (below), you can do
t = 0:1:50;
plot(t,x(1,:),'r',t,x(2,:),'b',t,x(3,:),'g')
More Answers (2)
Joseph Cheng
on 16 Jul 2014
to store each iteration of t.
e = 2000;
l = 100;
a = 25;
x = [e; l; a];
for t = 0:50
x(:,t+2) = A*x(:,t+1);
end
0 Comments
See Also
Categories
Find more on Particle & Nuclear Physics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!