2

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」を持つように最後の行を解決できるかどうか疑問に思っています。

Exp[Cbar - beta] Sum[(Pi^x) B[x, r], {x, 1, 1000}] == 1

最終的には、関数 J[r] を "beta" で統合する必要があるため、"r" を "beta" の関数として使用しないと、J[ の統合を行う方法がわかりません。 r]。

4

1 に答える 1

0

β の明示的な関数として r を使用することはできませんが、数値マジックを実行できる可能性があります。選択した間隔で関数の形式を見てみましょう。

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}]

Mathematica グラフィックス

ほぼまっすぐです。

それらのポイントを取得しましょう:

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 *)

Mathematica グラフィックス

だから、私が選択した間隔で、あなたは使用することができます

beta = 1085 - 20.5337 r
于 2012-09-19T18:06:32.037 に答える