You are on page 1of 4

HAMZA AHMED WAJEEH (12349) NC LAB (111678) TASK 12

Q1 : A
Trapezoidal method
import math

def f(x):

return (math.sin(x**2)-2*x*math.sin(x)+1)

def trapezoidal(x0,xn,n):

h = (xn - x0) / n

integration = f(x0) + f(xn)

for i in range(1,n):

k = x0 + i*h

integration = integration + 2 * f(k)

integration = integration * h/2

return integration

lower_limit = float(input("Lower limit of integration: "))

upper_limit = float(input("Upper limit of integration: "))

sub_interval = int(input("Number of sub intervals: "))

result = trapezoidal(lower_limit, upper_limit, sub_interval)

print("Integration by Trapezoidal method is: %0.6f" % (result) )

n Approximate Et |Et|

2 0.031575
4 0.039760
6 0.041281
8 0.041814

10 0.042060
HAMZA AHMED WAJEEH (12349) NC LAB (111678) TASK 12

Q1 : B
Trapezoidal method
import math

def f(x):

return x**2 * math.exp(-x)

def trapezoidal(x0,xn,n):

h = (xn - x0) / n

integration = f(x0) + f(xn)

for i in range(1,n):

k = x0 + i*h

integration = integration + 2 * f(k)

integration = integration * h/2

return integration

lower_limit = float(input("Lower limit of integration: "))

upper_limit = float(input("Upper limit of integration: "))

sub_interval = int(input("Number of sub intervals: "))

result = trapezoidal(lower_limit, upper_limit, sub_interval)

print("Integration by Trapezoidal method is: %0.6f" % (result) )

n Approximate Et |Et|

2 0.167786
4 0.162488
6 0.704044
8 0.161080

10 0.160909
HAMZA AHMED WAJEEH (12349) NC LAB (111678) TASK 12

Q1 : A
Simpson's 1/3 method
import math
def f(x):
return (math.sin(x**2)-2*x*math.sin(x)+1)
def simpson13(x0,xn,n):
# calculating step size
h = (xn - x0) / n
# Finding sum
integration = f(x0) + f(xn)
for i in range(1,n):
k = x0 + i*h
if i%2 == 0:
integration = integration + 2 * f(k)
else:
integration = integration + 4 * f(k)
# Finding final integration value
integration = integration * h/3
return integration
# Input section
lower_limit = float(input("Lower limit of integration: "))
upper_limit = float(input("Upper limit of integration: "))
sub_interval = int(input("Number of sub intervals: "))

result = simpson13(lower_limit, upper_limit, sub_interval)


print("Integration by Simpson's 1/3 method is: %0.6f" % (result) )

n Approximate Et |Et|
2 0.042238
4 0.042488
6 0.042497
8 0.042498

10 0.042499
HAMZA AHMED WAJEEH (12349) NC LAB (111678) TASK 12

Q1 : B
Simpson's 1/3 method
def f(x):

return x**2 * math.exp(-x)


def simpson13(x0,xn,n):
h = (xn - x0) / n
integration = f(x0) + f(xn)
for i in range(1,n):
k = x0 + i*h
if i%2 == 0:
integration = integration + 2 * f(k)
else:
integration = integration + 4 * f(k)
integration = integration * h/3
return integration
lower_limit = float(input("Lower limit of integration: "))

upper_limit = float(input("Upper limit of integration: "))

sub_interval = int(input("Number of sub intervals: "))

result = simpson13(lower_limit, upper_limit, sub_interval)

print("Integration by Simpson's 1/3 method is: %0.6f" % (result) )

n Approximate Et |Et|
2 0.162402
4 0.160722
6 0.160627
8 0.160610

10 0.160606

You might also like