From 450b3d9b496aa7386d8cf52ed683f77cfe9abeb3 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sat, 20 Jun 2020 18:56:19 +0530
Subject: Review

---
 .../file1_projections.py                           |  85 ++++++++++
 .../file2_orthonormal.py                           | 174 +++++++++++++++++++++
 .../The-Four-Fundamental-Subspaces/Axb.py          |  77 +++++++++
 3 files changed, 336 insertions(+)
 create mode 100755 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py
 create mode 100755 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py
new file mode 100755
index 0000000..814fa57
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py	
@@ -0,0 +1,85 @@
+from manimlib.imports import *
+
+class Projections(GraphScene):
+    CONFIG = {
+        "x_min": -6,
+        "x_max": 6,
+        "y_min": -4,
+        "y_max": 4,
+        "graph_origin" : ORIGIN ,
+    }    
+    def construct(self):
+       
+        self.setup_axes(animate=True)
+
+        XTD = self.x_axis_width/(self.x_max-self.x_min)
+        YTD = self.y_axis_height/(self.y_max-self.y_min)
+
+        arrow_a = Arrow(start = ORIGIN, end = 4*XTD*RIGHT)
+        arrow_a.scale(1.2)
+        arrow_a.set_color(DARK_BLUE)
+        arrow_b = Arrow(start = ORIGIN, end = 2*YTD*UP+2*XTD*RIGHT)
+        arrow_b.scale(1.3)
+        arrow_b.set_color(DARK_BLUE)
+        self.play(ShowCreation(arrow_a), ShowCreation(arrow_b))
+
+        text = TextMobject(r"Let there be 2 vectors $a$ and $b$")
+        text.set_color(DARK_BLUE)
+        text.scale(0.75)
+        text.move_to(2*YTD*DOWN+4*XTD*LEFT)
+        text_a = TextMobject("a")
+        text_a.move_to(0.4*YTD*DOWN+3*XTD*RIGHT)
+        text_a.set_color(DARK_BLUE)
+        text_b = TextMobject("b")
+        text_b.move_to(1.5*YTD*UP+RIGHT*XTD)
+        text_b.set_color(DARK_BLUE)
+ 
+        self.play(Write(text),Write(text_a), Write(text_b))
+        self.wait()
+
+        arrow_b_copy = Arrow(start = ORIGIN, end = 2*YTD*UP+2*XTD*RIGHT)
+        arrow_b_copy.scale(1.25)
+
+        arrow_p = Arrow(start = ORIGIN, end = 2*XTD*RIGHT)
+        arrow_p.scale(1.5)
+        arrow_p.set_color(GOLD_E)
+
+        text_p = TextMobject("p")
+        text_p.move_to(0.25*DOWN+RIGHT)
+        text_p.set_color(GOLD_E)
+
+        self.play(FadeOut(text), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b))
+        text = TextMobject(r"$p$ is the projection of $b$ on $a$")
+        text.set_color(GOLD_E)
+        text.move_to(2*DOWN+3*LEFT)
+        text.scale(0.8)
+        self.play(Write(text),Write(text_p))
+        self.wait()
+        
+        self.play(FadeIn(text_a), FadeIn(text_b))
+
+        arrow_o = Arrow(start = 2*XTD*RIGHT, end = 2*YTD*UP+2*XTD*RIGHT)
+        arrow_o.scale(1.5)
+        arrow_o.set_color(GREEN_E)
+
+        text_o = TextMobject("b-p")
+        text_o.move_to(UP*YTD+2.7*XTD*RIGHT)
+        text_o.set_color(GREEN_E)
+
+        self.play(ShowCreation(arrow_o))
+        self.play(FadeOut(text),Write(text_o))
+        
+        text = TextMobject(r"Observe, ($b-p$) is orthogonal to $a$")
+        text.set_color(GREEN_E)
+        text.move_to(2*DOWN+4*LEFT)
+        text.scale(0.8)
+        self.play(Write(text))
+        self.wait(2)
+
+        self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text))
+        
+        text = TextMobject(r"Therefore, unit vectors of $b-p$ and $a$ are orthonormal to each other")
+        text.scale(0.75)
+        self.play(Write(text))
+        self.wait(2)
+        self.play(FadeOut(text))
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py
new file mode 100644
index 0000000..640b8be
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py	
@@ -0,0 +1,174 @@
+from manimlib.imports import *
+
+from manimlib.imports import *
+
+class Orthogonal(ThreeDScene):
+    def construct(self):
+
+        text = TextMobject(r"These are two Orthogonal Basis $\alpha_{1}$ and $\alpha_{2}$")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*(DOWN+RIGHT))
+        self.play(Write(text))
+
+        axes = ThreeDAxes()
+        self.play(ShowCreation(axes))
+        self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3)
+        self.begin_ambient_camera_rotation(rate=0.3)
+        
+        line1 = Line(start = ORIGIN,end = 1*RIGHT)
+        line1.set_color(DARK_BLUE)
+        tip1 = Polygon(RIGHT,0.8*RIGHT-0.2*DOWN,0.8*RIGHT-0.2*UP)
+        tip1.set_opacity(1)
+        tip1.set_fill(DARK_BLUE)
+        tip1.set_color(DARK_BLUE)
+
+        arrow2 = Line(start = ORIGIN,end = 1*UP)
+        arrow2.set_color(DARK_BLUE)
+        tip2 = Polygon(UP,0.8*UP-0.2*RIGHT,0.8*UP-0.2*LEFT)
+        tip2.set_opacity(1)
+        tip2.set_fill(DARK_BLUE)
+        tip2.set_color(DARK_BLUE)
+        arrow2.set_color(DARK_BLUE)
+
+        self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2))
+        self.wait()
+
+        a_line = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2])
+        a_line.set_color(GOLD_E)
+        a_tip = Polygon(2*UP+2*RIGHT+[0,0,2],2*UP+1.6*RIGHT+[0,0,1.8],1.6*UP+2*RIGHT+[0,0,1.8])
+        a_tip.set_opacity(1)
+        a_tip.set_fill(GOLD_E)
+        a_tip.set_color(GOLD_E)
+
+        a_line_c1 = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2])
+        a_line_c1.set_color(GOLD_E)
+        a_tip_c1 = Polygon(2*UP+2*RIGHT+[0,0,2],2*UP+1.6*RIGHT+[0,0,1.8],1.6*UP+2*RIGHT+[0,0,1.8])
+        a_tip_c1.set_opacity(1)
+        a_tip_c1.set_fill(GOLD_E)
+        a_tip_c1.set_color(GOLD_E)
+
+        self.play(FadeOut(text), ShowCreation(a_line), ShowCreation(a_tip), ShowCreation(a_line_c1), ShowCreation(a_tip_c1))
+        
+        text = TextMobject(r"There is a vector $\beta_3$")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*(DOWN+RIGHT))
+        self.play(Write(text))
+        self.wait()
+        self.play(FadeOut(text))
+
+        p_line1 = Line(start = ORIGIN,end = 2*RIGHT)
+        p_line1.set_color(GOLD_E)
+        p_tip1 = Polygon(RIGHT,0.8*RIGHT+0.2*DOWN,0.8*RIGHT+0.2*UP)
+        p_tip1.move_to(2*RIGHT)
+        p_tip1.set_opacity(1)
+        p_tip1.set_fill(GOLD_E)
+        p_tip1.set_color(GOLD_E)
+
+        self.play(Transform(a_line_c1,p_line1),Transform(a_tip_c1,p_tip1))
+
+        text = TextMobject(r"Take projection of $\beta_3$ on $\alpha_1$")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*(DOWN+RIGHT))
+        self.play(Write(text))
+        self.wait()
+        self.play(FadeOut(text))
+
+        o_line1 = Line(start = 2*RIGHT,end = 2*UP+2*RIGHT+[0,0,2])
+        o_line1.set_color(GREEN_E)
+        o_tip1 = Polygon(2*UP+2*RIGHT+[0,0,2],1.8*UP+2*RIGHT+[0,0,1.8]+0.2*RIGHT,1.8*UP+2*RIGHT+[0,0,1.8]-0.2*RIGHT)
+        o_tip1.set_opacity(1)
+        o_tip1.set_fill(GREEN_E)
+        o_tip1.set_color(GREEN_E)
+
+        a_line1 = Line(start = ORIGIN,end = 2*UP+[0,0,2])
+        a_line1.set_color(GREEN_E)
+        a_tip1 = Polygon(2*UP+[0,0,2],1.8*UP+[0,0,1.8]+0.2*RIGHT,1.8*UP+[0,0,1.8]-0.2*RIGHT)
+        a_tip1.set_opacity(1)
+        a_tip1.set_fill(GREEN_E)
+        a_tip1.set_color(GREEN_E)
+
+        a_line1_c1 = Line(start = ORIGIN,end = 2*UP+[0,0,2])
+        a_line1_c1.set_color(GREEN_E)
+        a_tip1_c1 = Polygon(2*UP+[0,0,2],1.8*UP+[0,0,1.8]+0.2*RIGHT,1.8*UP+[0,0,1.8]-0.2*RIGHT)
+        a_tip1_c1.set_opacity(1)
+        a_tip1_c1.set_fill(GREEN_E)
+        a_tip1_c1.set_color(GREEN_E)
+
+        text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$)")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*(DOWN+RIGHT))
+        self.play(Write(text))
+        self.play(ShowCreation(o_line1), ShowCreation(o_tip1))
+        self.wait(2)
+        self.play(FadeOut(a_line_c1), FadeOut(a_tip_c1), 
+        FadeOut(a_line), FadeOut(a_tip),
+        Transform(o_line1,a_line1), Transform(o_tip1,a_tip1))
+
+        self.wait()
+        self.play(FadeOut(text))
+
+        p_arrow2 = Line(start = ORIGIN,end = 2*UP)
+        p_arrow2.set_color(GOLD_E)
+        p_tip2 = Polygon(2*UP,1.8*UP+0.2*RIGHT,1.8*UP+0.2*LEFT)
+        p_tip2.set_opacity(1)
+        p_tip2.set_fill(GOLD_E)
+        p_tip2.set_color(GOLD_E)
+        p_arrow2.set_color(GOLD_E)
+
+        last_a = Line(start = 2*UP,end = [0,2,2])
+        last_a.set_color(GOLD_E)
+        last_a_tip = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT)
+        last_a_tip.move_to([0,2,2])
+        last_a_tip.set_opacity(1)
+        last_a_tip.set_fill(GOLD_E)
+        last_a_tip.set_color(GOLD_E)
+
+        self.wait()
+        text = TextMobject(r"Take projection on $\alpha_2$")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*(DOWN+RIGHT))
+        self.play(Write(text))
+        self.play(Transform(a_line1_c1,p_arrow2),Transform(a_tip1_c1,p_tip2))
+        self.wait()
+        self.play(FadeOut(text))
+
+        text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$)")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*DOWN+2*RIGHT)
+        self.play(Write(text))
+        self.play(ShowCreation(o_line1), ShowCreation(o_tip1))
+        self.wait(2)
+        self.play(ShowCreation(last_a_tip), ShowCreation(last_a))
+        self.wait()
+        self.play(FadeOut(text))
+
+        larrow3 = Line(start = ORIGIN,end = [0,0,2])
+        larrow3.set_color(GOLD_E)
+        ltip3 = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT)
+        ltip3.set_opacity(1)
+        ltip3.set_fill(GOLD_E)
+        ltip3.set_color(GOLD_E)
+        self.wait()
+        self.play(FadeOut(o_line1), FadeOut(o_tip1), FadeOut(a_line1_c1), FadeOut(a_tip1_c1), Transform(last_a,larrow3), Transform(last_a_tip,ltip3))
+        
+        text = TextMobject(r"Normalisation of the orthogonal vector")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*DOWN+2*RIGHT)
+        self.play(Write(text))
+        
+        arrow3 = Line(start = ORIGIN,end = [0,0,1])
+        arrow3.set_color(DARK_BLUE)
+        tip3 = Polygon([0,0,1],[0,0,0.8]-0.2*RIGHT,[0,0,0.8]-0.2*LEFT)
+        tip3.set_opacity(1)
+        tip3.set_fill(DARK_BLUE)
+        tip3.set_color(DARK_BLUE)
+        self.play(Transform(last_a,arrow3), Transform(last_a_tip,tip3))
+
+        self.wait(3)
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py
new file mode 100755
index 0000000..95d1021
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py
@@ -0,0 +1,77 @@
+from manimlib.imports import *
+
+class Axb(Scene):
+    
+    def construct(self):
+        
+        text0 = TextMobject("Linear System Of Equations")
+        text1 = TextMobject(r"$x_{1}+x_{2}+x_{3} =b_{1}$")
+        text2 = TextMobject(r"$x_{1}+2x_{2}+x_{3} =b_{2}$")
+        text3 = TextMobject(r"$x_{1}+x_{2}+3x_{3} =b_{3}$")
+        text0.move_to(UP*2+LEFT*2)
+        text0.set_color(DARK_BLUE)
+        text1.move_to(UP)
+        text2.move_to(ORIGIN)
+        text3.move_to(DOWN)
+
+        text0.scale(0.75)
+        text1.scale(0.75)
+        text2.scale(0.75)
+        text3.scale(0.75)
+        self.play(Write(text0))
+        self.play(Write(text1))
+        self.play(Write(text2))
+        self.play(Write(text3))
+        self.play(ApplyMethod(text0.move_to,3*UP+LEFT*2), ApplyMethod(text1.move_to,2.5*UP), ApplyMethod(text2.move_to,2*UP), ApplyMethod(text3.move_to,1.5*UP))
+
+        A = TextMobject(r"$\left( \begin{array}{c c c} 1 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 3 \end{array}\right) \left[ \begin{array} {c} x_{1} \\ x_{2} \\ x_{3} \end{array}\right] =$", r"$\left[ \begin{array}{c} x_{1}+x_{2}+x_{3} \\ x_{1}+2x_{2}+x_{3} \\ x_{1}+x_{2}+3x_{3} \end{array}\right]$")
+        A.scale(0.75)
+        self.play(FadeIn(A))
+
+        textA = TextMobject("A")
+        textx = TextMobject("x")
+        textb = TextMobject("Ax")
+
+        textA.move_to(DOWN+3*LEFT)
+        textx.move_to(1.1*DOWN+0.5*LEFT)
+        textb.move_to(DOWN-2*LEFT)
+
+        self.play(Write(textA), Write(textx), Write(textb))
+
+        circle1 = Circle(radius = 0.24)
+        circle2 = Circle(radius = 0.24)
+        square = Square(side_length = 0.6)
+
+        circle1.move_to(UP*0.5+LEFT*3.05)
+        circle2.move_to(UP*0.4+LEFT*0.5)
+        square.move_to(UP*0.4+RIGHT*1.3)
+
+        self.play(FadeIn(circle1), FadeIn(circle2),FadeIn(square))
+
+        self.play(ApplyMethod(circle1.move_to,UP*0.5+LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,UP*0.4+RIGHT*2.2))
+        self.play(ApplyMethod(circle1.move_to,UP*0.5+LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,UP*0.4+RIGHT*3.1))
+
+        self.play(ApplyMethod(circle1.move_to,LEFT*3.05), ApplyMethod(circle2.move_to,UP*0.4+LEFT*0.5), ApplyMethod(square.move_to,RIGHT*1.3))
+        self.play(ApplyMethod(circle1.move_to,LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,RIGHT*2.2))
+        self.play(ApplyMethod(circle1.move_to,LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,RIGHT*3.1))
+
+        self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*3.05), ApplyMethod(circle2.move_to,UP*0.4+LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*1.3))
+        self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*2.2))
+        self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*3.1))
+
+        self.play(FadeOut(circle1), FadeOut(circle2), FadeOut(square))
+        self.play(FadeOut(A[0]), ApplyMethod(A[1].move_to,2*LEFT),ApplyMethod(textb.move_to,DOWN+1.7*LEFT), FadeOut(textx), FadeOut(textA))
+        b = TextMobject(r"$=\left[ \begin{array}{c} b_{1} \\ b_{2} \\ b_{3} \end{array}\right]$")
+        b.move_to(RIGHT)
+        textB = TextMobject("b")
+        textB.move_to(1.2*DOWN+1.1*RIGHT)
+        self.play(FadeIn(b),FadeIn(textB))
+
+        self.wait()
+
+        self.play(FadeOut(text0), FadeOut(text1), FadeOut(text2), FadeOut(text3))
+
+        axb = TextMobject("Ax = b")
+        self.play(FadeIn(axb), FadeOut(textb), FadeOut(textB), FadeOut(b), FadeOut(A[1]))
+
+        self.wait()
\ No newline at end of file
-- 
cgit 


