我试图在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 [] 部分:
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}]
你能帮助我吗?
答案 0 :(得分:1)
请参阅this Mathematica documentation page on pure functions,或其他语言称为anonymous functions或lambda函数。
举一个可爱的例子,假设你有这个功能
doItTwice[x_,f_] := f[f[x]];
现在说你想使用这个函数将数字7平方两次。一种方法是定义一个像这样的方形函数:
square[x_] := x^2;
doItTwice[7, square]
嗯,有一种更简洁的方法可以通过简单地将square函数作为纯函数来编写,它看起来像(#^2)&
。 #
是纯函数的参数,&
就是指示它是纯函数。实际上括号甚至不是必需的,所以你可以写#^2&
。无论如何,下面的代码现在是一个更简洁的方法,两次:
doItTwice[7, (#^2)&]