
- •Итерационные циклические программы
- •Курск 2000
- •1. Цель работы
- •2. Методические рекомендации по теоретической части
- •2.1. Вычисление корней уравнения с одним неизвестным
- •2.1.1. Метод дихотомии
- •2.1.2. Метод простых итераций
- •2.1.3. Метод касательных
- •2.1.4. Метод хорд
- •2.1.5. Комбинированный метод
- •2.2. Приближенное вычисление определенного интеграла
- •2.2.1. Формула прямоугольников
- •2.2.2. Формула трапеций
- •2.2.3. Формула Симпсона
- •2.3. Численные методы решения дифференциальных уравнений первого порядка
- •2.3.1. Метод Эйлера
- •2.3.2. Метод Рунге-Кутта
- •3. Пример решения задачи
- •4. Задачи, выносимые на практические занятия
- •5. Задачи для самостоятельного решения
- •6. Содержание отчета
2.2.3. Формула Симпсона
Пусть y = Ax2 + Bx + C; x0 = -h, x1 = 0, x2 = h. Рассмотрим интеграл
Имеем при x0
= -h y0
= Ah2
- Bh + C; при x1
= 0 y1
= C; при x2
= h y2
= Ah2
+ Bh + C. Преобразуем 2Ah2
+ 6C = Ah2
- Bh + C + Ah2
+ Bh + C + 4С = y0
+ 4y1 + y2.
Тогда
Пусть требуется вычислить . Разобьем промежуток [a,b] на четное число равных частей. Пусть это число n = 2m. Обозначим yk = f(xk) значения у в точках разбиения. Тогда имеем (для x = xj+1 - xj):
Суммируя, получим
,
где
,
a
z
b, f(4)(z)
- наибольшее значение четвертой
производной подынтегральной функции.
2.3. Численные методы решения дифференциальных уравнений первого порядка
Требуется найти решение задачи Коши:
при у(x0)
= y0.
2.3.1. Метод Эйлера
Метод Эйлера прост и нагляден, хотя недостаточно практически эффективен. Заменяем производную в дифференциальном уравнении разностным отношением. Будем считать, что шаг по x равен h = const и обозначим x1 = x0 + h; x2 = x0 + 2h; x3 = x0 + 3h; , а приближенные значения y(xk) = yk. Тогда
или
Отсюда получаем
yk+1 = yk + hf(xk,yk).
Полагая k = 0,1,2, можно найти значения y1, y2, , т.е. получается табличное задание искомой функции.
2.3.2. Метод Рунге-Кутта
При разложении искомой функции y = f(x) в ряд Тейлора в методе Рунге-Кутта в отличие от метода Эйлера используются члены до четвертой производной. Данный метод имеет следующие достоинства:
хорошая точность;
метод является явным, т.е. значение yk+1 вычисляется по ранее найденным значениям за определенное число действий по определенным формулам;
метод допускает расчет с переменным шагом;
для начала расчета достаточно выбрать шаг и задать значение y0; далее (для шага h = const) вычисления идут по одним и тем же формулам:
где
3. Пример решения задачи
Условие задачи:
вычислить значение суммы членов бесконечного ряда
с точностью до члена ряда, меньшего . Определить число членов ряда, вошедших в сумму.
Метод и алгоритм решения задачи.
Используем
рекуррентное соотношение для вычисления
очередного члена ряда. Для этого найдем
отношение
Получим
,
где а1 = х, n = 2,3,4,
Схема алгоритма, реализующего предложенный метод, представлена на рис.7, где а - очередной член ряда, s - текущая сумма ряда, n - текущий номер члена ряда.
Текст программы на языке Паскаль имеет вид:
PROGRAM PR3;
VAR X,E,A,S:REAL; {E - абсолютная погрешность}
N:INTEGER;
BEGIN
WRITELN (‘ВВЕДИТЕ Х,E’);
READ (X,E);
A:=X;
S:=0;
N:=1;
WHILE ABS(A) >= E DO
BEGIN
S:=S+A;
N:=N+1;
A:=-A*X*X/((2*N-2)*(2*N-1))
END;
WRITELN(‘СУММА РЯДА=’,S);
WRITELN(‘ЧИСЛО ЧЛЕНОВ РЯДА=’,N)
END.
Рис.7. Блок-схема алгоритма
4. Задачи, выносимые на практические занятия
Для каждой из ниже перечисленных задач предлагается разработать алгоритм и программу.
1. Найти предел
последовательности {an},где
,
принимая за него такое значение an,
при котором |an-an-1|<.
2. Вычислить ln(1+x) с относительной погрешностью %, используя разложение в ряд:
3. Вычислить y=xn+xn+1+...+x+1+x-1+... с точностью до члена ряда, меньшего . Текущий член ряда вычислять, используя рекуррентную формулу.
4. Вычислить
значение корня уравнения
с точностью до
методом дихотомии.
5. Вычислить
значение корня уравнения
с точностью до
методом простых итераций.
6. Вычислить
значение корня уравнения
с точностью до
методом простых итераций.
7. Вычислить значение корня уравнения x+cos(x0.52+2)=0 c точностью до методом касательных.
8. Вычислить значение корня уравнения tg(0,3x+0,4)=x2 с точностью до методом хорд.
9. Вычислить значение корня уравнения 2x3-3x2-12x+10=0 с точностью до комбинированным методом.
10. Вычислить
интеграл
по формуле прямоугольников с абсолютной
погрешностью 0,001.
11. Вычислить
интеграл
по формуле трапеций с абсолютной
погрешностью 0,001.
12. Вычислить
интеграл
по формуле Симпсона с абсолютной
погрешностью 0,0001.
13. Методом
Эйлера решить дифференциальное уравнение
на интервале [a,b] с заданным
y0(a).
Шаг h вводится.
14. Методом
Рунге-Кутта решить дифференциальное
уравнение
на интервале [a,b] с заданным
y0(a)
и h.
15. Найти экстремум функции y=x2-5sinx с точностью до , используя метод касательных для производной этой функции.