Вход

Интерполяция функций (Численные методы, Delphi)

Рекомендуемая категория для самостоятельной подготовки:
Контрольная работа*
Код 301156
Дата создания 15 декабря 2013
Страниц 16
Мы сможем обработать ваш заказ (!) 25 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
850руб.
КУПИТЬ

Описание

Лабораторная работа по предмету:
"Численные методы и оптимизация".
Отчет + программа на Delphi позволяющая интерполировать либо экстраполировать функции при помощи итерационного полинома Ньютона. ...

Содержание

1. Постановка задачи
2. Численное решение
3. Программная реализация
3.1. Описание процедур и функций
3.2. Блок-схемы основных подпрограмм
3.3. Текст программы
Вывод

Введение

Функция заданна таблично
2,211 9,124537
2,218 9,188935
2,225 9,253483
2,232 9,318484
2,239 9,383943
2,246 9,449861
2,253 9,516242
2,260 9,583089
2,267 9,650406
2,274 9,718196

С помощью интерполяционного полинома в форме:
а) Ньютона,
б) Лагранжа
необходимо:
1. Вычислить 1) f (2,265);
2) f (2,205).
2. Найти x, при котором y = 9,445566.
3. Оценить погрешность приближения функции интерполяционным полиномом Pn(x) (n=1,2,…,8) в точке x = 2,265.
4. Выбрать оптимальные узлы интерполяции.

Фрагмент работы для ознакомления

 
 
 
 
 
0,06779
 
 
 
 
 
 
 
 
2,274
9,7182
 
 
 
 
 
 
 
 
 
Так как x = 2,265; x0 =2,260 ; h =0,007, то
Интерполяционный полином Ньютона для интерполяции вперед будет
иметь следующий вид:
Интерполяционный полином Лагранжа
При n = 1 интерполяционный полином Лагранжа будет иметь следующий вид:
Экстраполяция функции
(2,205).
Интерполяционный полином Ньютона
Так как x = 2,205; x0 = 2,211; h = 0,007, то
Интерполяционный полином Лагранжа
Обратная интерполяция
y = 9,445566.
Составляем таблицу приближений параметра q

q
E
0,938137
1
0,935035
0,003102
2
0,935056
2,05E-05

Оценка погрешности приближения функции
интерполяционным полиномом
x = 2,265.
n
∆n+1y
Rn(x)
1
0,06779
4,8274E-05
2
0,000473
3,09E-05
3
0,000303
3,06E-07
4
3E-06
3,00054E-05
5
0,000294
6,12355E-07
6
6E-06
2,81683E-05
7
0,000276
-2,756E-06
8
-2,7E-05
Выбор оптимальных узлов интерполяции
n
xi
2,211388
1
2,214433
2
2,220226
3
2,228199
4
2,237572
5
2,247428
6
2,256801
7
2,264774
8
2,270567
9
2,273612
3. ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
3.1 Описание процедур и функций
Разработанное программное средство позволяет интерполировать либо экстраполировать функции при помощи итерационного полинома Ньютона. Входными данными являются координаты точек, полученные эмпирическим путем, и значение аргумента, значение функции при котором необходимо узнать.
Функция function niuton(x:real):real вычисляет значение первого полинома Ньютона. Возвращаемое функцией значение выводится на экран.
function obrniuton(x:real):real вычисляет значение второго полинома Ньютона. Возвращаемое функцией значение выводится на экран.
Для построения графика считываются значения функции из таблицы и используются значения, полученные с помощью интерполяционного полинома Ньютона.
3.2 Блок-схемы основных подпрограмм
Рис1. Блок-схема функции niuton

Рис2. Блок-схема функции obrniuton
3.3 Текст программы
unit interp;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Grids, ExtCtrls, Buttons, Series, TeEngine,
BubbleCh, TeeProcs, Chart;
type
matr=array[1..50,1..50] of real;
otvet=array[1..150] of real;
tabl=array [1..100,1..2] of double;
TForm1 = class(TForm)
StringGrid1: TStringGrid;
RadioGroup1: TRadioGroup;
BitBtn1: TBitBtn;
Chart1: TChart;
Button1: TButton;
Series1: TBubbleSeries;
Series2: TLineSeries;
StaticText1: TStaticText;
Bevel1: TBevel;
Bevel2: TBevel;
StaticText2: TStaticText;
StaticText3: TStaticText;
Edit4: TEdit;
StaticText4: TStaticText;
Edit5: TEdit;
StaticText5: TStaticText;
StaticText6: TStaticText;
Label1: TLabel;
Edit3: TEdit;
Edit2: TEdit;
Label2: TLabel;
Series3: TBubbleSeries;
procedure inptfunc;
procedure strtcalc(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
mass:matr;
func:tabl;
n:integer;
pogr:real;
implementation
{$R *.dfm}
procedure tform1.inptfunc;
var
i:integer;
begin
series1.Clear;
for i:=1 to n do
begin
func[i,1]:=strtofloat(form1.StringGrid1.Cells[0,i-1]);
func[i,2]:=strtofloat(form1.StringGrid1.Cells[1,i-1]);
Series1.addBubble(func[i,1],func[i,2],0.1,'',clred);
end;
end;
function factor(r:integer):integer;
begin
if r=1 then result:=1;
if r>1 then result:=r*factor(r-1);
end;
function obrrazn(por:integer):real;
var
mas:array [1..100,1..100] of real;
i,j:integer;
begin
for i:=2 to por do
begin
if i=2 then for j:=1 to n-1 do
begin
mas[j,i]:=(func[j+1,2]-func[j,2])/(func[j+1,1]-func[j,1]);
end;
if i>2 then
begin
for j:=1 to por-i+1 do
begin
mas[j,i]:=(mas[j+1,i-1]-mas[j,i-1])/(func[j+i-1,1]-func[j,1])
end;
end;
end;
result:=mas[n-por,por]
end;
function obrniuton(x:real):real;
var
i:integer;
poli,mult,chis:real;
begin
pogr:=0;
poli:=func[n,2];
mult:=1;
for i:=n downto 2 do
begin
mult:=mult*(x-func[i,1]);
poli:=poli+(mult*obrrazn(n-i+2));
end;
obrniuton:=poli;
chis:=1;
for i:=1 to n-1 do
begin
chis:=chis*(x-func[i,1]);
end;
pogr:=(abs(obrrazn(n-1))/factor(n))*abs(chis);
end;
function razn(por:integer):real;
var
mas:array [1..100,1..100] of real;
i,j:integer;
begin
for i:=2 to por do
begin
if i=2 then for j:=1 to n-1 do
begin
mas[j,i]:=(func[j+1,2]-func[j,2])/(func[j+1,1]-func[j,1]);
end;
if i>2 then
begin
for j:=1 to por-i+1 do
begin
mas[j,i]:=(mas[j+1,i-1]-mas[j,i-1])/(func[j+i-1,1]-func[j,1])
end;
end;
end;
result:=mas[1,por]
end;
function niuton(x:real):real;
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00365
© Рефератбанк, 2002 - 2024