Вы находитесь на странице: 1из 46

Вычислительный эксперимент

и методы вычислений
Севастьянов Антон Леонидович
к.ф.-м.н., доцент
БРС курса

• Лекции – 0 баллов;

• Лабораторные работы – 80 баллов;

• Тест (последняя лекция) – 20 баллов.

2
Содержание курса
• Вводная часть;
• Интерполирование;
• Численное интегрирование;
• Численное решение ОДУ;
• Методы решения основных задач линейной алгебры.

Основная литература: Д.П. Костомаров, А.П. Фаворский, Вводные


лекции по численным методам.
Дополнительная литература: Н.Н. Калиткин, Численные методы.

3
Вычислительный эксперимент
• Вычислительный эксперимент — метод изучения устройств или
физических процессов с помощью математического моделирования.
• Предполагается, что вслед за построением математической модели
проводится ее численное исследование, позволяющее «проиграть»
поведение исследуемого объекта в различных условиях или в
различных модификациях [Самарский, 1979; Горбунов-Посадов, 1990].
• Численное исследование модели дает возможность определять
разнообразные характеристики процессов, оптимизировать
конструкции или режимы функционирования проектируемых
устройств. Более того, случается, что в ходе вычислительного
эксперимента исследователь неожиданно открывает новые процессы
и свойства, о которых ему ранее ничего не было известно.

4
Вычислительный эксперимент занимает промежуточное
положение между натурным экспериментом и
аналитическим исследованием
• натурный (физический) эксперимент при надлежащей постановке
может, вообще говоря, дать исчерпывающие и надежные результаты;
• в вычислительном эксперименте в роли опытной установки выступает
не конкретное физическое устройство, а программа. Ее построение и
последующие модификации, как правило, требуют существенно
меньших затрат, чем подобные манипуляции над реальным
объектом;
• при аналитическом подходе так же, как и в вычислительном
эксперименте, строится математическая модель. Но исследуется эта
модель исключительно посредством аналитических выкладок, без
привлечения каких-либо численных методов. Если аналитических
выкладок оказывается достаточно, то данный подход приводит к
строгому точному решению.

5
Примеры использования вычислительного
эксперимента в автомобилестроении

6
Car crash simulation using LS-DYNA software, 2016
• Creating an actual car crash is easy
(unfortunately). But how do you create
a simulation?
• Once designers have outlined a car’s
basic form, they use the finite element
method (FEM) to model its shape by
plotting many interconnected points
on the car’s surface.
• Software then calculates how the
forces in a crash would affect each of
those points to determine the overall
result of the impact.
• This virtual car simulation, shown in
the program LS-DYNA, shows the FEM
“mesh” covering the car. Each point in
the mesh represents a series of
calculations.

7
FLUID DYNAMICS COMPUTATIONS ANALYZE
AERODYNAMICS TO IMPROVE FUEL EFFICIENCY
Performance tests provide
feedback as the design
evolves. And simulating the
manufacturing process
identifies ways to increase
efficiency or reduce waste.
To improve fuel economy, car
manufacturers try to reduce
wind resistance.
Computational fluid dynamics
(CFD) simulations show how
air moves around a moving
object, like this minivan,
allowing designers to adjust its
shape. Courtesy of Murtazo Nazarov, Uppsala University (geometry courtesy of Volvo Car Corporation)
8
Conjugate Heat Transfer and
Nonisothermal Flow
• Model of two separated fluids at different temperatures flowing
through a shell-and-tube heat exchanger.

https://www.comsol.com/heat-transfer-module
9
Интерполирование
• Постановка задачи интерполяции;
• Интерполяция полиномами;
• Интерполяционный полином в форме Лагранжа;
• Интерполяционный полином в форме Ньютона;
• Оценка погрешности интерполяции.

10
Лекция 1. Интерполирование (1)
Приближение функций

Пусть на отрезке  a, b  определена некоторая функция y = f ( x ) ,


