Mathematics中数据处理插值拟合和编程基础

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据拟合的一般过程: 首先考察数据来源,确定有无经验公式,有则可直接根据经验公 式进行拟合; 若无经验公式,观察其散点图,分析与其形状大致相似的函数图 形(必要时可将函数分段).选择拟合函数的类型,特别是确定逼 近基函数; 确定拟合函数,画出拟合函数的图形; 将拟合函数的图形与数据点的图形比较,调整拟合函数. 插值与拟合 插值要求函数在每一个观测点处一定要满足yi=f(xi). 拟合主要考虑到观测数据受随机误差的影响,寻求整体误 差最小、较好反映观测数据的近似函数. 当最小二乘拟合中逼近基函数的个数等于所给的数据点的个数 时,所做的拟合即为插值。
三、循环控制结构
Do循环 格式: Do[循环体,{循环范围}] 格式1: Do[expr, {i,i0,i1,s}] 作用: 循环变量i从i0到i1,每次增加s,计算表达式 expr. 格式2: Do[expr, {i,i1}] 作用: 同上. 此时, i0=1, s=1. 格式3: Do[expr, {n}] 作用: 计算表达式expr n次.
程序设计
一、过程的基本构成
过程是用分号隔开的表达式序列,也称为复合表达式. 复合表达式的值是该表达式序列最后一个表达式的值. 全局变量与局部变量 局部变量的说明: Module[{局部变量表},表达式] Block[{局部变量表},表达式] 注: 变量表中只列变量名,可赋初值,变量间用逗号隔开. Module与Block函数中的表达式常常是复合表达式. Module与Block函数的函数值即为表达式的值. 例: wc[n_]:= Module[{i, f}, b = Table[x^i, {i, 1, n}]; f[x_] = Fit[data, b, x]; Sum[(data[[i, 2]] - f[data[[i, 1]]])^2, {i, 1, Length[data]}]]
解:构造数据表: data={{1,4},{2,6.4},{3,8.0},{4,8.4},{5,9.28},{6,9.5}, {7,9.7},{8,9.86},{9,10},{10,10.2},{11,10.32},{12,10. 42},{13,10.5},{14,10.55},{15,10.58},{16,10.6}} 画出散点图,并分别作3次、4次、5次、6次多项式拟合,求出其 误差,比较、判断几次拟合较为合适。 选取其它基: , x , 3 x , 4 x 作拟合,并作比较。 1
数据处理与程序设计
主要内容: 1. 第6章 数据的数值处理 插值、拟合 2. 第7章 Mathematica的编程基础
问题的引入
引例1:在一天24小时内,从零点开始每间隔2小时测得的环境温度数据分 别为(度) 12,9,9,10,18,24,28,27,25,20,18,15,13.请推测中午1点 (即13点)时的温度。
格式:If[逻辑表达式,表达式1,表达式2,表达式3] 意义:逻辑表达式的值为真,计算表达式1 为假,计算表达式2 非真非假,计算表达式3 格式:If[逻辑表达式,表达式1,表达式2] 意义:逻辑表达式的值为真,计算表达式1 为假,计算表达式2 格式:If[逻辑表达式,表达式1] 意义:逻辑表达式的值为真,计算表达式1
m=i^3 ;Module[{i=b},i+m] m=i^3 ;Block[{i=b},i+m]
二、条件控制结构
逻辑表达式和逻辑运算符
关系运算符:= = != > >= 逻辑运算符: ! && || 意义: 非 与 或 < <=
逻辑表达式的值
真、假、非真非假
If语句的结构
设有一组实验观测数据(xi,yi),i=0,1,…n, 如何揭示自变量x与因变量y 之间的关系? 寻找近似的函数关系表达式y=f(x) 常用的方法:插值与拟合
一、插值
给定n+1个插值点(xi,yi), i=0,1,2,…,n, 构造次数不超过n的多 项式p(x), 使p(xi)=yi, 则称p(x)为插值多项式。 构造插值对象的函数: Interpolation[data,InterpolationOrder—>n] 功能: 对数据data进行插值运算,并可设置插值多项式的次数n, 默认 值为3。 注: 生成一个InterpolatingFunction[插值范围,<>]目标,不显 示所构造的函数。 所得目标为近似函数 数据data的表示形式
Leabharlann Baidu
引例1:在一天24小时内,从零点开始每间隔2小时测得的 环境温度数据分别为(度) 12,9,9,10,18,24,28,27,25,20,18,15,13. 推测中午 1点(即13点)时的温度。 解:
data={{0,12},{2,9},{4,9},{6,10},{8,18},{10,24},{1 2,28},{14,27},{16,25},{18,20},{20,18},{22,15},{24 ,13}} ListPlot[data] 选取不同的阶数n,构造插值多项式 Interpolation[data,InterpolationOrder—>n] 绘出一天24小时的温度曲线 依据散点图,推测插值多项式的阶数 分段插值 三次插值多项式较为通用
Which与Switch语句
Which语句的结构
格式: Which[条件1,表达式1,…,条件n,表达式n] Which[条件1,表达式1,…条件n,表达式n, True,表达式]
Switch语句的一般形式

