基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx

上传人:b****3 文档编号:10390886 上传时间:2023-05-25 格式:DOCX 页数:19 大小:65.04KB
下载 相关 举报
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第1页
第1页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第2页
第2页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第3页
第3页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第4页
第4页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第5页
第5页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第6页
第6页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第7页
第7页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第8页
第8页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第9页
第9页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第10页
第10页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第11页
第11页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第12页
第12页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第13页
第13页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第14页
第14页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第15页
第15页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第16页
第16页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第17页
第17页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第18页
第18页 / 共19页
基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx

《基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx》由会员分享,可在线阅读,更多相关《基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx(19页珍藏版)》请在冰点文库上搜索。

基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述.docx

基于递归数列的湖水污染浓度与时间函数关系的建模与求解概述

基于递归数列的湖水污染浓度与时间函数关系的建模与求解

材料成型及其控制工程孟园园

材料成型及其控制工程邢裕杰

材料成型及其控制工程缪聪

摘要

随着工业的不断发展,人们的生活水平不断提高,日益恶化环境质量引起了人们的广泛关注,越来越多的人意识到居住环境对健康生活的重要性!

一个地区被污染的程度往往由其被污染的时间的长短来直接体现。

在本模型中,我们通过递归数列的知识,建立一个数学模型来刻画湖水中污染浓度c的随污染时间n的变化关系,并通过Mathematic软件绘画出湖水污染浓度c与污染时间n二维函数图象。

在模型的基础上,我们通过VC++语言编写程序,根据测得的湖水污染浓度c的数据,通过VC++可视化软件推测湖水被污染的时间。

关键词:

湖水污染浓度递归数列污染时间程序设计

问题重述

一个淡水湖受到上游化工厂污染影响。

化工厂的污水以一定流量a(立方米/天)进入湖中且污染物质迅速均匀混合于湖水中,湖水以同样流量a流出从而湖水体积b(立方米)一直保持不变。

湖水污染程度用每立方米湖水所含污染物质的克数描述,称为污染浓度c(克/立方米)。

设化工厂的污水浓度为k(克/立方米),试建立一个数学模型来刻画湖中污染浓度c的变化。

要求写出解的表达式并说明怎样利用模型推测湖水受到了多长时间的污染。

问题分析

由题意可知,目的是建立一个模型来解决湖中湖水污染浓度c随污染时间n的变化关系,并根据建立的模型,通过测得的湖水的污染浓度c来推测湖水被污染的时间n。

所以我们可以将此问题拆分成两个问题:

问题一:

湖水污染浓度c与污染时间n的函数变化关系;

问题二:

利用建立的模型推测湖水被污染的时间;

问题一中,我们可以从分别计算第一天、第二天、第三天的湖水污染浓度

中,递归出一半的湖水污染浓度c随污染时间n的函数变化关系,在这个问题中,我们顺理成章的想到了通过利用递归数列的原理去寻找湖水污水浓度c与污染时间n的一般函数关系。

问题二中,通过测得的湖水污染浓度c,让人工去缩小区间、一一对应地寻找湖水被污染的时间是比较困难,也不太现实,所以我们采用VC++编程的方法,利用VC++语言编写程序,通过编写好的程序,按要求输入数据,VC++可视化软件就会输出湖水被污染的时间。

最后,我们根据网上提供的资料以及自己的生活经验,寻找模型的缺点,完善我们的模型。

问题假设

1、化工厂排放的污水每天以一定的流量a立方米流入湖中且每天各个时段流入湖中的速率相同。

2、湖中湖水每天以一定的流量a立方米流出湖且每天各个时段流出湖的速率相同,从而湖水每天的体积b立方米保持不变。

3、化工厂排放的污水浓度每天都为k(克/立方米),保持不变。

4、污染物质进入湖水后能迅速均匀和湖水混合。

符号说明

a:

流量,

b:

湖水体积,

c:

湖水的污染浓度,

k:

污水浓度,

n:

污染的时间,

第n天流入a立方米的污水后的污染浓度。

第n天湖水的污染浓度。

模型的建立与求解

问题一

湖水污染浓度c与污染时间n的函数模型,我们可以根据递归数列的知识进行求解。

第一天,化工厂排放的a立方米的污水流入湖中,污水中含污染物为a*k克,此时湖水的污染浓度为

(克/立方米),而此时又有a立方米的湖水从湖中流出,流出的湖水中含有的污染物为

克,此时湖中剩余的污染物为

克,从而可以得出第一天湖水的污染浓度

(克/立方米).

第二天,流入湖水的化工厂污水也为a立方米,污水中含污染物为a*k克,湖中污染物变为

