pondělí 28. března 2011

Calgacus o Římanech

Nic aktuálního. Tato slova vkládá Tacitus do úst nepřátelského vůdce Calgaka. Dokázal alespoň na chvíli tak skutečně vidět svůj národ?

(...) si locuples hostis est, avari, si pauper, ambitiosi, quos non Oriens, non Occidens satiaverit: soli omnium opes atque inopiam pari adfectu concupiscunt. Auferre trucidare rapere falsis nominibus imperium, atque ubi solitudinem faciunt, pacem appellant.
Tacitus – Agricola

Je-li nepřítel bohatý, jsou hrabiví, je-li chudý, jsou panovační. Ani Východ ani Západ by takové lidi nenasytil: oni jediní ze všech si se stejnou chtivostí žádají bohatství i nouzi. Plenění, vraždění a loupení označují falešně jménem vláda a likvidaci mírem.
Tacitu – Životopis Iula Agricoly

úterý 15. března 2011

Testování hypotéz - Binomický test

Máme čtyři události 0, 1, A, B. 0 a 1 se navzájem vylučují. Stejně tak A a B. Cíl je otestovat hypotézu, zda pravděpodobnost A za podmínky 1 je větší, než pravděpodobnost A za podmínky 0. Jinými slovy: Zda událost 1 zvyšuje pravděpodobnost události A. Matematicky v tom není problém, numericky ano, protože se tam vyskytují velká čísla. A někdy víc než jen velká. V Pythonu však není problém.

Program má na vstupu 5 čísel:

1) číslo "n0a" udávající počet výskytů události A za předpokladu události 0

2) číslo "n0b" udávající počet výskytů události B za předpokladu události 0

3) číslo "n1a" udávající počet výskytů události A za předpokladu události 1

4) číslo "n1b" udávající počet výskytů události B za předpokladu události 1

5) práh pravděpodobnosti pro zamítnutí HA

Standardní volba HA je 0.01 nebo 0.05. Volba 0.5 je daleko za hranicí, která odděluje odvahu a šílenství. Volba nad 0.5 je zcela nesmyslná, stejně jako pod 0.0.


# -*- coding: cp1250 -*-

import sys
import math

def div(a, b):
r = 0.0
e = 1.0
for i in range(100):
d = a / b
r = r + e * d
a = 10 * (a - d * b)
e = e / 10.0
return r

def C(n, k):
return math.factorial(n) / (math.factorial(k) * math.factorial(n - k))

def I01(ae):
sa = 0
sb = 1
for (a, e) in ae:
b = e + 1
sa = b * sa + a * sb
sb = b * sb
return (sa, sb)

def gen_ae(na, nb):
ae = []
for k in range(0, nb + 1):
ae.append((C(nb, k) * ((-1) ** k), na + k))
return ae

def suma(ab):
sa = 0
sb = 1
for (a, b) in ab:
sa = b * sa + a * sb
sb = b * sb
return (sa, sb)

n0a = int(sys.argv[1])
n0b = int(sys.argv[2])
n1a = int(sys.argv[3])
n1b = int(sys.argv[4])
alpha = float(sys.argv[5])

print
print "n0a =", n0a, "n0b =", n0b
print "n1a =", n1a, "n1b =", n1b
print "alpha =", alpha
print

ae0 = gen_ae(n0a, n0b)
ae1 = gen_ae(n1a, n1b)

(I0a, I0b) = I01(ae0)
(I1a, I1b) = I01(ae1)

ab = []
for (a0, e0) in ae0:
for (a1, e1) in ae1:
ab.append((a0 * a1, (e0 + 1) * (e0 + e1 + 2)))

(Ia, Ib) = suma(ab)

pA = 1 - div(Ia * I0b * I1b, Ib * I0a * I1a)

print
print "H0: p(A|1) > p(A|0)"
print "HA: p(A|1) <= p(A|0)"
print
print "p(HA) =", pA
print
if pA <= alpha:
print u"Doporučujeme zamítnou HA a přijmout H0."
if pA >= 1 - alpha:
print u"Doporučujeme zamítnou H0 a přijmout HA."
if pA > alpha and pA < 1 - alpha:
print u"nelze rozhodnout mezi H0 a HA."
print



sobota 5. března 2011

Teorie množin a její generální kolaps

V Bolzanových Paradoxech nekonečna (ke stažení zde) se lze dočíst toto:

