In [10]:
%load_ext autoreload
%autoreload
from common import euler_error, pp, euler_trapezoid
from sympy import init_printing
init_printing()
pp_euler = pp(euler_error)
The autoreload extension is already loaded. To reload it, use:
%reload_ext autoreload
In [11]:
# 6.1 CP1
# f = lambda t, y: t
# f = lambda t, y: (t**2)*y
# f = lambda t, y: 2*(t+1)*y
# f = lambda t, y: 5*(t**4)*y
# f = lambda t, y: 1/(y**2)
f = lambda t, y: (t**3)/(y**2)
pp_euler(f, h=0.01, t=1, iv=(0, 1))
i | t | w | error
----+------+--------------------+-----------------------
0 | 0 | 1 | 0
1 | 0.01 | 1 | 2.4999999848063226e-09
2 | 0.02 | 1.00000001 | 2.999999848540824e-08
3 | 0.03 | 1.0000000899999983 | 1.1249996068052326e-07
4 | 0.04 | 1.0000003599999499 | 2.799996405844496e-07
5 | 0.05 | 1.000000999999489 | 5.62498069678341e-07
6 | 0.06 | 1.000002249996989 | 9.899925135226084e-07
7 | 0.07 | 1.000004409987269 | 1.5924767013952845e-06
8 | 0.08 | 1.0000078399570167 | 2.399938127561896e-06
9 | 0.09 | 1.0000129598767364 | 3.4423542289996334e-06
10 | 0.1 | 1.000020249687785 | 4.749687241067946e-06
11 | 0.11 | 1.0000302492828035 | 6.351877535282213e-06
12 | 0.12 | 1.0000435584776042 | 8.278835242458982e-06
13 | 0.13 | 1.0000608369723216 | 1.0560429968053953e-05
14 | 0.14 | 1.000082804299389 | 1.3226478405625741e-05
15 | 0.15 | 1.0001102397556534 | 1.630672965813318e-05
16 | 0.16 | 1.0001439823157001 | 1.983084808188096e-05
17 | 0.17 | 1.0001849305232158 | 2.382839346637411e-05
18 | 0.18 | 1.000234042356982 | 2.832879837444402e-05
19 | 0.19 | 1.000292335067862 | 3.336134246967326e-05
20 | 0.2 | 1.0003608849829158 | 3.895512366569598e-05
21 | 0.21 | 1.0004408272725607 | 4.513902594016628e-05
22 | 0.22 | 1.000533355676492 | 5.194168367261831e-05
23 | 0.23 | 1.000639722183873 | 5.9391442364997715e-05
24 | 0.24 | 1.0007612366631278 | 6.751631563450822e-05
25 | 0.25 | 1.000899266436494 | 7.634393836886133e-05
26 | 0.26 | 1.0010552357943474 | 8.590151596399309e-05
27 | 0.27 | 1.001230625444174 | 9.62157695814092e-05
28 | 0.28 | 1.0014269718889577 | 0.00010731287738074968
29 | 0.29 | 1.0016458667296646 | 0.00011921841172313208
30 | 0.3 | 1.001888955886455 | 0.0001319572723526008
31 | 0.31 | 1.0021579387332191 | 0.0001455536156105275
32 | 0.32 | 1.0024545671400529 | 0.00016003077976112223
33 | 0.33 | 1.0027806444183252 | 0.00017541120655173437
34 | 0.34 | 1.0031380241630858 | 0.00019171635916670482
35 | 0.35 | 1.003528608987686 | 0.0002089666367799392
36 | 0.36 | 1.003954349145665 | 0.00022718128595689002
37 | 0.37 | 1.0044172410351857 | 0.00024637830920237747
38 | 0.38 | 1.0049193255815798 | 0.0002665743710010826
39 | 0.39 | 1.0054626864939018 | 0.0002877847017541679
40 | 0.4 | 1.0060494483917837 | 0.0003100230000607773
41 | 0.41 | 1.006681774799338 | 0.0003333013338515656
42 | 0.42 | 1.0073618660033714 | 0.00035763004093425366
43 | 0.43 | 1.0080919567737465 | 0.00038301762956449714
44 | 0.44 | 1.0088743139443705 | 0.0004094706797070913
45 | 0.45 | 1.0097112338539933 | 0.0004369937456984996
46 | 0.46 | 1.0106050396467532 | 0.00046558926107698184
47 | 0.47 | 1.0115580784332368 | 0.0004952574463825687
48 | 0.48 | 1.0125727183136906 | 0.0005259962207646574
49 | 0.49 | 1.0136513452659546 | 0.0005578011182785225
50 | 0.5 | 1.0147963599016583 | 0.0005906652097615872
51 | 0.51 | 1.0160101740952419 | 0.0006245790312120469
52 | 0.52 | 1.0172952074914081 | 0.000659530519588003
53 | 0.53 | 1.0186538838976913 | 0.0006955049569548066
54 | 0.54 | 1.020088627569919 | 0.0007324849238841136
55 | 0.55 | 1.0216018593994383 | 0.000770450262998601
56 | 0.56 | 1.0231959930120758 | 0.0008093780535018968
57 | 0.57 | 1.0248734307898717 | 0.0008492425975064055
58 | 0.58 | 1.0266365598276797 | 0.0008900154188904441
59 | 0.59 | 1.0284877478377243 | 0.0009316652753565968
60 | 0.6 | 1.030429339016163 | 0.0009741581842690472
61 | 0.61 | 1.0324636498865696 | 0.0010174574627492827
62 | 0.62 | 1.0345929651360637 | 0.0010615237824049828
63 | 0.63 | 1.0368195334604993 | 0.0011063152389358955
64 | 0.64 | 1.0391455634357256 | 0.0011517874367410474
65 | 0.65 | 1.0415732194323999 | 0.0011978935885035291
66 | 0.66 | 1.0441046175921689 | 0.0012445846295894292
67 | 0.67 | 1.046741821883237 | 0.0012918093469478364
68 | 0.68 | 1.0494868402533837 | 0.0013395145220469473
69 | 0.69 | 1.0523416208983891 | 0.001387645087225664
70 | 0.7 | 1.0553080486635553 | 0.0014361442946968506
71 | 0.71 | 1.0583879415955868 | 0.0014849538972891985
72 | 0.72 | 1.0615830476614982 | 0.0015340143398769879
73 | 0.73 | 1.064895041650473 | 0.001583264960320463
74 | 0.74 | 1.0683255222736858 | 0.0016326441986209694
75 | 0.75 | 1.0718760094760569 | 0.0016820898128901973
76 | 0.76 | 1.0755479419727096 | 0.001731539100650492
77 | 0.77 | 1.0793426750215926 | 0.001780929123906816
78 | 0.78 | 1.083261478442294 | 0.0018301969363829773
79 | 0.79 | 1.0873055348895528 | 0.0018792798112825526
80 | 0.8 | 1.0914759383883625 | 0.0019281154679227086
81 | 0.81 | 1.0957736931358975 | 0.0019766422955951324
82 | 0.82 | 1.1001997125737741 | 0.0020247995730418022
83 | 0.83 | 1.1047548187324308 | 0.002072527681983294
84 | 0.84 | 1.1094397418476645 | 0.0021197683131970457
85 | 0.85 | 1.1142551202476452 | 0.00216646466373982
86 | 0.86 | 1.119201500507037 | 0.0022125616240042945
87 | 0.87 | 1.1242793378632274 | 0.0022580059534154096
88 | 0.88 | 1.1294889968880997 | 0.0023027464437093137
89 | 0.89 | 1.1348307524073145 | 0.00234673406886321
90 | 0.9 | 1.1403047906576937 | 0.0023899221209060517
91 | 0.91 | 1.1459112106720422 | 0.0024322663309814807
92 | 0.92 | 1.1516500258796145 | 0.002473724975194269
93 | 0.93 | 1.1575211659094353 | 0.0025142589649276292
94 | 0.94 | 1.163524478582824 | 0.0025538319214659655
95 | 0.95 | 1.1696597320807638 | 0.00259241023492085
96 | 0.96 | 1.1759266172711853 | 0.002629963107582567
97 | 0.97 | 1.182324750180819 | 0.002666462581974116
98 | 0.98 | 1.1888536745959872 | 0.0027018835539989183
99 | 0.99 | 1.1955128647765763 | 0.0027362037716927023
100 | 1 | 1.202301728267422 | 0.0027694038201930837
In [6]:
display()
In [ ]:
# 6.2 CP1
f = lambda t, y: t
# f = lambda t, y: (t**2)*y
# f = lambda t, y: 2*(t+1)*y
# f = lambda t, y: 5*(t**4)*y
# f = lambda t, y: 1/(y**2)
# f = lambda t, y: (t**3)/(y**2)
pp_euler(f, h=0.1, t=1, iv=(0, 1), method=euler_trapezoid)
Content source: regiontog/matte3
Similar notebooks: