diff options
author | Archit Sangal | 2020-07-09 02:59:49 +0530 |
---|---|---|
committer | Archit Sangal | 2020-07-09 02:59:49 +0530 |
commit | 350ccaf2453180475406256cc8d4c9bfe9db3880 (patch) | |
tree | a376e0be86831d1b654ac03a9dd274ad8681838b /FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis | |
parent | a637d8b87fc86f058af30d8855870921b7267b50 (diff) | |
download | FSF-mathematics-python-code-archive-350ccaf2453180475406256cc8d4c9bfe9db3880.tar.gz FSF-mathematics-python-code-archive-350ccaf2453180475406256cc8d4c9bfe9db3880.tar.bz2 FSF-mathematics-python-code-archive-350ccaf2453180475406256cc8d4c9bfe9db3880.zip |
updated folder name and README.md files
Diffstat (limited to 'FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis')
3 files changed, 0 insertions, 346 deletions
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py deleted file mode 100755 index a5d96f5..0000000 --- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file1_orthogonal.py +++ /dev/null @@ -1,40 +0,0 @@ -from manimlib.imports import *
-
-class Orthogonal(ThreeDScene):
- def construct(self):
- axes = ThreeDAxes()
- self.play(ShowCreation(axes))
- self.move_camera(phi=60*DEGREES,theta=45*DEGREES,run_time=3)
-
- text = TextMobject(r"$\hat{i}$",r"$\hat{j}$",r"$\hat{k}$")
- text[0].move_to(0.7*DOWN+0.8*LEFT)
- text[1].move_to(0.75*DOWN+0.7*RIGHT)
- text[2].move_to(0.75*UP+0.4*RIGHT)
- self.add_fixed_in_frame_mobjects(text)
- self.play(Write(text))
-
- line1 = Line(start = ORIGIN,end = RIGHT)
- line1.set_color(DARK_BLUE)
- tip1 = Polygon(-0.95*LEFT,-0.8*LEFT-0.1*DOWN,-0.8*LEFT-0.1*UP)
- tip1.set_opacity(1)
- tip1.set_fill(DARK_BLUE)
- tip1.set_color(DARK_BLUE)
-
- arrow2 = Line(start = ORIGIN,end = UP)
- arrow2.set_color(DARK_BLUE)
- tip2 = Polygon(0.95*UP,0.8*UP-0.1*RIGHT,0.8*UP-0.1*LEFT)
- tip2.set_opacity(1)
- tip2.set_fill(DARK_BLUE)
- tip2.set_color(DARK_BLUE)
- arrow2.set_color(DARK_BLUE)
-
- arrow3 = Line(start = ORIGIN,end = [0,0,1])
- arrow3.set_color(DARK_BLUE)
- tip3 = Polygon([0,0,0.95],[0,0,0.8]-0.1*RIGHT,[0,0,0.8]-0.1*LEFT)
- tip3.set_opacity(1)
- tip3.set_fill(DARK_BLUE)
- tip3.set_color(DARK_BLUE)
-
- self.play(ShowCreation(line1), ShowCreation(tip1), ShowCreation(arrow2), ShowCreation(tip2), ShowCreation(arrow3), ShowCreation(tip3))
-
- self.wait()
diff --git a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py b/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py deleted file mode 100755 index 81a0888..0000000 --- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file2_sum_of_projections_part1.py +++ /dev/null @@ -1,133 +0,0 @@ -from manimlib.imports import *
-class LinearTrans(LinearTransformationScene):
- CONFIG = {
- "show_basis_vectors": True,
- "basis_vector_stroke_width": 1,
- "leave_ghost_vectors": False,
- "show_coordinates": True,
- }
-
- def construct(self):
-
- self.setup()
-
- matrix = [[0.6,-0.8],[0.8,0.6]]
- self.apply_matrix(matrix)
-
- self.wait(2)
- orthonormal = TextMobject(r"These are 2 orthonormal vectors($v_1$ and $v_2$)")
- orthonormal.scale(0.7)
- orthonormal.move_to(DOWN+LEFT*3.5)
- orthonormal.add_background_rectangle()
- v1 = TextMobject(r"$v_1$")
- v1.scale(0.75)
- v1.set_color(X_COLOR)
- v1.move_to(0.75*UP+RIGHT)
- v1.add_background_rectangle()
- v2 = TextMobject(r"$v_2$")
- v2.scale(0.75)
- v2.set_color(Y_COLOR)
- v2.move_to(0.75*UP+LEFT*1.25)
- v2.add_background_rectangle()
- self.play(Write(orthonormal))
- self.play(Write(v1),Write(v2))
- self.wait()
- self.play(FadeOut(orthonormal), FadeOut(v1), FadeOut(v2))
-
- arrow = Arrow(start = ORIGIN,end = 3*RIGHT+UP)
- arrow.scale(1.2)
- arrow.set_color(BLUE)
- arrow.apply_matrix(matrix)
- text3 = TextMobject("v")
- text3.move_to(3.2*UP+1.2*RIGHT)
- text3.add_background_rectangle()
- self.play(ShowCreation(arrow),Write(text3))
- self.wait()
- v_cor = TextMobject("(1,3)")
- v_cor.move_to(3.2*UP+1.3*RIGHT)
- v_cor.set_color(BLUE)
- v_cor.scale(0.75)
- v_cor.add_background_rectangle()
- self.play(Transform(text3,v_cor))
-
- line1 = DashedLine(start = 1*UP+3*RIGHT, end = 3*RIGHT)
- line2 = DashedLine(start = 1*UP+3*RIGHT, end = UP)
- line1.apply_matrix(matrix)
- line2.apply_matrix(matrix)
- self.play(ShowCreation(line1),ShowCreation(line2),run_time = 2)
-
- v1 = Arrow(start = ORIGIN,end = 3*RIGHT+UP)
- v1.scale(1.2)
- v1.set_color(BLUE)
- v1.apply_matrix(matrix)
- arrow1 = Arrow(start = ORIGIN,end = 3*RIGHT)
- arrow1.scale(1.2)
- arrow1.set_color("#6B8E23")
- arrow1.apply_matrix(matrix)
- self.play(Transform(v1,arrow1))
- v1_cor = TextMobject(r"$<v,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 deleted file mode 100644 index 9d25192..0000000 --- a/FSF-2020/linear-algebra/linear-transformations/Orthonormal Basis/file3_sum_of_projections_part2.py +++ /dev/null @@ -1,173 +0,0 @@ -from manimlib.imports import * -class ThreeDExplanation(ThreeDScene): - - def construct(self): - - text = TextMobject("Let us consider the example discussed above again. These are the things we know:-") - text.scale(0.75) - self.add_fixed_in_frame_mobjects(text) - text.move_to(3*UP) - self.play(Write(text)) - self.wait(2) - basis = TextMobject(r"Set of Orthonormal Basis - $\left(\begin{array}{c}\frac{1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}\frac{-1}{\sqrt{2}}\\\frac{1}{\sqrt{2}}\\0\end{array}\right),\left(\begin{array}{c}0\\0\\1\end{array}\right)$") - basis.scale(0.75) - basis.move_to(UP*1.5) - self.play(Write(basis)) - v = TextMobject(r"$v_1$",r"$v_2$",r"$v_3$") - v[0].move_to(UP*0.5+RIGHT*0.75) - v[1].move_to(UP*0.5+RIGHT*2.5) - v[2].move_to(UP*0.5+RIGHT*4) - eq = TextMobject(r"$v = \left(\begin{array}{c}3\\4\\5\end{array}\right)$") - eq1 = TextMobject(r"$<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 |