文档库 最新最全的文档下载
当前位置:文档库 › 数学建模插值及拟合详解

数学建模插值及拟合详解

数学建模插值及拟合详解
数学建模插值及拟合详解

插值和拟合

实验目的:了解数值分析建模的方法,掌握用Matlab进行曲线拟合的方法,理解用插值法建模的思想,运用Matlab一些命令及编程实现插值建模。

实验要求:理解曲线拟合和插值方法的思想,熟悉Matlab相关的命令,完成相应的练习,并将操作过程、程序及结果记录下来。

实验内容:

一、插值

1.插值的基本思想

·已知有n +1个节点(xj,yj),j = 0,1,…, n,其中xj互不相同,节点(xj, yj)可看成由某个函数y= f (x)产生;

·构造一个相对简单的函数y=P(x);

·使P通过全部节点,即P (xk) = yk,k=0,1,…, n ;

·用P (x)作为函数f ( x )的近似。

2.用MA TLAB作一维插值计算

yi=interp1(x,y,xi,'method')

注:yi—xi处的插值结果;x,y—插值节点;xi—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值)。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。

练习1:机床加工问题

每一刀只能沿x方向和y方向走非常小的一步。

表3-1给出了下轮廓线上的部分数据

但工艺要求铣床沿x方向每次只能移动0.1单位.

这时需求出当x坐标每改变0.1单位时的y坐标。

试完成加工所需的数据,画出曲线.

步骤1:用x0,y0两向量表示插值节点;

步骤2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline');

步骤3:plot(x0,y0,'k+',x,y,'r')

grid on

答:x0=[0 3 5 7 9 11 12 13 14 15 ];

y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ];

x=0:0.1:15;

y=interp1(x0,y0,x,'spline');

plot(x0,y0,'k+',x,y,'r')

grid on

3.用MA TLAB作网格节点数据的插值(二维)

z=inte rp2(x0,y0,z0,x,y,’method’)

注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:双线性插值;‘cubic’:双三次插值;缺省时:双线性插值)。

注意:要求x0,y0单调;x,y可取为矩阵,或x取行向量,y取为列向量,x,y的值分别不能超出x0,y0的范围。

4.用MA TLAB作散点数据的插值计算

cz =griddata(

x,y,

z,cx,cy,

‘method’)

注:cz—被插点值的函数值;x,y,z—插值节点;cx,cy—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:双线性插值;‘cubic’:双三次插值;'v4‘:Matlab提供的插值方法;缺省时:双线性插值)。

练习2:航行区域的警示线

某海域上频繁地有各种吨位的船只经过。

为保证船只的航行安全,有关机构在低潮时对水深进行了测量,下表是他们提供的测量数据:水道水深的测量数据

x 129.0 140.0 103.5 88.0 185.5 195.0 105.5

y 7.5 141.5 23.0 147.0 22.5 137.5 85.5

z 4 8 6 8 6 8 8

x 157.5 107.5 77.0 81.0 162.0 162.0 117.5

y -6.5 -81.0 3.0 56.5 -66.5 84.0 -33.5

z 9 9 8 8 9 4 9

其中(x, y )为测量点,z 为(x, y )处的水深(英尺),水深z 是区域坐标(x, y )的函数z= z (x, y ),

船的吨位可以用其吃水深度来反映,分为 4英尺、4.5英尺、5英尺和 5.5英尺 4 档。

航运部门要在矩形海域(75,200)×(-50,150)上为不同吨位的航船设置警示标记。

请根据测量的数据描述该海域的地貌,并绘制不同吨位的警示线,供航运部门使用。 x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5]; y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5]; z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];

cx=75:0.5:200; cy=-70:0.5:150;

cz=griddata(x,y,z,cx,cy','cubic');

meshz(cx,cy,cz),rotate3d

xlabel('X'),ylabel('Y'),zlabel('Z') %pause

figure(2),contour(cx,cy,cz,[-5 -5]);grid on, hold on plot(x,y,'+')

xlabel('X'),ylabel('Y')

50

200

200

X

Y

Z

X

Y

80

100

120

140160

180

200

-60

-40-20020406080100120

140

练习3:估计水塔的水流量

问题描述见教材P.91—93,请绘出三次样条插值曲线,并计算一天的总的用水量。 解:t0=[0.46,1.38,2.4,3.41,4.43,5.44,6.45,7.47,8.45,11.49,12.49,13.42,14.43,15.44,16.37,17.38,18.49,19.50,20.40,24.43,25.32];

v0=[11.2,9.7,8.6,8.1,9.3,7.2,7.9,7.4,8.4,15.6,16.4,15.5,13.4,13.8,12.9,12.2,12.2,12.9,12.6,11.2,3.5]; t=0:0.1:26; y=interp1(t0,v0,t,'spline'); plot(t0,v0,'k+',t,y, 'r') grid on

0510********

-10

-5

5

10

15

20

二、曲线拟合

已知一组(二维)数据,即平面上 n 个点(xi,yi) i=1,…n, 寻求一个函数(曲线)y=f(x), 使 f(x) 在某种准则下与所有数据点最为接近,即曲线拟合得最好。

最常用的方法是线性最小二乘拟合 1.多项式拟合

? 对给定的数据(xj,yj ),j = 0,1,…, n ;

? 选取适当阶数的多项式,如二次多项式g(x)=ax^2+bx+c ;

? 使g(x)尽可能逼近(拟合)这些数据,但是不要求经过给定的数据(xj,yj ); 2.多项式拟合指令

1)多项式f(x)=a1xm+ …+amx+am+1拟合指令:

