二维二分法-寻根



我正在尝试使用二分法来求解两个高度非线性的方程。让我们说;CCD_ 1和CCD_;

我需要一个二维二分法的matlab代码来求解f(x,y) = 0g(x,y) = 0,并找到所有可能的根

你的想法行不通。通过两个变量中的两个多项式,您进入了具有Gröbner基、结果、Bezout定理和无穷大解的代数领域。

Bezout定理告诉你,最多有6*8=48个解,实数和复数。我不认为matlab有Gröbner包,请使用Maple、Magma或Singular。

使用结果可以减少变量的数量。f和g的x的结果是y中的单变量多项式,然后可以通过标准方法求解。它是y中包含多项式的Sylvester矩阵的行列式,原则上应该能够在matlab中评估它,但它不是很实用。


结果的概念适用于(不是明显的弯路)同伦论方法。Verschelde、Wampler等人对全数值方法进行了广泛的研究。

如果我没记错的话,通过考虑构造了一个初始可解的问题

g0(x,y)=(y-a1*x-b1)*...*(y-a6*x-b6) 

具有随机系数a1、,。。,a6,b1,。。。,b6.然后可以根据单变量多项式确定g0的每个线性因子的初始解

0=f1(x)=f(x,a1*x+b1),..., 0=f6(x)=f(x,a6*x+b6)

使用Jenkins-Traub或Laguerre,给出根xjk和yjk=aj*xjk+bj。复平面的二等分或四等分不是很有用,但存在。参见雅库布森和迪迪欧的作品。

现在在复平面中引入一个从0到1的线性或曲线t=s+c*s*(1-s),s在[0,1]中,c随机小虚数,并考虑系统

0=f(x(t),y(t)),
0=t*g(x(t),y(t))+(1-t)*g0(x(t),y(t)),

从x(0)=xjk和y(0)=yjk开始,。。。,6,k=1,。。。,8.

对于系数的一般值,所遵循的路径不会相交,因此从开始到结束都是规则的,并且可以找到所有的根。一个棘手的部分是决定当一条路径漂移时,是因为一个非常大的解还是无穷大的非解。


另一个同伦论从计算根x1,。。。,固定任意y0的f(x,y0)的x8,然后是根y11,。。。,y61,y12,。。。,g(x1,y)的y68,。。。,g(x8,y)。然后给出了作为的同伦论

0=f( x(t), (1-t)*y0+t*y(t)), 
0=g( x(t), y(t)),

其中x(0)=xk并且y(0)=yjk。

相关内容

  • 没有找到相关文章

最新更新