DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Чисельне інтегрування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКНІ
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Чисельні методи в інформатиці

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА" Інститут ІКНІ Кафедра ПЗ ЗВІТ до лабораторної роботи № 4 На тему: “ Чисельне інтегрування ” З дисципліни: “ Чисельні методи в інформатиці ” Мета роботи: навчитись обчислювати інтеграли за формулами трапецій, Сімпсона та Монте-Карло. Теоретичні відомості Нехай треба обчислити визначений інтеграл:  . (4.5.1) Розіб’ємо відрізок [a,b] на N кроків інтегрування рівномірно. Величина кроку буде дорівнювати: h = (b-a)/N . Значення функції у вузлових точках означимо як  де  . Наближене (але з будь-якою точністю) значення інтегралу можна отримати за допомогою формули трапецій:  (4.5.2) або формули Симпсона:  . (4.5.3) Із зменшенням величини кроку h точність обчислення інтеграла збільшується. Обчислення інтегралів методом Монте-Карло Нехай x1, x2, ...,xM – множина випадкових величин з відрізка [a,b] таких, що мають рівномірне розподілення. Тоді інтеграл (4.5.1) можна наближено обчислити по формулі:  (4.5.4) Точність обчислення інтегралу збільшується із збільшенням M і з покращанням якості випадкової послідовності. Переваги методу Монте-Карло особливо помітні при обчисленні кратних інтегралів. Нехай потрібно обчислити інтеграл кратності p такого виду:  . (4.5.5) Область інтегрування є p-вимірний паралелепіпед:  Оберемо у ньому N рівномірно розподілених випадкових точок . Наближене значення інтегралу можна отримати за допомогою такої формули:  . (4.5.6) Завдання Обчислити значення інтегралу за формулами трапецій, Сімпсона та Монте-Карло.  Текст програми unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, XPMan, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Label1: TLabel; Button1: TButton; GroupBox1: TGroupBox; XPManifest1: TXPManifest; Edit2: TEdit; Edit3: TEdit; Label2: TLabel; Label3: TLabel; Edit4: TEdit; Label4: TLabel; Image1: TImage; Bevel1: TBevel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; e:real; n:integer; const a : integer = 0; const b : integer = 4; implementation {$R *.dfm} function AbsReal(X : Extended):Extended; begin if X>=0 then Result:=X else Result:=-X; end; function f(x : real ): real; begin result:=(1+2*x)/(sqr(ln(2+sqr(x)))); end; function IntegralTrapezium(const a : Double; const b : Double; const Epsilon : Double):Double; var i : Integer; n : Integer; h : Double; s1 : Double; s2 : Double; begin n := 1; h := b-a; s2 := h*(F(a)+F(b))/2; repeat s1 := s2; s2 := 0; i := 1; repeat s2 := s2+F(a-h/2+h*i); i := i+1; until not (i<=n); s2 := s1/2+s2*h/2; n := 2*n; h := h/2; until not (AbsReal(s2-s1)>3*Epsilon); Result := s2; end; function IntegralSimpson(const a : Double; const b : Double; const Epsilon : Double):Double; var i : Integer; n : Integer; h : Double; s : Double; s1 : Double; s2 : Double; s3 : Double; x : Double; begin s2 := 1; h := b-a; s := F(a)+F(b); repeat s3 := s2; h := h/2; s1 := 0; x := a+h; repeat s1 := s1+2*F(x); x := x+2*h; until not (x<b); s := s+s1; s2 := (s+s1)*h/3; x := AbsReal(s3-s2)/15; until not (x>Epsilon); Result := s2; end; function fMonte_Karlo: real; var y,x:real; i,l,h:integer; begin n:=100; randomize(); y:=0; for i:=1 to n do begin l:=Random(b); h:=Random(100); x:=l+h/100; y:=y+f(x); end; result:=((b-a)/n)*y; end; procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text:=FloatToStr(IntegralTrapezium(a,b,StrToFloat(Edit1.Text))); Edit3.Text:=FloatToStr(IntegralSimpson(a,b,StrToFloat(Edit1.Text))); Edit4.Text:=FloatToStr(fMonte_Karlo); end; end. Протокол роботи програми  Висновок: під час виконання лабораторної роботи я навчився обчислювати значення інтегралу за формулами трапецій, Сімпсона та Монте-Карло.
Антиботан аватар за замовчуванням

31.03.2013 16:40

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!