From cdbf436a0cb9ec3f2a425efa3fcacd979972533a Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 12:24:47 +0530
Subject: Create README.md

---
 .../multivariable-limits-and-continuity/README.md    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
new file mode 100644
index 0000000..4339c30
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
@@ -0,0 +1,20 @@
+**file1_scalar_function**
+![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+
+**file2_domain_range**
+![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+
+**file3_parabola_example**
+![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+
+**file4_level_curves**
+![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+
+**file5_level_surface**
+![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
+
+**file6_scalar_function_application**
+![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
+
+**file7_neural_nets**
+![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
-- 
cgit 


From c9b6350167df9085e35d6ca597a85703518680ee Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 12:28:26 +0530
Subject: Update README.md

---
 .../multivariable-limits-and-continuity/README.md                   | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
index 4339c30..d56e414 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
@@ -1,8 +1,8 @@
-**file1_scalar_function**
-![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+**file1_epsilon_delta_defn**
+![file1_epsilon_delta_defn](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif)
 
 **file2_domain_range**
-![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_domain_range.gif)
 
 **file3_parabola_example**
 ![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
-- 
cgit 


From df07222008133f28cdaf27d614a07a9c1ee4bec1 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 2 Jul 2020 13:54:11 +0530
Subject: file1_of orthonormal bases updated

---
 .../Orthonormal Basis/file1_orthogonal.py          | 26 +++++---
 .../The-Four-Fundamental-Subspaces/solution.py     | 75 ++++++++++++++++++++++
 2 files changed, 91 insertions(+), 10 deletions(-)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py
index b400f93..a5d96f5 100755
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py	
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py	
@@ -4,31 +4,37 @@ class Orthogonal(ThreeDScene):
     def construct(self):
         axes = ThreeDAxes()
         self.play(ShowCreation(axes))
-        self.move_camera(phi=30*DEGREES,theta=-45*DEGREES,run_time=3)
-        line1 = Line(start = ORIGIN,end = -3*LEFT)
+        self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3)
+
+        text = TextMobject(r"$\hat{i}$",r"$\hat{j}$",r"$\hat{k}$")
+        text[0].move_to(0.7*DOWN+0.8*LEFT)
+        text[1].move_to(0.75*DOWN+0.7*RIGHT)
+        text[2].move_to(0.75*UP+0.4*RIGHT)
+        self.add_fixed_in_frame_mobjects(text)
+        self.play(Write(text))
+
+        line1 = Line(start = ORIGIN,end = RIGHT)
         line1.set_color(DARK_BLUE)
-        tip1 = Polygon(-LEFT,-0.8*LEFT-0.2*DOWN,-0.8*LEFT-0.2*UP)
-        tip1.move_to(-3*LEFT)
+        tip1 = Polygon(-0.95*LEFT,-0.8*LEFT-0.1*DOWN,-0.8*LEFT-0.1*UP)
         tip1.set_opacity(1)
         tip1.set_fill(DARK_BLUE)
         tip1.set_color(DARK_BLUE)
 
-        arrow2 = Line(start = ORIGIN,end = -3*UP)
+        arrow2 = Line(start = ORIGIN,end = UP)
         arrow2.set_color(DARK_BLUE)
-        tip2 = Polygon(DOWN,0.8*DOWN-0.2*RIGHT,0.8*DOWN-0.2*LEFT)
-        tip2.move_to(3*DOWN)
+        tip2 = Polygon(0.95*UP,0.8*UP-0.1*RIGHT,0.8*UP-0.1*LEFT)
         tip2.set_opacity(1)
         tip2.set_fill(DARK_BLUE)
         tip2.set_color(DARK_BLUE)
         arrow2.set_color(DARK_BLUE)
 
-        arrow3 = Line(start = ORIGIN,end = [0,0,3])
+        arrow3 = Line(start = ORIGIN,end = [0,0,1])
         arrow3.set_color(DARK_BLUE)
-        tip3 = Polygon([0,0,3],[0,0,2.8]-0.2*RIGHT,[0,0,2.8]-0.2*LEFT)
+        tip3 = Polygon([0,0,0.95],[0,0,0.8]-0.1*RIGHT,[0,0,0.8]-0.1*LEFT)
         tip3.set_opacity(1)
         tip3.set_fill(DARK_BLUE)
         tip3.set_color(DARK_BLUE)
 
         self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3))
         
-        self.wait()
\ No newline at end of file
+        self.wait()
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py
new file mode 100644
index 0000000..fb31881
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py
@@ -0,0 +1,75 @@
+from manimlib.imports import *
+class solution(LinearTransformationScene):
+    def construct(self):
+
+        self.setup()
+        self.wait()
+        
+        o = TextMobject(r"This is the original $2D$ vector space(before Linear Transformation)")
+        o.move_to(DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        A = TextMobject("Let $A$ denote the matrix the of this linear transformation.")
+        A.move_to(DOWN)
+        A.scale(0.75)
+        A.add_background_rectangle()
+        self.play(Write(A))
+        matrix = [[1,-1],[1,-1]]
+        self.apply_matrix(matrix)
+        self.wait()
+        self.play(FadeOut(A))
+
+        o = TextMobject(r"This is the transformed vector space i.e. a line ($1D$)")
+        o.move_to(DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+        
+        arrow2 = Arrow(start = ORIGIN, end = 2*DOWN+2*LEFT)
+        arrow2.set_color(DARK_BLUE)
+        arrow2.scale(1.2)
+        self.play(ShowCreation(arrow2))
+        self.wait()
+
+        o1 = TextMobject("If the vector lies in the transformed vector space")
+        o2 = TextMobject("(the line) then the solution exist")
+        o1.move_to(2*DOWN+2*RIGHT)
+        o2.move_to(2.5*DOWN+2*RIGHT)
+        o1.scale(0.75)
+        o2.scale(0.75)
+        o1.add_background_rectangle()
+        o2.add_background_rectangle()
+        self.play(Write(o1))
+        self.play(Write(o2))
+        self.wait()
+        self.play(FadeOut(o1), FadeOut(o2))
+
+        self.play(FadeOut(arrow2))
+
+        arrow1 = Arrow(start = ORIGIN, end = 2*UP+RIGHT)
+        arrow1.set_color(DARK_BLUE)
+        arrow1.scale(1.3)
+        self.play(ShowCreation(arrow1))
+        self.wait()
+
+        o1 = TextMobject("If the vector does lies in the transformed")
+        o2 = TextMobject("vector space then the does not solution exist")
+        o1.move_to(2*DOWN+2*RIGHT)
+        o2.move_to(2.5*DOWN+2*RIGHT)
+        o1.scale(0.75)
+        o2.scale(0.75)
+        o1.add_background_rectangle()
+        o2.add_background_rectangle()
+        self.play(Write(o1))
+        self.play(Write(o2))
+        self.wait()
+        self.play(FadeOut(o1), FadeOut(o2))
+
+        self.play(FadeOut(arrow1))
+        
\ No newline at end of file
-- 
cgit 


From 09f7e9c2302adcaf44d7dfb9e868bd2af147341b Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:36:39 +0530
Subject: Update README.md

---
 .../multivariable-limits-and-continuity/README.md  | 22 ++++++++--------------
 1 file changed, 8 insertions(+), 14 deletions(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
index d56e414..c01ddc5 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md
@@ -1,20 +1,14 @@
 **file1_epsilon_delta_defn**
 ![file1_epsilon_delta_defn](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif)
 
-**file2_domain_range**
-![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_domain_range.gif)
+**file2_limit_approach_point**
+![file2_limit_approach_point](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif)
 
-**file3_parabola_example**
-![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+**file3_limit_approach_point_3d**
+![file3_limit_approach_point_3d](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif)
 
-**file4_level_curves**
-![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+**file4_limit_different_point**
+![file4_limit_different_point](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file4_limit_different_point.gif)
 
-**file5_level_surface**
-![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
-
-**file6_scalar_function_application**
-![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
-
-**file7_neural_nets**
-![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
+**file5_continuity_func**
+![file5_continuity_func](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file5_continuity_func.gif)
-- 
cgit 


From f6b08b6314785f699fe6bb6072227c39b73a0944 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:39:59 +0530
Subject: Create README.md

---
 .../multivariable-functions/README.md                | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md
new file mode 100644
index 0000000..4339c30
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md
@@ -0,0 +1,20 @@
+**file1_scalar_function**
+![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+
+**file2_domain_range**
+![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+
+**file3_parabola_example**
+![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+
+**file4_level_curves**
+![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+
+**file5_level_surface**
+![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
+
+**file6_scalar_function_application**
+![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
+
+**file7_neural_nets**
+![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
-- 
cgit 


From 9a6558b1686312c095c9605a7de17c47bc373fca Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:43:40 +0530
Subject: Update README.md

---
 .../multivariable-functions/README.md              | 27 ++++++++++------------
 1 file changed, 12 insertions(+), 15 deletions(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md
index 4339c30..0e6e8d3 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md
@@ -1,20 +1,17 @@
-**file1_scalar_function**
-![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+**file1_multivar_func_examples**
+![file1_multivar_func_examples](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivar_func_examples.gif)
 
-**file2_domain_range**
-![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+**file2_multivariable_func_respresentation**
+![file2_multivariable_func_respresentation](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif)
 
-**file3_parabola_example**
-![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+**file3_sphere**
+![file3_sphere](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_sphere.gif)
 
-**file4_level_curves**
-![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+**file4_vectorvf_sine**
+![file4_vectorvf_sine](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif)
 
-**file5_level_surface**
-![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
+**file5_vectorvf_helix**
+![file5_vectorvf_helix](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_vectorvf_helix.gif)
 
-**file6_scalar_function_application**
-![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
-
-**file7_neural_nets**
-![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
+**file6_derivative_vectorvf**
+![file6_derivative_vectorvf](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif)
-- 
cgit 


From 1430685ba1fdb6ad4d6d8575985fbb5295766410 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:44:52 +0530
Subject: Create README.md

---
 .../partial-derivatives/README.md                    | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
new file mode 100644
index 0000000..4339c30
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
@@ -0,0 +1,20 @@
+**file1_scalar_function**
+![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+
+**file2_domain_range**
+![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+
+**file3_parabola_example**
+![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+
+**file4_level_curves**
+![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+
+**file5_level_surface**
+![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
+
+**file6_scalar_function_application**
+![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
+
+**file7_neural_nets**
+![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
-- 
cgit 


From c923af6c1cbaf5f0f162e60b3351b98f749a79c5 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:48:33 +0530
Subject: Update README.md

---
 .../partial-derivatives/README.md                  | 29 ++++++++++++----------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
index 4339c30..7c60a7f 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
@@ -1,20 +1,23 @@
-**file1_scalar_function**
-![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif)
+**file1_partial_deriv_gas_law**
+![file1_partial_deriv_gas_law](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif)
 
-**file2_domain_range**
-![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif)
+**file2_partial_deriv_hill**
+![file2_partial_deriv_hill](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif)
 
-**file3_parabola_example**
-![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif)
+**file3_partial_deriv_defn**
+![file3_partial_deriv_defn](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif)
 
-**file4_level_curves**
-![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif)
+**file4_partial_deriv_example**
+![file4_partial_deriv_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif)
 
-**file5_level_surface**
-![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif)
+**file5_partial_deriv_func_2maximas**
+![file5_partial_deriv_func_2maximas](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif)
 
-**file6_scalar_function_application**
-![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif)
+**file6_clariant_rule**
+![file6_clariant_rule](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file6_clariant_rule.gif)
+
+**file7_partial_deriv_clariant_rule**
+![file7_partial_deriv_clariant_rule](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif)
 
 **file7_neural_nets**
-![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif)
+![file8_chain_rule](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif)
-- 
cgit 


From cab0c5ccfbc095f4fbbaefc3353535ae28d139de Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:49:06 +0530
Subject: Update README.md

---
 .../partial-derivatives/README.md                                       | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
index 7c60a7f..c62dd51 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md
@@ -19,5 +19,5 @@
 **file7_partial_deriv_clariant_rule**
 ![file7_partial_deriv_clariant_rule](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif)
 
-**file7_neural_nets**
+**file8_chain_rule**
 ![file8_chain_rule](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif)
-- 
cgit 


From c730afdb7536bb35a63144444057d3d41ce78fdb Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:50:15 +0530
Subject: Create README.md

---
 .../directional-derivatives/README.md                             | 8 ++++++++
 1 file changed, 8 insertions(+)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md
new file mode 100644
index 0000000..638f953
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md
@@ -0,0 +1,8 @@
+**file1_directional_deriv**
+![file1_directional_deriv](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif)
+
+**file2_limit_approach_point**
+![file2_limit_approach_point](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif)
+
+**file3_limit_approach_point_3d**
+![file3_limit_approach_point_3d](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif)
-- 
cgit 


From 8ba0e9cfb186c33057ebffe4b98bdcc8b44b2aed Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:51:19 +0530
Subject: Update README.md

---
 .../directional-derivatives/README.md                          | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md
index 638f953..a62369d 100644
--- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md
+++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md
@@ -1,8 +1,8 @@
 **file1_directional_deriv**
-![file1_directional_deriv](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif)
+![file1_directional_deriv](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file1_directional_deriv.gif)
 
-**file2_limit_approach_point**
-![file2_limit_approach_point](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif)
+**file2_gradient**
+![file2_gradient](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file2_gradient.gif)
 
-**file3_limit_approach_point_3d**
-![file3_limit_approach_point_3d](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif)
+**file3_gradient_level_curves**
+![file3_gradient_level_curves](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file3_gradient_level_curves.gif)
-- 
cgit 


From 6102a02ea2518c58aa22b47fe84f5421ac1619f3 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:54:08 +0530
Subject: Delete file7_partial_deriv_clariant_rule.gif

---
 .../gifs/file7_partial_deriv_clariant_rule.gif         | Bin 722341 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif
deleted file mode 100644
index ecef499..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif and /dev/null differ
-- 
cgit 


From e1c66a25bed77e21e44864caeea1c00703c62116 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:54:37 +0530
Subject: Add files via upload

---
 .../gifs/file7_partial_deriv_clariant_rule.gif        | Bin 0 -> 1583937 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif
new file mode 100644
index 0000000..32d5e92
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif differ
-- 
cgit 


From 696c3061405e8e6c3306c02b6dc6ee477c1edf24 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 17:59:19 +0530
Subject: Delete file3_parabola_example.gif

---
 .../scalar-functions/gifs/file3_parabola_example.gif  | Bin 5660857 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif
deleted file mode 100644
index af9e536..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif and /dev/null differ
-- 
cgit 


From 55bfd59f6a4eeac751e563b8bc062c6be8904b8c Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:00:06 +0530
Subject: Add files via upload

---
 .../scalar-functions/gifs/file3_parabola_example.gif | Bin 0 -> 11849611 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif
new file mode 100644
index 0000000..169cb32
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif differ
-- 
cgit 


From e7bb7fa0215df9e3e83e90986dab46ad46519b46 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:03:20 +0530
Subject: Delete file3_parabola_example.gif

---
 .../scalar-functions/gifs/file3_parabola_example.gif | Bin 11849611 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif
deleted file mode 100644
index 169cb32..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif and /dev/null differ
-- 
cgit 


From 547a760cc022393cd0d545a8545ac9211a482d33 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:03:52 +0530
Subject: Add files via upload

---
 .../scalar-functions/gifs/file3_parabola_example.gif | Bin 0 -> 13732426 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif
new file mode 100644
index 0000000..9576b4a
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif differ
-- 
cgit 


From c504283d67c41a8f3692990808c4d870ffa27898 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:07:34 +0530
Subject: Delete file7_neural_nets.gif

---
 .../scalar-functions/gifs/file7_neural_nets.gif         | Bin 95828 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif
deleted file mode 100644
index 9d24688..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif and /dev/null differ
-- 
cgit 


From 0bdbdaec2e4583316a11575a32ce53b9da562c17 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:07:55 +0530
Subject: Add files via upload

---
 .../scalar-functions/gifs/file7_neural_nets.gif        | Bin 0 -> 952963 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif
new file mode 100644
index 0000000..a22f1b8
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif differ
-- 
cgit 


From a8d730536f0610723797c44c80327af8d89d9fd2 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:17:45 +0530
Subject: Delete file4_vectorvf_sine.gif

---
 .../gifs/file4_vectorvf_sine.gif                        | Bin 29814 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif
deleted file mode 100644
index 4f6b931..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif and /dev/null differ
-- 
cgit 


From e5b6a01aee7f564d076dd5186a2de9070455d72e Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:17:54 +0530
Subject: Delete file6_derivative_vectorvf.gif

---
 .../gifs/file6_derivative_vectorvf.gif                 | Bin 117597 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif
deleted file mode 100644
index a94de90..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif and /dev/null differ
-- 
cgit 


From 921ec63d05f575c7e7d49517cae0e05ccf790ce8 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:18:09 +0530
Subject: Add files via upload

---
 .../gifs/file4_vectorvf_sine.gif                       | Bin 0 -> 283795 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif
new file mode 100644
index 0000000..215459e
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif differ
-- 
cgit 


From c2e348fc9404b4a661949685aefd6f9b3e79952b Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:18:56 +0530
Subject: Add files via upload

---
 .../gifs/file6_derivative_vectorvf.gif                | Bin 0 -> 1370273 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif
new file mode 100644
index 0000000..9ea94e4
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif differ
-- 
cgit 


From 860a4868cd3ceb8d95363c4c2e2fe66982eab0cd Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:22:47 +0530
Subject: Delete file2_limit_approach_point.gif

---
 .../gifs/file2_limit_approach_point.gif                 | Bin 47411 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif
deleted file mode 100644
index 830b6f1..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif and /dev/null differ
-- 
cgit 


From e999885c4e20dc50b33da97177cce7951b70f10c Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:22:58 +0530
Subject: Delete file3_limit_approach_point_3d.gif

---
 .../gifs/file3_limit_approach_point_3d.gif            | Bin 2770965 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif
deleted file mode 100644
index 4bccf8c..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif and /dev/null differ
-- 
cgit 


From a37d8fbe6aa8c41755cb78fd840b37bf3b7e4f45 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:23:19 +0530
Subject: Add files via upload

---
 .../gifs/file2_limit_approach_point.gif                | Bin 0 -> 433985 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif
new file mode 100644
index 0000000..3abd596
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif differ
-- 
cgit 


From 5161bc0d844aa531b5aca7f44f2948f5e8ec24af Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:24:43 +0530
Subject: Add files via upload

---
 .../gifs/file3_limit_approach_point_3d.gif            | Bin 0 -> 5401504 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif
new file mode 100644
index 0000000..3e87cdd
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif differ
-- 
cgit 


From dc0909aa933098f6ebfcb05a38333736b9361f28 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:32:55 +0530
Subject: Delete file2_partial_deriv_hill.gif

---
 .../gifs/file2_partial_deriv_hill.gif                  | Bin 551768 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif
deleted file mode 100644
index f4c3f49..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif and /dev/null differ
-- 
cgit 


From 67120056db5779009f1ba07c4bc57b133f9c983b Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:33:05 +0530
Subject: Delete file3_partial_deriv_defn.gif

---
 .../gifs/file3_partial_deriv_defn.gif                 | Bin 2263059 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif
deleted file mode 100644
index e0e42db..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif and /dev/null differ
-- 
cgit 


From 8a5692733cfc6aba393b9b6249426b072fdd46f0 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:33:14 +0530
Subject: Delete file4_partial_deriv_example.gif

---
 .../gifs/file4_partial_deriv_example.gif              | Bin 2145303 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif
deleted file mode 100644
index 30682cb..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif and /dev/null differ
-- 
cgit 


From ae6916fb7da103151b34d3c5ea18c940364a4cae Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:33:22 +0530
Subject: Delete file5_partial_deriv_func_2maximas.gif

---
 .../gifs/file5_partial_deriv_func_2maximas.gif        | Bin 5123074 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif
deleted file mode 100644
index aa74437..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif and /dev/null differ
-- 
cgit 


From 000f8da4b69e339af080e38b5170a4b521158f87 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:33:56 +0530
Subject: Add files via upload

---
 .../gifs/file2_partial_deriv_hill.gif                 | Bin 0 -> 1238872 bytes
 .../gifs/file3_partial_deriv_defn.gif                 | Bin 0 -> 5251558 bytes
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif
new file mode 100644
index 0000000..3c758ff
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif differ
diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif
new file mode 100644
index 0000000..c66b3fa
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif differ
-- 
cgit 


From 078bfefe9cc07d21072ef207a5b5473ed58b0864 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:36:08 +0530
Subject: Add files via upload

---
 .../gifs/file4_partial_deriv_example.gif              | Bin 0 -> 4953394 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif
new file mode 100644
index 0000000..d2bf541
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif differ
-- 
cgit 


From 273aa722590c8357798999ce9df37bb44f57b4e1 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:38:33 +0530
Subject: Add files via upload

---
 .../gifs/file5_partial_deriv_func_2maximas.gif       | Bin 0 -> 11846180 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif
new file mode 100644
index 0000000..db7f4f8
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif differ
-- 
cgit 


From fb9a6c84f748fabddec9c520ff77447be68ca481 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:49:52 +0530
Subject: Delete file2_multivariable_func_respresentation.gif

---
 .../gifs/file2_multivariable_func_respresentation.gif  | Bin 664757 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif
deleted file mode 100644
index 40add0f..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif and /dev/null differ
-- 
cgit 


From ca4d3cd3cea0bdd2c8d4a793dff1eb19441fcbf8 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:50:19 +0530
Subject: Add files via upload

---
 .../gifs/file2_multivariable_func_respresentation.gif | Bin 0 -> 1828325 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif
new file mode 100644
index 0000000..8c4506c
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif differ
-- 
cgit 


From 74f1fa84e5e94a44b76445c1e44b787450b087be Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:52:32 +0530
Subject: Delete file2_multivariable_func_respresentation.gif

---
 .../gifs/file2_multivariable_func_respresentation.gif | Bin 1828325 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif
deleted file mode 100644
index 8c4506c..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif and /dev/null differ
-- 
cgit 


From 40a762f97f9bde203cc6338761eef610eed7d3e1 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Thu, 2 Jul 2020 18:55:30 +0530
Subject: Add files via upload

---
 .../gifs/file2_multivariable_func_respresentation.gif | Bin 0 -> 1828325 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif
new file mode 100644
index 0000000..8c4506c
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif differ
-- 
cgit 


From f95a5e6577216155b7aa60a7bde0527b51d7028d Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Fri, 3 Jul 2020 11:42:55 +0530
Subject: Delete file1_partial_deriv_gas_law.gif

---
 .../gifs/file1_partial_deriv_gas_law.gif              | Bin 2042905 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif
deleted file mode 100644
index 560a7c0..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif and /dev/null differ
-- 
cgit 


From 31d628b72ead2e74c04a95eb4a192b7c051c7ad2 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Fri, 3 Jul 2020 11:43:25 +0530
Subject: Add files via upload

---
 .../gifs/file1_partial_deriv_gas_law.gif              | Bin 0 -> 2051994 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif
new file mode 100644
index 0000000..8fdb80f
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif differ
-- 
cgit 


From 8ac4b177298d57f258d0405682b326ab0e7e94d2 Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Fri, 3 Jul 2020 11:45:17 +0530
Subject: Delete file1_partial_deriv_gas_law.gif

---
 .../gifs/file1_partial_deriv_gas_law.gif              | Bin 2051994 -> 0 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif
deleted file mode 100644
index 8fdb80f..0000000
Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif and /dev/null differ
-- 
cgit 


From 39d507d441b8dd53ad2fcaf397dae3dcf102f2ad Mon Sep 17 00:00:00 2001
From: nishanpoojary
Date: Fri, 3 Jul 2020 11:46:21 +0530
Subject: Add files via upload

---
 .../gifs/file1_partial_deriv_gas_law.gif              | Bin 0 -> 2051994 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif

diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif
new file mode 100644
index 0000000..8fdb80f
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif differ
-- 
cgit 


From d3e8ac1760878ee50eb37d16c5a8a9a5e847639e Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sat, 4 Jul 2020 16:32:29 +0530
Subject: new repo due to large gif

---
 .../Orthonormal Basis/file2_OrthonormalBasis.py    |  82 ----------
 .../file2_sum_of_projections_part1.py              | 133 ++++++++++++++++
 .../file3_sum_of_projections_part2.py              | 173 +++++++++++++++++++++
 3 files changed, 306 insertions(+), 82 deletions(-)
 delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py
 create mode 100755 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py
deleted file mode 100644
index 0a28f22..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py	
+++ /dev/null
@@ -1,82 +0,0 @@
-from manimlib.imports import *
-class OrthonormalBasis(GraphScene):
-    CONFIG = {
-        "x_min" : -6,
-        "x_max" : 6,
-        "y_min" : -4,
-        "y_max" : 4,
-        "graph_origin" : ORIGIN ,
-}
-
-    def construct(self):
-        self.setup_axes(animate=True)
-
-        XTD = self.x_axis_width/(self.x_max-self.x_min)
-        YTD = self.y_axis_height/(self.y_max-self.y_min)
-
-        arrow1 = Arrow(start = ORIGIN,end = 0.707*YTD*UP+0.707*XTD*RIGHT)
-        arrow1.scale(2.25)
-        arrow1.set_color(DARK_BLUE)
-
-        arrow2 = Arrow(start = ORIGIN,end = 0.707*YTD*UP+0.707*XTD*LEFT)
-        arrow2.scale(2.25)
-        arrow2.set_color(DARK_BLUE)
-
-        square = Polygon(UP*0.4*YTD,0.2*(YTD*UP+XTD*RIGHT),ORIGIN,0.2*(YTD*UP+XTD*LEFT))
-        square.set_color(DARK_BLUE)
-        self.play(ShowCreation(arrow2), ShowCreation(arrow1), ShowCreation(square))
-
-        ortho = TextMobject("Orthonormal Vectors")
-        ortho.scale(0.75)
-        ortho.move_to(DOWN+3*RIGHT)
-        self.play(Write(ortho))
-        self.wait()
-        self.play(FadeOut(ortho))
-
-        arrow3 = Arrow(start = ORIGIN,end = YTD*3*UP+XTD*LEFT)
-        arrow3.scale(1.25)
-        arrow3.set_color(GOLD_E)
-        self.play(ShowCreation(arrow3))
-
-        arrow4 = Arrow(start = ORIGIN,end = YTD*UP+XTD*RIGHT)
-        arrow4.scale(1.8)
-        arrow4.set_color(GOLD_A)
-        
-        arrow5 = Arrow(start = ORIGIN,end = 2*YTD*UP-2*XTD*RIGHT)
-        arrow5.scale(1.3)
-        arrow5.set_color(GOLD_A)
-        
-        self.play(ShowCreation(arrow5), ShowCreation(arrow4))
-        
-        self.wait()
-
-        self.play(FadeOut(arrow1), FadeOut(arrow2), FadeOut(square))
-
-        self.wait()
-
-        text1 = TextMobject(r"$<v,v_1> v_1$")
-        text1.move_to(UP+2*RIGHT)
-        text1.scale(0.75)
-        text2 = TextMobject(r"$<v,v_2> v_2$")
-        text2.move_to(UP+3*LEFT)
-        text2.scale(0.75)
-        
-        text3 = TextMobject("v")
-        text3.move_to(YTD*3.5*UP+XTD*1.5*LEFT)
-
-        self.play(Write(text1), Write(text2), Write(text3))
-        self.wait()
-
-        line1 = DashedLine(start = YTD*UP+XTD*RIGHT, end = YTD*3*UP+XTD*1*LEFT)
-        line2 = DashedLine(start = YTD*2*UP+XTD*2*LEFT, end = YTD*3*UP+XTD*1*LEFT)
-        self.play(ShowCreation(line1),ShowCreation(line2))
-
-        self.wait()
-        
-        text = TextMobject(r"$v$ is the sum of projections","on the orthonormal vectors")
-        text[0].move_to(DOWN+3.2*RIGHT)
-        text[1].move_to(1.5*DOWN+3.2*RIGHT)
-        self.play(Write(text))
-        self.wait(2)
-        self.play(FadeOut(arrow3), FadeOut(arrow4), FadeOut(arrow5), FadeOut(text1), FadeOut(text2), FadeOut(text3), FadeOut(self.axes), FadeOut(line1), FadeOut(line2))
-        self.play(FadeOut(text))
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py
new file mode 100755
index 0000000..81a0888
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py	
@@ -0,0 +1,133 @@
+from manimlib.imports import *
+class LinearTrans(LinearTransformationScene):
+    CONFIG = {
+    "show_basis_vectors": True,
+    "basis_vector_stroke_width": 1,
+    "leave_ghost_vectors": False,
+    "show_coordinates": True,
+    }
+    
+    def construct(self):
+
+        self.setup()
+
+        matrix = [[0.6,-0.8],[0.8,0.6]]
+        self.apply_matrix(matrix)
+
+        self.wait(2)
+        orthonormal = TextMobject(r"These are 2 orthonormal vectors($v_1$ and $v_2$)")
+        orthonormal.scale(0.7)
+        orthonormal.move_to(DOWN+LEFT*3.5)
+        orthonormal.add_background_rectangle()
+        v1 = TextMobject(r"$v_1$")
+        v1.scale(0.75)
+        v1.set_color(X_COLOR)
+        v1.move_to(0.75*UP+RIGHT)
+        v1.add_background_rectangle()
+        v2 = TextMobject(r"$v_2$")
+        v2.scale(0.75)
+        v2.set_color(Y_COLOR)
+        v2.move_to(0.75*UP+LEFT*1.25)
+        v2.add_background_rectangle()
+        self.play(Write(orthonormal))
+        self.play(Write(v1),Write(v2))
+        self.wait()
+        self.play(FadeOut(orthonormal), FadeOut(v1), FadeOut(v2))
+        
+        arrow = Arrow(start = ORIGIN,end = 3*RIGHT+UP)
+        arrow.scale(1.2)
+        arrow.set_color(BLUE)
+        arrow.apply_matrix(matrix)
+        text3 = TextMobject("v")
+        text3.move_to(3.2*UP+1.2*RIGHT)
+        text3.add_background_rectangle()
+        self.play(ShowCreation(arrow),Write(text3))
+        self.wait()
+        v_cor = TextMobject("(1,3)")
+        v_cor.move_to(3.2*UP+1.3*RIGHT)
+        v_cor.set_color(BLUE)
+        v_cor.scale(0.75)
+        v_cor.add_background_rectangle()
+        self.play(Transform(text3,v_cor))
+
+        line1 = DashedLine(start = 1*UP+3*RIGHT, end = 3*RIGHT)
+        line2 = DashedLine(start = 1*UP+3*RIGHT, end = UP)
+        line1.apply_matrix(matrix)
+        line2.apply_matrix(matrix)
+        self.play(ShowCreation(line1),ShowCreation(line2),run_time = 2)
+        
+        v1 = Arrow(start = ORIGIN,end = 3*RIGHT+UP)
+        v1.scale(1.2)
+        v1.set_color(BLUE)
+        v1.apply_matrix(matrix)
+        arrow1 = Arrow(start = ORIGIN,end = 3*RIGHT)
+        arrow1.scale(1.2)
+        arrow1.set_color("#6B8E23")
+        arrow1.apply_matrix(matrix)
+        self.play(Transform(v1,arrow1))
+        v1_cor = TextMobject(r"$<v,v_1> v_1$")
+        v1_cor.move_to(2.5*UP+3*RIGHT)
+        v1_cor.scale(0.75)
+        v1_cor.add_background_rectangle()
+        self.play(Write(v1_cor))
+        self.wait(0.5)
+        text1 = TextMobject(r"(1.8,2.4)")
+        text1.move_to(2.1*UP+2.5*RIGHT)
+        text1.scale(0.75)
+        text1.set_color("#6B8E23")
+        text1.add_background_rectangle()
+        self.play(Transform(v1_cor,text1))
+
+        v2 = Arrow(start = ORIGIN,end = 3*RIGHT+UP)
+        v2.scale(1.2)
+        v2.set_color("#8b0000")
+        v2.apply_matrix(matrix)
+        arrow2 = Arrow(start = ORIGIN,end = UP)
+        arrow2.scale(2.1)
+        arrow2.set_color("#8b0000")
+        arrow2.apply_matrix(matrix)
+        self.wait(0.5)
+        self.play(Transform(v2,arrow2))
+        self.wait(0.5)
+        v2_cor = TextMobject(r"$<v,v_2> v_2$")
+        v2_cor.move_to(0.75*UP+2.5*LEFT)
+        v2_cor.scale(0.75)
+        v2_cor.add_background_rectangle()
+        self.play(Write(v2_cor))
+        self.wait(0.5)
+        text2 = TextMobject(r"(-0.8,0.6)")
+        text2.move_to(0.75*UP+1.75*LEFT)
+        text2.scale(0.75)
+        text2.set_color("#8b0000")
+        text2.add_background_rectangle()
+        self.play(Transform(v2_cor,text2))
+
+        self.wait()
+
+        self.play(ApplyMethod(v2.move_to,1.4*RIGHT+2.7*UP),FadeOut(v1_cor),FadeOut(v2_cor),FadeOut(v_cor))
+
+        self.wait()
+
+        ending = TextMobject(r"$v = <v,v_1> v_1 + <v,v_2> v_2$")
+        ending.scale(0.7)
+        ending.move_to(DOWN)
+        ending.add_background_rectangle()
+        self.play(Write(ending))
+        self.wait()
+        self.play(FadeOut(ending))
+        
+        ending = TextMobject(r"$\left[ \begin{array} {c} 1\\ 3 \end{array}\right] = \left[ \begin{array} {c}1.8 \\ 2.4 \end{array}\right] + \left[ \begin{array} {c} -0.8\\ 0.6 \end{array}\right]$")
+        ending.scale(0.7)
+        ending.move_to(DOWN)
+        ending.add_background_rectangle()
+        self.play(Write(ending))
+        self.wait()
+        self.play(FadeOut(ending))
+
+        ending = TextMobject(r"$v$ is the sum of projections on the orthonormal vectors")
+        ending.scale(0.7)
+        ending.move_to(DOWN)
+        ending.add_background_rectangle()
+        self.play(Write(ending))
+        self.wait()
+        self.play(FadeOut(ending))
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py
new file mode 100644
index 0000000..9d25192
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py	
@@ -0,0 +1,173 @@
+from manimlib.imports import *
+class ThreeDExplanation(ThreeDScene):
+    
+    def construct(self):
+
+        text = TextMobject("Let us consider the example discussed above again. These are the things we know:-")
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*UP)
+        self.play(Write(text))
+        self.wait(2)
+        basis = TextMobject(r"Set of Orthonormal Basis - $\left(\begin{array}{c}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}\frac{-1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}0\\0\\1\end{array}\right)$")
+        basis.scale(0.75)
+        basis.move_to(UP*1.5)
+        self.play(Write(basis))
+        v = TextMobject(r"$v_1$",r"$v_2$",r"$v_3$")
+        v[0].move_to(UP*0.5+RIGHT*0.75)
+        v[1].move_to(UP*0.5+RIGHT*2.5)
+        v[2].move_to(UP*0.5+RIGHT*4)
+        eq = TextMobject(r"$v = \left(\begin{array}{c}3\\4\\5\end{array}\right)$")
+        eq1 = TextMobject(r"$<v,v_1> = \frac{3}{\sqrt{2}} + \frac{4}{\sqrt{2}} + 0 = \frac{7}{\sqrt{2}}$")
+        eq2 = TextMobject(r"$<v,v_2> = \frac{-3}{\sqrt{2}} + \frac{4}{\sqrt{2}} + 0 =\frac{1}{\sqrt{2}}$")
+        eq3 = TextMobject(r"$<v,v_3> =  0 + 0 + 5 =5$")
+        eq.move_to(4*LEFT+DOWN)
+        eq1.move_to(0.5*DOWN+2*RIGHT)
+        eq2.move_to(1.5*DOWN+2*RIGHT)
+        eq3.move_to(2.5*DOWN+2*RIGHT)
+        self.play(Write(v))
+        self.play(Write(eq))
+        self.play(Write(eq1))
+        self.play(Write(eq2))
+        self.play(Write(eq3))
+        self.wait()
+        self.play(FadeOut(text), FadeOut(basis), FadeOut(eq), FadeOut(v), FadeOut(eq1), FadeOut(eq2), FadeOut(eq3))
+        self.wait()
+        
+        text = TextMobject("These are the 3 mutually orthonormal basis of the set(", r"$v_1$, ", r"$v_2$, ", r"$v_3$",")")
+        text[1].set_color(DARK_BLUE)
+        text[2].set_color(RED)
+        text[3].set_color(YELLOW)
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*DOWN)
+        self.play(Write(text))
+        self.wait()
+
+        axes = ThreeDAxes(x_min = -9,x_max=9,y_min=-9,y_max=9,z_min=-9,z_max=9)
+        self.play(ShowCreation(axes))
+        self.move_camera(distance = 100, phi=30*DEGREES,theta=45*DEGREES,run_time=3)
+        self.begin_ambient_camera_rotation(rate=0.3)
+
+        dashedline1 = DashedLine(start = -12*(UP+RIGHT), end = 12*(UP+RIGHT))
+        dashedline2 = DashedLine(start = -12*(UP+LEFT), end = 12*(UP+LEFT))
+        dashedline3 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = 3.5*UP+3.5*RIGHT)
+        dashedline4 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = 0.5*UP+0.5*LEFT)
+        dashedline5 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = [0,0,5])
+
+        self.play(ShowCreation(dashedline1), ShowCreation(dashedline2))
+
+        line1 = Line(start = ORIGIN,end = 0.707*RIGHT + 0.707*UP)
+        line1.set_color(DARK_BLUE)
+        tip1 = Polygon(0.707*RIGHT + 0.707*UP, 0.707*RIGHT + 0.607*UP, 0.607*RIGHT + 0.707*UP)
+        tip1.set_opacity(1)
+        tip1.set_fill(DARK_BLUE)
+        tip1.set_color(DARK_BLUE)
+        self.play(ShowCreation(line1), ShowCreation(tip1))
+
+        line2 = Line(start = ORIGIN,end = 0.707*LEFT + 0.707*UP)
+        line2.set_color(RED)
+        tip2 = Polygon(0.707*LEFT + 0.707*UP, 0.707*LEFT + 0.607*UP, 0.607*LEFT + 0.707*UP)
+        tip2.set_opacity(1)
+        tip2.set_fill(RED)
+        tip2.set_color(RED)
+
+        self.play(ShowCreation(line2), ShowCreation(tip2))
+
+        line3 = Line(start = ORIGIN,end = [0,0,1])
+        line3.set_color(YELLOW)
+        tip3 = Polygon([0,0,1],[0,0,0.8]-0.2*RIGHT,[0,0,0.8]-0.2*LEFT)
+        tip3.set_opacity(1)
+        tip3.set_fill(YELLOW)
+        tip3.set_color(YELLOW)
+        self.play(ShowCreation(line3), ShowCreation(tip3))
+        self.wait()
+
+        self.play(FadeOut(text))
+
+        text = TextMobject("Take the projection of ", r"$v$", " on the mutually orthonormal vectors")
+        text[1].set_color(GOLD_E)
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*DOWN)
+        self.play(Write(text))
+        self.wait(2)
+        
+        a_line = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5])
+        a_line.set_color(GOLD_E)
+        a_tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT)
+        a_tip.set_opacity(1)
+        a_tip.set_fill(GOLD_E)
+        a_tip.set_color(GOLD_E)
+
+        self.play(ShowCreation(a_line), ShowCreation(a_tip))
+        self.wait(9)
+        self.play(ShowCreation(dashedline3),ShowCreation(dashedline4),ShowCreation(dashedline5))
+        self.wait(6)
+
+        pv1 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5])
+        pv1.set_color(GOLD_E)
+        pv1tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT)
+        pv1tip.set_opacity(1)
+        pv1tip.set_fill(GOLD_E)
+        pv1tip.set_color(GOLD_E)
+
+        v1_p = Line(start = ORIGIN,end = 3.5*RIGHT + 3.5*UP)
+        v1_p.set_color(BLUE_E)
+        v1_p_tip = Polygon(3.5*RIGHT + 3.5*UP, 3.5*RIGHT + 3.4*UP, 3.4*RIGHT + 3.5*UP)
+        v1_p_tip.set_opacity(1)
+        v1_p_tip.set_fill(BLUE_E)
+        v1_p_tip.set_color(BLUE_E)
+
+        pv2 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5])
+        pv2.set_color(GOLD_E)
+        pv2tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT)
+        pv2tip.set_opacity(1)
+        pv2tip.set_fill(GOLD_E)
+        pv2tip.set_color(GOLD_E)
+
+        v2_p = Line(start = ORIGIN,end = 0.5*LEFT + 0.5*UP)
+        v2_p.set_color(RED_E)
+        v2_p_tip = Polygon(0.5*LEFT + 0.5*UP, 0.5*LEFT + 0.4*UP, 0.4*LEFT + 0.5*UP)
+        v2_p_tip.set_opacity(1)
+        v2_p_tip.set_fill(RED_E)
+        v2_p_tip.set_color(RED_E)
+
+        pv3 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5])
+        pv3.set_color(GOLD_E)
+        pv3tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT)
+        pv3tip.set_opacity(1)
+        pv3tip.set_fill(GOLD_E)
+        pv3tip.set_color(GOLD_E)
+
+        v3_p = Line(start = ORIGIN,end = [0,0,5])
+        v3_p.set_color(YELLOW_E)
+        v3_p_tip = Polygon([0,0,5],[0,0,4.8]+0.2*RIGHT,[0,0,4.8]+0.2*LEFT)
+        v3_p_tip.set_opacity(1)
+        v3_p_tip.set_fill(YELLOW_E)
+        v3_p_tip.set_color(YELLOW_E)
+
+        self.stop_ambient_camera_rotation()
+        self.play(Transform(pv1,v1_p), Transform(pv1tip,v1_p_tip), Transform(pv2,v2_p), Transform(pv2tip,v2_p_tip), Transform(pv3,v3_p), Transform(pv3tip,v3_p_tip))
+        self.play(FadeOut(dashedline1),
+        FadeOut(dashedline2),
+        FadeOut(dashedline3),
+        FadeOut(dashedline4),
+        FadeOut(dashedline5),
+        FadeOut(line1),
+        FadeOut(tip1),
+        FadeOut(line2),
+        FadeOut(tip2),
+        FadeOut(line3),
+        FadeOut(tip3),
+        FadeOut(text))
+
+        text = TextMobject(r"$v$ is the sum of projections on the orthonormal vectors")
+        text.set_color(GOLD_E)
+        text.scale(0.75)
+        self.add_fixed_in_frame_mobjects(text)
+        text.move_to(3*DOWN)
+        self.play(Write(text), ApplyMethod(pv2.move_to,(3.5*RIGHT + 3.5*UP+3*RIGHT+4*UP)/2), ApplyMethod(pv2tip.move_to,(3.1*RIGHT + 3.9*UP)))
+        self.play(ApplyMethod(pv3.move_to,3*RIGHT + 4*UP + [0,0,2.5]), ApplyMethod(pv3tip.move_to,(3*RIGHT + 4*UP + [0,0,4.8])))
+
+        self.wait(3)
\ No newline at end of file
-- 
cgit 


From ba43051d6bac9074939a10e44e99935cad80d7c3 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 11:07:04 +0530
Subject: Animation In Linear Transformation

---
 .../file_before_matrix.py                          | 191 +++++++++++++++++++++
 1 file changed, 191 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
new file mode 100644
index 0000000..85a2983
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
@@ -0,0 +1,191 @@
+from manimlib.imports import *
+
+class linear(GraphScene):
+
+    CONFIG = {
+    "x_min": -5,
+    "x_max": 5,
+    "y_min": -5,
+    "y_max": 5,
+    "graph_origin": ORIGIN+RIGHT,
+    "x_labeled_nums": list(range(-5, 6)),
+    "y_labeled_nums": list(range(-5, 6)),
+    "x_axis_width": 7,
+    "y_axis_height": 7,
+    }
+
+    def construct(self):
+        
+        XTD = self.x_axis_width/(self.x_max- self.x_min)
+        YTD = self.y_axis_height/(self.y_max- self.y_min)
+
+        self.setup_axes(animate = True)
+        heading = TextMobject(r"$T(x,y) = T(x+2y,x-y)$")
+        heading.move_to(UP*3+LEFT*4)
+        self.play(Write(heading))
+        self.wait()
+
+        before = TextMobject("Before Linear Transformation")
+        before.set_color(DARK_BLUE)
+        before.move_to(3*UP+4*RIGHT)
+        before.scale(0.75)
+        dot1 = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP)
+        dot2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+1*YTD*UP)
+        dot1.set_color(DARK_BLUE)
+        dot2.set_color(DARK_BLUE)
+        p1 = TextMobject(r"$P_1$")
+        p1.set_color(DARK_BLUE)
+        p1.move_to(self.graph_origin+1*XTD*RIGHT+2*YTD*UP)
+        p2 = TextMobject(r"$P_2$")
+        p2.set_color(DARK_BLUE)
+        p2.move_to(self.graph_origin+2*XTD*RIGHT+2*YTD*UP)
+
+        after = TextMobject("After applying Linear Transformation")
+        after.set_color(RED)
+        after.move_to(3*UP+4.5*RIGHT)
+        after.scale(0.75)
+        dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP)
+        dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP)
+        dot3.set_color(RED)
+        dot4.set_color(RED)
+        p3 = TextMobject(r"$P_3$")
+        p3.set_color(RED)
+        p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP)
+        p4 = TextMobject(r"$P_4$")
+        p4.set_color(RED)
+        p4.move_to(self.graph_origin+4*XTD*RIGHT+2*YTD*UP)
+
+        tp1 = TextMobject(r"$T(P_1) = P_3$")
+        tp1.set_color(RED)
+        tp1.move_to(DOWN+4*LEFT)
+        tp2 = TextMobject(r"$T(P_2) = P_4$")
+        tp2.set_color(RED)
+        tp2.move_to(2*DOWN+4*LEFT)
+
+        self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2))
+        self.wait(3)
+        self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3), Write(tp1), Write(tp2))
+        self.wait(3)
+
+
+class withgrid(LinearTransformationScene):
+    def construct(self):
+
+        heading = TextMobject(r"$T(x,y) = (x+2y,x-y)$")
+        heading.move_to(UP*2.5+LEFT*4)
+        self.play(Write(heading))
+        self.wait()
+
+        before = TextMobject("Before Linear Transformation")
+        before.set_color(DARK_BLUE)
+        before.move_to(3.5*UP+4*RIGHT)
+        before.scale(0.75)
+        dot1 = Dot().shift(1*RIGHT+1*UP)
+        dot2 = Dot().shift(2*RIGHT+1*UP)
+        dot1.set_color(DARK_BLUE)
+        dot2.set_color(DARK_BLUE)
+        
+        dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP)
+        dot2_c = Dot(radius = 0.05).shift(2*RIGHT+1*UP)
+        dot1_c.set_color(RED)
+        dot2_c.set_color(RED)
+        self.add_transformable_mobject(dot1_c)
+        self.add_transformable_mobject(dot2_c)
+        
+        p1 = TextMobject(r"$P_1$")
+        p1.set_color(DARK_BLUE)
+        p1.move_to(1*RIGHT+1.5*UP)
+        p2 = TextMobject(r"$P_2$")
+        p2.set_color(DARK_BLUE)
+        p2.move_to(2*RIGHT+1.5*UP)
+
+        after = TextMobject("After applying Linear Transformation")
+        after.set_color(RED)
+        after.move_to(3.5*UP+3.5*RIGHT)
+        after.scale(0.75)
+        dot3 = Dot().shift(3*RIGHT+0*UP)
+        dot4 = Dot().shift(4*RIGHT+1*UP)
+        dot3.set_color(RED)
+        dot4.set_color(RED)
+        p3 = TextMobject(r"$P_3$")
+        p3.set_color(RED)
+        p3.move_to(3*RIGHT-0.6*UP)
+        p4 = TextMobject(r"$P_4$")
+        p4.set_color(RED)
+        p4.move_to(4*RIGHT+1.5*UP)
+
+        self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2))
+        self.wait(3)
+        matrix = [[1,2],[1,-1]]
+        self.apply_matrix(matrix)
+        self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3))
+        self.play(Transform(before,after))
+        self.wait(3)
+
+        ending = TextMobject(r"$T(\left[\begin{array}{c}x \\ y\end{array}\right]) = \left[\begin{array}{c} x+2y \\ x-y\end{array}\right]$")
+        ending.move_to(UP*2+LEFT*4)
+        self.play(Transform(heading,ending))
+        self.wait()
+
+from manimlib.imports import *
+class ThreeDExplanation(ThreeDScene):
+    
+    def construct(self):
+
+        text = TextMobject(r"$T(x,y) = (x+y,x-y,x+2y)$")
+        text.scale(0.75)
+        text.move_to(UP*2.5+LEFT*4)
+        self.add_fixed_in_frame_mobjects(text)
+        self.play(Write(text))
+        self.wait()
+
+        before = TextMobject("Before Linear Transformation")
+        self.add_fixed_in_frame_mobjects(before)
+        before.set_color(GREEN_E)
+        before.move_to(3.5*UP+4*RIGHT)
+        before.scale(0.75)
+        dot1 = Dot().shift(1*RIGHT+1*UP)
+        dot2 = Dot().shift(2*RIGHT+1*UP)
+        dot3 = Dot().shift(1*RIGHT+1*UP)
+        dot1.set_color(GREEN_E)
+        dot2.set_color(GREEN_E)
+        dot3.set_color(GREEN_E)
+        self.play(ShowCreation(before))
+
+        dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP)
+        dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP)
+        dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP)
+        dot1_c.set_color(RED)
+        dot2_c.set_color(RED)
+        dot3_c.set_color(RED)
+        
+        axes = ThreeDAxes(x_min = -7,x_max=7,y_min=-4,y_max=4,z_min=-4,z_max=4)
+        self.play(ShowCreation(axes))
+        self.move_camera(distance = 100, phi=30*DEGREES,theta=45*DEGREES,run_time=3)
+        
+        self.begin_ambient_camera_rotation(rate=0.3)
+        self.wait(1)
+        self.stop_ambient_camera_rotation()
+
+        plane = NumberPlane()
+        self.play(ShowCreation(dot1),ShowCreation(dot3),ShowCreation(dot2),ShowCreation(plane))
+        
+        self.play(FadeOut(before))
+        after = TextMobject("After applying Linear Transformation")
+        self.add_fixed_in_frame_mobjects(after)
+        after.set_color(RED)
+        after.move_to(3.5*UP+3.5*RIGHT)
+        after.scale(0.75)
+      
+        matrix = [[1,1],[1,-1],[2,1]]
+        self.play(FadeOut(dot1),FadeOut(dot2),FadeOut(dot3),ApplyMethod(plane.apply_matrix,matrix),ApplyMethod(dot1_c.apply_matrix,matrix),ApplyMethod(dot3_c.apply_matrix,matrix),ApplyMethod(dot2_c.apply_matrix,matrix))
+        self.begin_ambient_camera_rotation(rate=0.3)
+        self.wait(3)
+        self.stop_ambient_camera_rotation()
+
+        ending = TextMobject(r"$T(\left[\begin{array}{c}x \\ y\end{array}\right]) = \left[\begin{array}{c} x+y \\ x-y \\ x+2y \end{array}\right]$")
+        ending.scale(0.75)
+        ending.move_to(-UP*2+LEFT*4)
+        self.play(Transform(text,ending))
+        self.add_fixed_in_frame_mobjects(ending)
+        self.wait(9)
-- 
cgit 


From ad41877105cce82da726387083f4c63deb4f4f7c Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 11:54:11 +0530
Subject: video 1 of GSOP

---
 .../file_introduction.py                           | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py
new file mode 100644
index 0000000..ccd23c9
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py	
@@ -0,0 +1,33 @@
+from manimlib.imports import *
+
+class Orthonormal(Scene):
+    def construct(self):
+        Centre = DOWN
+        arrow_1 = Arrow(start = Centre+ORIGIN,end = Centre+1.414*(UP+RIGHT))
+        arrow_2 = Arrow(start = Centre+ORIGIN,end = Centre+2*UP)
+        arrow_1.scale(1.35)
+        arrow_2.scale(1.35)
+        text = TextMobject("This is a set of linearly independent vectors")
+        text.scale(0.75)
+        text.move_to(3*UP+3*LEFT)
+        text.set_color(PURPLE_E)
+        arrow_1.set_color(PURPLE_E)
+        arrow_2.set_color(PURPLE_E)
+        self.play(Write(text))
+        self.play(ShowCreation(arrow_1), ShowCreation(arrow_2))
+        self.wait(2)
+        text1 = TextMobject("After we apply Gram-Schmidt Orthogonalization Process to set of linearly independent vectors")
+        text1.scale(0.6)
+        text1.move_to(3*UP+2*LEFT)
+        text1.set_color(GREEN)
+        arrow_a = Arrow(start = Centre+ORIGIN,end = Centre+0.707*(UP+RIGHT))
+        arrow_a.set_color(GREEN)
+        arrow_a.scale(2)
+        self.play(Transform(text,text1))
+        self.wait(2)
+        self.play(Transform(arrow_1,arrow_a))
+        arrow_b = Arrow(start = Centre+ORIGIN,end = Centre+0.707*(UP+LEFT))
+        arrow_b.set_color(GREEN)
+        arrow_b.scale(2)
+        self.play(Transform(arrow_2,arrow_b))
+        self.wait(2)
\ No newline at end of file
-- 
cgit 


From 747f68c91279c9915382f0013ddc80fa67bd6d09 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 12:53:03 +0530
Subject: Video 2 on projections added

---
 .../file1_projections.py                                 | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py
index 814fa57..dd4b8d4 100755
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py	
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py	
@@ -23,10 +23,10 @@ class Projections(GraphScene):
         arrow_b.set_color(DARK_BLUE)
         self.play(ShowCreation(arrow_a), ShowCreation(arrow_b))
 
-        text = TextMobject(r"Let there be 2 vectors $a$ and $b$")
+        text = TextMobject(r"Consider 2 linearly independent vectors $a$ and $b$")
         text.set_color(DARK_BLUE)
-        text.scale(0.75)
-        text.move_to(2*YTD*DOWN+4*XTD*LEFT)
+        text.scale(0.6)
+        text.move_to(3*YTD*UP+5*XTD*LEFT)
         text_a = TextMobject("a")
         text_a.move_to(0.4*YTD*DOWN+3*XTD*RIGHT)
         text_a.set_color(DARK_BLUE)
@@ -51,7 +51,7 @@ class Projections(GraphScene):
         self.play(FadeOut(text), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b))
         text = TextMobject(r"$p$ is the projection of $b$ on $a$")
         text.set_color(GOLD_E)
