Facebook
From Shreenabh Agrawal, 4 Years ago, written in Python.
This paste is a reply to Math Library's Python Code from Shreenabh Agrawal - go back
Embed
from manimlib.imports import *
from math import *
class Solution(GraphScene):
        def construct(self):
                watermark = ImageMobject("./assets/water_mark.png",opacity=0.7)
                watermark.scale(1.5)
                watermark.to_corner(DOWN+RIGHT, buff=0)
                self.play(FadeIn(watermark))
                Solve = TexMobject(r"I=\int_{0}^{\infty}\ln{(1+5x^2)}\ln{\left(1+\frac{6}{5x^2}\right)}dx" )
                Solve.to_edge(UP)
                self.play(Write(Solve))
                align_mark = TexMobject( r'abs', fill_opacity=0.00,height=0.5)
                align_mark.next_to(Solve,DOWN)
                self.wait(1)
                R0 = TexMobject(r"\text{Let  }t=\sqrt{5}x \ \implies \ dx=\frac{1}{\sqrt{5}}\ dt" )
                if R0.get_height() > 1:
                        R0.set_height(height=1,stretch=False)
                if R0.get_width() > 12:
                        R0.set_width(width=12,stretch=False)
                R1 = TexMobject(r"\implies I=\frac{1}{\sqrt{5}}\int_{0}^ {\infty} \ln{(1+t^2)}\ln{\left(1+\frac{6}{t^2}\right)}dt" )
                if R1.get_height() > 1:
                        R1.set_height(height=1,stretch=False)
                if R1.get_width() > 12:
                        R1.set_width(width=12,stretch=False)
                R2 = TexMobject(r"\text{Now let's use the Leibniz rule for integration,}" )
                if R2.get_height() > 1:
                        R2.set_height(height=1,stretch=False)
                if R2.get_width() > 12:
                        R2.set_width(width=12,stretch=False)
                R3 = TexMobject(r"I(\alpha)=\frac{1}{\sqrt{5}}\int_{0}^{\infty} \ln{(1+t^2)}\ln{\left(1+\alpha\frac{6}{t^2}\right)}dt" )
                if R3.get_height() > 1:
                        R3.set_height(height=1,stretch=False)
                if R3.get_width() > 12:
                        R3.set_width(width=12,stretch=False)
                R4 = TexMobject(r"\text{Notice that } I(0)=0 \ \text{and}\ I(1)=1" )
                if R4.get_height() > 1:
                        R4.set_height(height=1,stretch=False)
                if R4.get_width() > 12:
                        R4.set_width(width=12,stretch=False)
                R5 = TexMobject(r"\text{Now let's diffrentiate with respect to  } \alpha" )
                if R5.get_height() > 1:
                        R5.set_height(height=1,stretch=False)
                if R5.get_width() > 12:
                        R5.set_width(width=12,stretch=False)
                R6 = TexMobject(r"I'(\alpha)=\int_{0}^{\infty}\frac{\partial }{\partial\alpha} \ln{(1+t^2)}\ln{\left(1+\alpha \frac{6}{t^2}\right)}dt" )
                if R6.get_height() > 1:
                        R6.set_height(height=1,stretch=False)
                if R6.get_width() > 12:
                        R6.set_width(width=12,stretch=False)
                R7 = TexMobject(r"I'(\alpha)=\frac{6}{\sqrt{5}}\int_{0}^{\infty}\frac{\ln{(1+t^2)}}{t^2+6\alpha} \  dt" )
                if R7.get_height() > 1:
                        R7.set_height(height=1,stretch=False)
                if R7.get_width() > 12:
                        R7.set_width(width=12,stretch=False)
                R8 = TexMobject(r"\text{Now let's do the Leibniz rule again introducing a new parameter } \beta" )
                if R8.get_height() > 1:
                        R8.set_height(height=1,stretch=False)
                if R8.get_width() > 12:
                        R8.set_width(width=12,stretch=False)
                R9 = TexMobject(r"I'(\alpha,\beta)=\frac{6}{\sqrt{5}}\int_{0}^{\infty}\frac{\ln{(1+\beta t^2)}}{t^2+6\alpha} dt" )
                if R9.get_height() > 1:
                        R9.set_height(height=1,stretch=False)
                if R9.get_width() > 12:
                        R9.set_width(width=12,stretch=False)
                R10 = TexMobject(r"\text{Notice that  }  I'(\alpha,0)=0 \  \text{and} \  I'(\alpha,1)=I'(\alpha)" )
                if R10.get_height() > 1:
                        R10.set_height(height=1,stretch=False)
                if R10.get_width() > 12:
                        R10.set_width(width=12,stretch=False)
                R11 = TexMobject(r"\text{Now let's differentiate with respect to  }\beta ," )
                if R11.get_height() > 1:
                        R11.set_height(height=1,stretch=False)
                if R11.get_width() > 12:
                        R11.set_width(width=12,stretch=False)
                R12 = TexMobject(r"\frac{\partial I'(\alpha,\beta)}{\partial \beta}=\frac{6}{\sqrt{5}}\int_{0}^{\infty}\frac{\partial}{\partial \beta} \frac{\ln{(1+\beta t^2)}}{t^2+6\alpha} dt" )
                if R12.get_height() > 1:
                        R12.set_height(height=1,stretch=False)
                if R12.get_width() > 12:
                        R12.set_width(width=12,stretch=False)
                R13 = TexMobject(r"= \frac{\partial I'(\alpha ,\beta )}{\partial \beta}=\frac{6}{\sqrt{5}}\int_{0}^{\infty} \frac{t^2}{(t^2+6\alpha)(1+\beta t^2)} dt" )
                if R13.get_height() > 1:
                        R13.set_height(height=1,stretch=False)
                if R13.get_width() > 12:
                        R13.set_width(width=12,stretch=False)
                R14 = TexMobject(r"\text{Now doing Partial Fractions,}" )
                if R14.get_height() > 1:
                        R14.set_height(height=1,stretch=False)
                if R14.get_width() > 12:
                        R14.set_width(width=12,stretch=False)
                R15 = TexMobject(r"\frac{\partial I'(\alpha,\beta)}{\partial \beta}=\frac{6}{\sqrt{5}} \int_{0}^{\infty} \frac{a_1}{t^2+6\alpha} + \frac{a_2}{1+\beta t^2} \   dt" )
                if R15.get_height() > 1:
                        R15.set_height(height=1,stretch=False)
                if R15.get_width() > 12:
                        R15.set_width(width=12,stretch=False)
                R16 = TexMobject(r"\text{With identification we get } a_1=\frac{-6\alpha}{1-6\alpha\beta} \ \  , \  a_2=\frac{1}{1-6\alpha\beta}" )
                if R16.get_height() > 1:
                        R16.set_height(height=1,stretch=False)
                if R16.get_width() > 12:
                        R16.set_width(width=12,stretch=False)
                R17 = TexMobject(r"\frac{\partial I'(\alpha, \beta)}{\partial \beta}=\frac{6}{\sqrt{5}}\frac{1}{(1-6\alpha\beta)} \int_{0}^{\infty}\frac{1}{1+\beta t^2}-\frac{6\alpha}{t^2+6\alpha} dt" )
                if R17.get_height() > 1:
                        R17.set_height(height=1,stretch=False)
                if R17.get_width() > 12:
                        R17.set_width(width=12,stretch=False)
                R18 = TexMobject(r"\text{Now this is an elementary integral and we get,}" )
                if R18.get_height() > 1:
                        R18.set_height(height=1,stretch=False)
                if R18.get_width() > 12:
                        R18.set_width(width=12,stretch=False)
                R19 = TexMobject(r"\frac{\partial I'(\alpha, \beta)}{\partial \beta}=\frac{6}{\sqrt{5}}\frac{1}{(1-6\alpha\beta)}\left[\frac{1}{\sqrt{\beta}}\arctan{(\sqrt{\beta}t)}-\sqrt{6\alpha}\arctan{\left(\frac{t}{\sqrt{6\alpha}}\right)}\right]_{0}^{\infty}" )
                if R19.get_height() > 1:
                        R19.set_height(height=1,stretch=False)
                if R19.get_width() > 12:
                        R19.set_width(width=12,stretch=False)
                R20 = TexMobject(r"= \frac{\partial I'(\alpha, \beta)}{\partial \beta}=\frac{6}{\sqrt{5}}\frac{1}{(1-6\alpha\beta)}\left(\frac{1}{\sqrt{\beta}}-\sqrt{6\alpha}\right)\frac{\pi}{2}" )
                if R20.get_height() > 1:
                        R20.set_height(height=1,stretch=False)
                if R20.get_width() > 12:
                        R20.set_width(width=12,stretch=False)
                R21 = TexMobject(r"\text{Now to get back to  }I'(\alpha , \beta ) \text{ we'll integrate with respect to  }  \beta" )
                if R21.get_height() > 1:
                        R21.set_height(height=1,stretch=False)
                if R21.get_width() > 12:
                        R21.set_width(width=12,stretch=False)
                R22 = TexMobject(r"I'(\alpha,\beta)=\int\frac{\partial I'(\alpha, \beta)}{\partial \beta} \ d\beta" )
                if R22.get_height() > 1:
                        R22.set_height(height=1,stretch=False)
                if R22.get_width() > 12:
                        R22.set_width(width=12,stretch=False)
                R23 = TexMobject(r"=\frac{6}{\sqrt{5}}\frac{\pi}{2}\int \frac{1}{\sqrt{\beta}}\frac{1}{1-6\alpha\beta}-\frac{\sqrt{6\alpha}}{1-6\alpha\beta} \ d\beta" )
                if R23.get_height() > 1:
                        R23.set_height(height=1,stretch=False)
                if R23.get_width() > 12:
                        R23.set_width(width=12,stretch=False)
                R24 = TexMobject(r"\text{For the first integral just let  }u=\sqrt{\beta}  \implies du=\frac{1}{\sqrt{\beta}} \ d\beta \text{ and we get,}" )
                if R24.get_height() > 1:
                        R24.set_height(height=1,stretch=False)
                if R24.get_width() > 12:
                        R24.set_width(width=12,stretch=False)
                R25 = TexMobject(r"I'(\alpha,\beta)=\frac{\sqrt{6}}{\sqrt{5}}\frac{\pi}{2}\frac{1}{\sqrt{\alpha}}\left(\ln({1-6\alpha\beta})+2 \text{ argtanh}{\left(\sqrt{6\alpha\beta}\right)}\right)+C(\alpha)" )
                if R25.get_height() > 1:
                        R25.set_height(height=1,stretch=False)
                if R25.get_width() > 12:
                        R25.set_width(width=12,stretch=False)
                R26 = TexMobject(r"\text{Since  }I'(\alpha,0)=0 \ \implies \ C(\alpha)=0" )
                if R26.get_height() > 1:
                        R26.set_height(height=1,stretch=False)
                if R26.get_width() > 12:
                        R26.set_width(width=12,stretch=False)
                R27 = TexMobject(r"\text{For  } \beta=1 \text{ we get } I'(\alpha)" )
                if R27.get_height() > 1:
                        R27.set_height(height=1,stretch=False)
                if R27.get_width() > 12:
                        R27.set_width(width=12,stretch=False)
                R28 = TexMobject(r"\iff I'(\alpha,1)=I'(\alpha)=\frac{\pi}{2}\frac{\sqrt{6}}{\sqrt{5\alpha}}\left(\ln{(1-6\alpha)}+2\text{ argtanh}{(\sqrt{6\alpha})}\right)" )
                if R28.get_height() > 1:
                        R28.set_height(height=1,stretch=False)
                if R28.get_width() > 12:
                        R28.set_width(width=12,stretch=False)
                R29 = TexMobject(r"\text{Now to get back to }  I(\alpha) \text{ we'll integrate with respect to } \alpha" )
                if R29.get_height() > 1:
                        R29.set_height(height=1,stretch=False)
                if R29.get_width() > 12:
                        R29.set_width(width=12,stretch=False)
                R30 = TexMobject(r"I(\alpha)=\int I'(\alpha) d\alpha" )
                if R30.get_height() > 1:
                        R30.set_height(height=1,stretch=False)
                if R30.get_width() > 12:
                        R30.set_width(width=12,stretch=False)
                R31 = TexMobject(r"I(\alpha)=\frac{\pi}{\sqrt{5}}\int\frac{\sqrt{6}}{2\sqrt{\alpha}}\left(\ln{(1-6\alpha)}+2\text{ argtanh}{(\sqrt{6\alpha})}\right) d\alpha" )
                if R31.get_height() > 1:
                        R31.set_height(height=1,stretch=False)
                if R31.get_width() > 12:
                        R31.set_width(width=12,stretch=False)
                R32 = TexMobject(r"\text{For this let }  \displaystyle \eta=\sqrt{6\alpha} \ \implies \ d\eta=\frac{\sqrt{6}}{2\sqrt{\alpha}} \ d\alpha" )
                if R32.get_height() > 1:
                        R32.set_height(height=1,stretch=False)
                if R32.get_width() > 12:
                        R32.set_width(width=12,stretch=False)
                R33 = TexMobject(r"\implies I=\frac{\pi}{\sqrt{5}}\int \ln{(1-\eta^2)}+2\text{ argtanh}{(\eta)} \   d\eta  " )
                if R33.get_height() > 1:
                        R33.set_height(height=1,stretch=False)
                if R33.get_width() > 12:
                        R33.set_width(width=12,stretch=False)
                R34 = TexMobject(r"\text{Since } \text{argtanh}{(t)}=\frac{1}{2} \ln{\left(\frac{1+t}{1-t}\right)} \text{ and } \ln{(1-t^2)}=\ln{(1+t)}+\ln{(1-t)}" )
                if R34.get_height() > 1:
                        R34.set_height(height=1,stretch=False)
                if R34.get_width() > 12:
                        R34.set_width(width=12,stretch=False)
                R35 = TexMobject(r"\implies I=\frac{\pi}{\sqrt{5}} \int 2\ln{(1+\eta)} \  d\eta" )
                if R35.get_height() > 1:
                        R35.set_height(height=1,stretch=False)
                if R35.get_width() > 12:
                        R35.set_width(width=12,stretch=False)
                R36 = TexMobject(r"\text{Now this can be done quite easily using integration by parts and we get,}" )
                if R36.get_height() > 1:
                        R36.set_height(height=1,stretch=False)
                if R36.get_width() > 12:
                        R36.set_width(width=12,stretch=False)
                R37 = TexMobject(r"I=\frac{2\pi}{\sqrt{5}}\Bigl((1+\eta)\ln{(1+\eta)}-\eta \Bigr)+C" )
                if R37.get_height() > 1:
                        R37.set_height(height=1,stretch=False)
                if R37.get_width() > 12:
                        R37.set_width(width=12,stretch=False)
                R38 = TexMobject(r"\text{And since } \eta=\sqrt{6\alpha}" )
                if R38.get_height() > 1:
                        R38.set_height(height=1,stretch=False)
                if R38.get_width() > 12:
                        R38.set_width(width=12,stretch=False)
                R39 = TexMobject(r"I(\alpha)=\frac{2\pi}{5} \Bigl((1+\sqrt{6\alpha})\ln{(1+\sqrt{6\alpha})}-\sqrt{6\alpha}\Bigr)+C" )
                if R39.get_height() > 1:
                        R39.set_height(height=1,stretch=False)
                if R39.get_width() > 12:
                        R39.set_width(width=12,stretch=False)
                R40 = TexMobject(r"\text{Since }  I(0)=0 \implies C=0 \text{ and for } \alpha=1 \text{ we get } I " )
                if R40.get_height() > 1:
                        R40.set_height(height=1,stretch=False)
                if R40.get_width() > 12:
                        R40.set_width(width=12,stretch=False)
                R41 = TexMobject(r"\implies I(1)=I=\frac{\pi}{\sqrt{5}}\Bigl(2(1+\sqrt{6})\ln{(1+\sqrt{6})}-2\sqrt{6}\Bigr)" )
                if R41.get_height() > 1:
                        R41.set_height(height=1,stretch=False)
                if R41.get_width() > 12:
                        R41.set_width(width=12,stretch=False)
                R42 = TexMobject(r"\text{We know that } 2\ln{(a)}=\ln{(a^2)}" )
                if R42.get_height() > 1:
                        R42.set_height(height=1,stretch=False)
                if R42.get_width() > 12:
                        R42.set_width(width=12,stretch=False)
                R43 = TexMobject(r"\implies I=\frac{\pi}{\sqrt{5}}\Bigl((1+\sqrt{6})\ln{(7+2\sqrt{6})}-\sqrt{6}\Bigr)" I=\frac{\pi}{\sqrt{5}}\Bigl((1+\sqrt{6})\ln{(7+2\sqrt{6})}-2\sqrt{6}\Bigr)" )
                if R43.get_height() > 1:
                        R43.set_height(height=1,stretch=False)
                if R43.get_width() > 12:
                        R43.set_width(width=12,stretch=False)
                R44 = TexMobject(r"\text{So we conclude that,}" )
                if R44.get_height() > 1:
                        R44.set_height(height=1,stretch=False)
                if R44.get_width() > 12:
                        R44.set_width(width=12,stretch=False)
                R45 = TexMobject(r"I=\int_{0}^{\infty}\ln{(1+5x^2)}\ln{\left(1+\frac{6}{5x^2}\right)}dx" )
                if R45.get_height() > 1:
                        R45.set_height(height=1,stretch=False)
                if R45.get_width() > 12:
                        R45.set_width(width=12,stretch=False)
                R46 = TexMobject(r"=\frac{\pi}{\sqrt{5}}\Bigl((1+\sqrt{6})\ln{(7+2\sqrt{6})}-\sqrt{6}\Bigr)" TexMobject(r"=\frac{\pi}{\sqrt{5}}\Bigl((1+\sqrt{6})\ln{(7+2\sqrt{6})}-2\sqrt{6}\Bigr)" )
                if R46.get_height() > 1:
                        R46.set_height(height=1,stretch=False)
                if R46.get_width() > 12:
                        R46.set_width(width=12,stretch=False)
                R47 = TexMobject(r"." )
                if R47.get_height() > 1:
                        R47.set_height(height=1,stretch=False)
                if R47.get_width() > 12:
                        R47.set_width(width=12,stretch=False)
                R0.next_to(align_mark,DOWN)
                self.play(Write(R0))
                self.wait(1)
                R1.next_to(R0, DOWN)
                self.play(Write(R1))
                self.wait(1)
                R2.next_to(R1, DOWN)
                self.play(Write(R2))
                self.wait(1)
                self.play(FadeOut(R0))
                self.play(ApplyMethod(R1.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R2.next_to,R1, DOWN))
                R3.next_to(R2, DOWN)
                self.play(Write(R3))
                self.play(FadeOut(R1))
                self.play(ApplyMethod(R2.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R3.next_to,R2, DOWN))
                R4.next_to(R3, DOWN)
                self.play(Write(R4))
                self.play(FadeOut(R2))
                self.play(ApplyMethod(R3.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R4.next_to,R3, DOWN))
                R5.next_to(R4, DOWN)
                self.play(Write(R5))
                self.play(FadeOut(R3))
                self.play(ApplyMethod(R4.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R5.next_to,R4, DOWN))
                R6.next_to(R5, DOWN)
                self.play(Write(R6))
                self.play(FadeOut(R4))
                self.play(ApplyMethod(R5.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R6.next_to,R5, DOWN))
                R7.next_to(R6, DOWN)
                self.play(Write(R7))
                self.play(FadeOut(R5))
                self.play(ApplyMethod(R6.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R7.next_to,R6, DOWN))
                R8.next_to(R7, DOWN)
                self.play(Write(R8))
                self.play(FadeOut(R6))
                self.play(ApplyMethod(R7.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R8.next_to,R7, DOWN))
                R9.next_to(R8, DOWN)
                self.play(Write(R9))
                self.play(FadeOut(R7))
                self.play(ApplyMethod(R8.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R9.next_to,R8, DOWN))
                R10.next_to(R9, DOWN)
                self.play(Write(R10))
                self.play(FadeOut(R8))
                self.play(ApplyMethod(R9.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R10.next_to,R9, DOWN))
                R11.next_to(R10, DOWN)
                self.play(Write(R11))
                self.play(FadeOut(R9))
                self.play(ApplyMethod(R10.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R11.next_to,R10, DOWN))
                R12.next_to(R11, DOWN)
                self.play(Write(R12))
                self.play(FadeOut(R10))
                self.play(ApplyMethod(R11.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R12.next_to,R11, DOWN))
                R13.next_to(R12, DOWN)
                self.play(Write(R13))
                self.play(FadeOut(R11))
                self.play(ApplyMethod(R12.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R13.next_to,R12, DOWN))
                R14.next_to(R13, DOWN)
                self.play(Write(R14))
                self.play(FadeOut(R12))
                self.play(ApplyMethod(R13.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R14.next_to,R13, DOWN))
                R15.next_to(R14, DOWN)
                self.play(Write(R15))
                self.play(FadeOut(R13))
                self.play(ApplyMethod(R14.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R15.next_to,R14, DOWN))
                R16.next_to(R15, DOWN)
                self.play(Write(R16))
                self.play(FadeOut(R14))
                self.play(ApplyMethod(R15.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R16.next_to,R15, DOWN))
                R17.next_to(R16, DOWN)
                self.play(Write(R17))
                self.play(FadeOut(R15))
                self.play(ApplyMethod(R16.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R17.next_to,R16, DOWN))
                R18.next_to(R17, DOWN)
                self.play(Write(R18))
                self.play(FadeOut(R16))
                self.play(ApplyMethod(R17.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R18.next_to,R17, DOWN))
                R19.next_to(R18, DOWN)
                self.play(Write(R19))
                self.play(FadeOut(R17))
                self.play(ApplyMethod(R18.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R19.next_to,R18, DOWN))
                R20.next_to(R19, DOWN)
                self.play(Write(R20))
                self.play(FadeOut(R18))
                self.play(ApplyMethod(R19.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R20.next_to,R19, DOWN))
                R21.next_to(R20, DOWN)
                self.play(Write(R21))
                self.play(FadeOut(R19))
                self.play(ApplyMethod(R20.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R21.next_to,R20, DOWN))
                R22.next_to(R21, DOWN)
                self.play(Write(R22))
                self.play(FadeOut(R20))
                self.play(ApplyMethod(R21.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R22.next_to,R21, DOWN))
                R23.next_to(R22, DOWN)
                self.play(Write(R23))
                self.play(FadeOut(R21))
                self.play(ApplyMethod(R22.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R23.next_to,R22, DOWN))
                R24.next_to(R23, DOWN)
                self.play(Write(R24))
                self.play(FadeOut(R22))
                self.play(ApplyMethod(R23.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R24.next_to,R23, DOWN))
                R25.next_to(R24, DOWN)
                self.play(Write(R25))
                self.play(FadeOut(R23))
                self.play(ApplyMethod(R24.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R25.next_to,R24, DOWN))
                R26.next_to(R25, DOWN)
                self.play(Write(R26))
                self.play(FadeOut(R24))
                self.play(ApplyMethod(R25.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R26.next_to,R25, DOWN))
                R27.next_to(R26, DOWN)
                self.play(Write(R27))
                self.play(FadeOut(R25))
                self.play(ApplyMethod(R26.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R27.next_to,R26, DOWN))
                R28.next_to(R27, DOWN)
                self.play(Write(R28))
                self.play(FadeOut(R26))
                self.play(ApplyMethod(R27.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R28.next_to,R27, DOWN))
                R29.next_to(R28, DOWN)
                self.play(Write(R29))
                self.play(FadeOut(R27))
                self.play(ApplyMethod(R28.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R29.next_to,R28, DOWN))
                R30.next_to(R29, DOWN)
                self.play(Write(R30))
                self.play(FadeOut(R28))
                self.play(ApplyMethod(R29.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R30.next_to,R29, DOWN))
                R31.next_to(R30, DOWN)
                self.play(Write(R31))
                self.play(FadeOut(R29))
                self.play(ApplyMethod(R30.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R31.next_to,R30, DOWN))
                R32.next_to(R31, DOWN)
                self.play(Write(R32))
                self.play(FadeOut(R30))
                self.play(ApplyMethod(R31.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R32.next_to,R31, DOWN))
                R33.next_to(R32, DOWN)
                self.play(Write(R33))
                self.play(FadeOut(R31))
                self.play(ApplyMethod(R32.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R33.next_to,R32, DOWN))
                R34.next_to(R33, DOWN)
                self.play(Write(R34))
                self.play(FadeOut(R32))
                self.play(ApplyMethod(R33.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R34.next_to,R33, DOWN))
                R35.next_to(R34, DOWN)
                self.play(Write(R35))
                self.play(FadeOut(R33))
                self.play(ApplyMethod(R34.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R35.next_to,R34, DOWN))
                R36.next_to(R35, DOWN)
                self.play(Write(R36))
                self.play(FadeOut(R34))
                self.play(ApplyMethod(R35.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R36.next_to,R35, DOWN))
                R37.next_to(R36, DOWN)
                self.play(Write(R37))
                self.play(FadeOut(R35))
                self.play(ApplyMethod(R36.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R37.next_to,R36, DOWN))
                R38.next_to(R37, DOWN)
                self.play(Write(R38))
                self.play(FadeOut(R36))
                self.play(ApplyMethod(R37.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R38.next_to,R37, DOWN))
                R39.next_to(R38, DOWN)
                self.play(Write(R39))
                self.play(FadeOut(R37))
                self.play(ApplyMethod(R38.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R39.next_to,R38, DOWN))
                R40.next_to(R39, DOWN)
                self.play(Write(R40))
                self.play(FadeOut(R38))
                self.play(ApplyMethod(R39.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R40.next_to,R39, DOWN))
                R41.next_to(R40, DOWN)
                self.play(Write(R41))
                self.play(FadeOut(R39))
                self.play(ApplyMethod(R40.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R41.next_to,R40, DOWN))
                R42.next_to(R41, DOWN)
                self.play(Write(R42))
                self.play(FadeOut(R40))
                self.play(ApplyMethod(R41.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R42.next_to,R41, DOWN))
                R43.next_to(R42, DOWN)
                self.play(Write(R43))
                self.play(FadeOut(R41))
                self.play(ApplyMethod(R42.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R43.next_to,R42, DOWN))
                R44.next_to(R43, DOWN)
                self.play(Write(R44))
                self.play(FadeOut(R42))
                self.play(ApplyMethod(R43.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R44.next_to,R43, DOWN))
                R45.next_to(R44, DOWN)
                self.play(Write(R45))
                self.play(FadeOut(R43))
                self.play(ApplyMethod(R44.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R45.next_to,R44, DOWN))
                R46.next_to(R45, DOWN)
                self.play(Write(R46))
                self.play(FadeOut(R44))
                self.play(ApplyMethod(R45.next_to,align_mark,DOWN))
                self.play(ApplyMethod(R46.next_to,R45, DOWN))
                R47.next_to(R46, DOWN)
                self.play(Write(R47))
                self.wait(2)
                self.play(FadeOut(R47))
                self.play(FadeOut(R46))
                self.play(FadeOut(R45))
                self.play(FadeOut(Solve))
                self.play(ApplyMethod(watermark.next_to,align_mark,DOWN))
                self.play(FadeOut(watermark))
play(FadeOut(watermark))