给定边界条件时,Mathematica不解波动方程

Nic*_*ick 4 math wolfram-mathematica wave

Mathematica语法还是新手.当我做:

DSolve[{
  D[u[x, t], {x, 2}] == (1/(v*v))*D[u[x, t], {t, 2}],
  u[0, t] == 0,
  u[l, 0] == 0
  }, u, {x, t}]
Run Code Online (Sandbox Code Playgroud)

它只是返回我输入的内容

DSolve[{(u^(2,0))[x,t]==(u^(0,2))[x,t]/v^2,u[0,t]==0,u[l,0]==0},u,{x,t}]
Run Code Online (Sandbox Code Playgroud)

但是,当我删除边界条件时,我得到了

{{u->Function[{x,t},C[1][t-(Sqrt[v^2] x)/v^2]+C[2][t+(Sqrt[v^2] x)/v^2]]}}
Run Code Online (Sandbox Code Playgroud)

用C [1]和C [2]表示边界条件的函数.

任何人都知道为什么会这样吗?

Nas*_*ser 5

2件事:

  1. 你不需要比2更多的边界和初始条件吗?您在左侧和右侧有二阶导数,每个都需要2个条件.因此总数为4.请参阅http://mathworld.wolfram.com/WaveEquation1-Dimensional.html

  2. 我认为DSolve或NDSolve不能解决初始值和边值问题吗?我似乎已经在某个地方读过这个了.现在没时间检查.