Решаю следующим образом (вычислено все верно)

#include <iostream>
#include <iomanip>
#include <cmath>

static double const A = 0;
static double const B = M_PI / 2;
static int const N = 12;

static double F(const double &x)
{
    return sin(x) / x;
}

static double Gauss12(const double& a, const double& b)
{
    double g[N + 1]; 
    double d[N + 1];
    double t[N + 1];
    double Int = 0;

    t[1] = 0.98156063424671924; d[1] = 0.04717533638650791;
    t[2] = 0.90411725637047491; d[2] = 0.10693932599531841;
    t[3] = 0.76990267419430469; d[3] = 0.16007832854334619;
    t[4] = 0.58731795428661748; d[4] = 0.20316742672304289;
    t[5] = 0.36783149899818018; d[5] = 0.23349253653835456;
    t[6] = 0.12523340851146891; d[6] = 0.24914704581340277;
    t[7] = -t[6]; d[7] = d[6];
    t[8] = -t[5]; d[8] = d[5];
    t[9] = -t[4]; d[9] = d[4];
    t[10] = -t[3]; d[10] = d[3];
    t[11] = -t[2]; d[11] = d[2];
    t[12] = -t[1]; d[12] = d[1];

    for (int i = 1; i < n; ++i)
    {
        g[i] = F( (a + b) / 2 + (b - a) / 2 * t[i] );
    }

    for (int i = 1; i < n; ++i)
    {
        Int += d[i] * g[i];
    }

    return Int * (b - a) / 2;
}

int main()
{
    std::cout << "Gauss \n";
    std::cout << "Answer = " << std::fixed << std::setprecision(20) << Gauss12(A, B) << std::endl;
    return 0;
}

Как оценить погрешность ? можно-ли вот так :

double int1 = Gauss12(A, B);
double int2 = Gauss12(A, C) + Gauss12(C, B);

double R = fabs((int1 - int2) / (std::pow(2, N) - 1));

Где R - погрешность, а N число узлов

задан 25 Июн '14 20:54

Напишите текстом, какую задачу решаете (формулировка задачи).

(25 Июн '14 22:10) cartesius
1

@arukasa, этот вопрос больше подходит для ХэшКода

(25 Июн '14 23:05) Expert

@Expert, там так же наоборот :)

@cartesius, Вычислить интеграл по формулам типа Гаусса и оценить погрешности

интеграл от 0 до pi/2 (sin/x * dx), n = 12

(27 Июн '14 18:51) arukasa

Решил, закрыто ;)

(28 Июн '14 10:06) arukasa

@arukasa, По возможности, публикуйте решение найденные самостоятельно, они будут крайне полезны тем, кто попадет в вопрос из поисковика.

(28 Июн '14 12:05) Expert

@Expert изначально предложенный мной вариант оказался правильным :) Точность превзошла все свои ожидания 1e-20 ;)

(29 Июн '14 14:16) arukasa
показано 5 из 6 показать еще 1
10|600 символов нужно символов осталось
Знаете, кто может ответить? Поделитесь вопросом в Twitter или ВКонтакте.

Ваш ответ

Если вы не нашли ответ, задайте вопрос.

Здравствуйте

Математика - это совместно редактируемый форум вопросов и ответов для начинающих и опытных математиков, с особенным акцентом на компьютерные науки.

Присоединяйтесь!

отмечен:

×68
×39

задан
25 Июн '14 20:54

показан
282 раза

обновлен
29 Июн '14 14:16

Отслеживать вопрос

по почте:

Зарегистрировавшись, вы сможете подписаться на любые обновления

по RSS:

Ответы

Ответы и Комментарии

Дизайн сайта/логотип © «Сеть Знаний». Контент распространяется под лицензией cc by-sa 3.0 с обязательным указанием авторства.
Рейтинг@Mail.ru