Аппроксимация логарифма с использованием среднего гармонического значенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Аппроксимация логарифма с использованием среднего гармонического значения

Сообщение Anonymous »

вот функция для аппроксимации log10(x+1), (x+1) < ~1,2

Код: Выделить всё

a = 1.097
b = 0.085
c = 2.31

ans = 1 / (a - b*x + c/x)
так это должно выглядеть так
он работает путем корректировки среднего гармонического значения в соответствии с log10
но проблема в значениях abc
Вопрос в том, как получить правильные значения a, b и c
и как добиться лучшего приближения
Я написал этот код, который может дать вам довольно хорошее приближение для , b, c
но мой код не смог сделать это лучше
вот мой код:

Код: Выделить всё

import numpy as np

a = 1
b = 0.01
c = 2

def mlg(t):
x = t
if t == 0:
x = 0.00000001
x2 = x*x
o = a - (b * x) + (c / x)
return 1/o

def mlg0(t):
x = t
if t == 0:
x = 0.00000001
x2 = x*x
o = a - (b * x) + (c / x)
return o

for i in range(9000):
n1 = np.random.uniform(0,1.19,1000)
for i in range(1000):
n = n1[i]
o = np.log10(n+1)
u = mlg(n) - o
e = u ** 2

de_da = 0 - 2 * (u) / (mlg0(n) ** 2)
de_db = de_da * n
de_dc = de_da / n

a -= de_da * 0.00001
b -= de_db * 0.00001
c -= de_dc * 0.00001

print(a,b,c)
есть ли у вас какие-нибудь идеи о том, как генерировать лучшие значения?
Я использовал метод обратного распространения в NN, но он не смог дайте мне ценности получше

Подробнее здесь: https://stackoverflow.com/questions/791 ... monic-mean
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»