numerical-integration相关内容

理解自适应龙格库塔积分器的局部截断误差

我正在实现一个RKF4(5)积分器,但我无法确定我的代码是否工作正常,并且我不理解本地截断错误,或者我的代码是否不工作。 对于代码块的大小,我深表歉意,但在这种情况下,最小可重现示例相当大。 import numpy as np def RKF45(state, derivative_function, h): """ Calculate the next state ..

将PANDAS.DataFrame的集成矢量化

我有DataFrame个力-位移数据。位移数组已设置为DataFrame索引,列是我针对不同测试的各种力曲线。 如何计算已完成的功(即“曲线下面积”)? 我查看了numpy.trapz,它似乎做了我需要的事情,但我认为我可以避免像这样循环遍历每一列: import numpy as np import pandas as pd forces = pd.read_csv(... ..
发布时间:2022-03-17 09:09:45 Python

具有更多参数和集成的函数

我有一个简单的问题,但我无法在任何地方找到解决方案.我必须集成一个函数(例如使用 Simpson 的规则子例程),但我必须将多个参数传递给我的函数:一个是我稍后要集成的变量,另一个只是来自不同的值我无法在函数内部执行的计算. 问题在于 Simpson 子例程只接受 f(x) 来执行积分,而不接受 f(x,y). 根据 Vladimir 的建议,我修改了代码. 下面的例子: 程序 ..
发布时间:2022-01-14 09:42:05 其他开发

当函数作为离散值给出时求解 ODE -matlab-

我有以下 ODE: x_dot = 3*x.^0.5-2*x.^1.5 % (等式1) 我正在使用 ode45 来解决它.我的解决方案是作为一个dim(k x 1) 向量给出的(通常k = 41,由tspan 给出). 另一方面,我已经制作了一个近似于(1)中的模型的模型,但是为了比较第二个模型的准确度,我想通过ode45.我的问题是这第二个 ode 是离散的: x_dot = f(x ..
发布时间:2021-12-08 15:07:23 其他开发

ODE45 和 Runge-Kutta 方法与解析解相比的绝对误差

如果有人可以帮助解决以下问题,我将不胜感激.我有以下 ODE: dr/dt = 4*exp(0.8*t) - 0.5*r ,r(0)=2, t[0,1] (1) 我以两种不同的方式解决了 (1).通过Runge-Kutta 方法(四阶)和ode45 在Matlab 中.我将这两个结果与解析解进行了比较,解析解为: r(t) = 4/1.3 (exp(0.8*t) - exp(-0.5*t)) ..

MATLAB:在使用 ode45 时是否可以有两个事件值?

我希望对我的 ode45 运动方程计算有两个限制:位置和时间.我已经让时间事件起作用了,但我不确定是否以及如何添加另一个事件来限制位置.编辑:我还有许多不同的粒子在一个 ODE 方程中耦合在一起,并且需要它们在到达“屋顶"时单独停止,因为它们都以不同的速度行进......我能否通过事件实现这一目标?我有一个关于如何做到这一点的想法,但它非常复杂,而且可能会很慢...... 解决方案 我不确 ..
发布时间:2021-12-08 14:42:27 其他开发

Matlab ode 求解器:改变状态和指定时间

我正在 t=0 处求解一组 ODE (dy/dt),所有初始条件 t=0 y_0=(0,0,0).我可以在不同时间为 y 值添加一些数字(例如,在 t=10 时,应将 y1 添加到该数字;在 t=20 时,应将 y2 添加到该数字等)并求解方程? 解决方案 按照您建议的方式(以及@macduff 说明的方式)在 ODE 中插入大的不连续性会导致精度降低和计算时间延长(尤其是使用 ode45 ..
发布时间:2021-12-08 14:37:54 其他开发

python:集成分段函数

我想对乘以勒让德多项式的定义函数进行分段积分.不幸的是,我在 文档.我想在 n = 1,..., 50 时对 x 的每个勒让德多项式进行积分,所以我设置了 n = np.arange(1, 51, 1). 将 numpy 导入为 np导入pylab从 scipy 导入集成n = np.arange(1, 51, 1)定义 f(x):如果 0 我想我需要定义另一个函数,比如 u(x). c ..
发布时间:2021-07-16 21:05:18 Python

python中强度函数的积分

有一个函数可以确定圆形孔径的夫琅禾费衍射图案的强度......(更多信息) 距离 x= [-3.8317 , 3.8317] 函数的积分必须约为 83.8%(如果假设 I0 为 100),当您将距离增加到 [-13.33 , 13.33] 时,它应该约为 95%.但是当我在python中使用积分时,答案是错误的..我不知道我的代码出了什么问题:( from scipy.integrate ..
发布时间:2021-07-16 21:05:11 Python

scipy.integrate.quad 如何知道何时停止?

我有一段代码,我正在使用 scipy.integrate.quad.积分的极限是从负无穷到无穷大.它运行正常,但我希望它更快. 问题的本质是被积分的函数是三个函数的乘积:(1) 一个窄函数(介于 0 和 (2) 一个宽函数(例如,在 200,000 和 500,000 之间),以及(3) 下降为 1/abs(x). 如果那样的话,我只需要精确到 0.1%. 我可以做很多工作并实际 ..
发布时间:2021-07-16 20:59:37 Python

使用 scipy.integrate.nquad 实现数值积分

我有这个具有相关限制的二维积分.该函数可以在 Python 中定义为 def func(gamma, u2, u3):返回 (1-1/(1+gamma-u3-u2))*(1/(1+u2)**2)*(1/(1+u3)**2) 其中u3的极限是从0到gamma(一个正实数),u2的极限是从0到gamma-u3. 如何使用 scipy.integrate.nquad?我试图阅读文档,但并不容易 ..
发布时间:2021-07-16 20:42:28 Python

使用 scipy 输入向量的标量值函数的数值求积

我一直在尝试使用 scipy.integrate.quadrature 来集成一个标量值函数,该函数将固定维度的向量作为输入.然而,尽管 scipy.integrate.quadrature 声称它可以接受带有向量输入的函数,但我终生无法理解如何进行这项工作. 我可能误解了 scipy.integrate.quadrature 的文档,当它说函数可以接受向量输入时,它仅仅意味着它能够在多个点 ..
发布时间:2021-07-16 20:35:03 其他开发

计算曲线下的面积

我想计算曲线下的面积以进行积分,而无需定义诸如 integrate() 之类的函数. 我的数据如下所示: 日期行使波动率2003-01-01 20 0.22003-01-01 30 0.32003-01-01 40 0.4等等. 我绘制了 plot(strike,volatile) 以查看波动率微笑.有没有办法整合这个绘制的“曲线"? 解决方案 AUC 通过查看大量梯形图很容易近 ..
发布时间:2021-06-30 19:50:47 其他开发

收敛到错误值的tanh-sinh正交数值积分方法

我正在尝试编写一个 Python 程序来使用 Tanh-sinh 求积来计算以下值: 但是尽管程序在每种情况下都收敛到一个合理的值,没有错误,但它并没有收敛到正确的值(对于这个特定积分是 pi),我找不到问题. 该程序不是要求所需的准确度,而是要求所需的函数评估次数,以便更轻松地比较收敛性和更简单的积分方法.评估的数量需要是奇数,因为使用的近似值是 谁能建议我可能做错了什么? ..
发布时间:2021-06-26 20:03:23 Python

在Matlab中构建递归函数来绘制自适应梯形正交

我想建立一个接受容差水平、上下界和函数的函数,来计算自适应梯形正交,以及绘制一个图形,比如这个: 因为我需要节点值来绘制我的图形,所以我尝试编码如下: function [node, approx] = aq(f,a,b,tol)t = (b-a)*(f(b)+f(a))/2;如果 abs((t2 - t)/3) >tol %由于 T(2)-T(1)=E(1)-E(2)=3*E(2)m = ..