ich soll einen code programmieren, der mit einer besonderen Form des Newton Verfahren, konvergenzverhalten p=3, die nullstelle der funtkion f(x)=x^3+4*x^2-15 bestimmt. Der totale Fehler soll bei 10^-12 liegen.
Die Iterationsvorschrift ist x_k+1=x_k-f(x_k+f(x)/f'(x)-f(x))/f'(x) .
Meine erste frage: die definition von xold ist ziemlich unschön, hat da jmd ne bessere idee? bzw ist der code überhautp richtig? =)
Ich sollte zum beispiel auch einstellen können, welche i das programm ausgibt, also quasi if i=1 or 2 or ... then print (i,x), ginge dies einfacher?
Code: Alles auswählen
def f(x): return x**3+4*x**2-15
def df(x): return 3*x**2+8*x
def newton_raphs(x0,f,df):
x=x0
eps=1E-12
xold=x+1
i=0
while (abs(x - xold)>eps):
i=i+1
xold=x
x=xold-(f(xold+f(xold)/df(xold))-f(xold))/df(xold)
print (i,x,f(x), xold)
newton_raphs(-0.9, f, df)
xPae