- •Методическое пособие
- •Введение
- •Теория вопроса
- •Погрешности исходных данных
- •Погрешности вычислений
- •Погрешности ограничения
- •Посмотрите, сколько значащих цифр осталось?
- •Индивидуальные задания и последовательность выполнения работы
- •Исходные данные к выполнению работы Таблица 1
- •Контрольные вопросы
- •Табулирование функций
- •Теория вопроса
- •Итерационный процесс продолжается до тех пор, пока значения х1(k), х2(k), х3(k) не станут близкими с заданной погрешностью к значениям х1(k-1), х2(k-1), х3(k-1).
- •Изменим знаки у элементов с нечетной суммой индексов, тогда
- •Зададим начальное приближение
- •Исключим переменную х2 из третьего уравнения системы. Для этого умножим на 0,5 и вычтем из третьего уравнения. Получим новую систему эквивалентную двум предыдущим:
- •Вычислим первые приближения
- •Индивидуальные задания и последовательность выполнения работы
- •Варианты для лабораторных работ
- •Контрольные вопросы
- •Теория вопроса
- •Индивидуальные задания и последовательность выполнения работы
- •Теория вопроса
- •Индивидуальные задания и последовательность выполнения работы
- •Контрольные вопросы
- •Теория вопроса
- •Индивидуальные задания и последовательность выполнения работы
- •Исходные данные к выполнению работы Таблица 5
- •Контрольные вопросы:
- •Теория вопроса
- •Решением дифференциального уравнения является неизвестная функция
- •Индивидуальные задания и последовательность выполнения работы
- •Контрольные вопросы
- •Рекомендуемая литература
Индивидуальные задания и последовательность выполнения работы
Методом трапеций по своему варианту вычислить определенные интегралы от функций, приведенных в таблице исходных данных. В качестве рабочего инструмента использовать VB или MS Excel.
Исходные данные к выполнению работы Таблица 5
-
N/B
Функция
a
b
N/B
Функция
a
b
1
2sin(x)dx
0
/2
13
5sin(x)dx
/2
2
4xdx
2
4
14
3x2dx
1
2
3
4x3dx
1
2
15
x2dx
1
3
4
3cos(x)dx
0
/2
16
5cos(x)dx
/2
5
2x3dx
0
2
17
4sin(x)dx
0
/2
6
4cos(x)dx
/2
18
2xdx
2
4
7
x3dx
0
1
19
6x2dx
0
2
8
3sin(x)dx
0
/2
20
2cos(x)dx
/2
9
4sin(x)dx
/2
21
2x5dx
1
4
10
9x2dx
1
2
22
3cos(x)dx
/2
11
4cos(x)dx
0
/2
23
3sin(x)dx
/2
12
6xdx
2
3
24
2xdx
2
4
Контрольные вопросы:
-
Назовите сущность и отличия известных Вам методов численного интегрирования.
-
Поясните геометрический смысл вычисления определенного интеграла.
-
Расскажите сущности и поясните алгоритм вычисления определенного интеграла методами прямоугольников, трапеций, Симпсона.
-
Как оценить точность вычисления определенного интеграла.
Лабораторная работа № 6. (2ч.) ЧИСЛЕННОЕ РЕШЕНИЕ ОБЫЧНЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ ПЕРВОГО ПОРЯДКА НА ПЭВМ.
Цель работы: ознакомить студентов с численными методами решения дифференциальных уравнений на ПЭВМ.
Теория вопроса
Обыкновенным дифференциальным уравнением 1-го порядка называется уравнение, содержащее неизвестную функцию одного аргумента и ее производную
dy/dx=f(x,y) или y'=f(x,y).
Решением дифференциального уравнения является неизвестная функция
y=f(x,C).
Cодержащийся в решении свободный член С может принимать различные значения, поэтому на координатной плоскости решение представляется в виде семейства кривых. Например, решением дифференциального уравнения dy/dx=y или y'= y является зависимость y=Сех. При различных значениях коэффициeнта С получаем семейство кривых, каждая из которых удовлетворяет исходному уравнению y'= y (см. рис.1). Для того, чтобы из множества кривых выявить одну, необходимо в дополнение к дифференциальному уравнению указать начальные условия – координаты точки, через которую эта кривая должна проходить.
Например, если нам нужно, чтобы решение уравнения y'= y проходило через точку х=0, y=2, что обычно записывается в виде y(0)=2, то через точку L с координатами (0;2) будет проходить только одна кривая y=2ех. Если задаться начальными условиями y(0)=1, то через точку Р(0;1) будет проходить кривая решения дифференциального уравнения y=1ех.
Для решения дифференциального уравнения численными методами его приводят к виду y'= f(x,y). Такая форма представления дифференциального уравнения позволяет для любой точки координатной плоскости вычислить производную, которая представляет собой тангенс угла наклона касательной к проходящей через эту точку кривой y= f(x).
На рис. 8 показаны три касательные к функции y=2ех в точках К(-0,5;1,2), L(0;2), M(0,5;3,3) и три касательные к функции y=1ех в точках N(-0,5;0,6), P(0;1), Q(0,5;1,65). Если опустить из этих точек перпендикуляр на ось 0х, то получим обладающие интересным свойством прямоугольные треугольники, ограниченные перпендикулярами, осью 0х и касательными. В любом из треугольников длина катета, лежащего на оси 0х, равна 1. Длина другого катета равна ординате точки, к которой проведена касательная, поэтому тангенс угла наклона каждой из касательных численно равен ординате точки, из которой проведена касательная в соответствии с исходным дифференциальным уравнением y'=y.
С делаем небольшое обобщение. Для кривой y=2ех касательные, проведенные в точках К,L,M и любых других точках этой кривой, будут иметь тангенс угла наклона, равный ординате точки в полном соответствии с дифференциальным уравнением y'=y. То же самое можно отметить и для кривой y=1ех. Обе кривые представляют собой решения дифференциального уравнения y'=y с разными начальными условиями.
Таким образом, под решением дифференциального уравнения подразумевается походящая через заданное начальное условие кривая y= f(x), касательная в любой точке этой кривой будет иметь тангенс угла наклона, определяемый исходным дифференциальным уравнением.
Рассмотрим некоторые методы численного решения дифференциальных уравнений.
1. Метод Эйлера. Дифференциальное уравнение вида y'= f(x,y) позволяет определить тангенс угла наклона касательной в любой точке искомой кривой y= f(x). Поэтому можно вычислить наклон касательной к кривой решения дифференциального уравнения в точке А(хi,yi), подставив ее координаты в правую часть дифференциального уравнения f(x1,y1) и затем продвинуться вдоль касательной на некоторое малое расстояние – шаг (рис. 9). Если шаг вдоль оси абсцисс обозначить h (рис. 9а), то мы придем в точку В с координатами xi+1=xi+h, yi+1=yi+h*tg ()=yi+k1.
Поскольку мы двигались вдоль касательной, а не кривой y=f(x), то разность ординат точек В и В' определяет погрешность метода (рис.9). Поэтому в методе Эйлера точку В называют приближенным решением дифференциального уравнения. Точка В' находится на кривой истинного решения дифференциального уравнения y=f(x,c1), но ординату этой точки мы вычислить не можем и используем точку В, расположенную на некоторой другой кривой y=f(x,c2) из семейства кривых возможных решений исходного дифференциального уравнения.
Подставив координаты точки В в дифференциальное уравнение, вычислим тангенс угла наклона касательной в этой точке y'=f(xi+1,yi+1), продвинемся вдоль этой касательной вперед на величину шага h к следующей точке. Продолжая эту процедуру, мы получаем последовательность коротких отрезков – ступеней, которые являются приближенным решением дифференциального уравнения (рис. 9б).
Математический метод Эйлера реализуется рекуррентной формулой
yi+1=yi+h*f(xi,yi),
где yi – значение функции при х=хi;
yi+1 – значение функции при х= xi+h;
f(xi,yi) – численное значение функции при х=хi и y= yi;
h – величина шага.
Очевидно, что с уменьшением величины шага h погрешность вычисления уменьшается. Погрешность метода Эйлера пропорциональна h2.
2. Метод Рунге-Кутта. Это наиболее точный и потому наиболее употребительный метод интегрирования дифференциальных уравнений, использующий не одну, а четыре точки, которые позволяют оценить изменение кривизны кривой истинного решения дифференциального уравнения на протяжении следующего шага. На рис. 10 дана геометрическая интерпретация метода Рунге-Кутта.
Как и в методе Эйлера, в каждой из четырех точек А1, А2, А3, А4, последовательно вычисляются тангенс угла наклона касательной, равный величине производной из дифференциального уравнения, который затем представляется в виде приращения ординаты на величину шага h – коэффициенты k1, k2, k3, k4. Поскольку в точках А2 и А3 учет изменения кривизны оказывает вдвое большее влияние на возможное изменение кривизны кривой истинного решения, ордината искомой точки В определяется как средневзвешенное коэффициентов k1, k2, k3 и k4 по формуле
yi+1= yi+( k1+2 * k2+2 * k3 + k4)/6,
где k1= h* f(xi,yi),
k2= h* f(xi + h/2,yi + k1/2),
k3= h* f(xi + h/2,yi + k2/2),
k4= h* f(xi + h,yi + k3),
Последовательность вычислений по методу Рунге-Кутта следующая. В точке А1(xi,yi) вычисляем тангенс угла наклона искомой кривой, который приравниваем к отношению k1/h; из этого отношения определяем величину коэффициента k1; используя его, продвигаемся вдоль касательной на половину шага вперед и вычисляем тангенс угла наклона в точке А2= (xi + h/2,yi + k1/2). Вычислив новый тангенс угла наклона в этой точке, определяем коэффициент k2 и опять начинаем движение из точки А1(xi,yi), идем на половину шага вперед и в точке А3= (xi + h/2, yi + k2/2) вычисляем тангенс угла наклона. Определяем величину коэффициента k3, и опять начинаем из точки А1(xi,yi), но делаем теперь полный шаг к точке А4= (xi + h, yi + k3), где вычисляем тангенс угла наклона и коэффициент k4. Полученные коэффициенты усредняем по вышеприведенной формуле и делаем окончательный шаг из точки А1(xi,yi) в точку В(xi+1,yi+1).
xi+1 = xi + hyi+1 = yi+( k1+2* k2+2* k3+k4)/6.
Далее последовательность вычисления координат следующей точки повторяется для n шагов, которая позволит получить табличную функцию – приближенное решение дифференциального уравнения.
Погрешность метода Рунге-Кутта весьма мала и составляет h4.
П ример 1. Пусть имеется дифференциальное уравнение
описывающее зависимость прибыли Р от доходов M и издержек N предприятия, причем и доходы и издержки являются функцией прибыли. Требуется определить изменение прибыли с течением времени. Издержки содержат как постоянную, так и переменную составляющие, поэтому (задавшись конкретным видом M(P) и N(P) исходное уравнение можно привести к виду:
В начальном периоде времени прибыль нулевая, поэтому начальное условие будет: P=0 при t=0.
Решим это уравнение с помощью метода Рунге-Кутта с помощью электронных таблиц.
Вычислим коэффициенты к1, к2, к3, к4 для нашего уравнения.
k1 =h*(b-P)*c; k2=h*(b-(P+k1/2))*c; k3=h*(b-(P+k2/2)*c; k4=h*(b-(P+k3))*c.
Тогда, значение прибыли в момент времени i+1 будет
Pi+1=Pi+( к1 +2*к2 +2*к3+к4)/6
Зная прибыль в момент времени t=0, можно найти ее в любой другой момент времени, выполняя шаги решения уравнения. Следует ожидать, что с течением времени прибыль выйдет на некоторую установившуюся величину. Ниже приведен фрагмент листа электронной таблицы с решение этого уравнения (Рис.11).
Р ис. 11. Решение дифференциального уравнения методом Рунге-Кутта.
В ячейках таблицы находятся следующие формулы:
A12) 0 ; B12) 0; C12) =B12+(D12+2*E12+2*F12+G12)/6; D12) =($B$7-B12)*$B$8/$B$6*$B$9; E12) =($B$7-B12-D12/2)*$B$8/$B$6*$B$9; F12) =($B$7-B12-E12/2)*$B$8/$B$6*$B$9; G12) =($B$7-B12-F12)*$B$8/$B$6*$B$9; A13) =A12+$B$9; B13) =C12.
или в привычной форме:
A12) t=0
B12) P=0
C12) Pi+1=Pi+( к1 +2*к2 +2*к3+к4)/6
D12) k1 =h*(b-P)*c/a
E12) k2=h*(b-(P+k1/2))*c/a
F12) k3=h*(b-(P+k2/2)*c/a
G12) k4=h*(b-(P+k3))*c/a
A13) ti+1=ti+h
B13) Pi+1
Решение состоит в копировании блока ячеек C12:H12 и A13:B13 вниз, при этом будет рассчитываться прибыль по шагам и выполняться шаги по времени с приращением h. Pидеал – точное решение исходного уравнения (дано для сравнения с приближенным численным решением)
Решение дифференциального уравнения представлено на рис. 11.
Р ис.12. Зависимость прибыли от времени.
На рисунке хорошо видно, что примерно через 5 месяца прибыль стабилизируется, а доходы и издержки придут в равновесие.