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