From 461584098bd252301452eb3e6e0bfcd2d3c6f0c8 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Tue, 30 Jun 2020 15:05:16 +0530 Subject: last-1 review --- .../file1_simple_visualization.gif | Bin 686712 -> 675451 bytes .../file1_simple_visualization.py | 12 ++++---- .../file4_different_curvature_single_curve.py | 18 ++++++++++-- .../file1_parametric_circle.py | 13 +++++---- .../file1_prescribed_plane.gif | Bin 163202 -> 0 bytes .../file1_tnb_basic.gif | Bin 0 -> 1990818 bytes .../file1_tnb_basic.py | 31 +++++++++++++++++++++ .../file2_tnb_frame.gif | Bin 150050 -> 0 bytes .../file2_tnb_frame_manim.py | 23 +++++++-------- 9 files changed, 73 insertions(+), 24 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_prescribed_plane.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.gif index 858a8de..3f7ecd1 100644 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.gif and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.py index 7ab8908..45058d7 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file1_simple_visualization.py @@ -32,6 +32,8 @@ class randomcurve(GraphScene): dot6 = Dot(tgt6.get_start(), color = RED) dot7 = Dot(tgt7.get_start(), color = RED) + arc = ArcBetweenPoints(dot1.get_center(), dot2.get_center(), color = GREEN_SCREEN, angle = 10*DEGREES).rotate(180*DEGREES) + dots = VGroup(*[dot1, dot2, dot3, dot4, dot5, dot6, dot7]) ds = CurvedArrow((-4, 2, 0), (tgt1.get_start() + tgt2.get_start()) / 2, color = YELLOW) @@ -43,15 +45,13 @@ class randomcurve(GraphScene): self.wait(2) self.play(FadeOut(intro)) self.setup_axes(hideaxes=False) - self.play(ShowCreation(graphobj), FadeIn(dots), FadeIn(ds), FadeIn(ds_text)) + self.play(ShowCreation(graphobj), FadeIn(dots), FadeIn(ds), FadeIn(ds_text), FadeIn(arc)) self.wait(1) - self.play(FadeOut(self.axes), FadeOut(graphobj),FadeIn(mid), FadeOut(dots), FadeOut(ds), FadeOut(ds_text)) - self.wait(2) + self.play(FadeOut(self.axes), FadeOut(arc), FadeOut(graphobj),FadeIn(mid), FadeOut(dots), FadeOut(ds), FadeOut(ds_text)) + self.wait(3) self.play(FadeOut(mid)) self.play(FadeIn(self.axes), FadeIn(graphobj), FadeIn(dots)) - - tangents = [tgt1, tgt2, tgt3, tgt4, tgt5, tgt6, tgt7] for tangent in tangents: self.play(ShowCreation(tangent), run_time = 0.2) @@ -60,7 +60,7 @@ class randomcurve(GraphScene): self.play(FadeOut(self.axes), FadeOut(graphobj), FadeOut(tangents), FadeOut(dots)) self.wait(1) self.play(FadeIn(outro)) - self.wait(2) + self.wait(3) self.play(FadeOut(outro)) self.wait(1) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py index d71adda..3ecd57c 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py @@ -47,10 +47,24 @@ class GR(GraphScene): line.move_to(p0) return line + circle1 = Circle(radius = 0.8, color = GREY, opacity = 0.2).shift(2.2*UP) + tgt1 = Line((-2,3,0), (2,3,0), color = GREY, opacity = 0.2).scale(0.4) + + curvature1 = VGroup(*[circle1, tgt1]) + + circle2 = Circle(radius = 0.6, color = GREY, opacity = 0.2).shift(0.4*DOWN + 4*RIGHT) + tgt2 = Line((4,-2,0), (6, -2, 0), color = GREY, opacity = 0.2).scale(0.5).shift(LEFT + UP) + + curvature2 = VGroup(*[circle2, tgt2]) + line = always_redraw(get_tangent_line) self.add(graph,line, dots, text) self.wait(1.2) - self.play(tracker.set_value, 6, rate_func=smooth, run_time=13) - self.play(FadeOut(VGroup(*[graph, self.axes, line, dots, text]))) + self.play(tracker.set_value, 0, rate_func=smooth, run_time=5) + self.play(FadeIn(curvature1)) + self.play(tracker.set_value, 4, rate_func=smooth, run_time=5) + self.play(FadeIn(curvature2)) + self.play(tracker.set_value, 6, rate_func=smooth, run_time=3) + self.play(FadeOut(VGroup(*[curvature1, curvature2, graph, self.axes, line, dots, text]))) self.wait() diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file1_parametric_circle.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file1_parametric_circle.py index 40b5150..37d079e 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file1_parametric_circle.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file1_parametric_circle.py @@ -11,12 +11,15 @@ class parametricCircle(ThreeDScene, GraphScene): self.y_axis_label = "" self.x_axis_width = 10 self.y_axis_height = 10 + self.y_tick_frequency = 1.9 + self.x_tick_frequency = 1.4 axes = [] - self.setup_axes() - self.axes.scale(0.5).shift(3*LEFT) - axes.append(self.axes) + # self.setup_axes() + ax = Axes(y_tick_frequency = 1, x_axis_width = 10, y_axis_height = 10, y_min = -5, x_max = 5, y_max = 5, x_tick_frequency = 1, x_axis_label = "", y_axis_label = "", x_min = -5, ) + ax.scale(0.5).shift(3*LEFT) + axes.append(ax) self.setup_axes() self.axes.scale(0.3).shift(3*RIGHT + 2*UP) axes.append(self.axes) @@ -38,7 +41,7 @@ class parametricCircle(ThreeDScene, GraphScene): asint = ParametricFunction( lambda t: np.array([ t, - np.sin(t), + 2*np.sin(t), 0 ]), t_min = -np.pi, t_max = np.pi, color = GREEN_E ).shift(3*RIGHT + 2*UP).scale(0.4) @@ -50,7 +53,7 @@ class parametricCircle(ThreeDScene, GraphScene): acost = ParametricFunction( lambda t: np.array([ t, - np.cos(t), + 2*np.cos(t), 0 ]), t_min = -np.pi, t_max = np.pi, color = BLUE ).shift(3*RIGHT + 2*DOWN).scale(0.4) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_prescribed_plane.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_prescribed_plane.gif deleted file mode 100644 index c8668e3..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_prescribed_plane.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif new file mode 100644 index 0000000..c028db4 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py new file mode 100644 index 0000000..5c68f69 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py @@ -0,0 +1,31 @@ +from manimlib.imports import * + +class tnb(ThreeDScene): + def construct(self): + t = TextMobject(r'T', color = YELLOW) + n = TextMobject(r'N', color = BLUE).next_to(t, RIGHT, buff=0) + b = TextMobject(r'B', color = GREEN_E).next_to(n, RIGHT, buff=0) + frame = TextMobject(r'Frame').next_to(b, RIGHT, buff=0.2) + + text = VGroup(*[t,n,b,frame]).move_to(ORIGIN).shift(3*UP) + curve = ParametricFunction( + lambda t: np.array([ + np.sin(TAU*t), + np.cos(TAU*t), + 0 + ]) + ).scale(2.5) + dot = Dot(color = RED).scale(1.5).shift(1.05*LEFT) + tgt = Arrow(dot.get_center(), (-2, 2, 0), color = YELLOW).shift(0.3*DOWN + 0.09*RIGHT) + normal = Arrow(tgt.get_start(), (1, 1, 0), color = BLUE).shift(0.2*LEFT + 0.05*DOWN) + binormal = Arrow(dot.get_center() - np.array([0,0,0.3]), (tgt.get_start()[0], tgt.get_start()[1],2), color = GREEN) + square = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).move_to(tgt.get_start()).rotate(27*DEGREES).shift(UP+0.4*RIGHT).scale(1.2) + group = VGroup(*[dot, tgt, normal, square, binormal]).shift(np.array([-1.24,-1,0])) + + self.add_fixed_in_frame_mobjects(text) + self.add(curve, group) + self.wait(1) + self.move_camera(phi = 75*DEGREES, theta=45*DEGREES, run_time = 2) + self.begin_ambient_camera_rotation(rate = 0.5) + self.wait(5) + self.play(FadeOut(VGroup(*[text, curve, dot, tgt, normal, square, binormal]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame.gif deleted file mode 100644 index 097652f..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py index ee5e717..176cac5 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py @@ -79,15 +79,16 @@ class tnb(ThreeDScene): self.play(FadeIn(helix), FadeIn(text)) self.play(ApplyMethod(helix.scale, 4)) self.add_fixed_in_frame_mobjects(bnm0) - self.play(FadeIn(point0), MoveAlongPath(helix_dot, helix1, run_time=5)) + self.play(FadeIn(point0)) + self.play(ApplyMethod(point0.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix1, run_time=5)) self.add_fixed_in_frame_mobjects(bnm1) - self.play(ApplyMethod(point0.set_color, GRAY), FadeIn(point1)) - self.play(MoveAlongPath(helix_dot, helix2, run_time = 5)) + self.play(FadeIn(point1)) + self.play(ApplyMethod(point1.set_color, GRAY, opacity = 0.1), ApplyMethod(bnm1.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix2, run_time = 5)) self.add_fixed_in_frame_mobjects(bnm2) - self.play(ApplyMethod(point1.set_color, GRAY), ApplyMethod(bnm1.set_color, GRAY), FadeIn(point2)) - self.play(MoveAlongPath(helix_dot, helix3, run_time=5)) + self.play(FadeIn(point2)) + self.play(ApplyMethod(point2.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix3, run_time=5)) dot3 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([3.3,-0.25,0]), radius = 0.16, color=RED) tgt3 = Arrow((0,0,0), (0,2,0), color = YELLOW).shift(helix_dot.get_center() - np.array([-0.05,0.2,0])) @@ -111,15 +112,15 @@ class tnb(ThreeDScene): point5 = VGroup(*[tgt5, nm5, bnm5, plane5]) self.add_fixed_in_frame_mobjects(bnm3) - self.play(ApplyMethod(point2.set_color, GRAY), FadeIn(point3)) - self.play(MoveAlongPath(helix_dot, helix4, run_time=5)) + self.play(FadeIn(point3)) + self.play(ApplyMethod(point3.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix4, run_time=5)) self.add_fixed_in_frame_mobjects(bnm4) - self.play(ApplyMethod(point3.set_color, GRAY), FadeIn(point4)) - self.play(MoveAlongPath(helix_dot, helix5, run_time=5)) + self.play(FadeIn(point4)) + self.play(ApplyMethod(point4.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix5, run_time=5)) self.add_fixed_in_frame_mobjects(bnm5) - self.play(ApplyMethod(point4.set_color, GRAY), FadeIn(point5)) + self.play(FadeIn(point5)) self.wait(2) - self.play(FadeOut(VGroup(*[helix, bnm1, point0, point1, point2, point3, point4, point5, helix_dot]))) + self.play(FadeOut(VGroup(*[text, helix, bnm1, point0, point1, point2, point3, point4, point5, helix_dot]))) -- cgit From 507d858af69003404b696c522689e3f79d9480f1 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Tue, 30 Jun 2020 15:08:44 +0530 Subject: Update README.md --- .../tnb-frame-and-serret-frenet-formulae/README.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md index 34885b2..766c91f 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md @@ -1,2 +1,6 @@ +**file1_tnb_basic.py**
+![file1_tnb_basic.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif) + + **file2_tnb_frame_manim.py**
![file2_tnb_frame_manim.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif) -- cgit From 05fb7a8be916f7bb8a0681668a55a2fe0201b1e1 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Tue, 30 Jun 2020 15:10:52 +0530 Subject: new gif --- .../file2_tnb_frame_manim.gif | Bin 837251 -> 886891 bytes 1 file changed, 0 insertions(+), 0 deletions(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif index 784b6a6..78e3aa3 100644 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif differ -- cgit From d6f6f948db8d768167b9533684d2f5af059e611b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:45:59 +0530 Subject: Delete file4_neural_nets.py --- .../scalar-functions/file4_neural_nets.py | 177 --------------------- 1 file changed, 177 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_neural_nets.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_neural_nets.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_neural_nets.py deleted file mode 100644 index eb6bf45..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_neural_nets.py +++ /dev/null @@ -1,177 +0,0 @@ -from manimlib.imports import * - -class SigmoidFunc(GraphScene): - CONFIG = { - "x_min": -4, - "x_max": 4, - "y_min": -1, - "y_max": 1, - "graph_origin": ORIGIN + 0.8*DOWN, - "x_labeled_nums": list(range(-4, 5)), - "y_labeled_nums": list(range(-1, 2)), - "y_axis_height": 4.5, - } - def construct(self): - XTD = self.x_axis_width/(self.x_max- self.x_min) - YTD = self.y_axis_height/(self.y_max- self.y_min) - - topic = TextMobject("Sigmoid Function") - topic.move_to(3.2*UP) - topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - - self.setup_axes(animate = True) - sigmoid_func = self.get_graph(lambda x : (1/(1 + np.exp(-x))), x_min = -4, x_max = 4) - sigmoid_lab = self.get_graph_label(sigmoid_func, label = r"\frac{1}{1 + e^{-z}}") - - - - - self.play(ShowCreation(sigmoid_func),Write(sigmoid_lab)) - self.play(Write(topic)) - self.wait(2) - self.play(FadeOut(sigmoid_func), FadeOut(sigmoid_lab)) - self.wait(1) - - - -class NeuralNet(GraphScene): - def construct(self): - - sigmoid_exp = TextMobject(r"g(z) = g($\theta^T$ X) = $\frac{1}{1 + e^{-z}}$") - sigmoid_exp.move_to(3*UP + 4*LEFT) - sigmoid_exp.scale(0.8) - sigmoid_exp.set_color(BLUE) - sigmoid_exp1 = TextMobject(r"Predict: 'y = 1'",r"When g(z) $\geq$ 0.5, z $\geq$ 0, $\theta^T$ X $\geq$ 0") - sigmoid_exp2 = TextMobject(r"Predict: 'y = 0'", r"When g(z) $\leq$ 0.5, z $\leq$ 0, $\theta^T$ X $\leq$ 0") - sigmoid_exp1.scale(0.5) - sigmoid_exp2.scale(0.5) - sigmoid_exp1.set_color(PURPLE) - sigmoid_exp2.set_color(PURPLE) - - sigmoid_exp1[0].next_to(sigmoid_exp, 1.5*DOWN) - sigmoid_exp1[1].next_to(sigmoid_exp1[0], DOWN) - sigmoid_exp2[0].next_to(sigmoid_exp1[1], 1.5*DOWN) - sigmoid_exp2[1].next_to(sigmoid_exp2[0], DOWN) - - - self.play(Write(sigmoid_exp)) - self.play(Write(sigmoid_exp1[0]), Write(sigmoid_exp1[1])) - self.play(Write(sigmoid_exp2[0]), Write(sigmoid_exp2[1])) - self.wait(2) - - - neuron1 = Circle() - neuron1.set_fill(YELLOW_A, opacity = 0.5) - - neuron2 = Circle() - neuron2.set_fill(ORANGE, opacity = 0.5) - - neuron3 = Circle() - neuron3.set_fill(GREEN_E, opacity = 0.5) - - neuron1.move_to(2*UP+RIGHT) - neuron2.move_to(2*DOWN+RIGHT) - neuron3.move_to(4*RIGHT) - - arrow1 = Arrow(neuron1.get_right(),neuron3.get_left(),buff=0.1) - arrow1.set_color(RED) - arrow2 = Arrow(neuron2.get_right(),neuron3.get_left(),buff=0.1) - arrow2.set_color(RED) - - arrow3 = Arrow(neuron3.get_right(),7*RIGHT,buff=0.1) - arrow3.set_color(RED) - - - sign1 = TextMobject("+1") - sign1.move_to(2*UP+RIGHT) - sign1.scale(2) - sign2 = TextMobject(r"$x_1$") - sign2.move_to(2*DOWN+RIGHT) - sign2.scale(2) - sign3 = TextMobject(r"$h_{\theta}(x)$") - sign3.move_to(6*RIGHT+0.4*DOWN) - sign3.scale(0.7) - sign4 = TextMobject(r"$= g(10 - 20x_1)$") - sign4.next_to(sign3,DOWN) - sign4.scale(0.5) - sign5 = TextMobject(r"$= g(10 - 20x_1)$") - sign5.next_to(sign3,DOWN) - sign5.scale(0.5) - sign6 = TextMobject(r"$= g(10 - 20x_1)$") - sign6.next_to(sign3,DOWN) - sign6.scale(0.5) - - - weight1 = TextMobject("10") - weight1.next_to(arrow1,UP) - weight2 = TextMobject("-20") - weight2.next_to(arrow2,DOWN) - - gate = TextMobject("NOT GATE") - gate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - gate.scale(1.5) - gate.move_to(3*RIGHT+3.5*UP) - - - - truth_table = TextMobject(r"\begin{displaymath}\begin{array}{|c|c|} x & y\\ \hline 1 & 0 \\0 & 1 \\\end{array}\end{displaymath}") - truth_table.next_to(sigmoid_exp2[1], 3*DOWN) - - values = TextMobject("1", "0") - values.scale(2) - - sign4_trans1 = TextMobject(r"$= g(10 - 20(1))$") - sign4_trans2 = TextMobject(r"$= g(10 - 20(0))$") - sign4_trans1.next_to(sign3,DOWN) - sign4_trans2.next_to(sign3,DOWN) - sign4_trans1.scale(0.5) - sign4_trans2.scale(0.5) - - - - output1 = TextMobject("y = 0") - output2 = TextMobject("y = 1") - output1.next_to(sign4,DOWN) - output2.next_to(sign4,DOWN) - output1.scale(1.5) - output2.scale(1.5) - - - - self.play(ShowCreation(neuron1),ShowCreation(neuron2)) - self.play(ShowCreation(neuron3)) - self.play(ShowCreation(sign1),ShowCreation(sign2)) - self.wait(1) - - self.play(GrowArrow(arrow1)) - self.play(GrowArrow(arrow2)) - self.play(ShowCreation(weight1),ShowCreation(weight2)) - - - - self.play(GrowArrow(arrow3)) - self.play(Write(sign3),Write(sign4)) - - self.play(Write(gate)) - self.play(ShowCreation(truth_table)) - - self.play(ApplyMethod(values[0].move_to, 2*DOWN+RIGHT)) - self.play(FadeOut(values[0])) - self.play(Transform(sign4,sign4_trans1)) - self.play(Write(output1)) - self.wait(1) - self.play(FadeOut(output1)) - self.play(Transform(sign4, sign5)) - - - self.play(ApplyMethod(values[1].move_to, 2*DOWN+RIGHT)) - self.play(FadeOut(values[1])) - self.play(Transform(sign4,sign4_trans2)) - self.play(Write(output2)) - self.wait(1) - self.play(FadeOut(output2)) - self.play(Transform(sign4, sign6)) - - self.wait(2) - - -- cgit From d19e96406447a0cc155896d6a73c7e9d9647897b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:46:09 +0530 Subject: Delete file3_parabola_example.py --- .../scalar-functions/file3_parabola_example.py | 35 ---------------------- 1 file changed, 35 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py deleted file mode 100644 index 74dc063..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py +++ /dev/null @@ -1,35 +0,0 @@ -from manimlib.imports import * - -class Parabola(ThreeDScene): - def construct(self): - axes = ThreeDAxes() # creates a 3D Axis - - paraboloid = ParametricSurface( - lambda u, v: np.array([ - 2*np.cosh(u)*np.cos(v), - 2*np.cosh(u)*np.sin(v), - 2*np.sinh(u) - ]),v_min=0,v_max=TAU,u_min=0,u_max=2,checkerboard_colors=[YELLOW_D, YELLOW_E], - resolution=(15, 32)) - - text3d = TextMobject(r"Plot of $f: \mathbb{R}^2 \rightarrow \mathbb{R}$", "z = f(x,y)") - self.add_fixed_in_frame_mobjects(text3d) - text3d[0].move_to(4*LEFT+2*DOWN) - text3d[1].next_to(text3d[0], DOWN) - text3d[0].set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - text3d[1].set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE) - - #self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) - self.move_camera(phi=110* DEGREES,theta=45*DEGREES) - self.add(axes) - self.play(ShowCreation(paraboloid)) - self.play(Write(text3d[0])) - self.play(Write(text3d[1])) - self.begin_ambient_camera_rotation(rate=0.2) - self.wait(3) - self.move_camera(phi=0 * DEGREES,theta=180*DEGREES,run_time=3) - self.wait(3) - self.move_camera(phi=110* DEGREES,theta=90*DEGREES,run_time=3) - self.wait(3) - - \ No newline at end of file -- cgit From 60a22c5d3751b3f51ceb9693565699134f78d36c Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:46:19 +0530 Subject: Delete file2_scalar_function_application.py --- .../file2_scalar_function_application.py | 129 --------------------- 1 file changed, 129 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_scalar_function_application.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_scalar_function_application.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_scalar_function_application.py deleted file mode 100644 index 56b3e53..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_scalar_function_application.py +++ /dev/null @@ -1,129 +0,0 @@ -from manimlib.imports import * - -class ScalarApplication(ThreeDScene): - def construct(self): - axes = ThreeDAxes() # creates a 3D Axis - - cube = Cube() - cube.set_fill(YELLOW_E, opacity = 0.1) - cube.scale(2) - self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) - self.play(ShowCreation(cube),ShowCreation(axes)) - - dot = Sphere() - dot.scale(0.1) - dot.move_to(np.array([1,0.5,1])) - dot.set_fill(RED) - - #dot = Dot(np.array([1,0.5,1]), color = RED) - temp_func = TextMobject("T(x,y,z)") - temp_func.next_to(dot,RIGHT) - temp_func.set_color(RED) - temp_func_trans = TextMobject("T(1,0.5,1)") - temp_func_trans.next_to(dot,RIGHT) - temp_func_trans.set_color(RED) - temp = TextMobject(r"$36 ^\circ$") - temp.next_to(dot,RIGHT) - temp.set_color(RED_E) - - - self.play(ShowCreation(dot)) - self.play(ShowCreation(temp_func)) - self.play(Transform(temp_func, temp_func_trans)) - self.wait(1) - self.play(Transform(temp_func, temp)) - - - - - dot1 = Sphere() - dot1.scale(0.1) - dot1.move_to(np.array([-1,-0.8,-1.5])) - dot1.set_fill(BLUE_E) - #dot1 = Dot(np.array([-1,-0.8,-1.5]), color = BLUE) - temp_func1 = TextMobject("T(x,y,z)") - temp_func1.next_to(dot1,LEFT) - temp_func1.set_color(BLUE) - temp_func_trans1 = TextMobject("T(-1,-0.8,-1.5)") - temp_func_trans1.next_to(dot1,LEFT) - temp_func_trans1.set_color(BLUE) - temp1 = TextMobject(r"$24 ^\circ$") - temp1.next_to(dot1,LEFT) - temp1.set_color(BLUE) - - self.play(ShowCreation(dot1)) - self.play(ShowCreation(temp_func1)) - self.play(Transform(temp_func1, temp_func_trans1)) - self.wait(1) - self.play(Transform(temp_func1, temp1)) - - self.play(FadeOut(temp_func)) - self.play(FadeOut(temp_func1)) - - - self.move_camera(phi=80* DEGREES,theta=45*DEGREES,run_time=3) - - self.begin_ambient_camera_rotation(rate=0.2) - self.wait(4) - self.stop_ambient_camera_rotation() - self.wait(2) - - - - -class AddTempScale(Scene): - def construct(self): - temp_scale = ImageMobject("tempscale.png") - temp_scale.scale(4) - temp_scale.move_to(2*RIGHT) - self.play(ShowCreation(temp_scale)) - - - temp_func = TextMobject("T(x,y,z)") - temp_func.move_to(3*UP +2*LEFT) - temp_func.set_color(RED) - temp_func_trans = TextMobject("T(1,0.5,1)") - temp_func_trans.move_to(3*UP +2*LEFT) - temp_func_trans.set_color(RED) - temp = TextMobject(r"$36 ^\circ$") - temp.set_color(RED) - temp.move_to(3*UP +2*LEFT) - temp.scale(0.7) - - self.play(ShowCreation(temp_func)) - self.play(Transform(temp_func, temp_func_trans)) - self.wait(1) - self.play(Transform(temp_func, temp)) - self.play(ApplyMethod(temp_func.move_to, 1.8*UP +1.8*RIGHT)) - - - temp_func1 = TextMobject("T(x,y,z)") - temp_func1.move_to(2*UP +2*LEFT) - temp_func1.set_color(BLUE) - temp_func_trans1 = TextMobject("T(-1,-0.8,-1.5)") - temp_func_trans1.move_to(2*UP +2*LEFT) - temp_func_trans1.set_color(BLUE) - temp1 = TextMobject(r"$24 ^\circ$") - temp1.set_color(BLUE) - temp1.move_to(2*UP +2*LEFT) - temp1.scale(0.7) - - self.play(ShowCreation(temp_func1)) - self.play(Transform(temp_func1, temp_func_trans1)) - self.wait(1) - self.play(Transform(temp_func1, temp1)) - self.play(ApplyMethod(temp_func1.move_to, 0.6*UP +1.8*RIGHT)) - - - - transtext = TextMobject("Scalar Function Transform:") - transtext.set_color(GREEN) - transtext1 = TextMobject(r"$\mathbb{R}^3 \rightarrow \mathbb{R}$") - transtext1.set_color(YELLOW_E) - transtext.move_to(3*UP +3*LEFT) - transtext1.next_to(transtext,DOWN) - self.play(Write(transtext)) - self.play(Write(transtext1)) - self.wait(2) - - -- cgit From c83351087e4c5b821dc7bc64d482ab5791590330 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:46:29 +0530 Subject: Delete file1_domain_range.py --- .../scalar-functions/file1_domain_range.py | 132 --------------------- 1 file changed, 132 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_domain_range.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_domain_range.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_domain_range.py deleted file mode 100644 index 9b1ca7b..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_domain_range.py +++ /dev/null @@ -1,132 +0,0 @@ -# Plotting Graphs -from manimlib.imports import * - -class PlotGraphs(GraphScene): - CONFIG = { - "x_min": -5, - "x_max": 5, - "y_min": 0, - "y_max": 4, - "graph_origin": ORIGIN + 2.5* DOWN, - "x_labeled_nums": list(range(-5, 6)), - "y_labeled_nums": list(range(0, 5)), - } - def construct(self): - - topic = TextMobject("Domain and Range") - topic.scale(2) - topic.set_color(YELLOW) - self.play(Write(topic)) - self.play(FadeOut(topic)) - self.wait(1) - - - 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) - - graphobj = self.get_graph(lambda x : np.sqrt(x + 4), x_min = -4, x_max = 5) - graph_lab = self.get_graph_label(graphobj, label = r"\sqrt{x + 4}") - - - rangeline1 = Arrow(self.graph_origin+2.2*YTD*UP+5*XTD*LEFT, self.graph_origin+4.1*YTD*UP+5*XTD*LEFT) - rangeline2 = Arrow(self.graph_origin+1.7*YTD*UP+5*XTD*LEFT, self.graph_origin+5*XTD*LEFT) - rangeline1.set_color(RED) - rangeline2.set_color(RED) - - rangeMsg = TextMobject(r"Range: $y \geq 0$") - rangeMsg.move_to(self.graph_origin+2*YTD*UP+5*XTD*LEFT) - rangeMsg.scale(0.5) - rangeMsg.set_color(YELLOW) - - domainline1 = Line(self.graph_origin+0.6*YTD*DOWN+1.2*XTD*LEFT, self.graph_origin+0.6*YTD*DOWN + 4*XTD*LEFT) - domainline2 = Arrow(self.graph_origin+0.6*YTD*DOWN+1.1*XTD*RIGHT, self.graph_origin+0.6*YTD*DOWN + 5.3*XTD*RIGHT) - domainline1.set_color(PINK) - domainline2.set_color(PINK) - - domainMsg = TextMobject(r"Domain: $x \geq -4$") - domainMsg.move_to(self.graph_origin+0.6*YTD*DOWN) - domainMsg.scale(0.5) - domainMsg.set_color(GREEN) - - - - - self.play(ShowCreation(graphobj)) - self.play(ShowCreation(graph_lab)) - self.wait(1) - self.play(GrowArrow(rangeline1)) - self.play(GrowArrow(rangeline2)) - self.play(Write(rangeMsg)) - self.wait(1) - self.play(GrowArrow(domainline1)) - self.play(GrowArrow(domainline2)) - self.play(Write(domainMsg)) - self.wait(3) - - self.wait(2) - - - - -class PlotSineGraphs(GraphScene): - CONFIG = { - "x_min": -8, - "x_max": 8, - "y_min": -1, - "y_max": 1, - "graph_origin": ORIGIN, - "x_labeled_nums": list(range(-8, 9)), - "y_labeled_nums": list(range(-1, 2)), - } - 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) - - sineobj = self.get_graph(lambda x : np.sin(x), x_min = -7, x_max = 8) - sine_lab = self.get_graph_label(sineobj, label = "\\sin(x)") - - - rangeline1 = Line(8*XTD*LEFT,1*YTD*UP+8*XTD*LEFT) - rangeline2 = Line(8*XTD*LEFT,1*YTD*DOWN+8*XTD*LEFT) - rangeline1.set_color(RED) - rangeline2.set_color(RED) - - rangeMsg = TextMobject(r"Range: $-1 \leq y \leq 1$") - rangeMsg.move_to(1.1*YTD*UP+8.5*XTD*LEFT) - rangeMsg.scale(0.5) - rangeMsg.set_color(YELLOW) - - - domainline1 = Arrow(1.1*YTD*DOWN+2*XTD*LEFT, 1.1*YTD*DOWN + 8.5*XTD*LEFT) - domainline2 = Arrow(1.1*YTD*DOWN+2*XTD*RIGHT, 1.1*YTD*DOWN + 8.5*XTD*RIGHT) - domainline1.set_color(PINK) - domainline2.set_color(PINK) - - domainMsg = TextMobject(r"Domain: $[-\infty, \infty]$") - domainMsg.move_to(1.1*YTD*DOWN) - domainMsg.scale(0.5) - domainMsg.set_color(GREEN) - - - - self.play(ShowCreation(sineobj)) - self.play(ShowCreation(sine_lab)) - self.wait(1) - self.play(GrowArrow(rangeline1)) - self.play(GrowArrow(rangeline2)) - self.play(Write(rangeMsg)) - self.wait(1) - self.play(GrowArrow(domainline1)) - self.play(GrowArrow(domainline2)) - self.play(Write(domainMsg)) - self.wait(3) - - - \ No newline at end of file -- cgit From af048f4a37583c179281981453ead00552cf24ac Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:46:40 +0530 Subject: Delete Scalar_Function_Quiz.pdf --- .../scalar-functions/Scalar_Function_Quiz.pdf | Bin 87455 -> 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/Scalar_Function_Quiz.pdf (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf deleted file mode 100644 index 6d94a2c..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf and /dev/null differ -- cgit From 95da8ba813324d66673e237c5bdeb3e83829abec Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:46:50 +0530 Subject: Delete file4_neural_nets.gif --- .../scalar-functions/gifs/file4_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/file4_neural_nets.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_neural_nets.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_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/file4_neural_nets.gif and /dev/null differ -- cgit From 872b4ef5ff61fc90a8a875e7ff5bcefc82c02a61 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:47:00 +0530 Subject: Delete file3_parabola_example.gif --- .../scalar-functions/gifs/file3_parabola_example.gif | Bin 905534 -> 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 (limited to 'FSF-2020/calculus-of-several-variables') 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 3fdecf4..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 1987a00071ea9f9187fb136932970ab226c04678 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:47:09 +0530 Subject: Delete file2_scalar_function_application.gif --- .../gifs/file2_scalar_function_application.gif | Bin 225144 -> 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/file2_scalar_function_application.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_scalar_function_application.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_scalar_function_application.gif deleted file mode 100644 index 831ec8e..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_scalar_function_application.gif and /dev/null differ -- cgit From 0018e8a5a21c334dd9552dadca87c8fea520ca40 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:47:17 +0530 Subject: Delete file1_domain_range.gif --- .../scalar-functions/gifs/file1_domain_range.gif | Bin 74879 -> 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/file1_domain_range.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_domain_range.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_domain_range.gif deleted file mode 100644 index d0351e5..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_domain_range.gif and /dev/null differ -- cgit From 49ced9e502d4c0bb930731d37d1223d9b34d01d5 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:48:28 +0530 Subject: Added updated scalar-functions folder --- .../scalar-functions/Scalar_Function_Quiz.pdf | Bin 0 -> 87455 bytes .../scalar-functions/file1_scalar_functions.py | 50 ++++++ .../scalar-functions/file2_domain_range.py | 190 +++++++++++++++++++++ .../scalar-functions/file3_parabola_example.py | 47 +++++ .../scalar-functions/file4_level_curves.py | 118 +++++++++++++ .../scalar-functions/file5_level_surface.py | 78 +++++++++ .../file6_scalar_function_application.py | 140 +++++++++++++++ .../scalar-functions/file7_neural_nets.py | 177 +++++++++++++++++++ .../gifs/file1_scalar_functions.gif | Bin 0 -> 1408290 bytes .../scalar-functions/gifs/file2_domain_range.gif | Bin 0 -> 6625947 bytes .../gifs/file3_parabola_example.gif | Bin 0 -> 5660857 bytes .../scalar-functions/gifs/file4_level_curves.gif | Bin 0 -> 4096583 bytes .../scalar-functions/gifs/file5_level_surface.gif | Bin 0 -> 3796274 bytes .../gifs/file6_scalar_function_application.gif | Bin 0 -> 2236609 bytes .../scalar-functions/gifs/file7_neural_nets.gif | Bin 0 -> 95828 bytes 15 files changed, 800 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_scalar_functions.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_domain_range.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_level_curves.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file5_level_surface.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file6_scalar_function_application.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file7_neural_nets.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf new file mode 100644 index 0000000..6d94a2c Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/Scalar_Function_Quiz.pdf differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_scalar_functions.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_scalar_functions.py new file mode 100644 index 0000000..1a6f4ed --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file1_scalar_functions.py @@ -0,0 +1,50 @@ +from manimlib.imports import * + +class ScalarFunction(Scene): + def construct(self): + circle = Circle(radius = 1.5, color = BLUE_E, fill_color = BLUE_C, fill_opacity = 0.1).move_to(2*LEFT) + dot_circle = Dot().shift(np.array([-1.5,0,0])).set_color(BLUE_E) + dot_circle_lab = TextMobject(r"$a$", color = BLUE_E).next_to(dot_circle, DOWN) + + arrow = Arrow(np.array([3,-3,0]),np.array([3,3,0])) + line = Line(np.array([3,-1.5,0]),np.array([3,1.5,0]), color = RED_C) + + dot0 = Dot().shift(np.array([3,0,0])).set_color(RED_E) + dot0_lab = TextMobject(r"$f(a)$", color = RED_E).scale(0.8).next_to(dot0, RIGHT) + + dot1 = Dot().shift(np.array([3,-1.5,0])).set_color(RED_C) + + dot2 = Dot().shift(np.array([3,1.5,0])).set_color(RED_C) + dot2_lab = TextMobject(r"$f(A)$", color = RED_C).scale(0.8).next_to(dot2, RIGHT) + + arrow_f = Arrow(np.array([-1.5,0,0]),np.array([3,0,0]), color = YELLOW_C, buff = 0.1) + + R = TextMobject(r"$\mathbb{R}$", color = WHITE).move_to(np.array([3,-3.3,0])) + + A = TextMobject(r"$A$", color = BLUE_E).move_to(np.array([-2.5,-3.3,0])) + + F = TextMobject(r"$f$", color = GREY).move_to(np.array([0,-2.9,0])) + + F_center = TextMobject(r"$f$", color = YELLOW_C).move_to(np.array([0.8,0.5,0])) + + arrow_R_A = Arrow(np.array([-2.3,-3.3,0]),np.array([2.7,-3.3,0]), color = GREY, buff = 0.1) + + scalar_function = TextMobject(r"Scalar Valued Function", r"$f: A \rightarrow \mathbb{R}$", color = PURPLE).move_to(np.array([0,3.5,0])) + scalar_function[1].set_color(GREEN_C) + + + + self.play(ShowCreation(circle)) + self.play(ShowCreation(arrow)) + + + self.play(ShowCreation(dot1), ShowCreation(dot2)) + self.play(ShowCreation(dot_circle)) + self.play(ShowCreation(dot_circle_lab), ShowCreation(dot2_lab)) + self.play(ShowCreation(A), ShowCreation(R)) + self.play(GrowArrow(arrow_f), ShowCreation(dot0), ShowCreation(dot0_lab), ShowCreation(F_center), GrowArrow(arrow_R_A), ShowCreation(F), Transform(circle.copy(), line.copy())) + + self.play(Write(scalar_function)) + + + self.wait(2) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_domain_range.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_domain_range.py new file mode 100644 index 0000000..1b54cb6 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file2_domain_range.py @@ -0,0 +1,190 @@ +# Plotting Graphs +from manimlib.imports import * + +class PlotGraphs(GraphScene): + CONFIG = { + "x_min": -5, + "x_max": 5, + "y_min": 0, + "y_max": 4, + "graph_origin": ORIGIN + 2.5* DOWN, + "x_labeled_nums": list(range(-5, 6)), + "y_labeled_nums": list(range(0, 5)), + } + def construct(self): + + topic = TextMobject("Domain and Range") + topic.scale(2) + topic.set_color(YELLOW) + self.play(Write(topic)) + self.play(FadeOut(topic)) + self.wait(1) + + scalar_func_R = TextMobject(r"Scalar Valued Functions in $R$").scale(1.5).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + self.play(Write(scalar_func_R)) + self.play(FadeOut(scalar_func_R)) + self.wait(1) + + + 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) + + graphobj = self.get_graph(lambda x : np.sqrt(x + 4), x_min = -4, x_max = 5) + graph_lab = self.get_graph_label(graphobj, label = r"\sqrt{x + 4}") + + + rangeline1 = Arrow(self.graph_origin+2.2*YTD*UP+5*XTD*LEFT, self.graph_origin+4.1*YTD*UP+5*XTD*LEFT) + rangeline2 = Arrow(self.graph_origin+1.7*YTD*UP+5*XTD*LEFT, self.graph_origin+5*XTD*LEFT) + rangeline1.set_color(RED) + rangeline2.set_color(RED) + + rangeMsg = TextMobject(r"Range: $y \geq 0$") + rangeMsg.move_to(self.graph_origin+2*YTD*UP+5*XTD*LEFT) + rangeMsg.scale(0.5) + rangeMsg.set_color(YELLOW) + + domainline1 = Arrow(self.graph_origin+0.6*YTD*DOWN+1.2*XTD*LEFT, self.graph_origin+0.6*YTD*DOWN + 4*XTD*LEFT, buff = 0.1) + domainline2 = Arrow(self.graph_origin+0.6*YTD*DOWN+1.1*XTD*RIGHT, self.graph_origin+0.6*YTD*DOWN + 5.3*XTD*RIGHT, buff = 0.1) + domainline1.set_color(PINK) + domainline2.set_color(PINK) + + domainMsg = TextMobject(r"Domain: $x \geq -4$") + domainMsg.move_to(self.graph_origin+0.6*YTD*DOWN) + domainMsg.scale(0.5) + domainMsg.set_color(GREEN) + + + + + self.play(ShowCreation(graphobj)) + self.play(ShowCreation(graph_lab)) + self.wait(1) + self.play(GrowArrow(rangeline1)) + self.play(GrowArrow(rangeline2)) + self.play(Write(rangeMsg)) + self.wait(1) + self.play(GrowArrow(domainline1)) + self.play(GrowArrow(domainline2)) + self.play(Write(domainMsg)) + self.wait(3) + + self.wait(2) + + + + +class PlotSineGraphs(GraphScene): + CONFIG = { + "x_min": -8, + "x_max": 8, + "y_min": -1, + "y_max": 1, + "graph_origin": ORIGIN, + "x_labeled_nums": list(range(-8, 9)), + "y_labeled_nums": list(range(-1, 2)), + } + 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) + + sineobj = self.get_graph(lambda x : np.sin(x), x_min = -7, x_max = 8) + sine_lab = self.get_graph_label(sineobj, label = "\\sin(x)") + + + rangeline1 = Line(8*XTD*LEFT,1*YTD*UP+8*XTD*LEFT) + rangeline2 = Line(8*XTD*LEFT,1*YTD*DOWN+8*XTD*LEFT) + rangeline1.set_color(RED) + rangeline2.set_color(RED) + + rangeMsg = TextMobject(r"Range: $-1 \leq y \leq 1$") + rangeMsg.move_to(1.1*YTD*UP+8.5*XTD*LEFT) + rangeMsg.scale(0.5) + rangeMsg.set_color(YELLOW) + + + domainline1 = Arrow(1.1*YTD*DOWN+2*XTD*LEFT, 1.1*YTD*DOWN + 8.5*XTD*LEFT) + domainline2 = Arrow(1.1*YTD*DOWN+2*XTD*RIGHT, 1.1*YTD*DOWN + 8.5*XTD*RIGHT) + domainline1.set_color(PINK) + domainline2.set_color(PINK) + + domainMsg = TextMobject(r"Domain: $[-\infty, \infty]$") + domainMsg.move_to(1.1*YTD*DOWN) + domainMsg.scale(0.5) + domainMsg.set_color(GREEN) + + + + self.play(ShowCreation(sineobj)) + self.play(ShowCreation(sine_lab)) + self.wait(1) + self.play(GrowArrow(rangeline1)) + self.play(GrowArrow(rangeline2)) + self.play(Write(rangeMsg)) + self.wait(1) + self.play(GrowArrow(domainline1)) + self.play(GrowArrow(domainline2)) + self.play(Write(domainMsg)) + self.wait(3) + + + + +class Paraboloid(ThreeDScene): + def construct(self): + + scalar_func_R2 = TextMobject(r"Scalar Valued Functions in $R^2$").scale(1.5).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + self.play(Write(scalar_func_R2)) + self.play(FadeOut(scalar_func_R2)) + self.wait(1) + + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + 2*2*np.sin(u)*np.sin(u) + ]),u_min=0,u_max=PI/2,v_min=0,v_max=2*PI,checkerboard_colors=[GREEN_C, GREEN_E], + resolution=(15, 32)).scale(1) + + domain = Polygon(np.array([-5,-5,0]),np.array([5,-5,0]),np.array([5,5,0]),np.array([-5,5,0]),np.array([-5,-5,0]), color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.2) + domain_lab = TextMobject(r"$Domain: R^2$", color = YELLOW_C).scale(0.7).move_to(1*DOWN + 2*LEFT) + + rangef = Line(np.array([0, 0,0]), np.array([0, 0,5]), color = RED_C) + rangef_lab = TextMobject(r"$Range: z \geq 0$", color = RED_C).scale(0.7).move_to(2*UP + 1.5*RIGHT) + + func = TextMobject(r"$z = f(x,y) = x^2+y^2$").scale(0.7).move_to(3*UP + 4*LEFT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.set_camera_orientation(phi=60 * DEGREES, theta = 0*DEGREES) + self.begin_ambient_camera_rotation(rate=0.3) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + + + self.add_fixed_in_frame_mobjects(func) + self.play(Write(paraboloid)) + self.play(ShowCreation(domain)) + self.add_fixed_in_frame_mobjects(domain_lab) + self.wait() + self.play(ShowCreation(rangef)) + self.add_fixed_in_frame_mobjects(rangef_lab) + self.wait(5) + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py new file mode 100644 index 0000000..63c16b3 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file3_parabola_example.py @@ -0,0 +1,47 @@ +from manimlib.imports import * + +class Parabola(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 2*np.cosh(u)*np.cos(v), + 2*np.cosh(u)*np.sin(v), + 2*np.sinh(u) + ]),v_min=0,v_max=TAU,u_min=0,u_max=2,checkerboard_colors=[YELLOW_D, YELLOW_E],# + resolution=(15, 32)) + + text3d = TextMobject(r"Plot of $f: \mathbb{R}^2 \rightarrow \mathbb{R}$", r"$z = f(x,y) = \sqrt{x^2 + y^2 - 4}$") + text3d[0].move_to(4*LEFT+2*DOWN) + text3d[1].next_to(text3d[0], DOWN) + text3d[0].set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + text3d[1].set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE) + + #self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) + self.move_camera(phi=110* DEGREES,theta=45*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + + self.play(ShowCreation(paraboloid)) + self.add_fixed_in_frame_mobjects(text3d) + self.play(Write(text3d[0])) + self.play(Write(text3d[1])) + self.begin_ambient_camera_rotation(rate=0.2) + self.wait(3) + self.move_camera(phi=0 * DEGREES,theta=180*DEGREES,run_time=3) + self.wait(3) + self.move_camera(phi=110* DEGREES,theta=90*DEGREES,run_time=3) + self.wait(3) + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_level_curves.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_level_curves.py new file mode 100644 index 0000000..2b6f719 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file4_level_curves.py @@ -0,0 +1,118 @@ +from manimlib.imports import * + +class LevelCurves(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + u*np.cos(v), + u*np.sin(v), + -u*u+2 + ]),u_min=-1.414,u_max=1.414,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + plane_0 = Polygon(np.array([2,-2,0]),np.array([2,2,0]),np.array([-2,2,0]),np.array([-2,-2,0]),np.array([2,-2,0]), color = BLUE_E, fill_color = BLUE_E, fill_opacity = 0.3) + plane_0_lab = TextMobject("C = 0").move_to(0.4*UP+3.2*RIGHT).set_color(BLUE_E).scale(0.6) + circle_0 = Circle(radius = 1.414 , color = BLUE_E) + circle_0_lab = TextMobject("0").move_to(1.1*DOWN+1.1*RIGHT).set_color(BLUE_E).scale(0.6) + + plane_0_5 = Polygon(np.array([2,-2,0.5]),np.array([2,2,0.5]),np.array([-2,2,0.5]),np.array([-2,-2,0.5]),np.array([2,-2,0.5]), color = GREEN_C, fill_color = GREEN_C, fill_opacity = 0.3) + plane_0_5_lab = TextMobject("C = 0.5").move_to(0.8*UP+3.4*RIGHT).set_color(GREEN_C).scale(0.6) + circle_0_5 = Circle(radius = 1.224 , color = GREEN_C) + circle_0_5_lab = TextMobject("0.5").move_to(0.9*DOWN+0.9*RIGHT).set_color(GREEN_C).scale(0.6) + circle_0_5_copy = circle_0_5.copy().move_to(np.array([0,0,0.5])) + + plane_1 = Polygon(np.array([2,-2,1]),np.array([2,2,1]),np.array([-2,2,1]),np.array([-2,-2,1]),np.array([2,-2,1]), color = YELLOW_C, fill_color = YELLOW_C, fill_opacity = 0.3) + plane_1_lab = TextMobject("C = 1").move_to(1.2*UP+3.3*RIGHT).set_color(YELLOW_C).scale(0.6) + circle_1 = Circle(radius = 1 , color = YELLOW_C) + circle_1_lab = TextMobject("1").move_to(0.7*DOWN+0.7*RIGHT).set_color(YELLOW_C).scale(0.6) + circle_1_copy = circle_1.copy().move_to(np.array([0,0,1])) + + plane_1_5 = Polygon(np.array([2,-2,1.5]),np.array([2,2,1.5]),np.array([-2,2,1.5]),np.array([-2,-2,1.5]),np.array([2,-2,1.5]), color = ORANGE, fill_color = ORANGE, fill_opacity = 0.3) + plane_1_5_lab = TextMobject("C = 1.5").move_to(1.7*UP+3.4*RIGHT).set_color(ORANGE).scale(0.6) + circle_1_5 = Circle(radius = 0.707 , color = ORANGE) + circle_1_5_lab = TextMobject("1.5").move_to(0.5*DOWN+0.5*RIGHT).set_color(ORANGE).scale(0.6) + circle_1_5_copy = circle_1_5.copy().move_to(np.array([0,0,1.5])) + + plane_2 = Polygon(np.array([2,-2,2]),np.array([2,2,2]),np.array([-2,2,2]),np.array([-2,-2,2]),np.array([2,-2,2]), color = RED_C, fill_color = RED_C, fill_opacity = 0.3) + plane_2_lab = TextMobject("C = 2").move_to(2.1*UP+3.3*RIGHT).set_color(RED_C).scale(0.6) + dot_2 = Dot().set_fill(RED_C) + circle_2_lab = TextMobject("2").move_to(0.2*DOWN+0.2*RIGHT).set_color(RED_C).scale(0.6) + dot_2_copy = dot_2.copy().move_to(np.array([0,0,2])) + + level_curves_line1 = DashedLine(np.array([0,-1.414,0]),np.array([0,-2,1]), color = WHITE) + level_curves_line2 = DashedLine(np.array([0,-1.224,0.5]),np.array([0,-2,1]), color = WHITE) + level_curves_line3 = DashedLine(np.array([0,-1,1]),np.array([0,-2,1]), color = WHITE) + level_curves_line4 = DashedLine(np.array([0,-0.707,1.5]),np.array([0,-2,1]), color = WHITE) + level_curves_line5 = DashedLine(np.array([0,0,2]),np.array([0,-2,1]), color = WHITE) + + level_curves = TextMobject("Level Curves").move_to(1.4*UP+3*LEFT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE).scale(0.8) + + + contour_line1 = DashedLine(np.array([0,-1.414,0]),np.array([0,-2,1]), color = WHITE) + contour_line2 = DashedLine(np.array([0,-1.224,0]),np.array([0,-2,1]), color = WHITE) + contour_line3 = DashedLine(np.array([0,-1,0]),np.array([0,-2,1]), color = WHITE) + contour_line4 = DashedLine(np.array([0,-0.707,0]),np.array([0,-2,1]), color = WHITE) + contour_line5 = DashedLine(np.array([0,0,0]),np.array([0,-2,1]), color = WHITE) + + contours = TextMobject("Contours").move_to(1.4*UP+2.7*LEFT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE).scale(0.8) + + + topic = TextMobject("Contour Plot").move_to(3*UP+3*LEFT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE).scale(0.8) + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + #self.set_camera_orientation(phi=0 * DEGREES, theta = 0*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(Write(paraboloid)) + self.wait() + self.play(ShowCreation(plane_0), ShowCreation(circle_0)) + self.add_fixed_in_frame_mobjects(plane_0_lab) + self.wait() + self.play(ShowCreation(plane_0_5), ShowCreation(circle_0_5_copy), ShowCreation(circle_0_5)) + self.add_fixed_in_frame_mobjects(plane_0_5_lab) + self.wait() + self.play(ShowCreation(plane_1), ShowCreation(circle_1_copy), ShowCreation(circle_1)) + self.add_fixed_in_frame_mobjects(plane_1_lab) + self.wait() + self.play(ShowCreation(plane_1_5), ShowCreation(circle_1_5_copy), ShowCreation(circle_1_5)) + self.add_fixed_in_frame_mobjects(plane_1_5_lab) + self.wait() + self.play(ShowCreation(plane_2), ShowCreation(dot_2_copy), ShowCreation(dot_2)) + self.add_fixed_in_frame_mobjects(plane_2_lab) + self.wait() + + self.move_camera(phi=60 * DEGREES, theta = 30*DEGREES,run_time=3) + self.play(FadeOut(plane_0), FadeOut(plane_0_lab), FadeOut(plane_0_5), FadeOut(plane_0_5_lab), FadeOut(plane_1), FadeOut(plane_1_lab), FadeOut(plane_1_5), FadeOut(plane_1_5_lab), FadeOut(plane_2), FadeOut(plane_2_lab)) + + self.play(GrowArrow(level_curves_line1), GrowArrow(level_curves_line2), GrowArrow(level_curves_line3), GrowArrow(level_curves_line4), GrowArrow(level_curves_line5)) + self.add_fixed_in_frame_mobjects(level_curves) + self.wait() + self.play(FadeOut(level_curves_line1), FadeOut(level_curves_line2), FadeOut(level_curves_line3), FadeOut(level_curves_line4), FadeOut(level_curves_line5), FadeOut(level_curves)) + self.play(FadeOut(circle_0_5_copy), FadeOut(circle_1_copy), FadeOut(circle_1_5_copy), FadeOut(dot_2_copy)) + self.wait() + + self.play(GrowArrow(contour_line1), GrowArrow(contour_line2), GrowArrow(contour_line3), GrowArrow(contour_line4), GrowArrow(contour_line5)) + self.add_fixed_in_frame_mobjects(contours) + self.wait() + self.play(FadeOut(contour_line1), FadeOut(contour_line2), FadeOut(contour_line3), FadeOut(contour_line4), FadeOut(contour_line5), FadeOut(contours)) + + + self.move_camera(phi=0 * DEGREES, theta = 0*DEGREES,run_time=3) + self.play(FadeOut(paraboloid)) + self.wait() + + self.add_fixed_in_frame_mobjects(circle_0_lab, circle_0_5_lab, circle_1_lab, circle_1_5_lab,circle_2_lab) + self.add_fixed_in_frame_mobjects(topic) + self.wait(3) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file5_level_surface.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file5_level_surface.py new file mode 100644 index 0000000..8052676 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file5_level_surface.py @@ -0,0 +1,78 @@ +from manimlib.imports import * + +class LevelSurface(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + surface_0 = ParametricSurface( + lambda u, v: np.array([ + u*np.cos(v), + u*np.sin(v), + (u*u*np.cos(v)*np.cos(v))-(u*np.sin(v)/5)+0 + ]),u_min=-1,u_max=1,v_min=0,v_max=2*PI,checkerboard_colors=[RED_C, RED_E], + resolution=(15, 32)).scale(1) + + k_0 = TextMobject("K = 0", color = RED_C).scale(0.7) + + surface_1 = ParametricSurface( + lambda u, v: np.array([ + u*np.cos(v), + u*np.sin(v), + (u*u*np.cos(v)*np.cos(v))-(u*np.sin(v)/5)+1 + ]),u_min=-1,u_max=1,v_min=0,v_max=2*PI,checkerboard_colors=[GREEN_C, GREEN_E], + resolution=(15, 32)).scale(1) + + k_1 = TextMobject("K = 1", color = GREEN_C).scale(0.7) + + surface_2 = ParametricSurface( + lambda u, v: np.array([ + u*np.cos(v), + u*np.sin(v), + (u*u*np.cos(v)*np.cos(v))-(u*np.sin(v)/5)+2 + ]),u_min=-1,u_max=1,v_min=0,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + k_2 = TextMobject("K = 2", color = YELLOW_C).scale(0.7) + + func = TextMobject(r"$w = g(x,y,z)$", r"$= z - f(x,y)$", r"$z-x^2+y/5 = K$") + func.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.set_camera_orientation(phi=90 * DEGREES, theta = 90*DEGREES) + self.begin_ambient_camera_rotation(rate=0.3) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(Write(surface_0)) + self.add_fixed_in_frame_mobjects(k_0) + k_0.move_to(np.array([1.4*RIGHT ])) + + self.play(Write(surface_1)) + self.add_fixed_in_frame_mobjects(k_1) + k_1.move_to(np.array([1.4*RIGHT + 1*UP])) + + self.play(Write(surface_2)) + self.add_fixed_in_frame_mobjects(k_2) + k_2.move_to(np.array([1.4*RIGHT + 2*UP])) + self.wait() + + self.add_fixed_in_frame_mobjects(func) + func[0].move_to(np.array([4.5*LEFT + 3*UP])) + func[1].move_to(np.array([4.5*LEFT + 2.5*UP])) + func[2].move_to(np.array([4.5*LEFT + 2*UP])) + + self.wait(3) + self.move_camera(phi=60 * DEGREES,run_time=3) + self.wait(2) + + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file6_scalar_function_application.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file6_scalar_function_application.py new file mode 100644 index 0000000..3ccfad6 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file6_scalar_function_application.py @@ -0,0 +1,140 @@ +from manimlib.imports import * + +class ScalarApplication(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + cube = Cube() + cube.set_fill(YELLOW_C, opacity = 0.2) + cube.scale(2) + self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) + self.play(ShowCreation(cube)) + + dot = Sphere() + dot.scale(0.1) + dot.move_to(np.array([1,0.5,1])) + dot.set_fill(RED) + + #dot = Dot(np.array([1,0.5,1]), color = RED) + temp_func = TextMobject("T(x,y,z)") + temp_func.next_to(dot,RIGHT) + temp_func.set_color(RED) + temp_func_trans = TextMobject("T(1,0.5,1)") + temp_func_trans.next_to(dot,RIGHT) + temp_func_trans.set_color(RED) + temp = TextMobject(r"$36 ^\circ$") + temp.next_to(dot,RIGHT) + temp.set_color(RED_E) + + + self.play(ShowCreation(dot)) + self.play(ShowCreation(temp_func)) + self.play(Transform(temp_func, temp_func_trans)) + self.wait(1) + self.play(Transform(temp_func, temp)) + + + + + dot1 = Sphere() + dot1.scale(0.1) + dot1.move_to(np.array([-1,-0.8,-1.5])) + dot1.set_fill(BLUE_E) + #dot1 = Dot(np.array([-1,-0.8,-1.5]), color = BLUE) + temp_func1 = TextMobject("T(x,y,z)") + temp_func1.next_to(dot1,LEFT) + temp_func1.set_color(BLUE) + temp_func_trans1 = TextMobject("T(-1,-0.8,-1.5)") + temp_func_trans1.next_to(dot1,LEFT) + temp_func_trans1.set_color(BLUE) + temp1 = TextMobject(r"$24 ^\circ$") + temp1.next_to(dot1,LEFT) + temp1.set_color(BLUE) + + self.play(ShowCreation(dot1)) + self.play(ShowCreation(temp_func1)) + self.play(Transform(temp_func1, temp_func_trans1)) + self.wait(1) + self.play(Transform(temp_func1, temp1)) + + self.play(FadeOut(temp_func)) + self.play(FadeOut(temp_func1)) + + + self.move_camera(phi=80* DEGREES,theta=45*DEGREES,run_time=3) + + self.begin_ambient_camera_rotation(rate=0.2) + self.wait(4) + self.stop_ambient_camera_rotation() + self.wait(2) + + + + +class AddTempScale(Scene): + def construct(self): + temp_scale = ImageMobject("tempscale.png") + temp_scale.scale(4) + temp_scale.move_to(2*RIGHT) + self.play(ShowCreation(temp_scale)) + + + temp_func = TextMobject("T(x,y,z)") + temp_func.move_to(3*UP +2*LEFT) + temp_func.set_color(RED) + temp_func_trans = TextMobject("T(1,0.5,1)") + temp_func_trans.move_to(3*UP +2*LEFT) + temp_func_trans.set_color(RED) + temp = TextMobject(r"$36 ^\circ$") + temp.set_color(RED) + temp.move_to(3*UP +2*LEFT) + temp.scale(0.7) + + self.play(ShowCreation(temp_func)) + self.play(Transform(temp_func, temp_func_trans)) + self.wait(1) + self.play(Transform(temp_func, temp)) + self.play(ApplyMethod(temp_func.move_to, 1.8*UP +1.8*RIGHT)) + + + temp_func1 = TextMobject("T(x,y,z)") + temp_func1.move_to(2*UP +2*LEFT) + temp_func1.set_color(BLUE) + temp_func_trans1 = TextMobject("T(-1,-0.8,-1.5)") + temp_func_trans1.move_to(2*UP +2*LEFT) + temp_func_trans1.set_color(BLUE) + temp1 = TextMobject(r"$24 ^\circ$") + temp1.set_color(BLUE) + temp1.move_to(2*UP +2*LEFT) + temp1.scale(0.7) + + self.play(ShowCreation(temp_func1)) + self.play(Transform(temp_func1, temp_func_trans1)) + self.wait(1) + self.play(Transform(temp_func1, temp1)) + self.play(ApplyMethod(temp_func1.move_to, 0.6*UP +1.8*RIGHT)) + + + + transtext = TextMobject("Scalar Function Transform:") + transtext.set_color(GREEN) + transtext1 = TextMobject(r"$\mathbb{R}^3 \rightarrow \mathbb{R}$") + transtext1.set_color(YELLOW_E) + transtext.move_to(3*UP +3*LEFT) + transtext1.next_to(transtext,DOWN) + self.play(Write(transtext)) + self.play(Write(transtext1)) + self.wait(2) + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file7_neural_nets.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file7_neural_nets.py new file mode 100644 index 0000000..eb6bf45 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/file7_neural_nets.py @@ -0,0 +1,177 @@ +from manimlib.imports import * + +class SigmoidFunc(GraphScene): + CONFIG = { + "x_min": -4, + "x_max": 4, + "y_min": -1, + "y_max": 1, + "graph_origin": ORIGIN + 0.8*DOWN, + "x_labeled_nums": list(range(-4, 5)), + "y_labeled_nums": list(range(-1, 2)), + "y_axis_height": 4.5, + } + def construct(self): + XTD = self.x_axis_width/(self.x_max- self.x_min) + YTD = self.y_axis_height/(self.y_max- self.y_min) + + topic = TextMobject("Sigmoid Function") + topic.move_to(3.2*UP) + topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.setup_axes(animate = True) + sigmoid_func = self.get_graph(lambda x : (1/(1 + np.exp(-x))), x_min = -4, x_max = 4) + sigmoid_lab = self.get_graph_label(sigmoid_func, label = r"\frac{1}{1 + e^{-z}}") + + + + + self.play(ShowCreation(sigmoid_func),Write(sigmoid_lab)) + self.play(Write(topic)) + self.wait(2) + self.play(FadeOut(sigmoid_func), FadeOut(sigmoid_lab)) + self.wait(1) + + + +class NeuralNet(GraphScene): + def construct(self): + + sigmoid_exp = TextMobject(r"g(z) = g($\theta^T$ X) = $\frac{1}{1 + e^{-z}}$") + sigmoid_exp.move_to(3*UP + 4*LEFT) + sigmoid_exp.scale(0.8) + sigmoid_exp.set_color(BLUE) + sigmoid_exp1 = TextMobject(r"Predict: 'y = 1'",r"When g(z) $\geq$ 0.5, z $\geq$ 0, $\theta^T$ X $\geq$ 0") + sigmoid_exp2 = TextMobject(r"Predict: 'y = 0'", r"When g(z) $\leq$ 0.5, z $\leq$ 0, $\theta^T$ X $\leq$ 0") + sigmoid_exp1.scale(0.5) + sigmoid_exp2.scale(0.5) + sigmoid_exp1.set_color(PURPLE) + sigmoid_exp2.set_color(PURPLE) + + sigmoid_exp1[0].next_to(sigmoid_exp, 1.5*DOWN) + sigmoid_exp1[1].next_to(sigmoid_exp1[0], DOWN) + sigmoid_exp2[0].next_to(sigmoid_exp1[1], 1.5*DOWN) + sigmoid_exp2[1].next_to(sigmoid_exp2[0], DOWN) + + + self.play(Write(sigmoid_exp)) + self.play(Write(sigmoid_exp1[0]), Write(sigmoid_exp1[1])) + self.play(Write(sigmoid_exp2[0]), Write(sigmoid_exp2[1])) + self.wait(2) + + + neuron1 = Circle() + neuron1.set_fill(YELLOW_A, opacity = 0.5) + + neuron2 = Circle() + neuron2.set_fill(ORANGE, opacity = 0.5) + + neuron3 = Circle() + neuron3.set_fill(GREEN_E, opacity = 0.5) + + neuron1.move_to(2*UP+RIGHT) + neuron2.move_to(2*DOWN+RIGHT) + neuron3.move_to(4*RIGHT) + + arrow1 = Arrow(neuron1.get_right(),neuron3.get_left(),buff=0.1) + arrow1.set_color(RED) + arrow2 = Arrow(neuron2.get_right(),neuron3.get_left(),buff=0.1) + arrow2.set_color(RED) + + arrow3 = Arrow(neuron3.get_right(),7*RIGHT,buff=0.1) + arrow3.set_color(RED) + + + sign1 = TextMobject("+1") + sign1.move_to(2*UP+RIGHT) + sign1.scale(2) + sign2 = TextMobject(r"$x_1$") + sign2.move_to(2*DOWN+RIGHT) + sign2.scale(2) + sign3 = TextMobject(r"$h_{\theta}(x)$") + sign3.move_to(6*RIGHT+0.4*DOWN) + sign3.scale(0.7) + sign4 = TextMobject(r"$= g(10 - 20x_1)$") + sign4.next_to(sign3,DOWN) + sign4.scale(0.5) + sign5 = TextMobject(r"$= g(10 - 20x_1)$") + sign5.next_to(sign3,DOWN) + sign5.scale(0.5) + sign6 = TextMobject(r"$= g(10 - 20x_1)$") + sign6.next_to(sign3,DOWN) + sign6.scale(0.5) + + + weight1 = TextMobject("10") + weight1.next_to(arrow1,UP) + weight2 = TextMobject("-20") + weight2.next_to(arrow2,DOWN) + + gate = TextMobject("NOT GATE") + gate.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + gate.scale(1.5) + gate.move_to(3*RIGHT+3.5*UP) + + + + truth_table = TextMobject(r"\begin{displaymath}\begin{array}{|c|c|} x & y\\ \hline 1 & 0 \\0 & 1 \\\end{array}\end{displaymath}") + truth_table.next_to(sigmoid_exp2[1], 3*DOWN) + + values = TextMobject("1", "0") + values.scale(2) + + sign4_trans1 = TextMobject(r"$= g(10 - 20(1))$") + sign4_trans2 = TextMobject(r"$= g(10 - 20(0))$") + sign4_trans1.next_to(sign3,DOWN) + sign4_trans2.next_to(sign3,DOWN) + sign4_trans1.scale(0.5) + sign4_trans2.scale(0.5) + + + + output1 = TextMobject("y = 0") + output2 = TextMobject("y = 1") + output1.next_to(sign4,DOWN) + output2.next_to(sign4,DOWN) + output1.scale(1.5) + output2.scale(1.5) + + + + self.play(ShowCreation(neuron1),ShowCreation(neuron2)) + self.play(ShowCreation(neuron3)) + self.play(ShowCreation(sign1),ShowCreation(sign2)) + self.wait(1) + + self.play(GrowArrow(arrow1)) + self.play(GrowArrow(arrow2)) + self.play(ShowCreation(weight1),ShowCreation(weight2)) + + + + self.play(GrowArrow(arrow3)) + self.play(Write(sign3),Write(sign4)) + + self.play(Write(gate)) + self.play(ShowCreation(truth_table)) + + self.play(ApplyMethod(values[0].move_to, 2*DOWN+RIGHT)) + self.play(FadeOut(values[0])) + self.play(Transform(sign4,sign4_trans1)) + self.play(Write(output1)) + self.wait(1) + self.play(FadeOut(output1)) + self.play(Transform(sign4, sign5)) + + + self.play(ApplyMethod(values[1].move_to, 2*DOWN+RIGHT)) + self.play(FadeOut(values[1])) + self.play(Transform(sign4,sign4_trans2)) + self.play(Write(output2)) + self.wait(1) + self.play(FadeOut(output2)) + self.play(Transform(sign4, sign6)) + + self.wait(2) + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif new file mode 100644 index 0000000..bea9c7b Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif new file mode 100644 index 0000000..6801e4f Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif differ 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..af9e536 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif new file mode 100644 index 0000000..b4ac106 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif new file mode 100644 index 0000000..e4dc80d Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif new file mode 100644 index 0000000..8bb176a Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif differ 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..9d24688 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 66fd4f1dd53f5a7c351ecb0982dadf02f093849f Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:07 +0530 Subject: Delete file5_derivative_vectorvf.py --- .../file5_derivative_vectorvf.py | 247 --------------------- 1 file changed, 247 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_derivative_vectorvf.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_derivative_vectorvf.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_derivative_vectorvf.py deleted file mode 100644 index 466e389..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_derivative_vectorvf.py +++ /dev/null @@ -1,247 +0,0 @@ -from manimlib.imports import * - -class Derivative(GraphScene): - CONFIG = { - "x_min": 0, - "x_max": 3, - "y_min": 0, - "y_max": 5, - "graph_origin": ORIGIN+6*LEFT+3*DOWN, - "x_axis_width": 6, - "x_labeled_nums": list(range(0, 4)), - "y_labeled_nums": list(range(0, 6)), - } - 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) - - graph = self.get_graph(lambda x : x*x, x_min = 0.5, x_max = 2, color = GREEN) - - point1 = Dot().shift(self.graph_origin+0.25*YTD*UP + 0.5*XTD*RIGHT) - point1_lab = TextMobject(r"$t = a$") - point1_lab.scale(0.7) - point1_lab.next_to(point1, RIGHT) - - point2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+4*YTD*UP) - point2_lab = TextMobject(r"$t = b$") - point2_lab.scale(0.7) - point2_lab.next_to(point2, RIGHT) - - - vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, buff=0.02, color = RED) - vector1_lab = TextMobject(r"$\vec r(t)$", color = RED) - vector1_lab.move_to(self.graph_origin+1.2*XTD*RIGHT+ 0.75*YTD*UP) - vector1_lab.scale(0.8) - - vector2 = Arrow(self.graph_origin, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = YELLOW_C) - vector2_lab = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) - vector2_lab.move_to(self.graph_origin+0.5*XTD*RIGHT+ 2*YTD*UP) - vector2_lab.scale(0.8) - - vector3 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PINK) - vector3_lab = TextMobject(r"$\vec r(t + h) - \vec r(t)$", color = PINK) - vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 1.5*YTD*UP) - vector3_lab.scale(0.8) - - - self.play(ShowCreation(graph)) - self.play(ShowCreation(point1), Write(point1_lab)) - self.play(ShowCreation(point2), Write(point2_lab)) - - self.play(GrowArrow(vector1),Write(vector1_lab)) - self.play(GrowArrow(vector2),Write(vector2_lab)) - self.play(GrowArrow(vector3),Write(vector3_lab)) - self.wait(1) - - self.display_text() - - self.play(ApplyMethod(vector3_lab.move_to,(self.graph_origin+2.3*XTD*RIGHT+ 2.2*YTD*UP))) - - vector4 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PURPLE) - vector4_lab = TextMobject(r"$dx$", color = PURPLE) - vector4_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 0.8*YTD*UP) - vector4_lab.scale(0.7) - - vector5 = Arrow(self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = ORANGE) - vector5_lab = TextMobject(r"$dy$", color = ORANGE) - vector5_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 1.4*YTD*UP) - vector5_lab.scale(0.7) - - self.play(GrowArrow(vector4),Write(vector4_lab)) - self.play(GrowArrow(vector5),Write(vector5_lab)) - self.wait(2) - - - - def display_text(self): - text1 = TextMobject(r"$\vec r(t)$",r"+", r"$\vec r(t + h) - \vec r(t)$") - text1[0].set_color(RED) - text1[2].set_color(PINK) - text1.scale(0.7) - - text2 = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) - text2.scale(0.7) - - text3 = TextMobject(r"$ \vec r(t + h) - \vec r(t)$", color = PINK) - text3.scale(0.7) - - text4 = TextMobject(r"[", r"$x(t+h)$", r"$\vec i$", r"+", r"$y(t+h)$", r"$\vec j$", r"$] - [$", r"$x(t)$", r"$\vec i$", r"+", r"y(t)", r"$\vec j$", r"]") - text4.set_color_by_tex(r"\vec i", BLUE) - text4.set_color_by_tex(r"\vec j", GREEN) - text4[1].set_color(YELLOW_C) - text4[4].set_color(YELLOW_C) - text4[-6].set_color(RED) - text4[-3].set_color(RED) - text4.scale(0.7) - - text5 = TextMobject(r"$[x(t+h) - x(t)]$", r"$\vec i$", r"+", r"$[y(t+h) + y(t)]$", r"$\vec j$") - text5.set_color_by_tex(r"\vec i", BLUE) - text5.set_color_by_tex(r"\vec j", GREEN) - text5[0].set_color(PURPLE) - text5[3].set_color(ORANGE) - text5.scale(0.7) - - text6 = TextMobject(r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") - text6.set_color_by_tex(r"\vec i", BLUE) - text6.set_color_by_tex(r"\vec j", GREEN) - text6[0].set_color(PINK) - text6[2].set_color(PURPLE) - text6[-2].set_color(ORANGE) - text6.scale(0.8) - - text7 = TextMobject(r"$\lim_{h \rightarrow 0}$", r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\lim_{h \rightarrow 0}$", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\lim_{h \rightarrow 0}$", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") - text7.set_color_by_tex(r"\vec i", BLUE) - text7.set_color_by_tex(r"\vec j", GREEN) - text7[1].set_color(PINK) - text7[4].set_color(PURPLE) - text7[-2].set_color(ORANGE) - text7.scale(0.6) - - text8 = TextMobject(r"$\vec r'(t)$", r"=",r"$\vec x'(t)$", r"$\vec i$", r"+", r"$\vec y'(t)$", r"$\vec j$") - text8.set_color_by_tex(r"\vec i", BLUE) - text8.set_color_by_tex(r"\vec j", GREEN) - text8[0].set_color(PINK) - text8[2].set_color(PURPLE) - text8[5].set_color(ORANGE) - text8.scale(0.7) - - text9 = TextMobject(r"$\frac{d \vec r}{dt}$", r"=", r"$\frac{d \vec x}{dt}$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}$", r"$\vec j$") - text9.set_color_by_tex(r"\vec i", BLUE) - text9.set_color_by_tex(r"\vec j", GREEN) - text9[0].set_color(PINK) - text9[2].set_color(PURPLE) - text9[5].set_color(ORANGE) - text9.scale(0.7) - - - text10 = TextMobject(r"$d \vec r$", r"=", r"$\frac{d \vec x}{dt}dt$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}dt$", r"$\vec j$") - text10.set_color_by_tex(r"\vec i", BLUE) - text10.set_color_by_tex(r"\vec j", GREEN) - text10[0].set_color(PINK) - text10[2].set_color(PURPLE) - text10[5].set_color(ORANGE) - text10.scale(0.7) - - text11 = TextMobject(r"$d \vec r$", r"=", r"$x'(t)dt$", r"$\vec i$", r"+", r"$y'(t)dt$", r"$\vec j$") - text11.set_color_by_tex(r"\vec i", BLUE) - text11.set_color_by_tex(r"\vec j", GREEN) - text11[0].set_color(PINK) - text11[2].set_color(PURPLE) - text11[5].set_color(ORANGE) - text11.scale(0.7) - - text12 = TextMobject(r"$d \vec r$", r"=", r"$dx$", r"$\vec i$", r"+", r"$dy$", r"$\vec j$") - text12.set_color_by_tex(r"\vec i", BLUE) - text12.set_color_by_tex(r"\vec j", GREEN) - text12[0].set_color(PINK) - text12[2].set_color(PURPLE) - text12[5].set_color(ORANGE) - text12.scale(0.7) - - - text1.move_to(1*UP+2.7*RIGHT) - text2.move_to(1*UP+2.7*RIGHT) - text3.move_to(1*UP+2.7*RIGHT) - text4.move_to(1*UP+2.7*RIGHT) - text5.move_to(1*UP+2.7*RIGHT) - text6.move_to(1*UP+2.7*RIGHT) - text7.move_to(1*UP+2.5*RIGHT) - text8.move_to(1*UP+2.7*RIGHT) - text9.move_to(1*UP+2.7*RIGHT) - text10.move_to(1*UP+2.7*RIGHT) - text11.move_to(1*UP+2.7*RIGHT) - text12.move_to(1*UP+2.7*RIGHT) - - brace1 = Brace(text7[0:2], DOWN, buff = SMALL_BUFF) - brace2 = Brace(text7[3:6], UP, buff = SMALL_BUFF) - brace3 = Brace(text7[7:], DOWN, buff = SMALL_BUFF) - t1 = brace1.get_text(r"$\vec r'(t)$") - t1.set_color(PINK) - - t2 = brace2.get_text(r"$\vec x'(t)$") - t2.set_color(PURPLE) - - t3 = brace3.get_text(r"$\vec y'(t)$") - t3.set_color(ORANGE) - - - self.play(Write(text1)) - self.play(Transform(text1, text2)) - self.wait(1) - - self.play(Transform(text1, text3)) - self.wait(1) - - self.play(Transform(text1, text4)) - self.wait(1) - - self.play(Transform(text1, text5)) - self.wait(1) - - self.play(Transform(text1, text6)) - self.wait(1) - - self.play(Transform(text1, text7)) - self.wait(1) - - self.play( - GrowFromCenter(brace1), - FadeIn(t1), - ) - self.wait() - self.play( - ReplacementTransform(brace1.copy(),brace2), - ReplacementTransform(t1.copy(),t2) - ) - self.wait() - self.play( - ReplacementTransform(brace2.copy(),brace3), - ReplacementTransform(t2.copy(),t3) - ) - self.wait() - - self.play(FadeOut(brace1), FadeOut(t1), FadeOut(brace2), FadeOut(t2), FadeOut(brace3), FadeOut(t3),) - self.wait() - - self.play(Transform(text1, text8)) - self.wait(1) - - self.play(Transform(text1, text9)) - self.wait(1) - - self.play(Transform(text1, text10)) - self.wait(1) - - self.play(Transform(text1, text11)) - self.wait(1) - - self.play(Transform(text1, text12)) - self.wait(1) - - - - - -- cgit From 7d4188468032a12da706d0a399fbc283953086cc Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:15 +0530 Subject: Delete file4_vectorvf_sine.py --- .../multivariable-functions/file4_vectorvf_sine.py | 91 ---------------------- 1 file changed, 91 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py deleted file mode 100644 index 06e225e..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py +++ /dev/null @@ -1,91 +0,0 @@ -from manimlib.imports import * - -class SineVectors(GraphScene): - CONFIG = { - "x_min": 0, - "x_max": 10, - "y_min": -1, - "y_max": 1, - "graph_origin": ORIGIN+4*LEFT, - #"x_labeled_nums": list(range(-5, 6)), - #"y_labeled_nums": list(range(0, 5)), - } - def construct(self): - - - - - - XTD = self.x_axis_width/(self.x_max - self.x_min) - YTD = self.y_axis_height/(self.y_max - self.y_min) - - self.setup_axes(animate = True) - - - sine1 = self.get_graph(lambda x : np.sin(x), x_min = 0, x_max = 1.575, color = GREEN) - - point1 = Dot().shift(self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT) - point1_lab = TextMobject(r"$t = (\frac{\pi}{2})$") - point1_lab.scale(0.7) - point1_lab.next_to(point1, UP) - - vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT, buff=0.1, color = RED) - vector1_lab = TextMobject(r"$r(\frac{\pi}{2})$", color = RED) - vector1_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.5*YTD*UP) - - self.play(GrowArrow(vector1),Write(vector1_lab)) - self.play(ShowCreation(point1), Write(point1_lab)) - self.play(ShowCreation(sine1)) - self.wait(1) - - - sine2 = self.get_graph(lambda x : np.sin(x), x_min = 1.575, x_max = 3.15, color = GREEN) - - point2 = Dot().shift(self.graph_origin+3.15*XTD*RIGHT) - point2_lab = TextMobject(r"$t = (\pi)$") - point2_lab.scale(0.7) - point2_lab.next_to(point2, UP+RIGHT) - - vector2 = Arrow(self.graph_origin, self.graph_origin+3.15*XTD*RIGHT, buff=0.1, color = BLUE) - vector2_lab = TextMobject(r"$r(\pi)$", color = BLUE) - vector2_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.15*YTD*UP) - - self.play(GrowArrow(vector2),Write(vector2_lab)) - self.play(ShowCreation(point2), Write(point2_lab)) - self.play(ShowCreation(sine2)) - self.wait(1) - - - sine3 = self.get_graph(lambda x : np.sin(x), x_min = 3.15, x_max = 4.725, color = GREEN) - - point3 = Dot().shift(self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT) - point3_lab = TextMobject(r"$t = (\frac{3\pi}{2})$") - point3_lab.scale(0.7) - point3_lab.next_to(point3, DOWN) - - vector3 = Arrow(self.graph_origin, self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT, buff=0.1, color = YELLOW_C) - vector3_lab = TextMobject(r"$r(\frac{3\pi}{2})$", color = YELLOW_C) - vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 0.7*YTD*DOWN) - - self.play(GrowArrow(vector3),Write(vector3_lab)) - self.play(ShowCreation(point3), Write(point3_lab)) - self.play(ShowCreation(sine3)) - self.wait(1) - - - sine4 = self.get_graph(lambda x : np.sin(x), x_min = 4.725, x_max = 6.3, color = GREEN) - - point4 = Dot().shift(self.graph_origin+6.3*XTD*RIGHT) - point4_lab = TextMobject(r"$t = (2\pi)$") - point4_lab.scale(0.7) - point4_lab.next_to(point4, UP+RIGHT) - - vector4 = Arrow(self.graph_origin, self.graph_origin+6.3*XTD*RIGHT, buff=0.1, color = PURPLE) - vector4_lab = TextMobject(r"$r(2\pi)$", color = PURPLE) - vector4_lab.move_to(self.graph_origin+4.5*XTD*RIGHT+ 0.15*YTD*DOWN) - - self.play(GrowArrow(vector4),Write(vector4_lab)) - self.play(ShowCreation(point4), Write(point4_lab)) - self.play(ShowCreation(sine4)) - self.wait(3) - -- cgit From 946d8fc0045c1c3c06215c6c1162a50186d5a181 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:24 +0530 Subject: Delete file3_plot_sphere.py --- .../multivariable-functions/file3_plot_sphere.py | 42 ---------------------- 1 file changed, 42 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_plot_sphere.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_plot_sphere.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_plot_sphere.py deleted file mode 100644 index baf08b1..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_plot_sphere.py +++ /dev/null @@ -1,42 +0,0 @@ -from manimlib.imports import * - -class Sphere(ThreeDScene): - def construct(self): - axes = ThreeDAxes() # creates a 3D Axis - - sphere = ParametricSurface( - lambda u, v: np.array([ - np.sin(u)*np.cos(v), - np.sin(u)*np.sin(v), - np.cos(u) - ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI,checkerboard_colors=[RED_D, RED_E], - resolution=(15, 32)).scale(2) - - - - #self.set_camera_orientation(phi=0 * DEGREES,theta=270*DEGREES) - - text3d = TextMobject(r"$f(x,y) \rightarrow Point(x,y,z)$") - text3d1 = TextMobject(r"$f(x,y) \rightarrow Point(x,y, 1 - x^2 - y^2)$") - self.add_fixed_in_frame_mobjects(text3d) - text3d.scale(0.7) - text3d1.scale(0.7) - text3d.to_corner(UL) - text3d1.to_corner(UL) - text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - text3d1.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - self.play(Write(text3d)) - self.wait(1) - - self.play(Transform(text3d,text3d1)) - self.add_fixed_in_frame_mobjects(text3d1) - self.play(FadeOut(text3d)) - - - self.set_camera_orientation(phi=75 * DEGREES) - self.begin_ambient_camera_rotation(rate=0.3) - - - self.add(axes) - self.play(Write(sphere)) - self.wait(5) \ No newline at end of file -- cgit From 9f6240ab54be048135ca89e8ef699f8529ec1ab2 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:34 +0530 Subject: Delete file2_multivariable_func_examples.py --- .../file2_multivariable_func_examples.py | 69 ---------------------- 1 file changed, 69 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_examples.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_examples.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_examples.py deleted file mode 100644 index 7322e47..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_examples.py +++ /dev/null @@ -1,69 +0,0 @@ -from manimlib.imports import * - -class Examples(GraphScene): - def construct(self): - - rectangle = Rectangle(height = 3, width = 4, color = GREEN) - square = Square(side_length = 5, color = PURPLE) - circle = Circle(radius = 2, color = PINK) - radius = Line(ORIGIN,2*RIGHT) - - radius.set_color(RED) - - rectangle_area_func = TextMobject(r"$Area = f(Length, Breadth)$") - rectangle_area_func.scale(0.6) - square_area_func = TextMobject(r"$Area = f(Length)$") - circle_area_func = TextMobject(r"$Area = f(r)$") - - - rectangle_area = TextMobject(r"$Area = Length \times Breadth$") - rectangle_area.scale(0.6) - square_area = TextMobject(r"$Area = Length^2$") - circle_area = TextMobject(r"$Area = \pi r^2$") - - braces_rect1 = Brace(rectangle, LEFT) - eq_text1 = braces_rect1.get_text("Length") - braces_rect2 = Brace(rectangle, UP) - eq_text2 = braces_rect2.get_text("Breadth") - - braces_square = Brace(square, LEFT) - braces_square_text = braces_square.get_text("Length") - - radius_text = TextMobject("r") - radius_text.next_to(radius,UP) - - - - self.play(ShowCreation(rectangle)) - self.wait(1) - self.play(GrowFromCenter(braces_rect1),Write(eq_text1),GrowFromCenter(braces_rect2),Write(eq_text2)) - self.wait(1) - self.play(Write(rectangle_area_func)) - self.wait(1) - self.play(Transform(rectangle_area_func, rectangle_area)) - self.wait(1) - self.play(FadeOut(braces_rect1),FadeOut(eq_text1),FadeOut(braces_rect2),FadeOut(eq_text2),FadeOut(rectangle_area_func)) - - - self.play(Transform(rectangle, square)) - self.wait(1) - self.play(GrowFromCenter(braces_square),Write(braces_square_text)) - self.wait(1) - self.play(Write(square_area_func)) - self.wait(1) - self.play(Transform(square_area_func, square_area)) - self.wait(1) - self.play(FadeOut(braces_square),FadeOut(braces_square_text),FadeOut(square_area_func)) - - - self.play(Transform(rectangle, circle)) - self.wait(1) - self.play(ShowCreation(radius),Write(radius_text)) - self.wait(1) - self.play(FadeOut(radius_text),FadeOut(radius)) - self.wait(1) - self.play(Write(circle_area_func)) - self.wait(1) - self.play(Transform(circle_area_func, circle_area)) - self.wait(1) - self.play(FadeOut(circle_area_func)) \ No newline at end of file -- cgit From ffdc001d58172fcc7780ed217a7d505cc49e9c3a Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:43 +0530 Subject: Delete file1_multivariable_func_respresentation.py --- .../file1_multivariable_func_respresentation.py | 80 ---------------------- 1 file changed, 80 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivariable_func_respresentation.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivariable_func_respresentation.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivariable_func_respresentation.py deleted file mode 100644 index 4bfcf21..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivariable_func_respresentation.py +++ /dev/null @@ -1,80 +0,0 @@ -from manimlib.imports import * - -class MultivariableFunc(Scene): - def construct(self): - - topic = TextMobject("Multivariable Functions") - topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - topic.scale(2) - - self.play(Write(topic)) - self.wait(1) - self.play(FadeOut(topic)) - - - circle = Circle() - circle.scale(3) - - eqn1 = TextMobject(r"f(x,y) = $x^2y$") - eqn1.set_color(YELLOW) - - - - number1 = TextMobject("(2,1)") - number1.move_to(3*UP+ 3*LEFT) - number1.scale(1.2) - number1.set_color(GREEN) - - output1 = TextMobject("4") - output1.scale(1.5) - output1.set_color(BLUE) - - eqn1_1 = TextMobject(r"f(2,1) = $2^2(1)$") - eqn1_1.set_color(YELLOW) - - - self.play(ShowCreation(circle),Write(eqn1)) - self.wait(1) - self.play(ApplyMethod(number1.move_to, 0.6*LEFT)) - self.play(FadeOut(number1)) - self.play(Transform(eqn1, eqn1_1)) - self.wait(1) - self.play(ApplyMethod(output1.move_to, 3*DOWN+4*RIGHT)) - self.wait(1) - self.play(FadeOut(output1)) - - - eqn2 = TextMobject(r"f(x,y,z) = $x^2y+2yz$") - eqn2.set_color(YELLOW) - - number2 = TextMobject("(2,1,3)") - number2.move_to(3*UP+ 3*LEFT) - number2.scale(1.2) - number2.set_color(GREEN) - - output2 = TextMobject("8") - output2.scale(1.5) - output2.set_color(BLUE) - - eqn2_1 = TextMobject(r"f(2,1,3) = $2^2(1) + 2(1)(3)$") - eqn2_1.set_color(YELLOW) - - eqn2_2 = TextMobject(r"f(2,1,3) = $2 + 6$") - eqn2_2.set_color(YELLOW) - - - - self.play(FadeOut(eqn1)) - self.play(Write(eqn2)) - - self.wait(1) - self.play(ApplyMethod(number2.move_to, 1.2*LEFT)) - self.play(FadeOut(number2)) - self.play(Transform(eqn2, eqn2_1)) - self.wait(1) - self.play(Transform(eqn2, eqn2_2)) - self.wait(1) - self.play(ApplyMethod(output2.move_to, 3*DOWN+4*RIGHT)) - self.wait(1) - self.play(FadeOut(output2),FadeOut(eqn2),FadeOut(circle)) - self.wait(2) \ No newline at end of file -- cgit From 6b1487fd28d9af85aa9b4429b59389b605dfcc08 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:49:52 +0530 Subject: Delete Multivariable_Functions_Quiz.pdf --- .../Multivariable_Functions_Quiz.pdf | Bin 109631 -> 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/Multivariable_Functions_Quiz.pdf (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf deleted file mode 100644 index 7895843..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf and /dev/null differ -- cgit From 8c5eb67d3577371cab23cfffa2e7c3a15fc56d31 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:50:04 +0530 Subject: Delete file5_derivative_vectorvf.gif --- .../gifs/file5_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/file5_derivative_vectorvf.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_derivative_vectorvf.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_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/file5_derivative_vectorvf.gif and /dev/null differ -- cgit From 283a05db74c34e2c4851aeee7b5c4c7c74b3e96d Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:50:13 +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 (limited to 'FSF-2020/calculus-of-several-variables') 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 b4dfe9014cae587cf82c1012fae2a94c26c399d7 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:50:22 +0530 Subject: Delete file3_plot_sphere.gif --- .../multivariable-functions/gifs/file3_plot_sphere.gif | Bin 198324 -> 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/file3_plot_sphere.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_plot_sphere.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_plot_sphere.gif deleted file mode 100644 index ad7582c..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_plot_sphere.gif and /dev/null differ -- cgit From 31739ab0347e245cca151e48eeeb5e2ed8ef4deb Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:50:34 +0530 Subject: Delete file2_multivariable_func_examples.gif --- .../gifs/file2_multivariable_func_examples.gif | Bin 57945 -> 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_examples.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_examples.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_examples.gif deleted file mode 100644 index 11f66f1..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_examples.gif and /dev/null differ -- cgit From 92df3de59cc230d962d300f49a9fab5cda9031ea Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:50:42 +0530 Subject: Delete file1_multivariable_func_respresentation.gif --- .../gifs/file1_multivariable_func_respresentation.gif | Bin 73055 -> 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/file1_multivariable_func_respresentation.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivariable_func_respresentation.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivariable_func_respresentation.gif deleted file mode 100644 index a173bda..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivariable_func_respresentation.gif and /dev/null differ -- cgit From 086e7f793e9ded164dac46ad5217ea733cedb2b9 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:52:44 +0530 Subject: Added updated multivariable-functions folder --- .../Multivariable_Functions_Quiz.pdf | Bin 0 -> 109631 bytes .../file1_multivar_func_examples.py | 167 ++++++++++++++ .../file2_multivariable_func_respresentation.py | 98 ++++++++ .../multivariable-functions/file3_sphere.py | 177 +++++++++++++++ .../multivariable-functions/file4_vectorvf_sine.py | 91 ++++++++ .../file5_vectorvf_helix.py | 92 ++++++++ .../file6_derivative_vectorvf.py | 247 +++++++++++++++++++++ .../gifs/file1_multivar_func_examples.gif | Bin 0 -> 1440511 bytes .../file2_multivariable_func_respresentation.gif | Bin 0 -> 664757 bytes .../multivariable-functions/gifs/file3_sphere.gif | Bin 0 -> 5971004 bytes .../gifs/file4_vectorvf_sine.gif | Bin 0 -> 29814 bytes .../gifs/file5_vectorvf_helix.gif | Bin 0 -> 654632 bytes .../gifs/file6_derivative_vectorvf.gif | Bin 0 -> 117597 bytes 13 files changed, 872 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivar_func_examples.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_respresentation.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_sphere.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_vectorvf_helix.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file6_derivative_vectorvf.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivar_func_examples.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file2_multivariable_func_respresentation.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_sphere.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file4_vectorvf_sine.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_vectorvf_helix.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file6_derivative_vectorvf.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf new file mode 100644 index 0000000..7895843 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/Multivariable_Functions_Quiz.pdf differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivar_func_examples.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivar_func_examples.py new file mode 100644 index 0000000..55b2b7e --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file1_multivar_func_examples.py @@ -0,0 +1,167 @@ +from manimlib.imports import * + +class Examples1(GraphScene): + def construct(self): + + rectangle = Rectangle(height = 3, width = 4, color = GREEN) + rectangle_area_func = TexMobject("Area", "=", "f(", "Length", ",", "Breadth", ")").scale(0.6) + rectangle_area_func[0].set_color(RED_C) + rectangle_area_func[2].set_color(ORANGE) + rectangle_area_func[3].set_color(YELLOW_C) + rectangle_area_func[5].set_color(BLUE_C) + rectangle_area_func[6].set_color(ORANGE) + + + rectangle_area = TexMobject("Area", "=", "Length", "\\times", "Breadth").scale(0.6) + rectangle_area[0].set_color(RED_C) + rectangle_area[2].set_color(YELLOW_C) + rectangle_area[4].set_color(BLUE_C) + + + square = Square(side_length = 5, color = PURPLE) + square_area_func = TexMobject("Area", "=", "f(", "Length", ")") + square_area_func[0].set_color(GREEN_C) + square_area_func[2].set_color(ORANGE) + square_area_func[3].set_color(BLUE_C) + square_area_func[4].set_color(ORANGE) + + square_area = TexMobject("Area", "=", "Length^2") + square_area[0].set_color(GREEN_C) + square_area[2].set_color(BLUE_C) + + + circle = Circle(radius = 2, color = PINK) + circle_area_func = TexMobject("Area", "=", "f(", "r", ")") + circle_area_func[0].set_color(YELLOW_C) + circle_area_func[2].set_color(ORANGE) + circle_area_func[3].set_color(GREEN_C) + circle_area_func[4].set_color(ORANGE) + + circle_area = TexMobject("Area", "=", "\\pi", "r^2") + circle_area[0].set_color(YELLOW_C) + circle_area[2].set_color(BLUE_C) + circle_area[3].set_color(GREEN_C) + + radius = Line(ORIGIN,2*RIGHT, color = RED_C) + + + + braces_rect1 = Brace(rectangle, LEFT) + eq_text1 = braces_rect1.get_text("Length").set_color(YELLOW_C) + braces_rect2 = Brace(rectangle, UP) + eq_text2 = braces_rect2.get_text("Breadth").set_color(BLUE_C) + + braces_square = Brace(square, LEFT) + braces_square_text = braces_square.get_text("Length").set_color(BLUE_C) + + radius_text = TexMobject("r", color = GREEN_C).next_to(radius,UP) + + + + self.play(ShowCreation(rectangle)) + self.wait(1) + self.play(GrowFromCenter(braces_rect1),Write(eq_text1),GrowFromCenter(braces_rect2),Write(eq_text2)) + self.wait(1) + self.play(Write(rectangle_area_func)) + self.wait(1) + self.play(Transform(rectangle_area_func, rectangle_area)) + self.wait(1) + self.play(FadeOut(braces_rect1),FadeOut(eq_text1),FadeOut(braces_rect2),FadeOut(eq_text2),FadeOut(rectangle_area_func)) + + + self.play(Transform(rectangle, square)) + self.wait(1) + self.play(GrowFromCenter(braces_square),Write(braces_square_text)) + self.wait(1) + self.play(Write(square_area_func)) + self.wait(1) + self.play(Transform(square_area_func, square_area)) + self.wait(1) + self.play(FadeOut(braces_square),FadeOut(braces_square_text),FadeOut(square_area_func)) + + + self.play(Transform(rectangle, circle)) + self.wait(1) + self.play(ShowCreation(radius),Write(radius_text)) + self.wait(1) + self.play(FadeOut(radius_text),FadeOut(radius)) + self.wait(1) + self.play(Write(circle_area_func)) + self.wait(1) + self.play(Transform(circle_area_func, circle_area)) + self.wait(1) + self.play(FadeOut(circle_area_func)) + + + +class Examples2(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + rectangle_x_y_0 = Polygon(np.array([-1,-2,0]),np.array([-1,2,0]),np.array([1,2,0]),np.array([1,-2,0]),np.array([-1,-2,0]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + rectangle_x_y_3 = Polygon(np.array([-1,-2,3]),np.array([-1,2,3]),np.array([1,2,3]),np.array([1,-2,3]),np.array([-1,-2,3]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + + rectangle_y_z_1 = Polygon(np.array([1,-2,3]),np.array([1,2,3]),np.array([1,2,0]),np.array([1,-2,0]),np.array([1,-2,3]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + rectangle_y_z_minus_1 = Polygon(np.array([-1,-2,3]),np.array([-1,2,3]),np.array([-1,2,0]),np.array([-1,-2,0]),np.array([-1,-2,3]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + + rectangle_x_z_2 = Polygon(np.array([1,2,3]),np.array([-1,2,3]),np.array([-1,2,0]),np.array([1,2,0]),np.array([1,2,3]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + rectangle_x_z_minus_2 = Polygon(np.array([1,-2,3]),np.array([-1,-2,3]),np.array([-1,-2,0]),np.array([1,-2,0]),np.array([1,-2,3]), color = RED_E, fill_color = RED_C, fill_opacity = 0.1) + + box = VGroup(rectangle_x_y_0, rectangle_x_y_3, rectangle_y_z_1, rectangle_y_z_minus_1, rectangle_x_z_2, rectangle_x_z_minus_2) + + braces_rectangle_x_y_0 = Line(np.array([1,2,0]), np.array([1,-2,0]), color = BLUE_C) + braces_rectangle_x_y_0_text = TextMobject("Length").set_color(BLUE_C).move_to(np.array([2,-1,0])) + + braces_rectangle_y_z_1 = Line(np.array([1,2,0]), np.array([1,2,3]), color = YELLOW_C) + braces_rectangle_y_z_1_text = TextMobject("Height").set_color(YELLOW_C).move_to(np.array([2,3.8,2])) + + braces_rectangle_x_z_2 = Line(np.array([1,2,3]), np.array([-1,2,3]), color = PURPLE) + braces_rectangle_x_z_2_text = TextMobject("Breadth").set_color(PURPLE).move_to(np.array([0,3.8,3.3])) + + box_area_func = TexMobject("Area =", "f(", "Length", ",", "Breadth", ",", "Height", ")").move_to(4*LEFT+3.5*UP).scale(0.6) + box_area_func[0].set_color(GREEN_C) + box_area_func[1].set_color(ORANGE) + box_area_func[2].set_color(BLUE_C) + box_area_func[4].set_color(PURPLE) + box_area_func[6].set_color(YELLOW_C) + box_area_func[7].set_color(ORANGE) + + box_area_func_2 = TexMobject("Area =", "Length", "\\times", "Breadth", "\\times", "Height").move_to(4*LEFT+3.5*UP).scale(0.6) + box_area_func_2[0].set_color(GREEN_C) + box_area_func_2[1].set_color(BLUE_C) + box_area_func_2[3].set_color(PURPLE) + box_area_func_2[5].set_color(YELLOW_C) + + + self.set_camera_orientation(phi=70 * DEGREES, theta = 45*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(box), ShowCreation(braces_rectangle_x_y_0)) + self.add_fixed_orientation_mobjects(braces_rectangle_x_y_0_text) + self.play(ShowCreation(braces_rectangle_y_z_1)) + self.add_fixed_orientation_mobjects(braces_rectangle_y_z_1_text) + self.play(ShowCreation(braces_rectangle_x_z_2)) + self.add_fixed_orientation_mobjects(braces_rectangle_x_z_2_text) + self.wait(2) + + self.move_camera(phi=60* DEGREES,theta=80*DEGREES) + self.add_fixed_in_frame_mobjects(box_area_func) + self.play(Write(box_area_func)) + self.wait() + + + self.play(ReplacementTransform(box_area_func,box_area_func_2)) + self.add_fixed_in_frame_mobjects(box_area_func_2) + + + self.wait(3) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_respresentation.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_respresentation.py new file mode 100644 index 0000000..d10ff0a --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file2_multivariable_func_respresentation.py @@ -0,0 +1,98 @@ +from manimlib.imports import * + +class MultivariableFunc(Scene): + def construct(self): + + topic = TextMobject("Multivariable Functions") + topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + topic.scale(1.5) + + self.play(Write(topic)) + self.wait() + self.play(FadeOut(topic)) + + + #circle = Circle() + #circle.scale(3) + + scalar_function = TextMobject("Scalar Valued Function") + scalar_function.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + scalar_function.scale(1.5) + scalar_function.move_to(2.5*UP) + + rectangle = Rectangle(height = 2, width = 4) + rectangle.set_color(PURPLE) + + eqn1 = TextMobject(r"f(x,y) = $x^2y$") + eqn1.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE) + + + + number1 = TextMobject("(2,1)") + number1.move_to(2.5*UP+ 4*LEFT) + number1.scale(1.2) + number1.set_color(ORANGE) + + output1 = TextMobject("4") + output1.scale(1.5) + output1.set_color(BLUE_C) + output1.move_to(3*RIGHT) + + eqn1_1 = TextMobject(r"f(2,1) = $2^2(1)$") + eqn1_1.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE) + + + self.play(Write(eqn1),ShowCreation(rectangle)) + self.wait() + self.play(ApplyMethod(number1.move_to, 3*LEFT)) + self.play(FadeOut(number1)) + self.play(Transform(eqn1, eqn1_1)) + self.wait() + self.play(ApplyMethod(output1.move_to, 2.5*DOWN+4*RIGHT)) + self.wait() + self.play(Write(scalar_function)) + self.play(FadeOut(output1), FadeOut(scalar_function), FadeOut(eqn1)) + + + vector_function = TextMobject("Vector Valued Function") + vector_function.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + vector_function.scale(1.5) + vector_function.move_to(2.5*UP) + + + eqn2 = TextMobject(r"f(x,y,z) = $ \begin{bmatrix} x^2y \\ 2yz \end{bmatrix}$") + eqn2.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + number2 = TextMobject("(2,1,3)") + number2.move_to(2.5*UP+ 4*LEFT) + number2.scale(1.2) + number2.set_color(ORANGE) + + output2 = TextMobject(r"$ \begin{bmatrix} 4 \\ 6 \end{bmatrix}$") + #output2.scale(1.5) + output2.set_color(BLUE_C) + output2.move_to(3*RIGHT) + + #eqn2_1 = TextMobject(r"f(2,1,3) = $2^2(1) + 2(1)(3)$") + #eqn2_1.set_color(YELLOW) + + #eqn2_2 = TextMobject(r"f(2,1,3) = $2 + 6$") + #eqn2_2.set_color(YELLOW) + + + self.play(Write(eqn2)) + + self.wait() + self.play(ApplyMethod(number2.move_to, 3*LEFT)) + self.play(FadeOut(number2)) + + #self.play(Transform(eqn2, eqn2_1)) + #self.wait(1) + #self.play(Transform(eqn2, eqn2_2)) + #self.wait(1) + + self.play(ApplyMethod(output2.move_to, 2.5*DOWN+4*RIGHT)) + self.wait() + self.play(Write(vector_function)) + self.play(FadeOut(output2),FadeOut(eqn2), FadeOut(vector_function), FadeOut(rectangle)) + self.wait() \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_sphere.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_sphere.py new file mode 100644 index 0000000..86239ae --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file3_sphere.py @@ -0,0 +1,177 @@ +from manimlib.imports import * + +class Sphere(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + text3d = TextMobject(r"$f(x,y) \rightarrow Point(x,y,z)$") + text3d1 = TextMobject(r"$f(x,y) \rightarrow Point(x,y, \sqrt{r^2 - x^2 - y^2})$") + self.add_fixed_in_frame_mobjects(text3d) + text3d.scale(0.7) + text3d1.scale(0.7) + text3d.to_corner(UL) + text3d1.to_corner(UL) + text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + text3d1.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + self.play(Write(text3d)) + self.wait(1) + + self.play(Transform(text3d,text3d1)) + self.add_fixed_in_frame_mobjects(text3d1) + self.play(FadeOut(text3d)) + + sphere = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + 2*np.cos(u) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI,checkerboard_colors=[RED_D, RED_E], + resolution=(15, 32)).scale(1) + + + #Experiment with circles by changing difference value of u and v + ''' + sphere_points = [np.array([2*np.sin(u*DEGREES)*np.cos(v*DEGREES), 2*np.sin(u*DEGREES)*np.sin(v*DEGREES), 2*np.cos(u*DEGREES)]) for u in range(0, 185, 5) for v in range(0, 365, 5)] + + sphere_spheres = [Dot().move_to(pts) for pts in sphere_points] + + sphere = VGroup(*sphere_spheres) + ''' + + self.set_camera_orientation(phi=75 * DEGREES, theta = 45*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + dot_x_y1 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([-1,1,0])) + dot_x_y_z1 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([-1,1,1.414])) + dot_x_y_z_1 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([-1,1,-1.414])) + line1 = DashedLine(np.array([-1,1,-1.414]), np.array([-1,1,1.414]), color = YELLOW_C) + + point_x_y1 = TexMobject("(-1,1,0)").set_color(BLUE_C).move_to(np.array([-1.5,1.5,0])).scale(0.5) + point_x_y_z1 = TexMobject("(-1,1,\\sqrt{r^2 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,1.414])).scale(0.5) + point_x_y_z1_2 = TexMobject("(-1,1,\\sqrt{4 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,1.414])).scale(0.5) + point_x_y_z1_3 = TexMobject("(-1,1,\\sqrt{4 - 1 - 1})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,1.414])).scale(0.5) + point_x_y_z1_4 = TexMobject("(-1,1,\\sqrt{2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,1.414])).scale(0.5) + point_x_y_z1_5 = TexMobject("(-1,1,1.414)").set_color(BLUE_C).move_to(np.array([-1.5,1.5,1.414])).scale(0.5) + + point_x_y_z_1 = TexMobject("(-1,1,\\sqrt{r^2 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,-1.414])).scale(0.5) + point_x_y_z_1_2 = TexMobject("(-1,1,\\sqrt{4 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,-1.414])).scale(0.5) + point_x_y_z_1_3 = TexMobject("(-1,1,\\sqrt{4 - 1 - 1})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,-1.414])).scale(0.5) + point_x_y_z_1_4 = TexMobject("(-1,1,\\sqrt{2})").set_color(BLUE_C).move_to(np.array([-1.5,1.5,-1.414])).scale(0.5) + point_x_y_z_1_5 = TexMobject("(-1,1,-1.414)").set_color(BLUE_C).move_to(np.array([-1.5,1.5,-1.414])).scale(0.5) + + + self.play(ShowCreation(dot_x_y1)) + self.add_fixed_orientation_mobjects(point_x_y1) + self.play(ShowCreation(dot_x_y_z1), ShowCreation(dot_x_y_z_1), ShowCreation(line1)) + self.add_fixed_orientation_mobjects(point_x_y_z1, point_x_y_z_1) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z1,point_x_y_z1_2), ReplacementTransform(point_x_y_z_1,point_x_y_z_1_2)) + self.add_fixed_orientation_mobjects(point_x_y_z1_2, point_x_y_z_1_2) + + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z1_2,point_x_y_z1_3), ReplacementTransform(point_x_y_z_1_2,point_x_y_z_1_3)) + self.add_fixed_orientation_mobjects(point_x_y_z1_3, point_x_y_z_1_3) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z1_3,point_x_y_z1_4), ReplacementTransform(point_x_y_z_1_3,point_x_y_z_1_4)) + self.add_fixed_orientation_mobjects(point_x_y_z1_4, point_x_y_z_1_4) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z1_4,point_x_y_z1_5), ReplacementTransform(point_x_y_z_1_4,point_x_y_z_1_5)) + self.add_fixed_orientation_mobjects(point_x_y_z1_5, point_x_y_z_1_5) + + + + dot_x_y2 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([0.5,-0.5,0])) + dot_x_y_z2 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([0.5,-0.5,1.87])) + dot_x_y_z_2 = Dot().scale(0.75).set_fill(RED_C).move_to(np.array([0.5,-0.5,-1.87])) + line2 = DashedLine(np.array([0.5,-0.5,-1.87]), np.array([0.5,-0.5,1.87]), color = YELLOW_C) + + point_x_y2 = TexMobject("(0.5,-0.5,0)").set_color(BLUE_C).move_to(np.array([1.5,-1.5,0])).scale(0.5) + point_x_y_z2 = TexMobject("(0.5,-0.5,\\sqrt{r^2 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,1.87])).scale(0.5) + point_x_y_z2_2 = TexMobject("(0.5,-0.5,\\sqrt{4 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,1.87])).scale(0.5) + point_x_y_z2_3 = TexMobject("(0.5,-0.5,\\sqrt{4 - 0.25 - 0.25})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,1.87])).scale(0.5) + point_x_y_z2_4 = TexMobject("(0.5,-0.5,\\sqrt{3.5})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,1.87])).scale(0.5) + point_x_y_z2_5 = TexMobject("(0.5,-0.5,1.87)").set_color(BLUE_C).move_to(np.array([1.5,-1.5,1.87])).scale(0.5) + + point_x_y_z_2 = TexMobject("(0.5,-0.5,\\sqrt{r^2 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,-1.87])).scale(0.5) + point_x_y_z_2_2 = TexMobject("(0.5,-0.5,\\sqrt{4 - x^2 - y^2})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,-1.87])).scale(0.5) + point_x_y_z_2_3 = TexMobject("(0.5,-0.5,\\sqrt{4 - 0.25 - 0.25})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,-1.87])).scale(0.5) + point_x_y_z_2_4 = TexMobject("(0.5,-0.5,\\sqrt{3.5})").set_color(BLUE_C).move_to(np.array([1.5,-1.5,-1.87])).scale(0.5) + point_x_y_z_2_5 = TexMobject("(0.5,-0.5,-1.87)").set_color(BLUE_C).move_to(np.array([1.5,-1.5,-1.87])).scale(0.5) + + + self.play(ShowCreation(dot_x_y2)) + self.add_fixed_orientation_mobjects(point_x_y2) + self.play(ShowCreation(dot_x_y_z2), ShowCreation(dot_x_y_z_2), ShowCreation(line2)) + self.add_fixed_orientation_mobjects(point_x_y_z2, point_x_y_z_2) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z2,point_x_y_z2_2), ReplacementTransform(point_x_y_z_2,point_x_y_z_2_2)) + self.add_fixed_orientation_mobjects(point_x_y_z2_2, point_x_y_z_2_2) + + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z2_2,point_x_y_z2_3), ReplacementTransform(point_x_y_z_2_2,point_x_y_z_2_3)) + self.add_fixed_orientation_mobjects(point_x_y_z2_3, point_x_y_z_2_3) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z2_3,point_x_y_z2_4), ReplacementTransform(point_x_y_z_2_3,point_x_y_z_2_4)) + self.add_fixed_orientation_mobjects(point_x_y_z2_4, point_x_y_z_2_4) + self.wait(0.5) + self.play(ReplacementTransform(point_x_y_z2_4,point_x_y_z2_5), ReplacementTransform(point_x_y_z_2_4,point_x_y_z_2_5)) + self.add_fixed_orientation_mobjects(point_x_y_z2_5, point_x_y_z_2_5) + + self.play(FadeOut(point_x_y1), FadeOut(point_x_y_z1_5), FadeOut(point_x_y_z_1_5), FadeOut(dot_x_y1), FadeOut(dot_x_y_z1), FadeOut(dot_x_y_z_1), FadeOut(line1)) + self.play(FadeOut(point_x_y2), FadeOut(point_x_y_z2_5), FadeOut(point_x_y_z_2_5), FadeOut(dot_x_y2), FadeOut(dot_x_y_z2), FadeOut(dot_x_y_z_2), FadeOut(line2)) + + + + + sphere_final = [] + + for u in range(0, 180, 15): + sphere_points1 = [np.array([2*np.sin(u*DEGREES)*np.cos(v*DEGREES), 2*np.sin(u*DEGREES)*np.sin(v*DEGREES), 2*np.cos(u*DEGREES)]) for v in range(0, 370, 10)] + sphere_dots1 = [Dot().scale(0.75).set_fill(RED_C).move_to(pts) for pts in sphere_points1] + + sphere_points2 = [np.array([2*np.sin((u+5)*DEGREES)*np.cos(v*DEGREES), 2*np.sin((u+5)*DEGREES)*np.sin(v*DEGREES), 2*np.cos((u+5)*DEGREES)]) for v in range(0, 370, 10)] + sphere_dots2 = [Dot().scale(0.75).set_fill(RED_C).move_to(pts) for pts in sphere_points2] + + sphere_points3 = [np.array([2*np.sin((u+10)*DEGREES)*np.cos(v*DEGREES), 2*np.sin((u+10)*DEGREES)*np.sin(v*DEGREES), 2*np.cos((u+10)*DEGREES)]) for v in range(0, 370, 10)] + sphere_dots3 = [Dot().scale(0.75).set_fill(RED_C).move_to(pts) for pts in sphere_points3] + + sphere_final = sphere_final + sphere_dots1 + sphere_dots2 + sphere_dots3 + + sphere_dots = sphere_dots1 + sphere_dots2 + sphere_dots3 + + sphere_with_dots = VGroup(*sphere_dots) + self.play(ShowCreation(sphere_with_dots)) + + sphere_final_with_dots = VGroup(*sphere_final) + + + self.begin_ambient_camera_rotation(rate=0.5) + self.wait(3) + self.play(ReplacementTransform(sphere_final_with_dots, sphere)) + self.wait(5) + + + + + + + + + + + + + + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py new file mode 100644 index 0000000..06e225e --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file4_vectorvf_sine.py @@ -0,0 +1,91 @@ +from manimlib.imports import * + +class SineVectors(GraphScene): + CONFIG = { + "x_min": 0, + "x_max": 10, + "y_min": -1, + "y_max": 1, + "graph_origin": ORIGIN+4*LEFT, + #"x_labeled_nums": list(range(-5, 6)), + #"y_labeled_nums": list(range(0, 5)), + } + def construct(self): + + + + + + XTD = self.x_axis_width/(self.x_max - self.x_min) + YTD = self.y_axis_height/(self.y_max - self.y_min) + + self.setup_axes(animate = True) + + + sine1 = self.get_graph(lambda x : np.sin(x), x_min = 0, x_max = 1.575, color = GREEN) + + point1 = Dot().shift(self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT) + point1_lab = TextMobject(r"$t = (\frac{\pi}{2})$") + point1_lab.scale(0.7) + point1_lab.next_to(point1, UP) + + vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1.575*XTD*RIGHT, buff=0.1, color = RED) + vector1_lab = TextMobject(r"$r(\frac{\pi}{2})$", color = RED) + vector1_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.5*YTD*UP) + + self.play(GrowArrow(vector1),Write(vector1_lab)) + self.play(ShowCreation(point1), Write(point1_lab)) + self.play(ShowCreation(sine1)) + self.wait(1) + + + sine2 = self.get_graph(lambda x : np.sin(x), x_min = 1.575, x_max = 3.15, color = GREEN) + + point2 = Dot().shift(self.graph_origin+3.15*XTD*RIGHT) + point2_lab = TextMobject(r"$t = (\pi)$") + point2_lab.scale(0.7) + point2_lab.next_to(point2, UP+RIGHT) + + vector2 = Arrow(self.graph_origin, self.graph_origin+3.15*XTD*RIGHT, buff=0.1, color = BLUE) + vector2_lab = TextMobject(r"$r(\pi)$", color = BLUE) + vector2_lab.move_to(self.graph_origin+1.5*XTD*RIGHT+ 0.15*YTD*UP) + + self.play(GrowArrow(vector2),Write(vector2_lab)) + self.play(ShowCreation(point2), Write(point2_lab)) + self.play(ShowCreation(sine2)) + self.wait(1) + + + sine3 = self.get_graph(lambda x : np.sin(x), x_min = 3.15, x_max = 4.725, color = GREEN) + + point3 = Dot().shift(self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT) + point3_lab = TextMobject(r"$t = (\frac{3\pi}{2})$") + point3_lab.scale(0.7) + point3_lab.next_to(point3, DOWN) + + vector3 = Arrow(self.graph_origin, self.graph_origin+1*YTD*DOWN + 4.725*XTD*RIGHT, buff=0.1, color = YELLOW_C) + vector3_lab = TextMobject(r"$r(\frac{3\pi}{2})$", color = YELLOW_C) + vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 0.7*YTD*DOWN) + + self.play(GrowArrow(vector3),Write(vector3_lab)) + self.play(ShowCreation(point3), Write(point3_lab)) + self.play(ShowCreation(sine3)) + self.wait(1) + + + sine4 = self.get_graph(lambda x : np.sin(x), x_min = 4.725, x_max = 6.3, color = GREEN) + + point4 = Dot().shift(self.graph_origin+6.3*XTD*RIGHT) + point4_lab = TextMobject(r"$t = (2\pi)$") + point4_lab.scale(0.7) + point4_lab.next_to(point4, UP+RIGHT) + + vector4 = Arrow(self.graph_origin, self.graph_origin+6.3*XTD*RIGHT, buff=0.1, color = PURPLE) + vector4_lab = TextMobject(r"$r(2\pi)$", color = PURPLE) + vector4_lab.move_to(self.graph_origin+4.5*XTD*RIGHT+ 0.15*YTD*DOWN) + + self.play(GrowArrow(vector4),Write(vector4_lab)) + self.play(ShowCreation(point4), Write(point4_lab)) + self.play(ShowCreation(sine4)) + self.wait(3) + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_vectorvf_helix.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_vectorvf_helix.py new file mode 100644 index 0000000..fc151ac --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file5_vectorvf_helix.py @@ -0,0 +1,92 @@ +from manimlib.imports import * + +class Helix(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + helix1=ParametricFunction( + lambda u : np.array([ + 1.5*np.cos(u), + 1.5*np.sin(u), + u/4 + ]),color=PURPLE,t_min=-TAU,t_max=TAU, + ) + + helix2=ParametricFunction( + lambda u : np.array([ + 2*np.cos(u), + 2*np.sin(u), + u/2 + ]),color=GREEN_C,t_min=-TAU,t_max=TAU, + ) + + function = TexMobject("f(", "r", ",", "\\theta", ")", "=", "[", "r", "\\cos", "\\theta", ",", "r", "\\sin" ,"\\theta", ",", "h" ,"\\theta", "]" ).scale(0.6).to_corner(UL) + function.set_color_by_tex(r"\theta", BLUE_C) + function.set_color_by_tex(r"r", RED_C) + function.set_color_by_tex(r"\cos", GREEN_C) + function.set_color_by_tex(r"\sin", YELLOW_C) + function[0].set_color(ORANGE) + function[4].set_color(ORANGE) + + + self.add_fixed_in_frame_mobjects(function) + + self.set_camera_orientation(phi=60*DEGREES, theta = 45*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + + dot1 = Dot().rotate(PI/2).set_color(RED_C) + alpha1 = ValueTracker(0) + vector1 = self.get_vector(alpha1.get_value(),helix1) + dot1.add_updater(lambda m: m.move_to(vector1.get_end())) + self.play( + ShowCreation(helix1), + GrowFromCenter(dot1), + GrowArrow(vector1) + ) + vector1.add_updater( + lambda m: m.become( + self.get_vector(alpha1.get_value()%1,helix1) + ) + ) + self.add(vector1,dot1) + self.play(alpha1.increment_value, 1, run_time=10, rate_func=linear) + + + self.play(FadeOut(vector1), FadeOut(dot1)) + self.play(ReplacementTransform(helix1, helix2)) + + + dot2 = Dot().rotate(PI/2).set_color(RED_C) + alpha2 = ValueTracker(0) + vector2 = self.get_vector(alpha2.get_value(),helix2) + dot2.add_updater(lambda m: m.move_to(vector2.get_end())) + self.play( + ShowCreation(helix2), + GrowFromCenter(dot2), + GrowArrow(vector2) + ) + vector2.add_updater( + lambda m: m.become( + self.get_vector(alpha2.get_value()%1,helix2) + ) + ) + self.add(vector2,dot2) + self.play(alpha2.increment_value, 1, run_time=10, rate_func=linear) + self.wait() + + + + def get_vector(self, proportion, curve): + vector = Line(np.array([0,0,0]), curve.point_from_proportion(proportion), color = YELLOW_C, buff=0) + return vector \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file6_derivative_vectorvf.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file6_derivative_vectorvf.py new file mode 100644 index 0000000..466e389 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/file6_derivative_vectorvf.py @@ -0,0 +1,247 @@ +from manimlib.imports import * + +class Derivative(GraphScene): + CONFIG = { + "x_min": 0, + "x_max": 3, + "y_min": 0, + "y_max": 5, + "graph_origin": ORIGIN+6*LEFT+3*DOWN, + "x_axis_width": 6, + "x_labeled_nums": list(range(0, 4)), + "y_labeled_nums": list(range(0, 6)), + } + 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) + + graph = self.get_graph(lambda x : x*x, x_min = 0.5, x_max = 2, color = GREEN) + + point1 = Dot().shift(self.graph_origin+0.25*YTD*UP + 0.5*XTD*RIGHT) + point1_lab = TextMobject(r"$t = a$") + point1_lab.scale(0.7) + point1_lab.next_to(point1, RIGHT) + + point2 = Dot().shift(self.graph_origin+2*XTD*RIGHT+4*YTD*UP) + point2_lab = TextMobject(r"$t = b$") + point2_lab.scale(0.7) + point2_lab.next_to(point2, RIGHT) + + + vector1 = Arrow(self.graph_origin, self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, buff=0.02, color = RED) + vector1_lab = TextMobject(r"$\vec r(t)$", color = RED) + vector1_lab.move_to(self.graph_origin+1.2*XTD*RIGHT+ 0.75*YTD*UP) + vector1_lab.scale(0.8) + + vector2 = Arrow(self.graph_origin, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = YELLOW_C) + vector2_lab = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) + vector2_lab.move_to(self.graph_origin+0.5*XTD*RIGHT+ 2*YTD*UP) + vector2_lab.scale(0.8) + + vector3 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PINK) + vector3_lab = TextMobject(r"$\vec r(t + h) - \vec r(t)$", color = PINK) + vector3_lab.move_to(self.graph_origin+2*XTD*RIGHT+ 1.5*YTD*UP) + vector3_lab.scale(0.8) + + + self.play(ShowCreation(graph)) + self.play(ShowCreation(point1), Write(point1_lab)) + self.play(ShowCreation(point2), Write(point2_lab)) + + self.play(GrowArrow(vector1),Write(vector1_lab)) + self.play(GrowArrow(vector2),Write(vector2_lab)) + self.play(GrowArrow(vector3),Write(vector3_lab)) + self.wait(1) + + self.display_text() + + self.play(ApplyMethod(vector3_lab.move_to,(self.graph_origin+2.3*XTD*RIGHT+ 2.2*YTD*UP))) + + vector4 = Arrow(self.graph_origin+1*YTD*UP + 1*XTD*RIGHT, self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = PURPLE) + vector4_lab = TextMobject(r"$dx$", color = PURPLE) + vector4_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 0.8*YTD*UP) + vector4_lab.scale(0.7) + + vector5 = Arrow(self.graph_origin+1*YTD*UP + 1.5*XTD*RIGHT, self.graph_origin+2.25*YTD*UP + 1.5*XTD*RIGHT, buff=0.02, color = ORANGE) + vector5_lab = TextMobject(r"$dy$", color = ORANGE) + vector5_lab.move_to(self.graph_origin+1.7*XTD*RIGHT+ 1.4*YTD*UP) + vector5_lab.scale(0.7) + + self.play(GrowArrow(vector4),Write(vector4_lab)) + self.play(GrowArrow(vector5),Write(vector5_lab)) + self.wait(2) + + + + def display_text(self): + text1 = TextMobject(r"$\vec r(t)$",r"+", r"$\vec r(t + h) - \vec r(t)$") + text1[0].set_color(RED) + text1[2].set_color(PINK) + text1.scale(0.7) + + text2 = TextMobject(r"$\vec r(t + h)$", color = YELLOW_C) + text2.scale(0.7) + + text3 = TextMobject(r"$ \vec r(t + h) - \vec r(t)$", color = PINK) + text3.scale(0.7) + + text4 = TextMobject(r"[", r"$x(t+h)$", r"$\vec i$", r"+", r"$y(t+h)$", r"$\vec j$", r"$] - [$", r"$x(t)$", r"$\vec i$", r"+", r"y(t)", r"$\vec j$", r"]") + text4.set_color_by_tex(r"\vec i", BLUE) + text4.set_color_by_tex(r"\vec j", GREEN) + text4[1].set_color(YELLOW_C) + text4[4].set_color(YELLOW_C) + text4[-6].set_color(RED) + text4[-3].set_color(RED) + text4.scale(0.7) + + text5 = TextMobject(r"$[x(t+h) - x(t)]$", r"$\vec i$", r"+", r"$[y(t+h) + y(t)]$", r"$\vec j$") + text5.set_color_by_tex(r"\vec i", BLUE) + text5.set_color_by_tex(r"\vec j", GREEN) + text5[0].set_color(PURPLE) + text5[3].set_color(ORANGE) + text5.scale(0.7) + + text6 = TextMobject(r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") + text6.set_color_by_tex(r"\vec i", BLUE) + text6.set_color_by_tex(r"\vec j", GREEN) + text6[0].set_color(PINK) + text6[2].set_color(PURPLE) + text6[-2].set_color(ORANGE) + text6.scale(0.8) + + text7 = TextMobject(r"$\lim_{h \rightarrow 0}$", r"$\frac{[\vec r(t + h) - \vec r(t)]}{h}$", r"=", r"$\lim_{h \rightarrow 0}$", r"$\frac{[x(t+h) - x(t)]}{h}$", r"$\vec i$", r"+", r"$\lim_{h \rightarrow 0}$", r"$\frac{[y(t+h) + y(t)]}{h}$", r"$\vec j$") + text7.set_color_by_tex(r"\vec i", BLUE) + text7.set_color_by_tex(r"\vec j", GREEN) + text7[1].set_color(PINK) + text7[4].set_color(PURPLE) + text7[-2].set_color(ORANGE) + text7.scale(0.6) + + text8 = TextMobject(r"$\vec r'(t)$", r"=",r"$\vec x'(t)$", r"$\vec i$", r"+", r"$\vec y'(t)$", r"$\vec j$") + text8.set_color_by_tex(r"\vec i", BLUE) + text8.set_color_by_tex(r"\vec j", GREEN) + text8[0].set_color(PINK) + text8[2].set_color(PURPLE) + text8[5].set_color(ORANGE) + text8.scale(0.7) + + text9 = TextMobject(r"$\frac{d \vec r}{dt}$", r"=", r"$\frac{d \vec x}{dt}$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}$", r"$\vec j$") + text9.set_color_by_tex(r"\vec i", BLUE) + text9.set_color_by_tex(r"\vec j", GREEN) + text9[0].set_color(PINK) + text9[2].set_color(PURPLE) + text9[5].set_color(ORANGE) + text9.scale(0.7) + + + text10 = TextMobject(r"$d \vec r$", r"=", r"$\frac{d \vec x}{dt}dt$", r"$\vec i$", r"+", r"$\frac{d \vec y}{dt}dt$", r"$\vec j$") + text10.set_color_by_tex(r"\vec i", BLUE) + text10.set_color_by_tex(r"\vec j", GREEN) + text10[0].set_color(PINK) + text10[2].set_color(PURPLE) + text10[5].set_color(ORANGE) + text10.scale(0.7) + + text11 = TextMobject(r"$d \vec r$", r"=", r"$x'(t)dt$", r"$\vec i$", r"+", r"$y'(t)dt$", r"$\vec j$") + text11.set_color_by_tex(r"\vec i", BLUE) + text11.set_color_by_tex(r"\vec j", GREEN) + text11[0].set_color(PINK) + text11[2].set_color(PURPLE) + text11[5].set_color(ORANGE) + text11.scale(0.7) + + text12 = TextMobject(r"$d \vec r$", r"=", r"$dx$", r"$\vec i$", r"+", r"$dy$", r"$\vec j$") + text12.set_color_by_tex(r"\vec i", BLUE) + text12.set_color_by_tex(r"\vec j", GREEN) + text12[0].set_color(PINK) + text12[2].set_color(PURPLE) + text12[5].set_color(ORANGE) + text12.scale(0.7) + + + text1.move_to(1*UP+2.7*RIGHT) + text2.move_to(1*UP+2.7*RIGHT) + text3.move_to(1*UP+2.7*RIGHT) + text4.move_to(1*UP+2.7*RIGHT) + text5.move_to(1*UP+2.7*RIGHT) + text6.move_to(1*UP+2.7*RIGHT) + text7.move_to(1*UP+2.5*RIGHT) + text8.move_to(1*UP+2.7*RIGHT) + text9.move_to(1*UP+2.7*RIGHT) + text10.move_to(1*UP+2.7*RIGHT) + text11.move_to(1*UP+2.7*RIGHT) + text12.move_to(1*UP+2.7*RIGHT) + + brace1 = Brace(text7[0:2], DOWN, buff = SMALL_BUFF) + brace2 = Brace(text7[3:6], UP, buff = SMALL_BUFF) + brace3 = Brace(text7[7:], DOWN, buff = SMALL_BUFF) + t1 = brace1.get_text(r"$\vec r'(t)$") + t1.set_color(PINK) + + t2 = brace2.get_text(r"$\vec x'(t)$") + t2.set_color(PURPLE) + + t3 = brace3.get_text(r"$\vec y'(t)$") + t3.set_color(ORANGE) + + + self.play(Write(text1)) + self.play(Transform(text1, text2)) + self.wait(1) + + self.play(Transform(text1, text3)) + self.wait(1) + + self.play(Transform(text1, text4)) + self.wait(1) + + self.play(Transform(text1, text5)) + self.wait(1) + + self.play(Transform(text1, text6)) + self.wait(1) + + self.play(Transform(text1, text7)) + self.wait(1) + + self.play( + GrowFromCenter(brace1), + FadeIn(t1), + ) + self.wait() + self.play( + ReplacementTransform(brace1.copy(),brace2), + ReplacementTransform(t1.copy(),t2) + ) + self.wait() + self.play( + ReplacementTransform(brace2.copy(),brace3), + ReplacementTransform(t2.copy(),t3) + ) + self.wait() + + self.play(FadeOut(brace1), FadeOut(t1), FadeOut(brace2), FadeOut(t2), FadeOut(brace3), FadeOut(t3),) + self.wait() + + self.play(Transform(text1, text8)) + self.wait(1) + + self.play(Transform(text1, text9)) + self.wait(1) + + self.play(Transform(text1, text10)) + self.wait(1) + + self.play(Transform(text1, text11)) + self.wait(1) + + self.play(Transform(text1, text12)) + self.wait(1) + + + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivar_func_examples.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivar_func_examples.gif new file mode 100644 index 0000000..43c3a42 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file1_multivar_func_examples.gif differ 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..40add0f 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_sphere.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_sphere.gif new file mode 100644 index 0000000..3e35ec8 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file3_sphere.gif differ 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..4f6b931 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_vectorvf_helix.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_vectorvf_helix.gif new file mode 100644 index 0000000..c3d37f6 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-functions/gifs/file5_vectorvf_helix.gif differ 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..a94de90 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 605f842199e3acb9ecd456d96d63b11b157ce7fd Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:53:35 +0530 Subject: Delete file4_continuity_func.py --- .../file4_continuity_func.py | 32 ---------------------- 1 file changed, 32 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file4_continuity_func.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file4_continuity_func.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file4_continuity_func.py deleted file mode 100644 index 551c8a8..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file4_continuity_func.py +++ /dev/null @@ -1,32 +0,0 @@ -from manimlib.imports import * - -class ContinuityFunc(ThreeDScene): - def construct(self): - axes = ThreeDAxes() - - text3d = TextMobject(r"$f(x,y) = \frac{3x^2y}{x^2 + y^2}$") - self.add_fixed_in_frame_mobjects(text3d) - - text3d.to_corner(UL) - - text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - - self.play(Write(text3d)) - self.wait(1) - - continuity_func = ParametricSurface( - lambda u, v: np.array([ - u*np.cos(v), - u*np.sin(v), - 3*u*np.cos(v)*np.cos(v)*np.sin(v) - ]),u_min=-1.5,u_max=1.5,v_min=0,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], - resolution=(15, 32)).scale(2) - - - - self.set_camera_orientation(phi=80 * DEGREES) - self.begin_ambient_camera_rotation(rate=0.3) - - self.add(axes) - self.play(Write(continuity_func)) - self.wait(8) \ No newline at end of file -- cgit From f05d7bd9325dfd0eaac20596abd5fe34b22f6dce Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:53:44 +0530 Subject: Delete file3_limit_func.py --- .../file3_limit_func.py | 30 ---------------------- 1 file changed, 30 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file3_limit_func.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file3_limit_func.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file3_limit_func.py deleted file mode 100644 index 02e00e8..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file3_limit_func.py +++ /dev/null @@ -1,30 +0,0 @@ -from manimlib.imports import * - -class LimitFunc(ThreeDScene): - def construct(self): - axes = ThreeDAxes() - - text3d = TextMobject(r"$f(x,y) = \frac{x^2 - y^2}{x^2 + y^2}$") - self.add_fixed_in_frame_mobjects(text3d) - - text3d.to_corner(UL) - - text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - - self.play(Write(text3d)) - self.wait(1) - - limit_func = ParametricSurface( - lambda u, v: np.array([ - u*np.cos(v), - u*np.sin(v), - (np.cos(v)*np.cos(v) - np.sin(v)*np.sin(v))/3 - ]),u_min=-3,u_max=3,v_min=0,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], - resolution=(15, 32)).scale(2) - - self.set_camera_orientation(phi=80 * DEGREES) - self.begin_ambient_camera_rotation(rate=0.3) - - self.add(axes) - self.play(Write(limit_func)) - self.wait(10) \ No newline at end of file -- cgit From c6f985090f89ab7c4c6c8043f74cfd41198aa110 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:53:54 +0530 Subject: Delete file2_limit_approach_point.py --- .../file2_limit_approach_point.py | 66 ---------------------- 1 file changed, 66 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file2_limit_approach_point.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file2_limit_approach_point.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file2_limit_approach_point.py deleted file mode 100644 index 57d1d45..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file2_limit_approach_point.py +++ /dev/null @@ -1,66 +0,0 @@ -from manimlib.imports import * - -class Limit(GraphScene): - CONFIG = { - "x_min": 0, - "x_max": 4, - "y_min": 0, - "y_max": 4, - "graph_origin": ORIGIN + 3* DOWN+4*LEFT, - "x_labeled_nums": list(range(0, 4)), - "y_labeled_nums": list(range(0, 5)), - } - def construct(self): - topic = TextMobject("Different paths of approach to limit point") - topic.scale(1.5) - topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) - self.play(Write(topic)) - self.wait(1) - self.play(FadeOut(topic)) - - - - 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) - - y_x = self.get_graph(lambda x : x, x_min = -1, x_max = 4) - y_x_lab = self.get_graph_label(y_x, label = r"y = x") - - y_xsquare = self.get_graph(lambda x : x*x, x_min = -1, x_max = 4) - y_xsquare_lab = self.get_graph_label(y_xsquare, label = r"y = x^2") - - y_1 = self.get_graph(lambda x : 1, x_min = -1, x_max = 4) - y_1_lab = self.get_graph_label(y_1, label = r"y = 1") - - y_2minusx = self.get_graph(lambda x : 2 - x, x_min = -1, x_max = 4, color = RED) - y_2minusx_lab = self.get_graph_label(y_2minusx, label = r"y = 2 - x") - - limit_point = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP) - limit_point_lab = TextMobject(r"(1,1)") - limit_point_lab.next_to(limit_point, DOWN) - - self.play(ShowCreation(limit_point)) - self.play(Write(limit_point_lab)) - self.wait(1) - - self.play(ShowCreation(y_x)) - self.play(Write(y_x_lab)) - self.wait(1) - - self.play(ShowCreation(y_xsquare)) - self.play(Write(y_xsquare_lab)) - self.wait(1) - - self.play(ShowCreation(y_1)) - self.play(Write(y_1_lab)) - self.wait(1) - - self.play(ShowCreation(y_2minusx)) - self.play(Write(y_2minusx_lab)) - self.wait(1) - - - - \ No newline at end of file -- cgit From df0696d02a8550dee0c386ad8ad77000f306d77a Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:03 +0530 Subject: Delete file1_epsilon_delta_defn.py --- .../file1_epsilon_delta_defn.py | 120 --------------------- 1 file changed, 120 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file1_epsilon_delta_defn.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file1_epsilon_delta_defn.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file1_epsilon_delta_defn.py deleted file mode 100644 index 63b6165..0000000 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/file1_epsilon_delta_defn.py +++ /dev/null @@ -1,120 +0,0 @@ -from manimlib.imports import * - -class EpsilonDelta(ThreeDScene): - def construct(self): - axes = ThreeDAxes() # creates a 3D Axis - - - sphere = ParametricSurface( - lambda u, v: np.array([ - 2*np.sin(u)*np.cos(v), - 2*np.sin(u)*np.sin(v), - 2*np.cos(u) - ]),u_min=0,u_max=PI/4,v_min=0,v_max=PI/2,checkerboard_colors=[RED_D, RED_E], - resolution=(15, 32)).scale(2) - #sphere.shift(0.5*RIGHT+0.5*UP) - - #self.set_camera_orientation(phi=0*DEGREES,theta=270*DEGREES) - self.set_camera_orientation(phi=75 * DEGREES) - - - - circle = Circle(radius= 0.4,color = GREEN) - circle.shift(0.5*RIGHT+0.5*UP) - - line1 = DashedLine(np.array([0.5, 0.1,0]), np.array([0.5, 0.1,2.1]), color = BLUE_E) - line2 = DashedLine(np.array([0.5, 0.9,0]), np.array([0.5, 0.9,1.7]), color = BLUE_E) - line3 = DashedLine(np.array([0, 0,2.1]), np.array([0.5, 0.1,2.1]), color = YELLOW_C) - line4 = DashedLine(np.array([0, 0,1.7]), np.array([0.5, 0.9,1.7]), color = YELLOW_C) - - dot1 = Sphere() - dot1.scale(0.01) - dot1.move_to(np.array([0,0,1.9])) - dot1.set_fill(BLUE_E) - - temp_func1 = TextMobject(r"$L$") - temp_func1.scale(0.6) - temp_func1.set_color(BLUE_E) - - dot2 = Sphere() - dot2.scale(0.01) - dot2.move_to(np.array([0,0,1.7])) - dot2.set_fill(PURPLE) - - temp_func2 = TextMobject(r"$L - \epsilon$") - temp_func2.scale(0.6) - temp_func2.set_color(PURPLE) - - dot3 = Sphere() - dot3.scale(0.01) - dot3.move_to(np.array([0,0,2.1])) - dot3.set_fill(PURPLE) - - temp_func3 = TextMobject(r"$L + \epsilon$") - temp_func3.scale(0.6) - temp_func3.set_color(PURPLE) - - self.add(axes) - - self.play(ShowCreation(dot1)) - self.add_fixed_in_frame_mobjects(temp_func1) - temp_func1.move_to(1.9*UP) - self.play(Write(temp_func1)) - - self.play(ShowCreation(dot2)) - self.add_fixed_in_frame_mobjects(temp_func2) - temp_func2.move_to(1.7*UP) - self.play(Write(temp_func2)) - - self.play(ShowCreation(dot3)) - self.add_fixed_in_frame_mobjects(temp_func3) - temp_func3.move_to(2.1*UP) - self.play(Write(temp_func3)) - - - circle_center = Sphere() - circle_center.scale(0.05) - circle_center.move_to(np.array([0.5,0.5,0])) - circle_center.set_fill(GREEN) - - temp_circle_center = TextMobject(r"$(a,b,0)$") - temp_circle_center.scale(0.5) - temp_circle_center.set_color(GREEN) - - curve_circle_center = Sphere() - curve_circle_center.scale(0.05) - curve_circle_center.move_to(np.array([0.5,0.5,1.9])) - curve_circle_center.set_fill(BLUE_E) - - temp_curve_circle_center = TextMobject(r"$(a,b,L)$") - temp_curve_circle_center.scale(0.5) - temp_curve_circle_center.set_color(BLUE) - - delta_lab = TextMobject(r"$\delta - disk$") - delta_lab.scale(0.5) - delta_lab.set_color(PINK) - - self.play(ShowCreation(circle_center)) - self.add_fixed_in_frame_mobjects(temp_circle_center) - temp_circle_center.move_to(1.5*RIGHT) - self.play(Write(temp_circle_center)) - - self.play(ShowCreation(curve_circle_center)) - self.add_fixed_in_frame_mobjects(temp_curve_circle_center) - temp_curve_circle_center.move_to(1.9*UP+1*RIGHT) - self.play(Write(temp_curve_circle_center)) - - - self.add_fixed_in_frame_mobjects(delta_lab) - delta_lab.move_to(0.4*DOWN+1.7*RIGHT) - self.play(Write(delta_lab)) - - - - - - self.begin_ambient_camera_rotation(rate=0.2) - self.play(Write(sphere)) - self.play(ShowCreation(circle), ShowCreation(line1), ShowCreation(line2)) - self.play(ShowCreation(line3), ShowCreation(line4)) - self.wait(8) -- cgit From 2d352e69a69fbee395d4a852a4f6d2d37db782dd Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:12 +0530 Subject: Delete Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf --- ...s_and_Continuity_of_Multivariable_Function_Quiz.pdf | Bin 101435 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf deleted file mode 100644 index 99918e5..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf and /dev/null differ -- cgit From edfb4ccb349657f6f77f3568190cb9f9c55a6dfc Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:22 +0530 Subject: Delete file4_continuity_func.gif --- .../gifs/file4_continuity_func.gif | Bin 523873 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file4_continuity_func.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file4_continuity_func.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file4_continuity_func.gif deleted file mode 100644 index 560e0f1..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file4_continuity_func.gif and /dev/null differ -- cgit From 197135b026d1be90fdcdb1b7a41c73c80d05d98f Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:31 +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/limits-and-continuity-of-multivariable-functions/gifs/file2_limit_approach_point.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file2_limit_approach_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/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/limits-and-continuity-of-multivariable-functions/gifs/file2_limit_approach_point.gif and /dev/null differ -- cgit From 83b7eb12edaa1b17136205e373f4fee05b6980cc Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:39 +0530 Subject: Delete file1_epsilon_delta_defn.gif --- .../gifs/file1_epsilon_delta_defn.gif | Bin 214399 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file1_epsilon_delta_defn.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file1_epsilon_delta_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file1_epsilon_delta_defn.gif deleted file mode 100644 index 68f637e..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file1_epsilon_delta_defn.gif and /dev/null differ -- cgit From c9d418076f59811deddbd2beab29d9644d88ccf6 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:54:47 +0530 Subject: Delete file3_limit_func.gif --- .../gifs/file3_limit_func.gif | Bin 511560 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file3_limit_func.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file3_limit_func.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file3_limit_func.gif deleted file mode 100644 index 07b23be..0000000 Binary files a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/limits-and-continuity-of-multivariable-functions/gifs/file3_limit_func.gif and /dev/null differ -- cgit From ac83cc7b152273a6f6bd823028e7dec75a6f9fd1 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:56:42 +0530 Subject: Added updated multivariable-limits-and-continuity folder --- ...d_Continuity_of_Multivariable_Function_Quiz.pdf | Bin 0 -> 101435 bytes .../file1_epsilon_delta_defn.py | 179 +++++++++++++++++++++ .../file2_limit_approach_point.py | 66 ++++++++ .../file3_limit_approach_point_3d.py | 152 +++++++++++++++++ .../file4_limit_different_point.py | 115 +++++++++++++ .../file5_continuity_func.py | 115 +++++++++++++ .../gifs/file1_epsilon_delta_defn.gif | Bin 0 -> 1788321 bytes .../gifs/file2_limit_approach_point.gif | Bin 0 -> 47411 bytes .../gifs/file3_limit_approach_point_3d.gif | Bin 0 -> 2770965 bytes .../gifs/file4_limit_different_point.gif | Bin 0 -> 3044265 bytes .../gifs/file5_continuity_func.gif | Bin 0 -> 5035077 bytes 11 files changed, 627 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file1_epsilon_delta_defn.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file2_limit_approach_point.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file3_limit_approach_point_3d.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file4_limit_different_point.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file5_continuity_func.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file2_limit_approach_point.gif 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 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file4_limit_different_point.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file5_continuity_func.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf new file mode 100644 index 0000000..99918e5 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/Limits_and_Continuity_of_Multivariable_Function_Quiz.pdf differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file1_epsilon_delta_defn.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file1_epsilon_delta_defn.py new file mode 100644 index 0000000..803c122 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file1_epsilon_delta_defn.py @@ -0,0 +1,179 @@ +from manimlib.imports import * + +class EpsilonDelta(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + + sphere = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + 3*np.cos(u) + ]),u_min=0,u_max=PI/4,v_min=PI/2,v_max=PI,checkerboard_colors=[RED_D, RED_E], + resolution=(15, 32)).scale(1) + + + cylinder_z = ParametricSurface( + lambda u, v: np.array([ + 0.25*np.cos(TAU * v), + 1.8* (1 - u), + 0.25*np.sin(TAU * v) + + ]), + checkerboard_colors=[YELLOW_C, YELLOW_E], resolution=(6, 32)).fade(0.2).rotate(PI/4).move_to(np.array([-0.65,0.65,2.54])) + + + cylinder_x = ParametricSurface( + lambda u, v: np.array([ + 0.3*np.cos(TAU * v)-1, + 0.3*np.sin(TAU * v)+1, + 2.6*(1 - u) + ]), + checkerboard_colors=[BLUE_C, BLUE_E], resolution=(6, 32)).fade(0.2) + + + delta_circle = Circle(radius= 0.3, color = BLACK).shift(1*LEFT+1*UP).set_fill(GREEN_E, opacity = 0.5) + + epsilon_circle = [np.array([0.25*np.cos(i*DEGREES),0,0.25*np.sin(i*DEGREES)]) for i in range(361)] + + epsilon_circle_polygon = Polygon(*epsilon_circle, color = RED_E, fill_color = RED_E, fill_opacity = 0.5).rotate(PI/4).move_to(np.array([0,0,2.54])) + + + dot_circle = Dot().move_to(np.array([-1,1,0])).set_fill("#000080") + + dot_surface = Dot().rotate(-PI/4).scale(1.5).move_to(np.array([-1.2,1.2,2.7])).set_fill("#000080") + + dot_L_epsilon1 = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).rotate(PI/4).move_to(np.array([0,0,2.3])) + + dot_L_epsilon2 = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).rotate(PI/4).move_to(np.array([0,0,2.8])) + + dot_L = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#006400", fill_color = "#006400", fill_opacity = 1).rotate(PI/4).move_to(np.array([0,0,2.54])) + + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.set_camera_orientation(phi=75*DEGREES,theta=135*DEGREES) + #self.set_camera_orientation(phi=80*DEGREES,theta=45*DEGREES) + + + self.play(ShowCreation(sphere),ShowCreation(delta_circle), ShowCreation(dot_circle)) + + temp_circle_center = TextMobject(r"$(a,b,0)$").scale(0.6).set_color(BLUE_C).move_to(1.7*LEFT+1.1*UP) + self.add_fixed_orientation_mobjects(temp_circle_center) + self.wait() + + delta_lab = TextMobject(r"$\delta$", r"$-$", "disk").scale(0.5).move_to(0.6*LEFT+1.7*UP) + delta_lab[0].set_color(PINK).scale(1.3) + delta_lab[1].set_color(ORANGE) + delta_lab[2].set_color(GREEN_E) + + self.add_fixed_orientation_mobjects(delta_lab) + + self.play(ShowCreation(dot_surface)) + + temp_curve_circle_center = TextMobject(r"$(a,b,L)$").scale(0.6).set_color("#006400").move_to(np.array([-2,1,2.7])) + self.add_fixed_orientation_mobjects(temp_curve_circle_center) + + + self.wait() + self.play(ShowCreation(cylinder_x), FadeOut(dot_surface)) + self.wait() + + self.move_camera(phi=0* DEGREES,theta=135*DEGREES) + self.wait() + + self.move_camera(phi=80* DEGREES,theta=225*DEGREES) + self.wait() + + self.play(FadeOut(delta_lab), ShowCreation(cylinder_z)) + self.wait() + + self.play(FadeOut(temp_circle_center), FadeOut(temp_curve_circle_center),ShowCreation(epsilon_circle_polygon)) + + self.move_camera(phi=80* DEGREES,theta=325*DEGREES) + + dot_L_epsilon1_lab = TextMobject(r"$L$", r"$-$", r"$\epsilon$").scale(0.6).move_to(np.array([-0.4,-0.4,2.3])) + dot_L_epsilon1_lab[0].set_color("#D4108A") + dot_L_epsilon1_lab[1].set_color("#006400") + dot_L_epsilon1_lab[2].set_color("#4DC8A1").scale(1.5) + + dot_L_epsilon2_lab = TextMobject(r"$L$", r"$+$", r"$\epsilon$").scale(0.6).move_to(np.array([-0.4,-0.4,2.8])) + dot_L_epsilon2_lab[0].set_color("#D4108A") + dot_L_epsilon2_lab[1].set_color("#006400") + dot_L_epsilon2_lab[2].set_color("#4DC8A1").scale(1.5) + + dot_L_lab = TextMobject(r"$L$").scale(0.6).set_color("#D4108A").move_to(np.array([-0.4,-0.4,2.54])) + + + self.play(ShowCreation(dot_L_epsilon1), ShowCreation(dot_L), ShowCreation(dot_L_epsilon2)) + self.add_fixed_orientation_mobjects(dot_L_epsilon1_lab, dot_L_epsilon2_lab, dot_L_lab) + self.wait(4) + + self.move_camera(phi=80* DEGREES,theta=45*DEGREES) + self.wait(2) + + + + + + + + + + + + + + + ''' + + + + + + + + + + + + delta_lab = TextMobject(r"$\delta - disk$") + delta_lab.scale(0.5) + delta_lab.set_color(PINK) + + self.play(ShowCreation(circle_center)) + self.add_fixed_in_frame_mobjects(temp_circle_center) + temp_circle_center.move_to(1.5*RIGHT) + self.play(Write(temp_circle_center)) + + self.play(ShowCreation(curve_circle_center)) + self.add_fixed_in_frame_mobjects(temp_curve_circle_center) + temp_curve_circle_center.move_to(1.9*UP+1*RIGHT) + self.play(Write(temp_curve_circle_center)) + + + self.add_fixed_in_frame_mobjects(delta_lab) + delta_lab.move_to(0.4*DOWN+1.7*RIGHT) + self.play(Write(delta_lab)) + + + + + + self.begin_ambient_camera_rotation(rate=0.2) + + self.play(ShowCreation(circle), ShowCreation(line1), ShowCreation(line2)) + self.play(ShowCreation(line3), ShowCreation(line4)) + self.wait(8) + ''' \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file2_limit_approach_point.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file2_limit_approach_point.py new file mode 100644 index 0000000..57d1d45 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file2_limit_approach_point.py @@ -0,0 +1,66 @@ +from manimlib.imports import * + +class Limit(GraphScene): + CONFIG = { + "x_min": 0, + "x_max": 4, + "y_min": 0, + "y_max": 4, + "graph_origin": ORIGIN + 3* DOWN+4*LEFT, + "x_labeled_nums": list(range(0, 4)), + "y_labeled_nums": list(range(0, 5)), + } + def construct(self): + topic = TextMobject("Different paths of approach to limit point") + topic.scale(1.5) + topic.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + self.play(Write(topic)) + self.wait(1) + self.play(FadeOut(topic)) + + + + 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) + + y_x = self.get_graph(lambda x : x, x_min = -1, x_max = 4) + y_x_lab = self.get_graph_label(y_x, label = r"y = x") + + y_xsquare = self.get_graph(lambda x : x*x, x_min = -1, x_max = 4) + y_xsquare_lab = self.get_graph_label(y_xsquare, label = r"y = x^2") + + y_1 = self.get_graph(lambda x : 1, x_min = -1, x_max = 4) + y_1_lab = self.get_graph_label(y_1, label = r"y = 1") + + y_2minusx = self.get_graph(lambda x : 2 - x, x_min = -1, x_max = 4, color = RED) + y_2minusx_lab = self.get_graph_label(y_2minusx, label = r"y = 2 - x") + + limit_point = Dot().shift(self.graph_origin+1*XTD*RIGHT+1*YTD*UP) + limit_point_lab = TextMobject(r"(1,1)") + limit_point_lab.next_to(limit_point, DOWN) + + self.play(ShowCreation(limit_point)) + self.play(Write(limit_point_lab)) + self.wait(1) + + self.play(ShowCreation(y_x)) + self.play(Write(y_x_lab)) + self.wait(1) + + self.play(ShowCreation(y_xsquare)) + self.play(Write(y_xsquare_lab)) + self.wait(1) + + self.play(ShowCreation(y_1)) + self.play(Write(y_1_lab)) + self.wait(1) + + self.play(ShowCreation(y_2minusx)) + self.play(Write(y_2minusx_lab)) + self.wait(1) + + + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file3_limit_approach_point_3d.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file3_limit_approach_point_3d.py new file mode 100644 index 0000000..f1007a4 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file3_limit_approach_point_3d.py @@ -0,0 +1,152 @@ +from manimlib.imports import * + +class Limit(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + text3d = TextMobject(r"$f(x,y) = \frac{x - y}{x - 1}$") + self.add_fixed_in_frame_mobjects(text3d) + + text3d.to_corner(UL) + + text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.play(Write(text3d)) + self.wait(1) + + limit_func = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + (3*np.sin(u)*np.cos(v) - 3*np.sin(u)*np.sin(v))/2*(3*np.sin(u)*np.cos(v) - 1) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + limit_y_x =ParametricFunction( + lambda u : np.array([ + u, + u, + 0 + ]),color=GREEN_D,t_min=-3,t_max=3, + ) + + limit_y_1 =ParametricFunction( + lambda u : np.array([ + u, + 1, + 1/2 + ]),color=BLUE_D,t_min=-3,t_max=3, + ) + + limit_y_x_2 =ParametricFunction( + lambda u : np.array([ + u, + u*u, + (u - u*u)/2*(u - 1) + ]),color=RED_D,t_min=-3,t_max=3, + ) + + limit_y_2_x =ParametricFunction( + lambda u : np.array([ + u, + 2 - u, + 1 + ]),color=YELLOW_D,t_min=-3,t_max=3, + ) + + plane_y_x = Polygon(np.array([-3,-3,-3]),np.array([3,3,-3]),np.array([3,3,3]),np.array([-3,-3,3]),np.array([-3,-3,-3]), color = GREEN_C, fill_color = GREEN_C, fill_opacity = 0.1) + plane_y_x_text = TextMobject(r"$y = x$", color = GREEN_C).move_to(np.array([5,0,3])) + + plane_y_1 = Polygon(np.array([-3,1,-3]),np.array([3,1,-3]),np.array([3,1,3]),np.array([-3,1,3]),np.array([-3,1,-3]), color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1) + plane_y_1_text = TextMobject(r"$y = 1$", color = BLUE_C).move_to(np.array([5,0,2.5])) + + + #Creating plane y = x^2 + ###### + y_x_2 = [] + y_x_2.append(np.array([2, 4, -3])) + y_x_2.append(np.array([2, 4, 3])) + y_x_2_1 = [np.array([i, i*i, 3]) for i in np.arange(1.9,-2.1, -0.1)] + + y_x_2 = y_x_2 + y_x_2_1 + + y_x_2.append(np.array([-2, 4, 3])) + y_x_2.append(np.array([-2, 4, -3])) + + y_x_2_2 = [np.array([i, i*i, -3]) for i in np.arange(-2,2.1, 0.1)] + + y_x_2 = y_x_2 + y_x_2_2 + #y_x_2.append(np.array([-3, 9, 0])) + + plane_y_x_2 = Polygon(*y_x_2, color = RED_C, fill_color = RED_C, fill_opacity = 0.1) + plane_y_x_2_text = TextMobject(r"$y = x^2$", color = RED_C).move_to(np.array([5,0,2])) + + ###### + + plane_y_2_x = Polygon(np.array([-3,5,-3]),np.array([3,-1,-3]),np.array([3,-1,3]),np.array([-3,5,3]),np.array([-3,5,-3]), color = YELLOW_C, fill_color = YELLOW_C, fill_opacity = 0.1) + plane_y_2_x_text = TextMobject(r"$y = 2 - x$", color = YELLOW_C).move_to(np.array([5,0,1.5])) + + line_1_1 = Line(np.array([1,1,-3]), np.array([1,1,3]), color = PINK) + + point = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).move_to(np.array([1,1,0])) + point_text = TextMobject(r"$(1,1,0)$", color = WHITE).scale(0.7).move_to(np.array([1.8,1,0])) + + + + + self.set_camera_orientation(phi=70 * DEGREES, theta = -95*DEGREES) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(limit_func)) + self.wait(2) + + self.play(ShowCreation(plane_y_x)) + self.add_fixed_orientation_mobjects(plane_y_x_text) + self.play(ShowCreation(limit_y_x)) + self.wait() + + self.play(ShowCreation(plane_y_1)) + self.add_fixed_orientation_mobjects(plane_y_1_text) + self.play(ShowCreation(limit_y_1)) + self.wait() + + self.play(ShowCreation(plane_y_x_2)) + self.add_fixed_orientation_mobjects(plane_y_x_2_text) + self.play(ShowCreation(limit_y_x_2)) + self.wait() + + self.play(ShowCreation(plane_y_2_x)) + self.add_fixed_orientation_mobjects(plane_y_2_x_text) + self.play(ShowCreation(limit_y_2_x)) + self.wait() + + self.play(ShowCreation(line_1_1)) + self.wait() + + self.play(ShowCreation(point)) + self.add_fixed_orientation_mobjects(point_text) + self.wait() + + self.play(FadeOut(plane_y_x_text), FadeOut(plane_y_1_text), FadeOut(plane_y_x_2_text), FadeOut(plane_y_2_x_text)) + + self.move_camera(phi=0* DEGREES,theta=-95*DEGREES) + self.wait(2) + self.play(FadeOut(plane_y_x), FadeOut(plane_y_1), FadeOut(plane_y_x_2), FadeOut(plane_y_2_x)) + self.wait(3) + + self.move_camera(phi=75* DEGREES,theta=-95*DEGREES) + self.wait(3) + + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file4_limit_different_point.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file4_limit_different_point.py new file mode 100644 index 0000000..0a43def --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file4_limit_different_point.py @@ -0,0 +1,115 @@ +from manimlib.imports import * + +class DifferentPoint(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + text3d = TextMobject(r"$f(x,y) = \frac{x^2 - y^2}{x^2 + y^2}$") + self.add_fixed_in_frame_mobjects(text3d) + + text3d.to_corner(UL) + + text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.play(Write(text3d)) + self.wait(1) + + limit_func = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + (np.cos(v)*np.cos(v) - np.sin(v)*np.sin(v)) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + limit_func_copy1 = limit_func.copy() + limit_func_copy2 = limit_func.copy() + + limit_func_x = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + (np.cos(v)*np.cos(v) - np.sin(v)*np.sin(v)) + ]),u_min=0,u_max=PI,v_min=PI,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + limit_func_y = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + (np.cos(v)*np.cos(v) - np.sin(v)*np.sin(v)) + ]),u_min=0,u_max=PI,v_min=PI/2,v_max=3*PI/2,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + limit_x =ParametricFunction( + lambda u : np.array([ + u, + 0, + 1 + ]),color="#006400",t_min=-3,t_max=3, + ) + + limit_y =ParametricFunction( + lambda u : np.array([ + 0, + u, + -1 + ]),color="#000080",t_min=-3,t_max=3, + ) + + plane_x = Polygon(np.array([-3,0,-2]),np.array([3,0,-2]),np.array([3,0,2]),np.array([-3,0,2]),np.array([-3,0,-2]), color = GREEN, fill_color = GREEN, fill_opacity = 0.2) + plane_x_text = TextMobject(r"$y = 0$", color = GREEN_C).move_to(1.7*UP + 3.8*RIGHT) + + plane_y = Polygon(np.array([0,-3,-2]),np.array([0,3,-2]),np.array([0,3,2]),np.array([0,-3,2]),np.array([0,-3,-2]), color = BLUE, fill_color = BLUE, fill_opacity = 0.2) + plane_y_text = TextMobject(r"$x = 0$", color = BLUE_C).move_to(1.7*UP + 3.8*RIGHT) + + origin_x = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).move_to(np.array([0,0,0])) + origin_x_text = TextMobject(r"$(0,0,0)$", color = RED_C).scale(0.7).move_to(np.array([-0.6,0,-0.5])) + + origin_y = Polygon(*[np.array([0,0.05*np.cos(i*DEGREES),0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).move_to(np.array([0,0,0])) + origin_y_text = TextMobject(r"$(0,0,0)$", color = RED_C).scale(0.7).move_to(np.array([0,-0.6,-0.5])) + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(limit_func)) + + self.move_camera(phi=80* DEGREES,theta=105*DEGREES) + + self.play(ShowCreation(plane_x)) + self.add_fixed_in_frame_mobjects(plane_x_text) + self.wait() + self.play(ReplacementTransform(limit_func, limit_func_x)) + self.play(FadeOut(plane_x), FadeOut(plane_x_text), ShowCreation(origin_x)) + self.add_fixed_orientation_mobjects(origin_x_text) + self.play(ShowCreation(limit_x)) + + self.move_camera(phi=80* DEGREES,theta=15*DEGREES) + self.wait(3) + + self.play(FadeOut(origin_x), FadeOut(origin_x_text), FadeOut(limit_x), ReplacementTransform(limit_func_x, limit_func_copy1)) + self.play(ShowCreation(plane_y)) + self.add_fixed_in_frame_mobjects(plane_y_text) + self.wait() + self.play(ReplacementTransform(limit_func_copy1, limit_func_y)) + self.play(FadeOut(plane_y), FadeOut(plane_y_text), ShowCreation(origin_y)) + self.add_fixed_orientation_mobjects(origin_y_text) + self.play(ShowCreation(limit_y)) + + self.move_camera(phi=80* DEGREES,theta=75*DEGREES) + self.wait(3) + + self.play(FadeOut(origin_y), FadeOut(origin_y_text), FadeOut(limit_y), ReplacementTransform(limit_func_y, limit_func_copy2)) + self.wait(2) + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file5_continuity_func.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file5_continuity_func.py new file mode 100644 index 0000000..99159a4 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/file5_continuity_func.py @@ -0,0 +1,115 @@ +from manimlib.imports import * + +class Continuity(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + text3d = TextMobject(r"$f(x,y) = \frac{3x^2y}{x^2 + y^2}$") + self.add_fixed_in_frame_mobjects(text3d) + + text3d.to_corner(UL) + + text3d.set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + self.play(Write(text3d)) + self.wait(1) + + + continuity_func = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + 9*np.sin(u)*np.cos(v)*np.cos(v)*np.sin(v) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + continuity_func_copy1 = continuity_func.copy() + continuity_func_copy2 = continuity_func.copy() + + continuity_func_x = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + 9*np.sin(u)*np.cos(v)*np.cos(v)*np.sin(v) + ]),u_min=0,u_max=PI,v_min=PI,v_max=2*PI,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + continuity_func_y = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + 9*np.sin(u)*np.cos(v)*np.cos(v)*np.sin(v) + ]),u_min=0,u_max=PI,v_min=PI/2,v_max=3*PI/2,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + continuity_x =ParametricFunction( + lambda u : np.array([ + u, + 0, + 0 + ]),color="#006400",t_min=-3,t_max=3, + ) + + continuity_y =ParametricFunction( + lambda u : np.array([ + 0, + u, + 0 + ]),color="#000080",t_min=-3,t_max=3, + ) + + plane_x = Polygon(np.array([-3,0,-3]),np.array([3,0,-3]),np.array([3,0,3]),np.array([-3,0,3]),np.array([-3,0,-3]), color = GREEN, fill_color = GREEN, fill_opacity = 0.2) + plane_x_text = TextMobject(r"$y = 0$", color = GREEN_C).move_to(1.7*UP + 3.8*RIGHT) + + plane_y = Polygon(np.array([0,-3,-3]),np.array([0,3,-3]),np.array([0,3,3]),np.array([0,-3,3]),np.array([0,-3,-3]), color = BLUE, fill_color = BLUE, fill_opacity = 0.2) + plane_y_text = TextMobject(r"$x = 0$", color = BLUE_C).move_to(1.7*UP + 3.8*RIGHT) + + origin_x = Polygon(*[np.array([0.05*np.cos(i*DEGREES),0,0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#000080", fill_color = "#000080", fill_opacity = 1).move_to(np.array([0,0,0])) + origin_x_text = TextMobject(r"$(0,0,0)$", color = RED_C).scale(0.7).move_to(np.array([-0.6,0,-0.5])) + + origin_y = Polygon(*[np.array([0,0.05*np.cos(i*DEGREES),0.05*np.sin(i*DEGREES)]) for i in range(361)], color = "#006400", fill_color = "#006400", fill_opacity = 1).move_to(np.array([0,0,0])) + origin_y_text = TextMobject(r"$(0,0,0)$", color = RED_C).scale(0.7).move_to(np.array([0,-0.6,-0.5])) + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(continuity_func)) + + self.move_camera(phi=80* DEGREES,theta=105*DEGREES) + + self.play(ShowCreation(plane_x)) + self.add_fixed_in_frame_mobjects(plane_x_text) + self.wait() + self.play(ReplacementTransform(continuity_func, continuity_func_x)) + self.play(FadeOut(plane_x), FadeOut(plane_x_text)) + self.play(ShowCreation(continuity_x), ShowCreation(origin_x)) + self.add_fixed_orientation_mobjects(origin_x_text) + + self.move_camera(phi=80* DEGREES,theta=15*DEGREES) + self.wait(3) + + self.play(FadeOut(origin_x), FadeOut(origin_x_text), FadeOut(continuity_x), ReplacementTransform(continuity_func_x, continuity_func_copy1)) + self.play(ShowCreation(plane_y)) + self.add_fixed_in_frame_mobjects(plane_y_text) + self.wait() + self.play(ReplacementTransform(continuity_func_copy1, continuity_func_y)) + self.play(FadeOut(plane_y), FadeOut(plane_y_text)) + self.play(ShowCreation(continuity_y), ShowCreation(origin_y)) + self.add_fixed_orientation_mobjects(origin_y_text) + + self.move_camera(phi=80* DEGREES,theta=75*DEGREES) + self.wait(3) + + self.play(FadeOut(origin_y), FadeOut(origin_y_text), FadeOut(continuity_y), ReplacementTransform(continuity_func_y, continuity_func_copy2)) + self.wait(2) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif new file mode 100644 index 0000000..2378bcf Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file1_epsilon_delta_defn.gif differ 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..830b6f1 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 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..4bccf8c 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file4_limit_different_point.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file4_limit_different_point.gif new file mode 100644 index 0000000..9a831e4 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file4_limit_different_point.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file5_continuity_func.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file5_continuity_func.gif new file mode 100644 index 0000000..2a0a61f Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/multivariable-limits-and-continuity/gifs/file5_continuity_func.gif differ -- cgit From 7a741fe759201d54ff29a450e0f70bea96cd6504 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:58:37 +0530 Subject: Added partial-derivatives folder --- .../file1_partial_deriv_gas_law.py | 88 ++++++++ .../file2_partial_deriv_hill.py | 122 ++++++++++ .../file3_partial_deriv_defn.py | 218 ++++++++++++++++++ .../file4_partial_deriv_example.py | 246 +++++++++++++++++++++ .../file5_partial_deriv_func_2maximas.py | 227 +++++++++++++++++++ .../partial-derivatives/file6_clariant_rule.py | 64 ++++++ .../file7_partial_deriv_clariant_rule.py | 108 +++++++++ .../partial-derivatives/file8_chain_rule.py | 60 +++++ .../gifs/file1_partial_deriv_gas_law.gif | Bin 0 -> 2042905 bytes .../gifs/file2_partial_deriv_hill.gif | Bin 0 -> 551768 bytes .../gifs/file3_partial_deriv_defn.gif | Bin 0 -> 2263059 bytes .../gifs/file4_partial_deriv_example.gif | Bin 0 -> 2145303 bytes .../gifs/file5_partial_deriv_func_2maximas.gif | Bin 0 -> 5123074 bytes .../gifs/file6_clariant_rule.gif | Bin 0 -> 2032309 bytes .../gifs/file7_partial_deriv_clariant_rule.gif | Bin 0 -> 722341 bytes .../partial-derivatives/gifs/file8_chain_rule.gif | Bin 0 -> 1612033 bytes 16 files changed, 1133 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file1_partial_deriv_gas_law.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file3_partial_deriv_defn.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file4_partial_deriv_example.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file5_partial_deriv_func_2maximas.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file6_clariant_rule.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file7_partial_deriv_clariant_rule.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file8_chain_rule.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file1_partial_deriv_gas_law.gif 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 create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file4_partial_deriv_example.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file5_partial_deriv_func_2maximas.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file6_clariant_rule.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file7_partial_deriv_clariant_rule.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file1_partial_deriv_gas_law.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file1_partial_deriv_gas_law.py new file mode 100644 index 0000000..3d35c97 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file1_partial_deriv_gas_law.py @@ -0,0 +1,88 @@ +from manimlib.imports import * + +class GasLaw(Scene): + def construct(self): + gas_law = TextMobject(r"$P$", r"$V$", r"=", r"$n$", r"$R$", r"$T$").scale(1.5) + gas_law[0].set_color(BLUE_C) + gas_law[1].set_color(GREEN_C) + gas_law[3].set_color(RED_C) + gas_law[4].set_color(ORANGE) + gas_law[5].set_color(YELLOW_C) + + gas_law_trans = TexMobject("V", "=", "{n", "R", "T", "\\over", "P}").scale(1.5) + gas_law_trans[0].set_color(GREEN_C) + gas_law_trans[2].set_color(RED_C) + gas_law_trans[3].set_color(ORANGE) + gas_law_trans[4].set_color(YELLOW_C) + gas_law_trans[6].set_color(BLUE_C) + + gas_law_func = TexMobject("V", "=", "f(", "n", ",", "T", ",", "P", ")").scale(1.5) + gas_law_func[0].set_color(GREEN_C) + gas_law_func[2].set_color(ORANGE) + gas_law_func[3].set_color(RED_C) + gas_law_func[5].set_color(YELLOW_C) + gas_law_func[7].set_color(BLUE_C) + gas_law_func[8].set_color(ORANGE) + + partial_gas_law_func = TexMobject("{\\partial", "V","\\over", "\\partial", "P}", r"=", "{\\partial", "\\over", "\\partial", "P}", "f(", r"n", ",", r"T", ",", r"P", r")").scale(1.5) + partial_gas_law_func.set_color_by_tex("\\partial", PINK) + partial_gas_law_func.set_color_by_tex("P}", BLUE_C) + + partial_gas_law_func[1].set_color(GREEN_C) + partial_gas_law_func[10].set_color(ORANGE) + partial_gas_law_func[11].set_color(RED_C) + partial_gas_law_func[13].set_color(YELLOW_C) + partial_gas_law_func[15].set_color(BLUE_C) + partial_gas_law_func[16].set_color(ORANGE) + + partial_gas_law_trans = TexMobject("{\\partial", "V","\\over", "\\partial", "P}", r"=", "{\\partial", "\\over", "\\partial", "P}", "{n", "R", "T", "\\over", "P}").scale(1.5) + partial_gas_law_trans.set_color_by_tex("\\partial", PINK) + partial_gas_law_trans.set_color_by_tex("P}", BLUE_C) + + partial_gas_law_trans[1].set_color(GREEN_C) + partial_gas_law_trans[10].set_color(RED_C) + partial_gas_law_trans[11].set_color(ORANGE) + partial_gas_law_trans[12].set_color(YELLOW_C) + + partial_gas_law_trans2 = TexMobject("{\\partial", "V","\\over", "\\partial", "P}", r"=", "n", "R", "T", "{\\partial", "\\over", "\\partial", "P}", "P^{-1}",).scale(1.5) + partial_gas_law_trans2.set_color_by_tex("\\partial", PINK) + partial_gas_law_trans2.set_color_by_tex("P}", BLUE_C) + + partial_gas_law_trans2[1].set_color(GREEN_C) + partial_gas_law_trans2[6].set_color(RED_C) + partial_gas_law_trans2[7].set_color(ORANGE) + partial_gas_law_trans2[8].set_color(YELLOW_C) + partial_gas_law_trans2[-1].set_color(BLUE_C) + + partial_gas_law_trans3 = TexMobject("{\\partial", "V","\\over", "\\partial", "P}", r"=", "n", "R", "T", "P^{-2}",).scale(1.5) + partial_gas_law_trans3.set_color_by_tex("\\partial", PINK) + partial_gas_law_trans3.set_color_by_tex("P}", BLUE_C) + + partial_gas_law_trans3[1].set_color(GREEN_C) + partial_gas_law_trans3[6].set_color(RED_C) + partial_gas_law_trans3[7].set_color(ORANGE) + partial_gas_law_trans3[8].set_color(YELLOW_C) + partial_gas_law_trans3[9].set_color(BLUE_C) + + framebox = SurroundingRectangle(partial_gas_law_trans3, color = PURPLE, buff = 0.3) + + + + self.play(Write(gas_law)) + self.wait() + self.play(Transform(gas_law, gas_law_trans)) + self.wait() + self.play(Transform(gas_law, gas_law_func)) + self.wait() + self.play(Transform(gas_law, gas_law_trans)) + self.wait() + self.play(Transform(gas_law, partial_gas_law_func)) + self.wait() + self.play(Transform(gas_law, partial_gas_law_trans)) + self.wait() + self.play(Transform(gas_law, partial_gas_law_trans2)) + self.wait() + self.play(Transform(gas_law, partial_gas_law_trans3)) + self.wait() + self.play(ShowCreation(framebox)) + self.wait() \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py new file mode 100644 index 0000000..bfb7687 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file2_partial_deriv_hill.py @@ -0,0 +1,122 @@ +from manimlib.imports import * + +class Hill(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + function = ParametricSurface( + lambda u, v: np.array([ + 1.2*np.sin(u)*np.cos(v), + 1.2*np.sin(u)*np.sin(v), + -1.2*1.2*np.sin(u)*np.sin(u)*(1+0.5*np.sin(v)*np.sin(v))+2 + ]),u_min=0,u_max=PI/2,v_min=0,v_max=2*PI,checkerboard_colors=[GREEN_C, GREEN_E], + resolution=(15, 32)).scale(1) + + func_x =ParametricFunction( + lambda u : np.array([ + u, + 0, + 2 - u*u + ]),color=RED_E,t_min=-1.2,t_max=1.2, + ) + + func_y =ParametricFunction( + lambda u : np.array([ + 0, + u, + 2 - 1.5*u*u + ]),color=PINK,t_min=-1.2,t_max=1.2, + ) + + self.set_camera_orientation(phi=60 * DEGREES, theta = 0*DEGREES) + #self.set_camera_orientation(phi=45 * DEGREES, theta = -20*DEGREES) + + self.add(axes) + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(function)) + self.wait() + + self.move_camera(phi=60 * DEGREES, theta = 45*DEGREES) + #self.play(ShowCreation(func_x)) + + text_x = TextMobject("Slope of the hill along", r"$x$", "axis", color = YELLOW_C).scale(0.6).move_to(2.7*UP + 3.5*RIGHT) + text_x[1].set_color(PINK) + + + slope_text_x = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text_x[0].set_color(BLUE_E) + slope_text_x.set_color_by_tex("\\partial",YELLOW_C) + slope_text_x.set_color_by_tex("f",RED_E) + slope_text_x[5].set_color(PINK) + + self.add_fixed_in_frame_mobjects(text_x, slope_text_x) + + dot_x = Dot().rotate(PI/2).set_color(YELLOW_E) + alpha_x = ValueTracker(0) + vector_x = self.get_tangent_vector(alpha_x.get_value(),func_x,scale=1.5) + dot_x.add_updater(lambda m: m.move_to(vector_x.get_center())) + self.play( + ShowCreation(func_x), + GrowFromCenter(dot_x), + GrowArrow(vector_x) + ) + vector_x.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_x.get_value()%1,func_x,scale=1.5) + ) + ) + + self.add(vector_x,dot_x) + + self.play(alpha_x.increment_value, 1, run_time=10, rate_func=linear) + + #self.move_camera(phi=60 * DEGREES, theta = 0*DEGREES) + self.play(FadeOut(vector_x), FadeOut(dot_x), FadeOut(func_x), FadeOut(text_x), FadeOut(slope_text_x)) + + text_y = TextMobject("Slope of the hill along", r"$y$", "axis", color = YELLOW_C).scale(0.6).move_to(2.7*UP + 3.5*RIGHT) + text_y[1].set_color(RED_C) + + + slope_text_y = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text_y[0].set_color(BLUE_E) + slope_text_y.set_color_by_tex("\\partial",YELLOW_C) + slope_text_y.set_color_by_tex("f",PINK) + slope_text_y[5].set_color(RED_C) + + self.add_fixed_in_frame_mobjects(text_y, slope_text_y) + + dot_y = Dot().rotate(PI/2).set_color(BLUE_E) + alpha_y = ValueTracker(0) + vector_y = self.get_tangent_vector(alpha_y.get_value(),func_y,scale=1.5) + dot_y.add_updater(lambda m: m.move_to(vector_y.get_center())) + self.play( + ShowCreation(func_y), + GrowFromCenter(dot_y), + GrowArrow(vector_y) + ) + vector_y.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_y.get_value()%1,func_y,scale=1.5) + ) + ) + + self.add(vector_y,dot_y) + self.play(alpha_y.increment_value, 1, run_time=10, rate_func=linear) + self.play(FadeOut(vector_y), FadeOut(dot_y), FadeOut(func_y), FadeOut(text_y), FadeOut(slope_text_y)) + self.wait(2) + + def get_tangent_vector(self, proportion, curve, dx=0.001, scale=1): + coord_i = curve.point_from_proportion(proportion) + coord_f = curve.point_from_proportion(proportion + dx) + reference_line = Line(coord_i,coord_f) + unit_vector = reference_line.get_unit_vector() * scale + vector = Line(coord_i - unit_vector, coord_i + unit_vector, color = ORANGE, buff=0) + return vector \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file3_partial_deriv_defn.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file3_partial_deriv_defn.py new file mode 100644 index 0000000..a25ca56 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file3_partial_deriv_defn.py @@ -0,0 +1,218 @@ +from manimlib.imports import * + +class PartialDeriv(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=0,v_max=2*PI,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + paraboloid_copy1 = paraboloid.copy() + paraboloid_copy2 = paraboloid.copy() + + paraboloid_x = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=PI,v_max=2*PI,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + paraboloid_x_copy = paraboloid_x.copy() + + paraboloid_y = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=PI/2,v_max=3*PI/2,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + parabola1 =ParametricFunction( + lambda u : np.array([ + u, + 0, + -(u*u) + 2 + ]),color="#006400",t_min=-2,t_max=2, + ) + parabola2 =ParametricFunction( + lambda u : np.array([ + 0, + u, + -(u*u) + 2 + ]),color=BLUE_C,t_min=-2,t_max=2, + ) + + plane1 = Polygon(np.array([-2.2,0,-2.5]),np.array([2.2,0,-2.5]),np.array([2.2,0,2.5]),np.array([-2.2,0,2.5]),np.array([-2.2,0,-2.5]), color = GREEN, fill_color = GREEN, fill_opacity = 0.2) + plane1_text = TextMobject(r"$y = 0$", color = GREEN_C).move_to(2*UP + 3.3*RIGHT) + + plane2 = Polygon(np.array([0,-2.2,-2.5]),np.array([0,2.2,-2.5]),np.array([0,2.2,2.5]),np.array([0,-2.2,2.5]),np.array([0,-2.2,-2.5]), color = BLUE, fill_color = BLUE, fill_opacity = 0.2) + plane2_text = TextMobject(r"$x = 0$", color = BLUE_C).move_to(2*UP + 3.2*RIGHT) + + surface_eqn = TextMobject("Surface", r"$z = 2- x^2 -y^2$", color = YELLOW_C).scale(0.6).move_to(np.array([3*LEFT +3*UP])) + surface_eqn[0].set_color(PINK) + + dot1 =Sphere(radius=0.08).move_to(np.array([-1,0,1])) + dot1.set_fill(RED) + line1 = Line(np.array([-1.55, 0,0]), np.array([-0.4, 0,2.2]), color = RED) + lab_x = TextMobject(r"$f(x_0,y_0)$", color = RED).scale(0.7) + para_lab_x = TextMobject(r"$f(x,y_0)$", color = "#006400").scale(0.7) + tangent_line_x = TextMobject("Tangent Line", color = RED_C, buff = 0.4).scale(0.6).move_to(np.array([1.7*RIGHT +1.8*UP])) + + + text1 = TextMobject(r"$\frac{\partial f}{\partial x}\vert_{(x_0,y_0)} = \frac{d}{dx}$", r"$f(x,y_0)$", r"$\vert_{x=x_0}$").scale(0.6) + brace1 = Brace(text1[1], DOWN, buff = SMALL_BUFF, color = GREEN) + t1 = brace1.get_text("Just depends on x") + t1.scale(0.6) + t1.set_color(GREEN) + + + dot2 =Sphere(radius=0.08).move_to(np.array([0,1,1])) + dot2.set_fill(RED) + line2 = Line(np.array([0, 1.55,0]), np.array([0, 0.4,2.2]), color = RED) + lab_y = TextMobject(r"$f(x_0,y_0)$", color = RED).scale(0.7) + para_lab_y = TextMobject(r"$f(x_0,y)$", color = BLUE_C).scale(0.7) + tangent_line_y = TextMobject("Tangent Line", color = RED_C, buff = 0.4).scale(0.6).move_to(np.array([1.7*RIGHT +1.8*UP])) + + text2 = TextMobject(r"$\frac{\partial f}{\partial y}\vert_{(x_0,y_0)} = \frac{d}{dy}$", r"$f(x_0,y)$", r"$\vert_{y=y_0}$").scale(0.6) + brace2 = Brace(text2[1], DOWN, buff = SMALL_BUFF, color = GREEN) + t2 = brace2.get_text("Just depends on y") + t2.scale(0.6) + t2.set_color(GREEN) + + text3 = TextMobject(r"$= \lim_{h \to 0} \frac{f(x_0+h,y_0) - f(x_0,y_0)}{h}$").scale(0.6) + + dot3 =Sphere(radius=0.08).move_to(np.array([-1.22,0,0.5])) + dot3.set_fill(YELLOW_C) + line3 = Line(np.array([-1.44,0,0]), np.array([-0.6,0,2.2]), color = YELLOW_C) + lab_line3 = TextMobject(r"$f(x_0+h,y_0)$", color = YELLOW_C).scale(0.7) + + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + #self.set_camera_orientation(phi=80 * DEGREES, theta = 20*DEGREES) + #self.begin_ambient_camera_rotation(rate=0.3) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + #self.add_fixed_orientation_mobjects(axis[2]) + + self.play(Write(paraboloid)) + + self.add_fixed_in_frame_mobjects(surface_eqn) + #self.move_camera(phi=80* DEGREES,theta=110*DEGREES) + self.move_camera(phi=80* DEGREES,theta=45*DEGREES) + + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + self.play(ShowCreation(plane1)) + self.add_fixed_in_frame_mobjects(plane1_text) + self.wait() + self.play(ReplacementTransform(paraboloid, paraboloid_x)) + + lab_x.move_to(np.array([1.8*RIGHT +1.15*UP])) + para_lab_x.move_to(np.array([1.3*LEFT +1.6*UP])) + self.wait() + self.play(FadeOut(plane1), FadeOut(plane1_text)) + self.play(ShowCreation(parabola1)) + self.add_fixed_in_frame_mobjects(para_lab_x) + self.play(ShowCreation(dot1)) + self.add_fixed_in_frame_mobjects(lab_x) + #self.play(ShowCreation(dot1)) + self.wait() + self.play(ShowCreation(line1)) + self.add_fixed_in_frame_mobjects(tangent_line_x) + self.wait() + + self.add_fixed_in_frame_mobjects(text1, brace1, t1) + grp1 = VGroup(text1, brace1, t1) + grp1.move_to(3*UP+3*RIGHT) + self.play(Write(text1),GrowFromCenter(brace1), FadeIn(t1)) + self.wait() + self.play(FadeOut(parabola1), FadeOut(line1), FadeOut(lab_x), FadeOut(para_lab_x), FadeOut(dot1), FadeOut(tangent_line_x),FadeOut(grp1)) + + + + + #self.move_camera(phi=80* DEGREES,theta=20*DEGREES) + + self.play(ReplacementTransform(paraboloid_x, paraboloid_copy1)) + self.wait() + self.play(ShowCreation(plane2)) + self.add_fixed_in_frame_mobjects(plane2_text) + self.wait() + self.play(ReplacementTransform(paraboloid_copy1, paraboloid_y)) + + lab_y.move_to(np.array([1.8*RIGHT +1.15*UP])) + para_lab_y.move_to(np.array([1.3*LEFT +1.6*UP])) + self.wait() + self.play(FadeOut(plane2), FadeOut(plane2_text)) + self.play(ShowCreation(parabola2)) + self.add_fixed_in_frame_mobjects(para_lab_y) + self.play(ShowCreation(dot2)) + self.add_fixed_in_frame_mobjects(lab_y) + self.wait() + self.play(ShowCreation(line2)) + self.add_fixed_in_frame_mobjects(tangent_line_y) + self.wait() + + self.add_fixed_in_frame_mobjects(text2, brace2, t2) + grp2 = VGroup(text2, brace2, t2) + grp2.move_to(3*UP+3*RIGHT) + self.play(Write(text2),GrowFromCenter(brace2), FadeIn(t2)) + self.wait() + self.play(FadeOut(parabola2), FadeOut(line2), FadeOut(lab_y), FadeOut(para_lab_y), FadeOut(dot2), FadeOut(tangent_line_y), FadeOut(grp2)) + self.wait() + + + #self.move_camera(phi=80* DEGREES,theta=105*DEGREES) + self.play(ReplacementTransform(paraboloid_y, paraboloid_copy2)) + self.wait() + + + self.play(ShowCreation(plane1)) + self.add_fixed_in_frame_mobjects(plane1_text) + self.wait() + self.play(ReplacementTransform(paraboloid_copy2, paraboloid_x_copy)) + + lab_x.move_to(np.array([1.8*RIGHT +1.15*UP])) + para_lab_x.move_to(np.array([1.3*LEFT +1.6*UP])) + lab_line3.move_to(np.array([2.4*RIGHT +0.5*UP])) + self.wait() + self.play(FadeOut(plane1), FadeOut(plane1_text)) + self.play(ShowCreation(parabola1)) + self.add_fixed_in_frame_mobjects(para_lab_x) + self.play(ShowCreation(dot1)) + self.add_fixed_in_frame_mobjects(lab_x) + self.play(ShowCreation(dot3)) + self.add_fixed_in_frame_mobjects(lab_line3) + self.wait() + self.play(ShowCreation(line1)) + self.add_fixed_in_frame_mobjects(tangent_line_x) + self.play(ShowCreation(line3)) + self.wait() + + + self.add_fixed_in_frame_mobjects(text1,text3) + text1.move_to(3*UP+3*RIGHT) + text3.next_to(text1, DOWN) + self.play(Write(text1),Write(text3)) + self.wait() + self.play(FadeOut(parabola1), FadeOut(line1), FadeOut(lab_x), FadeOut(line3), FadeOut(lab_line3), FadeOut(para_lab_x), FadeOut(dot1), FadeOut(dot3), FadeOut(tangent_line_x), FadeOut(text1), FadeOut(text3)) + self.wait() + + + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file4_partial_deriv_example.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file4_partial_deriv_example.py new file mode 100644 index 0000000..5712a62 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file4_partial_deriv_example.py @@ -0,0 +1,246 @@ +from manimlib.imports import * + +class PartialDerivX(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=0,v_max=2*PI,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + paraboloid_copy = paraboloid.copy() + + + paraboloid_x = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=PI,v_max=2*PI,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + + parabola =ParametricFunction( + lambda u : np.array([ + u, + 0, + -(u*u) + 2 + ]),color="#006400",t_min=-2,t_max=2, + ) + + plane = Polygon(np.array([-2.2,0,-2.5]),np.array([2.2,0,-2.5]),np.array([2.2,0,2.5]),np.array([-2.2,0,2.5]),np.array([-2.2,0,-2.5]), color = GREEN, fill_color = GREEN, fill_opacity = 0.2) + plane_text = TextMobject(r"$y = 0$", color = GREEN_C).move_to(2*UP + 3*RIGHT) + + surface_eqn = TextMobject("Surface", r"$z = 2- x^2 -y^2$", color = PINK).scale(0.6).move_to(np.array([3*LEFT +3*UP])) + surface_eqn[0].set_color(BLUE_C) + + line = Line(np.array([-2,0,0]), np.array([2,0,0]), color = RED_C) + + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + + self.play(Write(paraboloid)) + + self.add_fixed_in_frame_mobjects(surface_eqn) + #self.move_camera(phi=80* DEGREES,theta=95*DEGREES) + self.move_camera(phi=80* DEGREES,theta=45*DEGREES) + self.play(ShowCreation(plane)) + self.add_fixed_in_frame_mobjects(plane_text) + self.wait() + self.play(ReplacementTransform(paraboloid, paraboloid_x)) + self.play(FadeOut(plane), FadeOut(plane_text)) + self.play(ShowCreation(parabola), ShowCreation(line)) + + text1 = TextMobject("Moving small", r"$dx$", r"steps").scale(0.6).move_to(3*UP + 3.5*RIGHT).set_color_by_gradient(RED, ORANGE, YELLOW, BLUE, PURPLE) + + text2 = TextMobject("Observing change in function, keeping", r"$y$", r"constant").scale(0.6).move_to(2.6*UP + 3.5*RIGHT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + slope_text = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text[0].set_color(BLUE_E) + slope_text.set_color_by_tex("\\partial",PINK) + slope_text.set_color_by_tex("f","#006400") + slope_text[5].set_color(RED_C) + + self.add_fixed_in_frame_mobjects(text1, text2) + self.wait() + self.add_fixed_in_frame_mobjects(slope_text) + #add_fixed_orientation_mobjects + + + dot = Dot().rotate(PI/2).set_color(RED_C) + alpha = ValueTracker(0) + vector = self.get_tangent_vector(alpha.get_value(),parabola,scale=1.5) + dot.add_updater(lambda m: m.move_to(vector.get_center())) + self.play( + ShowCreation(parabola), + GrowFromCenter(dot), + GrowArrow(vector) + ) + vector.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha.get_value()%1,parabola,scale=1.5) + ) + ) + self.add(vector,dot) + self.play(alpha.increment_value, 1, run_time=10, rate_func=linear) + self.wait() + + + ''' + for i in np.arange(-2,2,0.2): + self.play(ReplacementTransform(Line(np.array([i,0,0]), np.array([i,0,-i*i + 2]), color = GREEN_C), Line(np.array([i+0.2,0,0]), np.array([i+0.2,0,-(i+0.2)**2 + 2]), color = GREEN_C))) + #self.wait() + ''' + + self.wait() + self.play(FadeOut(parabola), FadeOut(line), FadeOut(vector), FadeOut(dot), FadeOut(text1), FadeOut(text2), FadeOut(slope_text),FadeOut(surface_eqn)) + + #self.move_camera(phi=80* DEGREES,theta= 0*DEGREES) + self.play(ReplacementTransform(paraboloid_x, paraboloid_copy)) + self.wait() + + + def get_tangent_vector(self, proportion, curve, dx=0.001, scale=1): + coord_i = curve.point_from_proportion(proportion) + coord_f = curve.point_from_proportion(proportion + dx) + reference_line = Line(coord_i,coord_f) + unit_vector = reference_line.get_unit_vector() * scale + vector = Line(coord_i - unit_vector, coord_i + unit_vector, color = BLUE_E, buff=0) + return vector + + +class PartialDerivY(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=0,v_max=2*PI,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + paraboloid_copy = paraboloid.copy() + + + paraboloid_y = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + -2*2*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/2,v_min=PI/2,v_max=3*PI/2,checkerboard_colors=[PINK, PURPLE], + resolution=(15, 32)).scale(1) + + + parabola =ParametricFunction( + lambda u : np.array([ + 0, + u, + -(u*u) + 2 + ]),color=YELLOW_C,t_min=-2,t_max=2, + ) + + plane = Polygon(np.array([0,-2.2,-2.5]),np.array([0,2.2,-2.5]),np.array([0,2.2,2.5]),np.array([0,-2.2,2.5]),np.array([0,-2.2,-2.5]), color = BLUE, fill_color = BLUE, fill_opacity = 0.2) + plane_text = TextMobject(r"$x = 0$", color = BLUE_C).move_to(2*UP + 3*RIGHT) + + surface_eqn = TextMobject("Surface", r"$z = 2- x^2 -y^2$", color = PINK).scale(0.6).move_to(np.array([3*LEFT +3*UP])) + surface_eqn[0].set_color(BLUE_C) + + line = Line(np.array([0,-2,0]), np.array([0,2,0]), color = RED_C) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(3.7*UP) + + self.add_fixed_in_frame_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.set_camera_orientation(phi=80 * DEGREES, theta = 45*DEGREES) + + self.play(Write(paraboloid)) + + self.add_fixed_in_frame_mobjects(surface_eqn) + #self.move_camera(phi=80* DEGREES,theta=5*DEGREES) + self.play(ShowCreation(plane)) + self.add_fixed_in_frame_mobjects(plane_text) + self.wait() + self.play(ReplacementTransform(paraboloid, paraboloid_y)) + self.play(FadeOut(plane), FadeOut(plane_text)) + self.play(ShowCreation(parabola), ShowCreation(line)) + + text1 = TextMobject("Moving small", r"$dy$", r"steps").scale(0.6).move_to(3*UP + 3.5*RIGHT).set_color_by_gradient(RED, ORANGE, YELLOW, BLUE, PURPLE) + + text2 = TextMobject("Observing change in function, keeping", r"$x$", r"constant").scale(0.6).move_to(2.6*UP + 3.5*RIGHT).set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE) + + slope_text = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "y}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text[0].set_color("#006400") + slope_text.set_color_by_tex("\\partial",PINK) + slope_text.set_color_by_tex("f",YELLOW_C) + slope_text[5].set_color(RED_C) + + self.add_fixed_in_frame_mobjects(text1, text2) + self.wait() + self.add_fixed_in_frame_mobjects(slope_text) + + dot = Dot().rotate(PI/2).set_color(RED_C) + alpha = ValueTracker(0) + vector = self.get_tangent_vector(alpha.get_value(),parabola,scale=1.5) + dot.add_updater(lambda m: m.move_to(vector.get_center())) + self.play( + ShowCreation(parabola), + GrowFromCenter(dot), + GrowArrow(vector) + ) + vector.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha.get_value()%1,parabola,scale=1.5) + ) + ) + self.add(vector,dot) + self.play(alpha.increment_value, 1, run_time=10, rate_func=linear) + self.wait() + + ''' + for i in np.arange(-2,2,0.2): + self.play(ReplacementTransform(Line(np.array([0,i,0]), np.array([0,i,-i*i + 2]), color = BLUE_C), Line(np.array([0,i+0.2,0]), np.array([0,i+0.2,-(i+0.2)**2 + 2]), color = BLUE_C))) + #self.wait() + ''' + + + self.wait() + self.play(FadeOut(parabola), FadeOut(line), FadeOut(vector), FadeOut(dot), FadeOut(text1), FadeOut(text2), FadeOut(slope_text),FadeOut(surface_eqn)) + + #self.move_camera(phi=80* DEGREES,theta= 90*DEGREES) + self.play(ReplacementTransform(paraboloid_y, paraboloid_copy)) + self.wait() + + def get_tangent_vector(self, proportion, curve, dx=0.001, scale=1): + coord_i = curve.point_from_proportion(proportion) + coord_f = curve.point_from_proportion(proportion + dx) + reference_line = Line(coord_i,coord_f) + unit_vector = reference_line.get_unit_vector() * scale + vector = Line(coord_i - unit_vector, coord_i + unit_vector, color = "#006400", buff=0) + return vector + + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file5_partial_deriv_func_2maximas.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file5_partial_deriv_func_2maximas.py new file mode 100644 index 0000000..7bbb9a7 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file5_partial_deriv_func_2maximas.py @@ -0,0 +1,227 @@ +from manimlib.imports import * + +class MaximaMinima(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 3.5*np.sin(u)*np.cos(v), + 3.5*np.sin(u)*np.sin(v), + 3.5*3.5*np.sin(u)*np.sin(u)*(1+2*np.sin(v)*np.sin(v))*np.exp(1 - 3.5*3.5*np.sin(u)*np.sin(u) ) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + paraboloid_copy1 = paraboloid.copy() + paraboloid_copy2 = paraboloid.copy() + + paraboloid_x = ParametricSurface( + lambda u, v: np.array([ + 3.5*np.sin(u)*np.cos(v), + 3.5*np.sin(u)*np.sin(v), + 3.5*3.5*np.sin(u)*np.sin(u)*(1+2*np.sin(v)*np.sin(v))*np.exp(1 - 3.5*3.5*np.sin(u)*np.sin(u) ) + ]),u_min=0,u_max=PI,v_min=PI,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + paraboloid_y = ParametricSurface( + lambda u, v: np.array([ + 3.5*np.sin(u)*np.cos(v), + 3.5*np.sin(u)*np.sin(v), + 3.5*3.5*np.sin(u)*np.sin(u)*(1+2*np.sin(v)*np.sin(v))*np.exp(1 - 3.5*3.5*np.sin(u)*np.sin(u) ) + ]),u_min=0,u_max=PI,v_min=PI/2,v_max=3*PI/2, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + parabola_x_out =ParametricFunction( + lambda u : np.array([ + u, + 0, + (u*u )*np.exp(1-u*u) + ]),color=RED_E,t_min=-3.5,t_max=3.5, + ) + + parabola_y_out =ParametricFunction( + lambda u : np.array([ + 0, + u, + (3*u*u)*np.exp(1-u*u) + ]),color=PINK,t_min=-3.5,t_max=3.5, + ) + + plane1 = Polygon(np.array([-3.5,0,-3]),np.array([3.5,0,-3]),np.array([3.5,0,3]),np.array([-3.5,0,3]),np.array([-3.5,0,-3]), color = RED_C, fill_color = RED_C, fill_opacity = 0.2) + plane_text_x = TextMobject(r"$y = 0$", color = RED_C).move_to(2*UP + 4.5*RIGHT) + + plane2 = Polygon(np.array([0,-3.5,-3]),np.array([0,3.5,-3]),np.array([0,3.5,3]),np.array([0,-3.5,3]),np.array([0,-3.5,-3]), color = PINK, fill_color = PINK, fill_opacity = 0.2) + plane_text_y = TextMobject(r"$x = 0$", color = PINK).move_to(2*UP + 4.5*RIGHT) + + surface_eqn = TextMobject("Surface", r"$z = (x^2 + 3y^2)e^{(1 - x^2 - y^2)}$", color = YELLOW_C).scale(0.6).move_to(np.array([3.5*LEFT +3.5*UP])) + surface_eqn[0].set_color(BLUE_C) + + self.set_camera_orientation(phi=60 * DEGREES, theta = 45*DEGREES) + + self.add(axes) + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(paraboloid)) + + + #self.move_camera(phi=60 * DEGREES, theta = 45*DEGREES,run_time=3) + + + plane_x = Polygon(np.array([-3.5,2,-3]),np.array([3.5,2,-3]),np.array([3.5,2,3]),np.array([-3.5,2,3]),np.array([-3.5,2,-3]), color = YELLOW_C, fill_color = YELLOW_A, fill_opacity = 0.2) + + plane_y = Polygon(np.array([2,-3.5,-3]),np.array([2,3.5,-3]),np.array([2,3.5,3]),np.array([2,-3.5,3]),np.array([2,-3.5,-3]), color = GREEN_C, fill_color = GREEN_A, fill_opacity = 0.2) + + text_x = TextMobject(r"$x$", "is fixed on this" ,"plane").scale(0.7).to_corner(UL) + text_y = TextMobject(r"$y$", "is fixed on this" ,"plane").scale(0.7).to_corner(UR) + + text_x[0].set_color(RED_C) + text_y[0].set_color(PINK) + text_x[1].set_color(BLUE_C) + text_y[1].set_color(BLUE_C) + text_x[2].set_color(GREEN_C) + text_y[2].set_color(YELLOW_C) + + self.add_fixed_in_frame_mobjects(text_x, text_y) + + for i in range(2,-4,-1): + + parabola_x =ParametricFunction(lambda u : np.array([u,i,(u*u + 3*i*i)*np.exp(1- u*u - i*i)]),color=RED_C,t_min=-3.5,t_max=3.5,) + + parabola_y =ParametricFunction(lambda u : np.array([i,u,(i*i + 3*u*u)*np.exp(1- u*u - i*i)]),color=PINK,t_min=-3.5,t_max=3.5,) + + if(i==2): + self.play(ShowCreation(plane_x), ShowCreation(plane_y)) + parabola_copy_x = parabola_x.copy() + parabola_copy_y = parabola_y.copy() + + + self.play(ShowCreation(parabola_copy_x), ShowCreation(parabola_copy_y)) + self.wait() + self.play(FadeOut(parabola_copy_x), FadeOut(parabola_copy_y)) + + else: + self.play(ApplyMethod(plane_x.move_to, np.array([0,i,0])),ReplacementTransform(parabola_copy_x, parabola_x),ApplyMethod(plane_y.move_to, np.array([i,0,0])),ReplacementTransform(parabola_copy_y, parabola_y)) + self.play(FadeOut(parabola_x), FadeOut(parabola_y)) + self.wait() + + parabola_copy_x = parabola_x.copy() + parabola_copy_y = parabola_y.copy() + + self.play(FadeOut(plane_x), FadeOut(plane_y), FadeOut(text_x), FadeOut(text_y)) + + + self.add_fixed_in_frame_mobjects(surface_eqn) + + self.move_camera(phi=80 * DEGREES, theta = 95*DEGREES) + + self.play(ShowCreation(plane1)) + self.add_fixed_in_frame_mobjects(plane_text_x) + self.wait() + self.play(ReplacementTransform(paraboloid, paraboloid_x)) + self.play(FadeOut(plane1), FadeOut(plane_text_x)) + + line_x = Line(np.array([-3.5,0,0]), np.array([3.5,0,0]), color = YELLOW_E) + + self.play(ShowCreation(parabola_x_out), ShowCreation(line_x)) + + slope_text_x = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "x}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text_x[0].set_color(ORANGE) + slope_text_x.set_color_by_tex("\\partial",GREEN_E) + slope_text_x.set_color_by_tex("f",RED_E) + slope_text_x[5].set_color(YELLOW_E) + + self.add_fixed_in_frame_mobjects(slope_text_x) + + + dot_x = Dot().rotate(PI/2).set_color(YELLOW_E) + alpha_x = ValueTracker(0) + vector_x = self.get_tangent_vector(alpha_x.get_value(),parabola_x_out,scale=1.5) + dot_x.add_updater(lambda m: m.move_to(vector_x.get_center())) + self.play( + ShowCreation(parabola_x_out), + GrowFromCenter(dot_x), + GrowArrow(vector_x) + ) + vector_x.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_x.get_value()%1,parabola_x_out,scale=1.5) + ) + ) + self.add(vector_x,dot_x) + self.play(alpha_x.increment_value, 1, run_time=10, rate_func=linear) + + self.wait(2) + self.play(FadeOut(parabola_x_out), FadeOut(line_x), FadeOut(vector_x), FadeOut(dot_x), FadeOut(slope_text_x)) + + self.move_camera(phi=80* DEGREES,theta= 5*DEGREES) + self.play(ReplacementTransform(paraboloid_x, paraboloid_copy1)) + self.wait() + + + + self.play(ShowCreation(plane2)) + self.add_fixed_in_frame_mobjects(plane_text_y) + self.wait() + self.play(ReplacementTransform(paraboloid_copy1, paraboloid_y)) + self.play(FadeOut(plane2), FadeOut(plane_text_y)) + + line_y = Line(np.array([0,-3.5,0]), np.array([0,3.5,0]), color = GREEN_E) + + self.play(ShowCreation(parabola_y_out), ShowCreation(line_y)) + + slope_text_y = TexMobject("Slope =", "{\\partial", "f", "\\over", "\\partial", "y}").scale(0.6).move_to(2*UP + 3.5*RIGHT) + slope_text_y[0].set_color(ORANGE) + slope_text_y.set_color_by_tex("\\partial",YELLOW_E) + slope_text_y.set_color_by_tex("f",PINK) + slope_text_y[5].set_color(GREEN_E) + + self.add_fixed_in_frame_mobjects(slope_text_y) + + + dot_y = Dot().rotate(PI/2).set_color(GREEN_E) + alpha_y = ValueTracker(0) + vector_y = self.get_tangent_vector(alpha_y.get_value(),parabola_y_out,scale=1.5) + dot_y.add_updater(lambda m: m.move_to(vector_y.get_center())) + self.play( + ShowCreation(parabola_y_out), + GrowFromCenter(dot_y), + GrowArrow(vector_y) + ) + vector_y.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_y.get_value()%1,parabola_y_out,scale=1.5) + ) + ) + self.add(vector_y,dot_y) + self.play(alpha_y.increment_value, 1, run_time=10, rate_func=linear) + + self.wait(2) + self.play(FadeOut(parabola_y_out), FadeOut(line_y), FadeOut(vector_y), FadeOut(dot_y), FadeOut(slope_text_y)) + + self.move_camera(phi=60* DEGREES,theta= 45*DEGREES) + self.play(ReplacementTransform(paraboloid_y, paraboloid_copy2)) + self.wait() + + + + + + + + + + def get_tangent_vector(self, proportion, curve, dx=0.001, scale=1): + coord_i = curve.point_from_proportion(proportion) + coord_f = curve.point_from_proportion(proportion + dx) + reference_line = Line(coord_i,coord_f) + unit_vector = reference_line.get_unit_vector() * scale + vector = Line(coord_i - unit_vector , coord_i + unit_vector, color = ORANGE, buff=0) + return vector + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file6_clariant_rule.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file6_clariant_rule.py new file mode 100644 index 0000000..b79f77c --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file6_clariant_rule.py @@ -0,0 +1,64 @@ +from manimlib.imports import * + +class ClariantRule(Scene): + def construct(self): + derivatives = TextMobject(r"$cos(x)y^3$",r"$-sin(x)y^3$", r"$3cos(x)y^2$", r"$-cos(x)y^3$", r"$-3sin(x)y^2$", r"$-3sin(x)y^2$", r"$6cos(x)y$") + + partial_derivatives = TextMobject(r"$\frac{\partial}{\partial x}$", r"$\frac{\partial}{\partial y}$") + + + derivatives[0].move_to(2*UP).set_color(PURPLE) + derivatives[1].move_to(3*LEFT).set_color(YELLOW_C) + derivatives[2].move_to(3*RIGHT).set_color(BLUE_C) + + arrrow_1 = Arrow(derivatives[0].get_bottom(), derivatives[1].get_top()) + arrrow_1_lab = partial_derivatives[0].copy().scale(0.7) + arrrow_1_lab.move_to(2.5*LEFT+ 1.3*UP) + + arrrow_2 = Arrow(derivatives[0].get_bottom(), derivatives[2].get_top()) + arrrow_2_lab = partial_derivatives[1].copy().scale(0.7) + arrrow_2_lab.move_to(2.5*RIGHT+ 1.3*UP) + + self.play(Write(derivatives[0])) + self.play(GrowArrow(arrrow_1), GrowArrow(arrrow_2), Write(arrrow_1_lab), Write(arrrow_2_lab)) + + self.play(Write(derivatives[1])) + self.play(Write(derivatives[2])) + + derivatives[3].move_to(2*DOWN + 4.5*LEFT).set_color(GREEN_C) + derivatives[4].move_to(2*DOWN + 1.5*LEFT).set_color(PINK) + derivatives[5].move_to(2*DOWN + 1.5*RIGHT).set_color(PINK) + derivatives[6].move_to(2*DOWN + 4.5*RIGHT).set_color(ORANGE) + + arrrow_3 = Arrow(derivatives[1].get_bottom(), derivatives[3].get_top()) + arrrow_3_lab = partial_derivatives[0].copy().scale(0.7) + arrrow_3_lab.move_to(4.3*LEFT+ 0.8*DOWN) + + arrrow_4 = Arrow(derivatives[1].get_bottom(), derivatives[4].get_top()) + arrrow_4_lab = partial_derivatives[1].copy().scale(0.7) + arrrow_4_lab.move_to(1.6*LEFT+ 0.8*DOWN) + + arrrow_5 = Arrow(derivatives[2].get_bottom(), derivatives[5].get_top()) + arrrow_5_lab = partial_derivatives[0].copy().scale(0.7) + arrrow_5_lab.move_to(1.6*RIGHT+ 0.8*DOWN) + + arrrow_6 = Arrow(derivatives[2].get_bottom(), derivatives[6].get_top()) + arrrow_6_lab = partial_derivatives[1].copy().scale(0.7) + arrrow_6_lab.move_to(4.3*RIGHT+ 0.8*DOWN) + + self.play(GrowArrow(arrrow_3), GrowArrow(arrrow_4), Write(arrrow_3_lab), Write(arrrow_4_lab)) + self.play(Write(derivatives[3]), Write(derivatives[4])) + + self.play(GrowArrow(arrrow_5), GrowArrow(arrrow_6), Write(arrrow_5_lab), Write(arrrow_6_lab)) + self.play(Write(derivatives[5]), Write(derivatives[6])) + + brace1 = Brace(derivatives[4:6], DOWN, buff = SMALL_BUFF, color = RED_C) + brace_t1 = brace1.get_text("Mixed partial derivatives are the same!") + brace_t1.set_color(RED_C) + + self.play(GrowFromCenter(brace1), FadeIn(brace_t1)) + + self.wait() + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file7_partial_deriv_clariant_rule.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file7_partial_deriv_clariant_rule.py new file mode 100644 index 0000000..313c6cd --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file7_partial_deriv_clariant_rule.py @@ -0,0 +1,108 @@ +from manimlib.imports import * + +class ClariantRule(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + function = ParametricSurface( + lambda u, v: np.array([ + 3.5*np.sin(u)*np.cos(v), + 3.5*np.sin(u)*np.sin(v), + 3.5*3.5*np.sin(u)*np.sin(u)*(1+2*np.sin(v)*np.sin(v))*np.exp(1 - 3.5*3.5*np.sin(u)*np.sin(u) ) + ]),u_min=0,u_max=PI,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + + function_copy1 = function.copy() + function_copy2 = function.copy() + + func_x =ParametricFunction( + lambda u : np.array([ + u, + -1, + (u*u )*np.exp(1-u*u) + ]),color=RED_E,t_min=-3.5,t_max=3.5, + ) + + func_y =ParametricFunction( + lambda u : np.array([ + 0, + u, + (3*u*u)*np.exp(1-u*u) + ]),color=PINK,t_min=-3.5,t_max=3.5, + ) + + plane_x = Polygon(np.array([-3.5,-1,-3]),np.array([3.5,-1,-3]),np.array([3.5,-1,3]),np.array([-3.5,-1,3]),np.array([-3.5,-1,-3]), color = YELLOW_E, fill_color = YELLOW_B, fill_opacity = 0.1) + plane_text_x = TextMobject(r"$y = -1$", color = YELLOW_C).move_to(np.array([5,0,2.7])).scale(0.7) + + plane_y = Polygon(np.array([0,-3.5,-3]),np.array([0,3.5,-3]),np.array([0,3.5,3]),np.array([0,-3.5,3]),np.array([0,-3.5,-3]), color = GREEN_E, fill_color = GREEN_B, fill_opacity = 0.1) + plane_text_y = TextMobject(r"$x = 0$", color = GREEN_C).move_to(np.array([0,4,2.7])).scale(0.7) + + surface_eqn = TextMobject("Surface", r"$z = (x^2 + 3y^2)e^{(1 - x^2 - y^2)}$", color = YELLOW_C).scale(0.6).move_to(np.array([4.6*LEFT+3.5*UP])) + surface_eqn[0].set_color(BLUE_C) + + self.set_camera_orientation(phi=60 * DEGREES, theta = 45*DEGREES) + + self.add(axes) + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(function)) + + self.add_fixed_in_frame_mobjects(surface_eqn) + + self.play(ShowCreation(plane_x), ShowCreation(plane_y)) + self.add_fixed_orientation_mobjects(plane_text_x, plane_text_y) + + self.play(ShowCreation(func_x), ShowCreation(func_y)) + + dot_x = Dot().rotate(PI/2).set_color(YELLOW_E) + alpha_x = ValueTracker(0) + vector_x = self.get_tangent_vector(alpha_x.get_value(),func_x,scale=1.5) + dot_x.add_updater(lambda m: m.move_to(vector_x.get_center())) + self.play( + ShowCreation(func_x), + GrowFromCenter(dot_x), + GrowArrow(vector_x) + ) + vector_x.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_x.get_value()%1,func_x,scale=1.5) + ) + ) + dot_y = Dot().rotate(PI/2).set_color(GREEN_E) + alpha_y = ValueTracker(0) + vector_y = self.get_tangent_vector(alpha_y.get_value(),func_y,scale=1.5) + dot_y.add_updater(lambda m: m.move_to(vector_y.get_center())) + self.play( + ShowCreation(func_y), + GrowFromCenter(dot_y), + GrowArrow(vector_y) + ) + vector_y.add_updater( + lambda m: m.become( + self.get_tangent_vector(alpha_y.get_value()%1,func_y,scale=1.5) + ) + ) + self.add(vector_x,dot_x) + + self.play(alpha_x.increment_value, 1, run_time=10, rate_func=linear) + + self.add(vector_y,dot_y) + self.play(alpha_y.increment_value, 1, run_time=10, rate_func=linear) + + self.wait(2) + + + + + + + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file8_chain_rule.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file8_chain_rule.py new file mode 100644 index 0000000..f50d2d1 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/file8_chain_rule.py @@ -0,0 +1,60 @@ +from manimlib.imports import * + +class ChainRule(Scene): + def construct(self): + + chain_rule = TextMobject(r"$\frac{dw}{dt}$", r"=", r"$\frac{\partial w}{\partial x}$", r"$\frac{dx}{dt}$", r"+", r"$\frac{\partial w}{\partial y}$", r"$\frac{dy}{dt}$").move_to(4*RIGHT).scale(0.8) + + chain_rule[0].set_color(ORANGE) + chain_rule[2].set_color(GREEN_C) + chain_rule[3].set_color(RED_C) + chain_rule[5].set_color(YELLOW_C) + chain_rule[6].set_color(BLUE_C) + + functions = TextMobject(r"$w =f(x,y)$",r"$x$", r"$y$", r"$t$") + + functions[0].move_to(3.3*UP+1*LEFT).set_color(ORANGE) + functions[1].move_to(3.3*LEFT).set_color(PURPLE) + functions[2].move_to(1.3*RIGHT).set_color(PURPLE) + functions[3].move_to(3.3*DOWN+1*LEFT).set_color(WHITE) + + partial_derivatives = TextMobject(r"$\frac{\partial w}{\partial x}$", r"$\frac{\partial w}{\partial y}$") + + partial_derivatives[0].move_to(1.5*UP+3*LEFT).set_color(GREEN_C) + partial_derivatives[1].move_to(1.5*UP+1*RIGHT).set_color(YELLOW_C) + + derivatives = TextMobject(r"$\frac{dx}{dt}$", r"$\frac{dy}{dt}$") + + derivatives[0].move_to(1.5*DOWN+3*LEFT).set_color(RED_C) + derivatives[1].move_to(1.5*DOWN+1*RIGHT).set_color(BLUE_C) + + line_f_x = Line(np.array([-1,3,0]), np.array([-3,0,0]), color = BLUE_C) + line_f_y = Line(np.array([-1,3,0]), np.array([1,0,0]), color = BLUE_C) + line_x_t = Line(np.array([-3,0,0]), np.array([-1,-3,0]), color = BLUE_C) + line_y_t = Line(np.array([1,0,0]), np.array([-1,-3,0]), color = BLUE_C) + + dot_f = Dot().shift(np.array([-1,3,0])).set_color(BLUE_C) + dot_x = Dot().shift(np.array([-3,0,0])).set_color(BLUE_C) + dot_y = Dot().shift(np.array([1,0,0])).set_color(BLUE_C) + dot_t = Dot().shift(np.array([-1,-3,0])).set_color(BLUE_C) + + variables = TextMobject("Dependent Variable","Intermediate Variables", "Dependent Variable").set_color_by_gradient(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE).scale(0.7) + variables[0].move_to(3.3*UP+3.5*RIGHT) + variables[1].move_to(3.5*RIGHT) + variables[2].move_to(3.3*DOWN+3.5*RIGHT) + + self.play(ShowCreation(dot_f), Write(functions[0])) + self.play(ShowCreation(dot_x), ShowCreation(line_f_x), Write(functions[1]), ShowCreation(dot_y), ShowCreation(line_f_y), Write(functions[2])) + self.play(Write(partial_derivatives[0]), Write(partial_derivatives[1])) + self.wait() + + self.play(ShowCreation(dot_t), ShowCreation(line_x_t), ShowCreation(line_y_t), Write(functions[3])) + self.play(Write(derivatives[0]), Write(derivatives[1])) + self.wait() + + self.play(Write(variables[0]), Write(variables[1]), Write(variables[2])) + + self.play(FadeOut(variables)) + self.play(Write(chain_rule)) + self.wait() + \ No newline at end of file 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..560a7c0 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 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..f4c3f49 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..e0e42db 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 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..30682cb 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 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..aa74437 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file6_clariant_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file6_clariant_rule.gif new file mode 100644 index 0000000..8377827 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file6_clariant_rule.gif differ 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..ecef499 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 diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif new file mode 100644 index 0000000..596b08d Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/partial-derivatives/gifs/file8_chain_rule.gif differ -- cgit From 5ba2e649e039e508950dd317466ddadb3a7017d5 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 11:59:46 +0530 Subject: Update README.md --- .../multivariable-functions-and-paritial-derivatives/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/README.md index 7ff6b61..97a0fb7 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/README.md @@ -4,6 +4,6 @@ Github Account : nishanpoojary ## Sub-Topics Covered: + Scalar Functions + Multivariable Functions -+ Limits and Continuity of Multivariable Functions ++ Multivariable Limits and Continuity + Partial Derivatives + Directonal Derivatives -- cgit From f876f804762cdab659bc6734fab82d249da3b9fa Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 12:02:32 +0530 Subject: Create README.md --- .../scalar-functions/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md new file mode 100644 index 0000000..557a65a --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md @@ -0,0 +1,20 @@ +**file1_area_under_func** +![file1_area_under_func](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file1_area_under_func.gif) + +**file2_volume_under_surface** +![file2_volume_under_surface](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file2_volume_under_surface.gif) + +**file3_y_limit_dependent_on_x** +![file3_y_limit_dependent_on_x](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file3_y_limit_dependent_on_x.gif) + +**file4_non_rect_region** +![file4_non_rect_region](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file4_non_rect_region.gif) + +**file5_elementary_area** +![file5_elementary_area](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file5_elementary_area.gif) + +**file6_doing_integration** +![file6_doing_integration](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file6_doing_integration.gif) + +**file7_int_process_of_example** +![file7_int_process_of_example](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file7_int_process_of_example.gif) -- cgit From cf20024af605ba2cf807dbf46d76a82f2372bfa5 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 12:03:24 +0530 Subject: Update README.md --- .../scalar-functions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md index 557a65a..3783e98 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md @@ -1,5 +1,5 @@ **file1_area_under_func** -![file1_area_under_func](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file1_area_under_func.gif) +![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif) **file2_volume_under_surface** ![file2_volume_under_surface](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file2_volume_under_surface.gif) -- cgit From 1955b3a5ee074c7f4513344e9d75150b8b91db42 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 12:03:56 +0530 Subject: Update README.md --- .../scalar-functions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md index 3783e98..e5164e2 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md @@ -1,4 +1,4 @@ -**file1_area_under_func** +**file1_scalar_function** ![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif) **file2_volume_under_surface** -- cgit From 05920e4b687bb4cf488219f10fc4719e00cde05b Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 12:08:31 +0530 Subject: Added directional-derivatives folder --- .../file1_directional_deriv.py | 85 ++++++++++++++++ .../directional-derivatives/file2_gradient.py | 103 ++++++++++++++++++++ .../file3_gradient_level_curves.py | 107 +++++++++++++++++++++ .../gifs/file1_directional_deriv.gif | Bin 0 -> 1421988 bytes .../gifs/file2_gradient.gif | Bin 0 -> 1946515 bytes .../gifs/file3_gradient_level_curves.gif | Bin 0 -> 6070951 bytes 6 files changed, 295 insertions(+) create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file1_directional_deriv.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file2_gradient.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file3_gradient_level_curves.py create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file1_directional_deriv.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file2_gradient.gif create mode 100644 FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file3_gradient_level_curves.gif (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file1_directional_deriv.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file1_directional_deriv.py new file mode 100644 index 0000000..677d821 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file1_directional_deriv.py @@ -0,0 +1,85 @@ +from manimlib.imports import * + +class GeomRepresen(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + 3*np.sin(u)*np.cos(v), + 3*np.sin(u)*np.sin(v), + -0.25*3*3*np.sin(u)*np.sin(u)+2 + ]),u_min=0,u_max=PI/4,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.7, + resolution=(15, 32)).scale(1) + + parabola_curve = ParametricFunction( + lambda u : np.array([ + u, + -u, + -0.5*(u*u)+2 + ]),color=PINK,t_min=-1.5,t_max=1.5, + ) + + circle = Circle(radius = 2.22 , color = BLACK, fill_color = BLUE_C, fill_opacity= 0.3, stroke_width=0.1) + + plane = Polygon(np.array([2.5,-2.5,0]),np.array([-2.5,2.5,0]),np.array([-2.5,2.5,2.5]),np.array([2.5,-2.5,2.5]),np.array([2.5,-2.5,0]), color = BLACK, fill_color = PINK, fill_opacity= 0.2, stroke_width=0.1) + + line = DashedLine(np.array([1,-1,0]), np.array([1,-1,1.5]), color = YELLOW_C) + + tangent_line = Line(np.array([1.5,-1.5,1]), np.array([0.5,-0.5,2]), color = RED_C) + + vector = Arrow(np.array([1,-1,0]), np.array([0.5,-0.5,0]), buff=0.01, color = GREEN_C) + + dot1 =Sphere(radius=0.08).move_to(np.array([1,-1,0])).set_fill(YELLOW_C) + dot2 =Sphere(radius=0.08).move_to(np.array([1,-1,1.5])).set_fill(YELLOW_C) + + dot1_lab = TextMobject(r"$P_0$").scale(0.6).move_to(np.array([1,-1,1.8])).set_color(RED_C) + dot2_lab = TextMobject(r"$(x_0,y_0)$").scale(0.6).move_to(np.array([1.6,-1,0])).set_color(PURPLE) + vector_lab = TextMobject(r"$\hat{u}$").scale(0.8).move_to(np.array([1.2,-0.5,0])).set_color(GREEN_C) + domain_lab = TextMobject(r"$D$").scale(0.6).move_to(np.array([1,1,0])).set_color(GREEN_C) + func_lab = TextMobject(r"$z = f(x,y)$").scale(0.6).move_to(1*UP + 2.8*RIGHT).set_color(BLUE_C) + directional_deriv_lab = TextMobject(r"Slope = $D_{\hat{u}}f(x_0,y_0)$").scale(0.6).move_to(2.2*UP + 1.5*RIGHT).set_color(YELLOW_C) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.set_camera_orientation(phi=65 * DEGREES, theta = 20*DEGREES) + + self.play(ShowCreation(paraboloid)) + self.add_fixed_in_frame_mobjects(func_lab) + self.wait() + + #self.play(ShowCreation(circle)) + self.bring_to_front(circle) + self.wait() + self.add_fixed_orientation_mobjects(domain_lab) + self.wait() + + self.play(ShowCreation(plane), ShowCreation(parabola_curve)) + self.play(ShowCreation(dot1), GrowArrow(line), ShowCreation(dot2)) + self.add_fixed_orientation_mobjects(dot1_lab) + self.wait() + self.add_fixed_orientation_mobjects(dot2_lab) + self.wait() + + self.play(ShowCreation(tangent_line)) + self.add_fixed_in_frame_mobjects(directional_deriv_lab) + self.wait() + + self.play(GrowArrow(vector)) + self.add_fixed_orientation_mobjects(vector_lab) + self.wait() + + + self.begin_ambient_camera_rotation(rate=0.1) + self.wait(3) + + diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file2_gradient.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file2_gradient.py new file mode 100644 index 0000000..e9fef50 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file2_gradient.py @@ -0,0 +1,103 @@ +from manimlib.imports import * + +class Gradient(ThreeDScene): + def construct(self): + axes = ThreeDAxes() # creates a 3D Axis + + + quadrant = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + 2*np.cos(u) + ]),u_min=0,u_max=PI/3,v_min=0,v_max=PI/2,checkerboard_colors=[GREEN_C, GREEN_E], + resolution=(15, 32)).scale(1) + + quadrant_curve = ParametricSurface( + lambda u, v: np.array([ + 2*np.sin(u)*np.cos(v), + 2*np.sin(u)*np.sin(v), + 2*np.cos(u) + ]),u_min=34*DEGREES,u_max=38*DEGREES,v_min=0,v_max=PI/2,checkerboard_colors=[YELLOW_C, YELLOW_E], + resolution=(15, 32)).scale(1) + + + + dot1 =Sphere(radius=0.05).move_to(np.array([1,1,0])).set_fill(YELLOW_C) + dot2 =Sphere(radius=0.05).move_to(np.array([1,1,1.732])).set_fill(YELLOW_C) + + dot1_line = DashedLine(np.array([1,1,1.732]), np.array([0,2,2]), color = WHITE) + dot1_lab = TextMobject(r"$P_0(x_0,y_0,z_0)$").move_to(np.array([0,2.1,2.2])).set_color(YELLOW_C).scale(0.6) + #dot2_line = Line(np.array([0.8,0.8,0]), np.array([1,0.6,0]), color = PINK) + + positive_vector = Arrow(np.array([1,1,0]), np.array([0.5,0.5,0]), buff=0.001, color = BLUE_C) + positive_gradient = Arrow(np.array([1,1,1.732]), np.array([0.5,0.5,1.9362]), buff=0.001, color = BLUE_C) + positive_gradient_lab = TextMobject(r"$\nabla f$").move_to(np.array([0.5,0.3,0])).set_color(BLUE_C).scale(0.5) + + negative_vector = Arrow(np.array([1,1,0]), np.array([1.5,1.5,0]), buff=0.001, color = RED_C) + negative_gradient = Arrow(np.array([1,1,1.732]), np.array([1.5,1.5,1.322]), buff=0.001, color = RED_C) + negative_gradient_lab = TextMobject(r"$-\nabla f$").move_to(np.array([1.6,1.6,0])).set_color(RED_C).scale(0.5) + + positive_vector_line = DashedLine(np.array([0.8,0.8,0]), np.array([1,-2,0]), color = WHITE) + positive_vector_lab = TextMobject(r"Most Rapid increase in $f$").move_to(np.array([1.6,-3.6,0])).set_color(BLUE_C).scale(0.6) + negative_vector_line = DashedLine(np.array([1.2,1.2,0]), np.array([3,-1.5,0]), color = WHITE) + negative_vector_lab = TextMobject(r"Most Rapid decrease in $f$").move_to(np.array([3.6,-3,0])).set_color(RED_C).scale(0.6) + + + + line1 = DashedLine(np.array([0.5,0.5,0]), np.array([0.5,0.5,1.9362]), color = BLUE_C) + line2 = DashedLine(np.array([1,1,0]), np.array([1,1,1.732]), color = YELLOW_C) + line3 = DashedLine(np.array([1.5,1.5,0]), np.array([1.5,1.5,1.322]), color = RED_C) + + curve_vector1 = Arrow(np.array([1,1,0]), np.array([1.5,0.5,0]), buff=0.001, color = YELLOW_C) + curve_vector2 = Arrow(np.array([1,1,0]), np.array([0.5,1.5,0]), buff=0.001, color = YELLOW_C) + + curve_vector1_line = DashedLine(np.array([1.2,0.8,0]), np.array([1,2.5,0]), color = WHITE) + curve_vector2_line = DashedLine(np.array([0.8,1.2,0]), np.array([1,2.5,0]), color = WHITE) + curve_vector_lab = TextMobject(r"Zero Change in $f$").move_to(np.array([0.7,3.6,0])).set_color(PINK).scale(0.6) + + #square = Square(side_length = 0.5).rotate(45*DEGREES).move_to(np.array([1.025,0.975,0])) + line_x = Line(np.array([0.8,0.8,0]), np.array([1,0.6,0]), color = PINK) + line_y = Line(np.array([1.2,0.8,0]), np.array([1,0.6,0]), color = PINK) + + ninety_degree = VGroup(line_x, line_y) + + self.set_camera_orientation(phi=60* DEGREES, theta = 20*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(ShowCreation(quadrant)) + self.wait() + self.play(ShowCreation(dot1), ShowCreation(dot2)) + self.wait() + self.play(GrowArrow(positive_vector), GrowArrow(positive_gradient)) + self.wait() + self.play(GrowArrow(negative_vector), GrowArrow(negative_gradient)) + self.wait() + self.play(GrowArrow(line1), GrowArrow(line2), GrowArrow(line3)) + self.wait() + self.play(ShowCreation(quadrant_curve)) + self.wait() + self.play(GrowArrow(curve_vector1), GrowArrow(curve_vector2), ShowCreation(ninety_degree)) + self.wait() + self.play(GrowArrow(dot1_line)) + self.add_fixed_orientation_mobjects(dot1_lab) + self.wait() + self.play(GrowArrow(curve_vector1_line), GrowArrow(curve_vector2_line)) + self.add_fixed_orientation_mobjects(curve_vector_lab) + self.wait() + self.add_fixed_orientation_mobjects(positive_gradient_lab, negative_gradient_lab) + self.wait() + self.play(GrowArrow(positive_vector_line), GrowArrow(negative_vector_line)) + self.add_fixed_orientation_mobjects(positive_vector_lab, negative_vector_lab) + self.begin_ambient_camera_rotation(rate=0.1) + self.wait(3) \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file3_gradient_level_curves.py b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file3_gradient_level_curves.py new file mode 100644 index 0000000..a3b88e5 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/file3_gradient_level_curves.py @@ -0,0 +1,107 @@ +from manimlib.imports import * + +class GradientLevelCurves(ThreeDScene): + def construct(self): + axes = ThreeDAxes() + + paraboloid = ParametricSurface( + lambda u, v: np.array([ + u*np.cos(v), + u*np.sin(v), + -u*u+2 + ]),u_min=-1.414,u_max=1.414,v_min=0,v_max=2*PI, color = BLUE_C, fill_color = BLUE_C, fill_opacity = 0.1, + resolution=(15, 32)).scale(1) + + plane_0 = Polygon(np.array([2,-2,0]),np.array([2,2,0]),np.array([-2,2,0]),np.array([-2,-2,0]),np.array([2,-2,0]), color = BLUE_E, fill_color = BLUE_E, fill_opacity = 0.3) + plane_0_lab = TextMobject("C = 0").move_to(0.4*UP+3.2*RIGHT).set_color(BLUE_E).scale(0.6) + circle_0 = Circle(radius = 1.414 , color = BLUE_E) + circle_0_lab = TextMobject("0").move_to(1.1*DOWN+1.1*RIGHT).set_color(BLUE_E).scale(0.6) + + plane_0_5 = Polygon(np.array([2,-2,0.5]),np.array([2,2,0.5]),np.array([-2,2,0.5]),np.array([-2,-2,0.5]),np.array([2,-2,0.5]), color = GREEN_C, fill_color = GREEN_C, fill_opacity = 0.3) + plane_0_5_lab = TextMobject("C = 0.5").move_to(0.8*UP+3.4*RIGHT).set_color(GREEN_C).scale(0.6) + circle_0_5 = Circle(radius = 1.224 , color = GREEN_C) + circle_0_5_lab = TextMobject("0.5").move_to(0.9*DOWN+0.9*RIGHT).set_color(GREEN_C).scale(0.6) + circle_0_5_copy = circle_0_5.copy().move_to(np.array([0,0,0.5])) + + plane_1 = Polygon(np.array([2,-2,1]),np.array([2,2,1]),np.array([-2,2,1]),np.array([-2,-2,1]),np.array([2,-2,1]), color = YELLOW_C, fill_color = YELLOW_C, fill_opacity = 0.3) + plane_1_lab = TextMobject("C = 1").move_to(1.2*UP+3.3*RIGHT).set_color(YELLOW_C).scale(0.6) + circle_1 = Circle(radius = 1 , color = YELLOW_C) + circle_1_lab = TextMobject("1").move_to(0.7*DOWN+0.7*RIGHT).set_color(YELLOW_C).scale(0.6) + circle_1_copy = circle_1.copy().move_to(np.array([0,0,1])) + + plane_1_5 = Polygon(np.array([2,-2,1.5]),np.array([2,2,1.5]),np.array([-2,2,1.5]),np.array([-2,-2,1.5]),np.array([2,-2,1.5]), color = ORANGE, fill_color = ORANGE, fill_opacity = 0.3) + plane_1_5_lab = TextMobject("C = 1.5").move_to(1.7*UP+3.4*RIGHT).set_color(ORANGE).scale(0.6) + circle_1_5 = Circle(radius = 0.707 , color = ORANGE) + circle_1_5_lab = TextMobject("1.5").move_to(0.5*DOWN+0.5*RIGHT).set_color(ORANGE).scale(0.6) + circle_1_5_copy = circle_1_5.copy().move_to(np.array([0,0,1.5])) + + plane_2 = Polygon(np.array([2,-2,2]),np.array([2,2,2]),np.array([-2,2,2]),np.array([-2,-2,2]),np.array([2,-2,2]), color = RED_C, fill_color = RED_C, fill_opacity = 0.3) + plane_2_lab = TextMobject("C = 2").move_to(2.1*UP+3.3*RIGHT).set_color(RED_C).scale(0.6) + dot_2 = Dot().set_fill(RED_C) + circle_2_lab = TextMobject("2").move_to(0.2*DOWN+0.2*RIGHT).set_color(RED_C).scale(0.6) + dot_2_copy = dot_2.copy().move_to(np.array([0,0,2])) + + vector1 = Arrow(np.array([0.99,-0.99,0]), np.array([0.865,-0.865,0.5]), buff=0.01, color = RED_C).set_stroke(width=3) + gradient1 = Arrow(np.array([0.99,-0.99,0]), np.array([0.865,-0.865,0]), buff=0.01, color = RED_C).set_stroke(width=3) + + vector2 = Arrow(np.array([0.865,-0.865,0.5]), np.array([0.707,-0.707,1]), buff=0.01, color = RED_C).set_stroke(width=3) + gradient2 = Arrow(np.array([0.865,-0.865,0]), np.array([0.707,-0.707,0]), buff=0.01, color = RED_C).set_stroke(width=3) + + vector3 = Arrow(np.array([0.707,-0.707,1]), np.array([0.499,-0.499,1.5]), buff=0.01, color = RED_C).set_stroke(width=3) + gradient3 = Arrow(np.array([0.707,-0.707,0]), np.array([0.499,-0.499,0]), buff=0.01, color = RED_C).set_stroke(width=3) + + vector4 = Arrow(np.array([0.499,-0.499,1.5]), np.array([0,0,2]), buff=0.01, color = RED_C).set_stroke(width=3) + gradient4 = Arrow(np.array([0.499,-0.499,0]), np.array([0,0,0]), buff=0.01, color = RED_C).set_stroke(width=3) + + + self.set_camera_orientation(phi=80 * DEGREES, theta = 0*DEGREES) + #self.set_camera_orientation(phi=45 * DEGREES, theta = -20*DEGREES) + + self.add(axes) + + axis = TextMobject(r"X",r"Y",r"Z") + axis[0].move_to(6*RIGHT) + axis[1].move_to(6*UP) + axis[2].move_to(np.array([0,0,3.7])) + + self.add_fixed_orientation_mobjects(axis[2]) + self.add_fixed_orientation_mobjects(axis[0]) + self.add_fixed_orientation_mobjects(axis[1]) + + self.play(Write(paraboloid)) + self.wait() + self.play(ShowCreation(plane_0), ShowCreation(circle_0)) + self.add_fixed_in_frame_mobjects(plane_0_lab) + self.wait() + self.play(ShowCreation(plane_0_5), ShowCreation(circle_0_5_copy), ShowCreation(circle_0_5)) + self.add_fixed_in_frame_mobjects(plane_0_5_lab) + self.wait() + self.play(ShowCreation(plane_1), ShowCreation(circle_1_copy), ShowCreation(circle_1)) + self.add_fixed_in_frame_mobjects(plane_1_lab) + self.wait() + self.play(ShowCreation(plane_1_5), ShowCreation(circle_1_5_copy), ShowCreation(circle_1_5)) + self.add_fixed_in_frame_mobjects(plane_1_5_lab) + self.wait() + self.play(ShowCreation(plane_2), ShowCreation(dot_2_copy), ShowCreation(dot_2)) + self.add_fixed_in_frame_mobjects(plane_2_lab) + self.wait() + self.move_camera(phi=60 * DEGREES, theta = 30*DEGREES,run_time=3) + self.play(FadeOut(plane_0), FadeOut(plane_0_lab), FadeOut(plane_0_5), FadeOut(plane_0_5_lab), FadeOut(plane_1), FadeOut(plane_1_lab), FadeOut(plane_1_5), FadeOut(plane_1_5_lab), FadeOut(plane_2), FadeOut(plane_2_lab)) + self.play(FadeOut(circle_0_5_copy), FadeOut(circle_1_copy), FadeOut(circle_1_5_copy), FadeOut(dot_2_copy)) + + self.move_camera(phi=45 * DEGREES, theta = -20*DEGREES,run_time=3) + self.play(Write(vector1), Write(gradient1)) + self.wait() + self.play(Write(vector2), Write(gradient2)) + self.wait() + self.play(Write(vector3), Write(gradient3)) + self.wait() + self.play(Write(vector4), Write(gradient4)) + self.wait() + self.move_camera(phi=0 * DEGREES, theta = 0*DEGREES,run_time=3) + self.play(FadeOut(paraboloid)) + self.play(FadeOut(vector1), FadeOut(vector2), FadeOut(vector3), FadeOut(vector4)) + self.wait() + self.add_fixed_in_frame_mobjects(circle_0_lab, circle_0_5_lab, circle_1_lab, circle_1_5_lab,circle_2_lab) + self.wait(4) + \ No newline at end of file diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file1_directional_deriv.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file1_directional_deriv.gif new file mode 100644 index 0000000..39305d5 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file1_directional_deriv.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file2_gradient.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file2_gradient.gif new file mode 100644 index 0000000..d96f330 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file2_gradient.gif differ diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file3_gradient_level_curves.gif b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file3_gradient_level_curves.gif new file mode 100644 index 0000000..f1bf06a Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/directional-derivatives/gifs/file3_gradient_level_curves.gif differ -- cgit From 2e8b30984e1719a0508597cb96ce1872770583f3 Mon Sep 17 00:00:00 2001 From: nishanpoojary Date: Wed, 1 Jul 2020 12:12:32 +0530 Subject: Update README.md --- .../scalar-functions/README.md | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md index e5164e2..4339c30 100644 --- a/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md +++ b/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/README.md @@ -1,20 +1,20 @@ **file1_scalar_function** ![file1_scalar_function](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file1_scalar_functions.gif) -**file2_volume_under_surface** -![file2_volume_under_surface](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file2_volume_under_surface.gif) +**file2_domain_range** +![file2_domain_range](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file2_domain_range.gif) -**file3_y_limit_dependent_on_x** -![file3_y_limit_dependent_on_x](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file3_y_limit_dependent_on_x.gif) +**file3_parabola_example** +![file3_parabola_example](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file3_parabola_example.gif) -**file4_non_rect_region** -![file4_non_rect_region](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file4_non_rect_region.gif) +**file4_level_curves** +![file4_non_rect_region](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file4_level_curves.gif) -**file5_elementary_area** -![file5_elementary_area](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file5_elementary_area.gif) +**file5_level_surface** +![file5_level_surface](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file5_level_surface.gif) -**file6_doing_integration** -![file6_doing_integration](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file6_doing_integration.gif) +**file6_scalar_function_application** +![file6_scalar_function_application](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file6_scalar_function_application.gif) -**file7_int_process_of_example** -![file7_int_process_of_example](https://github.com/panditsomnath10016git/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/integrals-of-multivariable-functions/double-integrals/file7_int_process_of_example.gif) +**file7_neural_nets** +![file7_neural_nets](https://github.com/nishanpoojary/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/multivariable-functions-and-paritial-derivatives/scalar-functions/gifs/file7_neural_nets.gif) -- cgit From 25569ab09dc79cb9d4e1b424ec7dd1a0a7c90edc Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Wed, 1 Jul 2020 13:00:25 +0530 Subject: last day --- .../file3_curvature_interpretation.gif | Bin 0 -> 702280 bytes .../file3_curvature_interpretation.py | 42 +++++++ .../file3_curvature_intuition.gif | Bin 271189 -> 0 bytes .../file4_different_curvature_single_curve.py | 16 ++- .../general-parametric-curves/file2_cycloid.gif | Bin 13674 -> 0 bytes .../file1_tnb_basic.gif | Bin 1990818 -> 0 bytes .../file1_tnb_basic.py | 31 ----- .../file1_tnb_creation.gif | Bin 0 -> 1708693 bytes .../file1_tnb_creation.py | 66 +++++++++++ .../file2_tnb_basic.gif | Bin 0 -> 2002004 bytes .../file2_tnb_basic.py | 36 ++++++ .../file2_tnb_frame_manim.gif | Bin 886891 -> 0 bytes .../file2_tnb_frame_manim.py | 126 --------------------- .../file3_tnb_frame_manim.gif | Bin 0 -> 886891 bytes .../file3_tnb_frame_manim.py | 126 +++++++++++++++++++++ .../file4_fs1.gif | Bin 0 -> 551048 bytes .../file4_fs1.py | 23 ++++ .../file5_fs2.gif | Bin 0 -> 629437 bytes .../file5_fs2.py | 28 +++++ 19 files changed, 333 insertions(+), 161 deletions(-) create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_intuition.gif delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file2_cycloid.gif delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.py create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.py delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif delete mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.py create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.py create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.gif create mode 100644 FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.py (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif new file mode 100644 index 0000000..39489b7 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py new file mode 100644 index 0000000..cf6b032 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py @@ -0,0 +1,42 @@ +from manimlib.imports import * + +class interpretation(Scene): + def construct(self): + tgt = Vector((1, 2, 0), color = YELLOW) + tgtText = TextMobject(r'$r\prime (t)$').next_to(tgt, UP, buff = 0).scale(0.7) + tgt2 = DashedLine((0,0,0),(1, 2, 0), color = GRAY).shift(DOWN + 2*RIGHT) + + nm = Vector((2, -1, 0), color = BLUE) + nmText = TextMobject(r'$r\prime\prime (t)$').next_to(nm, DOWN+RIGHT, buff = 0).scale(0.7) + nm2 = DashedLine((0,0,0),(2, -1, 0), color = GRAY).shift(2*UP + RIGHT) + square = Square(fill_color = WHITE, fill_opacity = 0.2).rotate(63*DEGREES).shift(0.5*UP +1.5*RIGHT).scale(1.1) + square.set_stroke(width = 0.1) + arrow = CurvedArrow(square.get_center() + np.array([2,1,0]), square.get_center() + np.array([0.5,0,0])) + arrowText = TextMobject(r'$r\prime (t)\times r\prime\prime (t)$').next_to(arrow.get_start(), DOWN+1*RIGHT, buff = 0).scale(0.7) + + text1 = TextMobject(r'$\left|\frac{dT}{ds}\right| = \frac{\left|\frac{dT}{dt}\right|}{\left|\frac{ds}{dt}\right|}$').shift(UP+3*LEFT) + text2 = TextMobject(r'$\left|\frac{dT}{ds}\right| = \frac{\frac{r\prime\prime (t)}{\left| r\prime (t)\right|}\times\frac{r\prime (t)}{\left| r\prime (t)\right|}}{\left|r\prime (t)\right|}$').next_to(text1, DOWN, buff = 0.1) + unit = VGroup(*[tgt, tgt2, nm, nm2]) + + # self.play(FadeIn(VGroup(*[tgt, tgt2, nm, nm2, nmText, tgtText, square, arrow, arrowText]))) + tgt2text = TextMobject(r'$\frac{r\prime (t)}{\left| r\prime (t)\right|}$').shift(1.1*UP).scale(0.7).rotate(63*DEGREES ) + nm2text = TextMobject(r'$\frac{dT}{dt} = \frac{r\prime\prime (t)}{\left| r\prime (t)\right|}$').scale(0.6).shift(0.5*RIGHT+0.6*DOWN).rotate(-25*DEGREES) + unit2 = unit.copy().scale(0.5).shift(0.75*LEFT+0.25*DOWN) + + self.play(FadeIn(VGroup(*[tgt, tgtText]))) + self.wait(1) + self.play(FadeIn(VGroup(*[nm, nmText]))) + self.wait(1) + self.play(FadeIn(VGroup(*[tgt2, nm2]))) + self.wait(1) + self.play(FadeIn(VGroup(*[square, arrow, arrowText]))) + self.wait(1) + self.play(FadeIn(unit2)) + self.wait(1) + self.play(FadeIn(VGroup(*[tgt2text, nm2text]))) + self.wait(1) + self.play(FadeIn(text1)) + self.wait(1) + self.play(FadeIn(text2)) + self.wait(2) + self.play(FadeOut(VGroup(*[tgt2text, nm2text, text1, text2, tgt, tgtText,nm, nmText,tgt2, nm2,square, arrow, arrowText,unit2]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_intuition.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_intuition.gif deleted file mode 100644 index 0d6fdcf..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_intuition.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py index 3ecd57c..56b7fbb 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.py @@ -8,7 +8,9 @@ class GR(GraphScene): "x_max": 6, "y_min": -6, "y_max": 10, - "graph_origin": ORIGIN + "graph_origin": ORIGIN, + 'x_tick_frequency': 20, + 'y_tick_frequency': 20 } def construct(self): @@ -21,7 +23,7 @@ class GR(GraphScene): tracker = ValueTracker(-3) - text = TextMobject(r'The curvature at point $P_{1}$ is \\ lesser than that at point $P_{2}$: \\ as $\kappa = \frac{1}{R}$').shift(3.2*RIGHT+3*UP).scale(0.6) + text = TextMobject(r'$\because R_{1} > R_{2}$, the curvature at \\ point $P_{1}$ is less than that \\ at point $P_{2}$ as $\kappa = \frac{1}{R}$').shift(3.2*RIGHT+3*UP).scale(0.6) dot1 = Dot((0,3,0), color = YELLOW) dot1label = TextMobject(r'$P_{1}$').next_to(dot1, UP+RIGHT, buff = 0.1) @@ -50,12 +52,18 @@ class GR(GraphScene): circle1 = Circle(radius = 0.8, color = GREY, opacity = 0.2).shift(2.2*UP) tgt1 = Line((-2,3,0), (2,3,0), color = GREY, opacity = 0.2).scale(0.4) - curvature1 = VGroup(*[circle1, tgt1]) + r1 = Line(circle1.get_center(), circle1.get_center() + np.array([0,0.8,0]), color=GREEN_SCREEN) + r1label = TextMobject(r'$R_{1}$',color=WHITE).next_to(r1, RIGHT, buff = 0.1).scale(0.6) + + curvature1 = VGroup(*[circle1, tgt1, r1, r1label]) circle2 = Circle(radius = 0.6, color = GREY, opacity = 0.2).shift(0.4*DOWN + 4*RIGHT) tgt2 = Line((4,-2,0), (6, -2, 0), color = GREY, opacity = 0.2).scale(0.5).shift(LEFT + UP) - curvature2 = VGroup(*[circle2, tgt2]) + r2 = Line(circle2.get_center(), circle2.get_center() + np.array([0,-0.6,0]), color=GREEN_SCREEN) + r2label = TextMobject(r'$R_{2}$', color=WHITE).next_to(r2, 0.9*RIGHT, buff = 0).scale(0.6) + + curvature2 = VGroup(*[circle2, tgt2, r2, r2label]) line = always_redraw(get_tangent_line) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file2_cycloid.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file2_cycloid.gif deleted file mode 100644 index 39656de..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/general-parametric-curves/file2_cycloid.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif deleted file mode 100644 index c028db4..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py deleted file mode 100644 index 5c68f69..0000000 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.py +++ /dev/null @@ -1,31 +0,0 @@ -from manimlib.imports import * - -class tnb(ThreeDScene): - def construct(self): - t = TextMobject(r'T', color = YELLOW) - n = TextMobject(r'N', color = BLUE).next_to(t, RIGHT, buff=0) - b = TextMobject(r'B', color = GREEN_E).next_to(n, RIGHT, buff=0) - frame = TextMobject(r'Frame').next_to(b, RIGHT, buff=0.2) - - text = VGroup(*[t,n,b,frame]).move_to(ORIGIN).shift(3*UP) - curve = ParametricFunction( - lambda t: np.array([ - np.sin(TAU*t), - np.cos(TAU*t), - 0 - ]) - ).scale(2.5) - dot = Dot(color = RED).scale(1.5).shift(1.05*LEFT) - tgt = Arrow(dot.get_center(), (-2, 2, 0), color = YELLOW).shift(0.3*DOWN + 0.09*RIGHT) - normal = Arrow(tgt.get_start(), (1, 1, 0), color = BLUE).shift(0.2*LEFT + 0.05*DOWN) - binormal = Arrow(dot.get_center() - np.array([0,0,0.3]), (tgt.get_start()[0], tgt.get_start()[1],2), color = GREEN) - square = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).move_to(tgt.get_start()).rotate(27*DEGREES).shift(UP+0.4*RIGHT).scale(1.2) - group = VGroup(*[dot, tgt, normal, square, binormal]).shift(np.array([-1.24,-1,0])) - - self.add_fixed_in_frame_mobjects(text) - self.add(curve, group) - self.wait(1) - self.move_camera(phi = 75*DEGREES, theta=45*DEGREES, run_time = 2) - self.begin_ambient_camera_rotation(rate = 0.5) - self.wait(5) - self.play(FadeOut(VGroup(*[text, curve, dot, tgt, normal, square, binormal]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.gif new file mode 100644 index 0000000..eae8686 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.py new file mode 100644 index 0000000..80372ee --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.py @@ -0,0 +1,66 @@ +from manimlib.imports import * + +class tnb(ThreeDScene): + def construct(self): + self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES) + + helix1 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -2*np.pi/3, t_max = -1.638*np.pi/3, color = WHITE + ) + + helix2 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -1.638*np.pi/3, t_max = -1.33*np.pi/3, color = WHITE + ) + + pointText = TextMobject(r'Consider an arbitrary point \\ on the given curve.').scale(0.8).shift(1.5*UP) + tgtText = TextMobject(r'Unit', ' tangent ', r'vector at \\ this point is given as:').scale(0.8).shift(1.5*UP) + tgtText.set_color_by_tex_to_color_map({ + "tangent": YELLOW + }) + normalText = TextMobject(r'Unit', ' normal ', r'vector at \\ this point is given as:').scale(0.8).shift(1.5*UP) + normalText.set_color_by_tex_to_color_map({ + "normal": BLUE + }) + planeText = TextMobject(r'$\overrightarrow{T}$ and $\overrightarrow{N}$ \\ prescribe a plane.').scale(0.8).shift(1.5*UP) + bnmText = TextMobject(r'The vector normal to this plane \\ is called the', ' binormal ', 'vector.').scale(0.8).shift(1.5*UP) + bnmText.set_color_by_tex_to_color_map({ + "binormal": GREEN_E + }) + + dot1 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([0,0.2,0]), radius = 0.16, color=RED) + tgt1 = Arrow((0,0,0), (-2,-0.55,0), color = YELLOW).shift(dot1.get_center() + np.array([0.18,0.04,0])) + nm1 = Arrow((0,0,0), (0.4,-2,0), color = BLUE).shift(dot1.get_center() + np.array([0,0.26,0])) + bnm1 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(2.1*RIGHT+2*DOWN) + plane1 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot1.get_center() + np.array([-0.4, -0.6, 0])).rotate(13*DEGREES).scale(1.2) + point1 = VGroup(*[dot1, tgt1, nm1, plane1]).scale(0.8).shift(np.array([1,4.86,0])).rotate(-15*DEGREES) + + + + helix = VGroup(*[helix1, helix2]) + self.play(FadeIn(helix)) + self.play(ApplyMethod(helix.scale, 4)) + self.add_fixed_in_frame_mobjects(pointText) + self.play(FadeIn(dot1), FadeIn(pointText)) + self.wait(2) + self.add_fixed_in_frame_mobjects(tgtText) + self.play(Write(tgt1), ReplacementTransform(pointText, tgtText)) + self.wait(2) + self.add_fixed_in_frame_mobjects(normalText) + self.play(Write(nm1), ReplacementTransform(tgtText, normalText)) + self.wait(2) + self.add_fixed_in_frame_mobjects(planeText) + self.play(FadeIn(plane1), ReplacementTransform(normalText, planeText)) + self.wait(2) + self.add_fixed_in_frame_mobjects(bnmText) + self.add_fixed_in_frame_mobjects(bnm1) + self.play(ReplacementTransform(planeText, bnmText), Write(bnm1)) + self.wait(2) + self.play(FadeOut(VGroup(*[helix, bnm1, bnmText, dot1, tgt1, nm1, plane1]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.gif new file mode 100644 index 0000000..67aaea2 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.py new file mode 100644 index 0000000..c870210 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.py @@ -0,0 +1,36 @@ +from manimlib.imports import * + +class tnb(ThreeDScene): + def construct(self): + t = TextMobject(r'T', color = YELLOW) + n = TextMobject(r'N', color = BLUE).next_to(t, RIGHT, buff=0) + b = TextMobject(r'B', color = GREEN_E).next_to(n, RIGHT, buff=0) + frame = TextMobject(r'Frame').next_to(b, RIGHT, buff=0.2) + f1 = TextMobject(r'$\overrightarrow{B}$ ', color = GREEN_E) + f2 = TextMobject(r' = $\overrightarrow{T}$', color = YELLOW).next_to(f1, RIGHT, buff=0.2) + f3 = TextMobject(r'$\times\overrightarrow{N}$', color = BLUE).next_to(f2, RIGHT, buff=0.1) + formula = VGroup(*[f1, f2, f3]).move_to(ORIGIN).shift(3*UP) + + # text = VGroup(*[t,n,b,frame]).move_to(ORIGIN).shift(3*UP) + curve = ParametricFunction( + lambda t: np.array([ + np.sin(TAU*t), + np.cos(TAU*t), + 0 + ]) + ).scale(2.5) + dot = Dot(color = RED).scale(1.5).shift(1.05*LEFT) + tgt = Arrow(dot.get_center(), (-2, 2, 0), color = YELLOW).shift(0.3*DOWN + 0.09*RIGHT) + normal = Arrow(tgt.get_start(), (1, 1, 0), color = BLUE).shift(0.2*LEFT + 0.05*DOWN) + binormal = Arrow(dot.get_center() - np.array([0,0,0.3]), (tgt.get_start()[0], tgt.get_start()[1],2), color = GREEN) + square = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).move_to(tgt.get_start()).rotate(27*DEGREES).shift(UP+0.4*RIGHT).scale(1.2) + group = VGroup(*[dot, tgt, normal, square, binormal]).shift(np.array([-1.24,-1,0])) + + self.add_fixed_in_frame_mobjects(formula) + self.add(curve, group) + self.wait(1) + self.move_camera(phi = 75*DEGREES, theta=45*DEGREES, run_time = 2) + self.add_fixed_in_frame_mobjects(formula) + self.begin_ambient_camera_rotation(rate = 0.5) + self.wait(5) + self.play(FadeOut(VGroup(*[formula, curve, dot, tgt, normal, square, binormal]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif deleted file mode 100644 index 78e3aa3..0000000 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif and /dev/null differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py deleted file mode 100644 index 176cac5..0000000 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.py +++ /dev/null @@ -1,126 +0,0 @@ -from manimlib.imports import * - -class tnb(ThreeDScene): - def construct(self): - self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES) - - t = TextMobject(r'T', color = YELLOW) - n = TextMobject(r'N', color = BLUE).next_to(t, RIGHT, buff=0) - b = TextMobject(r'B', color = GREEN_E).next_to(n, RIGHT, buff=0) - frame = TextMobject(r'Frame').next_to(b, RIGHT, buff=0.2) - - text = VGroup(*[t,n,b,frame]).move_to(ORIGIN).shift(3*UP) - - helix1 = ParametricFunction( - lambda t: np.array([ - np.cos(TAU*t), - np.sin(TAU*t), - 0.4*t - ]), t_min = -2*np.pi/3, t_max = -1.638*np.pi/3, color = WHITE - ) - - helix2 = ParametricFunction( - lambda t: np.array([ - np.cos(TAU*t), - np.sin(TAU*t), - 0.4*t - ]), t_min = -1.638*np.pi/3, t_max = -1.33*np.pi/3, color = WHITE - ) - - helix3 = ParametricFunction( - lambda t: np.array([ - np.cos(TAU*t), - np.sin(TAU*t), - 0.4*t - ]), t_min = -1.33*np.pi/3, t_max = -np.pi/3, color = WHITE - ) - - helix4 = ParametricFunction( - lambda t: np.array([ - np.cos(TAU*t), - np.sin(TAU*t), - 0.4*t - ]), t_min = -np.pi/3, t_max = -1.3*np.pi/6, color = WHITE - ) - - helix5 = ParametricFunction( - lambda t: np.array([ - np.cos(TAU*t), - np.sin(TAU*t), - 0.4*t - ]), t_min = -1.3*np.pi/6, t_max = 0, color = WHITE - ) - - helix_dot = Dot(radius = 0.16, color = RED) - - dot0 = Dot(np.array([np.cos(-2*np.pi/3), np.sin(-2*np.pi/3), -0.8*np.pi/3]), radius = 0.16, color=RED).shift(np.array([4.65,0,-0.8])) - tgt0 = Arrow((0,0,0), (1,2,0), color = YELLOW).shift(dot0.get_center() - np.array([0.04,0.2,0])) - nm0 = Arrow((0,0,0), (-2,1,0), color = BLUE).shift(dot0.get_center() + np.array([0.3,0,0])) - bnm0 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(6.1*LEFT + 3*DOWN) - plane0 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot0.get_center() + np.array([-0.35, 0.85, 0])).scale(1.2).rotate(65*DEGREES) - point0 = VGroup(*[dot0, tgt0, nm0, bnm0, plane0]).scale(0.8).shift(np.array([1,0,0])) - - dot1 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([0,0.2,0]), radius = 0.16, color=RED) - tgt1 = Arrow((0,0,0), (-2,-0.55,0), color = YELLOW).shift(dot1.get_center() + np.array([0.18,0.04,0])) - nm1 = Arrow((0,0,0), (0.4,-2,0), color = BLUE).shift(dot1.get_center() + np.array([0,0.26,0])) - bnm1 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(3.68*RIGHT+2.48*DOWN) - plane1 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot1.get_center() + np.array([-0.4, -0.6, 0])).rotate(13*DEGREES).scale(1.2) - point1 = VGroup(*[dot1, tgt1, nm1, plane1]).scale(0.8).shift(np.array([1,6.25,0])) - - dot2 = Dot(np.array([np.cos(-np.pi/6), np.sin(-np.pi/6), -0.2*np.pi/3]) - np.array([1.9,0,0]), radius=0.16,color=RED) - tgt2 = Arrow((0,0,0), (1,-2,0), color = YELLOW).shift(dot2.get_center() + np.array([-0.2,0.2,0])) - nm2 = Arrow((0,0,0), (2,1,0), color = BLUE).shift(dot2.get_center() + np.array([-0.2,-0.06,0])) - bnm2 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(0.4*RIGHT + 0.16*DOWN) - plane2 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot2.get_center() + np.array([0.92, -0.5, 0])).rotate(23*DEGREES).scale(1.2) - point2 = VGroup(*[dot2, tgt2, nm2, bnm2, plane2]) - - helix = VGroup(*[helix1, helix2, helix3, helix4, helix5]) - self.add_fixed_in_frame_mobjects(text) - self.play(FadeIn(helix), FadeIn(text)) - self.play(ApplyMethod(helix.scale, 4)) - self.add_fixed_in_frame_mobjects(bnm0) - self.play(FadeIn(point0)) - self.play(ApplyMethod(point0.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix1, run_time=5)) - - self.add_fixed_in_frame_mobjects(bnm1) - self.play(FadeIn(point1)) - self.play(ApplyMethod(point1.set_color, GRAY, opacity = 0.1), ApplyMethod(bnm1.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix2, run_time = 5)) - - self.add_fixed_in_frame_mobjects(bnm2) - self.play(FadeIn(point2)) - self.play(ApplyMethod(point2.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix3, run_time=5)) - - dot3 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([3.3,-0.25,0]), radius = 0.16, color=RED) - tgt3 = Arrow((0,0,0), (0,2,0), color = YELLOW).shift(helix_dot.get_center() - np.array([-0.05,0.2,0])) - nm3 = Arrow((0,0,0), (-2,0,0), color = BLUE).shift(helix_dot.get_center() + np.array([0.25,0,0])) - bnm3 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(3.87*LEFT + 1.24*DOWN) - plane3 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(helix_dot.get_center() + np.array([-0.5, 0.62, 0])) - point3 = VGroup(*[dot3, tgt3, nm3, bnm3, plane3]).shift(np.array([0,0,0])) - - dot4 = Dot(np.array([np.cos(-np.pi/12), np.sin(-np.pi/12), -0.1*np.pi/3]) + np.array([-3.4,3.4,0]), radius = 0.16, color=RED) - tgt4 = Arrow((0,0,0), (-2,-0.85,0), color = YELLOW).shift(dot4.get_center() - np.array([-0.05,0,0])) - nm4 = Arrow((0,0,0), (0.8,-2,0), color = BLUE).shift(dot4.get_center() + np.array([-0.1,0.25,0])) - bnm4 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(4.03*RIGHT + 0.5*DOWN) - plane4 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot4.get_center() + np.array([-0.4,-1,0])).rotate(22*DEGREES).scale(1.2) - point4 = VGroup(*[dot4, tgt4, nm4, bnm4, plane4]) - - dot5 = Dot((1,0,0) + np.array([2.3,-1,1])) - tgt5 = Arrow((0,0,0), (0,2,0), color = YELLOW).shift(dot5.get_center() - np.array([-0.05,0.2,0])) - nm5 = Arrow((0,0,0), (-2,0,0), color = BLUE).shift(dot5.get_center() + np.array([0.25,0,0])) - bnm5 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(3.34*LEFT+0.3*UP) - plane5 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot5.get_center() + np.array([-0.5,0.5,0])) - point5 = VGroup(*[tgt5, nm5, bnm5, plane5]) - - self.add_fixed_in_frame_mobjects(bnm3) - self.play(FadeIn(point3)) - self.play(ApplyMethod(point3.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix4, run_time=5)) - - self.add_fixed_in_frame_mobjects(bnm4) - self.play(FadeIn(point4)) - self.play(ApplyMethod(point4.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix5, run_time=5)) - - self.add_fixed_in_frame_mobjects(bnm5) - self.play(FadeIn(point5)) - self.wait(2) - - self.play(FadeOut(VGroup(*[text, helix, bnm1, point0, point1, point2, point3, point4, point5, helix_dot]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.gif new file mode 100644 index 0000000..78e3aa3 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.py new file mode 100644 index 0000000..176cac5 --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.py @@ -0,0 +1,126 @@ +from manimlib.imports import * + +class tnb(ThreeDScene): + def construct(self): + self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES) + + t = TextMobject(r'T', color = YELLOW) + n = TextMobject(r'N', color = BLUE).next_to(t, RIGHT, buff=0) + b = TextMobject(r'B', color = GREEN_E).next_to(n, RIGHT, buff=0) + frame = TextMobject(r'Frame').next_to(b, RIGHT, buff=0.2) + + text = VGroup(*[t,n,b,frame]).move_to(ORIGIN).shift(3*UP) + + helix1 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -2*np.pi/3, t_max = -1.638*np.pi/3, color = WHITE + ) + + helix2 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -1.638*np.pi/3, t_max = -1.33*np.pi/3, color = WHITE + ) + + helix3 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -1.33*np.pi/3, t_max = -np.pi/3, color = WHITE + ) + + helix4 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -np.pi/3, t_max = -1.3*np.pi/6, color = WHITE + ) + + helix5 = ParametricFunction( + lambda t: np.array([ + np.cos(TAU*t), + np.sin(TAU*t), + 0.4*t + ]), t_min = -1.3*np.pi/6, t_max = 0, color = WHITE + ) + + helix_dot = Dot(radius = 0.16, color = RED) + + dot0 = Dot(np.array([np.cos(-2*np.pi/3), np.sin(-2*np.pi/3), -0.8*np.pi/3]), radius = 0.16, color=RED).shift(np.array([4.65,0,-0.8])) + tgt0 = Arrow((0,0,0), (1,2,0), color = YELLOW).shift(dot0.get_center() - np.array([0.04,0.2,0])) + nm0 = Arrow((0,0,0), (-2,1,0), color = BLUE).shift(dot0.get_center() + np.array([0.3,0,0])) + bnm0 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(6.1*LEFT + 3*DOWN) + plane0 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot0.get_center() + np.array([-0.35, 0.85, 0])).scale(1.2).rotate(65*DEGREES) + point0 = VGroup(*[dot0, tgt0, nm0, bnm0, plane0]).scale(0.8).shift(np.array([1,0,0])) + + dot1 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([0,0.2,0]), radius = 0.16, color=RED) + tgt1 = Arrow((0,0,0), (-2,-0.55,0), color = YELLOW).shift(dot1.get_center() + np.array([0.18,0.04,0])) + nm1 = Arrow((0,0,0), (0.4,-2,0), color = BLUE).shift(dot1.get_center() + np.array([0,0.26,0])) + bnm1 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(3.68*RIGHT+2.48*DOWN) + plane1 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot1.get_center() + np.array([-0.4, -0.6, 0])).rotate(13*DEGREES).scale(1.2) + point1 = VGroup(*[dot1, tgt1, nm1, plane1]).scale(0.8).shift(np.array([1,6.25,0])) + + dot2 = Dot(np.array([np.cos(-np.pi/6), np.sin(-np.pi/6), -0.2*np.pi/3]) - np.array([1.9,0,0]), radius=0.16,color=RED) + tgt2 = Arrow((0,0,0), (1,-2,0), color = YELLOW).shift(dot2.get_center() + np.array([-0.2,0.2,0])) + nm2 = Arrow((0,0,0), (2,1,0), color = BLUE).shift(dot2.get_center() + np.array([-0.2,-0.06,0])) + bnm2 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(0.4*RIGHT + 0.16*DOWN) + plane2 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot2.get_center() + np.array([0.92, -0.5, 0])).rotate(23*DEGREES).scale(1.2) + point2 = VGroup(*[dot2, tgt2, nm2, bnm2, plane2]) + + helix = VGroup(*[helix1, helix2, helix3, helix4, helix5]) + self.add_fixed_in_frame_mobjects(text) + self.play(FadeIn(helix), FadeIn(text)) + self.play(ApplyMethod(helix.scale, 4)) + self.add_fixed_in_frame_mobjects(bnm0) + self.play(FadeIn(point0)) + self.play(ApplyMethod(point0.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix1, run_time=5)) + + self.add_fixed_in_frame_mobjects(bnm1) + self.play(FadeIn(point1)) + self.play(ApplyMethod(point1.set_color, GRAY, opacity = 0.1), ApplyMethod(bnm1.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix2, run_time = 5)) + + self.add_fixed_in_frame_mobjects(bnm2) + self.play(FadeIn(point2)) + self.play(ApplyMethod(point2.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix3, run_time=5)) + + dot3 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([3.3,-0.25,0]), radius = 0.16, color=RED) + tgt3 = Arrow((0,0,0), (0,2,0), color = YELLOW).shift(helix_dot.get_center() - np.array([-0.05,0.2,0])) + nm3 = Arrow((0,0,0), (-2,0,0), color = BLUE).shift(helix_dot.get_center() + np.array([0.25,0,0])) + bnm3 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(3.87*LEFT + 1.24*DOWN) + plane3 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(helix_dot.get_center() + np.array([-0.5, 0.62, 0])) + point3 = VGroup(*[dot3, tgt3, nm3, bnm3, plane3]).shift(np.array([0,0,0])) + + dot4 = Dot(np.array([np.cos(-np.pi/12), np.sin(-np.pi/12), -0.1*np.pi/3]) + np.array([-3.4,3.4,0]), radius = 0.16, color=RED) + tgt4 = Arrow((0,0,0), (-2,-0.85,0), color = YELLOW).shift(dot4.get_center() - np.array([-0.05,0,0])) + nm4 = Arrow((0,0,0), (0.8,-2,0), color = BLUE).shift(dot4.get_center() + np.array([-0.1,0.25,0])) + bnm4 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(4.03*RIGHT + 0.5*DOWN) + plane4 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot4.get_center() + np.array([-0.4,-1,0])).rotate(22*DEGREES).scale(1.2) + point4 = VGroup(*[dot4, tgt4, nm4, bnm4, plane4]) + + dot5 = Dot((1,0,0) + np.array([2.3,-1,1])) + tgt5 = Arrow((0,0,0), (0,2,0), color = YELLOW).shift(dot5.get_center() - np.array([-0.05,0.2,0])) + nm5 = Arrow((0,0,0), (-2,0,0), color = BLUE).shift(dot5.get_center() + np.array([0.25,0,0])) + bnm5 = Arrow((0,0,0), (0,2,0), color = GREEN_E).shift(3.34*LEFT+0.3*UP) + plane5 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot5.get_center() + np.array([-0.5,0.5,0])) + point5 = VGroup(*[tgt5, nm5, bnm5, plane5]) + + self.add_fixed_in_frame_mobjects(bnm3) + self.play(FadeIn(point3)) + self.play(ApplyMethod(point3.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix4, run_time=5)) + + self.add_fixed_in_frame_mobjects(bnm4) + self.play(FadeIn(point4)) + self.play(ApplyMethod(point4.set_color, GRAY, opacity = 0.1), MoveAlongPath(helix_dot, helix5, run_time=5)) + + self.add_fixed_in_frame_mobjects(bnm5) + self.play(FadeIn(point5)) + self.wait(2) + + self.play(FadeOut(VGroup(*[text, helix, bnm1, point0, point1, point2, point3, point4, point5, helix_dot]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.gif new file mode 100644 index 0000000..6b4b438 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.py new file mode 100644 index 0000000..c719a1d --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.py @@ -0,0 +1,23 @@ +from manimlib.imports import * + +class fs1(ThreeDScene): + def construct(self): + + + self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES) + dot1 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([0,0.2,0]), radius = 0.16, color=RED) + tgt1 = Arrow((0,0,0), (-2,-0.55,0), color = YELLOW).shift(dot1.get_center() + np.array([0.18,0.04,0])) + nm1 = Arrow((0,0,0), (0.4,-2,0), color = BLUE).shift(dot1.get_center() + np.array([0,0.26,0])).shift(np.array([0.8,4.76,0])).rotate(-15*DEGREES).scale(0.8) + bnm1 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(2.1*RIGHT+2*DOWN) + plane1 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot1.get_center() + np.array([-0.4, -0.6, 0])).rotate(13*DEGREES).scale(1.2) + point1 = VGroup(*[dot1, tgt1, plane1]).scale(0.8).shift(np.array([1,4.86,0])).rotate(-15*DEGREES) + t = TextMobject(r'$T$', color = YELLOW).move_to(ORIGIN).shift(3.2*RIGHT + DOWN) + n = TextMobject(r'$N$', color = BLUE).shift(DOWN + RIGHT) + b = TextMobject(r'$B$', color = GREEN_E).next_to(bnm1, UP, buff = 0.1) + text = VGroup(*[t, n, b]) + self.add_fixed_in_frame_mobjects(bnm1, text) + self.play(FadeIn(point1), FadeIn(bnm1), FadeIn(text)) + self.wait() + self.play(TransformFromCopy(tgt1, nm1, run_time = 2)) + self.wait(2) + self.play(FadeOut(VGroup(*[bnm1, text, point1, nm1]))) diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.gif new file mode 100644 index 0000000..ce367b6 Binary files /dev/null and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.py new file mode 100644 index 0000000..0261fed --- /dev/null +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.py @@ -0,0 +1,28 @@ +from manimlib.imports import * + +class fs1(ThreeDScene): + def construct(self): + + + self.set_camera_orientation(phi = 75*DEGREES, theta=45*DEGREES) + dot1 = Dot(np.array([np.cos(-np.pi/3), np.sin(-np.pi/3), -0.4*np.pi/3]) + np.array([0,0.2,0]), radius = 0.16, color=RED) + tgt1 = Arrow((0,0,0), (-2,-0.55,0), color = YELLOW).shift(dot1.get_center() + np.array([0.18,0.04,0])) + nm1 = Arrow((0,0,0), (0.4,-2,0), color = BLUE).shift(dot1.get_center() + np.array([0,0.26,0])).shift(np.array([0.8,4.76,0])).rotate(-15*DEGREES).scale(0.8) + bnm1 = Arrow((0,0,0), (0,2,0), color=GREEN_E).shift(2.1*RIGHT+2*DOWN) + + bnms = Line((0,0,0), (0,0,1.6), color = GREEN_E).shift(np.array([3.1,5.2,0])).scale(0.6) + bnmsa = ArrowTip(color = GREEN_E).next_to(bnms, np.array([0,0,1]), buff = 0).rotate(45*DEGREES) + bns = VGroup(*[bnms, bnmsa]) + + plane1 = Square(color = DARK_BROWN, fill_color = WHITE, fill_opacity=0.3).shift(dot1.get_center() + np.array([-0.4, -0.6, 0])).rotate(13*DEGREES).scale(1.2) + point1 = VGroup(*[dot1, tgt1, plane1]).scale(0.8).shift(np.array([1,4.86,0])).rotate(-15*DEGREES) + t = TextMobject(r'$T$', color = YELLOW).move_to(ORIGIN).shift(3.2*RIGHT + DOWN) + n = TextMobject(r'$N$', color = BLUE).shift(DOWN + RIGHT) + b = TextMobject(r'$B$', color = GREEN_E).next_to(bnm1, UP, buff = 0.1) + text = VGroup(*[t, n, b]) + self.add_fixed_in_frame_mobjects(bnm1, text) + self.play(FadeIn(point1), FadeIn(text), FadeIn(bnm1)) + self.wait() + self.play(TransformFromCopy(bnms, nm1, run_time = 3)) + self.wait(2) + self.play(FadeOut(VGroup(*[bnms, text, point1, nm1, bnm1]))) -- cgit From 0fe85fe7b505f92718d7401e065a50077a8de252 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Wed, 1 Jul 2020 13:01:29 +0530 Subject: Update README.md --- .../geometry-of-planes-and-curves/arc-length-and-curvature/README.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/README.md b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/README.md index a2f71d7..10786d6 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/README.md +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/README.md @@ -4,5 +4,8 @@ **file2_circle_curvature.py**
![file2_circle_curvature.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file2_circle_curvature.gif) +**file3_curvature_interpretation.py**
+![file3_curvature_interpretation.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif) + **file4_different_curvature_single_curve.py**
![file4_different_curvature_single_curve.py](https://raw.githubusercontent.com/saarthdeshpande/FSF-mathematics-python-code-archive/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file4_different_curvature_single_curve.gif) -- cgit From 564956f093a9aa612d07653ddf73163495321992 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Wed, 1 Jul 2020 13:04:06 +0530 Subject: Update README.md --- .../tnb-frame-and-serret-frenet-formulae/README.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md index 766c91f..7874f43 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/README.md @@ -1,6 +1,15 @@ -**file1_tnb_basic.py**
-![file1_tnb_basic.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_basic.gif) +**file1_tnb_creation.py**
+![file1_tnb_creation.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file1_tnb_creation.gif) -**file2_tnb_frame_manim.py**
-![file2_tnb_frame_manim.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_frame_manim.gif) +**file2_tnb_basic.py**
+![file2_tnb_basic.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file2_tnb_basic.gif) + +**file3_tnb_frame_manim.py**
+![file3_tnb_frame_manim.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file3_tnb_frame_manim.gif) + +**file4_fs1.py**
+![file4_fs1.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file4_fs1.gif) + +**file5_fs2.py**
+![file5_fs2.py](https://github.com/saarthdeshpande/FSF-mathematics-python-code-archive/blob/master/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/tnb-frame-and-serret-frenet-formulae/file5_fs2.gif) -- cgit From 2fee7bc2a219755e6018d3c1a5fb995d8eccf287 Mon Sep 17 00:00:00 2001 From: Saarth Deshpande Date: Wed, 1 Jul 2020 13:11:25 +0530 Subject: math error fix --- .../file3_curvature_interpretation.gif | Bin 702280 -> 700862 bytes .../file3_curvature_interpretation.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'FSF-2020/calculus-of-several-variables') diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif index 39489b7..22a450a 100644 Binary files a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif and b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.gif differ diff --git a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py index cf6b032..d8dd0a4 100644 --- a/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py +++ b/FSF-2020/calculus-of-several-variables/geometry-of-planes-and-curves/arc-length-and-curvature/file3_curvature_interpretation.py @@ -20,7 +20,7 @@ class interpretation(Scene): # self.play(FadeIn(VGroup(*[tgt, tgt2, nm, nm2, nmText, tgtText, square, arrow, arrowText]))) tgt2text = TextMobject(r'$\frac{r\prime (t)}{\left| r\prime (t)\right|}$').shift(1.1*UP).scale(0.7).rotate(63*DEGREES ) - nm2text = TextMobject(r'$\frac{dT}{dt} = \frac{r\prime\prime (t)}{\left| r\prime (t)\right|}$').scale(0.6).shift(0.5*RIGHT+0.6*DOWN).rotate(-25*DEGREES) + nm2text = TextMobject(r'$\frac{r\prime\prime (t)}{\left| r\prime (t)\right|}$').scale(0.7).shift(0.7*RIGHT+0.8*DOWN).rotate(-25*DEGREES) unit2 = unit.copy().scale(0.5).shift(0.75*LEFT+0.25*DOWN) self.play(FadeIn(VGroup(*[tgt, tgtText]))) -- cgit