I tried plotting the following functions.
s = With[{p = 70., q = 100., r = 100., c = 10.}, NDSolve[{z'[x] == r - (c/(1 + y[x])), y'[x] == (p - y[x] (q + c/(1. + y[x])))/(z[x]) - (y[x] z'[x])/ z[x], z[0] == 200., y[0] == 0.}, {z, y}, {x, 0, 20000}]]
Plot[Evaluate[{y[x], 0.35 - 14000 ((100 x + 200)^(-2)), 0.35 - 32679.166 ((92.593 x + 200)^(-2.1599))} /. s], {x, 0, 20000}, PlotStyle -> Automatic]
But after plotting, the y-axis is displaying a single value 0.35.
I tried including PlotRange as:
Plot[Evaluate[{y[x], 0.35 - 14000 ((100 x + 200)^(-2)), 0.35 - 32679.166 ((92.593 x + 200)^(-2.1599))} /. s], {x, 0, 20000}, PlotRange -> {All, {0.1, 0.35}},PlotStyle -> Automatic]
But, this code changed the nature of the curves though displayed the y-axis values correctly.
Evaluate
on a separate line and just feed Plot the final function, not an expression that resolves to the final function $\endgroup${y[0],y[1],y[10],y[100],y[1000],y[10000]}/.s
I get{{0.,0.196555,0.341764,0.349918,0.349999,0.35}}
meaning, if we trust the outputNDSolve
for the moment, that $y(x)$ seems to converge to $0.35$ as $x \to \infty$. It is very close to $0.35$ already for $x=10$, and your plot interval{x,0,20000}
is huge. The other two functions that you plot are also close to $0.35$. Therefore, why does the plot surprise you? Try changing the plot interval to{x,0,10}
. $\endgroup$