From a66349fb0ee9c20eb6dc68b50290cc95424770ea Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Wed, 8 Jul 2020 00:52:56 +0530
Subject: gif added to Linear Transformations
---
...deo 2: Linear Transformation when form 1 is given | Bin 0 -> 50836502 bytes
...atrix Representation Of Linear Transformation.gif | Bin 0 -> 14973890 bytes
...deo 4: Understand Linear Transformations visually | Bin 0 -> 3303032 bytes
.../file13_Video 5: Uniform Scaling | Bin 0 -> 1389092 bytes
...otation by an angle of in anticlockwise direction | Bin 0 -> 9471592 bytes
...y understanding linear transformation(using grid) | Bin 0 -> 19348496 bytes
6 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid)
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given
new file mode 100644
index 0000000..e9f4b08
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif
new file mode 100644
index 0000000..017e0c7
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually
new file mode 100644
index 0000000..ba6c156
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling
new file mode 100644
index 0000000..fd9bc7b
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction
new file mode 100644
index 0000000..d996130
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid) b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid)
new file mode 100644
index 0000000..683f586
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid) differ
--
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
---
.../Linear-Transformations-(Linear-Maps)/README.md | 11 ++++++++
...understanding linear transformation(using grid) | Bin 19348496 -> 0 bytes
...understanding_linear_transformation(using_grid) | Bin 0 -> 19348496 bytes
.../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 +++++++++++++++++++++
6 files changed, 41 insertions(+), 30 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid)
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')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
new file mode 100644
index 0000000..8ff313b
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -0,0 +1,11 @@
+#### Video 1: Visually understanding linear transformation(using grid)
+)
+
+#### Video 2: Linear Transformation when form 1 is given
+
+
+#### Video 3: Matrix Representation Of Linear Transformation
+
+
+#### Divergence of a Remainder
+)
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid) b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid)
deleted file mode 100644
index 683f586..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video 1: Visually understanding linear transformation(using grid) and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid) b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid)
new file mode 100644
index 0000000..683f586
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid) differ
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 591ad26619bda2db76e4256fdf9058e236a75b9d Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:05:57 +0530
Subject: testing 2
---
.../Linear-Transformations-(Linear-Maps)/README.md | 2 +-
...y_understanding_linear_transformation(using_grid) | Bin 19348496 -> 0 bytes
...derstanding_linear_transformation(using_grid).gif | Bin 0 -> 19348496 bytes
3 files changed, 1 insertion(+), 1 deletion(-)
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
index 8ff313b..a52ccd8 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -1,5 +1,5 @@
#### Video 1: Visually understanding linear transformation(using grid)
-)
+.gif)
#### Video 2: Linear Transformation when form 1 is given

diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid) b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid)
deleted file mode 100644
index 683f586..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid) and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif
new file mode 100644
index 0000000..683f586
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif differ
--
cgit
From 23107701f28e4856a359d8c835ef7e396f9bd26e Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:08:57 +0530
Subject: testing 3
---
.../Linear-Transformations-(Linear-Maps)/README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
index a52ccd8..99a7b62 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -1,5 +1,5 @@
#### Video 1: Visually understanding linear transformation(using grid)
-.gif)
+
#### Video 2: Linear Transformation when form 1 is given

--
cgit
From 600cf20487c45263c71fa15993e4b12b212cceb7 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:23:57 +0530
Subject: testing 4
---
.../Linear-Transformations-(Linear-Maps)/README.md | 18 +++++++++++++++---
.../Linear-Transformations-(Linear-Maps)/file10.gif | Bin 0 -> 9471592 bytes
...deo 2: Linear Transformation when form 1 is given | Bin 50836502 -> 0 bytes
.../Linear-Transformations-(Linear-Maps)/file11.gif | Bin 0 -> 50836502 bytes
...atrix Representation Of Linear Transformation.gif | Bin 14973890 -> 0 bytes
.../Linear-Transformations-(Linear-Maps)/file12.gif | Bin 0 -> 19348496 bytes
...deo 4: Understand Linear Transformations visually | Bin 3303032 -> 0 bytes
.../file13_Video 5: Uniform Scaling | Bin 1389092 -> 0 bytes
...otation by an angle of in anticlockwise direction | Bin 9471592 -> 0 bytes
.../Linear-Transformations-(Linear-Maps)/file9.gif | Bin 0 -> 14973890 bytes
...derstanding_linear_transformation(using_grid).gif | Bin 19348496 -> 0 bytes
11 files changed, 15 insertions(+), 3 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9.gif
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
index 99a7b62..b266283 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -1,11 +1,23 @@
#### Video 1: Visually understanding linear transformation(using grid)
-
+
#### Video 2: Linear Transformation when form 1 is given
-
+
#### Video 3: Matrix Representation Of Linear Transformation

-#### Divergence of a Remainder
+#### 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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10.gif
new file mode 100644
index 0000000..d996130
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given
deleted file mode 100644
index e9f4b08..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file10_Video 2: Linear Transformation when form 1 is given and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11.gif
new file mode 100644
index 0000000..e9f4b08
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif
deleted file mode 100644
index 017e0c7..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file11_Video 3: Matrix Representation Of Linear Transformation.gif and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12.gif
new file mode 100644
index 0000000..683f586
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually
deleted file mode 100644
index ba6c156..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file12_Video 4: Understand Linear Transformations visually and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling
deleted file mode 100644
index fd9bc7b..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13_Video 5: Uniform Scaling and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction
deleted file mode 100644
index d996130..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14_Video 6: Rotation by an angle of in anticlockwise direction and /dev/null differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9.gif
new file mode 100644
index 0000000..017e0c7
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif
deleted file mode 100644
index 683f586..0000000
Binary files a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file9_Video_1:_Visually_understanding_linear_transformation(using_grid).gif and /dev/null differ
--
cgit
From 6e3b20ca47ec9431302fdd2cd863ad9ca82abfee Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:36:40 +0530
Subject: testing 5
---
.../Linear-Transformations-(Linear-Maps)/README.md | 14 +++++++-------
.../Linear-Transformations-(Linear-Maps)/file13.gif | Bin 0 -> 3303032 bytes
.../Linear-Transformations-(Linear-Maps)/file14.gif | Bin 0 -> 1389092 bytes
3 files changed, 7 insertions(+), 7 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
index b266283..8407533 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -1,23 +1,23 @@
#### 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
+
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13.gif
new file mode 100644
index 0000000..ba6c156
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file13.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14.gif b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14.gif
new file mode 100644
index 0000000..fd9bc7b
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file14.gif differ
--
cgit
From a637d8b87fc86f058af30d8855870921b7267b50 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 02:41:33 +0530
Subject: README.md updated with gif(s)
---
.../Linear-Transformations-(Linear-Maps)/README.md | 7 +++++++
FSF-2020/linear-algebra/linear-transformations/README.md | 5 +++--
2 files changed, 10 insertions(+), 2 deletions(-)
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
index 8407533..c286736 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/README.md
@@ -1,3 +1,10 @@
+# Contributer: Archit Sangal
+My Github Account : architsangal
+
+
+## Sub-Topics Covered:
++ Linear Transformations (Linear Maps)
+
#### Video 1: Visually understanding linear transformation(using grid)

