2013-04-05 15 views
6

Le equazioni su cui sto lavorando in questo problema contengono esponenziali. Per questo motivo, dopo la differenziazione appaiono di nuovo pressoché invariati a parte le costanti aggiuntive e altri fattori. Mi stavo chiedendo se fosse possibile riscoprire quegli esponenziali nel nome dell'espressione in cui erano parte. Ecco un esempio:Esegui l'espressione dopo la differenziazione

Data questa definizione di funzione

f:= x -> A*exp(B/x) 

Dopo differenziare, si otterrebbe

A*exp(B/x)*(-B/x^2) 

e sarebbe bello se potessi in qualche modo convertirlo in

f(x)*(-B/x^2) 

Ciò è possibile con MuPad o con qualsiasi altro pacchetto CAS?

+0

Se si desidera solo per riconoscere le funzioni che sono scritti proprio come la funzione f originale era, è possibile confrontare le stringhe (metodo veramente stupido). Ma se vuoi che l'algoritmo estragga la funzione dalle espressioni che eseguono operazioni diventerà dannatamente complicato perché è un problema di ricerca con infinite possibilità ... Come quando: "f: x -> x - 1" con una funzione di input di: (x^2 - 1). È possibile esprimere la funzione di input in termini di f (x) in molti modi: f (x) * (x + 1), f (x)^2 + 2 * x - 2, o anche: (x^2 - 1) + f (x) - (x - 1), ecc ... – Guarita

+0

Penso che il modo strign possa funzionare. @Guarita ha ragione, potresti avere funzioni che sono matematicamente uguali ma non quando sono convertite in stringhe e questo può essere un problema ma penso che puoi semplificare qualsiasi funzione nel comando 'semplifica' in mupad, e puoi dire la funzione in che modo (come il polinomio e altre cose). Probabilmente semplicemente commadn restituirebbe lo stesso "tipo" di equazione, quindi il risultato potrebbe essere paragonabile alle stringhe. Non sono sicuro che funzionerebbe, e se probabilmente non funzionerebbe al 100%, ma sarebbe un discreto biposto –

+0

Capisco cosa intendi, ma proprio come su carta, uno ha la sensazione di quale espressione è meglio a seconda di il numero di fattori e così via. Questo è il motivo per cui pensavo che anche i programmi CAS lo sapessero. –

risposta

0

E 'facile in acero, uso generale sostituzione di comando algsubs

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

Per espressioni più complesse, provare collect

+0

In MuPad, la funzione è chiamata 'subsex'. Non l'ho ancora provato, ma credo che sia il massimo che puoi fare per ripulire l'espressione. Grazie. –

Problemi correlati