Я заинтересован в моделировании феномена «регрессии к среднему». Скажем, вектор 0-1 длины N «одарен», если число 1 в V больше, чем N / 2 + 5 * sqrt (N).
Я хочу, чтобы Maple оценил строку из M 0-1 списки, каждый длиной N, чтобы определить, являются ли они одаренными. Затем, учитывая, что список V [i] одарен, я хочу оценить вероятность того, что список V [i + 1] одарен.
Пока что мой код странным образом терпит неудачу. Пока все, что должен делать код, - это создать список сумм (называемых «итого») и список «g», который несет 0, если итого [i] <= N / 2 + 5sqrt (N), и 1 в противном случае. </p>
Вот код:
RS:=proc(N) local ra,i:
ra:=rand(0..1):
[seq(ra(),i=1..N)]:
end:
Gift:=proc(N,M) local total, i, g :
total:=[seq(add(RS(N)),i=1..M)]:
g:=[seq(0,i=1..M)]:
for i from 1 to M do
if total[i] > (N/2 + 5*(N^(1/2))) then
g[i]:=1
fi:
od:
print(total, g)
end:
Беда в том, что Maple отвечает, когда я пробую Gift (100,20), «Ошибка (в Gift) не может определить, является ли это Выражение истинно или ложно: 5 * 100 ^ (1/2) <-2 "или, когда я пытаюсь сделать подарок (10000,20)," Ошибка (в подарке) не может определить, является ли это выражение истинным или ложным: 5 * 10000 ^ (1/2) <-103. "</p>
Откуда эти отрицательные числа? И почему не может Мэйпл сказать, 5 (10000) ^ {1/2} <-103 или нет? </p>