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)