表达方式
[a^2, 1-2a, 1]
不是一个格式良好的 Mathematica 表达式,也许你的意思是
{a^2, 1-2a, 1}
这是 3 个元素列表的有效表达式。Mathematica 并没有真正做数组,尽管列表通常可以用来对数组建模。
另一方面表达
MinPositive[a^2, 1-2a, 1]
是对使用 3 个参数调用的函数的有效调用MinPositive
。
一方面,我认为您可能正在寻找一个函数调用,例如
MinPositive[{a^2, 1-2a, 1}/.a->0]
其中的值0
将a
在调用内部替换,MinPositive
但不会在该调用外部应用。
从您的问题中不清楚您是否需要帮助来编写MinPositive
函数;如果您这样做,请编辑您的问题并明确说明。此外,您的问题标题要求最大正值,而您的问题主体是指最小值。你可能也想解决这个问题。
编辑
我在这台机器上没有 Mathematica,所以我没有检查这个,但它应该足够接近让你完成:
minPositive[lst_List] := Min[Select[lst,#>0&]]
然后你会这样称呼
minPositive[{a^2, 1-2a, 1}]
(注意:我避免创建名称首字母大写的函数。)
或者,考虑到您的评论,也许您想要类似的东西
minPositive[lst_List, rl_Rule] := Min[Select[lst/.rl,#>0&]]
你会这样称呼它:
minPositive[{a^2, 1-2a, 1},a->2]
编辑 2
麻烦,对你来说,用这样的表达
(MinPositive[a^2, 1-2a, 1]) /. a-> 0
是 Mathematica 中的正常评估循环会导致在MinPositive
应用替换规则之前对函数进行评估。a
那么,当设置为特定值时,Mathematica 如何找出列表中的最小正值?