• Stars
    star
    158
  • Rank 237,131 (Top 5 %)
  • Language
    MATLAB
  • License
    GNU General Publi...
  • Created over 10 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A Symbolic Package for Octave using SymPy

Symbolic Package for GNU Octave

An implementation of a symbolic toolbox using SymPy.

[https://octave.sourceforge.io/symbolic]

Note: Development for most Octave packages tends to take place in sourceforge. However, unlike most other Octave packages, the main development repository for this package is on github (https://github.com/cbm755/octsympy), and only mirrored on sourceforge (https://sourceforge.net/p/octave/symbolic/). If you are thinking of contributing and you're looking at this README file from the sourceforge website, please consider visiting our github page and contributing there instead, as we do not tend to monitor sourceforge for activity.

Goals

Feature parity with the other symbolic toolboxes.

Screenshot 1

Screenshot 2

How to Install

  1. The dependencies are Octave, Python, and SymPy. Consult the SymPy website for details on how to install SymPy.

  2. Start Octave.

  3. At Octave prompt type pkg install -forge symbolic.

  4. At Octave prompt, type pkg load symbolic.

  5. At Octave prompt, type syms x, then f = (sin(x/2))^3, diff(f, x), etc.

How to install on Ubuntu

  1. Install the dependencies with sudo apt-get install octave liboctave-dev python-sympy.
  2. Follow steps 2--5 above.

How to Install on Windows

  1. Get Octave for Windows.

  2. At the Octave prompt, type pkg install -forge symbolic.

  3. At the Octave prompt, type pkg load symbolic.

  4. At the Octave prompt, type syms x, then f = (sin(x/2))^3, diff(f, x), etc.

If you encounter any difficulties (even minor ones) please read and if possible help us improve the wiki page on Windows Installation.

How to Install on Matlab

Although this package is designed for GNU Octave, it will work with Matlab. Currently only the slower system()-based communication is available.

  1. Download the latest release, e.g., octsympy-matlab-2.7.0.tar.gz.

  2. Unzip it somewhere and add it to your Matlab Path.

The .m files for Matlab have been reformatted for Matlab comment conventions, but are otherwise the same as the Octave source.

How to Help

We have a list of things to work on tagged help wanted. Some of these should be quite easy to fix and would be a great way to get involved. Come join us!

How to hack on the code:

  1. Clone the repo with git (preferred, but you can use the "Download ZIP" instead if you want).

  2. Run Octave in the octsympy/inst/ directory. It should be safe to do this even if you have the released version of the package installed (but not loaded).

Implementation

Python code is generated to do the actual work. Each sym object keeps a text field for display purposes and a string (a SymPy srepr). The objects are communicated between Python and Octave by passing the srepr string back-and-forth. Currently pure m-file (and Python) implementation, no code to be compiled.

Related Projects

  • There was a previous "symbolic" package in Octave Forge based on GiNaC. Its history has now been merged into this project.

  • "SymPy CAS" by Jonathan Lister. Calls SymPy commands using system().

More Repositories

1

octave

GNU Octave Mirror (https://www.octave.org/hg/octave). Report bugs and submit pull requests (patches) at https://bugs.octave.org
C++
381
star
2

docker

Docker images of GNU Octave.
Shell
33
star
3

packages

The GNU Octave package index.
HTML
32
star
4

statistics

The Statistics package for GNU Octave
MATLAB
24
star
5

octave-doctest

Doctests for Octave/Matlab
MATLAB
16
star
6

pkg-octave-doc

Automatically generate HTML documentation for Octave Packages.
MATLAB
14
star
7

pkg-control

Control package for GNU Octave including system analysis and control synthesis
MATLAB
13
star
8

pkg-example

A minimal GNU Octave package.
C++
12
star
9

GNU-Octave-enable-64

Provides the necessary prerequisites to compile GNU Octave using 64-bit indices.
Makefile
11
star
10

gnu-octave.github.io

Repository for the https://octave.org website.
HTML
8
star
11

octave-rpi-gpio

GNU Octave wrapper around libbcm2835 for GPIO control of the RaspberryPI IOs
C++
8
star
12

serialize

serialization function for built-in octave data types
MATLAB
8
star
13

pkg-jupyter-notebook

A package to run and fill Jupyter Notebooks within GNU Octave.
MATLAB
7
star
14

pkg-web

Reimplement GNU Octave's web functions compatible to Matlab's RESTful web services.
MATLAB
7
star
15

macgyver_utils

MATLAB
7
star
16

vim-octave

Octave syntax and indentation support for Vim
Vim Script
7
star
17

pkg-json

JSON support for GNU Octave.
C++
6
star
18

octave-websockets

A Websockets package for GNU Octave, based in the sockets package.
M
6
star
19

octave-arduino

Basic Octave implementation of the matlab arduino extension, allowing communication to a programmed arduino board to control its hardware.
MATLAB
6
star
20

octave-publish

Create a Matlab compatible publish function.
MATLAB
5
star
21

pkg

The GNU Octave package management tool.
MATLAB
5
star
22

octave-buildbot

Buildbot and Docker based CI/CD platform for GNU Octave release pipeline.
Python
4
star
23

pkg-apa

Octave/Matlab arbitrary precision arithmetic
MATLAB
4
star
24

SavannahAPI

Overview about open GNU Octave bugs.
PHP
4
star
25

octave-docker

Dockerfiles to build, run and benchmark various GNU Octave versions
Shell
4
star
26

octave-hub

equivalent to hg clone hg.octave.org/forge for github
3
star
27

octave-sqlite

Native SQLite interface for GNU Octave
MATLAB
3
star
28

octave-pythonic

Mirror of https://gitlab.com/mtmiller/octave-pythonic/
C++
3
star
29

table

table class for GNU Octave (not finished)
MATLAB
2
star
30

octave-audio

MATLAB
2
star
31

octave-sockets-enh

fork of the OF sockets
C++
2
star
32

OctaveCD

Some GNU Octave continuous delivery project.
Shell
2
star
33

pkg-yaml

C++
2
star
34

octave-qr

Some Octave/Matlab code to create QR Codes, based upon https://github.com/zxing/zxing.
Java
2
star
35

hdf5_tests

create hdf5 files from C and load them with Octave
C
2
star
36

mxeoctave.osuv.de

mxeoctave.osuv.de
Awk
2
star
37

octave-gl-print

Offscreen rendering print using OSMesa and gl2ps
C++
2
star
38

GNU-Octave-ILP64-Singularity

Receipt to build a GNU Octave Singularity image ensuring large matrix computations.
Makefile
2
star
39

packer-utils

packer server utils
MATLAB
2
star
40

GOFS

GNU Octave Function Search
Shell
2
star
41

packer

new package tool for gnu octave
MATLAB
2
star
42

octave-impixelinfo

Playground to develop impixelinfo and impixelinfoval
M
2
star
43

prompt

A powerlevel10k-like prompt for octave.
MATLAB
2
star
44

octave_slides

Some presentation slides for the GNU Octave project.
Jupyter Notebook
2
star
45

octave-mqtt

M4
1
star
46

cc0-octave-fluent-icons

New GNU Octave icon set
1
star
47

doc

Various documentation for the GNU Octave project.
1
star
48

octave.org-2001-2016

octave.org website repository from 2001 to 2016.
HTML
1
star
49

MinusForge

A pkg resolver for Octave Packages.
PHP
1
star
50

savane

Mirror of https://git.savannah.nongnu.org/git/administration/savane.git/
PHP
1
star
51

packages-sandbox

Try out publishing your Octave package here. The real packages repository is https://github.com/gnu-octave/packages. This repository is reset regularly.
HTML
1
star
52

pkg-funm-schur-parlett

Evaluation of matrix functions with the Schur Parlett algorithm.
MATLAB
1
star
53

OctConf2017

Source code for the OctConf2017.
MATLAB
1
star
54

p

new and better pkg replacement
1
star
55

octave-zeromq

C++
1
star
56

octave-odbc

GNU Octave Database functionality using ODBC
MATLAB
1
star
57

Octave-language-grammar

Regular expression based grammar for the GNU Octave programming language
1
star