однако полная информация о ней недоступна. Известны лишь ее
значения в конечном числе точек x0 , x1 , ..., xn этого отрезка,
которые будем считать занумерованными в порядке возрастания:
a  x0  x1  ...  xi  xi +1  ...  xn  b (1)

11
Лекция 1. Интерполирование (2)
Требуется по известным значениям
yi = f ( xi ) , i = 0,1,..., n (2)

«восстановить», хотя бы приближенно, исходную функцию


y = f ( x ) , то есть построить на отрезке  a, b  функцию F ( x ) ,
достаточно близкую к f ( x ) .

Функцию F ( x ) принято называть интерполирующей,

Точки x = x0 , x = x1 , ... , x = xn - узлами интерполяции.


12
Лекция 1. Интерполирование (3)
Подобные задачи часто возникают на практике, например при
обработке экспериментальных данных, когда значение
переменной y , зависящей от x , измеряется в конечном числе
точек xi : yi = f ( xi ) , i = 0,1, ..., n или при работе с табличными
функциями, если требуется вычислить y = f ( x ) при значениях
аргумента, не совпадающего ни с одним из табличных xi .

13
1. Интерполирование. Классическая
постановка задачи интерполирования (1)
Выберем некоторую систему функций 0 ( x ) , 1 ( x ) , ..., n ( x ) ,
заданных на отрезке  a, b  , и будем строить F ( x ) как их линейную
комбинацию:
n
F ( x ) =  cii ( x ) (3)
i =0

где числовые коэффициенты ci , i = 0, 1, ..., n подлежат


определению согласно условиям
F ( x j ) = f ( x j ), j = 0,1, ..., n (4)
14
1. Интерполирование. Классическая
постановка задачи интерполирования (2)
Равенства (4) представляют собой систему линейных
алгебраических уравнений относительно коэффициентов ci :

 c  ( x ) = f ( x ),
n

i i j j j = 0, 1, ..., n (5)
i =0

или в развернутом виде:


c00 ( x0 ) + c11 ( x0 ) + ... + cnn ( x0 ) = f ( x0 )

c00 ( x1 ) + c11 ( x1 ) + ... + cn n ( x1 ) = f ( x1 )

...
c  ( x ) + c  ( x ) + ... + c  ( x ) = f ( x )
 0 0 n 1 1 n n n n n 15
1. Интерполирование. Классическая
постановка задачи интерполирования (3)
Для того чтобы коэффициенты ci , i = 0, 1, ..., n , можно было
определить, и притом единственным образом, необходимо и
достаточно, чтобы определитель полученной системы линейных
уравнений был отличен от нуля:
0 ( x0 ) 1 ( x0 ) ... n ( x0 )
0 ( x1 ) 1 ( x1 ) ... n ( x1 )
= 0 (6)
...
0 ( xn ) 1 ( xn ) ... n ( xn )

16
1. Интерполирование. Классическая
постановка задачи интерполирования (4)
Определение. Система функций i ( x ) , i = 0,1, ..., n ,
удовлетворяющая при фиксированных значениях x j , j = 0, 1, ..., n ,
условию (6), называется чебышевской.
Очевидно, что для однозначной разрешимости задачи
интерполирования в классической постановке необходимо и
достаточно, чтобы система функций i ( x ) , i = 0, 1, ..., n , была

чебышевской.
17
1. Интерполирование. Классическая
постановка задачи интерполирования (5)
Только такие системы функций (чебышевские) и будем
использовать в этом разделе. Необходимым условием
принадлежности системы функций i ( x ) , i = 0, 1, ..., n , к
чебышевской является их линейная независимость.
Однако это условие не является достаточным.

18
1. Интерполирование. Классическая
постановка задачи интерполирования (6)
Например, для системы из двух линейно независимых функций
0 ( x ) = sin x, 1 ( x ) = cos x с узлами интерполяции x0 = 0, x1 = 
определитель
sin x0 cos x0 0 1
= = =0
sin x1 cos x1 0 −1

и данная система функций при выбранных значениях x0 и x1 не


является чебышевской.

19
2. Интерполирование полиномами (1)

