问题标签 [numerical-integration]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - Matlab ODE 求解器中的迭代标志
我正在解决一个像
y''(t) + ay(t) + b = 0
使用 Matlab 的ode45
求解器。它迭代直到找到满足错误标准的解决方案。我想读取y
每个步骤中的前一个值进行比较。
最好的方法是什么?
我的主要文件是
而且odefnc
是
numpy - 与 scipy 的累积辛普森集成
我有一些代码使用 scipy.integration.cumtrapz 来计算采样信号的反导数。我想使用辛普森规则而不是梯形。然而 scipy.integration.simps 似乎没有累积对应物......我错过了什么吗?有没有一种简单的方法可以与“scipy.integration.simps”进行累积集成?
matlab - 在面积或体积上对不均匀采样的函数进行数值积分
从一些有限元建模软件中,我得到了一些函数在三维体积上的值。我想将这个函数的价值整合到音量上。问题是从 FEM 软件导出的数据没有在规则网格上定义函数,而是在与 FEM 软件使用的(不均匀)网格相对应的点 (x,y,z) 集合上定义。
如何在 Matlab 中完成这种集成?
optimization - CUDA代码优化;寄存器数量
我在这里粘贴一些代码供大家查看。
本质上它是一个自适应数字积分器(Romberg)。此全局函数中使用的设备函数有:
平行归约功能:
最后,我试图集成的功能是(模拟简单功能)如下:
代码执行良好,得到了预期的积分。内核按以下方式执行(暂时)
问题:
当我使用 nvidia 视觉分析器检查此功能的寄存器使用情况时。结果是每个线程有 52 个寄存器。我不明白为什么?我在这段代码中的大部分变量都是共享变量。你能告诉我如何找出我的代码的哪些部分正在使用寄存器吗?
我怎样才能减少它们?我可以用这段代码做任何优化吗?
硬件
我正在使用 fermi 设备 Geforce GTX 470,计算能力 2.0
谢谢,
python - Python中的梯形规则
我正在尝试使用 Python v. 2.7.5 编写一个程序,该程序将计算 x = 0 和 x = pi 之间的曲线 y=sin(x) 下的面积。执行此计算,在 1 到 10 之间改变 x 范围的 n 个分区,并打印近似值、真实值和百分比误差(换句话说,通过增加梯形的数量来提高精度)。将所有值打印到小数点后三位。
我不确定代码应该是什么样子。有人告诉我,我应该只有大约 12 行代码来完成这些计算。
我正在使用 Wing IDE。
这是我到目前为止所拥有的
我不确定我是否走在正确的轨道上。我收到一条错误消息,提示“在赋值之前引用了局部变量‘sum’。关于如何改进我的代码的任何建议?
python - python:集成分段函数
我想分段集成一个定义的函数,该函数乘以勒让德多项式。不幸的是,我在文档中找不到如何使用 x 的第 n 个勒让德多项式。我想在n = 1,..., 50
设置时整合 x 的每个勒让德多项式n = np.arange(1, 51, 1)
。
我想我需要定义另一个函数,比如说u(x)
.
所以我会返回一些u(x)
用勒让德多项式扩展我的分段函数的前 50 个项。
编辑1:
如果这不能完成,我可以使用罗德里格斯公式来计算第 n 个勒让德多项式。但是,当我在 Python 中寻找计算 n 次导数时,我找不到任何有用的东西。
因此,如果有人知道如何在 Python 中实现这样的方案,这是一个选择。
编辑2:
使用 Saullo Castro 的回答,我有:
但是,如果我 print c
,值是错误的。值应该是1.5, 0, -7/8, 0, ...
另外,当我 plot 时g
,我想这样做x = np.linspace(-1, 1, 500000)
,情节很详细,但c
只有 50。这怎么能实现?
matlab - 数值积分有误差的函数
我正在寻找一个使用高斯求积或辛普森求积在数值积分中产生重大错误的函数。
python - 仅在具有正面积的 numpy 数组中集成
我希望能够使用 numpys trapz 函数计算以下积分
但我不想允许负面区域。有没有一种有效的方法可以做到这一点,还是我必须寻找最小点并手动转换数组?
numpy.trapz(numpy.abs([-1, 1]))
有意义吗?
matlab - 在 Matlab 中评估这个积分
我正在尝试在 matlab 中评估以下积分: 这是我的代码:
我收到这些错误:
这些错误不多说了。任何帮助表示赞赏。我选择1e5
代表无限。