Constantly getting the following mistake:
NDSolve::ndsz: At t == 100.`, step size is effectively zero; singularity or stiff system suspected.
What could be done to resolve it?
V[t,z1,2] - is a time-dependent value function. The mistake should be solved in order to study its dynamics.
ClearAll["Global`*"]
tmax = 100; r = 1; lambda = 1; P = 100;
pdeV1 = D[V1[t, z1, z2],
t] + (1/2 + 1/2*z2^2)*(D[V1[t, z1, z2], z1])^2*Exp[r*t]*
Exp[lambda*(z1 + z2)] + (1 + z1^2)*D[V1[t, z1, z2], z1]*
D[V2[t, z1, z2], z1]*Exp[(r*t)]*
Exp[(lambda*(z1 + z2))] + (D[V2[t, z1, z2], z2] +
D[V2[t, z1, z2], z2]*z1^2)*Exp[(r*t)]*(Exp[lambda*z1] - 1) == 0;
pdeV2 = D[V2[t, z1, z2],
t] + (1/2 + 1/2*z2^2)*(D[V2[t, z1, z2], z2])^2*Exp[(r*t)]*
Exp[(lambda*(z1 + z2))] + (1 + z2^2)*D[V2[t, z1, z2], z2]*
D[V1[t, z1, z2], z2]*Exp[(r*t)]*
Exp[(lambda*(z1 + z2))] + (D[V1[t, z1, z2], z1] +
D[V1[t, z1, z2], z1]*z2^2)*
Exp[(r*t)]*(Exp[(lambda*z2)] - 1) == 0;
sol = NDSolve[{pdeV1, pdeV2,
V1[tmax, z1, z2] ==
P*Exp[(-lambda*z1)] - P*Exp[(-lambda*(z1 + z2))],
V2[tmax, z1, z2] ==
P*Exp[(-lambda*z1)] - P*Exp[(-lambda*(z1 + z2))]}, {V1, V2}, {t,
0, tmax}, {z1, 0, 100}, {z2, 0, 100},
Method -> {"MethodOfLines",
"SpatialDiscretization" -> {"TensorProductGrid",
"MinPoints" -> 5*15 + 1, "MaxPoints" -> 5*15 + 1,
"DifferenceOrder" -> Automatic}}]
Show[Plot3D[V1[tmax, z1, z2] /. sol, {z1, 0, 100}, {z2, 0, 100},
PlotStyle -> Red],
Plot3D[V2[tmax, z1, z2] /. sol, {z1, 0, 100}, {z2, 0, 100},
PlotStyle -> Purple]]
bcartwarning is a more serious problem, check this post for more information. – xzczd Jun 18 '17 at 01:12