在Mathematica 7中连接两个正整数的最有效方法是什么?
cc[123, 4567] >> 1234567
两个以上怎么样?
cc[123, 4, 567, 89] >> 123456789
我经常写: {Min@#, Max@#} &
然而,这似乎效率低下,因为表达式必须扫描两次,一次找到最小值,一次找到最大值.有更快的方法吗?表达式通常是张量或数组.
Mathematica的最新版本提供了$Context通过以下方式为每个单元组提供唯一选项:
这是一个吸引人的概念,但我发现它无法使用,因为我的代码跨越多个单元组.
我想要一种方法来为某个级别的单元格组指定唯一的上下文,例如每个Section,但不是每个Subsection或每个单独的上下文Subsubsection.
解决方案需要在创建新单元组时对其进行影响.
我想知道Mathematica应用于获得结果的步骤.我有
Limit[n^Log[2, n]/1.001^n, n -> \[Infinity]]
Run Code Online (Sandbox Code Playgroud)
和Mathematica显示0,但我想知道它是如何得到这个结果的.
在Mathematica中,有许多函数不仅返回最终结果或单个匹配,而且返回所有结果.这些功能被命名*List.展示:
例如,我想:
MapList[f, {1, 2, 3, 4}]
Run Code Online (Sandbox Code Playgroud)
{{f[1], 2, 3, 4}, {1, f[2], 3, 4}, {1, 2, f[3], 4}, {1, 2, 3, f[4]}}
我想要一个函数的每个应用程序的列表元素:
MapList[
f,
{h[1, 2], {4, Sin[x]}},
{2}
] // Column
Run Code Online (Sandbox Code Playgroud)
{h[f[1], 2], {4, Sin[x]}}
{h[1, f[2]], {4, Sin[x]}}
{h[1, 2], {f[4], Sin[x]}}
{h[1, 2], {4, f[Sin[x]]}}
MapList[f_, expr_, level_: 1] :=
MapAt[f, expr, #] & /@
Position[expr, _, level, Heads -> False]
Run Code Online (Sandbox Code Playgroud)
a …Run Code Online (Sandbox Code Playgroud) 我在使用时遇到了一些奇怪的行为GroebnerBasis.在m1下面,我使用希腊字母作为我的变量,在里面m2,我使用了拉丁字母.它们都没有与之相关的规则.为什么根据我选择的变量得到截然不同的答案?

Clear["Global`*"]
g = Module[{x},
x /. Solve[
z - x (1 - b -
b x ( (a (3 - 2 a (1 + x)))/(1 - 3 a x + 2 a^2 x^2))) == 0,
x]][[3]];
m1 = First@GroebnerBasis[\[Kappa] - g, z]
m2 = First@GroebnerBasis[k - g, z]
Run Code Online (Sandbox Code Playgroud)
正如belisarius所指出的,我的使用GroebnerBasis并不完全正确,因为它需要多项式输入,而我的不是.这个由复制意大利面引入的错误直到现在都没有引起注意,因为当我m1从上面使用其余的代码时,我得到了我所期望的答案.但是,我并不完全相信这是一种不合理的用法.考虑以下示例:
x = (-b+Sqrt[b^2-4 a c])/2a;
p = First@GroebnerBasis[k - x,{a,b,c}]; (*get relation or cover for …Run Code Online (Sandbox Code Playgroud) 当试图重新创建一个InterpolationFunction由NDSolve我面临非常奇怪的问题与InterpolationOrder选项Interpolation.请考虑以下内容InterpolationFunction(文档中的示例函数):
ifun = First[
x /. NDSolve[{x'[t] == Exp[x[t]] - x[t], x[0] == 1}, x, {t, 0, 10}]]
Run Code Online (Sandbox Code Playgroud)
现在让我们尝试重建它.这是数据:
Needs["DifferentialEquations`InterpolatingFunctionAnatomy`"]
data = Transpose@{InterpolatingFunctionGrid[ifun],
InterpolatingFunctionValuesOnGrid[ifun]};
Run Code Online (Sandbox Code Playgroud)
这是InterpolationOrder:
interpolationOrder = InterpolatingFunctionInterpolationOrder[ifun]
(*=> {3}*)
Run Code Online (Sandbox Code Playgroud)
现在我们尝试构建InterpolatingFunction:
Interpolation[data, InterpolationOrder -> interpolationOrder];
Run Code Online (Sandbox Code Playgroud)
并得到错误Message:
Interpolation :: inord:选项的值InterpolationOrder - > {3}应该是一个非负的机器大小的整数或一个长度等于维数的整数列表,1.>>
但如果我们InterpolationOrder用手指定,那就没关系:
Interpolation[data, InterpolationOrder -> {3}]
(*=> InterpolatingFunction[{{0.,0.516019}},<>]*)
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么InterpolationOrder -> interpolationOrder在工作时不起作用InterpolationOrder -> {3}虽然interpolationOrder必须用 …