'Changes the point `x0` to `b` for initial conditions.
Examples
>>> from sympy.holonomic import expr_to_holonomic
>>> from sympy import symbols, sin, cos, exp
>>> x = symbols(\'x\')
>>> expr_to_holonomic(sin(x)).change_ics(1)
HolonomicFunction((1) + (1)*Dx**2, x, 1, [sin(1), cos(1)])
>>> expr_to_holonomic(exp(x)).change_ics(2)
HolonomicFunction((-1) + (1)*Dx, x, 2, [exp(2)])'

def change_ics(self, b, lenics=None):

    symbolic = True
    if ((lenics == None) and (len(self.y0) > self.annihilator.order)):
        lenics = len(self.y0)
    dom = self.annihilator.parent.base.domain
    try:
        sol = expr_to_holonomic(self.to_expr(), x=self.x, x0=b, lenics=lenics, domain=dom)
    except (NotPowerSeriesError, NotHyperSeriesError):
        symbolic = False
    if (symbolic and (sol.x0 == b)):
        return sol
    y0 = self.evalf(b, derivatives=True)
    return HolonomicFunction(self.annihilator, self.x, b, y0)
