ЧМ - ПР№2
.docПРАКТИЧЕСКАЯ РАБОТА №2
Интерполяция функций
ЗАДАНИЕ ДЛЯ ПРАКТИЧЕСКОЙ РАБОТЫ
Функция y=f(x) задана таблицей значений в точках .
Используя пользовательскую и встроенные функции MathCAD построить линейную и кубическую сплайн интерполяцию.
Используя метод наименьших квадратов (МНК), найти многочлен наилучшего среднеквадратичного приближения оптимальной степени m=m*. За оптимальное значение m* принять ту степень многочлена, начиная с которой величина стабилизируется или начинает возрастать.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
-
Задать векторы x и y исходных данных.
-
Используя пользовательскую функцию Interpol выполните линейную интерполяцию функции и определите значение Y в точке X=1.67
-
Используя встроенные в MathCAD функции постройте линейную и кубическую сплайн интерполяцию.
-
Используя пользовательскую функцию mnk, найти многочлены Pm, m=0,1,2,..., по методу наименьших квадратов. Вычислить соответствующие им значения .
-
Построить гистограмму зависимости от m, на основании которой выбрать оптимальную степень m* многочлена наилучшего среднеквадратичного приближения.
-
На одном чертеже построить графики многочленов Pm, m=0,1,2,..., m*, и точечный график исходной функции.
ПРИМЕР ВЫПОЛНЕНИЯ РАБОТЫ
-
Пусть функция задана таблицей, где первый столбец, х-координата, а второй, y-координата.
Построим график
Допустим, нам необходимо вычислить значение функции в точке x=0.53. Очевидно, необходимо построить уравнение прямой проходящей через две ближайшие точки и вычислить значение функции для данного значения аргумента. Это линейное приближение.
-
Напишем программу линейной интерполяции.
- количество строк матрицы - 1
- лежит ли х в диапазоне?
- вычисляем индекс точки справа
- угловой коэффициент
- свободный член уравнения
- возвращаемое значение
|
Теперь можно вычислить значение при х=0.53:
В Mathcad реализованы стандартные функции для линейной интерполяции linterp() и функция interp() для кубической сплайн-интерполяции.
3.1. Линейная интерполяция
Функция :
- векторы данных упорядоченные по возрастанию;
- аргумент, для которого возвращается вычисленное значение.
Для нашего случая:
Построим на графике обе эти зависимости и исходный набор точек:
3.1. Кубическая сплайн-интерполяция
Кубическая сплайн-интерполяция позволяет провести через набор точек гладкую кривую так, чтобы в этих точках были непрерывны первая и вторая производные. Вначале вычисляется вектор вторых производных для чего имеется набор из 3-х функций:
- генерирует кривую, являющуюся кубическим полиномом в граничных точках;
- соответственно, параболу;
- прямую.
Вычислим:
Построим график для всех 3-х вариантов.
4. Метод наименьших квадратов
Векторы исходных данных:
Функция mnk, строящая многочлен степени m по методу наименьших квадратов, возвращает вектор a коэффициентов многочлена:
Входные параметры:
x, y - векторы исходных данных;
n+1 - размерность x,y.
Вычисление коэффициентов многочленов степени 0,1,2,3 по методу наименьших квадратов:
Функция P возвращает значение многочлена степени m в точке t; многочлен задается с помощью вектора коэффициентов a:
Функция возвращает значение среднеквадратичного отклонения многочлена P(a,m,t):
Вычисление значений , m=0,1,2,3:
Гистограмма
Вывод: оптимальная степень m*=2; многочлен наилучшего среднеквадратичного приближения: P2(x)=-1.102+1.598x+0.717
Графики многочленов степени 0,1,2 и точечный график исходной функции:
ВАРИАНТЫ ЗАДАНИЙ
1 |
2 |
3 |
4 |
5 |
|||||
x |
y |
x |
y |
x |
y |
x |
y |
x |
y |
-1 |
-2.25 |
0 |
4.568 |
-1 |
3.614 |
-0.5 |
0.72 |
-2.1 |
14.1982 |
-0.7 |
-0.77 |
0.375 |
3.365 |
-0.74 |
1.199 |
-0.25 |
1.271 |
-1.8 |
11.4452 |
-0.43 |
0.21 |
0.563 |
2.810 |
-0.48 |
-0.125 |
0 |
1.2 |
-1.5 |
9.1586 |
-0.14 |
0.44 |
0.75 |
2.624 |
-0.21 |
-0.5838 |
0.25 |
0.7363 |
-1.2 |
7.2426 |
-0.14 |
0.64 |
1.125 |
0.674 |
0.05 |
-0.538 |
0.5 |
0.24 |
-0.9 |
6.3640 |
0.43 |
0.03 |
1.313 |
0.557 |
0.31 |
-0.2855 |
0.75 |
-0.175 |
-0.6 |
4.8182 |
0.71 |
-0.22 |
1.5 |
0.384 |
0.58 |
0.1111 |
1 |
-0.36 |
-0.3 |
6.1088 |
1 |
-0.84 |
1.690 |
-0.566 |
0.84 |
0.4529 |
1.25 |
-0.328 |
0 |
3.9536 |
1.29 |
-1.2 |
1.875 |
-1.44 |
1.1 |
0.6711 |
1.5 |
0 |
0.3 |
4.6872 |
1.57 |
-1.03 |
2.063 |
-1.696 |
1.36 |
0.6625 |
1.75 |
0.3538 |
0.6 |
4.7601 |
1.86 |
-0.37 |
2.25 |
-1.91 |
1.63 |
0.4501 |
2 |
0.72 |
0.9 |
5.8511 |
2.14 |
0.61 |
2.438 |
-2.819 |
1.89 |
0.157 |
2.25 |
0.6969 |
1.2 |
7.1010 |
2.43 |
2.67 |
2.625 |
-3.625 |
2.15 |
-0.1876 |
2.5 |
0 |
1.5 |
9.1792 |
2.71 |
5.04 |
2.813 |
-3.941 |
2.41 |
-0.542 |
2.75 |
-1.792 |
1.8 |
11.421 |
3 |
8.90 |
3 |
-4.367 |
2.95 |
-0.1983 |
3 |
-5.16 |
2.1 |
14.097 |
КОНТРОЛЬНЫЕ ВОПРОСЫ
-
Постановка задач приближения функций.
-
Метод наименьших квадратов. Вывод нормальной системы метода наименьших квадратов.
-
Погрешность интерполяции.