Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions Bisection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import math


def bisection(function, a, b): # finds where the function becomes 0 in [a,b] using bolzano

start = a
end = b
if function(a) == 0: # one of the a or b is a root for the function
return a
elif function(b) == 0:
return b
elif function(a) * function(b) > 0: # if noone of these are root and they are both possitive or negative,
# then his algorith can't find the root
print("couldn't find root in [a,b]")
return
else:
mid = (start + end) / 2
while abs(start - mid) > 0.0000001: # untill we achive percise equals to 10^-7
if function(mid) == 0:
return mid
elif function(mid) * function(start) < 0:
end = mid
else:
start = mid
mid = (start + end) / 2
return mid


def f(x):
return math.pow(x, 3) - 2*x -5


print(bisection(f, 1, 1000))
16 changes: 16 additions & 0 deletions Intersection.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import math

def intersection(function,x0,x1): #function is the f we want to find its root and x0 and x1 are two random starting points
x_n = x0
x_n1 = x1
while True:
x_n2 = x_n1-(function(x_n1)/((function(x_n1)-function(x_n))/(x_n1-x_n)))
if abs(x_n2 - x_n1)<0.00001 :
return x_n2
x_n=x_n1
x_n1=x_n2

def f(x):
return math.pow(x,3)-2*x-5

print(intersection(f,3,3.5))
17 changes: 17 additions & 0 deletions NeutonMethod.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import math

def newton(function,function1,startingInt): #function is the f(x) and function1 is the f'(x)
x_n=startingInt
while True:
x_n1=x_n-function(x_n)/function1(x_n)
if abs(x_n-x_n1)<0.00001:
return x_n1
x_n=x_n1

def f(x):
return math.pow(x,3)-2*x-5

def f1(x):
return 3*math.pow(x,2)-2

print(newton(f,f1,3))