Last active
August 1, 2016 10:57
-
-
Save Shekharrajak/a5efc840d9a7d3062289f2d9c5f20b16 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# master branch | |
In [1]: solveset(cos(x) + cos(3*x) + cos(5*x), x, S.Reals) | |
Out[1]: | |
⎧ π ⎫ ⎧ 3⋅π ⎫ ⎧ 4⋅π ⎫ ⎧ 2⋅π ⎫ ⎧ 5⋅π ⎫ ⎧ π ⎫ ⎧ | |
⎨2⋅n⋅π + ─ | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─ | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + | |
⎩ 2 ⎭ ⎩ 2 ⎭ ⎩ 3 ⎭ ⎩ 3 ⎭ ⎩ 3 ⎭ ⎩ 3 ⎭ ⎩ | |
7⋅π ⎫ ⎧ 5⋅π ⎫ ⎧ 11⋅π ⎫ ⎧ π ⎫ | |
─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ──── | n ∊ ℤ⎬ ∪ ⎨2⋅n⋅π + ─ | n ∊ ℤ⎬ | |
6 ⎭ ⎩ 6 ⎭ ⎩ 6 ⎭ ⎩ 6 ⎭ | |
In [2]: print solveset(cos(x) + cos(3*x) + cos(5*x), x, S.Reals) | |
ImageSet(Lambda(_n, 2*_n*pi + pi/2), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 3*pi/2), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 4*pi/3), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 2*pi/3), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 5*pi/3), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + pi/3), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 7*pi/6), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 5*pi/6), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + 11*pi/6), Integers()) U ImageSet(Lambda(_n, 2*_n*pi + pi/6), Integers()) | |
# soln is | |
img1 = ImageSet(Lambda(n, 2*n*pi + pi/2), S.Integers) | |
img2 = ImageSet(Lambda(n, 2*n*pi + 3*pi/2), S.Integers) | |
img3 = ImageSet(Lambda(n, 2*n*pi + 4*pi/3), S.Integers) | |
img4 = ImageSet(Lambda(n, 2*n*pi + 2*pi/3), S.Integers) | |
img5 = ImageSet(Lambda(n, 2*n*pi + 5*pi/3), S.Integers) | |
img6 = ImageSet(Lambda(n, 2*n*pi + pi/3), S.Integers) | |
img7 = ImageSet(Lambda(n, 2*n*pi + 7*pi/6), S.Integers) | |
img8 = ImageSet(Lambda(n, 2*n*pi + 5*pi/6), S.Integers) | |
img9 = ImageSet(Lambda(n, 2*n*pi + 11*pi/6), S.Integers) | |
img10 = ImageSet(Lambda(n, 2*n*pi + pi/6), S.Integers) | |
#===================================================================== | |
# NEW IMPLEMENTATION (IMAGESET UNION IN SETS/FANCYSET.PY) | |
# PR : https://github.com/sympy/sympy/pull/11188 | |
#---------------------------------------------------------- | |
# img1 can be clubbed with img2 | |
In [41]: Union(img1, img2) | |
Out[41]: | |
⎧ π ⎫ | |
⎨π⋅n + ─ | n ∊ ℤ⎬ | |
⎩ 2 ⎭ | |
newimg1 = ImageSet(Lambda(n, pi*n + pi/2), S.Integers) | |
#---------------------------------------------------------- | |
# img8 can be clubbed with img9 | |
In [45]: Union(img8, img9) | |
Out[45]: | |
⎧ 5⋅π ⎫ | |
⎨π⋅n + ─── | n ∊ ℤ⎬ | |
⎩ 6 ⎭ | |
In [44]: print Union(img8, img9) | |
ImageSet(Lambda(n, pi*n + 5*pi/6), Integers()) | |
newimg2 = ImageSet(Lambda(n, pi*n + 5*pi/6), S.Integers) | |
#---------------------------------------------------------- | |
# img7 can be clubbed with img10 | |
In [46]: Union(img7, img10) | |
Out[46]: | |
⎧ π ⎫ | |
⎨π⋅n + ─ | n ∊ ℤ⎬ | |
⎩ 6 ⎭ | |
In [47]: print Union(img7, img10) | |
ImageSet(Lambda(n, pi*n + pi/6), Integers()) | |
newimg3 = ImageSet(Lambda(n, pi*n + pi/6), S.Integers) | |
#---------------------------------------------------------- | |
# img3 can be clubbed with img6 | |
In [48]: Union(img6, img3) | |
Out[48]: | |
⎧ π ⎫ | |
⎨π⋅n + ─ | n ∊ ℤ⎬ | |
⎩ 3 ⎭ | |
In [49]: print Union(img6, img3) | |
ImageSet(Lambda(n, pi*n + pi/3), Integers()) | |
newimg4 = ImageSet(Lambda(n, pi*n + pi/3), S.Integers) | |
#---------------------------------------------------------- | |
# img4 can be clubbed with img5 | |
In [50]: print Union(img4, img5) | |
ImageSet(Lambda(n, pi*n + 2*pi/3), Integers()) | |
In [51]: Union(img4, img5) | |
Out[51]: | |
⎧ 2⋅π ⎫ | |
⎨π⋅n + ─── | n ∊ ℤ⎬ | |
⎩ 3 ⎭ | |
newimg5 = ImageSet(Lambda(n, pi*n + 2*pi/3), S.Integers) | |
#---------------------------------------------------------- | |
# SO NOW REDUCED SOLN IS | |
newimg1 = ImageSet(Lambda(n, pi*n + pi/2), S.Integers) | |
newimg2 = ImageSet(Lambda(n, pi*n + 5*pi/6), S.Integers) | |
newimg3 = ImageSet(Lambda(n, pi*n + pi/6), S.Integers) | |
newimg4 = ImageSet(Lambda(n, pi*n + pi/3), S.Integers) | |
newimg5 = ImageSet(Lambda(n, pi*n + 2*pi/3), S.Integers) | |
# we still can reduce these imageset | |
In [58]: Union(newimg5, newimg3) | |
Out[58]: | |
⎧π⋅n π ⎫ | |
⎨─── + ─ | n ∊ ℤ⎬ | |
⎩ 2 6 ⎭ | |
In [59]: print Union(newimg5, newimg3) | |
ImageSet(Lambda(n, pi*n/2 + pi/6), Integers()) | |
final1 = ImageSet(Lambda(n, pi*n/2 + pi/6), S.Integers) | |
#------------------------------------ | |
# similarly | |
In [60]: Union(newimg2, newimg4) | |
Out[60]: | |
⎧π⋅n π ⎫ | |
⎨─── + ─ | n ∊ ℤ⎬ | |
⎩ 2 3 ⎭ | |
In [61]: print Union(newimg2, newimg4) | |
ImageSet(Lambda(n, pi*n/2 + pi/3), Integers()) | |
final2 = ImageSet(Lambda(n, pi*n/2 + pi/3), S.Integers) | |
#================================= | |
# So final reduce soln is = | |
Union(final1, final2, newimg1) | |
⎧ π ⎫ ⎧n⋅π π ⎫ ⎧n⋅π π ⎫ | |
⎨n⋅π + ─ | n ∊ ℤ⎬ ∪ ⎨─── + ─ | n ∊ ℤ⎬ ∪ ⎨─── + ─ | n ∊ ℤ⎬ | |
⎩ 2 ⎭ ⎩ 2 6 ⎭ ⎩ 2 3 ⎭ | |
#================================== | |
# One can check the answer using following lines | |
for i in range(0, 10): | |
....: print newimg5.lamda(i) in final1 | |
....: print newimg3.lamda(i) in final1 | |
....: print newimg2.lamda(i) in final2 | |
....: print newimg4.lamda(i) in final2 | |
# all true will be printed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment