Ticket #10983: calculus_fixed.py

File calculus_fixed.py, 9.9 KB (added by casamayou, 5 years ago)
Line 
1r"""
2sage: var ('a,x') ; y = cos(x+a)*(x+1) ; y
3(a, x)
4(x + 1)*cos(a + x)
5sage: var ('a,x') ; y = cos(x+a)*(x+1) ; y
6(a, x)
7(x + 1)*cos(a + x)
8sage: y.subs(a=-x) ; y.subs(x=pi/2,a=pi/3) ; y.subs(x=0.5,a=2.3)
9x + 1
10-1/4*(pi + 2)*sqrt(3)
11-1.41333351100299
12sage: y(a=-x) ; y(x=pi/2,a=pi/3) ; y(x=0.5,a=2.3)
13x + 1
14-1/4*(pi + 2)*sqrt(3)
15-1.41333351100299
16sage: var('x,y,z') ; q = x*y+y*z+z*x
17(x, y, z)
18sage: bool (q(x=y,y=z,z=x)==q), bool(q(z=y)(y=x) == 3*x^2)
19(True, True)
20"""
21
22r"""
23sage: var('y z'); f = x^3+y^2+z; f.subs_expr(x^3==y^2, z==1)
24(y, z)
252*y^2 + 1
26sage: f(x)=(2*x+1)^3 ; f(-3)
27  -125
28sage: f(x).expand()
298*x^3 + 12*x^2 + 6*x + 1
30sage: var('y'); u = sin(x) + x*cos(y)
31y
32sage: v = u.function(x, y); v
33(x, y) |--> x*cos(y) + sin(x)
34sage: w(x, y) = u; w
35(x, y) |--> x*cos(y) + sin(x)
36"""
37
38r"""
39sage: (x^x/x).simplify()
40x^(x - 1)
41sage: f = (e^x-1)/(1+e^(x/2)); f.simplify_exp()
42e^(1/2*x) - 1
43sage: f = cos(x)^6 + sin(x)^6 + 3 * sin(x)^2 * cos(x)^2
44sage: f.simplify_trig()
451
46sage: f = cos(x)^6; f.reduce_trig()
4715/32*cos(2*x) + 3/16*cos(4*x) + 1/32*cos(6*x) + 5/16
48sage: f = sin(5 * x); f.expand_trig()
49sin(x)^5 - 10*sin(x)^3*cos(x)^2 + 5*sin(x)*cos(x)^4
50sage: n = var('n'); f = factorial(n+1)/factorial(n)
51sage: f.simplify_factorial()
52n + 1
53"""
54
55r"""
56sage: reset()
57sage: f = sqrt(x^2); f.simplify_radical()
58abs(x)
59sage: var('y')
60y
61sage: f = log(x*y); f.simplify_radical()
62log(x) + log(y)
63sage: assume(x > 0); bool(sqrt(x^2) == x)
64True
65sage: forget(x > 0); bool(sqrt(x^2) == x)
66False
67sage: var('n'); assume(n, 'integer'); sin(n*pi).simplify()
68n
690
70"""
71
72r"""
73sage: z, phi = var('z, phi')
74sage: solve(z**2 -2 / cos(phi) * z + 5 / cos(phi) ** 2 - 4, z)
75[z == -(2*sqrt(cos(phi)^2 - 1) - 1)/cos(phi), z == (2*sqrt(cos(phi)^2 - 1) + 1)/cos(phi)]
76sage: var('y'); solve(y^6==y, y)
77y
78[y == e^(2/5*I*pi), y == e^(4/5*I*pi), y == e^(-4/5*I*pi), y == e^(-2/5*I*pi), y == 1, y == 0]
79sage: solve(x^2-1, x, solution_dict=True)
80[{x: -1}, {x: 1}]
81sage: solve([x+y == 3, 2*x+2*y == 6],x,y)
82[[x == -r1 + 3, y == r1]]
83sage: solve([cos(x)*sin(x) == 1/2, x+y == 0], x, y)
84[[x == 1/4*pi + pi*z30, y == -1/4*pi - pi*z30]]
85sage: solve(x^2+x-1>0,x)
86[[x < -1/2*sqrt(5) - 1/2], [x > 1/2*sqrt(5) - 1/2]]
87"""
88
89r"""
90sage: x, y, z = var('x, y, z')
91sage: solve([x^2 * y * z == 18, x * y^3 * z == 24,\
92             x * y * z^4 == 6], x, y, z)
93[[x == 3, y == 2, z == 1], [x == (1.33721506733 - 2.68548987407*I), y == (-1.70043427146 + 1.05286432575*I), z == (0.932472229404 - 0.361241666187*I)], [x == (1.33721506733 + 2.68548987407*I), y == (-1.70043427146 - 1.05286432575*I), z == (0.932472229404 + 0.361241666187*I)], [x == (-2.55065140719 - 1.57929648863*I), y == (-0.547325980144 + 1.92365128635*I), z == (-0.982973099684 - 0.183749517817*I)], [x == (-2.55065140719 + 1.57929648863*I), y == (-0.547325980144 - 1.92365128635*I), z == (-0.982973099684 + 0.183749517817*I)], [x == (0.27680507839 - 2.98720252889*I), y == (1.47801783444 - 1.34739128729*I), z == (-0.85021713573 - 0.526432162877*I)], [x == (0.27680507839 + 2.98720252889*I), y == (1.47801783444 + 1.34739128729*I), z == (-0.85021713573 + 0.526432162877*I)], [x == (-0.820988970216 + 2.88547692952*I), y == (-1.20526927276 - 1.59603445456*I), z == (0.0922683594633 - 0.995734176295*I)], [x == (-0.820988970216 - 2.88547692952*I), y == (-1.20526927276 + 1.59603445456*I), z == (0.0922683594633 + 0.995734176295*I)], [x == (-1.80790390914 - 2.39405168184*I), y == (0.891476711553 - 1.79032658271*I), z == (0.739008917221 - 0.673695643647*I)], [x == (-1.80790390914 + 2.39405168184*I), y == (0.891476711553 + 1.79032658271*I), z == (0.739008917221 + 0.673695643647*I)], [x == (2.21702675166 + 2.02108693094*I), y == (1.86494445881 + 0.722483332374*I), z == (-0.273662990072 - 0.961825643173*I)], [x == (2.21702675166 - 2.02108693094*I), y == (1.86494445881 - 0.722483332374*I), z == (-0.273662990072 + 0.961825643173*I)], [x == (2.79741668821 - 1.08372499856*I), y == (-1.96594619937 + 0.367499035633*I), z == (-0.602634636379 - 0.79801722728*I)], [x == (2.79741668821 + 1.08372499856*I), y == (-1.96594619937 - 0.367499035633*I), z == (-0.602634636379 + 0.79801722728*I)], [x == (-2.94891929905 + 0.55124855345*I), y == (0.184536718927 + 1.99146835259*I), z == (0.445738355777 - 0.895163291355*I)], [x == (-2.94891929905 - 0.55124855345*I), y == (0.184536718927 - 1.99146835259*I), z == (0.445738355777 + 0.895163291355*I)]]
94"""
95
96r"""
97sage: expr = sin(x) + sin(2 * x) + sin(3 * x)
98sage: solve(expr, x)
99[sin(3*x) == -sin(2*x) - sin(x)]
100sage: find_root(expr, 0.1, pi)
1012.0943951023931957
102sage: f = expr.simplify_trig(); f
1032*(2*cos(x)^2 + cos(x))*sin(x)
104sage: solve(f, x)
105[x == 0, x == 2/3*pi, x == 1/2*pi]
106sage: (x^3+2*x+1).roots(x)
107[(-1/2*(I*sqrt(3) + 1)*(1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3) - 1/3*(I*sqrt(3) - 1)/(1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3), 1), (-1/2*(-I*sqrt(3) + 1)*(1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3) - 1/3*(-I*sqrt(3) - 1)/(1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3), 1), ((1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3) - 2/3/(1/18*sqrt(3)*sqrt(59) - 1/2)^(1/3), 1)]
108sage: (x^3+2*x+1).roots(x, ring=RR)
109 [(-0.453397651516404, 1)]
110sage: (x^3+2*x+1).roots(x, ring=CC)
111 [(-0.453397651516404, 1), (0.226698825758202 - 1.46771150871022*I, 1), (0.226698825758202 + 1.46771150871022*I, 1)]
112"""
113
114r"""
115sage: var('k n'); sum(k, k, 1, n).factor()
116 (k, n)
117 1/2*(n + 1)*n
118sage: var('n y'); sum(binomial(n,k) * x^k * y^(n-k), k, 0, n)
119 (n, y)
120 (x + y)^n
121sage: var('k n'); sum(binomial(n,k), k, 0, n),\
122                  sum(k * binomial(n, k), k, 0, n),\
123                  sum((-1)^k*binomial(n,k), k, 0, n)
124(k, n)
125(2^n, n*2^(n - 1), 0)
126sage: var('a q'); sum(a*q^k, k, 0, n)
127(a, q)
128(a*q^(n + 1) - a)/(q - 1)
129sage: assume(abs(q) < 1)
130sage: sum(a*q^k, k, 0, infinity)
131 -a/(q - 1)
132"""
133
134r"""
135sage: limit((x**(1/3) -2) / ((x + 19)**(1/3) - 3), x = 8)
1369/4
137sage: f(x) = (cos(pi/4-x)-tan(x))/(1-sin(pi/4 + x))
138sage: limit(f(x), x = pi/4, dir='minus')
139+Infinity
140sage: limit(f(x), x = pi/4, dir='plus')
141-Infinity
142sage: u(n) = n^100 / 100.^n
143sage: u(1);u(2);u(3);u(4);u(5);u(6);u(7);u(8);u(9);u(10)
1440.0100000000000000
1451.26765060022823e26
1465.15377520732011e41
1471.60693804425899e52
1487.88860905221012e59
1496.53318623500071e65
1503.23447650962476e70
1512.03703597633449e74
1522.65613988875875e77
1531.00000000000000e80
154sage: plot(u(x), x, 1, 40)
155sage: v(x) = diff(u(x), x); sol = solve(v(x) == 0, x); sol
156[x == 0, x == (268850/12381)]
157sage: sol[1].rhs().n().floor()
15821
159sage: limit(u(n), n=infinity)
1600
161sage: n0 = find_root(u(n) - 1e-8 == 0, 22, 1000); n0
162105.07496210187252
163"""
164
165r"""
166sage: taylor((1+arctan(x))**(1/x), x, 0, 3)
1671/16*x^3*e + 1/8*x^2*e - 1/2*x*e + e
168sage: (ln(2* sin(x))).series(x==pi/6, 3)
169(sqrt(3))*(-1/6*pi + x) + (-2)*(-1/6*pi + x)^2 + Order(-1/216*(pi - 6*x)^3)
170sage: (ln(2* sin(x))).series(x==pi/6, 3).truncate()
171-1/18*(pi - 6*x)^2 - 1/6*(pi - 6*x)*sqrt(3)
172sage: taylor((x**3+x)**(1/3) - (x**3-x)**(1/3), x, infinity, 2)
1732/3/x
174sage: tan(4*arctan(1/5)).simplify_trig()
175120/119
176sage: tan(pi/4+arctan(1/239)).simplify_trig()
177120/119
178sage: f = arctan(x).series(x, 10); f
1791*x + (-1/3)*x^3 + 1/5*x^5 + (-1/7)*x^7 + 1/9*x^9 + Order(x^10)
180sage: (16*f.subs(x==1/5) - 4*f.subs(x==1/239)).n(); pi.n()
1813.14159268240440
1823.14159265358979
183"""
184
185r"""
186sage: var('k'); sum(1/k^2, k, 1, infinity),\
187                sum(1/k^4, k, 1, infinity),\
188                sum(1/k^5, k, 1, infinity)
189k
190(1/6*pi^2, 1/90*pi^4, zeta(5))
191sage: s = 2*sqrt(2)/9801*(sum((factorial(4*k))*(1103+26390*k)\
192     /((factorial(k)) ^ 4 * 396 ^ (4 * k)) for k in (0..11)))
193sage: (1 / s).n(digits=100); pi.n(digits=100)
1943.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342121432
1953.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
196sage: print "%e" % (pi - 1 / s).n(digits=100)
197-4.364154e-96
198sage: var('n'); u = sin(pi*(sqrt(4*n^2+1)-2*n))
199n
200sage: taylor(u, n, infinity, 3)
2011/4*pi/n - 1/384*(6*pi + pi^3)/n^3
202sage: diff(sin(x^2), x)
2032*x*cos(x^2)
204"""
205
206r"""
207sage: function('f',x); function('g',x); diff(f(g(x)), x)
208f(x)
209g(x)
210D[0](f)(g(x))*D[0](g)(x)
211sage: diff(ln(f(x)), x)
212D[0](f)(x)/f(x)
213sage: f(x,y) = x*y + sin(x^2) + e^(-x); derivative(f, x)
214(x, y) |--> 2*x*cos(x^2) + y - e^(-x)
215sage: derivative(f, y)
216(x, y) |--> x
217sage: var('x y'); f = ln(x**2+y**2) / 2
218(x, y)
219sage: delta = diff(f,x,2)+diff(f,y,2)
220sage: delta.simplify_full()
2210
222sage: sin(x).integral(x, 0, pi/2)
2231
224sage: integrate(1/(1+x^2), x)
225arctan(x)
226sage: integrate(1/(1+x^2), x, -infinity, infinity)
227pi
228sage: integrate(exp(-x**2), x, 0, infinity)
2291/2*sqrt(pi)
230sage: u = var('u'); f = x * cos(u) / (u^2 + x^2)
231sage: assume(x>0); f.integrate(u, 0, infinity)
2321/2*pi*e^(-x)
233sage: forget(); assume(x<0); f.integrate(u, 0, infinity)
234-1/2*pi*e^x
235sage: integral_numerical(sin(x)/x, 0, 1)
236(0.946083070367182..., 1.050363207929708...e-14)
237sage: g = integrate(exp(-x**2), x, 0, infinity); g, g.n()
238(1/2*sqrt(pi), 0.886226925452...)
239sage: approx = integral_numerical(exp(-x**2), 0, infinity)
240sage: approx[0]
2410.88622692545275...
242"""
243
244r"""
245sage: A = matrix(QQ,[[1,2],[3,4]]); A
246[1 2]
247[3 4]
248sage: A = matrix(QQ, [[2, 4, 3],[-4,-6,-3],[3,3,1]])
249sage: A.characteristic_polynomial()
250x^3 + 3*x^2 - 4
251sage: A.eigenvalues()
252[1, -2, -2]
253sage: A.minimal_polynomial().factor()
254(x - 1) * (x + 2)^2
255sage: A.eigenvectors_right()
256[(1, [
257(1, -1, 1)
258], 1), (-2, [
259(1, -1, 0)
260], 2)]
261sage: A.jordan_form(transformation=True)
262(
263[ 1| 0  0]
264[--+-----]  [ 1  1  1]
265[ 0|-2  1]  [-1 -1  0]
266[ 0| 0 -2], [ 1  0 -1]
267)
268"""
269
270r"""
271sage: A = matrix(QQ, [[1,-1/2],[-1/2,-1]])
272sage: A.minimal_polynomial()
273x^2 - 5/4
274sage: R = QQ[sqrt(5)]
275sage: A = A.change_ring(R)
276sage: A.jordan_form(transformation=True, subdivide=False)
277(
278[ 1/2*sqrt5          0]  [         1          1]
279[         0 -1/2*sqrt5], [-sqrt5 + 2  sqrt5 + 2]
280)
281sage: K.<sqrt2> = NumberField(x^2 - 2)
282sage: L.<sqrt3> = K.extension(x^2 - 3)
283sage: A = matrix(L, [[2, sqrt2*sqrt3, sqrt2], [sqrt2*sqrt3, 3, sqrt3], [sqrt2, sqrt3, 1]])
284sage: A.jordan_form(transformation=True)
285(
286[6|0|0]
287[-+-+-]
288[0|0|0]  [              1               1               0]
289[-+-+-]  [1/2*sqrt2*sqrt3               0               1]
290[0|0|0], [      1/2*sqrt2          -sqrt2          -sqrt3]
291)
292"""