SlideShare a Scribd company logo
1 of 37
численные методы
Основы MATLAB
Юдинцев В. В.
19 сентября 2015 г.
Кафедра теоретической механики
Самарский государственный аэрокосмический университет
им. академика С. П. Королёва
(национальный исследовательский университет)
http://yudintsev.info
содержание
Интерполирование табличных данных
Численное дифференцирование
Численное интегрирование
Интегрирование ОДУ
Пример: задача баллистики
Управление процессом интегрирования
1
интерполирование табличных
данных
полиномиальная интерполяция
• Известны значения некоторой функции y(x) в точках
x0, x1, x2, . . . , xn:
y0, y1, y2, . . . , yn.
• Необходимо построить интерполирующий многочлен
Ln(x), совпадающий с значениями табличной функции в
точках x0, x1, x2, . . . , xn и приближающий функцию y(x) на
интервале [x0, xn].
Интерполирующий многочлен в форме Лагранжа:
Ln =
n∑
i=0
yi
(x − x0)(x − x1)...(x − xi−1)(x − xi+1)...(x − xn)
(xi − x0)(xi − x1)...(xi − xi−1)(xi − xi+1)...(xi − xn)
3
полиномиальная интерполяция: функция polyfit
Исходные данные
1 x = [ 0 . 1 0.2 0.3 0 . 4 ] ;
2 y = [ 0 . 2 0.6 0.5 0 . 3 ] ;
Вычисление коэффициентов интерполирующего
многочлена ˜y = pnxn + pn−1xn−1 + . . . + p0 для n = 3
3 p = p o l y f i t ( x , y , 3 )
4 ans =
5 66.6667 −65.0000 18.8333 −1.1000
Первый элемент – pn, последний – p0.
4
вычисление значения интерполирующей функции
Значения многочлена в точке x = 0.15:
6 >> polyval (p , 0 . 1 5 )
7 ans =
8 0.48750
5
полиномиальная интерполяция
6
полиномиальная интерполяция
7
полиномиальная интерполяция
• Полиномиальная интерполяция используется локально.
• Для глобальной интерполяции используется
сплайн-интерполяция – глобальная
„кусочно-полиномиальная“ интерполяция.
8
построение графика
9 >> fp l ot (@( x ) polyval (p , x ) , [ 0 . 1 0 . 4 ] ) ;
10 >> grid on ;
11 >> xlabel ( ’ x ’ ) ; ylabel ( ’ y ’ ) ;
12 >> print ( ’−dpng ’ , ’−r600 ’ , ’ function . png ’ ) ;
9
сплайн-интерполяция
Для числа или вектора/матрицы xp: линейная
интерполяция
1 yp = interp1 ( x , y , xp )
поиск ближайшего табличного значения
1 yp = interp1 ( x , y , xp , ’ nearest ’ )
сплайн-интерполяция (полином 3 степени)
1 yp = interp1 ( x , y , xp , ’ spline ’ )
10
численное дифференцирова-
ние
конечные разности
Задана таблица значений x0, x1, x2, . . . , xn:
1 >> x = [ 0 . 1 0.2 1 0.32 0 . 4 1 ] ;
Конечные разности 1-го порядка
∆xk = xk+1 − xk, k = 0, . . . , n − 1
1 >> dx = d i f f ( x )
2 ans =
3 0.110000 0.110000 0.090000
Конечная разности 2-го порядка
1 >> dx = d i f f ( x , 2 )
2 ans =
3 2.7756 e−17 −2.0000e−02
12
численное интегрирование
метод трапеций
1.0 1.5 2.0 2.5 3.0
-0.2
-0.1
0
0.1
0.2
0.3
0.4
x
Табличная функция:
1 >> x = [ 0 . 1 0. 21 0.32 0 . 4 1 ] ;
2 >> y = sin ( x ) +x ;
Вычисление интеграла:
1 >> trapz ( x , y )
2 ans =
3 0.1569
∫ b
a
y(x)dx ≈
1
2
n∑
i=1
(xn+1 − xn)(yn + yn+1)
14
метод симпсона
Интегрирование методом Симпсона
1 integral = quad ( @function , a , b , eps ) ;
a,b – пределы интегрирования
eps – точность (по умолчанию 10−6)
@function – ссылка на функцию или строка-выражение,
например, ’sin(x)+x’.
15
интегрирование оду
структура



