- •Методы математического моделирования и вычислительной математики Никитина т.П. Оглавление
- •Введение
- •Основы моделирования
- •Классификация математических моделей
- •Основные этапы математического моделирования
- •Математические модели аналитического типа
- •Эмпирические математические модели
- •Методы вычислительной математики
- •Постановка задачи
- •Этапы решения задачи
- •Локализация корня
- •Метод половинного деления
- •Метод хорд
- •Метод касательных (Метод Ньютона)
- •Комбинированный метод хорд и касательных
- •Решение систем линейных уравнений (слау)
- •Приближенные методы решения систем линейных уравнений Метод простой итерации ( Метод Якоби)
- •Метод Гаусса - Зейделя
- •1. Использованием обратной матрицы
- •2. Решение системы уравнений методом Гаусса
- •Интерполяция
- •Постановка задачи
- •Полиномиальная (алгебраическая) интерполяция
- •Интерполяция по Лагранжу
- •Вычисление определенных интегралов вида Постановка задачи
- •Метод прямоугольников
- •Метод трапеций
- •Метод Симпсона (метод парабол)
- •Решение обыкновенных дифференциальных уравнений Постановка задачи
- •Численные методы решения задачи Коши оду первого порядка
- •Метод Эйлера
- •Усовершенствованный метод Эйлера. Метод Гюна.
- •Методы прогноза и коррекции
- •Метод Рунге-Кутта
- •Решение задачи оптимизации
- •Постановка задачи
- •Численные методы решения задачи одномерной оптимизации
- •Этапы решения задачи
- •Метод двойного половинного деления
- •Метод золотого сечения
- •Численные методы решения задачи линейного программирования
- •Постановка задачи
- •Реализация симплекс метода
- •Литература
Усовершенствованный метод Эйлера. Метод Гюна.
Точность метода Эйлера можно повысить, если воспользоваться для аппроксимации интеграла более точной формулой интегрирования – формулой трапеций:
Данная формула оказывается неявной относительно yi+1, это значение yi+1 есть и в левой и в правой части выражения. Можно вычислить это значение приблизительно с помощью обычной формулы Эйлера: i+1= Окончательно, имеем:
Эта формула реализует метод Гюна или метод Эйлера с пересчетом. Для каждого узла интегрирования производится следующая цепочка вычислений. Благодаря более точной формуле интегрирования, погрешность метода Гюна пропорциональна уже квадрату шага интегрирования.
Алгоритм метода Гюна
Вводим исходные значения x0, y0, xn.
Задаем значение n, например, 10.
Рассчитываем значение h=( xn- x0)/n.
Последовательно определяем:
y1=y0+F(x0,y0)·h, x1=x0+h, 1= y1=y0+h/2·[+(x1,1)],
y2=y1+F(x1,y1)·h, x2=x1+h, 2= y2=y1+h/2·[+(x2,2)],
……
yn=yn-1+F(xn-1,yn-1)·h, xn=xn-1+h, n=yn= yn-1+ h/2·[+(xn,n)].
Получаем таблицу значений.
Реализация метода в MS Excel
Дано: , начальные условия y(0)=0,1. Найти у от х=2 при n=10.
Заполнение клеток листа MS Excel для n=10:
Адрес клетки |
Содержание |
Тип |
А1 |
x0= |
Текст |
А2 |
y(x0)= |
Текст |
B1 |
0 |
Число |
B2 |
0,1 |
Число |
D1 |
n= |
Текст |
D2 |
x= |
Текст |
E1 |
10 |
Число |
E2 |
2 |
Число |
G1 |
h= |
Текст |
H1 |
=(E2-B1)/E1 |
Формула |
A5 |
x |
Текст |
B5 |
F(xi-1,yi-1) |
Текст |
C5 |
ŷ |
Текст |
D5 |
F(xi,ŷ) |
Текст |
E5 |
y |
Текст |
A6 |
=B1 |
Формула |
E6 |
=B2 |
Формула |
A7 |
=A6+$H$1 |
Формула |
B7 |
=EXP(COS(A6)^2)+1,5*SIN(E6)-2,3/(A6*A6+0,2) |
Формула |
C7 |
=E6+B7*$H$1 |
Формула |
D7 |
=EXP(COS(A7)^2)+1,5*SIN(C7)-2,3/(A7*A7+0,2) |
Формула |
E7 |
=E6+$H$1/2*(B7+D7) |
Формула |
A8: A16 |
Автозаполнение формулой из клетки A7 |
Формула |
B8: B16 |
Автозаполнение формулой из клетки B7 |
Формула |
C8: C16 |
Автозаполнение формулой из клетки C7 |
Формула |
D8: D16 |
Автозаполнение формулой из клетки D7 |
Формула |
E8: E16 |
Автозаполнение формулой из клетки E7 |
Формула |
Вид листа MS Excel для n=10:
Ответ:х=2 у= -3,15
Методы прогноза и коррекции
Точность метода Эйлера можно повысить, если воспользоваться для аппроксимации интеграла более точной формулой интегрирования – формулой трапеций:
Данная формула оказывается неявной относительно yi+1, это значение есть и в левой и в правой части выражения. Для расчета yi+1 используем двух шаговый метод прогноза и коррекции. Пусть дано ДУ для которого известно значение функции в двух соседних узлах сетки:
Сначала строится прогноз значения в (i+1)-ом узле интегрирования, например, по формуле метода Эйлера по предыдущему узлу.
pi+1 = yi-1+2·h·y´i, где y´i=F(xi,yi).
Далее это значение корректируется по более точной формуле, в данном случае – по формуле трапеций:
В качестве решения в узле xi+1 берется yi+1 = ci+1+Ec, где Ec - ошибка коррекции:
Для того чтобы начать расчет методом прогноза и коррекции, необходимо знать значения функции в двух первых узлах сетки - x0 и x1 - . Обычно значение в узле x1 определяется каким-либо одношаговым методом, например методом Гюна.
На каждом шаге построения решения методом прогноза и коррекции требуется вычислить всего одно значение функции, а одно берется из предыдущего узла сетки, поэтому этот метод достаточно экономичен по затратам времени вычислений. Погрешность описываемого метода пропорциональна кубу шага интегрирования.
Алгоритм метода прогноза и коррекции
Вводим исходные значения x0, y0, xn.
Задаем значение n, например, 10.
Рассчитываем значение h=( xn- x0)/n.
Рассчитываем по методу Гюна x1, y1.
Последовательно определяем:
x2=x1+h, y'1=F(x1,y1), p2=y0+2h y'1, p´2= F(x2,p2), c2=y1+h/2( p´2+ y'1), Ec=(p´2-c2)/5, y2=c2+Ec,
x3=x2+h, y'2=F(x2,y2), p3=y1+2h y'2, p´3= F(x3,p3), c3=y2+h/2( p´3+ y'2), Ec=(p´3-c3)/5, y3=c3+Ec,
……
xn=xn-1+h, y'n-1=F(xn-1,yn-1), pn=yn-2+2h y'n-1, p´n= F(xn,pn), cn=yn-1+h/2( p´n+ y'n-1), Ec=(p´n-cn)/5, yn=cn+Ec.
Получаем таблицу значений.
Реализация метода в MS Excel
Дано: , начальные условия y(0)=0,1. Найти у от х=2 при n=10.
Заполнение клеток листа MS Excel для n=10:
Адрес клетки |
Содержание |
Тип |
А1 |
x0= |
Текст |
А2 |
y(x0)= |
Текст |
B1 |
0 |
Число |
B2 |
0,1 |
Число |
D1 |
n= |
Текст |
D2 |
x= |
Текст |
E1 |
10 |
Число |
E2 |
2 |
Число |
G1 |
h= |
Текст |
H1 |
=(E2-B1)/E1 |
Формула |
A5 |
x |
Текст |
B5 |
F(xi-1,yi-1) |
Текст |
C5 |
ŷ |
Текст |
E5 |
F(xi,ŷ) |
Текст |
F5 |
y |
Текст |
A6 |
=B1 |
Формула |
F6 |
=B2 |
Формула |
A7 |
=A6+$H$1 |
Формула |
B7 |
=EXP(COS(A6)^2)+1,5*SIN(E6)-2,3/(A6*A6+0,2) |
Формула |
C7 |
=E6+B7*$H$1 |
Формула |
E7 |
=EXP(COS(A7)^2)+1,5*SIN(C7)-2,3/(A7*A7+0,2) |
Формула |
F7 |
=E6+$H$1/2*(B7+D7) |
Формула |
A9 |
x |
Текст |
B9 |
F(x,y) |
Текст |
C9 |
p |
Текст |
D9 |
F(x,p) |
Текст |
E9 |
c |
Текст |
F9 |
E |
Текст |
G9 |
y |
Текст |
A10 |
=A6 |
Формула |
G10 |
=F6 |
Формула |
A11 |
=A7 |
Формула |
B11 |
=EXP(COS(A11)^2)+1,5*SIN(G11) -2,3/(A11*A11+0,2) |
Формула |
G11 |
-1,60999 |
Число |
A12 |
=A11+$I$1 |
Формула |
B12 |
=EXP(COS(A12)^2)+1,5*SIN(G12) -2,3/(A12*A12+0,2) |
Формула |
C12 |
=G10+2*$I$1*B11 |
Формула |
D12 |
=EXP(COS(A12)^2)+1,5*SIN(C12) -2,3/(A12*A12+0,2) |
Формула |
E12 |
=G11+$I$1/2*(D12+B11) |
Формула |
F12 |
=(C12-E12)/5 |
Формула |
G12 |
=E12+F12 |
Формула |
A13:A20 |
Автозаполнение формулой из клетки A12 |
Формула |
B13:B20 |
Автозаполнение формулой из клетки B12 |
Формула |
C13:C20 |
Автозаполнение формулой из клетки C12 |
Формула |
D13:D20 |
Автозаполнение формулой из клетки D12 |
Формула |
E13:E20 |
Автозаполнение формулой из клетки E12 |
Формула |
F13:F20 |
Автозаполнение формулой из клетки F12 |
Формула |
G13:G20 |
Автозаполнение формулой из клетки G12 |
Формула |
Вид листа MS Excel для n=10:
Ответ:х=2 у= -3,168