Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagelib
Path: blob/master/sage/calculus/all.py
4057 views
1
from calculus import maxima as maxima_calculus
2
from calculus import (laplace, inverse_laplace,
3
limit, lim)
4
5
from functional import (diff, derivative,
6
expand,
7
taylor, simplify)
8
9
from functions import (wronskian,jacobian)
10
11
from desolvers import (desolve, desolve_laplace, desolve_system,
12
eulers_method, eulers_method_2x2,
13
eulers_method_2x2_plot, desolve_rk4, desolve_system_rk4,
14
desolve_odeint)
15
16
from var import (var, function, clear_vars)
17
18
# We lazy_import the following modules since they import numpy which slows down sage startup
19
from sage.misc.lazy_import import lazy_import
20
lazy_import("sage.calculus.riemann",["Riemann_Map"])
21
lazy_import("sage.calculus.interpolators",["polygon_spline","complex_cubic_spline"])
22
23
from sage.modules.all import vector
24
25
def symbolic_expression(x):
26
"""
27
Create a symbolic expression or vector of symbolic expressions from x.
28
29
INPUT:
30
31
- ``x`` - an object
32
33
OUTPUT:
34
35
- a symbolic expression.
36
37
EXAMPLES::
38
39
sage: a = symbolic_expression(3/2); a
40
3/2
41
sage: type(a)
42
<type 'sage.symbolic.expression.Expression'>
43
sage: R.<x> = QQ[]; type(x)
44
<type 'sage.rings.polynomial.polynomial_rational_flint.Polynomial_rational_flint'>
45
sage: a = symbolic_expression(2*x^2 + 3); a
46
2*x^2 + 3
47
sage: type(a)
48
<type 'sage.symbolic.expression.Expression'>
49
sage: from sage.symbolic.expression import is_Expression
50
sage: is_Expression(a)
51
True
52
sage: a in SR
53
True
54
sage: a.parent()
55
Symbolic Ring
56
57
Note that equations exist in the symbolic ring::
58
59
sage: E = EllipticCurve('15a'); E
60
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 - 10*x - 10 over Rational Field
61
sage: symbolic_expression(E)
62
x*y + y^2 + y == x^3 + x^2 - 10*x - 10
63
sage: symbolic_expression(E) in SR
64
True
65
66
If x is a list or tuple, create a vector of symbolic expressions::
67
68
sage: v=symbolic_expression([x,1]); v
69
(x, 1)
70
sage: v.base_ring()
71
Symbolic Ring
72
sage: v=symbolic_expression((x,1)); v
73
(x, 1)
74
sage: v.base_ring()
75
Symbolic Ring
76
sage: v=symbolic_expression((3,1)); v
77
(3, 1)
78
sage: v.base_ring()
79
Symbolic Ring
80
sage: E = EllipticCurve('15a'); E
81
Elliptic Curve defined by y^2 + x*y + y = x^3 + x^2 - 10*x - 10 over Rational Field
82
sage: v=symbolic_expression([E,E]); v
83
(x*y + y^2 + y == x^3 + x^2 - 10*x - 10, x*y + y^2 + y == x^3 + x^2 - 10*x - 10)
84
sage: v.base_ring()
85
Symbolic Ring
86
"""
87
from sage.symbolic.expression import Expression
88
from sage.symbolic.ring import SR
89
if isinstance(x, Expression):
90
return x
91
elif hasattr(x, '_symbolic_'):
92
return x._symbolic_(SR)
93
elif isinstance(x, (tuple,list)):
94
return vector(SR,x)
95
else:
96
return SR(x)
97
98
import desolvers
99
100