- •Численные методы.
- •Действия над приближенными числами.
- •Относительная погрешность.
- •Число верных знаков.
- •Округление чисел.
- •Свойства погрешностей.
- •Универсальный математический пакет программ MathCad: основные сведения.
- •Примеры вычислений в среде MathCad.
- •Найти обратную матрицу
- •Построить график функции
- •Приближенное решение алгебраических и трансцендентных уравнений.
- •Программа на языке qbasic
- •Метод Ньютона (метод касательных).
- •Метод простых итераций (метод последовательных приближений).
- •То итерационный процесс
- •Предельное значение
- •Геометрическая иллюстрация метода итераций.
- •Интерполяция функций. Многочлен Лагранжа.
- •Текст программы на языке qbasic имеет вид
- •Блок-схема программы вычисления процедуры-функции lx() вычисления многочлена Лагранжа k – й степени в точке х1.
- •Интерполяционная функция Ньютона.
- •Аппроксимация функций по методу наименьших квадратов.
- •Текст программы на языке qbasic имеет вид
- •Текст программы на языке qbasic для вычисления среднего квадратического отклонения.
- •Метод Гаусса решения системы линейных уравнений.
- •Текст программы решения системы уравнений методом Гаусса на языке qbasic.
- •Приближенное вычисление определенных интегралов.
- •Формула прямоугольников.
- •Блок-схема программы вычисления интеграла по формуле прямоугольников.
- •Текст программы на языке qbasic интегрирования по формуле прямоугольников.
- •Формула трапеций.
- •Блок-схема программы вычисления интеграла по формуле Симпсона
- •Текст программы на qbasic интегрирования по формуле Симпсона.
- •Численное интегрирование дифференциальных уравнений.
- •Метод Эйлера.
- •Метод Рунге-Кутта.
- •Блок-схема программы вычисления решения дифференциального уравнения по методу Рунге-Кутта.
- •Блок-схема процедуры-функции метода Рунге-Кутта.
- •Расчетные формулы для метода Рунге- Кутта.
- •Результаты работы программы
- •Одномерная оптимизация.
- •Метод дихотомии.
- •Текст программы нахождения минимума методом градиентного спуска.
Приближенное решение алгебраических и трансцендентных уравнений.
Рассмотрим уравнение
f(x) = 0, (1)
где функция f(x) определена и непрерывна в некотором конечном или бесконечном интервале a < x < b.
Всякое значение ξ, обращающее функцию в нуль, т.е. такое, что f(ξ) = 0, называется корнем уравнения или нулем функции f(x).
Будем предполагать, что уравнение (1) имеет лишь изолированные корни, т.е. для каждого корня уравнения существует окрестность, не содержащая других корней этого уравнения.
Приближенное нахождение изолированных действительных корней складывается из двух этапов:
-
отделение корней, т.е. установление возможно тесных промежутков [α, β], в которых содержится один и только один корень уравнения.
-
уточнение приближенных корней, т.е. доведение их до заданной точности.
Для отделения корней используется следующая теорема математического анализа.
Если непрерывная функция принимает на концах промежутка [α, β] значения разных знаков т.е.
f(α)∙f(β) < 0,
то внутри этого промежутка найдется, по крайней мере, одна такая точка x = ξ, в которой функция обращается в нуль, т.е. f(ξ) = 0.
Точка x = ξ является корнем уравнения (1).
f(α) f(α)
α ξ β x α ξ1 ξ2 ξ3 β
f(β) f(β)
Корень x = ξ, будет заведомо единственным корнем уравнения f(x) = 0, если внутри интервала [α, β] производная f′(x) сохраняет постоянный знак.
f′(x)>0 f′(x) < 0
α ξ β α ξ β
Если производная меняет знак на интервале [α, β], то следует произвести отделение корней, т.е. найти интервалы, где существует заведомо один корень уравнения. Блок-схема программы отделения корней уравнения F(x, y) = 0 имеет вид
Ввод диапазона поиска x0, x k
x = [x0 , xk] step dx
F1= F(x)
нет F2 = F(x + dx)
F1∙F2 < 0
да
отрезок, содержащий корень
Программа на языке qbasic
Рассмотрим уравнение
1 – 3x + cosx = 0
Используя пакет MathCAD, строим график функции F(x)
Из графика видно, что на интервале [-1, 1] имеется один корень рассматриваемого уравнения. Для нахождения аналитического значения корня находим производную
F′(x) = −3 – sin x
Очевидно, F′(x) < 0, следовательно, функция F(x) всюду убывает и имеет единственный корень на интервале [-1, 1] .
Для отделения корня составим программу на языке QBASIC. Программа имеет вид:
X0 = -1
XK = 1
DX = .1
FOR X = X0 TO XK STEP DX
F1 = 1 - 3 * X + COS(X)
F2 = 1 - 3 * (X + DX) + COS(X + DX)
IF F1 * F2 < 0 THEN
WRITE "[", X, X + DX, "]", "ROOT": GOTO N1
END IF
N1: NEXT X
END
Ответ компьютера « [0.6; 0.7] ROOT», т.е. уравнение имеет корень в указанном интервале.