A Markov chain graph is a directed graph without multiple edges for which each edge is assigned a weight [0,1]. For each vertex, the sum of hte values leaving that vertex is 1.

Four islands A, B, C, D annual migration patterns:
>    M := array([[.6, .1, .1, .2], [0, .7, 0, .3], [0, 0, .2, .8], [0, 0, .1, .9]]);

M := matrix([[.6, .1, .1, .2], [0, .7, 0, .3], [0, 0, .2, .8], [0, 0, .1, .9]])

>    MSqr := evalm(M^2);

MSqr := matrix([[.36, .13, .10, .41], [0., .49, .3e-1, .48], [0., 0., .12, .88], [0., 0., .11, .89]])

>    MCubed := evalm(M^3);

MCubed := matrix([[.216, .127, .97e-1, .560], [0., .343, .54e-1, .603], [0., 0., .112, .888], [0., 0., .111, .889]])

>    M30 := evalm(M^30);

M30 := matrix([[.2210739197e-6, .2231826637e-4, .1111073988, .8888700618], [0., .2253934029e-4, .1111073545, .8888701059], [0., 0., .1111111111, .8888888888], [0., 0., .1111111111, .8888888888]])


 


Not passing calculus requires taking algebra then trigonometry. The frustration matrix is given below.

>    CalcRemediation := array([[0, 0, .3, .1, .6],[.5, 0, 0, .5, 0],[0, .8, 0, .2, 0],[0, 0, 0, 1, 0],[0, 0, 0, 0, 1]]);

CalcRemediation := matrix([[0, 0, .3, .1, .6], [.5, 0, 0, .5, 0], [0, .8, 0, .2, 0], [0, 0, 0, 1, 0], [0, 0, 0, 0, 1]])

Calc, Trig, Alg, WD, Pass;

Calc, Trig, Alg, WD, Pass

>    evalm(CalcRemediation^20);

matrix([[0., .7166361600e-6, 0., .3181813458, .6818179375], [0., 0., .4478976000e-6, .6590905833, .3409089688], [.1194393600e-5, 0., 0., .7272723472, .2727264584], [0., 0., 0., 1., 0.], [0., 0., 0., 0....

68.2% go from calculus to pass, 72.7% go from algebra to withdraw.