Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Ряд Тейлора


Автор: ali999 30.4.2017, 17:13
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) с точностью ε . Вывести число итераций, необходимое для достижения заданной точности. Вычисление S(x) и Y(x) оформить в виде функций
Не работает программа, помогите подправить код и правильно вычислить. Или же, написать свою, если моя не устраивает, не думаю что вам она понравится. Не знаю уже как оформить правильно. 




Код

#include <iostream>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <locale>
#include <math.h>

using namespace std;


double f(double x)
{
return pow(1+x,1/3);
}

int main()
{

setlocale(LC_ALL, "Rus");

double a = -0.9, b = 0.9;
double h = 0.1;
double eps = 0.001;
double factorial(int k)
{
  if (k <= 1) {
    return 1.0;
  }
  else {
    return k * factorial(k-1);
  }
}

for (double x = a; x <= b; x += h)
{
double y = f(x);
double sum = pow(1+x,1/3);

int k = 2; while (fabs(sum - y) > eps)
{
k++;

sum +=((3*k)-4)*pow(x,k)/pow(3,k)*factorial;
}
cout << "x=" << x << " y(x)=" << y << " S(x)=" << sum << " k=" << k << endl;
}
system("pause");
return 0;
}

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