Wolfram Mathematica のDSolve機能を使用して、駆動減衰振動子の解を導出しました。私は次の Ansatz を選択しました。
DSolve[{
0 == -Fmax (1 - Cos[t]) + k x[t] +
d Derivative[1][x][t] +
m Derivative[2][x][t],
x[0] == xStart, x'[0] == vStart}, x[t], t]
Mathematica はこれを解析的に解くことができ、変数にパラメータを渡せば解を導き出すことができます。
とにかく、導出された解は現時点では失敗し、質量 (m)、ばね定数 (k)、および減衰 (d) の指定されたパラメータは、非周期的挙動の条件を満たす
d=2*Sqrt[m*k]
ゼロによる除算が発生するためです。全体の解は、分母が次の係数を含む大きな分数で与えられます。
Sqrt[d^2 - 4 k m]
この係数は、ゼロによる除算につながる非周期的な条件が発生した場合にゼロになります。
ここから楽しみが始まります... システムを DSolve に渡す前に、非周期条件を渡します。
DSolve[{
0 == -Fmax (1 - Cos[t]) + k x[t] +
2 Sqrt[k m] Derivative[1][x][t] +
m Derivative[2][x][t],
x[0] == xStart, x'[0] == vStart}, x[t], t]
DSolve は、ゼロで除算せずに実用的な解を簡単に導出します。
Mathematica はより一般的な解法を単純化しているように思えますが、その場合には有効な解法がありますが、非周期条件を使用できなくなります。私の質問は、DSolve に非周期条件を考慮に入れるように伝えることはできますか?
確かに、Piecewise[] を使用して問題を回避できますが、さらに計算するには、Piecewise[] を使用しない一般的なソリューションの方が適しています。
あなたの時間と助けを前もってありがとう、
こんにちはツチビ