summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Schneeberger <michael.schneeberger@fhnw.ch>2022-08-04 15:41:23 +0200
committerMichael Schneeberger <michael.schneeberger@fhnw.ch>2022-08-04 15:41:23 +0200
commit6220fb1aabed87982c71194df0bc5d18bf6ba875 (patch)
tree07b29a898b96d19b8d6ac5cee8aa7f6f51933e7a
parentadd links to README.md (diff)
downloadpolymatrix-6220fb1aabed87982c71194df0bc5d18bf6ba875.tar.gz
polymatrix-6220fb1aabed87982c71194df0bc5d18bf6ba875.zip
add a description of the example given in README.md
-rw-r--r--README.md20
1 files changed, 16 insertions, 4 deletions
diff --git a/README.md b/README.md
index 6ce4eb8..08e5c9a 100644
--- a/README.md
+++ b/README.md
@@ -25,6 +25,18 @@ Some aspects of the library:
## Example
+In this example, two polynomial expressions are defined using sympy expressions
+
+$f_1(x_1, x_2) = x_1 + x_2$
+
+$f_2(x_1, x_2) = x_1 + x_1 x_2$
+
+Then, the two expression are combined using the `__add__` (or equivalently `+`) function
+
+$f_3(x_1, x_2) = f_1(x_1, x_2) + f_2(x_1, x_2) = 2 x_1 + x_2 + x_1 x_2$
+
+Finally, different representations of the polynomial are printed.
+
``` python
import sympy
import polymatrix
@@ -37,19 +49,19 @@ x = polymatrix.from_((x1, x2))
f1 = polymatrix.from_(x1 + x2)
f2 = polymatrix.from_(x1 + x1*x2)
-expr = f1 + f2
+f3 = f1 + f2
# prints the data structure of the expression
# ExpressionImpl(underlying=AdditionExprImpl(left=FromSympyExprImpl(data=((x1 + x2,),)), right=FromSympyExprImpl(data=((x1*x2 + x1,),))))
-print(expr)
+print(f3)
-state, poly_matrix = expr.apply(state)
+state, poly_matrix = f3.apply(state)
# prints the data structure of the polynomial matrix
# PolyMatrixImpl(terms={(0, 0): {((0, 1), (1, 1)): 1, ((0, 1),): 2, ((1, 1),): 1}}, shape=(1, 1))
print(poly_matrix)
-state, matrix_repr = polymatrix.to_matrix_repr((expr,), x).apply(state)
+state, matrix_repr = polymatrix.to_matrix_repr((f3,), x).apply(state)
# prints the numpy matrix representations of the polynomial matrix
# array([[2., 1.]])