Квадратурная формула гаусса
Рассмотрим полином Лежандра:
,
Свойства полинома Лежандра:
1.
2. -многочлен степени
3. Полином Лежандра имеет ровно различных действительных корней на отрезке [-1;1].
Рассмотрим функцию на интервале [-1;1].
Идея формулы Гаусса:
найти точки и коэффициенты ( ) , чтобы квадратурная формула была точна для полиномов наивысшей возможной степени . Т.к. постоянных имеется , то наивысшая возможная степень полинома - .
Система нелинейная, её решение трудное и поэтому применяется искусственный приём для и .
Рассмотрим полином: , , где -полином Лежандра. Общая степень будет справедлива формула: (по свойству ортогональности). Это равенство справедливо для любых , если . В качестве нужно взять нули полинома Лежандра.
Вернёмся к изначальной системе. Теперь она линейная, т.к. - это нули.
Система имеет определитель Вандермонда; при определитель Вандермонда коэффициенты определяются неоднозначно.
Формула Гаусса для произвольного интервала:
n | i | ||
1;3 | 5/9 8/9 | ||
1;4 2;3 | |||
1;5 2;4 |
Погрешность: , для интервала [a;b].
Точность квадратурной формулы при фиксированном числе узлов существенно зависит от расположения этих узлов.
Ручной счет
Формула Чебышева
k | |||
-0.707107 | 1.336827 | 0.580378 | |
2.15 | 0.679339 | ||
0.707107 | 2.963173 | 0.647723 |
Формула Гаусса
k | ||||
-0.707107 | 1.342827 | 0.622378 | 5/9 | |
2.15 | 0.679339 | 8/9 | ||
0.707107 | 3.061173 | 0.647723 | 5/9 |
Сравниваем со значением функции |
Сравниваем со значением функции |
Сравниваем со значением функции |
Нули полинома Лежандра: |
Матрица коэффициентов: |
Сравниваем со значением функции |
Погрешность: |
Matlab
function f1=f_1(x);
f1=(3*x-1)/(x^2+3.4); // задаем функцию
f_1=f1;
return
function Int = Chebushev(a,b,n,T)
sum=0;
for i=1:n
sum=sum+f_1(((b+a)/2)+((b-a)/2)*T(n,i)); // вычисление по формуле
end;
Int=((b-a)/n)*sum;
Результат:
T=[0 0 0 0 0 0 0;
-0.57753 0.57753 0 0 0 0 0;
-0.707107 0 0.707107 0 0 0 0;
-0.794654 -0.187592 0.187592 0.794654 0 0 0;
-0.832498 -0.374541 0 0.374541 0.832498 0 0;
-0.866247 -0.422519 -0.266635 0.266635 0.422519 0.866247 0;
-0.883826 -0.529657 -0.323912 0 0.323912 0.529657 0.883826];
>> Chebushev(1,3.3,6,T)
ans =
1.4609
>> fplot('f_1(x)',[1,3.3]); // рисуем график
>> grid on;
function Int=Gauss_Integr(a,b,n,T,A)
sum=0;
for i=1:n
sum=sum+A(n,i)*(f_1(((b+a)/2)+((b-a)/2)*T(n,i))); // вычисление по формуле
end;
Int=((b-a)/2)*sum;
Результат:
T=[0 0 0 0 0;
0 0 0 0 0;
-0.774597 0 0.774597 0 0;
-0.861136 -0.339981 0.339981 0.861136 0;
-0.906180 -0.538469 0 0.538469 0.906180];
>> A=[2 0 0 0 0;
0 0 0 0 0;
5/9 8/9 5/9 0 0;
0.347855 0.652145 0.652145 0.347855 0;
0.236927 0.478629 0.568889 0.478629 0.236927];
>> Gauss_Integr(1,3.3,5,T,A)
ans =
Прикладная задача Численное интегрирование является основным методом, используемым инженерами и научными работниками для получения приближенного ответа при вычислении определенных интегралов, которые нельзя вычислить аналитически. В области статической термодинамики модель Дебье для вычисления теплоемкости твердого тела содержит следующую функцию: |
Так как это не аналитическое выражение для F(x), для получения приближенного значения следует использовать численное интегрирование. Например, значение F(5) равно площади под кривой y=f(t)= /( ) для . Численное приближение для F(5) имеет вид: |
Используя формулу Чебышева для n=5 , получили такой результат:
I:=4.895169 |
Сравнивая со значением, полученным с помощью встроенной функции, имеем погрешность:
∆=0.00472315
Используя формулу Чебышева для n=5 , получили такой результат:
I:=4.895169 |
Сравнивая со значением, полученным с помощью встроенной функции, имеем погрешность:
∆=0.00472315