- •Численные методы.
- •Действия над приближенными числами.
- •Относительная погрешность.
- •Число верных знаков.
- •Округление чисел.
- •Свойства погрешностей.
- •Универсальный математический пакет программ MathCad: основные сведения.
- •Примеры вычислений в среде MathCad.
- •Найти обратную матрицу
- •Построить график функции
- •Приближенное решение алгебраических и трансцендентных уравнений.
- •Программа на языке qbasic
- •Метод Ньютона (метод касательных).
- •Метод простых итераций (метод последовательных приближений).
- •То итерационный процесс
- •Предельное значение
- •Геометрическая иллюстрация метода итераций.
- •Интерполяция функций. Многочлен Лагранжа.
- •Текст программы на языке qbasic имеет вид
- •Блок-схема программы вычисления процедуры-функции lx() вычисления многочлена Лагранжа k – й степени в точке х1.
- •Интерполяционная функция Ньютона.
- •Аппроксимация функций по методу наименьших квадратов.
- •Текст программы на языке qbasic имеет вид
- •Текст программы на языке qbasic для вычисления среднего квадратического отклонения.
- •Метод Гаусса решения системы линейных уравнений.
- •Текст программы решения системы уравнений методом Гаусса на языке qbasic.
- •Приближенное вычисление определенных интегралов.
- •Формула прямоугольников.
- •Блок-схема программы вычисления интеграла по формуле прямоугольников.
- •Текст программы на языке qbasic интегрирования по формуле прямоугольников.
- •Формула трапеций.
- •Блок-схема программы вычисления интеграла по формуле Симпсона
- •Текст программы на qbasic интегрирования по формуле Симпсона.
- •Численное интегрирование дифференциальных уравнений.
- •Метод Эйлера.
- •Метод Рунге-Кутта.
- •Блок-схема программы вычисления решения дифференциального уравнения по методу Рунге-Кутта.
- •Блок-схема процедуры-функции метода Рунге-Кутта.
- •Расчетные формулы для метода Рунге- Кутта.
- •Результаты работы программы
- •Одномерная оптимизация.
- •Метод дихотомии.
- •Текст программы нахождения минимума методом градиентного спуска.
Текст программы на языке qbasic имеет вид
DEF FNlx (k, c1, c2, x1)
L = 0
FOR i = 0 TO k
L1 = 1
FOR j = 0 TO k
IF j <> i THEN L1 = (x1 - x(j)) * L1 / (x(i) - x(j))
NEXT j
L = L + L1 * y(i)
FNlx = L
NEXT i
END DEF
x1 = .57
n = 5
E = .001
DATA 0.50,0.55,0.60,0.65,0.70,0.75
DATA 0.8871,1.0265,1.1752,1.3366,1.5095,1.696
FOR i = 0 TO n
READ x(i)
NEXT i
FOR j = 0 TO n
READ y(j)
NEXT j
k = 2
L = FNlx(k, x(5), y(5), x1)
L(k) = L
n2: a = L
k = k + 1
L = FNlx(k, x(5), y(5), x1)
L(k) = L
E1 = ABS(L - a)
IF E1 <= E THEN GOTO n1
IF k >= n THEN GOTO n1
GOTO n2
n1: WRITE "mnogochlen Lagranga pri x=", x1, " raven ", L, "E1=", E1
END
Ответ программы
mnogochlen Lagranga pri x= 0.57 raven L = 1.084674, E1 =1.903772E-04
mnogochlen Lagranga pri x= 0.62 raven L = 1.238045, E1 =7.616282E-04
Блок-схема программы интерполяции
по формуле Лагранжа имеет вид:





начало x1
– значение аргумента, при котором
вычисляется
м
многочлен Лагранжа


n
+ 1 – число узлов интерполяции
Ввод
x1, n,
E Е –
требуемая точность интерполяции














j = 0, n

Ввод x(0:n)
– массив значений аргумента в узлах

x(i),
y(j)
интерполяции
y(0: n) – массив значений функции в узлах
интерполяции








k = 1


L = lx()
Вызов процедуры-функции lx
(k, x(),y(),
x1)
L(k)
= L для
вычисления многочлена Лагранжа k
-й степени
в точке x = x1



A = L


k
= k + 1


Вызов
процедуры-функции lx
(k, x(),y(),
x1)


L
= lx() для вычисления
многочлена Лагранжа k +
1-й степени
L(k) = L и нахождение Е1 для достижения необходимой

Е1 =|L – A| точности
вычислений.
да нет


Е1<=E
или
k>= n



да
Вывод Вывод значений многочлена Лагранжа k - й в точке
L(1:k) x = x1.
Рис.1
Блок-схема программы вычисления процедуры-функции lx() вычисления многочлена Лагранжа k – й степени в точке х1.


lx ()




L
= 0 Описание процедуры-функции

lx(входные
параметры:


k
–степень многочлена Лагранжа,





i = 0, k x(0:
k) – массив значений
аргумента
в узлах интерполяции,

y(0:
k) – массив значений


в
узлах интерполяции,
L1 = 1 x1 – значение аргумента, при

котором
вычисляется


многочлен
Лагранжа







j = 0, k


нет



i <>
j
да




Вычисление
слагаемых.





L = L + L1*y(i) L – значение полинома

в
точке x1.



lx = L Значение многочлена Лагранжа


Рис . 2.
Интерполяция возможна также с помощью пакета программ MathCAD.
При линейной интерполяции аппроксимирующая функция соединяет опытные точки отрезками прямых линий. Для линейной интерполяции используется встроенная функция linterp. Обращение к функции
linterp (X, Y, t)<
где X – вектор опытных значений аргумента; Y – вектор опытных значений функции; t – значение аргумента, при котором вычисляется интерполирующее значение функции.
В предыдущем примере имеем

Обращаемся к пиктограмме «встроенная функция f(x)» на второй строке текстового окна стандартной линейки. В появившемся диалоговом окне в разделе «Категория функции» выбираем «Интерполяция», linterp, подставляем значения X, Y, 0.57 или 0.62 и получаем значения многочлена Лагранжа в этих точках. Используя функцию linterp(X, Y,x) можно построить график интерполирующей функции.
