A que se refiere esta formula

Hola experto, antes que nada agradezco tu disposición para con los usuarios, mi consulta es la siguiente:

tengo una consigna en programación que me dice:

Realizar un programa que permita evaluar la serie:

€(con una b arriba y a=0 abajo)1/x+ay

Y no se a que corresponde esta formula para armar el algoritmo, sospecho que es fibonacci pero tampoco la encontré exacta en internet.

Desde ya muchas gracias!!

1 Respuesta

Respuesta
1

El enunciado está muy confuso y se necesita saber qúe son las letras a, b, x, y. Si es un sumatorio hay que saber cuál es la variable con índices, luego tampoco tengo claro si el denominador es solo x o es x+ay.

Si tienes el problema impreso o en un fichero mira a ver si me puedes mandar el enunciado original a

[email protected]

Pon como asunto el título de la pregunta.

Y si no puedes mandarme el enunciado original intenta explicar de palabra todo lo que puedas. Sobre todo dime si ese símbolo € que has puesto es un sumatorio, multiplicatorio, integral o lo que sea

Dime si podría ser esto

$$\begin{align}&1)\quad \sum_{a=0}^b\left(\frac 1x+ ay\right)\\ &\\ &o esto\\ &\\ &2)\quad\sum_{a=0}^b \frac{1}{x+ay}\end{align}$$

con las letras x e y constantes en cada caso.

Gracias por tu respuesta valero, la formula es la que colcoaste en el inciso 2).

Ese sumatorio no es fácil se puede calcular pero es por medio de una función especial llamada Digamma

Digamma Wikipedia

Y la formula a usar la he obtenido mediante la web de

Wolframalpha

Donde había escrito

sum 1/(x+ay),a=0 to b

para que me diese la respuesta

$$\sum_{a=0}^b \frac{1}{x+ay}=\frac{\psi^{(0)}\left(b+\frac xy+1  \right)-\psi^{(0)}\left(\frac xy \right)}{y}$$

Según la Wikipedia

$$\begin{align}&\psi_0(x)\sim ln(x-\gamma)+2\gamma\\ &\\ &donde \;\gamma \approx 0,577\;215\;664\;901\;532\;860\;606\;\ldots \\ &\\ &\sum_{a=0}^b \frac{1}{x+ay}\sim \frac{ln\left(b+\frac xy+1-\gamma  \right)-ln\left(\frac xy -\gamma\right)}{y}\end{align}$$

Bueno, esto son deducciones que he hecho. En realidad no se que quieren decir en la Wikipedia con el símbolo ~. El que tiene dos ondas significa aproximadamente.

Lo mejor será probarlo, hagamos

por=0.2

y=0.6

b=10

Sumatorio = 1/0.2 + 1/0.8 + 1/1.4 + 1/2 + 1/2.6 + 1/3.2 + 1/3.8 + 1/4.4 + 1/5 + 1/5.6 + 1/6.2 =

9.191693472

Pues no se puede calcular esa aproximación porque el segundo término es el logaritmo neperiano de un número negativo

Hagamos

por=0.6

y=0.2

b=10

Sumatorio = 1/0.6 + 1/0.8 + 1/1 + 1/1.2 + 1/1.4 + 1/1.6 + 1/1.8 + 1/2 + 1/2.2 + 1/2.4 + 1/2.6 =

8.400668776

Comprobemos la función exacta dada por Wolframalpha, para ello entramos en la página y escribimos:

(digamma(10+0.6/0.2+1)-digamma(0.6/0.2))/0.2 =

8.400668775668...

Luego la resta de las digammas entre y está bien

Y ahora comprobemos la aproximación por logaritmos neperianos, para ello escribimos en la pagina de Wolframalpha

(log(10+0.6/0.2+1-gammaeuler)-log(0.6/0.2-gammaeuler))/0.2 =

8.5601807803666...

Pues la aproximación de los logaritmos neperianos (que en ingles se escriben log) es la que

Podemos calcular nosotros con una calculadora, pero no es nada buena.

Bueno vamos a recapitular. La suma esa no corresponde a algo habitual sino a funciones especiales del Análisis Matemático. Se puede calcular el valor en la página de WolframAlpha, con programas como Máxima (que lo he probado yo) y supongo que MathLab o algunas calculadoras científicas especiales que me aparecieron al buscar "calculadoras de digamma" en Google.

Respecto al programa informático es muy sencillo, no sé en que lenguaje lo harás pero es un bucle sencillo que supongo sabrás hacer, en Visual basic sería parecido a esto

b=10

por=0.6

y=0.2

suma=0

for a=0 to b

suma=suma+1/(por+a*y)

next

msgbox(str(suma))

Y eso es todo.

Hola valero, muchas gracias por tu gran explicación, no tenia internet por eso mi demora, mi ultima duda, con respecto a esta formula:

en mi aplicación, que parámetro puede ser ingresado por teclado? Puedo pedir al por, b e y o b e y son siempre fijos (constantes)?

Puedes ingresar los 3 por teclado, además tendrás que controlar que b sea un número entero positivo. No lo puse porque el tema de introducir datos depende mucho del lenguaje de programación usado. Incluso si es un lenguaje de tipo visual hay que crear tras TextBox y tomar los valores de esos TextBox.

Si fuese el antiguo BASIC te diría que se introducirían así los datos

Do

Input "b",b

Loop Until b>0 and b=int(b)

input "x", x

input "y", y

Pero es que nadie programa ya de esa forma.

De todas formas supongo que sabrás adaptarlo al lenguaje que uses.

Y eso es todo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas