Difference between revisions of "Python:Symbolic Computations"
Jump to navigation
Jump to search
(Created page with "This is a sandbox for information on symbolic computation with Python. It is about as organized as one might expect... == Preamble == == Modules == == References == * [...") |
|||
Line 2: | Line 2: | ||
== Preamble == | == Preamble == | ||
+ | * This page will be consistent with [[Python:Nicknames]] in terms of module imports. Note that there are several ways to get the SymPy package into Python: | ||
+ | ** import sympy as sym (what this page does) | ||
+ | ** import sympy as sp (this is more consistent with bringing in NumPy, but that's what we will use for SciPy) | ||
+ | ** from sympy import * (if you are sure nothing in SymPy will contradict anything in built-in Python) | ||
+ | ** from sympy import TUPLE OF THINGS (if you just have a few specific things you want to do with SymPy) | ||
+ | * sym.init_session() will automatically bring in x, y, z, and t as symbols; k, m, n as integers; f, g, h as function names; and sym.init_printing HOWEVER it brings in all of sympy with from sympy import *! | ||
+ | == Defining Symbols == | ||
+ | * a, b, c = sym.symbols('a b c') or a, b, c = sym.symbols('a, b, c') | ||
+ | * The symbolic representation can be entirely different from the variable with a, b, c = sym.symbols('let\'s go Duke') | ||
+ | * If the symbolic and variable names exactly match more efficient to use sym.var('a b c') or sym.var('a, b, c') | ||
+ | ** May want to assign this to a variable or append a ; since this returns a tuple with the variables in it | ||
− | == | + | == Substitutions == |
− | + | * use .subs(variable, value) or .subs(iterable) where iterable has a collection of variables and values | |
+ | |||
+ | == Output == | ||
+ | * To make output prettier: sym.init_printing() | ||
+ | * Display depends on if LaTeX is installed or not | ||
+ | |||
+ | |||
+ | |||
+ | == Interesting Things == | ||
+ | * sym.lambdify((variables), expression, "numpy") will return a function that performs the calculation in the expression | ||
== References == | == References == | ||
+ | * [https://www.sympy.org/en/index.html SymPy] | ||
* [https://docs.sympy.org/latest/index.html# SymPy Documentation] | * [https://docs.sympy.org/latest/index.html# SymPy Documentation] | ||
+ | |||
+ | == Future Work == | ||
+ | * Subscripts are...strange. Numbers coming at the end of a variable print as subscripts but letters end that behavior. One workaround is to define a variable with the xa = sym.Symbol('x_a') command but that will only take a single character superscript. |
Revision as of 20:44, 18 December 2021
This is a sandbox for information on symbolic computation with Python. It is about as organized as one might expect...
Contents
Preamble
- This page will be consistent with Python:Nicknames in terms of module imports. Note that there are several ways to get the SymPy package into Python:
- import sympy as sym (what this page does)
- import sympy as sp (this is more consistent with bringing in NumPy, but that's what we will use for SciPy)
- from sympy import * (if you are sure nothing in SymPy will contradict anything in built-in Python)
- from sympy import TUPLE OF THINGS (if you just have a few specific things you want to do with SymPy)
- sym.init_session() will automatically bring in x, y, z, and t as symbols; k, m, n as integers; f, g, h as function names; and sym.init_printing HOWEVER it brings in all of sympy with from sympy import *!
Defining Symbols
- a, b, c = sym.symbols('a b c') or a, b, c = sym.symbols('a, b, c')
- The symbolic representation can be entirely different from the variable with a, b, c = sym.symbols('let\'s go Duke')
- If the symbolic and variable names exactly match more efficient to use sym.var('a b c') or sym.var('a, b, c')
- May want to assign this to a variable or append a ; since this returns a tuple with the variables in it
Substitutions
- use .subs(variable, value) or .subs(iterable) where iterable has a collection of variables and values
Output
- To make output prettier: sym.init_printing()
- Display depends on if LaTeX is installed or not
Interesting Things
- sym.lambdify((variables), expression, "numpy") will return a function that performs the calculation in the expression
References
Future Work
- Subscripts are...strange. Numbers coming at the end of a variable print as subscripts but letters end that behavior. One workaround is to define a variable with the xa = sym.Symbol('x_a') command but that will only take a single character superscript.