Using the backward Euler and upwinding to solve the viscous Burgers equation

21 次查看(过去 30 天)
I wish to solve the following partial differential equation:
I have had some success using the backward Euler method for other linear equations and the upwinding approach. When I have tried it for the viscous burgers equation, it seems to have failed after the first step, and I have no idea why.
Can anyone point to where it seems to have gone wrong?

采纳的回答

Mat Hunt
Mat Hunt 2023-7-14
This issue was the size of b, I reduced this and it worked perfectly. I find this odd as backward Euler is touted to be unconditionally convergent.

更多回答(1 个)

Torsten
Torsten 2023-7-14
移动:Torsten 2023-7-14
Why don't you use ode15s to solve the semi-discretized system of ordinary differential equations ?
Look up "method-of-lines" for more details.
Or even better: "pdepe" is your friend.
  5 个评论
Torsten
Torsten 2023-7-14
编辑:Torsten 2023-7-14
Advanced integration methods make the solvers more sensitive, and they might give up even if continuing would still yield a good solution. But integrating without adaptive stepsize to control the error you make in the solution is no alternative in my opinion.
But I don't want to critisize your coding - I have the impression that you work responsibly :-)
Mat Hunt
Mat Hunt 2023-7-14
Coding up is not the problem, it's the numerical method that is the thing which is somewhat elusive.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

产品


版本

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by