Порівняння методів Сімпсона, прямокутників, трапецій при чисельному інтегруванні функцій

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 19:07, курсовая работа

Описание работы

Чисельне інтегрування – одна з найбільш важливих тем обчислювальної математики.
В роботі ми розглянемо наступні методи чисельного інтегрування:
лівих та правих прямокутників;
трапецій;
Сімпсона;
Для демонстрації роботи методів чисельного інтегрування слід розробити програму, за допомогою якої буде автоматизовано інтегрування фіксованого переліку елементарних функцій.

Содержание работы

Вступ ……………………………………………………………………………...3
1.Загальна постановка і аналіз.
1.1 Формули прямокутників і трапеції ………………….…………….4
1.2. Формула Сімпсона …………………………………………………...8
1.3 Параболічне інтерполювання ……………………………………...9
1.4 Дроблення проміжку ………………………………………………..13
1.5 Залишковий член формули прямокутників …………………..15
1.6 Залишковий член формули трапеції ……………………………18
1.7 Залишковий член формули Сімпсона ………………………….20
2.Програма Порівняння методів Сімпсона, прямокутників, трапецій
2.1. Проект програми …………………………………………………….23
2.2. Інструкція користувачу …………………………………….………25
Висновок ……………………………………………………………….………27
Використана література …………………………………………………….28

Файлы: 1 файл

рПТ_ЧОСООС.doc

— 920.50 Кб (Скачать файл)

 

.

 

Як і вище, і користуючись тим, що другий множник підінтегральної  функції і тут не змінює знака, знайдемо

 

      
.

 

Для випадку ділення проміжку на рівних частин

 

          
       (14).

Таким є залишковий член формули  трапецій (2). При зростанні 
він також зменшується приблизно як
. Ми бачимо, що застосування формули трапецій приводить до похибки того ж порядку, що і для формули прямокутників.  
1.7. Залишковий член формули Сімпсона.

Звернемося, до формули (8). Можна було б, аналогічно тому, як це було зроблено вище, знов скористатись формулою Лагранжа з залишковим членом і покласти:

 

       
    (15).

 

Проінтегрувавши рівність (15), ми не змогли б спростити інтегральний вираз для додаткового члену за допомогою теореми про середнє, бо вираз в підінтегральній функції вже змінює знак на проміжку . Тому ми зробимо інакше.

Вираз:

,

яким  би не було число  , в точках , , приймає одні і тіж значення, що і функція . Легко підібрати число так, щоб і похідна цього виразу при співпадала з похідною . Таким чином, при цьому значенні ми маємо не що інше, як інтерполяційний многчлен Ерміта, який відповідає простим вузлам , і двократному вузлу . Скориставшись формулою Ерміта з залишковим членом – в припущенні існування для функції похідних до четвертого порядку включно – отримаємо:

.

 

Тепер проінтегрувавши цю рівність від до ; ми знайдемо, що

 

 

 

так як

 

.

 

Якщо припустити похідну неперервною, то, як і в попередніх випадках, залишковий член формули (8)

 

,

користуючись  тим, що другий множник в підінтергальному виразі не змінює знака, можна підставити в такому вигляді:

 

.

 

Якщо проміжок розділити на рівних частин, то – для формули Сімпсона (10) – отримаємо залишковий член у вигляді

 

     
   (16).

При зростанні 
цей вираз зменшується приблизно як
; таким чином, формула Симпсона дійсно більш вигідна, ніж попередні дві формули. 
2. Програма „ Порівняння методів Сімпсона,

прямокутників, трапецій.”

2.1. Проект  програми

Концепція програми

Головним завданням програми  є розв’язування задачі чисельного інтегрування, сформульованої в розділі 1.

Фактично, програма повинна забезпечувати порівняння ефективності та точності різних методів інтегрування.

Результати роботи програми повинні  бути представлені в табличному форматі.

Програма також повинна мати інтуїтивно зрозумілий інтерфейс, характерний  для сучасних Windows-програм, що буде запорукою ефективного її використання.

Вибір середовища реалізації

Вибір середовища реалізації проекту  є однією з основних задач процесу  розробки програмних продуктів.

