Помощь в написании студенческих работ
Антистрессовый сервис

Численное интегрирование

Курсовая Купить готовую Узнать стоимостьмоей работы

Chart1. SaveToBitmapFile ('Graph.bmp'); End; // case RadioGroup2. ItemIndex. Y:=fun2(a+(2*j+1)*h, Alpha, Beta); I0:=fun1(a, Alpha)+fun1(b, Alpha); I:=IntegralMiddleP (a, b, m, f); I:=IntegralRightP (a, b, m, f); Case RadioGroup2. ItemIndex of. Alpha:=StrToFloat (Edit1.Text); Y:=fun2(a+2*j*h, Alpha, Beta); ShowMessage ('Ошибка!'); ShowMessage ('Ошибка!'); If sqr (Alpha)≥1 then begin… Читать ещё >

Численное интегрирование (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • Задание на выполнение курсовой работы
  • 1. Теоретическая часть
    • 1. 1. Методы численного интегрирования
    • 1. 2. Программные продукты реализации численных методов
  • 2. Практическая часть
    • 2. 1. Вычисления в среде Mathematica
    • 2. 2. Алгоритмы численных методов интегрирования
    • 2. 3. Описание программы «Численное интегрирование»
    • 2. 4. Результаты работы программы «Численное интегрирование»
  • Заключение
  • Литература
  • Приложение 1 Листинг программы «Численное интегрирование»
  • Приложение 2 Скриншот программы «Численное интегрирование»

');

Result:=0;

Exit;

end;

end; // case

Form1.Series1.AddXY (x-h, y);

Result:=Result*h;

end;

// Метод трапеций

function IntegralT (a, b: real; m, f: integer): real;

var h, x, y: real;

j: integer;

begin

Form1.Series1.Stairs:=false;

h:=(b-a)/m;

x:=a+h;

case f of // Выбор функции

1: begin

Result:=(fun1(a, Alpha)+fun1(b, Alpha))/2;

Form1.Series1.AddXY (a, fun1(a, Alpha));

for j:=1 to m-1 do begin

y:=fun1(x, Alpha);

Form1.Series1.AddXY (x, y);

x:=x+h;

Result:=Result+y;

end;

Form1.Series1.AddXY (b, fun1(b, Alpha));

end;

2: begin

Result:=(fun2(a, Alpha, Beta)+fun2(b, Alpha, Beta))/2;

Form1.Series1.AddXY (a, fun2(a, Alpha, Beta));

for j:=1 to m-1 do begin

y:=fun2(x, Alpha, Beta);

Form1.Series1.AddXY (x, y);

x:=x+h;

Result:=Result+y;

end;

Form1.Series1.AddXY (b, fun2(b, Alpha, Beta));

end;

else begin

ShowMessage ('Ошибка!');

Result:=0;

Exit;

end;

end; // case

Result:=Result*h;

end;

// Метод Симпсона

function IntegralS (a, b: real; m, f: integer): real;

var h, x, y: real;

j, n: integer;

i0, i1, i2: real;

begin

Form1.Series1.Stairs:=false;

n:=2*m;

h:=(b-a)/n;

i2:=0;

case f of // Выбор функции

1: begin

i0:=fun1(a, Alpha)+fun1(b, Alpha);

i1:=fun1(a+h, Alpha);

Form1.Series1.AddXY (a, fun1(a, Alpha));

Form1.Series1.AddXY (a+h, fun1(a+h, Alpha));

for j:=1 to m-1 do begin

x:=a+2*j*h;

y:=fun1(x, Alpha);

i2:=i2+fun1(x, Alpha);

Form1.Series1.AddXY (x, y);

x:=a+(2*j+1)*h;

y:=fun1(x, Alpha);

i1:=i1+y;

Form1.Series1.AddXY (x, y);

end;

Form1.Series1.AddXY (b, fun1(b, Alpha));

end;

2: begin

i0:=fun2(a, Alpha, Beta)+fun2(b, Alpha, Beta);

i1:=fun2(a+h, Alpha, Beta);

Form1.Series1.AddXY (a, fun2(a, Alpha, Beta));

Form1.Series1.AddXY (a+h, fun2(a+h, Alpha, Beta));

for j:=1 to m-1 do begin

x:=a+2*j*h;

y:=fun2(a+2*j*h, Alpha, Beta);

i2:=i2+y;

Form1.Series1.AddXY (x, y);

x:=a+(2*j+1)*h;

y:=fun2(a+(2*j+1)*h, Alpha, Beta);

i1:=i1+y;

Form1.Series1.AddXY (x, y);

end;

Form1.Series1.AddXY (b, fun2(b, Alpha, Beta));

end;

else begin

ShowMessage ('Ошибка!');

Result:=0;

Exit;

end;

end; // case

Result:=h/3*(i0+4*i1+2*i2);

end;

// Вычислить

procedure TForm1. Button1Click (Sender: TObject);

var a, b, h: real;

m, f, j: integer;

I, I0: real;

begin

Series1.Clear; Series2. Clear; Series3. Clear;

Alpha:=StrToFloat (Edit1.Text);

if sqr (Alpha)>=1 then begin

ShowMessage ('

— 1 < Alpha < 1');

Exit;

end;

Beta:=StrToFloat (Edit2.Text);

if Beta<=1 then begin

ShowMessage ('Beta > 1');

Exit;

end;

a:=StrToFloat (Edit3.Text); // Левый предел

b:=StrToFloat (Edit4.Text); // Правый предел

m:=StrToInt (Edit5.Text); // Число интервалов

f:=RadioGroup2.ItemIndex+1; // Номер ф-ции

case RadioGroup1. ItemIndex of // Выбор метода интегрирования

0: I:=IntegralLeftP (a, b, m, f);

1: I:=IntegralMiddleP (a, b, m, f);

2: I:=IntegralRightP (a, b, m, f);

3: I:=IntegralT (a, b, m, f);

4: I:=IntegralS (a, b, m, f);

end; // case RadioGroup2. ItemIndex

Series3.AddXY (a, 0); Series3. AddXY (b, 0);

h:=(b-a)/1001;

case f of // Точное значение интеграла и график ф-ции

1: begin

I0:=pi*Alpha/(1-sqr (Alpha));

for j:=0 to 1000 do Series2. AddXY (a+j*h, fun1(a+j*h, Alpha));

end;

2: begin

I0:=2/5/Beta*(sqrt (sqr (sqr (Alpha+Beta*b))*(Alpha+Beta*b));

sqrt (sqr (sqr (Alpha+Beta*a))*(Alpha+Beta*a)));

for j:=0 to 1000 do Series2. AddXY (a+j*h, fun2(a+j*h, Alpha, Beta));

end;

end; // case f

Memo1.Lines.Add ('

———————————————————————————-');

Memo1.Lines.Add ('Метод: '+RadioGroup1.Items.Strings[RadioGroup1.ItemIndex]);

Memo1.Lines.Add ('Функция: '+IntToStr (f));

Memo1.Lines.Add ('a = '+FloatToStr (a));

Memo1.Lines.Add ('b = '+FloatToStr (b));

Memo1.Lines.Add ('m = '+IntToStr (m));

Memo1.Lines.Add ('Результат: '+FloatToStr (I));

Memo1.Lines.Add ('Точный результат: '+FloatToStr (I0));

Memo1.Lines.Add ('

———————————————————————————-');

Memo1.Lines.SaveToFile ('Report.txt');

end;

// Очистить

procedure TForm1. Button2Click (Sender: TObject);

begin

Memo1.Clear;

Series1.Clear; Series2. Clear; Series3. Clear;

end;

// Смена пределов интегрирования

procedure TForm1. RadioGroup2Click (Sender: TObject);

begin

case RadioGroup2. ItemIndex of

0: begin

Edit3.Text:='0';

Edit4.Text:='3,14';

end;

1: begin

Edit3.Text:='1';

Edit4.Text:='2,5';

end;

end;

end;

// Cохранение картинки в файл

procedure TForm1. Chart1DblClick (Sender: TObject);

begin

Chart1.SaveToBitmapFile ('Graph.bmp');

end;

end.

Приложение 2

Скриншот программы «Численное интегрирование»

Показать весь текст

Список литературы

  1. В.Д. Численные методы и программирование: Учебное пособие. — М.: Форум, Инфра-М, 2008. — 336с.
  2. В.М. Основы численных методов. — М.: Высшая школа, 2005. — 840с.
  3. Бобровский С. Delphi 7. Учебный курс. — СПб.: Питер, 2003. — 736с.
  4. Архангельский А.Я. Delphi 7. Справочное пособие. — М.: ООО «Бином-Пресс», 2004. — 1024с.
  5. А.Я. Программирование в Delphi 7. — М.: ООО «Бином-Пресс», 2003. — 1152с.
  6. А.Я. Приемы программирования в Delphi. — М.: ООО «Бином-Пресс», 2004. — 848с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