- •Численные методы.
- •Действия над приближенными числами.
- •Относительная погрешность.
- •Число верных знаков.
- •Округление чисел.
- •Свойства погрешностей.
- •Универсальный математический пакет программ MathCad: основные сведения.
- •Примеры вычислений в среде MathCad.
- •Найти обратную матрицу
- •Построить график функции
- •Приближенное решение алгебраических и трансцендентных уравнений.
- •Программа на языке qbasic
- •Метод Ньютона (метод касательных).
- •Метод простых итераций (метод последовательных приближений).
- •То итерационный процесс
- •Предельное значение
- •Геометрическая иллюстрация метода итераций.
- •Интерполяция функций. Многочлен Лагранжа.
- •Текст программы на языке qbasic имеет вид
- •Блок-схема программы вычисления процедуры-функции lx() вычисления многочлена Лагранжа k – й степени в точке х1.
- •Интерполяционная функция Ньютона.
- •Аппроксимация функций по методу наименьших квадратов.
- •Текст программы на языке qbasic имеет вид
- •Текст программы на языке qbasic для вычисления среднего квадратического отклонения.
- •Метод Гаусса решения системы линейных уравнений.
- •Текст программы решения системы уравнений методом Гаусса на языке qbasic.
- •Приближенное вычисление определенных интегралов.
- •Формула прямоугольников.
- •Блок-схема программы вычисления интеграла по формуле прямоугольников.
- •Текст программы на языке qbasic интегрирования по формуле прямоугольников.
- •Формула трапеций.
- •Блок-схема программы вычисления интеграла по формуле Симпсона
- •Текст программы на qbasic интегрирования по формуле Симпсона.
- •Численное интегрирование дифференциальных уравнений.
- •Метод Эйлера.
- •Метод Рунге-Кутта.
- •Блок-схема программы вычисления решения дифференциального уравнения по методу Рунге-Кутта.
- •Блок-схема процедуры-функции метода Рунге-Кутта.
- •Расчетные формулы для метода Рунге- Кутта.
- •Результаты работы программы
- •Одномерная оптимизация.
- •Метод дихотомии.
- •Текст программы нахождения минимума методом градиентного спуска.
Метод простых итераций (метод последовательных приближений).
Другим методом решения трансцендентных уравнений является метод простых итераций. Пусть дано уравнение f(x) = 0, где f(x) – непрерывная функция, Требуется определить действительный корень уравнения, заключенный на отрезке [a, b]. Полагая f(x) = x - φ(x), заменим уравнение f(x) = 0 равносильным ему уравнением
x = φ(x). (1)
Выберем какое-нибудь х0 € [a, b] и подставим в правую часть уравнения (1); тогда получим х1 = φ(х0). Затем это значение подставим в правую часть уравнения (1) и получим х2 = φ(x1). Повторяя этот процесс, получим последовательность чисел xn = φ(xn−1). Здесь могут представиться два случая:
-
последовательность x1, x2, …, xn , ….сходится, т.е. имеет предел, тогда этот предел будет корнем уравнения f(x) = 0;
-
последовательность x1, x2, …, xn , …. расходится, т.е. не имеет предела.
Приведем без доказательства, теорему, выражающую условие, при котором итерационный процесс сходится.
Теорема. Пусть на отрезке [a, b] функция φ(x) определена и дифференцируема причем все ее значения φ(x) € [a, b], тогда ,если существует правильная дробь q такая, что
|φ′(x)| ≤ q < 1 (*)
при х€ (a, b), то
-
То итерационный процесс
xn = φ(xn−1) (n = 1, 2, …)
сходится, а за нулевое приближение можно взять любое число из отрезка [a, b],
-
Предельное значение
является единственным корнем уравнения
x = φ(x)
Можно показать также, что чем меньше q, тем лучше сходимость итерационного процесса. Рассмотрим далее вопрос о точности приближенных значений корня.
Пусть f(x) = x − φ(x), тогда f′(x) =1 − φ′ (x) ≥ 1 – q , отсюда, учитывая, что f(ξ) = 0, получим
|x n – xn + 1| = |φ(x n − 1) - φ(xn)| = = |f ′(cn)| |x n – x n − 1| ≤ q |xn – xn – 1|
|x n− xn + 1| = |x n - φ(xn)| = |f(xn) – f(ξ)| = f ′(cn) |xn – ξ | = (1 − φ(cn)) |x n – ξ| ≥ (1 – q) |x n – ξ |
Отсюда
(2)
Формула (2) дает возможность оценить погрешность приближенного значения х n по расхождению двух последовательных приближений x n – 1 и x n.
Пусть ε – предельная абсолютная погрешность корня ξ. Процесс итерации следует продолжать до тех пор, пока для двух последовательных приближений x n – 1 и x n не будет выполняться неравенство
|x n − x n – 1|
Выясним далее, как привести уравнение f(x) = 0 к виду (1). Пусть φ(x) = λ f(x) + x. Если x = ξ - корень уравнения f(x) = 0, то φ(ξ) = ξ, т.е. x = ξ – корень уравнения (1). Таким образом, уравнение x = x + λ f(x) равносильно уравнению f(x) = 0. Подберем λ так, чтобы выполнялось условие (*).
| φ′(x)| = | λ f′(x) + 1| < 1
-1 < λ f′ (x) + 1 < 1,
-2 < λ f′ (x) < 0
Пусть r = max |f′(x)|. Тогда
Геометрическая иллюстрация метода итераций.
Построим на плоскости хОу графики функций у = х и y = φ(x). Каждый действительный корень является абсциссой точки пересечения М прямой у = х и кривой y = φ(x). отправляясь от некоторой точки А0(х0, φ(x0)) строим ломаную линию А0В1А1В2А2В….. («лестница»), звенья которой попеременно параллельны оси Ох и Оу, вершины А0, А1, А2, … лежат на кривой y = φ(x),а вершины В1, В2, В3, … лежат на прямой у = х. Общие абсциссы точек А1 и В1, А2 и В2, …, представляют собой соответственно последовательные приближения x1, x2, … корня ξ.
Возможен также другой вид ломаной А0В1А1В2А2В…. («спираль»). Очевидно, решение в виде «лестницы» получается, когда производная φ′(x) положительна. Решение в виде «спирали», получается, когда φ′(x) отрицательна. При этом процесс итерации сходится, если | φ′(x)| < 1, т.е. угловой коэффициент касательной к кривой по модулю меньше единицы. Если | φ′(x)| > 1, то процесс итерации может расходиться.
y = x y = φ(x)
y B1 A0
B2
A1
B3
M A2
A3
ξ x3 x2 x1 x0 x
y y = x
A1 B2
B3 A3 A0
B1 y = φ(x)
x1 x3 ξ x2 x0 x
П р и м е р .
Составим далее на языке QBASIC программу нахождения корня уравнения
f(x) = 1 – 3x + cosx =0 (**)
методом итераций с точностью Е =0.0001.
Ранее показано, что единственный корень уравнения находится на интервале [0, 1]/
f′(x) = -3 – sin x < 0, |f′(x)| ≤ 4.
Представляем уравнение (**) в виде
x = φ(x) = λ f(x) + x (***)
λ = 2 / r, r = max |f′(x)| = 4
x = 2 / r (1 -3 x + cos x) +x = ½ (1 – x + cos x) ≡ φ(x)
Для определения окончания процесса итерации находим величину q из условия
| φ′ (x)|≤ q < 1
|φ′ (x)| = | 0.5 (−1− sin x)| ≤ 0.8
Блок-схема программы имеет следующий вид.
Ввод x0, E, q
q1 = (1 – q) E/ q величина, необходимая для определения
окончания процесса итерации.
n = 0 , x = x0 n – счетчик числа итераций
t = 0.5 (1 –x + cosx)
n = n + 1
нет
|x – t | < q1
да
Вывод root = x , n
x = t
end
Текст программы имеет вид:
Ответ программы: x =0.6070896 или, округляя x = 0. 60709, n = 45.
Рассмотренную задачу можно решить в среде MathCAD.
f(x) = 1 – 3x + cosx =0
Представим один из способов решения трансцендентного уравнения в среде MathCAD.
Открываем рабочий лист и записываем левую часть уравнения
Затемняем один символ (переменную х ) в этой записи путем протаскивания курсора. Открываем меню «Символ», подменю «Переменные», щелчок по строке «Решить». На рабочем листе появится результат. Делаем округление.
.60710
Строим график функции, определяющей левую часть уравнения.