格式: Switch[expr,模式1,表达式1,模式2,表达式2,…] 作用: 将表达式expr的值与模式1,模式2,…依次比较,给出第一个与expr 匹配的模式i对应的表达式的值, 若无匹配的, 整个结构的值为Null.
引例2:对某一地区或国家,如何根据测绘部门测量的数据绘制一张该地区 的地图?
利用已给出的值,计算相关的值
根据一系列的点,绘制一条封闭的曲线 例3:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得一 组数据如下,请给出变化规律,以此推测20,40分钟时的值.
t(分) y t(分) y 1 4 9 10 2 6.4 10 10.2 3 8 11 10.32 4 8.4 12 10.42 5 9.28 13 10.5 6 9.5 14 10.55 7 9.7 15 10.58 8 9.86 16 10.6
与循环有关的语句
Return[expr]
退出函数中的所有过程和循环, 返回值expr.
Break[]
结束本层循环.
Continue[]
转向下一次循环
注:
二、拟合
根据一组二维数据,要求确定一个一元函数y=f(x),使这些点与曲线 y=f(x)总体来说尽量接近,这就是数据拟合成曲线的思想,简称为曲 线拟合。 曲线拟合的目的是根据实验获得的数据去建立因变量与自变量之间有 效的经验函数关系,为进一步的深入研究提供线索。 拟合的原理:最小二乘法
While 循环 格式: While[条件,循环体] For循环 For[初始值,条件,修正循环变量,循环体] 若循环体有多个表达式组成,中间用;号隔开. 重复应用函数的方法 Nest[f,expr,n] 对表达式expr作用f函数n次. NestList[f,expr,n] 从表达式expr开始,运用f函数0到n次, 并给出列表结果. FixedPoint[f,expr] 从表达式expr开始,运用f函数, 直到结果不变.
{{x0,f0},{x1,f1},…,{xn,fn}} (平面点的坐标) {f1,…,fn} (点的纵坐标,第i个点的横坐标为i) {{x0,{f0,df0}},{x1,{f1,df1}},…,{xn,{fn,dfn}}} (点的函数 值及一阶导数值) {{x0,y0,z0},{x1,y1,z1},…,{xn,yn,zn}} (三维空间点列)

格式:Fit[数据,拟合函数的基,变量] 功能:用数据data,按给定的变量和拟合函数的基构造拟合函数。 常用的几种格式: Fit[data,{1,x},x]
用数据data作线性拟合函数a+bx 做n次多项式拟合 拟合曲线为ea+bx
Fit[data,Table[x^i,{i,0,n}],x] Exp[Fit[Log[data],{1,x},x]]
例3:在化学反应中,为研究某化合物的浓度随时间的变化规律,测得 一组数据如下,请给出变化规律,以此推测20,40分钟时的值.
t(分) y t(分) y 1 4 9 10 2 6.4 10 10.2 3 8 11 10.32 4 8.4 12 10.42 5 9.28 13 10.5 6 9.5 14 10.55 7 9.7 15 10.58 8 9.86 16 10.6
相关文档
最新文档