Record Book Write Up - Jupyter Notebook
Record Book Write Up - Jupyter Notebook
In [20]:
1 import numpy as np
2 a = np.array([[5,-2,3],[-3,9,1],[2,-1,-7]])
3 b = np.array([-1,2,3])
4
5 x = np.zeros(len(a[0]))
6 xnew = np.zeros(len(a[0]))
7 n = len(a)
8 lim = 10
9 e = 0.001
10
11
12 for k in range(lim):
13 for i in range(n):
14 sum = 0
15 for j in range(n):
16 if (j!=i):
17 sum = sum + a[i][j]*x[j]
18 xnew[i] = (1/a[i][i])*(b[i]-sum)
19 diff = abs(x-xnew)
20 if (max(diff) <e):
21 break
22 x = list(xnew)
23 print(xnew)
1 import numpy as np
2 a = np.array([[5,-2,3],[-3,9,1],[2,-1,-7]])
3 b = np.array([-1,2,3])
4 x = np.zeros(len(a))
5 lim = 10
6 n = len(a)
7 y = list(x)
8 e = 0.001
9 for k in range(lim):
10 for i in range(n):
11 sum = 0
12 for j in range(n):
13 if (j!=i):
14 sum = sum + a[i][j]*x[j]
15 x[i] = (1/a[i][i])*(b[i]-sum)
16
17 diff = abs(x-y)
18 if (max(diff) <e):
19 break
20 y = np.array(x)
21 print(k)
22 print(y)
Bisection method
In [16]:
1 import numpy as np
2 def y(x):
3 return(np.cos(x)-x)
4
5 a=0
6 b=1
7
8 while(abs(a-b)>=0.001):
9 c = (a+b)/2
10 if y(a)*y(b)>0:
11 b=c
12 else:
13 a=c
14 print("the root of the equation is ", c)
1 import numpy as np
2 fun = np.poly1d([1,-2,-2])
3
4 der = fun.deriv()
5 err = 123
6 x1 = 3
7 x2 = x1 - fun(x1)/der(x1)
8 while (abs(err)>=0.000001):
9 x3 = x2 - fun(x2)/der(x2)
10 x1 = x2
11 x2 = x3
12 err = (x2-x1)/x1
13 print(x1,x2)
14
2.75 2.732142857142857
2.732142857142857 2.7320508100147274
2.7320508100147274 2.732050807568877
trapezoidal rule
In [1]:
1
2 import numpy as np
3 def y(x):
4 y = 1/(1 + x*x)
5 return(y)
6
7 a = int(input("Enter the lower limit a = "))
8 b = int(input("Enter the upper limit b = "))
9 n = int(input("Number of intrevals, n = "))
10
11 x0 = a
12 y0 = y(x0)
13
14 xn = b
15 yn = y(b)
16 h = abs((b-a)/n)
17
18 Y1 = y0 + yn
19 Y = 0
20 for i in range(1,n):
21 Y = Y + y(i*h)
22 I = (h*0.5)*(Y1 + (2*Y))
23 print(I)
24
1.4711276741403547
1 import numpy as np
2 def y(x):
3 y = 1/(1 + x*x)
4 return(y)
5
6 a = int(input("Enter the lower limit a = "))
7 b = int(input("Enter the upper limit b = "))
8 n = int(input("Number of intrevals, n = "))
9
10 x0 = a
11 y0 = y(x0)
12
13 xn = b
14 yn = y(b)
15 h = abs((b-a)/n)
16
17 Y = y0 + yn
18 Y1 = 0
19 Y2 = 0
20 for i in range(1,n):
21 if i%2==0:
22 Y1 = Y1 + y(i*h)
23 elif i%2!=0:
24 Y2 = Y2 + y(i*h)
25 I = (h/3)*(Y + 4*Y2 +2*Y1)
26 print(I)
1.4711276743037227
1 import numpy as np
2 def y(x):
3 y = 1/(1 + x*x)
4 return(y)
5
6 a = int(input("Enter the lower limit a = "))
7 b = int(input("Enter the upper limit b = "))
8 n = int(input("Number of intrevals, n = "))
9
10 x0 = a
11 y0 = y(x0)
12
13 xn = b
14 yn = y(b)
15 h = abs((b-a)/n)
16
17 Y = y0 + yn
18 Y1 = 0
19 Y2 = 0
20
21 sum1 = 0
22 sum2 = 0
23
24 for i in range(1,n):
25 sum1 = sum1 + y(i*h) - y(3*i*h)
26 sum2 = sum2 + y(3*i*h)
27 I = (3*h/8)*(Y1 + Y2 + (3*sum1) + (2*sum2))
28 print(I)
1.4590305874912595
Euler's method
In [2]:
1 def f(x,y):
2 f = y**2-1
3 return (y**2-1)
4 x0 = int(input("enter x0 : "))
5 y0 = int(input("enter y0 : "))
6 xn = int(input("enter xn : "))
7 h = float(input("enter stepsize: "))
8
9 while x0 < xn:
10 y0 = y0 + h*f(x0,y0)
11 x0 = x0 + h
12 print(x0,y0)
enter x0 : 0
enter y0 : 0
enter xn : 1
0.125 -0.125
0.25 -0.248046875
0.375 -0.3653559684753418
0.5 -0.47367034551277243
0.625 -0.5706248959854988
0.75 -0.6549232994956912
0.875 -0.7263077334679008
1.0 -0.7853673680059909
Runge-Kutta method
In [6]:
1 def f(x,y):
2 f = y-x
3 return (y-x)
4 x0 = int(input("enter x0 : "))
5 y0 = int(input("enter y0 : "))
6 xn = float(input("enter xn : "))
7 h = float(input("enter stepsize: "))
8
9 k1 = h*f(x0,y0)
10 k2 = h*f(x0 + h, y0 + k1)
11
12 while x0 < xn:
13 k1 = h*f(x0,y0)
14 k2 = h*f(x0 + h, y0 + k1)
15 y = y0 + (1/2)*(k1 + k2)
16 y0 = y
17 x0 = x0 + h
18 print(x0, y)
enter x0 : 0
enter y0 : 2
enter xn : 0.2
0.01 2.02005
0.02 2.0402010025
0.03 2.060454022575125
0.04 2.080810085502005
0.05 2.1012702268613004
0.060000000000000005 2.1218354926412566
0.07 2.1425069393423013
0.08 2.1632856340826914
0.09 2.1841726547052223
0.09999999999999999 2.20516908988501
0.10999999999999999 2.2262760392383543
0.11999999999999998 2.2474946134327
0.12999999999999998 2.2688259342976984
0.13999999999999999 2.2902711349373903
0.15 2.311831359843511
0.16 2.3335077650099385
0.17 2.3553015180482886
0.18000000000000002 2.3772137983046737
0.19000000000000003 2.3992457969776355
0.20000000000000004 2.4213987172372606
Free fall
In [10]:
1 y0 =0
2 t0 = 0
3 tn = 20
4 v0 = 0
5 n = 10
6
7 g = 9.8
8
9 h = (tn-t0)/n
10 V=[0]
11 t=[0]
12
13 while t0<tn-h :
14 y0 = y0+(h*v0)
15 v0 = v0 + (h*g)
16 t0 = t0 + h
17 V.append(v0)
18 t.append(t0)
19 print(t0,y0,v0)
In [11]:
SHM
In [4]:
1 x0 = 1
2 v0 = 0
3 t0 = 0
4 tn = 25
5 n = 100
6
7 h = (tn-t0)/n
8 k=1
9 m=1
10 while(t0<tn-h):
11 a=(-k/m)*x0
12 v0 = v0+(h*a)
13 x0 = x0+(h*v0)
14 t0 = t0+h
15 print(t0,x0,v0,a)
In [ ]: