Численное интегрирование: различия между версиями
[отпатрулированная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
IvanP (обсуждение | вклад) м многоточие |
→Примеры реализации: Добавил поддержку Питона 3, исправил опечатки, сделал нормальный порядок вывода границ промежутка. Метка: редактор вики-текста 2017 |
||
Строка 148:
== Примеры реализации ==
Ниже приведена реализация (Python 2.7 и 3.6), метода
<source lang="python">
from matplotlib.mlab import
import math, random
Строка 160:
integral = 0.0
step = (max_lim - mim_lim) / n
for x in
integral += step * func(x + step / 2)
return integral
Строка 169:
n *= 2
print 'Rect'▼
if a >
print('Rectangles:')
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n))),
print('\t%s\t%s\t%s' % (n, a, b))
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n)) + d)])
def trapezium_method(func, mim_lim, max_lim, delta):
Строка 180:
integral = 0.0
step = (max_lim - mim_lim) / n
for x in
integral += step*(func(x) + func(x + step)) / 2
return integral
Строка 189:
n *= 2
print 'Rect'▼
if a >
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n))),
print('\t%s\t%s\t%s' % (n, a, b))
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n)) + d)])
def simpson_method(func, mim_lim, max_lim, delta):
Строка 200:
integral = 0.0
step = (max_lim - mim_lim) / n
for x in
integral += step / 6 * (func(x - step / 2) + 4 * func(x) + func(x + step / 2))
return integral
Строка 209:
n *= 2
▲ print 'Rect'
if a >
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n))),
print('\t%s\t%s\t%s' % (n, a, b))
▲ str(math.fabs(integrate(func, mim_lim, max_lim, n)) +d )])
def monte_karlo_method(func, n):
Строка 222:
if y < func(x): in_d += 1
print
print
method_of_rectangles(lambda x: math.e ** x, 0.0, 1.0, 0.001)
Строка 229:
simpson_method(lambda x: math.e ** x, 0.0, 1.0, 0.001)
monte_karlo_method(lambda x: math.e ** x, 100)
print('True value:\n\t%s' % get_i())
</source>
== Литература ==
|