Практичне заняття 3. Інтерполяція та апроксимація функції Рунге в системі matlab
MATLAB-програма інтерполяції та апроксимації функції Рунге.
%*********************************************************************
%****** Difficultys of interpolation of the Runge function ********
%*********************************************************************
clear;
xx=-5:0.01:5; yy=1./(1+xx.*xx);
for n=2:2:22;
x=-5:(5-(-5))/(n-1):5;
%x=-5:0.05:5;
y=1./(1+x.*x);
[p,s,mu]=polyfit(x,y,n-1);
pol=polyval(p,xx,[],mu); er=max(abs(yy-pol));
plot(xx,yy,’b’, xx,pol,’r’);
title(sprintf('n=%g er=%g',n,er));
pause;
end;
Після очищення робочої області MATLAB утворено вектор xx значень аргумента з малим кроком 0.01 і вектор yy відповідних значень функції Рунге для побудови графіків. Решта програми працює в циклі за індексом n, який задає порядок полінома, тобто степінь n-1.
У векторах x та y задані координати точок інтерполяції. Крок інтерполяції, тобто відстань між сусідніми елементами вектора x, обрано так, щоб кількість вузлів інтерполяції на одиницю перевищувала степінь полінома.
Функція polyfit будує інтерполюючий степеневий поліном, тобто обраховує коефіцієнти полінома і записує їх у вектор р. Для надійного розв’язування відповідної СЛАР функція polyfit обраховує також спеціальні нормуючі параметри та записує їх у вектори s і mu.
Далі функція polyval обчислює і записує у вектор pol значення полінома в усіх точках графіка, враховуючи нормуючі параметри. Обраховано також er – максимальне значення модуля абсолютної похибки інтерполяції.
Графіки функції Рунге та полінома, побудовані у графічному вікні функцією plot, надписуються біжучими значеннями порядку полінома n та похибки er за допомогою функції title (дивись рис. 7).
Функція polyfit здатна будувати як інтерполюючий, так і апроксимуючий степеневий поліном. Якщо кількість вузлів, тобто кількість елементів векторів x та y, перевищує значення n, то відповідний поліном буде апроксимуючим (дивись (3.4)). Оператор, який у тексті програми є коментарем, може задати кількість вузлів, що значно перевищує найбільший порядок полінома – 22. Отже, щоб програма будувала апроксимуючі поліноми, досить прибрати символ % на початку відповідного оператора.
- Інститут підприємництва та перспективних технологій Матвійчук я.М. Методи та алгоритми обчислень на еом
- Передмова
- Розділ 1. Обчислювальний метод та обчислювальний алгоритм
- Практичне заняття 1. Обрахунок степеневого поліному в системі matlab
- Практичне заняття 2. Розв’язування систем лінійних рівнянь у системі matlab
- Лабораторна робота 2. Розв’язування систем лінійних рівнянь у системі matlab
- Практичне заняття 3. Інтерполяція та апроксимація функції Рунге в системі matlab
- Лабораторна робота 3. Інтерполяція та апроксимація функції Рунге в системі matlab
- Практичне заняття 4. Сплайн-інтерполяція та сплайн-апроксимація в системі matlab.
- Лабораторна робота 4. Сплайн-інтерполяція та сплайн-апроксимація в системі matlab.
- Практичне заняття 5. Обчислення означених інтегралів у системі matlab
- Практичне заняття 6. Розв’язування нелінійних рівнянь у системі matlab
- Лабораторна робота 6. Розв’язування нелінійних рівнянь у системі matlab
- Практичне заняття 7. Оптимізація функції однієї змінної у системі matlab
- Лабораторна робота 7. Оптимізація функції однієї змінної у системі matlab
- Практичне заняття 8. Розв’язування задачі лінійного програмуван ня в системі matlab
- Практичне заняття 9. Розв’язування системи Ван-дер-Поля в системі matlab.