При построении интерполирующей функции F ( x ) в виде (3)


функции i ( x ) , естественно, выбираются такими, чтобы их
вычисление было простым. В частности, широкое распространение
получило интерполирование с помощью степенных функций:
0 ( x ) = 1, 1 ( x ) = x, 2 ( x ) = x 2 , ..., n ( x ) = x n .

20
2. Интерполирование полиномами (2)

В этом случае интерполирующая функция представляет собой


полином степени n :
n
F ( x ) = Pn ( x ) =  ci xi (7)
i =0

с неизвестными коэффициентами ci , i = 0, 1, ..., n .

21
2. Интерполирование полиномами (3)
Согласно рассмотренной выше общей схеме построения
интерполирующей функции, следует потребовать, чтобы
коэффициенты ci с учетом (7) удовлетворяли системе линейных
уравнений

= f ( x j ),
n

c x
i =0
i j
i
j = 0, 1, ..., n (8)

22
2. Интерполирование полиномами (4)

Определителем этой системы является определитель Ван-дер-


Монда:
1 x0 ... x0 n
1 x1 ... x1n
= =  ( xi − x j )
... i j

1 xn ... xn n

23
2. Интерполирование полиномами (5)

В нашем случае этот определитель отличен от нуля, поскольку,


согласно (1), все узлы интерполирования различны между собой.
Итак, интерполирование с помощью полиномов при сделанных в
начале главы предположениях всегда осуществимо, и притом
единственным образом.

24
3. Построение интерполяционного
полинома в форме Лагранжа (1)
Представим искомый полином Pn ( x ) в виде
n
Pn ( x ) =  f ( xi ) Qn,i ( x ) (9)
i =0

где Qn,i ( x ) — полиномы степени n , «ориентированные» на точки


xi в том смысле, что

0, x = x j ,
Qn ,i ( x ) =  j  i , (10)
1, x = xi .
25
3. Построение интерполяционного
полинома в форме Лагранжа (2)
Такие полиномы легко построить:

( x−x )
j =n
Qn ,i ( x) =  j
(11)
(x − x )
j =0
j i
i j

или в развернутом виде:


Qn ,0 ( x ) =
( x − x1 )( x − x2 )...( x − xn ) ,
( x0 − x1 )( x0 − x2 )...( x0 − xn )
Qn ,i ( x ) =
( x − x0 )...( x − xi−1 )( x − xi+1 )...( x − xn ) , (12)
( xi − x0 )...( xi − xi−1 )( xi − xi+1 ) ...( xi − xn )
Qn ,n ( x ) =
( x − x0 )( x − x1 ) ...( x − xn−1 )
( xn − x0 )( xn − x1 )...( xn − xn−1 ) 26
3. Построение интерполяционного
полинома в форме Лагранжа (3)
Из (9) и (10) очевидно, что построенный полином Pn ( x )
действительно является интерполяционным полиномом для
функции y = f ( x ) на сетке с узлами x0 , x1 , ..., xn . Его принято
называть интерполяционным полиномом в форме Лагранжа. Этим
подчеркивается, что возможны и другие эквивалентные
представления интерполяционного полинома Pn ( x ) . С одним из
них мы познакомимся в следующем разделе.

27
3. Построение интерполяционного
полинома в форме Лагранжа (3)
Из (9) и (10) очевидно, что построенный полином Pn ( x )
действительно является интерполяционным полиномом для
функции y = f ( x ) на сетке с узлами x0 , x1 , ..., xn . Его принято
называть интерполяционным полиномом в форме Лагранжа. Этим
подчеркивается, что возможны и другие эквивалентные
представления интерполяционного полинома Pn ( x ) . С одним из
них мы познакомимся в следующем разделе.

28
4. Интерполяционный полином
в форме Ньютона (1)
Интерполяционный полином в форме Лагранжа, несмотря на свое
изящество, неудобен для вычислений тем, что при увеличении
числа узлов интерполяции приходится перестраивать весь полином
заново.
Перепишем интерполяционный полином Лагранжа в иной,
эквивалентной форме:
n
Pn ( x ) = P0 ( x ) +  ( Pi ( x ) − Pi−1 ( x ) ) , (13)
i =1

