# Plotting solutions to Solve for various parameter values

I want to plot the solutions to Solve for various values of the parameter m. The trouble is that I can't simply find the solution in terms of m, and then use Table and ListLinePlot, because for some values of m my quartic reduces to a quadratic and so then I get division by zero when I substitute m into the general solution. So what I need to do is have the code sub in different values of m into Solve, prior to solving. I was thinking I might want to use some kind of for loop but I wasn't sure the best way to code this in Mathematica. Any suggestions? Below are the equations I am subbing into Solve.

bet = 0.001
fc1 = (2/8)^2;
fc2 = (3/8)^2
N1p = N1*(1 - m) + N2*m;
N2p = N2*(1 - m) + N1*m;
b1 = 1 - bet*N1p - fc1;
b2 = 1 - bet*N2p - fc2;
ans = Solve[{N1 == N1p*b1*2, N2 == N2p*b2*2}, {N1, N2}]


I would like to plot m for values between 0 and 1, and I am only interested in the real solutions.

• Neither d nor alph appear in the equations. No effort to ask a reliable question. Aug 13 '16 at 15:12
• Sorry, I missed d and alph. In what other ways could I make this question more reliable? Aug 14 '16 at 10:33

You don't say what range you want, and when $m<0.3$, there are multiple solutions, but you might want to do something like this?

ans = Table[
Solve[{N1 == N1p*b1*2, N2 == N2p*b2*2}, {N1, N2}, Reals][[2]], {m,
0.3, 20, 0.1}];

ListPlot[{N1, N2} /. ans]


bet = 1/1000;
fc1 = (2/8)^2;
fc2 = (3/8)^2;
N1p = N1*(1 - m) + N2*m;
N2p = N2*(1 - m) + N1*m;
b1 = 1 - bet*N1p - fc1;
b2 = 1 - bet*N2p - fc2;

ans = {N1, N2} /.
Solve[{N1 == N1p*b1*2, N2 == N2p*b2*2}, {N1, N2}, Reals] //
Simplify;

Grid[
Partition[
ParametricPlot[#, {m, -20, 20},
Frame -> True, Axes -> False,
FrameLabel ->
(Style[#, Bold, 14] & /@ {"N1", "N2"}),
PlotPoints -> 150,
AspectRatio -> 1,
ImageSize -> 252] & /@ ans, 2]]