1.2k likes | 1.38k Views
钮海. 考试提要. 上机. 组队. 编队配组: 建模,计算,写作 自己组队: 3 人 / 队 自愿参加: 300 元 / 队 报名费 请发 email : hywen@x.cn 写明:团队每个成员的 姓名,学院,性别,手机. 时间: 7 月 16 号 之前. Excel 与 Matlab 数据传递. 位于 … matlabtoolboxexlink 目录下. 插值 拟合. 插值 回归. 前言. 内容: 一维问题 高维问题. 前言. 层次: 插值与拟合 理论 Matlab 实现 应用 实例. 前言. 离散函数. 连续函数.
E N D
组队 • 编队配组:建模,计算,写作 • 自己组队:3人/队 • 自愿参加:300元/队 报名费 请发email:hywen@x.cn 写明:团队每个成员的 姓名,学院,性别,手机 时间:7月16号之前
插值 • 拟合 • 插值 • 回归 前言 • 内容: • 一维问题 • 高维问题
前言 • 层次: • 插值与拟合理论 • Matlab实现 • 应用实例
离散函数 连续函数 因变量=f(自变量) 问题 • 测试数据 • 理论研究
分类 • 一个自变量-一维问题 • 多个自变量-多维问题
方法 • 1.测试数据为精确数据或者误差可以忽略 • 方法:插值法 • 2.测试数据含误差,必须考虑误差 • 方法:拟合法或回归
一维问题 插值
一维问题-插值 y y3 y4 y? y1 x y2 x x2 x1 x3 x4
转换 插值点 插值 • 重点:找函数关系f,使得 问题 y=f(x) 一维问题-插值 • 插值: • 要求:对任意自变量x1<x<xn,求x对应的y值
多项式函数 满足: yi=f(xi),i=1…n 小要求: 数学模型 多项式函数唯一! 一维问题-插值 • 首要问题: • f的选取?
唯一 未知变量个数:m+1 m+1=n 线性方程组 m=n-1 方程个数:n 一维问题-插值 • 求解: yi=f(xi),i=1…n
一维问题-插值 • 解:
一维问题-插值 • 模型分析:Runge现象 • 测试点越多,多项式次数越高 失真
分段三次插值-cubic 分段线性插值-linear 一维问题-插值 • 失真解决办法:每次采取数据点比较少 如2个;4个 • 问题:原先大量数据? • 方法:分组(每组2个;4个-递进进行)
一维问题-插值 • 再处理!(光滑) • 新问题-不够完美,光滑? • 可导 • 要求:(见后注) 1.插值函数f(分段函数)在整个[x1,xn]具有二阶连续导数; 2.在每个小区间[xi-1,xi]是三次多项式
一维问题-插值 • 数学模型: yi=f(xi),i=1…n f(x),f ‘(x),f ‘‘(x)在xi连续,i=2…n-1 进一步表示(省略) • 求解:省略
一维问题-插值 • 后注:取自工程中利用弹性竹条(样条)进行插值的方法 • 因此该插值称为样条-spline插值方法
实现 • 编程? • Matlab实现:插值函数(程序) 插值=interp1(自变量数据,因变量试数据,插值点,方法) 方法:1.省却‘linear‘-分段线性 2.‘cubic’-分段三次 3.‘spline’-样条
实验-问题 分别用分段线性、分段三次、样条插值与原函数比较
实验-脚本文件 • %各类一维分段插值比较--脚本文件(文件名cz.m) • x=linspace(-5,5,9);%原始自变量 • y=1./(1+x.^2);%原始因变量 • x_o=linspace(-5,5,50); • y_o=1./(1+x_o.^2);%原始函数 • x_in_l=linspace(-5,5,50); • y_in_l=interp1(x,y,x_in_l);%线性插值函数 • subplot(3,1,1)%子图 • plot(x_o,y_o,x_in_l,y_in_l) • title(‘linear') • x_in_c=x_in_l; • y_in_c=interp1(x,y,x_in_c,'cubic');%三次插值函数 • subplot(3,1,2) • plot(x_o,y_o,x_in_c,y_in_c) • title(‘cubic') • x_in_s=x_in_l; • y_in_s=interp1(x,y,x_in_s,'spline');%样条插值函数 • subplot(3,1,3) • plot(x_o,y_o,x_in_s,y_in_s) • title(‘spline')
保形 不光滑 光滑 不保形 实验-运行 • 在matlab工作区输入cz
快速粗估 要求保形 要求光滑 插值方法选择 • 插值函数 插值=interp1(自变量数据,因变量试数据,插值点,方法) 方法:1.省却‘linear‘-分段线性 2.‘cubic’-分段三次 3.‘spline’-样条
建模实例 • 估计水塔的水流量(AMCM92A) • 美国某州的各用水管理机构要求各社区提供以每小时多少加仑计的用水率以及每天所用的总水量。但许多社区并没有测量流入或流出当地水塔的水量的设备,他们只能代之以每小时测量水塔中的水位,其精度在5%以内。更为重要的是,无论什么时候,只要水塔中的水位下降到某一最低水位L时,水泵就启动向水塔重新充水直至某一最高水位H,但也无法得到水泵的供水量的测量数据。因此,在水泵正在工作时,人们不容易建立水塔中的水位与水泵工作时的用水量之间的关系。水泵每天向水塔充水两次,每次约二小时。 • 试估计在任何时刻,甚至包括水泵正在工作的时间内,水从水塔流出的流量f (t),并估计一天的总用水量和水泵的工作功率。表1给出了某个真实小镇某一天的真实数据。
建模实例 表1 某小镇某天的水塔水位
建模实例 • 表1给出了从第一次测量开始的以秒为单位的时刻,以及该时刻的高度单位为百分之一英尺的水塔中水位的测量值,例如,3316秒后,水塔中的水位达到31.10英尺。水塔是一个垂直圆形柱体,高为40英尺,直径为57英尺。通常当水塔的水位降至约27.00英尺时水泵开始向水塔充水,而当水塔的水位生至约35.50英尺时水泵停止工作。
建模实例 • t0=[0,3316,6635,10619,13937,17921,21240,25223,28543,32284,39435,43318,46636,49953,... 53936,57254,60574,64554,68535,71854,75021,85968,89953,93270]; • L0=[3175,3110,3054,2994,2947,2892,2850,2797,2752,2697,3550,3445,3350,3260,3167,3087,... 3012,2927,2842,2767,2697,3475,3397,3340]; • t=linspace(0,86400,200); • L=interp1(t0,L0,t,'clubic'); • plot(t0,L0,'*',t,L)
一维问题 拟合
一维问题-拟合 y y3 y4 ? y1 y2 x x2 x1 x3 x4
实际 y=f(x,t) • 要求:理论推导或经验估计函数关系为 理论 参数 问题 • 重点:找最合适的t,使理论和实际值 之间的总体误差最小 一维问题-拟合 • 拟合: =多项式系数
一维问题-拟合 y y3 y4 y1 y2 x x2 x1 x3 x4
根据问题性质 要求: 总体误差最小! 数学模型 一维问题-拟合 • 首要问题: • f的选取? 误差: 1.单点误差:Ci=yi-f(xi,t),i=1…n 2.总体误差: 或 等 最小二乘法
数学模型 一维问题-拟合 • 求解: • 二次无约束规划问题(多元函数极值) 理论上:找驻点
实现-多项式拟合 • 编程? • Matlab实现:1.多项式拟合(程序) 拟合多项式系数向量(高→低)= polyfit(自变量数据,因变量试数据,拟合多项式次数) 拟合多项式次数=1,线性拟合(回归)
实验-问题 用多项式拟合