Alan,
I have revisited the Anchor pde; I have several remarks and questions.
Anchor-Style PDE (See Anchor article)
2020-3-16
https://onlinelibrary.wiley.com/doi/epd ... wilm.10366
(A)
For large asymptotic t values the solution of the parabolic PDE(x,y,t) converges to the solution of the corresponding elliptic PDE(x,y) (Friedman 1992).
(B)
The MOL solution leads to system of ODEs [$]\frac{\partial u}{\partial t} + Au = F[$]. If [$]A[$] is an M-matrix then the solution for large [$]t[$] is the solution of [$]Au = F [$](Varga 1962).
(C)
The Saul’yev ADE method is accurate and very fast. For example, in the case T = 1, run-time is 0.15 seconds on a normal laptop. The MOL works well also but in general 60 times slower than ADE. I haven’t checked, but I suspect that other FD methods would also be slower, e.g. ADE B&C is [2.3] times slower than Saul’yev ADE.
(D)
I have no idea how to measure the rate of convergence of the results in (A) and (B), although in case (B) there might be a glimpse of hope if we knew what the smallest eigenvalues of the matrix A are (slow transients).
(E)
For Anchor ADE, the boundary conditions in both x and y have little impact on accuracy.
(F)
At the time, why did the authors not use a similarity reduction R = S/A (admittedly, it remains a trick and breaks down in this case)?
(G)
For T = 10, K = 140 (NX = NY = 300) MOL C = 28.7023, Time = 13734 seconds (Alan gets Call = 28.629 but no Time given). Table 2 of Anchor article. For ADE, we got
NX, NY, NT; Call, Timing (seconds)
300,300,2000;28.311,27
300,300,3000;28.442,?
300,300,5000;28.522,70
300,300,6000;28.58,?
300,300,7000;28.6003,97
300,300,8000;28.6155,114
300,300,9000;28.6275,125
300,300,10000;28.637,140 (rounding errors start to creep in?)
NX = NY = 300, NT = 9000 seems to be optimal (ADE is more accurate and 110 times faster than MOL in this case).
(H) [$]\tau = t/(1+t)[$] turns a ODE into a
stiff ODE ("no free lunch in maths").
Main Questions:
(Q1) Which value of T is infinity in the article (T = 100, T = 1000 etc.)?
(Q2) In section 10.2 I assume NDSolve is used for large t. I assume it was used to generate prices in Table 4? Also, T = 1000 is essentially infinity?
(Q3) Instead of NDSolve, what about Gauss-Seidel/SSOR etc. on the elliptic PDE (see remark (A))? It would probably 1) faster and 2) less rough-and-ready than choosing a random T? It might be interesting to try it out? (Someone mentioned that Mathematica not have elliptic solvers).
(Q4) How can we reproduce/find call and put prices in Table 2 for T = 100? Why are the values as they are, e.g. T = 100, K = 100, why is put = 0.1073?