我有一个函数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)?
答案 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))
哇,我现在必须找借口炫耀这张照片,很酷的东西。我希望你的错误最终非常相似。