КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Краткая теория. По специальным главам информатикиЛАБОРАТОРНАЯ РАБОТА №2 По специальным главам информатики
Нахождение полинома 2 степени методом сплайн интерполяции
Автор отчета (подпись) 09.01.2012 Бобков А.В.
Обозначение отчета ЛР-02069964-210700-03-12
Преподаватель (подпись) 09.01.2012 Маняев И.В.
Саранск 2012 Цель работы: изучение метода Спалйн-интерполяции для нахождения полинома 2 степени. Краткая теория Сплайн-интерполяция. В основе сплайн-интерполяции лежит следующий принцип. Интервал интерполяции разбивается на небольшие отрезки, на каждом из которых функция задается полиномом третьей степени. Коэффициенты полинома подбираются таким образом, чтобы выполнялись определенные условия (какие именно, зависит от способа интерполяции). Общие для всех типов сплайнов третьего порядка требования - непрерывность функции и, разумеется, прохождение через предписанные ей точки. Дополнительными требованиями могут быть линейность функции между узлами, непрерывность высших производных и т.д. Основными достоинствами сплайн-интерполяции являются её устойчивость и малая трудоемкость. Системы линейных уравнений, которые требуется решать для построения сплайнов, очень хорошо обусловлены, что позволяет получать коэффициенты полиномов с высокой точностью. В результате даже про очень больших N вычислительная схема не теряет устойчивость. Формула для нахождения коэффициентов полинома 2 степени. a0=(1/(x1-x0))((y1-y0)/(x1-x0)-f`(x0)); b0=f`(x0)-2*a0*x0; c0=y0-f`(x0)*x0+a0*x02; … ai=(1/(xi+1-xi))((yi+1-yi)/(xi+1-xi)-βi); bi=βi-2*ai*xi; ci=yi-βi*xi+ai*xi2; где βi=2*ai-1*xi+bi-1; сам же полином находится по формуле Si(x)=ai*x2+bi*x+ci
1.Составим алгоритм программы для нахождения полинома 2 степени дифференциального уравнения dy/dx=2*(x^2+y) методом сплайн интерполяции. Листинг 1. Код программы для нахождения полинома 2 степени дифференциального уравнения. program zadaniespline2; uses crt; type massiv=array[0..20] of real; const x:array[0..12] of real=(0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1,1.1,1.2); x1=1; y:array[0..12] of real=(1,1.200,1.442,1.738,2.104,2.556,3.118,3.813,4.67,5.7374,7.046,8.6552,10.628); var a,b,c,beta:massiv; i,n:integer; s:real; begin n:=10;{n-порядок вычисления, s-полином, a,b,c,beta-коэффициенты} writeln(коэффициенты a b c'); beta[0]:=0; a[0]:=1/(x[1]-x[0])*((y[1]-y[0])/(x[1]-x[0])-beta[0]); b[0]:=beta[0]-2*a[0]*x[0]; c[0]:=y[0]-beta[0]*x[0]+a[0]*sqr(x[0]); for i:=1 to 10 do begin beta[i]:=2*a[i-1]*x[i]+b[i-1]; a[i]:=1/(x[i+1]-x[i])*((y[i+1]-y[i])/(x[i+1]-x[i])-beta[i]); b[i]:=beta[i]-2*a[i]*x[i]; c[i]:=y[i]-beta[i]*x[i]+a[i]*sqr(x[i]); writeln(' ',a[i]:2:4,' ', b[i]:2:4,' ',c[i]:2:4) end; s:=a[i]*x1*x1+b[i]*x1+c[i]; writeln('s=',a[i]:2:3,'*x^2',b[i]:2:3,'*x','+',c[i]:2:3); writeln('При x=1, полином 2 степени равен=',s); end. Полученный результат
Рисунок 1-полученные значения коэффициентов а,b,c 2. Составим Блок-схему алгоритма программы нахождения полинома 2 степени дифференциального уравнения методом сплайн-интерполяции
Рисунок 2-блок-схема сплайн-интерполяции Вывод: изучен метод нахождения полинома 2 степени дифференциального уравнения методом сплайн-интерполяции.
|