чм3
.pdf
Рисунок 2.7 – Результат работы программы для второй последовательности точек
Рисунок 2.8 – Результат работы программы для третьей последовательности точек
Вычисленные с помощью программы значения совпадают со
значениями, полученными в пункте 2.1.
2.3 Построение аппроксимирующей квадратной функции с помощью
метода наименьших квадратов
Для построения аппроксимирующей квадратной функции была реализована программа, представленная в приложении Б.
В основе программы лежит система для нахождения коэффициентов функции (2.2) и формула квадратичной функции (2.3):
∙ ∑ 4 |
+ ∙ ∑ 3 |
+ ∙ ∑ 2 |
= ∑ 2 |
; |
|
|
|
|
|
|
|
|
|
=0 |
=0 |
=0 |
=0 |
|
|
|
|
|
|
|
|
|
|
∙ ∑ 3 |
+ ∙ ∑ 2 |
+ ∙ ∑ |
= ∑ ; |
(2.2) |
||
|
|
|
|
|
|
|
=0 |
=0 |
=0 |
=0 |
|
|
|
|
|
|
|
|
|
|
|
∙ ∑ 2 |
+ ∙ ∑ + ∙ = ∑ |
|
{ |
|
|
|
=0 |
=0 |
=0 |
|
= 2 + + |
(2.3) |
Для решения системы уравнений используется метод Зейделя.
На рисунках 2.9-2.11 представлены результаты работы программы для трех последовательностей точек.
Рисунок 2.9 – Результат работы программы для первой последовательности точек
Рисунок 2.10 – Результат работы программы для второй последовательности точек
Рисунок 2.11 – Результат работы программы для третьей последовательности точек
Для первой последовательности точек формула квадратичной функции
(2.4) имеет вид:
= 3,599 2 + 0,289 + 3,941 |
(2.4) |
Для второй последовательности точек формула квадратичной функции
(2.5) имеет вид:
= −0,926 2 + 3,897 − 0,726 |
(2.5) |
|
Для третьей последовательности точек формула квадратичной функции
(2.6) имеет вид:
= −0,112 2 + 0,400 − 0,285 |
(2.6) |
|
На рисунках 2.12-2.14 представлны графики последовательностей точек и их аппроксимирующих функций.
Рисунок 2.12 – Аппроксимация ряда точек первой последовательности
Рисунок 2.13 – Аппроксимация ряда точек второй последовательности
Рисунок 2.14 – Аппроксимация ряда точек третьей последовательности
2.4Анализ результатов
Втаблицах 2.4-2.6 представлены результаты для трех последовательностей точек.
Таблица 2.4 – Результаты для первой последовательности
x |
y(x) |
L2(x) |
∆x = |y(x) – L 2(x)| |
̃ ( ) |
∆x = |y(x) – ̃ ( )| |
|
|
|
|
|
|
xi = 1.6 |
10.1949 |
10.1949 |
0 |
13.6149 |
3.42 |
|
|
|
|
|
|
x* = 1.1 |
- |
10.5772 |
- |
8.6125 |
- |
|
|
|
|
|
|
1=3̃ |
- |
44.8340 |
- |
37.1942 |
- |
|
|
|
|
|
|
2=4̃ .5 |
- |
168.6571 |
- |
78.1124 |
- |
|
|
|
|
|
|
Таблица 2.5– Результаты для второй последовательности
x |
y(x) |
L2(x) |
∆x = |y(x) – L 2(x)| |
̃ ( ) |
∆x = |y(x) – ̃ ( )| |
|
|
|
|
|
|
xi = 1.6 |
2.8226 |
2.8226 |
0 |
3.1394 |
0.3168 |
|
|
|
|
|
|
x* = 1.1 |
2.4506 |
2.4515 |
0.0009 |
2.4404 |
0.0102 |
|
|
|
|
|
|
1=3̃ |
3.4484 |
3.4476 |
0.0008 |
2.6342 |
0.8142 |
|
|
|
|
|
|
2=4̃ .5 |
3.8528 |
3.7695 |
0.0833 |
-1.9339 |
1.9189 |
|
|
|
|
|
|
Таблица 2.6 – Результаты для третьей последовательности
x |
y(x) |
L2(x) |
∆x = |y(x) – L 2(x)| |
̃ ( ) |
∆x = |y(x) – ̃ ( )| |
|
|
|
|
|
|
xi = 1.6 |
0.9870 |
0.9870 |
0 |
0.06696 |
0.9200 |
|
|
|
|
|
|
x* = 1.1 |
-0.9826 |
-0.8836 |
0.099 |
0.0188 |
0.9638 |
|
|
|
|
|
|
1=3̃ |
-0.8733 |
-2.9968 |
2.1235 |
-0.0749 |
0.7984 |
|
|
|
|
|
|
2=4̃ .5 |
0.0163 |
-55.1570 |
55.1737 |
-0.7634 |
0.7801 |
|
|
|
|
|
|
Из анализа полученных данных можно заключить, что для функций,
аналогичных первой последовательности точек, предпочтительнее применять полином Лагранжа, поскольку он обеспечивает значительно меньшую погрешность по сравнению с методом наименьших квадратов (МНК).
Для монотонно изменяющихся функций наиболее эффективно использовать полином Лагранжа при определении промежуточных значений графика и расчете прогнозных точек, особенно в случае дальнего прогноза, так как ошибка в этом случае оказывается незначительной.
Для периодических функций рекомендуется применять полином Лагранжа для вычисления промежуточных значений, а метод наименьших квадратов — для оценки прогнозных точек.
Также можно сделать вывод о том, что выбор метода построения приближенной функции зависит от типа функции.
Заключение
В ходе данной лабораторной работы были построены квадратный интерполяционный полином Лагранжа для последовательности точек и для функции в аналитическом виде и аппроксимирующая квадратная функции для последовательности точек и для функции в аналитическом виде, вычислены промежуточные точки, ближние и дальние прогнозные точки.
Приложение А
double[] X = { 0.0, 0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8};
//y1
//double[] Y = { 1.172229425, 4.551715624, 7.466763616, 6.871556362, 4.374340838, 9.470381565, 10.72324083, 10.73028883, 10.19491856, 16.12438536, 23.9858893, 18.74725305, 22.75740465, 28.37326328, 35.7321433};
//y2
//double[] Y = { -2.302585093, 0.783901544, 1.453953010, 1.851599470, 2.135349174, 2.356125860, 2.536866389, 2.689886230, 2.822568655, 2.939690883, 3.044522438, 3.139399623, 3.226050029, 3.305787197, 3.379633204};
//y3
double[] Y = { 0.010796117, -0.982827061, -0.352638252, 0.860174137, 0.651819843, - 0.633461325, -0.872147284, 0.330115293, 0.986966382, 0.013166561, -0.982386853, - 0.354855585, 0.858962707, 0.653615822, - 0.631625227 };
void Lagrange(double x)
{
if (x <= 0.0)
{
double y = (((x - X[1]) * (x - X[2])) / ((X[0] - X[1]) * (X[0] - X[2])))
* Y[0] +
(((x - X[0]) * (x - X[2])) / ((X[1] - X[0]) * (X[1] - X[2]))) * Y[1] +
(((x - X[0]) * (x - X[1])) / ((X[2] - X[0]) * (X[2] - X[1]))) * Y[2];
