# -*- coding: utf-8 -*- # from math import * eps = pow(10,-4) a = 1 b = 10 h = 0.01 # tu się można bawić wartością, dla 0.01 jest już ok n = (b-a)/h m = int(n/2) res = 14.02585092994046 # wynik z wolframa def sum2(list): return list[0]*0.5 + sum(list[1:][:len(list)-2]) + list[len(list)-1]*0.5 print "h=",h S1 = sum2([log(a + h*2*k) for k in xrange(1,m+1)]) print "S1=", S1 S2 = sum([log(a + h*(2*k-1)) for k in xrange(1,m+1)]) print "S2=", S2 Sn = h/3 * (2*S1 + 4*S2) print "Sn=", Sn print "Diff= %.6f" % abs(res-Sn)
\displaystyle S_n(f)=\frac 13[4T_n(f) - T_{n/2}(f)]\ (n=2, 4, \cdots)
Podprzedziały w T_{n/2} są 2 razy większe, więc h' = 2h
\displaystyle =\frac 13[4\cdot h\sum^n_{k=0}” f(t_k) - 2\cdot h\sum^{n/2}_{k=0}” f(t_{2k}) ]
\displaystyle =\frac h3[4\cdot \sum^n_{k=0}” f(t_k) - 2\cdot \sum^{n/2}_{k=0}” f(t_{2k}) ]
\displaystyle =\frac h3[2\cdot f(t_0) + 4\cdot \sum^{n-1}_{k=1} f(t_k) + 2\cdot f(t_n)+
\displaystyle 2\cdot(-\frac 12\cdot f(t_0) - \sum^{n/2-1}_{k=1} f(t_{2k}) - \frac 12\cdot f(t_{n}))]
\displaystyle =\frac h3[2\cdot f(t_0) + 4\cdot (f(t_1)+f(t_2)+\cdots +f(t_{n-1})) + 2\cdot f(t_n)
\displaystyle -f(t_0) - 2(f(t_2) + f(t_4 )+\cdots f(t_{n-2}) ) - f(t_{n}))]
\displaystyle =\frac h3[f(t_0) + 2\cdot(f(t_1)+f(t_2)+\cdots +f(t_{n-1})) + f(t_n)
\displaystyle +2\cdot(f(t_1)+f(t_3)+\cdots + f(t_{n-1}))]
\displaystyle =\frac h3[f(t_0) + 2\cdot(f(t_2)+f(t_4)+\cdots +f(t_{n-2})) + f(t_n)
\displaystyle +4\cdot(f(t_1)+f(t_3)+\cdots + f(t_{n-1}))]
\displaystyle =\frac h3[f(t_0) + 2\cdot \sum^{n/2 -1}_{k=1} f(t_{2k}) + f(t_n) + 4\cdot \sum^{n/2}_{k=1} f(t_{2k-1})]
\displaystyle =\frac h3[2\cdot \sum^{n/2}_{k=0}” f(t_{2k}) + 4\cdot \sum^{n/2}_{k=1} f(t_{2k-1})]