博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数学建模小练习(1):插值【转】
阅读量:6257 次
发布时间:2019-06-22

本文共 1168 字,大约阅读时间需要 3 分钟。

转:http://site.douban.com/182577/widget/notes/10567181/note/262669861/

全国大学生数学建模竞赛2011A。插值。

题目和数据:
第一问是讨论8种重金属元素在城区的空间分布,并分析不同区域的污染程度。
描述空间分布比较好的方式是把这个空间以图形的方式展示出来。
对整个城区面积来说,300多个采样点的数据过少,可用插值拟合的方法获得各重金属污染物浓度的空间分布。再参考由背景值确定的阈值,定量分析城区各区域的污染程度。
由于空间数据是不规则的,较好的方法是用散乱数据插值,线性插值的效果不好。
下面采用kriging插值:。
mum<-read.csv('mum2011.csv')#把数据附件1,2合并,存为mum2011.csv
library(kriging)
kriged <- kriging(mum$x, mum$y, mum$hight, pixels=100)#对海拔进行差值
map<-kriged$map
library(ggplot2)
v <- ggplot(map, aes(x, y, z = pred))#绘制海拔图,在其上标识功能区,pred是海拔插值的结果
v + geom_tile(aes(fill = pred))+
stat_contour(binwidth = 20)+
scale_fill_gradientn(colours=c('darkgreen','green','orange','yellow','white'))+
annotate("text",x=mum$x,y=mum$y,label=mum$area)

 

功能区分别是
1 生活区
2 工业区
3 山区
4 交通区
5 公园绿地区
krigedcu <- kriging(mum$x, mum$y, mum$Cu, pixels=100)#对铜的浓度插值
mapcu<-krigedcu$map
v <- ggplot(mapcu, aes(x, y, z = pred))#绘铜的浓度图
v + geom_tile(aes(fill = pred))+
stat_contour(binwidth = 100)+
scale_fill_gradientn(colours=c('blue','green','orange','yellow','red'))+
annotate("text",x=mum$x,y=mum$y,label=mum$area)

 

其他重金属类似作图即可。结合海拔和功能区,不难描述污染的情况。
R里边常用的绘制等高线图的函数是contour( ),这个函数要求坐标x,y值递增,对散乱数据不合适,所以采用ggplot2来画图。

转载地址:http://sstsa.baihongyu.com/

你可能感兴趣的文章
计算器作业(摘要算法)
查看>>
嵌入式 Linux 学习 之路
查看>>
关于微信获取access_token接口,返回值为-1000的问题
查看>>
tornado 10 长轮询和 websocket
查看>>
CSU - 1356 Catch (判奇环)
查看>>
在多线程中使用静态方法是否有线程安全问题(转载)
查看>>
Google
查看>>
js大图轮播和倒计时
查看>>
Java多线程
查看>>
Sphinx学习笔记(一)
查看>>
使用jmeter 做个简单的接口测试
查看>>
CSS对浏览器的兼容性(IE和Firefox)技巧整理
查看>>
Poj 2388 Who's in the Middle
查看>>
springboot与redis
查看>>
关于python文件操作
查看>>
读《Cassandra权威指南》
查看>>
Xmanager连接linux
查看>>
Android开发教程 --- 数据存储 SQLite
查看>>
js 继承
查看>>
Lambda表达式现状分析
查看>>