Вибір середовища реалізації має дві  складові:

  1. операційна система, під управлінням якої працюватиме програмний продукт;
  2. система програмування, за допомогою якої розроблятиметься програма.

Програма призначена для роботи під управлінням операційної  системи Windows XP.

Вибір цієї ОС пов’язаний з тим, що зараз на переважній більшості персональних комп’ютерів використовується саме ця система або системи, споріднені з нею. Тому такий вибір забезпечуватиме можливість роботи з програмою на більшості з робочих станцій.

Програма розроблятиметься за допомогою  візуальної системи програмування Delphi7.

Причинами такого вибору є наступні особливості системи Delphi7:

1) розробка програмних продуктів  для платформи Win32;

2) візуальна розробка  графічного інтерфейсу користувача;

  1. підтримка об’єктно-орієнтованої технології розробки програмних продуктів;
  2. простота реалізації програмного коду засобами мови Object Pascal;
  3. популярність Delphi7 серед розробників програмного забезпечення.

Наступні етапи проектування програми та розробка програмного коду відбуватимуться  відповідно до вибраного середовища реалізації.

Аналіз  функціональності програми

Визначимо основні функції програми:

  1. розв’язування задачі, поставленої в розділі 1;

підтримка таких методів інтегрування: прямокутників, трапецій, Сімпсона,; 
2.2. Інструкція користувачу

Програма „ Порівняння методів Сімпсона, прямокутників, трапецій.”

Програма призначена для демонстрації застосування методів чисельного інтегрування до інтегрування елементарних функцій. Тобто в програмі реалізовано  задачу чисельного інтегрування, поставлену в розділі 1.

Програма дозволяє обчислювати  визначені інтеграли за допомогою  таких чисельних методів:

1) лівих прямокутників;

2) трапецій;

3) Сімпсона;

Вікно задачі

У вікні задачі задається  умова та виводяться результати обчислень (рис. 1).

Вікно задачі складається з таких частин:

1) межі інтегрування;

2) підінтегральна функція;

4) кількість точок розбиття;

6) значення інтегралу.

В двох полях з групи „Межі  інтегрування” вказуються відповідно права та ліва границі інтегрування.

В програмі передбачено фіксований набір підінтегральних функцій. Вибрати її можна із відповідного списку.

Точність інтегрування визначається кількістю точок розбиття відрізка. Крок інтегрування не задається користувачем, а визначається відповідно до кількості  точок розбиття.

Рис 1. 
Висновок.

У такий спосіб очевидно, що при  обчисленні певних інтегралів за допомогою  квадратурних формул, не дає нам  точного значення, а тільки наближене.

Щоб максимально наблизитися до достовірного значення інтеграла потрібно вміти правильно вибрати метод  і формулу, по якій буде вестися розрахунок.

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

  1. Пискунов Н. С. Дифференциальное и интегральное исчисление для ВТУЗов. Т. 1 М.: 1968.
  2. Воробьева Г. Н., Данилова А. Н. Практикум по численным методам. 
    М.: 1979.
  3. Математический практикум. М.: 1960.
  4. Крилов В.И.  “Наближені обчислення інтегралів“ - М. : Фізмат.
  5. Калиткин Н.Н. Численные методы. Главная редакция физико-математической литературы «Наука», М., 1978. – 512 с.
  6. Крылов В.И., Бобков В.В., Монастырский П.И. Вычислительные методы. Главная редакция физико-математической литературы «Наука», М., 1976. – 302 с.

Фаронов В.В. Система программирования Delphi. – СПб.: БХВ-Петербург, 2003. – 912 с. 
Додатки

Додаток 1:

Результати роботи програми

 

1) в межах від 0 до 1

n=1000

Метод Сімпсона    3,33333333333333E-7

Метод трапецій    2,15219773265892E-307

Метод прямокутників    2,15219773265892E-307

 

2) в межах від 0 до 1

n=1000

Метод Сімпсона   0,841416880687773

Метод трапецій   0,841929771178751

Метод прямокутників    0,842159620025817

 

3) в межах від 0 до 1

n=1000

Метод Сімпсона   0,332001999333334

