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"和"<-"在本例中未定义。

定义新运算符的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的所有属性,包括运算符属性。请注意,运算符名必须用引号括起来。

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对操作数进行排序以构造规范表示。这些运算符的名称是“+”和“*”。

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

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

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

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

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

**[运算符]

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

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

例子:

^^[运算符]

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

.[运算符]

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

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

dotdistrib, dotexptsimp, dotident, and dotscrules。

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

  1. CString + UINT Error:有多个运算符+=与这些操作数匹配

    在OnChar中,参数UINT nChar 有一个CString str,现在执行 str += nChar报错:Error:有多个运算符"+="与这些操作数匹配 解决办法:把UI ...

  2. java boolean 按位或_布尔运算符与按位运算符

    布尔运算符与按位运算符 我对何时应该使用布尔运算符与按位运算符感到困惑 and vs &, or vs | 有人能启发我何时使用每种药物,何时使用一种药物会影响我的结果? 8个解决方案 56 ...

  3. JavaScript运算符:递增递减运算符前置和后置的区别

    从两段代码说起 var num1 = 2; var num2 = 20; var num3 = --num1 + num2; var num4 = num1 + num2; console.log(n ...

  4. php 三元运算符 为空,PHP中三元运算符和Null合并运算符的简单比较

    在PHP中,三元运算符(?:)和Null合并运算符(??)的用法相似,那么它们之间有什么差异?下面本篇文章就来带大家了解一下三元运算符和Null合并运算符,希望对大家有所帮助. 三元运算符 三元运算符 ...

  5. 算术运算符、数学函数Math、数据类型转换、自增自减运算符、关系逻辑运算符、位运算符、括号及运算符级别

    文章目录 0.思维导图 1.算术运算符 2.数学函数与常量 3.数值类型之间的转换 (1)定义数据类型后自动转换 (2)二元运算时的自动转换 (3)强制类型转换 4.结合赋值与运算符 5.自增与自减运 ...

  6. java中的运算符_java中的运算符

    一:概述: Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  & ...

  7. 华农c语言计算高精度加法_考研计算机 | 运算符与表达式算术运算符

    一.算术运算符与算术表达式 (一)基本的算术运算符+加法运算符,或正值运算符3+5.+3–减法运算符,或负值运算符5-2.-3* 乘法运算符3*5/除法运算符5/3%模运算符,或称求余运算符,%两侧均 ...

  8. java算术运算符_JAVA-基础-算术运算符

    算术运算符 运算符是用来计算数据的符号.数据可以是常量,也可以是变量.被运算符操作的数我们称为操作数.算术运算符最常见的操作就是将操作数参与数学计算 运算符 运算规则 范例 结果 + 正号 +3 3 ...

  9. C++primer 第 4 章 表达式 4.7条件运算符 4.8位运算符 4.9 sizeof运算符 4.10逗号运算符 4.11类型转换 4 . 1 2 运算符优先级表

    4.7条件运算符 条件运算符(?:)允许我们把简单的if else逻辑嵌入到单个表达式当中,条件运算符按照如下形式使用: cond ? expr1 : expr2;其中cond是判断条件的表达式,而e ...

最新文章

  1. Android开发权威指南(第2版)新书发布
  2. Fedora 8中驱动ASUS6摄像头
  3. java程序练习:猜字母
  4. python parser count_8 个 Python 实用脚本,早掌握早下班!
  5. LeetCode 1055. 形成字符串的最短路径(贪心)
  6. linux dns中文域名,Linux 搭建中文域名的DNS服务器
  7. 按照行数分割excel
  8. 电子统计台账:垂直流水账格式数据的导入
  9. 软件系统分析-分账系统
  10. 如何测试电脑网速情况
  11. 颜色码对照表(英文代码 形像颜色 HEX格式 RGB格式)
  12. Java对接支付宝(alipay)电脑网站生成二维码扫码支付 alipay.trade.page.pay统一收单下单并支付页面接口
  13. Ass代理转实模/Convert ass proxy to model
  14. keepalive (1)
  15. c++语言绝对值函数,由C++绝对值函数想到的 - Mr.南柯 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  16. 2023王道计算机408领学班
  17. springboot基础(72):Redisson分布式锁
  18. 如何编写高质量的Java代码
  19. Java-String的用法
  20. js根据文字(保存大小,字体)计算文字长度,并根据容器显示省略号

热门文章

  1. python GIL 全局解释器锁详解
  2. python verilog就业_Verilog会被淘汰吗?
  3. Android系统信息获取 之八:WIFI设备和WIFI信号信息获取
  4. Clojure 学习入门(7)- 连接mysql
  5. 电脑族每天宜喝四杯茶
  6. android之list排序
  7. asp之发布给IIS
  8. 找出你的windows子系统(WSL)的安装位置
  9. 后端返回list前端如何处理_前端、后端、全栈是什么?薪资前景如何?
  10. python创建字符串_Python基础之字符串