具体问题是这样的。(1 ,i, 0)(1,-i,0)是一对圆环点,任何一个圆都经过这两个点。当两个圆经历了投影变换,就变成了两个椭圆,我需要把这两个椭圆的交点解出来,以求出圆环点在这个投影变换中的像。理论上来说是四个解,其中一对是圆环点的像。二元二次方程组的系数有些复杂, X=(x,y,1)
e1= [ 0.0192 -0.0016 -0.1880; -0.0016 0.0255 0.0012; -0.1880 0.0012 1.8330];
e2= [ 0.0188 -0.0014 -0.1742; -0.0014 0.0256 -0.0081; -0.1742 -0.0081 1.6216];
这是一个系数矩阵。
方程是 X.'*E1*X=0; X.'*E2*X=0;
系数矩阵和多项式的转化关系是
% a11x^2+a22y^2+2a13x+2a23y+a33=0
% (a11 a12 a13)
% (a12 a22 a23) =A
% (a13 a23 a33)
定义的函数是。
function F = myfun(x,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5)
F = [a1*x(1)^2+a2*x(2)^2+a3*x(1)+a4*x(2)+a5;
b1*x(1)^2+b2*x(2)^2+b3*x(1)+b4*x(2)+b5];
具体算的时候是:
a1=e1(1,1); a2=e1(2,2); a3=e1(1,3)*2; a4=e1(2,3)*2; a5=e1(3,3);
b1=e2(1,1); b2=e2(2,2); b3=e2(1,3)*2; b4=e2(2,3)*2; b5=e2(3,3);
x0=[0.5 0.5]; options=optimset('Display','iter'); % Option to display output
[x,fval] = fsolve(@myfun,x0,options,a1,a2,a3,a4,a5,b1,b2,b3,b4,b5)
disp(x);
[ 本帖最后由 ChaChing 于 2009-2-23 20:49 编辑 ] |