การพล็อตฟังก์ชันทีละขั้นตอนซ้ำกับโหนดภายนอก

Aug 17 2020

ฉันกำลังพยายามพล็อตฟังก์ชันทีละชิ้นซึ่งฉันสามารถกำหนดแบบวนซ้ำโดยที่โหนดนั้นอยู่ภายในเช่นกัน โดยพื้นฐานแล้ว$f(l)=a^{t}$ เมื่อไหร่ $l \in \left( \frac{\mu}{\alpha^{t-1}(1-\alpha)+\mu(1-\alpha^{t-1})};\frac{\mu}{\alpha^{t}(1-\alpha)+\mu(1-\alpha^{t})} \right]$. $t=1,2,...N$ทั้งสองอย่าง $\alpha$ และ $\mu$ $\in (0,1)$ และฉันต้องวางแผนเรื่องนี้สำหรับ $l \in \left[\frac{\mu}{1-\alpha},1\right)$

แน่นอนฉันสามารถเขียนมันลงด้วยตนเองทีละนิดแล้วกำหนดค่า t = 1 แต่ฉันต้องการให้โปรแกรมทำเพื่อฉันสำหรับทุก ๆ t = 1,2,3 ... เพื่อที่ฉันจะได้พล็อตทุกอย่างสำหรับ l ไปที่ 1. มีวิธีไหม? ขอบคุณมากในล่วงหน้า!

a = 0.3;
mu = 0.2;
t = 1;
f[l_] = Piecewise[{{1, 
     l <= mu/(a^(t - 1) (1 - a) + mu (1 - a^(t - 1)))}, {a^t, 
     mu/(a^(t - 1) (1 - a) + mu (1 - a^(t - 1))) < l <= mu/(
      a^t (1 - a) + mu (1 - a^t))}, {a^(t + 1), 
     mu/(a^t (1 - a) + mu (1 - a^t)) < l <= mu/(
      a^(t + 1) (1 - a) + mu (1 - a^(t + 1)))}, {a^(t + 2), 
     mu/(a^(t + 1) (1 - a) + mu (1 - a^(t + 1))) < l <= mu/(
      a^(t + 2) (1 - a) + mu (1 - a^(t + 2)))}, {a^(t + 3), 
     mu/(a^(t + 2) (1 - a) + mu (1 - a^(t + 2))) < l <= mu/(
      a^(t + 3) (1 - a) + mu (1 - a^(t + 3)))}}];
Plot[f[l], {l, mu/(1-a), mu/(a^(t + 3) (1 - a) + mu (1 - a^(t + 3)))}, 
 AxesLabel -> Automatic]

คำตอบ

1 flinty Aug 17 2020 at 14:45

คุณสามารถเขียนได้ดังนี้:

Lhi[i_, a_, mu_, t_] := mu/((1-a)a^(-1+t+i)+(1-a^(-1+t+i))mu)

pw[l_, a_, mu_, t_, n_] := 
 Piecewise[
  MapIndexed[
   If[First[#2]==1, {1,l<=#1[[2]]},{a^(First[#2]-2+t),#1[[1]]<l<=#1[[2]]}]&, 
   Partition[Table[Lhi[i,a,mu,t], {i,-1,n}],2,1]]
  ]

With[{a = 0.3, mu = 0.2, t = 1, n = 4},
 Plot[pw[l, a, mu, t, n], {l, mu/(1 - a), 
   mu/(a^(t+3)(1-a) + mu(1-a^(t+3)))}, 
  AxesLabel -> Automatic]
 ]