Печать оптимизированных параметров функции для соответствия данным - PullRequest
0 голосов
/ 10 января 2020

Я пытаюсь согласовать уравнение логистики c с некоторыми данными.

import numpy as np
from scipy.optimize import curve_fit

x_data = [2015,2020,2025,2030,2035,2040,2045,2050,2055,2060,2065,2070,2075,2080,2085,2090,2095,2100]
y_data = [958577201,1094365605,1241173739,1399888471,1569045562,1746496103,1930190615,2117730886,2307230067,2496582852,2684012245,2867347398,3044554038,3213530118,3372147573,3519135875,3653665134,3775269513]
x_val = np.array(x_data)
y_val = np.array(y_data)

def fitFunc(x, L, k, c):
    return L/(1+np.exp(-k*(x-c)))
    print(L,k,c)

plt.plot(x_val, y_val, marker='.', markersize=0, linewidth='0.5', color='green')
popt, pcov = curve_fit(fitFunc, x_val, y_val)
plt.plot(x_val, fitFunc(x_val, *popt), color='orange', linestyle='--')

Я знаю, что график график

не масштабируется должным образом. Но это не имеет значения для меня. Я хочу напечатать оптимизированные значения (L, k, c), чтобы кривая logisti c лучше всего соответствовала данным. Тем не менее, это не показывает. Как мне увидеть эти 3 значения после того, как python соответствует графику?

1 Ответ

1 голос
/ 10 января 2020

Ваш print(L, k, c) расположен после return из fitFunc, поэтому он никогда не будет достигнут. Просто переместите печать на одну строку выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...