- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Mathematica 中,几乎所有命令都会自动串接(或映射)一个列表。
在 Maple 中,如何确定哪个命令自 Action 用于列表或集合的条目?
例如:
y+p*x=2*sqrt(x*y);
r:=[solve(%,y)];
#r := [-p*x+(2*(1+sqrt(1-p)))*x, -p*x+(2*(1-sqrt(1-p)))*x]
collect
自动映射到每个列表条目
collect(r,x);
# [(-p+2+2*sqrt(1-p))*x, (-p+2-2*sqrt(1-p))*x]
MmaTranslator[Mma][LeafCount](r);
#37
map(MmaTranslator[Mma][LeafCount],r)
#[17, 19]
最佳答案
我不知道文档中的任何地方确切说明哪些命令将自动映射到列表上。
但此类命令的集合并不大。绝大多数命令不会自动映射列表。大多数在列表上自动映射的内容与表达式的简化或相关操作有关。自动映射列表的命令集合至少包含以下命令:
collect, combine, expand,
evala, evalc, evalf,
factor, normal, radnormal, rationalize, simplify
map
显式包装更短的语法更方便。命令。
convert, eval, evalindets, subs, subsindets
~
(波浪号)到命令。
discont~( [ csc(x), sec(x) ], x );
[{Pi _Z1~}, {Pi _Z2~ + 1/2 Pi}]
LeafCount
计算被视为单个表达式的第一个参数的值(度量)。但是项目列表仍然是单个表达式。因此(没有
~
)它作为一个整体作用于列表,而不是自动映射它,这当然不足为奇。它将封闭列表视为附加的“叶子”。
MmaTranslator:-Mma:-LeafCount( L0 );
8
L0 := [ sin(x), 1/2*x*cos(x) ]:
MmaTranslator:-Mma:-LeafCount~( L0 );
[2, 5]
map( MmaTranslator:-Mma:-LeafCount, L0 );
[2, 5]
collect
没有区别。 (自动映射)并使用
collect~
逐元素应用它.这里,前两个结果相同,因为附加参数
x
,恰好是一个标量。例如,
r := [p*x+(2*(x^2+p^2))*x, p*x+(2*(x^2-p^2))*x]:
collect(r, x);
3 2 3 2
[2 x + (2 p + p) x, 2 x + (-2 p + p) x]
collect~(r, x);
3 2 3 2
[2 x + (2 p + p) x, 2 x + (-2 p + p) x]
map(collect, r, x);
3 2 3 2
[2 x + (2 p + p) x, 2 x + (-2 p + p) x]
[x,p]
,上面的例子会有不同的表现。而不是标量,例如
x
.
s := [a*b+(2*(a^2*b+b^2))*a, a*b+(2*(a^2*b-b^2))*a]:
collect(s, [a,b]);
3 2 3 2
[2 b a + (2 b + b) a, 2 b a + (-2 b + b) a]
map(collect, s, [a,b]);
3 2 3 2
[2 b a + (2 b + b) a, 2 b a + (-2 b + b) a]
collect~(s, [a,b]);
3 2 2 3
[2 b a + (2 b + b) a, -2 a b + (2 a + a) b]
zip(collect, s, [a,b]);
3 2 2 3
[2 b a + (2 b + b) a, -2 a b + (2 a + a) b]
collect~
示例行为类似于
zip
当第二个参数也是一个列表时。也就是说,第一个参数中的第一项与第二个参数中的第一项一起收集,第一个参数中的第二项收集到第二个参数中的第二项。
map
形成鲜明对比。 ,可用于将运算映射到表达式的操作数上。
map
将命令应用于标量表达式的操作数,同时使用元素
~
获取仅应用于标量表达式本身的命令。在第一个示例中,操作数是项总和的被加数。在第二个示例中,操作数是未计算的函数调用的参数。
T := x^2 * sin(x) + y^2 * cos(x):
F( T );
2 2
F(x sin(x) + y cos(x))
F~( T );
2 2
F(x sin(x) + y cos(x))
map( F, T );
2 2
F(x sin(x)) + F(y cos(x))
G( arctan(a, b) );
G(arctan(a, b))
G~( arctan(a, b) );
G(arctan(a, b))
map( G, arctan(a, b) );
arctan(G(a), G(b))
~
语法而不必首先测试第一个表达式是标量还是列表(等)。
F( T, a );
F(sin(x) + cos(x), a)
F~( T, a );
F(sin(x) + cos(x), a)
map( F, T, a );
F(sin(x), a) + F(cos(x), a)
F( T, [a,b] );
F(sin(x) + cos(x), [a, b])
map( F, T, [a,b] );
F(sin(x), [a, b]) + F(cos(x), [a, b])
F~( T, [a,b] );
[F(sin(x) + cos(x), a), F(sin(x) + cos(x), b)]
zip( F, T, [a,b] );
[F(sin(x) + cos(x), a), F(sin(x) + cos(x), b)]
关于maple - 如何知道哪个 Maple 命令自动映射到列表条目上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041872/
对不起我的愚蠢问题,但是如何获得集合的大小(最大索引号)? 是否有内置函数,或者我必须在循环中计算它? 最佳答案 您要查找的命令是 nops。 这是“操作数数量”的缩写,它也适用于列表。 关于mapl
我想在 Maple 中绘制一个 [2,-2,0] 。 我正在尝试使用命令: pointplot3d([2, -2, 0], axes=normal, symbol=cross) 它不起作用(可能是因为
问题是: 如何在 Maple 中更改矩阵中的元素? 这可能吗? 最佳答案 是的,这当然是可能的。 (它是矩阵的主要属性之一,它是一个可变数据结构。即它的条目可以更改。) 如果您已将矩阵分配给名称 A,
在 Mathematica 中,几乎所有命令都会自动串接(或映射)一个列表。 在 Maple 中,如何确定哪个命令自 Action 用于列表或集合的条目? 例如: y+p*x=2*sqrt(x*y);
restart; l: A:=242.5: E:=55000: alpha:=2.3*10^(-5): G:=6.57: upsilon[0]:=25: H[0]:=5000: upsilon[x]:
我想使用一个名为“ESC”椭圆曲面计算器的包,可以用 Maple 上传。 创作者的指示是: Save as a text file with character encoding ISO-8859-1
在枫树,taylor(exp(x),x,2);返回 1+x+O(x2)。如何在删除 O(x2) 项后自动将此结果转换为相同的表达式? IE。类似 removeBigO(taylor(exp(x),x,
我有一个程序 f:=proc(x,option1,option2) ... end proc; 在我的例子中,option1 总是一个整数,option2 是一个列表或其他东西(包括整数)。这两个选项
如何在绘图后连接散点图的点,并从点图中画出一条线? 最佳答案 我猜你根据 x 和 y 坐标生成了一个散点图, plot(x,y,'.'); 加入他们 plot(x,y,'.'); hold on; p
我用蒙特卡洛方法“求 Pi”,但答案不正确。原始代码是: RandomTools[MersenneTwister]: with(Statistics): tries := 10000: s := 0;
我在设置一个将 x1[1] 和 x2[1] 代入其中的函数时遇到困难。任何帮助将不胜感激。 我的代码是: restart; with(LinearAlgebra); x1[1] := -2+16
我正在使用 Maple 专家 Acer 一段时间前在 usenet 上发布的原始代码,它允许将表达式导出到图像文件。 效果很好,但我不知道如何修改它来解决这个问题:必须告诉代码要生成的图像的宽度。我将
在 Maple 中我有两个列表 A:=[seq(i, i=1..10)]; B:=[10, 25, 43, 63, 83, 92, 99, 101, 101, 96]; 是否可以在 Maple 中进行
这是我在 Maple 中扩展欧几里德算法的代码,它应该返回整数 l , 多项式 pi,ri,si,ti对于 0 0 do l := i; q[i] := quo(r[i-1], r[i], x, 'r
我最初的问题是:使用 Newton-Raphson 算法的多个变量版本找到 2 个圆的所有 4 个(实数和复数)交点 2 2 (x - 7) + (y - 2) = 100 和 2 2 (x - 11
一、数据集介绍 Maple-IDS数据集是一个网络入侵检测评估数据集,旨在增强异常基础入侵检测系统(IDS)和入侵预防系统(IPS)的性能和可靠性。随着网络空间安全领域攻击的日益复杂化,拥有一个可靠和
我在 Ubuntu 14 上使用 Maple 14。但是这样的字体存在一些问题。 你有修复它的建议吗? 最佳答案 默认情况下,Linux 的字体抗锯齿功能是关闭的。 要启用字体抗锯齿,请转到工具 -
Maple 在使用 student.calculus1 包中的 ShowSolution 函数时错误地解决了以下问题。当 x 变量的幂为奇数或当我写 sin(n*x) 但当我写 x^(even num
在Maple中,有谁知道是否存在一个函数来求解变量?例如,我正在尝试求解 r 的 solve4r=(M-x^y)*(r^(-1)) mod (p-1)。所以我知道 M、x、y 和 p 的值,但不知道
我想通过分段函数的处理程序扩展 Maple CodeGeneration[C](不知道为什么不包含它)。为此我做了: with(CodeGeneration): with(LanguageDefini
我是一名优秀的程序员,十分优秀!