2012-09-21 3 views
6

Mathematica에서 정확한 표현식을 사용하지 않고 일반 함수를 어떻게 정의 할 수 있습니까? 예를 들어, 나는이 필요하지 않습니다 :mathematica에서 일반 함수를 정의하는 방법은 무엇입니까?

물론
a[x_, y_]:= a[x, y]. 

,이 라인이 너무 작동하지 않습니다

a[x_, y_]:= 2x + 3y, 

것은 내가 대신 일반 매개 변수와 함께 (X, Y)를 작업해야 잘.

EDIT1 :

글쎄, 나는 예는 제 1 및 제 2의 매우 복잡한 믹스의, 파생 상품으로 기본적으로 작동합니다 (이 패키지에서만 정의되어 알 수 있기 때문에) 다른 알 수없는 함수에서 매개 변수를 사용하고 파생 상품.

매개 변수가 함수로 패키지를 '생존'때문에

a[x_, y_]:= a[x, y], 

실제로 출력을 제외하고, (가지) 작동이 줄은 내가 "Hold[a[x,y]]"짜증나는 대신 a[x,y]의 수, 그리고 결과를 더 이상 함수로 사용할 수 없습니다.

+1

다음 단계는 무엇입니까? 그런 일반적인 매개 변수 a (x, y)로 무엇을 할 것입니까? –

답변

6

식을 지정하지 않고 함수를 "정의"하는 방법은 이 아니라입니다. 그냥 사용하십시오.

예 : 당신이 볼 수 있듯이

D[f[x] g[x],x] 
(* 
==> g[x] f'[x] + f[x] g'[x] 
*) 

, 내가 f 또는 g, 아직 정의하지 않았다는 매스 매 티카는 그들과 함께 계산 아무런 문제가 없습니다.

해당 기능을 사용하여 정의 할 수도 있습니다. 예를 들면 다음과 같습니다.

modify[a[x_,y_]]:=a[y,x+y] 
modify[a[2,3]] 
(* 
==> a[3, 5] 
*) 

계산 작업을 정의 할 수도 있습니다. 예를 들어, (Exp가 내장 된 지수 함수 이미 때문에 소문자에주의) 상징적으로 지수 함수로 계산하는 기능 exp를 정의하고

exp/: exp[a_] exp[b_] := exp[a+b] 
exp/: exp[a_]^n_Integer := exp[n a] 

을 정의하고 쓸 수

expression = 3 exp[x] exp[y+z]^3 
(* 
==> 3 exp[x + 3 (y + z)] 
*) 
+0

고맙습니다. 셀틱이 문제를 해결했습니다. – Dee

관련 문제