passagemath-repl 10.5.28__py3-none-any.whl → 10.5.29__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.
Files changed (96) hide show
  1. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/kernel.json +1 -0
  2. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/logo-64x64.png +0 -0
  3. passagemath_repl-10.5.29.data/data/share/jupyter/kernels/sagemath/logo.svg +352 -0
  4. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/METADATA +3 -3
  5. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/RECORD +95 -24
  6. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/top_level.txt +1 -0
  7. sage/ext_data/all__sagemath_repl.py +1 -0
  8. sage/interfaces/all__sagemath_repl.py +1 -0
  9. sage/repl/ipython_kernel/install.py +6 -8
  10. sage/tests/books/__init__.py +2 -0
  11. sage/tests/books/computational-mathematics-with-sagemath/__init__.py +1 -0
  12. sage/tests/books/computational-mathematics-with-sagemath/calculus_doctest.py +549 -0
  13. sage/tests/books/computational-mathematics-with-sagemath/combinat_doctest.py +1053 -0
  14. sage/tests/books/computational-mathematics-with-sagemath/domaines_doctest.py +443 -0
  15. sage/tests/books/computational-mathematics-with-sagemath/float_doctest.py +477 -0
  16. sage/tests/books/computational-mathematics-with-sagemath/graphique_doctest.py +254 -0
  17. sage/tests/books/computational-mathematics-with-sagemath/graphtheory_doctest.py +418 -0
  18. sage/tests/books/computational-mathematics-with-sagemath/integration_doctest.py +290 -0
  19. sage/tests/books/computational-mathematics-with-sagemath/linalg_doctest.py +454 -0
  20. sage/tests/books/computational-mathematics-with-sagemath/linsolve_doctest.py +421 -0
  21. sage/tests/books/computational-mathematics-with-sagemath/lp_doctest.py +234 -0
  22. sage/tests/books/computational-mathematics-with-sagemath/mpoly_doctest.py +560 -0
  23. sage/tests/books/computational-mathematics-with-sagemath/nonlinear_doctest.py +490 -0
  24. sage/tests/books/computational-mathematics-with-sagemath/numbertheory_doctest.py +155 -0
  25. sage/tests/books/computational-mathematics-with-sagemath/polynomes_doctest.py +405 -0
  26. sage/tests/books/computational-mathematics-with-sagemath/premierspas_doctest.py +180 -0
  27. sage/tests/books/computational-mathematics-with-sagemath/programmation_doctest.py +662 -0
  28. sage/tests/books/computational-mathematics-with-sagemath/recequadiff_doctest.py +392 -0
  29. sage/tests/books/computational-mathematics-with-sagemath/sol/__init__.py +1 -0
  30. sage/tests/books/computational-mathematics-with-sagemath/sol/calculus_doctest.py +264 -0
  31. sage/tests/books/computational-mathematics-with-sagemath/sol/combinat_doctest.py +217 -0
  32. sage/tests/books/computational-mathematics-with-sagemath/sol/domaines_doctest.py +59 -0
  33. sage/tests/books/computational-mathematics-with-sagemath/sol/float_doctest.py +141 -0
  34. sage/tests/books/computational-mathematics-with-sagemath/sol/graphique_doctest.py +105 -0
  35. sage/tests/books/computational-mathematics-with-sagemath/sol/graphtheory_doctest.py +53 -0
  36. sage/tests/books/computational-mathematics-with-sagemath/sol/integration_doctest.py +56 -0
  37. sage/tests/books/computational-mathematics-with-sagemath/sol/linalg_doctest.py +56 -0
  38. sage/tests/books/computational-mathematics-with-sagemath/sol/linsolve_doctest.py +25 -0
  39. sage/tests/books/computational-mathematics-with-sagemath/sol/lp_doctest.py +47 -0
  40. sage/tests/books/computational-mathematics-with-sagemath/sol/mpoly_doctest.py +115 -0
  41. sage/tests/books/computational-mathematics-with-sagemath/sol/nonlinear_doctest.py +111 -0
  42. sage/tests/books/computational-mathematics-with-sagemath/sol/numbertheory_doctest.py +167 -0
  43. sage/tests/books/computational-mathematics-with-sagemath/sol/polynomes_doctest.py +107 -0
  44. sage/tests/books/computational-mathematics-with-sagemath/sol/recequadiff_doctest.py +58 -0
  45. sage/tests/books/judson-abstract-algebra/__init__.py +1 -0
  46. sage/tests/books/judson-abstract-algebra/actions-sage-exercises.py +51 -0
  47. sage/tests/books/judson-abstract-algebra/actions-sage.py +173 -0
  48. sage/tests/books/judson-abstract-algebra/algcodes-sage.py +130 -0
  49. sage/tests/books/judson-abstract-algebra/boolean-sage.py +269 -0
  50. sage/tests/books/judson-abstract-algebra/cosets-sage-exercises.py +87 -0
  51. sage/tests/books/judson-abstract-algebra/cosets-sage.py +170 -0
  52. sage/tests/books/judson-abstract-algebra/crypt-sage.py +151 -0
  53. sage/tests/books/judson-abstract-algebra/cyclic-sage.py +450 -0
  54. sage/tests/books/judson-abstract-algebra/domains-sage.py +163 -0
  55. sage/tests/books/judson-abstract-algebra/fields-sage.py +299 -0
  56. sage/tests/books/judson-abstract-algebra/finite-sage.py +108 -0
  57. sage/tests/books/judson-abstract-algebra/galois-sage.py +484 -0
  58. sage/tests/books/judson-abstract-algebra/groups-sage.py +280 -0
  59. sage/tests/books/judson-abstract-algebra/homomorph-sage-exercises.py +65 -0
  60. sage/tests/books/judson-abstract-algebra/homomorph-sage.py +200 -0
  61. sage/tests/books/judson-abstract-algebra/integers-sage.py +197 -0
  62. sage/tests/books/judson-abstract-algebra/isomorph-sage.py +172 -0
  63. sage/tests/books/judson-abstract-algebra/normal-sage.py +133 -0
  64. sage/tests/books/judson-abstract-algebra/permute-sage.py +319 -0
  65. sage/tests/books/judson-abstract-algebra/poly-sage.py +300 -0
  66. sage/tests/books/judson-abstract-algebra/rings-sage.py +413 -0
  67. sage/tests/books/judson-abstract-algebra/sets-sage.py +163 -0
  68. sage/tests/books/judson-abstract-algebra/struct-sage.py +63 -0
  69. sage/tests/books/judson-abstract-algebra/sylow-sage.py +250 -0
  70. sage/tests/books/judson-abstract-algebra/vect-sage-exercises.py +48 -0
  71. sage/tests/books/judson-abstract-algebra/vect-sage.py +211 -0
  72. sage/tests/memcheck/__init__.py +1 -0
  73. sage/tests/memcheck/run_tests.py +25 -0
  74. sage/tests/memcheck/run_tests_in_valgrind.py +36 -0
  75. sage/tests/memcheck/symbolic_expression.py +12 -0
  76. sage/tests/memcheck/verify_no_leak.py +28 -0
  77. sage/tests/all.py +0 -0
  78. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-cachegrind +0 -0
  79. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-callgrind +0 -0
  80. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-cleaner +0 -0
  81. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-coverage +0 -0
  82. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-eval +0 -0
  83. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-fixdoctests +0 -0
  84. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-inline-fortran +0 -0
  85. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-ipynb2rst +0 -0
  86. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-ipython +0 -0
  87. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-massif +0 -0
  88. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-notebook +0 -0
  89. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-omega +0 -0
  90. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-preparse +0 -0
  91. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-run +0 -0
  92. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-run-cython +0 -0
  93. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-runtests +0 -0
  94. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-startuptime.py +0 -0
  95. {passagemath_repl-10.5.28.data → passagemath_repl-10.5.29.data}/scripts/sage-valgrind +0 -0
  96. {passagemath_repl-10.5.28.dist-info → passagemath_repl-10.5.29.dist-info}/WHEEL +0 -0
@@ -0,0 +1,421 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ r"""
3
+ This file (./linsolve_doctest.sage) was *autogenerated* from ./linsolve.tex,
4
+ with sagetex.sty version 2011/05/27 v2.3.1.
5
+ It contains the contents of all the sageexample environments from this file.
6
+ You should be able to doctest this file with:
7
+ sage -t ./linsolve_doctest.sage
8
+ It is always safe to delete this file; it is not used in typesetting your
9
+ document.
10
+
11
+ Sage example in ./linsolve.tex, line 294::
12
+
13
+ sage: def cond_hilbert(n):
14
+ ....: A = matrix(QQ, [[1/(i+j-1) for j in [1..n]] for i in [1..n]])
15
+ ....: return A.norm(Infinity) * (A^-1).norm(Infinity)
16
+
17
+ Sage example in ./linsolve.tex, line 346::
18
+
19
+ sage: def diff_hilbert(n):
20
+ ....: x = vector(QQ,[1 for i in range(0,n)])
21
+ ....: A = matrix(QQ, [[1/(i+j-1) for j in [1..n]] for i in [1..n]])
22
+ ....: y = A*x
23
+ ....: A[n-1,n-1] = (1/(2*n-1))*(1+1/(10^5)) # modifies the matrix
24
+ ....: s = A\y
25
+ ....: return max(abs(float(s[i]-x[i])) for i in range(0,n))
26
+
27
+ Sage example in ./linsolve.tex, line 396::
28
+
29
+ sage: def hilbert_diff(n):
30
+ ....: j = var("j")
31
+ ....: f = lambda i: sum(1/(i+j-1),j,1,n)
32
+ ....: y = vector(RDF, [f(i+1) for i in range(0,n)])
33
+ ....: A = matrix(RDF, [[1/(i+j-1) for i in [1..n]] for j in [1..n]])
34
+ ....: x = A.solve_right(y)
35
+ ....: return max(abs(x[i]-1.0) for i in range(0,n))
36
+
37
+ Sage example in ./linsolve.tex, line 543::
38
+
39
+ sage: n = 20; cost = (n+1)*factorial(n); cost
40
+ 51090942171709440000
41
+
42
+ Sage example in ./linsolve.tex, line 559::
43
+
44
+ sage: v = 3*10^9
45
+ sage: print("%3.3f" % float(cost/v/3600/24/365))
46
+ 540.028
47
+
48
+ Sage example in ./linsolve.tex, line 653::
49
+
50
+ sage: A = matrix(RDF, [[-1,2],[3,4]])
51
+ sage: b = vector(RDF, [2,3])
52
+ sage: x = A.solve_right(b); x
53
+ (-0.20000000000000018, 0.9000000000000001)
54
+
55
+ Sage example in ./linsolve.tex, line 666::
56
+
57
+ sage: x = A.solve_right(b)
58
+
59
+ Sage example in ./linsolve.tex, line 678::
60
+
61
+ sage: A = matrix(RDF, [[-1,2],[3,4]])
62
+ sage: P, L, U = A.LU()
63
+
64
+ Sage example in ./linsolve.tex, line 723::
65
+
66
+ sage: eps = 1e-16
67
+ sage: y = (1-2*eps)/(1-eps)
68
+ sage: x = (1-y)/eps
69
+ sage: x, y
70
+ (1.11022302462516, 1.00000000000000)
71
+
72
+ Sage example in ./linsolve.tex, line 736::
73
+
74
+ sage: 1. + eps == 1.
75
+ True
76
+
77
+ Sage example in ./linsolve.tex, line 758::
78
+
79
+ sage: y = (1-2*eps)/(1-eps)
80
+ sage: x = 2-y
81
+ sage: x, y
82
+ (1.00000000000000, 1.00000000000000)
83
+
84
+ Sage example in ./linsolve.tex, line 803::
85
+
86
+ sage: A = random_matrix(RDF, 1000)
87
+ sage: b = vector(RDF, range(1000))
88
+ sage: c = vector(RDF, 2*list(range(500)))
89
+
90
+ Sage example in ./linsolve.tex, line 858::
91
+
92
+ sage: m = random_matrix(RDF, 10)
93
+ sage: A = transpose(m)*m
94
+ sage: C = A.cholesky()
95
+
96
+ Sage example in ./linsolve.tex, line 946::
97
+
98
+ sage: A = random_matrix(RDF,6,5)
99
+ sage: Q, R = A.QR()
100
+
101
+ Sage example in ./linsolve.tex, line 1012::
102
+
103
+ sage: A = matrix(RDF, [[1,3,2],[1,2,3],[0,5,2],[1,1,1]])
104
+ sage: U, Sig, V = A.SVD()
105
+ sage: A1 = A - U*Sig*transpose(V); A1 # abs tol 1e-9
106
+ [ 2.220446049250313e-16 0.0 0.0]
107
+ [3.3306690738754696e-16 -4.440892098500626e-16 -4.440892098500626e-16]
108
+ [-9.298117831235686e-16 1.7763568394002505e-15 -4.440892098500626e-16]
109
+ [ 4.440892098500626e-16 -8.881784197001252e-16 -4.440892098500626e-16]
110
+
111
+ Sage example in ./linsolve.tex, line 1123::
112
+
113
+ sage: A = matrix(RDF, [[1,3,2],[1,4,2],[0,5,2],[1,3,2]])
114
+ sage: b = vector(RDF, [1,2,3,4])
115
+ sage: Z = transpose(A)*A
116
+ sage: C = Z.cholesky()
117
+ sage: R = transpose(A)*b
118
+ sage: Z.solve_right(R) # abs tol 2e-13
119
+ (-1.5000000000000135, -0.5000000000000085, 2.7500000000000213)
120
+
121
+ Sage example in ./linsolve.tex, line 1188::
122
+
123
+ sage: A = matrix(RDF, [[1,3,2],[1,4,2],[0,5,2],[1,3,2]])
124
+ sage: b = vector(RDF, [1,2,3,4])
125
+ sage: Q, R = A.QR()
126
+ sage: R1 = R[0:3,0:3]
127
+ sage: b1 = transpose(Q)*b
128
+ sage: c = b1[0:3]
129
+ sage: R1.solve_right(c) # abs tol 1e-13
130
+ (-1.499999999999999, -0.49999999999999867, 2.749999999999997)
131
+
132
+ Sage example in ./linsolve.tex, line 1202::
133
+
134
+ sage: Z = A.transpose()*A
135
+ sage: Z.norm(Infinity)*(Z^-1).norm(Infinity) # abs tol 2e-10
136
+ 1992.3750000000168
137
+
138
+ Sage example in ./linsolve.tex, line 1256::
139
+
140
+ sage: A = matrix(RDF, [[1,3,2],[1,3,2],[0,5,2],[1,3,2]])
141
+ sage: B = vector(RDF, [1,2,3,4])
142
+ sage: U, Sig, V = A.SVD()
143
+ sage: m = A.ncols()
144
+ sage: x = vector(RDF, [0]*m)
145
+ sage: lamb = vector(RDF, [0]*m)
146
+ sage: for i in range(0,m):
147
+ ....: s = Sig[i,i]
148
+ ....: if s!=0.0:
149
+ ....: lamb[i]=U.column(i)*B/s
150
+ sage: x = V*lamb; x # random
151
+ (0.2370370370370367, 0.4518518518518521, 0.3703703703703702)
152
+
153
+ Sage example in ./linsolve.tex, line 1289::
154
+
155
+ sage: m = 3; [ Sig[i,i] for i in range(0,m) ] # abs tol 1e-15
156
+ [8.309316833256451, 1.3983038884881154, 0.0]
157
+
158
+ Sage example in ./linsolve.tex, line 1358::
159
+
160
+ sage: A = matrix(RDF, [[1,2],[3,4],[5,6],[7,8]])
161
+
162
+ Sage example in ./linsolve.tex, line 1366::
163
+
164
+ sage: set_random_seed(0) # to get reproducible values below
165
+
166
+ Sage example in ./linsolve.tex, line 1369::
167
+
168
+ sage: th = 0.7
169
+ sage: R = matrix(RDF, [[cos(th),sin(th)],[-sin(th),cos(th)]])
170
+ sage: B = (A + 0.1*random_matrix(RDF,4,2)) * transpose(R)
171
+
172
+ Sage example in ./linsolve.tex, line 1374::
173
+
174
+ sage: C = transpose(B)*A
175
+ sage: U, Sigma, V = C.SVD()
176
+ sage: Q = U*transpose(V)
177
+
178
+ Sage example in ./linsolve.tex, line 1381::
179
+
180
+ sage: Q # rel tol 1e-15
181
+ [ 0.7612151656410957 0.648499399843978]
182
+ [-0.6484993998439779 0.7612151656410955]
183
+ sage: R
184
+ [0.7648421872844885 0.644217687237691]
185
+ [-0.644217687237691 0.7648421872844885]
186
+
187
+ Sage example in ./linsolve.tex, line 1562::
188
+
189
+ sage: set_random_seed(0) # to get reproducible values below
190
+
191
+ Sage example in ./linsolve.tex, line 1675::
192
+
193
+ sage: A = matrix(RDF, [[1,3,2],[1,2,3],[0,5,2]])
194
+
195
+ Sage example in ./linsolve.tex, line 1698::
196
+
197
+ sage: A = matrix(RDF,[[1,3,2],[1,2,3],[0,5,2]])
198
+ sage: mu = 0.56
199
+ sage: AT = A - mu*identity_matrix(RDF,3)
200
+ sage: X = vector(RDF,[1 for i in range(0,A.nrows())])
201
+ sage: lam_old = 0
202
+ sage: for i in range(1,1000): # abs tol 1e-9
203
+ ....: Z = AT.solve_right(X)
204
+ ....: X = Z/Z.norm()
205
+ ....: lam = X.dot_product(A*X)
206
+ ....: s = abs(lam - lam_old)
207
+ ....: print("{i} s={s} lambda={lam}".format(i=i, s=s, lam=lam))
208
+ ....: lam_old = lam
209
+ ....: if s<1.e-10:
210
+ ....: break
211
+ 1 s=0.56423627407 lambda=0.56423627407
212
+ 2 s=0.00371649959176 lambda=0.560519774478
213
+ 3 s=2.9833340176e-07 lambda=0.560519476145
214
+ 4 s=3.30288019157e-11 lambda=0.560519476112
215
+ sage: X # abs tol 1e-15
216
+ (0.9276845629439007, 0.10329475725387141, -0.3587917847435305)
217
+
218
+ Sage example in ./linsolve.tex, line 1724::
219
+
220
+ sage: A*X-lam*X # abs tol 1e-14
221
+ (2.886579864025407e-15, 1.672273430841642e-15, 8.326672684688674e-15)
222
+
223
+ Sage example in ./linsolve.tex, line 1801::
224
+
225
+ sage: m = matrix(RDF, [[1,2,3,4],[1,0,2,6],[1,8,4,-2],[1,5,-10,-20]])
226
+ sage: Aref = transpose(m)*m
227
+ sage: A = copy(Aref)
228
+ sage: for i in range(0,20):
229
+ ....: Q, R = A.QR()
230
+ ....: A = R*Q
231
+
232
+ Sage example in ./linsolve.tex, line 1835::
233
+
234
+ sage: Aref.eigenvalues() # abs tol 1e-12
235
+ [585.0305586200212, 92.91426499150643, 0.03226690899408103, 4.022909479477674]
236
+
237
+ Sage example in ./linsolve.tex, line 1895::
238
+
239
+ sage: A = matrix(RDF, [[1,3,2],[1,2,3],[0,5,2]])
240
+ sage: eigen_vals, eigen_vects = A.eigenmatrix_right()
241
+ sage: eigen_vals # abs tol 1e-12
242
+ [ 6.39294791648918 0.0 0.0]
243
+ [ 0.0 0.560519476111939 0.0]
244
+ [ 0.0 0.0 -1.9534673926011215]
245
+ sage: eigen_vects # abs tol 2e-15
246
+ [ 0.5424840601106511 0.9276845629439008 0.09834254667424457]
247
+ [ 0.5544692861094349 0.10329475725386986 -0.617227053099068]
248
+ [ 0.6310902116870117 -0.3587917847435306 0.780614827194734]
249
+
250
+ Sage example in ./linsolve.tex, line 1939::
251
+
252
+ sage: def pol2companion(p):
253
+ ....: n = len(p)
254
+ ....: m = matrix(RDF,n)
255
+ ....: for i in range(1,n):
256
+ ....: m[i,i-1]=1
257
+ ....: m.set_column(n-1,-p)
258
+ ....: return m
259
+
260
+ Sage example in ./linsolve.tex, line 1965::
261
+
262
+ sage: q = vector(RDF,[1,-1,2,3,5,-1,10,11])
263
+ sage: comp = pol2companion(q); comp
264
+ [ 0.0 0.0 0.0 0.0 0.0 0.0 0.0 -1.0]
265
+ [ 1.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0]
266
+ [ 0.0 1.0 0.0 0.0 0.0 0.0 0.0 -2.0]
267
+ [ 0.0 0.0 1.0 0.0 0.0 0.0 0.0 -3.0]
268
+ [ 0.0 0.0 0.0 1.0 0.0 0.0 0.0 -5.0]
269
+ [ 0.0 0.0 0.0 0.0 1.0 0.0 0.0 1.0]
270
+ [ 0.0 0.0 0.0 0.0 0.0 1.0 0.0 -10.0]
271
+ [ 0.0 0.0 0.0 0.0 0.0 0.0 1.0 -11.0]
272
+ sage: roots = comp.eigenvalues(); roots # abs tol 1e-12
273
+ [0.3475215101190289 + 0.5665505533984981*I, 0.3475215101190289 - 0.5665505533984981*I,
274
+ 0.34502377696179265 + 0.43990870238588275*I, 0.34502377696179265 - 0.43990870238588275*I,
275
+ -0.5172576143252197 + 0.5129582067889322*I, -0.5172576143252197 - 0.5129582067889322*I,
276
+ -1.3669971645459291, -9.983578180965276]
277
+
278
+ Sage example in ./linsolve.tex, line 2121::
279
+
280
+ sage: reset()
281
+
282
+ Sage example in ./linsolve.tex, line 2124::
283
+
284
+ sage: def eval(P, x):
285
+ ....: if len(P) == 0:
286
+ ....: return 0
287
+ ....: else:
288
+ ....: return P[0]+x*eval(P[1:],x)
289
+
290
+ Sage example in ./linsolve.tex, line 2133::
291
+
292
+ sage: def pscal(P, Q, lx):
293
+ ....: return float(sum(eval(P,s)*eval(Q,s) for s in lx))
294
+
295
+ Sage example in ./linsolve.tex, line 2139::
296
+
297
+ sage: def padd(P, a, Q):
298
+ ....: for i in range(0,len(Q)):
299
+ ....: P[i] += a*Q[i]
300
+
301
+ Sage example in ./linsolve.tex, line 2149::
302
+
303
+ sage: class BadParamsforOrthop(Exception):
304
+ ....: def __init__(self, degreeplusone, npoints):
305
+ ....: self.deg = degreeplusone - 1
306
+ ....: self.np = npoints
307
+ ....: def __str__(self):
308
+ ....: return "degree: " + str(self.deg) + \
309
+ ....: " nb. points: " + repr(self.np)
310
+
311
+ Sage example in ./linsolve.tex, line 2160::
312
+
313
+ sage: def orthopoly(n, x):
314
+ ....: if n > len(x):
315
+ ....: raise BadParamsforOrthop(n, len(x))
316
+ ....: orth = [[1./sqrt(float(len(x)))]]
317
+ ....: for p in range(1,n):
318
+ ....: nextp = copy(orth[p-1])
319
+ ....: nextp.insert(0,0)
320
+ ....: s = []
321
+ ....: for i in range(p-1,max(p-3,-1),-1):
322
+ ....: s.append(pscal(nextp, orth[i], x))
323
+ ....: j = 0
324
+ ....: for i in range(p-1,max(p-3,-1),-1):
325
+ ....: padd(nextp, -s[j], orth[i])
326
+ ....: j += 1
327
+ ....: norm = sqrt(pscal(nextp, nextp, x))
328
+ ....: nextpn = [nextp[i]/norm for i in range(len(nextp))]
329
+ ....: orth.append(nextpn)
330
+ ....: return orth
331
+
332
+ Sage example in ./linsolve.tex, line 2209::
333
+
334
+ sage: set_random_seed(3) # to get reproducible values below
335
+
336
+ Sage example in ./linsolve.tex, line 2212::
337
+
338
+ sage: L = 40
339
+ sage: X = [100*float(i)/L for i in range(40)]
340
+ sage: Y = [float(1/(1+25*X[i]^2)+0.25*random()) for i in range(40)]
341
+ sage: n = 15; orth = orthopoly(n, X)
342
+
343
+ Sage example in ./linsolve.tex, line 2222::
344
+
345
+ sage: coeff = [sum(Y[j]*eval(orth[i],X[j]) for j in
346
+ ....: range(0,len(X))) for i in range(0,n)]
347
+
348
+ Sage example in ./linsolve.tex, line 2230::
349
+
350
+ sage: polmin = [0 for i in range(0,n)]
351
+ sage: for i in range(0,n):
352
+ ....: padd(polmin, coeff[i], orth[i])
353
+ sage: p = lambda x: eval(polmin, x)
354
+ sage: plot(p(x), x, 0, X[len(X)-1])
355
+ Graphics object consisting of 1 graphics primitive
356
+
357
+ Sage example in ./linsolve.tex, line 2609::
358
+
359
+ sage: from scipy.sparse.linalg import factorized
360
+ sage: from scipy.sparse import lil_matrix
361
+ sage: from numpy import array
362
+ sage: n = 200
363
+ sage: n2 = n*n
364
+ sage: A = lil_matrix((n2, n2))
365
+ sage: h2 = 1./float((n+1)^2)
366
+ sage: for i in range(0,n2):
367
+ ....: A[i,i]=4*h2+1.
368
+ ....: if i+1<n2: A[i,int(i+1)]=-h2
369
+ ....: if i>0: A[i,int(i-1)]=-h2
370
+ ....: if i+n<n2: A[i,int(i+n)]=-h2
371
+ ....: if i-n>=0: A[i,int(i-n)]=-h2
372
+ sage: Acsc = A.tocsc()
373
+ sage: b = array([1 for i in range(0,n2)])
374
+ sage: solve = factorized(Acsc) # LU factorization
375
+ sage: S = solve(b) # resolution
376
+
377
+ Sage example in ./linsolve.tex, line 2784::
378
+
379
+ sage: from numpy.random import seed
380
+ sage: seed(0) # to get reproducible values below
381
+
382
+ Sage example in ./linsolve.tex, line 2828::
383
+
384
+ sage: from scipy import sparse
385
+ sage: from numpy.linalg import *
386
+ sage: from numpy import array
387
+ sage: from numpy.random import rand
388
+ sage: def power(A, x, N): # power iteration
389
+ ....: for i in range(N):
390
+ ....: y = A*x
391
+ ....: z = y/norm(y)
392
+ ....: lam = sum(x*y)
393
+ ....: s = norm(x-z)
394
+ ....: print("{i} s={s} lambda={lam}".format(i=i, s=s, lam=lam))
395
+ ....: if s < 1e-3:
396
+ ....: break
397
+ ....: x = z
398
+ ....: return x
399
+ sage: n = 1000
400
+ sage: m = 5
401
+ sage: # build a stochastic matrix of size n
402
+ sage: # with m nonzero coefficients per row
403
+ sage: A1 = sparse.lil_matrix((n, n))
404
+ sage: for i in range(0,n):
405
+ ....: for j in range(0,m):
406
+ ....: l = int(n*rand())
407
+ ....: A1[l,i] = rand()
408
+ sage: for i in range(0,n):
409
+ ....: s = sum(A1[i,0:n])
410
+ ....: A1[i,0:n] /= s
411
+ sage: At = A1.transpose().tocsc()
412
+ sage: x = array([rand() for i in range(0,n)])
413
+ sage: # compute the dominant eigenvalue
414
+ sage: # and the associated eigenvector
415
+ sage: y = power(At, x, 5) # rel tol 1e-10
416
+ 0 s=17.0241218112 lambda=235.567796432
417
+ 1 s=0.39337173784 lambda=0.908668201953
418
+ 2 s=0.230865716856 lambda=0.967356896036
419
+ 3 s=0.134156683993 lambda=0.986660315554
420
+ 4 s=0.0789423487458 lambda=0.995424635219
421
+ """
@@ -0,0 +1,234 @@
1
+ # sage_setup: distribution = sagemath-repl
2
+ """
3
+ This file (./lp_doctest.sage) was *autogenerated* from ./lp.tex,
4
+ with sagetex.sty version 2011/05/27 v2.3.1.
5
+ It contains the contents of all the sageexample environments from this file.
6
+ You should be able to doctest this file with:
7
+ sage -t ./lp_doctest.sage
8
+ It is always safe to delete this file; it is not used in typesetting your
9
+ document.
10
+
11
+ Sage example in ./lp.tex, line 14::
12
+
13
+ sage: set_random_seed(158888)
14
+ sage: sage.numerical.backends.generic_backend.default_solver = "Glpk"
15
+
16
+ Sage example in ./lp.tex, line 124::
17
+
18
+ sage: p = MixedIntegerLinearProgram()
19
+
20
+ Sage example in ./lp.tex, line 137::
21
+
22
+ sage: x, y, z = p['x'], p['y'], p['z']
23
+ sage: p.set_min(x, 0)
24
+ sage: p.set_min(y, 0)
25
+ sage: p.set_min(z, 0)
26
+
27
+ Sage example in ./lp.tex, line 154::
28
+
29
+ sage: p.set_objective( x + y + 3*z )
30
+
31
+ Sage example in ./lp.tex, line 166::
32
+
33
+ sage: p.add_constraint( x + 2*y <= 4 )
34
+ sage: p.add_constraint( 5*z - y <= 8 )
35
+
36
+ Sage example in ./lp.tex, line 180::
37
+
38
+ sage: p.solve() # abs tol 1e-10
39
+ 8.8
40
+
41
+ Sage example in ./lp.tex, line 194::
42
+
43
+ sage: p.get_values(x), p.get_values(y), p.get_values(z) # abs tol 1e-10
44
+ (4.0, 0.0, 1.6)
45
+
46
+ Sage example in ./lp.tex, line 214::
47
+
48
+ sage: x = p.new_variable()
49
+
50
+ Sage example in ./lp.tex, line 224::
51
+
52
+ sage: p.add_constraint( x[1] + x[12] - x[14] >= 8 )
53
+
54
+ Sage example in ./lp.tex, line 236::
55
+
56
+ sage: p.add_constraint( x["i_am_a_valid_index"] + x["a",pi] <= 3 )
57
+
58
+ Sage example in ./lp.tex, line 248::
59
+
60
+ sage: p.add_constraint( p.sum(
61
+ ....: x[i,j] for i in range(4) for j in range(4)) <= 1 )
62
+
63
+ Sage example in ./lp.tex, line 287::
64
+
65
+ sage: p = MixedIntegerLinearProgram()
66
+ sage: p.set_objective( p[3] + p[2] )
67
+ sage: p.add_constraint( p[3] <= 5 )
68
+
69
+ Sage example in ./lp.tex, line 293::
70
+
71
+ sage: p.solve()
72
+ Traceback (most recent call last):
73
+ ...
74
+ MIPSolverException: GLPK: The LP (relaxation) problem has no dual feasible solution
75
+
76
+ Sage example in ./lp.tex, line 301::
77
+
78
+ sage: p.add_constraint( p[2] <= 8 )
79
+ sage: p.solve() # abs tol 1e-10
80
+ 13.0
81
+
82
+ Sage example in ./lp.tex, line 306::
83
+
84
+ sage: p.add_constraint( p[3] >= 6 ); p.solve()
85
+ Traceback (most recent call last):
86
+ ...
87
+ MIPSolverException: GLPK: Problem has no feasible solution
88
+
89
+ Sage example in ./lp.tex, line 319::
90
+
91
+ sage: p = MixedIntegerLinearProgram()
92
+ sage: p.set_objective( p[3] )
93
+ sage: p.add_constraint( p[3] <= 4.75 ); p.add_constraint( p[3] >= 4.25 )
94
+ sage: p.solve() # abs tol 1e-10
95
+ 4.75
96
+ sage: p.set_integer(p[3]); p.solve()
97
+ Traceback (most recent call last):
98
+ ...
99
+ MIPSolverException: GLPK: Problem has no feasible solution
100
+
101
+ Sage example in ./lp.tex, line 360::
102
+
103
+ sage: try:
104
+ ....: p.solve()
105
+ ....: print("The problem has a solution!")
106
+ ....: except RuntimeError:
107
+ ....: print("The problem is infeasible!")
108
+ The problem is infeasible!
109
+
110
+ Sage example in ./lp.tex, line 429::
111
+
112
+ sage: C = 1
113
+ sage: L = ["Pan", "Book", "Knife", "Flask", "Flashlight"]
114
+ sage: w = [0.57,0.35,0.98,0.39,0.08]; u = [0.57,0.26,0.29,0.85,0.23]
115
+ sage: weight = {}; utility = {}
116
+ sage: for o in L:
117
+ ....: weight[o] = w[L.index(o)]; utility[o] = u[L.index(o)]
118
+
119
+ Sage example in ./lp.tex, line 451::
120
+
121
+ sage: p = MixedIntegerLinearProgram()
122
+ sage: taken = p.new_variable( binary = True )
123
+ sage: p.add_constraint(
124
+ ....: p.sum( weight[o] * taken[o] for o in L ) <= C )
125
+ sage: p.set_objective(
126
+ ....: p.sum( utility[o] * taken[o] for o in L ) )
127
+ sage: p.solve() # abs tol 1e-10
128
+ 1.4199999999999999
129
+ sage: taken = p.get_values(taken)
130
+
131
+ Sage example in ./lp.tex, line 470::
132
+
133
+ sage: sum( weight[o] * taken[o] for o in L ) # abs tol 1e-10
134
+ 0.960000000000000
135
+
136
+ Sage example in ./lp.tex, line 482::
137
+
138
+ sage: taken["Flask"]
139
+ 1.0
140
+
141
+ Sage example in ./lp.tex, line 551::
142
+
143
+ sage: g = graphs.PetersenGraph()
144
+ sage: p = MixedIntegerLinearProgram()
145
+ sage: matching = p.new_variable(binary = True)
146
+
147
+ Sage example in ./lp.tex, line 561::
148
+
149
+ sage: p.set_objective(p.sum(matching[e]
150
+ ....: for e in g.edges(sort=True, labels = False)))
151
+
152
+ Sage example in ./lp.tex, line 573::
153
+
154
+ sage: for v in g:
155
+ ....: p.add_constraint(p.sum(matching[e]
156
+ ....: for e in g.edges_incident(v, labels = False)) <= 1)
157
+ sage: p.solve()
158
+ 5.0
159
+
160
+ Sage example in ./lp.tex, line 586::
161
+
162
+ sage: matching = p.get_values(matching, convert=ZZ, tolerance=1e-3)
163
+ sage: sorted(e for e, b in matching.items() if b == 1)
164
+ [(0, 1), (2, 3), (4, 9), (5, 7), (6, 8)]
165
+
166
+ Sage example in ./lp.tex, line 665::
167
+
168
+ sage: g = graphs.ChvatalGraph()
169
+ sage: g = g.minimum_outdegree_orientation()
170
+
171
+ Sage example in ./lp.tex, line 669::
172
+
173
+ sage: p = MixedIntegerLinearProgram()
174
+ sage: f = p.new_variable()
175
+ sage: s, t = 0, 2
176
+
177
+ Sage example in ./lp.tex, line 674::
178
+
179
+ sage: for v in g:
180
+ ....: if v == s or v == t: continue
181
+ ....: p.add_constraint(
182
+ ....: p.sum(f[v,u] for u in g.neighbors_out(v)) ==
183
+ ....: p.sum(f[u,v] for u in g.neighbors_in(v)))
184
+
185
+ Sage example in ./lp.tex, line 681::
186
+
187
+ sage: for e in g.edges(sort=True, labels = False): p.add_constraint( f[e] <= 1 )
188
+
189
+ Sage example in ./lp.tex, line 684::
190
+
191
+ sage: p.set_objective(p.sum( f[s,u] for u in g.neighbors_out(s)))
192
+
193
+ Sage example in ./lp.tex, line 687::
194
+
195
+ sage: p.solve()
196
+ 2.0
197
+
198
+ Sage example in ./lp.tex, line 847::
199
+
200
+ sage: g = graphs.Grid2dGraph(4, 6)
201
+ sage: p = MixedIntegerLinearProgram()
202
+ sage: b = p.new_variable(binary = True)
203
+
204
+ Sage example in ./lp.tex, line 861::
205
+
206
+ sage: B = lambda x,y : b[frozenset([x,y])]
207
+
208
+ Sage example in ./lp.tex, line 874::
209
+
210
+ sage: for u in g:
211
+ ....: p.add_constraint( p.sum( B(u,v) for v in g.neighbors(u) ) == 2 )
212
+
213
+ Sage example in ./lp.tex, line 892::
214
+
215
+ sage: p.solve()
216
+ 0.0
217
+ sage: h = Graph()
218
+ sage: h.add_edges( [(u,v) for u, v in g.edges(sort=True, labels = False)
219
+ ....: if p.get_values(B(u,v), convert=ZZ, tolerance=1e-3) == 1] )
220
+
221
+ Sage example in ./lp.tex, line 906::
222
+
223
+ sage: while not h.is_connected():
224
+ ....: S = h.connected_components(sort=False)[0]
225
+ ....: p.add_constraint(
226
+ ....: p.sum( B(u,v) for u,v
227
+ ....: in g.edge_boundary(S, labels = False))
228
+ ....: >= 2)
229
+ ....: zero = p.solve()
230
+ ....: h = Graph()
231
+ ....: h.add_edges( [(u,v)
232
+ ....: for u,v in g.edges(sort=True, labels = False)
233
+ ....: if p.get_values(B(u,v), convert=ZZ, tolerance=1e-3) == 1] )
234
+ """