- •Содержание
- •Лекция № 1. Теория погрешностей План
- •1.1. Источники и классификация погрешностей
- •1.2. Абсолютная и относительная погрешности. Формы записи данных
- •1.3. Вычислительная погрешность
- •2.1. Общие сведения и определения
- •2.2. Отделение корней
- •2.3. Метод половинного деления
- •2.4. Метод простой итерации
- •2.5. Преобразование уравнения к итерационному виду
- •2 0.777373 -3.32063 Search
- •Лекция № 3. Методы решения систем линейных алгебраических уравнений План
- •3.1. Общие сведения и основные определения
- •3.2. Метод Гаусса и его реализация в пакете matlab
- •3.3. Вычисление определителей
- •3.4. Решение систем линейных уравнений методом простой итерации
- •5. Метод Зейделя
- •3.6. Решение систем линейных уравнений средствами пакета matlab
- •Выражения
- •Лекция № 4. Методы решения систем нелинейных уравнений
- •4.2. Метод Ньютона решения систем нелинейных уравнений
- •Последовательные приближения корней
- •4.3. Решение нелинейных систем методами спуска
- •4.4. Решение систем нелинейных уравнений средствами пакета matlab
- •Iteration Func-count f(X) step optimality cg-iterations
- •Iteration Func-count f(X) step optimality cg-iterations
- •Лекция № 5. Интерполирование функций План
- •5.1. Постановка задачи
- •Решение задачи находится отысканием некоторой приближающей функции f(X), близкой в некотором смысле к функции f(X), для которой известно аналитическое выражение/
- •5.2. Интерполяционный полином Лагранжа
- •5.3. Интерполяционный полином Ньютона для равноотстоящих узлов
- •5.3.1. Конечные разности
- •5.3.2. Первая интерполяционная формула Ньютона
- •5.3.3. Вторая интерполяционная формула Ньютона
- •5.4. Погрешность интерполяции
- •5.5. Сплайн-интерполяция
- •5.6. Решение задачи одномерной интерполяции средствами пакете matlab
- •Лекция № 6. Численное дифференцирование
- •6.2. Особенности задачи численного дифференцирования функций, заданных таблично
- •6.3. Интегрирование функций, заданных аналитически (формула прямоугольников, формула трапеций, формула Симпсона)
- •6.4. Погрешность численного интегрирования
- •6.5. Вычисление интегралов методом Монте-Карло
- •Лекция № 7. Методы обработки экспериментальных данных План
- •7.1. Метод наименьших квадратов
- •Сумма квадратов отклонений
- •7.2. Нахождение приближающей функции в виде линейной функции и квадратичного трехчлена
- •7.5. Аппроксимация функцией произвольного вида
- •Лекция № 8. Преобразование Фурье
- •8.2. Эффект Гиббса
- •8.3. Спектральный анализ дискретных функций конечной длительности
- •8.4. Быстрое преобразование Фурье
- •Лекция № 9. Численные методы решения обыкновенных дифференциальных уравнений План
- •9.1. Основные сведения и определения
- •9.2. Метод Пикара
- •9.3. Метод Эйлера
- •9.4. Метод Рунге-Кутта
- •9.5. Средства пакета matlab для решения обыкновенных дифференциальных уравнений
5.2. Интерполяционный полином Лагранжа
Для функции, заданной табл. 5.1, построим интерполяционный многочлен , степень которого не вышеn и выполнены условия (5.1).
Будем искать в виде
, (5.5)
где многочлен степени n, причем
. (5.6)
Очевидно, что требование (5.6) с учетом (5.5) обеспечивают выполнение условий (5.1).
Многочлены составим следующим способом:
, (5.7)
где постоянный коэффициент, значение которого находится из первой части условия (5.6):
. (5.8)
Подставив в (5.7) и далее в (5.5), окончательно получим:
. (5.9)
Формула (5.9) окончательно решает поставленную задачу.
Решение задачи интерполяции в пакете MatLAB с помощью полинома Лагранжа находится выполнением следующей последовательности команд:
1. Задать табличные значения интерполируемой функции
>> N=8;
>> i=1:N;
>> x(i)=2*pi/(N-1)*(i-1);
>> y=sin(x);
2. Создать файл Lagrange.m, содержащий описание функции возвращающей значение многочлена .
% листинг файла Lagrange.m
function z=Lagrange(x,i,X,Y)
% x абцисса точки интерполяции
% i номер полинома Лагранжа
% X вектор, содержащий абсциссы узлов интерполяции
% Y вектор, содержащий ординаты точек интерполяции
N=length(X);
L=1;
for j=1:N
if not(j==i)
L=L*(x-X(j))/(X(i)-X(j));
end;
end;
z=L*Y(i);
3. Создать файл Pol_Lagr.m, содержащий описание функции, возвращающей значения полинома Лагранжа
% листинг файла Lagr.m
function z=Pol_Lagr(x,X,Y)
% x абцисса точки интерполяции
% i номер полинома Лагранжа
% X вектор, содержащий абсциссы узлов интерполяции
% Y вектор, содержащий ординаты точек интерполяции
N=length(X);
s=0;
for i=1:N
s=s+Lagrange(x,i,X,Y);
end;
z=s;
5. Задать число промежуточных точек, вычислить их координаты и точные значения интерполируемой функции
>> M=1000;
>> j=1:M;
>> X(j)=2*pi/(M-1)*(j-1);
>> Y=sin(X);
6. Вычислить значения полинома Лагранжа в промежуточных точках
>> for j=1:M
Y2(j)=Pol_Lagr(X(j),x,y);
end;
7. Построить разность между точными и интерполированными значениями функции (рис. 5.3)
Рис. 5.3. Погрешность аппроксимации функции sin(x) полиномом Лагранжа
5.3. Интерполяционный полином Ньютона для равноотстоящих узлов
Интерполяционные формулы Ньютона строятся для функций, заданных таблицами с равноотстоящими значениями аргумента h:
. (5.10)
5.3.1. Конечные разности
Для функции, заданной табл. 5.1 с постоянным шагом (5.10), определим разности между значениями функции в соседних узлах интерполяции:
, (5.11)
называемые конечными разностями первого порядка.
Из конечных разностей первого порядка можно образовать конечные разности второго порядка:
. (5.12)
Аналогично получают выражение для конечных разностей третьего порядка:
. (5.13)
Методом математической индукции можно доказать, что
. (5.14)