650.00K
Category: mathematicsmathematics

Презентация 5 (2026)

1.

Особенности математических вычислений, реализуемых
на компьютере. Погрешности вычислений.
Общие понятия, которые требуют внимания при решении задачи с
помощью компьютера. - дискретизация задачи; обусловленность
задачи; погрешность; устойчивость и сложность алгоритма.
Дискретизация. Пусть требуется найти приближенное решение
какой-либо задачи, в которой в качестве входных данных участвует
какая-либо функция f(x), определенная на всем (бесконечном)
множестве точек отрезка 0≤x≤1. Значения этой функции при каждом
фиксированном x можно получить измерениями или вычислениями.
Для запоминания этой функции в памяти компьютера необходимо
приближенно описать ее таблицей значений на некотором конечном
множестве отдельных точек x0, x1…xn. Это – простейший пример
дискретизации задачи: от задачи запоминания функции на отрезке[0, 1]
мы перешли к задаче запоминания таблицы значений на дискретном
множестве точек x0, x1…xn из этого отрезка.
Задачу вычисления производной (предела разностного отношения)
можно приближенно заменить задачами вычисления самого разностного
отношения. Это другой пример дискретизации.

2.

Обусловленность Во всякой задаче требуется по входным данным
сделать заключение о каких-либо свойствах решения. Похожие на
первый взгляд задачи могут резко отличаться чувствительностью
интересующих свойств решения к возмущению входных данных. Если
эта чувствительность “мала”, то задача считается хорошо
обусловленной; в противном случае – плохо обусловленной. Обычно
плохо обусловленные задачи не только предъявляют высокие
требования к точности задания входных данных, но и более трудны для
вычислений.
Погрешность. При решении вычислительной задачи возникают
погрешности. Причины погрешностей:
Первая причина – неопределенность при задании входных данных,
которая приводит к соответствующей неопределенности в ответе: ответ
может быть указан лишь с некоторой погрешностью, которая носит
название неустранимой погрешности.
Вторая причина: если мы ликвидируем неопределенность в задании
входных данных, фиксировав какие-либо входные данные, а затем
будем вычислять ответ с помощью какого-нибудь приближенного метода,
то найдем не в точности тот ответ, который соответствует этим
фиксированным входным данным. Возникает погрешность,
связанная с выбором приближенного метода вычислений.

3.