克,从而湖水的污染浓度为

(克/立方米),而此时湖中又有a立方米的湖水流出,流出的湖水中所含有的污染物为

克,湖中此时剩余的污染物为

克,从而可以得出第二天湖水的污染浓度

(克/立方米).

第三天,又有a立方米化工厂污水排入湖中,污水中含污染物为a*k克,从而湖中污染物为

克,此时湖水的污染浓度为

(克/立方米),与此同时又有a立方米的湖水流出湖中,流出的湖水中含有的污染物为

克,湖中剩余的污染物变为

克,从而可以得出第三天湖水的污染浓度

(克/立方米).

从已建立的第一、第二、第三天的污染浓度

,通过数列的递归原理,我们归纳出两个一般表达式:

·····················

(1)

·····················

(2)

(2)式代入

(1)式整理可得:

······(3)

将(3)式变形得:

·············(4)

所以数列{

}在(n>1)时是首项为

,公比为

的等比数列,根据等比数列通项求法,我们可以得出:

,所以湖水污染浓度c与污染时间n的函数变化关系为:

现在我们将变量定量化,通过Mathematic软件对抽象模型具体化,建立湖水污染浓度c和污染时间n的二维图和表格。

我们不妨假设污水流量a为500立方米,湖水的体积为100000立方米,化工厂的污水浓度k为0.5克/立方米,建立的二维函数图象如下:

图1:

天数n从0到100

图2:

天数n从0到500

图3:

天数n从0到1000

图4:

天数n从0到1500

图5:

天数n从0到2000

表1:

天数n从0到100

天数

0

10

20

30

40

50

浓度

0

0.024326

0.0474685

0.0694851

0.0904306

0.110357

天数

60

70

80

90

100

浓度

0.129314

0.147349

0.164506

0.180828

0.196357

表2:

天数n从0到500

天数

0

50

100

150

200

250

浓度

0

0.110357

0.196357

0.263375

0.315601

0.356301

天数

300

350

400

450

500

浓度

0.388017

0.412733

0.431994

0.447004

0.458701

表3:

天数n从0到1000

天数

0

100

200

300

400

500

浓度

0

0.196357

0.315601

0.388017

0.431994

0.458701

天数

600

700

800

900

1000

浓度

0.47492

0.484769

0.49075

0.494383

0.496589

表4:

天数n从0到1500

天数

0

150

300

450

600

750

浓度

0

0.263375

0.388017

0.447004

0.47492

0.488131

天数

900

1050

1200

1350

1500

浓度

0.494383

0.497342

0.497342

0.499405

0.499718

 

表5:

天数n从0到2000

天数

0

200

400

600

800

1000

浓度

0

0.315601

0.431994

0.47492

0.49075

0.496589

天数

1200

1400

1600

1800

2000

浓度

0.498742

0.499536

0.499829

0.499937

0.499977

问题二

通过已建立的模型,我们利用VC++可视化编程编写了一套程序,通过输入化工厂每天的污水流量a立方米、湖水的体积b立方米、污水的浓度k克/立方米和通过测量得到的湖水污染浓度c克/立方米,电脑可以迅速输出湖水被污染的时间。

程序如下:

#include

#include

classA

{

doublea,b,c,k,n;//a:

流量,b:

湖水体积,c:

污染浓度,k:

污水浓度

intyear;

public:

A(doublex,doubley,doublez,doublew)

{

a=x;

b=y;

c=z;

k=w;

n=0;

}

intfun()//

{

n=(log(1-c/k))/(log(b/(a+b)));

n=n*10+0.5;

year=n/10;

returnyear;

}

};

voidmain()

{

doubleo,p,q,r;

intyear;

cout<<"请输入"<

cout<<"流量a"<<''<<"湖水体积b"<<''<<"污染浓度"<<''<<"污水浓度”<

cin>>o>>p>>q>>r;

Aa(o,p,q,r);

cout<<"year="<

}

模型的评价

本模型运用了基本的数列递归的思想,能够很好地反映出湖水污染浓度c与污染时间n函数变化关系,通俗易懂,能为大多数人所接受。

为本模型设计的一个VC++程序可以很好地解决当知道污水流量a、湖水体积b、污水浓度k和湖水污染浓度c后推测湖水被污染的时间,程序中加入了类的编程,扩大了其应用范围,适用程度高。

但本模型也存在许多缺点,首先它建立在一个相对理想的环境下,对生活中事件发生的变化性却不能很好地把握。

其次,它破坏了时间的连续性和事件发生的连续性,将污水流入与流出的连续状态破坏,割裂了流入和流出的同时性。

