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

}

}

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

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

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


 

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

22736. Ескалація інтервенції США у В'єтнамі 1965 - 1968 рр. 30.5 KB
  Ескалація інтервенції США у Вєтнамі 1965 1968 рр. Воспользовавшись спровоцированными инцидентами США подвергли 5 августа 1964 г. 10 августа президент США утвердил закон принятый 7 августа на совместном заседании палаты представителей в сената США. Эта так называемая тонкинская резолюция санкционировала принятие президентом США необходимых мер два отражения любого вооруженного нападения против военных сил США и предотвращения дальнейшей агрессии.
22737. Початок ’’холодної війни’’ США проти СРСР у 1946 – 1949 рр 37 KB
  Початок холодної війни США проти СРСР у 1946 1949 рр. Але наступного ж дня 3 лютого у США розпочалася пропагандистська кампанія з приводу радянського атомного шпіонажу до речі про інтерес спецслужб СРСР до Манхеттенського проекту американському керівництву стало відомо щонайменше за півроку до появи відповідної інформації у ЗМІ. Черчилль не висловив і побоювань щодо можливості воєнного нападу СРСР на країни Заходу. СРСР який переміг у війні та вперше розірвав буферний пояс що ізолював його від світу відчув за думкою...
22738. Зовнішня політика адміністрації Трумена. «Доктрина Трумена» 33 KB
  Американский империализм стремился использовать финансовоэкономические трудности Англии усугубленные кабальным займом полученным ею от США в июле 1946 г. Американские дипломаты убеждали своих английских коллег что для их правительства самым благоприятным выходом была бы передача этой доли наследства в руки США как для облегчения финансового бремени Англии так и для ухода от той критики которой повсеместно подвергался британский империализм за его интервенцию в Греции. правительство США получило две британские ноты в которых...
22739. Американська стратегія ’’гнучкого реагування’’ у 60-ті рр 30.5 KB
  В месте тем разработчики плана учитывали и возможность нанесения Советским Союзом ответного ядерного удара по территории США. Внезапное для США появление советских ракет средней дальности на Кубе и отсутствие у них подавляющего превосходства в количестве МБР и БРПЛ над Советским Союзом сделали военный путь разрешения конфликта невозможным. Желания военных нашли должную поддержку в сенате США. Учитывая такие факторы как практически безраздельное господство ВМС США и объединенного флота НАТО на просторах мирового океана в начале 60х годов...
22740. Канада і НАФТА 44 KB
  Канада і НАФТА. Североамериканскиое соглашение о свободной торговле НАФТА между Канадой Соединенными Штатами Америки и Мексикой вступило в силу 1 января 1994 года. Созданное для поощрения увеличения торговли и инвестиций между партнерами по НАФТА Соглашение содержит грандиозный план уничтожения тарифов и сокращения нетарифных барьеров наряду с обстоятельными положениями по ведению бизнеса в зоне свбодной торговли. НАФТА увеличила доступ Канады на американский и мексиканский рынки а также повысила привлекательность канадской экономики для...
22741. Латиноамериканський курс адміністрації Дж. Картера 23.5 KB
  Планы укрепления агрессивной межамериканской военной системы консолидации правых режимов на континенте были приняты на вооружение и администрацией США во главе с Дж. Столкнувшись с падением престижа США в Латинской Америке и стремясь укрепить здесь свои позиции официальный Вашингтон возвестил о пересмотре политики в отношении латиноамериканских государств. Дипломатия США стала усиленно афишировать свой постоянный интерес к этим странам. Президент США Дж.
22742. Етапи війни США у Кореї 82 KB
  Етапи війни США у Кореї. Поэтому сейчас взрывы в Японии рассматривались как начало атомного шантажа США. Эта ошибка в переоценке своих сил вынудили США заплатить за нее очень дорого сначала в Корее а затем во Вьетнаме. Дело состояло в следующем: СССР допустив США в Корею справедливо считала что американцы в свою очередь выделят СССР зону оккупации в Японии.
22743. Основні напрямки зовнішньої політики США на початку 70-х рр 31 KB
  Зайнявши Білий дім 37й американський президент уже в липні 1969 року проголосив нову стратегію США у в'єтнамській війні яка отримала назву доктрини Ніксона . Вже в червні 1969 року почалася евакуація півмільйонного американського контингенту з Південного В'єтнаму. На травень 1972 року тут залишалось 69 тисяч американців. на думку деяких істориків змусило Ханой підписати у Парижі 27 січня 1973 року угоду про припинення військових дій та відновлення миру у В'єтнамі .
22744. Посилення холодної війни США проти соціалістичних країн у період першого президентства Д. Ейзенхауера 31 KB
  Посилення холодної війни США проти соціалістичних країн у період першого президентства Д. Они пожинали плоды послевоенного экономического подъема когда материальное благополучие США еще больше возросло. В 60е годы политизированное студенчество выступило против международной роли США особенно в разрушительной войне во Вьетнаме. Сама жизнь подводила граждан США к поискам нового социального равновесия в стране.