1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
from manimlib.imports import *
class AreaUnderIntegral(GraphScene):
CONFIG = {
"x_min" : 0,
"x_max" : 5,
"y_min" : 0,
"y_max" : 6,
"Func":lambda x : 1+x**2*np.exp(-.15*x**2)
}
def construct(self):
X = RIGHT*self.x_axis_width/(self.x_max- self.x_min)
Y = UP*self.y_axis_height/(self.y_max- self.y_min)
int_area_sym=TextMobject("$$\int_{a}^b f(x)dx$$").shift(2*UP)
area_mean_text = TextMobject(r"means area under the curve of $f(x)$ \\ in the region $a\leq x\leq b$").next_to(int_area_sym,DOWN)
opening_text=VGroup(*[int_area_sym,area_mean_text])
self.play(Write(opening_text),run_time=4)
self.wait(2)
self.play(FadeOut(opening_text))
self.setup_axes(animate=True)
func= self.get_graph(self.Func, x_min=0,x_max=5)
self.curve=func
func_text = TextMobject(r"$y = f(x)$").next_to(func,UP)
min_lim = self.get_vertical_line_to_graph(1,func,DashedLine,color=YELLOW)
tick_a=TextMobject(r"$a$").next_to(min_lim,DOWN)
max_lim = self.get_vertical_line_to_graph(4,func,DashedLine,color=YELLOW)
tick_b=TextMobject(r"$b$").next_to(max_lim,DOWN)
# area = self.get_area(func,1,4)
self.play(ShowCreation(func), ShowCreation(func_text))
self.wait(2)
self.play(ShowCreation(min_lim),Write(tick_a), ShowCreation(max_lim),Write(tick_b),run_time=0.5)
approx_text=TextMobject(r"The area can be approximated as \\ sum of small rectangles").next_to(func,4*Y)
self.play(Write(approx_text))
rect_list = self.get_riemann_rectangles_list(
self.curve, 5,
max_dx = 0.25,
x_min = 1,
x_max = 4,
)
flat_graph = self.get_graph(lambda t : 0)
rects = self.get_riemann_rectangles( flat_graph, x_min = 1, x_max = 4, dx = 0.5)
for new_rects in rect_list:
new_rects.set_fill(opacity = 0.8)
rects.align_submobjects(new_rects)
for alt_rect in rects[::2]:
alt_rect.set_fill(opacity = 0)
self.play(Transform(
rects, new_rects,
run_time = 1.5,
lag_ratio = 0.5
))
conclude_text=TextMobject(r"Making the rectangles infinitesimally thin \\ we get the real area under the curve.").next_to(func,4*Y)
self.play(Transform(approx_text,conclude_text))
self.wait(3)
int_area_sym.next_to(self.curve,IN)
self.play(Transform(conclude_text,int_area_sym))
# self.play(ShowCreation(area))
self.wait(3)
#uploaded by Somnath Pandit.FSF2020_Double_Integral
|