Solve 1D Wave Equation (Hyperbolic PDE)
5 views (last 30 days)
Show older comments
I have the following equation:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/192105/image.png)
where f = 2q, q is a function of both x and t. I have the initial condition:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/192106/image.png)
where sigma = 1/8, x lies in [-1,1]. There is also a boundary condition that q(-1) = q(+1).
How do I solve this (get the function q(x,t), or at least q(x) at some particular time t) in Matlab? Can it be done using ODE45? Or do I have to use some PDE solver? Thank you!
2 Comments
Bruno Luong
on 22 Oct 2018
Edited: Bruno Luong
on 22 Oct 2018
In my book, this equation is a transport equation or convection. It's not an hyperbolic PDE (or wave equation) which is a second order equation.
Torsten
on 22 Oct 2018
It's called hyperbolic conservation equation:
Best wishes
Torsten.
Answers (2)
Bruno Luong
on 22 Oct 2018
Edited: Bruno Luong
on 22 Oct 2018
In my book, this equation is a transport equation or convection. It's not an hyperbolic PDE (or wave equation) which is a second order equation.
One can solve it by characteristics equation, meaning look for a curve x(t) such that dx/dt = 2.
x(t) = x(t=0) + 2*t.
Now if you define
p(t) = q(t,x(t))
then dp/dt = dq/dt + dq/dx*dx/dt = dq/dt + 2 * dq/dx = dq/dt + df/dx = 0.
Meaning p(t) is constant on the characteristic curve x(t).
q(t,x) = p(t,x0+2*t) = p(0,x0) = q(0,x-2*t) = exp((x-2*t)^2/(2*sigma))
provide (x-2*t) is in (-1,1), the place where the caracteristics lines cut the interval t=0, x in (-1,1).
The rest of the domain you can fill with anything that respects q(1)=q(-1), it doesn't matter.
1 Comment
Torsten
on 22 Oct 2018
I think you'll have to periodically continue the function given at t=0 and advect this function with velocity +2. So if the periodically continued function is called q_per(x) (now defined on all of IR), the solution of the PDE is q(x,t) = q_per(x-2*t).
See Also
Categories
Find more on Boundary Conditions in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!