在对微分方程进行数值求解并绘制结果后,我想确定绘图范围内的单个最大值,但不知道如何操作。
下面的代码可以用于数值求解微分方程和绘制结果。
下面的代码可以用于数值求解微分方程和绘制结果。
s = NDSolve[{x''[t] + x[t] - 0.167 x[t]^3 == 0.005 Cos[t + -0.0000977162*t^2/2], x[0] == 0, x'[0] == 0}, x, {t, 0, 1000}]
Plot[Evaluate[x[t] /. s], {t, 0, 1000},
Frame -> {True, True, False, False}, FrameLabel -> {"t", "x"}, FrameStyle -> Directive[FontSize -> 15], Axes -> False]
FindMaximum[]
的原因是什么呢? :) - user414706NMaximize[]
(默认情况下为Nelder-Mead)的机制有点浪费,当然可以使用FindMaximum[]
的方法。当然,在优化之前绘图的原因是这些迭代方法倾向于偏离良好的起始点(即GIGO)。 - user414706