2012-09-21 33 views
6

मैथमैटिका में सटीक अभिव्यक्ति के बिना मैं सामान्य कार्य को कैसे परिभाषित कर सकता हूं? उदाहरण के लिए, मैं इस की जरूरत नहीं है:गणित में एक सामान्य कार्य को परिभाषित करने के लिए कैसे?

a[x_, y_]:= a[x, y]. 
बेशक

, इस लाइन भी काम नहीं करता:

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

मैं बदले सामान्य पैरामीटर के साथ काम करने के लिए एक (एक्स, वाई) की जरूरत है कुंआ।

Edit1:

ठीक है, मैं एक और अज्ञात समारोह में पैरामीटर (अज्ञात है क्योंकि यह केवल पैकेज में परिभाषित किया गया है), जो एक व्युत्पन्न के रूप में मूल रूप से काम करता है का उपयोग कर रहा, यानी यह पहली और दूसरी का एक बहुत ही जटिल मिश्रण है डेरिवेटिव।

इस लाइन

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

वास्तव में, काम करता है (एक तरह से), क्योंकि पैरामीटर एक समारोह के रूप पैकेज 'बचता', उत्पादन में छोड़कर मैं कष्टप्रद "Hold[a[x,y]]" के बजाय सिर्फ a[x,y] का मिलता है, और मैं एक समारोह के रूप में परिणाम का उपयोग नहीं कर सकते हैं।

+1

आपका अगला कदम क्या होगा? आप इस तरह के एक सामान्य पैरामीटर (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] 
*) 

तुम भी उन पर अंकगणितीय आपरेशनों परिभाषित कर सकते हैं। उदाहरण के लिए, आप प्रतीकात्मक exponentials के साथ गणना (लोअर केस ध्यान दें, क्योंकि 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