КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Интерполяционный полином Лагранжа
Для функции, заданной табл. 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) полиномом Лагранжа
Дата добавления: 2014-01-06; Просмотров: 576; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |