2012-03-15 14 views
8

Sto facendo un corso di calcolo quantistico. In esso, rappresentiamo le possibili azioni, o operatori, dalle matrici . Ho cercato di creare una pagina web per risolvere questi problemi di matematica. Per me è anche una piccola sfida per rinfrescare il mio JS.Uso di lettere per fare matematica matematica in Javascript

Ho esaminato varie opzioni, come Sylvester, MathJax e MathML.

Problema: Tuttavia, nessuna di queste sembra dare la funzionalità per l'utilizzo di lettere tutto il mio calcolo.

Ad esempio, nel calcolo quantico spesso si usa moltiplicare una matrice contenente alfa e beta sconosciute, con altre matrici.

Questo è il genere di matematica ho bisogno di fare:

http://i.stack.imgur.com/vH9Dk.gif

Idealmente, mi piacerebbe scrivere questo nello stile di:

M = [[a], [b] ], che naturalmente, non posso. Inoltre, sarei in grado di moltiplicare per ottenere "2 * a" ecc.

Qualche suggerimento?

+0

_ "M = [[a], [b]], che, naturalmente, non posso." _ - Che dire di 'M = [['a'], ['b']]'? – nnnnnn

+0

In realtà non vuoi matrici di * lettere * - in realtà vuoi matrici di * variabili *, che puoi rappresentare su carta come lettere. –

+2

Sembra che tu stia cercando di fare 'algebra simbolica'. Google ti sommergerà di successi. –

risposta

1

Come suggerito nei commenti sulla domanda, è possibile utilizzare le stringhe. Quindi devi solo scrivere la tua routine di moltiplicazione matrice matriciale che capirà la differenza tra una voce contenente una stringa e una voce contenente un numero.

Tuttavia, non appena ne fai più di uno, ti ritroverai con espressioni, variabili e numeri. Quindi possiamo generalizzare questo per rendere ogni elemento un'espressione. Questo è l'inizio di un sistema di algebra simbolico come sottolineato da @High Performance Mark.

In javascript, direi che si desidera un set di oggetti espressione, ognuno dei quali implementa un'interfaccia che include un metodo che restituisce se l'espressione è determinata o non ancora. Il bit gnarly sta semplificando le espressioni risultanti per risolvere i valori delle variabili.

In alternativa, fare un po 'più di matematica in anticipo; sposta le variabili fuori dalle equazioni, quindi lascia che il codice esegua il calcolo.