Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Интерполяционный полином Лагранжа

ниями о программе связан  с  модулями
1, 2 и 3 по данным, все три модуля вызывают четвертый.



    Заключение
    Во  время  выполнения  курсовой  работы  был   разработан   программное
средство, вычисляющее значение  функции  по  заданному  значению  аргумента,
выполняющегося  с  помощью  средств  вычислительной  математики.  В   основе
решения задачи, как было описано  во  второй  части  курсовой  работы  лежит
вычисление интерполяционным полиномом Лагранжа. Было создано четыре  модуля,
три из которых являются активными,  четвертый  («О  программе»)  может  быть
вызван с любого из трех главных  модулей.  Три  основных  модуля  предлагают
поэтапное выполнение задачи; в первом модуле вводятся начальные  данные,  во
втором  заполняется  таблица  со  значениями  функций  и   аргументов   (это
промежуточные точки, на основании  которых  и  строится  полином  Лагранжа).
Третий модуль является основным, использующим данные из второго  и  третьего
модуля  для  вычислительного  процесса.  Интерфейс  программы  совместим   с
Windows-интерфейсом   благодаря   тому,    что    программа,    в    которой
разрабатывалась  курсовая  работа,   –   Delphi7   –   предоставляет   такую
возможность и поддерживает именно Windows-интерфейс.  Все  пункты  курсового
задания  были  выполнены,  разработанное  программное   средство   выполняет
поставленную перед ним задачу.



    Приложение 1. Исходный код программного средства:

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes,  Graphics,  Controls,
Forms,
      Dialogs, StdCtrls, Menus;

    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Edit1: TEdit;
        Button1: TButton;
        Memo2: TMemo;
        Label1: TLabel;
        MainMenu1: TMainMenu;
        N1: TMenuItem;
        N4: TMenuItem;
        N2: TMenuItem;
        procedure Button1Click(Sender: TObject);
        procedure Edit1KeyPress(Sender: TObject; var Key: Char);
        procedure N2Click(Sender: TObject);
        procedure N4Click(Sender: TObject);

      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form1: TForm1;
      A, k :integer;

    implementation

    uses Unit2, unit6, Unit3;
    {$R *.dfm}

    procedure TForm1.N2Click(Sender: TObject);
    begin
    AboutBox.ShowModal;
    end;

    procedure TForm1.N4Click(Sender: TObject);
    begin
    close;
    end;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     k:=StrToInt(edit1.Text);
     if (k<=3) or (k>30)
     then ShowMessage('Не верно задано значение')
     else
      begin
     k:=StrToInt(edit1.Text);
     Form2.StringGrid1.ColCount:=(k+1);
     Form2.visible:=true;
     Form1.visible:=false;
      end;
      Form2.StringGrid1.Cells[0,0]:='X';
      Form2.StringGrid1.Cells[0,1]:='Y';
    end;

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['0'..'9']) then key:=#0;
    end;

    end.

                                          _

    unit Unit2;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes,  Graphics,  Controls,
Forms,
      Dialogs, StdCtrls, Grids, Menus;

    type
      TForm2 = class(TForm)
        Label3: TLabel;
        Button1: TButton;
        Label5: TLabel;
        MainMenu1: TMainMenu;
        N1: TMenuItem;
        N4: TMenuItem;
        N2: TMenuItem;
        StringGrid1: TStringGrid;
        Label1: TLabel;
        Button2: TButton;
        procedure Button1OnClick(Sender: TObject);
        procedure Button2OnClick(Sender: TObject);
        procedure N4Click(Sender: TObject);
        procedure N2Click(Sender: TObject);
        procedure StringGrid1KeyPress(Sender: TObject; var Key: Char);

      private
       { Private declarations }
      public
        { Public declarations }
      end;

    var
      Form2: TForm2;
      I, J: Integer;

    implementation

    uses Unit1, Unit6, Unit3;

    {$R *.dfm}

    procedure TForm2.N4Click(Sender: TObject);
    begin
    close;
    Form1.Close;
    end;

    procedure TForm2.Button1OnClick(Sender: TObject);
    begin
    Form3.visible:=true;
    Form2.visible:=false;
    end;

    procedure TForm2.Button2OnClick(Sender: TObject);
    begin
    Form1.visible:=true;
    Form2.visible:=false;
    end;

    procedure TForm2.N2Click(Sender: TObject);
    begin
    AboutBox.ShowModal;
    end;

    procedure TForm2.StringGrid1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['0'..'9', '.']) then key:=#0;
    end;

    end.


    unit unit3;

    interface

    uses
      Windows, Math, Messages, SysUtils, Variants,
      Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Menus, ComCtrls;

    type
      TForm3 = class(TForm)
        Label2: TLabel;
        Edit1: TEdit;
        Memo1: TMemo;
        Edit3: TEdit;
        Label1: TLabel;
        MainMenu1: TMainMenu;
        N1: TMenuItem;
        N4: TMenuItem;
        N7: TMenuItem;
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        Edit2: TEdit;
        procedure Edit1KeyPress(Sender: TObject; var Key: Char );
        procedure N4Click(Sender: TObject);
        procedure N7Click(Sender: TObject);
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);

      private
        { Private declarations tion }
      public
        { Public declarations }
      end;

    var
     Form3: TForm3;
     i, j, A, k: Integer;
     Y, X: array [1..30] of Extended;
     t, P, Dl: Real;

    implementation

    uses Unit1, Unit2, Unit6;

    {$R *.dfm}

    procedure TForm3.Edit1KeyPress(Sender:  TObject;  var  Key:  Char);  //
