mathematica绘制一维波动方程曲线,

问题描述:

mathematica绘制一维波动方程曲线,
对于d2u(x,t)/dt2-c^2*d2u(x,t)/dx2=0,0

你给的初始条件这个 u(x,0)=d sin(2 pi x) 好像不对吧,d难道是系数吗?是的,d是个系数!如果你是要画Plot3D的话,那么应该是求微分方程的数值解,因此要指定c,d的值,并用NDSolve求解。 c = 2; d = 1; sol = NDSolve[{Derivative[0, 2][u][x, t] - 4*Derivative[2, 0][u][x, t] == 0, Derivative[0, 1][u][x, 0] == 0, u[x, 0] == Sin[2*Pi*x], u[0, t] == 0, u[1, t] == 0},u, {x, 0, 1}, {t, 0, Pi}, MaxStepSize -> 0.001]求解出来的结果是一个插值形式的函数,你要用替换的方式才能转化成Plot3D能画的函数。 注意解方程和画图,运行时间都是很慢的,因为求解PDE真的很复杂。 Plot3D[Evaluate[u[x, t] /. sol], {x, 0, 1}, {t, 0, Pi}, PlotPoints -> 45, Mesh -> {25, 30}, PlotStyle -> Directive[Yellow, Specularity[White, 20], Opacity[0.8]]]