1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Homework Help: Dynamic system model

  1. Apr 24, 2010 #1
    1. The problem statement, all variables and given/known data
    I'm trying to learn the dynamic system model, I was given the following problem to work with. Can someone give me a walk through of did I did right or wrong?

    A conservationist is studying a colony of endangered variable oyster-catchers. Birds that are chicks one year will form adult breeding pairs the following year. The probability of a chick surviving to become an adult is 0.3. The probability an adult will survive to breed another year is 0.5. Each year a breeding pair produce on average 2.2 chicks (that is a breeding rate of 1.1 per adult). Initially there are 80 chicks and 20 adult birds.

    a) Represent this situation by a dynamic system model of the form Xn = A^n X0. You must find matrix A and the initial state vector X0.

    b) Find X1, the state vector representing the oyster-catcher colony 1 year later.

    c) Find all eigenvalues of matrix A in part (a)

    d) By finding the eigenvector corresponding to the numerically largest eigenvalue, estimate the long term ratio of chicks:adults. Hint: If landa is an eigenvalue of matrix A with eigenvector v then A^n v = landa^n v

    e) Long-term, is this colony of oyster-catchers likely to survive?
    2. Known equation
    A - landa I (to find eigenvalue and eigenvector)
    |A-landa I| = 0 (to find eigenvector and eigenvalue)
    AX0=c1Av1+c2Av2 (to find the rate of change after x time)

    3. The attempt at a solution
    a) Chicks n+1 = 0 chicks n + 1.1 adults n
    Adults n+1 = 0.3 chicks n + 0.5 adults n
    where X0 = (80; 20)
    So A= Xn+1 = (0, 1.1; 0.3, 0.5)(chicks n; adult n)
    therefore Xn = A^n X0 = (0, 1.1; 0.3, 0.5)(80; 20)

    At first I tried to find the eigenvector and eigenvalue by hand, then implied it to the equation A = VDV^-1 to find the value for the long term run. Below is my steps:
    A-landa I:
    (0, 1.1; 0.3, 0.5) - landa (1, 0; 0 1) = (0-landa, 1.1; 0.3, 0.1-landa]

    det (A-landa I) = 0:
    (-landa)(0.1-landa)-0.33 = 0
    expand it: landa^2 - 0.1landa - 0.33 =0
    factories: I have got into some trouble factoring with decimal points, so I used matlab to get the eigenvector and eigenvalue which gives:
    a =

    0 1.1000
    0.3000 0.5000

    >> [v,d]=eig(a)

    v =

    -0.9461 -0.7821
    0.3238 -0.6232

    d =

    -0.3765 0
    0 0.8765

    So landa1 = -0.3765, landa 2 = 0.8765

    there I put these numbers into the following equation to work out X1 (after one year):
    X0 = c1*landa 1*v1 + c2*landa 2*v2
    = c1 *(-0.9491; 0.3238) + c2 *(-0.7821; -0.6232)
    = c1 * -0.3765 * (-0.9491; 0.3238) + c2 * 0.8765 *(-0.7821; -0.6232)
    Since X0 = (80;20)
    So X1 = 80 * -0.3765 * (-0.9491; 0.3238) + 20 * 0.8765 *(-0.7821; -0.6232)

    This is the part where I got completely stuck, I knew I did something wrong, I've read the textbook over and over again. But I can't find a solution of where I did wrong, and so I couldn't do the next part. can somebody please help?!
  2. jcsd
  3. Apr 24, 2010 #2

    Filip Larsen

    User Avatar
    Gold Member

    In b) you only need to calculate the population after one year, i.e. with n = 1 calculate x1 = A1 x0 = A x0. No need for eigenvalues yet.

    Also, your characteristic equation (before you start using matlab) is not entirely correct.
  4. Apr 24, 2010 #3
    what do you mean by "Also, your characteristic equation (before you start using matlab) is not entirely correct."?
  5. Apr 24, 2010 #4

    Filip Larsen

    User Avatar
    Gold Member

    Just before you turn to matlab, you write the equation "landa^2 - 0.1landa - 0.33 =0", but the 0.1 should have been 0.5. I cannot see if this is a typo so I thought I would just mention it in case you went back to solving for the eigenvalues manually (its good to check with matlab, but you should have no trouble calculating the values manually too by solving the characteristic equation).

    And, just for your information, the Greek letter is called lambda, not landa.
  6. Apr 24, 2010 #5
    yes whenever I'm doing excerise or pratice I always do the question first manually before I check it with matlab, the only time I don't do manually it anymore is when I got so used to working with those type of questions that I could mentally think the answer out, and then I check it with matlab. And yes it was I typo, ahaha! It is 0.5 instead of 0.1
    Last edited: Apr 24, 2010
  7. Apr 24, 2010 #6
    x1 = A1 x0 = A x0
    So x1= C1(-0.3765)^1(-0.8481; 0.3238) + C2(0.8765)^1(-0.7821;-0.6232)

    but since lambda 2 is the domain value it will over-run lambda 1 in the long term, therefore the state vector after 1 year will be 0.8765xk?

    or did I think too much, the state vector is simply :
    x1= C1(-0.3765)^1(-0.8481; 0.3238) + C2(0.8765)^1(-0.7821;-0.6232)
  8. Apr 25, 2010 #7

    Filip Larsen

    User Avatar
    Gold Member

    If this is for b) then you are still getting ahead of yourself. You only need to perform a simple matrix multiplication of A and x0 to get x1. In this model this is, by definition, how the state for one generation is advanced to the state for the next generation. If you were to calculate, say, the 10th generation you would have to do the multiplication 10 times to get to x10. By the way, it can be instructive to plot how the state develops over time, especially in order to prepare yourself for part d) and e).
  9. Apr 25, 2010 #8
    aha! so x1 = [0 1.1; 0.3 0.5] *[80 20]
    so say if I want to work out 10, would I do this:
    [0^10,1.1; 0.3,0.5^10]*[80,20]
  10. Apr 26, 2010 #9

    Filip Larsen

    User Avatar
    Gold Member


    No. The definition of your model really says xi+1 = A xi, that is, to get state for generation i+1 you matrix multiply A with the state vector for generation i, i.e. the previous generation. So, if you know x9 you can calculate x10 = A x9, but since x9 likewise can be written based on the state vector for the previous generation you also have x9 = A x8 which can be inserted into the equation for x10 to give x10 = A (A x8) = (A A) x8, the last step because matrix multiplication is commutative. If you continue replacing x in this fashion until you get to to x0 you arrive at x10 = (A A ... 10 times ... A) x0 = A10 x0. Just like with scalar numbers, you can think of the (integer) power of a matrix as a shorthand notation of simply multiplying out the matrix as many times as the power says.

    Your questions seem to indicate you have missed something fundamentally somewhere in your textbook. If the above explanation is all news to you, I recommend that you take some time to read up on the parts in your textbook that are relevant for this problem or you will most likely have a very tough time understanding the eigenvalues and eigenvectors.
  11. Apr 26, 2010 #10
    ar for the x10 I think I skip a bit too much steps along the way. When I think about it again now, if I want to get the x10 I would use diagnolisation and symmetry.
    so for x10 would I do the following?
    A = VDV^-1
    [0 1.1; 0.3 0.5]^10 =
    [-0.9461,-0.7821; 0.3238,-0.6232]*[-0.3765^10, 0; 0,0.8765^10]*[-0.7394, 0.9279; -0.3842, -1.1225]

    which gives:
    [0.0805, 0.2349; 0.0641, 0.1872]

    since X10 = A^10 x0, then:
    [0.0805, 0.2349; 0.0641, 0.1872]*[80;20]

    which gives:

    is this correct?
  12. Apr 26, 2010 #11

    Filip Larsen

    User Avatar
    Gold Member

    That is correct.
  13. Apr 27, 2010 #12
    yay! thanks for your help
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook