Python烟雾液体弹性力微分模拟 | 出租车往返速度微分计算

本文主要是介绍Python烟雾液体弹性力微分模拟 | 出租车往返速度微分计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

🎯要点

🎯弹性连续力学 | 🎯弱可压缩液体 | 🎯不可压缩流体(烟雾)| 🎯高度场浅水波动 | 🎯质量弹簧系统地面碰撞 | 🎯前向欧拉方法台球刚体运动,动量和动能守恒 | 🎯高度场重建水面模型实现图像渲染器 | 🎯图像体积渲染器 | 🎯磁场模拟

🎯算法微分:Python | C++漂移扩散方程和无风险套利公式算法微分

🍇Python微分计算出租车往返速度模型

微分计算的总体目标是计算:
d p rogram  d p arams  \frac{d p_{\text {rogram }}}{d p_{\text {arams }}} dparams dprogram 

即量化程序及其输出对其某些参数的敏感性。

首先,使用传统的、数据独立的代码编写一个程序来估计出租车乘坐的持续时间:

import numpy as npdef linear_predictions(weights, inputs):return np.dot(inputs, weights) * 60.0 v_avg = 30 
startup_time = 2 /60.0 inputs = np.array([[1.0, 6.0],[1.0, 4.0 ]])weights = np.array([startup_time, 1.0 / v_avg]) print("Predictions:", linear_predictions(weights, inputs))

在此代码中,我们使用某市预先计算的平均速度来计算出租车行程持续时间:大约 30 公里/小时。这是制作程序的传统方法,即数据不影响其参数。我们使用预定义的参数,这里是预先估计的平均速度,将该速度的倒数乘以行程距离,我们就得到了预期的行程持续时间。无论我们运行多少次,它都永远不会改善。它永远不会从错误中吸取教训。

微分计算提供的功能恰恰相反:每次运行都可用于微调应用程序参数。让我们看看这是如何实现的。对于计算机和人类来说都适用的一件事是,为了改进,你需要反馈。理想情况下,您需要一种方法来量化您的错误。

在计算机世界中,这可以通过在我们的初始代码中引入一个新函数来轻松完成,该函数计算相对常见的误差测量:平方误差。

import numpy as npdef linear_predictions(weights, inputs):return np.dot(inputs, weights) * 60.0def squared_loss(weights, inputs, targets):preds = linear_predictions(weights, inputs)err = (preds - targets)**2return np.sum(err)v_avg = 30 
startup_time = 2 /60.0 inputs = np.array([[1.0, 6.0],[1.0, 4.0 ]])
targets = np.array([13, 10.5])weights = np.array([startup_time, 1.0 / v_avg])
print("Trained loss:", squared_loss(weights, inputs, targets))

了解错误后,您需要一种方法来了解需要朝哪个方向修改参数以减少错误。让我们分析一个具体的例子。假设一次旅行的持续时间为 12 分钟,距离为 6 公里。要用我们的模型精确预测这个值,模型的正确参数应该是 30 公里。

让我们看一下平方误差相对于我们的参数(平均速度)的图,以获得一些见解。整个代码很简单:

import matplotlib.pyplot as plt
import numpy as nptrip_distance = 6.0 
trip_duration = 12.0 
trip_avg_speed = 30.0 def duration(distance, speed):return distance * 1/speed * 60.0real_duration = duration(trip_distance, trip_avg_speed)speeds = np.linspace(5, 50)
duration = np.vectorize(lambda speed: duration(trip_distance, speed))(speeds)
error = 12 - durationfig, ax = plt.subplots()
ax.grid(True, which='both')ax.plot(speeds, duration, label='Trip duration wrt speed')
ax.plot(speeds, error, label='Error wrt to speed param')
ax.scatter([trip_avg_speed], [0], label='Error for real average speed')plt.xlabel('average speed')
plt.legend()
plt.show()

蓝色曲线显示了行程持续时间相对于速度的演变。更快的行程显然会导致更短的行程持续时间。橙色曲线将误差显示为实际持续时间(此处为 12 分钟)与给定所选速度的行程持续时间之间的简单差异。对于实际平均速度:30km/h,该误差为零。绿色曲线是平方误差。与误差类似,平均速度为 30 km/h 时达到零。

👉参阅一:计算思维

👉参阅二:亚图跨际

这篇关于Python烟雾液体弹性力微分模拟 | 出租车往返速度微分计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1065873

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa