我试图设置以下约束:
assume(E1A::integer,E2A::integer,...,E2B::integer,...,E3C::integer)
additionally(E1A>=0,E2A>=0,...,E3C>=0)
additionally(E1A<=3,E2A<=3,...,E3C<=3)
有没有办法做到这一点,而不键入所有的术语E1A, E2A,...,E3C?我试着做
for i from 0 to 3 do (assume(EiA::integer)) end do
作为一种快捷方式,但Maple不喜欢这样做,大概是因为它没有将i视为索引变量。
发布于 2014-11-19 02:13:16
您可以通过连接来形成名称。
restart:
assume( seq( cat(`E`,i,`A`)::integer, i=1..3 ) );现在,为了测试,
[ seq( cat(`E`,i,`A`), i=1..3 ) ]:
map( about, % ):
Originally E1A, renamed E1A~:
is assumed to be: integer
Originally E2A, renamed E2A~:
is assumed to be: integer
Originally E3A, renamed E3A~:
is assumed to be: integer你也可以嵌套seq,例如,
restart:
assume( seq( seq( cat(`E`,i,abc)::integer, i=1..3), abc=[A,B,C] ) );
[ seq( seq( cat(`E`,i,abc), i=1..3), abc=[A,B,C] ) ]:
map( about, % ):发布于 2014-11-19 07:10:03
使用元素运算符和级联运算符,您可以将所有假设降到一行:
assume(E||(1..3)||A ::~ AndProp(integer, RealRange(0,3)));https://stackoverflow.com/questions/27006305
复制相似问题