Obliczenia symboliczne w R?

27

Zastanawiałem się, czy można wykonać obliczenia symboliczne w języku R?

Na przykład,

Miałem nadzieję uzyskać odwrotność symbolicznej macierzy kowariancji rozkładu Gaussa 3D.

Czy mogę także wykonać integrację symboliczną i różnicowanie w języku R?

Tim
źródło

Odpowiedzi:

22

Tak. Jest tu pakiet Ryacas, który jest hostowany w Google Code tutaj . Ryacas został niedawno rozszerzony / przekonwertowany na pakiet rMathpiper, który jest tutaj hostowany . Użyłem Ryacas i jest to proste, ale musisz zainstalować Yacas , aby działał (Yacas wykonuje wszystkie ciężkie zadania; Ryacas jest tylko interfejsem R dla Yacas).

Istnieje również projekt rSymPy hostowany w Google Code tutaj . Nie próbowałem tego. Pomysł jest jednak podobny, link do sympikowanego CAS, który wykonuje symboliczną pracę.


źródło
19

Niektóre rzeczy są również w bazie R --- patrz help(deriv)lub help(D).

Prosty przykład ze strony pomocy:

R> trig.exp <- expression(sin(cos(x + y^2)))
R> ( D.sc <- D(trig.exp, "x") )
-(cos(cos(x + y^2)) * sin(x + y^2))
R>      all.equal(D(trig.exp[[1]], "x"), D.sc)
[1] TRUE
R> 
Dirk Eddelbuettel
źródło
6

Bardziej sensowne jest użycie „prawdziwego” CAS, takiego jak Maxima .

Shige
źródło
12
Cóż, pierwotne pytanie dotyczyło R.
Dirk Eddelbuettel