Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 2.00 KB | None | 0 0
  1.  
  2. using PyPlot
  3.  
  4.  
  5. function simulation(N::Int64)
  6.  
  7.   E1 = zeros(Float64,N)
  8.   Eq1 = zeros(Float64,N)
  9.   V1 = zeros(Float64,N)
  10.   D1 = zeros(Float64,N)
  11.  
  12.   E2 = zeros(Float64,N)
  13.   Eq2 = zeros(Float64,N)
  14.   V2 = zeros(Float64,N)
  15.   D2 = zeros(Float64,N)
  16.  
  17.   for n = 1:N
  18.  
  19.     for step = 1:5
  20.       coin = rand(1:2)
  21.       # coin == 1 | tails
  22.       # coin == 2 | heads
  23.       tmp = 0
  24.       if coin == 1
  25.         tmp = 11
  26.       else
  27.         tmp = -110
  28.       end
  29.       E1[n] += tmp
  30.       Eq1[n] += tmp^2
  31.     end
  32.     E1[n] /= 5
  33.     Eq1[n] /= 5
  34.  
  35.     V1[n] = Eq1[n] - (E1[n])^2
  36.     D1[n] = sqrt(V1[n])
  37.  
  38.     for step = 1:1100
  39.       coin = rand(1:2)
  40.       # coin == 1 | tails
  41.       # coin == 2 | heads
  42.       tmp1 = 0
  43.       if coin == 1
  44.         tmp1 -= 0.5
  45.       else
  46.         tmp1 += 0.05
  47.       end
  48.       E2[n] += tmp1
  49.       Eq2[n] += tmp1^2
  50.     end
  51.     E2[n] /= 1100
  52.     Eq2[n] /= 1100
  53.  
  54.     V2[n] = Eq2[n] - (E2[n])^2
  55.     D2[n] = sqrt(V2[n])
  56.   end
  57.   printDiagram(E1, V1, D1, 0)
  58.   printDiagram(E2, V2, D2, 1)
  59. end
  60.  
  61. function Var(E::Array, Eq::Array)
  62.   var = 0
  63.   for i = 1:length(E)
  64.     var = Eq[i] - (E[i])^2
  65.   end
  66.   return var
  67. end
  68.  
  69.  
  70. function Deviation(Var::Float64)
  71.     return sqrt(Var)
  72. end
  73.  
  74. function printDiagram(E::Array, V::Array, D::Array, case::Int64)
  75.  
  76.   D1 = zeros(Float64,N)
  77.   D2 = zeros(Float64,N)
  78.   for i = 1:length(D)
  79.     D1[i] = D[i] + 3
  80.     D2[i] = D[i] - 3
  81.   end
  82.   msg = ""
  83.   if case == 0
  84.     msg = " game number 1"
  85.   elseif case == 1
  86.     msg = " game number 2"
  87.   end
  88.   x = 1:N
  89.   fig, ax = subplots()
  90.   suptitle("Zad1")
  91.  
  92.   ax[:plot](x, E, linewidth=2, alpha=0.6, label="Average value of$msg")
  93.   ax[:plot](x, V, linewidth=2, alpha=0.6, label="Variation of$msg")
  94.   ax[:plot](x, D1, linewidth=2, alpha=0.6, label="(+)Deviation of$msg")
  95.   ax[:plot](x, D2, linewidth=2, alpha=0.6, label="(-)Deviation of$msg")
  96.   ax[:legend]()
  97.   fileName = string("lab4_$msg.png")
  98.   savefig(fileName, dpi=72)
  99.  
  100. end
  101.  
  102. println("START")
  103.  
  104. N = 100000
  105. simulation(N)
  106.  
  107. println("END")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement