一种基于Lipschitz估计的三维曲面拟合方法
【技术领域】
[0001] 本发明设及一种数学建模、计算机应用领域,尤其设及的是,一种基于Lipschitz 估计的=维曲面拟合方法。
【背景技术】
[0002] 科学和工程问题可W通过诸如采样、实验、测绘等方法获得若干离散的数据,根据 该些数据,我们往往希望得到一个连续的曲面与已知数据相吻合,此过程就叫做曲面拟合。 曲面拟合在计算机图形学、逆向工程、数值计算等方面有着广泛的应用。工程中的许多进展 都高度依赖于曲面拟合技术,因此,对曲面拟合方法的全面研究具有积极的现实意义。目 前,最常用的曲线拟合方法有最小二乘法、插值法和缩张算法等。
[0003] 最小二乘法是根据已知的数据(xk,yk)化二1,2, . . .,口(其中xk为测定量,yk为 其对应的函数值,K为数据点的数量规模大小)选取一个近似的函数f(x),使得E2(f)(均 方根误差)最小;最小二乘法拟合最大优点是拟合精度可W调控,可W根据实际使用情况 选择不同的拟合精度,但在实际应用中,有些场合需要保留原数据点,该时使用最小二乘法 等常用方法就不合适了。插值法是根据插值原则构造n次多项式P"(x),使得P"(x)在各测 试点的数据正好通过实测点;虽然插值法能够保留原数据点,但是,在一般情况下,为了尽 量反映实际情况而采集了很多样点,导致插值多项式P"(x)的次数很高,该不仅增大了计算 量,而且影响了拟合精度。缩张算法是一种W收缩、扩张捜索空间为基本特征的直接迭代算 法,缩张算法包含=个步骤;1)收缩步,缩小步长的捜索过程;2)扩张步,扩大步长的捜索 过程;3)调整步,中屯、点、临界值的重新调整。缩张算法无需提供适合的初始值,实现最优 拟合的能力较强,但是捜索效率不高,对多参数非线性问题难于实施。
[0004] 因此,现有的技术在曲线拟合方面存在着缺陷,需要改进。
【发明内容】
[0005] 为了克服已有方法不能保留原数据点、计算量大、拟合精度较低及效率不高的不 足,本发明提供一种能够保留原数据点、计算量小、拟合精度和效率较高的基于Lipschitz 估计的=维曲面拟合方法。
[0006] 本发明解决其技术问题所采用的技术方案是;
[0007] -种基于Lipschitz估计的=维曲面拟合方法,所述方法包括W下步骤:
[000引 1)参数初始化;设置常数M,输入初始数据点(成攻/),k= 1,2,...,K,其中K 为数据点的规模大小;
[0009] 2)建立初始支撑矩阵,过程如下:
[0010] 2. 1)根据已有的数据点确定Xi的定义域[a。bi],X2的定义域[3 2,b2],其中ai、a2 分别为Xi、X2的下界,b1、b2为上界;
[0011] 2.。根据如下公式对点A(l,0),B(0, 1)和C(0, 0)作转换;
[0012](1)
[0013] 其中x/,X2',X3'为线性转换变量,并记转换后的点为A'、B'和C' ;
[0014] 2.如根据如下公式计算点A'、B'和C'的支撑向量:
[0015]
(2)
[0016] 其中,yk为点Xk函数值,M为足够大的常数,点A、B和C的函数值用初始数据点中 函数值最大的值代替,记作y。。,;
[0017] 2.4)把点A',B'和C'的支撑向量组成支撑矩阵L,如公式做所示:
[00 化]
(3)
[0019] W支撑矩阵L为根建立树;
[0020] 3)计算每个已知数据点的支撑向量并更新树,对每个数据点作如下处理:
[002U3. 1)根据公式(4)对xk作线性转换为X' k
[0022]
(4)
[002引 3.。根据公式似计算出点(X'k,yk)的支撑向量Ik;
[0024] 3. 3)根据条件关系式(5)和(6)更新树:
[0027] 其中V表示任意,3表示存在;
[002引 3.3. 1)找出针对步骤3.2)构建的支撑向量Ik不满足条件化)的叶子节点,即
[0029] 3.3.2)依次用Ik替换步骤3. 3. 1)中找到的叶子节点矩阵中的每一行支撑向量 卢,从而形成=个新的叶子节点,即=个新的支撑矩阵;
[0030] 3. 3. 3)判断步骤3. 3. 2)中产生的新的叶子节点是否满足条件关系式巧),如果满 足,则保留,否则删除;
[0031] 4)计算下界估计值:
[0032] 4. 1)设置采样步长,并在各变量定义域范围内采样;
[003引 4.。对步骤4. 1)的每一个采样点(X。X2)作如下处理:
[0034] 4.2. 1)根据公式(4)作线性变换,得到新的向量X' = (X/,X2',X3');
[0035] 4. 2. 2)根据公式(7)从步骤3. 3)建立的树中找到包含向量X'的叶子节点,如果 叶子节点满足式(7)则包含,否则不包含;
[0036]
(7)
[0037] 其中,产为所找的叶子节点矩阵中的元素;
[003引 4. 2. 3)根据公式(8)求出点X'所在的叶子节点对应区域的下界估计值另;
[0039]
巧)
[0040] 4. 2. 4)对步骤4. 2. 3)求得的下界估计值另乘WM得到实际下界估计值,即 而二?I乂M?,
[004U 4. 2. 5)输出下界估计值歹/及其对应的采样点(X。X2);
[0042]W计算上界估计值,过程如下:
[00创 5. 1)把数据点中的yk取负.
[0044] 5. 2)按步骤2)到4)计算下界估计值;
[0045] 5. 3)对步骤5. 2)所得的下界估计值取负,即为上界估计值九;
[0046] 5. 4)输出上界估计值方及其对应的采样点(X。X2);
[0047] 6)曲线拟合,过程如下:
[0048] 6. 1)连接每一个点对得到待拟合曲面的下界估计;
[0049] 6.。连接每一个点(Xi,A:2,灭,)得到待拟合曲面的上界估计;
[0050] 6. 3)对上界估计和下界估计取平均得到的曲面即为待拟合曲面。
[0化1] 本发明的技术构思为:基于Lipschitz估计理论,首先,对已知初始数据点构建 Lipschitz估计下界支撑面,并Wn叉树的形式来保存下界估计信息,从而建立待拟合曲面 的下界估计曲面,再W同样的方法建立待拟合曲面的上界估计曲面;然后,在各变量的定义 域范围内按一定的步长采样,获取各采样点的上界估计值和下界估计值,通过对上界估计 值和下界估计值取平均而得到该采样点估计值;最后,连接各采样点得到拟合曲面。
【附图说明】
[00巧图1是函数y=sin(Xi+X2)的下界估计示意图。
[0化引 图2是函数y=sin(Xi+X2)上界估计示意图。
[0054] 图3是函数y=sin(Xi+X2)的拟合曲面示意图。
【具体实施方式】
[0化5] 下面结合附图对本发明作进一步描述。
[0化6] 参照图1~图3, 一种基于Lipschitz估计的S维曲面拟合方法,包括W下步骤:
[0化7] 1)参数初始化;设置常数M,输入初始数据点扣-,.皆/),k= 1,2,...,K,其中K 为数据点的规模大小;
[0化引 2)建立初始支撑矩阵,过程如下:
[0059] 2. 1)根据已有的数据点确定Xi的定义域[a。bi],X2的定义域[3 2,b2],其中ai、a2 分别为Xi、X2的下界,b1、b2为上界;
[0060] 2.。根据如下公式对点A(l,0),BO), 1)和C(0, 0)作转换:
[0061]
(9)
[0062] 其中X/,X2',X3'为线性转换变量,并记转换后的点为A'、B'和C' ;
[0063]2.如根据如下公式计算点A'、B'和C'的支撑向量:
[0064]
(10)
[00化]其中,yk为点Xk函数值,M为足够大的常数,点A、B和C的函数值用初始数据点中 函数值最大的值代替,记作y。。,;
[0066] 2. 4)把点A',B'和C'的支撑向量组成支撑矩阵L,如公式做所示:
[0067]
(11)
[0068] W支撑矩阵L为根建立树;
[0069] 3)计算每个已知数据点的支撑向量并更新树,对每个数据点作如下处理:
[0070] 3. 1)根据公式(4)对xk作线性转换为X' k
[0071]
(12)
[007引 3.。根据公式似计算出点(X'k,yk)的支撑向量Ik;
[0073] 3. 3)根据条件关系式(5)和(6)更新树:
[0074] 方7,./巨{1,2,3!,/;^/.:/;' >// U3)
[007引 Wg{1,2,刊,击 £ 化2,3}: 4 =户 >/; y4)
[0076] 其中V表示任意,3表示存在;
[0077] 3.3. 1)找出针对步骤3. 2)构建的支撑向量Ik不满足条件化)的叶子节点,即 r;二!U
[007引 3.3.2)依次用Ik替换步骤3. 3. 1)中找到的叶子节点矩阵中的每一行支撑向量 /S从而形成=个新的叶子节点,即=个新的支撑矩阵;
[0079] 3. 3. 3)判断步骤3. 3. 2)中产生的新的叶子节点是否满足条件关系式巧),如果满 足,则保留,否则删除;
[0080] 4)计算下界估计值;
[0081] 4. 1)设置采样步长,并在各变量定义域范围内采样;
[008引 4.。对步骤4. 1)的每一个采样点(X。X2)作如下处理:
[0083] 4.2. 1)根据公式(4)作线性变换,得到新的向量X' = (X/,X2',X3');
[0084] 4. 2. 2)根据公式(7)从步骤3. 3)建立的树中找到包含向量X'的叶子节点,如果 叶子节点满足式(7)则包含,否则不包含;
[0085]
(15)
[0086] 其中,X产,X,A为所找的叶子节点矩阵中的元素;