xxxxxxxxxx
import math as mat
def BisectionMethod(a,b):
def titik_tengah(a,b):
return (a+b)/2
def function(x):
return (mat.pow(x,3))+(4*(mat.pow(x,2)))-10
def aproximar():
global a
global b
n=1
iterasi=10
print("i \t a \t\t b \t\tc \t\tf(a) \t\tf(b) \t\tf(c)")
while(True):
c=titik_tengah(a,b)
print(str(n),"\t","{0:.5f}".format(a),"\t","{0:.5f}".format(b),"\t","{0:.5f}".format(c), "\t{0:.5f}".format(function(a)),"\t{0:.5f}".format(function(b)),"\t{0:.5f}".format(function(c)))
if n > iterasi:
print("progam tidak dapat menyatu dengan interval yang diberikan")
break
else:
if mat.fabs(function(c))<=0.01:
print("\nHasil \nPerkiraan: {0: .5f}".format(c)," Melakukan iterasi: ", str(n), " Error: {0: .5f}".format(mat.fabs(function(c))))
break
else:
if function(c)*function(a)>0:
a=c
elif function(c)*function(b)>0:
b=c
n=n+1
aproximar()
a=float(input("interval a:"))
b=float(input("interval b:"))
BisectionMethod(a,b)
xxxxxxxxxx
interval a:5
interval b:4
i a b c f(a) f(b) f(c)
1 5.00000 4.00000 4.50000 215.00000 118.00000 162.12500
2 4.50000 4.00000 4.25000 162.12500 118.00000 139.01562
3 4.25000 4.00000 4.12500 139.01562 118.00000 128.25195
4 4.12500 4.00000 4.06250 128.25195 118.00000 123.06274
5 4.06250 4.00000 4.03125 123.06274 118.00000 120.51566
6 4.03125 4.00000 4.01562 120.51566 118.00000 119.25391
7 4.01562 4.00000 4.00781 119.25391 118.00000 118.62598
8 4.00781 4.00000 4.00391 118.62598 118.00000 118.31274
9 4.00391 4.00000 4.00195 118.31274 118.00000 118.15631
10 4.00195 4.00000 4.00098 118.15631 118.00000 118.07814
11 4.00098 4.00000 4.00049 118.07814 118.00000 118.03907
progam tidak dapat menyatu dengan interval yang diberikan
>>>