Repeating matrix multiplication linear system
    3 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 Scatter Plots 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!


