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

интеграл методом Симпсона - C++

Восстановить пароль Регистрация
 
boriskka
Сообщений: n/a
15.05.2013, 14:46     интеграл методом Симпсона #1
нужно посчитать интеграл: ∫32(1/(x*lgx))dx
кол-во разбиений - 36
шаг вычисления первообразной - 0,2
результат выдать с точностью 0,001
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
#include <stdio.h>
#include <cmath>
#include <conio.h>
#include <iostream>
using namespace std;
#define n 72
int i;
float a, b, h, x, s, s1, s2, f[n];
 
int main()
{
    setlocale(LC_ALL,"");
    cout << "Введите значения пределов a и b:\n";
    cout << "\na = ";
    cin >> a;
    cout << "\nb = ";
    cin >> b;
    h = (b-a)/n;
    f[0] = 1/(a*log10(a));
    f[72] = 1/(b*log10(b));
    for (i=1; i < n-1; i++)
    {
        x = (a+i*h);
        if (i%2==0)
        {
            f[i] = 1/(x*log10(x));
            s1+=f[i];
        }
        else
        {
            f[i] = 1/(x*log10(x));
            s2+=f[i];
        }
    }
    s = (h/3)*(f[0]+f[72]+(2*s1)+(4*s2));
    printf ("\nЗначение интеграла S по формуле Симпсона = %f", s);
    getch();
    return 0;
}
программа выдает результат 1,047427
результат через mathematica 1,06048.
посмотрите пожалуйста в чем может быть ошибка и недочеты)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 14:46     интеграл методом Симпсона
Посмотрите здесь:

C++ Решить методом трапеций или Симпсона определенный интеграл
Вычислить методом Симпсона C++
Интеграл методом Симпсона C++
C++ Найти ошибку в программе. Интеграл по формуле Симпсона,
Интеграл функции методом трапеций, прямоугольника и Симпсона C++
Найти интеграл методами правых прямоугольников и Симпсона C++
C++ Интеграл методом Симпсона и трапеции (Code::Blocks)
Вычислить интеграл методом Симпсона C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
15.05.2013, 14:54     интеграл методом Симпсона #2
boriskka, если вы поставите
вместо
Цитата Сообщение от boriskka Посмотреть сообщение
#define n 72
C++
1
#define n 50000
Тогда выдаст 1,060468
boriskka
Сообщений: n/a
15.05.2013, 16:00     интеграл методом Симпсона #3
а как эту цифру обосновать?
и куда здесь поставить шаг первообразной?

Добавлено через 44 минуты
нашел в for (i=1; i < n-1; i++) -> for (i=1; i < n; i++)
Yandex
Объявления
15.05.2013, 16:00     интеграл методом Симпсона
Ответ Создать тему
Опции темы

Текущее время: 21:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru