我认为 Mathematica 不知道如何处理2nd order PDEs的这些边界条件。您希望如何返回答案?作为一般的傅立叶级数?
Mathematica Cookbook(可能还有其他地方)中提到了这一点......
分解 Mathematica 的问题(使用维度因子v->1
),您会发现
In[1]:= genSoln = DSolve[D[u[x, t], {x, 2}] == D[u[x, t], {t, 2}], u, {x, t}] // First
Out[1]= {u -> Function[{x, t}, C[1][t - x] + C[2][t + x]]}
In[2]:= Solve[u[0, t] == 0 /. genSoln]
Out[2]= {{C[1][t] -> -C[2][t]}}
In[3]:= u[l, 0] == 0 /. genSoln /. C[1][x_] :> -C[2][x] // Simplify
Out[3]= C[2][-l] == C[2][l]
解决方案被写为f(t-x)-f(t+x)
wheref
是周期性的[-l,l]
...
如果不对解决方案的平滑度做出假设,您将无法再做任何事情。
您可以检查标准傅里叶级数方法是否可行,例如
In[4]:= f[x_, t_] := Sin[n Pi (t + x)/l] - Sin[n Pi (t - x)/l]
In[5]:= And[D[u[x, t], {x, 2}] == D[u[x, t], {t, 2}],
u[0, t] == 0, u[l, 0] == 0] /. u -> f // Reduce[#, n] & // Simplify
Out[5]= C[1] \[Element] Integers && (n == 2 C[1] || n == 1 + 2 C[1])