-        text.move_to(2*DOWN+3*LEFT)
+        text.move_to(3*UP+4*LEFT)
         text.scale(0.8)
         self.play(Write(text),Write(text_p))
         self.wait()
@@ -76,10 +76,4 @@ class Projections(GraphScene):
         self.play(Write(text))
         self.wait(2)
 
-        self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text))
-        
-        text = TextMobject(r"Therefore, unit vectors of $b-p$ and $a$ are orthonormal to each other")
-        text.scale(0.75)
-        self.play(Write(text))
-        self.wait(2)
-        self.play(FadeOut(text))
\ No newline at end of file
+        self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text))
\ No newline at end of file
-- 
cgit 


From 1697d2286a00b1bfdac00320a60c968ac5a45eaf Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 18:19:17 +0530
Subject: Video 3: For Algo of GSOP added

---
 .../file2_orthonormal.py                           | 207 ++++++++++++++++++---
 1 file changed, 183 insertions(+), 24 deletions(-)

diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py
index 640b8be..af51fc6 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py	
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py	
@@ -1,18 +1,153 @@
 from manimlib.imports import *
 
-from manimlib.imports import *
-
-class Orthogonal(ThreeDScene):
+class Algo(ThreeDScene):
     def construct(self):
 
-        text = TextMobject(r"These are two Orthogonal Basis $\alpha_{1}$ and $\alpha_{2}$")
+        axes = ThreeDAxes(x_min = -5,x_max=5,y_min=-3,y_max=3,z_min=-4,z_max=4)
+        self.play(ShowCreation(axes))
+
+        text = TextMobject(r"This is the vector $\beta_1(=\left[\begin{array}{c} 4\\0\\0 \end{array}\right])$")
+        text.set_color(GREEN)
+        text.scale(0.6)
+        text.move_to(3*UP+5*LEFT)
+        self.play(Write(text))
+
+        arrow_a = Arrow(start = ORIGIN, end = 4*RIGHT)
+        arrow_a.set_color(GREEN)
+        arrow_a.scale(1.15)
+        self.play(ShowCreation(arrow_a))
+
+        text_a = TextMobject(r"$\beta_1$")
+        text_a.move_to(0.4*DOWN+3*RIGHT)
+        text_a.set_color(GREEN)
+        text_a.scale(0.75)
+        self.play(Write(text_a))
+        self.wait()
+        self.play(FadeOut(text))
+
+        text = TextMobject(r"Normalize $\beta_1$ to get $\alpha_1$")
+        text.set_color(DARK_BLUE)
         text.scale(0.75)
