Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C++] Решение задачи с помощью рядов


Автор: inconflict 14.11.2011, 17:44
3) Найти функцию с точностью e , т.е. пока |fn+1-fn| < e . Определить необходимое число членов ряда. Определить абсолютную разность между табличной функцией и суммой ряда. Определить с какой точностью в машине определяется эта функция.
cos(x) = 1 - x2/2! + x4/4! ...

Автор: borisbn 15.11.2011, 10:48
Код

#include <math.h>
#include <iostream>
#include <iomanip>

const double e = 1e-42;

int main()
{
    double x = 0.42;
    double sum = 1;
    double prev_fact = 1;
    int i = 1;
    for( ;; i++ )
    {
        prev_fact = prev_fact * ( i * 2 - 1 ) * ( i * 2 );
        double toAdd = ( ( i % 2 == 0) ? 1 : -1 ) * pow( x, i * 2 ) / prev_fact;
        if ( fabs( toAdd ) < e )
            break;
        sum += toAdd;
    }
    std::cout << std::scientific << "cos( x ) = " << cos( x ) << "  sum = " << sum << "  i = " << i;
}


http://liveworkspace.org/code/a74ad2292134615a5dc18c283b2403b1
Цитата(inconflict @  14.11.2011,  17:44 Найти цитируемый пост)
Определить абсолютную разность между табличной функцией и суммой ряда. Определить с какой точностью в машине определяется эта функция.

Вот этого не понял. Разве разность не должна быть равна заданному epsilon ?
В общем, саму функцию я тебе написал - дальше сам.

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