文档库 最新最全的文档下载
当前位置:文档库 › P-S-N曲线拟合

P-S-N曲线拟合

P-S-N曲线拟合
P-S-N曲线拟合

选用三参数幂函数

()0p p N S S β

-=α

(3)

进行曲线拟合。式中0S 为N →∞时的应力水平,称之为拟合疲劳极限,α、β和0S 均为待定常数。利用三参数幂函数式(3)拟合P S N --曲线实验数据,关键是如何确定0S ,为此,本文提出了一种计算参数0S 的方法。根据该方法求得的三参数α、β和0S 能最大限度地使用P S N --曲线实验数据在双对数坐标系()0lg lg N S S --中表现为一直线。 该方法已用于拟合金属和非金属材料共一百多条P S N --曲线和S N -曲线实试验数据。目前已收入航空材料数据库。

只要合理地安排试验,拟合得到的P S N --曲线可以用于外推疲劳极限。

二、三参数幂函数曲线拟合 设P S N --曲线可以表达为三参数幂函数式(3),则式(3)中待定常数α、β和0S 可按下述方法求得:

对式(3)两边去对数 ()0lg lg lg p p N S S +β-=α

(4) 令 X a bY =+

(5)

其中

()

0lg Y=lg p p X N S S =-,

(6) lg a =α,b =-β

(7)

()

0lg lg p p N a b S S =+-

X a bY =+

(8)

因为式(5)中变量X 和Y 之间呈线性关系,所以,我们可以根据已知的一组试验数据

(),,1,2,,pi

pi N

S i n =?,通过式(6)相应地求得一组数据(),,1,2,,i i X Y i n =?,再由线

性回归分析确定出待定参数a 、b 和线性相关系数r

a X bY =-

(9) XY YY b L L = (10)

XY

r L =(11)

式中

11

11lg n n

i pi

i i X X N n n ====∑∑

(12)

()011

11lg n n

i pi i i Y Y S S n n ====-∑∑

(13)

2

2

111lg lg n

n XX

pi pi i i L N N n ==??=- ?

??∑∑

(14)

()()2

2

00111lg lg n

n YY pi pi i i L S S S S n ==??

=---??

??∑∑

(15)

()()001111lg lg lg lg n

n n XY

pi pi pi pi i i i L N S S N S S n ===????

=--- ???

????∑∑∑

(16)

由上面诸式可见,Y 、YY L 和XY L 均是0S 的函数,故a 、b 和r 也是0S 的函数。我们所要求的0S ,必须使线性相关系数的绝对值()0r S ||为最大值,可由下式求得0S ()000d r S d S ||= (17) 即

()2000

dr S d S =

(18)

因为

()220000

2112XY XY XY

XX YY XY XY dr S L dL dL dS L L L dS L dS ??=- ???

(19)

所以

00

11=0

2XY XY

XY XY dL dL L dS L dS -

(20)

011100011=ln10n

n n

i XY X i i i i pi pi X dL L X dS S S n S S ===????-=-??

?--??????∑∑∑

(21)

MATLAB曲线拟合的应用

MATLAB曲线拟合的应用 王磊品吴东 新疆泒犨泰克石油科技有限公司新疆油田公司准东采油厂信息所 摘要:1.阐述MATLAB数学分析软件的基本功能; 2.对MATLAB在生产数据分析中的应用进行了研究,指出曲线拟合的基本方法; 3.以实例阐明MATLAB与行业生产数据结合对生产数据进行分析的原理。 关键词:MATLAB;曲线拟合;插值 1.引言 在生产开发过程中,复杂的生产数据之间或多或少的存在着这样或者那样的联系,如何利用现今普及的计算机以及网络资源在最短的时间内找到这个联系,以指导我们的生产开发,这对于行业科研人员来说无疑是一个最为关心的问题。MATLAB矩阵分析软件,自推出以来,已成为国际公认的最优秀的数学软件之一,其范围涵盖了工业、电子、医疗以及建筑等各个领域,以其强大的科学计算功能使众多科研机构纷纷采用。 为此,本文从介绍MATLAB软件开始,以实例讲述如何使用MATLAB对生产开发数据进行计算与分析,从而达到高效、科学指导生产的目的。 2.MATLAB简介 MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。由于使用编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。 MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。自问世以来, 就是以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有供学习和研究之用。 MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。工具箱实际上是对MATLAB进行扩展应用的一系列 MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着 MATLAB版本的不断升

曲线拟合的方法及过程

一、课程设计题目: 对于函数 x e x x f --=)( 从00=x 开始,取步长1.0=h 的20个数据点,求五次最小二乘拟合多项式 5522105)()()()(x x a x x a x x a a x P -++-+-+= 其中 ∑ ===19 95.020 i i x x 二、原理分析 (1)最小二乘法的提法 当数据量大且由实验提供时,不宜要求近似曲线)(x y φ=严格地经过所有数据点),(i i y x ,亦即不应要求拟合函数)(x ?在i x 处的偏差(又称残差) i i i y x -=)(φδ (i=1,2,…,m) 都严格的等于零,但是,为了使近似曲线能尽量反应所给数据点的变化趋势,要求偏差i δ适当的小还是必要的,达到这一目标的途径很多,例如,可以通过使最大偏差i δmax 最小来实现,也可以通过使偏差绝对值之和∑i i δ最小来实 现……,考虑到计算方便等因素,通常用使得偏差平方和∑i i 2δ最小(成为最小 二乘原则)来实现。 按最小二乘原则选择近似函数的方法称为最小二乘法。 用最小二乘法求近似函数的问题可以归结为:对于给定数据),(i i y x (i=1,2,…,m),要求在某个函数类Φ中寻求一个函数)(x * ?,使 [][]2 1 )(2 1 * )()(mi n ∑∑=Φ∈=-=-m i i i x m i i i y x y x ??? (1-1) 其中)(x ?为函数类Φ中任意函数。 (1)确定函数类Φ,即确定)(x ?的形式。这不是一个单纯的数学问题,还与其他领域的一些专业知识有关。在数学上,通常的做法是将数据点),(i i y x 描

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

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

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

曲线拟合最小二乘法c++程序

课题八曲线拟合的最小二乘法 实验目标: 在某冶炼过程中,通过实验检测得到含碳量与时间关系的数据如下,试求含碳量y与时间t #include #include<> using namespace std; int Array(double ***Arr, int n){ double **p; int i; p=(double **)malloc(n*sizeof(double *)); if(!p)return 0; for(i=0;i>n; cout<<"请输o入¨节¨2点ì值|ì(ê?§Xi)ê:êo"<>X[i]; } cout<<"请输o入¨节¨2点ì函?¥数oy值|ì(ê?§Yi)ê:êo"<>Y[i]; } if(!Array(&A,3)) cout<<"内¨2存?分¤配失o?ì败?¨1!ê"; else { for(i=0;i<3;i++){ for(j=0;j<3;j++){ A[i][j]=0; } } for(i=0;i

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

快大黄鸡(肉鸡)的生长曲线拟合分析表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周过后,鸡的生长转慢,这时采食多,增重少,料肉比大,没有经济效益,所以,养殖户都选择在最适合的时机出栏。

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

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

第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。为了将曲线拟合解与数据点比较,让我们把二者都绘成图。

Boltzmann 函数曲线拟合的 Lisp 程序

Boltzmann 函数曲线拟合的Lisp 程序 1 原程序在计算机中,将以下原代码写入记事本中并保存文件名为“bzlm.lsp” (setq smx (lambda ( / k wi a1 a2 b1 b2 c1 c2 sx) (setq wi (mapcar '(lambda ( x / ) (expt 2.718282 (/ (- x m3) m4))) xi) k 0 a1 (apply '+ (mapcar '(lambda ( y / w) (setq w (nth k wi) k (1+ k)) (/ y (+ 1 w))) yi)) k 0 a2 (apply '+ (mapcar '(lambda ( y / w) (setq w (nth k wi) k (1+ k)) (/ (* y w) (+ 1 w))) yi)) b1 (apply '+ (mapcar '(lambda ( w / ) (/ 1 (expt (+ 1 w) 2))) wi)) b2 (apply '+ (mapcar '(lambda ( w / ) (/ w (expt (+ 1 w) 2))) wi)) c1 b2 c2 (apply '+ (mapcar '(lambda ( w / ) (expt (/ w (+ 1 w)) 2)) wi)) m1 (/ (- (* a1 c2) (* a2 c1)) (- (* b1 c2) (* b2 c1))) m2 (/ (- (* b1 a2) (* b2 a1)) (- (* b1 c2) (* b2 c1))) k 0 sx (apply '+ (mapcar '(lambda ( x / y w) (setq w (nth k wi) y (nth k yi) k (1+ k)) (expt (- y (+ (/ (- m1 m2) (+ 1 w)) m2)) 2)) xi)) ) (if (car s_min) (if (< sx (car s_min)) (setq s_min (list sx m1 m2 m3 m4)) nil) (setq s_min (list sx m1 m2 m3 m4))) ) ) (setq mmc (lambda (range / m1 m2 s_min m3 m4 rm3 rm4 tm4 q3 q4) (setq rm3 (abs range) rm4 rm3 q3 rm3 q4 rm4 m3 0 m4 0) (repeat 5 (setq rm3 (+ m3 q3) m3 (- m3 q3) rm4 (+ m4 q4) m4 (- m4 q4) tm4 m4 q3 (* q3 0.1) q4 (* q4 0.1)) (while (<= m3 rm3) (while (<= m4 rm4) (if (>= m4 1) (smx)) (setq m4 (+ m4 q4))) (setq m3 (+ m3 q3) m4 tm4) ) (setq m3 (nth 3 s_min) m4 (last s_min)) ) s_min ) ) (setq cy (lambda ( / m1 m2 m3 m4) (if sc (progn (setq m1 (nth 1 sc) m2 (nth 2 sc) m3 (nth 3 sc) m4 (nth 4 sc) yc (+ (/ (- m1 m2) (+ 1 (expt 2.718282 (/ (- xc m3) m4)))) m2) ) (set_tile "cy" (vl-princ-to-string yc)) )))) (setq cx (lambda ( / m1 m2 m3 m4 tm) (if sc (progn (setq m1 (nth 1 sc) m2 (nth 2 sc) m3 (nth 3 sc) m4 (nth 4 sc)) (if (and (< y m2) (> (setq tm (- (/ (- m1 m2) (- yc m2)) 1)) 0)) (progn (setq xc (+ m3 (* m4 (log tm))))

样条插值和曲线拟合

第三章 样条插值和曲线拟合 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.

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))])

曲线拟合的最小二乘法matlab举例

曲线拟合的最小二乘法 学院:光电信息学院 姓名:赵海峰 学号: 200820501001 一、曲线拟合的最小二乘法原理: 由已知的离散数据点选择与实验点误差最小的曲线 S( x) a 0 0 ( x) a 1 1(x) ... a n n ( x) 称为曲线拟合的最小二乘法。 若记 m ( j , k ) i (x i ) j (x i ) k (x i ), 0 m (f , k ) i0 (x i )f (x i ) k (x i ) d k n 上式可改写为 ( k , jo j )a j d k ; (k 0,1,..., n) 这个方程成为法方程,可写成距阵 形式 Ga d 其中 a (a 0,a 1,...,a n )T ,d (d 0,d 1,...,d n )T , 、 数值实例: 下面给定的是乌鲁木齐最近 1个月早晨 7:00左右(新疆时间 )的天气预报所得 到的温度数据表,按照数据找出任意次曲线拟合方程和它的图像。 它的平方误差为: || 2 | 2 ] x ( f

(2008 年 10 月 26~11 月 26) F 面应用Matlab 编程对上述数据进行最小二乘拟合 三、Matlab 程序代码: x=[1:1:30]; y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1]; %三次多项式拟合% %九次多项式拟合% %十五次多项式拟合% %三次多项式误差平方和 % %九次次多项式误差平方和 % %十五次多项式误差平方和 % %用*画出x,y 图像% %用红色线画出x,b1图像% %用绿色线画出x,b2图像% %用蓝色o 线画出x,b3图像% 四、数值结果: 不同次数多项式拟和误差平方和为: r1 = 67.6659 r2 = 20.1060 r3 = 3.7952 r1、r2、r3分别表示三次、九次、十五次多项式误差平方和 拟和曲线如下图: a 仁polyfit(x,y,3) a2= polyfit(x,y,9) a3= polyfit(x,y,15) b1= polyval(a1,x) b2= polyval(a2,x) b3= polyval(a3,x) r1= sum((y-b1).A 2) r2= sum((y-b2).A2) r3= sum((y-b3).A2) plot(x,y,'*') hold on plot(x,b1, 'r') hold on plot(x,b2, 'g') hold on plot(x,b3, 'b:o')

曲线拟合C语言程序

^ #include<> #include<> void nihe(); void gs(); void main() { int i,j,m,n; float o[50]; \ float x[50] , y[50] ,a[50][50]; printf("输入数据节点数 n = ",n); scanf("%d",&n); for( i=1;i<=n;i++) { printf(" i = %d\n",i); } printf("各节点的数据 x[i] \n"); 、 for(i=1;i<=n;i++) { printf("x[%d] = ",i); scanf("%f",&x[i]); } printf("各节点的数据 y[i] \n"); for(i=1;i<=n;i++) { ¥ printf("y[%d] = ",i); scanf("%f",&y[i]); } printf("\n"); printf("拟合的多项式次数 m = ", m); scanf("%d",&m); ¥ } void nihe(float x[50], float y[50], int m ,int n) { int i,j,k=0,c=1,w=1;

float f,a[50][50] , o[50];; ~ do { f=0; for(i=1;i<=n;i++) { f=f+pow( x[i] , k)*pow( x[i] , k); } … a[c][c]=f ; a[c+1][c-1]=f; a[c-1][c+1]=f; c++; k++; }while(k<=m); , k=1;c=1; do { f=0; for(i=1;i<=n;i++) { f=f+pow( x[i] , k); } * a[c+1][c]=f; a[c][c+1]=f; c++; k++; k++; }while(k<=m+1); ) k=0;c=1; do { f=0; for(i=1;i<=n;i++)

MATLAB中简单的数据拟合方法与应用实例①

MATLAB中简单的数据拟合方法与应用实例 仅供努力学习matlab的同学们参考参考,查阅了M多资料,总结了以下方法 按步骤做能够基本学会matlab曲线拟合的 1.1数据拟合方法 1.1.1多项式拟合 1.多项式拟合命令 polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。 Polyval(P,xi):计算多项式的值。 其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的横坐标 拟合命令如下: x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); 拟合曲线与原始数据如图1-1 图1-1 2图形窗口的多项式拟合 1)先画出数据点如图1-2 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; plot(x,y,'r*');

图1-2 2)在图形窗口单击Tools—Basic Fitting,如图1-3勾选. 图1-3 图1-3右方分别是线性、二阶、三阶对数据进行多项式拟合。下面的柱状图显示残差,可以看出,三阶多项式的拟合效果是最好的。 1.1.2指定函数拟合 已知M组数据点和对应的函数形式f t (t)=acos(kt)e X Y 编写M文件:

syms t x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15]; y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) xi=0:.1:20; yi=cfun(xi); plot(x,y,'r*',xi,yi,'b-'); 图1-4 运行程序,在命令窗口可达到以下运行结果,图像如图1-4 Warning: Start point not provided, choosing random start point. > In fit>handlewarn at 715 In fit at 315 In Untitled2 at 5 cfun = General model: cfun(t) = a*cos(k*t)*exp(w*t) Coefficients (with 95% confidence bounds): a = 0.9987 ( 0.9835, 1.014) k = 1.001 (0.9958, 1.006) w = -0.2066 (-0.2131, -0.2002) 从结果可以看出,拟合的曲线为: (0.2066) ()0.9987cos(1.001)*t f t t e- =。拟 合曲线给出了数据大致趋势,并给出了各参数的置信区间。

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、有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-');

matlab曲线拟合2010a演示

2010a版本曲线拟合工具箱 一、单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是y=A*x*x + B*x, 且A>0,B>0。 1、在主命令输入数据: x=233.8:0.5:238.8; y=[235.148 235.218 235.287 235.357 235.383 235.419 235.456 235.49 235.503 235.508 235.536]; 2、启动曲线拟合工具箱 cftool(x,y) 3、进入曲线拟合工具箱界面“Curve Fitting tool” 如图 (1)利用X data和Y data的下拉菜单读入数据x,y,可在Fit name修改数据集名,这时会自动画出数据集的曲线图;

(2)在红色区域选择拟合曲线类型 工具箱提供的拟合类型有: ?Custom Equations:用户自定义的函数类型 ?Exponential:指数逼近,有2种类型,a*exp(b*x) 、a*exp(b*x) + c*exp(d*x) ?Fourier:傅立叶逼近,有7种类型,基础型是a0 + a1*cos(x*w) + b1*sin(x*w) ?Gaussian:高斯逼近,有8种类型,基础型是a1*exp(-((x-b1)/c1)^2) ?Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-preserving ?Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~ ?Power:幂逼近,有2种类型,a*x^b 、a*x^b + c ?Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree~;此外,分子还包括constant型 ?Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) ?Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1) ?Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 在results一栏看结果

相关文档
相关文档 最新文档