Since you want a symmetric set of points around 0, first generate a set on the positive side of the origin, then just flip them around.
b = 5;
N = 25;
a = b / N % This is just dpB/2, since you multiply then divide by 2.
So I'll generate a set of points that runs effectively down from b to a, with increasing spacing as it moves towards a. What is the geometric increment?
geoinc = nthroot(b/a,N-1)
t = geoinc.^(0:N-1);
V = a + b - a*flip(t)
So the spacing increases as you move towards a, away from b, and it does so in geometric fashion. Now just duplicate the set, negating them.
V = [flip(-V),V]
plot(V,'o')
So easy enough. But no, I won't even try to tweak your code. Far better to learn to use MATLAB as it is designed to be used, manipulating vectors and arrays.