数学建模与数学实验 拟 合 后勤工程学院数学教研室.

Slides:



Advertisements
Similar presentations
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
Advertisements

第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
第二章 导数与微分 习题课 主要内容 典型例题 测验题. 求 导 法 则求 导 法 则 求 导 法 则求 导 法 则 基本公式 导 数 导 数 微 分微 分 微 分微 分 高阶导数 高阶微分 一、主要内容.
目录 上页 下页 返回 结束 习题课 一、导数和微分的概念及应用 二、导数和微分的求法 导数与微分 第二章.
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
第八章 第四节 机动 目录 上页 下页 返回 结束 一个方程所确定的隐函数 及其导数 隐函数的微分法.
第 4 章 数值微积分. 4.1 内插求积 Newton-Cotes 公式 第 4 章 数值微积分 4.1 内插求积 Newton-Cotes 公式.
一、会求多元复合函数一阶偏导数 多元复合函数的求导公式 学习要求: 二、了解全微分形式的不变性.
2.6 隐函数微分法 第二章 第二章 二、高阶导数 一、隐式定义的函数 三、可微函数的有理幂. 一、隐函数的导数 若由方程 可确定 y 是 x 的函数, 由 表示的函数, 称为显函数. 例如, 可确定显函数 可确定 y 是 x 的函数, 但此隐函数不能显化. 函数为隐函数. 则称此 隐函数求导方法.
计算机数学基础(下) --数值分析 教师:孙继荣 电话: 028 -
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
第二章 导数与微分 一. 内 容 要 点 二. 重 点 难 点 三. 主 要 内 容 四. 例 题与习题.
第二章 导数与微分. 二、 微分的几何意义 三、微分在近似计算中的应用 一、 微分的定义 2.3 微 分.
全微分 教学目的:全微分的有关概念和意义 教学重点:全微分的计算和应用 教学难点:全微分应用于近似计算.
第三节 微分 3.1 、微分的概念 3.2 、微分的计算 3.3 、微分的应用. 一、问题的提出 实例 : 正方形金属薄片受热后面积的改变量.
3.4 空间直线的方程.
一、能线性化的多元非线性回归 二、多元多项式回归(线性化)
一、二阶行列式的引入 用消元法解二元线性方程组. 一、二阶行列式的引入 用消元法解二元线性方程组.
第三章 函数逼近 — 最佳平方逼近.
第四节 对数留数与辐角原理 一、对数留数 二、辐角原理 三、路西定理 四、小结与思考.
恰当方程(全微分方程) 一、概念 二、全微分方程的解法.
第五节 微积分基本公式 、变速直线运动中位置函数与速度 函数的联系 二、积分上限函数及其导数 三、牛顿—莱布尼茨公式.
§5.3 定积分的换元法 和分部积分法 一、 定积分的换元法 二、 定积分的分部积分法 三、 小结、作业.
第四章 一元函数的积分 §4.1 不定积分的概念与性质 §4.2 换元积分法 §4.3 分部积分法 §4.4 有理函数的积分
第5章 定积分及其应用 基本要求 5.1 定积分的概念与性质 5.2 微积分基本公式 5.3 定积分的换元积分法与分部积分法
第三节 函数的求导法则 一 函数的四则运算的微分法则 二 反函数的微分法则 三 复合函数的微分法则及微分 形式不变性 四 微分法小结.
第三节 格林公式及其应用(2) 一、曲线积分与路径无关的定义 二、曲线积分与路径无关的条件 三、二元函数的全微分的求积 四、小结.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
第二章 导数与微分 第二节 函数的微分法 一、导数的四则运算 二、复合函数的微分法.
全 微 分 欧阳顺湘 北京师范大学珠海分校
第三章 导数与微分 习 题 课 主要内容 典型例题.
2-7、函数的微分 教学要求 教学要点.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
第三章 多维随机变量及其分布 §2 边缘分布 边缘分布函数 边缘分布律 边缘概率密度.
全国高校数学微课程教学设计竞赛 知识点名称: 导数的定义.
计算机数学基础 主讲老师: 邓辉文.
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
数学模型实验课(三) 插值与三维图形.
插值与拟合 一、插值的基本原理 二、拟合的基本原理 三、插值与拟合的关系 四、插值的MATLAB实现 五、拟合的Matlab实现.
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
第一章 函数与极限.
第二十二章 曲面积分 §1 第一型曲面积分 §2 第二型曲面积分 §3 高斯公式与斯托克斯公式.
概 率 统 计 主讲教师 叶宏 山东大学数学院.
§1体积求法 一、旋转体的体积 二、平行截面面积为已知的立体的体积 三、小结.
第五节 对坐标的曲面积分 一、 对坐标的曲面积分的概念与性质 二、对坐标的曲面积分的计算法 三、两类曲面积分的联系.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
复习: 若A(x1,y1,z1) , B(x2,y2,z2), 则 AB = OB - OA=(x2-x1 , y2-y1 , z2-z1)
第三单元 第2课 实验 一元函数的积分 实验目的:掌握matlab求解有关不定积分和定积分的问题,深入理解定积分的概念和几何意义。
3.1 变化率与导数   3.1.1 变化率问题 3.1.2 导数的概念.
函 数 连 续 的 概 念 淮南职业技术学院.
概 率 统 计 主讲教师 叶宏 山东大学数学院.
第一节 不定积分的概念与性质 一、原函数与不定积分的概念 二、不定积分的几何意义 三、基本积分表 四、不定积分的性质 五、小结 思考题.
第三章 函数的微分学 第二节 导数的四则运算法则 一、导数的四则运算 二、偏导数的求法.
学习任务三 偏导数 结合一元函数的导数学习二元函数的偏导数是非常有用的. 要求了解二元函数的偏导数的定义, 掌握二元函数偏导数的计算.
建模常见问题MATLAB求解  .
第15讲 特征值与特征向量的性质 主要内容:特征值与特征向量的性质.
2019/5/20 第三节 高阶导数 1.
第二节 函数的极限 一、函数极限的定义 二、函数极限的性质 三、小结 思考题.
§2 方阵的特征值与特征向量.
第三节 函数的微分 3.1 微分的概念 3.2 微分的计算 3.3 微分的应用.
第四节 向量的乘积 一、两向量的数量积 二、两向量的向量积.
教学大纲(甲型,54学时 ) 教学大纲(乙型, 36学时 )
Volterra-Lotka方程 1925年, A. Lotka(美)和V. Volterra(意)给出了第一个两物种间的捕食模型。
本底对汞原子第一激发能测量的影响 钱振宇
数学模型实验课(二) 最小二乘法与直线拟合.
数学是知识的工具,亦是其它知识工具的泉源。 ——勒内·笛卡尔
§2 自由代数 定义19.7:设X是集合,G是一个T-代数,为X到G的函数,若对每个T-代数A和X到A的函数,都存在唯一的G到A的同态映射,使得=,则称G(更严格的说是(G,))是生成集X上的自由T-代数。X中的元素称为生成元。 A变, 变 变, 也变 对给定的 和A,是唯一的.
Matlab插值与拟合 插值 拟合.
Presentation transcript:

