Лабораторная работа №1
Вариант 49
Студента группы К6-172
Минина Петра
Данные.
Отрезок: ![]()
Точность: A(1E – 2 ) , то есть 0.01 усредненная абсолютная погрешность
Функции для разложения по базису на отрезке
:
1) ![]()
2) ![]()
3) ![]()
Результаты.
1) Первая функция похожа на «нечетную», для нее используем полиномы нечетной степени.
Для первой функции: требуемую точность достичь не удалось, даже если взять 14 членов ряда (максимальная степень полинома – 27). Дальнейшее увеличение степени полинома привело к тому, что MAPLE оказался не в состоянии рассчитать коэффициенты для разложения в ряд.

Степень полинома | Число членов ряда | Ошибка | В процентах |
3 | 2 | 0.8 | 10% |
7 | 4 | 0.6 | 7 % |
11 | 6 | 0.2 | 2 % |
15 | 8 | 0.17 | 2 % |
19 | 10 | 0.12 | 1.3 % |
23 | 12 | 0.09 | 1 % |
27 | 14 | 0.07 | 0.8 % |
29 | 15 | не определена | не определено |
Большая ошибка апроксимации вызвана тем, что функция «плохая», очень негладкая, плохо описывается полиномами.
С целью все-таки добиться требуемой точности мною были предприняты некоторые усилия.
1) Попытки изменить алгоритм расчета интеграла (численный на аналитический) путем замены int( ) на Int( ) в формулах расчета коэффициентов для разложения в ряд привели к тому, что вплоть до степени 27 увеличилась скорость расчета. Но при дальнейшем повышении степени рассчитать коэффициенты не удалось.
2) Была изменена формула расчета функции, была убрана операция минимизации
Вместо f:=x->min(5*x^2, 3*(c-x)^2):
использовалось
x1:=evalf(RootOf(5*x^2 = 3*(c-x)^2,x,0..c)):
f:=x-> piecewise(x<x1, 5*x^2, 3*(c-x)^2):
Этот прием позволил рассчитать коэффициенты ряда при дальнейшем увеличении степени (использовалась процедура int( ) ).
Степень полинома | Число членов ряда | Ошибка | В процентах |
27 | 14 | 0.07 | 0.8 % |
29 | 15 | 0.1 | 1.2 % |
31 | 16 | 0.16 | 2 % |
Полученные результаты показывают, что ошибка начала возрастать при увеличении степени полиномов. Это объясняется накоплением ошибок при большом количестве операций сложения/вычитания больших чисел – ведь на правой границе слагаемые будут 3^31 ~=1.E15 .
1) Вторая функция похожа на «нечетную», для нее используем полиномы нечетной степени.
Для второй функции для достижения заданной точности достаточно взять 8 членов ряда (максимальная степень полинома – 15).

Степень полинома | Число членов ряда | Ошибка | В процентах |
3 | 2 | 9 | 11% |
7 | 4 | 2 | 3 % |
11 | 6 | 0.74 | 1 % |
13 | 7 | 0.02 | 0.03% |
15 | 8 | 0.005 | 0.006% |
1) Третья функция похожа на «нечетную», для нее используем нечетные полиномы.
Для третьей функции для достижения заданной точности достаточно взять 6 членов ряда (максимальная степень полинома – 11).

Степень полинома | Число членов ряда | Ошибка | В процентах |
3 | 2 | 0.2 | 8 % |
7 | 4 | 0.12 | 5 % |
11 | 6 | 0.005 | 0.2 % |
ЗАКЛЮЧЕНИЕ И ВЫВОДЫ
В целом, ортогональные полиномы Лежандра позволяют аппроксимировать различные функции с приемлемой точностью. Однако видно, что не следует брать большое количество членов ряда, при повышении степени полиномов возрастает ошибка апроксимации.
СРАВНИТЕЛЬНЫЙ АНАЛИЗ с результатами по Лаб.2 – Лаб.3 приведен в отчете по Лаб3.


