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

Лекция 4

Вычислительная физика
План лекции
 Численное интегрирование. Определенные
интегралы.
 Метод трапеций и метод Симпсона
 Численное интегрирование обыкновенных
дифференциальных уравнений. Задача Коши.
 Схема Эйлера
 Устойчивость схемы Эйлера
 Обобщение на случай дифференциального
уравнения n-го порядка
 Алгоритм Верле
18.11.2013 Программирование и информатика: Лекция 4 2
Численное интегрированное
(определенные интегралы)

 f ( x)dx
a
на [a, b], f(x) - известная функция

Первообразная I  Ф(x) b
a

18.11.2013 Программирование и информатика: Лекция 4 3


Геометрический смысл
определенного интеграла

f(x)

a b

18.11.2013 Программирование и информатика: Лекция 4 4


Численное интегрирование
Разобьем [a, b] на N равных интервалов (xn, xn-1):
xn+1 – xn = ∆x ≡ h = (b-a)/N , n = 0,1, … N-1
f(x)
xn – узел, n=0,1,2 … N-1
{xn} – расчетная сетка
∆xn = xn+1-xn - шаг сетки

f(xn)fn – сеточная функция

∆x
x0 x1 xn … xn+1 … xN

18.11.2013 Программирование и информатика: Лекция 4 5


Формула трапеций
f(x) fN
fn+1

f0 f1 fn In+1
In
I0 I1
h
x0 x1 … xn xn+1 … xN

f n  f n 1
N -1
 N-1 f0  f N 
I   In   h    fn  h  I т
n n 0 2  n 1 2 
18.11.2013 Программирование и информатика: Лекция 4 6
Погрешность формулы трапеций
 N-1 f0  f N 
Iт    fn  h
 n 1 2 

I - I т  (b  a) max  f ( x) 
h2
12 [a, b]

Погрешность ↓ как h2, если существует конечная f’’(x)

Выбор шага интегрирования I(N)


Т - I (2N)
Т <

I(2N)  Т / 2   f new h new


(N)
Т I
new
18.11.2013 Программирование и информатика: Лекция 4 7
Уменьшение шага интегрирования
fN
f(x) fn+1

f0 f1 fn

hnew=h/2
x0 x1 … xn xn+1 … xN

I(2N)  Т / 2   f new h new


(N)
Т I
new
18.11.2013 Программирование и информатика: Лекция 4 8
Формула Симпсона
f(x)

In
h
x0 xn-1 xn … xn+1 … xN

 f ( x)dx  f ( x)  ax   (ax
xn 1 xn 1

In  2
 bx  c  2
 bx  c)dx
xn 1 xn 1

18.11.2013 Программирование и информатика: Лекция 4 9


Формула Симпсона

   (ax
xn 1 xn 1

In   f ( x)dx  f ( x)  ax 2  bx  c   bx  c)dx
2

xn 1 xn 1

Пусть xn = 0, xn+1 = h, xn-1 = -h


xn 1 3 h
ax 2 3
x (ax  bx  c)dx  3  c x -h  ah  2ch
2 h

n 1 -h
3

f n -1  f (h)  ah 2  bh  c c  fn
f n  f (0)  c f n 1  f n -1  2 f n
a
f n 1  f ( h)  ah 2  bh  c 2h 2
18.11.2013 Программирование и информатика: Лекция 4 10
Формула Симпсона

xn 1 c  fn
2 3
x (ax  bx  c)dx  3 ah  2ch  a  f n 1  f n-21  2 f n
2

n 1
2h

 f n 1  f n 1 4   f n 1 4 f n 1 
  f n h  h  fn    In
 3 3   3 3 3 

18.11.2013 Программирование и информатика: Лекция 4 11


Формула Симпсона
f(x)

 f n 1 4 f n 1 
I n  h  fn  
 3 3 3 

In
h
x0 xn-1 xn … xn+1 … xN

 f0 4 2 4 4 fN 
I   I n  h  f1  f 2  f 3    f N-1    I с
n 3 3 3 3 3 3 
18.11.2013 Программирование и информатика: Лекция 4
N = 2k, k = 1,2, … 12
Погрешность формулы Симпсона

 f0 4 2 4 4 fN 
I с  h  f1  f 2  f 3    f N-1  
3 3 3 3 3 3 

I - Iс 
h4
180

(b  a) max f ( x)
[a, b]
(4)

Погрешность ↓ как h4, если существует конечная f(4)(x)

Иногда лучше использовать более простую формулу


трапеций

18.11.2013 Программирование и информатика: Лекция 4 13


Численное интегрирование обыкновенных
дифференциальных уравнений.
Задача Коши.

Уравнение первого порядка

 du u – неизвестная функция
  f(u,t) t – независимая переменная
 dt Хотим знать решение на

u(t0 )  u 0 отрезке [t0, tN]
tn – узел, n = 0,1,2 … N
{tn} – расчетная сетка
t0 t1 … tn tn+1 … tN t ∆tn = tn+1-tn - шаг сетки

u(tn)  un – сеточная функция

18.11.2013 Программирование и информатика: Лекция 4 14


Схема Эйлера

 du du  f(u,t)dt
  f(u,t)
 dt

u(t0 )  u 0 t0 t1 … tn tn+1 … tN t

u n 1 t n 1 Аппроксимируем f на

 du   f(u,t)dt
un tn
[tn,tn+1] значением f(un, tn)
 fn = const

