level 2
u2 - 1应该是u2[t],当然这是小问题。NDSolve是不能直接处理这个问题,最简单的处理方法似乎是,用个连续函数近似阶跃:
appro = With[{k = 10^6}, ArcTan[k #]/Pi + 1/2 &];
w=50;
tst = NDSolveValue[{D[u2[t], {t, 2}] + D[u2[t], t] + u2[t] ==
Sin[w t] + appro[u2[t] - 1], u2[0] == u2[1/w], u2'[0] == u2'[1/w]},
u2, {t, -(1/w), 1/w}]
tst // ListLinePlot

进一步的试验表明这问题并不止一组解:w = 50; psol =
ParametricNDSolveValue[{D[u2[t], {t, 2}] + D[u2[t], t] + u2[t] ==
Sin[w t] + appro[u2[t] - 1], u2[0] == a, u2'[0] == b}, u2, {t, -1/w, 1/w}, {a, b}]
para =
FindRoot[{psol[a, b][1/w] == a, psol[a, b]'[1/w] == b}, {{a, 1.1}, {b, 0}}]
(* {a -> 1.45969, b -> 0.00142548} *)
ListLinePlot[psol[a, b] /. para, PlotRange -> All]

para =FindRoot[{psol[a, b][1/w] == a, psol[a, b]'[1/w] == b}, {{a, -1}, {b, 1}}]
(* {a -> 0.459693, b -> 0.00142549} *)
