Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Exоrcist
15 / 15 / 7
Регистрация: 20.02.2014
Сообщений: 86
#1

Метод прямоугольников (трудности по коду) - C++

02.04.2014, 21:42. Просмотров 653. Ответов 2
Метки нет (Все метки)

Добрый день.
У меня есть программка, которая вычисляет интеграл методом прямоугольников - писал ни я сразу скажу - просто пытаюсь разобраться в коде.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    static int a = 0; // пределы интегрирования
    static int b = 1;
    static double e = 0.0001;//точность
    static double h = 0.05; //шаг
  
    int amount = 0; 
    double func (double x)
    {
        return Math.cos(x);
    }  
    //метод левых прямоугольников c постоянным шагом
    double LevPrCons(double a, double b, double h)
    { double x = 0; 
      double otv = 0;
    
    for (x = a; x<b; x+=h){
        otv = (otv+func(x));
        
    }
      otv*=h;
      return otv;
    }
    //метод левых прямоугольников c автоматическим шагом
    double LevPrAuto(double a, double b)
    { 
        double otv1 = LevPrCons(a,b,b-a);
        double otv2 = LevPrCons(a,b,(b-a)/2);
        amount++;
        if( Math.abs(otv1-otv2) < e*(b-a)/(b-a) ) return otv2;
   else return LevPrAuto(a,(a+b)/2) + LevPrAuto((a+b)/2,b);
      
    }
объясните, что в ней происходит, особенно я не понял этой строчки:
C++
1
2
3
amount++;
        if( Math.abs(otv1-otv2) < e*(b-a)/(b-a) ) return otv2;
   else return LevPrAuto(a,(a+b)/2) + LevPrAuto((a+b)/2,b);
Заранее спасибо!

Добавлено через 6 часов 27 минут
апну
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2014, 21:42     Метод прямоугольников (трудности по коду)
Посмотрите здесь:

Метод прямоугольников - C++
Здравствуйте! Есть выражение: y = −2^2 + 3x + 6, y = x + 2. Использовать метод прямоугольников. Для построения прямоугольника...

С++ Метод прямоугольников - C++
Помогите пожалуйсто с задачкой. Метод вроде понятен, но составить прграмму неполучается что-то. Составьте программу находящую значение...

метод прямоугольников - C++
помогите пожалуйста написать код программы. Составить алгоритм и записать программу, которая выполняет итерационной алгоритм метода...

Метод трапеций и прямоугольников - C++
Выручайте.Если до понедельника не сделаю-не поставит препод зачет.Необходимо написать программу на c++/с#.Что бы в ней указать значение...

Метод прямоугольников (всё ли правильно?) - C++
Доброго времени суток Задачка такова Использовать метод прямоугольников. Для Построения прямоугольника использовать середину...

Метод левых и правых прямоугольников - C++
Здравствуйте, написал функцию для левых прямоугольников для приближенного вычисления определенного интеграла. Помогите написать для правых...

Найти интеграл, метод прямоугольников - C++
Помогите пожалуйста считает что интеграл равен 0. Считал в маткакде получился ответ 13,963 /// ConsoleApplication3.cpp: определяет...

Метод средних прямоугольников для функции - C++
Напишите пожалуйста формулу средних прямоугольников для функции в c++ , а то уже все облазил и не нашел.

Решение интеграла метод центральных прямоугольников - C++
Здравствуйте товарищи программисты. Прошу помощи с решением задачи. Пишу курсовик и там надо посчитать интеграл на C++ методом центральных...

Метод прямоугольников для решения определенных интегралов - C++
Есть рабочий код метода трапеции для решения определенных интегралов. Формулу нужно заменить для метода прямоугольников. Вот код: ...

Организовать поиск книги по коду, используя М-блочный метод - C++
Дан массив записей, каждый из которых содержит информацию: код книги, автор, название книги, издательство, год выпуска, количество страниц....

Даны стороны трех прямоугольников Найти периметры и площади этих прямоугольников - C++
1. S1=SSS(a1, b1); S2=SSS(a2, b2); S3=SSS(a3, b3); -------------------------------- int SSS(int a, int b) { return (a*b);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6282 / 5885 / 1906
Регистрация: 18.12.2011
Сообщений: 15,099
Завершенные тесты: 1
02.04.2014, 21:49     Метод прямоугольников (трудности по коду) #2
C++
1
2
3
4
5
6
7
8
9
//метод левых прямоугольников c автоматическим шагом
double LevPrAuto(double a, double b)
{ 
        double otv1 = LevPrCons(a,b,b-a); // считаем площадь прямоугольника с основанием b-a
        double otv2 = LevPrCons(a,b,(b-a)/2);// считаем площадь 2-x прямоугольников с основаниями (b-a)/2
        amount++;
        if( Math.abs(otv1-otv2) < e*(b-a)/(b-a) ) return otv2;// если разница в площадях маленькая - это ответ
   else return LevPrAuto(a,(a+b)/2) + LevPrAuto((a+b)/2,b); // делим интервал на 2 половинки и в каждой считаем площади отдельно
}
Exоrcist
15 / 15 / 7
Регистрация: 20.02.2014
Сообщений: 86
09.04.2014, 21:54  [ТС]     Метод прямоугольников (трудности по коду) #3
zss, спасибо большое!
Yandex
Объявления
09.04.2014, 21:54     Метод прямоугольников (трудности по коду)
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru