免費論壇 繁體 | 簡體
Sclub交友聊天~加入聊天室當版主
分享
返回列表 发帖

Mathematica求函数值

屏幕快照 2017-07-09 08.17.33.png
2017-7-9 15:19

屏幕快照 2017-07-09 08.17.39.png
2017-7-9 15:19


请教下各位,这里我需要求 $C_0$, 针对给出的参数值,我用Mathematica求出的解是 18.3324, 但是别人算出的却是 6.9990, 不知道我代码哪里有问题?

屏幕快照 2017-07-09 08.16.13.png
2017-7-9 15:21
分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友

回复 1# opuikl_0

代码不要贴图,直接复制粘帖上来

TOP

回复 2# kuing

好的,代码如下:

S0 = 100;
K = 100;
b = 0.04;
v0 = 0.0082;
theta = 0.0168;
kappa = 6.21;
nu = 0.625;
rho = -0.6674;
t = 0;
T = 1;
tau = T - t;
F = S0*Exp[b*tau];
x = Log[F/K];
gamma = nu^2/2;

alpha[j_] := -k^2/2 - I*k/2 + I*j*k;
beta[j_] := kappa - rho*nu*j - rho*nu*I*k;
d[j_] := Sqrt[beta[j]^2 - 4*alpha[j]*gamma];
r1[j_] := (beta[j] + d[j])/gamma^2;
r2[j_] := (beta[j] - d[j])/gamma^2;
g[j_] := r2[j]/r1[j];
CC[j_] := kappa*(r2[j]*tau - (2/nu^2)*Log[(1 - g[j]*Exp[-d[j]*tau])/(1 - g[j])]);
DD[j_] := r2[j]*(1 - Exp[-d[j]*tau])/(1 - g[j]*Exp[-d[j]*tau]);
P[j_] := 1/2 + (1/Pi)*Integrate[Re[Exp[CC[j]*theta + DD[j]*v0 + I*k*x]/(I*k)], {k, 0, Infinity}];

C0 = S0*P[1] - K*Exp[-b*tau]*P[0] // N

TOP

不好意思.......我发现是
r1[j_] := (beta[j] + d[j])/gamma^2;
r2[j_] := (beta[j] - d[j])/gamma^2;
这俩函数分母写错了.........

现在有新的问题,分母改成nu^2后,出来的结果是 7.00701

请问这是精确到第几位的?怎么改Mathematica的默认精确位数?谢谢!

TOP

回复 4# opuikl_0

细微差别的原因很难说,还要看别人怎么做的才知道

TOP

返回列表 回复 发帖