Как согласовать экспоненциальную функцию с python - PullRequest
0 голосов
/ 26 мая 2020

Я новичок в python и пытаюсь научиться строить графики и подбирать данные. У меня есть эмпирическая формула для описания функции y (x), и я хочу подогнать ее к экспоненте вида: y = a * x ^ b

Я использую numpy .arrays, но я не уверен numpy .polyfit здесь полезен, потому что я не хочу соответствовать ни полиномам высокого порядка, ни экспонентам вида: y = a * e ^ (b * x).

Не могли бы вы предложить способ сделать это?

вот моя функция, здесь написано как y (E_n):

E_n = np.linspace(1, 10**6, 10**6)
y= 0.018*(E_n**(-2.7)) * (1/(1+(2.77*cos(45)*E_n/115)) + 0.367/(1+(1.18*cos(45)*E_n/850)))

Спасибо

1 Ответ

0 голосов
/ 26 мая 2020

Рассмотрите возможность использования scipy.optimize.curve_fit. Определите функцию желаемой формы и передайте ее функции. Внимательно прочтите связанную документацию. Во многих случаях вам может потребоваться передать выбранные начальные значения для параметров. curve_fit принимает все из них как 1 по умолчанию, и это может не дать желаемых результатов.

...