Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Роберт.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
338.56 Кб
Скачать

5. Руководство пользователя

После запуска программы на вашем экране появилось окно, на котором есть область для ввода функции, поля для выбора отрезка [a;b] в переделах которого находятся точки x0 ,…, xn,поле для ввода переменной x и поле для ввода числа точек интерполяции.

· Введите функцию, с помощью которой будет вычисляться значение функции для каждой точки xi. Введите границы отрезка [a;b] в переделах которого находятся точки x0 ,…, xn,что позволяет повысить точность итерации. Далее введите значение переменной x и число точек интерполяции.

· Нажмите кнопку “Вычислить интерполяционный полином”.

· В области результат появится значение интерполяционного полинома.

· Для выхода из программы нажмите в меню “Файл” затем “выход”.

· Для получения справки по использованию программы или сведений о программе зайдите в меню “Помощь”.

· Для просмотра основного кода программы зайдите в меню “Текст программы”

6. Тестирование

Запускаем программу и заполняем пустые поля.

. Жмем кнопку ”Вычислить интерполяционный полином” и в области “Результат” получаем значение интерполяционного полинома.

(P.S. Более подробная информация по использованию программы находится в программе в разделе “Помощь - справка”)

Математическое решение

1) По методу Чебышева найдем 3 наиболее подходящих значения xi на интервале [1;2].

Следовательно

В данном случае , ,

Получим все функции в зависимости от переменной xi.

, ,

2) Найдем значение интерполяционного полином Лагранжа.

В ходе решения интерполирующего полинома было получено значение 18, что соответствует результату выполнения программы.

Приложение

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Edit1: TEdit;

Button5: TButton;

Button6: TButton;

Button7: TButton;

Button8: TButton;

Button9: TButton;

Button10: TButton;

Button11: TButton;

Button12: TButton;

Button13: TButton;

Button14: TButton;

Button15: TButton;

Button16: TButton;

Button17: TButton;

Button18: TButton;

Button19: TButton;

Button20: TButton;

Button21: TButton;

Button22: TButton;

Button23: TButton;

Button24: TButton;

Button25: TButton;

Button26: TButton;

Button27: TButton;

Button28: TButton;

procedure Button1Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure Button7Click(Sender: TObject);

procedure Button8Click(Sender: TObject);

procedure Button9Click(Sender: TObject);

procedure Button10Click(Sender: TObject);

procedure Button11Click(Sender: TObject);

procedure Button12Click(Sender: TObject);

procedure Button13Click(Sender: TObject);

procedure Button15Click(Sender: TObject);

procedure Button14Click(Sender: TObject);

procedure Button16Click(Sender: TObject);

procedure Button17Click(Sender: TObject);

procedure Button18Click(Sender: TObject);

procedure Button19Click(Sender: TObject);

procedure Button20Click(Sender: TObject);

procedure Button21Click(Sender: TObject);

procedure Button22Click(Sender: TObject);

procedure Button23Click(Sender: TObject);

procedure Button24Click(Sender: TObject);

procedure Button25Click(Sender: TObject);

procedure Button26Click(Sender: TObject);

procedure Button27Click(Sender: TObject);

procedure Button28Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

oper:byte;

a:real;

b:real;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

a:=strtofloat(edit1.Text);

edit1.Text:='';

oper:=1;

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

a:=strtofloat(edit1.Text);

Edit1.Text:='';

oper:=2;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

a:=strtofloat(edit1.Text);

edit1.Text:='';

oper:=3;

end;

procedure TForm1.Button4Click(Sender: TObject);

begin

a:=strtofloat(edit1.Text);

edit1.Text:='';

oper:=4;

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(1);

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(2);

end;

procedure TForm1.Button7Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(3);

end;

procedure TForm1.Button8Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(4);

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(5);

end;

procedure TForm1.Button10Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(6);

end;

procedure TForm1.Button11Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(7);

end;

procedure TForm1.Button12Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(8);

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(9);

end;

procedure TForm1.Button15Click(Sender: TObject);

begin

edit1.Text:=edit1.Text+inttostr(0);

end;

procedure TForm1.Button14Click(Sender: TObject);

var r:real;

begin

b:=strtofloat(edit1.Text);

if oper=1 then

begin

r:=a*b;

Edit1.Text:=floattostr(r);

end;

if oper=2 then

begin

if (b<>0) then

begin r:=a/b; Edit1.Text:=floattostr(r); end else

