Обчислення означених інтегралів
Дослідження методів наближених обчислень і програмування алгоритмів обчислення означених інтегралів. Формули прямокутників, парабол (Сімпсона), трьох восьмих. Обчислення інтегралу методом прямокутників, трапецій, парабол, трьох восьмих, Монте-Карло.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | украинский |
Дата добавления | 18.01.2013 |
Размер файла | 236,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Звіт
до лабораторної роботи № 3-4
з курсу «Чисельні методи в інформатиці»
на тему «Обчислення означених інтегралів»
Виконав:
студент групи КН-31
Присяжник Іван
Прийняв: Романчук Я. П.
Львів - 2010
Мета роботи: вивчити методи наближених обчислень і запрограмувати алгоритми обчислення означених інтегралів.
Короткі теоретичні відомості. Формули прямокутників
Нехай на відрізку задана неперервна функція . Потрібно обчислити інтеграл
Розіб'ємо відрізок на n рівних частин точками , i=0,1,…n-1, довжина кожної з яких дорівнює . Через позначимо значення функції в точках і складемо суми
або
Кожна з цих сум є інтегральною сумою для на відрізку і тому наближено виражають означений інтеграл:
(1)
(1/)
Ці формули називаються формулами прямокутників.
Формула трапецій
(3)
Формула парабол (Сімпсона)
Формула трьох восьмих
Якщо в формулі Ньютона-Котеса взяти n = 3, тобто функцію f(x) замінити інтерполяційним багаточленом третього степеня, побудованим за значення функції f(x) у точках x0=a, x1=a+h, x2=a+2h, x3=b, h=(b-a )/3. то одержимо таку квадратурну формулу:
де
Ця квадратурна формула називається малою квадратурною формулою трьох восьмих. Використовуючи цю формулу, легко записати велику квадратурну формулу трьох восьмих.
Обчислити інтеграл методом прямокутників, трапецій, парабол, трьох восьмих, Монте-Карло.
Заданий інтеграл обчислити наближено та точно.
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/2);
case 1: return sin((arg1+arg2)/2);
case 2: return atan(2*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);
}
}
//---------------------------------------------------------------------------
Результат виконання програми
наближений обчислення алгоритм інтеграл
Висновок
На цій лабораторній роботі я вивчив методи наближених обчислень і запрограмувати алгоритми обчислення означених інтегралів.
Размещено на Allbest.ru
...Подобные документы
Квадратурні формули. Формула прямокутників. Формула трапецій. Формула парабол (Сімпсона). Чисельні методи знаходження визначеного інтеграла зі змінною верхньою межею. Опис обчислювального алгоритму.
курсовая работа [204,3 K], добавлен 03.04.2004Розробка програми для спрощення та автоматизації обчислення інтегралів методом трапецій у визначених межах інтегрування із заданою точністю. Елементи програми "Інтеграл", алгоритм, способи логічної структуризації, засоби обміну даними, мова програмування.
курсовая работа [234,5 K], добавлен 12.12.2013Опис методів обчислення формули Ньютона-Котеса та поліномів Лежандра. Розгляд програмування процедур вводу меж інтегрування, ініціації елементів квадратурних формул Гауса та Чебишева. обчислення визначеного інтеграла і виводу результатів на екран.
курсовая работа [82,1 K], добавлен 23.04.2010Блок-схема алгоритму та функціональні ряди. Код програми обчислення визначених інтегралів. Операції з масивами та значення накопичення функціональної суми. Діапазон зміни аргументу і обчислення функціональної суми у режимі відображення формул та графіки.
отчет по практике [2,7 M], добавлен 30.11.2011Використання ітерацій для обчислення приблизних значень величин. Розробка ітераційних алгоритмів з перевіркою правильності введення даних. Побудова блок-схеми і програмування мовою Turbo Pascal обчислення значення функції, розкладеної в степеневий ряд.
лабораторная работа [197,2 K], добавлен 16.12.2010Значення функції, типи елементів масиву та їх кількість. Побудова інтерполяційного багаточлена Лагранжа. Апроксимування залежності багаточленом другого ступеня і обчислення коефіцієнту варіації. Обчислення рівняння за методом Рунге-Кути, лістинг програми.
контрольная работа [222,4 K], добавлен 17.02.2011Лінійна програма на C++. Арифметичні вирази. Обчислення значень функції. Значення логічних виразів і логічних операцій. Види циклів, обчислення нескінченної суми з заданою точністю. Створення файлу цілих чисел з N компонент, виведення їх на екран.
контрольная работа [12,7 K], добавлен 09.09.2011Мінімізація часу виконання задачі за рахунок розподілу навантаження між декількома обчислювальними пристроями, паралельна модель програмування. Процес розробки паралельного алгоритму. Забезпечення комунікацій між підзадачами, забезпечення надійності.
контрольная работа [170,3 K], добавлен 29.06.2010Огляд та варіантний аналіз чисельних методів дослідження еліптичного інтегралу першого порядку. Опис методів дослідження еліптичного інтегралу першого порядку на ЕОМ. Планування вхідних та вихідних даних, описовий алгоритм головної програми, його схема.
курсовая работа [148,0 K], добавлен 30.11.2009Зародження системи Matlab. Високоефективна мова інженерних і наукових обчислень. Інтерактивна система, основним об'єктом якої є масив. Обчислення мінімумів, нулів функцій. Апроксимація й інтерполяція даних. Обчислення кінцевих різниць, перетворення Фур'є.
лабораторная работа [146,4 K], добавлен 18.01.2013Розробка інформаційної системи зберігання, обробки та моделювання алгоритмів обчислення статистичних даних для змагань з плавання і з інших видів спорту. Зміст бази даних, реалізація БД засобами MySQL, створення клієнтського додатка в середовищі PHP.
дипломная работа [4,5 M], добавлен 17.09.2011Аналіз паралельного обчислення, під яким розуміють сукупність питань, що відносяться до створення ресурсів паралелізму в процесах вирішення задачі з метою досягнення більшої ефективності використання обчислювальної техніки. Другий та третій закони Амдала.
реферат [127,2 K], добавлен 13.06.2010Стандарти OpenMP i MPI як основні засоби програмування для багатопроцесорних систем. Розробка програми паралельного розрахунку інтеграла для функції з певним кроком дискретизації, паралельної програми множення квадратної матриці на квадратну матрицю.
курсовая работа [2,5 M], добавлен 11.12.2013Розробка інформаційної системи зберігання, обробки і моделювання алгоритмів обчислення статистичних даних для спортивний змагань. Характеристика предметної області, архітектури бази даних, установки і запуску системи, основних етапів роботи користувача.
курсовая работа [2,0 M], добавлен 26.12.2011Дослідження застосування різницевого методу для розв’язання крайової задачі. Дослідження проводиться на прикладі заданого диференційного рівняння. Дається опис методу та задачі в цілому. Застосування при обчисленні формули Чебишева і формули Гаусса.
курсовая работа [157,2 K], добавлен 03.12.2009Обґрунтування переваги чисельного диференціювання функції з використанням інтерполяційної формули Стірлінга по відношенню до формул Ньютона, Гауса та Бесселя. Розробка оптимального алгоритму обчислення другої похідної. Лістинг, опис і тестування програми.
курсовая работа [483,2 K], добавлен 21.10.2013Блок-схема та програма обчислення значення функції y=f(x) у точці x0. Обчислення двох значень поліному з використанням схеми Горнера. Програма табуляції функції Y на проміжку [a,b] з шагом h. Програма визначення нульових елементів квадратної матриці.
контрольная работа [63,3 K], добавлен 23.09.2010Огляд та варіантний аналіз чисельних методів моделювання, основні поняття і визначення. Опис методів моделювання на ЕОМ, метод прямокутників і трапецій. Планування вхідних та вихідних даних, аналіз задач, які вирішуються при дослідженні об’єкта на ЕОМ.
курсовая работа [373,6 K], добавлен 30.11.2009Загальні відомості про табличний процесор Excel, основний об’єкт роботи в ньому. Функції як заздалегідь визначені формули, які виконують обчислення по заданих величинах (аргументах). Властивості математичних і логічних функцій, функцій дати і часу.
контрольная работа [346,7 K], добавлен 27.05.2009Чисельне інтегрування, формула Сімпсона, значення інтегралу від функцій та формули трапецій. Знаходження коренів рівняння методом Ньютона. Наближення функцій поліномами вищого порядку. Метод Ейлера та його модифікації. Визначення похибок розрахунків.
контрольная работа [6,1 M], добавлен 04.07.2010