数学建模及数据分析上的插值处理——第三部分实践插值实战
2.二维网格节点插值
例 已知平面区域0<=x<=1400,0<=y<=1200的高程数据见下表(单位:m)。求该区域地表面积的近似值,并用插值数据画出该区域的等高线图和三维表面图。
程序代码
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
import numpy as np
from numpy.linalg import norm
from scipy.interpolate import interp2dz=np.loadtxt("Pdata7_5.txt") #加载高程数据
x=np.arange(0,1500,100)
y=np.arange(1200,-100,-100)
f=interp2d(x, y, z, 'cubic')
xn=np.linspace(0,1400,141)
yn=np.linspace(0,1200,121)
zn=f(xn, yn)m=len(xn); n=len(yn); s=0;
for i in np.arange(m-1):for j in np.arange(n-1):p1=np.array([xn[i],yn[j],zn[j,i]])p2=np.array([xn[i+1],yn[j],zn[j,i+1]])p3=np.array([xn[i+1],yn[j+1],zn[j+1,i+1]])p4=np.array([xn[i],yn[j+1],zn[j+1,i]])p12=norm(p1-p2); p23=norm(p3-p2); p13=norm(p3-p1);p14=norm(p4-p1); p34=norm(p4-p3);L1=(p12+p23+p13)/2;s1=np.sqrt(L1*(L1-p12)*(L1-p23)*(L1-p13));L2=(p13+p14+p34)/2; s2=np.sqrt(L2*(L2-p13)*(L2-p14)*(L2-p34));s=s+s1+s2;
print("区域的面积为:", s)plt.rc('font',size=16)
plt.rc('text')
plt.subplot(121)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#一堆大神解释说官方给的代码有问题 然后你们跑不出来 实际上就是python版本
#的问题 你没升级python要么就直接改python的配置文件 要么就重载python配置文件
#不懂的咱就别胡说八道了好么
contr=plt.contour(xn,yn,zn)
plt.clabel(contr)
plt.xlabel('$x$')
plt.ylabel('$y$',rotation=90)
ax=plt.subplot(122,projection='3d');
#我真服了 subplot三位数中前两位是你要创建画布的方格是一个几行乘以几列的方格
#然后从左到右 从上到下以此排位置索引 左上角的是第一个 右下角的是最后一个
#官方解释为可以使用三个整数,或者三个独立的整数来描述子图的位置信息。
#如果三个整数是行数、列数和索引值,子图将分布在行列的索引位置上。索引从1开始,从右上角增加到右下角。
X,Y=np.meshgrid(xn,yn)
ax.plot_surface(X, Y, zn,cmap='viridis')
ax.set_xlabel('$x$'); ax.set_ylabel('$y$'); ax.set_zlabel('$z$')
plt.savefig('figure7_5.png',dpi=1000); plt.show()
3.二维散乱点插值
例 在某海域测得一些点(x,y)处的水深z由下表给出,画出海底区域的地形和等高线图。
from mpl_toolkits import mplot3d
import matplotlib.pyplot as plt
import numpy as np
from scipy.interpolate import griddata
x=np.array([129,140,103.5,88,185.5,195,105,157.5,107.5,77,81,162,162,117.5])
y=np.array([7.5,141.5,23,147,22.5,137.5,85.5,-6.5,-81,3,56.5,-66.5,84,-33.5])
z=-np.array([4,8,6,8,6,8,8,9,9,8,8,9,4,9])
xy=np.vstack([x,y]).T
xn=np.linspace(x.min(), x.max(), 100)
yn=np.linspace(y.min(), y.max(), 100)
xng, yng = np.meshgrid(xn,yn) #构造网格节点
zn=griddata(xy, z, (xng, yng), method='nearest') #最近邻点插值
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
plt.rc('font',size=16); plt.rc('text')
ax=plt.subplot(121,projection='3d');
ax.plot_surface(xng, yng, zn,cmap='viridis')
ax.set_xlabel('$x$'); ax.set_ylabel('$y$'); ax.set_zlabel('$z$')
plt.subplot(122); c=plt.contour(xn,yn,zn,8); plt.clabel(c)
plt.savefig('figure7_6.png',dpi=500); plt.show()
数学建模及数据分析上的插值处理——第三部分实践插值实战相关推荐
- 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)
文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...
- 数学建模与数据分析 || 1. 数学建模简介
数学建模简介 文章目录 数学建模简介 1. 数学建模比赛的理解 2. 一般数据分析的流程 3. 机器学习与统计数据分析 4. 各种编程软件仅仅是工具,对问题的观察视角和解决问题的策略才是关键 4.1 ...
- 2020暑期数学建模(数据分析)学习笔记
总算忙完所有课程论文,购买了视频课程. 第1讲 层次分析法 综合评价课已学,B站视频也看了,略过. 第2讲 TOPSIS法(优劣解距离法) 综合评价课已学,B站视频也看了,略过. 第3讲 插值算法 针 ...
- 【数学建模 | 快速入门(上)】笔记----(P1-P8)
P3:赛前准备 1.在搜索大量文献之后,排除背景看不懂的题,优先选择资料多的 2.少数服从多数,在看完题之后,可以三个人各自发表看法 3.尽量开赛6小时内定题 P4 如何百度 P5 查文献技巧 P6 ...
- 数学建模与数据分析 || 3. 面向数据的特征提取方法: 探索性数据分析
面向数据的特征提取方法: 探索性数据分析 文章目录 面向数据的特征提取方法: 探索性数据分析 1. 原始数据的准备 1.1 导入 python 模块 1.2 导入数据集并进行宏观认识 1.3 数据集描 ...
- 数学建模与数据分析中的时间序列分析
时间序列分析 将某种现象的指标数值按照时间顺序排列而成的数值序列. 文章目录 (1) 时间序列的基本概念 1. 组成要素 2. 时间序列的分类 3. 时间序列的分解 ① 长期变动趋势 T ② 季节趋势 ...
- 数学建模(数据分析C题)-建模思路
前言: 参考E038 的2019薄利多销优秀论文的模型建立与求解 http://dxs.moe.gov.cn/zx/a/hd_sxjm_sxjmlw_2019qgdxssxjmjslwzs/19102 ...
- 数学建模——永冻土层上关于路基热传导问题
永冻土层上关于路基热传导问题 问题描述 模型求解 问题一的分析 一维耦合抛物型偏微分方程模 热传导方程 耦合抛物型偏微分方程 采用CN格式处理 问题一结果展示 后续问题 问题描述 在永冻土地上铺设道路 ...
- 数学建模与数据分析中的灰色关联分析
灰色关联分析 可以在数据量比较少的情况下,分析出主要因素.次要因素等 文章目录 (1) 数理统计传统方法的问题 (2) 灰色关联分析 1. 基本思想 2. 进行系统分析 3. 用于综合评价模型 (1) ...
最新文章
- 在有赞工作两年半的感受
- 理解ORACLE数据库字符集
- 计算机网络 DNS协议 FTP DHCP
- 在Eclipse中使用CVS的实践建议
- Python URL编码
- 如何使用键盘快捷键在Mac上录制屏幕?
- 所谓高手,就是把自己活成了贝叶斯定理
- 屏幕取词翻译软件:Lingoes 灵格斯词霸
- jQuery阻止提交表单的实现方法
- SSM项目转Springboot项目
- 经验模态分解(EMD)
- html 415错误,HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)
- python——月供计算器
- 基于UML软件建模的企业人事管理系统
- XML文件约束之DTD详解
- Bolt: Anonymous Payment Channels for Decentralized Currencies 学习笔记
- UA MATH563 概率论的数学基础1 概率空间4 实数域上的概率测度
- 不能换行 俄语 前端h5_H5兼容问题及解决方法
- 计算机考研怎么给老师发邮件,2015考研复试给导师的邮件怎么写?_跨考网
- 餐饮外卖平台小程序源码,附带详细教程
热门文章
- 博雅数智|3.23直播笔记
- SpringBoot通过dubbo-spring-boot-starter整合Dubbo出现的问题
- 陈艾盐:《春燕》百集访谈节目第三十七集
- 关于oxc000007b错误的解决办法
- windows 1903用linux使用,Win10 build 1903中的WSL Update允许您从Windows访问Linux文件
- 【国内SEO大牛】网站统计显示被违禁词搜索进来原因
- Android音乐播放器---实现Notification控制音乐播放
- 巧用千寻位置GNSS软件|CAD功能全解析
- stm32: 串口空闲中断的实现(HAL库)
- VASP学习笔记--简单的VASP运行实例:CrI3做非磁的优化