O objetivo deste desafio é usar o método de Euler para aproximar a solução de uma equação diferencial da forma f (n) (x) = c. †
A entrada será uma lista de números inteiros, em que o n th valor representa o valor de f (n) (0). O primeiro número inteiro é f (0), o segundo é f '(0) e assim por diante. O último número inteiro nesta lista é a constante e sempre permanecerá o mesmo.
Também fornecido como entrada, será um número inteiro positivo (diferente de zero) x , que representa o valor alvo (você está tentando estimar f (x)). O tamanho da etapa para o método de Euler será sempre 1. Portanto, você precisará executar x etapas no total.
Se você não é familiar com o método de Euler, aqui está um exemplo detalhado com uma explicação para a entrada [4, -5, 3, -1]
, x = 8.
x f(x) f'(x) f''(x) f'''(x)
0 4 -5 3 -1
1 4-5 = -1 -5+3 = -2 3-1 = 2 -1
2 -1-2 = -3 -2+2 = 0 2-1 = 1 -1
3 -3+0 = -3 0+1 = 1 1-1 = 0 -1
4 -3+1 = -2 1+0 = 1 0-1 = -1 -1
5 -2+1 = -1 1-1 = 0 -1-1 = -2 -1
6 -1+0 = -1 0-2 = -2 -2-1 = -3 -1
7 -1-2 = -3 -2-3 = -5 -3-1 = -4 -1
8 -3-5 = -8
Essencialmente, cada célula na tabela gerada é a soma da célula acima dela e da célula acima e à direita. Então, f (a) = f (a-1) + f '(a-1); f '(a) = f' (a-1) + f '' (a-1); e f '' (a) = f '' (a-1) + f '' '(a-1). A resposta final é f (8) ≈ -8. ††
A lista de entrada sempre conterá 2 ou mais elementos, todos com valores absolutos menores que 10. x ≥ 1 também é garantido. A saída é um único inteiro, a aproximação de f (x). A entrada pode ser obtida em qualquer ordem (a lista antes de x ou x antes da lista). x também pode ser o primeiro ou o último elemento da lista, se desejado.
Casos de teste:
[4, -5, 3, -1], x = 8 => -8
[1, 2, 3, 4, 5, 6], x = 10 => 3198
[1, 3, 3, 7], x = 20 => 8611
[-3, 3, -3, 3, -3, 3, -3, 3, -3], x = 15 => -9009
[1, 1], x = 1 => 2
†: é notável que o uso de um método de aproximação nessa situação seja, de fato, estúpido. no entanto, a função mais simples possível foi escolhida para os propósitos deste desafio.
††: o valor real passa a ser -25⅓, o que qualificaria essa aproximação como "não muito boa".