un+1 = un + fn∆t n = 0,1, …, N-1

18.11.2013 Программирование и информатика: Лекция 4 15


Геометрический смысл схемы Эйлера

 du
  f(u,t) un1  un  f n  t
 dt

u(t0 )  u 0
un  un1  un  f n  t
u(t)

un
tn tn+1 t
18.11.2013 Программирование и информатика: Лекция 4 16
Устойчивость численной схемы

Ошибка:  n   n1

 n1   n схема устойчива

 n1   n λ – множитель перехода

 1

18.11.2013 Программирование и информатика: Лекция 4 17


Устойчивость схемы Эйлера

du
 f(u,t) un1  un  f n  t
dt

un 1   n 1  un   n  f n (un   n )  t 
Пусть на n-ом шаге ошибка εn, наn+1
f – εn+1,
  n )Эйлера
f (un схему
Запишем  f (вuвиде:
n)   n  o( )
2

u
n
un

df
 un   n  f n (un )t   n t  o( n )t
2

du
18.11.2013 Программирование и информатика: Лекция 4 18
Устойчивость схемы Эйлера

df
 n 1   n   n t  o( n )t
2

du
 df 
 n 1   n 1  t 
 du 
df
  1 t
du

18.11.2013 Программирование и информатика: Лекция 4 19


Решение с нарастанием

df
 1   1 t
du

1) Решение с нарастанием u(t)

df Схема неустойчива
0 для любого Δt !
du
 1 t

18.11.2013 Программирование и информатика: Лекция 4 20


Решение с затуханием
df
 1   1 t
du
df
<0 df
du u(t) t  2
du
dfdf
11 t t11 t 
2
du
du df
 df1, t21 du t
du Схема условно устойчива !
18.11.2013 Программирование и информатика: Лекция 4 21
Система уравнений

 du1
  f1(u1 , u2 ,t) u1 (t0 )  u10
 dt

 du2  f (u , u ,t) u2 (t0 )  u20

 dt
2 1 2

Схема Эйлера

u1n 1  u1n  f1 (u1n , u2 n , tn )t  u1n  f1n t


u2 n 1  u2 n  f 2 (u1n , u2 n , tn )t  u2 n  f 2 n t
18.11.2013 Программирование и информатика: Лекция 4 22
Векторный формализм
 
Пусть u  u1 , u2  f   f1 , f 2 

Задача Коши
 
du   
 f(u,t) u (t0 )  u0
dt
Численное решение по схеме Эйлера

  
un1  un  f n t
18.11.2013 Программирование и информатика: Лекция 4 23
Обобщение на случай дифференциального
уравнения n-го порядка
Пусть n = 2

u  f(u , u,t) u(t0 )  u0 , u (t0 )  v0

Замена u  v тогда u  v

 dv
  f(u , v,t) v(t 0 )  v 0
 dt

 du  v u (t 0 )  u 0

 dt
18.11.2013 Программирование и информатика: Лекция 4 24
Пример. Численное решение задачи
механики

x Найти v(t), x(t)


Физическая модель: постоянная
сила тяжести, вязкое трение

  
v0 F  kv Закон Стокса

 dx
 dt  v
2-ой закон Ньютона 
mx  mg  kx 
dv 
  a   g 1  kv 
 
18.11.2013

 dt
Программирование и информатика: Лекция 4  mg  25
Скорость
mx  mg  kx
Предельная скорость 0  mg  kv t
mg
vt  
vt  vt k
 dv  v 
   g 1    a( v)
 dt  vt 
v(t  0)  v
 0 Задача Коши

18.11.2013 Программирование и информатика: Лекция 4 26


Аналитическое решение

t / t 0 vt
v(t )   v t  ( v t  v 0 )e , где t0 
g

 vt

18.11.2013 Программирование и информатика: Лекция 4 27


Результаты из спорта

31м/c
25 м/c

20 м/c
25 м/c 16 м/c
9 м/c
18.11.2013 Программирование и информатика: Лекция 4 28
Численное решение. Схема Эйлера

v n 1  v n  an ( v n ,t n )t
x n 1  x n  v n t

 v  Устойчивость схемы
a   g 1  
 vt  2 2v t
t    2t0
 vn  da g
an   g 1  
 vt  dv

18.11.2013 Программирование и информатика: Лекция 4 29


Результаты численного решения

dt = 2t0/10 dt = 2t0/3

dt = 2t0 dt = 2·2t0
18.11.2013 Программирование и информатика: Лекция 4 30
Алгоритм Верле

Схема Эйлера x n1  x n  v n t

an 2
x n 1  x n  v n t  t
Самостартующий 2
алгоритм Верле
1
v n 1  v n  (an  an 1 )t
2

18.11.2013 Программирование и информатика: Лекция 4 31


Падение шарика в вязкой среде

 vn 
an   g 1  
 vt 
1
v n1  v n  (an  an 1 )t
2

g   v n   v n 1  
v n 1  v n  1    1   t
2   vt   v t 

18.11.2013 Программирование и информатика: Лекция 4 32


Явное выражение для алгоритма

 vn 
v n  g 1  t
v n 1   2v t 
g
1 t
2v t

18.11.2013 Программирование и информатика: Лекция 4 33


Литература по лекционному
материалу

1. Н.Н. Калиткин. Численные методы. – BHV, 2011, 592 с.

18.11.2013 Программирование и информатика: Лекция 4 34