1 votos

Generación incremental de una curva logarítmica

¿Hay alguna forma de encontrar el incremento de un barrido log10 para una serie discreta a partir de los valores de inicio, parada y duración?

Por ejemplo, en el caso simple de un barrido lineal, el siguiente valor siempre se puede encontrar como.

$$y_n=y_{n-1} + (y_{finish}-y_{start})\frac{\Delta t}{t_{finish}}$$

Estoy un poco oxidado con logaritmos y no puedo calcular la ecuación similar para una curva log 10, ¿es posible?

0voto

Suzu Hirose Puntos 3759

No estoy 100% seguro de lo que intentas hacer pero puedes aproximar un logaritmo usando $\Delta x/x$ para que $$ \log(x+\Delta)=\log(x)+\Delta/x $$ He aquí una demostración numérica:

package main

import (
    "fmt"
    "math"
)

func main() {
    start := 1.0
    step := 0.01
    max := 1000
    logs := make([]float64, max)
    logs[0] = 0
    for i := 1; i < max; i++ {
        x := start + float64(i)*step
        logs[i] = logs[i-1] + step*1/x
        fmt.Printf("%.3f %.4f %.4f\n", x, math.Log(x), logs[i])
    }
}

Ejecútelo en línea aquí

Si necesita $\log_{10}$ entonces sólo hay que dividir por $\log(10)\approx2.3$ por lo que se incrementa en $\Delta/(x\times\log(10))$

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X