2013-04-05 18 views
6

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?

+0

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

+0

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 –

+0

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ć. –

Odpowiedz

0

Łatwo w klon, używać Komenda Zmiana algsubs

> f:= x -> A*exp(B/x) 
> g := diff(f(x), x) 
> algsubs(A*exp(B/x) = F, g) 

Dla bardziej złożonych wyrażeń, spróbuj collect

+0

W MuPad funkcja nazywa się "subsex". Nie próbowałem tego jeszcze, ale myślę, że jest to najbardziej możliwe, aby oczyścić ekspresję. Dzięki. –

Powiązane problemy