文档库 最新最全的文档下载
当前位置:文档库 › 数值分析(最小二乘拟合)

数值分析(最小二乘拟合)

数值分析(最小二乘拟合)
数值分析(最小二乘拟合)

课题八曲线拟合的最小二乘法

一、问题提出

从随机的数据中找出其规律性,给出其近似表达式的问题,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。

在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量y与时间t 的拟合曲线。

二、要求

1 、用最小二乘法进行曲线拟合;

2 、近似解析表达式为()t?=a1t+a2t2+a3t3

3 、打印出拟合函数()t?,并打印出()tj

y tj的误差

?与()

4 、另外选取一个近似表达式,尝试拟合效果的比较;

5 、* 绘制出曲线拟合图﹡。

三、目的和意义

1 、掌握曲线拟合的最小二乘法;

2 、最小二乘法亦可用于解超定线代数方程组;

3 、探索拟合函数的选择与拟合精度间的关系。

四、实验结果:

1.用最小二乘法做出的曲线拟合为

三次多项式a1= -0.0052 ,a2= 0.2634 ,a3= 0.0178。

()t?= (-0.0052) t+ (0.2634) t2 + (0.0178) t3

三次多项式的误差平方和=0.2583。

图形为:

图形上红线表示拟合曲线,*表示实验所给的点。

源代码为:

x=[0,5,10,15,20,25,30,35,40,45,50,55];

y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64]; a1=polyfit(x,y,3) %三次多项式拟合%

b1= polyval(a1,x)

r1= sum((y-b1).^2) %三次多项式误差平方和%

plot(x,y,'*') %用*画出x,y图像%

hold on

plot(x,b1, 'r') %用红色线画出x,b1图像%

(说明本程序调用了MATLAB中的函数polyfit、polyval、plot)

2.另外选取几个近似表达式:

主要选取6次、9次和12次的拟合表达式。

(说明6多项式用绿线表示,9次多项式用蓝线表示,12次多项式用黄线表示)图形为:

讨论:

1.从上面的曲线图形我们可以看出9次多项式的拟合效果最好,所

有点的都在9次多项式的曲线上。

2.可以看出3次多项式、6次多项式都拟合的比较好。

3.可以看出12次多项式跳跃比较厉害,拟合效果比较差,我们可以

的出结论:不是次数越高,拟合效果就越好,拟合函数的次数与拟合精度没有直接的线性关系。需要选择合适的拟合函数,可以得到最佳效果。

源代码:

> x=[0,5,10,15,20,25,30,35,40,45,50,55];

y=[0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64];

a1=polyfit(x,y,3) %三次多项式拟合%

a2= polyfit(x,y,6) %六次多项式拟合%

a3= polyfit(x,y,9) %九次多项式拟合%

a4= polyfit(x,y,12) %十二次多项式拟合%

b1= polyval(a1,x)

b2= polyval(a2,x)

b3= polyval(a3,x)

b4= polyval(a4,x)

r1= sum((y-b1).^2) %三次多项式误差平方和%

r2= sum((y-b2).^2) %六次次多项式误差平方和%

r3= sum((y-b3).^2) %九次多项式误差平方和%

r4= sum((y-b4).^2) %十二次多项式误差平方和%

plot(x,y,'*') %用*画出x, y图像%

hold on

plot(x,b1, 'r') %用红色线画出x,b1图像%

hold on

plot(x,b2, 'g') %用绿色线画出x,b2图像%

hold on

plot(x,b3, 'b:o') %用蓝色o线画出x,b3图像%

hold on

plot(x,b4, 'y') %用黄线画出想x,b4图像%

运行结果:

a1 =

0.0000 -0.0052 0.2634 0.0178

Warning: Polynomial is badly conditioned. Add points with distinct X

values, reduce the degree of the polynomial, or try centering

and scaling as described in HELP POLYFIT.

> In polyfit at 80

a2 =

0.0000 -0.0000 0.0001 -0.0013 0.0079 0.2240 0.0176 Warning: Polynomial is badly conditioned. Add points with distinct X

values, reduce the degree of the polynomial, or try centering

and scaling as described in HELP POLYFIT.

> In polyfit at 80

a3 =

0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0007 0.0081 -0.0549 0.3967 -0.0002

Warning: Polynomial is not unique; degree >= number of data points.

> In polyfit at 72

a4 =

1.0e-007 *

-0.0000 0.0000 -0.0001 0.0026 -0.0578 0.5060 0 0 0 0 0 0 0

b1 =

0.0178 1.2087 2.1646 2.9113 3.4745 3.8800 4.1536 4.3211 4.4082 4.4407 4.4444 4.4450

b2 =

0.0176 1.2044 2.2146 2.9124 3.3941 3.7934 4.1674 4.4615 4.5548 4.3853 4.1541 4.6103

b3 =

-0.0002 1.2715 2.1545 2.8709 3.4293 3.8694 4.1662 4.3473 4.5269 4.5725 4.0219 4.6398

b4 =

0 0.0022 0.1382 1.0585 3.0629 4.6210 4.2617 3.7489 4.9958 4.3855 4.0619 4.6361

r1 =

0.2583

r2 =

0.0858

r3 =

0.0014

r4 =

10.3207

最小二乘法曲线拟合 原理及matlab实现