+        text.move_to(3*UP+5*LEFT)
+        self.play(Write(text))
+
+        alpha_1 = Arrow(start = ORIGIN,end = RIGHT)
+        alpha_1.scale(1.9)
+        alpha_1.set_color(DARK_BLUE)
+        text_alpha_1 = TextMobject(r"$\alpha_1$")
+        text_alpha_1.move_to(0.4*DOWN+RIGHT)
+        text_alpha_1.set_color(DARK_BLUE)
+        text_alpha_1.scale(0.75)
+        self.play(Transform(text_a,text_alpha_1), Transform(arrow_a,alpha_1))
+        self.wait()
+        self.play(FadeOut(text))
+
+        text = TextMobject(r"Consider another vector $\beta_2(=\left[\begin{array}{c} 2\\2\\0 \end{array}\right])$")
+        text1 = TextMobject(r"which is linearly independent to $\beta_1$")
+        text.set_color(GREEN)
+        text1.set_color(GREEN)
+        text.scale(0.6)
+        text1.scale(0.6)
+        text.move_to(3*UP+4*LEFT)
+        text1.move_to(2*UP+4*LEFT)
+        self.play(Write(text))
+        self.play(Write(text1))
+
+        arrow_b = Arrow(start = ORIGIN, end = 2*UP+2*RIGHT)
+        arrow_b.scale(1.2)
+        arrow_b.set_color(GREEN)
+        text_b = TextMobject(r"$\beta_2$")
+        text_b.move_to(1.5*UP+RIGHT)
+        text_b.set_color(GREEN)
+        text_b.scale(0.75)
+ 
+        self.play(ShowCreation(arrow_b), Write(text_b))
+        self.wait()
+
+        arrow_b_copy = Arrow(start = ORIGIN, end = 2*UP+2*RIGHT)
+        arrow_b_copy.scale(1.2)
+
+        arrow_p = Arrow(start = ORIGIN, end = 2*RIGHT)
+        arrow_p.scale(1.35)
+        arrow_p.set_color(GOLD_E)
+
+        text_p = TextMobject("p")
+        text_p.move_to(0.25*DOWN+RIGHT)
+        text_p.set_color(GOLD_E)
+
+        self.play(FadeOut(text), FadeOut(text1), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b))
+        text = TextMobject(r"$p$ is the projection of $\beta_2$ on $\alpha_1$")
+        text.set_color(GOLD_E)
+        text.move_to(3*UP+4*LEFT)
+        text.scale(0.8)
+        self.play(Write(text),Write(text_p))
+        self.wait()
+        
+        self.play(FadeIn(text_b))
+
+        arrow_o = Arrow(start = 2*RIGHT, end = 2*UP+2*RIGHT)
+        arrow_o.scale(1.35)
+        arrow_o.set_color(PURPLE_E)
+
+        text_o = TextMobject(r"$\beta_2-p$")
+        text_o.move_to(UP+2.7*RIGHT)
+        text_o.scale(0.75)
+        text_o.set_color(PURPLE_E)
+
+        self.play(ShowCreation(arrow_o))
+        self.play(FadeOut(text),Write(text_o))
+        
+        text = TextMobject(r"$\beta_2-p$ is orthogonal to p")
+        text1 = TextMobject(r"(and hence orthogonal to $\alpha_1$ also)")
+        text.set_color(PURPLE_E)
+        text1.set_color(PURPLE_E)
+        text.scale(0.7)
+        text1.scale(0.7)
+        text.move_to(3*UP+4*LEFT)
+        text1.move_to(2.5*UP+4*LEFT)
+        self.play(Write(text))
+        self.play(Write(text1))
+        self.wait(2)
+
+        self.play(FadeOut(text_p), FadeIn(arrow_a), FadeOut(text), FadeOut(text1), FadeOut(arrow_b_copy), FadeOut(arrow_p), FadeOut(text_b), FadeOut(arrow_b))
+        self.play(ApplyMethod(arrow_o.move_to,UP), ApplyMethod(text_o.move_to,RIGHT+UP))
+
+        text = TextMobject(r"Now, Normalize $\beta_2-p$")
+        text.set_color(DARK_BLUE)
+        text.scale(0.6)
+        text.move_to(3*UP+4*LEFT)
+        self.play(Write(text))
+
+        alpha_2 = Arrow(start = ORIGIN,end = UP)
+        alpha_2.scale(1.9)
+        alpha_2.set_color(DARK_BLUE)
+        text_alpha_2 = TextMobject(r"$\alpha_2$")
+        text_alpha_2.move_to(0.4*LEFT+UP)
+        text_alpha_2.set_color(DARK_BLUE)
+        text_alpha_2.scale(0.75)
+        self.play(Transform(text_o,text_alpha_2), Transform(arrow_o,alpha_2), FadeIn(text_a))
+        self.wait()
+        self.play(FadeOut(text),FadeOut(text_a),FadeOut(text_o))
+
+        self.add(axes)
+        #############################################################################
+        axis = TextMobject(r"$\alpha_1$",r"$\alpha_2$",r"$\alpha_3$",r"$\beta_3$",r"$\alpha_3$",r"$\alpha_3$",r"$\alpha_3$",r"$\alpha_3$")
+        axis.scale(0.5)
+        axis[0].move_to(0.5*RIGHT+[0,0,-0.5])
+        axis[1].move_to(0.5*UP+[0,0,-0.5])
+        axis[2].move_to(np.array([0,0,0.5]))
+        axis[3].move_to(np.array([1,1,1.5]))
+        self.add_fixed_orientation_mobjects(axis[0])
+        self.add_fixed_orientation_mobjects(axis[1])
+        #############################################################################
+
+        text = TextMobject(r"These are the same two orthonormal vectors $\alpha_{1}$ and $\alpha_{2}$")
+        text.scale(0.6)
+        text.set_color(DARK_BLUE)
         self.add_fixed_in_frame_mobjects(text)
         text.move_to(3*(DOWN+RIGHT))
         self.play(Write(text))
 
