2017-04-01 44 views
0

我試圖運行的Mathematica蛛網代碼,我需要下面的腳本:瞭解一個蛛網代碼

ClearAll[CobwebPlot] 
Options[CobwebPlot]=Join[{CobStyle->Automatic},Options[Graphics]]; 
CobwebPlot[f_,start_?NumericQ,n_,xrange:{xmin_,xmax_},opts:OptionsPattern[]]:=Module[{cob,x,g1,coor}, 
cob=NestList[f,N[start],n]; 
coor = Partition[Riffle[cob,cob],2,1]; 
coor[[1,2]]=0; 
cobstyle=OptionValue[CobwebPlot,CobStyle]; 
cobstyle=If[cobstyle===Automatic,Red,cobstyle]; 
g1=Graphics[{cobstyle,Line[coor]}]; 
Show[{Plot[{x,f[x]},{x,xmin,xmax},PlotStyle->{{Thick,Black},Black}],g1},FilterRules[{opts},Options[Graphics]]] 
] 

Manipulate[CobwebPlot[Sqrt[3#-1]&,\[Alpha],40,{0,5},PlotRange->{{0,4.5},{0,3.65}},Frame->True,Axes->False,CobStyle->Directive[Dashed,Red],PlotRangePadding->None],{\[Alpha],0.5,4.375}] 

我發現劇本在線,但我不明白的一些功能,比如什麼是以下字符的目的,&,在操縱[]分段的代碼的:

Manipulate[CobwebPlot[Sqrt[3#-1]&,\[Alpha],40,{0,5},PlotRange->{{0,4.5},{0,3.65}},Frame->True,Axes->False,CobStyle->Directive[Dashed,Red],PlotRangePadding->None],{\[Alpha],0.5,4.375}] 

你能幫我嗎?

回答

1

請參閱this Mathematica documentation page on pure functions或其他語言稱爲anonymous functions或lambda函數。


舉一個可愛的例子,假設你具備的功能

doItTwice[x_,f_] := f[f[x]]; 

現在說你想要使用此功能,方七這個數字的兩倍。這樣做的一個方法是這樣定義的平方函數:

square[x_] := x^2; 
doItTwice[7, square] 

那麼,有通過簡單地寫平方函數作爲一個純函數,它看起來像(#^2)&這樣做一個更清潔的方式。 #是純函數的參數,&就是表示它是純函數。真的圓括號甚至沒有必要,所以你可以寫#^2&。無論如何,下面的代碼現在是一個更簡潔的方法來平方七次:

doItTwice[7, (#^2)&] 
+0

非常感謝你!這非常有幫助。 –