数学建模—拟合问题

上传人:飞****9 文档编号:127864388 上传时间:2020-04-06 格式:PPT 页数:54 大小:702.50KB
返回 下载 相关 举报
数学建模—拟合问题_第1页
第1页 / 共54页
数学建模—拟合问题_第2页
第2页 / 共54页
数学建模—拟合问题_第3页
第3页 / 共54页
数学建模—拟合问题_第4页
第4页 / 共54页
数学建模—拟合问题_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《数学建模—拟合问题》由会员分享,可在线阅读,更多相关《数学建模—拟合问题(54页珍藏版)》请在金锄头文库上搜索。

1、1 数学建模与数学实验 数理部 拟合 2 实验目的 实验内容 2 掌握用数学软件求解拟合问题 1 直观了解拟合基本内容 1 拟合问题引例及基本理论 4 实验作业 2 用数学软件求解拟合问题 3 应用实例 3 拟合 2 拟合的基本原理 1 拟合问题引例 4 拟合问题引例1 求600C时的电阻R 设R at ba b为待定系数 5 拟合问题引例2 求血药浓度随时间的变化规律c t 作半对数坐标系 semilogy 下的图形 MATLAB aa1 6 曲线拟合问题的提法 已知一组 二维 数据 即平面上n个点 xi yi i 1 n 寻求一个函数 曲线 y f x 使f x 在某种准则下与所有数据点最

2、为接近 即曲线拟合得最好 y f x i为点 xi yi 与曲线y f x 的距离 7 拟合与插值的关系 函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似 由于近似的要求不同 二者的数学方法上是完全不同的 实例 下面数据是某次实验所得 希望得到X和f之间的关系 MATLAB cn 问题 给定一批数据点 需确定满足特定要求的曲线或曲面 解决方案 若不要求曲线 面 通过所有数据点 而是要求它反映对象整体的变化趋势 这就是数据拟合 又称曲线拟合或曲面拟合 若要求所求曲线 面 通过所给所有数据点 就是插值问题 8 最临近插值 线性插值 样条插值与曲线拟合结果 9 曲线拟合问题最常用的解法 线性

3、最小二乘法的基本思路 第一步 先选定一组函数r1 x r2 x rm x m n 令f x a1r1 x a2r2 x amrm x 1 其中a1 a2 am为待定系数 第二步 确定a1 a2 am的准则 最小二乘准则 使n个点 xi yi 与曲线y f x 的距离 i的平方和最小 记 问题归结为 求a1 a2 am使J a1 a2 am 最小 10 线性最小二乘法的求解 预备知识 超定方程组 方程个数大于未知量个数的方程组 超定方程一般是不存在解的矛盾方程组 如果有向量a使得达到最小 则称a为上述超定方程的最小二乘解 11 线性最小二乘法的求解 定理 当RTR可逆时 超定方程组 3 存在最小

4、二乘解 且即为方程组RTRa RTy的解 a RTR 1RTy 所以 曲线拟合的最小二乘法要解决的问题 实际上就是求以下超定方程组的最小二乘解的问题 12 线性最小二乘拟合f x a1r1 x amrm x 中函数 r1 x rm x 的选取 1 通过机理分析建立数学模型来确定f x 2 将数据 xi yi i 1 n作图 通过直观判断确定f x 13 用MATLAB解拟合问题 1 线性最小二乘拟合 2 非线性最小二乘拟合 14 用MATLAB作线性最小二乘拟合 1 作多项式f x a1xm amx am 1拟合 可利用已有程序 a polyfit x y m 2 对超定方程组 3 多项式在x

5、处的值y可用以下命令计算 y polyval a x 15 例对下面一组数据作二次多项式拟合 16 1 输入以下命令 x 0 0 1 1 y 0 4471 9783 286 167 087 347 669 569 489 3011 2 R x 2 x ones 11 1 A R y MATLAB zxec1 解法1 用解超定方程的方法 2 计算结果 9 810820 1293 0 0317 17 1 输入以下命令 x 0 0 1 1 y 0 4471 9783 286 167 087 347 669 569 489 3011 2 A polyfit x y 2 z polyval A x pl

6、ot x y k x z r 作出数据点和拟合曲线的图形 2 计算结果 9 810820 1293 0 0317 解法2 用多项式拟合的命令 MATLAB zxec2 18 1 lsqcurvefit已知数据点 xdata xdata1 xdata2 xdatan ydata ydata1 ydata2 ydatan 用MATLAB作非线性最小二乘拟合 Matlab的提供了两个求非线性最小二乘拟合的函数 lsqcurvefit和lsqnonlin 两个命令都要先建立M 文件fun m 在其中定义函数f x 但两者定义f x 的方式是不同的 可参考例题 lsqcurvefit用以求含参量x 向量

7、 的向量值函数F x xdata F x xdata1 F x xdatan T中的参变量x 向量 使得 19 输入格式为 1 x lsqcurvefit fun x0 xdata ydata 2 x lsqcurvefit fun x0 xdata ydata options 3 x lsqcurvefit fun x0 xdata ydata options grad 4 x options lsqcurvefit fun x0 xdata ydata 5 x options funval lsqcurvefit fun x0 xdata ydata 6 x options funval

8、Jacob lsqcurvefit fun x0 xdata ydata 说明 x lsqcurvefit fun x0 xdata ydata options 20 lsqnonlin用以求含参量x 向量 的向量值函数f x f1 x f2 x fn x T中的参量x 使得最小 其中fi x f x xdatai ydatai F x xdatai ydatai 2 lsqnonlin 已知数据点 xdata xdata1 xdata2 xdatan ydata ydata1 ydata2 ydatan 21 输入格式为 1 x lsqnonlin fun x0 2 x lsqnonlin

