Вычислить указанную функцию с помощью функции серии C++
Функция ф (х) и серии должны в конечном итоге с тем же ответом Это моя попытка решения этой задачи, но это дает мне разные результаты, и я не в полной мере понять концепцию серии в C++
#include <iostream>
#include <math.h>
#include <cstdlib>
using namespace std;
int main()
{
float x, y1, y2, a;
int n;
cout<<"Enter x: ";
cin>>x;
cout<<"Enter n: ";
cin>>n;
if (x == 0) x = 3.0;
y1 = 1.0/(2.0*x+5.0);
a = 1.0/11;
y2 = a;
cout<<"f(x) = "<<y1<<endl;
if(x > -5.0/2.0 && x < 17.0/2.0){
for (int k = 0; k <= n; k++){
a = (a*(-1)*pow(2.0/11.0,k))/pow(11.0,k);
y2 = y2 + a;
}
}
else{
return 1;
}
cout<<"Sum = "<<y2<<endl;
system("pause");
return 0;
}
Я использовал любую х от -2,5 до 8,5 и п до 100 результаты всегда разные ... предполагается, что функция и сумма ряда должны иметь очень близкие, если не равные ответы, но это не в моем случае ..
Как я должен это делать? был бы рад за объяснением)
«Не работает» не является полезным описанием. –
Какие значения вы использовали для 'x' и' n'? Какие результаты вы получили? Как это неправильно? О, и вы делаете свои вычисления, используя значения «double», но сохраняете их в 'float'. Это само по себе вызывает проблемы округления. –
Сроки, в которых вы связаны, почти полностью не соответствуют вашим условиям. – molbdnilo