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 相关文章推荐
pandas获取groupby分组里最大值所在的行方法
Apr 20 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
举例讲解Python常用模块
Mar 08 Python
bluepy 一款python封装的BLE利器简单介绍
Jun 25 Python
python super的使用方法及实例详解
Sep 25 Python
python自动生成model文件过程详解
Nov 02 Python
tensorflow对图像进行拼接的例子
Feb 05 Python
Python操作MySQL数据库的示例代码
Jul 13 Python
Python读取多列数据以及用matplotlib制作图表方法实例
Sep 23 Python
GitHub上值得推荐的8个python 项目
Oct 30 Python
Python urllib request模块发送请求实现过程解析
Dec 10 Python
python实现控制台输出颜色
Mar 02 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
如何使用脚本模仿登陆过程
2006/11/22 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
Javascript remove 自定义数组删除方法
2009/10/20 Javascript
ImageZoom 图片放大镜效果(多功能扩展篇)
2010/04/14 Javascript
IE8 chrome中table隔行换色解决办法
2010/07/09 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
2012/07/31 Javascript
Javascript基础知识(二)事件
2014/09/29 Javascript
WebSocket+node.js创建即时通信的Web聊天服务器
2016/08/08 Javascript
PHP 实现一种多文件上传的方法
2017/09/20 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
vue-devtools的安装步骤
2018/04/23 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
python实现文本去重且不打乱原本顺序
2016/01/26 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
基于Python列表解析(列表推导式)
2018/06/23 Python
Python3实现取图片中特定的像素替换指定的颜色示例
2019/01/24 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
化学相关工作求职信
2013/10/02 职场文书
团组织关系介绍信
2014/01/12 职场文书
服装创业计划书范文
2014/02/05 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
八年级英语教学反思
2016/02/15 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
python利用while求100内的整数和方式
2021/11/07 Python