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配置文件解析模块ConfigParser使用实例
Apr 13 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
python实现类之间的方法互相调用
Apr 29 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
Python实现朴素贝叶斯分类器的方法详解
Jul 04 Python
python爬取微信公众号文章的方法
Feb 26 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
python删除文件、清空目录的实现方法
Sep 23 Python
pycharm 的Structure界面设置操作
Feb 05 Python
python实战之一步一步教你绘制小猪佩奇
Apr 22 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
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
PHP几个实用自定义函数小结
2016/01/25 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
php中get_magic_quotes_gpc()函数说明
2017/02/06 PHP
php curl获取到json对象并转成数组array的方法
2018/05/31 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
Yii 框架控制器创建使用及控制器响应操作示例
2019/10/14 PHP
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
详解webpack+gulp实现自动构建部署
2017/06/29 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
微信小程序实现自上而下字幕滚动
2018/07/14 Javascript
jQuery实现参数自定义的文字跑马灯效果
2018/08/15 jQuery
微信小程序实现弹出层效果
2020/05/26 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
webpack 代码分离优化快速指北
2019/05/18 Javascript
详解mpvue开发微信小程序基础知识
2019/09/23 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
Python使用Tkinter实现转盘抽奖器的步骤详解
2020/01/06 Python
html5指南-3.如何实现html元素拖拽功能
2013/01/07 HTML / CSS
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
学校出纳员岗位职责
2014/03/18 职场文书
营销团队口号
2014/06/06 职场文书
企业环保标语
2014/06/10 职场文书
爱护环境建议书
2015/09/14 职场文书
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电
Java中Dijkstra(迪杰斯特拉)算法
2022/05/20 Java/Android