三次样条拟合典型实例

三次样条拟合典型实例
三次样条拟合典型实例

1设计目的、要求

对龙格函数2

2511

)(x

x f +=

在区间[-1,1]上取10=n 的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出)(x f 及各逼近函数的图形,比较各结果。

2设计原理

(1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项

式,即:

01,,...,n x x x 表示待插值函数的1n +个节点, 0()()n

n j k k j j k L x y l x y ===∑,其中0,1,...,j n =;

011011()...()()...()

()()...()...()...()

k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----=

----

(2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条

件下的样条插值,即两端一阶导数已知的插值方法:

00'()'S x f = '()'n n S x f =

(3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是

利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n= 10,故有11个点,以这11个点的x 和

y 值为已知数据,进行三次多项式拟合,设该多项式为23432xi i i i p a a x a x ax =+++,该拟合曲线只需2[]xi i p y -∑的值最小即可。

3采用软件、设备

计算机、matlab 软件

4设计内容

1、多项式插值:

在区间[]1,1-上取10=n 的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用matlab 软件建立m 函数,画出其图形。

在matlab 中建立一个lagrange.m 文件,里面代码如下: %lagrange 函数

function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k

p=p*(z-x0(j))/(x0(k)-x0(j)); end end

s=p*y0(k)+s; end y(i)=s; end

建立一个polynomial.m 文件,用于多项式插值的实现,代码如下: %lagrange 插值 x=[-1:0.2:1];

y=1./(1+25*x.^2); x0=[-1:0.02:1];

y0=lagrange(x,y,x0); y1=1./(1+25*x0.^2); plot(x0,y0,'--r') %插值曲线 hold on %原曲线

plot(x0,y1,'-b')

运行duoxiangshi.m 文件,得到如下图形:

2、三次样条插值:

所谓三次样条插值多项式()n S x 是一种分段函数,它在节点

i x 011()n n a x x x x b -=<

此区间上的表达式如下:

2233

1111111()[()()]()()666[,]1,2,,.

i i i i i i i i i i i i i i i i i h x x h x x S x x x M x x M y M y M h h h x x x i n --------=-+-+-+-∈=???,

因此,只要确定了i M 的值,就确定了整个表达式,i M 的计算方法如下: 令:

11111111116()6(,,)i i i i i i i i i i i i i i i i i i i i i h h h h h h y y y y d f x x x h h h h μλμ++++--+++?===-?++??

--?=-=?+?,

则i M 满足如下1n -个方程:

1121,2,,1i i i i i i M M M d i n μλ-+++==???-,

对于第一种边界条件下有

????

??

?

-=+-=+---00011

0111

)

'],([62]),['(62h f x x M M h x x f f M M n n n n n n

如果令10010001

6([,]')6('[,])

1,,1,,n n n n n n f x x f f f x x d d h h λμ----==

==那么解就可以为

???

?????

??=???????? ??????????

??----n n n n n n n d d d d M M M M 110110********* μλμλμλ 求函数的二阶导数: >> syms x

>> f=sym(1/(1+25*x^2)) f =

1/(1+25*x^2) >> diff(f) ans =

-(50*x)/(25*x^2 + 1)^2

将函数的两个端点,代入上面的式子中:

f’(-1)=0.0740

f’(1)=-0.0740

求出从-1到1的n=10的等距节点,对应的x,y值

对应m文件代码如下:

for x=-1:0.2:1

y=1/(1+25*x^2)

end

y =

得出

x=-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

y=0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385

编写m文件Three_Spline.m

x=linspace(-1,1,11);

y=1./(1+25*x.^2);

[m,p]=scyt1(x,y,0.0740,-0.0740);

hold on

x0=-1:0.01:1;

y0=1./(1+25*x0.^2);

plot(x0,y0,'--b')

得到如下图像:

.

其中蓝色曲线为原图,红色曲线为拟合后的图像。

3、三次曲线拟合:

这里我们使用最小二乘法的3次拟合

建立一个Three_fitting .m文件,代码如下:

%主要代码

x=[-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1];

y=[0.0385 0.0588 0.1 0.2 0.5 1 0.5 0.2 0.1 0.0588 0.0385];

a=polyfit(x,y,3);

x1=[-1:0.01:1];

y1=a(4)+a(3)*x1+a(2)*x1.^2+a(1)*x1.^3;

x0=[-1:0.01:1];

y0=1./(1+25*x0.^2)

%原曲线 plot(x0,y0,'-r') hold on %三次拟合曲线 plot(x1,y1,'-b')

上图中,蓝色部分为三次拟合曲线,红色部分为原曲线

6结果分析

拉格朗日插值的优点是对于某一区域,不限于被估计点周围,公式简单易实施。一般认为n 的次数越高,逼近)(x f 的精度就越好,但在本题中,对龙格函数2

2511

)(x

x f +=

,中间部分插值效果比较好,而对于两端,插值结果是非常不理想的,即龙格现象。样条函数可以给出光滑的插值曲线,从本题中就能体现出来。从以上图形可以看出,三次样条插值的图形是比较逼近于原图的,收敛性相对而言是非常好的,但在本题中,仅将原区间分成10个等距区间,因此,逼近效果还不是特别理想,当我们将n 增大时,插值后

的曲线越逼近于原曲线。总的来说,三次样条插值的稳定性比较好,收敛性比较强。在这三种方法中,三次曲线拟合的效果是最差的,所得的图形与原曲线差距甚远。最小二乘法中,并不要求拟合后的曲线经过所有已知的点,只需要拟合多项式上的点在某种标准上与定点之间的差距最小即可,因此与原曲线的逼近程度是最差的。最小二乘法的多项式拟合只适用于多项式,而本题中的函数并不是一个多项式,因此,不建议使用最小二乘法拟合。

参考文献:

[1] 李庆扬王能超等.数值分析[M].清华大学出版社

[2] 吴振远.科学计算实验指导书基于MATLAB数值分析[M].中国地质大学出版社

[3] 宋叶志.MATLAB数值分析与应用[M]. 机械工业出版社 , 2009.07

附录

三次样条插值主要代码:

function [m,p]=scyt1(x,y,df0,dfn)

n=length(x);

r=ones(n-1,1);

u=ones(n-1,1);

d=ones(n,1);

r(1)=1;

d(1)=6*((y(2)-y(1))/(x(2)-x(1))-df0)/(x(2)-x(1));

u(n-1)=1;

d(n)=6*(dfn-(y(n)-y(n-1))/(x(n)-x(n-1)))/(x(n)-x(n-1));

for k=2:n-1

u(k-1)=(x(k)-x(k-1))/(x(k+1)-x(k-1)); r(k)=(x(k+1)-x(k))/(x(k+1)-x(k-1));

d(k)=6*((y(k+1)-y(k))/(x(k+1)-x(k))-(y(k)-y(k-1))/(x(k)-x(k-1)))/(x(k+1)-x(k-1));

end

A=eye(n,n)*2;

for k=1:n-1

A(k,k+1)=r(k);

A(k+1,k)=u(k);

end

m=A\d;

ft=d(1);

syms t

for k=1:n-1 %求s(x)即插值多项式

p(k,1)=m(k)/(6*(x(k+1)-x(k)));

p(k,2)=m(k+1)/(6*(x(k+1)-x(k)));

p(k,3)=(y(k)-m(k)*(x(k+1)-x(k))^2/6)/(x(k+1)-x(k));

p(k,4)=(y(k+1)-m(k+1)*(x(k+1)-x(k))^2/6)/(x(k+1)-x(k));

sx(k)=p(k,1)*(x(k+1)-t)^3+p(k,2)*(t-x(k))^3+p(k,3)*(x(k+1)-t)+p(k,4)*(t-x(k)); end

kmax=1000;

xt=linspace(x(1),x(n),kmax);

for i=1:n-1 %出点xt对应的y值

for k=1:kmax

if x(i)<=xt(k)&xt(k)<=x(i+1)

fx(k)=subs(sx(i),xt(k));

end

end

end

plot(xt,fx,'r'); xlabel('x');

ylabel('y'); title('f');

text(x(fix(n/2)),y(fix(n/2)),'f')

hold on

plot(x,y,'*')

hold off

样条曲线的使用方法完整版

样条曲线的使用方法 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

创建高级曲线 曲线作为构建三维模型的基础,在三维建模过程中有着不可替代的作用,尤其是在创建高级曲面时,使用基本曲线构造远远达不到设计要求,不能构建出高质量、高难度的三维模型,此时就要利用UG NX中提供的高级曲线来作为建模基础,具体包括样条曲线、双曲线、抛物线、螺旋线等。 样条曲线是指通过多项式曲线和所设定的点来拟台曲线,其形状由这些点来控制。样条曲线采用的是近似的创建方法,很好地满足了设计的需求,是一种用途广泛的曲线。它不仅能够创建自由曲线和曲面,而且还能精确表达圆锥曲面在内的各种几何体的统表达式。在UG NX中,样条曲线包括般样条曲线和艺术样条曲线两种类型。 1.创建一般样条曲线 一般样条曲线是建立自由形状曲面(或片体)的基础。它拟合逼真、彤状控制方便,能够满足很人一部分产品设计的要求。一般样条曲线主要用来创建高级曲面,广泛应用于汽车、航空以及船舶等制造业。在“曲线”工具栏中单击“样条”按钮~,打开“样条”对话框,如图5-30所示。在该对话框中提供了以下4种生成一般样条曲线的方式。 ■根据极点 该选项是利用极点建立样条曲线,即用选定点建立的控制多边形来控制样条的形状,建立的样条只通过两个端点,不通过中问的控制点。 选择“根据极点”选项,在打开的对话框中选择生成曲线的类型为“多段”,并在“曲线阶次”文本框中输入曲线的阶次,然后根据“点”对话框在绘图区指定点使其生成样条曲线,最后单击“确定”按钮,生成的样条曲线如图5-31所示。

SPSS—二元Logistic回归结果分析报告

SPSS—二元Logistic回归结果分析 2011-12-02 16:48 身心疲惫,睡意连连,头不断往下掉,拿出耳机,听下歌曲,缓解我这严重的睡意吧!今天来分析二元Logistic回归的结果 分析结果如下: 1:在“案例处理汇总”中可以看出:选定的案例489个,未选定的案例361个,这个结果是根据设定的validate = 1得到的,在“因变量编码”中可以看出“违约”的两种结果“是”或者“否” 分别用值“1“和“0”代替,在“分类变量编码”中教育水平分为5类,如果选中“为完成高中,高中,大专,大学等,其中的任何一个,那么就取值为 1,未选中的为0,如果四个都未被选中,那么就是”研究生“ 频率分别代表了处在某个教育水平的个数,总和应该为489个

1:在“分类表”中可以看出:预测有360个是“否”(未违约)有129个是“是”(违约) 2:在“方程中的变量”表中可以看出:最初是对“常数项”记性赋值,B为 -1.026,标准误差为:0.103 那么wald =( B/S.E)2=(-1.026/0.103)2 = 99.2248, 跟表中的“100.029几乎接近,是因为我对数据进行的向下舍入的关系,所以数据会稍微偏小, B和Exp(B) 是对数关系,将B进行对数抓换后,可以得到:Exp(B) = e^-1.026 = 0.358, 其中自由度为1, sig为0.000,非常显著

1:从“不在方程中的变量”可以看出,最初模型,只有“常数项”被纳入了模型,其它变量都不在最初模型 表中分别给出了,得分,df , Sig三个值, 而其中得分(Score)计算公式如下: (公式中(Xi- Xˉ) 少了一个平方) 下面来举例说明这个计算过程:(“年龄”自变量的得分为例) 从“分类表”中可以看出:有129人违约,违约记为“1”则违约总和为 129,选定案例总和为489 那么: yˉ = 129/489 = 0.16 xˉ = 16951 / 489 = 34.2 所以:∑(Xi-xˉ)2 = 30074.9979

生长曲线的拟合分析精编版

快大黄鸡(肉鸡)的生长曲线拟合分析表2-1 表2-2 Logistic生长曲线模型参数估计值: 表2-3logistic生长曲线模型显著性检验的方差分析表: 表2-4动物常用的三种生长曲线模型 注:本次采用第二种分析:logistic曲线模型

增重是一个连续的过程,在正常情况下表现为“S”型曲线,一般用生长曲线来描述体重随年龄的增加而发生的规律性变化。通常对动物的生长的拟合有3种,本次这做了logistic曲线,从拟合度可以看出,logistic曲线的拟合度很高。所以没有用其他两种常用的方法进行拟合分析。 拟合图: 分析: 表2-2列出了logistic生长曲线模型的参数估计值、各参数的标准误及参数95%的置信区间的上下限。可见logistic模型中的A、B和K分别为1743.841、31.353、0.726 。将A、B和K值代入方程,得logistic曲线方程: Y=1743.841/(1+31.353e -0.726t) 表2-3为模型的显著性检验的方差分析结果,此处给出了各变异来源的平方和、自由度和均方,给出了模型拟合的相关指数(即拟合度)R2=0.998.可见拟合优度达到了令人非常满意的程度。 由表2-4的公式可以计算出: 拐点体重:W=A/2=1743.841/2=871.921(g) 拐点日龄:(lnB)/K=(ln31.353)/0.726=4.745(周) 所以,快大鸡的周龄在4~5周时,出现了拐点,鸡的快大黄鸡的生长由缓慢进入了快速生长期,因此快大鸡在6~7周的的增重较快,此时是饲养管理的关键

时期,应当注意调理鸡的肠道菌落和鸡的球虫病的控制,以保证鸡的采食量,保证鸡的生长发育,创造更高的经济效益。鸡的累积生长曲线一般也呈“S”型曲线,但鸡的不同品种生长曲线也有差异,上表及上图是通过spss软件处理得到的。时间是1-7周龄,对于快大型的肉鸡来说,7-8周龄正是鸡的快速发展阶段。快大黄公鸡一般在45-50天出栏,母鸡一般在50-55天出栏。(即公鸡6-7周龄,母鸡7-8周龄)。因为呈“S”型曲线生长,7~8周过后,鸡的生长转慢,这时采食多,增重少,料肉比大,没有经济效益,所以,养殖户都选择在最适合的时机出栏。

样条插值和曲线拟合

第三章 样条插值和曲线拟合 1.x y = 有如下的函数表 8。 解 先作差商表 4 167 1210 13 9 3 42015 11008 16012 4 60 13 1611 1 10 0-?- -- 故:8.2)48(5 1 2)8(1=-+=p 819047619.2) 98)(48(210 1 )48(512)8(2=----+=p 844444.2)98)(48)(18(3 4201) 48)(18(601 )18(311)8(3=---?+----+=p 6222.2)1(4781008 1478601) 18(86 1 )08(10)8(4=-???-??+---?+=p 已知 828427.28=,因此选定 )8(,16,9,42321p x x x ===最接近8。 利用Neville 方法得: xi 8-xi f(xi) 2.8284271 8 0 8 1 7 1 -1.33333333 3.3333333 2.4 4 4 2 2.866666667 2.6222222 2.8 2.8444444 9 -1 3 2.819047619 2.8571429 16 -8 4 f(8)= 2.828427125 xi 8-xi f(xi) 8 0 8 1 7 1 -1 1/3 3 1/3 2 2/5 4 4 2 2 13/15 2 28/45 2 4/5 2 38/45 9 -1 3 2 86/105 2 6/7 16 -8 4 已知 828427.28=,故选定)8(,16,9,42321 p x x x ====2.819047619最接近8.

曲线拟合与插值理论与实例

第11章曲线拟合与插值 在大量的应用领域中,人们经常面临用一个解析函数描述数据(通常是测量值)的任务。对这个问题有两种方法。在插值法里,数据假定是正确的,要求以某种方法描述数据点之间所发生的情况。这种方法在下一节讨论。这里讨论的方法是曲线拟合或回归。人们设法找出某条光滑曲线,它最佳地拟合数据,但不必要经过任何数据点。图11.1说明了这两种方法。标有'o'的是数据点;连接数据点的实线描绘了线性内插,虚线是数据的最佳拟合。 11.1 曲线拟合 曲线拟合涉及回答两个基本问题:最佳拟合意味着什么?应该用什么样的曲线?可用许多不同的方法定义最佳拟合,并存在无穷数目的曲线。所以,从这里开始,我们走向何方?正如它证实的那样,当最佳拟合被解释为在数据点的最小误差平方和,且所用的曲线限定为多项式时,那么曲线拟合是相当简捷的。数学上,称为多项式的最小二乘曲线拟合。如果这种描述使你混淆,再研究图11.1。虚线和标志的数据点之间的垂直距离是在该点的误差。对各数据点距离求平方,并把平方距离全加起来,就是误差平方和。这条虚线是使误差平方和尽可能小的曲线,即是最佳拟合。最小二乘这个术语仅仅是使误差平方和最小的省略说法。

图11.1 2阶曲线拟合 在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。为了阐述这个函数的用法,让我们以上面图11.1中的数据开始。 ? x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; ? y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; 为了用polyfit,我们必须给函数赋予上面的数据和我们希望最佳拟合数据的多项式的阶次或度。如果我们选择n=1作为阶次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择n=2作为阶次,得到一个2阶多项式。现在,我们选择一个2阶多项式。 ? n=2; % polynomial order ? p=polyfit(x, y, n) p = -9.8108 20.1293 -0.0317 polyfit的输出是一个多项式系数的行向量。其解是y = -9.8108x2+20.1293x-0.0317。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。

logistic回归分析案例

1. 数据制备(栅格数据) (1) 宝塔区基底图层.tif (2) 居民点扩增.tif 、坡度.tif 、坡向.tif 等要素数据。 在 environment settings ------ p rocessing extent ------ snap raster (选中基底图层),保证栅格数据 像元无偏移,且行列的数量一致。 化:Raster to ASCII Inyul r aiLtvl- 匚” k 『号樹 ± 如葡让也\1非*订kilt :f 10. 2 'iiStati EeiT-SlaT 14t L J. KT 2.通过CLUE-S 莫型中的fileconvert 模块,获得logistic 回归分析的数据集。 (1) 将上一步骤中的因变量 y 和影响因素x 的.txt 文档后缀改为.asc 格式,并将文件 放在CLUE-S 模型所在的文件夹中。 (2) 打开FileCo nvert V2软件,按下图勾选,填写"file list "内容,点击start con version , 3 田F1 曰 It:. (3)栅格数据转为 ASCII 码,生成txt 文档。 匚onversion Tools Ejicel From GPS From KML From Raster 气 Raster to ASCII y Raster to Fist 声.Raster to Point

生成stat .txt文档。 祥Fi le 荃 flFfijie? I1id J?1Ji w ■■ 1 ? 9><4 P t414 Tl ?J19 12词 ■M*£LD|i4I# ■ Q电兀列心£i k1lf\ 15?1 *■4JE RI7 <1- I 4 話M3 IS r擠uSstalB-^aG 齬£ 淨珀bCMir 二i缶 pad... ■ 枝jfcsurrT^cM.a^t 炉 MBlOrtTIdH■: 护 xVcomr-.iic / rll asc 播Tann砂£]T (2)logistic回归分析 按图设置参数因变量、自变量;由于x3属于分类变量,点击分类按钮,按图设置参数。 >M!L4M|昨T祜lt?M? 曲唱-Hl'F1 wB-j' MtF M|T ffl¥ g: ZTStiRiiri SHilfi VTU '_'■ rt 舖C r TI薔色Z4d* ■i aa ■;? 1 iTdlfAflWVK4Wt4「利 E 呻■■} 1■ IdfcWM^U.一尉仇■臂H xlAftL lAMDf Jfit 1Q1?7r -iwns ■B-13磁MT 13 J 工 '-恫fl T l£j v-IIHH M4Q J0W PW回沐神to 型 rwa: wm 1 H teiiy- 卩厲 4a13 4 ■ira 401?wa 70i-221 ?d'131fefl 加ifUnm 片nu t013*Ozmwkt他 w p1W址?囲血|淞:幽 11013 1 Qm Sft?t 121JJ V s? 014*」; 11 H?iKa; H013 5 *旳 ti a IM■ KK MS V;941 ti Q144T f 7W filwvjcfic OH

matlab曲线拟合实例

曲线拟合 求二次拟合多项式 解:(一)最小二乘法MA TLAB编程: function p=least_squar(x,y,n,w) if nargin<4 w=1 end if nargin<3 n=1 end m=length(y); X=ones(1,m) if m<=n error end for i=1:n X=[(x.^i);X] end A=X*diag(w)*X';b=X*(w.*y)';p=(A\b)' 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4] p=least_squar(x,y,2) 运行得: p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x (二)正交多项式拟合MATLAB编程: function p=least_squar2(x,y,n,w) if nargin<4 w=1; end if nargin<3 n=1; end m=length(x); X=ones(1,m); if m<=n error end for i=1:n X=[x.^i;X]; end A=zeros(1,n+1);

A(1,n+1)=1; a=zeros(1,n+1); z=zeros(1,n+1); for i=1:n phi=A(i,:)*X;t=sum(w.*phi.*phi); b=-sum(w.*phi.*x.*phi)/t a(i)=sum(w.*y.*phi)/t; if i==1 c=0;else c=-t/t1; end t1=t for j=1:n z(j)=A(i,j+1); end z(n+1)=0 if i==1 z=z+b*A(i,:); else z=z+b*A(i,:)+c*A(i-1,:); end A=[A;z]; end phi=A(n+1,:)*X;t=sum(w.*phi.*phi); a(n+1)=sum(w.*y.*phi)/t; p=a*A; 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4]; p=least_squar2(x,y,2) 运行得: b = -6.1250 t1 = 8 z = 0 1 0 b = -4.9328 t1 = 64.8750 z = 1.0000 -6.1250 0 p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x

三次样条插值在工程拟合中的应用

三次样条插值在工程拟合中的应用 摘要: 介绍了工程实验、勘测、设计中常见的列表函数之数值插值方法、程序实现及工程应用, 应用此法可方便地将任何列表函数计算到工程设计、施工所需要的精确程度, 给 出了各参数随主要参数变化而变化的光滑曲线, 并将其应用推广到一般情况. 关键词: 列表函数; 数值拟合; 三次样条插值; MA TLAB 程序设计与应用 在实际工程中, 广泛存在这样的问题: 根据设计要求和具体的工程条件, 在初始设计阶段会勘测得到若干组该工程的控制参数, 但这些参数之间彼此离散、不够密集, 利用它们来施工则不能满足施工的精度要求. 为了解决这一问题, 需要对已知的参数数据进行分析处理, 进行必要的插值、拟合, 以达到施工所需要的数据精度.本文以工程实例为基础, 对实际工程中插值方法的选取、插值的实现和插值曲线的拟合加以讨论, 提出能得到较合乎实际的插值方法, 给出一般工程人员就能实现的计算方法以及能得到光滑曲线的拟合方法. 1 工程应用实例 表1 所示的为某双曲拱坝体形原始参数[ 1 对于这一类工程列表参数有一个显著的特点:尽管不同工程的参数多寡不同, 但都是由n 行k 列的离散的列表数据给出, 虽然同一行代表某工程特定位置的几个参数(或高程参数, 或上游 半径参数?) , 但相邻两行由于位置距离太大, 两行各参数之间究竟存在什么数值关系, 对工 程设计、施工有何影响, 这是工程技术人员需要弄清楚的[ 2 ].以双曲拱坝为例, 它沿整个高程的变化是一个连续光滑的空间曲面. 从施工需要来看, 这些数据太稀疏, 难以满足设计、施工放样与钢筋配置等要求, 如果照此施工, 则有可能达不到工程精度、降低工程效率; 从计算机图形模拟来看, 要生成这个曲面仅由这一列表函数是得不到光滑曲面的, 是不可取的. 所以, 为使计算精确, 满足工程施工过程中任何断面位置、任意水平位置、任意高程位置所必需的施工数据与设计图纸, 保证工程施工的高品质,就要求作精确的数据处理.进一步分析可知, 在这 些参数表中, 各行的参数都随某一主要参数的变化而变化, 如上游半径参数随高程的变化而变化?, 它们的这种函数关系,在数值分析中有许多的方法可以求得. 但是哪种方法能更好、更合 乎实际地给出平滑曲线呢? 下面所选的插值方法能够较好地满足这一要求.

Matlab最小二乘法曲线拟合的应用实例

MATLAB机械工程 最小二乘法曲线拟合的应用实例 班级: 姓名: 学号: 指导教师:

一,实验目的 通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法 二,实验内容 1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求: 对该数据进行合理的最小二乘法数据拟合得下列数据。 x=[10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 2 0000 21000 22000 23000]; y=[24.0 26.5 29.8 32.4 34.7 37.7 41.1 42.8 44.6 47.3 65.8 87.5 137.8 174. 2] 三,程序如下 X=10000:1000:23000; Y=[24.0,26.5,29.8,32.4,34.7,37.7,41.1,42.8,44.6,47.3,65.8,87.5,137.8,17 4.2] dy=1.5; %拟合数据y的步长for n=1:6 [a,S]=polyfit(x,y,n); A{n}=a;

da=dy*sqrt(diag(inv(S.R′*S.R))); Da{n}=da′; freedom(n)=S.df; [ye,delta]=polyval(a,x,S); YE{n}=ye; D{n}=delta; chi2(n)=sum((y-ye).^2)/dy/dy; end Q=1-chi2cdf(chi2,freedom); %判断拟合良好度 clf,shg subplot(1,2,1),plot(1:6,abs(chi2-freedom),‘b’) xlabel(‘阶次’),title(‘chi2与自由度’) subplot(1,2,2),plot(1:6,Q,‘r’,1:6,ones(1,6)*0.5) xlabel(‘阶次’),title(‘Q与0.5线’) nod=input(‘根据图形选择适当的阶次(请输入数值)’); elf,shg, plot(x,y,‘kx’);xlabel(‘x’),ylabel(‘y’); axis([8000,23000,20.0,174.2]);hold on errorbar(x,YE{nod},D{nod},‘r’);hold off title(‘较适当阶次的拟合’) text(10000,150.0,[‘chi2=’num2str(chi2(nod))‘~’int2str(freedom(nod))])

Bezier曲线和BSpline曲线拟合问题

. .. Bzeier曲线和BSpline曲线的插值拟合问题 目录 一、问题重述 (1) 二、Bezier曲线的插值和拟合 (1) 2.1 Bezier曲线的定义 (1) 2.2 Bezier曲线的性质 (2) 2.3 三次Bezier曲线的插值 (2) 2.3.1 工程应用中常用的三次Bezier插值的算法 (2) 2.3.2 改进的三次Bezier插值的算法 (3) 2.3.3 两种Bezier插值的算法比较 (4) 2.4 Bezier曲线的拟合 (4) 三、BSpline曲线的插值和拟合 (4) 3.1 BSpline曲线的定义 (4) 3.2 B样条性质 (5) 3.3 均匀B样条 (5) 3.4 三次B样条插值算法 (6) 3.4 结合实际情况的三次样条插值算法改进 (7) 3.5 两种BSpline插值的比较 (8) 四、Bezier曲线与BSpline曲线的区别和联系 (8) 五、上述算法在实际血管提取中的应用 (9)

一、问题重述 在图像中任意点两个点,软件能自动提取出以这两点为端点的一段血管,要求提取到的血管必须经过客户所点的两点作为提取血管的两个端点。 在OnGetEdge()的函数里,首先通过自动增长获取血管两条边缘的采样点数据,接下来的问题就是要拟合这些采样点,生成两条比较光滑的血管边缘曲线。得到的拟合(插值)曲线有以下4点要求: 1、精确插入客户所点的起始点终点,作为曲线的两个端点; 2、拟合的曲线具有较好的光滑性 3、具有较高的拟合精度和较快的拟合速度 4、要求拟合曲线点八连通 上述的实际问题转化为有序离散点的插值拟合问题。所谓插值拟合,就是通过诸如采样、实验等方法获得若干离散的数据,根据这些数据,得到一个连续的函数(也就是曲线)或者更加密集的离散方程与已知数据相吻合。这个过程叫做拟合。插值是曲线必须通过已知点的拟合。常用的插值方法有拉格朗日插值、牛顿插值、埃尔米特插值、样条函数插值等。 其中,样条插值可以使用低阶多项式样条实现较小的插值误差,这样就避免了使用高阶多项式所出现的龙格现象,所以样条插值得到了流行。三次B 样条插值不仅运行速度较快,而且因为其分段连续带来的特有的卓越的性能,有效提高了血管边缘的平滑程度,锯齿状的现象大大减少。本文接下来将主要介绍Bezier 曲线和B 样条的插值拟合。 二、Bezier 曲线的插值和拟合 2.1 Bezier 曲线的定义 【定义1】n 次Bezier 曲线是由n+1个控制点和以Bernstein 多项式为基底共同生成的参数曲线,其数学表达式为:,其中, 0()(),[0,1]n n i i i B t d b t t ==∈∑为控制点,为Bernstein 基。 (0,...,)i d i n =()(1),0,...,n n i i i n b t t t i n i -??=-= ???Fig.1是一条三次的Bezier 曲线,有四个控制点。工程应用上常使用二次或三次Bezier 曲线做采样点的插值拟合以及制图设计。

1、曲线拟合及其应用综述

曲线拟合及其应用综述 摘要:本文首先分析了曲线拟合方法的背景及在各个领域中的应用,然后详细介绍了曲线拟合方法的基本原理及实现方法,并结合一个具体实例,分析了曲线拟合方法在柴油机故障诊断中的应用,最后对全文内容进行了总结,并对曲线拟合方法的发展进行了思考和展望。 关键词:曲线拟合最小二乘法故障模式识别柴油机故障诊断 1背景及应用 在科学技术的许多领域中,常常需要根据实际测试所得到的一系列数据,求出它们的函数关系。理论上讲,可以根据插值原则构造n 次多项式Pn(x),使得Pn(x)在各测试点的数据正好通过实测点。可是, 在一般情况下,我们为了尽量反映实际情况而采集了很多样点,造成了插值多项式Pn(x)的次数很高,这不仅增大了计算量,而且影响了函数的逼近程度;再就是由于插值多项式经过每一实测样点,这样就会保留测量误差,从而影响逼近函数的精度,不易反映实际的函数关系。因此,我们一般根据已知实际测试样点,找出被测试量之间的函数关系,使得找出的近似函数曲线能够充分反映实际测试量之间的关系,这就是曲线拟合。 曲线拟合技术在图像处理、逆向工程、计算机辅助设计以及测试数据的处理显示及故障模式诊断等领域中都得到了广泛的应用。 2 基本原理 2.1 曲线拟合的定义 解决曲线拟合问题常用的方法有很多,总体上可以分为两大类:一类是有理论模型的曲线拟合,也就是由与数据的背景资料规律相适应的解析表达式约束的曲线拟合;另一类是无理论模型的曲线拟合,也就是由几何方法或神经网络的拓扑结构确定数据关系的曲线拟合。 2.2 曲线拟合的方法 解决曲线拟合问题常用的方法有很多,总体上可以分为两大类:一类是有理论模型的曲线拟合,也就是由与数据的背景资料规律相适应的解析表达式约束的曲线拟合;另一类是无理论模型的曲线拟合,也就是由几何方法或神经网络的拓扑结构确定数据关系的曲线拟合。 2.2.1 有理论模型的曲线拟合 有理论模型的曲线拟合适用于处理有一定背景资料、规律性较强的拟合问题。通过实验或者观测得到的数据对(x i,y i)(i=1,2, …,n),可以用与背景资料规律相适应的解析表达式y=f(x,c)来反映x、y之间的依赖关系,y=f(x,c)称为拟合的理论模型,式中c=c0,c1,…c n是待定参数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的方法是最小二乘法。 2.2.1.1 线性模型的曲线拟合 线性模型中与背景资料相适应的解析表达式为: ε β β+ + =x y 1 (1) 式中,β0,β1未知参数,ε服从N(0,σ2)。 将n个实验点分别带入表达式(1)得到: i i i x yε β β+ + = 1 (2) 式中i=1,2,…n,ε1, ε2,…, εn相互独立并且服从N(0,σ2)。 根据最小二乘原理,拟合得到的参数应使曲线与试验点之间的误差的平方和达到最小,也就是使如下的目标函数达到最小: 2 1 1 ) ( i i n i i x y Jε β β- - - =∑ = (3) 将试验点数据点入之后,求目标函数的最大值问题就变成了求取使目标函数对待求参数的偏导数为零时的参数值问题,即: ) ( 2 1 1 = - - - - = ? ?∑ = i i n i i x y J ε β β β (4)

三次样条拟合范例

1设计目的、要求 对龙格函数2 2511 )(x x f += 在区间[-1,1]上取10=n 的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出)(x f 及各逼近函数的图形,比较各结果。 2设计原理 (1) 多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项 式,即: 01,,...,n x x x 表示待插值函数的1n +个节点, 0()()n n j k k j j k L x y l x y ===∑,其中0,1,...,j n =; 011011()...()()...() ()()...()...()...() k k n k k k k k k k n x x x x x x x x l x x x x x x x x x -+-+----= ---- (2) 三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条 件下的样条插值,即两端一阶导数已知的插值方法: 00'()'S x f = '()'n n S x f = (3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是 利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n= 10,故有11个点,以这11个点的x 和 y 值为已知数据,进行三次多项式拟合,设该多项式为 23432xi i i i p a a x a x ax =+++,该拟合曲线只需2[]xi i p y -∑的值最小即可。 3采用软件、设备 计算机、matlab 软件

4设计内容 1、多项式插值: 在区间[] -上取10 1,1 n的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值, = 并利用matlab软件建立m函数,画出其图形。 在matlab中建立一个lagrange.m文件,里面代码如下: %lagrange 函数 function y=lagrange(x0,y0,x) n=length(x0);m=length(x); for i=1:m z=x(i); s=0.0; for k=1:n p=1.0; for j=1:n if j~=k p=p*(z-x0(j))/(x0(k)-x0(j)); end end s=p*y0(k)+s; end y(i)=s; end 建立一个polynomial.m文件,用于多项式插值的实现,代码如下: %lagrange插值 x=[-1:0.2:1]; y=1./(1+25*x.^2); x0=[-1:0.02:1]; y0=lagrange(x,y,x0); y1=1./(1+25*x0.^2); plot(x0,y0,'--r') %插值曲线 hold on %原曲线 plot(x0,y1,'-b') 运行duoxiangshi.m文件,得到如下图形:

数学建模实验 ——曲线拟合与回归分析

曲线拟合与回归分析 1、有10个同类企业的生产性固定资产年平均价值和工业总产值资料如下: (1)说明两变量之间的相关方向; (2)建立直线回归方程; (3)计算估计标准误差; (4)估计生产性固定资产(自变量)为1100万元时的总资产 (因变量)的可能值。 解: (1)工业总产值是随着生产性固定资产价值的增长而增长的,存 在正向相关性。 用spss回归 (2)spss回归可知:若用y表示工业总产值(万元),用x表示生产性固定资产,二者可用如下的表达式近似表示: .0+ y =x 896 . 395 567 (3)spss回归知标准误差为80.216(万元)。 (4)当固定资产为1100时,总产值为: (0.896*1100+395.567-80.216~0.896*1100+395.567+80.216) 即(1301.0~146.4)这个范围内的某个值。 MATLAB程序如下所示: function [b,bint,r,rint,stats] = regression1 x = [318 910 200 409 415 502 314 1210 1022 1225]; y = [524 1019 638 815 913 928 605 1516 1219 1624]; X = [ones(size(x))', x']; [b,bint,r,rint,stats] = regress(y',X,0.05); display(b); display(stats); x1 = [300:10:1250]; y1 = b(1) + b(2)*x1; figure;plot(x,y,'ro',x1,y1,'g-');

图文举例详细讲解Logistic曲线的回归分析

Logistic曲线的回归分析 例某一品种玉米高度与时间(生长周期,每个生长周期为2-3天,与气温有关)的数据如 表1.所示。用转化为线性方程的方法估计其logistic曲线预测模型。设最大值k为300(cm)。 表1.玉米高度与时间(生长周期)的关系 时间(生长周期)高度/cm时间(生长周期)高度/cm时间(生长周期)高度/cm 10.671212.752297.4620.851316.5523112.7 31.281420.124135.141.751527.3525153.652.271632.5526160.362.751737.55271 67.173.691844.7528174.984.711953.3829177.996.362071.6130180.2 107.732183.8931180.8119.91 3.1基本绘图操作 在Excel中输入时间x与高度y的数据。 选择插入->图表 图87 点击图表,选择“标准类型”中的xy散点图,并点击子图表类型的第一个。

图88 点击下一步,得到如图89。 图89

点击下一步。 图90 分别点击标题、网格线、图例进行修改,然后点击下一步。 图91 点击完成。 图92 右击绘图区,修改绘图区格式,双击做表格,修改坐标轴刻度,最后的散点图。

图93 观察散点图,其呈S型曲线,符合logistic曲线。采用转化为线性方程的方法求解模型。 3.2Logistic曲线方程及线性化 Logistic曲线方程为: y 1 k at me(12) (1)将数据线性化及成图 转化为线性方程为: y'aat 01 (13 ) 其中,y'ln(k/y1),a 0lnm,a1a 具体操作为: 向excel表格中输入y’数据。

(整理)多项分类Logistic回归分析的功能与意义1.

多项分类Logistic回归分析的功能与意义 我们经常会遇到因变量有多个取值而且无大小顺序的情况,比如职业、婚姻情况等等,这时一般的线性回归分析无法准确地刻画变量之间的因果关系,需要用其它回归分析方法来进行拟合模型。SPSS的多项分类Logistic回归便是一种简便的处理该类因变量问题的分析方法。 例子:下表给出了对山东省某中学20名视力低下学生视力监测的结果数据。试用多项分类Logistic回归分析方法分析视力低下程度(由轻到重共3级)与年龄、性别(1代表男性,2代表女性)之间的关系。

“年龄”使之进入“协变量”列表框。

还是以教程“blankloan.sav"数据为例,研究银行客户贷款是否违约(拖欠)的问题,数据如下所示: 上面的数据是大约700个申请贷款的客户,我们需要进行随机抽样,来进行二元Logistic 回归分析,上图中的“0”表示没有拖欠贷款,“1”表示拖欠贷款,接下来,步骤如下: 1:设置随机抽样的随机种子,如下图所示:

选择“设置起点”选择“固定值”即可,本人感觉200万的容量已经足够了,就采用的默认值,点击确定,返回原界面、 2:进行“转换”—计算变量“生成一个变量(validate),进入如下界面: 在数字表达式中,输入公式:rv.bernoulli(0.7),这个表达式的意思为:返回概率为0.7的bernoulli分布随机值 如果在0.7的概率下能够成功,那么就为1,失败的话,就为"0" 为了保持数据分析的有效性,对于样本中“违约”变量取缺失值的部分,validate变量也取缺失值,所以,需要设置一个“选择条件” 点击“如果”按钮,进入如下界面:

曲线拟合的数值计算方法实验

曲线拟合的数值计算方法实验 【摘要】实际工作中,变量间未必都有线性关系,如服药后血药浓度与时间的关系;疾病疗效与疗程长短的关系;毒物剂量与致死率的关系等常呈曲线关系。曲线拟合(curve fitting)是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系。曲线直线化是曲线拟合的重要手段之一。对于某些非线性的资料可以通过简单的变量变换使之直线化,这样就可以按最小二乘法原理求出变换后变量的直线方程,在实际工作中常利用此直线方程绘制资料的标准工作曲线,同时根据需要可将此直线方程还原为曲线方程,实现对资料的曲线拟合。常用的曲线拟合有最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束。 关键词曲线拟合、最小二乘法拟合、幂函数拟合、对数函数拟合、线性插值、三次样条插值、端点约束 一、实验目的 1.掌握曲线拟合方式及其常用函数指数函数、幂函数、对数函数的拟合。 2.掌握最小二乘法、线性插值、三次样条插值、端点约束等。 3.掌握实现曲线拟合的编程技巧。 二、实验原理 1.曲线拟合 曲线拟合是平面上离散点组所表示的坐标之间的函数关系的一种数据处理方法。用解析表达式逼近离散数据的一种方法。在科学实验或社会活动中,通过 实验或观测得到量x与y的一组数据对(X i ,Y i )(i=1,2,...m),其中各X i 是彼此不同的。人们希望用一类与数据的背景材料规律相适应的解析表达式,y=f(x,c)来反映量x与y之间的依赖关系,即在一定意义下“最佳”地逼近或 拟合已知数据。f(x,c)常称作拟合模型,式中c=(c 1,c 2 ,…c n )是一些待定参 数。当c在f中线性出现时,称为线性模型,否则称为非线性模型。有许多衡量拟合优度的标准,最常用的一种做法是选择参数c使得拟合模型与实际观测值在

曲线拟合方法浅析

曲线拟合方法概述 工业设计张静1014201056 引言:在现代图形造型技术中,曲线拟合是一个重要的部分,是曲面拟合的基础。现着重对最小二乘法、移动最小二乘法、NURBS 三次曲线拟合法和基于RBF 曲线拟合法进行 比较,论述这几种方法的原理及其算法,基于实例分析了上述几种拟合方法的特性,以分析拟合方法的适用场合,从而为图形造型中曲线拟合的方法选用作出更好的选择。 1 曲线拟合的概念 在许多对实验数据处理的问题中,经常需要寻找自变量和对应因变量之间的函数关系,有的变量关系可以根据问题的物理背景,通过理论推导的方法加以求解,得到相应关系式。但绝大多数的函数关系却很复杂,不容易通过理论推导得到相关的表达式,在这种情况下,就需要采用曲线拟合的方法来求解变量之间的函数关系式。 曲线拟合(Curve Fitting) ,是用连续曲线近似地刻画或比拟平面上离散点组所表示的坐标之问的函数关系的一种数据处理方法。在科学实验或社会活动中,通过实验或观测得到量x与y的一组数据对(X i,y i), i=1 , 2, 3…,m,其中各X i是彼此不同的。人们希望用一类与数据的规律相吻合的解析表达式y=f(x)来反映量x与y之间的依赖关系。即在一定意义下“最佳”地逼近或拟合已知数据。f(x)称作拟合函数,似的图 像称作拟合曲线。 2 曲线拟合的方法 2.1 最小二乘法 最小二乘法通过最小化误差的平方和寻找数据的最佳函数匹配,是进行曲线拟合的一种早期使用的方法一般最小二乘法的拟合函数是一元二次,可一元多次,也可多元多次。该方法是通过求出数据点到拟合函数的距离和 最小的拟合函数进行拟合的方法令f(x)=ax 2+bx+c ,计算数据点到该函数 所表示的曲线的距离和最小即:

三次样条函数

计算方法实验报告 1、实验题目 三次样条插函数。 2、实验内容 三次样条插值是建立在Hermite 插值的基础上的。Hermite 插值是在一个区间上的插值,而三次样条插则是建立多个区间上插值,构造一个具有二阶光滑度的曲线,在求出给定点上对应的函数。本实验就是建立一个能根据三次样条插值函数求根的程序。 3、算法思想 给定一个区间,并把它分成n 等份,并且给出了每个结点对就的横坐标和纵坐标。利用程序输出给定插值点对应的值。横坐标设为:X 0, X 1, X 2, X 3, …X n 纵坐标为Y 0, Y 1, Y 2, …Y n ,设插点为u 。则令h k =X k+1-X k ,λk =1-+k k k h h h , μk =11--+k k k h h h , g k =3(1 11--+-+-k k k k k k k k h y y h y y λμ), 其中k=1,2,…,n-1 再根据第一类边界条件则可以确定公式6.16,再根据6.17解出方程中的m 向量,最后代入公式6.8求解。 4、源程序清单 #include #define N 21/*最大结点个数减一*/ void sanCi() { /*定义过程数据变量*/ float x[N],y[N],h[N]; /*横纵坐标及区间长度*/ float rr[N],uu[N],gg[N]; /*计算m 用的中间数组rr 、uu 、gg 分别对应:λ、μ、g 数组*/

float aa[N],bb[N],tt[N]; /*矩阵分解时用到的中间变量aa、bb、tt分别对应:α、β数组以及A=LU时中间矩阵*/ float mm[N]; /*最后要用到的系数m*/ int n,k,kv,chose; /* n为实际结点个数,k为下标,kv为最后确定k的值*/ float s,u; /*最后计算u对应的值*/ printf("请输入区间段数:"); scanf("%d",&n); /*输入结点个数*/ /*输入所有横坐标:*/ printf("输入所有横坐标:"); for(k=0; k<=n; k++) scanf("%f",&x[k]); /*输入对应纵坐标:*/ printf("输入对应纵坐标:"); for(k=0; k<=n; k++) scanf("%f",&y[k]); for(k=0; k

相关文档
最新文档