- •Численные методы.
- •Действия над приближенными числами.
- •Относительная погрешность.
- •Число верных знаков.
- •Округление чисел.
- •Свойства погрешностей.
- •Универсальный математический пакет программ MathCad: основные сведения.
- •Примеры вычислений в среде MathCad.
- •Найти обратную матрицу
- •Построить график функции
- •Приближенное решение алгебраических и трансцендентных уравнений.
- •Программа на языке qbasic
- •Метод Ньютона (метод касательных).
- •Метод простых итераций (метод последовательных приближений).
- •То итерационный процесс
- •Предельное значение
- •Геометрическая иллюстрация метода итераций.
- •Интерполяция функций. Многочлен Лагранжа.
- •Текст программы на языке qbasic имеет вид
- •Блок-схема программы вычисления процедуры-функции lx() вычисления многочлена Лагранжа k – й степени в точке х1.
- •Интерполяционная функция Ньютона.
- •Аппроксимация функций по методу наименьших квадратов.
- •Текст программы на языке qbasic имеет вид
- •Текст программы на языке qbasic для вычисления среднего квадратического отклонения.
- •Метод Гаусса решения системы линейных уравнений.
- •Текст программы решения системы уравнений методом Гаусса на языке qbasic.
- •Приближенное вычисление определенных интегралов.
- •Формула прямоугольников.
- •Блок-схема программы вычисления интеграла по формуле прямоугольников.
- •Текст программы на языке qbasic интегрирования по формуле прямоугольников.
- •Формула трапеций.
- •Блок-схема программы вычисления интеграла по формуле Симпсона
- •Текст программы на qbasic интегрирования по формуле Симпсона.
- •Численное интегрирование дифференциальных уравнений.
- •Метод Эйлера.
- •Метод Рунге-Кутта.
- •Блок-схема программы вычисления решения дифференциального уравнения по методу Рунге-Кутта.
- •Блок-схема процедуры-функции метода Рунге-Кутта.
- •Расчетные формулы для метода Рунге- Кутта.
- •Результаты работы программы
- •Одномерная оптимизация.
- •Метод дихотомии.
- •Текст программы нахождения минимума методом градиентного спуска.
Блок-схема программы вычисления решения дифференциального уравнения по методу Рунге-Кутта.
Начало
Описание Описание
процедуры- процедуры-
-функции Ввод х0, у0, -функции
rk(x0,y0,h,m) h0, E, b y′ =f(x, y)
x0, y0 – начальные условия
h0 – шаг таблицы
n = ] (b- x0)/ h0[ + 1 E погрешность
b – конец отрезка
интегрирования [a, b]
i = 1, n n – число точек в таблице
решений
] [ - целая часть числа
h = h0
m = 1
y = rk() Вызов процедуры-функции
y = rk(x0,y0, h,m)
y1 = y, h = h/2
x = x0, y = y0, m = 2m
Вызов процедуры-функции
y = rk() y = rk(x0,y0, h,m)
да |y-y1|>15E/16
нет
Вывод
x0, y0, h, m
x0 = x0 + h0, y0 = y
end
Блок-схема процедуры-функции метода Рунге-Кутта.
rk(x, y, h, m) x, y – начальная точка
h – шаг интегрирования
m – число дроблений шага
j = 1, m
Вычисление у
по формулам
Рунге-Кутта
x = x + h
rk = y Значение решения ОДУ
в очередной точке.
Расчетные формулы для метода Рунге- Кутта.
П р и м е р .Дано дифференциальное уравнение y′ = x – y c начальным условием y(0) = 1.5. Методом Рунге-Кутта с точностью до Е =0. 1 составить таблицу значений частного решения этого уравнения на интервале [0, 1.5]. Примем шаг таблицы, равным h0 = 0.25.
Программа этой задачи на языке QBASIC имеет вид
DEF FNur (x, y) = x - y
DEF FNrk (x, y, h, m)
FOR j = 1 TO m
k1 = FNur(x, y)
k2 = FNur(x + h / 2, y + h * k1 / 2)
k3 = FNur(x + h / 2, y + h * k2 / 2)
k4 = FNur(x + h, y + h * k3)
y = y + (k1 + 2 * k2 + 2 * k3 + k4) * h / 6
x = x + h
NEXT j
FNrk = y
END DEF
x0 = 0
y0 = 1.5
h0 = .25
E = .01
b = 1.5
n = INT((b - x0) / h0) + 1
PRINT x0, y0, h0, n
FOR i = 1 TO n
h = h0
m = 1
y = FNrk(x0, y0, h0, m)
m1: y1 = y
h = h / 2
x = x0
y = y0
m = 2 * m
y = FNrk(x, y, h, m)
IF ABS(y - y1) > 15 * E / 16 THEN GOTO m1
WRITE "xi=", x0, "yi=", y0, "h=", h, "m=", m, "i=", i
x0 = x0 + h0
y0 = y
NEXT i
END
Результаты работы программы
x y h m (число дроблений шага)
0 1.5 0.125 2
0.25 1.1970 0.125 2
0.5 1.0163 0.125 2
0.75 0.9309 0.125 2
1.00 0.9196 0.125 2
1.25 0.9663 0.125 2
1.50 1.0578 0.125 2
В таблице взяты два резервных десятичных знака.
Решение методом Рунге-Кутта можно осуществить, используя пакет MathCAD.
Начальное значение y = y0 , это обозначается ORIGIN =1. Далее обращаетесь к встроенной функции f(x) в разделе «Решение дифференциальных уравнений», функция «rkfixed»
В первой позиции вставляем у, во второй и третьей - границы изменения х, в четвертой – число точек деления интервала, в пятой позиции - функцию D(x,y), являющуюся правой частью дифференциального уравнения. Далее – «Z=», появляется таблица решений дифференциального уравнения. Первый столбец – значения переменной х, второй – значения у
Можно построить график решения. Вторая линия – график производной.