数学建模与数学实验 拟 合 后勤工程学院数学教研室

实验目的 实验内容 1、直观了解拟合基本内容。 2、掌握用数学软件求解拟合问题。 1、拟合问题引例及基本理论。 2、用数学软件求解拟合问题。 3、应用实例 4、实验作业。

拟 合 1. 拟合问题引例 2.拟合的基本原理

拟 合 问 题 引 例 1 温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032 已知热敏电阻数据: 求600C时的电阻R。 设 R=at+b a,b为待定系数

拟 合 问 题 引 例 2 t (h) 0.25 0.5 1 1.5 2 3 4 6 8 c (g/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01 已知一室模型快速静脉注射下的血药浓度数据(t=0注射300mg) 求血药浓度随时间的变化规律c(t). 作半对数坐标系(semilogy)下的图形 MATLAB(aa1)

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

问题:给定一批数据点,需确定满足特定要求的曲线或曲面 拟合与插值的关系 问题:给定一批数据点,需确定满足特定要求的曲线或曲面 解决方案: 若要求所求曲线(面)通过所给所有数据点,就是插值问题; 若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就是数据拟合,又称曲线拟合或曲面拟合。 函数插值与曲线拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同,二者的数学方法上是完全不同的。 实例:下面数据是某次实验所得,希望得到X和 f之间的关系? MATLAB(cn)

最临近插值、线性插值、样条插值与曲线拟合结果:

曲线拟合问题最常用的解法——线性最小二乘法的基本思路 第一步:先选定一组函数 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) 最小。

