Python:磁盘中的热密度图

时间:2013-10-05 22:59:44

标签: python matplotlib sum

我的目标是在2D中制作球体的密度热图。当我使用矩形域时,线下方的绘图代码起作用。但是,我试图将代码用于循环域。球体的半径是1.我到目前为止的代码是:

from pylab import *
import numpy as np
from matplotlib.colors import LightSource
from numpy.polynomial.legendre import leggauss, legval

xi = 0.0
xf = 1.0
numx = 500

yi = 0.0
yf = 1.0
numy = 500


def f(x):
    if 0 <= x <= 1:
        return 100
    if -1 <= x <= 0:
        return 0


deg = 1000
xx, w = leggauss(deg)
L = np.polynomial.legendre.legval(xx, np.identity(deg))
integral = (L * (f(x) * w)[None,:]).sum(axis = 1)

c = (np.arange(1, 500) + 0.5) * integral[1:500]


def r(x, y):
    return np.sqrt(x ** 2 + y ** 2)


theta = np.arctan2(y, x)
x, y = np.linspace(0, 1, 500000)


def T(x, y):
    return (sum(r(x, y) ** l * c[:,None] *
                np.polynomial.legendre.legval(xx, identity(deg)) for l in range(1, 500)))

T(x, y)应该等于c系数乘以半径的总和作为x的函数和y的{​​{1}}幂次乘以legendre多项式其中参数是legendre多项式的l

python: integrating a piecewise function中,我学会了如何在求和中使用勒让德多项式,但该方法略有不同,对于绘图,我需要一个函数cos(theta)


这是绘图代码。

T(x, y)

我在Mathematica中制作了该剧情,以供我最终目标的参考 enter image description here

0 个答案:

没有答案