如何在圣人中制作非符号的plot_vector_field?

时间:2014-04-29 09:36:23

标签: plot sage

我有一个函数f(x,y),其结果是随机的(我根据x和y取20个随机数的均值)。我认为无法修改此功能使其具有象征意义。

当我跑步时

    x,y = var('x,y') 
    d = plot_vector_field((f(x),x), (x,0,1), (y,0,1))

它说它无法将符号表达式转换为实数或有理数。事实上,当我写作时它会停止:

    a=matrix(RR,1,N)
    a[0]=x

在开始时将此变量更改为实数的方法是什么,计算f(x)并绘制矢量场?或者只是用斜率绘制很多箭头(f(x),x)?

1 个答案:

答案 0 :(得分:0)

我可以创建类似你的东西,但没有错误。至少它没有做你想做的事。

def f(m,n):
    return m*randint(100,200)-n*randint(100,200)

var('x,y')
plot_vector_field((f(x,y),f(y,x)),(x,0,1),(y,0,1))

原因是因为Python函数会立即评估 - 在这种情况下,f(x,y)161*x - 114*y,但每次调用都会改变。

我怀疑你的问题是类似的,一劳永逸地立即评估Python函数。相反,尝试lambda函数。它们很烦人但在这种情况下非常有用。

var('x,y')
plot_vector_field((lambda x,y: f(x,y), lambda x,y: f(y,x)),(x,0,1),(y,0,1))

random vectors, sort of

哇,我现在必须找借口炫耀这张照片,很酷的东西。我希望你的错误最终非常相似。