2012-09-21 16 views
6

Mathematicaの正確な式がない一般関数をどのように定義できますか?私が代わりに一般的なパラメータa(x、y)がで作業する必要がmathematicaで一般的な関数を定義するには?

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

:たとえば、私はこれを必要としません。もちろん、

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

、このラインは、あまりにも動作しません。よく

EDIT1:(それが唯一のパッケージで定義されているため不明)

まあ、私は別の未知の機能のパラメータを使用しています、誘導体として基本的に機能し、それは第一および第二の非常に複雑なミックスのIEデリバティブ。

パラメータは、私だけではなく、a[x,y]の「Hold[a[x,y]]」迷惑を取得し、I出力を除き、関数としてパッケージ「を生き残る」ため、この行

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を定義していなかった、とまだMathematicaは何の問題も彼らと計算を持っていません。

これらの機能を使用して定義することもできます。例:

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

ありがとう、celtschk、これは私の問題を解決しました。 – Dee

関連する問題