Третья причина: выбранный приближенный метод реализуется неточно
из-за погрешностей округлений при вычислениях на компьютере.
Погрешность результата складывается, таким образом, из неустранимой
погрешности, погрешности метода и погрешности округлений.
Нет смысла добиваться, чтобы погрешность метода была существенно
меньше неустранимой погрешности, а погрешность округлений не должна
быть существенно больше погрешности метода вычислений.
В противном случае произойдет потеря точности метода за счет
погрешностей округления.
Устойчивость и сложность алгоритма (по памяти, по времени). Для
численного решения какой-либо задачи на компьютере возможны
различные алгоритмы. Одни из них могут быть много лучше других.
Алгоритмы могут отличаться точностью; при одинаковой точности могут
отличаться числом арифметических действий; могут обладать одинаковой
точностью, но один из них вычислительно устойчив, а другой неустойчив
(т.е. один обеспечивает требуемую точность, а другой - нет. Алгоритм
может быть сходящимся или расходящимся (непригодным для вычислений)

4.

Особенности интегрирования
При вычислении определенных интегралов на интервале [a;b] не
всегда задача может быть решена аналитически. Кроме того,
численное решение требуется в том
случае,
когда
подынтегральная функция задана таблично. Для численного
интегрирования подынтегральную функцию аппроксимируют какойлибо более простой функцией, интеграл от которой может быть
вычислен.
b
b
R - – априорная погрешность
метода на интервале
I = f ( x ) dx = ( x ) dx + R
интегрирования
a
a
Обычно в качестве аппроксимирующей функции используют полином.
В случае полинома нулевой степени метод численного
интегрирования называют методом прямоугольников, в случае
полинома первой степени – методом трапеций, в случае полинома
второй степени – методом Симпсона. Все эти методы являются
частными случаями квадратурных формул Ньютона-Котеса для
равноотстоящих
узлов.
Квадратурными
называют
методы
вычисления однократных интегралов (для кратных интегралов –
кубатурными).

5.

Чтобы не иметь дела с многочленами высоких степеней, разбивают
промежуток интегрирования на отдельные участки, применяют формулы
Ньютона-Котеса с невысокими степенями и потом складывают
b
n
полученные результаты:
f ( x ) dx = A f ( x ) + R
a
k =0
k
k
Метод прямоугольников. На каждом шаге интегрирования функция
аппроксимируется полиномом нулевой степени – отрезком,
параллельным оси абсцисс
Ak = xk = h
b−a
h=
n

6.

.Метод трапеций.
Аппроксимация в этом
методе осуществляется
полиномом первой
степени.
f ( x0 ) + f ( xn )
+ f ( x1 ) + f ( x2 ) + .... + f ( xn −1 ))
a f ( x ) dx h (
2
b
nh3
R=−
f ( )
12
a b

7.

Метод Симпсона.
Подынтегральная функция
f(x) заменяется полиномом
второй степени P(x) –
параболой, проходящей
через три узла
b
h
a f ( x ) dx 3 ( f ( x0 ) + f ( x2m ) + 2 ( f ( x2 ) + ) f ( x4 ) + ... + f ( x2m −2 ) +
+4 ( f ( x1 ) + f ( x3 ) + ... + f ( x2m−1 ) )
mh5 ( 4)
R=−
f ( )
90
a b
n=2m

8.

В квадратурныx формулах
Гаусса
1
n
f (t ) dt = A f (t ) + R ( f )
−1
i =1
i
i
n
Коэффициенты Ai и абсциссы ti (i=1,2,…n) подбираются так, чтобы
формула была точной для всех многочленов наивысшей возможной
степени N.
Доказано, что такие числа Ai, ti определяются однозначно при N=2n-1.
В таблице приведены значения абсцисс ti и коэффициентов Ai, а
также формулы остаточных членов при n=4,5,7

9.

b
При вычислении интеграла:
f ( x) dx
a
Следует сделать замену переменной
x=
b+a b−a
+
t
2
2
Тогда формула Гаусса будет иметь вид:
b
b−a n
*
f
(
x
)
dx
=
A
f
(
x
)
+
R
i
i
n(f )
a
2
i =1
b+a b−a
xi =
+
ti
2
2

10.

Казалось бы высокой точности интегрирования можно достичь, просто
уменьшая величину шага интегрирования. График поведения
апостериорной погрешности R результатов численного расчета в
зависимости от числа n разбиений интервала (т.е. при n →
или h → 0 )
На участке (1) погрешность
уменьшается
в
связи
с
уменьшением шага h. Но на
участке
(2)
начинает
доминировать
вычислительная
погрешность, накапливающаяся
в результате многочисленных
арифметических действий. Таким
образом, для каждого метода
существует своя Rmin, которая
зависит от многих факторов, но
прежде всего от априорного
значения погрешности метода R.
Существуют и другие (более сложные) методы

11.

Метод Ромберга заключается в последовательном уточнении значения
интеграла при кратном увеличении числа разбиений. В качестве
базовой взята формула трапеций с равномерным шагом h.
Обозначим интеграл с числом разбиений n = 0
b
h
R(1,1) = ( f ( a ) + f ( b ) ) f ( x ) dx
2
a
h =b−a
Если разбить интервал на две части, то есть уменьшить шаг в
два раза (n = 1), то оценка для величины интеграла будет иметь вид
h
R(2,1) = ( f ( a ) + f ( b ) ) + h f ( a + h ) =
2
b−a
b
1
h=
= R(1,1) + h f ( a + h ) f ( x ) dx
2
2
a
Если каждый из подинтервалов разбить еще на две части (n = 2) ,
то оценка для величины интеграла
h
R(3,1) = ( f ( a ) + f ( b ) ) + h f ( a + h ) + h f ( a + 2h ) + h f ( a + 3h )
2
1
= R(2,1) + h f ( a + h ) + h f ( a + 3h )
2

12.

Заметим, что на каждом новом шаге в новую оценку входит старая
оценка и требуется определять значение функции только в новых
узлах.
Если имеется 2n подинтервалов, то
n −1
b−a
h= n
2
2
h
R(n + 1,1) = ( f ( a ) + f ( b ) ) + h f (a + ih) =
2
i =1
n −1
2
1
= R(n,1) + h f (a + (2i − 1)h) =
2
i =1
(2)
Получили реккурентное соотношение (рекурсивную формулу трапеций),
которое применяют для вычисления определенных интегралов.
Преимущество этой формулы состоит в том, что при увеличении
числа подинтервалов функцию нужно вычислять только во вновь
добавленных точках. К сожалению, с помощью этой формулы
нельзя получить сколь угодно точное значение интеграла. Вопервых, при увеличении числа разбиений объем вычислений
стремительно возрастает; во-вторых, на каждом шаге накапливается
ошибка округлений.

13.

Для дальнейшего уточнения значения интеграла полученную
последовательность значений экстраполируют на случай
бесконечного числа точек или что то же самое, на случай нулевого
шага. Такой подход называется методом Ромберга.
Полученные оценки значения интеграла экстраполируют по формуле:
R(n + 1, m) − R(n, m)
R(n + 1, m + 1) = R(n + 1, m) +
4m − 1
(3)
То есть строится треугольник
R(1,1)
R(2,1) R(2,2)
R(3,1) R(3,2) R(3,3)
R(4,1) R(4,2) R(4,3) R(4,4)
R(5,1) R(5,2) R(5,3) R(5,4) R(5,5) ,
R(2,2)= R(2,1)+(R(2,1)- R(1,1))/3
R(3,2)= R(3,1)+(R(3,1)- R(2,1))/3
R(3,3)= R(3,2)+(R(3,2)- R(2,2))/15
в котором первый столбец состоит из значений интеграла,
полученных при последовательном удвоении числа интервалов.
Второй столбец – результат уточнения значений первого столбца по
рекуррентной формуле (3). Третий столбец – уточненные значения
интеграла на основе второго столбца и т.д. Метод завершается, когда
четыре последних оценки отличаются меньше, чем на значение ε.

14.

Отличие адаптивного алгоритма от метода Ромберга заключается в
том, что шаг разбиения интервала, на котором производится
интегрирование, изменяется в соответствии со скоростью изменения
значения самой функции, что позволяет дополнительно
минимизировать погрешность. Еще одно преимущество этого метода
интегрирования заключается в возможности интегрировать функции,
имеющие точки разрыва первого рода, При использовании метода
Ромберга зачастую такие функции невозможно проинтегрировать
численно.
В адаптивном методе используются разные значения шага
интегрирования на отдельных участках отрезка интегрирования. Это
дает возможность уменьшить машинное время без потери точности
результатов расчета. Этот метод используется обычно при задании
подынтегральной функции y=f(x) в виде формулы, а не в табличном
виде.

15.

Принцип работы адаптивного алгоритма.
Первоначально отрезок [a,b] разбиваем на n частей. В дальнейшем
каждый такой элементарный отрезок делим последовательно пополам.
Окончательное число шагов, их расположение и размеры зависят от
подынтегральной функции и допустимой погрешности ε.
К каждому элементарному отрезку [xi-1, xi] применяем формулы
численного интегрирования при двух различных его разбиениях.
Получаем приближения I i(1) , I i( 2) для интеграла по этому отрезку:
xi
I i = f ( x ) dx
xi −1
Полученные значения сравниваем и проводим оценку их
погрешности. Если погрешность находится в допустимых границах,
то одно из этих приближений принимается за значение интеграла по
этому элементарному отрезку. В противном случае происходит
дальнейшее деление отрезка и вычисление новых приближений. С
целью экономии времени точки деления располагаются таким
образом, чтобы использовались вычисленные значения в точках
предыдущего разбиения.

16.

Процесс деления отрезка пополам и вычисления уточненных значений
I i(1) , I i( 2)
продолжается до тех пор, пока их разность станет не больше
некоторой заданной величины δi , зависящей от ε и h:
I i(1) − I i( 2) i
(4)
Аналогичная процедура проводится для всех n элементарных
n
отрезков. Величина
I = Ii
i =1
принимается в качестве искомого значения интеграла. Условия (4)
и соответствующий выбор величин δi обеспечивают выполнение
условия
b
I − f ( x) dx
a

17.

Численное интегрирование ( при задании значений интегрируемой
функции в виде массива) можно выполнить с помощью метода trapz()
библиотеки NumPy. Вычисления реализуются методом трапеций.
numpy.trapz(y, x=None, dx=1.0, axis=-1)
y - входной массив значений функции
x - необязательный параметр, определяющий значения аргумента.
Может быть задан массивом. Если не указан, то точки выборки
расположены друг от друга на одинаковом расстоянии.
dx - необязательный параметр, характеризующий интервал между
выборками. По умолчанию равен 1.
axis - необязательный параметр, определяющий ось (направление)
вдоль которого осуществляется интегрирование
Если y - n-мерный массив, то результатом является (n-1) -мерный
массив. Для одномерного массива результат – число с плаваюшей
запятой.
для равномерно расположенных точек с интервалом dx=1

18.

Расстояние между точками выборки можно выбрать с помощью
параметров x или dx
Перечисление значений x в порядке уменьшения соответствует
интегрированию в обратном направлении:
В более общем смысле x используется для интегрирования по
параметрической кривой. Т.е. задав значения х через определенные
интервалы мы можем реализовать параметрическое интегрирование.
b
b
a
a
y dx = y(t ) x (t )dt

19.

вычислим площадь круга радиуса=1
numpy.trapz можно применять вдоль указанной оси
Вычислим с помощью функции trapz двойной интеграл
2
2
(
x
+
y
) dx dy
2/3
по области
0≤x≤1 0≤y≤1

20.

Первые две строчки используются для задания сетки значений
переменных, в третьей строке задаются значения подинтегральной
функции в узловых точках.
Можно вычислять интегралы, используя библиотеку SymPy
integrate(f, x)
Возвращает неопределенный интеграл
integrate(f, (x, a, b))
Возвращает определенный интеграл
В этом случае подинтегральная функция должна быть задана
аналитически, а переменная интегрирования описана как символьная
переменная. Если мы хотим использовать эту функцию при численном
интегрировании, то предполагается, что подинтегральная функция –
является аппроксимирующей для функции, заданной таблицей.

21.

1
Вычислим
2
x
x
e
dx
0
При использовании SymPy, можно в ряде случаев интегрировать
неэлементарные функции:
Наиболее обширным набором процедур интегрирования обладает
библиотеке SciPy, (Scientific Python) модуль integrate.

22.

Интегрирование объектов класса “function”
1
quad
Вычисление интегралов функции одной переменной или интегралов
по одной переменной (от функции многих переменных) Адаптивный
алгоритм.
2
dblquad
Вычисление двойных интегралов.
3
tplquad
Вычисление тройных интегралов
4
nquad
для n- кратного интегрирования
5
quad_vec
для интегрирования вектор функции по одной переменной
6
fixed_quad
Алгоритм - Гауссовские квадратуры , порядок n
7
quadrature
адаптивный алгоритм с использованием Гауссовских квадратура
8
romberg
интегрирование методом Ромберга, Использует адаптивный алгоритм

23.

интегрирование выборочных данных
9
trapezoid
Правило трапеций
10
cumulative_trapezoid
Модификация правила трапеций
11
simpson
Правило Симпсона
12
romb
интегрирование методом Ромберга функции одной переменной,
quad - функция общего назначения, используемая для вычисления
определенных интегралов с одной переменной. Функция quad
возвращает кортеж из результата вычисления определенного интеграла
и абсолютной ошибки вычислений. В ряде случае возвращает словарь,
содержащий дополнительную информацию, сообщение о сходимости,

24.

scipy.integrate.quad(func, a, b, args=(), full_output=0, epsabs=1.49e-08,
epsrel=1.49e-08, limit=50, points=None, weight=None, wvar=None,
wopts=None, maxp1=50, limlst=50, complex_func=False)
Интегрирует функцию func на интервале от a до b, используя метод
QUADPACK from the Fortran library. Возможно интегрирование по
бесконечному или полубесконечному интервалу Для обозначения
минус бесконечности используется -numpy.inf , для плюс
бесконечности numpy.inf
func может быть функцией многих переменных, но она
интегрируется по одной оси (направлению), соответствующей
первому аргументу.
full_output Необязательный параметр (целое число). Если не равен
нулю, то возвращается словарь с информацией об интегрировании.
complex_func - необязательныйц параметр. Указывет, является ли тип
возвращаемого значения функции (func) действительным
(complex_func=False: по умолчанию) или комплексным
(complex_func=True). В обоих случаях аргумент функции
действительный. quad интегрирует комплексные функции, интегрируя
действительные и мнимые компоненты отдельно

25.

Зададим подинтегральную функцию не с помощью
оператора def , а с помощью лямбда функциии
и вычислим интеграл:
1
Вычислим двойной интеграл
x
е
− ( x2 + y 2 )
dx
− 1 + x2
dx dy
0 x
с помощью
scipy.integrate.dblquad(func, a, b, gfun, hfun, args=(), epsabs=1.49e-08,
epsrel=1.49e-08)
func - функция
a, b пределы интегрирования по х (тип float)
gfun, hfun - Нижняя и верхняя граничные кривые (пределы),
представляющие собой функции переменной (x) или числа с
плавающей запятой

26.

27.

scipy.integrate.romb(y, dx=1.0, axis=-1, show=False)
y - Вектор из 2k+1 равноотстоящих выборок функции.
dx -- необязательный параметр Расстояние между значениями
аргумента. По умолчанию — 1.
show - необязательный параметр (логический). Если этот аргумент
имеет значение True, то будет выведена таблица, показывающая
экстраполяцию на основе выборок. По умолчанию — False.
Пример

28.

scipy.integrate.simpson(y, x=None, dx=1.0, axis=-1, even=None)
y - массив значений функции для интегрирования
x -- необязательный параметр. Если задан, то это точки, в которых
производится выборка
dx -- необязательный параметр. Расстояние между точками
интегрирования по оси x. Используется только тогда, когда x не задан.
По умолчанию — 1.
even необязательный параметр, который либо отсутствует, либо
принимает значения: ‘simpson’, ‘avg’, ‘first’, ‘last’. Метод Симпсона
требует четного количества интервалов. «even» управляет процессом
вычисления в противоположном случае.
‘avg’ Усреднение двух результатов при нечетном числе интервалов:
1. на последнем интервале используется формула трапеций (на
остальных – Симпсон)
2. на первом интервале используется формула трапеций (на
остальных – Симпсон)
‘first ’ используется правило трапеций на последнем интервале.
‘last’ используется правило трапеций на первом интервале.
.

29.

«simpson» - Используется правило Симпсона для первых
интервалов с добавление 3-точечного параболического сегмента для
последнего интервала
Применим метод Симпсона к предыдущей задаче
Вычислим двойной интеграл, заданной таблицей значений
функции, используя метод Симпсона
2
2
(
x
+
y
) dx dy
по области
0≤x≤1 0≤y≤1

30.

Вычисление интегралов методом Монте-Карло
Метод простого Монте-Карло
Теорема о среднем в интегральном исчислении:
если функция f(x) непрерывна на отрезке [a;b], то существует точка
b
ξ∈[a;b], такая что:
f ( x) dx = f ( ) (b − a)
a
Геометрический смысл: существует прямоугольник с основанием (b−a),
равновеликий криволинейной трапеции. f(ξ) имеет смысл среднего
:
значения функции.
b
b−a N
f ( i )
a f ( x) dx = (b − a) M f ( ) N
i =1
Т.о. Можно посчитать значения функции в большом числе случайных
точек и найти их среднее.

31.

Геометрический метод Монте-Карло
Пусть требуется вычислить
интеграл
b
f ( x) dx
a
и известно, что функция положительна
и ограничена сверху значением M.
Задаем пары случайных величин ξ, - равномерно на интервале (a,b), η равномерно на интервале (0,М). Из N пар находим удовлетворяющие
условию f(ξ)<η, т.е лежащие под графиком функции.
Значение интеграла равно площади под графиком функции:
b
f ( x) dx (b − a) M
a
K
N
K - число точек лежащих
ниже графика функции.

32.

Методы Монте-Карло применяют только для оценки интегралов, в
основном – многомерных
Повышение точности вычислений по методу Монте-Карло:
1.разбиение области интегрирования на части, в которых границы
изменения функции уже.
2. выделение главной части подынтегральной функции. Для этого из
подынтегральной функции вычитают близкую функцию, интеграл от
которой известен
Повышение точности разбиением
интервала (S* не учитывается)
Повышение точности выделением
главной части (S* не учитывается)
English     Русский Rules