Мне нужно создать код для этой конкретной задачи, например, NewRaph2 (f, g, xi, yi, Err, iter): с 2 различными нелинейными уравнениями.Я знаю, как создать код для алгоритма Ньютона-Рафсона, когда в коде есть производная.Тем не менее, я не могу поместить это в определение для этого
У меня есть мой код с производными в нем, есть ли способ просто изменить его, чтобы найти то, что нужно?G1 и G2 являются функциями, G11 и G21 являются частями x, а G12 и G22 являются частями y.
def NewRaph2(G1,G2,G11,G22,G12,G21,xi,yi,iter,Err):
for i in range(0,iter):
Jac=G11(xi,yi)*G22(xi,yi)-G21(xi,yi)*G12(xi,yi)
deltx=(-G1(xi,yi)*G22(xi,yi)+G2(xi,yi)*G12(xi,yi))/Jac
delty=(-G2(xi,yi)*G11(xi,yi)+G1(xi,yi)*G21(xi,yi))/Jac
x1=xi+deltx
y1=yi+delty
Errx=nt.absolute((x1-xi)/xi)
Erry=nt.absolute((y1-yi)/yi)
print('i=%2.0f x = %-7.4f y=%-7.4f Erreur en x =%-7.4f Erreur en y =%7.4f\n'%(i,x1,y1,Errx,Erry)
if (Errx<Err) and (Erry<Err):
solx=x1
soly=y1
break
else:
xi=x1
yi=y1
return solx,soly
def f(xx,yy):
return(4*xx**2-yy**3+28)
def g(xx,yy):
return(3*xx**3+4*yy**2-145)
def fx(xx,yy):
return(8*xx)
def fy(xx,yy):
return(-3*yy**2)
def gx(xx,yy):
return(9*xx**2)
def gy(xx,yy):
return(8*yy)
Формулы следующие: