Не могу понять, где подвох

271
10 февраля 2017, 04:11

Хочу написать разложение в степенной ряд функцию ln(x+1) по известной всем формуле (можно посмотреть на сайте http://edu.sernam.ru/book_p_math2.php?id=81). Либо я не понимаю смысл разложения, либо что-то делаю не так, но итоговый ответ не удовлетворяет. Программа, по сути, простая.

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <cmath>
using namespace std;
int main()
{
    setlocale(0, "");
    double x, val, sum = 0;
    int i;
    cin >> x;
    for (i = 1; i <= 100; i++)
    {
        val = (pow(-1, (i + 1))*pow(x, i)) / i;
        cout << " " << val;
        sum += val;
        cout << " " << sum << endl;
    }
    cout << "Логарифм мой: " << sum << endl;
    cout << "Логарифм реальный: " << log(x+1);
    cout << endl;
    system("pause");
    return 0;
}
Answer 1

Видимо, вы забываете, что этот ряд сходится только для |x|<1.
У вас считает правильно, но несколько неоптимально, так что я переписал заново.

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main()
{
    double x;
    cout << "Input x (-1,1): ";
    cin >> x;
    if (fabs(x) >= 1.0)
    {
        cerr << "Wrong value\n";
        return 1;
    }
    double sum = x, term = x;
    double eps = 1e-8;
    for(int k = 2; fabs(term)/sum >= eps ; ++k)
    {
        sum += term *= -x*(k-1)/k;
    }
    cout << "Sum is      " << setprecision(10) << sum << endl;
    cout << "Log(1+x) is " << setprecision(10) << log(1+x) << endl;
}
READ ALSO
Как вывести вывод командной строки в CheckedListBox?

Как вывести вывод командной строки в CheckedListBox?

У меня есть программа на с++ с графическим интерфейсом написанная на Visual Studio 2012Скриншот прикрепил (mal

305
Объявление указателей через запятую

Объявление указателей через запятую

Данное предложение объявляет два указателя или указатель и объект? Верно ли это для любого типа переменных?

298
Логирование входа в phpmyadmin

Логирование входа в phpmyadmin

Можно ли каким-либо образом посмотреть логи входа в phpmyadmin (логин, время)? Или самому реализовать логирование? Phpmyadmin находится на VPS (CentOS)

399
Можно ли выполнить запрос &ldquo;выборка&rdquo; с помощью хранимых процедур из Access?

Можно ли выполнить запрос “выборка” с помощью хранимых процедур из Access?

Используется - Access - 2016 - MySql 55 x 64 - Odbc - mysql-connector-odbc-5

284