曲线拟合(curve-fitting ):工程实践中,用测量到的一些离散的数据},...2,1,0),,{(m i y x i i =求一个近似的函数)(x ?来拟合这组数据,要求所得的拟合曲线能最好的反映数据的基本趋势(即使)(x ?最好地逼近()x f ,而不必满足插值原则。因此没必要取)(i x ?=i y ,只要使i i i y x -=)(?δ尽可能地小)。 原理: 给定数据点},...2,1,0),,{(m i y x i i =。求近似曲线)(x ?。并且使得近似曲线与()x f 的偏差最小。近似曲线在该点处的偏差i i i y x -=)(?δ,i=1,2,...,m 。 常见的曲线拟合方法: 1.使偏差绝对值之和最小 2.使偏差绝对值最大的最小 3.使偏差平方和最小 最小二乘法: 按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。 推导过程: 1. 设拟合多项式为: 2. 各点到这条曲线的距离之和,即偏差平方和如下: 3. 问题转化为求待定系数0a ...k a 对等式右边求i a 偏导数,因而我们得到 了: ....... 4、 把这些等式化简并表示成矩阵的形式,就可以得到下面的矩阵: 5. 将这个范德蒙得矩阵化简后可得到:

6. 也就是说X*A=Y,那么A = (X'*X)-1*X'*Y,便得到了系数矩阵A,同时,我们也就得到了拟合曲线。 MATLAB实现: MATLAB提供了polyfit()函数命令进行最小二乘曲线拟合。 调用格式:p=polyfit(x,y,n) [p,s]= polyfit(x,y,n) [p,s,mu]=polyfit(x,y,n) x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s包括R(对x进行QR分解的三角元素)、df(自由度)、normr(残差)用于生成预测值的误差估计。 [p,s,mu]=polyfit(x,y,n)在拟合过程中,首先对x进行数据标准化处理,以在拟合中消除量纲等影响,mu包含标准化处理过程中使用的x的均值和标准差。 polyval( )为多项式曲线求值函数,调用格式: y=polyval(p,x) [y,DELTA]=polyval(p,x,s) y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。 [y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。 如下给定数据的拟合曲线: x=[0.5,1.0,1.5,2.0,2.5,3.0], y=[1.75,2.45,3.81,4.80,7.00,8.60]。 解:MATLAB程序如下: x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) x1=0.5:0.05:3.0; y1=polyval(p,x1); plot(x,y,'*r',x1,y1,'-b') 运行结果如图1 计算结果为: p =0.5614 0.8287 1.1560 即所得多项式为y=0.5614x^2+0.08287x+1.15560 图1 最小二乘法曲线拟合示例 对比检验拟合的有效性: 例:在[0,π]区间上对正弦函数进行拟合,然后在[0,2π]区间画出图形,比较拟合区间和非拟合区间的图形,考察拟合的有效性。 在MATLAB中输入如下代码: clear x=0:0.1:pi; y=sin(x); [p,mu]=polyfit(x,y,9)

最小二乘法数值分析实验报告

最小二乘法数值分析实验报告数学与信息工程学院实课程名称:实验室:实验台号:班级:姓名:实验日期:验报告数值分析2012 年 4 月 13 日数值分析实验报告五最小二乘法一、题目设有如下数据用三次多项式拟合这组数据,并绘出图形二、方法最小二乘法三、程序M文件: syms x f;xx=input(‘请输入插值节点as [x1,x2...]\n’);ff=input(‘请输入插值_ __________________ ___________________ ___________________ ___________________实验一MATLAB在数值分析中的应用插值与拟合是来源于实际、又广泛应用于实际的两种重要方法随着计算机的不断发展及计算水平的不断提高,它们已在国民生产和科学研究等方面扮演着越来越重要的角色下面对插值中分段线性插值、拟合中的最为重要的最小二乘法拟合加以介绍分段线性插值所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:interp1(x,y,xi) 一维插值◆yi=interp1(x,y,xi)对一组点(x,y) 进行插值,计算插值点xi的函数值x为节点向量值,y为对应的节点函数值如果y

为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或xi 的维数,则返回NaN ◆ yi=interp1(y,xi)此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1) ◆ yi=interp1(x,y,xi,’method’)method用来指定插值的算法默认为线性算法其值常用的可以是如下的字符串nearest 线性最近项插值linear线性插值spline 三次样条插值贵州师范大学数学与计算机科学学院学生实验报告1. 对函数f(x)?,哪一种曲线拟合较好?为什么?能找出更好的拟合曲线吗?七、总结1、从图像可以看出用lagrange插值函数拟合数据中间拟合的很好,但两边与原函数图象相比波动太大,逼近效果很差,出现所谓的Runge现象2、从图像可以看出用最小二乘法去拟合较少的数据点,曲线拟合比直线拟合得好,高次的会比低次的拟合得好3.一般情形高次插值比低次插值精度高,但是插值次数太高也不一定能提高精度.八、附录1、M文件:function cy=Lagrange(x,y,n,cx)m=length(cx);cy=zeros(1,m);for k=1:n+1t=ones(1,m);for j=1:n+1if j~=kt=t.*(cx-x(j))./(x(k)-x(j));endendcy=cy+y(k).*t ;end>> x=-5::5;>> y=1./(x.+1);>> plot(x,y)>> n=10;>> x0=-5:10/n:5;>> y0=1./(1+x0.);>> cx=-5::5;>> cy=Lagrange(x0,y0,n,cx);>> hold on>> plot(cx,cy)e1 =xxxx大学数值分析实验报告题目:学

最小二乘法的基本原理和多项式拟合

最小二乘法的基本原理和多项式拟合 一 最小二乘法的基本原理 从整体上考虑近似函数)(x p 同所给数据点),(i i y x (i=0,1,…,m)误差 i i i y x p r -=)((i=0,1,…,m) 的大小,常用的方法有以下三种:一是误差 i i i y x p r -=)((i=0,1,…,m)绝对值的最大值i m i r ≤≤0max ,即误差 向量 T m r r r r ),,(10 =的∞—范数;二是误差绝对值的和∑=m i i r 0 ,即误差向量r 的1— 范数;三是误差平方和∑=m i i r 02 的算术平方根,即误差向量r 的2—范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合中常采用误差平方和∑=m i i r 02 来 度量误差i r (i=0,1,…,m)的整 体大小。 数据拟合的具体作法是:对给定数据 ),(i i y x (i=0,1,…,m),在取定的函数类Φ中,求Φ∈)(x p ,使误差i i i y x p r -=)((i=0,1,…,m)的平方和最小,即 ∑=m i i r 2 = 从几何意义上讲,就是寻求与给定点),(i i y x (i=0,1,…,m)的距离平方和为最 小的曲线 )(x p y =(图6-1)。函数)(x p 称为拟合函数或最小二乘解,求拟合函数)(x p 的方法称为曲线拟合的最小二乘法。 在曲线拟合中,函数类Φ可有不同的选取方法 . 6—1 二 多项式拟合 假设给定数据点),(i i y x (i=0,1,…,m),Φ为所有次数不超过)(m n n ≤的多项式构成的函数类,现求一 Φ ∈=∑=n k k k n x a x p 0 )(,使得 [] min )(0 02 02 =??? ??-=-=∑∑∑===m i m i n k i k i k i i n y x a y x p I (1) [ ] ∑ = = - m i i i y x p 0 2 min ) (

最小二乘法的多项式拟合

用最小二乘法进行多项式拟合(m a t l a b 实现) 西安交通大学 徐彬华 算法分析: ,1,2,3,..,m),一共m+1 个数据点,取多项式P(x),使 函数P(x)称为拟合函数或最小二乘解,令似的 使得 其中,a0,a1,a2,…,an 为待求未知数,n 为多项式的最高次幂,由此,该问题化为求 的极值问题。由多元函数求极值的必要条件: j=0,1,…,n 得到: 总共有7个数据点,令m=6 第一步:画出已知数据的的散点图,确定拟合参数n; x=::;y=[,,,,,,]; plot(x,y,'*') xlabel 'x 轴' ylabel 'y 轴' title '散点图' hold on

因此将拟合参数n设为3. 第二步:计算矩阵 A= 注意到该矩阵为(n+1)*(n+1)矩阵, 多项式的幂跟行、列坐标(i,j)的关系为i+j-2,由此可建立循环来求矩阵的各个元素,程序如下: m=6;n=3; A=zeros(n+1); for j=1:n+1 for i=1:n+1 for k=1:m+1 A(j,i)=A(j,i)+x(k)^(j+i-2) end end end; 再来求矩阵 B= B=[0 0 0 0]; for j=1:n+1 for i=1:m+1 B(j)=B(j)+y(i)*x(i)^(j-1) end end 第三步:写出正规方程,求出a0,,a1…,an.

B=B'; a=inv(A)*B; 第四步:画出拟合曲线 x=[::]; z=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3; plot(x,z) legend('离散点','y=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3') title('拟合图') 总程序附下: x=::;y=[,,,,,,]; plot(x,y,'*') xlabel 'x轴' ylabel 'y轴' title '散点图' hold on m=6;n=3; A=zeros(n+1); for j=1:n+1 for i=1:n+1 for k=1:m+1 A(j,i)=A(j,i)+x(k)^(j+i-2) end end end; B=[0 0 0 0]; for j=1:n+1 for i=1:m+1 B(j)=B(j)+y(i)*x(i)^(j-1) end end B=B'; a=inv(A)*B; x=[::]; z=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3; plot(x,z) legend('离散点','y=a(1)+a(2)*x+a(3)*x.^2+a(4)*x.^3') title('拟合图')

最小二乘拟合实验报告

实验名称: 最小二乘拟合 1 引言 在科学实验和生产实践中,经常要从一组实验数据(,)(1,2,,)i i x y i m =出发, 寻求函数y=f (x )的一个近似表达式y=φ(x),称为经验公式,从几何上来看,这就是一个曲线拟 合的问题。 多项式的插值虽然在一定程度上解决了由函数表求函数近似表达式的问题,但用它来解决这里的问题,是有明显的缺陷的。首先,由实验提供的数据往往有测试误差。如果要求近似曲线y=φ(x)严格地通过所给的每个数据点(,)i i x y ,就会使曲线保留原来的测试误差,因此当个别数据的误差较大的时候,插值的效果是不理想的。其次,当实验数据较多时,用插值法得到的近似表达式,明显缺乏实用价值。在实验中,我们常常用最小二乘法来解决这类问题。 定义()i i i x y δ?=-为拟合函数在i x 处的残差。为了是近似曲线能尽量反映所给数据点的变化趋势,我们要求||i δ尽可能小。在最小二乘法中,我们选取()x ?,使得偏差平方和最小,即 2 2 1 1 [()]min m m i i i i i x y δ?=== -=∑∑,这就是最小二乘法的原理。 2 实验目的和要求 运用matlab 编写.m 文件,要求用最小二乘法确定参数。 以下一组数据中x 与y 之间存在着bx y ae =的关系,利用最小二乘法确定式中的参数a 和b ,并计算相应的军方误差与最大偏差。数据如下: 3 算法原理与流程图 (1) 原理 最小二乘是要求对于给定数据列(,)(1,2, ,)i i x y i m =,要求存在某个函数类 01{(),(),()}()n x x x n m ???Φ=<中寻求一个函数: ** **0011()()()()n n x a x a x a x ????=++ +,使得*()x ?满足

最小二乘法圆拟合

最小二乘法圆拟合 1.最小二乘法圆拟合原理 理论 最小二乘法(Least Square Method )是一种数学优化技术。它通过最小化误差的平方和找到一组数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。 最小二乘圆拟合模型公式推导 在二维平面坐标系中,圆方程一般可表示为: ()22020)(r y y x x =-+- (1) 对于最小二乘法的圆拟合,其误差平方的优化目标函数为: [] 2 12020)()(∑=--+-=n i i i r y y x x S 式中:()i i y x ,n i ,...,2,1=为圆弧上特征点坐标;n 为参与拟合的特征点数。 在保持这优化目标函数特征的前提上,我们需要对其用一种稍微不同的改进方法来定义误差平方,且其避免了平方根,同时可得到一个最小化问题的直接解,定义如下: [] 2 122020)()(∑=--+-=n i i i r y y x x E (2) 则(2)式可改写为: ( )2 12 20 0220 02 22∑=-+-++-=n i i i i i r y y y y x x x x E (3) 令,02y B -=,02x A -=22020r y x C -+= 即(3)式可表示为:

() 2 22∑=++++=n i i i i i C By Ax y x E 由最小二乘法原理,参数A ,B ,C 应使E 取得极小值。根据极小值的求法,A ,B 和C 应满足 () 020 22=++++=??∑=i n i i i i i x C By Ax y x A E (4) () 020 22=++++=??∑=i n i i i i i y C By Ax y x B E (5) () 020 22=++++=??∑=n i i i i i C By Ax y x C E (6) 求解方程组,先消去参数C ,则 式()()∑=*-*n i i x n 064得 ( )0 02 202 030000002=+-++?? ? ??-+??? ??-∑∑∑∑∑∑∑∑∑∑==========n i i n i i i n i i i n i i n i n i i i n i i i n i n i i i n i i x y x y x n x n B y x y x n A x x x n (7) 式()()∑=*-*n i i y n 065得 ( )0 02 202 030002000=+-++?? ? ??-+??? ??-∑∑∑∑∑∑∑∑∑∑==========n i i n i i i n i i i n i i n i n i i i n i i n i n i i i n i i i y y x y x n y n B y y y n A y x y x n (8) 令 ??? ??-=∑∑∑===n i n i n i i i i x x x n M 000211(9) ?? ? ??-==∑∑∑===n i n i i i n i i i y x y x n M M 0002112(10) ?? ? ??-=∑∑∑===n i n i i i n i i y y y n M 000222(11)

数值计算_第6章 曲线拟合的最小二乘法

第6章曲线拟合的最小二乘法 6.1 拟合曲线 通过观察或测量得到一组离散数据序列,当所得数据比较准确时,可构造插值函数逼近客观存在的函数,构造的原则是要求插值函数通过这些数据点,即。此时,序列与 是相等的。 如果数据序列,含有不可避免的误差(或称“噪音”),如图6.1 所示;如果数据序列无法同时满足某特定函数,如图6.2所示,那么,只能要求所做逼近函数最优地靠近样点,即向量与的误差或距离最小。按与之间误差最小原则作为“最优”标准构造的逼近函数,称为拟合函数。 图6.1 含有“噪声”的数据 图6.2 一条直线公路与多个景点 插值和拟合是构造逼近函数的两种方法。插值的目标是要插值函数尽量靠近离散点;拟合的目标是要离散点尽量靠近拟合函数。 向量与之间的误差或距离有各种不同的定义方法。例如: 用各点误差绝对值的和表示: 用各点误差按模的最大值表示: 用各点误差的平方和表示: 或(6.1)

其中称为均方误差,由于计算均方误差的最小值的方法容易实现而被广泛采用。按 均方误差达到极小构造拟合曲线的方法称为最小二乘法。本章主要讲述用最小二乘法构造拟合曲线的方法。 在运筹学、统计学、逼近论和控制论中,最小二乘法都是很重要的求解方法。例如,它是统计学中估计回归参数的最基本方法。 关于最小二乘法的发明权,在数学史的研究中尚未定论。有材料表明高斯和勒让德分别独立地提出这种方法。勒让德是在1805年第一次公开发表关于最小二乘法的论文,这时高斯指出,他早在1795年之前就使用了这种方法。但数学史研究者只找到了高斯约在1803年之前使用了这种方法的证据。 在实际问题中,怎样由测量的数据设计和确定“最贴近”的拟合曲线?关键在选择适当的拟合曲线类型,有时根据专业知识和工作经验即可确定拟合曲线类型;在对拟合曲线一无所知的情况下,不妨先绘制数据的粗略图形,或许从中观测出拟合曲线的类型;更一般地,对数据进行多种曲线类型的拟合,并计算均方误差,用数学实验的方法找出在最小二乘法意义下的误差最小的拟合函数。 例如,某风景区要在已有的景点之间修一条规格较高的主干路,景点与主干路之间由各具特色的支路联接。设景点的坐标为点列;设主干路为一条直线 ,即拟合函数是一条直线。通过计算均方误差最小值而确定直线方程(见图6.2)。 6.2线性拟合和二次拟合函数 线性拟合 给定一组数据,做拟合直线,均方误差为 (6.2) 是二元函数,的极小值要满足 整理得到拟合曲线满足的方程:

计算方法实验报告 拟合

南京信息工程大学实验(实习)报告 一、实验目的: 用最小二乘法将给定的十个点拟合成三次多项式。 二、实验步骤: 用matlab编制以函数为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi=1) x -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 y -2.30 -1 -0.14 -0.25 0.61 1.03 1.75 2.75 4.42 6.94 给定直线方程为:y=1/4*x3+1/2*x2+x+1 三、实验结论: 最小二乘法:通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。 一般地。当测量数据的散布图无明显的规律时,习惯上取n次代数多项式。 程序运行结果为: a = 0.9731 1.1023 0.4862 0.2238 即拟合的三次方程为:y=0.9731+1.1023x+0.4862*x2+0.2238*x3

-2.5 -2-1.5-1-0.5 00.51 1.52 2.5 -4-20246 81012 x 轴 y 轴 拟合图 离散点 y=a(1)+a(2)*x+a(3)*x.2+a(4)*x.3 结论: 一般情况下,拟合函数使得所有的残差为零是不可能的。由图形可以看出最小二乘解决了残差的正负相互抵消的问题,使得拟合函数更加密合实验数据。 优点:曲线拟合是使拟合函数和一系列的离散点与观测值的偏差平方和达到最小。 缺点:由于计算方法简单,若要保证数据的精确度,需要大量的数据代入计算。

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

实验3__曲线拟合的最小二乘法

《计算方法》实验报告 学院:计算机学院 专业:计算机科学与技术 指导教师:JW-++1 爨莹

班级学号:201207010229 姓名:图尔荪托合提

实验三曲线拟合的最小二乘法 1、实验目的: 在科学研究与工程技术中,常常需要从一组测量数据出发,寻找变量的函数关 系的近似表达式,使得逼近函数从总体上与已知函数的偏差按某种方法度量能达到最小而又不一定过全部的点。这是工程中引入最小二曲线拟合法的出发点。充分掌握:1.最小二乘法的基本原理;2.用多项式作最小二乘曲线拟合原理的基础上, 通过编程实现一组实验数据的最小二乘拟合曲线。 2、实验要求: 1) 认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方 案和算法; 2) 编写上机实验程序,作好上机前的准备工作; 3) 上机调试程序,并试算各种方案,记录计算的结果(包括必要的中间结 果); 4) 分析和解释计算结果; 5) 按照要求书写实验报告; 3、实验内容: 1) 给定数据如下: x :0.15,0.4,0.6 ,1.01 ,1.5 ,2.2 ,2.4,2.7,2.9,3.5 ,3.8 , 4.4,4.6 , 5.1 , 6.6, 7.6; y :4.4964,5.1284,5.6931 ,6.2884 ,7.0989 ,7.5507 ,7.5106, 8.0756, 7.8708,8.2403 ,8.5303 ,8.7394,8.9981 ,9.1450 ,9.5070,9.9115;试作出幂函数拟合数据。 2) 已知一组数据: x :0,0.1,0.2 ,0.3 ,0.4 ,0.5 ,0.6,0.7,0.8,0.9 ,1 y :-0.447,1.978,3.28 ,6.16 ,7.08 ,7.34 ,7.66,9.56,9.48,9.30 ,11.2; 试用最小二乘法求多项式函数,使与此组数据相拟合。

