mathematica 能 批量生成自定義函數嗎 幫助都翻破了 找不到解決方法?
02-02
我想實現這樣的功能:fi(t)=t^i. i從1到100 利用循環定義100個函數。即函數名是 f1到f100 利用i自動生成
暫時想到用 Symbol 這個函數:
Clear[f1, f2, f3, f4, f5];
Table[With[{k = i}, Symbol["f" &<&> ToString[k]][t_] := t^k];, {i, 1,
5}]
雖然不知道題主這個需求有什麼用(用二元函數不就好了2333)...不過這樣可以實現:
Table[
(Evaluate@ToExpression@("f" &<&> ToString[n]))[x_] := Evaluate[x^n],
{n, 1, 100}];
給一種其他方法Do[With[{i=i},ToExpression[MakeBoxes[RawBoxes["f"&<&>ToString[i]] [x_]:=x^ i]]],{i,100}]
建議用 f[1], f[2], ..., f[100] 來表示,以方便管理,
ClearAll[f];
Array[(f[#][t_]:=t^#),100];
ClearAll["f*"];
Array[(Symbol["f"&<&>ToString@#][t_]:=t^#),100];
ToExpression[Table[TemplateApply["f&<*i*&>[t_]:=t^&<*i*&>"],{i,100}]];
檢驗一下:
對一些實用的場合,用二元函數也不錯吧?
推薦閱讀:
※Mathematica導入牆外網頁數據失敗,軟體內如何實現科學上網?
※為什麼這個積分 Mathematica 的精度如此之低?
※編寫過10萬行Mathematica代碼 (精簡後) 是種什麼樣的體驗?
※Mathematica 里如何查看函數內部代碼?
TAG:WolframMathematica |