Метод трапецій   0,332335499

Метод прямокутників    0,331835499

 

4) в межах від 0 до 1

n=1000

Метод Сімпсона    0,248669498000667

Метод трапецій   0,249003247001001

Метод прямокутників  0,248503247001001

 

5) в межах від 0 до

n=1000

Метод Сімпсона    0,498667666666667

Метод трапецій   0,499001

Метод прямокутників  0,498501 
Додаток 2:

Текст програми

unit Integral;

 

interface

 

uses

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

  Dialogs, ExtCtrls, StdCtrls, Spin, Menus, Grids;

 

type

  TForm1 = class(TForm)

    GroupBox1: TGroupBox;

    Edit2: TEdit;

    Edit3: TEdit;

    GroupBox3: TGroupBox;

    Edit5: TEdit;

    MainMenu1: TMainMenu;

    N1: TMenuItem;

    N2: TMenuItem;

    N5: TMenuItem;

    Button1: TButton;

    N3: TMenuItem;

    N4: TMenuItem;

    StringGrid1: TStringGrid;

    GroupBox2: TGroupBox;

    ComboBox1: TComboBox;

    Label1: TLabel;

    procedure N2Click(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure N4Click(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure N5Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

    Function F(x:real):real;

  end;

 

var

  Form1: TForm1;

  var

    a,b,h,x,s1,s2,s3:real;

 

 

implementation

 

uses Unit2;

 

{$R *.dfm}

 

Function TForm1.F(x:real):real;

begin

  If ComboBox1.ItemIndex=0 Then

  Begin

    F:=sin(x);

  End

  Else If ComboBox1.ItemIndex=1 Then

  Begin

    F:=cos(x);

  End

  Else If ComboBox1.ItemIndex=2 Then

  Begin

    F:=x*x*x;

  End

  Else If ComboBox1.ItemIndex=3 Then

  Begin

    F:=x;

  End

  Else If ComboBox1.ItemIndex=4 Then

  Begin

    F:=x*x;

  End;

End;

 

procedure TForm1.N2Click(Sender: TObject);

begin

  s1:=0;

  s2:=0;

  s3:=0;

  Edit2.Visible:=True;

  Edit3.Visible:=True;

  Edit5.Visible:=True;

  GroupBox1.Visible:=True;

  GroupBox3.Visible:=True;

  GroupBox2.Visible:=True;

  Button1.Visible:=True;

  ComboBox1.Visible:=True;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

Var i,n,k:integer;

begin

  StringGrid1.Visible:=True;

  Label1.Visible:=True;

  a:=StrToFloat(Edit2.Text);

  b:=StrToFloat(Edit3.Text);

  n:=StrToInt(Edit5.Text);

  s1:=f(a);

  s2:=(f(a)+f(b))/2;

  s3:=(b-a)/n;

  k:=1;

  x:=a;

  for i:=1 to n-1 do

  begin

    x:=x+h;

    s1:=s1+f(x);

    s2:=s2+f(x);

    s3:=s3+(3+k)*f(x);

    h:=(b-a)/n;

    k:=-k;

  end;

   s1:=s1*h;

    s2:=s2*h;

    s3:=s3*h/3;

    StringGrid1.Cells[0,1]:=FloatToStr(s1);

    StringGrid1.Cells[1,1]:=FloatToStr(s2);

    StringGrid1.Cells[2,1]:=FloatToStr(s3);

End;

 

procedure TForm1.N4Click(Sender: TObject);

begin

  Close()

end;

 

procedure TForm1.FormCreate(Sender: TObject);

begin

  Edit2.Text:='0';

  Edit3.Text:='1';

  Edit5.Text:='1000';

  StringGrid1.Cells[0,0]:='      Метод Прямокутників';

  StringGrid1.Cells[1,0]:='      Метод Трапецій';

  StringGrid1.Cells[2,0]:='            Метод Сімпсона';

end;

 

procedure TForm1.N5Click(Sender: TObject);

begin

  Form2.Show;

end;

end.



Информация о работе Порівняння методів Сімпсона, прямокутників, трапецій при чисельному інтегруванні функцій