Python脚本生成渐变不起作用

时间:2014-04-04 19:54:56

标签: python calculus

我有这个python脚本来生成x,y,z列表和u,v,w列表,使得u [i],v [i],w [i]是点x [i]的梯度向量,值Y [i],Z [i]中。

它似乎没有获得正确的价值观。有谁知道什么是错的?

from math import *

def coordinates(lst, f, gradx, grady, gradz):

    lst = lst[1:-1].split(",")
    lst = [float(x.strip()) for x in lst]

    xlst = []
    ylst = []
    zlst = []
    ulst = []
    vlst = []
    wlst = []

    for x in lst:
        for y in lst:
            xlst.append(str(x))
            ylst.append(str(y))
            zlst.append(str(f(x,y)))
            ulst.append(str(gradx(x,y)))
            vlst.append(str(grady(x,y)))
            wlst.append(str(gradz(x,y)))

    string = "xlst=[" + ",".join(xlst) + "]\n" + \
    "ylst=[" + ",".join(ylst) + "]\n" + \
    "zlst=[" + ",".join(zlst) + "]\n" + \
    "ulst=[" + ",".join(ulst) + "]\n" + \
    "vlst=[" + ",".join(vlst) + "]\n" + \
    "wlst=[" + ",".join(wlst) + "]\n"



    return string

lst = "{0, 2, 4, 6, 8, 10}"

# get function in the form f(x,y)=z  or  here its y^2 - x^2 - z = 0
f = lambda x,y: y**2 - x**2
# get the three gradient functions (df/dx, df/dy, df/dz)
gx = lambda x,y: -2*x
gy = lambda x,y: 2*y
gz = lambda x,y: -1

c = coordinates(lst, f, gx, gy, gz)
print c

0 个答案:

没有答案