【数模】线性拟合

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

数学建模常用的十种解题方法 摘要 当需要从定量的角度分析和研究一个实际问题时,人们就要在深入调查研究、了解对象信息、作出简化假设、分析内在规律等工作的基础上,用数学的符号和语言,把它表述为数学式子,也就是数学模型,然后用通过计算得到的模型结果来解释实际问题,并接受实际的检验。这个建立数学模型的全过程就称为数学建模。数学建模的十种常用方法有蒙特卡罗算法;数据拟合、参数估计、插值等数据处理算法;解决线性规划、整数规划、多元规划、二次规划等规划类问题的数学规划算法;图论算法;动态规划、回溯搜索、分治算法、分支定界等计算机算法;最优化理论的三大非经典算法:模拟退火法、神经网络、遗传算法;网格算法和穷举法;一些连续离散化方法;数值分析算法;图象处理算法。 关键词:数学建模;蒙特卡罗算法;数据处理算法;数学规划算法;图论算法 一、蒙特卡罗算法 蒙特卡罗算法又称随机性模拟算法,是通过计算机仿真来解决问题的算法,同时可以通过模拟可以来检验自己模型的正确性,是比赛时必用的方法。在工程、通讯、金融等技术问题中, 实验数据很难获取, 或实验数据的获取需耗费很多的人力、物力, 对此, 用计算机随机模拟就是最简单、经济、实用的方法; 此外, 对一些复杂的计算问题, 如非线性议程组求解、最优化、积分微分方程及一些偏微分方程的解⑿, 蒙特卡罗方法也是非常有效的。 一般情况下, 蒙特卜罗算法在二重积分中用均匀随机数计算积分比较简单, 但精度不太理想。通过方差分析, 论证了利用有利随机数, 可以使积分计算的精度达到最优。本文给出算例, 并用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 充分大时, 有

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

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

>> z=polyval(A,x); >> plot(x,y,'k+',x,z,'r') 输出结果:A = 0.0497 0.0193 0.6882 =x x (2+ f ) x + .0 6882 .0 0193 .0 0497 因为2 6882 .0 ) = .0 f+ x (x f+ ) b 0497 (x a =,所以2 x 草图 >> 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) >>

数学建模常用方法

数学建模常用方法 建模常用算法,仅供参考: 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、有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进行数据拟合

1.线性最小二乘法 x=[19 25 31 38 44]'; y=[19.0 32.3 49.0 73.3 97.8]'; r=[ones(5,1),x.^2]; ab=r\y % if AB=C then B=A\C x0=19:0.1:44; y0=ab(1)+ab(2)*x0.^2; plot(x,y,'o',x0,y0,'r') 运行结果: 2.多项式拟合方法 x0=[1990 1991 1992 1993 1994 1995 1996]; y0=[70 122 144 152 174 196 202]; a=polyfit(x0,y0,1) y97=polyval(a,1997) x1=1990:0.1:1997; y1=a(1)*x1+a(2);

plot(x1,y1) hold on plot(x0,y0,'*') plot(1997,y97,'o') 3.最小二乘优化 3.1 lsqlin 函数 例四: x=[19 25 31 38 44]'; y=[19.0 32.3 49.0 73.3 97.8]'; r=[ones(5,1),x.^2]; ab=lsqlin(r,y) x0=19:0.1:44; y0=ab(1)+ab(2)*x0.^2; plot(x,y,'o',x0,y0,'r') 3.2lsqcurvefit 函数

(1)定义函数 function f=fun1(x,tdata); f=x(1)+x(2)*exp(-0.02*x(3)*tdata); %其中x(1)=a,x(2)=b,x(3)=k (2) td=100:100:1000; cd=[4.54 4.99 5.35 5.65 5.90 6.10 6.26 6.39 6.50 6.59]; x0=[0.2 0.05 0.05]; x=lsqcurvefit(@fun1,x0,td,cd) % x(1)=a,x(2)=b,x(3)=k t=100:10:1000; c=x(1)+x(2)*exp(-0.02*x(3)*t); plot(t,c) hold on plot(td,cd,'*')

数学建模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│θ

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

数学建模案例分析-- 插值与拟合方法建模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 )。 根据地图的比例,18 mm 相当于40 km 。

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

