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

Вычисление интеграла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Простая задача. http://www.cyberforum.ru/cpp-beginners/thread55246.html
Пожалуйста помогите кто может, очень нужно Даны натуральное число n, действительные числа a1,...,an (1 и n это нижние индексы). Выяснить образуют ли возрастающую последовательность числа: a1,...,an, 2a1, 3a2,...,(n+1)an (опять же 1, n, 2 нижние индексы). заранее огромное спасибо.
C++ Связь С++ с программой на ассемблере Помогите пожалуйста! Не удается создать связь Borland C++ v5.02 с программой на ассемблере через стек. при удалении строк с вызовом внешней функции и компилированием всё работает. при компилировании с ключом -S вызов функции в Pfar идет near.. программа на С++ файл zad77.cpp /* Главная программа на языке Си для сопряжения с подпрограммой на Ассемблере. http://www.cyberforum.ru/cpp-beginners/thread55230.html
C++ Метод сортировки выбором!!!
ВАРИАНТ 21 Написать программу, которая методом сортировки выбором сортирует введенный пользователем массив слов. Также найти количество операций сравнения и перестановок (присвоений) необходимых для сортировки исходного массива.
C++ проверка символа на принадлежность к буквам русского алфавита
Дан символ. Проверить: является ли данный символ гласной буквой русского алфавита(независимо от регистра). Объясните, пожалуйста, как решить задачу, еще только познаю азы программирования :)
C++ Результат запуска ракеты в зависимости от скорости http://www.cyberforum.ru/cpp-beginners/thread55173.html
Народ помогите пожалуста решить практическую работу, то я многого еще не понимаю. 1. Построить блок-схему, алгоритм и проверить правильность выполнения алгоритма: Составьте алгоритм вычисления суммы цифр введенного с клавиатуры натурального числа от 100 до 999. Например, для числа 128 сумма цифр 11, а для числа 34 сумма цифр 7. 2. Построить блок-схему, алгоритм и проверить правильность...
C++ Proc Описать функцию SumRange (A,B) целого типа, находящую сумму всех целых чисел от А до В включительно (А и В-целые). если А>B, то функция возвращает 0. С помощью этой функции найти суммы чисел от А до В и от В до С, если даны числа А, В и С. Я не могу понять, как найти сумму всех целых чисел в Си. Заранее спасибо. подробнее

Показать сообщение отдельно
GRANDEATH
39 / 39 / 1
Регистрация: 13.09.2009
Сообщений: 108
08.10.2009, 21:35     Вычисление интеграла
Считаю интеграл на промедутке от -1 до 3... Интеграл a*a*a*a. Точность вычисления 0.00001... Код выполняется 10-12 секунд. Это нормально или можно оптимизировать? Метод вычисления прямоугольники или трапеции ( в принципе без разницы.. И там и там где-то 10 сек. ) На других функциях ( y = sin x, y = x) менее чем за 150 миллисекунд. Что можете сказать? Приложу код на С++, но это не важно, важен алгоритм...
Код

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
33
34
35
36
37
38
39
40
41
42
43
double IntRect(fptr f, double xn, double xk, double eps,long int* n, bool * br)
{
    
    if ( xk <= xn) 
    {
        cout << "Err";
        return 0;
    }
    double S1 = 0, S2;
    double delta = DELTA_PRESET;
 
    (*n) = 0; // Обнуляем число шагов
    DELTA_DEC  = 0.5; //Коэффициент уменьшения  
    do
    {
        S2 = S1;
        S1 = 0;
        
        (*n)++;
        
        //double delta = ( xk - xn ) / eps;
        for (double i = xn; i < xk + delta; i += delta)
        {
            if ( i > xk)
            {
                S1 = S1 * delta; // Умножаем сумму высот на дельта
                S1 = S1 + ( delta - (i - xk) ) * ( f( (i - delta + xk) /2.0)   ); // Находим интеграл последнего отрезка
                break;
            }
            S1 = S1 + f(i + delta / 2.0);
            
        }
        if ( (clock() - t1) > MAX_TIME)
        {
                (*br) = true; // Выполнение прервалось
                break;
        }
        delta *= DELTA_DEC; // Уменьшаем  дельту в DELTA_DEC раза
        
 
    } while ( fabs(S1-S2) > eps);
    return ( (S1+S2) / 2);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru