mirror of
https://github.com/AlatarQ/AHE.git
synced 2025-05-12 03:10:05 +02:00
AiSD | Ćwiczenie 3 | Dodane zadanie 4
This commit is contained in:
parent
83f4a973be
commit
f00e4c086f
40
AiSD/Ćwiczenie 5/Zadanie_4.py
Normal file
40
AiSD/Ćwiczenie 5/Zadanie_4.py
Normal 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()
|
Loading…
Reference in New Issue
Block a user