超定方程组:方程个数大于未知量个数的方程组 线性最小二乘法的求解:预备知识 超定方程组:方程个数大于未知量个数的方程组 即 Ra=y 其中 超定方程一般是不存在解的矛盾方程组。 如果有向量a使得 达到最小, 则称a为上述超定方程的最小二乘解。

线性最小二乘法的求解 所以,曲线拟合的最小二乘法要解决的问题,实际上就是求以下超定方程组的最小二乘解的问题。 其中 Ra=y (3) 定理:当RTR可逆时,超定方程组(3)存在最小二乘解,且即为方程组 RTRa=RTy 的解:a=(RTR)-1RTy

2. 将数据 (xi,yi) i=1, …n 作图,通过直观判断确定 f(x): 线性最小二乘拟合 f(x)=a1r1(x)+ …+amrm(x)中函数{r1(x), …rm(x)}的选取 1. 通过机理分析建立数学模型来确定 f(x); 2. 将数据 (xi,yi) i=1, …n 作图,通过直观判断确定 f(x): f=a1+a2x f=a1+a2x+a3x2 f=a1+a2x+a3x2 + + + f=a1+a2/x f=aebx f=ae-bx + + +

用MATLAB解拟合问题 1、线性最小二乘拟合 2、非线性最小二乘拟合

用MATLAB作线性最小二乘拟合 1. 作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m) 拟合多项 式次数 输出拟合多项式系数 a=[a1, …am , am+1] (数组)) 输入同长度 的数组X,Y 2. 对超定方程组 可得最小二乘意义下的解。 ,用 3.多项式在x处的值y可用以下命令计算: y=polyval(a,x)

例 对下面一组数据作二次多项式拟合 即要求 出二次多项式: 中 的 使得:

解法1.用解超定方程的方法 1)输入以下命令: x=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; R=[(x.^2)' x' ones(11,1)]; A=R\y' MATLAB(zxec1) 2)计算结果: A = -9.8108 20.1293 -0.0317

解法2.用多项式拟合的命令 1)输入以下命令: x=0:0.1:1; y=[-0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; A=polyfit(x,y,2) z=polyval(A,x); plot(x,y,'k+',x,z,'r') %作出数据点和拟合曲线的图形 MATLAB(zxec2) 2)计算结果: A = -9.8108 20.1293 -0.0317

用MATLAB作非线性最小二乘拟合 Matlab的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m,在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参考例题. 1. lsqcurvefit 已知数据点: xdata=(xdata1,xdata2,…,xdatan), ydata=(ydata1,ydata2,…,ydatan) lsqcurvefit用以求含参量x(向量)的向量值函数 F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T 中的参变量x(向量),使得

说明:x = lsqcurvefit (‘fun’,x0,xdata,ydata,options); 输入格式为: (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, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,…); 说明:x = lsqcurvefit (‘fun’,x0,xdata,ydata,options); fun是一个事先建立的定义函数F(x,xdata) 的M-文件, 自变量为x和xdata 迭代初值 选项见无 约束优化 已知数据点

已知数据点: xdata=(xdata1,xdata2,…,xdatan) ydata=(ydata1,ydata2,…,ydatan) 2. lsqnonlin 已知数据点: xdata=(xdata1,xdata2,…,xdatan) ydata=(ydata1,ydata2,…,ydatan) lsqnonlin用以求含参量x(向量)的向量值函数 f(x)=(f1(x),f2(x),…,fn(x))T 中的参量x,使得 最小。 其中 fi(x)=f(x,xdatai,ydatai) =F(x,xdatai)-ydatai

说明:x= lsqnonlin (‘fun’,x0,options); 输入格式为: 1) x=lsqnonlin(‘fun’,x0); 2) x= lsqnonlin (‘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); fun是一个事先建立的定义函数f(x)的M-文件,自变量为x 迭代初值 选项见无 约束优化

例2 用下面一组数据拟合 中的参数a,b,k 该问题即解最优化问题:

F(x,tdata)= ,x=(a,b,k) 解法1. 用命令lsqcurvefit F(x,tdata)= ,x=(a,b,k) 1)编写M-文件 curvefun1.m function f=curvefun1(x,tdata) f=x(1)+x(2)*exp(-0.02*x(3)*tdata) %其中 x(1)=a; x(2)=b;x(3)=k; 2)输入命令 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]; x0=[0.2,0.05,0.05]; x=lsqcurvefit ('curvefun1',x0,tdata,cdata) f= curvefun1(x,tdata) MATLAB(fzxec1)

3)运算结果为: f =0.0043 0.0051 0.0056 0.0059 0.0061 0.0062 0.0062 0.0063 0.0063 0.0063 x = 0.0063 -0.0034 0.2542 4)结论:a=0.0063, b=-0.0034, k=0.2542

f(x)=F(x,tdata,ctada)= x=(a,b,k) 解法 2 用命令lsqnonlin f(x)=F(x,tdata,ctada)= x=(a,b,k) 函数curvefun2的自变量是x,cdata和tdata是已知参数,故应将cdata tdata的值写在curvefun2.m中 1)编写M-文件 curvefun2.m function f=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) MATLAB(fzxec2)

3)运算结果为 f =1.0e-003 *(0.2322 -0.1243 -0.2495 -0.2413 -0.1668 -0.0724 0.0241 0.1159 0.2030 0.2792 x =0.0063 -0.0034 0.2542 4)结论:即拟合得a=0.0063 b=-0.0034 k=0.2542 可以看出,两个命令的计算结果是相同的.

MATLAB解应用问题实例 1、电阻问题 2、给药方案问题 *3、水塔流量估计问题

电阻问题 例. 由数据 拟合R=a1t+a2 方法1.用命令 polyfit(x,y,m) MATLAB(dianzu1) 温度t(0C) 20.5 32.7 51.0 73.0 95.7 电阻R() 765 826 873 942 1032 例. 由数据 拟合R=a1t+a2 方法1.用命令 polyfit(x,y,m) MATLAB(dianzu1) 得到 a1=3.3940, a2=702.4918 方法2.直接用 MATLAB(dianzu2) 结果相同。

给药方案 —— 拟 合 问 题 实 例 2 一种新药用于临床之前,必须设计给药方案. 药物进入机体后血液输送到全身,在这个过程中不断地被吸收、分布、代谢,最终排出体外,药物在血液中的浓度,即单位体积血液中的药物含量,称为血药浓度。 一室模型:将整个机体看作一个房室,称中心室,室内血药浓度是均匀的。快速静脉注射后,浓度立即上升;然后迅速下降。当浓度太低时,达不到预期的治疗效果;当浓度太高,又可能导致药物中毒或副作用太强。临床上,每种药物有一个最小有效浓度c1和一个最大有效浓度c2。设计给药方案时,要使血药浓度 保持在c1~c2之间。本题设c1=10,c2=25(ug/ml).

在实验方面,对某人用快速静脉注射方式一次注入该药物300mg后,在一定时刻t(小时)采集血药,测得血药浓度c(ug/ml)如下表: 要设计给药方案,必须知道给药后血药浓度随时间变化的规律。从实验和理论两方面着手: 在实验方面,对某人用快速静脉注射方式一次注入该药物300mg后,在一定时刻t(小时)采集血药,测得血药浓度c(ug/ml)如下表: t (h) 0.25 0.5 1 1.5 2 3 4 6 8 c (g/ml) 19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01

给药方案 1. 在快速静脉注射的给药方式下,研究血药浓度(单位体积血液中的药物含量)的变化规律。 问题 2. 给定药物的最小有效浓度和最大治疗浓度,设计给药方案:每次注射剂量多大;间隔时间多长。 实验:对血药浓度数据作拟合,符合负指数变化规律 c2 c c1  分析 理论:用一室模型研究血药浓度变化规律 t

模型假设 模型建立 1. 机体看作一个房室,室内血药浓度均匀——一室模型 2.药物排除速率与血药浓度成正比,比例系数 k(>0) 3.血液容积v, t=0注射剂量d, 血药浓度立即为d/v. 模型建立 在此,d=300mg,t及c(t)在某些点处的值见前表,需经拟合求出参数k、v