ShowMessage('На 0 делить нельзя');

end;

if oper=3 then

begin

r:=a+b;

Edit1.Text:=floattostr(r);

end;

if oper=4 then

begin

r:=a-b;

Edit1.Text:=floattostr(r);

end;

if oper=5 then

begin

r:=exp(b*ln(a));

Edit1.Text:=floattostr(r);

end;

end;

procedure TForm1.Button16Click(Sender: TObject);

begin

edit1.Text:='';

end;

procedure TForm1.Button17Click(Sender: TObject);

var r:real; f:real;

begin

a:=strtofloat(edit1.Text);

f:=a*3.14159265359/180 ;

r:=sin(f);

Edit1.Text:=floattostr(r);

end;

procedure TForm1.Button18Click(Sender: TObject);

var r:real; f:real;

begin

a:=strtofloat(edit1.Text);

f:=a*3.14159265359/180 ;

r:=cos(f);

Edit1.Text:=floattostr(r);

end;

procedure TForm1.Button19Click(Sender: TObject);

var r:real; f:real; n:longint;

begin

a:=strtofloat(edit1.Text);

f:=a*3.14159265359/180 ;

if (f<>180/2+180*n) then

begin r:=sin(f)/cos(f); Edit1.Text:=floattostr(r); end else

ShowMessage('Невозможно определить');

end;

procedure TForm1.Button20Click(Sender: TObject);

var r:real; f:real; n:longint;

begin

a:=strtofloat(edit1.Text);

f:=a*3.14159265359/180 ;

if (f<>180*n) then

begin r:=cos(f)/sin(f); Edit1.Text:=floattostr(r); end else

ShowMessage('Невозможно определить');

end;

procedure TForm1.Button21Click(Sender: TObject);

Var i:integer; factorial:longint; n:byte;

begin

n:=strToInt (edit1.Text);

factorial:=1;

For i:=1 to n do

Factorial:=factorial*i;

edit1.Text:=floattostr(factorial);

end;

procedure TForm1.Button22Click(Sender: TObject);

var r:real;

begin

a:=strtofloat(edit1.Text);

r:=a*a;

edit1.Text:=floattostr(r);

end;

procedure TForm1.Button23Click(Sender: TObject);

begin

b:=3.14159265359;

edit1.Text:=floattostr(b);

end;

procedure TForm1.Button24Click(Sender: TObject);

var r:real;

begin

a:=strtofloat(edit1.Text);

r:=a*a*a;

edit1.Text:=floattostr(r);

end;

procedure TForm1.Button25Click(Sender: TObject);

begin

a:=strtofloat(edit1.Text);

edit1.Text:='';

oper:=5;

end;

procedure TForm1.Button26Click(Sender: TObject);

var r:real;

begin

a:=strtofloat(edit1.Text);

if a>=0 then begin

r:=sqrt(a);

edit1.Text:=floattostr(r);

end else begin

ShowMessage('Корень из отрицательного числа извлечь нельзя');

end;

end;

procedure TForm1.Button27Click(Sender: TObject);

var r:real;

begin

a:=strtofloat(edit1.Text);

if a>0 then begin

r:=ln(a); edit1.Text:=floattostr(r)end else

ShowMessage('ln при x<=0 неопределён');

end;

procedure TForm1.Button28Click(Sender: TObject);

var r:real;

begin

a:=strtofloat(edit1.Text);

if (a<>0) then begin

r:=1/a; Edit1.Text:=floattostr(r); end else

ShowMessage('На 0 делить нельзя');

end;

end.

Заключение

математический численный интерполяционный полином \

В курсовой работе я рассмотрел разработку и реализацию численных алгоритмов. Реализовал алгоритм помогающий найти полиномиальную интерполяцию методом Лагранжа. Данный алгоритм написан на языке Microsoft Visual C# 2005 Express Edition. Я использовал язык C# так как он очень удобный в обращение. Он превосходит по некоторым параметрам функциональности другой язык программирования, как Delphi, потому что:

-есть ряд функций облегчающих работу программиста такие как split и foreach;

-есть возможность ограничения доступа к полям в структурах, что не мало важно;

-есть составные операторы такие как +=,-=,*=, /=,++,--.

И, конечно, что не мало важно есть недостатки - в C# существуют некоторые функции, которые записываются в достаточно длинной форме, что имеет существенное значение при написание очень длинных программ.