dq1
dt
= f1(t, q1, q2, . . . , qn),
dq2
dt
= f2(t, q1, q2, . . . , qn),
. . .
dqn
dt
= fn(t, q1, q2, . . . , qn).
⇒
dq
dt
= f(t, q)
где
• q = (q1, q2, . . . , qn) – вектор состояния;
• f(t, q) – вектор-функция правых частей.
17
структура
• Приведение к системе дифференциальных уравнений
первого порядка.
• Файл-функция правой части f(t, q).
• Файл-скрипт запуска процесса интегрирвования ДУ.
18
пример: задача баллистики
задача баллистики
20
уравнения движения
Векторное уравнение
m⃗a = ⃗Fg = m⃗g.
Проекции векторного уравнения на
оси координат:
max = m
d2x
dt2
= 0,
may = m
d2y
dt2
= −mg.
21
дифференциальные уравнения движения
Приведение к системе дифференциальных уравнений
первого порядка.



m
d2x
dt2
= 0,
m
d2y
dt2
= −mg.
⇒



dx
dt
= Vx,
dVx
dt
= 0,
dy
dt
= Vy,
dVy
dt
= −g.
⇒
dq
dt
= f(q, t)
где
q = (x, Vx, y, Vy), f(q, t) = (Vx, 0, Vy, −g)
22
ode файл – файл-функция правых частей
Файл в котором вычисляется правая часть
дифференциального уравнения или системы уравнений:
q ⇒ ˙q = f(q, t) ⇒ ˙q
где x – вектор зависимых переменных, t – время.
Файл-функция dqdt.m
1 function dq = dqdt ( t , q)
2 g = 9 . 8 1 ;
3 m = 1 . 0 0 ;
4 x=q ( 1 ) ; Vx=q ( 2 ) ; y=q ( 3 ) ; Vy=q ( 4 ) ;
5 dq = [ Vx , 0 , Vy , −g ] ;
23
интегрирование
1 % Начальные условия
2 V0 = 1 0 ;
3 a = pi /4;
4 q0 = [0 , V0* cos ( a ) , 0 , V0* sin ( a ) ] ;
5 % Интервал интегрирования
6 tspan = [0 5 ] ;
7 [ t , q] = ode45 (@dqdt, tspan , q0 ) ;
24
методы интегрирования
Интегратор Описание
ode45 Метод Рунге-Кутты 4 и 5 порядков с автоматиче-
ским выбором шага
ode23 Метод Рунге-Кутты 2 и 3 порядков с автоматиче-
ским выбором шага
ode113 Многошаговый метод Адамса: метод с предска-
занием и коррекцией
ode15s Многошаговый метод для интегрирования жест-
ких систем
ode23s Одношаговый метод Розенброка второго поряд-
ка для жестких систем
25
результаты интегрирования
1 [ t , q] = ode45 (@dqdt, tspan , q0 ) ;
t – столбец независимой
переменной (время)
t =





t0
t1
. . .
tk





q – матрица зависимых
переменных
q =





x0 Vx0 y0 Vy0
x1 Vx1 y1 Vy1
. . .
xk Vxk yk Vyk





