The reason that it is slow is that an fsolve command is used for every point plotted. In other words, in order to evaluate the implicit function numerically at a value of Vb, I solve equation eq numerically for pH. (Do you understand that?) From the gaps that you're getting, I guess that the fsolve may be having trouble converging for some points. What version of Maple are you using? I am not having that trouble in Maple 17. If it really matters, it may be possible to adjust some options and fill those gaps. Are you getting gaps in the plot of the primary also? I can't figure out a reason that you would only get gaps in the derivative. Both the primary and the derivative are applying fsolve to the same equation.
You can improve the speed by reducing the value of numpoints in the plots. The default value is about 200.
`f'`:= (-D/D)(F) @ (V__b-> (f(V__b),V__b)):
Why is 'f' necessary.
Are you asking why the quotes are necessary? If that's what you're asking: I wanted to name the derivative f ', that being one of the normal representations of a derivative and the one that you used. But f ' is not a valid name in Maple because it contains a special character. However, anything at all can be made into a valid name by enclosing it in back quotes (``). Does that answer your question?
And what is that @ in this line ?
The @ is how one expresses functional composition. In other words, if h(x) = f(g(x)), then h = f@g. I did it this way to separate the symbolic computation (the left side) and the numeric computation (the right side). That way the symbolic differentiation is only done one time total, and the fsolve is only done one time for each point. Does that answer your question?