Kernel: SageMath (stable)
Melanie Siebenhofer, Jänner 2018
Integrale über alle Bereiche
Baum 1
In [1]:
var('s0, s1, s2, s3, c')
Out[1]:
(s0, s1, s2, s3, c)
Fall 1: 2≤c
2≤cs0=0≤s1≤1−2⋅s1≤s2≤0≤s3≤1−s1−s2−s3311−s11−s1−s2
In [2]:
P = (1 - s1 - s2 - s3, s1, s2, s3) D = jacobian( P, (s1, s2, s3) ) d = sqrt( (D.transpose() * D).det() ) #verallgemeinerte Funktionaldeterminante i1 = d.integrate(s3, 0, 1 - s1 - s2).integrate(s2, 1 - 2*s1, 1 - s1).integrate(s1, 0, 1/3)
2≤cs0=31≤s1≤21−21⋅s1≤s2≤0≤s3≤1−s1−s2−s3211−s11−s1−s2
In [3]:
i2 = d.integrate(s3, 0, 1 - s1 - s2).integrate(s2, 1/2 - 1/2*s1, 1 - s1).integrate(s1, 1/3, 1/2)
Fall 2:
2≤cs0=21≤s1≤21−21s1≤s2≤0≤s3≤1−s1−s2−s311−s11−s1−s2
In [4]:
i3 = d.integrate(s3, 0, 1 - s1 - s2).integrate(s2, 1/2 - 1/2*s1, 1 - s1).integrate(s1, 1/2, 1)
Fall 4:
2≤cs0=0≤s1≤21−21s1≤s2≤0≤s3≤1−s1−s2−s3311−2s121−21s2
In [5]:
i4 = d.integrate(s3, 0, 1/2 - 1/2*s2).integrate(s2, 1/2 - 1/2*s1, 1 - 2*s1).integrate(s1, 0, 1/3)
Fall 5:
2≤cs0=31≤s1≤1−2s1≤s2≤21−21s1−s2≤s3≤1−s1−s2−s32121−21s11−s1−s2
In [6]:
i5 = d.integrate(s3, 1/2 - 1/2*s1 - s2, 1 - s1 - s2).integrate(s2, 1 - 2*s1, 1/2 - 1/2*s1).integrate(s1, 1/3, 1/2)
Fall 6:
2≤cs0=21≤s1≤0≤s2≤21−21s1−s2≤s3≤1−s1−s2−s3121−21s11−s1−s2
In [7]:
i6 = d.integrate(s3, 1/2 - 1/2*s1 - s2, 1 - s1 - s2).integrate(s2, 0, 1/2 - 1/2*s1).integrate(s1, 1/2, 1)
Fall 7:
2≤cs0=31≤s1≤0≤s2≤21−21s1−s2≤s3≤1−s1−s2−s32131−32s1s1+s2
In [8]:
i7 = d.integrate(s3, 1/2 - 1/2*s1 - s2, s1 + s2).integrate(s2, 0, 1/3 - 2/3*s1).integrate(s1, 1/3, 1/2)
2≤cs0=51≤s1≤21−23s1≤s2≤21−21s1−s2≤s3≤1−s1−s2−s33131−32s1s1+s2
In [9]:
i8 = d.integrate(s3, 1/2 - 1/2*s1 - s2, s1 + s2).integrate(s2, 1/2 - 3/2*s1, 1/3 - 2/3*s1).integrate(s1, 1/5, 1/3)
Fall 8:
2≤cs0=31≤s1≤31−32s1≤s2≤21−21s1−s2≤s3≤1−s1−s2−s3211−2s121−21s2
In [10]:
i9 = d.integrate(s3, 1/2 - 1/2*s1 - s2, 1/2 - 1/2*s2).integrate(s2, 1/3 - 2/3*s1, 1 - 2*s1).integrate(s1, 1/3, 1/2)
2≤cs0=0≤s1≤21−23s1≤s2≤21−21s1−s2≤s3≤1−s1−s2−s35121−21s121−21s2
In [11]:
i10 = d.integrate(s3, 1/2 - 1/2*s1 - s2, 1/2 - 1/2*s2).integrate(s2, 1/2 - 3/2*s1, 1/2 - 1/2*s1).integrate(s1, 0, 1/5)
2≤cs0=51≤s1≤31−32s1≤s2≤21−21s1−s2≤s3≤1−s1−s2−s33121−21s121−21s2
In [12]:
i11 = d.integrate(s3, 1/2 - 1/2*s1 - s2, 1/2 - 1/2*s2).integrate(s2, 1/3 - 2/3*s1, 1/2 - 1/2*s1).integrate(s1, 1/5, 1/3)
Fall 11:
2≤cs0=51≤s1≤31−s1≤s2≤1−2s1−2s2≤s3≤1−s1−s2−s33121−23s1s1+s2
In [13]:
i12 = d.integrate(s3, 1 - 2*s1 - 2*s2, s1 + s2).integrate(s2, 1/3 - s1, 1/2 - 3/2*s1).integrate(s1, 1/5, 1/3)
2≤cs0=0≤s1≤31−s1≤s2≤1−2s1−2s2≤s3≤1−s1−s2−s35131−32s1s1+s2
In [14]:
i13 = d.integrate(s3, 1 - 2*s1 - 2*s2, s1 + s2).integrate(s2, 1/3 - s1, 1/3 - 2/3*s1).integrate(s1, 0, 1/5)
Fall 12:
2≤cs0=0≤s1≤31−32s1≤s2≤1−2s1−2s2≤s3≤1−s1−s2−s35121−23s121−21s2
In [15]:
i14 = d.integrate(s3, 1 - 2*s1 - 2*s2, 1/2 - 1/2*s2).integrate(s2, 1/3 - 2/3*s1, 1/2 - 3/2*s1).integrate(s1, 0, 1/5)
In [16]:
def b1(c): if c >= 2: return i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14 else: return 0
Baum 2 + 3
In [17]:
P = (s0, 1 - s0 - s2 - s3, s2, s3) D = jacobian( P, (s0, s2, s3) ) d = sqrt( (D.transpose() * D).det() ) #verallgemeinerte Funktionaldeterminante
s1=1≤c≤0≤s0≤s0≤s2≤23−21c−21s2≤s3≤1−s0−s2−s3231c−31c−2s0−11−s0−s2
In [18]:
i15 = d.integrate(s3, 3/2 - 1/2*c - 1/2*s2, 1 - s0 - s2).integrate(s2, s0, c - 2*s0 - 1).integrate(s0, 0, 1/3*c - 1/3)
s1=2≤c0≤s0≤s0≤s2≤21−21⋅s2≤s3≤1−s0−s2−s3311−2⋅s01−s0−s2
In [19]:
i16 = d.integrate(s3, 1/2 - 1/2*s2, 1 - s0 - s2).integrate(s2, s0, 1 - 2*s0).integrate(s0, 0, 1/3)
In [20]:
def b23(c): if 1 <= c and c < 2: return 2 * i5(c=c) if c >= 2: return 2 * i16 else: return 0
Baum 4 + 5
In [21]:
P = (s0, s1, 1 - s0 - s1 - s3, s3) D = jacobian( P, (s0, s1, s3) ) d = sqrt( (D.transpose() * D).det() ) #verallgemeinerte Funktionaldeterminante
Fall 1.1:
s2=1−s0−s1−s334≤c≤0≤s1≤s1≤s3≤23−21c−21s3≤s0≤221c−32311−s1−s3
In [22]:
i17 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, s1, 1/3).integrate(s1, 0, 1/2*c - 2/3)
s2=1−s0−s1−s32≤c0≤s1≤s1≤s3≤21−21⋅s3≤s0≤31311−s1−s3
In [23]:
i18 = d.integrate(s0, 1/2 - 1/2*s3, 1 - s1 - s3).integrate(s3, s1, 1/3).integrate(s1, 0, 1/3)
Fall 1.2:
s2=1−s0−s1−s334≤c≤21c−32≤s1≤s1≤s3≤23−21c−21s3≤s0≤231c−31c−2s1−11−s1−s3
In [24]:
i19 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, s1, c - 2*s1 - 1).integrate(s1, 1/2*c - 2/3, 1/3*c - 1/3)
s2=1−s0−s1−s31≤c≤0≤s1≤s1≤s3≤23−21c−21s3≤s0≤3431c−31c−2s1−11−s1−s3
In [25]:
i20 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, s1, c - 2*s1 - 1).integrate(s1, 0, 1/3*c - 1/3)
Fall 2.1:
s2=1−s0−s1−s323≤c≤0≤s1≤1−31c≤s3≤s3≤s0≤232c−121−21s11−s1−s3
In [26]:
i21 = d.integrate(s0, s3, 1 - s1 - s3).integrate(s3, 1 - 1/3*c, 1/2 - 1/2*s1).integrate(s1, 0, 2/3*c - 1)
s2=1−s0−s1−s32≤c0≤s1≤31≤s3≤s3≤s0≤3121−21s11−s1−s3
In [27]:
i22 = d.integrate(s0, s3, 1 - s1 - s3).integrate(s3, 1/3, 1/2 - 1/2*s1).integrate(s1, 0, 1/3)
Fall 2.2.1:
s2=1−s0−s1−s334≤c≤0≤s1≤31≤s3≤23−21c−21s3≤s0≤2321c−32c−2s1−11−s1−s3
In [28]:
i23 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, 1/3, c - 2*s1 - 1).integrate(s1, 0, 1/2*c - 2/3)
s2=1−s0−s1−s323≤c≤32c−1≤s1≤31≤s3≤23−21c−21s3≤s0≤221c−32c−2s1−11−s1−s3
In [29]:
i24 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, 1/3, c - 2*s1 - 1).integrate(s1, 2/3*c - 1, 1/2*c - 2/3)
Fall 2.2.2:
s2=1−s0−s1−s323≤c≤0≤s1≤31≤s3≤23−21c−21s3≤s0≤232c−11−31c1−s1−s3
In [30]:
i25 = d.integrate(s0, 3/2 - 1/2*c - 1/2*s3, 1 - s1 - s3).integrate(s3, 1/3, 1 - 1/3*c).integrate(s1, 0, 2/3*c - 1)
In [31]:
def b45(c): if 1 <= c and c < 4/3: return 2*i20(c=c) if 4/3 <= c and c < 3/2: return 2*(i17(c=c) + i19(c=c) + i23(c=c)) if 3/2 <= c and c < 2: return 2*(i17(c=c) + i19(c=c) + i21(c=c) + i24(c=c) + i25(c=c)) if c >= 2: return 2*(i18 + i22) else: return 0
Normierung
um Verteilungsfunktion zu erhalten
Berechne dazu das Integral über den gesamten Bereich:
s0+s1+s2+s3=0≤s0≤0≤s1≤0≤s2≤0≤s3≤11111In [32]:
P = (s0, s1, s2, 1 - s0 - s1 - s2) D = jacobian( P, (s0, s1, s2) ) d = sqrt( (D.transpose() * D).det() ) #verallgemeinerte Funktionaldeterminante
In [33]:
n = d.integrate(s2, 0, 1 - s1 - s0).integrate(s1, 0, 1 - s0).integrate(s0, 0, 1) n
Out[33]:
1/3
In [34]:
def F(c): return 1/n*(b1(c) + b23(c) + b45(c))
In [35]:
plot(F, (c,-1,3))
Out[35]:
→ Atome in 1 und 2
In [37]:
F(3) #teste, ob Funktionswert = 1
Out[37]:
1
In [48]:
F1(c) = 1/n * 2*(i20 + i15) F1
Out[48]:
c |--> 2/3*c^3 - 2*c^2 + 2*c - 2/3
In [49]:
F2(c) = 1/n * 2*(i15 + i17 + i19 + i23) F2
Out[49]:
c |--> 2/3*c^3 - 2*c^2 + 2*c - 2/3
In [50]:
F3(c) = 1/n * 2*(i15 + i17 + i19 + i21 + i24 + i25) F3
Out[50]:
c |--> -2/9*c^3 + 2*c^2 - 4*c + 7/3
In [51]:
F4(c) = 1/n * (i1 + i2 + i3 + i4 + i5 + i6 + i7 + i8 + i9 + i10 + i11 + i12 + i13 + i14 + 2*(i16 + i18 + i22) ) F4
Out[51]:
c |--> 1
Verteilungsfunktion
F(x)=⎩⎨⎧032x3−2x2+2x−32−92x3+2x2−4x+371fu¨r x<1,fu¨r 1≤x<23,fu¨r 23≤x<2,sonstDichtefunktion
In [52]:
def f(x): if 1 <= x and x < 4/3: return (diff(F1(c)))(c=x) if 4/3 <= x and x < 3/2: return (diff( F2(c)))(c=x) if 3/2 <= x and x < 2: return (diff(F3(c)))(c=x) if c >= x: return (diff(F4(c)))(c=x) else: return 0
In [53]:
plot(f, (c, -1, 3))
Out[53]:
In [0]: