from manimlib.imports import * class null_space(LinearTransformationScene): def construct(self): self.setup() self.wait() o = TextMobject(r"This is the original vector space $R^2$(before Linear Transformation)") o.move_to(3*DOWN) o.scale(0.75) o.add_background_rectangle() self.play(Write(o)) self.wait() self.play(FadeOut(o)) o1 = TextMobject("Consider a set of vectors which are linear") o2 = TextMobject(r"span of a particular vector $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$") o1.move_to(2*DOWN+3*RIGHT) o2.move_to(2.75*DOWN+3*RIGHT) o1.scale(0.7) o2.scale(0.7) o1.add_background_rectangle() o2.add_background_rectangle() self.play(Write(o1)) self.play(Write(o2)) arrow = Arrow(start = ORIGIN, end = UP+RIGHT) arrow1 = Arrow(start = ORIGIN, end = 2*(UP+RIGHT)) arrow2 = Arrow(start = ORIGIN, end = 3*(UP+RIGHT)) arrow3 = Arrow(start = ORIGIN, end = 4*(UP+RIGHT)) arrow4 = Arrow(start = ORIGIN, end = DOWN+LEFT) arrow5 = Arrow(start = ORIGIN, end = 2*(DOWN+LEFT)) arrow6 = Arrow(start = ORIGIN, end = 3*(DOWN+LEFT)) arrow7 = Arrow(start = ORIGIN, end = 4*(DOWN+LEFT)) arrow.scale(1.5) arrow1.scale(1.2) arrow2.scale(1.15) arrow3.scale(1.1) arrow4.scale(1.5) arrow5.scale(1.2) arrow6.scale(1.15) arrow7.scale(1.1) self.play(ShowCreation(arrow), ShowCreation(arrow1), ShowCreation(arrow2), ShowCreation(arrow3), ShowCreation(arrow4), ShowCreation(arrow5), ShowCreation(arrow6), ShowCreation(arrow7), ) self.wait(2) self.play(FadeOut(o1), FadeOut(o2)) self.add_transformable_mobject(arrow) self.add_transformable_mobject(arrow1) self.add_transformable_mobject(arrow2) self.add_transformable_mobject(arrow3) self.add_transformable_mobject(arrow4) self.add_transformable_mobject(arrow5) self.add_transformable_mobject(arrow6) self.add_transformable_mobject(arrow7) o1 = TextMobject("Notice, entire set of vectors which belongs to the vector") o2 = TextMobject(r"subspace(Linear Span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$) transforms to zero") o1.move_to(2*DOWN+2.5*RIGHT) o2.move_to(2.75*DOWN+2.5*RIGHT) o1.scale(0.7) o2.scale(0.7) o1.add_background_rectangle() o2.add_background_rectangle() self.play(Write(o1)) self.play(Write(o2)) self.wait() matrix = [[1,-1],[1,-1]] self.apply_matrix(matrix) self.wait() self.play(FadeOut(o1), FadeOut(o2)) o = TextMobject(r"Hence, the vector space formed by linear span of $\left(\begin{array}{c} 1 \\ 1 \end{array}\right)$ is the null space of $A$") o.move_to(3*DOWN) o.scale(0.75) o.add_background_rectangle() self.play(Write(o)) self.wait(2) self.play(FadeOut(o), FadeOut(arrow), FadeOut(arrow1), FadeOut(arrow2), FadeOut(arrow3), FadeOut(arrow4), FadeOut(arrow5), FadeOut(arrow6), FadeOut(arrow7))