level 2
-
楼主
大佬们,想用mathematica解一个二阶微分方程(微振动),画出x(t)和x'(t)的图像;但是t如果太大,图像会“飞”出去,所以想用for循环,利用能量守恒为判据,来确定最大的t,但不知道为什么会报错...第一次用mathematica...
x[0] = 0
x'[0] = 0.4
C = 0.5 x'[0]^2 + 1/3 x[0]^3 + 0.5 x[0]^2
For[i = 0, 0.5 x'[i]^2 + 1/3 x[i]^3 + 0.5 x[i]^2 <= C, i + 0.01,
NDSolve[{x''[t] + x[t] + x[t]^2 == 0, x[0] == 0, x'[0] == 0.6},
x, {t, 0, i}]]
ParametricPlot[Evaluate[{x[t], x'[t]} /. %], {t, 0, i}]
2022年03月31日 04点03分
1
x[0] = 0
x'[0] = 0.4
C = 0.5 x'[0]^2 + 1/3 x[0]^3 + 0.5 x[0]^2
For[i = 0, 0.5 x'[i]^2 + 1/3 x[i]^3 + 0.5 x[i]^2 <= C, i + 0.01,
NDSolve[{x''[t] + x[t] + x[t]^2 == 0, x[0] == 0, x'[0] == 0.6},
x, {t, 0, i}]]
ParametricPlot[Evaluate[{x[t], x'[t]} /. %], {t, 0, i}]