29
4. Интерполяционный полином
в форме Ньютона (2)
где Pi ( x ) — полиномы Лагранжа степени i  n , соответствующие
узлам интерполирования x0 , x1 , ..., xi . В частности, P0 ( x ) = f ( x0 ) —
полином нулевой степени.
Полином
Qi ( x ) = Pi ( x ) − Pi−1 ( x ) (14)

имеет степень i и по построению обращается в нуль при


x = x0 , x = x1 , ..., x = xi −1 ,

30
4. Интерполяционный полином
в форме Ньютона (3)
поэтому его можно представить в виде
Qi ( x ) = Ai ( x − x0 )( x − x1 ) ...( x − xi−1 ) , (15)

где Ai — числовой коэффициент при x i . Поскольку Pi−1 ( x ) не


содержит степени i , то Ai просто совпадает с коэффициентом при
x i в полиноме Pi ( x ) . Согласно (9) и (12) его можно записать в виде
i
f ( xk )
Ai =  , (16)
k =0 k ,i
31
4. Интерполяционный полином
в форме Ньютона (4)
Где
k ,i = ( xk − x0 )...( xk − xk −1 )( xk − xk +1 )...( xk − xi ) (17)

При этом
A0 = f ( x0 ) . (18)

Формулы (14) и (16) позволяют написать рекуррентное


соотношение для полинома Pn ( x ) :

Pn ( x ) = Pn−1 ( x ) + An ( x − x0 ) ...( x − xn−1 ) (19)


32
4. Интерполяционный полином
в форме Ньютона (5)
Выражая аналогичным образом по индукции Pn−1 ( x ) через Pn−2 ( x ) ,
Pn−2 ( x ) через Pn−3 ( x ) и т.д., получаем окончательную формулу для
полинома Pn ( x ) :

Pn ( x ) = A0 + A1 ( x − x0 ) + A2 ( x − x0 )( x − x1 ) + ...
(20)
+ Ai ( x − x0 ) ...( x − xi−1 ) + ... + An ( x − x0 ) ...( x − xn−1 )

33
4. Интерполяционный полином
в форме Ньютона (6)
Представление (20) удобно для вычислителя, поскольку
увеличение n на единицу требует только добавления к «старому»
многочлену одного дополнительного слагаемого. Такое
представление интерполяционного полинома Pn ( x ) называют
интерполяционным полиномом в форме Ньютона.

34
5. Погрешность интерполирования (1)
Поставим вопрос о том, насколько хорошо интерполяционный
полином Pn ( x ) приближает функцию f ( x ) на отрезке  a, b  , т.е.
попытаемся оценить погрешность (остаточный член):
Rn ( x ) = f ( x ) − Pn ( x ) , x   a, b (21)

Сразу же отметим, что по определению интерполяционного


полинома
Rn ( xi ) = 0, i = 0, 1, ..., n (22)

35
5. Погрешность интерполирования (2)
поэтому речь идет об оценке Rn ( x ) при значениях x  xi .

Для того чтобы это сделать, следует ввести дополнительно


предположение о гладкости функции f ( x ) . Допустим, что f ( x )
имеет непрерывную ( n + 1) производную на отрезке  a, b  .

В силу (22) Rn ( x ) можно представить в виде

Rn ( x ) = n+1rn ( x ) (23)

36
5. Погрешность интерполирования (3)
где n+1 — полином ( n + 1) -й степени:

n+1 ( x ) = ( x − x0 )( x − x1 )...( x − xn ) (24)

Зафиксируем произвольное значение x   a, b и рассмотрим


вспомогательную функцию от переменной t
g ( t ) = f ( t ) − Pn ( t ) − n+1 ( t ) rn ( x ) ,

