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操作CouchDB的方法
Oct 08 Python
举例介绍Python中的25个隐藏特性
Mar 30 Python
Python求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
浅谈Python NLP入门教程
Dec 25 Python
influx+grafana自定义python采集数据和一些坑的总结
Sep 17 Python
使用django-guardian实现django-admin的行级权限控制的方法
Oct 30 Python
python实现的MySQL增删改查操作实例小结
Dec 19 Python
python 解决flask uwsgi 获取不到全局变量的问题
Dec 22 Python
Python线程threading模块用法详解
Feb 26 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
500行python代码实现飞机大战
Apr 24 Python
Python Scrapy图片爬取原理及代码实例
Jun 12 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
一个多文件上传的例子(原创)
2006/10/09 PHP
Email+URL的判断和自动转换函数
2006/10/09 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
2014/08/14 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
javascript实现的基于金山词霸网络翻译的代码
2010/01/15 Javascript
浅析Javascript使用include/require
2013/11/13 Javascript
jQuery取得select选择的文本与值的示例
2013/12/09 Javascript
JavaScript语言对Unicode字符集的支持详解
2014/12/30 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
基于Css3和JQuery实现打字机效果
2015/08/11 Javascript
js关于getImageData跨域问题的解决方法
2016/10/14 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
Angularjs渲染的 using 指令的星级评分系统示例
2017/11/09 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
Vue props用法详解(小结)
2018/07/03 Javascript
详解vuex 渐进式教程实例代码
2018/11/27 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
基于原生js实现九宫格算法代码实例
2020/07/03 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[06:24]DOTA2 2015国际邀请赛中国区预选赛第二日TOP10
2015/05/27 DOTA
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
完美解决Python 2.7不能正常使用pip install的问题
2018/06/12 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python能做什么 python的含义
2019/10/12 Python
Python读取xlsx数据生成图标代码实例
2020/08/12 Python
Python实现异步IO的示例
2020/11/05 Python
python3中TQDM库安装及使用详解
2020/11/18 Python
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
应届大学生的推荐信
2013/11/20 职场文书
辅导员评语
2014/05/04 职场文书
小学语文业务学习材料
2014/06/02 职场文书
远程教育培训心得体会
2016/01/09 职场文书
小学数学新课改心得体会
2016/01/22 职场文书