def generator():1t = var("t")2y,yp = mi_vars("y","y'")34# pick n for y=kx^n5n = randrange(2,6)*choice([-1,1])6# pick initial value7t0 = choice([-1,1])8# pick coefficient9k = randrange(1,5)*choice([-1,1])10hom_sol = k*t^n11# particular solution12kp = randrange(1,6)*choice([-1,1])13m = n14while m==n:15m = randrange(1,5)*choice([-1,1])16part_sol = kp*t^m17ts = n*part_sol-t*part_sol.diff()18ode = shuffled_equation(ts,t*yp,-n*y)19ivp_sol = (y==k*t^n+part_sol)20y0 = k*t0^n+kp*t0^m2122return {23"ode": ode,24"t0": t0,25"y0": y0,26"ivp_sol": ivp_sol,27}282930