Równania, z którymi pracuję w tym problemie, zawierają wykładnicze. Z tego powodu, po rozróżnieniu, pojawiają się ponownie niezmienione, z wyjątkiem dodatkowych stałych i innych czynników. Zastanawiałem się, czy możliwe jest zebranie tych wykładników z powrotem w nazwę wyrażenia, w którym część. Oto przykład:Porządkowanie wypowiedzi po rozróżnieniu
Biorąc pod uwagę to definicja funkcji
f:= x -> A*exp(B/x)
Po różnicowania, można by uzyskać
A*exp(B/x)*(-B/x^2)
I byłoby wspaniale, gdybym mógł jakoś przekonwertować go do
f(x)*(-B/x^2)
Czy to możliwe z MuPadem lub jakimkolwiek innym pakietem CAS?
Jeśli chcesz po prostu rozpoznać funkcje, które są napisane tak samo jak oryginalna funkcja f było, możesz porównać ciągi (naprawdę głupia metoda). Ale jeśli chcesz, aby algorytm wyodrębnił funkcję z wyrażeń wykonujących operacje, będzie cholernie podstępny, ponieważ jest to problem z nieskończonymi możliwościami wyszukiwania ... Tak jak wtedy: "f: x -> x - 1" z funkcją wejścia z: (x^2 - 1). Możliwe jest wyrażanie funkcji wejściowej pod względem f (x) na wiele sposobów: f (x) * (x + 1), f (x)^2 + 2 * x - 2, a nawet: (x^2 - 1) + f (x) - (x - 1), itd ... – Guarita
Myślę, że sposób działania może zadziałać. @Guarita ma rację, możesz mieć funkcje, które są równe matematycznie, ale nie po przekonwertowaniu na ciągi znaków i które mogą stanowić problem, ale myślę, że możesz uprościć dowolną funkcję za pomocą polecenia 'upraszczaj 'w mupadzie i możesz powiedzieć funkcję, sposób (jak polinomial i inne rzeczy). Prawdopodobnie po prostu commadn zwróci ten sam "typ" równania, więc wynik może być porównywalny przez łańcuchy. Nie jestem pewny, czy to zadziała, a jeśli prawdopodobnie nie zadziałałby 100% razy, ale byłby to całkiem niezły aproach –
Rozumiem, co masz na myśli, ale tak jak na papierze, masz poczucie, która ekspresja jest lepsza w zależności od liczba czynników i tak dalej. Właśnie dlatego myślałem, że programy CAS również będą wiedzieć. –