Idiomatic iterator for a linear function
I suppose that if you don't really have a need to end member names with underscores, then you can avoid them.  Having similar names as constructor parameters won't even matter as long as you're using an initializer list.
Probably a bit nit-picky, but you may not need the precision of a double here.  If so, then you can just use floats.
With begin() and end(), you can also provide const versions (cbegin() and cend()).

Also, be careful with these names since they're also used in the STL.  You may also use slightly different names if you prefer.
If you really need operator!=, then you should also provide operator==.

In addition, it's usually preferred to define operator!= in terms of ==:

return !(xIter_ == other.xIter_);