Tvrdím totiž: dvě množiny, obě nekonečné, mohou být k sobě v takovém vztahu, že je na jedné straně možno spojit ve dvojici každou věc, náležející jedné z nich, s věcí, náležející druhé z nich, tak, aby vůbec žádná věc v obou množinách nezůstala bez spojení ve dvojici a také žádná aby se nevyskytovala ve dvou nebo více dvojicích; a přitom je na druhé straně možno, aby jedna z obou množin obsahovala druhou jako svůj pouhý díl, takže množství, která ony množiny představují, jsou k sobě v nejrozmanitějších poměrech, považujeme-li věci v nich za stejné, tj. za jednotky.
Bernar Bolzano – Paradoxy nekonečna

Každé dvě nekonečné množiny lze na sebe vzájemně jednoznačně zobrazit. Toto tvrzení budeme nazývat generálním kolapsem.
Petr Vopěnka – Vyprávění o kráse novobarokní matematiky

Jenže každý, kdo někdy viděl Cantorův diagonální důkaz, namítne, že Cantor vyvrátil Bolzanovu domněnku. Skutečně vyvrátil?

V tomto okamžiku bychom měli namítnout, že množina všech bodů ležících na přímce (...) je nespočetná, to znamená, že její prvky nelze očíslovat přirozenými čísly, což přeci dokázal již Cantor. Odtud plyne, že generální kolaps je sporný (a tedy nepravdivý). Avšak pozor, Cantor nedokázal spornost generálního kolapsu sama se sebou, ale s existencí množiny všech bodů ležících na dané úsečce.
Petr Vopěnka – Vyprávění o kráse novobarokní matematiky

čtvrtek 3. března 2011

Husserl o myšlení bez názoru

Man muß sich durchaus klar machen, daß in weitesten Strecken nicht bloß lässigen und alltäglichen, sondern streng wissenschaftlichen Denkens die veranschaulichende Bildlichkeit eine geringe oder schlechterdings keine Rolle spielt, und daß wir im aktuellsten Sinn urteilen, schließen, überlegen und widerlegen können auf Grund von „bloß symbolischen" Vorstellungen. (...) Also nicht mit bedeutungslosen Zeichen operiert man in den Sphären des symbolisch-arithmetischen Denkens und Rechnens. Nicht sind es die „bloßen" Zeichen im Sinne der physischen, von aller Bedeutung losgerissenen Zeichen, welche für die ursprünglichen, mit arithmetischen Bedeutungen beseelten Zeichen surrogieren, vielmehr surrogieren für die arithmetisch bedeutsamen Zeichen dieselben, aber in einer gewissen Operationsoder Spielbedeutung genommenen Zeichen. Ein System von natürlich und sozusagen unbewußt sich herausbildender iquivokationen wird unendlich fruchtbar; die ungleich größere Denkarbeit, welche die originäre Begriffsreihe erfordert, wird durch die leichteren „symbolischen" Operationen erspart, welche sich in der parallelen Reihe der Spielbegriffe vollziehen.
Edmund Husserl – Logische Untersuchungen (II/1:I.§20)

Je třeba si veskrze ujasnit to, že v naprosté většině myšlení, nejen pouze vágního a každodenního, nýbrž i přísně vědeckého, hraje znázorňující obraznost roli nepatrnou nebo přímo žádnou a že je možné v nejaktuálnějším smyslu soudit, usuzovat, uvažovat a vyvracet na základě „pouze symbolických“ představ. (...) To, s čím se operuje v oblastech symbolicko aritmetického myšlení a počítání, tedy nejsou znaky bez významu. To, co nahrazuje původní, aritmetickými významy oduševnělé znakym nejsou „pouhé“ znaky ve smyslu fyzických, od jakéhokoli významu odtržených znaků, které by nahrazovali původní, aritmetickým významem oživené znaky; spíše je tomu tak, ža aritmeticky významuplné znaky jsou nahrazovány týmiž znaky, ale branými v jejich jistém operačním či herním významu. Systém přirozeně a takříkajíc nevědomě se utvářejících víceznačností se stává nesmírně plodným; díky snadnějším „symbolickým“ operacím, které se uskutečňují v paralelní řadě herních pojmů, jsme ušetřeni nesrovnatelně větší myšlenkové práce, kterou si vyžaduje původní pojmová řada.
Edmund Husserl – Logická zkoumání (II/1:I.§20)