Слайды и текст доклада
Pic.2
MATLAB обладает большим набором встроенных функций реализующих различные численные методы: нахождение корней уравнений, интегрирование, интерполирование, решение обыкновеных дифференциальных …
Pic.3
Решение произвольных уравнений Функция x=fzero('myf', xo) позволяет вычислять приближенное значение корня x уравнения myf(x)=0, (1) с начальным приближением к корню xo. Здесь myf – имя файл …
Pic.4
Перед нахождением корней полезно строить график функции входящей в левую часть уравнения, используя plot, но все равно в подобных задачах удобно (нужно) создать М-файл левой части уравнений (то же …
Pic.5
Пример 1 Пример 1 Найти корни уравнения sin x-x2 cos x=0 на [-5,5]. Решение
Pic.6
Аналогично находятся еще два корня, около -2 и 5. Увидеть, большее число значащих цифр приближенного решения можно задав значение формата, например Аналогично находятся еще два корня, около -2 и 5. …
Pic.7
Замечание Замечание Важной особенностью fzero является то, что она вычисляет только те корни, в которых функция меняет знак, а не касается оси абсцисс. Это происходит в связи с тем, что заложен метод …
Pic.8
Например, корень уравнения х2=0 функцией fzero найти не удается. Для нахождения корня х на интервале [a, b] уравнения (1) и значения функции myf в этом корне можно использовать следующий вид функции …
Pic.9
Пример 2 Пример 2 > fzero('sin', [2,4]) ans = 3. 1415…
Pic.10
Замечание Замечание 1. Если функция имеет несколько нулей, то выдается ближайший к 0; 2. На границе интервал [a,b] функция должна принимать значения разных знаков, иначе будет сообщение об ошибке NaN.
Pic.11
Минимизация функций Для поиска локального минимума функции myf одной переменной на отрезке [a, b] используют x= fminbnd ('myf', a, b) [x, f]= fminbnd (' myf', a, b)
Pic.12
Замечание Замечание 1) Для нахождения локального максимума нет специальной функции и поэтому следует искать минимум функции с обратным знаком (менять знак нужно в М-функции); 2) Если есть несколько …
Pic.13
Для нахождения локального минимума функции myfm многих переменных вблизи точки (х1,…,хn) используют Для нахождения локального минимума функции myfm многих переменных вблизи точки (х1,…,хn) используют …
Pic.14
Метод Нельдера-Мида Для нахождение минимума используют симплекс метод Нельдера-Мида. Он заключается в следующем: берутся 3 вершины вокруг начального положения, сравниваются значения и выбираются 2 …
Pic.15
Замечание Замечание Для нахождения начального значения (x1,x2,…,xn), нужно получить представление о поведении функции, например, построив линии уровня на плоскости с помощью функции contour.
Pic.16
Задание дополнительных параметров Функции fzero, fminbnd и fminsearch позволяют задать дополнительный параметр options, контролирующий вычислительный процесс: options = optimset(…, вид контроля, …
Pic.17
Таблица 1 Значения дополнительных параметров
Pic.19
Замечание Замечание Ограничивать количество вызовов функции и число итераций имеет смысл, если есть опасение, что получить решение не удается из-за расхождения вычислительного процесса.
Pic.20
Пример 3 Пример 3 Найти минимум функции f(x, y)= sin(πx)*sin(πy) вблизи точки [1. 4, 0. 6] с точностью по функции до 1. 0е-09 и выводом итераций.
Pic.21
Решение В итоге, кроме результата, выведется таблица каждая строка, которой соответствует одной итерации. В ней будет содержаться: количество вызовов функции, текущее приближение и значение функции …
Pic.22
Интегрирование функций Методы интегрирования Для вычисления определенного интеграла используются следующие функции:
Pic.23
1. quad('fint',a,b, Точность) 1. quad('fint',a,b, Точность) Алгоритм основан на квадратурной формуле Симпсона с автоматическим подбором шага интегрирования для достижения нужной …
Pic.24
2. quad8('fint',a,b, Точность) 2. quad8('fint',a,b, Точность) Используется для достаточно гладких функции и алгоритм основан на более точных квадратурных формулах Ньютона-Котеса. …
Pic.25
quadl('fint',a,b, Точность) quadl('fint',a,b, Точность) Применяется для функций с интегрируемыми особенностями (например: в нуле). Алгоритм основан на квадратурных формулах …
Pic.26
Пример 4 Пример 4 Вычислить по quad8 с точностью 10-12. Решение
Pic.27
Вычисление интегралов зависящих от параметров Пример 5 Вычислить интеграл при значениях параметров р1=0. 6, р2=0. 7 по квадратурным формулам Ньютона-Котеса с автоматическим выбором шага с точностью …
Pic.29
Интегралы с переменным верхним пределом Пример 6 Вычислить интеграл с точностью 10-6.
Pic.31
Численное решение дифференциальных уравнений Задача Коши для дифференциального уравнения произвольного порядка имеет вид:
Pic.32
Схема решения в MATLAB состоит из следующих этапов: Схема решения в MATLAB состоит из следующих этапов: 1. Приведение дифференциального уравнения к системе дифференциального уравнений первого …
Pic.33
Пример 7 Пример 7 Задача о колебаниях под воздействием внешней силы в среде, оказывающей сопротивление колебаниям: y''+2y'+10y=sin t - уравнение, описывающее движение. y(0)=1 – кордита …
Pic.34
Тогда система дифференциальных уравнений с начальными условиями принимает вид:
Pic.35
Второй этап состоит в написании файл-функции имеющей два входных аргумента: переменную t и вектор, размер которого равен числу неизвестных функций системы. Второй этап состоит в написании …
Pic.36
Третий шаг. Этот шаг состоит в решении задачи при помощи решателя или солвера (об их видах поговорим позже). Например, при помощи солвера ode45.
Pic.37
Входными аргументами солверов являются: Входными аргументами солверов являются: Имя файл-функции в апострофах; 2. Вектор-строка с начальным и конечным значением времени наблюдения (например, [0, t0], …
Pic.38
Выходных аргументов два: Выходных аргументов два: Вектор Т содержащий значение времени; 2. Матрица значений Y неизвестных функций в соответствующие моменты времени. В первом столбце - значения первой …
Pic.39
Итак, файл программа для 0≤ t≤ 15 имеет вид. Итак, файл программа для 0≤ t≤ 15 имеет вид. Y0= [1; 0]; [T, Y]=ode45('oscil', [0 15], Y0); plot(T, Y(:, 1), 'r') - график решения …
Pic.40
Рис. 2 Решение дифференциального уравнения
Pic.41
Замечание Замечание Здесь использовался солвер ode45, который применяет метод Рунге-Кутта четвертого порядка. При применении солвера очень важно учитывать свойства системы дифференциальных уравнений, …
Pic.42
Жесткие дифференциальные системы Решение уравнений Лотка-Вольтерра Во многих приложениях встречаются так называемые «жесткие» системы дифференциальных уравнений. Строго общепринятого определение …
Pic.43
Например Например , причем, λ1, λ2>0 и >>1. Число s называют коэффициентом жесткости системы. Решение имеет вид:
Pic.44
Отметим, что жесткость – это качество дифференциальной системы, а не разностного метода (обычно нелинейные системы). Отметим, что жесткость – это качество дифференциальной системы, а не разностного …
Pic.45
Число хищников и жертв в течение времени t изменяется по закону Число хищников и жертв в течение времени t изменяется по закону (2) где P – увеличение числа жертв в отсутствие хищников R – уменьшение …
Pic.46
Решением системы (2) является замкнутая кривая. Возьмем для примера P=3, R=2, p=r=1 y1(0)=3 – в начальный момент 3 жертвы. y2(0)=4 – в начальный момент 4 хищника. t≤100 Решая эту систему солверами …
Pic.47
Рис. 3 Решения солверами ode45 и ode23s Рис. 3 Решения солверами ode45 и ode23s
Pic.48
Вычисление, по умолчанию, в ode45 и ode23s происходит при одной точности, а приближенные решения сильно отличаются друг от друга, причем ode23s намного точнее. Более того, для уравнения Ван-дер-Поля …
Pic.49
Управление процессом решения Для эффективного решения дифференциальных уравнений необходимо выбрать подходящий солвер в зависимости от свойств решаемой задачи, произвести необходимые установки, …
Pic.50
Стратегия применения солверов MATLAB (см. справку по MATLAB). ode45 – дает хорошие результаты и основан на методе Рунге-Кутта четвертого и пятого порядков точности;
Pic.51
ode23 – используется в задачах содержащих небольшую жесткость, когда требуется получить решение с невысокой степенью точности. Формулы Рунге-Кутта 2 и 3 порядка точности; ode113 – эффективен для …
Pic.52
Если все попытки применения этих солверов не приводят к успеху, то возможно решаемая система является жесткой и можно применить: Если все попытки применения этих солверов не приводят к успеху, то …
Pic.53
Все солверы пытаются найти решение с относительной точностью 10-3. Все солверы пытаются найти решение с относительной точностью 10-3. Для задания другой точности используются дополнительный параметр …
Pic.55
Точное решение нашей системы будет Точное решение нашей системы будет Если воспользуемся ode45, то для 10-3 получим
Pic.57
Замечание Замечание Существует отдельный пакет для уравнений в частных производных Partial Diffential Equation ToolBOX.
Pic.58
Решение граничных задач Рассмотрим граничную задачу общего вида для обыкновенного дифференциального уравнения второго порядка: где - заданные числа
Pic.59
Решение задачи состоит из следующих этапов: Решение задачи состоит из следующих этапов: 1. Преобразование дифференциального уравнения второго порядка к системе двух уравнений первого порядка; 2. …
Pic.60
Первые два этапа выполняются практически так же, как и при решении задачи Коши. Для выполнения 3-го пункта граничные условия приводим к виду:
Pic.61
Файл-функция описывающая граничные условия должна зависеть от двух аргументов – векторов ya, yb и иметь структуру: Файл-функция описывающая граничные условия должна зависеть от двух аргументов – …
Pic.62
Выбор начального приближения может оказать влияние на решение солвером bvp4c. MATLAB находит приближенное решение граничных задач методом конечных разностей, то есть получающиеся решение есть вектор …
Pic.63
Пример 8 Пусть [a, b]= [0, 2*pi] и начальное приближение y1=1, y2=0, тогда initsol=bvpinit ([0: pi/10:2*pi], [1 0]);
Pic.64
Замечание Заданная сетка может быть изменена солвером в процессе решения, для обеспечения требуемой точности.
Pic.65
Следующим этапом мы должны вызвать солвер: sol=bvp4c('Функция правой части', 'bound', initsol); где структура sol имеет поля x, y, причем sol. x – координаты сетки полученной и …
Pic.66
Другими словами sol. x~T, sol. y~Y. Визуализация результата происходит аналогично задаче Коши.
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!