diff --git a/FSF-2020/linear-algebra/linear-transformations/README.md b/FSF-2020/linear-algebra/linear-transformations/README.md
index 692201e..cf81d01 100644
--- a/FSF-2020/linear-algebra/linear-transformations/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/README.md
@@ -1,9 +1,10 @@
# Contributer: Archit Sangal
My Github Account : architsangal
+
## Sub-Topics Covered:
-+ Vector Space Homomorphisms (Linear Maps)
++ Linear Transformations (Linear Maps)
+ The Four Fundamental Subspaces
+ Rank-Nullity Theorem
+ Orthonormal basis
-+ Gramm-Schmidt Orthogonalization Process
++ Gramm-Schmidt Orthogonalization Process
\ 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
---
.../file1_introduction.py | 33 --
.../file2_projections.py | 79 -----
.../file3_orthonormal.py | 333 ---------------------
.../file4_Non_Standard_Basis.py | 51 ----
.../README.md | 18 ++
.../file1_introduction.py | 33 ++
.../file2_projections.py | 79 +++++
.../file3_orthonormal.py | 333 +++++++++++++++++++++
.../file4_Non_Standard_Basis.py | 51 ++++
.../file5.gif | Bin 0 -> 26037424 bytes
.../file6.gif | Bin 0 -> 5378916 bytes
.../file7.gif | Bin 0 -> 603223 bytes
.../file8.gif | Bin 0 -> 1027000 bytes
.../Orthonormal Basis/file1_orthogonal.py | 40 ---
.../file2_sum_of_projections_part1.py | 133 --------
.../file3_sum_of_projections_part2.py | 173 -----------
.../Orthonormal-Basis/README.md | 30 ++
.../Orthonormal-Basis/file1_orthogonal.py | 40 +++
.../file2_sum_of_projections_part1.py | 133 ++++++++
.../file3_sum_of_projections_part2.py | 173 +++++++++++
.../The-Four-Fundamental-Subspaces/README.md | 30 ++
.../The-Rank-Nullity-Theorem/README.md | 30 ++
22 files changed, 950 insertions(+), 842 deletions(-)
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_introduction.py
delete mode 100755 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_projections.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_orthonormal.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file4_Non_Standard_Basis.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/README.md
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file1_introduction.py
create mode 100755 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file2_projections.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file3_orthonormal.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file4_Non_Standard_Basis.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file5.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file6.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file7.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file8.gif
delete mode 100755 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py
delete mode 100755 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py
delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md
create mode 100755 FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file1_orthogonal.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
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/README.md
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_introduction.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_introduction.py
deleted file mode 100644
index ccd23c9..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_introduction.py
+++ /dev/null
@@ -1,33 +0,0 @@
-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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_projections.py
deleted file mode 100755
index dd4b8d4..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_projections.py
+++ /dev/null
@@ -1,79 +0,0 @@
-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"Consider 2 linearly independent vectors $a$ and $b$")
- text.set_color(DARK_BLUE)
- 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)
- 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(3*UP+4*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))
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_orthonormal.py
deleted file mode 100644
index af51fc6..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_orthonormal.py
+++ /dev/null
@@ -1,333 +0,0 @@
-from manimlib.imports import *
-
-class Algo(ThreeDScene):
- def construct(self):
-
- 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))
-
- 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), FadeOut(arrow_a), FadeOut(arrow_o))
- 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"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()
- 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.6)
- text.set_color(GOLD_E)
- 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.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(axis[3]),
- 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(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(PURPLE_E)
- last_a_tip.set_color(PURPLE_E)
-
- self.wait()
- text = TextMobject(r"Take projection on $\alpha_2$")
- 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))
- 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.set_color(PURPLE_E)
- text.scale(0.6)
- self.add_fixed_in_frame_mobjects(text)
- text.move_to(3*DOWN+3.5*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(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(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"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)
- 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)
- 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.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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file4_Non_Standard_Basis.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file4_Non_Standard_Basis.py
deleted file mode 100644
index 6410a2c..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file4_Non_Standard_Basis.py
+++ /dev/null
@@ -1,51 +0,0 @@
-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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/README.md b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/README.md
new file mode 100644
index 0000000..0305ba7
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/README.md
@@ -0,0 +1,18 @@
+# Contributer: Archit Sangal
+My Github Account : architsangal
+
+
+## Sub-Topics Covered:
++ Gramm-Schmidt Orthogonalization Process
+
+#### Video 1: Introduction to Gram-Schmidt Orthogonalization Process
+
+
+#### Video 2: Obtaining orthogonal vectors using projections
+
+
+#### Video 3: Visual Explanation of how Gram-Schmidt Orthogonalization Process give mutually orthonormal vectors
+
+
+#### Video 4: Example of Orthonormal Vectors which are different from standard basis
+
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file1_introduction.py b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file1_introduction.py
new file mode 100644
index 0000000..ccd23c9
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file1_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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file2_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file2_projections.py
new file mode 100755
index 0000000..dd4b8d4
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file2_projections.py
@@ -0,0 +1,79 @@
+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"Consider 2 linearly independent vectors $a$ and $b$")
+ text.set_color(DARK_BLUE)
+ 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)
+ 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(3*UP+4*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))
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file3_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file3_orthonormal.py
new file mode 100644
index 0000000..af51fc6
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file3_orthonormal.py
@@ -0,0 +1,333 @@
+from manimlib.imports import *
+
+class Algo(ThreeDScene):
+ def construct(self):
+
+ 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))
+
+ 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), FadeOut(arrow_a), FadeOut(arrow_o))
+ 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"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()
+ 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.6)
+ text.set_color(GOLD_E)
+ 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.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(axis[3]),
+ 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(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(PURPLE_E)
+ last_a_tip.set_color(PURPLE_E)
+
+ self.wait()
+ text = TextMobject(r"Take projection on $\alpha_2$")
+ 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))
+ 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.set_color(PURPLE_E)
+ text.scale(0.6)
+ self.add_fixed_in_frame_mobjects(text)
+ text.move_to(3*DOWN+3.5*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(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(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"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)
+ 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)
+ 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.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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file4_Non_Standard_Basis.py b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file4_Non_Standard_Basis.py
new file mode 100644
index 0000000..6410a2c
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file4_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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file5.gif b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file5.gif
new file mode 100644
index 0000000..2ce3577
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file5.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file6.gif b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file6.gif
new file mode 100644
index 0000000..7cd7b3d
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file6.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file7.gif b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file7.gif
new file mode 100644
index 0000000..19a13dd
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file7.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file8.gif b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file8.gif
new file mode 100644
index 0000000..0ef4551
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Gram-Schmidt-Orthonormalization-Process/file8.gif differ
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
deleted file mode 100755
index a5d96f5..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py
+++ /dev/null
@@ -1,40 +0,0 @@
-from manimlib.imports import *
-
-class Orthogonal(ThreeDScene):
- def construct(self):
- axes = ThreeDAxes()
- self.play(ShowCreation(axes))
- 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(-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 = UP)
- arrow2.set_color(DARK_BLUE)
- 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,1])
- arrow3.set_color(DARK_BLUE)
- 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()
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
deleted file mode 100755
index 81a0888..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py
+++ /dev/null
@@ -1,133 +0,0 @@
-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_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_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_1 + 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
deleted file mode 100644
index 9d25192..0000000
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py
+++ /dev/null
@@ -1,173 +0,0 @@
-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"$ = \frac{3}{\sqrt{2}} + \frac{4}{\sqrt{2}}Â + 0 = \frac{7}{\sqrt{2}}$")
- eq2 = TextMobject(r"$ = \frac{-3}{\sqrt{2}} + \frac{4}{\sqrt{2}}Â + 0 =\frac{1}{\sqrt{2}}$")
- eq3 = TextMobject(r"$ =Â 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
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md
new file mode 100644
index 0000000..c286736
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/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
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
new file mode 100755
index 0000000..a5d96f5
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file1_orthogonal.py
@@ -0,0 +1,40 @@
+from manimlib.imports import *
+
+class Orthogonal(ThreeDScene):
+ def construct(self):
+ axes = ThreeDAxes()
+ self.play(ShowCreation(axes))
+ 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(-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 = UP)
+ arrow2.set_color(DARK_BLUE)
+ 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,1])
+ arrow3.set_color(DARK_BLUE)
+ 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()
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_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_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_1 + 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"$ = \frac{3}{\sqrt{2}} + \frac{4}{\sqrt{2}}Â + 0 = \frac{7}{\sqrt{2}}$")
+ eq2 = TextMobject(r"$ = \frac{-3}{\sqrt{2}} + \frac{4}{\sqrt{2}}Â + 0 =\frac{1}{\sqrt{2}}$")
+ eq3 = TextMobject(r"$ =Â 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
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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md
new file mode 100644
index 0000000..c286736
--- /dev/null
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/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 cb8944b427c93bff78b9b4d4b172613135726ee1 Mon Sep 17 00:00:00 2001
From: Archit Sangal
Date: Thu, 9 Jul 2020 03:11:35 +0530
Subject: updated folder name and README.md files
---
.../Orthonormal-Basis/README.md | 29 +++++----------------
.../Orthonormal-Basis/file4.gif | Bin 0 -> 1733367 bytes
.../Orthonormal-Basis/file5.gif | Bin 0 -> 43092116 bytes
.../Orthonormal-Basis/file6.gif | Bin 0 -> 37493895 bytes
4 files changed, 7 insertions(+), 22 deletions(-)
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file4.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file5.gif
create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file6.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md
index c286736..55aba66 100644
--- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/README.md
@@ -3,28 +3,13 @@ My Github Account : architsangal
## Sub-Topics Covered:
-+ Linear Transformations (Linear Maps)
++ Orthonormal Bases
-#### Video 1: Visually understanding linear transformation(using grid)
-
+#### Video 1: Example of Orthonormal bases
+
-#### Video 2: Linear Transformation when form 1 is given
-
+#### Video 2: Adding the projections of a vector on orthonormal basis will produce the same vector
+
-#### 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
+#### Video 3: Relating the example and the property
+
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file4.gif b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file4.gif
new file mode 100644
index 0000000..4891350
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file4.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file5.gif b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file5.gif
new file mode 100644
index 0000000..47fc316
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file5.gif differ
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file6.gif b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file6.gif
new file mode 100644
index 0000000..d4ae50c
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/Orthonormal-Basis/file6.gif differ
--
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
.../The-Rank-Nullity-Theorem/README.md | 25 ++-------------
.../The-Rank-Nullity-Theorem/file2.gif | Bin 0 -> 34430418 bytes
10 files changed, 19 insertions(+), 40 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
create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/file2.gif
(limited to 'FSF-2020')
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
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md
index c286736..ee1a337 100644
--- a/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md
+++ b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/README.md
@@ -3,28 +3,7 @@ My Github Account : architsangal
## Sub-Topics Covered:
-+ Linear Transformations (Linear Maps)
++ The Rank-Nullity Theorem
#### 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
+
\ No newline at end of file
diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/file2.gif b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/file2.gif
new file mode 100644
index 0000000..46efc66
Binary files /dev/null and b/FSF-2020/linear-algebra/linear-transformations/The-Rank-Nullity-Theorem/file2.gif differ
--
cgit
From e21bbdde2d574b10a073b5f7788748212bd9317e Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:37:20 +0530
Subject: Update and rename file1_flux_through_sphere.py to
file1_flux_through_circle.py
---
.../flux/file1_flux_through_circle.py | 43 +++++++++++++++++++
.../flux/file1_flux_through_sphere.py | 50 ----------------------
2 files changed, 43 insertions(+), 50 deletions(-)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.py
delete mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.py
new file mode 100644
index 0000000..e418a96
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.py
@@ -0,0 +1,43 @@
+from manimlib.imports import *
+def pendulum_vector_field_func(point):
+ #theta, omega = point[:2]
+ return np.array([
+ point[0],
+ point[1],
+ point[2],
+ ])
+class F2D(Scene):
+ CONFIG = {
+ # "func": cylinder_flow_vec or_field,
+ "flow_time": 5,
+ }
+ def initialize_vector_field(self):
+ self.vector_field = VectorField(
+ pendulum_vector_field_func,
+ )
+ self.vector_field.sort(get_norm)
+ def construct(self):
+ # plane = NumberPlane(color=RED)
+ # plane.add(plane.get_axis_labels())
+ # self.add(plane)
+ self.initialize_vector_field()
+
+ field = self.vector_field
+ c1=Circle(radius=3,color=BLUE)
+ self.play(ShowCreation(field), run_time=7)
+ self.play(ShowCreation(c1))
+ self.wait(3)
+ lines = StreamLines(
+ pendulum_vector_field_func,
+ virtual_time=3,
+ min_magnitude=0,
+ max_magnitude=2,
+ )
+ self.add(AnimatedStreamLines(
+ lines,
+ line_anim_class=ShowPassingFlash
+ ))
+ self.wait(2)
+ phase_point = VectorizedPoint(1*UP+1*RIGHT)
+ self.add(move_along_vector_field(phase_point, pendulum_vector_field_func))
+ self.wait(2)
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.py
deleted file mode 100644
index e07715e..0000000
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.py
+++ /dev/null
@@ -1,50 +0,0 @@
-from manimlib.imports import *
-class fluxsphere(ThreeDScene):
-
-
- def construct(self):
- s = Sphere(checkerboard_colors=[BLUE_D,BLUE_D])
- s.scale(2.3)
-
- n = VGroup(
- *[self.n(*self.func(u, v))
- for u in np.arange(0, PI, 0.4)
- for v in np.arange(0, TAU, 0.8)]
- )
-
-
-
- self.move_camera(0.8 * PI / 2, -0.45 * PI)
- self.play(Write(s))
- # self.play(Write(f))
- self.play(ShowCreation(n), run_time=4)
- # self.add(n)
- self.begin_ambient_camera_rotation(rate=0.1)
- self.wait(5)
-
-
- def func(self, u, v):
- return [
- np.cos(v) * np.sin(u),
- np.sin(v) * np.sin(u),
- np.cos(u)
- ]
-
- def vect(self, x, y, z):
- return np.array([
- x, y, z
- ])
-
- def n(self, x, y, z):
- vect = np.array([
- x,
- y,
- z
- ])
-
- mag = math.sqrt(vect[0] ** 2 + vect[1] ** 2 + vect[2] ** 2)
- v = Vector(
- (1.5/mag) * vect,
- color=RED_B,
- stroke_width=4).shift(2*x * RIGHT + 2*y * UP + 2*z * OUT)
- return v
--
cgit
From 2818ff1434902ace2bfabcd00d3bb8e13608a245 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:37:53 +0530
Subject: Delete file1_flux_through_sphere.gif
---
.../flux/file1_flux_through_sphere.gif | Bin 7695314 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.gif
deleted file mode 100644
index 43327bf..0000000
Binary files a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_sphere.gif and /dev/null differ
--
cgit
From d44656dc8fdd348e4bd482c8db0473fb2651b71a Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:39:49 +0530
Subject: Add files via upload
---
.../flux/file1_flux_through_circle.gif | Bin 0 -> 3561130 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.gif
new file mode 100644
index 0000000..c00076b
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file1_flux_through_circle.gif differ
--
cgit
From 6984c84d6f9e2cc49aa1b85ffb07ef98c0ac57e9 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:40:34 +0530
Subject: Delete file2_mobius_strip.py
---
.../flux/file2_mobius_strip.py | 81 ----------------------
1 file changed, 81 deletions(-)
delete mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.py
deleted file mode 100644
index 31b1990..0000000
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.py
+++ /dev/null
@@ -1,81 +0,0 @@
-from manimlib.imports import *
-
-class Mobius(ThreeDScene):
- def construct(self):
- axes=ThreeDAxes()
-
-
-
- R=2.5
-
-
- mobius = ParametricSurface(
- lambda u, v: np.array([
- (R+u*np.cos(v/2))*np.cos(v),
- (R+u*np.cos(v/2))*np.sin( v),
- u*np.sin(v/2)
- ]),
- u_min = -0.5, u_max = 0.5, v_min = 0, v_max = 2*PI,
-
- resolution=(6, 32)).fade(0.5) #Resolution of the surfaces
- circle=Circle(radius=2.5, color=BLUE)
-
-
-
- mobius.rotate(PI/2, axis=RIGHT)
- mobius.rotate(PI/2, axis=OUT)
- # # mobius.shift(RIGHT+OUT+DOWN)
-
-
-
-
-
- along = ParametricSurface(
- lambda u, v: np.array([
- (R+u*np.cos(v/2))*np.cos(v),
- (R+u*np.cos(v/2))*np.sin(v),
- 0
- ]),
- u_min = -0.5, u_max = 0.5, v_min = 0, v_max = 2*PI,
-
- resolution=(6, 32)).fade(0.5) #Resolution of the surfaces
- circle=Circle(radius=2.5, color=BLUE)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- self.set_camera_orientation(phi=75 * DEGREES,theta=-75*DEGREES)
-
- self.play(Write(mobius))
-
- self.wait(1)
- self.begin_ambient_camera_rotation(rate=0.65)
-
- self.wait(10)
- self.stop_ambient_camera_rotation()
- self.wait(1)
-
-
-
-
-
-
--
cgit
From f2542d5792a34bc3230cd67d37757bb727199a87 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:40:52 +0530
Subject: Delete file2_mobius_strip.gif
---
.../flux/file2_mobius_strip.gif | Bin 20725583 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.gif
deleted file mode 100644
index 9623046..0000000
Binary files a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file2_mobius_strip.gif and /dev/null differ
--
cgit
From 091a9d63628607de01f81c8002b9f708033228f3 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:43:06 +0530
Subject: Update file4_cube_surface.py
---
.../flux/file4_cube_surface.py | 174 +++++++++------------
1 file changed, 71 insertions(+), 103 deletions(-)
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.py
index 9301a00..146d955 100644
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.py
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.py
@@ -1,7 +1,4 @@
from manimlib.imports import*
-
-
-
class cuber(ThreeDScene):
def construct(self):
@@ -41,6 +38,7 @@ class cuber(ThreeDScene):
n1=TextMobject(r"$\vec{n}$",color=YELLOW)
n1.scale(0.8)
n1.rotate(PI/2,axis=RIGHT)
+ n1.rotate(PI,axis=OUT)
n1.shift(3*RIGHT+1.3*OUT+DOWN)
spaceloc = [[0,0,2],[1,0,2],[-1,0,2],[2,0,2],[-2,0,2],[3,0,2],[-3,0,2],
@@ -59,158 +57,128 @@ class cuber(ThreeDScene):
[0,3,2],[1,3,2],[-1,3,2],[2,3,2],[-2,3,2],[3,3,2],[-3,3,2]]
- veclist1=[Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E)]
+ veclist1=[Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY)]
- [veclist1[i].rotate(PI/4,axis=RIGHT) for i in range(10,30,1)]
- [veclist1[i].rotate(PI/4,axis=RIGHT) for i in range(40,80,2)]
- [veclist1[i].rotate(PI/6,axis=OUT) for i in range(98)]
- [veclist1[i].rotate(PI/8,axis=DOWN) for i in range(98)]
+ [veclist1[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist1[i].rotate(PI/6,axis=OUT) for i in range(42)]
+ [veclist1[i].rotate(PI/8,axis=DOWN) for i in range(42)]
vectorfield1=VGroup(*veclist1)
- [veclist1[i].shift(spaceloc[i]) for i in range(98)]
+ [veclist1[i].shift(spaceloc[i]) for i in range(42)]
- veclist2=[Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),
- Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E),Vector(color=GOLD_E)]
+ veclist2=[Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY)]
- [veclist2[i].rotate(PI/4,axis=RIGHT) for i in range(10,30,1)]
- [veclist2[i].rotate(PI/4,axis=RIGHT) for i in range(40,80,2)]
- [veclist2[i].rotate(PI/6,axis=OUT) for i in range(98)]
- [veclist2[i].rotate(PI/8,axis=DOWN) for i in range(98)]
+ [veclist2[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist2[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist2[i].rotate(PI/6,axis=OUT) for i in range(42)]
+ [veclist2[i].rotate(PI/8,axis=DOWN) for i in range(42)]
vectorfield2=VGroup(*veclist2)
- [veclist2[i].shift(spaceloc[i]) for i in range(98)]
+ [veclist2[i].shift(spaceloc[i]) for i in range(42)]
- veclist3=[Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector()]
+ veclist3=[Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY)]
- [veclist3[i].rotate(PI/4,axis=RIGHT) for i in range(10,30,1)]
- [veclist3[i].rotate(PI/4,axis=RIGHT) for i in range(40,80,2)]
- [veclist3[i].rotate(PI/6,axis=OUT) for i in range(98)]
- [veclist3[i].rotate(PI/8,axis=DOWN) for i in range(98)]
+ [veclist3[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist3[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist3[i].rotate(PI/6,axis=OUT) for i in range(42)]
+ [veclist3[i].rotate(PI/8,axis=DOWN) for i in range(42)]
vectorfield3=VGroup(*veclist3)
- [veclist3[i].shift(spaceloc[i]) for i in range(98)]
+ [veclist3[i].shift(spaceloc[i]) for i in range(42)]
- veclist4=[Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector(),
- Vector(color=RED),Vector(color=GREEN),Vector(color=BLUE),Vector(color=PINK),Vector(color=MAROON),Vector(color=GREEN),Vector()]
+ veclist4=[Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY)]
- [veclist4[i].rotate(PI/4,axis=RIGHT) for i in range(10,30,1)]
- [veclist4[i].rotate(PI/4,axis=RIGHT) for i in range(40,80,2)]
- [veclist4[i].rotate(PI/6,axis=OUT) for i in range(98)]
- [veclist4[i].rotate(PI/8,axis=DOWN) for i in range(98)]
+ [veclist4[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist4[i].rotate(PI/4,axis=RIGHT) for i in range(42)]
+ [veclist4[i].rotate(PI/6,axis=OUT) for i in range(42)]
+ [veclist4[i].rotate(PI/8,axis=DOWN) for i in range(42)]
vectorfield4=VGroup(*veclist4)
- [veclist4[i].shift(spaceloc[i]) for i in range(98)]
+ [veclist4[i].shift(spaceloc[i]) for i in range(42)]
vectorfield1.shift(1.5*DOWN)
vectorfield2.shift(IN+1.5*DOWN)
vectorfield3.shift(2*IN+1.5*DOWN)
- vectorfield4.shift(3*IN+1.5*DOWN)
+ vectorfield4.shift(3*IN+1.5*DOWN)
+
vectors=[vectorfield1,vectorfield2,vectorfield3,vectorfield4]
vectorfield=VGroup(*vectors)
- vectorfield.scale(1.25)
+ vectorfield.scale(1.3)
+
- fv=[Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),
- Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),
- Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),
- Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),Vector(color=ORANGE),
+ fv=[Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),Vector(color=GREY),
+ Vector(color=GREY)
]
- spaceloc2 = [[1.5,0.5,0.5],[1.5,1,0.5],[1.5,1.5,0.5],[1.5,2,0.5],
- [1.5,0.5,1],[1.5,1,1],[1.5,1.5,1],[1.5,2,1],
- [1.5,0.5,1.5],[1.5,1,1.5],[1.5,1.5,1.5],[1.5,2,1.5],
- [1.5,0.5,2],[1.5,1,2],[1.5,1.5,2],[1.5,2,2]]
-
- [fv[i].rotate(PI/4,axis=RIGHT) for i in range(1)]
- [fv[i].rotate(PI/6,axis=OUT) for i in range(16)]
- [fv[i].rotate(PI/8,axis=DOWN) for i in range(16)]
- [fv[i].shift(spaceloc2[i]) for i in range(16)]
+ spaceloc2 = [[1.5,0.5,0.5],[1.5,1,0.5],[1.5,1.5,0.5],
+ [1.5,0.5,1],[1.5,1,1],[1.5,1.5,1],
+ [1.5,0.5,1.5],[1.5,1,1.5],[1.5,1.5,1.5]
+ ]
+ [fv[i].rotate(PI/4,axis=RIGHT) for i in range(9)]
+ [fv[i].rotate(PI/6,axis=OUT) for i in range(9)]
+ [fv[i].rotate(PI/8,axis=DOWN) for i in range(9)]
+ [fv[i].shift(spaceloc2[i]) for i in range(9)]
fvfield=VGroup(*fv)
- fvfield.shift(0.5*IN+2*DOWN)
+ fvfield.shift(2*DOWN)
+ fvfield.scale(1.3)
- flux=TextMobject("Flux through one side of the cube").set_color(ORANGE)
- flux.shift(3*UP+1.5*LEFT)
+ flux=TextMobject("Flux through one side of the cube").set_color(GOLD)
+ flux.shift(3.5*UP+0.5*LEFT)
+ alll=[vectorfield1,vectorfield2,vectorfield3,vectorfield4,fvfield]
+ alllvectors=VGroup(*alll)
self.set_camera_orientation(phi=70 * DEGREES,theta=-75*DEGREES)
self.play(ShowCreation(axes),ShowCreation(axis_label))
- self.play(ShowCreation(vectorfield))
- self.add(fvfield)
- self.begin_ambient_camera_rotation(rate=0.01)
+ self.begin_ambient_camera_rotation(rate=0.2)
+ self.play(ShowCreation(alllvectors))
+ # self.add(fvfield)
self.play(ShowCreation(cube, run_time=1))
@@ -223,6 +191,6 @@ class cuber(ThreeDScene):
# self.play(ShowCreation(flux))
self.wait(1)
self.play(ShowCreation(v1),ShowCreation(n1))
- self.wait(6)
- # self.stop_ambient_camera_rotation()
-
+ self.wait(5)
+ self.stop_ambient_camera_rotation()
+ self.wait(1)
--
cgit
From 6ae54e19c9bea2dc70338c21a931d60c5d3ec44b Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:43:33 +0530
Subject: Delete file4_cube_surface.gif
---
.../flux/file4_cube_surface.gif | Bin 3620201 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif
deleted file mode 100644
index c6101cf..0000000
Binary files a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif and /dev/null differ
--
cgit
From c01ee7dbff27bd0a14bbe851d32f955ccc0c522a Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:47:05 +0530
Subject: Add files via upload
---
.../flux/file4_cube_surface.gif | Bin 0 -> 14969816 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif
new file mode 100644
index 0000000..001edb8
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/file4_cube_surface.gif differ
--
cgit
From 5fe5c1c126aff3118a2b975235dae78d55f28a09 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:48:35 +0530
Subject: Update README.md
---
.../triple-and-surface-integrals/flux/README.md | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/README.md b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/README.md
index 0af7aa1..97d6d10 100644
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/README.md
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/flux/README.md
@@ -1,7 +1,5 @@
-**file1_flux_through_sphere.py**
-
-**file2_mobius_strip.py**
-
+**file1_flux_through_circle.py**
+
**file3_normal_vector.py**

**file4_cube_surface.py**
--
cgit
From 147be193e665211eeef5170119084a93d122feec Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:52:12 +0530
Subject: Create file1_flux@_various_points.py
---
.../file1_flux@_various_points.py | 43 ++++++++++++++++++++++
1 file changed, 43 insertions(+)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
new file mode 100644
index 0000000..85567bb
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
@@ -0,0 +1,43 @@
+from manimlib.imports import *
+def pendulum_vector_field_func(point):
+ #theta, omega = point[:2]
+ return np.array([
+ 5*point[2]+point[1],
+ 3*point[0]+3*point[1],
+ 0,
+ ])
+class SimpleField(Scene):
+ CONFIG = {
+ #"func": cylinder_flow_vector_field,
+ "flow_time": 5,
+ }
+ def initialize_vector_field(self):
+ self.vector_field = VectorField(
+ pendulum_vector_field_func,
+ )
+ self.vector_field.sort(get_norm)
+ def construct(self):
+ # plane = NumberPlane(color=RED)
+ # plane.add(plane.get_axis_labels())
+ # self.add(plane)
+ # self.initialize_vector_field()
+
+ c1=Circle(radius=3,color=RED)
+ field = self.vector_field
+ self.play(c1)
+ self.play(ShowCreation(field), run_time=10)
+ self.wait(3)
+ lines = StreamLines(
+ pendulum_vector_field_func,
+ virtual_time=3,
+ min_magnitude=0,
+ max_magnitude=2,
+ )
+ self.add(AnimatedStreamLines(
+ lines,
+ line_anim_class=ShowPassingFlash
+ ))
+ self.wait(2)
+ phase_point = VectorizedPoint(1*UP+1*RIGHT)
+ self.add(move_along_vector_field(phase_point, pendulum_vector_field_func))
+ self.wait(2)
--
cgit
From a78063c421876d66fd1c1750a5a5e87cdd5274ca Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:55:35 +0530
Subject: Update file1_flux@_various_points.py
---
.../file1_flux@_various_points.py | 33 ++++++++++++++++------
1 file changed, 25 insertions(+), 8 deletions(-)
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
index 85567bb..6727982 100644
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.py
@@ -2,11 +2,11 @@ from manimlib.imports import *
def pendulum_vector_field_func(point):
#theta, omega = point[:2]
return np.array([
- 5*point[2]+point[1],
- 3*point[0]+3*point[1],
+ 5*point[0]+point[1],
+ 3*point[1]+3*point[1],
0,
])
-class SimpleField(Scene):
+class SF(Scene):
CONFIG = {
#"func": cylinder_flow_vector_field,
"flow_time": 5,
@@ -20,13 +20,30 @@ class SimpleField(Scene):
# plane = NumberPlane(color=RED)
# plane.add(plane.get_axis_labels())
# self.add(plane)
- # self.initialize_vector_field()
- c1=Circle(radius=3,color=RED)
+ A=TextMobject("The net flux through the green circular region is zero",tex_to_color_map={"green": GREEN})
+ B=TextMobject("The net flux through the blue circular region is non-zero",tex_to_color_map={"blue": BLUE})
+
+ c1=Circle(color=GREEN, radius=1.5)
+ c1.shift(4*LEFT+2.2*UP)
+ c2=Circle(color=BLUE, radius=1.5)
+
+
+
+
+ self.play(ShowCreation(A))
+ self.wait(0.5)
+ self.play(ApplyMethod(A.shift, (0.8*UP+0.2*LEFT)))
+ self.play(ShowCreation(B))
+ # self.play(ApplyMethod(B.shift, (2*UP)))
+ self.wait(2)
+ self.play(FadeOut(A),FadeOut(B))
+ self.initialize_vector_field()
field = self.vector_field
- self.play(c1)
- self.play(ShowCreation(field), run_time=10)
- self.wait(3)
+ self.play(ShowCreation(field), run_time=4)
+ self.play(ShowCreation(c1))
+ self.play(ShowCreation(c2))
+ self.wait(1)
lines = StreamLines(
pendulum_vector_field_func,
virtual_time=3,
--
cgit
From 52bda3b678e7c9ab56e3e141f4d80a6cb32156a2 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:57:30 +0530
Subject: Add files via upload
---
.../file1_flux@_various_points.gif | Bin 0 -> 4439959 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.gif
new file mode 100644
index 0000000..6c32b94
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file1_flux@_various_points.gif differ
--
cgit
From f491a97683c327d4b8d515ef5af235f13e4fab14 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 08:59:12 +0530
Subject: Create file2_different_valuesof_Div.py
---
.../file2_different_valuesof_Div.py | 91 ++++++++++++++++++++++
1 file changed, 91 insertions(+)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.py b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.py
new file mode 100644
index 0000000..921047d
--- /dev/null
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.py
@@ -0,0 +1,91 @@
+from manimlib.imports import *
+class Div(Scene):
+ def construct(self):
+ one=TextMobject(r"Div$ \vec{F} < 0$ ").set_color(RED)
+ two=TextMobject(r"Div$ \vec{F} = 0$ ").set_color(BLUE)
+ three=TextMobject(r"Div$ \vec{F} > 0$ ").set_color(YELLOW)
+
+ one.shift(2.3*DOWN)
+ two.shift(2.3*DOWN)
+ three.shift(2.3*DOWN)
+
+
+ a=Dot(color=RED)
+ a.shift(0.1*LEFT)
+ b=Dot(color=BLUE)
+ b.shift(0.1*LEFT)
+ c=Dot(color=YELLOW)
+ c.shift(0.1*LEFT)
+
+ rot=[0*DEGREES,45*DEGREES,90*DEGREES,135*DEGREES,180*DEGREES,225*DEGREES,270*DEGREES,315*DEGREES]
+ rot2=[180*DEGREES,180*DEGREES,180*DEGREES,180*DEGREES,180*DEGREES,180*DEGREES,180*DEGREES,180*DEGREES]
+ shift=[RIGHT,0.7*RIGHT+0.7*UP,UP,0.7*LEFT+0.7*UP,LEFT,0.7*LEFT+0.7*DOWN,DOWN,0.7*RIGHT+0.7*DOWN]
+ shift2=[RIGHT,RIGHT+UP,RIGHT+DOWN,UP,DOWN,LEFT,LEFT+UP,LEFT+DOWN]
+
+
+
+ u=[Vector(color=RED),Vector(color=RED),Vector(color=RED),Vector(color=RED),
+ Vector(color=RED),Vector(color=RED),Vector(color=RED),Vector(color=RED)]
+
+
+ [u[i].rotate(rot[i]) for i in range(8) ]
+ [u[i].rotate(rot2[i]) for i in range(8) ]
+ [u[i].shift(shift[i]) for i in range(8) ]
+
+
+ divone=VGroup(*u)
+ divone.shift(0.6*LEFT)
+
+
+ v=[Vector(color=BLUE),Vector(color=BLUE),Vector(color=BLUE),Vector(color=BLUE),
+ Vector(color=BLUE),Vector(color=BLUE),Vector(color=BLUE),Vector(color=BLUE)]
+
+
+ [v[i].rotate(45*DEGREES) for i in range(8)]
+ [v[i].shift(shift2[i]) for i in range(8) ]
+
+ divtwo=VGroup(*v)
+ divtwo.shift(0.6*LEFT)
+
+
+ w=[Vector(color=YELLOW),Vector(color=YELLOW),Vector(color=YELLOW),Vector(color=YELLOW),
+ Vector(color=YELLOW),Vector(color=YELLOW),Vector(color=YELLOW),Vector(color=YELLOW)]
+
+
+ [w[i].rotate(rot[i]) for i in range(8)]
+ [w[i].shift(shift[i]) for i in range(8) ]
+
+
+ divthree=VGroup(*w)
+ divthree.shift(0.6*LEFT)
+
+
+
+
+ self.play(ShowCreation(a),ShowCreation(divone))
+ self.play(ShowCreation(one))
+ self.wait(1)
+ self.play(FadeOut(a),FadeOut(divone),FadeOut(one))
+
+ self.play(ShowCreation(b),ShowCreation(divtwo))
+ self.play(ShowCreation(two))
+ self.wait(1)
+ self.play(FadeOut(b),FadeOut(divtwo),FadeOut(two))
+
+
+ self.play(ShowCreation(c),ShowCreation(divthree))
+ self.play(ShowCreation(three))
+ self.wait(1)
+ self.play(FadeOut(c),FadeOut(divthree),FadeOut(three))
+ self.wait(0.5)
+
+
+
+
+
+
+
+
+
+
+
--
cgit
From 5492814bf7ce6b0f5f5a93581ce445e219075203 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 09:00:06 +0530
Subject: Add files via upload
---
.../file2_different_valuesof_Div.gif | Bin 0 -> 595705 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.gif
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.gif b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.gif
new file mode 100644
index 0000000..477c311
Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/file2_different_valuesof_Div.gif differ
--
cgit
From ca86e164677dea499a972538c0d9aad8c0577588 Mon Sep 17 00:00:00 2001
From: vishal786-commits
Date: Thu, 9 Jul 2020 09:02:57 +0530
Subject: Update README.md
---
.../triple-and-surface-integrals/divergence-gauss-theorem/README.md | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/README.md b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/README.md
index e69de29..17fcde0 100644
--- a/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/README.md
+++ b/FSF-2020/calculus-of-several-variables/triple-and-surface-integrals/divergence-gauss-theorem/README.md
@@ -0,0 +1,4 @@
+**file1_flux@_various_points.py**
+
+**file2_different_valuesof_Div.py**
+
--
cgit
From 180a4c39d032e8f6c8be1b5a35e028a40dfebd0e Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:36:17 +0530
Subject: Create limit1.py
---
.../calculus/intro-to-calculus/limit/limit1.py | 105 +++++++++++++++++++++
1 file changed, 105 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/limit/limit1.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/limit/limit1.py b/FSF-2020/calculus/intro-to-calculus/limit/limit1.py
new file mode 100644
index 0000000..fe5cb1e
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/limit/limit1.py
@@ -0,0 +1,105 @@
+from manimlib.imports import *
+class limit1(GraphScene,MovingCameraScene):
+ def setup(self):
+ GraphScene.setup(self)
+ MovingCameraScene.setup(self)
+ CONFIG = {
+ "y_max" : 1,
+ "y_min" : 0,
+ "x_max" : 1,
+ "x_min" : -1,
+ "y_tick_frequency" : 0.2,
+ "x_tick_frequency" : 0.2,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+3*DOWN,
+ "x_labeled_nums": list(range(-1,2)),
+ "y_labeled_nums": list(range(0,2)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ 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)
+
+ dot1 = SmallDot(np.array([0.025,-2.975,0]))
+ dot2 = SmallDot(np.array([-0.025,-2.975,0]))
+ sqr = Square(side_length = 15.0).move_to(np.array([0,-3,0]))
+ brline1 = DashedVMobject(Line(np.array([0.15,-3,0]), np.array([0.15,-2.85,0])))
+ brline2 = DashedVMobject(Line(np.array([0.025,-3,0]), np.array([0.025,-2.975,0])))
+ brline3 = DashedVMobject(Line(np.array([-0.15,-3,0]), np.array([-0.15,-2.85,0])))
+ brline4 = DashedVMobject(Line(np.array([-0.025,-3,0]), np.array([-0.025,-2.975,0])))
+ textdef = TextMobject("")
+ text003 = TextMobject("0.03").move_to(np.array([0.15,-3.05,0])).scale(0.1)
+ textazero1 = TexMobject(r"\approx 0").move_to(np.array([0.04,-3.05,0])).scale(0.1)
+ textazero2 = TexMobject(r"\approx 0").move_to(np.array([-0.04,-3.05,0])).scale(0.1)
+ textm003 = TextMobject("-0.03").move_to(np.array([-0.15,-3.05,0])).scale(0.1)
+ text2 = TextMobject("Let f(x) = |x|. We'll check neighbourhood of origin")
+ text3 = TextMobject("h has to be a very small number greater than 0").move_to(np.array([0,-3.3,0])).scale(0.2)
+ text4 = TextMobject("The point travels through range of neighbourhood").move_to(np.array([0,-3.3,0])).scale(0.19)
+ text5 = TextMobject("let h be equal to 0.03").move_to(np.array([0,-3.3,0])).scale(0.25)
+ text6 = TextMobject("Notice how the point never touches the origin").move_to(np.array([0,-3.3,0])).scale(0.2)
+ text7 = TextMobject("Green line shows the Right hand neighbourhood of origin").move_to(np.array([0,-3.3,0])).scale(0.17)
+ text8 = TextMobject("The point is approaching (0,0) for the values of x which are positive").move_to(np.array([0,-3.3,0])).scale(0.1)
+ text9 = TextMobject("Values of x are tending to 0 from positive side").move_to(np.array([0,-3.3,0])).scale(0.19)
+ text10 = TexMobject(r"\text {Notation for this is }",r"x\rightarrow { 0 }^{ + }").move_to(np.array([0,-3.3,0])).scale(0.25)
+ text11 = TextMobject("Similar case can be made for negative values of x").move_to(np.array([0,-3.3,0])).scale(0.19)
+ text12 = TextMobject("The point is approaching (0,0) for the values of x which are negative").move_to(np.array([0,-3.3,0])).scale(0.1)
+ text13 = TextMobject("Values of x are tending to 0 from negative side").move_to(np.array([0,-3.3,0])).scale(0.19)
+ text14 = TexMobject(r"\text {Notation for this is }",r"x\rightarrow { 0 }^{ - }").move_to(np.array([0,-3.3,0])).scale(0.25)
+
+
+ self.play(FadeIn(text2), run_time = 1.5)
+ self.wait(2.5)
+ self.setup_axes()
+ graph_1 = self.get_graph(lambda x : x, color = RED, x_min = 0, x_max = 1)
+ graph_2 = self.get_graph(lambda x : -x, color = RED, x_min = 0, x_max = -1)
+ graph_3 = self.get_graph(lambda x : x,color = RED, x_min = 0.005, x_max = 0.03)
+ graph_4 = self.get_graph(lambda x : x,color = GREEN_SCREEN, x_min = 0.03, x_max = 0.005)
+ graph_5 = self.get_graph(lambda x : -x,color = GREEN_SCREEN, x_min = -0.03, x_max = -0.005)
+ grp1 = VGroup(graph_1,graph_2)
+ grp2 = VGroup(brline2, textazero1)
+ grp3 = VGroup(textazero2, textm003, brline3, brline4)
+ self.play(ShowCreation(grp1))
+ self.add(sqr)
+ self.play(ReplacementTransform(text2, text3))
+ self.camera_frame.save_state()
+ self.play(self.camera_frame.set_width,2.25,self.camera_frame.move_to,sqr,run_time = 2)
+ self.wait(2.5)
+ self.play(ReplacementTransform(text3, text4), ShowCreation(dot1))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text4, text5), ShowCreation(brline1), ShowCreation(text003))
+ self.wait(2.5)
+ for i in range(0,3):
+ self.play(MoveAlongPath(dot1,graph_3), run_time = 0.5)
+ self.play(MoveAlongPath(dot1,graph_4), run_time = 0.5)
+ self.play(ReplacementTransform(text5, text6), ShowCreation(grp2))
+ self.wait(2)
+ self.play(FadeOut(dot1))
+ self.add(graph_4)
+ self.play(ReplacementTransform(text6, text7))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text7,text8))
+ for i in range(0,3):
+ self.play(MoveAlongPath(dot1,graph_4), run_time = 0.7)
+ self.play(ReplacementTransform(text8, text9))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text9, text10))
+ self.wait(2.5)
+ self.play(ShowCreation(grp3), ReplacementTransform(text10, text11), FadeOut(dot1))
+ self.add(graph_5)
+ for i in range(0,3):
+ self.play(MoveAlongPath(dot2, graph_5), run_time = 0.7)
+ self.play(ReplacementTransform(text11, text12))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text12, text13))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text13, text14))
+ self.wait(2)
+ self.play(FadeOut(dot2), ReplacementTransform(text14, textdef))
+ self.wait(2)
+ self.play(Restore(self.camera_frame))
+
+ self.wait(2.5)
--
cgit
From f5d1083427a43886dd0c413bd33b9c7259132ef7 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:39:19 +0530
Subject: Create derivative1.py
---
.../introderivative/derivative1.py | 55 ++++++++++++++++++++++
1 file changed, 55 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/introderivative/derivative1.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/introderivative/derivative1.py b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative1.py
new file mode 100644
index 0000000..79a6fc6
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative1.py
@@ -0,0 +1,55 @@
+from manimlib.imports import *
+class derivative1(GraphScene, Scene):
+ def setup(self):
+ GraphScene.setup(self)
+ CONFIG = {
+ "y_max" : 4,
+ "y_min" : -2,
+ "x_max" : 4,
+ "x_min" : -2,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+2*DOWN+4*LEFT,
+ "x_labeled_nums": list(range(-2,5)),
+ "y_labeled_nums": list(range(-2,5)),
+ "x_axis_label":"$x$",
+ "y_axis_label":r"$f(x)=y= 3-\frac { 3 }{ 2 } x$",
+ "x_axis_width": 5,
+ "y_axis_height": 5,
+ }
+ 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)
+
+ text1 = TextMobject("")
+ text2 = TexMobject("{y}_{2}-{y}_{1}")
+ text2 = TexMobject("{x}_{2}-{x}_{1}")
+ text3 = TexMobject(r"m\quad =\frac { { y }_{ 2 }-{ y }_{ 1 } }{ { x }_{ 2 }-{ x }_{ 1 } }").move_to(np.array([3,0,0]))
+ text4 = TexMobject(r"m\quad =\frac { 3 }{ -2 }").move_to(np.array([3,0,0]))
+ text5 = TexMobject(r"m\quad =\quad -1.5").move_to(np.array([3,0,0]))
+ self.setup_axes()
+ graph_1 = self.get_graph(lambda x : 3-1.5*x, color = GREEN_SCREEN, x_min = -1, x_max = 3)
+ graph_2 = self.get_graph(lambda x : 3.1-1.5*x, color = ORANGE, x_min = 0, x_max = 2)
+ dot1 = Dot()
+ dot2 = SmallDot(self.graph_origin+1.7*RIGHT, color = PINK)
+ dot3 = SmallDot(self.graph_origin+2.5*UP, color = RED_B)
+ vec1 = Vector(2.5*DOWN, color = PINK).shift(self.graph_origin+2.5*UP)
+ vec2 = Vector(1.7*RIGHT, color = RED_B).shift(self.graph_origin)
+ brace1 = Brace(vec1, LEFT)
+ brace2 = Brace(vec2, DOWN)
+ br1text = brace1.get_text(r"${y}_{2}-{y}_{1}$").next_to(brace1, LEFT)
+ br2text = brace2.get_text(r"${x}_{2}-{x}_{1}$").next_to(brace2, DOWN)
+ self.play(ShowCreation(graph_1), ShowCreation(dot2), ShowCreation(dot3))
+ self.play(MoveAlongPath(dot1, graph_2), ShowCreation(vec1), ShowCreation(vec2), run_time = 3)
+ self.wait(1)
+ self.play(ShowCreation(brace1), ShowCreation(brace2))
+ self.play(ShowCreation(br1text), ShowCreation(br2text))
+ self.wait(2)
+ self.play(GrowFromCenter(text3))
+ self.wait(2.5)
+ self.play(ReplacementTransform(text3, text4))
+ self.wait(2)
+ self.play(ReplacementTransform(text4, text5))
+ self.wait(2)
--
cgit
From df8328f3268ba35f531cfc926375800c8ce301ce Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:40:51 +0530
Subject: Create rierect1.py
---
.../intro-to-calculus/riemannintegrals/rierect1.py | 31 ++++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect1.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect1.py b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect1.py
new file mode 100644
index 0000000..748d766
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect1.py
@@ -0,0 +1,31 @@
+from manimlib.imports import *
+class rierect1(GraphScene):
+ CONFIG = {
+ "y_max" : 6,
+ "y_min" : 0,
+ "x_max" : 4,
+ "x_min" : 0,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+2*DOWN+4*LEFT,
+ "x_labeled_nums": None,#list(range(-1,2)),
+ "y_labeled_nums": None,#list(range(0,2)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ def construct(self):
+ self.setup_axes()
+ graph1 = self.get_graph(lambda x : (0.1*(1.5*x+1)**2 +0.5), x_min = 0, x_max = 4)
+ minlim = self.get_vertical_line_to_graph(1,graph1,DashedLine, color = PINK)
+ maxlim = self.get_vertical_line_to_graph(3,graph1,DashedLine,color = PINK)
+ x1 = TexMobject(r"{x}_{1}").next_to(minlim, DOWN)
+ x2 = TexMobject(r"{x}_{2}").next_to(maxlim, DOWN)
+ rie1 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.4, input_sample_type = "left", fill_opacity = 1, start_color = YELLOW, end_color = YELLOW)
+ #rie2 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.01, input_sample_type = "right", fill_opacity = 0.5, start_color = PINK, end_color = LIGHT_PINK)
+ group = VGroup(graph1, minlim, maxlim, x1, x2, rie1)
+ self.play(ShowCreation(group))
+ self.wait(1.5)
--
cgit
From eee9a67ba2945d18107a85a1f7ebc00a5738dff9 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:48:18 +0530
Subject: Create limit3.py
---
.../calculus/intro-to-calculus/limit/limit3.py | 95 ++++++++++++++++++++++
1 file changed, 95 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/limit/limit3.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/limit/limit3.py b/FSF-2020/calculus/intro-to-calculus/limit/limit3.py
new file mode 100644
index 0000000..a4f07d7
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/limit/limit3.py
@@ -0,0 +1,95 @@
+from manimlib.imports import *
+class limit3(GraphScene, MovingCameraScene):
+ def setup(self):
+ GraphScene.setup(self)
+ MovingCameraScene.setup(self)
+ CONFIG = {
+ "y_max" : 10,
+ "y_min" : 0,
+ "x_max" : 100,
+ "x_min" : 0,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 10,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+3*DOWN+4*LEFT,
+ "x_labeled_nums": list(range(0,101))[::10],
+ "y_labeled_nums": list(range(0,11)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ 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)
+ sqr1 = Square(side_length = 15).move_to(np.array([1,0.5,0]))
+ sqr2 = Square(side_length = 15).move_to(np.array([-4,-3,0]))
+
+ textdef = TextMobject("")
+ text20 = TextMobject("f(x) is not defined at x=50").move_to(np.array([1,0.3,0])).scale(0.2)
+ text21 = TexMobject(r"\text {f(x) is not defined in interval }",r" (-\infty ,\quad 1]").move_to(np.array([-4,-3.2,0])).scale(0.18)
+ text22 = TextMobject("1").move_to(np.array([-3.9,-3.05,0])).scale(0.2)
+ text1 = TexMobject(r"\text {Let }" ,r"f\left( x \right) =\begin{cases} \sqrt { x-1 } ,x\in \quad (1,\infty )-50 \end{cases}")
+ text2 = TextMobject("Graph of f(x) is ")
+ text3 = TextMobject("Right hand neighbour of 50 will approximately be 50.000001").move_to(np.array([1,0.3,0])).scale(0.15)
+ text4 = TextMobject("Left hand neighbour of 50 will approximately be 49.999999").move_to(np.array([1,0.3,0])).scale(0.15)
+ text5 = TexMobject(r"\text {Hence R.H.L }", r"=\lim _{ x\rightarrow { 50 }^{ + } }{ \sqrt { 50.000001 - 1 } } \approx 7.000000071").move_to(np.array([1,0.3,0])).scale(0.13)
+ text6 = TexMobject(r"\text{Hence L.H.L }", r" = \lim _{ x\rightarrow { 50 }^{ - } }{ \sqrt { 49.999999-1 } }\approx 6.999999929").move_to(np.array([1,0.3,0])).scale(0.13)
+ text7 = TextMobject("7.000000071").move_to(np.array([1.9,0.25,0])).scale(0.1)
+ text8 = TextMobject("6.999999929").move_to(np.array([0.1,0.25,0])).scale(0.1)
+ text9 = TexMobject(r"6.999999929\quad \approx \quad 7.000000071 \quad \approx 7").move_to(np.array([1,0.25,0])).scale(0.2)
+ text10 = TexMobject(r"\text{Because LHL }" ,r"\approx" ,r"\text{ RHL, Limit exists at x=50 and equals 7").move_to(np.array([1,0.25,0])).scale(0.13)
+ text11 = TextMobject("There is no Left hand neighbour of x=1").move_to(np.array([-4,-3.2,0])).scale(0.22)
+ text12 = TexMobject(r"\therefore\quad \lim _{ x\rightarrow 0 }{ f(x) } \quad =\quad \lim _{ x\rightarrow { 0 }^{ + } }{ f(x) } ").move_to(np.array([-4,-3.2,0])).scale(0.25)
+ text13 = TexMobject(r"\text {R.H.L =}",r" \lim _{ x\rightarrow { 0 }^{ + } }{ \sqrt { 1.000000000001-1 } } \quad \approx 0").move_to(np.array([-4,-3.2,0])).scale(0.13)
+ text14 = TexMobject(r"\therefore \quad \lim _{ x\rightarrow 0 }{ f(x)\quad =\quad 0 }").move_to(np.array([-4,-3.2,0])).scale(0.13)
+ self.camera_frame.save_state()
+ self.play(ShowCreation(text1))
+ self.wait(3)
+ self.play(ReplacementTransform(text1, text2))
+ self.wait()
+ self.play(ReplacementTransform(text2, textdef))
+ self.setup_axes()
+ self.setup()
+ graph_1 = self.get_graph(lambda x : (x-1)**(1/2),color = PINK, x_min = 1, x_max = 49.9)
+ graph_2 = self.get_graph(lambda x : (x-1)**(1/2),color = PINK, x_min = 50.1, x_max = 100)
+ graph_3 = self.get_graph(lambda x : (x-1)**(1/2),color = PINK, x_min = 1.05, x_max = 1.001)
+ dot1 = SmallDot(color = PURPLE_A)
+ cir = Circle(radius = 0.01, color = GREEN_SCREEN).move_to(np.array([1,0.5,0]))
+ grp1 = VGroup(graph_1, graph_2, cir)
+ grp2 = VGroup(text7, text8)
+ self.play(ShowCreation(grp1))
+ self.wait(2)
+ self.play(self.camera_frame.set_width,2.25,self.camera_frame.move_to,sqr1,run_time = 2)
+ self.wait(1)
+ self.play(ShowCreation(text20))
+ self.wait(2)
+ self.play(ReplacementTransform(text20, text3))
+ self.wait(3)
+ self.play(ReplacementTransform(text3, text5))
+ self.wait(3)
+ self.play(ReplacementTransform(text5, text7), ShowCreation(text4))
+ self.wait(4)
+ self.play(ReplacementTransform(text4, text6))
+ self.wait(3)
+ self.play(ReplacementTransform(text6, text8))
+ self.wait(1.5)
+ self.play(ReplacementTransform(grp2, text9))
+ self.wait(1.5)
+ self.play(ReplacementTransform(text9, text10))
+ self.wait(3)
+ self.play(self.camera_frame.set_width,2.25,self.camera_frame.move_to,sqr2,run_time = 2)
+ self.play(ShowCreation(text21), ShowCreation(text22))
+ self.play(MoveAlongPath(dot1, graph_3), run_time = 3)
+ self.wait(3)
+ self.play(ReplacementTransform(text21, text11))
+ self.wait(3)
+ self.play(ReplacementTransform(text11, text12))
+ self.wait(3)
+ self.play(ReplacementTransform(text12, text13))
+ self.wait(2)
+ self.play(ReplacementTransform(text13, text14))
+ self.wait(3)
+ self.play(ReplacementTransform(text14, textdef))
+ self.wait(2)
--
cgit
From 966038e00b0ae44e699422dcc579491bdc741277 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:49:23 +0530
Subject: Create limitdef.py
---
.../calculus/intro-to-calculus/limit/limitdef.py | 73 ++++++++++++++++++++++
1 file changed, 73 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/limit/limitdef.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/limit/limitdef.py b/FSF-2020/calculus/intro-to-calculus/limit/limitdef.py
new file mode 100644
index 0000000..15f2845
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/limit/limitdef.py
@@ -0,0 +1,73 @@
+from manimlib.imports import *
+class limitdef(GraphScene, Scene):
+ CONFIG = {
+ "y_max" : 5,
+ "y_min" : 0,
+ "x_max" : 5,
+ "x_min" : -5,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+2*DOWN,
+ "x_labeled_nums": None,#list(range(-1,2)),
+ "y_labeled_nums": None,#list(range(0,2)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ def construct(self):
+ Ldot = MediumDot(self.graph_origin+2.1*UP).set_color(GREEN_SCREEN)
+ adot = MediumDot(self.graph_origin+3*RIGHT).set_color(PINK)
+ epline1 = DashedVMobject(Line(self.graph_origin+1*LEFT+2.5*UP, self.graph_origin+4*RIGHT+2.5*UP))
+ epline2 = DashedVMobject(Line(self.graph_origin+1*LEFT+1.7*UP, self.graph_origin+4*RIGHT+1.7*UP))
+ epline3 = DashedVMobject(Line(self.graph_origin+3.5*RIGHT+0.5*DOWN, self.graph_origin+3.5*RIGHT+2.5*UP))
+ epline4 = DashedVMobject(Line(self.graph_origin+2.5*RIGHT+0.5*DOWN, self.graph_origin+2.5*RIGHT+2.5*UP))
+ Lline = Line(self.graph_origin+2.1*UP, self.graph_origin+3*RIGHT+2.1*UP).set_color(GREEN_SCREEN)
+ aline = Line(self.graph_origin+3*RIGHT, self.graph_origin+3*RIGHT+2.1*UP).set_color(PINK)
+ vertical_rectangle = Rectangle(width = 1, height = 0.8, color = PINK, fill_opacity = 0.5, fill_color = LIGHT_PINK).move_to(self.graph_origin+3*RIGHT+2.1*UP)
+ horizontal_rectangle = Rectangle(width = 1, height = 0.8, color = GREEN_SCREEN, fill_opacity = 0.5, fill_color = GREEN).move_to(self.graph_origin+3*RIGHT+2.1*UP)
+ vec1 = Line(self.graph_origin+2.5*UP, self.graph_origin+2.1*UP)
+ vec2 = Line(self.graph_origin+2.1*UP, self.graph_origin+1.7*UP)
+ vec3 = Line(self.graph_origin+2.5*RIGHT, self.graph_origin+3*RIGHT)
+ vec4 = Line(self.graph_origin+3*RIGHT, self.graph_origin+3.5*RIGHT)
+ brace1 = Brace(vec1, LEFT)
+ brace2 = Brace(vec2, LEFT)
+ brace3 = Brace(vec3, DOWN)
+ brace4 = Brace(vec4, DOWN)
+ br1text = brace1.get_text(r"$\epsilon$").next_to(brace1, LEFT)
+ br2text = brace2.get_text(r"$\epsilon$").next_to(brace2, LEFT)
+ br3text = brace3.get_text(r"$\delta$").next_to(brace3, DOWN)
+ br4text = brace4.get_text(r"$\delta$").next_to(brace4, DOWN)
+ epgrp = VGroup(epline1, epline2, Ldot, adot, Lline, aline, epline4, epline3)
+ recgrp = VGroup(vertical_rectangle, horizontal_rectangle)
+ epbrgrp = VGroup(brace1, brace2, br1text, br2text)
+ delbrgrp = VGroup(brace3, brace4, br3text, br4text)
+ self.setup_axes()
+ graph_1 = self.get_graph(lambda x :0.1*(x+1)**2 +0.5, x_min = -5, x_max = 5)
+ graph_2 = self.get_graph(lambda x : 0.1*(x+1)**2 +0.5, x_min = 2.5, x_max = 3.5, color = YELLOW_A)
+ graph_2.shift(2.5*LEFT)
+ self.play(ShowCreation(graph_1))
+ self.wait(2)
+ self.play(ShowCreation(epgrp), ShowCreation(horizontal_rectangle), ShowCreation(vertical_rectangle))
+ self.wait(2)
+ self.play(ShowCreation(epbrgrp))
+ self.play(ShowCreation(delbrgrp))
+ self.wait(2)
+ self.play(FadeOut(recgrp))
+ self.wait(2)
+ for i in range(0,1):
+ self.play(ApplyMethod(graph_2.shift, 2.5*RIGHT))
+ self.wait(1)
+ self.play(ApplyMethod(graph_2.shift, 1.7*DOWN))
+ self.play(ApplyMethod(graph_2.shift, 1.7*UP))
+ self.wait(1)
+ self.play(ApplyMethod(graph_2.shift, 2.5*LEFT))
+ self.play(ApplyMethod(graph_2.shift, 2.5*RIGHT))
+ self.wait(1)
+ self.play(ApplyMethod(graph_2.shift, 1.7*DOWN))
+ self.play(ApplyMethod(graph_2.shift, 1.7*UP))
+ self.wait(1)
+ self.play(ApplyMethod(graph_2.shift, 2.5*LEFT))
+ self.wait()
--
cgit
From f9e839936ae4a585be0abe56251099f067dbc94d Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:51:05 +0530
Subject: Create Test1.py
---
FSF-2020/calculus/intro-to-calculus/limit/Test1.py | 34 ++++++++++++++++++++++
1 file changed, 34 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/limit/Test1.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/limit/Test1.py b/FSF-2020/calculus/intro-to-calculus/limit/Test1.py
new file mode 100644
index 0000000..bd7d2a6
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/limit/Test1.py
@@ -0,0 +1,34 @@
+from manimlib.imports import *
+class Test1(GraphScene):
+ CONFIG = {
+ "y_max" : 5,
+ "y_min" : -5,
+ "x_max" : 5,
+ "x_min" : -5,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : BLUE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN,
+ "x_labeled_nums": list(range(-5,6)),
+ "y_labeled_nums": list(range(-5,6)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"${ f }_{ 1 }(x)$"
+ }
+ def construct(self):
+ self.setup_axes()
+ cir1 = Circle(radius = 0.1, color = BLUE)
+ graph_1 = self.get_graph(lambda x : x+2,
+ color = GREEN,
+ x_min = -5, # Domain 1
+ x_max = +1.9
+ )
+ graph_2 =self.get_graph(lambda x : x+2,
+ color = GREEN,
+ x_min = 2.1, # Domain 2
+ x_max = 5
+ )
+ cir1.move_to(np.array([1,2,0]))
+ self.play(ShowCreation(graph_1))
+ self.play(ShowCreation(cir1))
+ self.play(ShowCreation(graph_2))
--
cgit
From 30fa06ae941c06392da473d3b1841d4e09639b66 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:52:07 +0530
Subject: Create Test2.py
---
FSF-2020/calculus/intro-to-calculus/limit/Test2.py | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/limit/Test2.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/limit/Test2.py b/FSF-2020/calculus/intro-to-calculus/limit/Test2.py
new file mode 100644
index 0000000..0efb565
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/limit/Test2.py
@@ -0,0 +1,26 @@
+from manimlib.imports import *
+class Test2(GraphScene):
+ CONFIG = {
+ "y_max" : 5,
+ "y_min" : -5,
+ "x_max" : 5,
+ "x_min" : -5,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : BLUE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN,
+ "x_labeled_nums": list(range(-5,6)),
+ "y_labeled_nums": list(range(-5,6)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"${ f }_{ 1 }(x)$"
+ }
+ def construct(self):
+ self.setup_axes()
+ graph_1 = self.get_graph(lambda x : x+2,
+ color = GREEN,
+ x_min = -5, # Domain 1
+ x_max = +5
+ )
+ self.play(ShowCreation(graph_1))
+ self.wait()
--
cgit
From 3a4fa385b4659c87b7c28f03fc4e38e063e88038 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:54:20 +0530
Subject: Create derivative2.py
---
.../introderivative/derivative2.py | 78 ++++++++++++++++++++++
1 file changed, 78 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/introderivative/derivative2.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/introderivative/derivative2.py b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative2.py
new file mode 100644
index 0000000..d6aab15
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative2.py
@@ -0,0 +1,78 @@
+from manimlib.imports import *
+class derivative2(GraphScene, MovingCameraScene):
+ def setup(self):
+ GraphScene.setup(self)
+ MovingCameraScene.setup(self)
+ CONFIG = {
+ "y_max" : 100,
+ "y_min" : 0,
+ "x_max" : 10,
+ "x_min" : 0,
+ "y_tick_frequency" : 100,
+ "x_tick_frequency" : 10,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN,
+ "x_labeled_nums": None,#list(range(0,11)),
+ "y_labeled_nums": None,#list(range(0,101))[::10],
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 5,
+ "y_axis_height": 5,
+ "start_x" : 2,
+ "start_dx" : 6,
+ "df_color" : YELLOW,
+ "dx_color" : GREEN,
+ "secant_line_color" : MAROON_B,
+ "zoomed_camera_frame_starting_position": ORIGIN+2*DOWN+6*LEFT,
+ }
+ def construct(self):
+ self.setup()
+ self.camera_frame.save_state()
+ self.graph_origin = ORIGIN+2*DOWN+6*LEFT
+ self.setup_axes()
+ graph23 = self.get_graph(lambda x : x**2+7, color = GREEN_SCREEN, x_min = 0, x_max = 10)
+ graph24 = self.get_graph(lambda x : x**2+7, color = GREEN_SCREEN, x_min = 8, x_max = 2.01)
+ line_1 = DashedVMobject(Line(np.array([-5,-2,0]), np.array([-5,-1.42,0])))
+ textdef = TextMobject("")
+ text1 = TexMobject("{ x }_{ 0 }").move_to(np.array([-5,-2.2,0]))
+ text2 = TextMobject("The line becomes tangential to the curve").move_to(self.graph_origin+RIGHT+0.5*UP).scale(0.01)
+ text3 = TexMobject(r"\frac { df }{ dx } =\frac { f({ x }_{ 0 }+h)-f({ x }_{ 0 }) }{ h-0 }").move_to(2*RIGHT)
+ text4 = TexMobject(r"\frac { df }{ dx } =\lim _{ h\rightarrow 0 }{ \frac { f({ x }_{ 0 }+h)-f({ x }_{ 0 }) }{ h } }").move_to(2*RIGHT)
+ squareobj = Square(side_length = 15).move_to(self.graph_origin+RIGHT+0.53*UP)
+ ss_group = self.get_secant_slope_group(
+ self.start_x, graph23,
+ dx = self.start_dx,
+ dx_label = "h",
+ df_label = "df",
+ df_line_color = self.df_color,
+ dx_line_color = self.dx_color,
+ secant_line_color = self.secant_line_color,
+ dot_df_top = True,
+ dot_dx_start = True,
+ dot_df_top_label = "Q",
+ dot_dx_start_label = "P",
+ secant_line_length = 8
+ )
+ self.play(ShowCreation(graph23))
+ self.wait()
+ self.play(ShowCreation(ss_group.secant_line))
+ self.add(text1)
+ self.play(ShowCreation(line_1))
+ self.wait(3)
+ self.play(ShowCreation(ss_group.dx_line))
+ self.play(ShowCreation(ss_group.dx_label))
+ self.play(ShowCreation(ss_group.df_line))
+ self.play(Write(ss_group.df_label))
+ self.play(ShowCreation(ss_group.dot_df_top), ShowCreation(ss_group.dot_dx_start))
+ self.play(ShowCreation(ss_group.dot_df_top_label), ShowCreation(ss_group.dot_dx_start_label))
+ self.wait()
+ self.play(ShowCreation(text3))
+ self.wait(2)
+ self.play(ReplacementTransform(text3, text4))
+ self.animate_secant_slope_group_change(ss_group, target_dx = 0.01, run_time = 5)
+ self.wait(2)
+ self.play(self.camera_frame.set_width,0.2,self.camera_frame.move_to,squareobj,run_time = 2)
+ self.wait()
+ self.play(ShowCreation(text2))
+ self.wait(3)
--
cgit
From 74f3a10aa7e74b7f32a5b0e38875efafd2b2614c Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:55:29 +0530
Subject: Create derivative3.py
---
.../introderivative/derivative3.py | 57 ++++++++++++++++++++++
1 file changed, 57 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/introderivative/derivative3.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/introderivative/derivative3.py b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative3.py
new file mode 100644
index 0000000..ebbacb1
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/introderivative/derivative3.py
@@ -0,0 +1,57 @@
+from manimlib.imports import *
+class derivative3(GraphScene, Scene):
+ def setup(self):
+ Scene.setup(self)
+ #ZoomedScene.setup(self)
+ CONFIG = {
+ "y_max" : 8,
+ "y_min" : 0,
+ "x_max" : 11,
+ "x_min" : 0,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+3*DOWN+6.5*LEFT,
+ "x_labeled_nums": list(range(0,12))[::1],
+ "y_labeled_nums": list(range(0,9))[::1],
+ "x_axis_label":"$t$",
+ "y_axis_label":"$s$",
+ "x_axis_width": 5,
+ "y_axis_height": 5,
+ }
+ 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()
+ graph_1 = self.get_graph(lambda x : -(x-2)**2+4, color = GOLD_A, x_min = 0, x_max = 1.5)
+ graph_2 = self.get_graph(lambda x : 1*x+2.25, color = GOLD_A, x_min = 1.5, x_max = 5)
+ graph_3 = self.get_graph(lambda x : 7.25, color = GOLD_A, x_min = 5, x_max = 8)
+ graph_4 = self.get_graph(lambda x : -3.625*x + 36.25, color = GOLD_A, x_min = 8, x_max = 10)
+
+ self.y_max = 5
+ self.x_max = 10
+ self.x_min = 0
+ self.y_min = -5
+ self.x_labeled_nums = list(range(0,11))
+ self.y_labeled_nums = list(range(-5,6))[::1]
+ self.x_axis_label = r"$t$"
+ self.y_axis_label = r"$v$"
+ self.y_tick_frequency = 1
+ self.x_tick_frequency = 1
+ self.graph_origin = ORIGIN+1*RIGHT
+ self.setup_axes()
+ graph_5 = self.get_graph(lambda x : 2*(x-2)+4, color = GREEN_SCREEN, x_min = 0, x_max = 1.5)
+ graph_6 = self.get_graph(lambda x : 3, color = GREEN_SCREEN, x_min = 1.5, x_max = 5)
+ graph_7 = self.get_graph(lambda x : 0, color = GREEN_SCREEN, x_min = 5, x_max = 8)
+ graph_8 = self.get_graph(lambda x : -3.625, color = GREEN_SCREEN, x_min = 8, x_max = 10)
+ line1 = DashedVMobject(Line(self.graph_origin+2.5*RIGHT, self.graph_origin+2.5*RIGHT+1.5*UP))
+ line2 = DashedVMobject(Line(self.graph_origin+4*RIGHT, self.graph_origin+4*RIGHT+1.835*DOWN))
+ self.play(ShowCreation(graph_1), ShowCreation(graph_5), run_time = 3)
+ self.play(ShowCreation(graph_2), ShowCreation(graph_6), run_time = 3)
+ self.add(line1)
+ self.play(ShowCreation(graph_3), ShowCreation(graph_7), run_time = 3)
+ self.add(line2)
+ self.play(ShowCreation(graph_4), ShowCreation(graph_8), run_time = 3)
+ self.wait(3)
--
cgit
From 37081388c65c7bdf96231e3dc67e226d8e70b02f Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:56:32 +0530
Subject: Create rierect2.py
---
.../intro-to-calculus/riemannintegrals/rierect2.py | 31 ++++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect2.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect2.py b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect2.py
new file mode 100644
index 0000000..e300250
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect2.py
@@ -0,0 +1,31 @@
+from manimlib.imports import *
+class rierect2(GraphScene):
+ CONFIG = {
+ "y_max" : 6,
+ "y_min" : 0,
+ "x_max" : 4,
+ "x_min" : 0,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+2*DOWN+4*LEFT,
+ "x_labeled_nums": None,#list(range(-1,2)),
+ "y_labeled_nums": None,#list(range(0,2)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ def construct(self):
+ self.setup_axes()
+ graph1 = self.get_graph(lambda x : (0.1*(1.5*x+1)**2 +0.5), x_min = 0, x_max = 4)
+ minlim = self.get_vertical_line_to_graph(1,graph1,DashedLine, color = PINK)
+ maxlim = self.get_vertical_line_to_graph(3,graph1,DashedLine,color = PINK)
+ x1 = TexMobject(r"{x}_{1}").next_to(minlim, DOWN)
+ x2 = TexMobject(r"{x}_{2}").next_to(maxlim, DOWN)
+ rie1 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.1, input_sample_type = "left", fill_opacity = 1, start_color = YELLOW, end_color = YELLOW)
+ #rie2 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.01, input_sample_type = "right", fill_opacity = 0.5, start_color = PINK, end_color = LIGHT_PINK)
+ group = VGroup(graph1, minlim, maxlim, x1, x2, rie1)
+ self.play(ShowCreation(group))
+ self.wait(1.5)
--
cgit
From 97eb5aaf0fc0f9f5d09c9d9bc6cc0a5fc753a280 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:57:34 +0530
Subject: Create rierect3.py
---
.../intro-to-calculus/riemannintegrals/rierect3.py | 31 ++++++++++++++++++++++
1 file changed, 31 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect3.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect3.py b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect3.py
new file mode 100644
index 0000000..3542358
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/rierect3.py
@@ -0,0 +1,31 @@
+from manimlib.imports import *
+class rierect3(GraphScene):
+ CONFIG = {
+ "y_max" : 6,
+ "y_min" : 0,
+ "x_max" : 4,
+ "x_min" : 0,
+ "y_tick_frequency" : 1,
+ "x_tick_frequency" : 1,
+ "axes_color" : WHITE,
+ "num_graph_anchor_points": 3000, #this is the number of points that graph manim
+ "graph_origin" : ORIGIN+2*DOWN+4*LEFT,
+ "x_labeled_nums": None,#list(range(-1,2)),
+ "y_labeled_nums": None,#list(range(0,2)),
+ "x_axis_label":"$x$",
+ "y_axis_label":"$f(x)$",
+ "x_axis_width": 10,
+ "y_axis_height": 5,
+ }
+ def construct(self):
+ self.setup_axes()
+ graph1 = self.get_graph(lambda x : (0.1*(1.5*x+1)**2 +0.5), x_min = 0, x_max = 4)
+ minlim = self.get_vertical_line_to_graph(1,graph1,DashedLine, color = PINK)
+ maxlim = self.get_vertical_line_to_graph(3,graph1,DashedLine,color = PINK)
+ x1 = TexMobject(r"{x}_{1}").next_to(minlim, DOWN)
+ x2 = TexMobject(r"{x}_{2}").next_to(maxlim, DOWN)
+ rie1 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.01, input_sample_type = "left", fill_opacity = 1, start_color = YELLOW, end_color = YELLOW)
+ #rie2 = self.get_riemann_rectangles(graph1, x_min = 1, x_max = 3, dx = 0.01, input_sample_type = "right", fill_opacity = 0.5, start_color = PINK, end_color = LIGHT_PINK)
+ group = VGroup(graph1, minlim, maxlim, x1, x2, rie1)
+ self.play(ShowCreation(group))
+ self.wait(1.5)
--
cgit
From 2348a32e0249074c1c3dd124553f64e6d8165c65 Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:58:54 +0530
Subject: Create RiemannRectanglesAnimation.py
---
.../riemannintegrals/RiemannRectanglesAnimation.py | 64 ++++++++++++++++++++++
1 file changed, 64 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/RiemannRectanglesAnimation.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/RiemannRectanglesAnimation.py b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/RiemannRectanglesAnimation.py
new file mode 100644
index 0000000..a278c9d
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/RiemannRectanglesAnimation.py
@@ -0,0 +1,64 @@
+from manimlib.imports import *
+class RiemannRectanglesAnimation(GraphScene):
+ CONFIG = {
+ "y_max": 5,
+ "x_max": 6,
+ "x_min": 0,
+ "y_min": 0,
+ "x_axis_width": 5,
+ "y_axis_height": 5,
+ "init_dx":0.5,
+ "graph_origin": ORIGIN+2*DOWN+6*LEFT,
+ }
+ def construct(self):
+ self.setup_axes()
+ def func(x):
+ return 0.1*(x)*(x-3)*(x-7)+3
+
+ graph1=self.get_graph(func,x_min=0,x_max=6)
+ kwargs = {
+ "x_min" : 1.5,
+ "x_max" : 5.5,
+ "fill_opacity" : 0.75,
+ "stroke_width" : 0.25,
+ "input_sample_type": "right",
+ }
+ flat_rectangles1 = self.get_riemann_rectangles(self.get_graph(lambda x : 0),dx=self.init_dx,start_color=invert_color(PURPLE),end_color=invert_color(ORANGE),**kwargs)
+ riemann_rectangles_list1 = self.get_riemann_rectangles_list(graph1,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs)
+ self.add(graph1)
+ self.graph_origin = ORIGIN+2*DOWN+1*RIGHT
+ self.setup_axes()
+ graph2=self.get_graph(func,x_min=0,x_max=6)
+ kwargs = {
+ "x_min" : 1.5,
+ "x_max" : 5.5,
+ "fill_opacity" : 0.75,
+ "stroke_width" : 0.25,
+ "input_sample_type": "left",
+ }
+ flat_rectangles2 = self.get_riemann_rectangles(self.get_graph(lambda x : 0),dx=self.init_dx,start_color=invert_color(PURPLE),end_color=invert_color(ORANGE),**kwargs)
+ riemann_rectangles_list2 = self.get_riemann_rectangles_list(graph2,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs)
+ self.add(graph2)
+ text1 = TextMobject("Left Riemann sum").move_to(np.array([-3,-2.5,0]))
+ text2 = TextMobject("Right Riemann sum").move_to(np.array([4,-2.5,0]))
+ grp1 = VGroup(text1, text2)
+ text3 = TexMobject(r"n \rightarrow \infty").move_to(np.array([0, -3, 0]))
+ text4 = TextMobject("Left and Right Riemann sums are equal").move_to(np.array([0, -3, 0]))
+ text5 = TextMobject("Hence function is Riemann integrable and value of integral equals area covered").move_to(np.array([0, -3, 0])).scale(0.6)
+ grp2 = VGroup(text1, text2, text3)
+ # Show Riemann rectangles
+ self.play(ReplacementTransform(flat_rectangles1,riemann_rectangles_list1[0]), ReplacementTransform(flat_rectangles2, riemann_rectangles_list2[0]))
+ self.wait()
+ self.play(ShowCreation(grp1))
+ for r in range(1,len(riemann_rectangles_list1)-5):
+ self.transform_between_riemann_rects(riemann_rectangles_list1[r-1],riemann_rectangles_list1[r],replace_mobject_with_target_in_scene = True,)
+ self.transform_between_riemann_rects(riemann_rectangles_list2[r-1],riemann_rectangles_list2[r],replace_mobject_with_target_in_scene = True,)
+ self.play(ShowCreation(text3))
+ for r in range(len(riemann_rectangles_list1)-5,len(riemann_rectangles_list1)):
+ self.transform_between_riemann_rects(riemann_rectangles_list1[r-1],riemann_rectangles_list1[r],replace_mobject_with_target_in_scene = True,)
+ self.transform_between_riemann_rects(riemann_rectangles_list2[r-1],riemann_rectangles_list2[r],replace_mobject_with_target_in_scene = True,)
+ self.wait(2)
+ self.play(ReplacementTransform(grp2, text4))
+ self.wait(2)
+ self.play(ReplacementTransform(text4, text5))
+ self.wait(4)
--
cgit
From a11ebb2cf4ab09b187d98851b01f0a305ab48dbf Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 14:59:54 +0530
Subject: Create mimi.py
---
.../intro-to-calculus/riemannintegrals/mimi.py | 53 ++++++++++++++++++++++
1 file changed, 53 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/mimi.py
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/mimi.py b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/mimi.py
new file mode 100644
index 0000000..2471c87
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/mimi.py
@@ -0,0 +1,53 @@
+class mimi(GraphScene):
+ CONFIG = {
+ "y_max": 5,
+ "x_max": 6,
+ "x_min": 0,
+ "y_min": 0,
+ "x_axis_width": 5,
+ "y_axis_height": 5,
+ "init_dx":0.5,
+ "graph_origin": ORIGIN+2*DOWN+6*LEFT,
+ }
+ def construct(self):
+ self.setup_axes()
+ def func(x):
+ return 0.1*(x)*(x-3)*(x-7)+3
+
+ graph=self.get_graph(func,x_min=0,x_max=6)
+ kwargs = {
+ "x_min" : 1.5,
+ "x_max" : 5.5,
+ "fill_opacity" : 0.5,
+ "stroke_width" : 0.25,
+ }
+ flat_rectangles = self.get_riemann_rectangles(self.get_graph(lambda x : 0),dx=self.init_dx,**kwargs)
+ riemann_rectangles_list = self.get_riemann_rectangles_list(graph,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs, input_sample_type = "right")
+ riemann_rectangles_list1 = self.get_riemann_rectangles_list(graph,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs, input_sample_type = "left")
+ self.add(graph)
+ self.play(ReplacementTransform(flat_rectangles,riemann_rectangles_list[0]), ReplacementTransform(flat_rectangles,riemann_rectangles_list1[0]))
+ #self.play(ReplacementTransform(flat_rectangles,riemann_rectangles_list1[0]))
+ self.wait(2)
+ kwargs = {
+ "x_min" : 3,
+ "x_max" : 3.5,
+ "fill_opacity" : 0.5,
+ "stroke_width" : 0.25,
+ }
+ riemann_rectangles_list2 = self.get_riemann_rectangles_list(graph,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs, input_sample_type = "right")
+ riemann_rectangles_list3 = self.get_riemann_rectangles_list(graph,8,max_dx=self.init_dx,power_base=2,start_color=PURPLE,end_color=ORANGE,**kwargs, input_sample_type = "left")
+ #self.play(FadeOut(riemann_rectangles_list[0]), FadeOut(riemann_rectangles_list1[0]))
+ self.play(ReplacementTransform(flat_rectangles,riemann_rectangles_list2[0]), ReplacementTransform(flat_rectangles,riemann_rectangles_list3[0]), FadeOut(riemann_rectangles_list[0]), FadeOut(riemann_rectangles_list1[0]))
+ minlim = self.get_vertical_line_to_graph(3,graph,DashedLine)
+ maxlim = self.get_vertical_line_to_graph(3.5,graph,DashedLine)
+ line2 = Line(self.graph_origin+2.5*RIGHT, self.graph_origin+2.9*RIGHT)
+ brace1 = Brace(minlim, LEFT)
+ brace2 = Brace(line2, DOWN)
+ brace3 = Brace(maxlim, RIGHT)
+ br1text = brace1.get_text(r"${M}_{i}$").next_to(brace1, LEFT)
+ br2text = brace2.get_text(r"$\Delta x$").next_to(brace2, DOWN)
+ br3text = brace3.get_text(r"${m}_{i}$").next_to(brace3, RIGHT)
+ text1 = TexMobject(r"\Delta x=(b-a)/n").shift(2*RIGHT)
+ grp3 = VGroup(br1text, br2text, br3text, brace1, brace2, brace3, text1)
+ self.play(ShowCreation(grp3))
+ self.wait(5)
--
cgit
From 9ad1f8f31e09dfd40db413aefa90a6589f4fd50b Mon Sep 17 00:00:00 2001
From: stayaryan
Date: Fri, 10 Jul 2020 15:33:02 +0530
Subject: Create README.md
---
.../intro-to-calculus/riemannintegrals/README.md | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 FSF-2020/calculus/intro-to-calculus/riemannintegrals/README.md
(limited to 'FSF-2020')
diff --git a/FSF-2020/calculus/intro-to-calculus/riemannintegrals/README.md b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/README.md
new file mode 100644
index 0000000..a9ad0bb
--- /dev/null
+++ b/FSF-2020/calculus/intro-to-calculus/riemannintegrals/README.md
@@ -0,0 +1,18 @@
+rierect1.gif
+
+
+
+rierect2.gif
+
+
+
+rierect3.gif
+
+
+
+RiemannRectanglesAnimation.
+
+
+
+mimi.gif
+
--
cgit