我想通过u
和xx
将我的函数整合起来,然后将这些值存储在矩阵中,这样我就可以用imshow
或pcolormesh
来绘制它们。整合的边界是0 < u < inf
和-inf < xx < inf
。目前,我只能将界限设置为10,直到我可以解决这个问题。Python:无限域上的双重积分
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
或我的我的fint
是错误的两个循环。
是的,在for循环中有一个定义是我从来没有考虑过的。你会意识到,既然你在循环中定义了你的函数,你可以定义它很多次而不使用它(甚至工作吗?)。另外,我没有看到你在这个例子中称呼fint,你是从外面做还是根本不做? – Jblasco
@Jblasco我不想再打电话给fint。我整合的目标是让我可以将某些点的矩阵作为热图映射到指定的域上。 – dustin