Victor Surozhtsev
Просветленный
(34458)
4 года назад
Это типа решaть методом Ньютона уравнения вроде таких: cos x = x,
ln x = ¹/х ?
Ничего тут особо сложного нет! Вот как решается, например, первое:
import decimal; e=decimal.Decimal(1)
h=decimal.Decimal('1e-15'); d=2*h
def cos(x):
~~y=-x*x; p=s=1; k=0
~~while abs(p) > 1e-30:
~~~~k+=2; p*=y/(k*(k-1)); s+=p
~~return s
def y(x): return x-cos(x)
def ydiff(x): return (y(x+h)-y(x-h))/d
x,iter=input('x iter > ').split()
x=decimal.Decimal(x); iter=int(iter)
for k in range(iter):
~~x-=y(x)/ydiff(x); print(k+1,x)