float f(float x) // функция, вычисляющая сумму членов ряда { int k=0; // номер члена ряда int k_fac=1; // k! float a=(2*k+1)*powf(x, 2*k) / k_fac; // вычисляем 0-ой член ряда float s=a; // s - сумма ряда while(fabs(a)>=EPS) // пока k-й член ряда (a) больше, чем заданная точность (EPS) { k++; // переходим к следующему члену ряда k_fac*=k; // вычисляем k! для нового k a=(2*k+1)*powf(x, 2*k) / k_fac; // вычисляем k-ый член ряда s=s+a; // прибавляем k-ый член ряда к сумме ряда } return s; // возвращаем результат - сумму ряда }
Answers & Comments
#include <iomanip>
#include <math.h>
using namespace std;
const float EPS=1e-3;
float f(float x) // функция, вычисляющая сумму членов ряда
{
int k=0; // номер члена ряда
int k_fac=1; // k!
float a=(2*k+1)*powf(x, 2*k) / k_fac; // вычисляем 0-ой член ряда
float s=a; // s - сумма ряда
while(fabs(a)>=EPS) // пока k-й член ряда (a) больше, чем заданная точность (EPS)
{
k++; // переходим к следующему члену ряда
k_fac*=k; // вычисляем k! для нового k
a=(2*k+1)*powf(x, 2*k) / k_fac; // вычисляем k-ый член ряда
s=s+a; // прибавляем k-ый член ряда к сумме ряда
}
return s; // возвращаем результат - сумму ряда
}
float f2(float x)
{
return (1+2*x*x)*exp(x*x);
}
int main()
{
cout<<" X"<<setw(10)<<" F(X)"<<setw(10)<<" F2(X)"<<endl;
for(int i=0;i<10;i++)
{
float x=0+i*0.1;
cout<<x<<setw(10)<<f(x)<<setw(10)<<f2(x)<<endl;
}
return 0;
}
0 1 1
0.1 1.03025 1.03025
0.2 1.12407 1.12408
0.3 1.2911 1.29113
0.4 1.54902 1.54903
0.5 1.92603 1.92604
0.6 2.46528 2.46533
0.7 3.23196 3.23199
0.8 4.32396 4.32398
0.9 5.88943 5.88952
{
int k=0; k_fac=1;
float a=(2*k+1)*powf(x, 2*k) / k_fac;
float s=a;
while(fabs(a)>=EPS)
{
k++;
k_fac*=k;
a=(2*k+1)*powf(x, 2*k) / k_fac;
s=s+a;
}
return s;
}