Я должен написать код, который находит корни кубического полинома и проверяет, сходится ли он и где.Я написал код, используя различные подсказки, хотя у меня смешанные чувства, когда он работает.Мой код возвращает набор значений, но, по какой-то причине есть отклонение, например, вместо того, чтобы взять x = 1, он принимает x = 1.0000000000000007, и он отбрасывает определенные результаты (в полиноме я взял один из корней равен 0, иэто трудно заметить в результате, это легко увидеть для корней -0,5 и 1)
Я очень сомневаюсь, что когда он правильно проверяет сходимость, предполагается, что часть
if (x>10):
print("rozbieżny")
break
проверить (rozbieżny означает, что не сходится) Это правильно?
Последнее, я хотел бы, чтобы мой код печатал в найденных конечных корнях, но я не уверен, как это сделать.
Спасибо за ваше время (и, надеюсь, помочь).
x=0
def f(x):
f=x**3.0-(x**2.0/2.0)-(x/2.0)
return (f)
def frange(start, stop, krok):
i=start
while i < stop :
yield i
i += krok
a=-2.0
b=2.0
c=0.1
for x in frange(a,b,c):
print("pierwszy x",x)
for i in range (5):
if (x>10):
print("rozbieżny")
break
else:
x=x-f(x)
if (x<10):
print(x)