37
5. Погрешность интерполирования (4)
заданную на отрезке  a, b  и содержащую переменную x в
качестве параметра. В силу своего определения функция g ( t )
обязана обращаться в нуль в узлах интерполирования при
t = xi , и, кроме того, при t = x , т.е. как функция аргумента t она
заведомо имеет ( n + 2 ) нуля:

g ( xi ) = 0, i = 0, 1, ..., n, g ( x ) = 0 . (25)

38
5. Погрешность интерполирования (5)

Если x   x0 , xn  , то все эти нули также лежат на отрезке  x0 , xn  .


Если x  x0 , то эти нули, вообще говоря, принадлежат отрезку
 x, xn  , а если x  xn , то они находятся на отрезке  x0 , x . Объединяя
эти три случая, скажем, что указанные нули функции g ( t )
принадлежат отрезку  ,   , где  = min ( x0 , x )  a ,
 = max ( x, xn )  b .

39
5. Погрешность интерполирования (6)
Согласно известной теореме Ролля можно утверждать, что
производная g ' ( t ) имеет по крайней мере ( n + 1) нуль на отрезке
 ,   (эти нули перемежаются с нулями самой функции g(t)).
Повторяя это рассуждение, заключаем, что g '' ( t ) имеет по крайней
мере n нулей на отрезке  ,   , g ''' ( t ) — ( n − 1) нуль и, наконец,
g ( n+1)
( t ) обращается хотя бы один раз в нуль в некоторой точке
t =    ,   , т.е.

g ( n+1)
( ) = f ( n+1)
( ) − Pn ( n+1)
( ) − ( n + 1)!rn ( x ) = 0 .
40
5. Погрешность интерполирования (7)
Учитывая, что ( n + 1) -я производная полинома степени n
тождественно равна нулю, получаем, что

f ( ) ,    ,  ,
( n+1)
rn ( x ) =   (26)
( n + 1)!
и соответственно

f ( n+1) ( )
Rn ( x ) = n+1 ( x ) (27)
( n + 1)!
41
5. Погрешность интерполирования (8)
Формула (27) не позволяет вычислить погрешность, поскольку
точное значение аргумента  нам неизвестно. Однако с ее
помощью погрешность можно оценить:
M n+1
Rn ( x ) = n+1 ( x ) , (28)
( n + 1)!
Где

M n+1 = max f
x , 
( n+1)
( x )  max
x a ,b
f ( n+1)
( x) (29)

42
5. Погрешность интерполирования (9)

Обсудим роль полинома n+1 (24) в оценке (28). На

отрезке  x0 , xn  он имеет ( n + 1) нуль, а его значения между этими


нулями сравнительно невелики, но когда точка x выходит за
пределы отрезка  x0 , xn  и удаляется от точки x0 влево или от точки
xn вправо, оценка (28) ухудшается из-за быстрого роста функции
n+1 .

43
5. Погрешность интерполирования (10)
Это хорошо видно на рис. 1, где в качестве примера приведен
график функции 4 с корнями
x0 = −3 / 2, x1 = −1 / 2, x2 = 1 / 2, x3 = 3 / 2 :

4 ( x ) = ( x 2 − 9 / 4 )( x 2 − 1/ 4 )

Ее наибольшее по модулю значение на отрезке  −3 / 2, 3 / 2 равно


единице. Однако уже в точках x = 2 за пределами отрезка
полином 4 принимает значение 4 ( 2 ) = 105 / 16 = 6,5625

44
5. Погрешность интерполирования (11)

45
5. Погрешность интерполирования (12)
Из сказанного можно сделать следующий вывод. Если x   x0 , xn  ,
то множитель n+1 не обесценивает оценку (28). Такой случай
называют собственно интерполяцией f ( x ) . Противоположный
случай, когда точка х лежит вне отрезка, называют экстраполяцией
функции f ( x ) . Отмеченная выше особенность поведения
полинома n+1 резко ухудшает оценку (28) при экстраполяции.
Поэтому на практике экстраполяции избегают или ограничиваются
многочленами невысокой степени ( n = 1, 2 ) , когда рост функции
n+1 не настолько критичен. 46

Вам также может понравиться