3853

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

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

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

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

Украинкский

2012-11-09

79 KB

9 чел.

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

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

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

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

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

Розіб’ємо відрізок  на 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);

}

}

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

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

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


 

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

11808. Изготовление резиновой смеси 210 KB
  Лабораторная работа № Изготовление резиновой смеси Цели работы Изготовление резиновой смеси по имеющемуся рецепту. Теоретическая часть Изготовление резиновых смесей является одним из основных процессов резинового производства от качественного провед...
11809. Процесс каландрования резиновых смесей 384.5 KB
  Лабораторная работа № Процесс каландрования резиновых смесей Цели работы Определение влияния типа наполнителя и размера калибрующего зазора на усадку. Теоретическая часть Каландрование это процесс непрерывного формовании разогретой резиновой смеси
11810. ВИЗНАЧЕННЯ ТИПУ ГЛИНИСТОГО ГРУНТУ 236 KB
  ВИЗНАЧЕННЯ ТИПУ ГЛИНИСТОГО ГРУНТУ Глинисті ґрунти складаються з дуже маленьких часточок менше 0005 мм які зазвичай мають лускоподібну форму. На відміну від піщаних ґрунтів глини мають велику поверхню часточок які вбирають вологу. Глинисті ґрунти мають властивість
11811. ИССЛЕДОВАНИЕ КВАНТОВОЙ ПРИРОДЫ СВЕТА 142.5 KB
  Лабораторная работа 1 по курсу КСЕ ИССЛЕДОВАНИЕ КВАНТОВОЙ ПРИРОДЫ СВЕТА Цель работы: Исследовать квантовые свойства света и построить график зависимости фототока от напряжения. Приборы и принадлежности: источник питания ИПС106 стенд с объектами исследования С3...
11812. Определение параметров солнечного ветра и его влияния на магнитосферу Земли 973.5 KB
  Лабораторная работа № 2 по курсу КСЕ Определение параметров солнечного ветра и его влияния на магнитосферу Земли Цель работы: ознакомиться со структурой межпланетного магнитного поля и геомагнитосферы; определить радиальную скорость распространения выб
11813. ВИЗНАЧЕННЯ КУТА ПРИРОДНЬОГО УХИЛУ ГРУНТУ 58 KB
  ВИЗНАЧЕННЯ КУТА ПРИРОДНЬОГО УХИЛУ ГРУНТУ Кутом природного ухилу α називають такий максимальний кут між горизонтом і поверхнею вільного ґрунту при якому ґрунт ще зберігає рівновагу. Зчеплення α для сухих ґрунтів в рихлому стані майже співпадає з кутом внутрішнього ...
11814. Определение пластичности каучука и резиновых смесей на пластомере 153.5 KB
  Лабораторная работа № Определение пластичности каучука и резиновых смесей на пластомере Суть метода Приложение постоянного груза к образцу и измерение высот до нагрузки после нагрузки и после отдыха. Краткая теория Пластичность способность мате
11815. Учебное-методическое пособие по выполнению лабораторных работ По курсу Проектирование на ПЛИС 1.25 MB
  Учебно-еметодическое пособие по выполнению лабораторных работ По курсу Проектирование на ПЛИС Аннотация Данное пособие содержит краткое описание базовых процедур по выполнению лабораторных робот по курсу Проектирование на ПЛИС. В пособии рассмотрена САПР MAX...
11816. Шприцевание резиновых смесей 109 KB
  Лабораторная работа № Шприцевание резиновых смесей Цель работы Получение заготовок определенного профиля путем продавливания разогретой резиновой смеси с помощью червяка через профилирующее отверстие и определение усадки. Теоретическая часть Шприцев