summaryrefslogtreecommitdiff
path: root/FSF-2020/calculus/series-and-transformations/Power Series/script5.py
diff options
context:
space:
mode:
Diffstat (limited to 'FSF-2020/calculus/series-and-transformations/Power Series/script5.py')
-rw-r--r--FSF-2020/calculus/series-and-transformations/Power Series/script5.py136
1 files changed, 136 insertions, 0 deletions
diff --git a/FSF-2020/calculus/series-and-transformations/Power Series/script5.py b/FSF-2020/calculus/series-and-transformations/Power Series/script5.py
new file mode 100644
index 0000000..e9681aa
--- /dev/null
+++ b/FSF-2020/calculus/series-and-transformations/Power Series/script5.py
@@ -0,0 +1,136 @@
+from manimlib.imports import *
+import math
+
+class uniformlyConvergent(Scene):
+ def construct(self):
+ introText1=TextMobject("Again consider the","above","example")
+ introText2=TextMobject("Let","$g(x)=\\frac { 1 }{ 1+{ x }^{ 2 } }$","and","x=0.5 $\in$(-1,1)")
+ introText3=TextMobject("Lets analyse..","!")
+ introText1.scale(0.8)
+ introText2.scale(0.7)
+ introText3.scale(0.9)
+ introText3.shift(DOWN)
+ introText1.set_color_by_tex_to_color_map({"above":YELLOW})
+ introText2.set_color_by_tex_to_color_map({"$g(x)=\\frac { 1 }{ 1+{ x }^{ 2 } }$":BLUE,"x=0.5 $\in$(-1,1)":YELLOW})
+ introText3.set_color_by_tex_to_color_map({"!":GREEN})
+ self.play(Write(introText1))
+ self.wait(0.5)
+ self.play(FadeOut(introText1))
+ self.play(Write(introText2))
+ self.play(FadeIn(introText3))
+ self.wait(2)
+
+
+def gety(x,n):
+ ans=0
+ for i in range(0,n+1):
+ if(i%2==0):
+ ans+=(math.pow(x,2*i))
+ else:
+ ans-=(math.pow(x,2*i))
+ return ans
+
+def makeSeries(x,points,x_each_unit,y_each_unit):
+ p=0
+ for point in points:
+ y=gety(x,p)
+ point.shift(ORIGIN+RIGHT*x_each_unit*p+UP*y_each_unit*y)
+ p+=1
+
+def makeLines(x,numPoints,x_each_unit,y_each_unit):
+ lines=[0]*numPoints
+ for i in range(0,numPoints-1):
+ y=gety(x,i)
+ y_next=gety(x,i+1)
+ lines[i]=Line(start=ORIGIN+RIGHT*x_each_unit*i+UP*y_each_unit*y,end=ORIGIN+RIGHT*x_each_unit*(i+1)+UP*y_each_unit*y_next,color=RED)
+ return lines
+
+class graphScene(GraphScene,MovingCameraScene):
+ CONFIG = {
+ "x_min": -6,
+ "x_max": 6,
+ "y_min": -5,
+ "y_max": 5,
+ "graph_origin": ORIGIN,
+ "function_color": RED,
+ "axes_color": GREEN,
+ "x_axis_label": "$k$",
+ "y_axis_label": "$f(\\frac{1}{2})_k$",
+ "exclude_zero_label": True,
+ "x_axis_width":7,
+ "y_axis_height":7
+ }
+
+ def setup(self):
+ GraphScene.setup(self)
+ MovingCameraScene.setup(self)
+
+
+ def construct(self):
+ x_each_unit = self.x_axis_width / (self.x_max - self.x_min)
+ y_each_unit = self.y_axis_height / (self.y_max - self.y_min)
+ sequence=TextMobject("$1$ , $1-(0.5)^2$ , $1-(0.5)^2+(0.5)^4..$")
+ sequence.set_color(RED)
+ sequence.scale(0.35)
+ sequence.to_edge(UP+RIGHT)
+ formula=TextMobject("$f(x)_{ k }=\sum _{ i=0 }^{ k }{ (-1)^{ i }(x)^{ 2i } } $")
+ formula.set_color(PURPLE_C)
+ formula.scale(0.4)
+ formula.shift(5.3*RIGHT+3*UP)
+ fLine=Line(start=ORIGIN+x_each_unit*6*LEFT,end=ORIGIN+x_each_unit*6*RIGHT)
+ fLine.shift(ORIGIN+(4/5)*y_each_unit*UP)
+ fLineText=TextMobject("$g(0.5)=\\frac { 4 }{ 5 } $")
+ fLineText.set_color(RED)
+ fLineText.scale(0.3)
+ fLineText.shift(UP*1.2*y_each_unit+RIGHT*x_each_unit+4*LEFT)
+ points=[Dot(radius=0.03,color=BLUE) for i in range(0,6)]
+ makeSeries(0.5,points,x_each_unit,y_each_unit)
+ lines=makeLines(0.5,6,x_each_unit,y_each_unit)
+
+
+ self.add(sequence)
+ self.add(formula)
+ self.setup_axes(animate=True)
+ self.play(Write(fLine))
+ self.add(fLineText)
+ for p in points:
+ self.add(p)
+ for p in range(0,5):
+ self.play(Write(lines[p]))
+ self.wait(0.5)
+ self.camera_frame.save_state()
+ self.camera_frame.set_width(0.6)
+ self.play(self.camera_frame.move_to, points[0])
+ self.wait(0.4)
+ self.play(self.camera_frame.move_to, points[1])
+ self.wait(0.4)
+ self.play(self.camera_frame.move_to, points[2])
+ self.wait(0.3)
+ self.play(self.camera_frame.move_to, points[3])
+ self.wait(1)
+ self.play(self.camera_frame.move_to,ORIGIN)
+ self.camera_frame.set_width(14)
+ self.wait(1)
+
+ explanation1=TextMobject("Since the series","converges","to")
+ explanation1.set_color_by_tex_to_color_map({"converges":YELLOW})
+ explanation2=TextMobject("$\\frac {4}{5}$")
+ explanation2.set_color(BLUE)
+ explanation3=TextMobject("Hence","$\\forall \epsilon>0$,","$\exists k$","such that,")
+ explanation3.set_color_by_tex_to_color_map({"$\\forall \epsilon>0$":BLUE,"$\exists k$":YELLOW})
+ explanation4=TextMobject("$\left| { f\left( \\frac { 1 }{ 2 } \\right) }_{ k }-\\frac { 4 }{ 5 } \\right| <$","$\epsilon$")
+ explanation4.set_color_by_tex_to_color_map({"$\epsilon$":RED})
+ explanation1.scale(0.5)
+ explanation3.scale(0.5)
+ explanation1.shift(1.8*DOWN+3.5*RIGHT)
+ explanation2.shift(2.4*DOWN+3.5*RIGHT)
+ explanation3.shift(1.8*DOWN+3.5*RIGHT)
+ explanation4.shift(2.4*DOWN+3.5*RIGHT)
+
+ self.play(Write(explanation1))
+ self.play(FadeIn(explanation2))
+ self.wait(1)
+ self.play(FadeOut(explanation1),FadeOut(explanation2))
+ self.play(Write(explanation3))
+ self.play(Write(explanation4))
+ self.wait(2)