Program do znalezienia wzoru matematycznego

Program do znalezienia wzoru matematycznego
Tomasz Działak
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

Witam, na wstępie dodam, że nie znam się ani trochę na programowaniu jednak jestem ciekawy czy istnieje taki program lub czy można go stworzyć. Otóż mam zbiór liczb w excelu i gotowy wynik. Czy istnieje jakiś program lub czy można taki napisać, który na podstawie tego zbioru liczb znajdzie mi wzór matematyczny tak aby po przeliczeniu wychodził ten wynik?

Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
3

To czego szukasz nazywa się aproksymacją lub ewentualnie interpolacją. Niemniej generalnie nie jest do doskonałe. Taka prosta interpolacja wielomianowa da ci wielomian który faktycznie w twoich zadanych punktach da poprawne wartości, ale niekoniecznie będzie szczególnie dokładne pomiędzy nimi. Aproksymacja (w zalezności od warunku) może dać lepsze średnie wyniki, ale niekoniecznie będzie dawać dokładnie twoje wartości w punktach.

To są mimo wszystko metody które działają z pewną tolerancją.

Gdybyś chciał znaleźć faktyczny wzór matematyczny (o ile taki w ogóle istnieje) to jest to dużo trudniejsze i nie ma tu prostej metody. Są pewne rozwiązania oparte o machine larning, ale nie ma gwarancji sukcesu.

Zobacz sobie np. tutaj https://planetcalc.com/8680/ przykład jak działa interpolacja wielomianowa.


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
edytowany 1x, ostatnio: Shalom
vpiotr
  • Rejestracja:prawie 14 lat
  • Ostatnio:prawie 3 lata
0

Możesz użyć "regresji symbolicznej" z użyciem programowania genetycznego.
Tu taki bardzo prosty przykład: https://community.datarobot.com/t5/resources/symbolic-regression-from-scratch-with-python/ta-p/4925

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 8 godzin
  • Lokalizacja:Wrocław
1
Tomasz Działak napisał(a):

Witam, na wstępie dodam, że nie znam się ani trochę na programowaniu jednak jestem ciekawy czy istnieje taki program lub czy można go stworzyć. Otóż mam zbiór liczb w excelu i gotowy wynik. Czy istnieje jakiś program lub czy można taki napisać, który na podstawie tego zbioru liczb znajdzie mi wzór matematyczny tak aby po przeliczeniu wychodził ten wynik?

Tak, ten program nazywa się Excel i potrafi obliczyć regresję liniową przy użyciu funkcji REGLINP, a jeśli nie jest to funkcja liniowa, to można zrobić wykres, a na nim dodać linię trendu, i tam już można wybrać wykładniczy/wielomianowy/logarytmiczny/potęgowy.
Jest też jakiś dodatek do analizy danych.

No i jak znam życie, to w takim Pythonie to się robi w pół linijki kodu, tylko trzeba znaleźć pakiet nazwany gatunkiem odpowiedniego zwierzątka.

A jeśli chcesz pisać samemu, to poczytaj o regresji liniowej i metodzie najmniejszych kwadratów i nie łap się na buzzwordy w stylu machine learning, bo to 4 razy większe koszty za 2 razy gorszy efekt.

edytowany 1x, ostatnio: somekind
AK
  • Rejestracja:prawie 7 lat
  • Ostatnio:około 2 miesiące
  • Postów:3561
1
Shalom napisał(a):

To czego szukasz nazywa się aproksymacją lub ewentualnie interpolacją. Niemniej generalnie nie jest do doskonałe. Taka prosta interpolacja wielomianowa da ci wielomian który faktycznie w twoich zadanych punktach da poprawne wartości, ale niekoniecznie będzie szczególnie dokładne pomiędzy nimi. Aproksymacja (w zalezności od warunku) może dać lepsze średnie wyniki, ale niekoniecznie będzie dawać dokładnie twoje wartości w punktach.

To są mimo wszystko metody które działają z pewną tolerancją.

Gdybyś chciał znaleźć faktyczny wzór matematyczny (o ile taki w ogóle istnieje) to jest to dużo trudniejsze i nie ma tu prostej metody. Są pewne rozwiązania oparte o machine larning, ale nie ma gwarancji sukcesu.

Zobacz sobie np. tutaj https://planetcalc.com/8680/ przykład jak działa interpolacja wielomianowa.

Inaczej mówiąc, przy metodach numerycznych wzór jest znany (np wielomian) tylko poszukiwane są najlepiej pasujące liczby - z drugiej strony jest poszukiwanie CHARAKTERU zalezności

Tomasz Działak napisał(a):

Witam, na wstępie dodam, że nie znam się ani trochę na programowaniu jednak jestem ciekawy czy istnieje taki program lub czy można go stworzyć. Otóż mam zbiór liczb w excelu i gotowy wynik. Czy istnieje jakiś program lub czy można taki napisać, który na podstawie tego zbioru liczb znajdzie mi wzór matematyczny tak aby po przeliczeniu wychodził ten wynik?

Zbiór jest 17 905 24 8 121 89. Wynik 23
Jakim wzorem "podrobić" wynik? 23

Czujesz, że dla jednego zestawu danych to kant d rozbić? Próbek musi być wiele, bardzo wiele.


Bo C to najlepszy język, każdy uczeń ci to powie
ĆK
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:59
0

Co to znaczy "wynik" 23? Wynik czego? Nie łapię.

AK
Ponieważ kol nie pochwalił się liczbami, ja dałem jakiekolwiek z głowy.Jeśli jest jeden komplet danych istnieje nieskończenie wiele rozwiązań, byle dały 23
Tomasz Działak
  • Rejestracja:ponad 4 lata
  • Ostatnio:ponad 4 lata
  • Postów:2
0

@AnyKtokolwiek: Próbek akurat mi nie brakuje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.