2012-09-12 2 views
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]을 통합해야하기 때문에 "r"이 "베타"의 함수로 없으면 어떻게 통합 할지를 모릅니다. J [r].

+1

코드를 약간 줄여야합니다. 예를 들어, 다음과 같은 모든 재귀 방정식을 풀 수 있습니다. {[alpha2 [n] == k (alpha2 [n-1]), alpha2 [0] == 1, alpha2 [n], n] [[ 1, 1, 2]]. –

+0

이 경우 [1, 1, 2]는 무엇을합니까? "r"을 격리 할 수 ​​있습니까? 감사! – user1664484

+0

'[[...]]'는'Part'와 같습니다. 나는'{{alpha2-> solution}} '형식의'RSolve '에 대한 해답을 추출하기 위해 그것을 사용했다. 나는 네가 스스로 진전 할 수 있다고 생각한다. –

답변

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 graphics

그것은 거의 직선이있다.

은의 그 포인트하자 :

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 graphics

그래서 직선에 맞게

beta = 1085 - 20.5337 r 
관련 문제