How to implement backward Euler's method?
조회 수: 190 (최근 30일)
이전 댓글 표시
I am trying to implement these formulas:
Forward Euler's method:
this is what I have tried:
x_new = (speye(nv)+ dt * lambda * L) * x_old;
Is there anything wrong with this? How can I calculate this using sparse operation?
Backward Euler's method:
I have tried this:
x_new = (speye(nv)- dt * lambda * L) \ x_old;
How to implement the backward part where the existing x is calculated based on the new x? Is it OK to use division?
=============================================================================
L is a sparse matrix like this:
full(L) =
-1.0000 0.2500 0.2500 0.2500 0.2500
0.3333 -1.0000 0.3333 0 0.3333
0.3333 0.3333 -1.0000 0.3333 0
0.3333 0 0.3333 -1.0000 0.3333
0.3333 0.3333 0 0.3333 -1.0000
also for other variable we have something like this:
nv = 5;
dt = 0.01;
lambda = 0.5;
x_old = [-4 0 5;
1 -5 5;
1 0 1;
1 5 5;
1 0 0]
댓글 수: 0
답변 (1개)
Dinesh Yadav
2019년 11월 27일
Hi,
Kindly go through the following existing posts for backward euler method.
Hope it helps.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!