用线性最小二乘拟合c(t) 程序: d=300; t=[0.25 0.5 1 1.5 2 3 4 6 8]; y=log(c); a=polyfit(t,y,1) k=-a(1) v=d/exp(a(2)) 程序: MATLAB(lihe1) 用非线性最小二乘拟合c(t) 计算结果:

给药方案 设计 设每次注射剂量D, 间隔时间 血药浓度c(t) 应c1 c(t)  c2 初次剂量D0 应加大 c c2 c1  t  t 给药方案 设计 设每次注射剂量D, 间隔时间 血药浓度c(t) 应c1 c(t)  c2 初次剂量D0 应加大 给药方案记为: 1、 c1=10,c2=25 k=0.2347 v=15.02 2、 计算结果: 给药方案:

故可制定给药方案: 即: 首次注射375mg, 其余每次注射225mg, 注射的间隔时间为4小时。

估计水塔的流量 1、问题 2、解题思路 3、算法设计与编程

某居民区有一供居民用水的园柱形水塔,一般可以通过测量其水位来估计水的流量,但面临的困难是,当水塔水位下降到设定的最低水位时,水泵自动启动向水塔供水,到设定的最高水位时停止供水,这段时间无法测量水塔的水位和水泵的供水量.通常水泵每天供水一两次,每次约两小时. 水塔是一个高12.2米,直径17.4米的正园柱.按照设计,水塔水位降至约8.2米时,水泵自动启动,水位升到约10.8米时水泵停止工作. 表1 是某一天的水位测量记录,试估计任何时刻(包括水泵正供水时)从水塔流出的水流量,及一天的总用水量.

流量估计的解题思路 拟合水位~时间函数 确定流量~时间函数 估计一天总用水量

拟合水位~时间函数 测量记录看,一天有两个供水时段(以下称第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个测量记录,无法对这一时段的水位作出较好的拟合.

2、确定流量~时间函数 对于第1、2时段只需将水位函数求导数即可,对于两个供水时段的流量,则用供水时段前后(水泵不工作时段)的流量拟合得到,并且将拟合得到的第2供水时段流量外推,将第3时段流量包含在第2供水时段内.

总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流量对时间的积分得到。 3、一天总用水量的估计 总用水量等于两个水泵不工作时段和两个供水时段用水量之和,它们都可以由流量对时间的积分得到。

算法设计与编程 1、拟合第1、2时段的水位,并导出流量 2、拟合供水时段的流量 3、估计一天总用水量 4、流量及总用水量的检验

设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第1时段各时刻的流量可如下得: 1、拟合第1时段的水位,并导出流量 设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第1时段各时刻的流量可如下得: 1) c1=polyfit(t(1:10),h(1:10),3); %用3次多项式拟合第1时段水位,c1输出3次多项式的系数 2)a1=polyder(c1); % a1输出多项式(系数为c1)导数的系数 3)tp1=0:0.1:9; x1=-polyval(a1,tp1); % x1输出多项式(系数为a1)在tp1点的函数值(取负后边为正值),即tp1时刻的流量 MATLAB(llgj1) 4)流量函数为:

设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第2时段各时刻的流量可如下得: 2、拟合第2时段的水位,并导出流量 设t,h为已输入的时刻和水位测量记录(水泵启动的4个时刻不输入),第2时段各时刻的流量可如下得: 1) c2=polyfit(t(10.9:21),h(10.9:21),3); %用3次多项式拟合第2时段水位,c2输出3次多项式的系数 2) a2=polyder(c2); % a2输出多项式(系数为c2)导数的系数 3)tp2=10.9:0.1:21; x2=-polyval(a2,tp2); % x2输出多项式(系数为a2)在tp2点的函数值(取负后边为正值),即tp2时刻的流量 MATLAB(llgj2) 4)流量函数为:

