Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Subscript[[Epsilon], 0] = 0.1;
- Subscript[[Epsilon], 1] = 0.1;
- [Alpha] = 0.5;
- u = 0.5;
- f0[y_] := PDF[NormalDistribution[-1, 1], y]
- f1[y_] := PDF[NormalDistribution[1, 1], y]
- l[y_] := f1[y]/f0[y]
- opts = {Method -> {Automatic, "SymbolicProcessing" -> None}, AccuracyGoal -> 8};
- lleq[y_?NumericQ, l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := FindRoot[ll[y, l0, l1, m0, m1]^([Alpha] -
- 1) == ((m1 - u*ll[y, l0, l1, m0, m1]^(u - 1) +
- l1/(1 - [Alpha]))/(m0 + (u - 1)*ll[y, l0, l1, m0, m1]^u +
- l0/(1 - [Alpha]))) (l0/l1)*l[y]^([Alpha] - 1), {ll[y, l0,
- l1, m0, m1], 1}]
- g0[y_?NumericQ, l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := ((m0 + (-1 + u) (ll[y, l0, l1, m0, m1] /. lleq[y, l0, l1, m0, m1])^u +
- l0/(1 - [Alpha])) ((1 - [Alpha])/l0))^(1/([Alpha] - 1)) *f0[y]
- g1[y_?NumericQ, l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := ((m1 - u (ll[y, l0, l1, m0, m1] /. lleq[y, l0, l1, m0, m1])^(u - 1) +
- l1/(1 - [Alpha])) ((1 - [Alpha])/l1))^(1/([Alpha] - 1)) *f1[y]
- h0[l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := NIntegrate[g0[y, l0, l1, m0, m1], {y, -Infinity, Infinity}, Evaluate@opts]
- h1[l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := NIntegrate[g1[y, l0, l1, m0, m1], {y, -Infinity, Infinity}, Evaluate@opts]
- h2[l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := NIntegrate[g0[y, l0, l1, m0, m1]^[Alpha]*f0[y]^(1 - [Alpha]), {y, -Infinity, Infinity}, Evaluate@opts]
- h3[l0_?NumericQ, l1_?NumericQ, m0_?NumericQ, m1_?NumericQ] := NIntegrate[g1[y, l0, l1, m0, m1]^[Alpha]*f1[y]^(1 - [Alpha]), {y, -Infinity, Infinity}, Evaluate@opts]
- {l00, l11, m00, m11} = {l0, l1, m0, m1} /. FindRoot[{h0[l0, l1, m0, m1] == 1, h1[l0, l1, m0, m1] == 1, h2[l0, l1, m0, m1] == ((1/([Alpha] (1 - [Alpha]))) - Subscript[[Epsilon], 0])/(1/([Alpha] (1 - [Alpha]))), h3[l0, l1, m0, m1] == ((1/([Alpha] (1 - [Alpha]))) - Subscript[[Epsilon], 1])/(1/([Alpha] (1 - [Alpha])))}, {{l0, 1, 0, 1000}, {l1, 1, 0, 1000}, {m0, .9}, {m1, .9}}, StepMonitor :> Print["Step to l0,l1,m0,m1 = ", {l0, l1, m0, m1}, Evaluate@opts]]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement