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);

}

}

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

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

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


 

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

2412. Иновационные информационные технологии 96.36 KB
  Факторы, оказывающие сдерживающее влияние на процесс становления рынка программных продуктов. Технология ASP. Объекты ADO. Пакетная модификация. Перемещение между записями в результирующем множестве ADO. Специальные значения свойства ADO Recordset.
2413. Выбор методом анализа иерархий с помощью MathCAD по 4 видам и 4 признаком. Методы очистки сточных вод 3.72 MB
  Элементы задачи сравниваются попарно по отношению к их воздействию (весу, или интенсивности) на общую для них характеристику. Сравнивая набор составляющих проблемы друг с другом, получается квадратная матрица вида.
2414. Сучасні системи математичної обробки інформації. Система Mathcad. Програмування в середовищі Mathcad 327.72 KB
  Задачі обробки одновимірних та двовимірних масивів. Приклад розв'язування транспортної задачі в середовищі Mathcad. Локальний екстремум. Організація обчислень з розгалуженнями. Локальний оператор присвоєння. Принцип програмування в Mathcad. Панель програмування.
2415. Особенности использования автоматизированных и человекоуправляемых систем научных исследований 1.03 MB
  Научные исследования позволяют выявлять и исследовать неявные качества и закономерности свойственные исследуемым объектам. К таким объектам, наиболее часто относятся определенные системы и процессы. Особый интерес для науки и прикладных задач представляет автоматизация научных исследований, то есть создание автоматизированных систем научных исследований (АСНИ).
2416. Сущность организации и предприятия, их признаки и функции. Понятие экономики предприятия. 217.5 KB
  Экономика предприятия - это дисциплина изучающая, как определённые и ограниченные ресурсы для производства полезной продукции и услуг распределяются и используются в рамках отдельно взятого предприятия.
2417. Практика по внеклассной воспитательной работе 789.64 KB
  Накопление представлений о характере и содержании внеклассной воспитательной деятельности классного руководителя. Формирование умений планировать, проводить и анализировать внеклассные воспитательные мероприятия в начальных классах. Ознакомление с разными формами внеклассной воспитательной работы в начальных классах с учетом возраста учащихся.
2418. Аналіз виховної роботи навчального закладу 201.5 KB
  Скласти та обґрунтувати перелік показників, якими можна робити певні припущення про рівень дисципліни в класі (школі). Підготувати план виступу перед батьками п'ятикласників на одну з тем сімейної педагогіки. Обґрунтувати актуальність обраної теми і питань запропонованого її плану. Розкрити можливі причини конфліктів між педагогами і учнями та обґрунтувати шляхи їх попередження і усунення.
2419. Виховний захід. Наші обереги 22.27 KB
  Зал святково прибраний вишитими рушниками, гілками калини. На центральній стіні прилаштовано великий плакат у вигляді рушника, на якому написано назву свята. Під плакатом стоїть стіл, накритий скатертиною, на столі лежить паляниця, вишиванка, калинова гілочка, стоїть глечик з пшеничними та житніми колосками.
2420. Стратегии интегрированного роста 319.43 KB
  Обоснование эффективности стратегии интегрированного роста в странах с развивающимися рынками. Целью данного исследования является обоснование эффективности стратегии интегрированного роста для российских компаний в условиях экономической нестабильности.