python实现数学模型(插值、拟合和微分方程)


Posted in Python onNovember 13, 2020

问题1 车辆数量估计

题目描述

交通管理部门为了掌握一座桥梁的通行情况,在桥梁的一端每隔一段不等的时间,连续记录1min内通过桥梁的车辆数量,连续观测一天24h的通过车辆,车辆数据如下表所示。试建立模型分析估计这一天中总共有多少车辆通过这座桥梁。

python实现数学模型(插值、拟合和微分方程)

python 实现(关键程序)

def get_line(xn, yn):
    def line(x):
        index = -1
        # 找出x所在的区间
        for i in range(1, len(xn)):
            if x <= xn[i]:
                index = i - 1
                break
            else:
                i += 1
        if index == -1:
            return -100
        # 插值
        result = (x - xn[index + 1]) * yn[index] / float((xn[index] - xn[index + 1])) + (x - xn[index]) * yn[
            index + 1] / float((xn[index + 1] - xn[index]))
        return result
    return line
time = [0, 2, 4, 5, 6, 7, 8,
    9, 10.5, 11.5, 12.5, 14, 16, 17,
    18, 19, 20, 21, 22, 23, 24]
num = [2, 2, 0, 2, 5, 8, 25,
    12, 5, 10, 12, 7, 9, 28,
    22, 10, 9, 11, 8, 9, 3]
# 分段线性插值函数
lin = get_line(time, num)
# time_n = np.arange(0, 24, 1/60)
time_n = np.linspace(0, 24, 24*60+1)
num_n = [lin(i) for i in time_n]
sum_num = sum(num_n)
print("估计一天通过的车辆:%d" % sum_num)

结果

python实现数学模型(插值、拟合和微分方程)python实现数学模型(插值、拟合和微分方程)

问题2 旧车平均价格

题目描述

某年美国旧车价格的调查资料如下表所示,其中 x i x_i xi​表示轿车的使用年数, y i y_i yi​表示相应的平均价格。试分析用什么形式的曲线拟合表中所给的数据,并预测使用4.5年后轿车的平均价格大致为多少?

python实现数学模型(插值、拟合和微分方程)

Python 实现(关键程序)

from scipy.optimize import curve_fit
def func(x, a, b, c): # 指数函数拟合
  return a * (b**(x-1)) + c

year = np.arange(1, 11, 1)
price = [2615, 1943, 1494, 1087, 765, 538, 484, 290, 226, 204]

popt, pcov = curve_fit(func, year, price)
a = popt[0]
b = popt[1]
c = popt[2]
price_fit = func(year, a, b, c)

结果

python实现数学模型(插值、拟合和微分方程)
python实现数学模型(插值、拟合和微分方程)

问题3 微分方程组求解

题目描述

求下列微分方程组(竖直加热板的自然对流)的数值解

python实现数学模型(插值、拟合和微分方程)

Python实现(关键程序)

from scipy.integrate import solve_ivp
def natural_convection(eta, y): # 将含有两个未知函数的高阶微分方程降阶,得到由2+3个一阶微分方程组成的方程组
  T1 = y[0]
  T2 = y[1]
  f1 = y[2]
  f2 = y[3]
  f3 = y[4]
  return T2, -2.1*f1*T2, f2, f3, -3*f1*f3 + 2*(f2**2)-T1

eta = np.linspace(0, 10, 1000)
eta_span = [0, 10]
init = np.array([ 1, -0.5, 0, 0, 0.68])

curve = solve_ivp(natural_convection, eta_span, init, t_eval=eta)

结果

python实现数学模型(插值、拟合和微分方程)

问题4 野兔数量 题目描述

某地区野兔的数量连续9年的统计数量(单位:十万)如下表所示.预测t = 9, 10时野兔的数量。

python实现数学模型(插值、拟合和微分方程)

Python实现(关键程序)

import numpy as np

year = np.arange(0, 9, 1)
num = [5, 5.9945, 7.0932, 8.2744, 9.5073, 10.7555, 11.9804, 13.1465, 14.2247]

fit = np.polyfit(year, num, 1)
print("线性拟合表达式:", np.poly1d(fit))
num_fit = np.polyval(fit, year)
plt.plot(year, num, 'ro', label='原始数据')
plt.plot(year, num_fit, 'b-',label='拟合曲线')
year_later = np.arange(8, 11, 0.5)
num_fit_curve = fit[0] * year_later + fit[1]

结果

python实现数学模型(插值、拟合和微分方程)

到此这篇关于python实现数学模型(插值、拟合和微分方程)的文章就介绍到这了,更多相关python数学模型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
利用python操作SQLite数据库及文件操作详解
Sep 22 Python
python+opencv实现霍夫变换检测直线
Oct 23 Python
python numpy存取文件的方式
Apr 01 Python
python是否适合网页编程详解
Oct 04 Python
keras tensorflow 实现在python下多进程运行
Feb 06 Python
Python3 Click模块的使用方法详解
Feb 12 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
python和C++共享内存传输图像的示例
Oct 27 Python
整理Python中常用的conda命令操作
Jun 15 Python
Python Matplotlib库实现画局部图
Nov 17 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
Nov 13 #Python
Python图像识别+KNN求解数独的实现
Nov 13 #Python
Django正则URL匹配实现流程解析
Nov 13 #Python
Django框架请求生命周期实现原理
Nov 13 #Python
python在地图上画比例的实例详解
Nov 13 #Python
python语言实现贪吃蛇游戏
Nov 13 #Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 #Python
You might like
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
网页防止tab键的使用快速解决方法
2013/11/07 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
原生js和jquery实现图片轮播淡入淡出效果
2015/04/23 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
2016/11/22 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
canvas绘制多边形
2017/02/24 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
React优化子组件render的使用
2019/05/12 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python datetime时间格式化去掉前导0
2014/07/31 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
2019/12/04 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
Scrapy 配置动态代理IP的实现
2020/09/28 Python
Canvas多边形绘制的实现方法
2019/08/05 HTML / CSS
DBA的职责都有哪些
2012/05/16 面试题
业务助理岗位职责
2013/11/18 职场文书
学校节能减排倡议书
2014/05/16 职场文书
商场促销活动策划方案
2014/08/18 职场文书
2014年大学生村官工作总结
2014/11/19 职场文书
2014年标准化工作总结
2014/12/17 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
搭建Yolov5服务器
2022/04/30 Servers