passagemath-repl 10.5.28__py3-none-any.whl → 10.5.30__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- passagemath_repl-10.5.30.data/data/share/jupyter/kernels/sagemath/kernel.json +1 -0
- passagemath_repl-10.5.30.data/data/share/jupyter/kernels/sagemath/logo-64x64.png +0 -0
- passagemath_repl-10.5.30.data/data/share/jupyter/kernels/sagemath/logo.svg +352 -0
- {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.30.dist-info}/METADATA +3 -3
- {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.30.dist-info}/RECORD +95 -24
- {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.30.dist-info}/top_level.txt +1 -0
- sage/ext_data/all__sagemath_repl.py +1 -0
- sage/interfaces/all__sagemath_repl.py +1 -0
- sage/repl/ipython_kernel/install.py +6 -8
- sage/tests/books/__init__.py +2 -0
- sage/tests/books/computational-mathematics-with-sagemath/__init__.py +1 -0
- sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +550 -0
- sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +1054 -0
- sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +444 -0
- sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +478 -0
- sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +255 -0
- sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +419 -0
- sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +291 -0
- sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +455 -0
- sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +422 -0
- sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +235 -0
- sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +561 -0
- sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +491 -0
- sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +156 -0
- sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +406 -0
- sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +181 -0
- sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +663 -0
- sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +393 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +1 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +265 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +218 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +60 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +142 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +106 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +54 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +57 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +57 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +26 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +48 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +116 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +112 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +168 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +108 -0
- sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +59 -0
- sage/tests/books/judson-abstract-algebra/__init__.py +1 -0
- sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +52 -0
- sage/tests/books/judson-abstract-algebra/actions-sage.py +174 -0
- sage/tests/books/judson-abstract-algebra/algcodes-sage.py +131 -0
- sage/tests/books/judson-abstract-algebra/boolean-sage.py +270 -0
- sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +88 -0
- sage/tests/books/judson-abstract-algebra/cosets-sage.py +171 -0
- sage/tests/books/judson-abstract-algebra/crypt-sage.py +152 -0
- sage/tests/books/judson-abstract-algebra/cyclic-sage.py +451 -0
- sage/tests/books/judson-abstract-algebra/domains-sage.py +164 -0
- sage/tests/books/judson-abstract-algebra/fields-sage.py +300 -0
- sage/tests/books/judson-abstract-algebra/finite-sage.py +109 -0
- sage/tests/books/judson-abstract-algebra/galois-sage.py +485 -0
- sage/tests/books/judson-abstract-algebra/groups-sage.py +281 -0
- sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +66 -0
- sage/tests/books/judson-abstract-algebra/homomorph-sage.py +201 -0
- sage/tests/books/judson-abstract-algebra/integers-sage.py +198 -0
- sage/tests/books/judson-abstract-algebra/isomorph-sage.py +173 -0
- sage/tests/books/judson-abstract-algebra/normal-sage.py +134 -0
- sage/tests/books/judson-abstract-algebra/permute-sage.py +320 -0
- sage/tests/books/judson-abstract-algebra/poly-sage.py +301 -0
- sage/tests/books/judson-abstract-algebra/rings-sage.py +414 -0
- sage/tests/books/judson-abstract-algebra/sets-sage.py +164 -0
- sage/tests/books/judson-abstract-algebra/struct-sage.py +64 -0
- sage/tests/books/judson-abstract-algebra/sylow-sage.py +251 -0
- sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +49 -0
- sage/tests/books/judson-abstract-algebra/vect-sage.py +212 -0
- sage/tests/memcheck/__init__.py +1 -0
- sage/tests/memcheck/run_tests.py +25 -0
- sage/tests/memcheck/run_tests_in_valgrind.py +36 -0
- sage/tests/memcheck/symbolic_expression.py +12 -0
- sage/tests/memcheck/verify_no_leak.py +28 -0
- sage/tests/all.py +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-cachegrind +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-callgrind +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-cleaner +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-coverage +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-eval +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-fixdoctests +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-inline-fortran +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-ipynb2rst +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-ipython +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-massif +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-notebook +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-omega +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-preparse +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-run +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-run-cython +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-runtests +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-startuptime.py +0 -0
- {passagemath_repl-10.5.28.data → passagemath_repl-10.5.30.data}/scripts/sage-valgrind +0 -0
- {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.30.dist-info}/WHEEL +0 -0
@@ -0,0 +1,393 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
# sage.doctest: needs sage.symbolic
|
3
|
+
"""
|
4
|
+
This file (./recequadiff_doctest.sage) was *autogenerated* from ./recequadiff.tex,
|
5
|
+
with sagetex.sty version 2011/05/27 v2.3.1.
|
6
|
+
It contains the contents of all the sageexample environments from this file.
|
7
|
+
You should be able to doctest this file with:
|
8
|
+
sage -t ./recequadiff_doctest.sage
|
9
|
+
It is always safe to delete this file; it is not used in typesetting your
|
10
|
+
document.
|
11
|
+
|
12
|
+
Sage example in ./recequadiff.tex, line 182::
|
13
|
+
|
14
|
+
sage: x = var('x')
|
15
|
+
sage: y = function('y')(x)
|
16
|
+
|
17
|
+
Sage example in ./recequadiff.tex, line 295::
|
18
|
+
|
19
|
+
sage: x = var('x'); y = function('y')(x)
|
20
|
+
|
21
|
+
Sage example in ./recequadiff.tex, line 298::
|
22
|
+
|
23
|
+
sage: desolve(diff(y,x) + 3*y == exp(x), y, show_method=True)
|
24
|
+
[1/4*(4*_C + e^(4*x))*e^(-3*x), 'linear']
|
25
|
+
|
26
|
+
Sage example in ./recequadiff.tex, line 320::
|
27
|
+
|
28
|
+
sage: desolve(y*diff(y,x) == x, y, show_method=True)
|
29
|
+
[1/2*y(x)^2 == 1/2*x^2 + _C, 'separable']
|
30
|
+
|
31
|
+
Sage example in ./recequadiff.tex, line 332::
|
32
|
+
|
33
|
+
sage: desolve(diff(y,x) == exp(x+y), y, show_method=True)
|
34
|
+
[-(e^(x + y(x)) + 1)*e^(-y(x)) == _C, 'exact']
|
35
|
+
|
36
|
+
Sage example in ./recequadiff.tex, line 350::
|
37
|
+
|
38
|
+
sage: desolve(diff(y,x)-y == x*y^4, y, show_method=True)
|
39
|
+
[e^x/(-1/3*(3*x - 1)*e^(3*x) + _C)^(1/3), 'bernoulli']
|
40
|
+
|
41
|
+
Sage example in ./recequadiff.tex, line 371::
|
42
|
+
|
43
|
+
sage: desolve(x^2*diff(y,x) == y^2+x*y+x^2, y, show_method=True)
|
44
|
+
[_C*x == e^(arctan(y(x)/x)), 'homogeneous']
|
45
|
+
|
46
|
+
Sage example in ./recequadiff.tex, line 399::
|
47
|
+
|
48
|
+
sage: desolve(diff(y,x) == (cos(y)-2*x)/(y+x*sin(y)), y,
|
49
|
+
....: show_method=True)
|
50
|
+
[x^2 - x*cos(y(x)) + 1/2*y(x)^2 == _C, 'exact']
|
51
|
+
|
52
|
+
Sage example in ./recequadiff.tex, line 431::
|
53
|
+
|
54
|
+
sage: desolve(diff(y,x) == x*y^2+y/x-1/x^2, y,
|
55
|
+
....: contrib_ode=True, show_method=True)[1]
|
56
|
+
'riccati'
|
57
|
+
|
58
|
+
Sage example in ./recequadiff.tex, line 459::
|
59
|
+
|
60
|
+
sage: diffeq = y == x*diff(y,x)-diff(y,x)^2
|
61
|
+
sage: solution,method = desolve(diffeq,
|
62
|
+
....: y,
|
63
|
+
....: contrib_ode=True,
|
64
|
+
....: show_method=True)
|
65
|
+
sage: solution
|
66
|
+
[y(x) == -_C^2 + _C*x, y(x) == 1/4*x^2]
|
67
|
+
sage: method in ["clairaut", "clairault"]
|
68
|
+
True
|
69
|
+
|
70
|
+
Sage example in ./recequadiff.tex, line 487::
|
71
|
+
|
72
|
+
sage: x = var('x'); y = function('y')(x)
|
73
|
+
|
74
|
+
Sage example in ./recequadiff.tex, line 491::
|
75
|
+
|
76
|
+
sage: DE = diff(y,x)+2*y == x**2-2*x+3
|
77
|
+
sage: desolve(DE, y)
|
78
|
+
1/4*((2*x^2 - 2*x + 1)*e^(2*x) - 2*(2*x - 1)*e^(2*x) + 4*_C
|
79
|
+
+ 6*e^(2*x))*e^(-2*x)
|
80
|
+
|
81
|
+
Sage example in ./recequadiff.tex, line 499::
|
82
|
+
|
83
|
+
sage: desolve(DE, y).expand()
|
84
|
+
1/2*x^2 + _C*e^(-2*x) - 3/2*x + 9/4
|
85
|
+
|
86
|
+
Sage example in ./recequadiff.tex, line 518::
|
87
|
+
|
88
|
+
sage: desolve(DE, y, show_method=True)[1]
|
89
|
+
'linear'
|
90
|
+
|
91
|
+
Sage example in ./recequadiff.tex, line 526::
|
92
|
+
|
93
|
+
sage: desolve(DE, y, ics=[0,1]).expand()
|
94
|
+
1/2*x^2 - 3/2*x - 5/4*e^(-2*x) + 9/4
|
95
|
+
|
96
|
+
Sage example in ./recequadiff.tex, line 541::
|
97
|
+
|
98
|
+
sage: x = var('x'); y = function('y')(x)
|
99
|
+
sage: desolve(diff(y,x)*log(y) == y*sin(x), y, show_method=True)
|
100
|
+
[1/2*log(y(x))^2 == _C - cos(x), 'separable']
|
101
|
+
|
102
|
+
Sage example in ./recequadiff.tex, line 552::
|
103
|
+
|
104
|
+
sage: ed = desolve(diff(y,x)*log(y) == y*sin(x), y); ed
|
105
|
+
1/2*log(y(x))^2 == _C - cos(x)
|
106
|
+
|
107
|
+
Sage example in ./recequadiff.tex, line 565::
|
108
|
+
|
109
|
+
sage: solve(ed, y)
|
110
|
+
[y(x) == e^(-sqrt(2*_C - 2*cos(x))), y(x) == e^(sqrt(2*_C - 2*cos(x)))]
|
111
|
+
|
112
|
+
Sage example in ./recequadiff.tex, line 581::
|
113
|
+
|
114
|
+
sage: solve(ed, y)[0].substitute(_C==5).rhs()
|
115
|
+
Traceback (most recent call last):
|
116
|
+
...
|
117
|
+
NameError: name '_C' is not defined
|
118
|
+
|
119
|
+
Sage example in ./recequadiff.tex, line 593::
|
120
|
+
|
121
|
+
sage: ed.variables()
|
122
|
+
(_C, x)
|
123
|
+
|
124
|
+
Sage example in ./recequadiff.tex, line 604::
|
125
|
+
|
126
|
+
sage: c = ed.variables()[0]
|
127
|
+
sage: solve(ed, y)[0].substitute(c == 5).rhs()
|
128
|
+
e^(-sqrt(-2*cos(x) + 10))
|
129
|
+
|
130
|
+
Sage example in ./recequadiff.tex, line 624::
|
131
|
+
|
132
|
+
sage: plot(solve(ed, y)[0].substitute(c == 2).rhs(), x, -3, 3)
|
133
|
+
Graphics object consisting of 1 graphics primitive
|
134
|
+
|
135
|
+
Sage example in ./recequadiff.tex, line 640::
|
136
|
+
|
137
|
+
sage: P = Graphics()
|
138
|
+
sage: for k in range(1,20,2):
|
139
|
+
....: P += plot(solve(ed, y)[0].substitute(c==1+k/4).rhs(), x, -3, 3)
|
140
|
+
|
141
|
+
Sage example in ./recequadiff.tex, line 660::
|
142
|
+
|
143
|
+
sage: P = Graphics()
|
144
|
+
sage: for j in [0,1]:
|
145
|
+
....: for k in range(1,10,2):
|
146
|
+
....: f = solve(ed,y)[j].substitute(c==2+0.25*k).rhs()
|
147
|
+
....: P += plot(f, x, -3, 3)
|
148
|
+
sage: P
|
149
|
+
Graphics object consisting of 10 graphics primitives
|
150
|
+
|
151
|
+
Sage example in ./recequadiff.tex, line 731::
|
152
|
+
|
153
|
+
sage: u = function('u')(x)
|
154
|
+
sage: y = x*u
|
155
|
+
sage: DE = x*diff(y,x) == y + sqrt(x**2 + y**2)
|
156
|
+
|
157
|
+
Sage example in ./recequadiff.tex, line 746::
|
158
|
+
|
159
|
+
sage: forget()
|
160
|
+
|
161
|
+
Sage example in ./recequadiff.tex, line 750::
|
162
|
+
|
163
|
+
sage: assume(x>0)
|
164
|
+
sage: desolve(DE, u)
|
165
|
+
x == _C*e^arcsinh(u(x))
|
166
|
+
|
167
|
+
Sage example in ./recequadiff.tex, line 773::
|
168
|
+
|
169
|
+
sage: S = desolve(DE,u)._maxima_().ev(logarc=True).sage().solve(u); S
|
170
|
+
[u(x) == -(sqrt(u(x)^2 + 1)*_C - x)/_C]
|
171
|
+
|
172
|
+
Sage example in ./recequadiff.tex, line 792::
|
173
|
+
|
174
|
+
sage: solu = (x-S[0]*c)^2; solu
|
175
|
+
(_C*u(x) - x)^2 == (u(x)^2 + 1)*_C^2
|
176
|
+
sage: sol = solu.solve(u); sol
|
177
|
+
[u(x) == -1/2*(_C^2 - x^2)/(_C*x)]
|
178
|
+
|
179
|
+
Sage example in ./recequadiff.tex, line 801::
|
180
|
+
|
181
|
+
sage: y(x) = x*sol[0].rhs(); y(x)
|
182
|
+
-1/2*(_C^2 - x^2)/_C
|
183
|
+
|
184
|
+
Sage example in ./recequadiff.tex, line 820::
|
185
|
+
|
186
|
+
sage: c = y(x).variables()[0]
|
187
|
+
sage: P = Graphics()
|
188
|
+
sage: for k in range(-19,19,2):
|
189
|
+
....: P += plot(y(x).substitute(c == 1/k), x, 0, 3)
|
190
|
+
sage: P
|
191
|
+
Graphics object consisting of 19 graphics primitives
|
192
|
+
|
193
|
+
Sage example in ./recequadiff.tex, line 870::
|
194
|
+
|
195
|
+
sage: x = var('x'); y = function('y')(x); a, b = var('a, b')
|
196
|
+
sage: DE = diff(y,x) - a*y == -b*y**2
|
197
|
+
sage: sol = desolve(DE,[y,x]); sol
|
198
|
+
-(log(b*y(x) - a) - log(y(x)))/a == _C + x
|
199
|
+
|
200
|
+
Sage example in ./recequadiff.tex, line 880::
|
201
|
+
|
202
|
+
sage: Sol = solve(sol, y)[0]; Sol
|
203
|
+
log(y(x)) == _C*a + a*x + log(b*y(x) - a)
|
204
|
+
|
205
|
+
Sage example in ./recequadiff.tex, line 892::
|
206
|
+
|
207
|
+
sage: Sol(x) = Sol.lhs()-Sol.rhs(); Sol(x)
|
208
|
+
-_C*a - a*x - log(b*y(x) - a) + log(y(x))
|
209
|
+
sage: Sol = Sol.simplify_log(); Sol(x)
|
210
|
+
-_C*a - a*x + log(y(x)/(b*y(x) - a))
|
211
|
+
sage: solve(Sol, y)[0].simplify()
|
212
|
+
y(x) == a*e^(_C*a + a*x)/(b*e^(_C*a + a*x) - 1)
|
213
|
+
|
214
|
+
Sage example in ./recequadiff.tex, line 928::
|
215
|
+
|
216
|
+
sage: x = var('x'); y = function('y')(x)
|
217
|
+
sage: DE = diff(y,x,2)+3*y == x^2-7*x+31
|
218
|
+
sage: desolve(DE, y).expand()
|
219
|
+
1/3*x^2 + _K2*cos(sqrt(3)*x) + _K1*sin(sqrt(3)*x) - 7/3*x + 91/9
|
220
|
+
|
221
|
+
Sage example in ./recequadiff.tex, line 938::
|
222
|
+
|
223
|
+
sage: desolve(DE, y, ics=[0,1,2]).expand()
|
224
|
+
1/3*x^2 + 13/9*sqrt(3)*sin(sqrt(3)*x) - 7/3*x - 82/9*cos(sqrt(3)*x) + 91/9
|
225
|
+
|
226
|
+
Sage example in ./recequadiff.tex, line 948::
|
227
|
+
|
228
|
+
sage: desolve(DE, y, ics=[0,1,-1,0]).expand()
|
229
|
+
1/3*x^2 - 7/3*x - 82/9*cos(sqrt(3))*sin(sqrt(3)*x)/sin(sqrt(3))
|
230
|
+
+ 115/9*sin(sqrt(3)*x)/sin(sqrt(3)) - 82/9*cos(sqrt(3)*x) + 91/9
|
231
|
+
|
232
|
+
Sage example in ./recequadiff.tex, line 1022::
|
233
|
+
|
234
|
+
sage: x, t = var('x, t'); f = function('f')(x); g = function('g')(t)
|
235
|
+
sage: z = f*g
|
236
|
+
sage: eq(x,t) = diff(z,x,2) == diff(z,t); eq(x,t)
|
237
|
+
g(t)*diff(f(x), x, x) == f(x)*diff(g(t), t)
|
238
|
+
|
239
|
+
Sage example in ./recequadiff.tex, line 1042::
|
240
|
+
|
241
|
+
sage: eqn = eq/z; eqn(x,t)
|
242
|
+
diff(f(x), x, x)/f(x) == diff(g(t), t)/g(t)
|
243
|
+
|
244
|
+
Sage example in ./recequadiff.tex, line 1061::
|
245
|
+
|
246
|
+
sage: k = var('k')
|
247
|
+
sage: eq1(x,t) = eqn(x,t).lhs() == k; eq2(x,t) = eqn(x,t).rhs() == k
|
248
|
+
|
249
|
+
Sage example in ./recequadiff.tex, line 1069::
|
250
|
+
|
251
|
+
sage: g(t) = desolve(eq2(x,t),[g,t]); g(t)
|
252
|
+
_C*e^(k*t)
|
253
|
+
|
254
|
+
Sage example in ./recequadiff.tex, line 1092::
|
255
|
+
|
256
|
+
sage: assume(k>0); desolve(eq1,[f,x])
|
257
|
+
_K1*e^(sqrt(k)*x) + _K2*e^(-sqrt(k)*x)
|
258
|
+
|
259
|
+
Sage example in ./recequadiff.tex, line 1176::
|
260
|
+
|
261
|
+
sage: x, s = var('x, s'); f = function('f')(x)
|
262
|
+
sage: f(x) = sin(x); f.laplace(x,s)
|
263
|
+
x |--> 1/(s^2 + 1)
|
264
|
+
|
265
|
+
Sage example in ./recequadiff.tex, line 1191::
|
266
|
+
|
267
|
+
sage: X(s) = 1/(s^2-3*s-4)/(s^2+1) + (s-4)/(s^2-3*s-4)
|
268
|
+
sage: X(s).inverse_laplace(s, x)
|
269
|
+
3/34*cos(x) + 1/85*e^(4*x) + 9/10*e^(-x) - 5/34*sin(x)
|
270
|
+
|
271
|
+
Sage example in ./recequadiff.tex, line 1206::
|
272
|
+
|
273
|
+
sage: X(s).partial_fraction()
|
274
|
+
1/34*(3*s - 5)/(s^2 + 1) + 9/10/(s + 1) + 1/85/(s - 4)
|
275
|
+
|
276
|
+
Sage example in ./recequadiff.tex, line 1221::
|
277
|
+
|
278
|
+
sage: x = var('x'); y = function('y')(x)
|
279
|
+
sage: eq = diff(y,x,x) - 3*diff(y,x) - 4*y - sin(x) == 0
|
280
|
+
sage: desolve_laplace(eq, y)
|
281
|
+
1/85*(17*y(0) + 17*D[0](y)(0) + 1)*e^(4*x) + 1/10*(8*y(0)
|
282
|
+
- 2*D[0](y)(0) - 1)*e^(-x) + 3/34*cos(x) - 5/34*sin(x)
|
283
|
+
sage: desolve_laplace(eq, y, ics=[0,1,-1])
|
284
|
+
3/34*cos(x) + 1/85*e^(4*x) + 9/10*e^(-x) - 5/34*sin(x)
|
285
|
+
|
286
|
+
Sage example in ./recequadiff.tex, line 1279::
|
287
|
+
|
288
|
+
sage: x = var('x'); y1 = function('y1')(x)
|
289
|
+
sage: y2 = function('y2')(x); y3 = function('y3')(x)
|
290
|
+
sage: y = vector([y1, y2, y3])
|
291
|
+
sage: A = matrix([[2,-2,0],[-2,0,2],[0,2,2]])
|
292
|
+
sage: system = [diff(y[i], x) - (A * y)[i] for i in range(3)]
|
293
|
+
sage: desolve_system(system, [y1, y2, y3], ics=[0,2,1,-2])
|
294
|
+
[y1(x) == e^(4*x) + e^(-2*x),
|
295
|
+
y2(x) == -e^(4*x) + 2*e^(-2*x),
|
296
|
+
y3(x) == -e^(4*x) - e^(-2*x)]
|
297
|
+
|
298
|
+
Sage example in ./recequadiff.tex, line 1328::
|
299
|
+
|
300
|
+
sage: x = var('x'); y1 = function('y1')(x); y2 = function('y2')(x)
|
301
|
+
sage: y = vector([y1,y2])
|
302
|
+
sage: A = matrix([[3,-4],[1,3]])
|
303
|
+
sage: system = [diff(y[i], x) - (A * y)[i] for i in range(2)]
|
304
|
+
sage: desolve_system(system, [y1, y2], ics=[0,2,0])
|
305
|
+
[y1(x) == 2*cos(2*x)*e^(3*x), y2(x) == e^(3*x)*sin(2*x)]
|
306
|
+
|
307
|
+
Sage example in ./recequadiff.tex, line 1385::
|
308
|
+
|
309
|
+
sage: x = var('x'); u1 = function('u1')(x); u2 = function('u2')(x)
|
310
|
+
sage: u3 = function('u3')(x); u4 = function('u4')(x)
|
311
|
+
sage: u = vector([u1,u2,u3,u4])
|
312
|
+
sage: A = matrix([[0,0,1,0],[0,0,0,1],[2,-6,1,3],[-2,6,1,-1]])
|
313
|
+
sage: system = [diff(u[i], x) - (A*u)[i] for i in range(4)]
|
314
|
+
sage: sol = desolve_system(system, [u1, u2, u3, u4])
|
315
|
+
|
316
|
+
Sage example in ./recequadiff.tex, line 1399::
|
317
|
+
|
318
|
+
sage: sol[0]
|
319
|
+
u1(x) == 1/12*(2*u1(0) - 6*u2(0) + 5*u3(0) + 3*u4(0))*e^(2*x)
|
320
|
+
+ 1/24*(2*u1(0) - 6*u2(0) - u3(0) + 3*u4(0))*e^(-4*x) + 3/4*u1(0)
|
321
|
+
+ 3/4*u2(0) - 3/8*u3(0) - 3/8*u4(0)
|
322
|
+
sage: sol[1]
|
323
|
+
u2(x) == -1/12*(2*u1(0) - 6*u2(0) - u3(0) - 3*u4(0))*e^(2*x)
|
324
|
+
- 1/24*(2*u1(0) - 6*u2(0) - u3(0) + 3*u4(0))*e^(-4*x) + 1/4*u1(0)
|
325
|
+
+ 1/4*u2(0) - 1/8*u3(0) - 1/8*u4(0)
|
326
|
+
|
327
|
+
Sage example in ./recequadiff.tex, line 1557::
|
328
|
+
|
329
|
+
sage: x = var('x'); f = function('f')(x)
|
330
|
+
sage: f(x) = 3.83*x*(1 - x/100000)
|
331
|
+
sage: def u(n):
|
332
|
+
....: if n==0: return(20000)
|
333
|
+
....: else: return f(u(n-1))
|
334
|
+
|
335
|
+
Sage example in ./recequadiff.tex, line 1568::
|
336
|
+
|
337
|
+
sage: def v(n):
|
338
|
+
....: V = 20000;
|
339
|
+
....: for k in [1..n]:
|
340
|
+
....: V = f(V)
|
341
|
+
....: return V
|
342
|
+
|
343
|
+
Sage example in ./recequadiff.tex, line 1582::
|
344
|
+
|
345
|
+
sage: def cloud(u, n):
|
346
|
+
....: L = [[0,u(0)]];
|
347
|
+
....: for k in [1..n]:
|
348
|
+
....: L += [[k,u(k)]]
|
349
|
+
....: points(L).show()
|
350
|
+
|
351
|
+
Sage example in ./recequadiff.tex, line 1598::
|
352
|
+
|
353
|
+
sage: cloud(u,50)
|
354
|
+
|
355
|
+
Sage example in ./recequadiff.tex, line 1619::
|
356
|
+
|
357
|
+
sage: def snail(f, x, u0, n, xmin, xmax):
|
358
|
+
....: u = u0
|
359
|
+
....: P = plot(x, x, xmin, xmax, color='gray')
|
360
|
+
....: for i in range(n):
|
361
|
+
....: P += line([[u,u],[u,f(u)],[f(u),f(u)]], color = 'red')
|
362
|
+
....: u = f(u)
|
363
|
+
....: P += f.plot(x, xmin, xmax, color='blue')
|
364
|
+
....: P.show()
|
365
|
+
|
366
|
+
Sage example in ./recequadiff.tex, line 1637::
|
367
|
+
|
368
|
+
sage: f(x) = 3.83*x*(1 - x/100000)
|
369
|
+
sage: snail(f,x,20000,100,0,100000)
|
370
|
+
|
371
|
+
Sage example in ./recequadiff.tex, line 1687::
|
372
|
+
|
373
|
+
sage: from sympy import Function
|
374
|
+
sage: from sympy.abc import n
|
375
|
+
sage: u = Function('u')
|
376
|
+
|
377
|
+
Sage example in ./recequadiff.tex, line 1700::
|
378
|
+
|
379
|
+
sage: f = u(n+2)-(3/2)*u(n+1)+(1/2)*u(n)
|
380
|
+
|
381
|
+
Sage example in ./recequadiff.tex, line 1707::
|
382
|
+
|
383
|
+
sage: from sympy import rsolve
|
384
|
+
sage: rsolve(f, u(n), {u(0):-1,u(1):1}) == 3 - 4*2**(-n)
|
385
|
+
True
|
386
|
+
|
387
|
+
Sage example in ./recequadiff.tex, line 1798::
|
388
|
+
|
389
|
+
sage: from sympy import rsolve_hyper
|
390
|
+
sage: from sympy.abc import n
|
391
|
+
sage: rsolve_hyper([-2,1],2**(n+2),n)
|
392
|
+
2**n*C0 + 2**(n + 1)*n
|
393
|
+
"""
|
@@ -0,0 +1 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
@@ -0,0 +1,265 @@
|
|
1
|
+
# sage_setup: distribution = sagemath-repl
|
2
|
+
# sage.doctest: needs sage.symbolic
|
3
|
+
"""
|
4
|
+
This file (./sol/calculus_doctest.sage) was *autogenerated* from ./sol/calculus.tex,
|
5
|
+
with sagetex.sty version 2011/05/27 v2.3.1.
|
6
|
+
It contains the contents of all the sageexample environments from this file.
|
7
|
+
You should be able to doctest this file with:
|
8
|
+
sage -t ./sol/calculus_doctest.sage
|
9
|
+
It is always safe to delete this file; it is not used in typesetting your
|
10
|
+
document.
|
11
|
+
|
12
|
+
Sage example in ./sol/calculus.tex, line 3::
|
13
|
+
|
14
|
+
sage: reset()
|
15
|
+
|
16
|
+
Sage example in ./sol/calculus.tex, line 10::
|
17
|
+
|
18
|
+
sage: n = var('n'); pmax = 4; s = [n + 1]
|
19
|
+
sage: for p in [1..pmax]:
|
20
|
+
....: s += [factor(((n+1)^(p+1) - sum(binomial(p+1, j) * s[j]
|
21
|
+
....: for j in [0..p-1])) / (p+1))]
|
22
|
+
sage: s
|
23
|
+
[n + 1,
|
24
|
+
1/2*(n + 1)*n,
|
25
|
+
1/6*(2*n + 1)*(n + 1)*n,
|
26
|
+
1/4*(n + 1)^2*n^2,
|
27
|
+
1/30*(3*n^2 + 3*n - 1)*(2*n + 1)*(n + 1)*n]
|
28
|
+
|
29
|
+
Sage example in ./sol/calculus.tex, line 42::
|
30
|
+
|
31
|
+
sage: x, h, a = var('x, h, a'); f = function('f')
|
32
|
+
sage: g(x) = taylor(f(x), x, a, 3)
|
33
|
+
sage: phi(h) = (g(a+3*h) - 3*g(a+2*h) + 3*g(a+h) - g(a)) / h^3; phi(h)
|
34
|
+
diff(f(a), a, a, a)
|
35
|
+
|
36
|
+
Sage example in ./sol/calculus.tex, line 75::
|
37
|
+
|
38
|
+
sage: n = 7; x, h, a = var('x h a'); f = function('f')
|
39
|
+
sage: g(x) = taylor(f(x), x, a, n)
|
40
|
+
sage: sum((-1)^(n-k) * binomial(n,k) * g(a+k*h) for k in (0..n)) / h^n
|
41
|
+
diff(f(a), a, a, a, a, a, a, a)
|
42
|
+
|
43
|
+
Sage example in ./sol/calculus.tex, line 100::
|
44
|
+
|
45
|
+
sage: theta = 12*arctan(1/38) + 20*arctan(1/57) \
|
46
|
+
....: + 7*arctan(1/239) + 24*arctan(1/268)
|
47
|
+
sage: tan(theta).trig_expand().trig_simplify()
|
48
|
+
1
|
49
|
+
|
50
|
+
Sage example in ./sol/calculus.tex, line 110::
|
51
|
+
|
52
|
+
sage: 12*(1/38) + 20*(1/57) + 7*(1/239) + 24*(1/268)
|
53
|
+
37735/48039
|
54
|
+
|
55
|
+
Sage example in ./sol/calculus.tex, line 135::
|
56
|
+
|
57
|
+
sage: x = var('x'); f(x) = taylor(arctan(x), x, 0, 21)
|
58
|
+
sage: approx = 4 * (12 * f(1/38) + 20 * f(1/57)
|
59
|
+
....: + 7 * f(1/239) + 24 * f(1/268))
|
60
|
+
sage: approx.n(digits = 50); pi.n(digits = 50)
|
61
|
+
3.1415926535897932384626433832795028851616168852864
|
62
|
+
3.1415926535897932384626433832795028841971693993751
|
63
|
+
sage: approx.n(digits = 50) - pi.n(digits = 50)
|
64
|
+
9.6444748591132486785420917537404705292978817080880e-37
|
65
|
+
|
66
|
+
Sage example in ./sol/calculus.tex, line 182::
|
67
|
+
|
68
|
+
sage: n = var('n'); phi = lambda x: n*pi + pi/2 - arctan(1/x)
|
69
|
+
sage: x = n*pi
|
70
|
+
sage: for i in range(4):
|
71
|
+
....: x = taylor(phi(x), n, infinity, 2*i); x
|
72
|
+
1/2*pi + pi*n
|
73
|
+
1/2*pi + pi*n - 1/(pi*n) + 1/2/(pi*n^2)
|
74
|
+
1/2*pi + pi*n - 1/(pi*n) + 1/2/(pi*n^2)
|
75
|
+
- 1/12*(3*pi^2 + 8)/(pi^3*n^3) + 1/8*(pi^2 + 8)/(pi^3*n^4)
|
76
|
+
1/2*pi + pi*n - 1/(pi*n) + 1/2/(pi*n^2)
|
77
|
+
- 1/12*(3*pi^2 + 8)/(pi^3*n^3) + 1/8*(pi^2 + 8)/(pi^3*n^4)
|
78
|
+
- 1/240*(15*pi^4 + 240*pi^2 + 208)/(pi^5*n^5)
|
79
|
+
+ 1/96*(3*pi^4 + 80*pi^2 + 208)/(pi^5*n^6)
|
80
|
+
|
81
|
+
Sage example in ./sol/calculus.tex, line 239::
|
82
|
+
|
83
|
+
sage: h = var('h'); f(x, y) = x * y * (x^2 - y^2) / (x^2 + y^2)
|
84
|
+
sage: D1f(x, y) = diff(f(x,y), x); limit((D1f(0,h) - 0) / h, h=0)
|
85
|
+
-1
|
86
|
+
sage: D2f(x, y) = diff(f(x,y), y); limit((D2f(h,0) - 0) / h, h=0)
|
87
|
+
1
|
88
|
+
sage: g = plot3d(f(x, y), (x, -3, 3), (y, -3, 3))
|
89
|
+
|
90
|
+
Sage example in ./sol/calculus.tex, line 285::
|
91
|
+
|
92
|
+
sage: n, t = var('n, t')
|
93
|
+
sage: v(n) = (4/(8*n+1)-2/(8*n+4)-1/(8*n+5)-1/(8*n+6))*1/16^n
|
94
|
+
sage: assume(8*n+1>0)
|
95
|
+
sage: f(t) = 4*sqrt(2)-8*t^3-4*sqrt(2)*t^4-8*t^5
|
96
|
+
sage: u(n) = integrate(f(t) * t^(8*n), t, 0, 1/sqrt(2))
|
97
|
+
sage: (u(n)-v(n)).canonicalize_radical()
|
98
|
+
0
|
99
|
+
|
100
|
+
Sage example in ./sol/calculus.tex, line 317::
|
101
|
+
|
102
|
+
sage: t = var('t'); J = integrate(f(t) / (1-t^8), t, 0, 1/sqrt(2))
|
103
|
+
sage: J.canonicalize_radical()
|
104
|
+
pi + 2*log(sqrt(2) + 1) + 2*log(sqrt(2) - 1)
|
105
|
+
|
106
|
+
Sage example in ./sol/calculus.tex, line 325::
|
107
|
+
|
108
|
+
sage: J.simplify_log().canonicalize_radical()
|
109
|
+
pi
|
110
|
+
|
111
|
+
Sage example in ./sol/calculus.tex, line 337::
|
112
|
+
|
113
|
+
sage: l = sum(v(n) for n in (0..40)); l.n(digits=60)
|
114
|
+
3.14159265358979323846264338327950288419716939937510581474759
|
115
|
+
sage: pi.n(digits=60)
|
116
|
+
3.14159265358979323846264338327950288419716939937510582097494
|
117
|
+
sage: print("%e" % (l-pi).n(digits=60))
|
118
|
+
-6.227358e-54
|
119
|
+
|
120
|
+
Sage example in ./sol/calculus.tex, line 369::
|
121
|
+
|
122
|
+
sage: x = var('x'); ps = lambda f, g : integral(f * g, x, -pi, pi)
|
123
|
+
sage: n = 5; a = var('a0, a1, a2, a3, a4, a5')
|
124
|
+
sage: P = sum(a[k] * x^k for k in (0..n))
|
125
|
+
sage: equ = [ps(P - sin(x), x^k) for k in (0..n)]
|
126
|
+
sage: sol = solve(equ, a)
|
127
|
+
sage: P = sum(sol[0][k].rhs() * x^k for k in (0..n)); P
|
128
|
+
105/8*(pi^4 - 153*pi^2 + 1485)*x/pi^6 - 315/4*(pi^4 - 125*pi^2 +
|
129
|
+
1155)*x^3/pi^8 + 693/8*(pi^4 - 105*pi^2 + 945)*x^5/pi^10
|
130
|
+
sage: g = plot(P,x,-6,6,color='red') + plot(sin(x),x,-6,6,color='blue')
|
131
|
+
sage: g.show(ymin = -1.5, ymax = 1.5)
|
132
|
+
|
133
|
+
Sage example in ./sol/calculus.tex, line 430::
|
134
|
+
|
135
|
+
sage: p, e = var('p, e')
|
136
|
+
sage: theta1, theta2, theta3 = var('theta1, theta2, theta3')
|
137
|
+
sage: r(theta) = p / (1 - e * cos(theta))
|
138
|
+
sage: r1 = r(theta1); r2 = r(theta2); r3 = r(theta3)
|
139
|
+
sage: R1 = vector([r1 * cos(theta1), r1 * sin(theta1), 0])
|
140
|
+
sage: R2 = vector([r2 * cos(theta2), r2 * sin(theta2), 0])
|
141
|
+
sage: R3 = vector([r3 * cos(theta3), r3 * sin(theta3), 0])
|
142
|
+
|
143
|
+
Sage example in ./sol/calculus.tex, line 446::
|
144
|
+
|
145
|
+
sage: D = R1.cross_product(R2)+R2.cross_product(R3)+R3.cross_product(R1)
|
146
|
+
sage: S = (r1 - r3) * R2 + (r3 - r2) * R1 + (r2 - r1) * R3
|
147
|
+
sage: i = vector([1, 0, 0]); V = S + e * i.cross_product(D)
|
148
|
+
sage: V.simplify_full()
|
149
|
+
(0, 0, 0)
|
150
|
+
|
151
|
+
Sage example in ./sol/calculus.tex, line 466::
|
152
|
+
|
153
|
+
sage: S.cross_product(D).simplify_full()[1:3]
|
154
|
+
(0, 0)
|
155
|
+
|
156
|
+
Sage example in ./sol/calculus.tex, line 479::
|
157
|
+
|
158
|
+
sage: N = r3 * R1.cross_product(R2) + r1 * R2.cross_product(R3)\
|
159
|
+
....: + r2 * R3.cross_product(R1)
|
160
|
+
sage: W = p * S + e * i.cross_product(N)
|
161
|
+
sage: W.simplify_full()
|
162
|
+
(0, 0, 0)
|
163
|
+
|
164
|
+
Sage example in ./sol/calculus.tex, line 504::
|
165
|
+
|
166
|
+
sage: R1=vector([0,1,0]); R2=vector([2,2,0]); R3=vector([3.5,0,0])
|
167
|
+
sage: r1 = R1.norm(); r2 = R2.norm(); r3 = R3.norm()
|
168
|
+
sage: D = R1.cross_product(R2) + R2.cross_product(R3) \
|
169
|
+
....: + R3.cross_product(R1)
|
170
|
+
sage: S = (r1 - r3) * R2 + (r3 - r2) * R1 + (r2 - r1) * R3
|
171
|
+
sage: N = r3 * R1.cross_product(R2) + r1 * R2.cross_product(R3) \
|
172
|
+
....: + r2 * R3.cross_product(R1)
|
173
|
+
sage: e = S.norm() / D.norm(); p = N.norm() / D.norm()
|
174
|
+
sage: a = p/(1-e^2); c = a * e; b = sqrt(a^2 - c^2)
|
175
|
+
sage: X = S.cross_product(D); i = X / X.norm()
|
176
|
+
sage: phi = atan2(i[1], i[0]) * 180 / pi.n()
|
177
|
+
sage: print("%.3f %.3f %.3f %.3f %.3f %.3f" % (a, b, c, e, p, phi))
|
178
|
+
2.360 1.326 1.952 0.827 0.746 17.917
|
179
|
+
|
180
|
+
Sage example in ./sol/calculus.tex, line 544::
|
181
|
+
|
182
|
+
sage: A = matrix(QQ, [[ 2, -3, 2, -12, 33],
|
183
|
+
....: [ 6, 1, 26, -16, 69],
|
184
|
+
....: [10, -29, -18, -53, 32],
|
185
|
+
....: [ 2, 0, 8, -18, 84]])
|
186
|
+
sage: A.right_kernel()
|
187
|
+
Vector space of degree 5 and dimension 2 over Rational Field
|
188
|
+
Basis matrix:
|
189
|
+
[ 1 0 -7/34 5/17 1/17]
|
190
|
+
[ 0 1 -3/34 -10/17 -2/17]
|
191
|
+
|
192
|
+
Sage example in ./sol/calculus.tex, line 571::
|
193
|
+
|
194
|
+
sage: H = A.echelon_form(); H
|
195
|
+
[ 1 0 4 0 -3]
|
196
|
+
[ 0 1 2 0 7]
|
197
|
+
[ 0 0 0 1 -5]
|
198
|
+
[ 0 0 0 0 0]
|
199
|
+
|
200
|
+
Sage example in ./sol/calculus.tex, line 608::
|
201
|
+
|
202
|
+
sage: A.column_space()
|
203
|
+
Vector space of degree 4 and dimension 3 over Rational Field
|
204
|
+
Basis matrix:
|
205
|
+
[ 1 0 0 1139/350]
|
206
|
+
[ 0 1 0 -9/50]
|
207
|
+
[ 0 0 1 -12/35]
|
208
|
+
|
209
|
+
Sage example in ./sol/calculus.tex, line 624::
|
210
|
+
|
211
|
+
sage: S.<x, y, z, t> = QQ[]
|
212
|
+
sage: C = matrix(S, 4, 1, [x, y, z, t])
|
213
|
+
sage: B = block_matrix([A, C], ncols=2)
|
214
|
+
sage: C = B.echelon_form()
|
215
|
+
sage: C[3,5]*350
|
216
|
+
-1139*x + 63*y + 120*z + 350*t
|
217
|
+
|
218
|
+
Sage example in ./sol/calculus.tex, line 643::
|
219
|
+
|
220
|
+
sage: K = A.left_kernel(); K
|
221
|
+
Vector space of degree 4 and dimension 1 over Rational Field
|
222
|
+
Basis matrix:
|
223
|
+
[ 1 -63/1139 -120/1139 -350/1139]
|
224
|
+
|
225
|
+
Sage example in ./sol/calculus.tex, line 653::
|
226
|
+
|
227
|
+
sage: matrix(K.0).right_kernel()
|
228
|
+
Vector space of degree 4 and dimension 3 over Rational Field
|
229
|
+
Basis matrix:
|
230
|
+
[ 1 0 0 1139/350]
|
231
|
+
[ 0 1 0 -9/50]
|
232
|
+
[ 0 0 1 -12/35]
|
233
|
+
|
234
|
+
Sage example in ./sol/calculus.tex, line 668::
|
235
|
+
|
236
|
+
sage: A = matrix(QQ, [[-2, 1, 1], [8, 1, -5], [4, 3, -3]])
|
237
|
+
sage: C = matrix(QQ, [[1, 2, -1], [2, -1, -1], [-5, 0, 3]])
|
238
|
+
|
239
|
+
Sage example in ./sol/calculus.tex, line 680::
|
240
|
+
|
241
|
+
sage: B = C.solve_left(A); B
|
242
|
+
[ 0 -1 0]
|
243
|
+
[ 2 3 0]
|
244
|
+
[ 2 1 0]
|
245
|
+
|
246
|
+
Sage example in ./sol/calculus.tex, line 691::
|
247
|
+
|
248
|
+
sage: C.left_kernel()
|
249
|
+
Vector space of degree 3 and dimension 1 over Rational Field
|
250
|
+
Basis matrix:
|
251
|
+
[1 2 1]
|
252
|
+
|
253
|
+
Sage example in ./sol/calculus.tex, line 699::
|
254
|
+
|
255
|
+
sage: x, y, z = var('x, y, z'); v = matrix([[1, 2, 1]])
|
256
|
+
sage: B = B + (x*v).stack(y*v).stack(z*v); B
|
257
|
+
[ x 2*x - 1 x]
|
258
|
+
[ y + 2 2*y + 3 y]
|
259
|
+
[ z + 2 2*z + 1 z]
|
260
|
+
|
261
|
+
Sage example in ./sol/calculus.tex, line 708::
|
262
|
+
|
263
|
+
sage: A == B*C
|
264
|
+
True
|
265
|
+
"""
|