Domanda

Sono interessato a costruire una calcolatrice derivato. Ho tormentato il cervello sopra la soluzione del problema, ma non ho trovato una soluzione giusta a tutti. Che tu possa avere un suggerimento come iniziare? Grazie

Mi dispiace! Voglio chiaramente fare differenziazione simbolica.

Diciamo che avete la funzione f (x) = x ^ 3 + 2x ^ 2 + x

voglio visualizzare la derivata, in questo caso f '(x) = 3x ^ 2 + 4x + 1

mi piacerebbe per la sua attuazione in Objective-C per l'iPhone.

È stato utile?

Soluzione

Presumo che si sta cercando di trovare l'esatto derivata di una funzione. (Differenziazione simbolica)

È necessario analizzare l'espressione matematica e memorizzare le singole operazioni nella funzione in una struttura ad albero.

Per esempio, x + sin²(x) viene memorizzato come operazione +, applicato al x espressione e ^ (esponenziale) funzionamento sin(x) e 2.

Si può quindi ricorsivamente di differenziare l'albero applicando le regole di differenziazione per ogni nodo. Ad esempio, un nodo + diventerebbe il u' + v', ed un nodo * diventerebbe uv' + vu'.

Altri suggerimenti

è necessario ricordare il vostro calcolo. fondamentalmente avete bisogno di due cose: tavolo di derivati ??di funzioni e regole di come derivati ??espressioni composte (come d(f + g)/dx = df/dx + dg/dx) di base. Poi prendere espressioni parser e ricorsivamente andare altra l'albero. ( http://www.sosmath.com/tables/derivative/derivative.html)

SLaks già descritta la procedura per la differenziazione simbolica. Vorrei solo aggiungere un paio di cose:

Per quali tipi di operazioni Sei voler calcolare un derivato? Se si consente funzioni trigonometriche come seno, coseno e tangente, questi sono probabilmente meglio memorizzati in una tabella, mentre altri come polinomi possono essere molto più facile da fare. Stai permettendo per le funzioni di avere più ingressi, per es. f (x, y) piuttosto che semplicemente f (x)?

polinomi in una singola variabile sarebbe il mio suggerimento e poi considerare l'aggiunta in trigonometriche, logaritmiche, esponenziali e altre funzioni avanzate ai derivati ??di elaborazione che possono essere più difficile da fare.

differenziazione simbolica su funzioni comuni (+, -, *, /, ^, sin, cos, ecc) tralasciando regioni in cui è definita la funzione o il suo derivato è facile. Che cosa è difficile, forse counterintuitively, sta semplificando il risultato dopo.

Per fare la differenziazione, memorizzare le operazioni in un albero (o anche solo in notazione polacca) e fare un tavolo della derivata di ciascuna delle operazioni elementari. Poi ripetutamente applicare la regola della catena ei derivati ??elementari, insieme con l'impostazione della derivata di una costante a 0. Questo è veloce e facile da implementare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top