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()

数学建模及数据分析上的插值处理——第三部分实践插值实战相关推荐

  1. 数学建模准备 插值(拉格朗日多项式插值,牛顿多项式插值,分段线性插值,分段三次样条插值,分段三次Hermite插值)

    文章目录 摘要(必看) 0 基础概念 什么是插值 插值用途 什么是拟合 插值和拟合的相同点 插值和拟合的不同点 1 常用的基本插值方法 1.1 多项式插值法 1.1.1 拉格朗日多项式插值法 多项式插 ...

  2. 数学建模与数据分析 || 1. 数学建模简介

    数学建模简介 文章目录 数学建模简介 1. 数学建模比赛的理解 2. 一般数据分析的流程 3. 机器学习与统计数据分析 4. 各种编程软件仅仅是工具,对问题的观察视角和解决问题的策略才是关键 4.1 ...

  3. 2020暑期数学建模(数据分析)学习笔记

    总算忙完所有课程论文,购买了视频课程. 第1讲 层次分析法 综合评价课已学,B站视频也看了,略过. 第2讲 TOPSIS法(优劣解距离法) 综合评价课已学,B站视频也看了,略过. 第3讲 插值算法 针 ...

  4. 【数学建模 | 快速入门(上)】笔记----(P1-P8)

    P3:赛前准备 1.在搜索大量文献之后,排除背景看不懂的题,优先选择资料多的 2.少数服从多数,在看完题之后,可以三个人各自发表看法 3.尽量开赛6小时内定题 P4 如何百度 P5 查文献技巧 P6 ...

  5. 数学建模与数据分析 || 3. 面向数据的特征提取方法: 探索性数据分析

    面向数据的特征提取方法: 探索性数据分析 文章目录 面向数据的特征提取方法: 探索性数据分析 1. 原始数据的准备 1.1 导入 python 模块 1.2 导入数据集并进行宏观认识 1.3 数据集描 ...

  6. 数学建模与数据分析中的时间序列分析

    时间序列分析 将某种现象的指标数值按照时间顺序排列而成的数值序列. 文章目录 (1) 时间序列的基本概念 1. 组成要素 2. 时间序列的分类 3. 时间序列的分解 ① 长期变动趋势 T ② 季节趋势 ...

  7. 数学建模(数据分析C题)-建模思路

    前言: 参考E038 的2019薄利多销优秀论文的模型建立与求解 http://dxs.moe.gov.cn/zx/a/hd_sxjm_sxjmlw_2019qgdxssxjmjslwzs/19102 ...

  8. 数学建模——永冻土层上关于路基热传导问题

    永冻土层上关于路基热传导问题 问题描述 模型求解 问题一的分析 一维耦合抛物型偏微分方程模 热传导方程 耦合抛物型偏微分方程 采用CN格式处理 问题一结果展示 后续问题 问题描述 在永冻土地上铺设道路 ...

  9. 数学建模与数据分析中的灰色关联分析

    灰色关联分析 可以在数据量比较少的情况下,分析出主要因素.次要因素等 文章目录 (1) 数理统计传统方法的问题 (2) 灰色关联分析 1. 基本思想 2. 进行系统分析 3. 用于综合评价模型 (1) ...

最新文章

  1. 在有赞工作两年半的感受
  2. 理解ORACLE数据库字符集
  3. 计算机网络 DNS协议 FTP DHCP
  4. 在Eclipse中使用CVS的实践建议
  5. Python URL编码
  6. 如何使用键盘快捷键在Mac上录制屏幕?
  7. 所谓高手,就是把自己活成了贝叶斯定理
  8. 屏幕取词翻译软件:Lingoes 灵格斯词霸
  9. jQuery阻止提交表单的实现方法
  10. SSM项目转Springboot项目
  11. 经验模态分解(EMD)
  12. html 415错误,HTTP 415 错误 – 不支持的媒体类型(Unsupported media type)
  13. python——月供计算器
  14. 基于UML软件建模的企业人事管理系统
  15. XML文件约束之DTD详解
  16. Bolt: Anonymous Payment Channels for Decentralized Currencies 学习笔记
  17. UA MATH563 概率论的数学基础1 概率空间4 实数域上的概率测度
  18. 不能换行 俄语 前端h5_H5兼容问题及解决方法
  19. 计算机考研怎么给老师发邮件,2015考研复试给导师的邮件怎么写?_跨考网
  20. 餐饮外卖平台小程序源码,附带详细教程

热门文章

  1. 博雅数智|3.23直播笔记
  2. SpringBoot通过dubbo-spring-boot-starter整合Dubbo出现的问题
  3. 陈艾盐:《春燕》百集访谈节目第三十七集
  4. 关于oxc000007b错误的解决办法
  5. windows 1903用linux使用,Win10 build 1903中的WSL Update允许您从Windows访问Linux文件
  6. 【国内SEO大牛】网站统计显示被违禁词搜索进来原因
  7. Android音乐播放器---实现Notification控制音乐播放
  8. 巧用千寻位置GNSS软件|CAD功能全解析
  9. stm32: 串口空闲中断的实现(HAL库)
  10. VASP学习笔记--简单的VASP运行实例:CrI3做非磁的优化