a=polyfit(x,y,m)

a :输出多项式拟合系数a[a1,a2,…,am];x,y :输出长度相同的数组;m :多项式的次数。 2)多项式在x 处的值y 的计算命令:

y=polyval (a,x )

练习4:对下面一组数据作二次多项式拟合

写出拟合命令:

plot(x,y,'k+',x,z,'r')

作出数据点和拟合曲线:

0.10.20.30.40.50.60.70.80.91

写出拟合的二次多项式:0317.01293.208108.9)(2

-+-=x x x f

3.可化为多项式的非线性拟和

曲线改直是工程中又一常用的判断曲线形式的方法,许多常见的函数都可以通过适当的变换转化为线性函数。

(1)幂函数 b

y ax c =+

ln ln ln y c a b x -=+

(2)指数函数 x

y a b c =+

ln ln ln y c a x b -==

(3)抛物函数 2

,(0)

y a x b x

c x =++≠

b ax x

c

y +=-

练习5:完成教材P93页的习题5的第一小题。

x0=[0,300,600,1000,1500,2000];

x=0:100:2000;

y0=[0.9689,0.9322,0.8969,0.8519,0.7989,0.7491];

y=interp1(x0,y0,x,'spline');

plot(x0,y0,'k+',x,y,'r')

grid on

0200400600800100012001400160018002000

数学建模常用的十种解题方法

数学建模常用的十种解题方法 摘要 当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言,把它表述为数学式子,也就是数学模型,然后用通过计算得到的模型结果来解释实际问题,并接受实际的检验。这个建立数学模型的全过程就称为数学建模。数学建模的十种常用方法有蒙特卡罗算法;数据拟合、参数估计、插值等数据处理算法;解决线性规划、整数规划、多元规划、二次规划等规划类问题的数学规划算法;图论算法;动态规划、回溯搜索、分治算法、分支定界等计算机算法;最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法;网格算法和穷举法;一些连续离散化方法;数值分析算法;图象处理算法。 关键词:数学建模;蒙特卡罗算法;数据处理算法;数学规划算法;图论算法 一、蒙特卡罗算法 蒙特卡罗算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法。在工程、通讯、金融等技术问题中, 实验数据很难获取, 或实验数据的获取需耗费很多的人力、物力, 对此, 用计算机随机模拟就是最简单、经济、实用的方法; 此外, 对一些复杂的计算问题, 如非线性议程组求解、最优化、积分微分方程及一些偏微分方程的解⑿, 蒙特卡罗方法也是非常有效的。 一般情况下, 蒙特卜罗算法在二重积分中用均匀随机数计算积分比较简单, 但精度不太理想。通过方差分析, 论证了利用有利随机数, 可以使积分计算的精度达到最优。本文给出算例, 并用MA TA LA B 实现。 1蒙特卡罗计算重积分的最简算法-------均匀随机数法 二重积分的蒙特卡罗方法(均匀随机数) 实际计算中常常要遇到如()dxdy y x f D ??,的二重积分, 也常常发现许多时候被积函数的原函数很难求出, 或者原函数根本就不是初等函数, 对于这样的重积分, 可以设计一种蒙特卡罗的方法计算。 定理 1 )1( 设式()y x f ,区域 D 上的有界函数, 用均匀随机数计算()??D dxdy y x f ,的方法: (l) 取一个包含D 的矩形区域Ω,a ≦x ≦b, c ≦y ≦d , 其面积A =(b 一a) (d 一c) ; ()j i y x ,,i=1,…,n 在Ω上的均匀分布随机数列,不妨设()j i y x ,, j=1,…k 为落在D 中的k 个随机数, 则n 充分大时, 有

插值拟合数学建模算法

1 20/"geometry.cfg" 20/"natbib.cfg" 20/"bblopts.cfg" 20/"english.cfg"20/"____________.aux"

插值算法February3,2020

需要根据已知的函数点进行数据,模型的处理和分析,有时候现有的数据是极少的,不足以分析支撑的比较,这时候需要数学的方法,模拟产生一些洗呢但又比较靠谱的值来满足需求。 一维插值问题多项式插值分段插值 拉格朗日插值多项式公式 L n(x)= n ∑ k=0 y k ωn+1(x) (x?x k)ω′ n+! (x k) 其中ωn+1(x)=(x?x0)(x?x1)....(x?x n) 龙格现象(runge phenomenon)高次插值会产生龙格现象,在两端处的波动计大,产生明显的震荡.在不熟悉曲线的运动趋势下,不要轻易使用高次插值. 采用分段低次插值的思路:在随便两个点之间,采用分段二次或者三次插值的方法/又叫分段抛物插值. 牛顿插值法:f(x)=f(x0)+f|x0,x1|(x?x0)+f|x0,x1,x2|(x?x0)(x?x1)+.....差商的定义:称f|x0,x k|=f(x k)?f(x0) x k?x0 两种插值的区别在于没有体现在导数的一致上 埃尔米特插值法:要求节点处的函数值相同,同时要求对应的导数值也相同分段三次埃尔米特插值法: matlab里有内存的函数pchip(x,y,new_w)x是已知样本点的横坐标,y是已知样本点的纵坐标,new_x是要插入的对应的横坐标 n维数据的插值了解:p=interpn(x1,x2,...xn,y,new_x1,newx_2,....newx_n,method) x1,x2,x3...是样本点的横坐标 y是样本点的纵坐标 输入的new是要输入点的横坐标 method是要插值的方法拟合算法 拟合和插值的区别:找到一个确定的曲线保证误差足够小,不要求曲线经过每一个样本点,只要足够接近就可以.

数学建模常用方法

数学建模常用方法 建模常用算法,仅供参考: 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必 用的方法) 2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用M a t l a b作为工具) 3、线性规划、整数规划、多元规划、二次规划等规划类问题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通 常使用L i n d o、L i n g o软件实现) 4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备) 5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中) 6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用) 7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种 暴力方案,最好使用一些高级语言作为编程工具) 8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计 算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的) 9、数值分析算法(如果在比赛中采用高级语言进行编程的话,那一些数值分析中常用的算法比如方程组求解、矩阵运算、函数积分等算法就需要额外编写库函数进行调用) 10、图象处理算法(赛题中有一类问题与图形有关,即使与图形无关,论文 中也应该要不乏图片的,这些图形如何展示以及如何处理就是需要解决的问题,通常使用M a t l a b进行处理) 一、在数学建模中常用的方法: 1.类比法 2.二分法 3.量纲分析法 4.差分法 5.变分法 6.图论法 7.层次分析法 8.数据拟合法 9.回归分析法 10.数学规划(线性规划、非线性规划、整数规划、动态规划、目标规划) 11.机理分析 12.排队方法

数学建模案例分析插值与拟合方法建模1数据插值方法及应用

第十章 插值与拟合方法建模 在生产实际中,常常要处理由实验或测量所得到的一批离散数据,插值与拟合方法就是要通过这些数据去确定某一类已经函数的参数,或寻求某个近似函数使之与已知数据有较高的拟合精度。插值与拟合的方法很多,这里主要介绍线性插值方法、多项式插值方法和样条插值方法,以及最小二乘拟合方法在实际问题中的应用。相应的理论和算法是数值分析的内容,这里不作详细介绍,请参阅有关的书籍。 §1 数据插值方法及应用 在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。与此有关的一类问题是当原始数据 ),(,),,(),,(1100n n y x y x y x 精度较高,要求确定一个初等函数)(x P y =(一般用多项式或分段 多项式函数)通过已知各数据点(节点),即n i x P y i i ,,1,0,)( ==,或要求得函数在另外一些点(插值点)处的数值,这便是插值问题。 1、分段线性插值 这是最通俗的一种方法,直观上就是将各数据点用折线连接起来。如果 b x x x a n =<<<= 10 那么分段线性插值公式为 n i x x x y x x x x y x x x x x P i i i i i i i i i i ,,2,1,,)(11 1 11 =≤<--+--= ----- 可以证明,当分点足够细时,分段线性插值是收敛的。其缺点是不能形成一条光滑曲线。 例1、已知欧洲一个国家的地图,为了算出它的国土面积,对地图作了如下测量:以由西向东方向为x 轴,由南向北方向为y 轴,选择方便的原点,并将从最西边界点到最东边界点在x 轴上的区间适当的分为若干段,在每个分点的y 方向测出南边界点和北边界点的y 坐标y1和y2,这样就得到下表的数据(单位:mm )。

数学建模10种常用算法

数学建模10种常用算法 1、蒙特卡罗算法(该算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法) 2、数据拟合、参数估计、插值等数据处理算法(比赛中通常会遇到大量的数据需要处理,而处理数据的关键就在于这些算法,通常使用Matlab作为工具) 3、线性规划、整数规划、多元规划、二次规划等规划类问 题(建模竞赛大多数问题属于最优化问题,很多时候这些问题可以用数学规划算法来描述,通常使用Lindo、Lingo软件实现) 4、图论算法(这类算法可以分为很多种,包括最短路、网络流、二分图等算法,涉及到图论的问题可以用这些方法解决,需要认真准备) 5、动态规划、回溯搜索、分治算法、分支定界等计算机算法(这些算法是算法设计中比较常用的方法,很多场合可以用到竞赛中) 6、最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法(这些问题是用来解决一些较困难的最优化问题的算法,对于有些问题非常有帮助,但是算法的实现比较困难,需慎重使用) 7、网格算法和穷举法(网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具) 8、一些连续离散化方法(很多问题都是实际来的,数据可以是连续的,而计算机只认的是离散的数据,因此将其离散化后进行差分代替微分、求和代替积分等思想是非常重要的) 9、数值分析算法(如果在比赛中采用高级语言进行

编程的话,那一些数值分析中常用的算法比如方程组 求解、矩阵运算、函数积分等算法就需要额外编写库 函数进行调用) 10、图象处理算法(赛题中有一类问题与图形有关, 即使与图形无关,论文中也应该要不乏图片的,这些 图形如何展示以及如何处理就是需要解决的问题,通 常使用Matlab进行处 参数估计 C.F. 20世纪60年代,随着电子计算机的 。参数估计有多种方法,有最小二乘法、极大似然法、极大验后法、最小风险法和极小化极大熵法等。在一定条件下,后面三个方法都与极大似然法相同。最基本的方法是最小二乘法和极大似然法. 基本介绍 参数估计(parameter 尽可能接近的参数 误差 平方和  θ,使已知数据Y 最大,这里P(Y│θ)是数据Y P(Y│θ)。在实践中这是困难的,一般可假设P(Y│θ

数学建模插值及拟合详解

插值和拟合 实验目的:了解数值分析建模的方法,掌握用Matlab进行曲线拟合的方法,理解用插值法建模的思想,运用Matlab一些命令及编程实现插值建模。 实验要求:理解曲线拟合和插值方法的思想,熟悉Matlab相关的命令,完成相应的练习,并将操作过程、程序及结果记录下来。 实验内容: 一、插值 1.插值的基本思想 ·已知有n +1个节点(xj,yj),j = 0,1,…, n,其中xj互不相同,节点(xj, yj)可看成由某个函数y= f (x)产生; ·构造一个相对简单的函数y=P(x); ·使P通过全部节点,即P (xk) = yk,k=0,1,…, n ; ·用P (x)作为函数f ( x )的近似。 2.用MA TLAB作一维插值计算 yi=interp1(x,y,xi,'method') 注:yi—xi处的插值结果;x,y—插值节点;xi—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值)。注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的范围。 练习1:机床加工问题 每一刀只能沿x方向和y方向走非常小的一步。 表3-1给出了下轮廓线上的部分数据 但工艺要求铣床沿x方向每次只能移动0.1单位. 这时需求出当x坐标每改变0.1单位时的y坐标。 试完成加工所需的数据,画出曲线. 步骤1:用x0,y0两向量表示插值节点; 步骤2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步骤3:plot(x0,y0,'k+',x,y,'r') grid on 答:x0=[0 3 5 7 9 11 12 13 14 15 ]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; x=0:0.1:15; y=interp1(x0,y0,x,'spline'); plot(x0,y0,'k+',x,y,'r') grid on

2013年数学建模数据拟合方法

数据拟合 问题的提出及最小二乘原理 取 x 的n 个不全相同的值n x x x ,,,21 作独立试验,得到样本 ()11,y x ,()22,y x ,…,()n n y x ,,则 i i i bx a y ε++=, 设()2 ,0~σεN i ,各 i ε 相互独立 于是 () 2 ,~σi i bx a N y +, n i ,,2,1 =。且由 n y y y ,,,21 的独立性,知n y y y ,,,21 的联合概率密度为 ()?? ? ?? ?---??? ??=∑=n i i i n bx a y L 12 2 21exp 21σπσ (1) 现用最大似然估计法来估计未知参数 b a ,。对于任意一组观察值 n y y y ,,,21 ,(1)式就是样本的似然函数。显然,要L 取最大值, 只需函数 ()() ∑=--=n i i i bx a y b a Q 12 , 取最小值。 如果 y 不是正态变量,则直接用(1)式估计b a ,使 y 的观察值 i y 与 i bx a + 偏差的平方和 ()b a Q , 为最小。这种方法叫最小二乘法。 如果y 是正态变量,则最小二乘法与最大似然估计法给出相同的结果。 取 ()b a Q ,分别关于b a ,的偏导数,并令它们等于0,得到b a ,

应满足方程 ()()???????=---=??=---=??∑∑==020211n i i i i n i i i x x b a y b Q x b a y a Q (2) (2)式称为正规方程组。解此方程组即可确定 b a ,,从而得到直线方程 bx a y +=*。 对一组测定数据用最小二乘原理找出其合适的数学公式,可以分以下几步: 1. 由观测数据作出散点图 2. 根据散点图确定近似公式的函数类 3. 用最小二乘原理确定函数中的未知参数 这一方法称为数据拟合法。 常用的曲线(函数类)有直线、多项式、双曲线、指数曲线等,实际操作中可以在直观判断的基础上,选几种曲线分别做拟合,然后比较看哪条曲线的最小二乘指标最小。 一. 多变量的数据拟合 若影响变量 y 的因素不只是一个,而是几个,譬如有 k 个因素 k x x x ,,,21 ,这时通过n 次实验可以得到数据表: 实验 1x 2x … k x y 1 11x 21x … 1k x 1y 2 12x 22x … 2k x 2y … … … … … … n n x 1 n x 2 … kn x n y

数学建模曲线拟合

曲线拟合 摘要 根究已有数据研究y关于x的关系,对于不同的要求得到不同的结果。 问题一中目标为使的各个观察值同按直线关系所预期的值的偏差平方和为最小,利用MATLAB中t lsqcurvefi函数在最小二乘法原理下拟合出所求直线。 问题二目标为使绝对偏差总和为最小,使用MATLAB中的fminsearch函数,在题目约束条件内求的最优答案,以此方法同样求得问题三中最大偏差为最小时的直线。 问题四拟合的曲线为二阶多项式,方法同前三问类似。 问题五为求得最佳的曲线,将之前的一次曲线换成多次曲线进行拟合得到新的结果。经试验发现高阶多项式的阶数越高拟和效果最好。 ) 关键词:函数拟合最小二乘法线性规划 | < ¥

一、问题的重述 已知一个量y 依赖于另一个量x ,现收集有数据如下: (1)求拟合以上数据的直线a bx y +=。目标为使y 的各个观察值同按直线关系所预期的值的偏差平方和为最小。 (2)求拟合以上数据的直线a bx y +=,目标为使y 的各个观察值同按直线关系所预期的值的绝对偏差总和为最小。 (3)求拟合以上数据的直线,目标为使y 的各个观察值同按直线关系所预期的值的最大偏差为最小。 (4)求拟合以上数据的曲线a bx cx y ++=2,实现(1)(2)(3)三种目标。 } (5)试一试其它的曲线,可否找出最好的? 二、问题的分析 对于问题一,利用MATLAB 中的最小二乘法对数据进行拟合得到直线,目标为使各个观察值同按直线关系所预期的值的偏差平方和为最小。 对于问题二、三、四均利用MATLAB 中的fminsearch 函数,在题目要求的约束条件下找到最佳答案。 对于问题五,改变多项式最高次次数,拟合后计算残差,和二次多项式比较,再增加次数后拟合,和原多项式比较残差,进而找到最好的曲线。 ~

数学建模:最小二乘拟合实验

《数学建模期末实验作业》 院系:数学学院 专业:信息与计算科学 年级:2014级 试题编号:37 胡克定律得综合评价分析 背景摘要: 利用一个打蛋器与一个物理学公式,毁掉一面六英寸厚得承重墙,这么天方夜谭得事您能相信吗?但它却真得发生了! 《越狱》这一电视剧相信很多人都耳熟,即使没瞧过里面得内容,但应该都曾经听过它得大名.在《越狱》第一季第六集中,Michael要通过地下管道爬到医务室得下面,但就是一条重要通道就是被封死得,因此必须要把这个封死得墙破坏掉,由于就是混凝土结构,因此破坏起来很难,Michael从纹身上拓下魔鬼得画像,投影在掩住管道入口得墙上,用“胡克定律”计算出最佳位置,再用小巧得打蛋器在承重墙上钻出了几个小洞,最后借助这几个小洞毁掉了这堵承重墙。 相信大多数人都觉得很梦幻很不科学,但事实就就是这样得令人惊讶。搜狐娱乐曾经报道过,有《越狱》粉丝不相信这一情节,在现实生活中进行实验,结果真得重现了“胡克定律”凿墙这一情节。 胡克定律得表达式为F=k·x或△F=k·Δx,其中k就是常数,就是物体得劲度(倔强)系数。在国际单位制中,F得单位就是牛,x得单位就是米,它

就是形变量(弹性形变),k得单位就是牛/米.倔强系数在数值上等于弹簧伸长(或缩短)单位长度时得弹力。 弹性定律就是胡克最重要得发现之一,也就是力学最重要基本定律之一.在现代,仍然就是物理学得重要基本理论。胡克得弹性定律指出:弹簧在发生弹性形变时,弹簧得弹力Ff与弹簧得伸长量(或压缩量)x成正比,即F=-k·x.k就是物质得弹性系数,它由材料得性质所决定,负号表示弹簧所产生得弹力与其伸长(或压缩)得方向相反。 但当我们进行多次实验,便会发现随着F得逐步增大,便不再服从胡克定律.为此我们应当运用插值与拟合得内容,探索更加准确得公式。 一、建模问题 1、问题提出 1、1问题背景 弹簧在压力F 得作用下伸长x,一定范围内服从胡克定理:F与x成正比,即F=kx。现在得到下面一组F,x数据,并在(x,F)坐标下作图,可以瞧到当F大到一定数据值后,就不服从这个定律了。 表1—1 试根据上述所给出得数据及已知得胡克公式,解决一下问题: (1)试由数据确定k (2)给出不服从胡克定理时得近似公式 1、3 问题分析 这就是一道关于弹簧劲度系数得问题,对于此类建模有实际得价值,而且也可以让我们拓宽物理学习得视野,很有价值。 二、模型假设 通过阅读题目与查阅资料,我们可以发现,F得值就是随着X得改变而改变得,当X小于某一值时,F遵循胡克定律,而当X大于某一值时,F便不再遵循胡克定律,故我们可以提出以下假设。 假设1:当X<9时,F遵循胡克定律。 假设2:当X>9时,F不遵循胡克定律。

数学建模案例分析-- 插值与拟合方法建模2数据拟合方法及应用

§2数据拟合方法及应用 在生产实践和科学研究中,常常有这样的问题:由实验或测量得到变量间的一批离散样点,要求由此建立变量之间的函数关系或得到样点之外的数据。与此有关的另一类问题是拟合问题。当原始数据),(,),,(),,(1100n n y x y x y x 有误差时,我们确定的初等函数)(x P y =并不要求经过数据点,而是要求在某种距离意义下的误差达到最小(通常考虑使各数据点误差平方和最小)。 假设已知函数),(x c f y =(这里c 可以是多个未知参数)的一批有误差的数据 ) ,(,),,(),,(2211n n y x y x y x 要求据此确定参数c ,这样的问题称为数据拟合。最小二乘法就是求c 使得残差平方和 2 1 )),(()(i n i i x c f y c Q -=∑=达到最小。这里的建模原理实质上就是数理统计中的回归分析。 1、线性函数(1)建立回归方程 若离散样点),(,),,(),,(2211n n y x y x y x 集中在一条直线的附近,这时可建立线性回归方程 x b a y ???+=按最小二乘法得到的具体算法是 记 ∑∑∑∑∑=====-=-=-===n i i i xy n i i yy n i i xx n i i n i i y x n y x S y n y S x n x S y y x x 1 1 2 21 2 21 1 11则有 xx xy S S b =?x b y a ??-=(2)线性回归的显著性检验 采用如下检验统计量: xx S b T σ ??= ,其中的)?(2 1?2xx yy S b S n --=σ 若)2(2 ->n t T α,则认为所建立的线性回归方程正确。(3)利用回归方程作区间预测 当0x x =时,y 的置信度为α-1的预测区间是:

数学建模课件--最小二乘法拟合.(优选)

26 / 11word. 4.最小二乘法线性拟合 我们知道,用作图法求出直线的斜率a 和截据b ,可以确定这条直线所对应的经验公式,但用作图法拟合直线时,由于作图连线有较大的随意性,尤其在测量数据比较分散时,对同一组测量数据,不同的人去处理,所得结果有差异,因此是一种粗略的数据处理方法,求出的a 和b 误差较大。用最小二乘法拟合直线处理数据时,任何人去处理同一组数据,只要处理过程没有错误,得到的斜率a 和截据b 是唯一的。 最小二乘法就是将一组符合Y=a+bX 关系的测量数据,用计算的方法求出最佳的a 和b 。显然,关键是如何求出最佳的a 和b 。 (1) 求回归直线 设直线方程的表达式为: bx a y += (2-6-1) 要根据测量数据求出最佳的a 和b 。对满足线性关系的一组等精度测量数据(x i ,y i ),假定自变量x i 的误差可以忽略,则在同一x i 下,测量点y i 和直线上的点a+bx i 的偏差d i 如下: 111bx a y d --= 222bx a y d --= n n n bx a y d --= 显然最好测量点都在直线上(即d 1=d 2=……=d n =0),求出的a 和b 是最理想的,但测量点不可能都在直线上,这样只有考虑d 1、d 2、……、d n 为最小,也就是考虑d 1+d 2+……+d n 为最小,但因d 1、d 2、……、d n 有正有负,加起来可能相互抵消,因此不可取;而|d 1|+ |d 2|+……+ |d n |又不好解方程,因而不可行。现在采取一种等效方法:当d 12+d 22+……+d n 2 对a 和b 为最小时,d 1、d 2、……、d n 也为最小。取(d 12+d 22+……+d n 2 )为最小值,求a 和b 的方法叫最小二乘法。 令 ∑== n i i d D 1 2=21 1 2][i i n i n i i b a y d D --== ∑∑== (2-6-2) D 对a 和b 分别求一阶偏导数为: ][21 1∑∑==---=??n i i n i i x b na y a D

计算方法在数学建模中的应用

计算方法在数学建模中的应用 王连堂 西北大学数学系 E-mail:wlt800@https://www.wendangku.net/doc/5a2624026.html,。

计算方法又称“数值分析”,是为各种数学问题的数值解答研究提供最有效的算法。计算方法在数学建模中有很广泛的应用,特别是处理具有大规模数据的数学建模问题。其中应用最多的是误差分析,数值逼近以及数值积分等。在历年的全国大学生数学建模竞赛(CUMCM)赛题之中,有很多都用到了计算方法,其中以数据拟合方法用得最多,其次就是数值积分方法。下面分别对这些方法进行介绍,并通过几个赛题来熟悉这些方法的具体应用。 计算方法在数学建模中的应用

数据拟合1、数据拟合 在科学试验的统计研究中,往往要从一组测定数据(x i , y i )(i =1,2,…,n )中求出自变量x 与因变量y 之间的近似函数关系式,而这些数据本身具有一定误差而且其数量可能很大,因此不能要求函数关系是满足所有的点,而只是要求其能反映这些实验数据的大体规律或趋势。 对于给定的一组数据(x i , y i ),求一个k 次多项式: , 2210k k x a x a x a a y ++++=L

数据拟合 应用最小二乘法,使 取最小。对上式各参变量求偏导数后,令其偏导数为0,就得到了以下线性方程组 从该线性方程组中求解出系数a j (j =1,2,…,k )之后,就可以写出拟合的多项式。 ,)]([),,,(12 2 21010∑=++++?=n i k i k i i i k x a x a x a a y a a a Q L L .,,2,1 ,)(1110k j x y x x a x a a j i n i i n i j i k i k i L L ==+++∑∑==

数学建模的方法和步骤

数学建模与创业计划实践部 学习目标 1.能表述建立数学模型的方法、步骤; 2.能表述建立数学模型的逼真性、可行性、渐进性、强健性、可转移性、非预制性、条理性、技艺性和局限性等特点;; 3.能表述数学建模的分类; 4.会采用灵活的表述方法建立数学模型; 5.培养建模的想象力和洞察力。 一、建立数学模型的方法和步骤 —般说来建立数学模型的方法大体上可分为两大类、一类是机理分析方法,一类是测试分析方法.机理分析是根据对现实对象特性的认识、分析其因果关系,找出反映内部机理的规律,建立的模型常有明确的物理或现实意义.测试分折将研究对象视为一个“黑箱”系统,内部机理无法直接寻求,可以测量系统的输人输出数据、并以此为基础运用统计分析方法,按照事先确定的准则在某一类模型中选出一个与数据拟合得最好的模型。这种方法称为系统辨识(System Identification).将这两种方法结合起来也是常用的建模方法。即用机理分析建立模型的结构,用系统辨识确定模型的参数. 可以看出,用上面的哪一类方法建模主要是根据我们对研究对象的了解程度和建模目的决定的.如果掌握了机理方面的一定知识,模型也要求具有反映内部特性的物理意义。那么应该以机理分析方法为主.当然,若需要模型参数的具体数值,还可以用系统辨识或其他统计方法得到.如果对象的内部机理基本上没掌握,模型也不用于分析内部特性,譬如仅用来做输出预报,则可以系统辩识方法为主.系统辨识是一门专门学科,需要一定的控制理论和随机过程方面的知识.以下所谓建模方法只指机理分析。 建模要经过哪些步骤并没有一定的模式,通常与实际问题的性质、建模的目的等有关 模型准备首先要了解问题的实际背景,明确建模的目的搜集建模必需的各种信息如现象、数据等,尽量弄清对象的特征,由此初步确定用哪一类模型,总之是做好建模的准备工作.情况明才能方法对,这一步一定不能忽视,碰到问题要虚心向从事实际工作的同学请教,尽量掌握第一手资料. 模型假设根据对象的特征和建模的目的,对问题进行必要的、合理的简化,用精确的语言做出假设,可以说是建模的关键一步.一般地说,一个实际问题不经过简化假设就很难翻译成数学问题,即使可能,也很难求解.不同的简化假设会得到不同的模型.假设作得不合理或过份简单,会导致模型失败或部分失败,于是应该修改和补充假设;假设作得过分详细,试图把复杂对象的各方面因素都考虑进去,可能使你很难甚至无法继续下一步的工作.通常,作假设的依据,一是出于对问题内在规律的认识,二是来自对数据或现象的分析,也可以是二者的综合.作假设时既要运用与问题相关的物理、化学、生物、经济等方面的知识,又要充分发挥想象力、洞察力和判断力,善于辨别问题的主次,果断地抓住主要因素,舍弃次要因素,尽量将问题线性化、均匀化.经验在这里也常起重要作用.写出假设时,语言要精确,就象做习题时写出已知条件那样. 模型构成根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量(常量和变量)之间的等式(或不等式)关系或其他数学结构.这里除需要一些相关学科的专门知识外,还常常需要较广阔的应用数学方面的知识,以开拓思路.当然不能要求对数学学科门门精通,而是要知道这些学科能解决哪一类问题以及大体上怎样解决.相似类比法,即根据不同对象的某些相似性,借用已知领域的数学模型,也是构造模型的一种方法.建模时还应遵循的一个原则是,尽量采用简单的数学工具,因为你建立的模型总是希望能有更多的人了解和使用,而不是只供少数人欣赏.

数学建模~插值与拟合

插值与拟合 —、概述 我们经常会遇到大量的数据需要处理, 而处理数据的关键就在于这些算法,例如 数据拟合、参数估计、插值等数据处理算 法。此类问题在 MATLAB 中有很多现成的 函数可以调用,熟悉MATLAB,这些方法 都能游刃有余的用好。 倒血观

110 预测点和实测点的图形 插值后的图形 ■?】? Q "a* ^>4?八 )?2? 十 J*l ? D ?SI 丢R 咳娥□ Q 0 ? 1 ? L? i . 1 ?? ? ro>?? 昨 ■ :eERC?》□ k - B O uts nltt — l!fe wi ? i :;—4.直 ----- ? : w ? n .??< pr 瓷量 h ii I i ? —UE!. 2 冷爲 ,p bbb. it- —— ?t: ?..」 ! bRB :: 黑就55r"A 数据拟合在很多赛题中有应用,与图形 处理有关的问题很多与插值和拟合有关系, 例如 98年美国赛A 题,生物组织切片的三维插 值处 理,94年A 题逢山开路,山体海拔高度的 插值计算,2003年吵的沸沸扬扬的“非典” 问题也要用到数据拟合算法,观察数据的走 向进行处理, 2005年的雨量预报的评价的插 值计算。2001年的 公交车调度拟合问题, 2003年的饮酒驾车拟合问题。 * 22 12

喝两瓶酒的拟合曲线喝1?5瓶酒的拟合曲线 Az ? 2 4> LAs 在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函 数与已知数据有较高的拟合精度。 如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为 插值问题。(不需要函数表达式)

数学建模拟合与差分习题答案

第一题 解:由题意可设 2 123()s t a t a t a =++ 中的A=(1a ,2a ,3a )使得: 2 6 1 [()]i i i s t s =-∑最小 用多项式拟合的命令 输入以下命令: 输出结果:A = 2() 2.2488t 11.0814t 0.5834f x =+- 第二题 输入以下命令: >> x=[19 25 31 38 44]; >> y=[ ]; >> A=polyfit(x,y,2)

>> z=polyval(A,x); >> plot(x,y,'k+',x,z,'r') 输出结果:A = 6882.00193.00497.0)(2++=x x x f 因为2 b )(x a x f +=,所以2 0497.06882.0)(x x f += 草图 >> x=1200:400:4000; >> y=1200:400:3600; >> height=[1130 1250 1280 1230 1040 900 500 700; 1320 1450 1420 1400 1300 700 900 850; 1390 1500 1500 1400 900 1100 1060 950; 1500 1200 1100 1350 1450 1200 1150 1010; 1500 1200 1100 1550 1600 1550 1380 1070; 1500 1550 1600 1550 1600 1600 1600 1550; 1480 1500 1550 1510 1430 1300 1200 980]; >> mesh(x,y,height) >>

2021年数学建模插值及拟合详解

插值和拟合 欧阳光明(2021.03.07) 实验目的:了解数值分析建模的方法,掌握用Matlab进行曲线拟合的方法,理解用插值法建模的思想,运用Matlab一些命令及编程实现插值建模。 实验要求:理解曲线拟合和插值方法的思想,熟悉Matlab相关的命令,完成相应的练习,并将操作过程、程序及结果记录下来。 实验内容: 一、插值 1.插值的基本思想 ·已知有n +1个节点(xj,yj),j = 0,1,…, n,其中xj互不相同,节点(xj, yj)可看成由某个函数 y= f(x)产生; ·构造一个相对简单的函数y=P(x); ·使P通过全部节点,即 P (xk) = yk,k=0,1,…, n ; ·用P (x)作为函数f ( x )的近似。 2.用MATLAB作一维插值计算 yi=interp1(x,y,xi,'method') 注:yi—xi处的插值结果;x,y—插值节点;xi—被插值点;method—插值方法(‘nearest’:最邻近插值;‘linear’:线性插值;‘spline’:三次样条插值;‘cubic’:立方插值;缺省时:线性插值)。 注意:所有的插值方法都要求x是单调的,并且xi不能够超过x的

范围。 练习1:机床加工问题 机翼断面下的轮廓线上的数据如下表: x 0 3 5 7 9 11 12 13 14 15 y 0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 用程控铣床加工机翼断面的下轮廓线时 每一刀只能沿x方向和y方向走非常小的一步。 表3-1给出了下轮廓线上的部分数据 但工艺要求铣床沿x方向每次只能移动0.1单位. 这时需求出当x坐标每改变0.1单位时的y坐标。 试完成加工所需的数据,画出曲线. 步骤1:用x0,y0两向量表示插值节点; 步骤2:被插值点x=0:0.1:15; y=y=interp1(x0,y0,x,'spline'); 步骤3:plot(x0,y0,'k+',x,y,'r') grid on 答:x0=[0 3 5 7 9 11 12 13 14 15 ]; y0=[0 1.2 1.7 2.0 2.1 2.0 1.8 1.2 1.0 1.6 ]; x=0:0.1:15; y=interp1(x0,y0,x,'spline'); plot(x0,y0,'k+',x,y,'r') grid on 3.用MATLAB作网格节点数据的插值(二维) z=interp2(x0,y0,z0,x,y,’method’) 注:z—被插点值的函数值;x0,y0,z0—插值节点;x,y—被插

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