|
|||||||||||||||||||
|
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Інтерполяція сплайном
Мета роботи – вивчення та набуття навичок складання алгоритмів та написання програм сплайн-інтерполювання функції.
33.1. Загальні відомості Поліноміальна інтерполяція при всіх своїх перевагах має низку недоліків. Вона не забезпечує неперервності похідних функції та може давати істотні похибки при визначені значення функції між вузлами інтерполяції. Для екстраполювання функції такі поліноми мало придатні через великі помилки. Наведені недоліки відсутні у сплайн-функцій. Сплайн (splain) у перекладі з англійської —“гнучка лінійка”. Сплайн-функція трактується як крива, що збігається з профілем гнучкої лінійки, яка закріплена у заданих вузлових точках. Математично сплайн-функції являють собою спеціальні многочлени, що приймають у вузлах задані значення, та забезпечують неперервність похідних функції у цих точках. Найчастіше використовують кубічний сплайн (многочлен 3-го степеня), що забезпечує неперервіність першої та другої похідної, що зазвичай достатньо. Для визначення коефіціентів сплайну, сплайн-функція перетворюється у систему лінійних рівнянь, звідкіля й знаходяться шукані коефіціенти. Якщо позначити значення сплайн-функції у сусідніх вузлах
До складу системи входить n (за кількістю вузлових точок) подібних рівнянь. Приймаючи
де Наведена нижче програма для відповідної кількості значень х та у обчислює по вказаному алгоритму коефіцієнти нормального кубічного сплайну та за умови
при
Під час екстраполяції передбачається, що нахил лінійної ділянки
rem spline input "kil`kist vuzliv interpoljacii" h dim x(h), y(h), L(h), m(h), r(h), s(h) for i=1 to h input "x(i)" x(i) input "y(i)" y(i) next i d=x(2)-x(1) e=(y(2)-y(1))/d for k=2 to h-1 n=d f=e d=x(k+1)-x(k) e=(y(k+1)-y(k))/d L(k)=d/(d+n) r(k)=1-L(k) s(k)=6*(e-f)/(n+d) next k for k=2 to h-1 p=1/(r(k)*L(k-1)+2) L(k)=-L(k)*p s(k)=(s(k)-r(k)*s(k-1))*p next k m(h)=0 L(h-1)=s(h-1) m(h-1)=L(h-1) for k=h-2 to 1 step -1 L(k)=L(k)*L(k+1)+s(k) m(k)=L(k) next k for k=1 to h print "koeff" print using "##.#########"; m(k) next k rem interpolation and extrapolation 1 input "x=" x i=0 if x>x(h) then 4 if x<x(1) then 5 2 i=i+1 if x>x(i) then 2 j=i-1 d=x(i)-x(j) n=x-x(j) r=x(i)-x p=d*d/6 y=(m(j)*r^3+m(i)*n^3)/6/d y=y+((y(j)-m(j)*p)*r+(y(i)-m(i)*p)*n)/d 3 print "y(x)="y input "prodowzyty y/n" w$ if w$="y" or w$="Y" then 1 else end 4 d=x(h)-x(h-1) y=d*m(h-1)/6+(y(h)-y(h-1))/d y=y*(x-x(h))+y(h) goto 3 5 d=x(2)-x(1) y=-d*m(2)/6+(y(2)-y(1))/d y=y*(x-x(1))+y(1) goto 3 end
Сплайн-інтерполяція може виконуватись, як при постійному, так і при змінному кроці зміни х. Для забезпечення точності необхідно щоб відношення максимального кроку до мінімального не перевищувало 4. Інакше всі переваги сплайн-інтерполяції будуть зведені нанівець.
33.2. Послідовність виконання роботи 33.2.1. Увімкнути комп’ютер та завантажити ТВ. 33.2.2. Доопрацювати тест програми, що наведено у прикладі: додати необхідні коментарі до операторів введення та виведення даних, та коментарі, які характеризують певні ділянки програми за призначенням обчислень. Набрати текст програми, відлагодити її. У операторі виведення застосувати шаблон, для виведення відповідної, обмеженої кількості знаків у числі.
Запустити програму та зробити необхідні обчислення: ввести контрольні дані для перевірки роботи програми.
Контрольні значення: Коефіцієнти: -0.025384687 -0.018461492 -0.020769231 -0.018461468 -.0025384784 Обчислити значення функції при х = 5 та х =15 33.2.4. У разі успішного виконання програми перенести виведені результати до протоколу. 33.2.5. Переписати текст програми, що вірно працює, до протоколу.
33.3. Зміст протоколу. 33.3.1. Протокол лабораторної роботи має містити теоретичну частину в обсязі необхідному для виконання та захисту лабораторної роботи, блок-схему та текст програми інтерполяції сплайн-функцією. 33.3.2. Результати виконання лабораторної роботи повинні бути відображені відповідно до вимог п.33.2. 33.3.3. Студенти, що не мають належним чином оформлений протокол до виконання та захисту лабораторної роботи не допускаються.
x=? 5 y(x)= 4.750961780548096
x=? 15 y(x)= 6.771538257598877
Поиск по сайту: |
||||||||||||||||||
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.411 сек.) |