In[]:=
ClearAll["Global`*"]​​(*inputparameters*)​​tend=2π;​​repeats=2;​​​​(*DE-system*)​​bwgl:=x''[t]+x[t]f[t]​​​​(*initialcondition*)​​x0=0;​​xdot0=0;​​​​(*solving*)​​​​(*12forceacting*)​​f[t_]:=(1-x[t])*Sin[t]​​sol1:=Reap[NDSolve[{bwgl,x'[0]xdot0,x[0]x0,WhenEvent[{x[t]0&&x'[t]<0},Sow[t]]},x,{t,0,tend}]]​​​​t1=sol1[[2,1,1]];​​x1=x/.sol1[[1,1]];​​x1dot=x'/.sol1[[1,1]];​​x1dotdot=x''/.sol1[[1,1]];​​​​(*23noforceacting*)​​f[t_]:=0​​sol2:=NDSolve[{bwgl,x'[t1]x1dot[t1],x[t1]x1[t1]},x,{t,t1,tend}]​​t2=tend;​​x2=x/.sol2[[1,1]];​​x2dot=x'/.sol2[[1,1]];​​x2dotdot=x''/.sol2[[1,1]];​​​​(*12forceacting,*)​​f[t_]:=(1-x[t])*Sin[t]​​sol1b:=Reap[NDSolve[{bwgl,x'[tend]x2dot[tend],x[tend]x2[tend],WhenEvent[{x[t]0&&x'[t]<0},Sow[t]]},x,{t,tend,repeats*tend}]]​​​​t1b=sol1b[[2,1,1]];​​x1b=x/.sol1b[[1,1]];​​x1dotb=x'/.sol1b[[1,1]];​​x1dotdotb=x''/.sol1b[[1,1]];​​​​(*23noforceacting*)​​f[t_]:=0​​sol2b:=NDSolve[{bwgl,x'[t1b]x1dotb[t1b],x[t1b]x1b[t1b]},x,{t,t1b,repeats*tend}]​​t2b=repeats*tend;​​x2b=x/.sol2b[[1,1]];​​x2dotb=x'/.sol2b[[1,1]];​​x2dotdotb=x''/.sol2b[[1,1]];​​​​(*plots*)​​xAll[t_]:=
x1[t]
0≤t≤t1
x2[t]
t1<t≤tend
x1b[t]
tend<t≤t1b
x2b[t]
t1b<t≤repeats*tend
​​xdotAll[t_]:=
x1dot[t]
0≤t≤t1
x2dot[t]
t1<t≤tend
x1dotb[t]
tend<t≤t1b
x2dotb[t]
t1b<t≤repeats*tend
​​Plot[xAll[t],{t,0,repeats*tend}]​​Plot[xdotAll[t],{t,0,repeats*tend}]
Out[]=
Out[]=