﻿功能:椭球函数拟合

格式:
[s,er]=EllipsoidFit(x,y,z)

x:矩阵变量存储的x坐标元素数据 
y:矩阵变量存储的y坐标元素数据
z:矩阵变量存储的z坐标元素数据

s :返回的系数矩阵 
er:返回的均方误差和

说明:
1、本函数主要拟合如下三维非标准椭球方程
$$
s_1x^2+s_2y^2+s_3z^2+2s_4xy+2s_5xz+2s_6yz+2s_7x+2s_8y+2s_9z+s_{10}=0
$$

2、本函数返回的第1个系数为1,返回的误差也是在此系数下的度量。
3、如果想将椭球函数标准化,或者想知道椭圆长短轴,拟合出系数后,可以使用函数{EllipsoidNorm<矩阵运算/EllipsoidNorm>}。

例子:
//下面产生标准椭球数据
a = 2;
b = 3;
c = 4;
s1 = {Rand<矩阵运算/Rand>}(6.2,1,1000);
s2 = {Rand<矩阵运算/Rand>}(6.2,1,1000);
x = a * {Sin<矩阵运算/Sin>}(s1) * {Cos<矩阵运算/Cos>}(s2) + 5;
y = b * {Sin<矩阵运算/Sin>}(s1) * {Sin<矩阵运算/Sin>}(s2) + 6;
z = c * {Cos<矩阵运算/Cos>}(s1) + 7;

[s,er]=EllipsoidFit(x,y,z)//回车得到如下结果
s =
[ 1.00000000000000
  0.44444444442740
  0.24999999999412
  3.1319783039E-12
  3.0836947378E-12
  6.2199096250E-13
 -5.00000000004057
 -2.66666666658439
 -1.74999999997805
  49.2499999996419 ]
er =
[ 1.2948943412E-18 ]

[w,r,t] = {EllipsoidNorm<矩阵运算/EllipsoidNorm>}(s)//通过这个函数,恢复出标准椭圆系数如下
w =
[ 2.00000000003256    3.00000000010636    4.00000000011209 ]
r =
[ 1.00000000000000    5.6375609468E-12    0.00000000000000
 -5.6375609468E-12    1.00000000000000    3.1988106644E-12
  1.8033490078E-23   -3.1988106644E-12    1.00000000000000 ]
t =
[-5.00000000002178
 -5.99999999999992
 -7.00000000006165 ]
