2013-11-02 3 views
0

하나의 변수에 여러 함수를 정의하려고합니다.sympy에서 여러 함수 (Lambda) 정의하기

내가 람다 뭔가를 사용하여 기능의 시리즈를 정의 할
from sympy import * 
x=var('x') 

는 다음과 같이 : 은 우선은 X 변수를 정의

f0=Lambda(x,x) 
f1=Lambda(x,x**2) 
.... 
fn=.... 

나는이를 정의 할 수 있습니까? 감사합니다.

+0

왜 그런 일을하고 싶은지 모르겠다. 하지만,이 도움이 될 수도 있습니다 (피로 틱) - http://stackoverflow.com/a/4010856/2689986 –

+0

N 변수와 함께 몇 가지 임의의 선형 함수를 정의하고 싶습니다. –

+0

그러면 무작위 함수가 어떻게 생겼는지에 대한 예를 통해 명확하고 명확하게 질문해야합니다. 그렇지 않으면 아무도 귀하의 질문에 답변 할 수 없습니다. – joojaa

답변

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] 

어쨌든 당신은 진보가 있어야하는 것에 대한 당신의 질문에 분명하지 않다.

EDIT : 무한 있기 때문에

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)) 

무작위로 절차가 상이 할 수있다 : 여기서 랜덤 함수를 생성로서 예 성장 순서 낮은 오더의 랜덤 세트 다항식을 생성하는 하나 가능한 랜덤 넘버. 생성 루프를 실행할 때마다 다른 점에 유의하십시오. 실행간에 동일한 세대가 필요할 경우 무작위 시드를 사용하여 무작위 시드를 수정하십시오. 한 번 생성 된 기능은 한 프로세스에서 안정적입니다.

+0

답장을 보내 주셔서 감사합니다. N 변수가있는 임의의 선형 함수를 정의하고 싶습니다. 나는 함수를 생성하는 빠른 방법이 필요하다. % 연산자를 사용할 수 있습니까? 즉, x = var ('x0 : % d'% num_var)와 같은 변수를 정의 할 수 있습니다. 여기서 num_var는 정수입니다. –

+0

문자열 조작이 아니고 객체 조작이 필요합니다. 이 경우 나는 변수가 아니며 sympy에 관한 한 실제로는 정수입니다. 그러나 객체 표기법을 사용하여 동일한 작업을보다 콤팩트하게 수행 할 수 있으며 모든 종류의 기능을 수행 할 수 있습니다. 그러나 당신은 이것을 대답 할 수 없도록 요청하지 않았고, 코멘트에서 질문을 확장시키지 마십시오. 이것이 원래 목표가 아니므로 질문을 수정하거나 새 질문을 열어야합니다. 임원을 사용하지 마십시오. 스피드 히트와 실수의 위험을 감수 할 이유가 없습니다. 게다가 인덱스 연산자로 목록 표기법을 생각할 수 있습니다. – joojaa

+1

''기호''를 사용하는 것이 더 좋습니다. – asmeurer

관련 문제