-        axes = ThreeDAxes()
-        self.play(ShowCreation(axes))
         self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3)
         self.begin_ambient_camera_rotation(rate=0.3)
         
@@ -31,7 +166,7 @@ class Orthogonal(ThreeDScene):
         tip2.set_color(DARK_BLUE)
         arrow2.set_color(DARK_BLUE)
 
-        self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2))
+        self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), FadeOut(arrow_a), FadeOut(arrow_o))
         self.wait()
 
         a_line = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2])
@@ -50,9 +185,11 @@ class Orthogonal(ThreeDScene):
 
         self.play(FadeOut(text), ShowCreation(a_line), ShowCreation(a_tip), ShowCreation(a_line_c1), ShowCreation(a_tip_c1))
         
-        text = TextMobject(r"There is a vector $\beta_3$")
-        text.scale(0.75)
+        text = TextMobject(r"Now, we have a vector $\beta_3(=\left[\begin{array}{c} 2\\2\\2 \end{array}\right])$")
+        text.set_color(GOLD_E)
+        text.scale(0.7)
         self.add_fixed_in_frame_mobjects(text)
+        self.add_fixed_orientation_mobjects(axis[3])
         text.move_to(3*(DOWN+RIGHT))
         self.play(Write(text))
         self.wait()
@@ -69,7 +206,8 @@ class Orthogonal(ThreeDScene):
         self.play(Transform(a_line_c1,p_line1),Transform(a_tip_c1,p_tip1))
 
         text = TextMobject(r"Take projection of $\beta_3$ on $\alpha_1$")