26
управление процессом инте-
грирования
управление процессом интегрирования
Расширенная версия запуска интегрирования д.у.:
1 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ;
До запуска интегрирования заполняется специальная
структура options при помощи функции odeset:
1 options = odeset ( ’Парам . 1 ’ , Значение , ’Парам . 2 ’ , . . . ) ;
2 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ;
28
точность решения
• ’RelTol’: относительная погрешность. Число - значение
погрешности для всех переменных, или вектор,
задающий погрешность для каждой переменной (по
умолчанию 10−3)
• ’AbsTol’: абсолютная погрешность. Число или вектор
(по умолчанию 10−6)
1 options = odeset ( ’ RelTol ’ ,1 e−4, ’ AbsTol ’ ,1 e−8) ;
2 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ;
29
параметры интегрирования
• ’InitialStep’: начальный шаг интегрирования;
• ’Mass’: матрица коэффициентов M в
дифференциальных уравнениях, записанных в виде
M(q, t) ˙q = f(t, q).
Имя переменной, если матрица масс постоянная, или
ссылка на m-файл. Для всех интеграторов кроме
ode15s, ode23t матрица масс должна быть
невырожденная;
• ’MassSingular’: может ли матрица масс быть
вырожденной. Возможные значения: ’yes’, ’no’,
’maybe’ (по умолчанию ’maybe’).
30
события: параметр ’events’
Для остановки процесса интегрирования при выполении
некоторого условия используется функция событий,
которая передаётся интегратору:
1 options = odeset ( ’ Events ’ , @events ) ;
2 V0 = 1 ;
3 a = pi /4;
4 q01 = [0 , V0* cos ( a ) ,0 , V0* sin ( a ) ] ;
5 [ t1 , q1 ] = ode45 (@dqdt, [ 0 20] , q01 ) ;
31
пример файл-функции событий events.m
q = (x, Vx, y, Vy)T
1 function [ value , isterminal , direction ] = events ( t , q)
2 % Следим за изменением переменной y
3 value = q ( 3 ) ;
4 % Остановить процесс ,
5 isterminal = 1 ;
6 % если q ( 3 ) станет равна нулю и будет убывать
7 direction = −1;
Файл-функция для остановки процесса интегрирования
(isterminal=1) при пересечении нуля функцией y(t) (value =
q(3)) при её убывании (direction = -1).
32
падение шарика на упругую поверхность
1 options = odeset ( ’ Events ’ , @events ) ;
2 v0 = 1 ;
3 q01 = [0 , v0* cos ( pi /4) ,0 , v0* sin ( pi /4) ] ;
4 [ t1 , q1 ] = ode45 (@dqdt, [ 0 20] , q01 ) ;
5 n1 = length ( t1 ) ;
Перед интегрированием второго этапа меняем знак
скорости Vy (шарик отскочил с в два раза меньшей
скоростью):
6 q02 = q1 ( n1 , : ) ;
7 q02 ( 4 ) = −q02 ( 4 ) * 0 . 5 ;
33
падение шарика на упругую поверхность
Интегрируем от t1k до t1k + 20
8 t0 = t1 ( n1 ) ; tk =t0 +20;
9 [ t2 , q2 ] = ode45 (@dqdt , [ t0 tk ] , q02 ) ;
“Склеиваем” результаты двух этапов движения:
10 t =[ t1 ; t2 ] ; q=[ q1 ; q2 ] ;
34
падение шарика на упругую поверхность
Построение траектории движения шарика:
11 plot (q ( : , 1 ) ,q ( : , 3 ) ) ;
35
Vadim Yudintsev
Computational Mechanics with MATLAB
Lecture 3: Numerical methods
LaTeX Beamer theme METROPOLIS
by Matthias Vogelgesang
https://github.com/matze/mtheme
36

More Related Content

What's hot

Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Technosphere1
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Technosphere1
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Technosphere1
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikovComputer Science Club
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Theoretical mechanics department
 
Итерационные методы решения СЛАУ
Итерационные методы решения СЛАУИтерационные методы решения СЛАУ
Итерационные методы решения СЛАУTheoretical mechanics department
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011oleg_morzhin
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовMikhail Kurnosov
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Technosphere1
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиMikhail Kurnosov
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыMikhail Kurnosov
 
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...Mikhail Kurnosov
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиMikhail Kurnosov
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрированияTheoretical mechanics department
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Technosphere1
 

What's hot (20)

Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов" Лекция №7 "Машина опорных векторов"
Лекция №7 "Машина опорных векторов"
 
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
 
Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства" Лекция №8 "Методы снижения размерности пространства"
Лекция №8 "Методы снижения размерности пространства"
 
Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение" Лекция №10 "Алгоритмические композиции. Завершение"
Лекция №10 "Алгоритмические композиции. Завершение"
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
Решение систем линейных уравнений: трехдиагональные, симметричные и положител...
 
Итерационные методы решения СЛАУ
Итерационные методы решения СЛАУИтерационные методы решения СЛАУ
Итерационные методы решения СЛАУ
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Morzhin o., november 03, 2011
Morzhin o., november 03, 2011Morzhin o., november 03, 2011
Morzhin o., november 03, 2011
 
Лекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмовЛекция 11. Методы разработки алгоритмов
Лекция 11. Методы разработки алгоритмов
 
Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes" Лекция №5 "Обработка текстов, Naive Bayes"
Лекция №5 "Обработка текстов, Naive Bayes"
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
Лекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировкиЛекция 2. Алгоритмы сортировки
Лекция 2. Алгоритмы сортировки
 
Лекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмыЛекция 1: Введение в алгоритмы
Лекция 1: Введение в алгоритмы
 
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...
Лекция 12. Вероятностный анализ и рандомизированные алгоритмы (Randomized al...
 
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировкиЛекция 2: Абстрактные типы данных. Алгоритмы сортировки
Лекция 2: Абстрактные типы данных. Алгоритмы сортировки
 
Методы численного интегрирования
Методы численного интегрированияМетоды численного интегрирования
Методы численного интегрирования
 
Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"Лекция №4 "Задача классификации"
Лекция №4 "Задача классификации"
 
Integral1
Integral1Integral1
Integral1
 

Viewers also liked (12)

Python: Модули и пакеты
Python: Модули и пакетыPython: Модули и пакеты
Python: Модули и пакеты
 
Python. Обработка ошибок
Python. Обработка ошибокPython. Обработка ошибок
Python. Обработка ошибок
 
Docking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanismDocking with noncooperative spent orbital stage using probe-cone mechanism
Docking with noncooperative spent orbital stage using probe-cone mechanism
 
Метод конечных разностей
Метод конечных разностейМетод конечных разностей
Метод конечных разностей
 
Python: ввод и вывод
Python: ввод и выводPython: ввод и вывод
Python: ввод и вывод
 
Основы Python. Функции
Основы Python. ФункцииОсновы Python. Функции
Основы Python. Функции
 
Алгоритмы и языки программирования
Алгоритмы и языки программированияАлгоритмы и языки программирования
Алгоритмы и языки программирования
 
Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust Chaotic motions of tethered satellites with low thrust
Chaotic motions of tethered satellites with low thrust
 
Случай Эйлера
Случай ЭйлераСлучай Эйлера
Случай Эйлера
 
Основы MATLAB. Программирование
Основы MATLAB. ПрограммированиеОсновы MATLAB. Программирование
Основы MATLAB. Программирование
 
Linkmeup
LinkmeupLinkmeup
Linkmeup
 
Модификация механизма Йо-Йо
Модификация механизма Йо-ЙоМодификация механизма Йо-Йо
Модификация механизма Йо-Йо
 

Similar to Основы MATLAB. Численные методы

Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовТранслируем.бел
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс2berkas
 
Лекция 10: Графы. Остовные деревья
Лекция 10: Графы. Остовные деревьяЛекция 10: Графы. Остовные деревья
Лекция 10: Графы. Остовные деревьяMikhail Kurnosov
 
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Nikolay Grebenshikov
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2Vladimir Krylov
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнениеBigVilly
 
Лекция 15 Поиск подстрок
Лекция 15 Поиск подстрокЛекция 15 Поиск подстрок
Лекция 15 Поиск подстрокsimple_people
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Mikhail Kurnosov
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизацияisva69
 
0. основы r
0. основы r0. основы r
0. основы rmsuteam
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureAndrei Poliakov
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6Andrey Danilchenko
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокTechnosphere1
 
Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Andrii Gakhov
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Python Meetup
 

Similar to Основы MATLAB. Численные методы (20)

Использование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетовИспользование GNU OCTAVE для инженерных и математических расчетов
Использование GNU OCTAVE для инженерных и математических расчетов
 
Основы SciPy
Основы SciPyОсновы SciPy
Основы SciPy
 
6.0a
6.0a6.0a
6.0a
 
Презентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 классПрезентация на тему: Повторение курса информатики 7 класс
Презентация на тему: Повторение курса информатики 7 класс
 
Лекция 10: Графы. Остовные деревья
Лекция 10: Графы. Остовные деревьяЛекция 10: Графы. Остовные деревья
Лекция 10: Графы. Остовные деревья
 
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
Лекция №16. Поиск подстрок. Предмет "Структуры и алгоритмы обработки данных"
 
5
55
5
 
!Predictive analytics part_2
!Predictive analytics part_2!Predictive analytics part_2
!Predictive analytics part_2
 
Математическое дополнение
Математическое дополнениеМатематическое дополнение
Математическое дополнение
 
Лекция 15 Поиск подстрок
Лекция 15 Поиск подстрокЛекция 15 Поиск подстрок
Лекция 15 Поиск подстрок
 
Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.Лекция 13: Трудноразрешимые задачи. NP-полнота.
Лекция 13: Трудноразрешимые задачи. NP-полнота.
 
алгоритмизация
алгоритмизацияалгоритмизация
алгоритмизация
 
LSU2
LSU2LSU2
LSU2
 
0. основы r
0. основы r0. основы r
0. основы r
 
Use of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signatureUse of eliptic curves for generating digital signature
Use of eliptic curves for generating digital signature
 
ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6ITMO RecSys course. Autumn 2014. Lecture 6
ITMO RecSys course. Autumn 2014. Lecture 6
 
L2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибокL2: Задача классификации и регрессии. Метрики ошибок
L2: Задача классификации и регрессии. Метрики ошибок
 
Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014Data Mining - lecture 3 - 2014
Data Mining - lecture 3 - 2014
 
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
Быстрые конструкции в Python - Олег Шидловский, Python Meetup 26.09.2014
 
109130.ppt
109130.ppt109130.ppt
109130.ppt
 

More from Theoretical mechanics department

Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Theoretical mechanics department
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыTheoretical mechanics department
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Theoretical mechanics department
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherTheoretical mechanics department
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Theoretical mechanics department
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingTheoretical mechanics department
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравненийTheoretical mechanics department
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателяTheoretical mechanics department
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelTheoretical mechanics department
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Theoretical mechanics department
 
Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Theoretical mechanics department
 
Основные принципы динамики твёрдого тела
Основные принципы динамики твёрдого телаОсновные принципы динамики твёрдого тела
Основные принципы динамики твёрдого телаTheoretical mechanics department
 

More from Theoretical mechanics department (20)

Космический мусор
Космический мусорКосмический мусор
Космический мусор
 
Основы NumPy
Основы NumPyОсновы NumPy
Основы NumPy
 
Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование Python. Объектно-ориентированное программирование
Python. Объектно-ориентированное программирование
 
Основы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторыОсновы языка Питон: типы данных, операторы
Основы языка Питон: типы данных, операторы
 
Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754Машинная арифметика. Cтандарт IEEE-754
Машинная арифметика. Cтандарт IEEE-754
 
Deployers for nanosatellites
Deployers for nanosatellitesDeployers for nanosatellites
Deployers for nanosatellites
 
CubeSat separation dynamics
CubeSat separation dynamicsCubeSat separation dynamics
CubeSat separation dynamics
 
Chaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a TetherChaotic Behavior of a Passive Satellite During Towing by a Tether
Chaotic Behavior of a Passive Satellite During Towing by a Tether
 
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
Транспортно-пусковой контейнер для наноспутников типоразмера 3U, 3U+
 
On problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towingOn problems of active space debris removal using tethered towing
On problems of active space debris removal using tethered towing
 
Методы решения нелинейных уравнений
Методы решения нелинейных уравненийМетоды решения нелинейных уравнений
Методы решения нелинейных уравнений
 
Наноспутники формата кубсат
Наноспутники формата кубсатНаноспутники формата кубсат
Наноспутники формата кубсат
 
Отделение створок головного обтекателя
Отделение створок головного обтекателяОтделение створок головного обтекателя
Отделение створок головного обтекателя
 
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"1U-3U+ Cubesat Deployer by JSC SRC "Progress"
1U-3U+ Cubesat Deployer by JSC SRC "Progress"
 
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual FuelThe Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
The Dynamics of Tethered Debris With Flexible Appendages and Residual Fuel
 
Метод Кейна
Метод КейнаМетод Кейна
Метод Кейна
 
Метод отдельных тел
Метод отдельных телМетод отдельных тел
Метод отдельных тел
 
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
Метод Й. Виттенбурга (Универсальные и цилиндрические шарниры)
 
Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)Метод Й. Виттенбурга (Сферические шарниры)
Метод Й. Виттенбурга (Сферические шарниры)
 
