From 450b3d9b496aa7386d8cf52ed683f77cfe9abeb3 Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sat, 20 Jun 2020 18:56:19 +0530 Subject: Review --- .../file1_projections.py | 85 ++++++++++ .../file2_orthonormal.py | 174 +++++++++++++++++++++ .../The-Four-Fundamental-Subspaces/Axb.py | 77 +++++++++ 3 files changed, 336 insertions(+) create mode 100755 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py create mode 100755 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py new file mode 100755 index 0000000..814fa57 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py @@ -0,0 +1,85 @@ +from manimlib.imports import * + +class Projections(GraphScene): + CONFIG = { + "x_min": -6, + "x_max": 6, + "y_min": -4, + "y_max": 4, + "graph_origin" : ORIGIN , + } + def construct(self): + + self.setup_axes(animate=True) + + XTD = self.x_axis_width/(self.x_max-self.x_min) + YTD = self.y_axis_height/(self.y_max-self.y_min) + + arrow_a = Arrow(start = ORIGIN, end = 4*XTD*RIGHT) + arrow_a.scale(1.2) + arrow_a.set_color(DARK_BLUE) + arrow_b = Arrow(start = ORIGIN, end = 2*YTD*UP+2*XTD*RIGHT) + arrow_b.scale(1.3) + arrow_b.set_color(DARK_BLUE) + self.play(ShowCreation(arrow_a), ShowCreation(arrow_b)) + + text = TextMobject(r"Let there be 2 vectors $a$ and $b$") + text.set_color(DARK_BLUE) + text.scale(0.75) + text.move_to(2*YTD*DOWN+4*XTD*LEFT) + text_a = TextMobject("a") + text_a.move_to(0.4*YTD*DOWN+3*XTD*RIGHT) + text_a.set_color(DARK_BLUE) + text_b = TextMobject("b") + text_b.move_to(1.5*YTD*UP+RIGHT*XTD) + text_b.set_color(DARK_BLUE) + + self.play(Write(text),Write(text_a), Write(text_b)) + self.wait() + + arrow_b_copy = Arrow(start = ORIGIN, end = 2*YTD*UP+2*XTD*RIGHT) + arrow_b_copy.scale(1.25) + + arrow_p = Arrow(start = ORIGIN, end = 2*XTD*RIGHT) + arrow_p.scale(1.5) + arrow_p.set_color(GOLD_E) + + text_p = TextMobject("p") + text_p.move_to(0.25*DOWN+RIGHT) + text_p.set_color(GOLD_E) + + self.play(FadeOut(text), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b)) + text = TextMobject(r"$p$ is the projection of $b$ on $a$") + text.set_color(GOLD_E) + text.move_to(2*DOWN+3*LEFT) + text.scale(0.8) + self.play(Write(text),Write(text_p)) + self.wait() + + self.play(FadeIn(text_a), FadeIn(text_b)) + + arrow_o = Arrow(start = 2*XTD*RIGHT, end = 2*YTD*UP+2*XTD*RIGHT) + arrow_o.scale(1.5) + arrow_o.set_color(GREEN_E) + + text_o = TextMobject("b-p") + text_o.move_to(UP*YTD+2.7*XTD*RIGHT) + text_o.set_color(GREEN_E) + + self.play(ShowCreation(arrow_o)) + self.play(FadeOut(text),Write(text_o)) + + text = TextMobject(r"Observe, ($b-p$) is orthogonal to $a$") + text.set_color(GREEN_E) + text.move_to(2*DOWN+4*LEFT) + text.scale(0.8) + self.play(Write(text)) + self.wait(2) + + self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text)) + + text = TextMobject(r"Therefore, unit vectors of $b-p$ and $a$ are orthonormal to each other") + text.scale(0.75) + self.play(Write(text)) + self.wait(2) + self.play(FadeOut(text)) \ No newline at end of file diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py new file mode 100644 index 0000000..640b8be --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py @@ -0,0 +1,174 @@ +from manimlib.imports import * + +from manimlib.imports import * + +class Orthogonal(ThreeDScene): + def construct(self): + + text = TextMobject(r"These are two Orthogonal Basis $\alpha_{1}$ and $\alpha_{2}$") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*(DOWN+RIGHT)) + self.play(Write(text)) + + axes = ThreeDAxes() + self.play(ShowCreation(axes)) + self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3) + self.begin_ambient_camera_rotation(rate=0.3) + + line1 = Line(start = ORIGIN,end = 1*RIGHT) + line1.set_color(DARK_BLUE) + tip1 = Polygon(RIGHT,0.8*RIGHT-0.2*DOWN,0.8*RIGHT-0.2*UP) + tip1.set_opacity(1) + tip1.set_fill(DARK_BLUE) + tip1.set_color(DARK_BLUE) + + arrow2 = Line(start = ORIGIN,end = 1*UP) + arrow2.set_color(DARK_BLUE) + tip2 = Polygon(UP,0.8*UP-0.2*RIGHT,0.8*UP-0.2*LEFT) + tip2.set_opacity(1) + tip2.set_fill(DARK_BLUE) + tip2.set_color(DARK_BLUE) + arrow2.set_color(DARK_BLUE) + + self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2)) + self.wait() + + a_line = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2]) + a_line.set_color(GOLD_E) + a_tip = Polygon(2*UP+2*RIGHT+[0,0,2],2*UP+1.6*RIGHT+[0,0,1.8],1.6*UP+2*RIGHT+[0,0,1.8]) + a_tip.set_opacity(1) + a_tip.set_fill(GOLD_E) + a_tip.set_color(GOLD_E) + + a_line_c1 = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2]) + a_line_c1.set_color(GOLD_E) + a_tip_c1 = Polygon(2*UP+2*RIGHT+[0,0,2],2*UP+1.6*RIGHT+[0,0,1.8],1.6*UP+2*RIGHT+[0,0,1.8]) + a_tip_c1.set_opacity(1) + a_tip_c1.set_fill(GOLD_E) + a_tip_c1.set_color(GOLD_E) + + self.play(FadeOut(text), ShowCreation(a_line), ShowCreation(a_tip), ShowCreation(a_line_c1), ShowCreation(a_tip_c1)) + + text = TextMobject(r"There is a vector $\beta_3$") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*(DOWN+RIGHT)) + self.play(Write(text)) + self.wait() + self.play(FadeOut(text)) + + p_line1 = Line(start = ORIGIN,end = 2*RIGHT) + p_line1.set_color(GOLD_E) + p_tip1 = Polygon(RIGHT,0.8*RIGHT+0.2*DOWN,0.8*RIGHT+0.2*UP) + p_tip1.move_to(2*RIGHT) + p_tip1.set_opacity(1) + p_tip1.set_fill(GOLD_E) + p_tip1.set_color(GOLD_E) + + self.play(Transform(a_line_c1,p_line1),Transform(a_tip_c1,p_tip1)) + + text = TextMobject(r"Take projection of $\beta_3$ on $\alpha_1$") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*(DOWN+RIGHT)) + self.play(Write(text)) + self.wait() + self.play(FadeOut(text)) + + o_line1 = Line(start = 2*RIGHT,end = 2*UP+2*RIGHT+[0,0,2]) + o_line1.set_color(GREEN_E) + o_tip1 = Polygon(2*UP+2*RIGHT+[0,0,2],1.8*UP+2*RIGHT+[0,0,1.8]+0.2*RIGHT,1.8*UP+2*RIGHT+[0,0,1.8]-0.2*RIGHT) + o_tip1.set_opacity(1) + o_tip1.set_fill(GREEN_E) + o_tip1.set_color(GREEN_E) + + a_line1 = Line(start = ORIGIN,end = 2*UP+[0,0,2]) + a_line1.set_color(GREEN_E) + a_tip1 = Polygon(2*UP+[0,0,2],1.8*UP+[0,0,1.8]+0.2*RIGHT,1.8*UP+[0,0,1.8]-0.2*RIGHT) + a_tip1.set_opacity(1) + a_tip1.set_fill(GREEN_E) + a_tip1.set_color(GREEN_E) + + a_line1_c1 = Line(start = ORIGIN,end = 2*UP+[0,0,2]) + a_line1_c1.set_color(GREEN_E) + a_tip1_c1 = Polygon(2*UP+[0,0,2],1.8*UP+[0,0,1.8]+0.2*RIGHT,1.8*UP+[0,0,1.8]-0.2*RIGHT) + a_tip1_c1.set_opacity(1) + a_tip1_c1.set_fill(GREEN_E) + a_tip1_c1.set_color(GREEN_E) + + text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$)") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*(DOWN+RIGHT)) + self.play(Write(text)) + self.play(ShowCreation(o_line1), ShowCreation(o_tip1)) + self.wait(2) + self.play(FadeOut(a_line_c1), FadeOut(a_tip_c1), + FadeOut(a_line), FadeOut(a_tip), + Transform(o_line1,a_line1), Transform(o_tip1,a_tip1)) + + self.wait() + self.play(FadeOut(text)) + + p_arrow2 = Line(start = ORIGIN,end = 2*UP) + p_arrow2.set_color(GOLD_E) + p_tip2 = Polygon(2*UP,1.8*UP+0.2*RIGHT,1.8*UP+0.2*LEFT) + p_tip2.set_opacity(1) + p_tip2.set_fill(GOLD_E) + p_tip2.set_color(GOLD_E) + p_arrow2.set_color(GOLD_E) + + last_a = Line(start = 2*UP,end = [0,2,2]) + last_a.set_color(GOLD_E) + last_a_tip = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT) + last_a_tip.move_to([0,2,2]) + last_a_tip.set_opacity(1) + last_a_tip.set_fill(GOLD_E) + last_a_tip.set_color(GOLD_E) + + self.wait() + text = TextMobject(r"Take projection on $\alpha_2$") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*(DOWN+RIGHT)) + self.play(Write(text)) + self.play(Transform(a_line1_c1,p_arrow2),Transform(a_tip1_c1,p_tip2)) + self.wait() + self.play(FadeOut(text)) + + text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$)") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*DOWN+2*RIGHT) + self.play(Write(text)) + self.play(ShowCreation(o_line1), ShowCreation(o_tip1)) + self.wait(2) + self.play(ShowCreation(last_a_tip), ShowCreation(last_a)) + self.wait() + self.play(FadeOut(text)) + + larrow3 = Line(start = ORIGIN,end = [0,0,2]) + larrow3.set_color(GOLD_E) + ltip3 = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT) + ltip3.set_opacity(1) + ltip3.set_fill(GOLD_E) + ltip3.set_color(GOLD_E) + self.wait() + self.play(FadeOut(o_line1), FadeOut(o_tip1), FadeOut(a_line1_c1), FadeOut(a_tip1_c1), Transform(last_a,larrow3), Transform(last_a_tip,ltip3)) + + text = TextMobject(r"Normalisation of the orthogonal vector") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*DOWN+2*RIGHT) + self.play(Write(text)) + + arrow3 = Line(start = ORIGIN,end = [0,0,1]) + arrow3.set_color(DARK_BLUE) + tip3 = Polygon([0,0,1],[0,0,0.8]-0.2*RIGHT,[0,0,0.8]-0.2*LEFT) + tip3.set_opacity(1) + tip3.set_fill(DARK_BLUE) + tip3.set_color(DARK_BLUE) + self.play(Transform(last_a,arrow3), Transform(last_a_tip,tip3)) + + self.wait(3) \ No newline at end of file diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py new file mode 100755 index 0000000..95d1021 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/Axb.py @@ -0,0 +1,77 @@ +from manimlib.imports import * + +class Axb(Scene): + + def construct(self): + + text0 = TextMobject("Linear System Of Equations") + text1 = TextMobject(r"$x_{1}+x_{2}+x_{3} =b_{1}$") + text2 = TextMobject(r"$x_{1}+2x_{2}+x_{3} =b_{2}$") + text3 = TextMobject(r"$x_{1}+x_{2}+3x_{3} =b_{3}$") + text0.move_to(UP*2+LEFT*2) + text0.set_color(DARK_BLUE) + text1.move_to(UP) + text2.move_to(ORIGIN) + text3.move_to(DOWN) + + text0.scale(0.75) + text1.scale(0.75) + text2.scale(0.75) + text3.scale(0.75) + self.play(Write(text0)) + self.play(Write(text1)) + self.play(Write(text2)) + self.play(Write(text3)) + self.play(ApplyMethod(text0.move_to,3*UP+LEFT*2), ApplyMethod(text1.move_to,2.5*UP), ApplyMethod(text2.move_to,2*UP), ApplyMethod(text3.move_to,1.5*UP)) + + A = TextMobject(r"$\left( \begin{array}{c c c} 1 & 1 & 1 \\ 1 & 2 & 1 \\ 1 & 1 & 3 \end{array}\right) \left[ \begin{array} {c} x_{1} \\ x_{2} \\ x_{3} \end{array}\right] =$", r"$\left[ \begin{array}{c} x_{1}+x_{2}+x_{3} \\ x_{1}+2x_{2}+x_{3} \\ x_{1}+x_{2}+3x_{3} \end{array}\right]$") + A.scale(0.75) + self.play(FadeIn(A)) + + textA = TextMobject("A") + textx = TextMobject("x") + textb = TextMobject("Ax") + + textA.move_to(DOWN+3*LEFT) + textx.move_to(1.1*DOWN+0.5*LEFT) + textb.move_to(DOWN-2*LEFT) + + self.play(Write(textA), Write(textx), Write(textb)) + + circle1 = Circle(radius = 0.24) + circle2 = Circle(radius = 0.24) + square = Square(side_length = 0.6) + + circle1.move_to(UP*0.5+LEFT*3.05) + circle2.move_to(UP*0.4+LEFT*0.5) + square.move_to(UP*0.4+RIGHT*1.3) + + self.play(FadeIn(circle1), FadeIn(circle2),FadeIn(square)) + + self.play(ApplyMethod(circle1.move_to,UP*0.5+LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,UP*0.4+RIGHT*2.2)) + self.play(ApplyMethod(circle1.move_to,UP*0.5+LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,UP*0.4+RIGHT*3.1)) + + self.play(ApplyMethod(circle1.move_to,LEFT*3.05), ApplyMethod(circle2.move_to,UP*0.4+LEFT*0.5), ApplyMethod(square.move_to,RIGHT*1.3)) + self.play(ApplyMethod(circle1.move_to,LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,RIGHT*2.2)) + self.play(ApplyMethod(circle1.move_to,LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,RIGHT*3.1)) + + self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*3.05), ApplyMethod(circle2.move_to,UP*0.4+LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*1.3)) + self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*2.45), ApplyMethod(circle2.move_to,LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*2.2)) + self.play(ApplyMethod(circle1.move_to,0.4*DOWN+LEFT*1.85), ApplyMethod(circle2.move_to,DOWN*0.5+LEFT*0.5), ApplyMethod(square.move_to,0.4*DOWN+RIGHT*3.1)) + + self.play(FadeOut(circle1), FadeOut(circle2), FadeOut(square)) + self.play(FadeOut(A[0]), ApplyMethod(A[1].move_to,2*LEFT),ApplyMethod(textb.move_to,DOWN+1.7*LEFT), FadeOut(textx), FadeOut(textA)) + b = TextMobject(r"$=\left[ \begin{array}{c} b_{1} \\ b_{2} \\ b_{3} \end{array}\right]$") + b.move_to(RIGHT) + textB = TextMobject("b") + textB.move_to(1.2*DOWN+1.1*RIGHT) + self.play(FadeIn(b),FadeIn(textB)) + + self.wait() + + self.play(FadeOut(text0), FadeOut(text1), FadeOut(text2), FadeOut(text3)) + + axb = TextMobject("Ax = b") + self.play(FadeIn(axb), FadeOut(textb), FadeOut(textB), FadeOut(b), FadeOut(A[1])) + + self.wait() \ No newline at end of file -- cgit From cdbf436a0cb9ec3f2a425efa3fcacd979972533a Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 12:24:47 +0530 Subject: Create README.md --- .../multivariable-limits-and-continuity/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md new file mode 100644 index 0000000..4339c30 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md @@ -0,0 +1,20 @@ +**file1_scalar_function** + + +**file2_domain_range** + + +**file3_parabola_example** + + +**file4_level_curves** + + +**file5_level_surface** + + +**file6_scalar_function_application** + + +**file7_neural_nets** + -- cgit From c9b6350167df9085e35d6ca597a85703518680ee Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 12:28:26 +0530 Subject: Update README.md --- .../multivariable-limits-and-continuity/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md index 4339c30..d56e414 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md @@ -1,8 +1,8 @@ -**file1_scalar_function** - +**file1_epsilon_delta_defn** + **file2_domain_range** - + **file3_parabola_example**  -- cgit From df07222008133f28cdaf27d614a07a9c1ee4bec1 Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Thu, 2 Jul 2020 13:54:11 +0530 Subject: file1_of orthonormal bases updated --- .../Orthonormal Basis/file1_orthogonal.py | 26 +++++--- .../The-Four-Fundamental-Subspaces/solution.py | 75 ++++++++++++++++++++++ 2 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py index b400f93..a5d96f5 100755 --- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py +++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py @@ -4,31 +4,37 @@ class Orthogonal(ThreeDScene): def construct(self): axes = ThreeDAxes() self.play(ShowCreation(axes)) - self.move_camera(phi=30*DEGREES,theta=-45*DEGREES,run_time=3) - line1 = Line(start = ORIGIN,end = -3*LEFT) + self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3) + + text = TextMobject(r"$\hat{i}$",r"$\hat{j}$",r"$\hat{k}$") + text[0].move_to(0.7*DOWN+0.8*LEFT) + text[1].move_to(0.75*DOWN+0.7*RIGHT) + text[2].move_to(0.75*UP+0.4*RIGHT) + self.add_fixed_in_frame_mobjects(text) + self.play(Write(text)) + + line1 = Line(start = ORIGIN,end = RIGHT) line1.set_color(DARK_BLUE) - tip1 = Polygon(-LEFT,-0.8*LEFT-0.2*DOWN,-0.8*LEFT-0.2*UP) - tip1.move_to(-3*LEFT) + tip1 = Polygon(-0.95*LEFT,-0.8*LEFT-0.1*DOWN,-0.8*LEFT-0.1*UP) tip1.set_opacity(1) tip1.set_fill(DARK_BLUE) tip1.set_color(DARK_BLUE) - arrow2 = Line(start = ORIGIN,end = -3*UP) + arrow2 = Line(start = ORIGIN,end = UP) arrow2.set_color(DARK_BLUE) - tip2 = Polygon(DOWN,0.8*DOWN-0.2*RIGHT,0.8*DOWN-0.2*LEFT) - tip2.move_to(3*DOWN) + tip2 = Polygon(0.95*UP,0.8*UP-0.1*RIGHT,0.8*UP-0.1*LEFT) tip2.set_opacity(1) tip2.set_fill(DARK_BLUE) tip2.set_color(DARK_BLUE) arrow2.set_color(DARK_BLUE) - arrow3 = Line(start = ORIGIN,end = [0,0,3]) + arrow3 = Line(start = ORIGIN,end = [0,0,1]) arrow3.set_color(DARK_BLUE) - tip3 = Polygon([0,0,3],[0,0,2.8]-0.2*RIGHT,[0,0,2.8]-0.2*LEFT) + tip3 = Polygon([0,0,0.95],[0,0,0.8]-0.1*RIGHT,[0,0,0.8]-0.1*LEFT) tip3.set_opacity(1) tip3.set_fill(DARK_BLUE) tip3.set_color(DARK_BLUE) self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3)) - self.wait() \ No newline at end of file + self.wait() diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py new file mode 100644 index 0000000..fb31881 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/solution.py @@ -0,0 +1,75 @@ +from manimlib.imports import * +class solution(LinearTransformationScene): + def construct(self): + + self.setup() + self.wait() + + o = TextMobject(r"This is the original $2D$ vector space(before Linear Transformation)") + o.move_to(DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + A = TextMobject("Let $A$ denote the matrix the of this linear transformation.") + A.move_to(DOWN) + A.scale(0.75) + A.add_background_rectangle() + self.play(Write(A)) + matrix = [[1,-1],[1,-1]] + self.apply_matrix(matrix) + self.wait() + self.play(FadeOut(A)) + + o = TextMobject(r"This is the transformed vector space i.e. a line ($1D$)") + o.move_to(DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + arrow2 = Arrow(start = ORIGIN, end = 2*DOWN+2*LEFT) + arrow2.set_color(DARK_BLUE) + arrow2.scale(1.2) + self.play(ShowCreation(arrow2)) + self.wait() + + o1 = TextMobject("If the vector lies in the transformed vector space") + o2 = TextMobject("(the line) then the solution exist") + o1.move_to(2*DOWN+2*RIGHT) + o2.move_to(2.5*DOWN+2*RIGHT) + o1.scale(0.75) + o2.scale(0.75) + o1.add_background_rectangle() + o2.add_background_rectangle() + self.play(Write(o1)) + self.play(Write(o2)) + self.wait() + self.play(FadeOut(o1), FadeOut(o2)) + + self.play(FadeOut(arrow2)) + + arrow1 = Arrow(start = ORIGIN, end = 2*UP+RIGHT) + arrow1.set_color(DARK_BLUE) + arrow1.scale(1.3) + self.play(ShowCreation(arrow1)) + self.wait() + + o1 = TextMobject("If the vector does lies in the transformed") + o2 = TextMobject("vector space then the does not solution exist") + o1.move_to(2*DOWN+2*RIGHT) + o2.move_to(2.5*DOWN+2*RIGHT) + o1.scale(0.75) + o2.scale(0.75) + o1.add_background_rectangle() + o2.add_background_rectangle() + self.play(Write(o1)) + self.play(Write(o2)) + self.wait() + self.play(FadeOut(o1), FadeOut(o2)) + + self.play(FadeOut(arrow1)) + \ No newline at end of file -- cgit From 09f7e9c2302adcaf44d7dfb9e868bd2af147341b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:36:39 +0530 Subject: Update README.md --- .../multivariable-limits-and-continuity/README.md | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md index d56e414..c01ddc5 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/README.md @@ -1,20 +1,14 @@ **file1_epsilon_delta_defn**  -**file2_domain_range** - +**file2_limit_approach_point** + -**file3_parabola_example** - +**file3_limit_approach_point_3d** + -**file4_level_curves** - +**file4_limit_different_point** + -**file5_level_surface** - - -**file6_scalar_function_application** - - -**file7_neural_nets** - +**file5_continuity_func** + -- cgit From f6b08b6314785f699fe6bb6072227c39b73a0944 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:39:59 +0530 Subject: Create README.md --- .../multivariable-functions/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md new file mode 100644 index 0000000..4339c30 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md @@ -0,0 +1,20 @@ +**file1_scalar_function** + + +**file2_domain_range** + + +**file3_parabola_example** + + +**file4_level_curves** + + +**file5_level_surface** + + +**file6_scalar_function_application** + + +**file7_neural_nets** + -- cgit From 9a6558b1686312c095c9605a7de17c47bc373fca Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:43:40 +0530 Subject: Update README.md --- .../multivariable-functions/README.md | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md index 4339c30..0e6e8d3 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/README.md @@ -1,20 +1,17 @@ -**file1_scalar_function** - +**file1_multivar_func_examples** + -**file2_domain_range** - +**file2_multivariable_func_respresentation** + -**file3_parabola_example** - +**file3_sphere** + -**file4_level_curves** - +**file4_vectorvf_sine** + -**file5_level_surface** - +**file5_vectorvf_helix** + -**file6_scalar_function_application** - - -**file7_neural_nets** - +**file6_derivative_vectorvf** + -- cgit From 1430685ba1fdb6ad4d6d8575985fbb5295766410 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:44:52 +0530 Subject: Create README.md --- .../partial-derivatives/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md new file mode 100644 index 0000000..4339c30 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md @@ -0,0 +1,20 @@ +**file1_scalar_function** + + +**file2_domain_range** + + +**file3_parabola_example** + + +**file4_level_curves** + + +**file5_level_surface** + + +**file6_scalar_function_application** + + +**file7_neural_nets** + -- cgit From c923af6c1cbaf5f0f162e60b3351b98f749a79c5 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:48:33 +0530 Subject: Update README.md --- .../partial-derivatives/README.md | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md index 4339c30..7c60a7f 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md @@ -1,20 +1,23 @@ -**file1_scalar_function** - +**file1_partial_deriv_gas_law** + -**file2_domain_range** - +**file2_partial_deriv_hill** + -**file3_parabola_example** - +**file3_partial_deriv_defn** + -**file4_level_curves** - +**file4_partial_deriv_example** + -**file5_level_surface** - +**file5_partial_deriv_func_2maximas** + -**file6_scalar_function_application** - +**file6_clariant_rule** + + +**file7_partial_deriv_clariant_rule** + **file7_neural_nets** - + -- cgit From cab0c5ccfbc095f4fbbaefc3353535ae28d139de Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:49:06 +0530 Subject: Update README.md --- .../partial-derivatives/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md index 7c60a7f..c62dd51 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/README.md @@ -19,5 +19,5 @@ **file7_partial_deriv_clariant_rule**  -**file7_neural_nets** +**file8_chain_rule**  -- cgit From c730afdb7536bb35a63144444057d3d41ce78fdb Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:50:15 +0530 Subject: Create README.md --- .../directional-derivatives/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md new file mode 100644 index 0000000..638f953 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md @@ -0,0 +1,8 @@ +**file1_directional_deriv** + + +**file2_limit_approach_point** + + +**file3_limit_approach_point_3d** + -- cgit From 8ba0e9cfb186c33057ebffe4b98bdcc8b44b2aed Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:51:19 +0530 Subject: Update README.md --- .../directional-derivatives/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md index 638f953..a62369d 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/README.md @@ -1,8 +1,8 @@ **file1_directional_deriv** - + -**file2_limit_approach_point** - +**file2_gradient** + -**file3_limit_approach_point_3d** - +**file3_gradient_level_curves** + -- cgit From 6102a02ea2518c58aa22b47fe84f5421ac1619f3 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:54:08 +0530 Subject: Delete file7_partial_deriv_clariant_rule.gif --- .../gifs/file7_partial_deriv_clariant_rule.gif | Bin 722341 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif deleted file mode 100644 index ecef499..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif and /dev/null differ -- cgit From e1c66a25bed77e21e44864caeea1c00703c62116 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:54:37 +0530 Subject: Add files via upload --- .../gifs/file7_partial_deriv_clariant_rule.gif | Bin 0 -> 1583937 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif new file mode 100644 index 0000000..32d5e92 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif differ -- cgit From 696c3061405e8e6c3306c02b6dc6ee477c1edf24 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 17:59:19 +0530 Subject: Delete file3_parabola_example.gif --- .../scalar-functions/gifs/file3_parabola_example.gif | Bin 5660857 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif deleted file mode 100644 index af9e536..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif and /dev/null differ -- cgit From 55bfd59f6a4eeac751e563b8bc062c6be8904b8c Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:00:06 +0530 Subject: Add files via upload --- .../scalar-functions/gifs/file3_parabola_example.gif | Bin 0 -> 11849611 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif new file mode 100644 index 0000000..169cb32 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif differ -- cgit From e7bb7fa0215df9e3e83e90986dab46ad46519b46 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:03:20 +0530 Subject: Delete file3_parabola_example.gif --- .../scalar-functions/gifs/file3_parabola_example.gif | Bin 11849611 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif deleted file mode 100644 index 169cb32..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif and /dev/null differ -- cgit From 547a760cc022393cd0d545a8545ac9211a482d33 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:03:52 +0530 Subject: Add files via upload --- .../scalar-functions/gifs/file3_parabola_example.gif | Bin 0 -> 13732426 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif new file mode 100644 index 0000000..9576b4a Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif differ -- cgit From c504283d67c41a8f3692990808c4d870ffa27898 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:07:34 +0530 Subject: Delete file7_neural_nets.gif --- .../scalar-functions/gifs/file7_neural_nets.gif | Bin 95828 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif deleted file mode 100644 index 9d24688..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif and /dev/null differ -- cgit From 0bdbdaec2e4583316a11575a32ce53b9da562c17 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:07:55 +0530 Subject: Add files via upload --- .../scalar-functions/gifs/file7_neural_nets.gif | Bin 0 -> 952963 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif new file mode 100644 index 0000000..a22f1b8 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif differ -- cgit From a8d730536f0610723797c44c80327af8d89d9fd2 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:17:45 +0530 Subject: Delete file4_vectorvf_sine.gif --- .../gifs/file4_vectorvf_sine.gif | Bin 29814 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif deleted file mode 100644 index 4f6b931..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif and /dev/null differ -- cgit From e5b6a01aee7f564d076dd5186a2de9070455d72e Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:17:54 +0530 Subject: Delete file6_derivative_vectorvf.gif --- .../gifs/file6_derivative_vectorvf.gif | Bin 117597 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif deleted file mode 100644 index a94de90..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif and /dev/null differ -- cgit From 921ec63d05f575c7e7d49517cae0e05ccf790ce8 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:18:09 +0530 Subject: Add files via upload --- .../gifs/file4_vectorvf_sine.gif | Bin 0 -> 283795 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif new file mode 100644 index 0000000..215459e Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif differ -- cgit From c2e348fc9404b4a661949685aefd6f9b3e79952b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:18:56 +0530 Subject: Add files via upload --- .../gifs/file6_derivative_vectorvf.gif | Bin 0 -> 1370273 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif new file mode 100644 index 0000000..9ea94e4 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif differ -- cgit From 860a4868cd3ceb8d95363c4c2e2fe66982eab0cd Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:22:47 +0530 Subject: Delete file2_limit_approach_point.gif --- .../gifs/file2_limit_approach_point.gif | Bin 47411 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif deleted file mode 100644 index 830b6f1..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif and /dev/null differ -- cgit From e999885c4e20dc50b33da97177cce7951b70f10c Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:22:58 +0530 Subject: Delete file3_limit_approach_point_3d.gif --- .../gifs/file3_limit_approach_point_3d.gif | Bin 2770965 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif deleted file mode 100644 index 4bccf8c..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif and /dev/null differ -- cgit From a37d8fbe6aa8c41755cb78fd840b37bf3b7e4f45 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:23:19 +0530 Subject: Add files via upload --- .../gifs/file2_limit_approach_point.gif | Bin 0 -> 433985 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif new file mode 100644 index 0000000..3abd596 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif differ -- cgit From 5161bc0d844aa531b5aca7f44f2948f5e8ec24af Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:24:43 +0530 Subject: Add files via upload --- .../gifs/file3_limit_approach_point_3d.gif | Bin 0 -> 5401504 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif new file mode 100644 index 0000000..3e87cdd Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file3_limit_approach_point_3d.gif differ -- cgit From dc0909aa933098f6ebfcb05a38333736b9361f28 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:32:55 +0530 Subject: Delete file2_partial_deriv_hill.gif --- .../gifs/file2_partial_deriv_hill.gif | Bin 551768 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif deleted file mode 100644 index f4c3f49..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif and /dev/null differ -- cgit From 67120056db5779009f1ba07c4bc57b133f9c983b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:33:05 +0530 Subject: Delete file3_partial_deriv_defn.gif --- .../gifs/file3_partial_deriv_defn.gif | Bin 2263059 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif deleted file mode 100644 index e0e42db..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif and /dev/null differ -- cgit From 8a5692733cfc6aba393b9b6249426b072fdd46f0 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:33:14 +0530 Subject: Delete file4_partial_deriv_example.gif --- .../gifs/file4_partial_deriv_example.gif | Bin 2145303 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif deleted file mode 100644 index 30682cb..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif and /dev/null differ -- cgit From ae6916fb7da103151b34d3c5ea18c940364a4cae Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:33:22 +0530 Subject: Delete file5_partial_deriv_func_2maximas.gif --- .../gifs/file5_partial_deriv_func_2maximas.gif | Bin 5123074 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif deleted file mode 100644 index aa74437..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif and /dev/null differ -- cgit From 000f8da4b69e339af080e38b5170a4b521158f87 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:33:56 +0530 Subject: Add files via upload --- .../gifs/file2_partial_deriv_hill.gif | Bin 0 -> 1238872 bytes .../gifs/file3_partial_deriv_defn.gif | Bin 0 -> 5251558 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif new file mode 100644 index 0000000..3c758ff Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file2_partial_deriv_hill.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif new file mode 100644 index 0000000..c66b3fa Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file3_partial_deriv_defn.gif differ -- cgit From 078bfefe9cc07d21072ef207a5b5473ed58b0864 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:36:08 +0530 Subject: Add files via upload --- .../gifs/file4_partial_deriv_example.gif | Bin 0 -> 4953394 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif new file mode 100644 index 0000000..d2bf541 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif differ -- cgit From 273aa722590c8357798999ce9df37bb44f57b4e1 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:38:33 +0530 Subject: Add files via upload --- .../gifs/file5_partial_deriv_func_2maximas.gif | Bin 0 -> 11846180 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif new file mode 100644 index 0000000..db7f4f8 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif differ -- cgit From fb9a6c84f748fabddec9c520ff77447be68ca481 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:49:52 +0530 Subject: Delete file2_multivariable_func_respresentation.gif --- .../gifs/file2_multivariable_func_respresentation.gif | Bin 664757 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif deleted file mode 100644 index 40add0f..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif and /dev/null differ -- cgit From ca4d3cd3cea0bdd2c8d4a793dff1eb19441fcbf8 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:50:19 +0530 Subject: Add files via upload --- .../gifs/file2_multivariable_func_respresentation.gif | Bin 0 -> 1828325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif new file mode 100644 index 0000000..8c4506c Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif differ -- cgit From 74f1fa84e5e94a44b76445c1e44b787450b087be Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:52:32 +0530 Subject: Delete file2_multivariable_func_respresentation.gif --- .../gifs/file2_multivariable_func_respresentation.gif | Bin 1828325 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif deleted file mode 100644 index 8c4506c..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif and /dev/null differ -- cgit From 40a762f97f9bde203cc6338761eef610eed7d3e1 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Thu, 2 Jul 2020 18:55:30 +0530 Subject: Add files via upload --- .../gifs/file2_multivariable_func_respresentation.gif | Bin 0 -> 1828325 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif new file mode 100644 index 0000000..8c4506c Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif differ -- cgit From f95a5e6577216155b7aa60a7bde0527b51d7028d Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Fri, 3 Jul 2020 11:42:55 +0530 Subject: Delete file1_partial_deriv_gas_law.gif --- .../gifs/file1_partial_deriv_gas_law.gif | Bin 2042905 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif deleted file mode 100644 index 560a7c0..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif and /dev/null differ -- cgit From 31d628b72ead2e74c04a95eb4a192b7c051c7ad2 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Fri, 3 Jul 2020 11:43:25 +0530 Subject: Add files via upload --- .../gifs/file1_partial_deriv_gas_law.gif | Bin 0 -> 2051994 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif new file mode 100644 index 0000000..8fdb80f Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif differ -- cgit From 8ac4b177298d57f258d0405682b326ab0e7e94d2 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Fri, 3 Jul 2020 11:45:17 +0530 Subject: Delete file1_partial_deriv_gas_law.gif --- .../gifs/file1_partial_deriv_gas_law.gif | Bin 2051994 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif deleted file mode 100644 index 8fdb80f..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif and /dev/null differ -- cgit From 39d507d441b8dd53ad2fcaf397dae3dcf102f2ad Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Fri, 3 Jul 2020 11:46:21 +0530 Subject: Add files via upload --- .../gifs/file1_partial_deriv_gas_law.gif | Bin 0 -> 2051994 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif new file mode 100644 index 0000000..8fdb80f Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif differ -- cgit From d3e8ac1760878ee50eb37d16c5a8a9a5e847639e Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sat, 4 Jul 2020 16:32:29 +0530 Subject: new repo due to large gif --- .../Orthonormal Basis/file2_OrthonormalBasis.py | 82 ---------- .../file2_sum_of_projections_part1.py | 133 ++++++++++++++++ .../file3_sum_of_projections_part2.py | 173 +++++++++++++++++++++ 3 files changed, 306 insertions(+), 82 deletions(-) delete mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py create mode 100755 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py create mode 100644 FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py deleted file mode 100644 index 0a28f22..0000000 --- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_OrthonormalBasis.py +++ /dev/null @@ -1,82 +0,0 @@ -from manimlib.imports import * -class OrthonormalBasis(GraphScene): - CONFIG = { - "x_min" : -6, - "x_max" : 6, - "y_min" : -4, - "y_max" : 4, - "graph_origin" : ORIGIN , -} - - def construct(self): - self.setup_axes(animate=True) - - XTD = self.x_axis_width/(self.x_max-self.x_min) - YTD = self.y_axis_height/(self.y_max-self.y_min) - - arrow1 = Arrow(start = ORIGIN,end = 0.707*YTD*UP+0.707*XTD*RIGHT) - arrow1.scale(2.25) - arrow1.set_color(DARK_BLUE) - - arrow2 = Arrow(start = ORIGIN,end = 0.707*YTD*UP+0.707*XTD*LEFT) - arrow2.scale(2.25) - arrow2.set_color(DARK_BLUE) - - square = Polygon(UP*0.4*YTD,0.2*(YTD*UP+XTD*RIGHT),ORIGIN,0.2*(YTD*UP+XTD*LEFT)) - square.set_color(DARK_BLUE) - self.play(ShowCreation(arrow2), ShowCreation(arrow1), ShowCreation(square)) - - ortho = TextMobject("Orthonormal Vectors") - ortho.scale(0.75) - ortho.move_to(DOWN+3*RIGHT) - self.play(Write(ortho)) - self.wait() - self.play(FadeOut(ortho)) - - arrow3 = Arrow(start = ORIGIN,end = YTD*3*UP+XTD*LEFT) - arrow3.scale(1.25) - arrow3.set_color(GOLD_E) - self.play(ShowCreation(arrow3)) - - arrow4 = Arrow(start = ORIGIN,end = YTD*UP+XTD*RIGHT) - arrow4.scale(1.8) - arrow4.set_color(GOLD_A) - - arrow5 = Arrow(start = ORIGIN,end = 2*YTD*UP-2*XTD*RIGHT) - arrow5.scale(1.3) - arrow5.set_color(GOLD_A) - - self.play(ShowCreation(arrow5), ShowCreation(arrow4)) - - self.wait() - - self.play(FadeOut(arrow1), FadeOut(arrow2), FadeOut(square)) - - self.wait() - - text1 = TextMobject(r"$<v,v_1> v_1$") - text1.move_to(UP+2*RIGHT) - text1.scale(0.75) - text2 = TextMobject(r"$<v,v_2> v_2$") - text2.move_to(UP+3*LEFT) - text2.scale(0.75) - - text3 = TextMobject("v") - text3.move_to(YTD*3.5*UP+XTD*1.5*LEFT) - - self.play(Write(text1), Write(text2), Write(text3)) - self.wait() - - line1 = DashedLine(start = YTD*UP+XTD*RIGHT, end = YTD*3*UP+XTD*1*LEFT) - line2 = DashedLine(start = YTD*2*UP+XTD*2*LEFT, end = YTD*3*UP+XTD*1*LEFT) - self.play(ShowCreation(line1),ShowCreation(line2)) - - self.wait() - - text = TextMobject(r"$v$ is the sum of projections","on the orthonormal vectors") - text[0].move_to(DOWN+3.2*RIGHT) - text[1].move_to(1.5*DOWN+3.2*RIGHT) - self.play(Write(text)) - self.wait(2) - self.play(FadeOut(arrow3), FadeOut(arrow4), FadeOut(arrow5), FadeOut(text1), FadeOut(text2), FadeOut(text3), FadeOut(self.axes), FadeOut(line1), FadeOut(line2)) - self.play(FadeOut(text)) diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py new file mode 100755 index 0000000..81a0888 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py @@ -0,0 +1,133 @@ +from manimlib.imports import * +class LinearTrans(LinearTransformationScene): + CONFIG = { + "show_basis_vectors": True, + "basis_vector_stroke_width": 1, + "leave_ghost_vectors": False, + "show_coordinates": True, + } + + def construct(self): + + self.setup() + + matrix = [[0.6,-0.8],[0.8,0.6]] + self.apply_matrix(matrix) + + self.wait(2) + orthonormal = TextMobject(r"These are 2 orthonormal vectors($v_1$ and $v_2$)") + orthonormal.scale(0.7) + orthonormal.move_to(DOWN+LEFT*3.5) + orthonormal.add_background_rectangle() + v1 = TextMobject(r"$v_1$") + v1.scale(0.75) + v1.set_color(X_COLOR) + v1.move_to(0.75*UP+RIGHT) + v1.add_background_rectangle() + v2 = TextMobject(r"$v_2$") + v2.scale(0.75) + v2.set_color(Y_COLOR) + v2.move_to(0.75*UP+LEFT*1.25) + v2.add_background_rectangle() + self.play(Write(orthonormal)) + self.play(Write(v1),Write(v2)) + self.wait() + self.play(FadeOut(orthonormal), FadeOut(v1), FadeOut(v2)) + + arrow = Arrow(start = ORIGIN,end = 3*RIGHT+UP) + arrow.scale(1.2) + arrow.set_color(BLUE) + arrow.apply_matrix(matrix) + text3 = TextMobject("v") + text3.move_to(3.2*UP+1.2*RIGHT) + text3.add_background_rectangle() + self.play(ShowCreation(arrow),Write(text3)) + self.wait() + v_cor = TextMobject("(1,3)") + v_cor.move_to(3.2*UP+1.3*RIGHT) + v_cor.set_color(BLUE) + v_cor.scale(0.75) + v_cor.add_background_rectangle() + self.play(Transform(text3,v_cor)) + + line1 = DashedLine(start = 1*UP+3*RIGHT, end = 3*RIGHT) + line2 = DashedLine(start = 1*UP+3*RIGHT, end = UP) + line1.apply_matrix(matrix) + line2.apply_matrix(matrix) + self.play(ShowCreation(line1),ShowCreation(line2),run_time = 2) + + v1 = Arrow(start = ORIGIN,end = 3*RIGHT+UP) + v1.scale(1.2) + v1.set_color(BLUE) + v1.apply_matrix(matrix) + arrow1 = Arrow(start = ORIGIN,end = 3*RIGHT) + arrow1.scale(1.2) + arrow1.set_color("#6B8E23") + arrow1.apply_matrix(matrix) + self.play(Transform(v1,arrow1)) + v1_cor = TextMobject(r"$<v,v_1> v_1$") + v1_cor.move_to(2.5*UP+3*RIGHT) + v1_cor.scale(0.75) + v1_cor.add_background_rectangle() + self.play(Write(v1_cor)) + self.wait(0.5) + text1 = TextMobject(r"(1.8,2.4)") + text1.move_to(2.1*UP+2.5*RIGHT) + text1.scale(0.75) + text1.set_color("#6B8E23") + text1.add_background_rectangle() + self.play(Transform(v1_cor,text1)) + + v2 = Arrow(start = ORIGIN,end = 3*RIGHT+UP) + v2.scale(1.2) + v2.set_color("#8b0000") + v2.apply_matrix(matrix) + arrow2 = Arrow(start = ORIGIN,end = UP) + arrow2.scale(2.1) + arrow2.set_color("#8b0000") + arrow2.apply_matrix(matrix) + self.wait(0.5) + self.play(Transform(v2,arrow2)) + self.wait(0.5) + v2_cor = TextMobject(r"$<v,v_2> v_2$") + v2_cor.move_to(0.75*UP+2.5*LEFT) + v2_cor.scale(0.75) + v2_cor.add_background_rectangle() + self.play(Write(v2_cor)) + self.wait(0.5) + text2 = TextMobject(r"(-0.8,0.6)") + text2.move_to(0.75*UP+1.75*LEFT) + text2.scale(0.75) + text2.set_color("#8b0000") + text2.add_background_rectangle() + self.play(Transform(v2_cor,text2)) + + self.wait() + + self.play(ApplyMethod(v2.move_to,1.4*RIGHT+2.7*UP),FadeOut(v1_cor),FadeOut(v2_cor),FadeOut(v_cor)) + + self.wait() + + ending = TextMobject(r"$v = <v,v_1> v_1 + <v,v_2> v_2$") + ending.scale(0.7) + ending.move_to(DOWN) + ending.add_background_rectangle() + self.play(Write(ending)) + self.wait() + self.play(FadeOut(ending)) + + ending = TextMobject(r"$\left[ \begin{array} {c} 1\\ 3 \end{array}\right] = \left[ \begin{array} {c}1.8 \\ 2.4 \end{array}\right] + \left[ \begin{array} {c} -0.8\\ 0.6 \end{array}\right]$") + ending.scale(0.7) + ending.move_to(DOWN) + ending.add_background_rectangle() + self.play(Write(ending)) + self.wait() + self.play(FadeOut(ending)) + + ending = TextMobject(r"$v$ is the sum of projections on the orthonormal vectors") + ending.scale(0.7) + ending.move_to(DOWN) + ending.add_background_rectangle() + self.play(Write(ending)) + self.wait() + self.play(FadeOut(ending)) \ No newline at end of file diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py new file mode 100644 index 0000000..9d25192 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py @@ -0,0 +1,173 @@ +from manimlib.imports import * +class ThreeDExplanation(ThreeDScene): + + def construct(self): + + text = TextMobject("Let us consider the example discussed above again. These are the things we know:-") + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*UP) + self.play(Write(text)) + self.wait(2) + basis = TextMobject(r"Set of Orthonormal Basis - $\left(\begin{array}{c}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}\frac{-1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}0\\0\\1\end{array}\right)$") + basis.scale(0.75) + basis.move_to(UP*1.5) + self.play(Write(basis)) + v = TextMobject(r"$v_1$",r"$v_2$",r"$v_3$") + v[0].move_to(UP*0.5+RIGHT*0.75) + v[1].move_to(UP*0.5+RIGHT*2.5) + v[2].move_to(UP*0.5+RIGHT*4) + eq = TextMobject(r"$v = \left(\begin{array}{c}3\\4\\5\end{array}\right)$") + eq1 = TextMobject(r"$<v,v_1> = \frac{3}{\sqrt{2}} + \frac{4}{\sqrt{2}} + 0 = \frac{7}{\sqrt{2}}$") + eq2 = TextMobject(r"$<v,v_2> = \frac{-3}{\sqrt{2}} + \frac{4}{\sqrt{2}} + 0 =\frac{1}{\sqrt{2}}$") + eq3 = TextMobject(r"$<v,v_3> = 0 + 0 + 5 =5$") + eq.move_to(4*LEFT+DOWN) + eq1.move_to(0.5*DOWN+2*RIGHT) + eq2.move_to(1.5*DOWN+2*RIGHT) + eq3.move_to(2.5*DOWN+2*RIGHT) + self.play(Write(v)) + self.play(Write(eq)) + self.play(Write(eq1)) + self.play(Write(eq2)) + self.play(Write(eq3)) + self.wait() + self.play(FadeOut(text), FadeOut(basis), FadeOut(eq), FadeOut(v), FadeOut(eq1), FadeOut(eq2), FadeOut(eq3)) + self.wait() + + text = TextMobject("These are the 3 mutually orthonormal basis of the set(", r"$v_1$, ", r"$v_2$, ", r"$v_3$",")") + text[1].set_color(DARK_BLUE) + text[2].set_color(RED) + text[3].set_color(YELLOW) + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*DOWN) + self.play(Write(text)) + self.wait() + + axes = ThreeDAxes(x_min = -9,x_max=9,y_min=-9,y_max=9,z_min=-9,z_max=9) + self.play(ShowCreation(axes)) + self.move_camera(distance = 100, phi=30*DEGREES,theta=45*DEGREES,run_time=3) + self.begin_ambient_camera_rotation(rate=0.3) + + dashedline1 = DashedLine(start = -12*(UP+RIGHT), end = 12*(UP+RIGHT)) + dashedline2 = DashedLine(start = -12*(UP+LEFT), end = 12*(UP+LEFT)) + dashedline3 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = 3.5*UP+3.5*RIGHT) + dashedline4 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = 0.5*UP+0.5*LEFT) + dashedline5 = DashedLine(start = 4*UP+3*RIGHT+[0,0,5], end = [0,0,5]) + + self.play(ShowCreation(dashedline1), ShowCreation(dashedline2)) + + line1 = Line(start = ORIGIN,end = 0.707*RIGHT + 0.707*UP) + line1.set_color(DARK_BLUE) + tip1 = Polygon(0.707*RIGHT + 0.707*UP, 0.707*RIGHT + 0.607*UP, 0.607*RIGHT + 0.707*UP) + tip1.set_opacity(1) + tip1.set_fill(DARK_BLUE) + tip1.set_color(DARK_BLUE) + self.play(ShowCreation(line1), ShowCreation(tip1)) + + line2 = Line(start = ORIGIN,end = 0.707*LEFT + 0.707*UP) + line2.set_color(RED) + tip2 = Polygon(0.707*LEFT + 0.707*UP, 0.707*LEFT + 0.607*UP, 0.607*LEFT + 0.707*UP) + tip2.set_opacity(1) + tip2.set_fill(RED) + tip2.set_color(RED) + + self.play(ShowCreation(line2), ShowCreation(tip2)) + + line3 = Line(start = ORIGIN,end = [0,0,1]) + line3.set_color(YELLOW) + tip3 = Polygon([0,0,1],[0,0,0.8]-0.2*RIGHT,[0,0,0.8]-0.2*LEFT) + tip3.set_opacity(1) + tip3.set_fill(YELLOW) + tip3.set_color(YELLOW) + self.play(ShowCreation(line3), ShowCreation(tip3)) + self.wait() + + self.play(FadeOut(text)) + + text = TextMobject("Take the projection of ", r"$v$", " on the mutually orthonormal vectors") + text[1].set_color(GOLD_E) + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*DOWN) + self.play(Write(text)) + self.wait(2) + + a_line = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5]) + a_line.set_color(GOLD_E) + a_tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT) + a_tip.set_opacity(1) + a_tip.set_fill(GOLD_E) + a_tip.set_color(GOLD_E) + + self.play(ShowCreation(a_line), ShowCreation(a_tip)) + self.wait(9) + self.play(ShowCreation(dashedline3),ShowCreation(dashedline4),ShowCreation(dashedline5)) + self.wait(6) + + pv1 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5]) + pv1.set_color(GOLD_E) + pv1tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT) + pv1tip.set_opacity(1) + pv1tip.set_fill(GOLD_E) + pv1tip.set_color(GOLD_E) + + v1_p = Line(start = ORIGIN,end = 3.5*RIGHT + 3.5*UP) + v1_p.set_color(BLUE_E) + v1_p_tip = Polygon(3.5*RIGHT + 3.5*UP, 3.5*RIGHT + 3.4*UP, 3.4*RIGHT + 3.5*UP) + v1_p_tip.set_opacity(1) + v1_p_tip.set_fill(BLUE_E) + v1_p_tip.set_color(BLUE_E) + + pv2 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5]) + pv2.set_color(GOLD_E) + pv2tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT) + pv2tip.set_opacity(1) + pv2tip.set_fill(GOLD_E) + pv2tip.set_color(GOLD_E) + + v2_p = Line(start = ORIGIN,end = 0.5*LEFT + 0.5*UP) + v2_p.set_color(RED_E) + v2_p_tip = Polygon(0.5*LEFT + 0.5*UP, 0.5*LEFT + 0.4*UP, 0.4*LEFT + 0.5*UP) + v2_p_tip.set_opacity(1) + v2_p_tip.set_fill(RED_E) + v2_p_tip.set_color(RED_E) + + pv3 = Line(start = ORIGIN,end = 4*UP+3*RIGHT+[0,0,5]) + pv3.set_color(GOLD_E) + pv3tip = Polygon(4*UP+3*RIGHT+[0,0,5],3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*UP+0.1*LEFT,3.6*UP+2.7*RIGHT+[0,0,4.5]+0.1*DOWN+0.1*RIGHT) + pv3tip.set_opacity(1) + pv3tip.set_fill(GOLD_E) + pv3tip.set_color(GOLD_E) + + v3_p = Line(start = ORIGIN,end = [0,0,5]) + v3_p.set_color(YELLOW_E) + v3_p_tip = Polygon([0,0,5],[0,0,4.8]+0.2*RIGHT,[0,0,4.8]+0.2*LEFT) + v3_p_tip.set_opacity(1) + v3_p_tip.set_fill(YELLOW_E) + v3_p_tip.set_color(YELLOW_E) + + self.stop_ambient_camera_rotation() + self.play(Transform(pv1,v1_p), Transform(pv1tip,v1_p_tip), Transform(pv2,v2_p), Transform(pv2tip,v2_p_tip), Transform(pv3,v3_p), Transform(pv3tip,v3_p_tip)) + self.play(FadeOut(dashedline1), + FadeOut(dashedline2), + FadeOut(dashedline3), + FadeOut(dashedline4), + FadeOut(dashedline5), + FadeOut(line1), + FadeOut(tip1), + FadeOut(line2), + FadeOut(tip2), + FadeOut(line3), + FadeOut(tip3), + FadeOut(text)) + + text = TextMobject(r"$v$ is the sum of projections on the orthonormal vectors") + text.set_color(GOLD_E) + text.scale(0.75) + self.add_fixed_in_frame_mobjects(text) + text.move_to(3*DOWN) + self.play(Write(text), ApplyMethod(pv2.move_to,(3.5*RIGHT + 3.5*UP+3*RIGHT+4*UP)/2), ApplyMethod(pv2tip.move_to,(3.1*RIGHT + 3.9*UP))) + self.play(ApplyMethod(pv3.move_to,3*RIGHT + 4*UP + [0,0,2.5]), ApplyMethod(pv3tip.move_to,(3*RIGHT + 4*UP + [0,0,4.8]))) + + self.wait(3) \ No newline at end of file -- cgit From ba43051d6bac9074939a10e44e99935cad80d7c3 Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 11:07:04 +0530 Subject: Animation In Linear Transformation --- .../file_before_matrix.py | 191 +++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py new file mode 100644 index 0000000..85a2983 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py @@ -0,0 +1,191 @@ +from manimlib.imports import * + +class linear(GraphScene): + + CONFIG = { + "x_min": -5, + "x_max": 5, + "y_min": -5, + "y_max": 5, + "graph_origin": ORIGIN+RIGHT, + "x_labeled_nums": list(range(-5, 6)), + "y_labeled_nums": list(range(-5, 6)), + "x_axis_width": 7, + "y_axis_height": 7, + } + + def construct(self): + + XTD = self.x_axis_width/(self.x_max- self.x_min) + YTD = self.y_axis_height/(self.y_max- self.y_min) + + self.setup_axes(animate = True) + heading = TextMobject(r"$T(x,y) = T(x+2y,x-y)$") + heading.move_to(UP*3+LEFT*4) + self.play(Write(heading)) + self.wait() + + before = TextMobject("Before Linear Transformation") + before.set_color(DARK_BLUE) + before.move_to(3*UP+4*RIGHT) + before.scale(0.75) + dot1 = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP) + dot2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+1*YTD*UP) + dot1.set_color(DARK_BLUE) + dot2.set_color(DARK_BLUE) + p1 = TextMobject(r"$P_1$") + p1.set_color(DARK_BLUE) + p1.move_to(self.graph_origin+1*XTD*RIGHT+2*YTD*UP) + p2 = TextMobject(r"$P_2$") + p2.set_color(DARK_BLUE) + p2.move_to(self.graph_origin+2*XTD*RIGHT+2*YTD*UP) + + after = TextMobject("After applying Linear Transformation") + after.set_color(RED) + after.move_to(3*UP+4.5*RIGHT) + after.scale(0.75) + dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP) + dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP) + dot3.set_color(RED) + dot4.set_color(RED) + p3 = TextMobject(r"$P_3$") + p3.set_color(RED) + p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP) + p4 = TextMobject(r"$P_4$") + p4.set_color(RED) + p4.move_to(self.graph_origin+4*XTD*RIGHT+2*YTD*UP) + + tp1 = TextMobject(r"$T(P_1) = P_3$") + tp1.set_color(RED) + tp1.move_to(DOWN+4*LEFT) + tp2 = TextMobject(r"$T(P_2) = P_4$") + tp2.set_color(RED) + tp2.move_to(2*DOWN+4*LEFT) + + self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2)) + self.wait(3) + self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3), Write(tp1), Write(tp2)) + self.wait(3) + + +class withgrid(LinearTransformationScene): + def construct(self): + + heading = TextMobject(r"$T(x,y) = (x+2y,x-y)$") + heading.move_to(UP*2.5+LEFT*4) + self.play(Write(heading)) + self.wait() + + before = TextMobject("Before Linear Transformation") + before.set_color(DARK_BLUE) + before.move_to(3.5*UP+4*RIGHT) + before.scale(0.75) + dot1 = Dot().shift(1*RIGHT+1*UP) + dot2 = Dot().shift(2*RIGHT+1*UP) + dot1.set_color(DARK_BLUE) + dot2.set_color(DARK_BLUE) + + dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP) + dot2_c = Dot(radius = 0.05).shift(2*RIGHT+1*UP) + dot1_c.set_color(RED) + dot2_c.set_color(RED) + self.add_transformable_mobject(dot1_c) + self.add_transformable_mobject(dot2_c) + + p1 = TextMobject(r"$P_1$") + p1.set_color(DARK_BLUE) + p1.move_to(1*RIGHT+1.5*UP) + p2 = TextMobject(r"$P_2$") + p2.set_color(DARK_BLUE) + p2.move_to(2*RIGHT+1.5*UP) + + after = TextMobject("After applying Linear Transformation") + after.set_color(RED) + after.move_to(3.5*UP+3.5*RIGHT) + after.scale(0.75) + dot3 = Dot().shift(3*RIGHT+0*UP) + dot4 = Dot().shift(4*RIGHT+1*UP) + dot3.set_color(RED) + dot4.set_color(RED) + p3 = TextMobject(r"$P_3$") + p3.set_color(RED) + p3.move_to(3*RIGHT-0.6*UP) + p4 = TextMobject(r"$P_4$") + p4.set_color(RED) + p4.move_to(4*RIGHT+1.5*UP) + + self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2)) + self.wait(3) + matrix = [[1,2],[1,-1]] + self.apply_matrix(matrix) + self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3)) + self.play(Transform(before,after)) + self.wait(3) + + ending = TextMobject(r"$T(\left[\begin{array}{c}x \\ y\end{array}\right]) = \left[\begin{array}{c} x+2y \\ x-y\end{array}\right]$") + ending.move_to(UP*2+LEFT*4) + self.play(Transform(heading,ending)) + self.wait() + +from manimlib.imports import * +class ThreeDExplanation(ThreeDScene): + + def construct(self): + + text = TextMobject(r"$T(x,y) = (x+y,x-y,x+2y)$") + text.scale(0.75) + text.move_to(UP*2.5+LEFT*4) + self.add_fixed_in_frame_mobjects(text) + self.play(Write(text)) + self.wait() + + before = TextMobject("Before Linear Transformation") + self.add_fixed_in_frame_mobjects(before) + before.set_color(GREEN_E) + before.move_to(3.5*UP+4*RIGHT) + before.scale(0.75) + dot1 = Dot().shift(1*RIGHT+1*UP) + dot2 = Dot().shift(2*RIGHT+1*UP) + dot3 = Dot().shift(1*RIGHT+1*UP) + dot1.set_color(GREEN_E) + dot2.set_color(GREEN_E) + dot3.set_color(GREEN_E) + self.play(ShowCreation(before)) + + dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP) + dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP) + dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP) + dot1_c.set_color(RED) + dot2_c.set_color(RED) + dot3_c.set_color(RED) + + axes = ThreeDAxes(x_min = -7,x_max=7,y_min=-4,y_max=4,z_min=-4,z_max=4) + self.play(ShowCreation(axes)) + self.move_camera(distance = 100, phi=30*DEGREES,theta=45*DEGREES,run_time=3) + + self.begin_ambient_camera_rotation(rate=0.3) + self.wait(1) + self.stop_ambient_camera_rotation() + + plane = NumberPlane() + self.play(ShowCreation(dot1),ShowCreation(dot3),ShowCreation(dot2),ShowCreation(plane)) + + self.play(FadeOut(before)) + after = TextMobject("After applying Linear Transformation") + self.add_fixed_in_frame_mobjects(after) + after.set_color(RED) + after.move_to(3.5*UP+3.5*RIGHT) + after.scale(0.75) + + matrix = [[1,1],[1,-1],[2,1]] + self.play(FadeOut(dot1),FadeOut(dot2),FadeOut(dot3),ApplyMethod(plane.apply_matrix,matrix),ApplyMethod(dot1_c.apply_matrix,matrix),ApplyMethod(dot3_c.apply_matrix,matrix),ApplyMethod(dot2_c.apply_matrix,matrix)) + self.begin_ambient_camera_rotation(rate=0.3) + self.wait(3) + self.stop_ambient_camera_rotation() + + ending = TextMobject(r"$T(\left[\begin{array}{c}x \\ y\end{array}\right]) = \left[\begin{array}{c} x+y \\ x-y \\ x+2y \end{array}\right]$") + ending.scale(0.75) + ending.move_to(-UP*2+LEFT*4) + self.play(Transform(text,ending)) + self.add_fixed_in_frame_mobjects(ending) + self.wait(9) -- cgit From ad41877105cce82da726387083f4c63deb4f4f7c Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 11:54:11 +0530 Subject: video 1 of GSOP --- .../file_introduction.py | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py new file mode 100644 index 0000000..ccd23c9 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file_introduction.py @@ -0,0 +1,33 @@ +from manimlib.imports import * + +class Orthonormal(Scene): + def construct(self): + Centre = DOWN + arrow_1 = Arrow(start = Centre+ORIGIN,end = Centre+1.414*(UP+RIGHT)) + arrow_2 = Arrow(start = Centre+ORIGIN,end = Centre+2*UP) + arrow_1.scale(1.35) + arrow_2.scale(1.35) + text = TextMobject("This is a set of linearly independent vectors") + text.scale(0.75) + text.move_to(3*UP+3*LEFT) + text.set_color(PURPLE_E) + arrow_1.set_color(PURPLE_E) + arrow_2.set_color(PURPLE_E) + self.play(Write(text)) + self.play(ShowCreation(arrow_1), ShowCreation(arrow_2)) + self.wait(2) + text1 = TextMobject("After we apply Gram-Schmidt Orthogonalization Process to set of linearly independent vectors") + text1.scale(0.6) + text1.move_to(3*UP+2*LEFT) + text1.set_color(GREEN) + arrow_a = Arrow(start = Centre+ORIGIN,end = Centre+0.707*(UP+RIGHT)) + arrow_a.set_color(GREEN) + arrow_a.scale(2) + self.play(Transform(text,text1)) + self.wait(2) + self.play(Transform(arrow_1,arrow_a)) + arrow_b = Arrow(start = Centre+ORIGIN,end = Centre+0.707*(UP+LEFT)) + arrow_b.set_color(GREEN) + arrow_b.scale(2) + self.play(Transform(arrow_2,arrow_b)) + self.wait(2) \ No newline at end of file -- cgit From 747f68c91279c9915382f0013ddc80fa67bd6d09 Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 12:53:03 +0530 Subject: Video 2 on projections added --- .../file1_projections.py | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py index 814fa57..dd4b8d4 100755 --- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file1_projections.py @@ -23,10 +23,10 @@ class Projections(GraphScene): arrow_b.set_color(DARK_BLUE) self.play(ShowCreation(arrow_a), ShowCreation(arrow_b)) - text = TextMobject(r"Let there be 2 vectors $a$ and $b$") + text = TextMobject(r"Consider 2 linearly independent vectors $a$ and $b$") text.set_color(DARK_BLUE) - text.scale(0.75) - text.move_to(2*YTD*DOWN+4*XTD*LEFT) + text.scale(0.6) + text.move_to(3*YTD*UP+5*XTD*LEFT) text_a = TextMobject("a") text_a.move_to(0.4*YTD*DOWN+3*XTD*RIGHT) text_a.set_color(DARK_BLUE) @@ -51,7 +51,7 @@ class Projections(GraphScene): self.play(FadeOut(text), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b)) text = TextMobject(r"$p$ is the projection of $b$ on $a$") text.set_color(GOLD_E) - text.move_to(2*DOWN+3*LEFT) + text.move_to(3*UP+4*LEFT) text.scale(0.8) self.play(Write(text),Write(text_p)) self.wait() @@ -76,10 +76,4 @@ class Projections(GraphScene): self.play(Write(text)) self.wait(2) - self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text)) - - text = TextMobject(r"Therefore, unit vectors of $b-p$ and $a$ are orthonormal to each other") - text.scale(0.75) - self.play(Write(text)) - self.wait(2) - self.play(FadeOut(text)) \ No newline at end of file + self.play(FadeOut(self.axes), FadeOut(arrow_a), FadeOut(arrow_b), FadeOut(arrow_b_copy), FadeOut(arrow_o), FadeOut(text_a), FadeOut(text_b), FadeOut(text_o), FadeOut(text_p), FadeOut(text)) \ No newline at end of file -- cgit From 1697d2286a00b1bfdac00320a60c968ac5a45eaf Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 18:19:17 +0530 Subject: Video 3: For Algo of GSOP added --- .../file2_orthonormal.py | 207 ++++++++++++++++++--- 1 file changed, 183 insertions(+), 24 deletions(-) diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py index 640b8be..af51fc6 100644 --- a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file2_orthonormal.py @@ -1,18 +1,153 @@ from manimlib.imports import * -from manimlib.imports import * - -class Orthogonal(ThreeDScene): +class Algo(ThreeDScene): def construct(self): - text = TextMobject(r"These are two Orthogonal Basis $\alpha_{1}$ and $\alpha_{2}$") + axes = ThreeDAxes(x_min = -5,x_max=5,y_min=-3,y_max=3,z_min=-4,z_max=4) + self.play(ShowCreation(axes)) + + text = TextMobject(r"This is the vector $\beta_1(=\left[\begin{array}{c} 4\\0\\0 \end{array}\right])$") + text.set_color(GREEN) + text.scale(0.6) + text.move_to(3*UP+5*LEFT) + self.play(Write(text)) + + arrow_a = Arrow(start = ORIGIN, end = 4*RIGHT) + arrow_a.set_color(GREEN) + arrow_a.scale(1.15) + self.play(ShowCreation(arrow_a)) + + text_a = TextMobject(r"$\beta_1$") + text_a.move_to(0.4*DOWN+3*RIGHT) + text_a.set_color(GREEN) + text_a.scale(0.75) + self.play(Write(text_a)) + self.wait() + self.play(FadeOut(text)) + + text = TextMobject(r"Normalize $\beta_1$ to get $\alpha_1$") + text.set_color(DARK_BLUE) text.scale(0.75) + text.move_to(3*UP+5*LEFT) + self.play(Write(text)) + + alpha_1 = Arrow(start = ORIGIN,end = RIGHT) + alpha_1.scale(1.9) + alpha_1.set_color(DARK_BLUE) + text_alpha_1 = TextMobject(r"$\alpha_1$") + text_alpha_1.move_to(0.4*DOWN+RIGHT) + text_alpha_1.set_color(DARK_BLUE) + text_alpha_1.scale(0.75) + self.play(Transform(text_a,text_alpha_1), Transform(arrow_a,alpha_1)) + self.wait() + self.play(FadeOut(text)) + + text = TextMobject(r"Consider another vector $\beta_2(=\left[\begin{array}{c} 2\\2\\0 \end{array}\right])$") + text1 = TextMobject(r"which is linearly independent to $\beta_1$") + text.set_color(GREEN) + text1.set_color(GREEN) + text.scale(0.6) + text1.scale(0.6) + text.move_to(3*UP+4*LEFT) + text1.move_to(2*UP+4*LEFT) + self.play(Write(text)) + self.play(Write(text1)) + + arrow_b = Arrow(start = ORIGIN, end = 2*UP+2*RIGHT) + arrow_b.scale(1.2) + arrow_b.set_color(GREEN) + text_b = TextMobject(r"$\beta_2$") + text_b.move_to(1.5*UP+RIGHT) + text_b.set_color(GREEN) + text_b.scale(0.75) + + self.play(ShowCreation(arrow_b), Write(text_b)) + self.wait() + + arrow_b_copy = Arrow(start = ORIGIN, end = 2*UP+2*RIGHT) + arrow_b_copy.scale(1.2) + + arrow_p = Arrow(start = ORIGIN, end = 2*RIGHT) + arrow_p.scale(1.35) + arrow_p.set_color(GOLD_E) + + text_p = TextMobject("p") + text_p.move_to(0.25*DOWN+RIGHT) + text_p.set_color(GOLD_E) + + self.play(FadeOut(text), FadeOut(text1), Transform(arrow_b_copy,arrow_p), FadeOut(text_a), FadeOut(text_b)) + text = TextMobject(r"$p$ is the projection of $\beta_2$ on $\alpha_1$") + text.set_color(GOLD_E) + text.move_to(3*UP+4*LEFT) + text.scale(0.8) + self.play(Write(text),Write(text_p)) + self.wait() + + self.play(FadeIn(text_b)) + + arrow_o = Arrow(start = 2*RIGHT, end = 2*UP+2*RIGHT) + arrow_o.scale(1.35) + arrow_o.set_color(PURPLE_E) + + text_o = TextMobject(r"$\beta_2-p$") + text_o.move_to(UP+2.7*RIGHT) + text_o.scale(0.75) + text_o.set_color(PURPLE_E) + + self.play(ShowCreation(arrow_o)) + self.play(FadeOut(text),Write(text_o)) + + text = TextMobject(r"$\beta_2-p$ is orthogonal to p") + text1 = TextMobject(r"(and hence orthogonal to $\alpha_1$ also)") + text.set_color(PURPLE_E) + text1.set_color(PURPLE_E) + text.scale(0.7) + text1.scale(0.7) + text.move_to(3*UP+4*LEFT) + text1.move_to(2.5*UP+4*LEFT) + self.play(Write(text)) + self.play(Write(text1)) + self.wait(2) + + self.play(FadeOut(text_p), FadeIn(arrow_a), FadeOut(text), FadeOut(text1), FadeOut(arrow_b_copy), FadeOut(arrow_p), FadeOut(text_b), FadeOut(arrow_b)) + self.play(ApplyMethod(arrow_o.move_to,UP), ApplyMethod(text_o.move_to,RIGHT+UP)) + + text = TextMobject(r"Now, Normalize $\beta_2-p$") + text.set_color(DARK_BLUE) + text.scale(0.6) + text.move_to(3*UP+4*LEFT) + self.play(Write(text)) + + alpha_2 = Arrow(start = ORIGIN,end = UP) + alpha_2.scale(1.9) + alpha_2.set_color(DARK_BLUE) + text_alpha_2 = TextMobject(r"$\alpha_2$") + text_alpha_2.move_to(0.4*LEFT+UP) + text_alpha_2.set_color(DARK_BLUE) + text_alpha_2.scale(0.75) + self.play(Transform(text_o,text_alpha_2), Transform(arrow_o,alpha_2), FadeIn(text_a)) + self.wait() + self.play(FadeOut(text),FadeOut(text_a),FadeOut(text_o)) + + self.add(axes) + ############################################################################# + axis = TextMobject(r"$\alpha_1$",r"$\alpha_2$",r"$\alpha_3$",r"$\beta_3$",r"$\alpha_3$",r"$\alpha_3$",r"$\alpha_3$",r"$\alpha_3$") + axis.scale(0.5) + axis[0].move_to(0.5*RIGHT+[0,0,-0.5]) + axis[1].move_to(0.5*UP+[0,0,-0.5]) + axis[2].move_to(np.array([0,0,0.5])) + axis[3].move_to(np.array([1,1,1.5])) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + ############################################################################# + + text = TextMobject(r"These are the same two orthonormal vectors $\alpha_{1}$ and $\alpha_{2}$") + text.scale(0.6) + text.set_color(DARK_BLUE) self.add_fixed_in_frame_mobjects(text) text.move_to(3*(DOWN+RIGHT)) self.play(Write(text)) - axes = ThreeDAxes() - self.play(ShowCreation(axes)) self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3) self.begin_ambient_camera_rotation(rate=0.3) @@ -31,7 +166,7 @@ class Orthogonal(ThreeDScene): tip2.set_color(DARK_BLUE) arrow2.set_color(DARK_BLUE) - self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2)) + self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), FadeOut(arrow_a), FadeOut(arrow_o)) self.wait() a_line = Line(start = ORIGIN,end = 2*UP+2*RIGHT+[0,0,2]) @@ -50,9 +185,11 @@ class Orthogonal(ThreeDScene): self.play(FadeOut(text), ShowCreation(a_line), ShowCreation(a_tip), ShowCreation(a_line_c1), ShowCreation(a_tip_c1)) - text = TextMobject(r"There is a vector $\beta_3$") - text.scale(0.75) + text = TextMobject(r"Now, we have a vector $\beta_3(=\left[\begin{array}{c} 2\\2\\2 \end{array}\right])$") + text.set_color(GOLD_E) + text.scale(0.7) self.add_fixed_in_frame_mobjects(text) + self.add_fixed_orientation_mobjects(axis[3]) text.move_to(3*(DOWN+RIGHT)) self.play(Write(text)) self.wait() @@ -69,7 +206,8 @@ class Orthogonal(ThreeDScene): self.play(Transform(a_line_c1,p_line1),Transform(a_tip_c1,p_tip1)) text = TextMobject(r"Take projection of $\beta_3$ on $\alpha_1$") - text.scale(0.75) + text.scale(0.6) + text.set_color(GOLD_E) self.add_fixed_in_frame_mobjects(text) text.move_to(3*(DOWN+RIGHT)) self.play(Write(text)) @@ -98,14 +236,15 @@ class Orthogonal(ThreeDScene): a_tip1_c1.set_color(GREEN_E) text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$)") - text.scale(0.75) + text.set_color(GREEN_E) + text.scale(0.6) self.add_fixed_in_frame_mobjects(text) text.move_to(3*(DOWN+RIGHT)) self.play(Write(text)) self.play(ShowCreation(o_line1), ShowCreation(o_tip1)) self.wait(2) self.play(FadeOut(a_line_c1), FadeOut(a_tip_c1), - FadeOut(a_line), FadeOut(a_tip), + FadeOut(a_line), FadeOut(a_tip), FadeOut(axis[3]), Transform(o_line1,a_line1), Transform(o_tip1,a_tip1)) self.wait() @@ -120,16 +259,17 @@ class Orthogonal(ThreeDScene): p_arrow2.set_color(GOLD_E) last_a = Line(start = 2*UP,end = [0,2,2]) - last_a.set_color(GOLD_E) + last_a.set_color(PURPLE_E) last_a_tip = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT) last_a_tip.move_to([0,2,2]) last_a_tip.set_opacity(1) - last_a_tip.set_fill(GOLD_E) - last_a_tip.set_color(GOLD_E) + last_a_tip.set_fill(PURPLE_E) + last_a_tip.set_color(PURPLE_E) self.wait() text = TextMobject(r"Take projection on $\alpha_2$") - text.scale(0.75) + text.scale(0.6) + text.set_color(GOLD_E) self.add_fixed_in_frame_mobjects(text) text.move_to(3*(DOWN+RIGHT)) self.play(Write(text)) @@ -138,9 +278,10 @@ class Orthogonal(ThreeDScene): self.play(FadeOut(text)) text = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$)") - text.scale(0.75) + text.set_color(PURPLE_E) + text.scale(0.6) self.add_fixed_in_frame_mobjects(text) - text.move_to(3*DOWN+2*RIGHT) + text.move_to(3*DOWN+3.5*RIGHT) self.play(Write(text)) self.play(ShowCreation(o_line1), ShowCreation(o_tip1)) self.wait(2) @@ -149,19 +290,26 @@ class Orthogonal(ThreeDScene): self.play(FadeOut(text)) larrow3 = Line(start = ORIGIN,end = [0,0,2]) - larrow3.set_color(GOLD_E) + larrow3.set_color(PURPLE_E) ltip3 = Polygon([0,0,2],[0,0,1.8]+0.2*RIGHT,[0,0,1.8]+0.2*LEFT) ltip3.set_opacity(1) - ltip3.set_fill(GOLD_E) - ltip3.set_color(GOLD_E) + ltip3.set_fill(PURPLE_E) + ltip3.set_color(PURPLE_E) self.wait() self.play(FadeOut(o_line1), FadeOut(o_tip1), FadeOut(a_line1_c1), FadeOut(a_tip1_c1), Transform(last_a,larrow3), Transform(last_a_tip,ltip3)) - text = TextMobject(r"Normalisation of the orthogonal vector") - text.scale(0.75) + text = TextMobject(r"Normalize, the vector") + text1 = TextMobject(r"$\beta_3$-(projection of $\beta_3$ on $\alpha_1$ + projection of $\beta_3$ on $\alpha_2$") + text.set_color(PURPLE_E) + text1.set_color(PURPLE_E) + text.scale(0.6) + text1.scale(0.6) self.add_fixed_in_frame_mobjects(text) - text.move_to(3*DOWN+2*RIGHT) + self.add_fixed_in_frame_mobjects(text1) + text.move_to(3*DOWN+3*RIGHT) + text1.move_to(3.5*DOWN+3*RIGHT) self.play(Write(text)) + self.play(Write(text1)) arrow3 = Line(start = ORIGIN,end = [0,0,1]) arrow3.set_color(DARK_BLUE) @@ -170,5 +318,16 @@ class Orthogonal(ThreeDScene): tip3.set_fill(DARK_BLUE) tip3.set_color(DARK_BLUE) self.play(Transform(last_a,arrow3), Transform(last_a_tip,tip3)) + self.add_fixed_orientation_mobjects(axis[2]) + + self.wait() + self.play(FadeOut(text),FadeOut(text1)) + + text = TextMobject(r"These are the three orthonormal vectors $\alpha_1, \alpha_2, \alpha_3$") + text.set_color(DARK_BLUE) + self.add_fixed_in_frame_mobjects(text) + text.scale(0.6) + text.move_to(3*DOWN+3.5*RIGHT) + self.play(Write(text)) self.wait(3) \ No newline at end of file -- cgit From 7b7ae0deb322b097c5e5940f6b9789a641af205a Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 19:36:24 +0530 Subject: code for last video of GSOP added --- .../file3_Non_Standard_Basis.py | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py new file mode 100644 index 0000000..6410a2c --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Gram Schmidt Orthonormalization Process/file3_Non_Standard_Basis.py @@ -0,0 +1,51 @@ +from manimlib.imports import * + +class NSB(ThreeDScene): + def construct(self): + + axes = ThreeDAxes(x_min = -4,x_max=4,y_min=-4,y_max=4,z_min=-4,z_max=4) + self.play(ShowCreation(axes)) + self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3) + self.begin_ambient_camera_rotation(rate=0.5) + + matrix = [[0.577,0.577,0.577],[-0.577,0.577,0.577],[0.577,-0.577,0.577]] + + line1 = Line(start = ORIGIN,end = 1*RIGHT) + line1.set_color(DARK_BLUE) + tip1 = Polygon(RIGHT,0.9*RIGHT-0.1*DOWN,0.9*RIGHT-0.1*UP) + tip1.set_opacity(1) + tip1.set_fill(DARK_BLUE) + tip1.set_color(DARK_BLUE) + + arrow2 = Line(start = ORIGIN,end = 1*UP) + arrow2.set_color(DARK_BLUE) + tip2 = Polygon(UP,0.9*UP-0.1*RIGHT,0.9*UP-0.1*LEFT) + tip2.set_opacity(1) + tip2.set_fill(DARK_BLUE) + tip2.set_color(DARK_BLUE) + arrow2.set_color(DARK_BLUE) + + arrow3 = Line(start = ORIGIN,end = [0,0,1]) + arrow3.set_color(DARK_BLUE) + tip3 = Polygon([0,0,1],[0,0,0.9]-0.1*RIGHT,[0,0,0.9]-0.1*LEFT) + tip3.set_opacity(1) + tip3.set_fill(DARK_BLUE) + tip3.set_color(DARK_BLUE) + + line1.apply_matrix(matrix) + tip1.apply_matrix(matrix) + arrow2.apply_matrix(matrix) + tip2.apply_matrix(matrix) + arrow3.apply_matrix(matrix) + tip3.apply_matrix(matrix) + + self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3)) + + text = TextMobject(r"This is also a set of Orthonormal Vectors") + text.set_color(DARK_BLUE) + self.add_fixed_in_frame_mobjects(text) + text.scale(0.6) + text.move_to(3*DOWN+3.5*RIGHT) + self.play(Write(text)) + + self.wait(7) \ No newline at end of file -- cgit From f818aa6face482b21a46b2da9a32b27c212f5d4c Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Sun, 5 Jul 2020 21:21:57 +0530 Subject: modification to an animation --- .../file_before_matrix.py | 85 +++++++++++++++------- 1 file changed, 60 insertions(+), 25 deletions(-) mode change 100644 => 100755 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py old mode 100644 new mode 100755 index 85a2983..e0476a3 --- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py +++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py @@ -1,13 +1,13 @@ from manimlib.imports import * -class linear(GraphScene): +class Linear(GraphScene): CONFIG = { "x_min": -5, "x_max": 5, "y_min": -5, "y_max": 5, - "graph_origin": ORIGIN+RIGHT, + "graph_origin": ORIGIN, "x_labeled_nums": list(range(-5, 6)), "y_labeled_nums": list(range(-5, 6)), "x_axis_width": 7, @@ -22,6 +22,7 @@ class linear(GraphScene): self.setup_axes(animate = True) heading = TextMobject(r"$T(x,y) = T(x+2y,x-y)$") heading.move_to(UP*3+LEFT*4) + heading.scale(0.7) self.play(Write(heading)) self.wait() @@ -34,44 +35,42 @@ class linear(GraphScene): dot1.set_color(DARK_BLUE) dot2.set_color(DARK_BLUE) p1 = TextMobject(r"$P_1$") + p1.scale(0.75) p1.set_color(DARK_BLUE) - p1.move_to(self.graph_origin+1*XTD*RIGHT+2*YTD*UP) + p1.move_to(self.graph_origin+1*XTD*RIGHT+1.5*YTD*UP) p2 = TextMobject(r"$P_2$") p2.set_color(DARK_BLUE) - p2.move_to(self.graph_origin+2*XTD*RIGHT+2*YTD*UP) + p2.scale(0.75) + p2.move_to(self.graph_origin+2*XTD*RIGHT+1.5*YTD*UP) after = TextMobject("After applying Linear Transformation") after.set_color(RED) after.move_to(3*UP+4.5*RIGHT) - after.scale(0.75) + after.scale(0.5) dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP) dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP) dot3.set_color(RED) dot4.set_color(RED) - p3 = TextMobject(r"$P_3$") + p3 = TextMobject(r"$T(P_1)$") + p3.scale(0.7) p3.set_color(RED) p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP) - p4 = TextMobject(r"$P_4$") + p4 = TextMobject(r"$T(P_2)$") + p4.scale(0.7) p4.set_color(RED) - p4.move_to(self.graph_origin+4*XTD*RIGHT+2*YTD*UP) - - tp1 = TextMobject(r"$T(P_1) = P_3$") - tp1.set_color(RED) - tp1.move_to(DOWN+4*LEFT) - tp2 = TextMobject(r"$T(P_2) = P_4$") - tp2.set_color(RED) - tp2.move_to(2*DOWN+4*LEFT) + p4.move_to(self.graph_origin+4*XTD*RIGHT+1.5*YTD*UP) self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2)) self.wait(3) - self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3), Write(tp1), Write(tp2)) + self.play(Transform(before,after), Transform(dot1,dot3), Transform(dot2,dot4), Transform(p2,p4), Transform(p1,p3)) self.wait(3) class withgrid(LinearTransformationScene): def construct(self): - heading = TextMobject(r"$T(x,y) = (x+2y,x-y)$") + heading = TextMobject(r"Now, Imagine this happening for all the vectors") + heading.scale(0.5) heading.move_to(UP*2.5+LEFT*4) self.play(Write(heading)) self.wait() @@ -93,9 +92,11 @@ class withgrid(LinearTransformationScene): self.add_transformable_mobject(dot2_c) p1 = TextMobject(r"$P_1$") + p1.scale(0.75) p1.set_color(DARK_BLUE) p1.move_to(1*RIGHT+1.5*UP) p2 = TextMobject(r"$P_2$") + p2.scale(0.75) p2.set_color(DARK_BLUE) p2.move_to(2*RIGHT+1.5*UP) @@ -107,10 +108,12 @@ class withgrid(LinearTransformationScene): dot4 = Dot().shift(4*RIGHT+1*UP) dot3.set_color(RED) dot4.set_color(RED) - p3 = TextMobject(r"$P_3$") + p3 = TextMobject(r"$T(P_1)$") + p3.scale(0.75) p3.set_color(RED) p3.move_to(3*RIGHT-0.6*UP) - p4 = TextMobject(r"$P_4$") + p4 = TextMobject(r"$T(P_2)$") + p4.scale(0.75) p4.set_color(RED) p4.move_to(4*RIGHT+1.5*UP) @@ -118,6 +121,7 @@ class withgrid(LinearTransformationScene): self.wait(3) matrix = [[1,2],[1,-1]] self.apply_matrix(matrix) + self.play(FadeOut(dot1),FadeOut(dot2)) self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3)) self.play(Transform(before,after)) self.wait(3) @@ -141,17 +145,28 @@ class ThreeDExplanation(ThreeDScene): before = TextMobject("Before Linear Transformation") self.add_fixed_in_frame_mobjects(before) - before.set_color(GREEN_E) + before.set_color(YELLOW) before.move_to(3.5*UP+4*RIGHT) before.scale(0.75) + + p1 = TextMobject(r"$P_1$") + p2 = TextMobject(r"$P_2$") + p3 = TextMobject(r"$P_3$") + p1.scale(0.75) + p2.scale(0.75) + p3.scale(0.75) dot1 = Dot().shift(1*RIGHT+1*UP) dot2 = Dot().shift(2*RIGHT+1*UP) - dot3 = Dot().shift(1*RIGHT+1*UP) - dot1.set_color(GREEN_E) - dot2.set_color(GREEN_E) - dot3.set_color(GREEN_E) + dot3 = Dot().shift(1*RIGHT+1*DOWN) + dot1.set_color(YELLOW) + dot2.set_color(YELLOW) + dot3.set_color(YELLOW) self.play(ShowCreation(before)) - + + p1.move_to(1*RIGHT+1*UP+[0,0,0.5]) + p2.move_to(2*RIGHT+1*UP+[0,0,0.5]) + p3.move_to(1*RIGHT-1*UP+[0,0,0.5]) + dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP) dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP) dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP) @@ -168,6 +183,9 @@ class ThreeDExplanation(ThreeDScene): self.stop_ambient_camera_rotation() plane = NumberPlane() + self.add_fixed_orientation_mobjects(p1) + self.add_fixed_orientation_mobjects(p2) + self.add_fixed_orientation_mobjects(p3) self.play(ShowCreation(dot1),ShowCreation(dot3),ShowCreation(dot2),ShowCreation(plane)) self.play(FadeOut(before)) @@ -177,8 +195,23 @@ class ThreeDExplanation(ThreeDScene): after.move_to(3.5*UP+3.5*RIGHT) after.scale(0.75) + self.play(FadeOut(p1),FadeOut(p2),FadeOut(p3)) matrix = [[1,1],[1,-1],[2,1]] self.play(FadeOut(dot1),FadeOut(dot2),FadeOut(dot3),ApplyMethod(plane.apply_matrix,matrix),ApplyMethod(dot1_c.apply_matrix,matrix),ApplyMethod(dot3_c.apply_matrix,matrix),ApplyMethod(dot2_c.apply_matrix,matrix)) + + p4 = TextMobject(r"$T(P_1)$") + p5 = TextMobject(r"$T(P_2)$") + p6 = TextMobject(r"$T(P_3)$") + p4.scale(0.75) + p5.scale(0.75) + p6.scale(0.75) + p4.move_to(2*RIGHT+0*UP+[0,0,3.5]) + p5.move_to(2*RIGHT-2*UP+[0,0,2.5]) + p6.move_to(0*RIGHT+2*UP+[0,0,1.5]) + self.add_fixed_orientation_mobjects(p5) + self.add_fixed_orientation_mobjects(p4) + self.add_fixed_orientation_mobjects(p6) + self.begin_ambient_camera_rotation(rate=0.3) self.wait(3) self.stop_ambient_camera_rotation() @@ -188,4 +221,6 @@ class ThreeDExplanation(ThreeDScene): ending.move_to(-UP*2+LEFT*4) self.play(Transform(text,ending)) self.add_fixed_in_frame_mobjects(ending) + + self.play(FadeOut(plane)) self.wait(9) -- cgit From 116a7e0bceceeaa961b8586219015d27f6576c1b Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Mon, 6 Jul 2020 04:44:52 +0530 Subject: rectangle to ||alogram --- .../Linear-Transformations-(Linear-Maps)/square.py | 246 +++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py new file mode 100644 index 0000000..e828de4 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/square.py @@ -0,0 +1,246 @@ +from manimlib.imports import * + +class Linear(GraphScene): + CONFIG = { + "x_min": -5, + "x_max": 5, + "y_min": -5, + "y_max": 5, + "graph_origin": ORIGIN, + "x_labeled_nums": list(range(-5, 6)), + "y_labeled_nums": list(range(-5, 6)), + "x_axis_width": 7, + "y_axis_height": 7, + } + def construct(self): + + text = TextMobject("T(x,y) = T(x+y,y)") + text.scale(0.75) + text.set_color(PURPLE) + text.move_to(3*UP+5*LEFT) + self.play(Write(text)) + + XTD = self.x_axis_width/(self.x_max- self.x_min) + YTD = self.y_axis_height/(self.y_max- self.y_min) + + self.setup_axes(animate = True) + + text1 = TextMobject("Before Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3+3*RIGHT) + + a = TextMobject("(1,1)") + b = TextMobject("(3,1)") + c = TextMobject("(3,2)") + d = TextMobject("(1,2)") + a.scale(0.5) + b.scale(0.5) + c.scale(0.5) + d.scale(0.5) + a.move_to(self.graph_origin+0.6*UP+0.6*RIGHT) + b.move_to(self.graph_origin+0.6*UP+3.4*RIGHT) + c.move_to(self.graph_origin+2.4*UP+3.4*RIGHT) + d.move_to(self.graph_origin+2.6*UP+0.6*RIGHT) + + square = Polygon(self.graph_origin+UP+RIGHT,self.graph_origin+UP+3*RIGHT,self.graph_origin+2*UP+3*RIGHT,self.graph_origin+2*UP+RIGHT) + + self.play(Write(text1), Write(a), Write(b), Write(c), Write(d), ShowCreation(square)) + self.wait(2) + self.play(FadeOut(text1), FadeOut(a), FadeOut(b), FadeOut(c), FadeOut(d), ApplyMethod(square.apply_matrix,[[1,1],[0,1]])) + + a = TextMobject("(2,1)") + b = TextMobject("(4,1)") + c = TextMobject("(3,2)") + d = TextMobject("(5,2)") + a.scale(0.5) + b.scale(0.5) + c.scale(0.5) + d.scale(0.5) + a.move_to(self.graph_origin+0.6*UP+1.6*RIGHT) + b.move_to(self.graph_origin+0.6*UP+4.4*RIGHT) + d.move_to(self.graph_origin+2.4*UP+5.4*RIGHT) + c.move_to(self.graph_origin+2.4*UP+2.6*RIGHT) + + text1 = TextMobject("After Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3+3*RIGHT) + + self.play(Write(text1), Write(a), Write(b), Write(c), Write(d)) + + self.wait(2) + +class grid(LinearTransformationScene): + def construct(self): + + text = TextMobject("Now, consider all the vectors.") + text.scale(0.75) + text.set_color(PURPLE) + text.move_to(2.5*UP+3*LEFT) + self.play(Write(text)) + + text1 = TextMobject("Before Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3.5+3.5*RIGHT) + + square = Polygon(UP+RIGHT,UP+3*RIGHT,2*UP+3*RIGHT,2*UP+RIGHT) + square.set_color(YELLOW) + + self.play(Write(text1), ShowCreation(square)) + self.wait(2) + self.play(FadeOut(text1)) + self.add_transformable_mobject(square) + + text1 = TextMobject("After Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3.5+3.5*RIGHT) + + matrix = [[1,1],[0,1]] + + self.apply_matrix(matrix) + self.play(Write(text1)) + + self.wait() + +class grid2(LinearTransformationScene): + CONFIG = { + "include_background_plane": True, + "include_foreground_plane": False, + "show_coordinates": True, + "show_basis_vectors": True, + "basis_vector_stroke_width": 3, + "i_hat_color": X_COLOR, + "j_hat_color": Y_COLOR, + "leave_ghost_vectors": True, + } + + def construct(self): + + text = TextMobject("Now, let us focus only on the standard basis") + text.scale(0.7) + text.set_color(PURPLE) + text.move_to(2.5*UP+3.5*LEFT) + self.play(Write(text)) + + text1 = TextMobject("Before Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3.5+3.5*RIGHT) + + square = Polygon(UP+RIGHT,UP+3*RIGHT,2*UP+3*RIGHT,2*UP+RIGHT) + square.set_color(YELLOW) + + self.play(Write(text1), ShowCreation(square)) + self.wait(2) + self.play(FadeOut(text1)) + self.add_transformable_mobject(square) + + text1 = TextMobject("After Linear Transformation") + text1.scale(0.6) + text1.move_to(UP*3.5+3.5*RIGHT) + + matrix = [[1,1],[0,1]] + + self.apply_matrix(matrix) + self.play(Write(text1)) + + self.play(FadeOut(square), FadeOut(text1)) + + cor_x = TextMobject("(1,0)") + cor_y = TextMobject("(1,1)") + cor_x.scale(0.65) + cor_y.scale(0.65) + cor_y.move_to(1.25*RIGHT+1.5*UP) + cor_x.move_to(0.75*RIGHT-0.5*UP) + cor_x.set_color(GREEN) + cor_y.set_color(RED) + + x_cor = TextMobject(r"$\left[\begin{array}{c} 1\\0\end{array}\right]$") + x_cor.set_color(GREEN) + x_cor.scale(0.5) + y_cor = TextMobject(r"$\left[\begin{array}{c} 1\\1\end{array}\right]$") + x_cor.move_to(0.75*RIGHT-0.5*UP) + y_cor.move_to(1.25*RIGHT+1.5*UP) + y_cor.set_color(RED) + y_cor.scale(0.5) + + text1 = TextMobject(r"$T(\left[\begin{array}{c} x\\y \end{array}\right]) = $",r"$\left[\begin{array}{c} x+y\\y \end{array}\right]$") + text1.scale(0.7) + text1.set_color(PURPLE) + text1.move_to(1.5*UP+3*LEFT) + + text = TextMobject(r"$T(x,y) = (x+y,y)$") + text.scale(0.6) + text.set_color(PURPLE) + text.move_to(1.5*UP+3*LEFT) + + self.play(FadeIn(text),FadeIn(cor_x), FadeIn(cor_y)) + self.wait() + + self.play(Transform(text,text1), Transform(cor_x,x_cor), Transform(cor_y,y_cor)) + + text3 = TextMobject(r"$\left[\begin{array}{c} x+y\\y \end{array}\right]$") + text3.scale(0.7) + text3.set_color(PURPLE) + text3.move_to(1.5*DOWN+5*LEFT) + + equal = TextMobject("=") + equal.move_to(1.5*DOWN+3.5*LEFT) + + text3 = TextMobject("[") + text4 = TextMobject(r"$\begin{array}{c} (1)x\\(0)x \end{array}$") + text5 = TextMobject(r"$\begin{array}{c} + \\ + \end{array}$") + text6 = TextMobject(r"$\begin{array}{c} (1)y\\(1)y \end{array}$") + text7 = TextMobject("]") + text3.scale(2) + text4.scale(0.7) + text5.scale(0.7) + text6.scale(0.7) + text7.scale(2) + text4.set_color(GREEN) + text5.set_color(PURPLE) + text6.set_color(RED) + text3.move_to(1.5*DOWN+3*LEFT) + text4.move_to(1.5*DOWN+2.5*LEFT) + text5.move_to(1.5*DOWN+2*LEFT) + text6.move_to(1.5*DOWN+1.5*LEFT) + text7.move_to(1.5*DOWN+1*LEFT) + + text1[1].scale(1.2) + self.play(FadeOut(text1[0]), ApplyMethod(text1[1].move_to,1.5*DOWN+5*LEFT), FadeIn(text3), FadeIn(equal), FadeIn(text4), FadeIn(text5), FadeIn(text6), FadeIn(text7)) + + self.wait() + self.play(FadeOut(text1[1])) + + self.play(ApplyMethod(text3.move_to,1.5*DOWN+6*LEFT), + ApplyMethod(text4.move_to,1.5*DOWN+5.5*LEFT), + ApplyMethod(text5.move_to,1.5*DOWN+5*LEFT), + ApplyMethod(text6.move_to,1.5*DOWN+4.5*LEFT), + ApplyMethod(text7.move_to,1.5*DOWN+4*LEFT)) + + text10 = TextMobject("[") + text11 = TextMobject(r"$\begin{array}{c} 1\\0 \end{array}$") + text13 = TextMobject(r"$\begin{array}{c} 1\\1 \end{array}$") + text14 = TextMobject("]") + text10.scale(2) + text11.scale(0.7) + text13.scale(0.7) + text14.scale(2) + text11.set_color(GREEN) + text13.set_color(RED) + text10.move_to(1.5*DOWN+3*LEFT) + text11.move_to(1.5*DOWN+2.75*LEFT) + text13.move_to(1.5*DOWN+2.25*LEFT) + text14.move_to(1.5*DOWN+2*LEFT) + + self.play(FadeIn(text10), Transform(x_cor,text11), Transform(y_cor,text13), FadeIn(text14)) + + text15 = TextMobject(r"$\left[\begin{array}{c} x\\y \end{array}\right]$") + text15.scale(0.7) + text15.set_color(PURPLE) + text15.move_to(1.5*DOWN+1.5*LEFT) + + self.play(FadeIn(text15)) + self.play(FadeOut(text3), FadeOut(text4), FadeOut(text5), FadeOut(text7), FadeOut(text6)) + + text1[0].scale(1.2) + self.play(ApplyMethod(text1[0].move_to,1.5*DOWN+4.5*LEFT), FadeOut(equal)) + self.wait(2) \ No newline at end of file -- cgit From 1e4ac7ee9a243d6fe878e2d22c250bc9475b5dad Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Mon, 6 Jul 2020 05:05:28 +0530 Subject: changes implemented --- .../file_before_matrix.py | 70 ++++++++++++---------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py index e0476a3..96e456d 100755 --- a/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py +++ b/FSF-2020/linear-algebra/linear-transformations/Linear-Transformations-(Linear-Maps)/file_before_matrix.py @@ -27,37 +27,37 @@ class Linear(GraphScene): self.wait() before = TextMobject("Before Linear Transformation") - before.set_color(DARK_BLUE) + before.set_color(ORANGE) before.move_to(3*UP+4*RIGHT) before.scale(0.75) dot1 = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP) dot2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+1*YTD*UP) - dot1.set_color(DARK_BLUE) - dot2.set_color(DARK_BLUE) + dot1.set_color(ORANGE) + dot2.set_color(ORANGE) p1 = TextMobject(r"$P_1$") p1.scale(0.75) - p1.set_color(DARK_BLUE) + p1.set_color(ORANGE) p1.move_to(self.graph_origin+1*XTD*RIGHT+1.5*YTD*UP) p2 = TextMobject(r"$P_2$") - p2.set_color(DARK_BLUE) + p2.set_color(ORANGE) p2.scale(0.75) p2.move_to(self.graph_origin+2*XTD*RIGHT+1.5*YTD*UP) after = TextMobject("After applying Linear Transformation") - after.set_color(RED) + after.set_color(YELLOW) after.move_to(3*UP+4.5*RIGHT) after.scale(0.5) dot3 = Dot().shift(self.graph_origin+3*XTD*RIGHT+0*YTD*UP) dot4 = Dot().shift(self.graph_origin+4*XTD*RIGHT+1*YTD*UP) - dot3.set_color(RED) - dot4.set_color(RED) + dot3.set_color(YELLOW) + dot4.set_color(YELLOW) p3 = TextMobject(r"$T(P_1)$") p3.scale(0.7) - p3.set_color(RED) + p3.set_color(YELLOW) p3.move_to(self.graph_origin+3*XTD*RIGHT-1.1*YTD*UP) p4 = TextMobject(r"$T(P_2)$") p4.scale(0.7) - p4.set_color(RED) + p4.set_color(YELLOW) p4.move_to(self.graph_origin+4*XTD*RIGHT+1.5*YTD*UP) self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2)) @@ -76,52 +76,54 @@ class withgrid(LinearTransformationScene): self.wait() before = TextMobject("Before Linear Transformation") - before.set_color(DARK_BLUE) + before.set_color(ORANGE) before.move_to(3.5*UP+4*RIGHT) before.scale(0.75) dot1 = Dot().shift(1*RIGHT+1*UP) dot2 = Dot().shift(2*RIGHT+1*UP) - dot1.set_color(DARK_BLUE) - dot2.set_color(DARK_BLUE) + dot1.set_color(ORANGE) + dot2.set_color(ORANGE) dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP) dot2_c = Dot(radius = 0.05).shift(2*RIGHT+1*UP) - dot1_c.set_color(RED) - dot2_c.set_color(RED) + dot1_c.set_color(YELLOW) + dot2_c.set_color(YELLOW) self.add_transformable_mobject(dot1_c) self.add_transformable_mobject(dot2_c) p1 = TextMobject(r"$P_1$") p1.scale(0.75) - p1.set_color(DARK_BLUE) + p1.set_color(ORANGE) p1.move_to(1*RIGHT+1.5*UP) p2 = TextMobject(r"$P_2$") p2.scale(0.75) - p2.set_color(DARK_BLUE) + p2.set_color(ORANGE) p2.move_to(2*RIGHT+1.5*UP) after = TextMobject("After applying Linear Transformation") - after.set_color(RED) + after.set_color(YELLOW) after.move_to(3.5*UP+3.5*RIGHT) after.scale(0.75) dot3 = Dot().shift(3*RIGHT+0*UP) dot4 = Dot().shift(4*RIGHT+1*UP) - dot3.set_color(RED) - dot4.set_color(RED) + dot3.set_color(YELLOW) + dot4.set_color(YELLOW) p3 = TextMobject(r"$T(P_1)$") p3.scale(0.75) - p3.set_color(RED) + p3.set_color(YELLOW) p3.move_to(3*RIGHT-0.6*UP) p4 = TextMobject(r"$T(P_2)$") p4.scale(0.75) - p4.set_color(RED) + p4.set_color(YELLOW) p4.move_to(4*RIGHT+1.5*UP) self.play(Write(before), ShowCreation(dot1), ShowCreation(dot2),Write(p1), Write(p2)) self.wait(3) matrix = [[1,2],[1,-1]] + dot1.set_color(GREY) + dot2.set_color(GREY) + self.play(FadeIn(dot1),FadeIn(dot2)) self.apply_matrix(matrix) - self.play(FadeOut(dot1),FadeOut(dot2)) self.play(Transform(before,after), Transform(p2,p4), Transform(p1,p3)) self.play(Transform(before,after)) self.wait(3) @@ -145,7 +147,7 @@ class ThreeDExplanation(ThreeDScene): before = TextMobject("Before Linear Transformation") self.add_fixed_in_frame_mobjects(before) - before.set_color(YELLOW) + before.set_color(ORANGE) before.move_to(3.5*UP+4*RIGHT) before.scale(0.75) @@ -158,9 +160,9 @@ class ThreeDExplanation(ThreeDScene): dot1 = Dot().shift(1*RIGHT+1*UP) dot2 = Dot().shift(2*RIGHT+1*UP) dot3 = Dot().shift(1*RIGHT+1*DOWN) - dot1.set_color(YELLOW) - dot2.set_color(YELLOW) - dot3.set_color(YELLOW) + dot1.set_color(ORANGE) + dot2.set_color(ORANGE) + dot3.set_color(ORANGE) self.play(ShowCreation(before)) p1.move_to(1*RIGHT+1*UP+[0,0,0.5]) @@ -170,9 +172,9 @@ class ThreeDExplanation(ThreeDScene): dot1_c = Dot(radius = 0.05).shift(1*RIGHT+1*UP) dot2_c = Dot(radius = 0.05).shift(0*RIGHT+2*UP) dot3_c = Dot(radius = 0.05).shift(1*RIGHT-1*UP) - dot1_c.set_color(RED) - dot2_c.set_color(RED) - dot3_c.set_color(RED) + dot1_c.set_color(YELLOW) + dot2_c.set_color(YELLOW) + dot3_c.set_color(YELLOW) axes = ThreeDAxes(x_min = -7,x_max=7,y_min=-4,y_max=4,z_min=-4,z_max=4) self.play(ShowCreation(axes)) @@ -191,7 +193,7 @@ class ThreeDExplanation(ThreeDScene): self.play(FadeOut(before)) after = TextMobject("After applying Linear Transformation") self.add_fixed_in_frame_mobjects(after) - after.set_color(RED) + after.set_color(YELLOW) after.move_to(3.5*UP+3.5*RIGHT) after.scale(0.75) @@ -223,4 +225,8 @@ class ThreeDExplanation(ThreeDScene): self.add_fixed_in_frame_mobjects(ending) self.play(FadeOut(plane)) - self.wait(9) + self.wait(3) + + self.begin_ambient_camera_rotation(rate=0.5) + self.wait(5) + self.stop_ambient_camera_rotation() -- cgit From 73582bd5f91d845437fb4a88b3a863e940d1de7e Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Mon, 6 Jul 2020 17:06:19 +0530 Subject: animation added in 4FSS --- .../The-Four-Fundamental-Subspaces/CSasImage.py | 168 +++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py new file mode 100644 index 0000000..fbb3291 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/CSasImage.py @@ -0,0 +1,168 @@ +from manimlib.imports import * + +class Column_Space(Scene): + def construct(self): + + A = TextMobject(r"$A = $",r"$\left( \begin{array}{c c c} 1 & 2 & 1 \\ 1 & 3 & 1 \\ 2 & 1 & 4 \\ 3 & 2 & 3 \end{array} \right)$") + A.move_to(2*UP) + A[1].set_color(color = DARK_BLUE) + A.scale(0.75) + + self.play(Write(A),run_time = 1) + + CS_A = TextMobject(r"Column Space of $A = x_{1}$",r"$\left( \begin{array}{c} 1 \\ 1 \\ 2 \\ 3 \end{array} \right)$",r"$+x_{2}$",r"$ \left( \begin{array}{c} 2 \\ 3 \\ 1 \\ 2 \end{array} \right)$",r"$ + x_{3}$",r"$\left( \begin{array}{c} 1 \\ 1 \\ 4 \\ 3 \end{array} \right)$") + CS_A.move_to(1.5*LEFT+1*DOWN) + CS_A[1].set_color(color = DARK_BLUE) + CS_A[3].set_color(color = DARK_BLUE) + CS_A[5].set_color(color = DARK_BLUE) + CS_A.scale(0.75) + + self.play(Write(CS_A),run_time = 2) + + arrow1 = Arrow(start = 1.25*UP,end = 0.25*DOWN+1.75*LEFT) + arrow2 = Arrow(start = 1.35*UP+0.5*RIGHT,end = 0.25*DOWN+0.5*RIGHT) + arrow3 = Arrow(start = 1.25*UP+0.75*RIGHT,end = 0.25*DOWN+2.9*RIGHT) + + Defn = TextMobject("Linear Combination of Columns of Matrix") + Defn.move_to(3*DOWN) + + self.play(Write(Defn), ShowCreation(arrow1), ShowCreation(arrow2), ShowCreation(arrow3),run_time = 1) + self.wait(1) + +class solution(LinearTransformationScene): + def construct(self): + + self.setup() + self.wait() + + o = TextMobject(r"Consider the vector space $R^2$") + o.move_to(2*DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + A = TextMobject(r"Let $A$(= ",r"$\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$",r")denote the matrix the of this linear transformation.") + A.move_to(2*DOWN) + A.scale(0.75) + A.add_background_rectangle() + self.play(Write(A)) + matrix = [[1,-1],[1,-1]] + self.apply_matrix(matrix) + self.wait() + self.play(FadeOut(A)) + + o = TextMobject(r"This is the transformed vector space") + o.move_to(2*DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + texti = TextMobject(r"$\left[\begin{array}{c}1\\1\end{array}\right]$") + textj = TextMobject(r"$\left[\begin{array}{c}-1\\-1\end{array}\right]$") + texti.set_color(GREEN) + textj.set_color(RED) + texti.scale(0.7) + textj.scale(0.7) + texti.move_to(1.35*RIGHT+0.5*UP) + textj.move_to(-(1.5*RIGHT+0.5*UP)) + + text1 = TextMobject("[") + text2 = TextMobject(r"$\begin{array}{c} 1 \\ 1 \end{array}$") + text3 = TextMobject(r"$\begin{array}{c} -1 \\ -1 \end{array}$") + text4 = TextMobject("]") + + text2.set_color(GREEN) + text3.set_color(RED) + + text1.scale(2) + text4.scale(2) + text2.scale(0.7) + text3.scale(0.7) + + text1.move_to(2.5*UP+6*LEFT) + text2.move_to(2.5*UP+5.75*LEFT) + text3.move_to(2.5*UP+5.25*LEFT) + text4.move_to(2.5*UP+5*LEFT) + + self.play(Write(texti), Write(textj)) + self.wait() + self.play(FadeIn(text1), Transform(texti,text2), Transform(textj,text3), FadeIn(text4)) + self.wait() + + o = TextMobject(r"Now, you can observe the Image of Linear Transformation") + o1 = TextMobject(r"and Column Space(i.e. span of columns of matrix $A$) are same") + o.move_to(2.5*DOWN) + o1.move_to(3*DOWN) + o.scale(0.75) + o1.scale(0.75) + o.add_background_rectangle() + o1.add_background_rectangle() + self.play(Write(o)) + self.play(Write(o1)) + self.wait() + self.play(FadeOut(o),FadeOut(o1)) + +class solution2nd(LinearTransformationScene): + def construct(self): + + self.setup() + self.wait() + + arrow1 = Arrow(start = ORIGIN,end = 2*DOWN+RIGHT) + arrow2 = Arrow(start = ORIGIN,end = UP+LEFT) + arrow3 = Arrow(start = ORIGIN,end = 3*UP+4*RIGHT) + arrow1.set_color(YELLOW) + arrow2.set_color(YELLOW) + arrow3.set_color(YELLOW) + arrow1.scale(1.3) + arrow2.scale(1.5) + arrow3.scale(1.1) + + self.play(ShowCreation(arrow1), ShowCreation(arrow2), ShowCreation(arrow3)) + + self.add_transformable_mobject(arrow1) + self.add_transformable_mobject(arrow2) + self.add_transformable_mobject(arrow3) + o = TextMobject(r"Consider any vector in the original vector space $R^2$") + o.move_to(2.5*DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + A = TextMobject(r"Matrix the of this linear transformation is $A$(= ",r"$\left[\begin{array}{c c} 1 & -1 \\ 1 & -1 \end{array}\right]$",r") again.") + A.move_to(2*DOWN) + A.scale(0.75) + A.add_background_rectangle() + self.play(Write(A)) + matrix = [[1,-1],[1,-1]] + self.apply_matrix(matrix) + self.wait() + self.play(FadeOut(A)) + + o = TextMobject(r"This is the transformed vector space") + o.move_to(2*DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + o = TextMobject(r"Each and every vector of original vector space $R^2$ will transform") + o1 = TextMobject(r"to this new vector space which is spanned by $\mathbf{CS}(A)$") + o.move_to(2.5*DOWN) + o1.move_to(3*DOWN) + o.scale(0.75) + o1.scale(0.75) + o.add_background_rectangle() + o1.add_background_rectangle() + self.play(Write(o)) + self.play(Write(o1)) + self.wait() + self.play(FadeOut(o)) + self.play(FadeOut(o1)) \ No newline at end of file -- cgit From a74eaef144ee85b1fd2fa0b39fcebad9fbc44190 Mon Sep 17 00:00:00 2001 From: Archit Sangal Date: Mon, 6 Jul 2020 17:10:30 +0530 Subject: animation changed in 4FSS --- .../The-Four-Fundamental-Subspaces/null_space.py | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py diff --git a/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py new file mode 100644 index 0000000..dfc3cb4 --- /dev/null +++ b/FSF-2020/linear-algebra/linear-transformations/The-Four-Fundamental-Subspaces/null_space.py @@ -0,0 +1,91 @@ +from manimlib.imports import * +class null_space(LinearTransformationScene): + def construct(self): + + self.setup() + self.wait() + + o = TextMobject(r"This is the original $2D$ vector space(before Linear Transformation)") + o.move_to(DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait() + self.play(FadeOut(o)) + + o1 = TextMobject("Consider a set of vectors which are linear") + o2 = TextMobject(r"span of a particular vector $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$") + o1.move_to(2*DOWN+3*RIGHT) + o2.move_to(2.75*DOWN+3*RIGHT) + o1.scale(0.7) + o2.scale(0.7) + o1.add_background_rectangle() + o2.add_background_rectangle() + self.play(Write(o1)) + self.play(Write(o2)) + + arrow = Arrow(start = ORIGIN, end = UP+RIGHT) + arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT)) + arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT)) + arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT)) + arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT) + arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT)) + arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT)) + arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT)) + + arrow.scale(1.5) + arrow1.scale(1.2) + arrow2.scale(1.15) + arrow3.scale(1.1) + arrow4.scale(1.5) + arrow5.scale(1.2) + arrow6.scale(1.15) + arrow7.scale(1.1) + + self.play(ShowCreation(arrow), + ShowCreation(arrow1), + ShowCreation(arrow2), + ShowCreation(arrow3), + ShowCreation(arrow4), + ShowCreation(arrow5), + ShowCreation(arrow6), + ShowCreation(arrow7), + ) + + self.wait(2) + self.play(FadeOut(o1), FadeOut(o2)) + + self.add_transformable_mobject(arrow) + self.add_transformable_mobject(arrow1) + self.add_transformable_mobject(arrow2) + self.add_transformable_mobject(arrow3) + self.add_transformable_mobject(arrow4) + self.add_transformable_mobject(arrow5) + self.add_transformable_mobject(arrow6) + self.add_transformable_mobject(arrow7) + + o1 = TextMobject("Notice, entire set of vectors which belong to the vector") + o2 = TextMobject(r"subspace(Linear Span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$) transforms to zero") + o1.move_to(2*DOWN+2.5*RIGHT) + o2.move_to(2.75*DOWN+2.5*RIGHT) + o1.scale(0.7) + o2.scale(0.7) + o1.add_background_rectangle() + o2.add_background_rectangle() + self.play(Write(o1)) + self.play(Write(o2)) + self.wait() + + matrix = [[1,-1],[1,-1]] + self.apply_matrix(matrix) + self.wait() + + self.play(FadeOut(o1), FadeOut(o2)) + + o = TextMobject(r"Hence, the vector space formed by linear span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$ is the null space of $A$") + o.move_to(DOWN) + o.scale(0.75) + o.add_background_rectangle() + self.play(Write(o)) + self.wait(2) + self.play(FadeOut(o), FadeOut(arrow), FadeOut(arrow1), FadeOut(arrow2), FadeOut(arrow3), FadeOut(arrow4), FadeOut(arrow5), FadeOut(arrow6), FadeOut(arrow7)) -- cgit