¿Cuál es la fórmula para la suma de la enésima suma parcial de una serie armónica en la que n es finito?

La suma parcial [matemática] n [/ matemática] es bastante molesta, desde mi perspectiva (probablemente estrecha). El denominador es fácil. Es solo [matemáticas] n! [/ Matemáticas]. Sin embargo, el nominador depende de los términos anteriores de una manera tonta. Si el nominador anterior fue [matemática] m [/ matemática], entonces el próximo nominador es [matemática] m (m + 1) [/ matemática] [matemática] + m! [/ Matemática].

Estos son algunos de los términos, comenzando en [math] n = 2 [/ math]:

[matemáticas] 1 + 1/2 = 3/2 [/ matemáticas]

[matemáticas] 1 + 1/2 + 1/3 = 11/6 [/ matemáticas]

[matemáticas] 1 + 1/2 + 1/3 + 1/4 = 50/24 [/ matemáticas]

Analizaremos solo los nominadores, comenzando en [math] n = 1 [/ math]:

[matemáticas] p_1 = 1 [/ matemáticas]

[matemáticas] p_2 = 2p_1 + 1! = 3 [/ matemáticas]

[matemáticas] p_3 = 3p_2 + 2! = 11 [/ matemáticas]

[matemáticas] p_4 = 4p_3 + 3! = 50 [/ matemáticas]

Esta es desagradable, ya que el producto se aplica a una suma, donde un término es factorial. Intentemos expandir [math] p_4 [/ math] de todos modos:

[matemáticas] p_4 = 4 (3p_2 + 2!) + 3! = [/ matemáticas]

[matemáticas] 4 (3 (2p_2 + 1!) + 2!) + 3! = [/ matemáticas]

[matemáticas] 4 (3 (2 (1) +1!) + 2!) + 3! [/ matemáticas]

Supongo que se ve bastante ordenado en algún sentido. Debería ser posible simplificarlo, aunque no estoy seguro de cómo hacerlo. De todos modos, para obtener el décimo término, lo calcula así:

[matemáticas] (10 (9 (8 (7 (6 (5 (4 (3 (2 (1)) +1!) + 2!) + 3!) + 4!) + 5!) + 6!) + 7 !) + 8!) + 9!) / 10! [/ Matemáticas]

Sugeriría crear una función en The Julia Language o similar, si desea explorar los nominadores y encontrar una expresión cerrada. Código:

# encuentra el enésimo nominador
función nth_nom (n :: Int)
m = BigInt (1)
f = BigInt (1) # bigints para manejar cualquier número de términos
para i en 2: n
m * = i
m + = f
f * = i
fin
metro
fin

# simple ingenua 1 + 1/2 + 1/3 +… implementación
nth_harm (n :: Int) = [1 / m para m en 1: n] |> suma

# enésimo término basado en nth_nom (n) / factorial (n) (solo necesita un reparto a BigInt)
nth_harm_nom (n :: Int) = nth_nom (n) / factorial (BigInt (n))

# compare los dos enfoques, para asegurarse de que el enfoque del nominador funcione
nth_compare (n :: Int) = nth_harm_rec (n) – nth_harm (n)

# Aquí están los primeros 40 nominadores:
# notas: broadcast (f, range) significa “aplicar f a cada elemento en el rango”
# f. (rango) es azúcar sintáctico para hacer una transmisión de este tipo

julia> nth_nom. (1:40)
Matriz de 40 elementos {BigInt, 1}:
1
3
11
50
274
1764
13068
109584
1026576
10628640
120543840
1486442880
19802759040
283465647360
4339163001600
70734282393600
1223405590579200
22376988058521600
431565146817638400
8752948036761600000
186244810780170240000
4148476779335454720000
96538966652493066240000
2342787216398718566400000
59190128811701203599360000
1554454559147562279567360000
42373564558110787183902720000
1197348677077520393310044160000
35027999979859805266492784640000
1059681761389533859949327155200000
33115387462887740717065450291200000
1067915237466585625763819972198400000
35504333673331019180373277094707200000
1215830662512066538628209615621324800000
42849305986961932992834955156389888000000
1552908163497015732671725036967559168000000
57829595376179483326321825815950524416000000
2211288377386046711446545360587700830208000000
86763269335522422858175276287020406669312000000
3490928655502094357685651333220719164129280000000