人工智能数学与代码实现--数值分析4(插值计算实例)

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计10425字,阅读大概需要20分钟
🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号:不懂开发的程序猿
⏰个人网站:https://jerry-jy.co/

❗❗❗知识付费,🈲止白嫖,有需要请后台私信或【文末】个人微信公众号联系我

人工智能数学与代码实现–数值分析4(插值计算实例)


实验背景

随着现代数据科学技术的发展,大量问题被抽象为具体的符号化数学模型。模型的求解往往是一个复杂的数值计算问题,在实际解决这些计算问题的过程中,数值分析作为一门学科孕育而生。数值分析、计算方法、科学计算本质上是一个意思,就是研究各种数学问题,进行数值计算的一门学科,是数学的一个分支。许多计算领域的问题,如计算物理、计算力学、计算化学、计算经济学等,都可归结为数值计算问题。插值是数值分析领域的一个主要部分,利用插值法可以通过函数在有限个点处的取值状况估计出该函数在其他点处的值。本实验主要运用插值理论对一些实例的应用。

实验描述:

本次实验数据:

(1)test.xlsx包含1-15周中奇数周实验数据

数据路径为:/root/experiment/data/test.xlsx

对该数据进行三次样条插值

(2)sand.xlsx包含在指定的的陌生区域内一些地点的高程

数据路径为:/root/experiment/data/sand.xlsx

对该数据进行二维三次样条插值

实验环境

  1. Oracle Linux 7.4

  2. Python 3

实验目的

  1. 基于Python实现Lagrange插值、Newton插值

  2. 基于Python实现分段式线性插值、临近插值和样条插值

  3. 基于Python实现二维网格节点插值

知识点

  1. Lagrange插值、Newton插值

  2. 分段式线性插值、临近插值和样条插值

  3. 二维网格节点插值

实验分析

在这里插入图片描述

任务实施过程

一、打开Jupyter,并新建python工程

1.桌面空白处右键,点击Konsole打开一个终端

2.切换至/experiment/jupyter目录

cd experiment/jupyter

3.启动Jupyter,root用户下运行需加–allow-root

jupyter notebook --ip=127.0.0.1 --allow-root

在这里插入图片描述
在这里插入图片描述

4.依次点击右上角的 New,Python 3新建python工程

在这里插入图片描述

在这里插入图片描述

5.点击Untitled,在弹出框中修改标题名,点击Rename确认

在这里插入图片描述

二、机动车刹车距离问题

在车辆行驶中,从驾驶员看到障碍物开始,到作出判断而采取制动措施停车所需的最短距离叫停车视距。停车视距(d)由三部分组成:

一是驾驶员反应时间内行驶的距离(即反应距离d1) ;

二是开始制动到车辆完全停止所行驶的距离(即制动距离d2) ;

三是车辆停止时与障碍物应该保持的安全距离。

其中,制动距离主要与行驶速度和路面类型有关。

根据测试,某型车辆在潮湿天气于沥青路面行驶时,其行车速度(单位: km/h )与制动距离(单位: m)的关系如下表所示

在这里插入图片描述

from numpy import arange,array,argsort,around
import matplotlib.pyplot as plt
from scipy.interpolate import interp1d
# 第一步:建立速度和停车视距向量
v = arange(20,160,10)
# 速度单位转换,这里的vs单位是 m/s
vs = v*(1000/3600)
# 求得不同速度下的反应距离
d1 = 10*vs
# 不同速度下的制动距离
d2 = array([3.15,7.08,12.59,19.68,28.34,38.57,50.4,
           63.75,78.71,95.22,113.29,132.93,154.12,176.87])
# 视距=反应距离+制动距离+安全距离
d = d1 + d2 + 10
# 第二步:以1为单位,对采样区间内所有速度进行插值,计算出相应的停车视距。
vnew = arange(20,151,1)
f = interp1d(v, d, kind='cubic')
dnew = f(vnew)
# 第三步:求出停车视距120所对应的速度。
x=abs(dnew-120)
# 通过索引,找到对应的速度
# argsort()是将X中的元素从小到大排序后提取对应的索引,索引为0的元素即为x的最小值
v1 = vnew[argsort(x)[0]]
print('驾驶时的有效视距为120m时,时速最高不能超过{}km/h'.format(v1))
# 第四步:绘图展示
plt.plot(vnew,dnew,'-',v1,f(v1),'o')
plt.xlabel('v')
plt.ylabel('d')
plt.show()  

在这里插入图片描述
在这里插入图片描述
由上图可知:

停车视距的增长随着车速的增加呈非线性增长。速度越快,要求视线越远

print('可视距在{}m以上时,可以保证125km/h的高速公路是安全的'.format(around(f(125),2)))
plt.plot(vnew,dnew,'-',125,f(125),'o')
plt.xlabel('v')
plt.ylabel('d')
plt.show()

在这里插入图片描述

三、甘油的粘度问题

甘油是一种液体,它的粘度是温度的函数,如下表所示:
在这里插入图片描述

对表格中数据执行如下操作

(1)使用Lagrange插值法,预计室温为23 ℃时的甘油粘度

(2)使用Newton插值法,预计室温为23 ℃时的甘油粘度

(3)使用分段式线性插值、临近插值和三次样条插值,预计室温为23 ℃时的甘油粘度,并画出温度区间在[0,50]的三种插值图像

(1): Lagrange插值

from scipy 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不懂开发的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值