利用Wolfram Mathematica的DSolve进行非周期条件驱动阻尼振荡器的解析解

时间:2016-08-30 11:11:57

标签: wolfram-mathematica physics dsolve

我使用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 []的一般解决方案会更合适。

提前感谢您的时间和帮助,

问候 Tschibi

0 个答案:

没有答案