Solve 1D Wave Equation (Hyperbolic PDE)
25 ビュー (過去 30 日間)
古いコメントを表示
I have the following equation:
where f = 2q, q is a function of both x and t. I have the initial condition:
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 件のコメント
Bruno Luong
2018 年 10 月 22 日
編集済み: Bruno Luong
2018 年 10 月 22 日
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
2018 年 10 月 22 日
It's called hyperbolic conservation equation:
Best wishes
Torsten.
回答 (2 件)
Bruno Luong
2018 年 10 月 22 日
編集済み: Bruno Luong
2018 年 10 月 22 日
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 件のコメント
Torsten
2018 年 10 月 22 日
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).
参考
カテゴリ
Help Center および File Exchange で PDE Solvers についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!