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实现扫描局域网活动ip(扫描在线电脑)
Apr 28 Python
Python PyQt5标准对话框用法示例
Aug 23 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
python3 flask实现文件上传功能
Mar 20 Python
使用Python开发SQLite代理服务器的方法
Dec 07 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
TensorFlow实现从txt文件读取数据
Feb 05 Python
mac安装python3后使用pip和pip3的区别说明
Sep 01 Python
Python字典dict常用方法函数实例
Nov 09 Python
Python更改pip镜像源的方法示例
Dec 01 Python
浏览器常用基本操作之python3+selenium4自动化测试(基础篇3)
May 21 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连接和操作MySQL数据库基础教程
2014/09/29 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
php将字符串随机分割成不同长度数组的方法
2015/06/01 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
PHP代码实现爬虫记录――超管用
2015/07/31 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
2016/11/05 PHP
Extjs中TabPane如何嵌套在其他网页中实现思路及代码
2013/01/27 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
JavaScript中的标签语句用法分析
2015/02/10 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
跟我学习javascript的this关键字
2020/05/28 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
Vue.js每天必学之过滤器与自定义过滤器
2016/09/07 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
JS表单传值和URL编码转换
2018/03/03 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
2019/03/15 Javascript
js实现div色块碰撞
2020/01/16 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
2018/08/02 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
python或C++读取指定文件夹下的所有图片
2019/08/31 Python
通过实例解析python创建进程常用方法
2020/06/19 Python
HTML5拖放功能_动力节点Java学院整理
2017/07/13 HTML / CSS
俄罗斯最大的香水和化妆品网上商店:Randewoo
2020/11/05 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
《雾凇》教学反思
2014/02/17 职场文书
超市国庆节促销方案
2014/02/20 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
幼儿园工作总结2015
2015/04/01 职场文书
民事二审代理词
2015/05/25 职场文书
爱的教育观后感
2015/06/17 职场文书
车间安全生产管理制度
2015/08/06 职场文书
mysql5.7使用binlog 恢复数据的方法
2021/06/03 MySQL
小程序实现侧滑删除功能
2022/06/25 Javascript