“NDSolve边界条件和初始条件是不一致的. ”是什么?
mathematica吧
全部回复
仅看楼主
level 1
helloapple11 楼主
r = 0.04;
v1 = 0.25;
v2 = 0.1;
sigma = Sqrt[v1 + v2];
NDSolve[{D[f[t, x], t] + 0.5 (v1 + v2) x^2 D[D[f[t, x], x], x] -
r f[t, x] + r x D[f[t, x], x] == 0, f[t, 0.] == Exp[-r (1. - t)],
f[t, 1.] - Derivative[0, 1][f][t, 1.] == 0.,
f[1., x] == 1. - x}, f, {t, 0, 1}, {x, 0, 1}]
2023年12月17日 07点12分 1
level 1
helloapple11 楼主
f的理论解是:
u[t_, x_] :=
N[(1 + (sigma^2)/(2*r)) x CDF[
NormalDistribution[], (1/(sigma*Sqrt[(1 - t)]))*(Log[
x] + (r + 0.5*sigma^2)*(1 - t))] +
Exp[-r*(1 - t)]*
CDF[NormalDistribution[], -(1/(sigma*Sqrt[(1 - t)]))*(Log[
x] + (r - 0.5*sigma^2)*(1 - t))] + (-sigma^2/(2*r))*
Exp[-r*(1 - t)]*x^(1 - 2*r/(sigma^2))*
CDF[NormalDistribution[], -(1/(sigma*Sqrt[(1 - t)]))*(Log[
1/x] + (r - 0.5*sigma^2)*(1 - t))] - x];
2023年12月17日 07点12分 2
level 1
helloapple11 楼主
说是不一致,是我方程输入有问题嘛?
2023年12月17日 07点12分 3
level 1
helloapple11 楼主
得到解决方法啦
https://mathematica.stackexchange.com/q/295169/94893
使用 Method -> {"MethodOfLines", "DifferentiateBoundaryConditions" -> False}
2023年12月17日 09点12分 4
1