xx1=-polyval(a1,[8 9]); %取第1时段在t=8,9的流量 3、拟合供水时段的流量 在第1供水时段(t=9~11)之前(即第1时段)和之后(即第2时段)各取几点,其流量已经得到,用它们拟合第1供水时段的流量.为使流量函数在t=9和t=11连续,我们简单地只取4个点,拟合3次多项式(即曲线必过这4个点),实现如下: xx1=-polyval(a1,[8 9]); %取第1时段在t=8,9的流量 xx2=-polyval(a2,[11 12]); %取第2时段在t=11,12的流量 xx12=[xx1 xx2]; c12=polyfit([8 9 11 12],xx12,3); %拟合3次多项式 tp12=9:0.1:11; x12=polyval(c12,tp12); % x12输出第1供水时段 各时刻的流量 MATLAB(llgj3) 拟合的流量函数为:

dt3=diff(t(22:24)); %最后3个时刻的两两之差 dh3=diff(h(22:24)); %最后3个水位的两两之差 dht3=-dh3./dt3; %t(22)和t(23)的流量 t3=[20 20.8 t(22) t(23)]; xx3=[-polyval(a2,t3(1:2),dht3)]; %取t3各时刻的流量 c3=polyfit(t3,xx3,3); %拟合3次多项式 t3=20.8:0.1:24; x3=polyval(c3,tp3);% x3输出第2供水时段 (外推至t=24)各时刻的流量 MATLAB(llgj4) 拟合的流量函数为:

y1=0.1*trapz(x1); %第1时段用水量(仍按高 度计),0.1为积分步长 y2=0.1*trapz(x2); %第2时段用水量 3、一天总用水量的估计 第1、2时段和第1、2供水时段流量的积分之和,就是一天总用水量.虽然诸时段的流量已表为多项式函数,积分可以解析地算出,这里仍用数值积分计算如下: y1=0.1*trapz(x1); %第1时段用水量(仍按高 度计),0.1为积分步长 y2=0.1*trapz(x2); %第2时段用水量 y12=0.1*trapz(x12); %第1供水时段用水量 y3=0.1*trapz(x3); %第2供水时段用水量 y=(y1+y2+y12+y3)*237.8*0.01; %一天总用水量( ) 计算结果:y1=146.2, y2=266.8, y12=47.4, y3=77.3,y=1250.4 MATLAB(llgjz)

xp2=polyval(c3,tp4); % xp2输出第2供水时段 各时刻的流量 4、流量及总用水量的检验 计算出的各时刻的流量可用水位记录的数值微分来检验.用水量y1可用第1时段水位测量记录中下降高度968-822=146来检验,类似地,y2用1082-822=260检验. 供水时段流量的一种检验方法如下:供水时段的用水量加上水位上升值260是该时段泵入的水量,除以时段长度得到水泵的功率(单位时间泵入的水量),而两个供水时段水泵的功率应大致相等.第1、2时段水泵的功率可计算如下: p1=(y12+260)/2; %第1供水时段水泵的功率 (水量仍以高度计) tp4=20.8:0.1:23; xp2=polyval(c3,tp4); % xp2输出第2供水时段 各时刻的流量 p2=(0.1*trapz(xp2)+260)/2.2; %第2供水时段水泵的功率 计算结果:p1=154.5 ,p2=140.1 MATLAB (ll)

计算结果 流量函数为:

流量曲线见图 n=(3,4) n=(5,6)

练习1 用给定的多项式,如y=x3-6x2+5x-3,产生一组数据(xi,yi,i=1,2,…,n),再在yi上添加随机干扰(可用rand产生(0,1)均匀分布随机数,或用rands产生N(0,1)分布随机数),然后用xi和添加了随机干扰的yi作的3次多项式拟合,与原系数比较。 如果作2或4次多项式拟合,结果如何?

练习2、用电压V=10伏的电池给电容器充电,电容器上t时刻的电压为 ,其中V0是电容器的初始电压, 是充电常数。试由下面一组t,V数据确定V0, 。

用非线性最小二乘拟合c(t)-用lsqcurvefit 1、用M-文件curvefun3.m定义函数 function f=curvefun3(x,tdata) d=300 f=(x(1)\d)*exp(-x(2)*tdata) % x(1)=v; x(2)=k 2、主程序lihe2.m如下 clear tdata=[0.25 0.5 1 1.5 2 3 4 6 8]; cdata=[19.21 18.15 15.36 14.10 12.89 9.32 7.45 5.24 3.01]; x0=[10,0.5]; x=lsqcurvefit('curvefun3',x0,tdata,cdata); f=curvefun3(x,tdata) x MATLAB(lihe2)