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中requests小技巧
May 10 Python
Python简单计算数组元素平均值的方法示例
Dec 26 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
python查看列的唯一值方法
Jul 17 Python
python hough变换检测直线的实现方法
Jul 12 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
pytorch中的自定义数据处理详解
Jan 06 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
详细分析Python collections工具库
Jul 16 Python
python Matplotlib模块的使用
Sep 16 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
Python自动化测试PO模型封装过程详解
Jun 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
php获得当前的脚本网址
2007/12/10 PHP
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
8个必备的PHP功能开发
2015/10/02 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
PHP实现QQ登录的开原理和实现过程
2018/02/04 PHP
php读取本地json文件的实例
2018/03/07 PHP
url 编码 js url传参中文乱码解决方案
2010/04/11 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
使用Nodejs开发微信公众号后台服务实例
2014/09/03 NodeJs
jQuery过滤选择器详解
2015/01/13 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
基于JavaScript实现高德地图和百度地图提取行政区边界经纬度坐标
2016/01/22 Javascript
js简单实现调整网页字体大小的方法
2016/07/23 Javascript
Vue中使用vux的配置详解
2017/05/05 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
用POSTMAN发送JSON格式的POST请求示例
2018/09/04 Javascript
python zip文件 压缩
2008/12/24 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python写入xml文件的方法
2015/05/08 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
Django+Celery实现动态配置定时任务的方法示例
2020/05/26 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
利用CSS3实现圆角的outline效果的教程
2015/06/05 HTML / CSS
CSS3 mask 遮罩的具体使用方法
2017/11/03 HTML / CSS
如何在存储过程中使用Loop
2016/01/05 面试题
党员自我评价分享
2013/12/13 职场文书
求职面试个人自我评价
2014/02/28 职场文书
高中军训感言1000字
2014/03/01 职场文书
安全教育感言
2014/03/04 职场文书
争先创优活动总结
2014/08/27 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang
Matplotlib绘制混淆矩阵的实现
2021/05/27 Python