Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
44
Добавлен:
02.05.2014
Размер:
33.79 Кб
Скачать

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

по технологическому программированию

«Вычисление значений определенного интеграла методом прямоугольников и методом трапеций»

Выполнил: Егоров Михаил

Группа: БИ-1-05

Цель работы: разработать и отладить программу, которая будет осуществлять вычисление значения определенного интеграла двумя численными методами и сравнительный анализ этих методов.

1.Задание.

Необходимо разработать программу на языке Си, производящую вычисление определенного интеграла функции F(x) на отрезке [a,b] методом прямоугольников и методом трапеций.

2.Методы решения.

а) Метод прямоугольников.

б) Метод трапеций.

3.Описание переменных.

n число итераций

x- текущее значение аргумента

dxшаг выборки аргумента (х)

t0, t1 – промежуточные значения функции

a, bпределы интегрирования

startp, endp, startt, endtзначения внутреннего таймера начала и конца выполнения расчетов методом прямоугольников и методом трапеций соответственно

st, spзначения интеграла для методов трапеций и прямоугольников соответственно.

ct, cp – время выполнения расчетов для методов трапеций и прямоугольников.

4.Блок-схема.

5.Результат.

число итераций

метод прямоугольников

метод трапеций

значение

время

значение

время

1000

0.000005

0.109890

0.000000

0.164835

6000

0.000002

0.604396

0.000006

1.153846

11000

0.000000

1.153846

0.000002

2.032967

16000

0.000006

1.703297

0.000000

3.021978

21000

0.000005

2.197802

0.000000

3.956044

26000

0.000000

2.747253

0.000000

4.890110

6.Исходный текст программы.

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <time.h>

void main()

{

clrscr();

clock_t startp,endp,startt,endt; //timer

int n; //chislo iteracii

double x; //argument

double t0,t1; //znach funkcii

float dx; //shag

float st,sp,ct,cp; //int i vremya

float a,b; //predely

a=0;

b=2*3.14159;

printf("N\tint_pryam\ttime_pryam\tint_trap\ttime_trap\n");

for (n=1000; n<30000; n+=5000)

{

st=0;

sp=0;

dx=(b-a)/n;

//metod trapecii

startt=clock();

for (x=a; x<=b; x+=dx)

{

t0=sin(x)+(0,5*sin(2*x));

t1=sin(x+dx)+(0,5*sin(2*(x+dx)));

st=st+(0.5*(t1-t0)*dx);

}

endt=clock();

//metod pryamougolnikov

startp=clock();

for (x=a; x<=b; x+=dx)

{

t0=sin(x)+(0,5*sin(2*x));

sp=sp+(t0*dx);

}

endp=clock();

//raschet vremeni

ct=(endt-startt)/CLK_TCK;

cp=(endp-startp)/CLK_TCK;

printf("%d\t%lf\t%lf\t%lf\t%lf\n",n,sp,cp,st,ct);

}

}

Соседние файлы в папке Лабораторные работы6