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 相关文章推荐
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
插入排序_Python与PHP的实现版(推荐)
May 11 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
Nov 08 Python
浅谈python jieba分词模块的基本用法
Nov 09 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
Django之模型层多表操作的实现
Jan 08 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
Python写出新冠状病毒确诊人数地图的方法
Feb 12 Python
python实现批量修改文件名
Mar 23 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
Apr 15 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
Zerg基本策略
2020/03/14 星际争霸
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
thinkphp3查询mssql数据库乱码解决方法分享
2014/02/11 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP判断当前使用的是什么浏览器(推荐)
2019/10/27 PHP
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
原生Js与jquery的多组处理, 仅展开一个区块的折叠效果
2011/01/09 Javascript
jQuery中$.fn的用法示例介绍
2013/11/05 Javascript
深入理解JavaScript系列(17):面向对象编程之概论详细介绍
2015/03/04 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
bootstrap 表单验证使用方法
2017/01/11 Javascript
vue如何引用其他组件(css和js)
2017/04/13 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
10分钟上手vue-cli 3.0 入门介绍
2018/04/04 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
2019/04/02 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
OpenLayers3加载常用控件使用方法详解
2020/09/25 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
Python基于回溯法解决01背包问题实例
2017/12/06 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
微软香港官网及网上商店:Microsoft HK
2016/09/01 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
教育专业个人求职信
2013/12/02 职场文书
预备党员思想汇报
2014/01/08 职场文书
社区平安建设方案
2014/05/25 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
就业导师推荐信范文
2015/03/27 职场文书
详解非极大值抑制算法之Python实现
2021/06/28 Python
nginx配置之并发频次限制
2022/04/18 Servers