AiSD | Ćwiczenie 3 | Dodane zadanie 4

This commit is contained in:
Alatar 2024-01-24 11:12:19 +01:00
parent 83f4a973be
commit f00e4c086f

View File

@ -0,0 +1,40 @@
import sys
def f(x):
x3=1;x2=-1;x1=-1;x0=2
y = x*x*x*x3 + x*x*x2 + x*x1 + x0
return y
def licz_mzero_bisekcja(a,b,d,i,imax):
x = (a+b)/2
y = abs(f(x))
i = i+1
if i > imax:
return False
print(f"iteracja :{i} x={x} f(x)={y} a={a} b={b}")
if y>d:
if f(a) * f(x) < 0 :
x = licz_mzero_bisekcja(a,x,d,i,imax)
else:
x = licz_mzero_bisekcja(x,b,d,i,imax)
return x
def Zadanie1():
v = False
while v == False:
a = float(input("Wprowadz piwerszy punkt graniczny a="))
b = float(input("Wprowadz drugi punkt graniczny b="))
d = float(input("Wprowadz dokładnosc obliczen d="))
imax = int(input("Wprowax limit glebokosci rekurencji imax="))
if f(a) * f(b) >= 0:
v = False
print("brak miejsc zerowych w podanej granicy")
else:
x = licz_mzero_bisekcja(a,b,d,0,imax)
if x != False:
print("X=",x," z dokladnoscia ",d)
else:
print("Osiągnieto limit imax")
Zadanie1()