Added January 10, 2020.
Solve
Boundary conditions on
And boundary conditions on
Initial conditions
Mathematica ✗
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == c^2*Laplacian[u[x, y, t], {x, y}]; ic = {Derivative[0, 0, 1][u][x, y, 0] == g[x, y], u[x, y, 0] == f[x, y]}; bc = {u[0, y, t] == 0, u[0, H, t] == 0, u[x, 0, t] == 0, u[x, L, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, bc, ic}, u[x, y, t], {x, y, t},Assumptions -> {H > 0, L > 0, c > 0}], 60*10]];
Failed
Maple ✓
restart; pde := diff(u(x, y, t), t$2) = c^2*VectorCalculus:-Laplacian(u(x,y,t),[x,y]); bc := u(0,y,t)=0, u(L,y,t)=0, u(x, 0, t) = 0, u(x, H, t) = 0; ic := u(x, y, 0) = f(x,y),(D[3](u))(x, y, 0) = g(x,y); cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde,bc,ic],u(x,y,t))assuming L>0,H>0),output='realtime')); sol := subs(n1=m,sol);
Failed to convert to latex
Hand solution
Assuming
Therefore
The time ODE becomes
Or
Solving for
Therefore the
Hence the
Combining all solutions, and merging all constants into two results in
Initial conditions are now used to find
Applying first initial condition to (1) gives
Taking time derivative of (1) gives
At
Summary of solution
____________________________________________________________________________________
Added January 10, 2020.
Solve
Boundary conditions on
And boundary conditions on
Initial conditions
Using
Mathematica ✗
ClearAll["Global`*"]; L=1;H=2;c=1/10; f[x_,y_]:=x*Cos[y]; g[x_,y_]:=0; pde = D[u[x, y, t], {t, 2}] == c^2*Laplacian[u[x, y, t], {x, y}]; ic = {Derivative[0, 0, 1][u][x, y, 0] == g[x, y], u[x, y, 0] == f[x, y]}; bc = {u[0, y, t] == 0, u[0, H, t] == 0, u[x, 0, t] == 0, u[x, L, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, bc, ic}, u[x, y, t], {x, y, t}], 60*10]];
Failed
Maple ✓
restart; L:=1; H:=2; c:=1/10; f:=(x,y)->x*cos(y); g:=(x,y)->0; pde := diff(u(x, y, t), t$2) = c^2*VectorCalculus:-Laplacian(u(x,y,t),[x,y]); bc := u(0,y,t)=0, u(L,y,t)=0, u(x, 0, t) = 0, u(x, H, t) = 0; ic := u(x, y, 0) = f(x,y),(D[3](u))(x, y, 0) = g(x,y); cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde,bc,ic],u(x,y,t))),output='realtime')); sol := subs(n1=m,sol);
Hand solution
The basic solution for this type of PDE was already given in problem 5.2.1.1 on page 1492 as
In this problem
Hence the solution becomes
But
Hence the solution simplifies to
Animation is below
Source code used for the above
____________________________________________________________________________________
Added June 17, 2019
Solve for
Solve
With initial conditions
And
Mathematica ✓
ClearAll["Global`*"]; L=2; H=3; c=1/3; f1[x_] :=Piecewise[{{x, x < L/2}, {L - x, x > L/2}}]; f2[y_] := Piecewise[{{y, y < H/2}, {H - y, y > H/2}}]; pde = D[u[x, y, t], {t, 2}] == c^2 * Laplacian[u[x, y, t], {x, y}]; ic = {u[x, y, 0] == 3*f1[x]*f2[y], Derivative[0, 0, 1][u][x, y, 0] == 0}; bc = {u[x, 0, t] == 0, u[0, y, t] == 0, u[L, y, t] == 0, u[x, H, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, ic, bc}, u[x, y, t], {x, y, t}], 60*10]]; sol = sol /. {K[1] -> n, K[2] -> m};
Maple ✓
restart; L := 2; H := 3; c := 1/3; f1 := x-> piecewise(x < L/2,x, x > L/2,L - x); f2 := y-> piecewise(y < H/2,y, y > H/2,H - y); pde := diff(u(x, y, t), t$2) = c^2* VectorCalculus:-Laplacian(u(x, y, t), 'cartesian'[x, y]); ic := u(x,y,0)=3*f1(x)*f2(y),D[3](u)(x,y,0)=0; bc := u(x,0,t)=0,u(0,y,t)=0,u(L,y,t)=0,u(x,H,t)=0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde, ic,bc], u(x, y, t))),output='realtime')); sol := subs(n1=m,sol);
Hand solution
The basic solution for this type of PDE was already given in problem 5.2.1.8 on page 1533
as
In this problem
And
Source code used for the above
The following shows selected modes. For example, for
|
|
animation |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
||
____________________________________________________________________________________
Added June 18, 2019
Solve for
Solve
With initial conditions
And
Where
Mathematica ✓
ClearAll["Global`*"]; L = 20; H = 30; c = 1/3; f1[x] := Piecewise[{{1,45/100*L <= x<= 55/100*L},{0,True}}]; f2[y] := Piecewise[{{1,45/100*H<= y<= 55/100*H},{0,True}}]; pde = D[u[x, y, t], {t, 2}] == c^2 * Laplacian[u[x, y, t], {x, y}]; ic = {u[x, y, 0] == f1[x]*f2[y], Derivative[0, 0, 1][u][x, y, 0] == 0}; bc = {u[x, 0, t] == 0, u[0, y, t] == 0, u[L, y, t] == 0, u[x, H, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, ic, bc}, u[x, y, t], {x, y, t}], 60*10]]; sol = sol /. {K[1] -> n, K[2] -> m};
Maple ✓
restart; L := 20; H := 30; c := 1/3; f1 := x-> piecewise(x>45/100*L and x< 55/100*L,1, true,0); f2 := y-> piecewise(y>45/100*H and y< 55/100*H,1, true,0); pde := diff(u(x, y, t), t$2) = c^2* VectorCalculus:-Laplacian(u(x, y, t), 'cartesian'[x, y]); ic := u(x,y,0)=f1(x)*f2(y),D[3](u)(x,y,0)=0; bc := u(x,0,t)=0,u(0,y,t)=0,u(L,y,t)=0,u(x,H,t)=0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde, ic,bc], u(x, y, t))),output='realtime')); sol := subs(n1=m,sol);
Hand solution
The basic solution for this type of PDE was already given in problem 5.2.1.8 on page 1533
as
In this problem
Where
Source code used for the above
____________________________________________________________________________________
Taken from Mathematica helps pages on DSolve
Solve for
Solve
With initial conditions
Mathematica ✓
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == Laplacian[u[x, y, t], {x, y}]; ic = {u[x, y, 0] == (1/10)*(x - x^2)*(2*y - y^2), Derivative[0, 0, 1][u][x, y, 0] == 0}; bc = {u[x, 0, t] == 0, u[0, y, t] == 0, u[1, y, t] == 0, u[x, 2, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, ic, bc}, u[x, y, t], {x, y, t}], 60*10]]; sol = sol /. {K[1] -> n, K[2] -> m}; sol = Assuming[Element[{n, m}, Integers], FullSimplify[sol]];
Maple ✓
restart; pde := diff(u(x, y, t), t$2) = VectorCalculus:-Laplacian(u(x, y, t), 'cartesian'[x, y]); ic := u(x,y,0)=(1/10)*(x-x^2)*(2*y-y^2),(D[3](u))(x,y,0)=0; bc := u(x,0,t)=0,u(0,y,t)=0,u(1,y,t)=0,u(x,2,t)=0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde, ic,bc], u(x, y, t))),output='realtime')); sol := subs(n1=m,sol);
____________________________________________________________________________________
Added Nov 27, 2018.
This is problem 8.5.5 part(a) from Richard Haberman applied partial differential equations 5th edition.
Solve the initial value problem for membrane with time-dependent forcing and fixed
boundaries
See my HW9, Math 322, UW Madison.
Mathematica ✓
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == c^2*Laplacian[u[x, y, t], {x, y}] + Q[x, y, t]; ic = {u[x, y, 0] == f[x, y], Derivative[0, 0, 1][u][x, y, 0] == 0}; bc = {u[0, y, t] == 0, u[L, y, t] == 0, u[x, 0, t] == 0, u[x, H, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, ic, bc}, u[x, y, t], {x, y, t}, Assumptions -> {L > 0, H > 0, t > 0, c > 0}], 60*10]];
Maple ✗
restart; interface(showassumed=0); pde := diff(u(x,y,t),t$2)=c^2*(diff(u(x,y,t),x$2)+diff(u(x,y,t),y$2))+Q(x,y,t); bc := u(0,y,t)=0,u(L,y,t)=0,u(x,0,t)=0,u(x,H,t)=0; ic := u(x,y,0)=f(x,y), eval( diff(u(x,y,t),t),t=0)=0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde,bc,ic],u(x,y,t)) assuming L>0,H>0,c>0,t>0),output='realtime'));
sol=()
____________________________________________________________________________________
Taken from Maple PDE help pages. This wave PDE inside square with free to move on left
edge and right edge, and top and bottom edges are fixed. It has zero initial velocity, but
given a non-zero initial position. Where
Solve
With initial conditions
Mathematica ✓
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == (1*(D[u[x, y, t], {x, 2}] + D[u[x, y, t], {y, 2}]))/4; ic = {Derivative[0, 0, 1][u][x, y, 0] == 0, u[x, y, 0] == x*y*(Pi - y)}; bc = {Derivative[1, 0, 0][u][0, y, t] == 0, Derivative[1, 0, 0][u][Pi, y, t] == 0, u[x, 0, t] == 0, u[x, Pi, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, bc, ic}, u[x, y, t], {x, y, t}], 60*10]];
Maple ✓
restart; pde := diff(u(x, y, t), t, t) = (1/4)*(diff(u(x, y, t), x, x))+(1/4)*(diff(u(x, y, t), y, y)); bc := (D[1](u))(0, y, t) = 0, (D[1](u))(Pi, y, t) = 0, u(x, 0, t) = 0, u(x, Pi, t) = 0; ic := u(x, y, 0) = x*y*(Pi-y),(D[3](u))(x, y, 0) = 0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde,bc,ic],u(x,y,t))),output='realtime')); sol := subs(n1=m,sol);
____________________________________________________________________________________
Added June 16, 2019
Solve for
Solve
With initial conditions
Mathematica ✓
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == c^2 * Laplacian[u[x, y, t], {x, y}]; ic = {u[x, y, 0] == f[x,y], Derivative[0, 0, 1][u][x, y, 0] == 0}; bc = {u[x, 0, t] == 0, u[0, y, t] == 0, u[L, y, t] == 0, u[x, H, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, ic, bc}, u[x, y, t], {x, y, t}], 60*10]]; sol = sol /. {K[1] -> n, K[2] -> m};
Maple ✗
restart; pde := diff(u(x, y, t), t$2) = c^2* VectorCalculus:-Laplacian(u(x, y, t), 'cartesian'[x, y]); ic := u(x,y,0)=f(x,y),D[3](u)(x,y,0)=0; bc := u(x,0,t)=0,u(0,y,t)=0,u(L,y,t)=0,u(x,H,t)=0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde, ic,bc], u(x, y, t))),output='realtime')); sol := subs(n1=m,sol);
time expired
Hand solution
Solve for
Let
Hence
The time ODE becomes
Using a new separation variable
Or
And
Solving first for the
Therefore the eigenfunctions
Hence the solution for
Hence the
Combining all solution , and merging all constants into two results in
Initial conditions are now used to find
Applying first initial condition to (1) gives
Taking time derivative of (1) gives
AT
Summary of solution
____________________________________________________________________________________
Taken from Maple PDE help pages. This wave PDE inside square with damping present.
Membrane is free to move on the right edge and also on top edge. But fixed at left edge and bottom edge.
It has zero initial position, but given a non-zero initial velocity. Where
With initial conditions
Mathematica ✓
ClearAll["Global`*"]; pde = D[u[x, y, t], {t, 2}] == (1*(D[u[x, y, t], {x, 2}] + D[u[x, y, t], {y, 2}]))/4 - (1*D[u[x, y, t], t])/10; ic = {u[x, y, 0] == 0, Derivative[0, 0, 1][u][x, y, 0] == x*(1 - (1/2)*x)*(1 - (1/2)*y)*y}; bc = {u[0, y, t] == 0, Derivative[1, 0, 0][u][1, y, t] == 0, u[x, 0, t] == 0, Derivative[0, 1, 0][u][x, 1, t] == 0}; sol = AbsoluteTiming[TimeConstrained[DSolve[{pde, bc, ic}, u[x, y, t], {x, y, t}], 60*10]];
Maple ✓
restart; pde := diff(u(x, y, t), t$2) = 1/4*(diff(u(x, y, t), x$2)+diff(u(x, y, t), y$2))-(1/10)*(diff(u(x, y, t), t)); bc := u(0, y, t) = 0, (D[1](u))(1, y, t) = 0, u(x, 0, t) = 0, (D[2](u))(x, 1, t) = 0; ic := u(x, y, 0) = 0, (D[3](u))(x, y, 0) = x*(1-(1/2)*x)*(1-(1/2)*y)*y; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve([pde, ic,bc], u(x, y, t))),output='realtime')); sol := subs(n1=m,sol);
____________________________________________________________________________________
From Mathematica DSolve help pages.
Hyperbolic partial differential equation with non-rational coefficients.
Solve for
Mathematica ✓
ClearAll["Global`*"]; ode = D[u[x, y], {x, 2}] - 2*Sin[x]*D[u[x, y], x, y] - Cos[x]^2*D[u[x, y], {y, 2}] - Cos[x]*D[u[x, y], y] == 0; sol = AbsoluteTiming[TimeConstrained[DSolve[ode, u[x, y], {x, y}], 60*10]];
Maple ✗
restart; interface(showassumed=0); ode := diff(u(x, y), x$2) - 2*sin(x)*diff(u(x, y),x,y)-cos(x)^2*diff(u(x, y), y$2) - cos(x)*diff(u(x, y), y) = 0; cpu_time := timelimit(60*10,CodeTools[Usage](assign('sol',pdsolve(ode, u(x, y))),output='realtime'));
sol=()
____________________________________________________________________________________