关于语法:#在Mathematica中是什么意思? | 您所在的位置:网站首页 › hold表示什么意思 › 关于语法:#在Mathematica中是什么意思? |
有人知道例如在Mathematica中Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]中的#是什么吗? 那么Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]到底是什么意思? 谢谢。 它是变量的占位符。 如果要定义y(x)= x ^ 2函数,则可以执行以下操作: 1 f = #^2 &&将变量"插入"#号。当您具有嵌套函数时,这对于配对&和#非常重要。 12 In: f[2] Out: 4如果您有一个在两个变量上操作的函数,则可以执行以下操作: 1 f = #1 + #2 &所以 12 In: f[3,4] Out: 7或者您可能有一个在列表中操作的函数,因此: 1 f = #[[1]] + #[[2]] &所以: 12 In: f[{3,4}] Out: 7关于Root[] 根据Mathematica的帮助: 1Root[f,k] represents the exact kth root of the polynomial equation f[x]==0 .因此,如果您的多边形是x^2 - 1,请使用上面看到的内容: 12345 f = #^2 - 1 & In[4]:= Root[f, 1] Out[4]= -1 (* as we expected ! *)和 123In[5]:= Root[f, 2] Out[5]= 1 (* Thanks God ! *)但是,如果我们尝试使用更高阶的多项式: 12345 f = -1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 & In[6]:= Root[f, 1] Out[6]= Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1]这意味着Mathematica不知道如何计算符号结果。它只是多项式的第一个根。但是它确实知道它的数值是多少: 123In[7]:= N@Root[-1 - 2 #1 - #1^2 + 2 #1^3 + #1^4 &, 1] Out[7]= -2.13224因此,Root[f,k]是一种速记法,用于表示阶次为3的多项式的根。 如何找出Mathematica中任何内置语法的含义: 复制表达 执行TreeForm [Hold [在此处粘贴表达式]]。 将鼠标悬停在树的各个部分上以标识所讨论的语法,在本例中为Slot 输入"?插槽" 相关讨论 也许更简单:1)突出显示2)按F1 3)获利? 这可能在大多数时间都有效。 当上下文很重要时,TreeFor更好的例子是,例如,如果在函数末尾选择&,它将为BitAnd,And和Function提供帮助标记#(如上所述)用于表示纯函数中的"变量在此处"(对于传统开发人员而言为"闭包")。必须始终在末尾跟随&。 最好的例子是:f[x_]:=x+5。这将创建一个延迟集,每当将值作为功能参数传递到符号引用f中时,该值将被赋予本地上下文特定于函数的名称x(不影响(如果有)。然后,将使用此新变量/值对表达式x+5进行求值。上述过程要求初始化符号f,创建局部变量x,并且表达式x+5永久保存在内存中,除非您清除它。 旁注:f=5和f[x_]:=5均与"符号" f一起使用。当使用方括号提取其值时,f可以称为函数,并且f[x_]可以与f[x_,y_]和平共处,而不会彼此覆盖。发送一个参数时将使用一个,发送两个参数时将使用另一个。 有时候,您只需要一个快速功能,而无需定义它并使它挂起。因此,(someValue + 5)变为(#+5)&,其中&表示"我是一个纯函数,并且可以使用您发送给我的任何东西",而#表示"我是参数(或参数列表)发送给纯函数"。如果要向其发送多个参数,还可以使用#1,#2,#3等。 常用的多参数纯函数示例: 假设mydata是一个列表列表,您需要按列表的中位数进行排序(例如,来自美国各个城市的房价数据): 1Sort[ myData , Median[#1] > Median[#2]& ]快速提示,如果您将函数应用于单个值,它可能看起来更整洁,干净,并且使用更少的键入来使用@而不是[],这实际上意味着Prefix。不要与Map (/@)或Apply(@@)混淆。上面的命令将变为: 1Sort[ myData , Median@#1 > Median@#2 & ]您可以这样链接@:Reverse@Sort@DeleteDuplicates[...] 相关讨论 这是一个很好的解释。 谢谢。 (不过,链接到@的不同含义的更多信息可能是个好主意;如果您要提到的是几种令人困惑的含义,而且对于Google而言,这是相当困难的……)#1表示纯函数中的第一个参数。 如果您有多个参数#1,#2,#3 ...,请参考第一个,第二个,第三个参数,依此类推。 相关讨论 亲爱的苏菲安,谢谢。 那么Root [-1-2#1-#1 ^ 2 + 2#1 ^ 3 +#1 ^ 4&,1]到底是什么意思? |
CopyRight 2018-2019 实验室设备网 版权所有 |