就这个复杂问题谈谈我的理解:
1.最小二乘法拟合曲线需要的是等间距点,而且椭圆函数是一个及其复杂的数学命题。
2.已知若干零散点,可考虑利用椭圆特性:椭圆上任何一点到两个焦点的距离和为2a。可以看出求椭圆方程式有七个未知数,即两个焦点的x,y,z坐标以及a。若非空间三维椭圆则有五个未知数。也就是说需要已知五个点才能确定椭圆方程式。
3.然后再对非线性方程组求解,只能求得近似值。用lisp去做这些事估计很难。
4.在网上找到一个椭圆曲线函数,估计可能没用,若是有用的话就可以只对线性方程组求解。
椭圆曲线是指这样一类曲线方程:
y^2+a1*xy+a3*y=x^3+a2*x^2+a4*x+a6
x=[4.5596 5.0816 5.5546 5.9636 6.2756]';
y=[0.8145 1.3685 1.9895 2.6925 3.5265]';
x2=x.^2;
y2=y.^2;
xy=x.*y;
A=[x2,xy,y2,x,y]
% 解椭圆方程
c = inv(A)*ones(5,1)
c =
0.3378
-0.3783
0.3818
-0.9217
-0.8209
%画图
ezplot('0.33788*x.^2-0.3783*x.*y+0.3818*y.^2-0.9217*x-0.8209*y-1')
hold on
plot(x,y,'*')
1、现成的函数plotellipse(0,0,w,l,k),k是弧度。0,0表示中心点在原点,如果不在原点,输入相应的坐标就行了。
2、另外一种是按照椭圆的极坐标方程,编程画点来画出来,就不说了。