3853

Обчислення означених інтегралів

Лабораторная работа

Информатика, кибернетика и программирование

Обчислення означених інтегралів Мета роботи: вивчити методи наближених обчислень і запрограмувати алгоритми обчислення означених інтегралів. Короткі теоретичні відомості Формули прямокутників. Нехай на відрізку задана неперервна функція . Потрібно о...

Украинкский

2012-11-09

79 KB

8 чел.

Обчислення означених інтегралів

Мета роботи: вивчити методи наближених обчислень і запрограмувати алгоритми обчислення означених інтегралів.

Короткі теоретичні відомості

Формули прямокутників.

Нехай на відрізку задана неперервна функція . Потрібно обчислити інтеграл

Розіб’ємо відрізок  на n  рівних частин точками , i=0,1,…n-1, довжина кожної з яких дорівнює  . Через  позначимо значення функції  в точках  і складемо суми

 або  

            Кожна з цих сум є інтегральною сумою для  на відрізку і тому наближено виражають означений інтеграл:

                                                       (1)

                                                                  (1/)

            Ці формули називаються формулами прямокутників.

2. Формула трапецій.

                                          (3)

            3. Формула парабол (Сімпсона).

4. Формула трьох восьмих:

  Якщо в формулі Ньютона-Котеса взяти n = 3, тобто функцію f(x) замінити інтерполяційним багаточленом третього степеня, побудованим за значення функції f(x) у точках x0=a, x1=a+h, x2=a+2h, x3=b, h=(b-a )/3. то одержимо таку квадратурну формулу:

де

Ця квадратурна формула називається малою квадратурною формулою трьох восьмих. Використовуючи цю формулу, легко записати велику квадратурну формулу трьох восьмих.

Варіант 17

Обчислити інтеграл методом прямокутників, трапецій, парабол, трьох восьмих, Монте-Карло.

Заданий інтеграл обчислити наближено та точно.

1.

2.

3.

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

//---------------------------------------------------------------------------

#include <vcl.h>

#include <math.h>

#pragma hdrstop

#include "IntegralUn.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

 : TForm(Owner)

{  }

//---------------------------------------------------------------------------

float __fastcall TForm1::func(float arg1, float arg2=0)

{

 switch(RadioGroup1->ItemIndex)

 {

   case 0: return (sin(arg1/17))/(cos(arg1/17));

   case 1: return arg2*(sin(arg1/17))/(cos(arg1/17));

   case 2: return atan(17*sin(arg1));

 }

}

void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key)

{

 if ((Key < '0' || Key > '9') && Key != 8 && Key != ',' && Key != '-') Key= 0;

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

 int i, part = StrToFloat(Edit5->Text);

 float xa = StrToFloat(Edit1->Text),

       xb = StrToFloat(Edit2->Text),

       ya = StrToFloat(Edit4->Text),

       yb = StrToFloat(Edit3->Text),

       S=0;

 int k1=0,k2=0;

 float xh;

if(RadioGroup1->ItemIndex!=1)

{

 //ліві

 xh=(xb-xa)/part;

 for (i=0;i<part;i++)

   S+=func(xa+i*xh)*xh;

 LabeledEdit1->Text=FloatToStrF(S,ffFixed,14,6);

 //праві

 S=0;

 for (i=1;i<=part;i++)

   S+=func(xa+i*xh)*xh;

 LabeledEdit2->Text=FloatToStrF(S,ffFixed,14,6);

 //середні

 S=0;

 for (i=0;i<part;i++)

   S+=func(((xa+(i+1)*xh)+(xa+i*xh))/2)*xh;

 LabeledEdit3->Text=FloatToStrF(S,ffFixed,14,6);

 //трапеції

 S=0;

 for (i=1;i<part;i++)

   S+=func(xa+i*xh);

 S+=(func(xa)+func(xb))/2;

 S*=(xb-xa)/part;

 LabeledEdit4->Text=FloatToStrF(S,ffFixed,14,6);

 //парабола

 S=0;

 xh=(xb-xa)/(2*part);

 for (i=1;i<2*part;i++)

 {

   if (i%2) S+=4*func(xa+i*xh);

   else S+=2*func(xa+i*xh);

 }

 S+=func(xa)+func(xb);

 S*=xh/3;

 LabeledEdit5->Text=FloatToStrF(S,ffFixed,14,6);

 //три-восьмих

 S=0;

 xh=(xb-xa)/(3*part);

 for (i=1;i<3*part;i++)

 {

   if (i%3) S+=3*func(xa+i*xh);

   else S+=2*func(xa+i*xh);

 }

 S+=func(xa)+func(xb);

 S*=3/(float)8*xh;

 LabeledEdit6->Text=FloatToStrF(S,ffFixed,14,6);

 //Монте-Карло

   srand(time(NULL));

   rand();

 S=0;

 part=1000000;

 xh=(xb-xa)/(3*part);

 for (i=0;i<part;i++)

 {

   float x = (float)rand()/(float)RAND_MAX*xb+xa,

         y = (float)rand()/(float)RAND_MAX*100-50;

   if ((func(x)>=0) && (y>=0) && (y<=func(x))) k1++;

   if ((func(x)<0)  && (y<0) && (y>func(x))) k2++;

 }

 S=(xb-xa)*100*k1/part-(xb-xa)*100*k2/part;

 LabeledEdit7->Text=FloatToStrF(S,ffFixed,14,6);

}

else

{

 //Монте-Карло

   srand(time(NULL));

   rand();

 S=0;

 part=1000000;

 k1=0,k2=0;

 xh=(xb-xa)/(3*part);

 for (i=0;i<part;i++)

 {

   float x = (float)rand()/(float)RAND_MAX*xb+xa,

         y = (float)rand()/(float)RAND_MAX*yb+ya,

         z = (float)rand()/(float)RAND_MAX*100-50;

   if ((func(x,y)>=0) && (z>=0) && (z<=func(x,y))) k1++;

   if ((func(x,y)<0)  && (z<0) && (z>func(x,y))) k2++;

 }

 S=(xb-xa)*(yb-ya)*100*k1/part-(xb-xa)*(yb-ya)*100*k2/part;

 LabeledEdit7->Text=FloatToStrF(S,ffFixed,14,6);

}

}

//---------------------------------------------------------------------------

Результат виконання програми:

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


 

А также другие работы, которые могут Вас заинтересовать

11464. ОПРЕДЕЛЕНИЕ АКТИВНОСТИ КАТАЛАЗЫ 37 KB
  ЛАБОРАТОРНАЯ РАБОТА Определение активности каталазы 1.11.1.6 1 с помощью перманганата калия и вычислением каталазного числа метод Баха и Зубковой ПРИНЦИП МЕТОДА. Фермент каталаза содержится в большом количестве в эритроцитах а также во всех тканях и жидкост...
11465. Оценка активности супероксиддисмутазы в сыворотке крови 38.5 KB
  Лабораторная работа Оценка активности супероксиддисмутазы в сыворотке крови демонстрационная 1 по ингибированию восстановления нитротетразолия синего Принцип. Об активности фермента супероксиддисмутазы СОД свидетельствует его способность тормозить восс...
11466. Культурологія як наукова і навчальна дисципліна. Специфіка культурологічного знання 8.8 MB
  Тема: Культурологія як наукова і навчальна дисципліна. Специфіка культурологічного знання. Курс Культурологія входить до циклу дисциплін гуманітарної та соціальноекономічної підготовки студента у вищих закладах освіти який дає змогу обєднати такі дисципліни як...
11467. КРИЗОВІ ЯВИЩА В КУЛЬТУРІ 204 KB
  Лекція 12.КРИЗОВІ ЯВИЩА В КУЛЬТУРІ Весь попередній розгляд сутності та проявів культури засвідчує що її можна вважати тією територією людськості яка відвойована людиною в шаленого масиву природи та яка засвідчує ті прояви людини котрі вона своєю творчою насн
11468. Основні концептуальні парадигми (концепції, теорії та напрями) культурології 147.5 KB
  Лекція 2. Основні концептуальні парадигми концепції теорії та напрями культурології. Донауковий етап уявлень про культуру. Ще в давніх міфах є спроба відповісти на питання про початок культурної історії людства. В легендах і міфах кожного народу є легендарні гер...
11469. Культура та цивілізація 297 KB
  Лекція 3. Культура та цивілізація. Питання про співвідношення культури та цивілізації є питанням полемічним. Якщо поняття культура є складним для розуміння на науковому рівні і добре окреслюється іншими поняттями на буденному рівні то поняття цивілізація в наук
11470. ПОХОДЖЕННЯ ЛЮДИНИ. САМОУСВІДОМЛЕННЯ ЛЮДСТВА У ВСЕСВІТІ 264.5 KB
  ЛЕКЦІЯ 4. ПОХОДЖЕННЯ ЛЮДИНИ. САМОУСВІДОМЛЕННЯ ЛЮДСТВА У ВСЕСВІТІ. Одним із принципових досягнень Відродження стало визнання загальнолюдської лінії культурного розвитку. Адже і схиляння перед античністю і критичне ставлення до середньовіччя зросли в ньому з усвідомл...
11471. ПРИРОДА І КУЛЬТУРА 117 KB
  Лекція 5. ПРИРОДА І КУЛЬТУРА Співвідношення природного і культурного. Людина як продукт біологічної та культурної еволюції. Культура основа гармонізації суперечностей між людиною і природою. Співвідношення природного і культурного. Проблема співвідношення п
11472. Культура первісної доби. Міфологічна модель світу 182 KB
  Лекція 6. Культура первісної доби. Міфологічна модель світу. Культура збирання і полювання. Історія людства налічує 35 40 тисяч років. Найтриваліший її відтинок історики найчастіше називають первіснообщинним ладом або камяним віком. У культурології ці терміни можна вжив...