Не могу понять математическую задачу и код решения задачи на C++
В ВУЗе, на 1 курсе, в очередной лабораторной работе попалось следующее задание.
Вывести на экран таблицу значений функции Y(x) и ее разложения в ряд S(x) для x, изменяющегося от a до b с шагом h = (b – a)/10.
a = 0.1, b = 1, в центре разложение в ряд, n = 80, в конце функция
До этого все задания были лёгкие, и я их решал, но на этом встрял капитально. Не могу даже понять с чего начать, в чём разобраться... Учусь заочно, методичек никаких толком нет.
В интернете нашёл код C++ с решением этого задания. Проверил его - вроде работает, но каждое значение x нужно вводить вручную и на экран выводится только одна строка.
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main () {
double a, b, h, d, x, y, s, p;
int n, i;
cout<<"Vvedite a, b, n"<<endl;
cin>>a>>b>>n;
h=(b-a)/10;
x=a;
cout<<setw(15)<<x<<setw(15)<<y<<setw(15)<<s<<setw(15)<<d<<endl;
do {
p=s=x;
for(i=1;i<=n;i++) {
p*=pow(x,2)/(2*i*(2*i+1));
s+=p;
}
y=(exp(x)-exp((-1)*x))/2;
d=fabs(y-s);
cout<<setw(15)<<x<<setw(15)<<y<<setw(15)<<s<<setw(15)<<d<<endl;
x+=h;
}
while(x<=b+h/2);
cout<<endl;
return 0;
}
Помогите мне, пожалуйста. Если разбираетесь в этом, то прокомментируйте само задание и код, чтобы я лучше понял, что нужно сделать.
