我在Mathematica中有以下代码:
rbar = 0.006236
rt = r_bar
k = 0.95
sigmar = 0.002
betazr = -0.00014
sigmaz = 0.4
pi = 0.99
chi = 0.05
Cbar = -3.7
alpha1[n_] := alpha1[n] = alpha1[n - 1] + alpha2[n - 1]
alpha2[n_] := alpha2[n] = k (alpha2[n - 1])
sigma1sq[n_] :=
sigma1sq[n] = sigma2sq[n - 1] + 2 sigma12[n - 1] + sigmaz^2
sigma12[n_] :=
sigma12[n] = k (sigma12[n - 1]) + k (sigma2sq[n - 1]) + betazr
sigma2sq[n_] := sigma2sq[n] = (k^2) (sigma2sq[n - 1]) + sigmar^2
phi1[n_] := phi1[n] = phi1[n - 1] + phi2[n - 1] + (0.5) (sigmaz^2)
phi2[n_] := phi2[n] = k (phi2[n - 1]) + (1 - k) (rbar)
psi[n_] := psi[n] = phi1[n] - (0.5) (sigma1sq[n])
alpha1[0] = 0
alpha2[0] = 1
sigma1sq[0] = 0
sigma12[0] = 0
sigma2sq[0] = 0
phi1[0] = 0
phi2[0] = 0
B[h_, r_] := Exp[(-alpha1[h]) (r) - psi[h]]
Exp[Cbar - beta] Sum[(Pi^x) B[x, r], {x, 1, 1000}]
我想知道是否有可能解决最后一行,以便我将“r”作为“beta”的函数,满足
Exp[Cbar - beta] Sum[(Pi^x) B[x, r], {x, 1, 1000}] == 1
因为最终,我需要将函数J [r]集成到“beta”,所以如果我没有“r”作为“beta”的函数,我不知道如何进行集成J [r]。
答案 0 :(得分:0)
你不能将r作为beta的显式函数,但也许你可以做一些数字魔术。让我们在一些选定的时间间隔内看到函数的形式:
B[h_, r_] := Exp[(-alpha1[h]) (r) - psi[h]]
g0 = ContourPlot[ 1 == Exp[Cbar - beta] Sum[(Pi^x) B[x, r], {x, 1, 1000}],
{r, 25, 60}, {beta, -10, 10}]
那里几乎是直的。
让我们得到这些观点:
ll = FullForm[g0] /. Graphics[GraphicsComplex[x_, ___], ___] -> x;
现在适合直线
line = Fit[ll[[1]], {1, r}, r]
Show[ListPlot[ll[[1]], PlotStyle -> Red], Plot[line, {r, 52.3, 53.5}]]
(* 1085.- 20.5337 r *)
因此,在我选择的时间间隔内,您可以使用
beta = 1085 - 20.5337 r