alex_deerk
@alex_deerk
В ответах некомпетентен. Пытаю Python

Точность рекуррентной формулы?

Нужно вычислить функцию при помощи рекуррентного соотношения членов ряда.
36713a1e09924ccf81bd6d94f3663fb9.png

Вот моя рекуррентная формула:
e652fb6e97ba4029acbcd4f52a5f6cf8.jpg

Код программы:
#include <cmath>
#include <iostream>
#include <conio.h>
using namespace std;

int main() {
	const double pi = 3.14159265358979323846;
	double x = pi / 2;
	double s = 0,
		eps = 1e-06;
	int k = 1;
	double elem = x * x;
	s = elem;
	while(fabs(elem) >= eps) {
		cout << k << " : " << elem << " : " << s << endl;
		++k;
		elem *= (-4 * x * x) / ((2 * k + 1) * (2 * k + 2));
		s += elem;
	}
	cout << "S: " << s << endl;
	cout << "MATH: " << sin(x) * sin(x);
	_getch();
    return 0;
}


Собственно проблема в том, что результат моей формулы бешено разнится с результатом функций из библиотеки. Есть подозрения, что формула не верна, но несколько раз переписывал.

053144f3ef1c4b0c89d974f78780598c.png
  • Вопрос задан
  • 594 просмотра
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вы вывели формулу получения k+1 элемента из k-го, а в программе используете её для получения k-го элемента из k-1. Это разные формулы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
Там только соотношение выведено правильно. Дальше нужно выбрать правильные начальные значения и правильную проверку для остановки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы