python - def中没有导数的非线性Newton-Raphson?
问题描述
我需要为这个特定问题创建一个代码 def NewRaph2(f,g,xi,yi,Err,iter): 使用 2 个不同的非线性方程。当代码中有导数时,我知道如何为 Newton-Raphson 算法创建代码。但是,我不能把它放在这个定义中
我的代码中有衍生代码,有没有办法修改它以找到所需的内容?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)
公式如下:
解决方案
推荐阅读
- node.js - 在 hapi 17 中捕获插件问题
- mysql - 基于多个条件的 mySQL ORDER
- angularjs - 服务器无法识别 mondodb 模块 whit angular
- c++ - 为什么忽略模板化的复制构造函数?
- r - 如何有效地将函数应用于多个矩阵 - 列的平均值
- wpf - 在 WPF 的 Xamarin.Forms 中,是否有符号 __IOS__ 和 __ANDROID__ 的等价物
- python - 如何从 Django Rest Framework 序列化程序返回不同时区的 DateTime
- html - 内容滚动/水平溢出
- architecture - 如何实现服务器到客户端的远程程序?
- laravel - 如何在同一页面内运行的不同js中使用vi18n