Помогите задать в C++ функцию, заданную с помощью ряда (1-й скрин). Остальная часть...

0 голосов
25 просмотров

Помогите задать в C++ функцию, заданную с помощью ряда (1-й скрин).
Остальная часть задания во втором скрине.


image
image

Информатика (475 баллов) | 25 просмотров
0

Предположу, что все-таки тут неправильно написано условие остановки

0

Имеется в виду, что разница F(в которой n элементов в последовательности) и F(в которой n+1 эемент последовательности) должно быть меньше eps?

0

Просто как бы вот так, как у тебя написано, писать неправильно)

0

Кстати, тебе важно, чтобы было красиво или просто, чтобы работало? :D

Дан 1 ответ
0 голосов
Правильный ответ

#include "stdafx.h"
#include
using namespace std;
double fact(int n)
{
if (n == 0)
return 1;
double res=1;

for (int i = 1; i <= n; i++)</span>
res = res*i;

return res;
}

int main()
{
double prev, act, fun = 0, x,eps;

cin >> x;

cin >> eps;

int n = 0;

prev = (pow(-1,n)*(pow(3, 2 * n) + 3)*pow(x, 2 * n) / fact(2 * n))/4;
n++;
act = prev + (pow(-1, n)*(pow(3, 2 * n) + 3)*pow(x, 2 * n) / fact(2 * n)) / 4;
while (abs(prev - act) > eps)

{

prev = act;

n++;

act = prev + (pow(-1, n)*(pow(3, 2 * n) + 3)*pow(x, 2 * n) / fact(2 * n))/ 4;
}
double b = sqrt(abs((act*act - pow(pow(cos(x), 3),2))));
 
return 0;
}

(2.7k баллов)