
- •Методы математического моделирования и вычислительной математики Никитина т.П. Оглавление
- •Введение
- •Основы моделирования
- •Классификация математических моделей
- •Основные этапы математического моделирования
- •Математические модели аналитического типа
- •Эмпирические математические модели
- •Методы вычислительной математики
- •Постановка задачи
- •Этапы решения задачи
- •Локализация корня
- •Метод половинного деления
- •Метод хорд
- •Метод касательных (Метод Ньютона)
- •Комбинированный метод хорд и касательных
- •Решение систем линейных уравнений (слау)
- •Приближенные методы решения систем линейных уравнений Метод простой итерации ( Метод Якоби)
- •Метод Гаусса - Зейделя
- •1. Использованием обратной матрицы
- •2. Решение системы уравнений методом Гаусса
- •Интерполяция
- •Постановка задачи
- •Полиномиальная (алгебраическая) интерполяция
- •Интерполяция по Лагранжу
- •Вычисление определенных интегралов вида Постановка задачи
- •Метод прямоугольников
- •Метод трапеций
- •Метод Симпсона (метод парабол)
- •Решение обыкновенных дифференциальных уравнений Постановка задачи
- •Численные методы решения задачи Коши оду первого порядка
- •Метод Эйлера
- •Усовершенствованный метод Эйлера. Метод Гюна.
- •Методы прогноза и коррекции
- •Метод Рунге-Кутта
- •Решение задачи оптимизации
- •Постановка задачи
- •Численные методы решения задачи одномерной оптимизации
- •Этапы решения задачи
- •Метод двойного половинного деления
- •Метод золотого сечения
- •Численные методы решения задачи линейного программирования
- •Постановка задачи
- •Реализация симплекс метода
- •Литература
Численные методы решения задачи Коши оду первого порядка
Рассмотрим некоторые численные методы решения задачи Коши (начальной задачи) обыкновенных дифференциальных уравнений первого порядка. Запишем данное уравнение в общем виде, разрешенном относительно производной (правая часть уравнения не зависит от первой производной):
Необходимо найти значения функции y в заданных точках сетки x1, x2,…, xn, если известны начальные значения (x0, y0), где y(x0)=y0 - значение функции y(x) в начальной точке x0.
Преобразуем уравнение умножением на dx: dy=F(x,y)·dx. Проинтегрируем левую и правую части между i-ым и i+1-ым узлами сетки. Получим выражение для построения решения в i+1 узле интегрирования через значения x и y в i-ом узле сетки:
и
далее
Однако
проблема состоит в том, что интеграл в
правой части чаще всего найти в
аналитическом виде невозможно. Численные
методы решения ОДУ различным способом
аппроксимируют (приближают) значение
этого интеграла для построения формул
численного интегрирования ОДУ.
Из множества разработанных для решения ОДУ первого порядка методов рассмотрим методы Эйлера, Рунге-Кутта и прогноза и коррекции.
Метод Эйлера
В его основе лежит аппроксимация производной отношением конечных приращений зависимой y и независимой x переменных между узлами равномерной сетки:
где yi+1 это искомое значение функции в точке xi+1.
Если теперь преобразовать это уравнение, и учесть равномерность сетки интегрирования, то получится итерационная формула, по которой можно вычислить yi+1 , если известно yi в точке хi:
yi+1=yi+F(xi,yi)·h.
Сравнивая формулу Эйлера с общим выражением, полученным ранее, видно, что для приближенного вычисления интеграла в методе Эйлера используется простейшая формула интегрирования - формула прямоугольников по левому краю отрезка.
Графическая интерпретация метода Эйлера
Как известно, значение F(xi,yi) есть значение производной функции y(x) в точке x=xi и, следовательно, равно тангенсу угла наклона касательной, проведенной к графику функции y(x) в точке x=xi.
Из прямоугольного треугольника на рисунке найдем yi+1-yi=(xi+1-xi)·y´(xi)=h· F(xi,yi) - формула Эйлера. Таким образом, суть метода Эйлера заключается в замене функции y(x) на отрезке интегрирования прямой линией, касательной к графику в точке x=xi. Если искомая функция сильно отличается от линейной на отрезке интегрирования, то погрешность вычисления будет значительной. Ошибка метода Эйлера прямо пропорциональна шагу интегрирования.
Алгоритм метода Эйлера
Вводим исходные значения x0, y0, xn.
Задаем значение n, например, 10.
Рассчитываем значение h=( xn- x0)/n.
Последовательно определяем:
y1=y0+F(x0,y0)·h, x1=x0+h,
y2=y1+F(x1,y1)·h, x2=x1+h,
……
yn=yn-1+F(xn-1,yn-1)·h, xn=xn-1+h.
Получаем таблицу значений.
Ошибка в определении значения y(xi) при этом будет тем меньше, чем меньше выбрана длина шага h, что определяется точностью формулы интегрирования. При больших h метод Эйлера весьма неточен.
Реализация метода в MS Excel
Дано:
, начальные условия y(0)=0,1.
Найти у
от х=2
при n=10.
Заполнение клеток листа MS Excel для n=10:
Адрес клетки |
Содержание |
Тип |
C1 |
x0= |
Текст |
C2 |
y(x0)= |
Текст |
D1 |
0 |
Число |
D2 |
0,1 |
Число |
F1 |
n= |
Текст |
F2 |
x= |
Текст |
G1 |
10 |
Число |
G2 |
2 |
Число |
I1 |
h= |
Текст |
J1 |
=(G2-D1)/G1 |
Формула |
A5 |
x |
Текст |
B5 |
F(x,y) |
Текст |
C5 |
y |
Текст |
A6 |
=D1 |
Формула |
C6 |
=D2 |
Формула |
A7 |
=A6+$J$1 |
Формула |
B7 |
=EXP(COS(A6)^2)+1,5*SIN(C6)-2,3/(A6*A6+0,2) |
Формула |
C7 |
=C6+B7*$J$1 |
Формула |
A8: A16 |
Автозаполнение формулой из клетки A7 |
Формула |
B8: B16 |
Автозаполнение формулой из клетки B7 |
Формула |
C8: C16 |
Автозаполнение формулой из клетки C7 |
Формула |
Вид листа MS Excel для n=10:
Построим графики F(x,y), y. Выделим диапазон клеток А5:С16, переходим на страницуВставка, выбираем категорию диаграммы –Точечная, тип – Точечная с гладкими кривыми. Получаем диаграмму:
Ответ:х=2 у= -3,3.