S
scipy-curve-fit
Use scipy.optimize.curve_fit for nonlinear least squares parameter estimation from experimental data.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
Use scipy.optimize.curve_fit for nonlinear least squares parameter estimation from experimental data.
How to use
- Zdefiniuj funkcję modelu, którą chcesz dopasować do danych. Na przykład dla odpowiedzi skokowej pierwszego rzędu: def step_response(t, K, tau): return y_initial + K * u * (1 - np.exp(-t / tau)), gdzie K to wzmocnienie, a tau to stała czasowa.
- Przygotuj dane eksperymentalne jako tablice NumPy: t_data zawierające punkty czasowe oraz y_data zawierające zmierzone wartości wyjścia.
- Podaj początkowe przybliżenia parametrów (p0), aby przyspieszyć zbieżność algorytmu. Możesz je oszacować z danych: K_guess = (y_data[-1] - y_initial) / u oraz tau_guess na podstawie czasu osiągnięcia 63,2% wartości końcowej.
- Opcjonalnie ustaw ograniczenia (bounds) dla parametrów, aby uniknąć fizycznie niemożliwych rozwiązań: bounds=([K_min, tau_min], [K_max, tau_max]).
- Wywołaj curve_fit z funkcją modelu, danymi oraz parametrami: popt, pcov = curve_fit(step_response, t_data, y_data, p0=[K_guess, tau_guess], bounds=...).
- Wyodrębnij wyniki: popt zawiera optymalne parametry [K_estimated, tau_estimated], a pcov to macierz kowariancji pokazująca niepewność estymacji.