Интерполяционный полином Лагранжа
laquo;Результаты» должны получить число
9, в окошке «Погрешность вычисления» получаем погрешность, которая
появляется при вычислении функции данным методом (интерполяционным
полиномом Лагранжа). Можно взять и любое другое число.
Список использованных источников
1. Фокс Дж. Программное обеспечение и его разработка. М.:Мир, 1985. -
368 с.
2. Лисков Б., Гатэг Дж. Использование абстракций и спецификаций при
разработке программ: Пер. с англ. - М.: Мир, 1999. - 424 с.
2. Иванов А.Г., Карпова А.В., Семик В.П., Филинов Ю.Е. Объектно-
ориентированная среда программирования. Системы и средства информатики.
Вып.2. М.: Наука, 1991.
3. Программирование. Специальный выпуск по объектно-ориентированному
программированию. № 6, 1990.
4. Объектно-ориентированный подход технологии программирования/ Иванов
А.Г., Пятницкий А.А, Филинов Ю.Е. – СПб.: Питер, 2003. – 443 с.: ил.
5. Макаров А.А. Лукашин Ю.П. Объектно-ориентированный подход в
программировании. – М.: Финансы и статистика, 2000. – 356 с.
-----------------------
Left = 308
Top = 244
Width = 447
Height = 272
Caption = 'Интерполирование'
Color = clBtnFace
Menu = MainMenu1
Position = poScreenCenter
Visible = True
PixelsPerInch = 96
TextHeight = 13
Form 1
N2Click
N4Click
Button1Click
Edit1KeyPress
Left = 16
Top = 152
Width = 299
Height = 13
Cursor = crArrow
Caption = 'Нажмите кнопку для пеpехода на следующий шаг'
Label 1
Left = 16
Top = 8
Width = 425
Height = 81
Cursor = crArrow
BorderStyle = bsNone
Lines.Strings = ('Данная программа предназначена для расчета значения
функций, заданных таблично. По введенному значению аргумента выводится
значение функции. По точкам, которые Вы введете, будет построен
интерполяционный полином и с его помощью найдено значение функции’)
ParentColor = True
ParentFont = False
ReadOnly = True
TabOrder = 1
Memo 1
Tag = 2
Left = 16
Top = 120
Width = 65
Height = 21
TabOrder = 2
Edit 1
OnKeyPress = Edit1KeyPress
Left = 16
Top = 88
Width = 409
Height = 33
Cursor = crArrow
BorderStyle = bsNone
DragCursor = crDefault
Lines.Strings = ('Введите количество точек, из которых будет состоять
полином: (не меньше 4 и не больше 30')
ParentColor = True
ParentFont = False
ReadOnly = True
TabOrder = 0
Memo 2
N1
Caption = 'Файл'
N4
Caption = 'Выход'
MainMenu 1
BiDiMode = bdRightToLeft
ParentBiDiMode = False
Left = 400
Top = 184
OnClick = N4Click
N2
Caption = ‘О программе’
OnClick = N2Click
AboutBox
Button 1
Left = 16
Top = 177
Width = 105
Height = 33
Caption = 'ДАЛЕЕ'
TabOrder = 3
OnClick = Button1Click
Form 2
Left = 308
Top = 244
Width = 447
Height = 272
Caption = 'Интерполирование'
Color = clBtnFace
Menu = MainMenu1
Position = poScreenCenter
Visible = True
PixelsPerInch = 96
TextHeight = 13
Form 2
N2Click
N4Click
Button1Click
Button2Click
StringGrid1KeyPress
Label 3
Left = 16
Top = 8
Width = 169
Height = 13
Caption = 'В ячейки введите значения:'
ParentFont = False
Label 5
Left = 16
Top = 136
Width = 299
Height = 13
Caption = 'Нажмите кнопку для перехода на следующий шаг' ParentFont =
False
Label 1
Left = 16
Top = 152
Width = 228
Height = 13
Caption = 'или для возврата на предыдущий шаг'
ParentFont = False
Button 1
Left = 152
Top = 177
Width = 105
Height = 32
Caption = 'ДАЛЕЕ'
ParentFont = False
TabOrder = 0
OnClick = Button1OnClick
Form 3
N1
Caption = 'Файл'
N4
Caption = 'Выход'
MainMenu 1
BiDiMode = bdRightToLeft
ParentBiDiMode = False
Left = 400
Top = 184
OnClick = N4Click
N2
Caption = ‘О программе’
OnClick = N2Click
AboutBox
Button 2
Left = 16
Top = 177
Width = 105
Height = 32
Caption = 'НАЗАД'
ParentFont = False
TabOrder = 2
OnClick = Button2OnClick
Form 1
StringGrid
1???????????????????????????????????????????????????????????????????????????
??????????????
Tag = 5
Left = 16
Top = 40
Width = 393
Height = 81
Color = clCaptionText
DefaultColWidth = 55
RowCount = 2
FixedRows = 0
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine,
goRangeSelect, goEditing, goTabs]
ParentFont = False
ScrollBars = ssHorizontal
TabOrder = 1
OnKeyPress = StringGrid1KeyPress
Left = 308
Top = 244
Width = 447
Height = 272
Caption = 'Интерполирование'
Color = clBtnFace
Menu = MainMenu1
Position = poScreenCenter
Visible = True
PixelsPerInch = 96
TextHeight = 13
Form 3
N7Click
N4Click
Button1Click
Button2Click
Button3Click
Edit1KeyPress
Label 2
Left = 16
Top = 82
Width = 141
Height = 13
Caption = 'Полученный результат:'
ParentFont = False
Label 1
Left = 200
Top = 26
Width = 17
Height = 13
Caption = 'X='
ParentFont = False
Label 3
Left = 200
Top = 84
Width = 16
Height = 13
Caption = 'Y='
ParentFont = False
Label 4
Left = 16
Top = 128
Width = 159
Height = 13
Caption = 'Погрешность вычисления:'
ParentFont = False
Label 5
Left = 184
Top = 128
Width = 38
Height = 13
Caption = 'Delta='
ParentFont = False
Edit 1
Tag = 5
Left = 224
Top = 24
Width = 121
Height = 21
TabOrder = 0
OnKeyPress = Edit1KeyPress
Memo 1
Left = 16
Top = 8
Width = 169
Height = 41
BorderStyle = bsNone
Color = clBtnFace
Lines.Strings = ('Введите значение аргумента, функцию которого необходимо
найти:')
ParentFont = False
ReadOnly = True
TabOrder = 1
Edit 3
Left = 224
Top = 80
Width = 121
Height = 21
ParentColor = True
ReadOnly = True
TabOrder = 2
Edit 2
Left = 224
Top = 126
Width = 121
Height = 21
Color = clBtnFace
ParentFont = False
ReadOnly = True
TabOrder = 6
Button 1
Left = 360
Top = 22
Width = 73
Height = 25
Caption = 'Вычислить'
ParentFont = False
TabOrder = 3
OnClick = Button1Click
procedure TForm3.Button1Click(Sender: TObject);
Button 2
Left = 16
Top = 176
Width = 105
Height = 33
Caption = 'НАЗАД'
ParentFont = False
TabOrder = 4
OnClick = Button2Click
Form 2
Button 3
Left = 152
Top = 177
Width = 105
Height = 32
Caption = 'ВЫХОД'
ParentFont = False
TabOrder = 5
OnClick = Button3Click
Close
N1
Caption = 'Файл'
N4
Caption = 'Выход'
MainMenu 1
BiDiMode = bdRightToLeft
ParentBiDiMode = False
Left = 400
Top = 184
OnClick = N4Click
N2
Caption = ‘О программе’
OnClick = N2Click
AboutBox
Function Ln (k: Integer): Real;
Proizved1, Proizved2: Real;
i:=1;
Proizved1:=1;
Proizved2:=1;
If k<>1
да
Proizved1:=Proizved1*(t - x[I]);
Proizved2:=Proizved2*(x[k] – x[i]);
нет
End;
Function Pol ( ): Real;
If i>A
да
Ln:=Proizved1/Proizved2;
Sum: Real;
i: Integer;
i:=1;
Sum:=0;
If iA
нет
да
Pol:=Sum;
End;
Function Delta ( ): Real;
Sum: Real;
i: Integer;
i:=1;
Sum:=0;
If i < A
Sum:=ABS (Ln (i) )*0.0002 + Sum;
i:=i+1;
If i > A
да
нет
Delta:=Sum;
End;
X[i]:=StrToFloat(Form2.StringGrid1.Cells[i,0];
Y[i]:=StrToFloat(Form2.StringGrid1.Cells[i,1];
Procedure Button1Click (Sender: TObject);
i: Integer;
S: Real;
A:=StrToInt(Form1.Edit1.Text);
S:=0;
P:=Pol ( );
Dl:=Delta ( );
For i:=1 to A
For I:=1 to A
S:=S+Ln (i);
ShowMessage ( FloatToStr (S) );
Form3.Edit3.Text:=FloatToStr (P);
Form3.Edit2.Text:=FloatToStr (Dl);
End;
| | скачать работу |
Интерполяционный полином Лагранжа |