方程为
F1(x,y)=0
F2(x,y)=0
第一步设置初值
第二步按照非线性方程进行迭代
设置初值建议按照步长比如0.001进行,代入方程,得到F1,F2,取最小F1^2+F2^2时的x0,y0作为初值。这样初值比较准确。
第二步把F1,F2求偏导dF1/dx,dF1/dy,dF2/dx,dF2/dy在初值x0,y0处的值,求l1=F1(x0,y0),l2=F2(x0,y0),列方程
dF1/dx * dx + dF1/dy * dy = l1
dF2/dx * dx + dF2/dy * dy = l2
求解dx,dy。
然后x0=x0+dx,y0=y0+dy。
循环第二步,直到dx,dy足够趋近于0,取x0,y0作为解。
如果方程无解,可能在求初值的时候会发现l1*l1+l2*l2过大,或者x0,y0越来越偏离(0,1)区间。
【 在 feng2 的大作中提到: 】
: 二元三次方程组求解
: Ax^3 + Bx^2 + Cx + Dy^3 + Ey^2 + Fy = G
: Nx^3 + Px^2 + Qx + Ry^3 + Sy^2 + Ty = U
: x,y的范围\[0, 1\]
:
: 请教一下高手了
: --
发自「今日水木 on iOS」
--
FROM 111.199.188.*