为了解决这个问题,我们参考了网上微分的思想改进我们的模型。

我们取一个很小的时间段

,此时间段里增加的湖水污染浓度为

,湖水中增加的污染物为

,因为所取的时间段很小,湖水中增加的污染物也可以表示为

,所以整理可得微分方程为:

·······································(5)

根据微分方程求解的方法将可以(5)式解得

,从而我们可以建立湖水污染浓度c与污染时间n的函数关系:

我们利用原模型设置的定量和Mathematic软件导出函数图形和表格如图;

表6:

天数n从0到100

图7:

天数n从0到500

图8:

天数n从0到1000

图9:

天数n从0到1500

图10:

天数n从0到2000

表6:

天数n从0到100

天数

0

10

20

30

40

50

浓度

0

0.0243853

0.0475813

0.069646

0.0906346

0.1106

天数

60

70

80

90

100

浓度

0.129591

0.147656

0.16484

0.181186

0.196735

表7:

天数n从0到500

天数

0

50

100

150

200

250

浓度

0

0.1106

0.196735

0.263817

0.31606

0.356748

天数

300

350

400

450

500

浓度

0.388435

0.413113

0.432332

0.4473

0.458958

表8:

天数n从0到1000

天数

0

100

200

300

400

500

浓度

0

0.196735

0.31606

0.388435

0.432332

0.458958

天数

600

700

800

900

1000

浓度

0.475106

0.484901

0.490842

0.494446

0.496631

表9:

天数n从0到1500

天数

0

150

300

450

600

750

浓度

0

0.263817

0.388435

0.4473

0.475106

0.488241

天数

900

1050

1200

1350

1500

浓度

0.494446

0.497376

0.498761

0.499415

0.499723

表10:

天数n从0到2000

天数

0

200

400

600

800

1000

浓度

0

0.31606

0.432332

0.475106

0.490842

0.496631

天数

1200

1400

1600

1800

2000

浓度

0.498761

0.499544

0.499832

0.499938

0.499977

将原程序稍作修改,我们的程序可以适应于改进的模型

程序如下:

#include

#include

classA

{

doublea,b,c,k,n;//a:

流量,b:

湖水体积,c:

污染浓度,k:

污水浓度

intyear;

public:

A(doublex,doubley,doublez,doublew)

{

a=x;

b=y;

c=z;

k=w;

n=0;

}

intfun()

{

n=b*log(k/(k-c))/a;

n=n*10+0.5;

year=n/10;

returnyear;

}

};

voidmain()

{

doubleo,p,q,r;

intyear;

cout<<"请输入"<

cout<<"流量a"<<''<<"湖水体积b"<<''<<"污染浓度"<<''<<"污水浓度"<

cin>>o>>p>>q>>r;

Aa(o,p,q,r);

cout<<"year="<

}

通过原模型与改进后的模型向比较,二维的函数图象几乎一样,从图像的变化趋势上看,湖水污染浓度c与污染时间n的函数是一条类似于幂函数的单调递增的凸函数,当污染时间n=1300天左右时,湖水的污染浓度几乎达到了化工厂排放的污水浓度,由此可以看出不到4年的时间,一家化工厂可以将一条清澈的湖变成一条与其排放污水浓度一样的污水河。

从二维数据表中对应数据的比较,我们可以发现其数据之间含有很小的偏差,通过理论分析,利用微分的思想对时间连续性的影响较小,所以其精确度更高。

通过本模型的建立,递归数列的思想应该重点掌握,并能够很好地应用与实际生活中,微元的思想值得推广。

参考文献

东华大学数学建模试题A

附录

原模型与改进后的模型都适用的程序代码:

#include

#include

classA

{

doublea,b,c,k,n;//a:

流量,b:

湖水体积,c:

污染浓度,k:

污水浓度

intyear;

public:

A(doublex,doubley,doublez,doublew)

{

a=x;

b=y;

c=z;

k=w;

n=0;

}

intfun1()//原模型的求污染时间的函数

{

n=(log(1-c/k))/(log(b/(a+b)));

n=n*10+0.5;

year=n/10;

returnyear;

}

intfun2()//改进后模型求污染时间的函数

{

n=b*log(k/(k-c))/a;

n=n*10+0.5;

year=n/10;

returnyear;

}

};

voidmain()

{

doubleo,p,q,r;

intyear;

cout<<"请输入"<

cout<<"流量a"<<''<<"湖水体积b"<<''<<"污染浓度"<<''<<"污水浓度"<

cin>>o>>p>>q>>r;

Aa(o,p,q,r);

cout<<"year="<

cout<<"year="<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2