Jestem nowy w Pythonie i próbuję dopasować funkcję Gaussa do równania Scherrera za pomocą Pythona, a problem polega na tym, że nie wiem, jak to zrobić. podobnie z modelem laurentza. Czy ktoś może mi wyjaśnić, jak to zrobić. Dzięki

Więcej wyjaśnień: dla wartości xiy chcę, aby były odczytywane z pliku tekstowego, a następnie używały ich w procesie.

0
Mark Shamoun 5 grudzień 2019, 15:10
Jako drogę do sukcesu spójrz na numpy, ponieważ niektórzy z nim pracują stackoverflow.com/questions/39973073/…
 – 
nicolallias
5 grudzień 2019, 15:20

2 odpowiedzi

Jeśli chcesz bardziej szczegółowego rozwiązania, prawdopodobnie powinieneś podać przykład.

Ogólnie rzecz biorąc, scipy.curve_fit jest świetnym rozwiązaniem większości problemów z dopasowaniem. Samouczek na ten temat znajdziesz tutaj. W szczególności istnieje również przykład dopasowania funkcji Gaussa: https://scipy-cookbook.readthedocs.io/items/FittingData.html#Fitting-gaussian-shaped-data.

1
beckstev 5 grudzień 2019, 15:24

Możesz zajrzeć tutaj: Gaussian pasuje do Pythona Nie mam pojęcia, w jaki sposób otrzymujesz dane, ale jeśli masz tylko funkcję, spróbuj wygenerować wartości za pomocą funkcji, aby uzyskać coś, co można dopasować do krzywej Gaussa.

0
Kai Winkler 5 grudzień 2019, 16:18
Czy wiesz jak dopasować krzywą dla całych punktów na wykresie nie tylko dla jednego piku?
 – 
Mark Shamoun
9 grudzień 2019, 21:23
Scipy.optimize.curve_fit (docs.scipy.org /doc/scipy/reference/generated/…) pasuje do wszystkich parametrów, a nie tylko do piku, Gaussowie mają tylko średnią i odchylenie standardowe, więc jeśli dopasowanie nie jest wystarczająco dobre, prawdopodobnie potrzebujesz innej funkcji.
 – 
Kai Winkler
10 grudzień 2019, 14:43