没有与这些操作数【】匹配的运算符_Maxima软件-7运算符(翻译)

7.1 运算符简介

可以定义具有指定优先级的新运算符、取消定义现有运算符或重新定义现有运算符的优先级。运算符可以是一元前缀或一元后缀、二元中缀、n元中缀、匹配缀或无缀。“Matchfix”是指一对符号,包含它们的参数,“nofix”是指不带参数的运算符。作为不同类型运算符的示例,有以下几种。

一元前缀

取负 -a

一元后缀

阶乘 a!

一元中缀

求幂 a^b

n元中缀 加法 a+b

匹配缀 列表结构 [a,b]

没有内置的nofix运算符;有关此类运算符的示例,请参见nofix。

定义新运算符的机制很简单。只需要将函数声明为运算符;运算符函数可以是已定义的,也可以是没定义。

用户定义的运算符的示例如下。注意显式函数 调用"dd"(a)等同于dd a,同样"<-"(a,b)等同于a<-b。函数"dd"和"<-"在本例中未定义。

7d42b9f0cde683845580b05b33c30e46.png

定义新运算符的Maxima函数总结在下表中,说明默认的左右约束权(分别是lbp和rbp)。(约束权确定运算符优先级。然而,由于左右两种约束权可能不同,约束权比优先级要复杂一些。)一些操作定义函数采用其他参数;有关详细信息,请参阅函数说明。

prefix rbp=180

postfix lbp=180

infix lbp=180, rbp=180

nary lbp=180, rbp=180

matchfix (约束权不适用)

nofix (约束权不适用)

相比之下,这里有一些内置的操作符及其左右约束权。

运算符	lbp     rbp
:	180	20
::	180	20
:=	180	20
::=	180	20
!	160	
!!	160	
^	140	139
.	130	129
*	120	
/	120	120
+	100	100
-	100	134
=	80	80
#	80	80
>	80	80
>=	80	80
<	80	80
<=	80	80
not		70
and	65	
or	60	
,	10	
$	-1	
;	-1	

remove和kill从原子中移除运算符属性。remove("a", op)仅删除a的运算符属性。kill("a")删除a的所有属性,包括运算符属性。请注意,运算符名必须用引号括起来。

87893654fb1a12ff9ce5295685041c19.png

7.2 算术运算符

+[运算符]

-[运算符]

*[运算符]

/[运算符]

^[运算符]

符号+ * / 和^分别表示加法、乘法、除法和求幂。这些运算符名分别为“+”“*”“/”和“^”,它们可能出现在函数或运算符需要的位置。

符号+和-分别表示一元取正和取负,这些运算符的名称分别为“+”和“-”。

减法a-b在Maxima中表示为加法,a+(-b)。表达式如a+(-b)显示为减法。Maxima只将“-”识别为一元取负运算符名,而不识别为二元减法运算符名。

除法a/b在Maxima中表示为乘法,a * b^(- 1)。表达式如a * b^(- 1)都显示为分式。Maxima将“/”识别为除法运算符号。

加法和乘法是n元的交换运算符。除法和求幂是二元的非交换运算符。

Maxima对交换运算符的操作数进行排序,以构造规范表示。对于内部存储,排序由orderlessp决定。对于显示,加法的顺序由ordergreatp决定,乘法的顺序与内部顺序相同。

算术运算是在字面数值(整数、有理数、普通浮点数和双浮点数)上进行的。除求幂运算外,所有数值的算术运算都简化为数字。如果操作数是普通浮点数或双浮点数,或者结果是精确整数或有理数,则将求幂简化为数字;否则,可以将求幂简化为sqrt或其他求幂,或者保持不变。

浮点传递适用于算术计算:如果任何操作数是双浮点数,结果是双浮点数;否则,如果任何操作数是普通的浮点数,则结果是一个普通浮点数;否则,如果操作数是有理数或整数,则结果是有理数或整数。

算术运算是一种简化,而不是赋值。因此,算术是在引用(但简化)表达式中进行的。

当全局标签listarith为true时,算术运算将逐个元素地应用于列表,并且始终逐个元素应用于矩阵。当一个操作数是列表或矩阵,另一个操作数是其他类型的操作数时,另一个操作数与列表或矩阵的每个元素组合在一起。

例子:

加法和乘法是n元的交换运算符。Maxima对操作数进行排序以构造规范表示。这些运算符的名称是“+”和“*”。

48f32dda8892cbf5a9f64fb15ded3659.png

除法和求幂是二元的非交换运算符。这些运算符的名称是“/”和“^”。

48f32dda8892cbf5a9f64fb15ded3659.png

特别地,减法和除法在内部是用加法和乘法表示的。

39139c170e1d818f03dfa6543ac8627c.png

运算是在字面数值上进行的。浮点传递适用。

8c207d5af0ecb4ad89ce45bc34755adc.png

算术运算是一种简化,而不是赋值。

59e4eae45b02ffdbd5cecb1e3a0acea2.png

对于列表(取决于listarith)和矩阵,算法是逐个元素执行的。

193d8d017d8df372792f2f118670e93a.png

**[运算符]

求幂运算符。在输入中,Maxima将**识别为与^相同的运算符,并在一维输出中显示为^或在二维输出中将指数作为上标放置。

fortran函数将求幂运算符显示为**,无论它是以**还是以^输入。

例子:

d30844d95752b1495574a3d42db37142.png

^^[运算符]

非交换求幂运算符。^^是对应于非交换乘法.的求幂运算符,正如普通求幂运算符^对应于交换乘法*一样,非交换求幂在一维输出中以^^显示,在二维输出中以<>角括号内的上标形式显示。

c8d0dc818915186d339414ee7f8bc1de.png

.[运算符]

矩阵(非交换)的点乘运算符。当用这种方式使用“.”时,应在它的两边留有空格,例如A . B。这将它与浮点数中的小数点区别开来。

另请参见Dot, dot0nscsimp, dot0simp, dot1simp, dotassoc, dotconstrules,

dotdistrib, dotexptsimp, dotident, and dotscrules。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值