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实现人人网登录示例分享
Jan 19 Python
Python使用plotly绘制数据图表的方法
Jul 18 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
Python完成哈夫曼树编码过程及原理详解
Jul 29 Python
python3.6 tkinter实现屏保小程序
Jul 30 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
浅析python中的del用法
Sep 02 Python
python 写一个性能测试工具(一)
Oct 24 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
python文件目录操作之os模块
May 08 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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 表单验证实现代码
2009/03/10 PHP
PHP Socket 编程
2010/04/09 PHP
基于PHP实现商品成交时发送短信功能
2016/05/11 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
jquery.validate使用攻略 第二部
2010/07/01 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
2015/10/02 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
jQuery实现的跨容器无缝拖动效果代码
2016/06/21 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
EasyUI实现下拉框多选功能
2017/11/07 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
2017/12/24 Javascript
小程序实现搜索框
2020/06/19 Javascript
详解微信小程序图片地扯转base64解决方案
2019/08/18 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
vue移动端弹起蒙层滑动禁止底部滑动操作
2020/07/22 Javascript
[08:40]Navi Vs Newbee
2018/06/07 DOTA
Python之自动获取公网IP的实例讲解
2017/10/01 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
Python实现判断给定列表是否有重复元素的方法
2018/04/11 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python scatter函数用法实例详解
2020/02/11 Python
使用python 计算百分位数实现数据分箱代码
2020/03/03 Python
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
Order by的几种用法
2013/06/16 面试题
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
校园安全标语
2014/06/07 职场文书
工人先锋号申报材料
2014/12/29 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电