From 0d8a9f7ed659c349d92bf3be92edd1eccba5f713 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Tue, 7 Jul 2020 00:38:01 +0530
Subject: Still need to make changes
---
.../The-Four-Fundamental-Subspaces/null_space.py | 2 +-
.../The-Four-Fundamental-Subspaces/row_space.py | 150 +++++++++++++++++++++
2 files changed, 151 insertions(+), 1 deletion(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
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
index dfc3cb4..c686710 100644
--- 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
@@ -5,7 +5,7 @@ class null_space(LinearTransformationScene):
self.setup()
self.wait()
- o = TextMobject(r"This is the original $2D$ vector space(before Linear Transformation)")
+ o = TextMobject(r"This is the original vector space $R^2$(before Linear Transformation)")
o.move_to(DOWN)
o.scale(0.75)
o.add_background_rectangle()
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
new file mode 100644
index 0000000..c81d370
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
@@ -0,0 +1,150 @@
+from manimlib.imports import *
+class row_space(LinearTransformationScene):
+ def construct(self):
+
+ self.setup()
+ self.wait()
+
+ o = TextMobject(r"This is the original vector space $R^2$(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 $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$i.e. the null space.")
+ 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)
+ arrow.set_color(YELLOW)
+ arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT))
+ arrow1.set_color(YELLOW)
+ arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT))
+ arrow2.set_color(YELLOW)
+ arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT))
+ arrow3.set_color(YELLOW)
+ arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT)
+ arrow4.set_color(YELLOW)
+ arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT))
+ arrow5.set_color(YELLOW)
+ arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT))
+ arrow6.set_color(YELLOW)
+ arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT))
+ arrow7.set_color(YELLOW)
+
+ 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))
+
+ o1 = TextMobject("Consider a set of vectors which are linear")
+ o2 = TextMobject(r"span of a $\left(\begin{array}{c} 1 \\ -1 \end{array}\right)$i.e. the row space.")
+ 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))
+
+ rarrow = Arrow(start = ORIGIN, end = -UP+RIGHT)
+ rarrow.set_color(PURPLE)
+ rarrow1 = Arrow(start = ORIGIN, end = 2*(-UP+RIGHT))
+ rarrow1.set_color(PURPLE)
+ rarrow2 = Arrow(start = ORIGIN, end = 3*(-UP+RIGHT))
+ rarrow2.set_color(PURPLE)
+ rarrow3 = Arrow(start = ORIGIN, end = 4*(-UP+RIGHT))
+ rarrow3.set_color(PURPLE)
+ rarrow4 = Arrow(start = ORIGIN, end = -DOWN+LEFT)
+ rarrow4.set_color(PURPLE)
+ rarrow5 = Arrow(start = ORIGIN, end = 2*(-DOWN+LEFT))
+ rarrow5.set_color(PURPLE)
+ rarrow6 = Arrow(start = ORIGIN, end = 3*(-DOWN+LEFT))
+ rarrow6.set_color(PURPLE)
+ rarrow7 = Arrow(start = ORIGIN, end = 4*(-DOWN+LEFT))
+ rarrow7.set_color(PURPLE)
+
+ rarrow.scale(1.5)
+ rarrow1.scale(1.2)
+ rarrow2.scale(1.15)
+ rarrow3.scale(1.1)
+ rarrow4.scale(1.5)
+ rarrow5.scale(1.2)
+ rarrow6.scale(1.15)
+ rarrow7.scale(1.1)
+
+ self.play(ShowCreation(rarrow),
+ ShowCreation(rarrow1),
+ ShowCreation(rarrow2),
+ ShowCreation(rarrow3),
+ ShowCreation(rarrow4),
+ ShowCreation(rarrow5),
+ ShowCreation(rarrow6),
+ ShowCreation(rarrow7),
+ )
+
+ 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)
+
+ self.add_transformable_mobject(rarrow)
+ self.add_transformable_mobject(rarrow1)
+ self.add_transformable_mobject(rarrow2)
+ self.add_transformable_mobject(rarrow3)
+ self.add_transformable_mobject(rarrow4)
+ self.add_transformable_mobject(rarrow5)
+ self.add_transformable_mobject(rarrow6)
+ self.add_transformable_mobject(rarrow7)
+
+ o1 = TextMobject("Notice, entire set of vectors which belong to the null space of $A$ transforms to zero")
+ o2 = TextMobject(r"and entire set of vectors which belong to the row space of $A$ transforms to column space of $A$.")
+ o1.move_to(2.5*DOWN)
+ o2.move_to(3.5*DOWN)
+ 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(3)
+
+ self.play(FadeOut(o1), FadeOut(o2))
\ No newline at end of file
--
cgit
From 9c93f9fd57d3d12355e5fb854603e421965a08c1 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Tue, 7 Jul 2020 18:47:41 +0530
Subject: semi-final 4FSS
---
.../The-Four-Fundamental-Subspaces/Axb.py | 77 ---------
.../The-Four-Fundamental-Subspaces/CSasImage.py | 168 -------------------
.../file10_NOT_in_lecture_note_Column_Space.py | 30 ++++
.../The-Four-Fundamental-Subspaces/file1_Axb.py | 77 +++++++++
.../file1_Column_Space.gif | Bin 1182328 -> 0 bytes
.../file1_Column_Space.py | 30 ----
.../file2_CSasImage.py | 169 +++++++++++++++++++
.../file2_Row_Space.py | 145 ----------------
.../file3_solution.py | 77 +++++++++
.../file4_null_space.py | 91 ++++++++++
.../file5_Row_Space_part_1.py | 68 ++++++++
.../file6_Row_Space_part_2.py | 145 ++++++++++++++++
.../file7_Row_space_Orthogonal_Complements.py | 150 +++++++++++++++++
.../file8_Left_Null_Space.py | 26 +++
.../file9_left_null_space.py | 186 +++++++++++++++++++++
.../The-Four-Fundamental-Subspaces/null_space.py | 91 ----------
.../The-Four-Fundamental-Subspaces/row_space.py | 150 -----------------
.../The-Four-Fundamental-Subspaces/solution.py | 75 ---------
18 files changed, 1019 insertions(+), 736 deletions(-)
delete mode 100755 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
create mode 100755 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Axb.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_CSasImage.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_Row_Space.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file3_solution.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file4_null_space.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file5_Row_Space_part_1.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file6_Row_Space_part_2.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file7_Row_space_Orthogonal_Complements.py
create mode 100755 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file8_Left_Null_Space.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file9_left_null_space.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
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
deleted file mode 100755
index 95d1021..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py
+++ /dev/null
@@ -1,77 +0,0 @@
-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
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
deleted file mode 100644
index fbb3291..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py
+++ /dev/null
@@ -1,168 +0,0 @@
-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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
new file mode 100644
index 0000000..afe4f9a
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
@@ -0,0 +1,30 @@
+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)
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Axb.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Axb.py
new file mode 100755
index 0000000..95d1021
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.gif
deleted file mode 100644
index 7d8d2e1..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.gif and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.py
deleted file mode 100644
index afe4f9a..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file1_Column_Space.py
+++ /dev/null
@@ -1,30 +0,0 @@
-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)
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_CSasImage.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_CSasImage.py
new file mode 100644
index 0000000..70547cb
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_CSasImage.py
@@ -0,0 +1,169 @@
+from manimlib.imports import *
+
+class Column_Space(Scene):
+ def construct(self):
+
+ A = TextMobject(r"$A = $",r"$\left( \begin{array}{c c} 1 & 2 \\ 3 & 4 \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 \\ 3 \end{array} \right)$",r"$+x_{2}$",r"$ \left( \begin{array}{c} 2 \\ 4\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.scale(0.75)
+
+ self.play(Write(CS_A),run_time = 2)
+
+ arrow1 = Arrow(start = 1.25*UP,end = (0.25*DOWN+1.75*LEFT+0.25*DOWN+1.2*RIGHT)/2)
+ arrow3 = Arrow(start = 1.25*UP+0.75*RIGHT,end = (0.25*DOWN+2.9*RIGHT+0.25*DOWN)/2)
+
+ arrow1.scale(1.5)
+ arrow3.scale(1.5)
+
+ Defn = TextMobject("Linear Combination of Columns of Matrix")
+ Defn.move_to(3*DOWN)
+
+ self.play(Write(Defn), ShowCreation(arrow1), 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$ be ",r"$\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$",r". $A$ denotes 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(ORANGE)
+ arrow3.set_color(PURPLE)
+ 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"Let the matrix the of this linear transformation be $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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_Row_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_Row_Space.py
deleted file mode 100644
index b16a32a..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file2_Row_Space.py
+++ /dev/null
@@ -1,145 +0,0 @@
-from manimlib.imports import *
-
-class Row_Space(Scene):
- def construct(self):
-
- Heading = TextMobject("Row Space")
- defn1 = TextMobject("Definition 1: Row Space of a matrix is the linear combination of the rows of that matrix.")
- defn2 = TextMobject("Definition 2: It is a vector space generated by a linear combination of the columns of $A^{T}$.")
- equivalent = TextMobject(r"Definition 1 $\equiv$ Definition 2")
-
- Heading.move_to(2*UP)
- Heading.set_color(color = DARK_BLUE)
-
- defn1.move_to(UP)
- defn1.scale(0.75)
-
- defn2.scale(0.75)
-
- equivalent.move_to(DOWN)
-
- self.play(Write(Heading))
- self.play(Write(defn1))
- self.play(Write(defn2))
- self.play(Write(equivalent))
-
- self.wait(2)
- self.play(FadeOut(Heading),FadeOut(defn1),FadeOut(defn2),ApplyMethod(equivalent.move_to,2*UP))
-
- how = TextMobject("Let us see, How?")
- how.move_to(UP)
- self.play(Write(how))
- self.play(FadeOut(equivalent),FadeOut(how))
-
- 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+3*LEFT)
- A[1].set_color(color = DARK_BLUE)
- A.scale(0.80)
-
- self.play(Write(A))
-
- rows = TextMobject(r"Rows of A $\rightarrow$",
- r"$\left( \begin{array}{c c c} 1 & 2 & 1 \end{array} \right)$,",
- r"$ \left( \begin{array}{c c c} 1 & 3 & 1 \end{array} \right)$,",
- r"$\left( \begin{array}{c c c} 2 & 1 & 4 \end{array} \right)$,",
- r"$ \left( \begin{array}{c c c} 3 & 2 & 3 \end{array} \right)$")
- rows.scale(0.75)
- rows[1:5].set_color(DARK_BLUE)
- self.play(Write(rows))
-
- ac_defn1 = TextMobject("According to Definition 1 : ")
- ac_defn1.move_to(DOWN)
-
- RS_A = TextMobject(r"Row Space of $A = x_{1}$",
- r"$\left( \begin{array}{c c c} 1 & 2 & 1 \end{array} \right)$",
- r"$+x_{2}$",
- r"$ \left( \begin{array}{c c c} 1 & 3 & 1 \end{array} \right)$",
- r"$ + x_{3}$",
- r"$\left( \begin{array}{c c c} 2 & 1 & 4 \end{array} \right)$",
- r"$+x_{4}$",
- r"$ \left( \begin{array}{c c c} 3 & 2 & 3 \end{array} \right)$")
- RS_A.move_to(DOWN+DOWN)
- RS_A[6].move_to(2*DOWN+DOWN)
- RS_A[7].move_to(2*DOWN+2*RIGHT+DOWN)
- RS_A[1].set_color(color = DARK_BLUE)
- RS_A[3].set_color(color = DARK_BLUE)
- RS_A[5].set_color(color = DARK_BLUE)
- RS_A[7].set_color(color = DARK_BLUE)
- RS_A.scale(0.75)
-
- self.play(FadeOut(rows[0]),Transform(rows[1],RS_A[1]),Transform(rows[2],RS_A[3]),Transform(rows[3],RS_A[5]),Transform(rows[4],RS_A[7]))
- self.play(FadeIn(ac_defn1), Write(RS_A))
- self.wait(1)
-
- self.play(FadeOut(rows[1]), FadeOut(rows[2]), FadeOut(rows[3]), FadeOut(rows[4]), FadeOut(RS_A), FadeOut(ac_defn1))
-
- A_T = TextMobject(r"$A^{T} = $",r"$\left( \begin{array}{c c c c} 1 & 1 & 2 & 3 \\ 2 & 3 & 1 & 2 \\ 1 & 1 & 4 & 3 \end{array} \right)$")
- A_T.move_to(2*UP+3*RIGHT)
- A_T[1].set_color(color = DARK_BLUE)
- A_T.scale(0.80)
-
- self.play(Write(A_T))
-
- change1 = TextMobject(r"Rows of $A\equiv$ Columns of $A^{T}$")
- change2 = TextMobject(r"Columns of $A\equiv$ Rows of $A^{T}$")
- change2.move_to(DOWN)
-
- change3 = TextMobject(r"Row Space of $A$ = Linear Combination of",r"Rows","of",r"A")
- change3.move_to(2*DOWN)
- change3[1].set_color(DARK_BLUE)
- change3[3].set_color(DARK_BLUE)
-
- self.play(Write(change1))
- self.play(Write(change2))
- self.play(Write(change3))
-
- columns = TextMobject("Columns")
- columns.scale(0.6)
- columns.set_color(DARK_BLUE)
- columns.move_to(2*DOWN+4.1*RIGHT)
-
- a = TextMobject(r"$A^{T}$")
- a.set_color(DARK_BLUE)
- a.move_to(1.95*DOWN+5.6*RIGHT)
-
- self.wait(0.5)
-
- self.play(Transform(change3[1],columns), Transform(change3[3],a))
-
- equal = TextMobject(r"= Column Space($A^{T}$)")
- equal.move_to(3*DOWN+0.5*RIGHT)
-
- self.play(Write(equal))
-
- self.play(FadeOut(A_T), FadeOut(change1), FadeOut(change2), FadeOut(change3), FadeOut(A), FadeOut(equal))
-
- ac_defn1.move_to(3*UP)
- RS_A.move_to(1.5*UP)
- RS_A[6].move_to(UP)
- RS_A[7].move_to(UP+1.5*RIGHT)
-
- self.play(Write(RS_A),FadeIn(ac_defn1))
-
- CS_AT = TextMobject(r"Row Space of $A = x_{1}$",
- r"$\left( \begin{array}{c} 1 \\ 2 \\ 1 \end{array} \right)$",
- r"$+x_{2}$",
- r"$ \left( \begin{array}{c} 1 \\ 3 \\ 1 \end{array} \right)$",
- r"$ + x_{3}$",
- r"$\left( \begin{array}{c} 2 \\ 1 \\ 4 \end{array} \right)$",
- r"$+x_{4}$",
- r"$ \left( \begin{array}{c} 3 \\ 2 \\ 3 \end{array} \right)$")
- CS_AT.move_to(1.5*DOWN)
- CS_AT[1].set_color(color = DARK_BLUE)
- CS_AT[3].set_color(color = DARK_BLUE)
- CS_AT[5].set_color(color = DARK_BLUE)
- CS_AT[7].set_color(color = DARK_BLUE)
- CS_AT.scale(0.75)
-
- ac_defn2 = TextMobject("According to Definition 2 : ")
- equivalent = TextMobject(r"Hence, Definition 1 $\equiv$ Definition 2")
- equivalent.move_to(3*DOWN)
-
- self.play(Write(CS_AT),FadeIn(ac_defn2))
- self.play(Write(equivalent))
-
- self.wait()
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file3_solution.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file3_solution.py
new file mode 100644
index 0000000..eb310f3
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file3_solution.py
@@ -0,0 +1,77 @@
+from manimlib.imports import *
+class solution(LinearTransformationScene):
+ def construct(self):
+
+ self.setup()
+ self.wait()
+
+ o = TextMobject(r"This is the original vector space $R^2$ (before Linear Transformation)")
+ o.move_to(3*DOWN)
+ o.scale(0.75)
+ o.add_background_rectangle()
+ self.play(Write(o))
+ self.wait()
+ self.play(FadeOut(o))
+
+ A = TextMobject(r"Consider the matrix the of this linear transformation $A$ = $\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$")
+ A.move_to(3*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(3*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(PURPLE)
+ arrow2.scale(1.2)
+ self.play(ShowCreation(arrow2))
+ self.wait()
+
+ o1 = TextMobject("If the ","vector b"," lies in the transformed vector space")
+ o2 = TextMobject("(the line) then the solution exist")
+ o1.move_to(2.5*DOWN+2*RIGHT)
+ o1[1].set_color(PURPLE)
+ o2.move_to(3*DOWN+2.5*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(ORANGE)
+ arrow1.scale(1.3)
+ self.play(ShowCreation(arrow1))
+ self.wait()
+
+ o1 = TextMobject("If the ","vector b"," does lies in the transformed")
+ o2 = TextMobject("vector space then the does not solution exist")
+ o1.move_to(2.5*DOWN+2*RIGHT)
+ o1[1].set_color(ORANGE)
+ o2.move_to(3*DOWN+2.5*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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file4_null_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file4_null_space.py
new file mode 100644
index 0000000..3c52677
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file4_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 vector space $R^2$(before Linear Transformation)")
+ o.move_to(3*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 belongs 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(3*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))
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file5_Row_Space_part_1.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file5_Row_Space_part_1.py
new file mode 100644
index 0000000..5259eb4
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file5_Row_Space_part_1.py
@@ -0,0 +1,68 @@
+from manimlib.imports import *
+class LS(Scene):
+ def construct(self):
+ text1 = TextMobject(r"Consider a matrix $A =$")
+ text2 = TextMobject(r"[")
+ text3 = TextMobject(r"$\begin{array}{c c} 1 & -2\end{array}$")
+ text4 = TextMobject(r"$\begin{array}{c c} 1 & -1\end{array}$")
+ text5 = TextMobject(r"]")
+
+ text2.scale(2)
+ text5.scale(2)
+
+ text1.set_color(DARK_BLUE)
+ text2.set_color(DARK_BLUE)
+ text3.set_color(PURPLE)
+ text4.set_color(YELLOW)
+ text5.set_color(DARK_BLUE)
+
+ text1.move_to(3.5*LEFT+3*UP+2*RIGHT)
+ text2.move_to(0.75*LEFT+3*UP+2*RIGHT)
+ text3.move_to(3.25*UP+2*RIGHT)
+ text4.move_to(2.75*UP+2*RIGHT)
+ text5.move_to(0.75*RIGHT+3*UP+2*RIGHT)
+
+ self.play(FadeIn(text1), FadeIn(text2), FadeIn(text3), FadeIn(text4), FadeIn(text5))
+ self.wait()
+
+ ttext1 = TextMobject(r"$A^T =$")
+ ttext2 = TextMobject(r"[")
+ ttext3 = TextMobject(r"$\begin{array}{c} 1 \\ -2\end{array}$")
+ ttext4 = TextMobject(r"$\begin{array}{c} 1 \\ -1\end{array}$")
+ ttext5 = TextMobject(r"]")
+
+ ttext2.scale(2)
+ ttext5.scale(2)
+
+ ttext1.set_color(DARK_BLUE)
+ ttext2.set_color(DARK_BLUE)
+ ttext3.set_color(PURPLE)
+ ttext4.set_color(YELLOW)
+ ttext5.set_color(DARK_BLUE)
+
+ ttext1.move_to(2*LEFT+1.5*UP+2*RIGHT)
+ ttext2.move_to(1*LEFT+1.5*UP+2*RIGHT)
+ ttext3.move_to(0.5*LEFT+1.5*UP+2*RIGHT)
+ ttext4.move_to(0.5*RIGHT+1.5*UP+2*RIGHT)
+ ttext5.move_to(1*RIGHT+1.5*UP+2*RIGHT)
+
+ self.play(FadeIn(ttext1), FadeIn(ttext2), FadeIn(ttext3), FadeIn(ttext4), FadeIn(ttext5))
+
+ rtext = TextMobject(r"Row Space of $A$ = Column Space of $A^T = a_1$",r"$\left[\begin{array}{c} 1 \\ -2\end{array}\right]$",r"$+a_2$",r"$\left[\begin{array}{c} 1 \\ -1\end{array}\right]$")
+ rtext[1].set_color(PURPLE)
+ rtext[3].set_color(YELLOW)
+ rtext.move_to(2*DOWN+1.5*LEFT)
+ rtext.scale(0.75)
+
+ self.play(Write(rtext))
+ self.wait()
+
+ arrow1 = Arrow(start = 1.5*RIGHT+UP, end = 1.25*(DOWN+RIGHT))
+ arrow2 = Arrow(start = 2.5*RIGHT+UP, end = 1.25*DOWN+3.25*RIGHT)
+ arrow1.scale(1.25)
+ arrow2.scale(1.25)
+ arrow1.set_color(PURPLE)
+ arrow2.set_color(YELLOW)
+
+ self.play(ShowCreation(arrow1), ShowCreation(arrow2))
+ self.wait(2)
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file6_Row_Space_part_2.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file6_Row_Space_part_2.py
new file mode 100644
index 0000000..b16a32a
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file6_Row_Space_part_2.py
@@ -0,0 +1,145 @@
+from manimlib.imports import *
+
+class Row_Space(Scene):
+ def construct(self):
+
+ Heading = TextMobject("Row Space")
+ defn1 = TextMobject("Definition 1: Row Space of a matrix is the linear combination of the rows of that matrix.")
+ defn2 = TextMobject("Definition 2: It is a vector space generated by a linear combination of the columns of $A^{T}$.")
+ equivalent = TextMobject(r"Definition 1 $\equiv$ Definition 2")
+
+ Heading.move_to(2*UP)
+ Heading.set_color(color = DARK_BLUE)
+
+ defn1.move_to(UP)
+ defn1.scale(0.75)
+
+ defn2.scale(0.75)
+
+ equivalent.move_to(DOWN)
+
+ self.play(Write(Heading))
+ self.play(Write(defn1))
+ self.play(Write(defn2))
+ self.play(Write(equivalent))
+
+ self.wait(2)
+ self.play(FadeOut(Heading),FadeOut(defn1),FadeOut(defn2),ApplyMethod(equivalent.move_to,2*UP))
+
+ how = TextMobject("Let us see, How?")
+ how.move_to(UP)
+ self.play(Write(how))
+ self.play(FadeOut(equivalent),FadeOut(how))
+
+ 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+3*LEFT)
+ A[1].set_color(color = DARK_BLUE)
+ A.scale(0.80)
+
+ self.play(Write(A))
+
+ rows = TextMobject(r"Rows of A $\rightarrow$",
+ r"$\left( \begin{array}{c c c} 1 & 2 & 1 \end{array} \right)$,",
+ r"$ \left( \begin{array}{c c c} 1 & 3 & 1 \end{array} \right)$,",
+ r"$\left( \begin{array}{c c c} 2 & 1 & 4 \end{array} \right)$,",
+ r"$ \left( \begin{array}{c c c} 3 & 2 & 3 \end{array} \right)$")
+ rows.scale(0.75)
+ rows[1:5].set_color(DARK_BLUE)
+ self.play(Write(rows))
+
+ ac_defn1 = TextMobject("According to Definition 1 : ")
+ ac_defn1.move_to(DOWN)
+
+ RS_A = TextMobject(r"Row Space of $A = x_{1}$",
+ r"$\left( \begin{array}{c c c} 1 & 2 & 1 \end{array} \right)$",
+ r"$+x_{2}$",
+ r"$ \left( \begin{array}{c c c} 1 & 3 & 1 \end{array} \right)$",
+ r"$ + x_{3}$",
+ r"$\left( \begin{array}{c c c} 2 & 1 & 4 \end{array} \right)$",
+ r"$+x_{4}$",
+ r"$ \left( \begin{array}{c c c} 3 & 2 & 3 \end{array} \right)$")
+ RS_A.move_to(DOWN+DOWN)
+ RS_A[6].move_to(2*DOWN+DOWN)
+ RS_A[7].move_to(2*DOWN+2*RIGHT+DOWN)
+ RS_A[1].set_color(color = DARK_BLUE)
+ RS_A[3].set_color(color = DARK_BLUE)
+ RS_A[5].set_color(color = DARK_BLUE)
+ RS_A[7].set_color(color = DARK_BLUE)
+ RS_A.scale(0.75)
+
+ self.play(FadeOut(rows[0]),Transform(rows[1],RS_A[1]),Transform(rows[2],RS_A[3]),Transform(rows[3],RS_A[5]),Transform(rows[4],RS_A[7]))
+ self.play(FadeIn(ac_defn1), Write(RS_A))
+ self.wait(1)
+
+ self.play(FadeOut(rows[1]), FadeOut(rows[2]), FadeOut(rows[3]), FadeOut(rows[4]), FadeOut(RS_A), FadeOut(ac_defn1))
+
+ A_T = TextMobject(r"$A^{T} = $",r"$\left( \begin{array}{c c c c} 1 & 1 & 2 & 3 \\ 2 & 3 & 1 & 2 \\ 1 & 1 & 4 & 3 \end{array} \right)$")
+ A_T.move_to(2*UP+3*RIGHT)
+ A_T[1].set_color(color = DARK_BLUE)
+ A_T.scale(0.80)
+
+ self.play(Write(A_T))
+
+ change1 = TextMobject(r"Rows of $A\equiv$ Columns of $A^{T}$")
+ change2 = TextMobject(r"Columns of $A\equiv$ Rows of $A^{T}$")
+ change2.move_to(DOWN)
+
+ change3 = TextMobject(r"Row Space of $A$ = Linear Combination of",r"Rows","of",r"A")
+ change3.move_to(2*DOWN)
+ change3[1].set_color(DARK_BLUE)
+ change3[3].set_color(DARK_BLUE)
+
+ self.play(Write(change1))
+ self.play(Write(change2))
+ self.play(Write(change3))
+
+ columns = TextMobject("Columns")
+ columns.scale(0.6)
+ columns.set_color(DARK_BLUE)
+ columns.move_to(2*DOWN+4.1*RIGHT)
+
+ a = TextMobject(r"$A^{T}$")
+ a.set_color(DARK_BLUE)
+ a.move_to(1.95*DOWN+5.6*RIGHT)
+
+ self.wait(0.5)
+
+ self.play(Transform(change3[1],columns), Transform(change3[3],a))
+
+ equal = TextMobject(r"= Column Space($A^{T}$)")
+ equal.move_to(3*DOWN+0.5*RIGHT)
+
+ self.play(Write(equal))
+
+ self.play(FadeOut(A_T), FadeOut(change1), FadeOut(change2), FadeOut(change3), FadeOut(A), FadeOut(equal))
+
+ ac_defn1.move_to(3*UP)
+ RS_A.move_to(1.5*UP)
+ RS_A[6].move_to(UP)
+ RS_A[7].move_to(UP+1.5*RIGHT)
+
+ self.play(Write(RS_A),FadeIn(ac_defn1))
+
+ CS_AT = TextMobject(r"Row Space of $A = x_{1}$",
+ r"$\left( \begin{array}{c} 1 \\ 2 \\ 1 \end{array} \right)$",
+ r"$+x_{2}$",
+ r"$ \left( \begin{array}{c} 1 \\ 3 \\ 1 \end{array} \right)$",
+ r"$ + x_{3}$",
+ r"$\left( \begin{array}{c} 2 \\ 1 \\ 4 \end{array} \right)$",
+ r"$+x_{4}$",
+ r"$ \left( \begin{array}{c} 3 \\ 2 \\ 3 \end{array} \right)$")
+ CS_AT.move_to(1.5*DOWN)
+ CS_AT[1].set_color(color = DARK_BLUE)
+ CS_AT[3].set_color(color = DARK_BLUE)
+ CS_AT[5].set_color(color = DARK_BLUE)
+ CS_AT[7].set_color(color = DARK_BLUE)
+ CS_AT.scale(0.75)
+
+ ac_defn2 = TextMobject("According to Definition 2 : ")
+ equivalent = TextMobject(r"Hence, Definition 1 $\equiv$ Definition 2")
+ equivalent.move_to(3*DOWN)
+
+ self.play(Write(CS_AT),FadeIn(ac_defn2))
+ self.play(Write(equivalent))
+
+ self.wait()
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file7_Row_space_Orthogonal_Complements.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file7_Row_space_Orthogonal_Complements.py
new file mode 100644
index 0000000..c81d370
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file7_Row_space_Orthogonal_Complements.py
@@ -0,0 +1,150 @@
+from manimlib.imports import *
+class row_space(LinearTransformationScene):
+ def construct(self):
+
+ self.setup()
+ self.wait()
+
+ o = TextMobject(r"This is the original vector space $R^2$(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 $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$i.e. the null space.")
+ 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)
+ arrow.set_color(YELLOW)
+ arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT))
+ arrow1.set_color(YELLOW)
+ arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT))
+ arrow2.set_color(YELLOW)
+ arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT))
+ arrow3.set_color(YELLOW)
+ arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT)
+ arrow4.set_color(YELLOW)
+ arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT))
+ arrow5.set_color(YELLOW)
+ arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT))
+ arrow6.set_color(YELLOW)
+ arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT))
+ arrow7.set_color(YELLOW)
+
+ 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))
+
+ o1 = TextMobject("Consider a set of vectors which are linear")
+ o2 = TextMobject(r"span of a $\left(\begin{array}{c} 1 \\ -1 \end{array}\right)$i.e. the row space.")
+ 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))
+
+ rarrow = Arrow(start = ORIGIN, end = -UP+RIGHT)
+ rarrow.set_color(PURPLE)
+ rarrow1 = Arrow(start = ORIGIN, end = 2*(-UP+RIGHT))
+ rarrow1.set_color(PURPLE)
+ rarrow2 = Arrow(start = ORIGIN, end = 3*(-UP+RIGHT))
+ rarrow2.set_color(PURPLE)
+ rarrow3 = Arrow(start = ORIGIN, end = 4*(-UP+RIGHT))
+ rarrow3.set_color(PURPLE)
+ rarrow4 = Arrow(start = ORIGIN, end = -DOWN+LEFT)
+ rarrow4.set_color(PURPLE)
+ rarrow5 = Arrow(start = ORIGIN, end = 2*(-DOWN+LEFT))
+ rarrow5.set_color(PURPLE)
+ rarrow6 = Arrow(start = ORIGIN, end = 3*(-DOWN+LEFT))
+ rarrow6.set_color(PURPLE)
+ rarrow7 = Arrow(start = ORIGIN, end = 4*(-DOWN+LEFT))
+ rarrow7.set_color(PURPLE)
+
+ rarrow.scale(1.5)
+ rarrow1.scale(1.2)
+ rarrow2.scale(1.15)
+ rarrow3.scale(1.1)
+ rarrow4.scale(1.5)
+ rarrow5.scale(1.2)
+ rarrow6.scale(1.15)
+ rarrow7.scale(1.1)
+
+ self.play(ShowCreation(rarrow),
+ ShowCreation(rarrow1),
+ ShowCreation(rarrow2),
+ ShowCreation(rarrow3),
+ ShowCreation(rarrow4),
+ ShowCreation(rarrow5),
+ ShowCreation(rarrow6),
+ ShowCreation(rarrow7),
+ )
+
+ 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)
+
+ self.add_transformable_mobject(rarrow)
+ self.add_transformable_mobject(rarrow1)
+ self.add_transformable_mobject(rarrow2)
+ self.add_transformable_mobject(rarrow3)
+ self.add_transformable_mobject(rarrow4)
+ self.add_transformable_mobject(rarrow5)
+ self.add_transformable_mobject(rarrow6)
+ self.add_transformable_mobject(rarrow7)
+
+ o1 = TextMobject("Notice, entire set of vectors which belong to the null space of $A$ transforms to zero")
+ o2 = TextMobject(r"and entire set of vectors which belong to the row space of $A$ transforms to column space of $A$.")
+ o1.move_to(2.5*DOWN)
+ o2.move_to(3.5*DOWN)
+ 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(3)
+
+ self.play(FadeOut(o1), FadeOut(o2))
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file8_Left_Null_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file8_Left_Null_Space.py
new file mode 100755
index 0000000..fd05e75
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file8_Left_Null_Space.py
@@ -0,0 +1,26 @@
+from manimlib.imports import *
+
+class Left_Null_Space(Scene):
+ def construct(self):
+
+ A = TextMobject(r"Left Null Space of A")
+ A.move_to(3*UP)
+ defn = TextMobject(r"It is a vector space that consists of all the solution $x$ to the equation $A^{T}x=0$")
+ defn.move_to(2*UP)
+ defn.scale(0.75)
+ eqn1 = TextMobject(r"$A^{T}x=0 \cdots (i)$")
+ eqn1.move_to(UP)
+ self.play(Write(A), Write(defn), Write(eqn1),run_time=1)
+ statement = TextMobject(r"Taking transpose of eqn $(i)$")
+ eqn = TextMobject(r"$(A^{T}x)^{T}=0$")
+ eqn.move_to(DOWN)
+ eqn2 = TextMobject(r"$x^{T}(A^{T})^{T}=0$")
+ eqn2.move_to(DOWN)
+ eqn3 = TextMobject(r"$x^{T}A=0$")
+ eqn3.move_to(DOWN)
+ self.play(Write(statement),Write(eqn),run_time=1)
+ self.wait(0.5)
+ self.play(Transform(eqn,eqn2),run_time=1)
+ self.wait(0.5)
+ self.play(Transform(eqn,eqn3),run_time=1)
+ self.wait(0.5)
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file9_left_null_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file9_left_null_space.py
new file mode 100644
index 0000000..61285be
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file9_left_null_space.py
@@ -0,0 +1,186 @@
+from manimlib.imports import *
+class row_space(LinearTransformationScene):
+ def construct(self):
+
+ self.setup()
+ self.wait()
+
+ o = TextMobject(r"This is the original vector space $R^2$(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 $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$i.e. the null space.")
+ 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)
+ arrow.set_color(YELLOW)
+ arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT))
+ arrow1.set_color(YELLOW)
+ arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT))
+ arrow2.set_color(YELLOW)
+ arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT))
+ arrow3.set_color(YELLOW)
+ arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT)
+ arrow4.set_color(YELLOW)
+ arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT))
+ arrow5.set_color(YELLOW)
+ arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT))
+ arrow6.set_color(YELLOW)
+ arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT))
+ arrow7.set_color(YELLOW)
+
+ 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))
+
+ o1 = TextMobject("Consider a set of vectors which are linear")
+ o2 = TextMobject(r"span of a vector $\left(\begin{array}{c} 1 \\ -1 \end{array}\right)$i.e. the row space.")
+ 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))
+
+ rarrow = Arrow(start = ORIGIN, end = -UP+RIGHT)
+ rarrow.set_color(PURPLE)
+ rarrow1 = Arrow(start = ORIGIN, end = 2*(-UP+RIGHT))
+ rarrow1.set_color(PURPLE)
+ rarrow2 = Arrow(start = ORIGIN, end = 3*(-UP+RIGHT))
+ rarrow2.set_color(PURPLE)
+ rarrow3 = Arrow(start = ORIGIN, end = 4*(-UP+RIGHT))
+ rarrow3.set_color(PURPLE)
+ rarrow4 = Arrow(start = ORIGIN, end = -DOWN+LEFT)
+ rarrow4.set_color(PURPLE)
+ rarrow5 = Arrow(start = ORIGIN, end = 2*(-DOWN+LEFT))
+ rarrow5.set_color(PURPLE)
+ rarrow6 = Arrow(start = ORIGIN, end = 3*(-DOWN+LEFT))
+ rarrow6.set_color(PURPLE)
+ rarrow7 = Arrow(start = ORIGIN, end = 4*(-DOWN+LEFT))
+ rarrow7.set_color(PURPLE)
+
+ rarrow.scale(1.5)
+ rarrow1.scale(1.2)
+ rarrow2.scale(1.15)
+ rarrow3.scale(1.1)
+ rarrow4.scale(1.5)
+ rarrow5.scale(1.2)
+ rarrow6.scale(1.15)
+ rarrow7.scale(1.1)
+
+ self.play(ShowCreation(rarrow),
+ ShowCreation(rarrow1),
+ ShowCreation(rarrow2),
+ ShowCreation(rarrow3),
+ ShowCreation(rarrow4),
+ ShowCreation(rarrow5),
+ ShowCreation(rarrow6),
+ ShowCreation(rarrow7),
+ )
+
+ 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)
+
+ self.add_transformable_mobject(rarrow)
+ self.add_transformable_mobject(rarrow1)
+ self.add_transformable_mobject(rarrow2)
+ self.add_transformable_mobject(rarrow3)
+ self.add_transformable_mobject(rarrow4)
+ self.add_transformable_mobject(rarrow5)
+ self.add_transformable_mobject(rarrow6)
+ self.add_transformable_mobject(rarrow7)
+
+ matrix = [[1,-1],[1,-1]]
+ self.apply_matrix(matrix)
+ self.wait(3)
+
+ o1 = TextMobject("Consider a set of vectors which are linear span of a vector")
+ o2 = TextMobject(r"$\left(\begin{array}{c} 1 \\ -1 \end{array}\right)$ which is orthogonal to column space i.e. Left Null Space")
+ o1.move_to(2*DOWN)
+ o2.move_to(2.75*DOWN)
+ o1.scale(0.7)
+ o2.scale(0.7)
+ o1.add_background_rectangle()
+ o2.add_background_rectangle()
+ self.play(Write(o1))
+ self.play(Write(o2))
+
+ rarrow = Arrow(start = ORIGIN, end = -UP+RIGHT)
+ rarrow.set_color(YELLOW)
+ rarrow1 = Arrow(start = ORIGIN, end = 2*(-UP+RIGHT))
+ rarrow1.set_color(YELLOW)
+ rarrow2 = Arrow(start = ORIGIN, end = 3*(-UP+RIGHT))
+ rarrow2.set_color(YELLOW)
+ rarrow3 = Arrow(start = ORIGIN, end = 4*(-UP+RIGHT))
+ rarrow3.set_color(YELLOW)
+ rarrow4 = Arrow(start = ORIGIN, end = -DOWN+LEFT)
+ rarrow4.set_color(YELLOW)
+ rarrow5 = Arrow(start = ORIGIN, end = 2*(-DOWN+LEFT))
+ rarrow5.set_color(YELLOW)
+ rarrow6 = Arrow(start = ORIGIN, end = 3*(-DOWN+LEFT))
+ rarrow6.set_color(YELLOW)
+ rarrow7 = Arrow(start = ORIGIN, end = 4*(-DOWN+LEFT))
+ rarrow7.set_color(YELLOW)
+
+ rarrow.scale(1.5)
+ rarrow1.scale(1.2)
+ rarrow2.scale(1.15)
+ rarrow3.scale(1.1)
+ rarrow4.scale(1.5)
+ rarrow5.scale(1.2)
+ rarrow6.scale(1.15)
+ rarrow7.scale(1.1)
+
+ self.play(ShowCreation(rarrow),
+ ShowCreation(rarrow1),
+ ShowCreation(rarrow2),
+ ShowCreation(rarrow3),
+ ShowCreation(rarrow4),
+ ShowCreation(rarrow5),
+ ShowCreation(rarrow6),
+ ShowCreation(rarrow7),
+ )
+
+ self.wait(2)
+ self.play(FadeOut(o1), FadeOut(o2))
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
deleted file mode 100644
index c686710..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py
+++ /dev/null
@@ -1,91 +0,0 @@
-from manimlib.imports import *
-class null_space(LinearTransformationScene):
- def construct(self):
-
- self.setup()
- self.wait()
-
- o = TextMobject(r"This is the original vector space $R^2$(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))
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
deleted file mode 100644
index c81d370..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/row_space.py
+++ /dev/null
@@ -1,150 +0,0 @@
-from manimlib.imports import *
-class row_space(LinearTransformationScene):
- def construct(self):
-
- self.setup()
- self.wait()
-
- o = TextMobject(r"This is the original vector space $R^2$(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 $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$i.e. the null space.")
- 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)
- arrow.set_color(YELLOW)
- arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT))
- arrow1.set_color(YELLOW)
- arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT))
- arrow2.set_color(YELLOW)
- arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT))
- arrow3.set_color(YELLOW)
- arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT)
- arrow4.set_color(YELLOW)
- arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT))
- arrow5.set_color(YELLOW)
- arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT))
- arrow6.set_color(YELLOW)
- arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT))
- arrow7.set_color(YELLOW)
-
- 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))
-
- o1 = TextMobject("Consider a set of vectors which are linear")
- o2 = TextMobject(r"span of a $\left(\begin{array}{c} 1 \\ -1 \end{array}\right)$i.e. the row space.")
- 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))
-
- rarrow = Arrow(start = ORIGIN, end = -UP+RIGHT)
- rarrow.set_color(PURPLE)
- rarrow1 = Arrow(start = ORIGIN, end = 2*(-UP+RIGHT))
- rarrow1.set_color(PURPLE)
- rarrow2 = Arrow(start = ORIGIN, end = 3*(-UP+RIGHT))
- rarrow2.set_color(PURPLE)
- rarrow3 = Arrow(start = ORIGIN, end = 4*(-UP+RIGHT))
- rarrow3.set_color(PURPLE)
- rarrow4 = Arrow(start = ORIGIN, end = -DOWN+LEFT)
- rarrow4.set_color(PURPLE)
- rarrow5 = Arrow(start = ORIGIN, end = 2*(-DOWN+LEFT))
- rarrow5.set_color(PURPLE)
- rarrow6 = Arrow(start = ORIGIN, end = 3*(-DOWN+LEFT))
- rarrow6.set_color(PURPLE)
- rarrow7 = Arrow(start = ORIGIN, end = 4*(-DOWN+LEFT))
- rarrow7.set_color(PURPLE)
-
- rarrow.scale(1.5)
- rarrow1.scale(1.2)
- rarrow2.scale(1.15)
- rarrow3.scale(1.1)
- rarrow4.scale(1.5)
- rarrow5.scale(1.2)
- rarrow6.scale(1.15)
- rarrow7.scale(1.1)
-
- self.play(ShowCreation(rarrow),
- ShowCreation(rarrow1),
- ShowCreation(rarrow2),
- ShowCreation(rarrow3),
- ShowCreation(rarrow4),
- ShowCreation(rarrow5),
- ShowCreation(rarrow6),
- ShowCreation(rarrow7),
- )
-
- 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)
-
- self.add_transformable_mobject(rarrow)
- self.add_transformable_mobject(rarrow1)
- self.add_transformable_mobject(rarrow2)
- self.add_transformable_mobject(rarrow3)
- self.add_transformable_mobject(rarrow4)
- self.add_transformable_mobject(rarrow5)
- self.add_transformable_mobject(rarrow6)
- self.add_transformable_mobject(rarrow7)
-
- o1 = TextMobject("Notice, entire set of vectors which belong to the null space of $A$ transforms to zero")
- o2 = TextMobject(r"and entire set of vectors which belong to the row space of $A$ transforms to column space of $A$.")
- o1.move_to(2.5*DOWN)
- o2.move_to(3.5*DOWN)
- 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(3)
-
- self.play(FadeOut(o1), FadeOut(o2))
\ No newline at end of file
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
deleted file mode 100644
index fb31881..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py
+++ /dev/null
@@ -1,75 +0,0 @@
-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 a651ff753110ac721aa4e7ac47110061b4fa0669 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:02:55 +0530
Subject: testing gif updates
---
.../file10_Left_Null_Space_pSv8iio_d5Sy9qS.gif | Bin 0 -> 1744023 bytes
.../file10_NOT_in_lecture_note_Column_Space.py | 30 ---------------------
.../file18_NOT_in_lecture_note_Column_Space.py | 30 +++++++++++++++++++++
3 files changed, 30 insertions(+), 30 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_Left_Null_Space_pSv8iio_d5Sy9qS.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file18_NOT_in_lecture_note_Column_Space.py
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_Left_Null_Space_pSv8iio_d5Sy9qS.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_Left_Null_Space_pSv8iio_d5Sy9qS.gif
new file mode 100644
index 0000000..3f50635
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_Left_Null_Space_pSv8iio_d5Sy9qS.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
deleted file mode 100644
index afe4f9a..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file10_NOT_in_lecture_note_Column_Space.py
+++ /dev/null
@@ -1,30 +0,0 @@
-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)
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file18_NOT_in_lecture_note_Column_Space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file18_NOT_in_lecture_note_Column_Space.py
new file mode 100644
index 0000000..afe4f9a
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file18_NOT_in_lecture_note_Column_Space.py
@@ -0,0 +1,30 @@
+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)
\ No newline at end of file
--
cgit
From 350ccaf2453180475406256cc8d4c9bfe9db3880 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:59:49 +0530
Subject: updated folder name and README.md files
---
.../The-Four-Fundamental-Subspaces/README.md | 30 ++++++++++++++++++++++
1 file changed, 30 insertions(+)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
new file mode 100644
index 0000000..c286736
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
@@ -0,0 +1,30 @@
+# Contributer: Archit Sangal
+My Github Account : architsangal
+
+
+## Sub-Topics Covered:
++ Linear Transformations (Linear Maps)
+
+#### Video 1: Visually understanding linear transformation(using grid)
+
+
+#### Video 2: Linear Transformation when form 1 is given
+
+
+#### Video 3: Matrix Representation Of Linear Transformation
+
+
+#### Video 4: Understand Linear Transformations visually
+
+
+#### Video 5: Uniform Scaling
+
+
+#### Fig.1 Horizontal Shear
+
+
+#### Fig.2 Vertical Shear
+
+
+#### Video 6: Rotation by an angle of in anticlockwise direction
+
\ No newline at end of file
--
cgit
From d55ea3bd90b05ab4ba731d822f347bcdbea67159 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 03:38:00 +0530
Subject: updated README.md files and gif(s) added
---
.../The-Four-Fundamental-Subspaces/README.md | 34 ++++++++++-----------
.../The-Four-Fundamental-Subspaces/file11.gif | Bin 0 -> 2669469 bytes
.../The-Four-Fundamental-Subspaces/file12.gif | Bin 0 -> 14917563 bytes
.../The-Four-Fundamental-Subspaces/file13.gif | Bin 0 -> 4257387 bytes
.../The-Four-Fundamental-Subspaces/file14.gif | Bin 0 -> 28796385 bytes
.../The-Four-Fundamental-Subspaces/file15.gif | Bin 0 -> 16130920 bytes
.../The-Four-Fundamental-Subspaces/file16.gif | Bin 0 -> 15623398 bytes
.../The-Four-Fundamental-Subspaces/file17.gif | Bin 0 -> 15546537 bytes
8 files changed, 17 insertions(+), 17 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file11.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file12.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file13.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file14.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file15.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file16.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file17.gif
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
index c286736..d21c4dc 100644
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
@@ -3,28 +3,28 @@ My Github Account : architsangal
## Sub-Topics Covered:
-+ Linear Transformations (Linear Maps)
++ The Four Fundamental Subspaces
-#### Video 1: Visually understanding linear transformation(using grid)
-
+#### Video 1: Video 1: Writing System of linear equations in form of Ax=b
+
-#### Video 2: Linear Transformation when form 1 is given
-
+#### Video 2: Column Space is same as the image of Linear Transformation
+
-#### Video 3: Matrix Representation Of Linear Transformation
-
+#### Video 3: Existance of Solution w.r.t. vector b
+
-#### Video 4: Understand Linear Transformations visually
-
+#### Video 4: Null Space (Visually)
+
-#### Video 5: Uniform Scaling
-
+#### Video 5: Definition 1 is equivalent to Definition 2
+
-#### Fig.1 Horizontal Shear
-
+#### Video 6: Relation between Row Space and Null Space
+
-#### Fig.2 Vertical Shear
-
+#### Fig. 1 Naming of the left null space
+
-#### Video 6: Rotation by an angle of in anticlockwise direction
-
\ No newline at end of file
+#### Video 7: Left Null Space(Visually)
+
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file11.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file11.gif
new file mode 100644
index 0000000..8f74202
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file11.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file12.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file12.gif
new file mode 100644
index 0000000..aa7403b
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file12.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file13.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file13.gif
new file mode 100644
index 0000000..34b54c7
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file13.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file14.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file14.gif
new file mode 100644
index 0000000..b77791b
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file14.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file15.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file15.gif
new file mode 100644
index 0000000..8bb24bf
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file15.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file16.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file16.gif
new file mode 100644
index 0000000..87e0026
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file16.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file17.gif b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file17.gif
new file mode 100644
index 0000000..eec819a
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/file17.gif differ
--
cgit
From adb74fe73333dcb49da9a144db948dba4ce1a0f0 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Tue, 14 Jul 2020 16:42:45 +0530
Subject: readme updated
---
.../linear-transformations/The-Four-Fundamental-Subspaces/README.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
index d21c4dc..378f506 100644
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
@@ -1,11 +1,11 @@
# Contributer: Archit Sangal
-My Github Account : architsangal
+My Github Account : architsangal (https://github.com/architsangal)
## Sub-Topics Covered:
+ The Four Fundamental Subspaces
-#### Video 1: Video 1: Writing System of linear equations in form of Ax=b
+#### Video 1: Writing System of linear equations in form of Ax=b

#### Video 2: Column Space is same as the image of Linear Transformation
--
cgit
From c7770570e1b6dc27853a5e37a68bda8c85e584bb Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Fri, 17 Jul 2020 22:36:00 +0530
Subject: Archit Sangal
---
.../linear-transformations/The-Four-Fundamental-Subspaces/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces')
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
index 378f506..6c90bf4 100644
--- a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
@@ -1,5 +1,5 @@
# Contributer: Archit Sangal
-My Github Account : architsangal (https://github.com/architsangal)
+My Github Account : architsangal (https://github.com/architsangal)
## Sub-Topics Covered:
--
cgit