Основные принципы динамики твёрдого тела
Основные принципы динамики твёрдого телаОсновные принципы динамики твёрдого тела
Основные принципы динамики твёрдого тела
 

Основы MATLAB. Численные методы

  • 1. численные методы Основы MATLAB Юдинцев В. В. 19 сентября 2015 г. Кафедра теоретической механики Самарский государственный аэрокосмический университет им. академика С. П. Королёва (национальный исследовательский университет) http://yudintsev.info
  • 2. содержание Интерполирование табличных данных Численное дифференцирование Численное интегрирование Интегрирование ОДУ Пример: задача баллистики Управление процессом интегрирования 1
  • 4. полиномиальная интерполяция • Известны значения некоторой функции y(x) в точках x0, x1, x2, . . . , xn: y0, y1, y2, . . . , yn. • Необходимо построить интерполирующий многочлен Ln(x), совпадающий с значениями табличной функции в точках x0, x1, x2, . . . , xn и приближающий функцию y(x) на интервале [x0, xn]. Интерполирующий многочлен в форме Лагранжа: Ln = n∑ i=0 yi (x − x0)(x − x1)...(x − xi−1)(x − xi+1)...(x − xn) (xi − x0)(xi − x1)...(xi − xi−1)(xi − xi+1)...(xi − xn) 3
  • 5. полиномиальная интерполяция: функция polyfit Исходные данные 1 x = [ 0 . 1 0.2 0.3 0 . 4 ] ; 2 y = [ 0 . 2 0.6 0.5 0 . 3 ] ; Вычисление коэффициентов интерполирующего многочлена ˜y = pnxn + pn−1xn−1 + . . . + p0 для n = 3 3 p = p o l y f i t ( x , y , 3 ) 4 ans = 5 66.6667 −65.0000 18.8333 −1.1000 Первый элемент – pn, последний – p0. 4
  • 6. вычисление значения интерполирующей функции Значения многочлена в точке x = 0.15: 6 >> polyval (p , 0 . 1 5 ) 7 ans = 8 0.48750 5
  • 9. полиномиальная интерполяция • Полиномиальная интерполяция используется локально. • Для глобальной интерполяции используется сплайн-интерполяция – глобальная „кусочно-полиномиальная“ интерполяция. 8
  • 10. построение графика 9 >> fp l ot (@( x ) polyval (p , x ) , [ 0 . 1 0 . 4 ] ) ; 10 >> grid on ; 11 >> xlabel ( ’ x ’ ) ; ylabel ( ’ y ’ ) ; 12 >> print ( ’−dpng ’ , ’−r600 ’ , ’ function . png ’ ) ; 9
  • 11. сплайн-интерполяция Для числа или вектора/матрицы xp: линейная интерполяция 1 yp = interp1 ( x , y , xp ) поиск ближайшего табличного значения 1 yp = interp1 ( x , y , xp , ’ nearest ’ ) сплайн-интерполяция (полином 3 степени) 1 yp = interp1 ( x , y , xp , ’ spline ’ ) 10
  • 13. конечные разности Задана таблица значений x0, x1, x2, . . . , xn: 1 >> x = [ 0 . 1 0.2 1 0.32 0 . 4 1 ] ; Конечные разности 1-го порядка ∆xk = xk+1 − xk, k = 0, . . . , n − 1 1 >> dx = d i f f ( x ) 2 ans = 3 0.110000 0.110000 0.090000 Конечная разности 2-го порядка 1 >> dx = d i f f ( x , 2 ) 2 ans = 3 2.7756 e−17 −2.0000e−02 12
  • 15. метод трапеций 1.0 1.5 2.0 2.5 3.0 -0.2 -0.1 0 0.1 0.2 0.3 0.4 x Табличная функция: 1 >> x = [ 0 . 1 0. 21 0.32 0 . 4 1 ] ; 2 >> y = sin ( x ) +x ; Вычисление интеграла: 1 >> trapz ( x , y ) 2 ans = 3 0.1569 ∫ b a y(x)dx ≈ 1 2 n∑ i=1 (xn+1 − xn)(yn + yn+1) 14
  • 16. метод симпсона Интегрирование методом Симпсона 1 integral = quad ( @function , a , b , eps ) ; a,b – пределы интегрирования eps – точность (по умолчанию 10−6) @function – ссылка на функцию или строка-выражение, например, ’sin(x)+x’. 15
  • 18. структура    dq1 dt = f1(t, q1, q2, . . . , qn), dq2 dt = f2(t, q1, q2, . . . , qn), . . . dqn dt = fn(t, q1, q2, . . . , qn). ⇒ dq dt = f(t, q) где • q = (q1, q2, . . . , qn) – вектор состояния; • f(t, q) – вектор-функция правых частей. 17
  • 19. структура • Приведение к системе дифференциальных уравнений первого порядка. • Файл-функция правой части f(t, q). • Файл-скрипт запуска процесса интегрирвования ДУ. 18
  • 22. уравнения движения Векторное уравнение m⃗a = ⃗Fg = m⃗g. Проекции векторного уравнения на оси координат: max = m d2x dt2 = 0, may = m d2y dt2 = −mg. 21
  • 23. дифференциальные уравнения движения Приведение к системе дифференциальных уравнений первого порядка.    m d2x dt2 = 0, m d2y dt2 = −mg. ⇒    dx dt = Vx, dVx dt = 0, dy dt = Vy, dVy dt = −g. ⇒ dq dt = f(q, t) где q = (x, Vx, y, Vy), f(q, t) = (Vx, 0, Vy, −g) 22
  • 24. ode файл – файл-функция правых частей Файл в котором вычисляется правая часть дифференциального уравнения или системы уравнений: q ⇒ ˙q = f(q, t) ⇒ ˙q где x – вектор зависимых переменных, t – время. Файл-функция dqdt.m 1 function dq = dqdt ( t , q) 2 g = 9 . 8 1 ; 3 m = 1 . 0 0 ; 4 x=q ( 1 ) ; Vx=q ( 2 ) ; y=q ( 3 ) ; Vy=q ( 4 ) ; 5 dq = [ Vx , 0 , Vy , −g ] ; 23
  • 25. интегрирование 1 % Начальные условия 2 V0 = 1 0 ; 3 a = pi /4; 4 q0 = [0 , V0* cos ( a ) , 0 , V0* sin ( a ) ] ; 5 % Интервал интегрирования 6 tspan = [0 5 ] ; 7 [ t , q] = ode45 (@dqdt, tspan , q0 ) ; 24
  • 26. методы интегрирования Интегратор Описание ode45 Метод Рунге-Кутты 4 и 5 порядков с автоматиче- ским выбором шага ode23 Метод Рунге-Кутты 2 и 3 порядков с автоматиче- ским выбором шага ode113 Многошаговый метод Адамса: метод с предска- занием и коррекцией ode15s Многошаговый метод для интегрирования жест- ких систем ode23s Одношаговый метод Розенброка второго поряд- ка для жестких систем 25
  • 27. результаты интегрирования 1 [ t , q] = ode45 (@dqdt, tspan , q0 ) ; t – столбец независимой переменной (время) t =      t0 t1 . . . tk      q – матрица зависимых переменных q =      x0 Vx0 y0 Vy0 x1 Vx1 y1 Vy1 . . . xk Vxk yk Vyk      26
  • 29. управление процессом интегрирования Расширенная версия запуска интегрирования д.у.: 1 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ; До запуска интегрирования заполняется специальная структура options при помощи функции odeset: 1 options = odeset ( ’Парам . 1 ’ , Значение , ’Парам . 2 ’ , . . . ) ; 2 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ; 28
  • 30. точность решения • ’RelTol’: относительная погрешность. Число - значение погрешности для всех переменных, или вектор, задающий погрешность для каждой переменной (по умолчанию 10−3) • ’AbsTol’: абсолютная погрешность. Число или вектор (по умолчанию 10−6) 1 options = odeset ( ’ RelTol ’ ,1 e−4, ’ AbsTol ’ ,1 e−8) ; 2 [ t , q] = ode45 ( @dqdt, tspan , q0 , options ) ; 29
  • 31. параметры интегрирования • ’InitialStep’: начальный шаг интегрирования; • ’Mass’: матрица коэффициентов M в дифференциальных уравнениях, записанных в виде M(q, t) ˙q = f(t, q). Имя переменной, если матрица масс постоянная, или ссылка на m-файл. Для всех интеграторов кроме ode15s, ode23t матрица масс должна быть невырожденная; • ’MassSingular’: может ли матрица масс быть вырожденной. Возможные значения: ’yes’, ’no’, ’maybe’ (по умолчанию ’maybe’). 30
  • 32. события: параметр ’events’ Для остановки процесса интегрирования при выполении некоторого условия используется функция событий, которая передаётся интегратору: 1 options = odeset ( ’ Events ’ , @events ) ; 2 V0 = 1 ; 3 a = pi /4; 4 q01 = [0 , V0* cos ( a ) ,0 , V0* sin ( a ) ] ; 5 [ t1 , q1 ] = ode45 (@dqdt, [ 0 20] , q01 ) ; 31
  • 33. пример файл-функции событий events.m q = (x, Vx, y, Vy)T 1 function [ value , isterminal , direction ] = events ( t , q) 2 % Следим за изменением переменной y 3 value = q ( 3 ) ; 4 % Остановить процесс , 5 isterminal = 1 ; 6 % если q ( 3 ) станет равна нулю и будет убывать 7 direction = −1; Файл-функция для остановки процесса интегрирования (isterminal=1) при пересечении нуля функцией y(t) (value = q(3)) при её убывании (direction = -1). 32
  • 34. падение шарика на упругую поверхность 1 options = odeset ( ’ Events ’ , @events ) ; 2 v0 = 1 ; 3 q01 = [0 , v0* cos ( pi /4) ,0 , v0* sin ( pi /4) ] ; 4 [ t1 , q1 ] = ode45 (@dqdt, [ 0 20] , q01 ) ; 5 n1 = length ( t1 ) ; Перед интегрированием второго этапа меняем знак скорости Vy (шарик отскочил с в два раза меньшей скоростью): 6 q02 = q1 ( n1 , : ) ; 7 q02 ( 4 ) = −q02 ( 4 ) * 0 . 5 ; 33
  • 35. падение шарика на упругую поверхность Интегрируем от t1k до t1k + 20 8 t0 = t1 ( n1 ) ; tk =t0 +20; 9 [ t2 , q2 ] = ode45 (@dqdt , [ t0 tk ] , q02 ) ; “Склеиваем” результаты двух этапов движения: 10 t =[ t1 ; t2 ] ; q=[ q1 ; q2 ] ; 34
  • 36. падение шарика на упругую поверхность Построение траектории движения шарика: 11 plot (q ( : , 1 ) ,q ( : , 3 ) ) ; 35
  • 37. Vadim Yudintsev Computational Mechanics with MATLAB Lecture 3: Numerical methods LaTeX Beamer theme METROPOLIS by Matthias Vogelgesang https://github.com/matze/mtheme 36