# Tag Info

0

In order to make my answer more comprehensible I decoupled the set of equations first: (*1*) H[n+1]==7/10*H[n](17/7-H[n]) (*2*) h[n+1]==7/10*h[n](3/7+h[n]) with the constraints: (h[n]+H[n]==1) && (0<=H[n]<=1) && (0<=h[n]<=1) These can be obtained by using h[n]+H[n]==1. The recurence relations can now be solved independently. ...

2

You could also just program iteratively: f[{x_, y_}] := With[{ch = {1, 0.7 x}.{x, y}}, {ch, 1 - ch}] hdt[p_, n_] := Transpose@NestList[f, {p, 1 - p}, n] If you just want $\{H(n),h(n)\}$ for starting values $\{H(0),h(0)\}=\{p,1-p\}$: hd[p_, n_] := Nest[f, {p, 1 - p}, n]; Visualizing: lp[p_] := ListPlot[hdt[p, 10], Joined -> True, PlotMarkers -> ...

0

You could also do something like: GraphicsRow[ListLinePlot@Transpose@RecurrenceTable[{ H[n + 1] == N@(1 + (7 h[n])/10) H[n], h[n + 1] == N@1 - (1 + (7 h[n])/10) H[n], H[0] == #/100, h[0] == 1/2}, {H[n], h[n]}, {n, 1, 15}] & /@ {179, 180}]

2

I know it doesn't answer your question directly, but with the definition above, your function H[n] asymptotically approaches 1 pretty fast regardless of the starting value H[0]: (* Generates a table for the first 20 values of H given H[0] == alpha *) f[alpha_] := Module[{H}, H[0] = alpha; H[n_] := H[n] = H[n - 1] (1 + .7 (1 - H[n - 1])); Table[H[n], ...

2

Finally I got a feedback from Wolfram support on the AMD algorithm. It turned out that there is (almost as usual) an undocumented implementation of the AMD algorithm within Mathematica. The algorithm is exactly identical to the MATLAB implementation, thus exactly what I was looking for. By calling SparseArray`ApproximateMinimumDegree[m_Matrix] one gets ...

Top 50 recent answers are included