2012-03-15 12 views
8

Robię kurs w Quantum Computation. W nim reprezentujemy możliwe akcje lub operatory przez macierzy. Szukałem w tworzeniu strony internetowej do rozwiązywania tych problemów matematycznych. Jest to także małe wyzwanie dla mnie, aby odświeżyć mój JS.Używanie liter do wykonywania matematyki w macierzy w JavaScript

Przeglądałem różne opcje, takie jak Sylvester, MathJax i MathML.

Problem: Jednak żaden z powyższych pojawia się, aby dać funkcjonalność korzystania litery całym moim obliczeń.

Na przykład w Quantum Computation często używamy macierzy zawierającej unknowns alpha i beta, z innymi macierzami.

Jest to rodzaj matematyki muszę zrobić:

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

Idealnie, chciałbym napisać to w stylu:

M = [[a] [b] ], czego oczywiście nie mogę. Co więcej, mógłbym pomnożyć, aby uzyskać "2 * a" itd.

Jakieś sugestie?

+0

_ "M = [[a], [b]], którego oczywiście nie mogę." - A co z 'M = [['a'], ['b']]'? – nnnnnn

+0

Tak naprawdę nie potrzebujesz macierzy * liter * - faktycznie potrzebujesz macierzy * zmiennych *, które możesz reprezentować na papierze jako litery. –

+2

Wygląda na to, że próbujesz zrobić "symboliczną algebrę". Google przytłoczy Cię trafieniami. –

Odpowiedz

1

Jak zasugerowano w komentarzach do pytania, można użyć ciągów. Następnie wystarczy napisać własną procedurę mnożenia macierzy, która będzie rozumiała różnicę między wpisem zawierającym ciąg znaków a wpisem zawierającym numer.

Jednak, gdy wykonasz więcej niż jedną z nich, otrzymasz wyrazy, jak również zmienne i liczby. Możemy to uogólnić, aby każdy element był wyrażeniem. To jest początek symbolicznego systemu algebry, jak podkreślił Mark Hight Performance.

W javascript, przypuszczam, że potrzebujesz zestawu obiektów ekspresyjnych, z których każdy implementuje interfejs zawierający metodę, która zwraca, czy wyrażenie jest określone czy jeszcze nie. Gnarly bit upraszcza wynikowe wyrażenia, aby rozwiązać wartości zmiennych.

Zrób sobie wcześniej trochę matematyki; przenieś zmienne z równania, a następnie pozwól kodowi wykonać obliczenia.

Powiązane problemy