-        text.scale(0.75)
+        text.scale(0.6)
+        text.set_color(GOLD_E)
         self.add_fixed_in_frame_mobjects(text)
         text.move_to(3*(DOWN+RIGHT))
         self.play(Write(text))
@@ -98,14 +236,15 @@ class Orthogonal(ThreeDScene):
         a_tip1_c1.set_color(GREEN_E)
 
         text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$)")
-        text.scale(0.75)
+        text.set_color(GREEN_E)
+        text.scale(0.6)
         self.add_fixed_in_frame_mobjects(text)
         text.move_to(3*(DOWN+RIGHT))
         self.play(Write(text))
         self.play(ShowCreation(o_line1), ShowCreation(o_tip1))
         self.wait(2)
         self.play(FadeOut(a_line_c1), FadeOut(a_tip_c1), 
-        FadeOut(a_line), FadeOut(a_tip),
+        FadeOut(a_line), FadeOut(a_tip), FadeOut(axis[3]),
         Transform(o_line1,a_line1), Transform(o_tip1,a_tip1))
 
         self.wait()
@@ -120,16 +259,17 @@ class Orthogonal(ThreeDScene):
         p_arrow2.set_color(GOLD_E)
 
         last_a = Line(start = 2*UP,end = [0,2,2])
-        last_a.set_color(GOLD_E)
+        last_a.set_color(PURPLE_E)
         last_a_tip = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT)
         last_a_tip.move_to([0,2,2])
         last_a_tip.set_opacity(1)
-        last_a_tip.set_fill(GOLD_E)
-        last_a_tip.set_color(GOLD_E)
+        last_a_tip.set_fill(PURPLE_E)
+        last_a_tip.set_color(PURPLE_E)
 
         self.wait()
         text = TextMobject(r"Take projection on $\alpha_2$")
-        text.scale(0.75)
+        text.scale(0.6)
+        text.set_color(GOLD_E)
         self.add_fixed_in_frame_mobjects(text)
         text.move_to(3*(DOWN+RIGHT))
         self.play(Write(text))
@@ -138,9 +278,10 @@ class Orthogonal(ThreeDScene):
         self.play(FadeOut(text))
 
         text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$)")
-        text.scale(0.75)
+        text.set_color(PURPLE_E)
+        text.scale(0.6)
         self.add_fixed_in_frame_mobjects(text)
-        text.move_to(3*DOWN+2*RIGHT)
+        text.move_to(3*DOWN+3.5*RIGHT)
         self.play(Write(text))
         self.play(ShowCreation(o_line1), ShowCreation(o_tip1))
         self.wait(2)
@@ -149,19 +290,26 @@ class Orthogonal(ThreeDScene):
         self.play(FadeOut(text))
 
         larrow3 = Line(start = ORIGIN,end = [0,0,2])
-        larrow3.set_color(GOLD_E)
+        larrow3.set_color(PURPLE_E)
         ltip3 = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT)
         ltip3.set_opacity(1)
-        ltip3.set_fill(GOLD_E)
-        ltip3.set_color(GOLD_E)
+        ltip3.set_fill(PURPLE_E)
+        ltip3.set_color(PURPLE_E)
         self.wait()
         self.play(FadeOut(o_line1), FadeOut(o_tip1), FadeOut(a_line1_c1), FadeOut(a_tip1_c1), Transform(last_a,larrow3), Transform(last_a_tip,ltip3))
         
-        text = TextMobject(r"Normalisation of the orthogonal vector")
-        text.scale(0.75)
+        text = TextMobject(r"Normalize, the vector")
+        text1 = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$")
+        text.set_color(PURPLE_E)
+        text1.set_color(PURPLE_E)
+        text.scale(0.6)
+        text1.scale(0.6)
         self.add_fixed_in_frame_mobjects(text)
-        text.move_to(3*DOWN+2*RIGHT)
+        self.add_fixed_in_frame_mobjects(text1)
+        text.move_to(3*DOWN+3*RIGHT)
+        text1.move_to(3.5*DOWN+3*RIGHT)
         self.play(Write(text))
+        self.play(Write(text1))
         
         arrow3 = Line(start = ORIGIN,end = [0,0,1])
         arrow3.set_color(DARK_BLUE)
@@ -170,5 +318,16 @@ class Orthogonal(ThreeDScene):
         tip3.set_fill(DARK_BLUE)
         tip3.set_color(DARK_BLUE)
         self.play(Transform(last_a,arrow3), Transform(last_a_tip,tip3))
+        self.add_fixed_orientation_mobjects(axis[2])
+
+        self.wait()
+        self.play(FadeOut(text),FadeOut(text1))
+
+        text = TextMobject(r"These are the three orthonormal vectors $\alpha_1, \alpha_2, \alpha_3$")
+        text.set_color(DARK_BLUE)
+        self.add_fixed_in_frame_mobjects(text)
+        text.scale(0.6)
+        text.move_to(3*DOWN+3.5*RIGHT)
+        self.play(Write(text))
 
         self.wait(3)
\ No newline at end of file
-- 
cgit 


From 7b7ae0deb322b097c5e5940f6b9789a641af205a Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 19:36:24 +0530
Subject: code for last video of GSOP added

---
 .../file3_Non_Standard_Basis.py                    | 51 ++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py
new file mode 100644
index 0000000..6410a2c
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py	
@@ -0,0 +1,51 @@
+from manimlib.imports import *
+
+class NSB(ThreeDScene):
+    def construct(self):
+
+        axes = ThreeDAxes(x_min = -4,x_max=4,y_min=-4,y_max=4,z_min=-4,z_max=4)
+        self.play(ShowCreation(axes))
+        self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3)
+        self.begin_ambient_camera_rotation(rate=0.5)
+
+        matrix = [[0.577,0.577,0.577],[-0.577,0.577,0.577],[0.577,-0.577,0.577]]
+
+        line1 = Line(start = ORIGIN,end = 1*RIGHT)
+        line1.set_color(DARK_BLUE)
+        tip1 = Polygon(RIGHT,0.9*RIGHT-0.1*DOWN,0.9*RIGHT-0.1*UP)
+        tip1.set_opacity(1)
+        tip1.set_fill(DARK_BLUE)
+        tip1.set_color(DARK_BLUE)
+
+        arrow2 = Line(start = ORIGIN,end = 1*UP)
+        arrow2.set_color(DARK_BLUE)
+        tip2 = Polygon(UP,0.9*UP-0.1*RIGHT,0.9*UP-0.1*LEFT)
+        tip2.set_opacity(1)
+        tip2.set_fill(DARK_BLUE)
+        tip2.set_color(DARK_BLUE)
+        arrow2.set_color(DARK_BLUE)
+        
+        arrow3 = Line(start = ORIGIN,end = [0,0,1])
+        arrow3.set_color(DARK_BLUE)
+        tip3 = Polygon([0,0,1],[0,0,0.9]-0.1*RIGHT,[0,0,0.9]-0.1*LEFT)
+        tip3.set_opacity(1)
+        tip3.set_fill(DARK_BLUE)
+        tip3.set_color(DARK_BLUE)
+
+        line1.apply_matrix(matrix)
+        tip1.apply_matrix(matrix)
+        arrow2.apply_matrix(matrix)
+        tip2.apply_matrix(matrix)
+        arrow3.apply_matrix(matrix)
+        tip3.apply_matrix(matrix)
+
+        self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3))
+        
+        text = TextMobject(r"This is also a set of Orthonormal Vectors")
+        text.set_color(DARK_BLUE)
+        self.add_fixed_in_frame_mobjects(text)
+        text.scale(0.6)
+        text.move_to(3*DOWN+3.5*RIGHT)
+        self.play(Write(text))
+
+        self.wait(7)
\ No newline at end of file
-- 
cgit 


From f818aa6face482b21a46b2da9a32b27c212f5d4c Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Sun, 5 Jul 2020 21:21:57 +0530
Subject: modification to an animation

---
 .../file_before_matrix.py                          | 85 +++++++++++++++-------
 1 file changed, 60 insertions(+), 25 deletions(-)
 mode change 100644 => 100755 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
old mode 100644
new mode 100755
index 85a2983..e0476a3
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
@@ -1,13 +1,13 @@
 from manimlib.imports import *
 
-class linear(GraphScene):
+class Linear(GraphScene):
 
     CONFIG = {
     "x_min": -5,
     "x_max": 5,
     "y_min": -5,
     "y_max": 5,
-    "graph_origin": ORIGIN+RIGHT,
+    "graph_origin": ORIGIN,
     "x_labeled_nums": list(range(-5, 6)),
     "y_labeled_nums": list(range(-5, 6)),
     "x_axis_width": 7,
@@ -22,6 +22,7 @@ class linear(GraphScene):
         self.setup_axes(animate = True)
         heading = TextMobject(r"$T(x,y) = T(x+2y,x-y)$")
         heading.move_to(UP*3+LEFT*4)
+        heading.scale(0.7)
         self.play(Write(heading))
         self.wait()
 
@@ -34,44 +35,42 @@ class linear(GraphScene):
         dot1.set_color(DARK_BLUE)
         dot2.set_color(DARK_BLUE)
         p1 = TextMobject(r"$P_1$")
+        p1.scale(0.75)
         p1.set_color(DARK_BLUE)
-        p1.move_to(self.graph_origin+1*XTD*RIGHT+2*YTD*UP)
+        p1.move_to(self.graph_origin+1*XTD*RIGHT+1.5*YTD*UP)
         p2 = TextMobject(r"$P_2$")
         p2.set_color(DARK_BLUE)
-        p2.move_to(self.graph_origin+2*XTD*RIGHT+2*YTD*UP)
+        p2.scale(0.75)
+        p2.move_to(self.graph_origin+2*XTD*RIGHT+1.5*YTD*UP)
 
         after = TextMobject("After applying Linear Transformation")
         after.set_color(RED)
         after.move_to(3*UP+4.5*RIGHT)
-        after.scale(0.75)
+        after.scale(0.5)
         dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP)
         dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP)
         dot3.set_color(RED)
         dot4.set_color(RED)
-        p3 = TextMobject(r"$P_3$")
+        p3 = TextMobject(r"$T(P_1)$")
+        p3.scale(0.7)
         p3.set_color(RED)
         p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP)
-        p4 = TextMobject(r"$P_4$")
+        p4 = TextMobject(r"$T(P_2)$")
+        p4.scale(0.7)
         p4.set_color(RED)
-        p4.move_to(self.graph_origin+4*XTD*RIGHT+2*YTD*UP)
-
-        tp1 = TextMobject(r"$T(P_1) = P_3$")
-        tp1.set_color(RED)
-        tp1.move_to(DOWN+4*LEFT)
-        tp2 = TextMobject(r"$T(P_2) = P_4$")
-        tp2.set_color(RED)
-        tp2.move_to(2*DOWN+4*LEFT)
+        p4.move_to(self.graph_origin+4*XTD*RIGHT+1.5*YTD*UP)
 
         self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2))
         self.wait(3)
-        self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3), Write(tp1), Write(tp2))
+        self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3))
         self.wait(3)
 
 
 class withgrid(LinearTransformationScene):
     def construct(self):
 
-        heading = TextMobject(r"$T(x,y) = (x+2y,x-y)$")
+        heading = TextMobject(r"Now, Imagine this happening for all the vectors")
+        heading.scale(0.5)
         heading.move_to(UP*2.5+LEFT*4)
         self.play(Write(heading))
         self.wait()
@@ -93,9 +92,11 @@ class withgrid(LinearTransformationScene):
         self.add_transformable_mobject(dot2_c)
         
         p1 = TextMobject(r"$P_1$")
+        p1.scale(0.75)
         p1.set_color(DARK_BLUE)
         p1.move_to(1*RIGHT+1.5*UP)
         p2 = TextMobject(r"$P_2$")
+        p2.scale(0.75)
         p2.set_color(DARK_BLUE)
         p2.move_to(2*RIGHT+1.5*UP)
 
@@ -107,10 +108,12 @@ class withgrid(LinearTransformationScene):
         dot4 = Dot().shift(4*RIGHT+1*UP)
         dot3.set_color(RED)
         dot4.set_color(RED)
-        p3 = TextMobject(r"$P_3$")
+        p3 = TextMobject(r"$T(P_1)$")
+        p3.scale(0.75)
         p3.set_color(RED)
         p3.move_to(3*RIGHT-0.6*UP)
-        p4 = TextMobject(r"$P_4$")
+        p4 = TextMobject(r"$T(P_2)$")
+        p4.scale(0.75)
         p4.set_color(RED)
         p4.move_to(4*RIGHT+1.5*UP)
 
@@ -118,6 +121,7 @@ class withgrid(LinearTransformationScene):
         self.wait(3)
         matrix = [[1,2],[1,-1]]
         self.apply_matrix(matrix)
+        self.play(FadeOut(dot1),FadeOut(dot2))
         self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3))
         self.play(Transform(before,after))
         self.wait(3)
@@ -141,17 +145,28 @@ class ThreeDExplanation(ThreeDScene):
 
         before = TextMobject("Before Linear Transformation")
         self.add_fixed_in_frame_mobjects(before)
-        before.set_color(GREEN_E)
+        before.set_color(YELLOW)
         before.move_to(3.5*UP+4*RIGHT)
         before.scale(0.75)
+
+        p1 = TextMobject(r"$P_1$")
+        p2 = TextMobject(r"$P_2$")
+        p3 = TextMobject(r"$P_3$")
+        p1.scale(0.75)
+        p2.scale(0.75)
+        p3.scale(0.75)
         dot1 = Dot().shift(1*RIGHT+1*UP)
         dot2 = Dot().shift(2*RIGHT+1*UP)
-        dot3 = Dot().shift(1*RIGHT+1*UP)
-        dot1.set_color(GREEN_E)
-        dot2.set_color(GREEN_E)
-        dot3.set_color(GREEN_E)
+        dot3 = Dot().shift(1*RIGHT+1*DOWN)
+        dot1.set_color(YELLOW)
+        dot2.set_color(YELLOW)
+        dot3.set_color(YELLOW)
         self.play(ShowCreation(before))
