Как мне найти производную от sin (x) с помощью рекурсии? - PullRequest
1 голос
/ 28 ноября 2009

Как найти производную от sin (x), где x может быть любым значением, например, 1,2,3 с использованием рекурсии ?

Ответы [ 2 ]

8 голосов
/ 28 ноября 2009

Во-первых, производная от sin (x) есть cos (x) или, если выразиться более формально:

f(x) = sin(x)
f'(x) = cos(x)

Полагаю, вы могли бы решить грех (x), используя ряд Тейлора для cos (x) :

cos(x) = 1 - x^2/2| + x^2/4! + ...

с рекурсией. В Java:

public double cos(double x) {
  return 1 + next(-x*x/2, x, 3);
}

public double next(double term, double x, int i) {
  double next = -term * x * x / (i * (i + 1));
  return term + next(term, x, i + 2);
}

Конечно, для выхода из рекурсии вам понадобится установить ограничитель, в противном случае вы в конечном итоге получите ошибку переполнения стека, которая оставляется в качестве упражнения для читателя.

Да, и я вижу, что вопрос помечен как C, а не как Java, но это домашняя работа. : -)

0 голосов
/ 30 ноября 2009

Я думаю, вам нужно найти термины, которые вы пытаетесь использовать (производные и рекурсии). Если я читаю этот вопрос, звучит так, будто вы спрашиваете, как рассчитать:

производная от греха (3)

или

производная от греха (2)

или

производная от греха (1)

Ответ равен нулю для всех значений x, так что это не может быть тем, о чем вы спрашиваете. Рекурсия из этого в качестве отправной точки немедленно прекращается.

Можно только предположить, что вы хотите оценить производную от sin (x) [period]. Какое отношение рекурсия будет иметь к таким вычислениям, не ясно. Возможная интерпретация заключается в том, что вы ищете числовое приближение производной синуса и хотите рекурсивно сузить интервал, в течение которого вы вычисляете наклон.

Никто не сможет прочитать ваши мысли достаточно хорошо, чтобы ответить на ваш вопрос как есть, поэтому пришло время перефразировать его более точно. Возможно, примеры или фальсификация псевдокода будут полезны для более четкой демонстрации ваших намерений или проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...