曲线拟合的最小二乘法讲解

实验三 函数逼近与曲线拟合 一、问题的提出: 函数逼近是指“对函数类A 中给定的函数)(x f ,记作A x f ∈)(,要求在另一类简的便于计算的函数类B 中求函数A x p ∈)(,使 )(x p 与)(x f 的误差在某中度量意义下最小”。函数类A 通常是区间],[b a 上的连续函数,记作],[b a C ,称为连续函数空间,而函数类B 通常为n 次多项式,有理函数或分段低次多项式等,函数逼近是数值分析的基础。主要内容有: (1)最佳一致逼近多项式 (2)最佳平方逼近多项式 (3)曲线拟合的最小二乘法 二、实验要求: 1、构造正交多项式; 2、构造最佳一致逼近; 3、构造最佳平方逼近多项式; 4、构造最小二乘法进行曲线拟合; 5、求出近似解析表达式,打印出逼近曲线与拟合曲线,且打印出其在数据点上的偏差; 6、探讨新的方法比较结果。 三、实验目的和意义: 1、学习并掌握正交多项式的MATLAB 编程; 2、学习并掌握最佳一致逼近的MATLAB 实验及精度比较;

3、学习并掌握最佳平方逼近多项式的MATLAB 实验及精度比较; 4、掌握曲线拟合的最小二乘法; 5、最小二乘法也可用于求解超定线形代数方程组; 6、 探索拟合函数的选择与拟合精度之间的关系; 四、 算法步骤: 1、正交多项式序列的生成 {n ?(x )}∞ 0:设n ?(x )是],[b a 上首项系数a ≠n 0的n 次多项式,)(x ρ为],[b a 上权函数,如果多项式序列{n ?(x )} ∞0 满足关系式???=>≠==?.,0,, 0)()()()(),(k j A k j x d x x x k k j b a k j ??ρ?? 则称多项式序列{n ?(x )}∞ 0为在],[b a 上带权)(x ρ正交,称n ?(x )为],[b a 上带权)(x ρ 的n 次正交多项式。 1)输入函数)(x ρ和数据b a ,; 2)分别求))(),(()),(,(x x x x j j j n ???的内积; 3)按公式①)()) (),(()) (,()(,1)(1 0x x x x x x x x j n j j j j n n n ??? ???∑-=- ==计算)(x n ?,生成正交多项式; 流程图: 开始

最小二乘法的多项式拟合matlab实现

最小二乘法的多项式拟 合m a t l a b实现 Document serial number【NL89WT-NY98YT-NC8CB-NNUUT-NUT108】

用最小二乘法进行多项式拟合(matlab 实现) 西安交通大学 徐彬华 算法分析: 对给定数据 (i=0 ,1,2,3,..,m),一共m+1个数据点,取多项式P(x),使 函数P(x)称为拟合函数或最小二乘解,令似的 使得 其中,a0,a1,a2,…,an 为待求未知数,n 为多项式的最高次幂,由此,该问题化为求 的极值问题。由多元函数求极值的必要条件: j=0,1,…,n 得到: j=0,1,…,n 这是一个关于a0,a1,a2,…,an 的线性方程组,用矩阵表示如下:

因此,只要给出数据点 及其个数m ,再给出所要拟合的参数n ,则即可求出未知数矩阵(a0,a1,a2,…,an ) 试验题1 编制以函数 为基的多项式最小二乘拟合程序,并用于对下列数据作三次多项式最小二乘拟合(取权函数wi ≡1) x i y i 总共有7个数据点,令m=6 第一步:画出已知数据的的散点图,确定拟合参数n; x=::;y=[,,,,,,]; plot(x,y,'*') xlabel 'x 轴' ylabel 'y 轴' title '散点图' hold on {} n k k x 0=

因此将拟合参数n设为3. 第二步:计算矩阵 A= 注意到该矩阵为(n+1)*(n+1)矩阵, 多项式的幂跟行、列坐标(i,j)的关系为i+j-2,由此可建立循环来求矩阵的各个元素,程序如下: m=6;n=3; A=zeros(n+1); for j=1:n+1 for i=1:n+1 for k=1:m+1 A(j,i)=A(j,i)+x(k)^(j+i-2) end end

数值分析实验报告--最小二乘拟合

实验过程: 一、根据所给数据作出温度随时间变化的散点图。>> x=0:24; >> y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >>stem(x,y,'k*') 点的标记是黑色的*. 这是温度随时间变化的散点图。 二、输入数据,拟合出各类函数的各个系数。(用polyfit

命令来求拟合系数) (1)>> x=0:24; >> y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> b2=polyfit(x,y,2) b2 = -0.0936 2.5943 8.4157 ---这是拟合出的二次多项式的各项系数。 (2)>> x=0:24; >> y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> b3=polyfit(x,y,3) >>b3 = -0.0080 0.1931 -0.1022 13.2513 ---这是拟合出的三次多项式的各项系数。 (3)>> x=0:24; >> y=[15 14 14 14 14 15 16 18 20 22 23 25 28 31 32 31 29 27 25 24 22 20 18 17 16]; >> b4=polyfit(x,y,4) >>b4 = 0.0009 -0.0521 0.8658 -3.5257 16.6041 ---这是拟合出的四次多项式的各项系数。 (4) function y=f1(x) for i=1:25 y(i)=log(x(i)); end >> y1=f1( x); >> b5=polyfit(x,y1,2) b5 = -0.0045 0.1253 2.3866 >> y_=f1(y);

(2020年编辑)最小二乘法拟合原理

最小二乘拟合 在物理实验中经常要观测两个有函数关系的物理量。根据两个量的许多组观测数据来确定它们的函数曲线,这就是实验数据处理中的曲线拟合问题。这类问题通常有两种情况:一种是两个观测量x 与y 之间的函数形式已知,但一些参数未知,需要确定未知参数的最佳估计值;另一种是x 与y 之间的函数形式还不知道,需要找出它们之间的经验公式。后一种情况常假设x 与y 之间的关系是一个待定的多项式,多项式系数就是待定的未知参数,从而可采用类似于前一种情况的处理方法。 一、最小二乘法原理 在两个观测量中,往往总有一个量精度比另一个高得多,为简单起见把精度较高的观测量看作没有误差,并把这个观测量选作x ,而把所有的误差只认为是y 的误差。设x 和y 的函数关系由理论公式 y =f (x ;c 1,c 2,……c m ) (0-0-1) 给出,其中c 1,c 2,……c m 是m 个要通过实验确定的参数。对于每组观测数据(x i ,y i )i =1,2,……,N 。都对应于xy 平面上一个点。若不存在测量误差,则这些数据点都准确落在理论曲线上。只要选取m 组测量值代入式(0-0-1),便得到方程组 y i =f (x ;c 1,c 2,……c m ) (0-0-2) 式中i =1,2,……,m.求m 个方程的联立解即得m 个参数的数值。显然Nm 的情况下,式(0-0-2)成为矛盾方程组,不能直接用解方程的方法求得m 个参数值,只能用曲线拟合的方法来处理。设测量中不存在着系统误差,或者说已经修正,则y 的观测值y i 围绕着期望值 摆动,其分布为正态分布,则y i 的概率密度为 ()()[]??????????--=2 2 212,......,,;exp 21i m i i i i c c c x f y y p σσπ, 式中i σ 是分布的标准误差。为简便起见,下面用C 代表(c 1,c 2,……c m )。考虑各次 测量是相互独立的,故观测值(y 1,y 2,……c N )的似然函数 ( ) ()[]??????????--= ∑=N i i i N N C x f y L 12 2 21;21ex p (21) σσσσπ. 取似然函数L 最大来估计参数C ,应使 ()[]min ;1 1 2 2=-∑=N i i i i C x f y σ (0-0-3) 取最小值:对于y 的分布不限于正态分布来说,式(0-0-3)称为最小二乘法准则。若 为正态分布的情况,则最大似然法与最小二乘法是一致的。因权重因子2 /1i i σω=,故式 (0-0-3)表明,用最小二乘法来估计参数,要求各测量值y i 的偏差的加权平方和为最小。

最小二乘拟合实验报告材料

工程学院 《计算方法》实验报告 课 程 名 称 计算方法 系 院 理 学 院 专 业 信息与计算科学 班 级 12级一班 学 生 姓 名 志辉 学 号 2012101316 《最小二乘求解》 1 引言 在科学实验和生产实践中,经常要从一组实验数据(,)(1,2,,)i i x y i m 出发,寻求函 数y=f (x )的一个近似表达式y=φ(x),称为经验公式,从几何上来看,这就是一个曲线拟 合的问题。 多项式的插值虽然在一定程度上解决了由函数表求函数近似表达式的问题,但用它来解决这里的问题,是有明显的缺陷的。首先,由实验提供的数据往往有测试误差。如果要求近似曲线y=φ(x)严格地通过所给的每个数据点(,)i i x y ,就会使曲线保留原来的测试误差,因此当个别数据的误差较大的时候,插值的效果是不理想的。其次,当实验数据较多时,用插值法得到的近似表达式,明显缺乏实用价值。在实验中,我们常常用最小二乘法来解决这类

问题。 定义()i i i x y δ?=-为拟合函数在i x 处的残差。为了是近似曲线能尽量反映所给数据点的变化趋势,我们要求||i δ尽可能小。在最小二乘法中,我们选取()x ?,使得偏差平方和最小,即 2 2 1 1 [()]min m m i i i i i x y δ?=== -=∑∑,这就是最小二乘法的原理。 2 实验目的和要求 运用matlab 编写.m 文件,要求用最小二乘法确定参数。 以下一组数据中x 与y 之间存在着bx y ae =的关系,利用最小二乘法确定式中的参数a 和b ,并计算相应的军方误差与最大偏差。数据如下: 3 算法原理与流程图 (1) 原理 最小二乘是要求对于给定数据列(,)(1,2, ,)i i x y i m =,要求存在某个函数类 01{(),(), ()}()n x x x n m ???Φ=<中寻求一个函数: ** ** 0011()()()()n n x a x a x a x ????=++ +,使得*()x ?满足 * 2 2 ()1 1 [()]min [()]n n i i i i x i i x y x y ???∈Φ ==-=-∑∑。 根据以上条件可知,点* ** 01(,,,)n a a a 是多元函数 2 011 (,, ,)[()]m n n k k i i i k S a a a a x y ?=== -∑∑ 的极小点,从而* ** 01,, ,n a a a 满足方程组 0(0,1,,)k S k n a ?==? 即00111 1 11 () ()()()()()()m m m m k i i k i i n k i n i k i i i i i i a x x a x x a x x x y ???????====+++= ∑∑∑∑,

工程数值分析实验(龙格库塔,最小二乘法)

工程数值分析实验报告 指导老师 班级 学号 姓名

实验一:最小二乘法拟合曲线实验 一、实验名称:最小二乘法拟合曲线实验 实验时间:2015-5-14 实验地点:主楼机房 实验器材: 计算机matlab 二、实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。 三、实验要求: (1)根据最小二乘法和加权最小二乘法的基本理论,编写程序构造拟合曲线的法方程,要求可以方便的调整拟合多项式的次数; (2)采用列主元法解(1)中构造的法方程,给出所拟合的多项式表达式; (3)编写程序计算所拟合多项式的均方误差,并作出离散函数和拟合函数的图形; (4)用MATLAB 的内部函数polyfit 求解上面最小二乘法曲线拟合多项式的系数及平方误差,并用MATLAB 的内部函数plot 作出其图形,并与(1)的结果进行比较。 四、算法描述(实验原理与基础理论) 基本原理:从整体上考虑近似函数 同所给数据点 (i=0,1,…,m)误差 (i=0,1,…,m) 的大小,常用的方法有以下三种:一是误差 (i=0,1,…,m)绝对值的最大值 ,即误差 向量 的∞—范数;二是误差绝对值的和 ,即误差向量r 的1—范数;三是误差平方和 的算术平方根,即误差向量r 的2 —范数;前两种方法简单、自然,但不便于微分运算 ,后一种方法相当于考虑 2—范数的平方,因此在曲线拟合中常采用误差平方和 来 度量误差 (i=0,1,…,m)的整体大 小。 五、实验内容:共有两组给定数据,把给定的数据拟合成多项式。 第一组给定数据点如表1所示如下: 表1 数据表 表2 数据表 ),(i i y x i i i y x p r -=)(i i i y x p r -=)(i m i r ≤≤0max T m r r r r ),,(10 =∑ =m i i r 0 ∑=m i i r 2 ∑=m i i r 02 i r

用多项式模型进行数据拟合实验报告(附代码)

实验题目: 用多项式模型进行数据拟合实验 1 实验目的 本实验使用多项式模型对数据进行拟合,目的在于: (1)掌握数据拟合的基本原理,学会使用数学的方法来判定数据拟合的情况; (2)掌握最小二乘法的基本原理及计算方法; (3)熟悉使用matlab 进行算法的实现。 2 实验步骤 2.1 算法原理 所谓拟合是指寻找一条平滑的曲线,最不失真地去表现测量数据。反过来说,对测量 的实验数据,要对其进行公式化处理,用计算方法构造函数来近似表达数据的函数关系。由于函数构造方法的不同,有许多的逼近方法,工程中常用最小平方逼近(最小二乘法理论)来实现曲线的拟合。 最小二乘拟合利用已知的数据得出一条直线或曲线,使之在坐标系上与已知数据之间的距离的平方和最小。模型主要有:1.直线型2.多项式型3.分数函数型4.指数函数型5.对数线性型6.高斯函数型等,根据应用情况,选用不同的拟合模型。其中多项式型拟合模型应用比较广泛。 给定一组测量数据()i i y x ,,其中m i ,,3,2,1,0Λ=,共m+1个数据点,取多项式P (x ),使得 min )]([020 2=-=∑∑==m i i i m i i y x p r ,则称函数P (x )为拟合函数或最小二乘解,此时,令 ∑==n k k k n x a x p 0 )(,使得min ])([02 002=??? ? ??-=-=∑∑∑===m i n k i k i k m i i i n y x a y x p I ,其中 n a a a a ,,,,210Λ为待求的未知数,n 为多项式的最高次幂,由此该问题化为求),,,(210n a a a a I I Λ=的极值问题。 由多元函数求极值的必要条件:0)(200 =-=??∑∑==m i j i n k i k i k i x y x a a I ,其中n j ,,2,1,0Λ= 得到: ∑∑∑===+=n k m i i j i k m i k j i y x a x )(,其中n j ,,2,1,0Λ=,这是一个关于n a a a a ,,,,210Λ的线 性方程组,用矩阵表示如下所示:

曲线拟合——最小二乘法算法

曲线拟合——最小二乘法算法 一、目的和要求 1)了解最小二乘法的基本原理,熟悉最小二乘算法; 2)掌握最小二乘进行曲线拟合的编程,通过程序解决实际问题。 二、实习内容 1)最小二乘进行多项式拟合的编程实现。 2)用完成的程序解决实际问题。 三、算法 1)输入数据节点数n ,拟合的多项式次数m ,循环输入各节点的数据x j , y j (j=0,1,…,n-1) 2)由x j 求S ;由x j ,y j 求T : S k = ∑-=10n j k j x ( k=0,1,2, … 2*m ) T k = ∑-=1 0n j k j j x y ( k=0,1,2,… m ) 3)由S 形成系数矩阵数组c i,j :c[i][j]=S[i+j] (i=0,1,2,…m, j=0,1,2,…,m);由T 形成系数矩阵增广部分c i,m+1:c[i][m+1]=T[i] (i=0,1,2,…m) 4)对线性方程组CA=T[或A C ],用列主元高斯消去法求解系数矩阵A=(a 0,a 1,…,a m )T 四、实验步骤 1)完成最小二乘法进行曲线拟合的程序设计及录入、编辑; 2)完成程序的编译和链接,并进行修改; 3)用书上P105例2的例子对程序进行验证,并进行修改; 4)用完成的程序求解下面的实际问题。 5)完成实验报告。 五、实验结果 1. 经编译、链接及例子验证结果正确的源程序: #include #include #define Q 100 float CF(int,float); main() { int i,j,n1,n,p,k,q; float x[Q],y[Q],s[Q]={0},t[Q]={0},a[Q][Q]={0},l,sum=0; /*以下是最小二乘的程序*/ printf("input 数据组数n");

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