Integer
    begin
    if not(key in ['0'..'9']) then  Key:=#0;
    end;

    procedure TForm3.N4Click(Sender: TObject);
    begin
    Close;
    end;

    procedure TForm3.N7Click(Sender: TObject);
    begin
    AboutBox.ShowModal;
    end;

    function Ln(k: integer): Real;
     var Proizved1, Proizved2: Real;
    begin
     t:=StrToFloat(Form3.Edit1.Text);
     i:=1;
     Proizved1:=1;
     Proizved2:=1;
     repeat
     if k<>i then begin
     Proizved1:=Proizved1*(t-x[i]);
     Proizved2:=Proizved2*(x[k]-x[i]);
     end;
     i:=i+1;
     until i>A;
     Ln:=Proizved1/Proizved2;
     end;

    function Pol( ): Real;
     var
     Sum: Real;
     i: Integer;
    begin
     i:=1;
     Sum:=0;
     repeat
     Sum:=Ln(i)*Y[i]+Sum;
     i:=i+1;
     until i>A;
     Pol:=Sum;
    end;

    function Delta( ): Real;
     var
     Sum: Real;
     i: Integer;
    begin
     i:=1;
     Sum:=0;
     repeat
     Sum:=ABS(Ln(i))*0.0002+Sum;
     i:=i+1;
     until i>A;
     Delta:=Sum;
    end;

    procedure TForm3.Button1Click(Sender: TObject);
     var
     i: Integer;
     S: real;
     begin
     A:=StrToInt(Form1.Edit1.Text);
     S:=0;
     for i:=1  to A do begin
     X[i]:=StrToFloat(Form2.StringGrid1.Cells[i,0]);
     Y[i]:=StrToFloat(Form2.StringGrid1.Cells[i,1]);
     end;
     P:=Pol();
     Dl:=Delta();
     for i:=1 to A do S:=S+Ln(i);
     ShowMessage(FloatToStr(S));
     Form3.Edit3.Text:=FloatToStr(P);
     Form3.Edit2.Text:=FloatToStr(Dl);
     end;

    procedure TForm3.Button2Click(Sender: TObject);
    begin
    Form3.visible:=false;
    Form2.visible:=true;
    end;

    procedure TForm3.Button3Click(Sender: TObject);
    begin
    Close;
    Form2.Close;
    Form1.Close;
    end;

    end.


    unit Unit6;  //AboutBox

    interface

    uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
      Buttons, ExtCtrls;

    type
      TAboutBox = class(TForm)
        Panel1: TPanel;
        ProductName: TLabel;
        Version: TLabel;
        Copyright: TLabel;
        Comments: TLabel;
        Image1: TImage;
        BitBtn1: TBitBtn;
      private
        { Private declarations }
      public
        { Public declarations }
      end;

    var
      AboutBox: TAboutBox;

    implementation
    {$R *.dfm}

    end.



Приложение 2. Блок-схема программного средства:



Приложение 3. Блок-схема алгоритма вычисления (третий модуль)



Приложение 4. Тесты – наборы проверочных данных – для проверки  правильности
работы программы.
    Первый проверочный набор.
В первом открывшемся окне, в пустое поле вводим цифру 6.
Во  втором  открывшемся  окне,  представленную  таблицу  заполняем  согласно
представленным ниже данным.
|X     |1     |2     |3     |4     |5     |6     |
|Y     |7     |8     |9     |7     |8     |9     |


В третьем окне вводим: Х=13, и должны получить результат Y= –10 442.
Эти результаты получились из приведенных ниже расчетов:
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic]
[pic][pic]
Результатом должно стать число – 10 442.
    Второй проверочный набор.
Второй проверочный набор является  более  простым  вариантом,  не  требующим
математического  подтверждения.  Он  представляет  собой  аргументы   и   их
квадраты.
    В первом окне вводим число 4.
    Во втором вводим в строчку Х числа 1, 2, 4, 5, а в строчку Y  числа  1,
4,  16,  25,  являющиеся  квадратами  этих  аргументов.  Этот  набор  данных
представлен в таблице ниже:
|X     |1     |2     |4     |5     |
|Y     |1     |4     |16    |25    |


    Тогда в  третьем  окошке  вводим  любое  число,  квадрат  которого  Вам
известен, например, число 3, и в окошке &
Пред.67
скачать работу

Интерполяционный полином Лагранжа

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