Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Пожалуйста, как запрограммировать расчёт интеграла


Автор: Pl.Posayshen 16.11.2004, 10:07
Здравствуйте!
Сразу приношу извинения за нерациональное использование форума.
У меня горит контрольная по программированию на С.
Буду очень благодарен если поможете с ответом на вопрос.
Написать программу приближённого вычисления интеграла функции F(х)= 5х-х+2 методом прямоугольников.
Если будите отвечать то не шибко умно, что бы я хоть немного разобрался.
Заранее благодарен.
Спасибо.

Автор: Monomah 16.11.2004, 12:23
Pl.Posayshen, это делается всё просто:
берёшь промежуток, на котором будет рассчитан интеграл, делишь его на равные части, пусть их число - n. Тебе будет известна их ширина (пусть dl ). Потом, делаешь цикл такой, чтобы он прокрутился n раз. В цикле считаешь площать маленького прямоугольника (dl*F(i*n)). Суммируешь все эти площади и получаешь число. Оно то и есть твой интеграл.
вот как это может выглядеть:

float integ=0, dl;
float l=10; // пуст это интервал, на котором находим интеграл
int n=100; // число промежутков, на которые разбиваем l

dl=l/n;

for (i=0;i<n;i++)
{
integ+=dl*(5*(i*dl)-i*dl+2);
}

вот и всё. Чем n больше, тем точнее посчитается интеграл. Здесь интеграл считается на интервале [0;l], если нгада делать смещение, то .... думай сам

Автор: Pl.Posayshen 16.11.2004, 13:50
Monomah друг спасибо.

Автор: Kurt 19.11.2004, 20:46
Я помню в свое время нас заставляли запрограммировать кучу адгоритмов нахождения интеграла.

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

Имеется ввиду левых прямоугольников или правых? Ведь результат будет немного разный в зависимости от выбранного алгоритма.
Если используются левые прямоугольники (т.е. в качестве высоты прямоугольника будет точка, соотв. НАЧАЛУ кусочка, на к-е разбит отрезок), то полученная площадь будет меньше "настоящей", если правых прямоугольников(в качестве высоты берется точка ф-ции, соотв. концу кусочка) - чуток больше.

Автор: Hroft 20.11.2004, 09:20
smile Зависит от знака производной.
Ты написал про монотонно возрастающую функцию (и то не совсем).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)