Solution to ODE $ x'= x^3+ \sin( t)$ and showing it has a periodic solution

The cubic term provides positive feedback which causes exploding solutions in positive time direction with poles of the form $x(t)\approx\pm(2(t_*-t))^{-1/2}$.

Thus look at the reversed time direction. To have the more "intuitive" forward time direction consider $y(t)=x(-t)$. Then $$ y'(t)=-y(t)^3+\sin(t). $$ The same cubic term now provides negative feedback, moving large $y$ in the direction of the interval $[-1,1]$.

On the line $y=2$ we find that the slope $y'=-8+\sin(t)\le -7$ points down towards $0$, the same on the line $y=-2$ where $y'=8+\sin(t)\ge 7$ points upwards towards $0$. In conclusion, solutions starting in $[-2,2]$ stay inside that interval.

Let $f(a)$ denote the value $y(2\pi)$ of a solution for the initial value $y(0)=a$. If $\phi(t;t_0,y_0)$ is the flow, then $f(a)=ϕ(2\pi;0,a)$. $f$ is a continuous map from the interval $[-2,2]$ into itself. Thus there is at least one fixed point. The solution(s) to the fixed point(s) are $2\pi$-periodic.

streamplot with solutions black - periodic solution, red - nullcline $y=\sqrt[3]{\sin(t)}$

import numpy as np
import matplotlib.pyplot as plt 
from scipy.integrate import odeint

def eqn(y,t): return -y**3+np.sin(t)
# flow
def f(a): return odeint(eqn, [a], [0, 2*np.pi], atol=1e-10, rtol=1e-9)[-1,0]
# apply simple fixed-point iteration
a=0.0
for k in range(15): print k, a; a = f(a)
tsol = np.linspace(0, 2*np.pi, 701)
ysol = odeint(eqn, [a], tsol, atol=1e-10, rtol=1e-9)

# generate streamplot
T, Y = np.meshgrid(np.arange(0, 6.35, 0.1), np.arange(-2, 2.05, 0.1))
dotT = 0*T+1
dotY = eqn(Y,T)

plt.streamplot(T, Y, dotT, dotY, density=2.5)
plt.plot(tsol, np.cbrt(np.sin(tsol)),'r',tsol, ysol,'k')
plt.grid(); plt.show()