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

Заказать уникальную курсовую работу
Тип работы: Курсовая работа
Предмет: Программирование
  • 22 22 страницы
  • 6 + 6 источников
  • Добавлена 11.05.2009
1 496 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
Оглавление

Введение……………………………………………………………………….
Задание на выполнение курсовой работы…………………………………...
1 Теоретическая часть………………………………………………………...
1.1 Методы численного интегрирования………………………………
1.2 Программные продукты реализации численных методов………..
2 Практическая часть…………………………………………………………
2.1 Вычисления в среде Mathematica…………………………………..
2.2 Алгоритмы численных методов интегрирования…………………
2.3 Описание программы «Численное интегрирование»……………..
2.4 Результаты работы программы «Численное интегрирование»…..
Заключение……………………………………………………………………
Литература…………………………………………………………………….
Приложение 1 Листинг программы «Численное интегрирование»……….
Приложение 2 Скриншот программы «Численное интегрирование»……..
4
5
5
8
9
9
10
11
12
15
16
17
22
Фрагмент для ознакомления

');
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
Скриншот программы «Численное интегрирование»













22

Литература

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с.

Вопрос-ответ:

Какие методы численного интегрирования существуют?

Существует множество методов численного интегрирования, включая методы прямоугольников, трапеций, Симпсона, Гаусса и др.

Существуют ли программные продукты для реализации численных методов интегрирования?

Да, существуют различные программные продукты, которые реализуют методы численного интегрирования, например, Wolfram Mathematica или MATLAB.

В чем заключается практическая часть курсовой работы на тему численного интегрирования?

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

Какие алгоритмы используются при численном интегрировании?

При численном интегрировании используются различные алгоритмы, включая методы прямоугольников, трапеций, Симпсона и Гаусса.

Описание программы "Численное интегрирование". Что она позволяет делать?

Программа "Численное интегрирование" позволяет вычислять численные значения интеграла с использованием различных методов численного интегрирования. Она может быть полезна для решения различных математических задач, требующих вычисления интегралов.

Какие методы численного интегрирования существуют?

Существует несколько методов численного интегрирования, таких как метод прямоугольников, метод трапеций, метод Симпсона и др.

Какие программные продукты можно использовать для реализации численных методов интегрирования?

Для реализации численных методов интегрирования можно использовать такие программные продукты, как Mathematica, MATLAB, Python с библиотеками SciPy или NumPy.

Какой алгоритм используется для численного интегрирования?

Для численного интегрирования используются различные алгоритмы, включая метод прямоугольников, метод трапеций, метод Симпсона и другие.