-
+        
+        p1.move_to(1*RIGHT+1*UP+[0,0,0.5])
+        p2.move_to(2*RIGHT+1*UP+[0,0,0.5])
+        p3.move_to(1*RIGHT-1*UP+[0,0,0.5])
+        
         dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP)
         dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP)
         dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP)
@@ -168,6 +183,9 @@ class ThreeDExplanation(ThreeDScene):
         self.stop_ambient_camera_rotation()
 
         plane = NumberPlane()
+        self.add_fixed_orientation_mobjects(p1)
+        self.add_fixed_orientation_mobjects(p2)
+        self.add_fixed_orientation_mobjects(p3)
         self.play(ShowCreation(dot1),ShowCreation(dot3),ShowCreation(dot2),ShowCreation(plane))
         
         self.play(FadeOut(before))
@@ -177,8 +195,23 @@ class ThreeDExplanation(ThreeDScene):
         after.move_to(3.5*UP+3.5*RIGHT)
         after.scale(0.75)
       
+        self.play(FadeOut(p1),FadeOut(p2),FadeOut(p3))
         matrix = [[1,1],[1,-1],[2,1]]
         self.play(FadeOut(dot1),FadeOut(dot2),FadeOut(dot3),ApplyMethod(plane.apply_matrix,matrix),ApplyMethod(dot1_c.apply_matrix,matrix),ApplyMethod(dot3_c.apply_matrix,matrix),ApplyMethod(dot2_c.apply_matrix,matrix))
+        
+        p4 = TextMobject(r"$T(P_1)$")
+        p5 = TextMobject(r"$T(P_2)$")
+        p6 = TextMobject(r"$T(P_3)$")
+        p4.scale(0.75)
+        p5.scale(0.75)
+        p6.scale(0.75)
+        p4.move_to(2*RIGHT+0*UP+[0,0,3.5])
+        p5.move_to(2*RIGHT-2*UP+[0,0,2.5])
+        p6.move_to(0*RIGHT+2*UP+[0,0,1.5])
+        self.add_fixed_orientation_mobjects(p5)
+        self.add_fixed_orientation_mobjects(p4)
+        self.add_fixed_orientation_mobjects(p6)
+        
         self.begin_ambient_camera_rotation(rate=0.3)
         self.wait(3)
         self.stop_ambient_camera_rotation()
@@ -188,4 +221,6 @@ class ThreeDExplanation(ThreeDScene):
         ending.move_to(-UP*2+LEFT*4)
         self.play(Transform(text,ending))
         self.add_fixed_in_frame_mobjects(ending)
+
+        self.play(FadeOut(plane))
         self.wait(9)
-- 
cgit 


From 116a7e0bceceeaa961b8586219015d27f6576c1b Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Mon, 6 Jul 2020 04:44:52 +0530
Subject: rectangle to ||alogram

---
 .../Linear-Transformations-(Linear-Maps)/square.py | 246 +++++++++++++++++++++
 1 file changed, 246 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py
new file mode 100644
index 0000000..e828de4
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py
@@ -0,0 +1,246 @@
+from manimlib.imports import *
+
+class Linear(GraphScene):
+    CONFIG = {
+    "x_min": -5,
+    "x_max": 5,
+    "y_min": -5,
+    "y_max": 5,
+    "graph_origin": ORIGIN,
+    "x_labeled_nums": list(range(-5, 6)),
+    "y_labeled_nums": list(range(-5, 6)),
+    "x_axis_width": 7,
+    "y_axis_height": 7,
+    }
+    def construct(self):
+        
+        text = TextMobject("T(x,y) = T(x+y,y)")
+        text.scale(0.75)
+        text.set_color(PURPLE)
+        text.move_to(3*UP+5*LEFT)
+        self.play(Write(text))
+
+        XTD = self.x_axis_width/(self.x_max- self.x_min)
+        YTD = self.y_axis_height/(self.y_max- self.y_min)
+
+        self.setup_axes(animate = True)
+
+        text1 = TextMobject("Before Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3+3*RIGHT)
+
+        a = TextMobject("(1,1)")
+        b = TextMobject("(3,1)")
+        c = TextMobject("(3,2)")
+        d = TextMobject("(1,2)")
+        a.scale(0.5)
+        b.scale(0.5)
+        c.scale(0.5)
+        d.scale(0.5)
+        a.move_to(self.graph_origin+0.6*UP+0.6*RIGHT)
+        b.move_to(self.graph_origin+0.6*UP+3.4*RIGHT)
+        c.move_to(self.graph_origin+2.4*UP+3.4*RIGHT)
+        d.move_to(self.graph_origin+2.6*UP+0.6*RIGHT)
+
+        square = Polygon(self.graph_origin+UP+RIGHT,self.graph_origin+UP+3*RIGHT,self.graph_origin+2*UP+3*RIGHT,self.graph_origin+2*UP+RIGHT)
+        
+        self.play(Write(text1), Write(a), Write(b), Write(c), Write(d), ShowCreation(square))
+        self.wait(2)
+        self.play(FadeOut(text1), FadeOut(a), FadeOut(b), FadeOut(c), FadeOut(d), ApplyMethod(square.apply_matrix,[[1,1],[0,1]]))
+
+        a = TextMobject("(2,1)")
+        b = TextMobject("(4,1)")
+        c = TextMobject("(3,2)")
+        d = TextMobject("(5,2)")
+        a.scale(0.5)
+        b.scale(0.5)
+        c.scale(0.5)
+        d.scale(0.5)
+        a.move_to(self.graph_origin+0.6*UP+1.6*RIGHT)
+        b.move_to(self.graph_origin+0.6*UP+4.4*RIGHT)
+        d.move_to(self.graph_origin+2.4*UP+5.4*RIGHT)
+        c.move_to(self.graph_origin+2.4*UP+2.6*RIGHT)
+
+        text1 = TextMobject("After Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3+3*RIGHT)
+
+        self.play(Write(text1), Write(a), Write(b), Write(c), Write(d))
+        
+        self.wait(2)
+
+class grid(LinearTransformationScene):
+    def construct(self):
+
+        text = TextMobject("Now, consider all the vectors.")
+        text.scale(0.75)
+        text.set_color(PURPLE)
+        text.move_to(2.5*UP+3*LEFT)
+        self.play(Write(text))
+
+        text1 = TextMobject("Before Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3.5+3.5*RIGHT)
+
+        square = Polygon(UP+RIGHT,UP+3*RIGHT,2*UP+3*RIGHT,2*UP+RIGHT)
+        square.set_color(YELLOW)
+        
+        self.play(Write(text1), ShowCreation(square))
+        self.wait(2)
+        self.play(FadeOut(text1))
+        self.add_transformable_mobject(square)
+
+        text1 = TextMobject("After Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3.5+3.5*RIGHT)
+
+        matrix = [[1,1],[0,1]]
+
+        self.apply_matrix(matrix)
+        self.play(Write(text1))
+        
+        self.wait()
+
+class grid2(LinearTransformationScene):
+    CONFIG = {
+    "include_background_plane": True,
+    "include_foreground_plane": False,
+    "show_coordinates": True,
+    "show_basis_vectors": True,
+    "basis_vector_stroke_width": 3,
+    "i_hat_color": X_COLOR,
+    "j_hat_color": Y_COLOR,
+    "leave_ghost_vectors": True,
+    }
+
+    def construct(self):
+
+        text = TextMobject("Now, let us focus only on the standard basis")
+        text.scale(0.7)
+        text.set_color(PURPLE)
+        text.move_to(2.5*UP+3.5*LEFT)
+        self.play(Write(text))
+
+        text1 = TextMobject("Before Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3.5+3.5*RIGHT)
+
+        square = Polygon(UP+RIGHT,UP+3*RIGHT,2*UP+3*RIGHT,2*UP+RIGHT)
+        square.set_color(YELLOW)
+        
+        self.play(Write(text1), ShowCreation(square))
+        self.wait(2)
+        self.play(FadeOut(text1))
+        self.add_transformable_mobject(square)
+
+        text1 = TextMobject("After Linear Transformation")
+        text1.scale(0.6)
+        text1.move_to(UP*3.5+3.5*RIGHT)
+
+        matrix = [[1,1],[0,1]]
+
+        self.apply_matrix(matrix)
+        self.play(Write(text1))
+
+        self.play(FadeOut(square), FadeOut(text1))
+        
+        cor_x = TextMobject("(1,0)")
+        cor_y = TextMobject("(1,1)")
+        cor_x.scale(0.65)
+        cor_y.scale(0.65)
+        cor_y.move_to(1.25*RIGHT+1.5*UP)
+        cor_x.move_to(0.75*RIGHT-0.5*UP)
+        cor_x.set_color(GREEN)
+        cor_y.set_color(RED)
+        
+        x_cor = TextMobject(r"$\left[\begin{array}{c} 1\\0\end{array}\right]$")
+        x_cor.set_color(GREEN)
+        x_cor.scale(0.5)
+        y_cor = TextMobject(r"$\left[\begin{array}{c} 1\\1\end{array}\right]$")
+        x_cor.move_to(0.75*RIGHT-0.5*UP)
+        y_cor.move_to(1.25*RIGHT+1.5*UP)
+        y_cor.set_color(RED)
+        y_cor.scale(0.5)
+
+        text1 = TextMobject(r"$T(\left[\begin{array}{c} x\\y \end{array}\right]) = $",r"$\left[\begin{array}{c} x+y\\y \end{array}\right]$")
+        text1.scale(0.7)
+        text1.set_color(PURPLE)
+        text1.move_to(1.5*UP+3*LEFT)
+
+        text = TextMobject(r"$T(x,y) = (x+y,y)$")
+        text.scale(0.6)
+        text.set_color(PURPLE)
+        text.move_to(1.5*UP+3*LEFT)
+
+        self.play(FadeIn(text),FadeIn(cor_x), FadeIn(cor_y))
+        self.wait()
+
+        self.play(Transform(text,text1), Transform(cor_x,x_cor), Transform(cor_y,y_cor))
+
+        text3 = TextMobject(r"$\left[\begin{array}{c} x+y\\y \end{array}\right]$")
+        text3.scale(0.7)
+        text3.set_color(PURPLE)
+        text3.move_to(1.5*DOWN+5*LEFT)
+
+        equal = TextMobject("=")
+        equal.move_to(1.5*DOWN+3.5*LEFT)
+
+        text3 = TextMobject("[")
+        text4 = TextMobject(r"$\begin{array}{c} (1)x\\(0)x \end{array}$")
+        text5 = TextMobject(r"$\begin{array}{c} + \\ + \end{array}$")
+        text6 = TextMobject(r"$\begin{array}{c} (1)y\\(1)y \end{array}$")
+        text7 = TextMobject("]")
+        text3.scale(2)
+        text4.scale(0.7)
+        text5.scale(0.7)
+        text6.scale(0.7)
+        text7.scale(2)
+        text4.set_color(GREEN)
+        text5.set_color(PURPLE)
+        text6.set_color(RED)
+        text3.move_to(1.5*DOWN+3*LEFT)
+        text4.move_to(1.5*DOWN+2.5*LEFT)
+        text5.move_to(1.5*DOWN+2*LEFT)
+        text6.move_to(1.5*DOWN+1.5*LEFT)
+        text7.move_to(1.5*DOWN+1*LEFT)
+
+        text1[1].scale(1.2)
+        self.play(FadeOut(text1[0]), ApplyMethod(text1[1].move_to,1.5*DOWN+5*LEFT), FadeIn(text3), FadeIn(equal), FadeIn(text4), FadeIn(text5), FadeIn(text6), FadeIn(text7))
+
+        self.wait()
+        self.play(FadeOut(text1[1]))
+        
+        self.play(ApplyMethod(text3.move_to,1.5*DOWN+6*LEFT),
+        ApplyMethod(text4.move_to,1.5*DOWN+5.5*LEFT),
+        ApplyMethod(text5.move_to,1.5*DOWN+5*LEFT),
+        ApplyMethod(text6.move_to,1.5*DOWN+4.5*LEFT),
+        ApplyMethod(text7.move_to,1.5*DOWN+4*LEFT))
+        
+        text10 = TextMobject("[")
+        text11 = TextMobject(r"$\begin{array}{c} 1\\0 \end{array}$")
+        text13 = TextMobject(r"$\begin{array}{c} 1\\1 \end{array}$")
+        text14 = TextMobject("]")
+        text10.scale(2)
+        text11.scale(0.7)
+        text13.scale(0.7)
+        text14.scale(2)
+        text11.set_color(GREEN)
+        text13.set_color(RED)
+        text10.move_to(1.5*DOWN+3*LEFT)
+        text11.move_to(1.5*DOWN+2.75*LEFT)
+        text13.move_to(1.5*DOWN+2.25*LEFT)
+        text14.move_to(1.5*DOWN+2*LEFT)
+
+        self.play(FadeIn(text10), Transform(x_cor,text11), Transform(y_cor,text13), FadeIn(text14))
+
+        text15 = TextMobject(r"$\left[\begin{array}{c} x\\y \end{array}\right]$")
+        text15.scale(0.7)
+        text15.set_color(PURPLE)
+        text15.move_to(1.5*DOWN+1.5*LEFT)
+
+        self.play(FadeIn(text15))
+        self.play(FadeOut(text3), FadeOut(text4), FadeOut(text5), FadeOut(text7), FadeOut(text6))
+
+        text1[0].scale(1.2)
+        self.play(ApplyMethod(text1[0].move_to,1.5*DOWN+4.5*LEFT), FadeOut(equal))
+        self.wait(2)
\ No newline at end of file
-- 
cgit 


From 1e4ac7ee9a243d6fe878e2d22c250bc9475b5dad Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Mon, 6 Jul 2020 05:05:28 +0530
Subject: changes implemented

---
 .../file_before_matrix.py                          | 70 ++++++++++++----------
 1 file changed, 38 insertions(+), 32 deletions(-)

diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
index e0476a3..96e456d 100755
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py
@@ -27,37 +27,37 @@ class Linear(GraphScene):
         self.wait()
 
         before = TextMobject("Before Linear Transformation")
-        before.set_color(DARK_BLUE)
+        before.set_color(ORANGE)
         before.move_to(3*UP+4*RIGHT)
         before.scale(0.75)
         dot1 = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP)
         dot2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+1*YTD*UP)
-        dot1.set_color(DARK_BLUE)
-        dot2.set_color(DARK_BLUE)
+        dot1.set_color(ORANGE)
+        dot2.set_color(ORANGE)
         p1 = TextMobject(r"$P_1$")
         p1.scale(0.75)
-        p1.set_color(DARK_BLUE)
+        p1.set_color(ORANGE)
         p1.move_to(self.graph_origin+1*XTD*RIGHT+1.5*YTD*UP)
         p2 = TextMobject(r"$P_2$")
-        p2.set_color(DARK_BLUE)
+        p2.set_color(ORANGE)
         p2.scale(0.75)
         p2.move_to(self.graph_origin+2*XTD*RIGHT+1.5*YTD*UP)
 
         after = TextMobject("After applying Linear Transformation")
-        after.set_color(RED)
+        after.set_color(YELLOW)
         after.move_to(3*UP+4.5*RIGHT)
         after.scale(0.5)
         dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP)
         dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP)
-        dot3.set_color(RED)
-        dot4.set_color(RED)
+        dot3.set_color(YELLOW)
+        dot4.set_color(YELLOW)
         p3 = TextMobject(r"$T(P_1)$")
         p3.scale(0.7)
-        p3.set_color(RED)
+        p3.set_color(YELLOW)
         p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP)
         p4 = TextMobject(r"$T(P_2)$")
         p4.scale(0.7)
-        p4.set_color(RED)
+        p4.set_color(YELLOW)
         p4.move_to(self.graph_origin+4*XTD*RIGHT+1.5*YTD*UP)
 
         self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2))
@@ -76,52 +76,54 @@ class withgrid(LinearTransformationScene):
         self.wait()
 
         before = TextMobject("Before Linear Transformation")