曲线拟合与回归分析 1、有 10个同类企业的生产性固定资产年平均价值和工业总产值资料如下: (1说明两变量之间的相关方向; (2建立直线回归方程; (3计算估计标准误差; (4估计生产性固定资产(自变量为 1100万元时的总资产 (因变量的可能值。 解: (1工业总产值是随着生产性固定资产价值的增长而增长的,存 在正向相关性。 用 spss 回归 (2 spss 回归可知:若用 y 表示工业总产值(万元,用 x 表示生产性固定资产,二者可用如下的表达式近似表示: 567 . 395 896 . 0+ =x

y (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-'; 生产性固定资产价值 (万元 工业总价值 (万元 industry = ones(6,1; construction = ones(6,1; industry(1 =1022; construction(1 = 1219; for i = 1:5

数学建模插值及拟合详解

插值和拟合 实验目的:了解数值分析建模的方法,掌握用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

数学建模曲线拟合

曲线拟合 摘要 根究已有数据研究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 函数,在题目要求的约束条件下找到最佳答案。 对于问题五,改变多项式最高次次数,拟合后计算残差,和二次多项式比较,再增加次数后拟合,和原多项式比较残差,进而找到最好的曲线。 ~

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

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

数学建模数据之简单处理技巧(Mathematica)总结

数学建模数据之简单处理技巧 人们在生产实践与科学研究中经常会得到一系列的数据,然后通过这些数据得到某种内在规律,这就叫数据处理(Adjustment of Data )。科学家开发了许多方法来处理这个问题,最初由Gauss 发展起来,用于彗星轨道(Orbits of Comets )的计算以及三角测量术中。主要方法有:最小二乘平方法、平均误差及误差延伸法则、直接测量的处理、以及一个函数用较简单函数表示的问题。数据拟合(Fit )就是其中的一种。 假设已经得到数据列data1 = { y1, y2, y3,…,yn}, 现在需要寻找此数据列所满足的规律。Mathematica 系统提供了拟合命令Fit ,使用的格式如下,例如: f[x] = Fit[ data1, { 1, x, x 2, x 3 }, x ] 表示用最小误差平方法去拟合数据data1,而且指明用32,,,1x x x 构成的函数基,线性表出拟合函数f[x]。此处,得到的拟合函数f[x] 按x = j, f[ j ] = yj (data1中第j 个数据)处理数据; 一般地,假设有2维数据 data2 = { { x 1, y 1 }, { x 2, y 2 }, … }, 则命令 Fit[ data2, { 1, f 1[x], f 2[x], … }, x ] 表示用最小误差平方法去拟合数据data2,而且指明用一元函数列{ 1, f 1[x], f 2[x], …}去线性表出拟合函数F[x]。 假设有3维数据 data3 = { { x 1, y 1, z 1 }, { x 2, y 2, z 2 }, … } }, 则命令 f[x, y] = Fit[ data3, {1,f 1[x,y],f 2[x,y],…},{x,y} ] 表示用最小误差平方法去拟合数据data3,而且指明用2元函数列{ 1, f 1[x, y], f 2[x, y], …}去线性表出拟合函数f[x, y]。 数据拟合典型例子 d = { { 1, 1}, { 2, -2 }, { 3, 3 }, { 4, -4 }, { 5, 5 }, { 6, 6 }}; g1 = ListPlot[ d, PlotStyl e -> { Hue[ 0 ], PointSize[ .03 ] } ] f1 = Fit[ d, { 1, x, x^2, x^3, x^4 }, x ]; Print[“f1 = ”, f1] g2 = Plot[ f1, { x, 1, 10 }, PlotStyle -> Hue[ .6 ] ] f2 = Fit[ d, { 1, x, x^2, x^3, x^4, x^5}, x ]; Print[“f2 = ”, f2] g3 = Plot[ f2, { x, 1, 10 }, PlotStyle ->{ GrayLevel[ 0 ], Dashing[ { .03 } ] } ] Show[ g1, g2, g3 ] 得到结果: 图1-1-52 f1=-3.33333+8.12169x -5.30556x 2+1.2037x 3-0.0833333x 4

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

《数学建模期末实验作业》 院系:数学学院 专业:信息与计算科学 年级: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不遵循胡克定律。

数学建模中常用的思想和方法

数学建模中常用的思想和方法(1) knowledge 2010-08-19 00:42:51 阅读160 评论0字号:大中小 在数学建模中常用的方法:类比法、二分法、量纲分析法、差分法、变分法、图论法、层次分析法、数据拟合法、回归分析法、数学规划(线性规划,非线性规划,整数规划,动态规划,目标规划)、机理分析、排队方法、对策方法、决策方法、模糊评判方法、时间序列方法、灰色理论方法、现代优化算法(禁忌搜索算法,模拟退火算法,遗传算法,神经网络)。用这些方法可以解下列一些模型:优化模型、微分方程模型、统计模型、概率模型、图论模型、决策模型。 拟合与插值方法(给出一批数据点,确定满足特定要求的曲线或者曲面,从而反映对象整体的变化趋势):matlab可以实现一元函数,包括多项式和非线性函数的拟合以及多元函数的拟合,即回归分析,从而确定函数;同时也可以用matlab实现分段线性、多项式、样条以及多维插值。 在优化方法中,决策变量、目标函数(尽量简单、光滑)、约束条件、求解方法是四个关键因素。其中包括无约束规则(用fminserch、fminbnd实现)线性规则(用linprog实现)非线性规则、(用fmincon实现)多目标规划(有目标加权、效用函数)动态规划(倒向和正向)整数规划。 回归分析:对具有相关关系的现象,根据其关系形态,选择一个合适的数学模型,用来近似地表示变量间的平均变化关系的一种统计方法(一元线性回归、多元线性回归、非线性回归),回归分析在一组数据的基础上研究这样几个问题:建立因变量与自变量之间的回归模型(经验公式);对回归模型的可信度进行检验;判断每个自变量对因变量的影响是否显著;判断回归模型是否适合这组数据;利用回归模型对进行预报或控制。相对应的有线性回归、多元二项式回归、非线性回归。 逐步回归分析:从一个自变量开始,视自变量作用的显著程度,从大到地依次逐个引入回归方程:当引入的自变量由于后面变量的引入而变得不显著时,要将其剔除掉;引入一个自变量或从回归方程中剔除一个自变量,为逐步回归的一步;对于每一步都要进行值检验,以确保每次引入新的显著性变量前回归方程中只包含对作用显著的变量;这个过程反复进行,直

数学建模~插值与拟合

插值与拟合 —、概述 我们经常会遇到大量的数据需要处理, 而处理数据的关键就在于这些算法,例如 数据拟合、参数估计、插值等数据处理算 法。此类问题在 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 在实际中,常常要处理由实验或测量所得到的一些离散数据。插值与拟合方法就是要通过这些数据去确定某一类已知函数的参数或寻求某个近似函数,使所得到的近似函 数与已知数据有较高的拟合精度。 如果要求这个近似函数(曲线或曲面)经过所已知的所有数据点,则称此类问题为 插值问题。(不需要函数表达式)

数学建模算法分类及应用

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

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

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

数学建模常用的十种方法

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

相关文档
最新文档