9、fun x0 options 3 x lsqnonlin fun x0 options grad 4 x options lsqnonlin fun x0 5 x options funval lsqnonlin fun x0 说明 x lsqnonlin fun x0 options 22 例2用下面一组数据拟合中的参数a b k 该问题即解最优化问题 23 MATLAB fzxec1 1 编写M 文件curvefun1 mfunctionf curvefun1 x tdata f x 1 x 2 exp 0 02 x 3 tdata 其中x 1 a x 2 b x 3 k 2 输入命令td

10、ata 100 100 1000cdata 1e 03 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 curvefun1 x0 tdata cdata f curvefun1 x tdata F x tdata x a b k 解法1 用命令lsqcurvefit 24 3 运算结果为 f 0 00430 00510 00560 00590 00610 00620 00620 00630 00630 0063x 0 0063 0 00340 2542 4 结论 a 0 0063

11、b 0 0034 k 0 2542 25 MATLAB fzxec2 解法2用命令lsqnonlinf x F x tdata ctada x a b k 1 编写M 文件curvefun2 mfunctionf curvefun2 x tdata 100 100 1000 cdata 1e 03 4 54 4 99 5 35 5 65 5 90 6 10 6 26 6 39 6 50 6 59 f x 1 x 2 exp 0 02 x 3 tdata cdata 2 输入命令 x0 0 2 0 05 0 05 x lsqnonlin curvefun2 x0 f curvefun2 x 函数

12、curvefun2的自变量是x cdata和tdata是已知参数 故应将cdatatdata的值写在curvefun2 m中 26 3 运算结果为f 1 0e 003 0 2322 0 1243 0 2495 0 2413 0 1668 0 07240 02410 11590 20300 2792x 0 0063 0 00340 2542 可以看出 两个命令的计算结果是相同的 4 结论 即拟合得a 0 0063b 0 0034k 0 2542 27 MATLAB解应用问题实例 1 电阻问题 2 给药方案问题 3 水塔流量估计问题 28 MATLAB dianzu1 电阻问题 得到a1 3 39

13、40 a2 702 4918 方法2 直接用 结果相同 MATLAB dianzu2 29 一室模型 将整个机体看作一个房室 称中心室 室内血药浓度是均匀的 快速静脉注射后 浓度立即上升 然后迅速下降 当浓度太低时 达不到预期的治疗效果 当浓度太高 又可能导致药物中毒或副作用太强 临床上 每种药物有一个最小有效浓度c1和一个最大有效浓度c2 设计给药方案时 要使血药浓度保持在c1 c2之间 本题设c1 10 c2 25 ug ml 一种新药用于临床之前 必须设计给药方案 药物进入机体后血液输送到全身 在这个过程中不断地被吸收 分布 代谢 最终排出体外 药物在血液中的浓度 即单位体积血液中的药物

14、含量 称为血药浓度 30 要设计给药方案 必须知道给药后血药浓度随时间变化的规律 从实验和理论两方面着手 给药方案 1 在快速静脉注射的给药方式下 研究血药浓度 单位体积血液中的药物含量 的变化规律 t 问题 2 给定药物的最小有效浓度和最大治疗浓度 设计给药方案 每次注射剂量多大 间隔时间多长 分析 理论 用一室模型研究血药浓度变化规律 实验 对血药浓度数据作拟合 符合负指数变化规律 3 血液容积v t 0注射剂量d 血药浓度立即为d v 2 药物排除速率与血药浓度成正比 比例系数k 0 模型假设 1 机体看作一个房室 室内血药浓度均匀 一室模型 模型建立 在此 d 300mg t及c t

15、在某些点处的值见前表 需经拟合求出参数k v 用线性最小二乘拟合c t MATLAB lihe1 计算结果 用非线性最小二乘拟合c t 给药方案设计 设每次注射剂量D 间隔时间 血药浓度c t 应c1 c t c2 初次剂量D0应加大 给药方案记为 2 1 计算结果 给药方案 c1 10 c2 25k 0 2347v 15 02 35 故可制定给药方案 即 首次注射375mg 其余每次注射225mg 注射的间隔时间为4小时 36 估计水塔的流量 2 解题思路 3 算法设计与编程 1 问题 37 某居民区有一供居民用水的园柱形水塔 一般可以通过测量其水位来估计水的流量 但面临的困难是 当水塔水位

16、下降到设定的最低水位时 水泵自动启动向水塔供水 到设定的最高水位时停止供水 这段时间无法测量水塔的水位和水泵的供水量 通常水泵每天供水一两次 每次约两小时 水塔是一个高12 2米 直径17 4米的正园柱 按照设计 水塔水位降至约8 2米时 水泵自动启动 水位升到约10 8米时水泵停止工作 表1是某一天的水位测量记录 试估计任何时刻 包括水泵正供水时 从水塔流出的水流量 及一天的总用水量 38 39 流量估计的解题思路 拟合水位 时间函数 确定流量 时间函数 估计一天总用水量 40 拟合水位 时间函数测量记录看 一天有两个供水时段 以下称第1供水时段和第2供水时段 和3个水泵不工作时段 以下称第1时段t 0到t 8 97 第2次时段t 10 95到t 20 84和第3时段t 23以后 对第1 2时段的测量数据直接分别作多项式拟合 得到水位函数 为使拟合曲线比较光滑 多项式次数不要太高 一般在3 6 由于第3时段只有3个测量记录 无法对这一时段的水位作出较好的拟合 41 2 确定流量 时间函数对于第1 2时段只需将水位函数求导数即可 对于两个供水时段的流量 则用供水时段前后 水泵不工作时段

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号