Az eredeti feladat

Formailag értelmesebb, egyenértékű

Kiküszöböljük v-t

In[1]:=

S = 49 ; T = 59 ; τ = 0.2 ; Overscript[u, _] = 0.466 ;

In[2]:=

w[x_, σ_: - 0.5, θ_:4.1] := θ + x^σ/σ ;

f_t_ := 1/(T - S + 1) (*most állandó ? *) ;

ψ[v_, ρ_: - 1] := v^ρ/ρ(*ρ = -1 vagy 1 ? *)

In[15]:=

ClearAll[R, r, B, b, V, v, F] ;

r = Array[R_#&, T - S + 1, S] ;

B = Array[b_#&, T - S + 1, S] ;

V = Array[v_#&, T - S + 1, S] ;

F = Array[f_#&, T - S + 1, S] ;

In[21]:=

elso = Thread[V→ (Overscript[u, _] - w/@B) r + (w/@B) Range[S, T]]

Out[21]=

In[22]:=

celfv = ((ψ[#, -1] &/@V) . F)/.elso

Out[22]=

In[25]:=

masod = ((τ + B) r - Range[S, T] B) . F == 0

Out[25]=

In[26]:=

pozitivak = Join[Thread[B>0.01], Thread[r>0]]

Out[26]=

In[27]:=

harmad = Table[Overscript[u, _] (R_ (t + 1) - R_t) + w[b_ (t + 1)] (t - R_ (t + 1)) == w[b_t] (t - R_t), {t, S, T - 1}]

Out[27]=

In[29]:=

Timing[NMaximize[Join[{celfv}, {masod}, harmad, pozitivak], Join[B, r]]]

Out[29]=

NMaximize[Join[{celfv}, {masod}, harmad, pozitivak], Join[B, r]]

A ρ=1 határeset

In[30]:=

celfv = ((ψ[#, 1] &/@V) . F)/.elso

Out[30]=

In[39]:=

Timing[nm = NMaximize[Join[{celfv}, {masod}, harmad, pozitivak], Join[B, r]]]

Out[39]=

In[36]:=

sol = Solve[Overscript[u, _] - w[b^*] + w '[b^*] (τ + b^*) == 0, b^*][[1]]

Out[36]=

{b^* →0.799851}

In[35]:=

m = Range[S, T] . F

Out[35]=

54

In[38]:=

R^* = b^*/(τ + b^*) m/.sol

Out[38]=

43.1984

In[41]:=

{b_T/.nm[[2]], b^*/.sol}

Out[41]=

{0.799768, 0.799851}

In[42]:=

{R_T/.nm[[2]], R^*}

Out[42]=

{43.1973, 43.1984}

In[47]:=

ListPlot[Transpose[{B, r}/.nm[[2]]], PlotStyle→ {PointSize[0.02], Red}, AxesLabel→ {b_t, R_t}] ;

[Graphics:HTMLFiles/index_98.gif]


Created by Mathematica  (January 24, 2007) Valid XHTML 1.1!