【发布时间】:2013-10-26 08:21:42
【问题描述】:
我正在尝试将我的函数集成到 u 和 xx 上,然后将值存储在矩阵中,以便我可以使用 imshow 或 pcolormesh 绘制它们。集成的界限是0 < u < inf 和-inf < xx < inf。目前,我只将边界设为 10,直到我弄清楚这一点。
import numpy as np
import pylab as pl
from scipy.integrate import dblquad
b = 50.0
x = np.linspace(-10, 10, 1000)
y = np.linspace(0, 10, 1000)
T = pl.zeros([len(x), len(y)])
for xi in enumerate(x):
for yi in enumerate(y):
def f(xi, yi, u, xx):
return ((np.exp(u * (b - yi)) - np.exp(-u * (b - yi))) /
(np.exp(u * b) - np.exp(-u * b)) * np.cos(u * (xx - xi)))
def fint(u, xx):
return T + dblquad(f, -10, 10, 0.1, 10, args = (u, xx))[0]
这是我目前的代码,但我知道它不能正常工作;不幸的是,我不知道问题是什么。也许我的f 定义中不能有两个for 循环,或者我的fint 是错误的。
【问题讨论】:
-
是的,在 for 循环中定义是我从未考虑过的事情。您确实意识到,由于您在循环中定义了函数,因此您在不使用它的情况下定义了很多次(这甚至有效吗?)。另外,我没有看到您在示例中调用 fint,您是稍后从外部调用还是根本不调用?
-
@Jblasco 我不想再调用 fint 了。我的集成目标是有一些点矩阵,我可以在指定域上绘制为热图。
标签: python integration numerical-methods