我试图在一个变量上定义几个函数。 首先我定义了x变量:
from sympy import *
x=var('x')
我想使用Lambda定义一系列函数,如下所示:
f0=Lambda(x,x)
f1=Lambda(x,x**2)
....
fn=....
我该如何定义? 感谢
答案 0 :(得分:1)
我花了一段时间才明白你的追求。看起来你最有可能在循环之后,但不清楚这一点。所以我建议你这样做:
from sympy import *
x = symbols('x')
f=[]
for i in range(1,11): # generate 1 to 10
f.append( Lambda(x,x**i) )
# then you use them like this
print( f[0](2) ) # indexes 0 based
print( f[1](2) )
# ,,, up to [9]
无论如何,你的问题不清楚你的进展应该是什么。
编辑:至于生成随机函数,这里有一个例子生成一个具有增长顺序的多项式和一组随机的低阶:
from random import randint
from sympy import *
x = symbols('x')
f=[]
for i in range(1,11):
fun = x**i
for j in range(i):
fun += randint(0,1)* x**j
f.append( Lambda(x,fun) )
# then you use them like this
# note I am using python 2.7 if you use 3.x modify to suit your need
print( map(str, f) ) #show them all
def call(me):
return me(2)
print( map(call, f) )
您的随机程序可能会有所不同,因为有无数的可用内容。注意每次运行创建循环时它都不同,使用随机种子来修复随机(如果需要在运行之间进行相同的生成)。创建的函数在一个过程中是稳定的。