




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数值分析课程设计实验报告班级:软件111姓名:吴明洲学号:一、计算水塔的水流量1、将所给的数据中的时刻输入到Excel表格中,如下图所示:2、计算出每两个相邻的时刻之间的时间差(表格列B(n)= A(n+1)- A(n)),然后除以2(表格列C(n)=B(n)/2)得到相邻两个时刻的中间时刻:3、将原始数据中的水位数据输入到该表格中:4、根据公式:V=PI*D*D*h/4计算各个时刻水塔中水的体积(表格列E(n)=PI*D*D*表格列D(n)/4),然后求出各个时间段内用水的体积(表格列F(n)=D(n+1)-D(n)):5、求中间时刻的用水率,即求该时间段(时刻差)内的平均用水量(表格列G(n)=F(n)/B(n)):6、将中间时刻和中间时刻的用水率复制到另一张表中,以便处理(这时共产生22组数据):到这里所有的数据处理已经结束。接下来是研究数据所包含的规律,根据数据提出适当的数学模型,拟合一条光滑的连续的曲线。7、在Excel中有拟合曲线的工具,所以我先用Excel中的工具对这组数据进行了拟合*画出散点图:*确定横纵坐标的意义:*形成散点图: *通过添加趋势线,来拟合光滑曲线:*得到拟合的函数曲线,以及表达式在Excel中就可以很方便的拟合出比较符合要求的曲线,并且可以得到函数表达式。然后开始尝试利用编程解决这个问题,也就是说用编程的方法得到相同的函数表达式!最小二乘法通常用于曲线拟合,所谓拟合是指已知某函数的若干离散函数值f1,f2,fn,通过调整该函数中若干待定系数f(1, 2,3), 使得该函数与已知点集的差别(最小二乘意义)最小。如果待定函数是线性,就叫线性拟合或者线性回归(主要在统计中),否则叫作非线性拟合或者非线性回归。表达式也可以是分段函数,这种情况下叫作样条拟合。而插值是指已知某函数的在若干离散点上的函数值或者导数信息,通过求解该函数中待定形式的插值函数以及待定系数,使得该函数在给定离散点上满足约束。插值函数又叫作基函数,如果该基函数定义在整个定义域上,叫作全域基,否则叫作分域基。如果约束条件中只有函数值的约束,叫作Lagrange插值,否则叫作Hermite插值。从几何意义上将,拟合是给定了空间中的一些点,找到一个已知形式未知参数的连续曲面来最大限度地逼近这些点 而插值是找到一个(或几个分片光滑的)连续曲面来穿过这些点。可以看出利用最小二乘法拟合比较方便,我采用的函数形式为多项式函数,最高次为5。拟合部分代码执行结果如下:经过比较,可以发现在误差允许的范围内通过Excel拟合出来的函数和通过编程而拟合出来的多项式是相统一的。然后再将该函数应用到Excel中,利用程序代码所求出来的多项式,画出一条光滑连续的曲线,如果这条曲线和最上面在Excel中,纯粹用Excel拟合出来的曲线相同的话表明拟合成功!1、按照递增的顺序,将从0-24的数据输入到Excel中,如下图所示。并在第二列中输入公式:=-0.00015*A2*A2*A2*A2*A2+0.*A2*A2*A2*A2-0.*A2*A2*A2+4.*A2*A2-22.*A2+66.02523,如下图所示 。将数据填充完毕:利用和上面的相同的方法,直接选择光滑的曲线图,而不是选择散点图:然后就画出了一条曲线: 经过比较,可以知道在误差允许的范围内数学模型已经成功建立!到这里该问题的数学模型已经建立好了(采用编程所得的结果进行建模和进一步的计算):f(t)=-0.00015t5+0.t4-0.t3+4.t2-22.t+66.最后再通过编程计算任意时刻的用水率、一天的总用水量和水泵的工作功率:任意时刻的用水率的算法简单,只要给出任意时间,根据上面的式子就可以求出;一天的总用水量为上式在0-24内的积分V=024f(t)dt=-0.t6+0.t5-0.t4+1.t3-11.t2+66.02523t+C024水泵的工作功率的计算方法是用一次的总泵水量除以泵水时间水泵泵一次水泵水量为:V=2*PI*D*D*(h2-h1)/4=2*3.*17.4*17.4*(10.82-8.22)/4泵水时间为:T=t2-t1=(10.954-8.967)+(22.958-20.839)所以水泵的工作功率为:P=Vg(h2-h1)/2T其中为水的密度(kg/m3),V为上面的体积(m3),g为重力单位(9.8N/kg)。然后将程序加以修改,将上述的三个求解功能加进去就完成了本次设计。最终源代码:#include#include#includevoid yongShuiLv();void yongShuiLiang();void gongLv();void Approx(float,float,int,int,float); void main()int i;float a6;float x22=0.4605,1.382,2.396,3.41,4.4245,5.439,6.453,7.467,8.4475,11.493,12.493,13.4145,14.4285,15.4425,16.3645,17.3785,18.484,19.498,20.399,23.419,24.433,25.447;float y22=51.,44.,39.,36.,36.,33.,34.,35.,38.44874,70.,74.,70.,60.,62.,58.,55.,55.,59.,57.,59.,50.,44.;Approx(x,y,22,5,a);for(i=0;i=5;i+)printf(a%d=%fn,i,ai);printf(拟合多项式为:nf(t)=(%f)*t*t*t*t*t+(%f)*t*t*t*t+(%f)*t*t*t+(%f)*t*t+(%f)*t+(%f)n,a5,a4,a3,a2,a1,a0);yongShuiLiang();gongLv();char s;while(1)cout您是否还要查询某时刻的用水率(Y/N):s;switch(s)case Y:yongShuiLv();break;case N:break;if(s=N)break;void Approx(float x,float y,int m,int n,float a)int i,j,t;float *c=new float(n+1)*(n+2);float power(int,float);void ColPivot(float *,int,float);for(i=0;i=n;i+)for(j=0;j=n;j+)*(c+i*(n+2)+j)=0;for(t=0;t=m-1;t+)*(c+i*(n+2)+j)+=power(i+j,xt);*(c+i*(n+2)+n+1)=0;for(j=0;j=m-1;j+)*(c+i*(n+2)+n+1)+=yj*power(i,xj);ColPivot(c,n+1,a);delete c;void ColPivot(float *c,int n,float x)int i,j,t,k;float p;for(i=0;i=n-2;i+)k=i;for(j=i+1;j(fabs(*(c+k*(n+1)+i)k=j;if(k!=i)for(j=i;j=n;j+)p=*(c+i*(n+1)+j);*(c+i*(n+1)+j)=*(c+k*(n+1)+j);*(c+k*(n+1)+j)=p;for(j=i+1;j=n-1;j+)p=(*(c+j*(n+1)+i)/(*(c+i*(n+1)+i);for(t=i;t=0;i-)for(j=n-1;j=i+1;j-)(*(c+i*(n+1)+n)-=xj*(*(c+i*(n+1)+j);xi=*(c+i*(n+1)+n)/(*(c+i*(n+1)+i);float power(int i,float v)float a=1;while(i-)a*=v;return a;void yongShuiLv()float t;cout请输入任意一个时刻,程序将就算出该时刻的用水率t;float f=-0.00015*t*t*t*t*t+0.*t*t*t*t-0.*t*t*t+4.*t*t-22.*t+66.;coutt时刻的用水率是:f立方米/小时endl;void yongShuiLiang()float v;v=-0.*24*24*24*24*24*24+0.*24*24*24*24*24-0.*24*24*24*24+1.*24*24*24-11.*24*24+66.02523*24;cout这个居民区的居民一天的用水量约为:v立方米endl;void gongLv()float v=3.*17.4*8.7*(10.82-8.22);float t=2*(10.954-8.967)+(22.958-20.839);float p=v*9.8*(10.82-8.22)/t;cout该水塔的水泵的工作功率为P=p瓦endl;程序运行结果:二、家乡温度问题四川省江油市2013年6月2号一天的温度如下表:时间(h)01234567891011温度(C)232323232223242627282930时间(h)121314151617181920212223温度(C)313132313130302928282727实际温度曲线如下:调试数据:123223.003323.0058423.0082523.0101623.0113723.0115823.0107923.00861023.005111231222.99621322.99161422.98691522.98321622.98121722.9821822.98631922.99522023.009521232223.0122323.02792423.0442523.05722623.06382723.06052823.04392923.01063022.95731233222.95463322.8893422.80993522.72423622.63863722.563822.4953922.45054022.433441224221.94254321.92024421.92734521.9584622.00674722.06774822.13514922.20335022.26655122.31915223.13325323.25425423.36695523.47575623.58445723.69745823.81875923.95246024.10266124.27346224.12556324.27116424.43196524.60336624.78056724.95876825.13326925.29937025.45227125.58717226.19267326.36547426.52137526.6637626.79357726.91577827.03247927.14648027.26078127.3788227.0758327.15528427.248527.32868627.42038727.51448827.61028927.7079027.80419127.90079228.10749328.21379428.31889528.42269628.52529728.62669828.72679928.825510028.92310129.019210229.095310329.1910429.28510529.380910629.478710729.579110829.682910929.790911029.903811130.022511230.111411330.226311430.341411530.453611630.559811730.656911830.741711930.81112030.861712130.890712231.05812331.096912431.122512531.140612631.156912731.177312831.207412931.253113031.320213131.414513231.028613331.082113431.152513531.23213631.312513731.386113831.444713931.480414031.485314131.451314232.054814332.070914432.056314532.019414631.96814731.910514831.854814931.809215031.781615131.780415230.895315330.818515430.763115530.722515630.690315730.6615830.62515930.578916030.515116130.427316230.991916330.95916430.907216530.842516630.770616730.697616830.629116930.571317030.529817130.510617229.909217329.841517429.791917529.755517629.727117729.701717829.674417929.640118029.593718129.530318229.999518329.979118429.941118529.887618629.82118729.743518829.657218929.564419029.46731912919228.863919328.730119428.600819528.47819628.363819728.260419828.169919928.094420028.03612012820227.945820327.908320427.882820527.864520627.848820727.830920827.806220927.769921027.71732112821227.980721327.940521427.883921527.815921627.740921727.663821827.589321927.522122027.46692212722226.903222326.825722426.765422526.7222626.687522726.665822826.652622926.645823026.6433三次样条函数模拟曲线:代码:#include#includeusing namespace std;# define MAX_N 24 / 定义(x_i,y_i)的最大的维数 typedef struct tagPOINT / 点的结构 double x;double y; POINT; int main ( )ofstream out(c.txt);int n=24; /插值点的数目: 是24小时int i,k;POINT pointsMAX_N +1; double hMAX_N +1,bMAX_N +1,cMAX_N +1,dMAX_N +1,MMAX_N +1;double uMAX_N +1,vMAX_N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训表制作教程课件
- 2025年福建省永春县城市建设集团有限公司及权属企业招聘6人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025春季北京师范大学保定实验学校(第32届)教师招聘66人考前自测高频考点模拟试题附答案详解
- 2025年宿州市宿马园区两站两员招聘11人模拟试卷及参考答案详解1套
- 2025贵州遵义市住房和城乡建设局面向基层选调所属事业单位人员2人模拟试卷带答案详解
- 2025江苏苏州高新区镇湖街道招聘村(社区)工作人员笔试考前自测高频考点模拟试题(含答案详解)
- 2025广西南宁市青秀区发展和改革局招聘2人考前自测高频考点模拟试题及参考答案详解一套
- 2025年白城市暨洮北区人才交流中心就业见习岗位和见习人员征集模拟试卷及答案详解参考
- 2025河南许昌市消防救援支队招聘政府专职队员50人模拟试卷及答案详解1套
- 2025年福建省泉州市晋江智信大数据科技有限公司招聘10人模拟试卷带答案详解
- 城乡燃气管道维护保养技术方案
- 2025年西藏公开遴选公务员笔试试题及答案(A类)
- 水土保持治理工应急处置考核试卷及答案
- 初中学生心理健康辅导手册
- 工业园区储能项目商业计划书
- 仓库搬运安全培训内容课件
- 抗炎药物作用机制研究-洞察及研究
- 2025至2030中国航空保险行业项目调研及市场前景预测评估报告
- (2025年标准)吊篮移交协议书
- 中专院校普法课件
- 水泵检修基础知识培训课件
评论
0/150
提交评论