-        before.set_color(DARK_BLUE)
+        before.set_color(ORANGE)
         before.move_to(3.5*UP+4*RIGHT)
         before.scale(0.75)
         dot1 = Dot().shift(1*RIGHT+1*UP)
         dot2 = Dot().shift(2*RIGHT+1*UP)
-        dot1.set_color(DARK_BLUE)
-        dot2.set_color(DARK_BLUE)
+        dot1.set_color(ORANGE)
+        dot2.set_color(ORANGE)
         
         dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP)
         dot2_c = Dot(radius = 0.05).shift(2*RIGHT+1*UP)
-        dot1_c.set_color(RED)
-        dot2_c.set_color(RED)
+        dot1_c.set_color(YELLOW)
+        dot2_c.set_color(YELLOW)
         self.add_transformable_mobject(dot1_c)
         self.add_transformable_mobject(dot2_c)
         
         p1 = TextMobject(r"$P_1$")
         p1.scale(0.75)
-        p1.set_color(DARK_BLUE)
+        p1.set_color(ORANGE)
         p1.move_to(1*RIGHT+1.5*UP)
         p2 = TextMobject(r"$P_2$")
         p2.scale(0.75)
-        p2.set_color(DARK_BLUE)
+        p2.set_color(ORANGE)
         p2.move_to(2*RIGHT+1.5*UP)
 
         after = TextMobject("After applying Linear Transformation")
-        after.set_color(RED)
+        after.set_color(YELLOW)
         after.move_to(3.5*UP+3.5*RIGHT)
         after.scale(0.75)
         dot3 = Dot().shift(3*RIGHT+0*UP)
         dot4 = Dot().shift(4*RIGHT+1*UP)
-        dot3.set_color(RED)
-        dot4.set_color(RED)
+        dot3.set_color(YELLOW)
+        dot4.set_color(YELLOW)
         p3 = TextMobject(r"$T(P_1)$")
         p3.scale(0.75)
-        p3.set_color(RED)
+        p3.set_color(YELLOW)
         p3.move_to(3*RIGHT-0.6*UP)
         p4 = TextMobject(r"$T(P_2)$")
         p4.scale(0.75)
-        p4.set_color(RED)
+        p4.set_color(YELLOW)
         p4.move_to(4*RIGHT+1.5*UP)
 
         self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2))
         self.wait(3)
         matrix = [[1,2],[1,-1]]
+        dot1.set_color(GREY)
+        dot2.set_color(GREY)
+        self.play(FadeIn(dot1),FadeIn(dot2))
         self.apply_matrix(matrix)
-        self.play(FadeOut(dot1),FadeOut(dot2))
         self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3))
         self.play(Transform(before,after))
         self.wait(3)
@@ -145,7 +147,7 @@ class ThreeDExplanation(ThreeDScene):
 
         before = TextMobject("Before Linear Transformation")
         self.add_fixed_in_frame_mobjects(before)
-        before.set_color(YELLOW)
+        before.set_color(ORANGE)
         before.move_to(3.5*UP+4*RIGHT)
         before.scale(0.75)
 
@@ -158,9 +160,9 @@ class ThreeDExplanation(ThreeDScene):
         dot1 = Dot().shift(1*RIGHT+1*UP)
         dot2 = Dot().shift(2*RIGHT+1*UP)
         dot3 = Dot().shift(1*RIGHT+1*DOWN)
-        dot1.set_color(YELLOW)
-        dot2.set_color(YELLOW)
-        dot3.set_color(YELLOW)
+        dot1.set_color(ORANGE)
+        dot2.set_color(ORANGE)
+        dot3.set_color(ORANGE)
         self.play(ShowCreation(before))
         
         p1.move_to(1*RIGHT+1*UP+[0,0,0.5])
@@ -170,9 +172,9 @@ class ThreeDExplanation(ThreeDScene):
         dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP)
         dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP)
         dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP)
-        dot1_c.set_color(RED)
-        dot2_c.set_color(RED)
-        dot3_c.set_color(RED)
+        dot1_c.set_color(YELLOW)
+        dot2_c.set_color(YELLOW)
+        dot3_c.set_color(YELLOW)
         
         axes = ThreeDAxes(x_min = -7,x_max=7,y_min=-4,y_max=4,z_min=-4,z_max=4)
         self.play(ShowCreation(axes))
@@ -191,7 +193,7 @@ class ThreeDExplanation(ThreeDScene):
         self.play(FadeOut(before))
         after = TextMobject("After applying Linear Transformation")
         self.add_fixed_in_frame_mobjects(after)
-        after.set_color(RED)
+        after.set_color(YELLOW)
         after.move_to(3.5*UP+3.5*RIGHT)
         after.scale(0.75)
       
@@ -223,4 +225,8 @@ class ThreeDExplanation(ThreeDScene):
         self.add_fixed_in_frame_mobjects(ending)
 
         self.play(FadeOut(plane))
-        self.wait(9)
+        self.wait(3)
+
+        self.begin_ambient_camera_rotation(rate=0.5)
+        self.wait(5)
+        self.stop_ambient_camera_rotation()
-- 
cgit 


From 73582bd5f91d845437fb4a88b3a863e940d1de7e Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Mon, 6 Jul 2020 17:06:19 +0530
Subject: animation added in 4FSS

---
 .../The-Four-Fundamental-Subspaces/CSasImage.py    | 168 +++++++++++++++++++++
 1 file changed, 168 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py
new file mode 100644
index 0000000..fbb3291
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py
@@ -0,0 +1,168 @@
+from manimlib.imports import *
+
+class Column_Space(Scene):
+    def construct(self):
+
+        A = TextMobject(r"$A = $",r"$\left( \begin{array}{c c c} 1 & 2 & 1 \\ 1 & 3 & 1 \\ 2 & 1 & 4 \\ 3 & 2 & 3 \end{array} \right)$")
+        A.move_to(2*UP)
+        A[1].set_color(color = DARK_BLUE)
+        A.scale(0.75)
+
+        self.play(Write(A),run_time = 1)      
+
+        CS_A = TextMobject(r"Column Space of $A = x_{1}$",r"$\left( \begin{array}{c} 1 \\ 1 \\ 2 \\ 3 \end{array} \right)$",r"$+x_{2}$",r"$ \left( \begin{array}{c} 2 \\ 3 \\ 1 \\ 2 \end{array} \right)$",r"$ + x_{3}$",r"$\left( \begin{array}{c} 1 \\ 1 \\ 4 \\ 3 \end{array} \right)$")
+        CS_A.move_to(1.5*LEFT+1*DOWN)
+        CS_A[1].set_color(color = DARK_BLUE)
+        CS_A[3].set_color(color = DARK_BLUE)
+        CS_A[5].set_color(color = DARK_BLUE)
+        CS_A.scale(0.75)
+
+        self.play(Write(CS_A),run_time = 2)
+
+        arrow1 = Arrow(start = 1.25*UP,end = 0.25*DOWN+1.75*LEFT)
+        arrow2 = Arrow(start = 1.35*UP+0.5*RIGHT,end = 0.25*DOWN+0.5*RIGHT)
+        arrow3 = Arrow(start = 1.25*UP+0.75*RIGHT,end = 0.25*DOWN+2.9*RIGHT)
+
+        Defn = TextMobject("Linear Combination of Columns of Matrix")
+        Defn.move_to(3*DOWN)
+
+        self.play(Write(Defn), ShowCreation(arrow1), ShowCreation(arrow2), ShowCreation(arrow3),run_time = 1)
+        self.wait(1)
+
+class solution(LinearTransformationScene):
+    def construct(self):
+
+        self.setup()
+        self.wait()
+        
+        o = TextMobject(r"Consider the vector space $R^2$")
+        o.move_to(2*DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        A = TextMobject(r"Let $A$(= ",r"$\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$",r")denote the matrix the of this linear transformation.")
+        A.move_to(2*DOWN)
+        A.scale(0.75)
+        A.add_background_rectangle()
+        self.play(Write(A))
+        matrix = [[1,-1],[1,-1]]
+        self.apply_matrix(matrix)
+        self.wait()
+        self.play(FadeOut(A))
+
+        o = TextMobject(r"This is the transformed vector space")
+        o.move_to(2*DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        texti = TextMobject(r"$\left[\begin{array}{c}1\\1\end{array}\right]$")
+        textj = TextMobject(r"$\left[\begin{array}{c}-1\\-1\end{array}\right]$")
+        texti.set_color(GREEN)
+        textj.set_color(RED)
+        texti.scale(0.7)
+        textj.scale(0.7)
+        texti.move_to(1.35*RIGHT+0.5*UP)
+        textj.move_to(-(1.5*RIGHT+0.5*UP))
+
+        text1 = TextMobject("[")
+        text2 = TextMobject(r"$\begin{array}{c} 1 \\ 1 \end{array}$")
+        text3 = TextMobject(r"$\begin{array}{c} -1 \\ -1 \end{array}$")
+        text4 = TextMobject("]")
+
+        text2.set_color(GREEN)
+        text3.set_color(RED)
+
+        text1.scale(2)
+        text4.scale(2)
+        text2.scale(0.7)
+        text3.scale(0.7)
+
+        text1.move_to(2.5*UP+6*LEFT)
+        text2.move_to(2.5*UP+5.75*LEFT)
+        text3.move_to(2.5*UP+5.25*LEFT)
+        text4.move_to(2.5*UP+5*LEFT)
+
+        self.play(Write(texti), Write(textj))
+        self.wait()
+        self.play(FadeIn(text1), Transform(texti,text2), Transform(textj,text3), FadeIn(text4))
+        self.wait()
+
+        o = TextMobject(r"Now, you can observe the Image of Linear Transformation")
+        o1 = TextMobject(r"and Column Space(i.e. span of columns of matrix $A$) are same")
+        o.move_to(2.5*DOWN)
+        o1.move_to(3*DOWN)
+        o.scale(0.75)
+        o1.scale(0.75)
+        o.add_background_rectangle()
+        o1.add_background_rectangle()
+        self.play(Write(o))
+        self.play(Write(o1))
+        self.wait()
+        self.play(FadeOut(o),FadeOut(o1))
+
+class solution2nd(LinearTransformationScene):
+    def construct(self):
+
+        self.setup()
+        self.wait()
+        
+        arrow1 = Arrow(start = ORIGIN,end = 2*DOWN+RIGHT)
+        arrow2 = Arrow(start = ORIGIN,end = UP+LEFT)
+        arrow3 = Arrow(start = ORIGIN,end = 3*UP+4*RIGHT)
+        arrow1.set_color(YELLOW)
+        arrow2.set_color(YELLOW)
+        arrow3.set_color(YELLOW)
+        arrow1.scale(1.3)
+        arrow2.scale(1.5)
+        arrow3.scale(1.1)
+
+        self.play(ShowCreation(arrow1), ShowCreation(arrow2), ShowCreation(arrow3))
+
+        self.add_transformable_mobject(arrow1)
+        self.add_transformable_mobject(arrow2)
+        self.add_transformable_mobject(arrow3)
+        o = TextMobject(r"Consider any vector in the original vector space $R^2$")
+        o.move_to(2.5*DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        A = TextMobject(r"Matrix the of this linear transformation is $A$(= ",r"$\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$",r") again.")
+        A.move_to(2*DOWN)
+        A.scale(0.75)
+        A.add_background_rectangle()
+        self.play(Write(A))
+        matrix = [[1,-1],[1,-1]]
+        self.apply_matrix(matrix)
+        self.wait()
+        self.play(FadeOut(A))
+
+        o = TextMobject(r"This is the transformed vector space")
+        o.move_to(2*DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        o = TextMobject(r"Each and every vector of original vector space $R^2$ will transform")
+        o1 = TextMobject(r"to this new vector space which is spanned by $\mathbf{CS}(A)$")
+        o.move_to(2.5*DOWN)
+        o1.move_to(3*DOWN)
+        o.scale(0.75)
+        o1.scale(0.75)
+        o.add_background_rectangle()
+        o1.add_background_rectangle()
+        self.play(Write(o))
+        self.play(Write(o1))
+        self.wait()
+        self.play(FadeOut(o))
+        self.play(FadeOut(o1))
\ No newline at end of file
-- 
cgit 


From a74eaef144ee85b1fd2fa0b39fcebad9fbc44190 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Mon, 6 Jul 2020 17:10:30 +0530
Subject: animation changed in 4FSS

---
 .../The-Four-Fundamental-Subspaces/null_space.py   | 91 ++++++++++++++++++++++
 1 file changed, 91 insertions(+)
 create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py

diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py
new file mode 100644
index 0000000..dfc3cb4
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py
@@ -0,0 +1,91 @@
+from manimlib.imports import *
+class null_space(LinearTransformationScene):
+    def construct(self):
+
+        self.setup()
+        self.wait()
+        
+        o = TextMobject(r"This is the original $2D$ vector space(before Linear Transformation)")
+        o.move_to(DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait()
+        self.play(FadeOut(o))
+
+        o1 = TextMobject("Consider a set of vectors which are linear")
+        o2 = TextMobject(r"span of a particular vector $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$")
+        o1.move_to(2*DOWN+3*RIGHT)
+        o2.move_to(2.75*DOWN+3*RIGHT)
+        o1.scale(0.7)
+        o2.scale(0.7)
+        o1.add_background_rectangle()
+        o2.add_background_rectangle()
+        self.play(Write(o1))
+        self.play(Write(o2))
+
+        arrow = Arrow(start = ORIGIN, end = UP+RIGHT)
+        arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT))
+        arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT))
+        arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT))
+        arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT)
+        arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT))
+        arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT))
+        arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT))
+
+        arrow.scale(1.5)
+        arrow1.scale(1.2)
+        arrow2.scale(1.15)
+        arrow3.scale(1.1)
+        arrow4.scale(1.5)
+        arrow5.scale(1.2)
+        arrow6.scale(1.15)
+        arrow7.scale(1.1)
+
+        self.play(ShowCreation(arrow),
+        ShowCreation(arrow1),
+        ShowCreation(arrow2),
+        ShowCreation(arrow3),
+        ShowCreation(arrow4),
+        ShowCreation(arrow5),
+        ShowCreation(arrow6),
+        ShowCreation(arrow7),
+        )
+
+        self.wait(2)
+        self.play(FadeOut(o1), FadeOut(o2))
+
+        self.add_transformable_mobject(arrow)
+        self.add_transformable_mobject(arrow1)
+        self.add_transformable_mobject(arrow2)
+        self.add_transformable_mobject(arrow3)
+        self.add_transformable_mobject(arrow4)
+        self.add_transformable_mobject(arrow5)
+        self.add_transformable_mobject(arrow6)
+        self.add_transformable_mobject(arrow7)
+
+        o1 = TextMobject("Notice, entire set of vectors which belong to the vector")
+        o2 = TextMobject(r"subspace(Linear Span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$) transforms to zero")
+        o1.move_to(2*DOWN+2.5*RIGHT)
+        o2.move_to(2.75*DOWN+2.5*RIGHT)
+        o1.scale(0.7)
+        o2.scale(0.7)
+        o1.add_background_rectangle()
+        o2.add_background_rectangle()
+        self.play(Write(o1))
+        self.play(Write(o2))
+        self.wait()
+
+        matrix = [[1,-1],[1,-1]]
+        self.apply_matrix(matrix)
+        self.wait()
+
+        self.play(FadeOut(o1), FadeOut(o2))
+
+        o = TextMobject(r"Hence, the vector space formed by linear span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$ is the null space of $A$")
+        o.move_to(DOWN)
+        o.scale(0.75)
+        o.add_background_rectangle()
+        self.play(Write(o))
+        self.wait(2)
+        self.play(FadeOut(o), FadeOut(arrow), FadeOut(arrow1), FadeOut(arrow2), FadeOut(arrow3), FadeOut(arrow4), FadeOut(arrow5), FadeOut(arrow6), FadeOut(arrow7))
-- 
cgit