1.28什么星座| 什么药补血效果最好最快| 邪教是什么| 宫商角徵羽是什么意思| 燕窝有什么功效| 布鲁氏菌病是什么病| 中暑了喝什么| 嗝气是什么原因| 儿童弱视是什么原因引起的| 湿气重看中医挂什么科| 斑秃吃什么药效果好| 4月8日什么星座| 小儿肠胃炎吃什么药| 郑五行属什么| 金玉其外败絮其中是什么意思| hpv是指什么| 小狗什么时候换牙| 脚热是什么原因| 方向盘重是什么原因| 华佗属什么生肖| 什么牌子的氨糖好| 6朵玫瑰代表什么意思| 押韵是什么意思| 蓝字五行属什么| 幼儿睡觉出汗多是什么原因| 时过境迁什么意思| 身经百战是什么意思| 什么牌子的手机好| 六月飞雪是什么意思| 芥菜什么时候种| 老蒯是什么意思| 汗疱疹吃什么药| 生日可以送什么礼物| 突然耳鸣是什么原因| 吃什么食物能降低胆固醇| 医院总务科是干什么的| 杀马特是什么意思| 女性盆腔炎什么症状| 孕囊形态欠规则是什么意思| 后妈是什么意思| 遗精是什么意思啊| 单核细胞高是什么意思| 1664是什么酒| 看乳房挂什么科| 黄热病是什么病| 河蟹吃什么食物| 牛肉和什么不能一起吃| 头痛头晕吃什么药| 男人时间短吃什么药| 什么是种植牙| 皂角米是什么东西| 肾透析是什么意思| 思利及人是什么意思| 什么的废墟| 左肾轻度积水是什么意思| 燕窝适合什么人吃| 什么原因引起静脉曲张| 领略是什么意思| 肌腱炎吃什么药| 葛根粉有什么功效| 早晨嘴苦是什么原因引起的| 总是想吐是什么原因| 尹是什么意思| 农历12月是什么星座| 男生适合养什么小型犬| 眼袋青色什么原因| 水煎是什么意思| 注册安全工程师什么时候报名| 龟头上抹什么药能延时| 寒衣节是什么意思| 喝茶叶水有什么好处和坏处| 属狗是什么命| 拔完罐需要注意什么| 牛肉发绿色是什么原因| 中国第一长河是什么河| 私生粉是什么意思| hhh是什么意思| 97年什么生肖| 南京立秋吃什么| 什么是洁癖| 果胶是什么东西| 夏至为什么要吃面条| 心率过快挂什么科| 女性肝囊肿要注意什么| 氨酶偏高是什么意思| 菩提萨婆诃是什么意思| 两小无猜是什么意思| 手掌纹路多且杂乱是为什么| 什么是股癣| 中风的人吃什么好| slay是什么意思| 清歌是什么意思| 胃幽门螺旋杆菌吃什么药效果好| 反法西斯是什么意思| 特别的意思是什么| 梦见殡仪馆是什么意思| 什么是败血症| 吃什么下奶| 6月份是什么季节| 龙和什么属相相克| 出生证明有什么用| 女人喝什么茶对身体好| 吃什么增加免疫力| 脖子上长扁平疣是什么原因| 地球是什么| 脖子爱出汗是什么原因| 鸭胗是鸭的什么部位| 醉是什么生肖| 种牙是什么意思| 什么东西不能带上飞机| 孕检nt主要检查什么| 杉菜是什么意思| 头晕头重昏昏沉沉是什么原因| 吃一个海参相当于吃了什么| 阴道长什么样子| 梦见莲藕是什么意思| 孕期什么时候补钙| 嚼槟榔为什么上瘾| 小排畸什么时候做| 里正是什么官| 胃食管反流用什么药| A型血为什么是完美血型| 生化妊娠是什么原因导致的| 胃不舒服吃什么水果| 低血钾有什么症状| 子宫内膜薄吃什么药| 什么是痔疮| 3c数码产品是什么| 颈部淋巴结挂什么科| 什么是埋线减肥| 挚爱适合用在什么人| 贴水是什么意思| coach什么意思| 羊水是什么颜色的| 稍高回声是什么意思| 凭什么| 八四年属什么生肖| 枇杷什么季节成熟| 突然晕厥是什么原因| 验血肝功能看什么指标| 九霄云外是什么生肖| 小米什么时候成熟| 鹅喜欢吃什么食物| 什么红酒好喝| 风雨交加是什么生肖| 什么是玄关| 早上8点到9点是什么时辰| kelly是什么意思| 腋下异味挂什么科| 壳心念什么| 用什么洗头白发能变黑| 七月有什么节日| 八月五号是什么星座| 骨质破坏是什么意思| 绞股蓝和什么搭配喝减肥| 脑梗做什么检查最准确| 冶游史是什么意思| 立秋什么时候| 牛大力有什么功效| 吃什么可以补钾| 考号是什么| 818是什么星座| 肺结核吃什么药| 甲亢是一种什么病严重吗| 什么山色| 梦见家里水管漏水是什么意思| 岁运并临是什么意思| 肾出血是什么原因引起的| 黄精吃了有什么好处| 都有什么水果| 八仙茶属于什么茶| 什么叫矫正视力| 桔色搭配什么颜色好看| 吃金针菇有什么好处| 止疼药吃多了有什么副作用| 小孩喉咙发炎吃什么药好| 热感冒有什么症状| 碘是什么| 创伤性关节炎有什么症状| 盆腔炎要做什么检查| 前列腺不能吃什么食物| 搞基什么意思| 豆腐吃多了有什么坏处| 不动明王是什么属相的本命佛| 筱是什么意思| 什么原因引起尿路感染| aed是什么| 手上起水泡是什么原因| 晚上口渴是什么原因引起的| 你想要什么我都会给| 忧思是什么意思| 一直吐是什么原因| 脑供血不足吃什么药好| 脂肪肝什么意思| 湿疹有什么忌口的食物| 六五年属什么| 不忘初心方得始终是什么意思| 代沟是什么| 胆汁酸高吃什么降得快| 陈百强属什么生肖| 乌龟能吃什么水果| 水痘是由什么引起的| 985和211有什么区别| 1991年是什么年| 变化无常的意思是什么| 过午不食什么意思| 梁五行属什么| 七月份有什么节日吗| bf是什么牌子| 三伏天吃什么对身体好| 吃什么可以拉肚子| 小腿怕冷是什么原因| 外感风寒是什么意思| 女性缓解疲劳吃什么好| 血小板平均体积偏高是什么意思| 肽是什么| 侧柏是什么植物| 地球是什么生肖| 吃枸杞对身体有什么好处| 看病人送什么| 12583是什么电话| 知柏地黄丸主治什么| 黑灰色是什么颜色| 糖类抗原125高是什么意思| 白化病是什么原因引起的| 益生元是什么东西| 破壁是什么意思| 辛未日五行属什么| 舌头边上有锯齿状是什么原因| 先天性聋哑病属于什么遗传病| 腰椎间盘突出吃什么药| 坤造是什么意思| 有什么办法| 摘胆对身体有什么影响| 反胃吃什么可以缓解| 欠佳是什么意思| 蒲公英和什么一起泡水喝最好| 胆固醇高对身体有什么危害| 空调一匹是什么意思| 十余载是什么意思| 孩子为什么不愿意上学| 社会很单纯复杂的是人是什么歌| 早搏有什么症状| 蛇什么时候出来活动| 头孢有什么作用| 解脲脲原体是什么意思| 从此萧郎是路人是什么意思| 女人为什么会喷水| 罗字五行属什么| 胆囊疼是什么原因| 外阴白斑是什么原因| 绿豆什么人不能吃| 牙出血什么原因| 什么时间入伏| 什么什么大地| 痔疮是什么原因引起的| 孕囊形态欠规则是什么意思| 中药为什么那么苦| 桂圆补什么| 有什么症状是肯定没怀孕| 马齿苋治什么病| 萎缩性胃炎可以吃什么水果| 辄的意思是什么| 屁多不臭是什么原因| 百度Jump to content

PCauto年度购车钜惠!免费领取5000元购车补贴

From Wikipedia, the free encyclopedia
(Redirected from Symbolic computation)
Symbolic integration of the algebraic function f(x) = ?x/x4 + 10x2 ? 96x ? 71? using the computer algebra system Axiom
百度   现今,居然也会发生农夫与蛇一样的事情,有点匪夷所思。

In mathematics and computer science,[1] computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.

Software applications that perform symbolic calculations are called computer algebra systems, with the term system alluding to the complexity of the main applications that include, at least, a method to represent mathematical data in a computer, a user programming language (usually different from the language used for the implementation), a dedicated memory manager, a user interface for the input/output of mathematical expressions, and a large set of routines to perform usual operations, like simplification of expressions, differentiation using the chain rule, polynomial factorization, indefinite integration, etc.

Computer algebra is widely used to experiment in mathematics and to design the formulas that are used in numerical programs. It is also used for complete scientific computations, when purely numerical methods fail, as in public key cryptography, or for some non-linear problems.

Terminology

[edit]

Some authors distinguish computer algebra from symbolic computation, using the latter name to refer to kinds of symbolic computation other than the computation with mathematical formulas. Some authors use symbolic computation for the computer-science aspect of the subject and computer algebra for the mathematical aspect.[2] In some languages, the name of the field is not a direct translation of its English name. Typically, it is called calcul formel in French, which means "formal computation". This name reflects the ties this field has with formal methods.

Symbolic computation has also been referred to, in the past, as symbolic manipulation, algebraic manipulation, symbolic processing, symbolic mathematics, or symbolic algebra, but these terms, which also refer to non-computational manipulation, are no longer used in reference to computer algebra.

Scientific community

[edit]

There is no learned society that is specific to computer algebra, but this function is assumed by the special interest group of the Association for Computing Machinery named SIGSAM (Special Interest Group on Symbolic and Algebraic Manipulation).[3]

There are several annual conferences on computer algebra, the premier being ISSAC (International Symposium on Symbolic and Algebraic Computation), which is regularly sponsored by SIGSAM.[4]

There are several journals specializing in computer algebra, the top one being Journal of Symbolic Computation founded in 1985 by Bruno Buchberger.[5] There are also several other journals that regularly publish articles in computer algebra.[6]

Computer science aspects

[edit]

Data representation

[edit]

As numerical software is highly efficient for approximate numerical computation, it is common, in computer algebra, to emphasize exact computation with exactly represented data. Such an exact representation implies that, even when the size of the output is small, the intermediate data generated during a computation may grow in an unpredictable way. This behavior is called expression swell.[7] To alleviate this problem, various methods are used in the representation of the data, as well as in the algorithms that manipulate them.[8]

Numbers

[edit]

The usual number systems used in numerical computation are floating point numbers and integers of a fixed, bounded size. Neither of these is convenient for computer algebra, due to expression swell.[9] Therefore, the basic numbers used in computer algebra are the integers of the mathematicians, commonly represented by an unbounded signed sequence of digits in some base of numeration, usually the largest base allowed by the machine word. These integers allow one to define the rational numbers, which are irreducible fractions of two integers.

Programming an efficient implementation of the arithmetic operations is a hard task. Therefore, most free computer algebra systems, and some commercial ones such as Mathematica and Maple,[10][11] use the GMP library, which is thus a de facto standard.

Expressions

[edit]
Representation of the expression (8 ? 6) × (3 + 1) as a Lisp tree, from a 1985 Master's Thesis[12]

Except for numbers and variables, every mathematical expression may be viewed as the symbol of an operator followed by a sequence of operands. In computer-algebra software, the expressions are usually represented in this way. This representation is very flexible, and many things that seem not to be mathematical expressions at first glance, may be represented and manipulated as such. For example, an equation is an expression with "=" as an operator, and a matrix may be represented as an expression with "matrix" as an operator and its rows as operands.

Even programs may be considered and represented as expressions with operator "procedure" and, at least, two operands, the list of parameters and the body, which is itself an expression with "body" as an operator and a sequence of instructions as operands. Conversely, any mathematical expression may be viewed as a program. For example, the expression a + b may be viewed as a program for the addition, with a and b as parameters. Executing this program consists of evaluating the expression for given values of a and b; if they are not given any values, then the result of the evaluation is simply its input.

This process of delayed evaluation is fundamental in computer algebra. For example, the operator "=" of the equations is also, in most computer algebra systems, the name of the program of the equality test: normally, the evaluation of an equation results in an equation, but, when an equality test is needed, either explicitly asked by the user through an "evaluation to a Boolean" command, or automatically started by the system in the case of a test inside a program, then the evaluation to a Boolean result is executed.

As the size of the operands of an expression is unpredictable and may change during a working session, the sequence of the operands is usually represented as a sequence of either pointers (like in Macsyma)[13] or entries in a hash table (like in Maple).

Simplification

[edit]

The raw application of the basic rules of differentiation with respect to x on the expression ax gives the result

A simpler expression than this is generally desired, and simplification is needed when working with general expressions. This simplification is normally done through rewriting rules.[14] There are several classes of rewriting rules to be considered. The simplest are rules that always reduce the size of the expression, like E ? E → 0 or sin(0) → 0. They are systematically applied in computer algebra systems.

A difficulty occurs with associative operations like addition and multiplication. The standard way to deal with associativity is to consider that addition and multiplication have an arbitrary number of operands; that is, that a + b + c is represented as "+"(a, b, c). Thus a + (b + c) and (a + b) + c are both simplified to "+"(a, b, c), which is displayed a + b + c. In the case of expressions such as a ? b + c, the simplest way is to systematically rewrite ?E, E ? F, E/F as, respectively, (?1)?E, E + (?1)?F, E?F?1. In other words, in the internal representation of the expressions, there is no subtraction nor division nor unary minus, outside the representation of the numbers.

Another difficulty occurs with the commutativity of addition and multiplication. The problem is to quickly recognize the like terms in order to combine or cancel them. Testing every pair of terms is costly with very long sums and products. To address this, Macsyma sorts the operands of sums and products into an order that places like terms in consecutive places, allowing easy detection. In Maple, a hash function is designed for generating collisions when like terms are entered, allowing them to be combined as soon as they are introduced. This allows subexpressions that appear several times in a computation to be immediately recognized and stored only once. This saves memory and speeds up computation by avoiding repetition of the same operations on identical expressions.

Some rewriting rules sometimes increase and sometimes decrease the size of the expressions to which they are applied. This is the case for the distributive law or trigonometric identities. For example, the distributive law allows rewriting and As there is no way to make a good general choice of applying or not such a rewriting rule, such rewriting is done only when explicitly invoked by the user. For the distributive law, the computer function that applies this rewriting rule is typically called "expand". The reverse rewriting rule, called "factor", requires a non-trivial algorithm, which is thus a key function in computer algebra systems (see Polynomial factorization).

Mathematical aspects

[edit]

Some fundamental mathematical questions arise when one wants to manipulate mathematical expressions in a computer. We consider mainly the case of the multivariate rational fractions. This is not a real restriction, because, as soon as the irrational functions appearing in an expression are simplified, they are usually considered as new indeterminates. For example,

is viewed as a polynomial in and .

Equality

[edit]

There are two notions of equality for mathematical expressions. Syntactic equality is the equality of their representation in a computer. This is easy to test in a program. Semantic equality is when two expressions represent the same mathematical object, as in

It is known from Richardson's theorem that there may not exist an algorithm that decides whether two expressions representing numbers are semantically equal if exponentials and logarithms are allowed in the expressions. Accordingly, (semantic) equality may be tested only on some classes of expressions such as the polynomials and rational fractions.

To test the equality of two expressions, instead of designing specific algorithms, it is usual to put expressions in some canonical form or to put their difference in a normal form, and to test the syntactic equality of the result.

In computer algebra, "canonical form" and "normal form" are not synonymous.[15] A canonical form is such that two expressions in canonical form are semantically equal if and only if they are syntactically equal, while a normal form is such that an expression in normal form is semantically zero only if it is syntactically zero. In other words, zero has a unique representation as an expression in normal form.

Normal forms are usually preferred in computer algebra for several reasons. Firstly, canonical forms may be more costly to compute than normal forms. For example, to put a polynomial in canonical form, one has to expand every product through the distributive law, while it is not necessary with a normal form (see below). Secondly, it may be the case, like for expressions involving radicals, that a canonical form, if it exists, depends on some arbitrary choices and that these choices may be different for two expressions that have been computed independently. This may make the use of a canonical form impractical.

History

[edit]

Human-driven computer algebra

[edit]

Early computer algebra systems, such as the ENIAC at the University of Pennsylvania, relied on human computers or programmers to reprogram it between calculations, manipulate its many physical modules (or panels), and feed its IBM card reader.[16] Female mathematicians handled the majority of ENIAC programming human-guided computation: Jean Jennings, Marlyn Wescoff, Ruth Lichterman, Betty Snyder, Frances Bilas, and Kay McNulty led said efforts.[17]

Foundations and early applications

[edit]

In 1960, John McCarthy explored an extension of primitive recursive functions for computing symbolic expressions through the Lisp programming language while at the Massachusetts Institute of Technology.[18] Though his series on "Recursive functions of symbolic expressions and their computation by machine" remained incomplete,[19] McCarthy and his contributions to artificial intelligence programming and computer algebra via Lisp helped establish Project MAC at the Massachusetts Institute of Technology and the organization that later became the Stanford AI Laboratory (SAIL) at Stanford University, whose competition facilitated significant development in computer algebra throughout the late 20th century.

Early efforts at symbolic computation, in the 1960s and 1970s, faced challenges surrounding the inefficiency of long-known algorithms when ported to computer algebra systems.[20] Predecessors to Project MAC, such as ALTRAN, sought to overcome algorithmic limitations through advancements in hardware and interpreters, while later efforts turned towards software optimization.[21]

Historic problems

[edit]

A large part of the work of researchers in the field consisted of revisiting classical algebra to increase its effectiveness while developing efficient algorithms for use in computer algebra. An example of this type of work is the computation of polynomial greatest common divisors, a task required to simplify fractions and an essential component of computer algebra. Classical algorithms for this computation, such as Euclid's algorithm, proved inefficient over infinite fields; algorithms from linear algebra faced similar struggles.[22] Thus, researchers turned to discovering methods of reducing polynomials (such as those over a ring of integers or a unique factorization domain) to a variant efficiently computable via a Euclidean algorithm.

Algorithms used in computer algebra

[edit]

See also

[edit]

References

[edit]
  1. ^ "ACM Association in computer algebra".
  2. ^ Watt, Stephen M. (2006). Making Computer Algebra More Symbolic (Invited) (PDF). Transgressive Computing 2006: A conference in honor of Jean Della Dora, (TC 2006). pp. 43–49. ISBN 9788468983813. OCLC 496720771.
  3. ^ SIGSAM official site
  4. ^ "SIGSAM list of conferences". Archived from the original on 2025-08-06. Retrieved 2025-08-06.
  5. ^ Cohen, Joel S. (2003). Computer Algebra and Symbolic Computation: Mathematical Methods. AK Peters. p. 14. ISBN 978-1-56881-159-8.
  6. ^ SIGSAM list of journals
  7. ^ "Lecture 12: Rational Functions and Conversions — Introduction to Symbolic Computation 1.7.6 documentation". homepages.math.uic.edu. Retrieved 2025-08-06.
  8. ^ Neut, Sylvain; Petitot, Michel; Dridi, Raouf (2025-08-06). "élie Cartan's geometrical vision or how to avoid expression swell". Journal of Symbolic Computation. Polynomial System Solving in honor of Daniel Lazard. 44 (3): 261–270. doi:10.1016/j.jsc.2007.04.006. ISSN 0747-7171.
  9. ^ Richard Liska Expression swell, from "Peculiarities of programming in computer algebra systems"
  10. ^ "The Mathematica Kernel: Issues in the Design and Implementation". October 2006. Retrieved 2025-08-06.
  11. ^ "The GNU Multiple Precision (GMP) Library". Maplesoft. Retrieved 2025-08-06.
  12. ^ Cassidy, Kevin G. (Dec 1985). The Feasibility of Automatic Storage Reclamation with Concurrent Program Execution in a LISP Environment (PDF) (Master's thesis). Naval Postgraduate School, Monterey/CA. p. 15. ADA165184.
  13. ^ Macsyma Mathematics and System Reference Manual (PDF). Macsyma. 1996. p. 419.
  14. ^ Buchberger, Bruno; Loos, Rüdiger (1983). "Algebraic simplification" (PDF). In Buchberger, Bruno; Collins, George Edwin; Loos, Rüdiger; Albrecht, Rudolf (eds.). Computer Algebra: Symbolic and Algebraic Computation. Computing Supplementa. Vol. 4. pp. 11–43. doi:10.1007/978-3-7091-7551-4_2. ISBN 978-3-211-81776-6.
  15. ^ Davenport, J. H.; Siret, Y.; Tournier, é. (1988). Computer Algebra: Systems and Algorithms for Algebraic Computation. Academic. ISBN 0-12-204230-1. OCLC 802584470.
  16. ^ "ENIAC in Action: What it Was and How it Worked". ENIAC: Celebrating Penn Engineering History. University of Pennsylvania. Retrieved December 3, 2023.
  17. ^ Light, Jennifer S. (1999). "When Computers Were Women". Technology and Culture. 40 (3): 455–483. doi:10.1353/tech.1999.0128. ISSN 1097-3729.
  18. ^ McCarthy, John (2025-08-06). "Recursive functions of symbolic expressions and their computation by machine, Part I". Communications of the ACM. 3 (4): 184–195. doi:10.1145/367177.367199. ISSN 0001-0782.
  19. ^ Wexelblat, Richard L. (1981). History of programming languages. ACM monograph series. History of programming languages conference, Association for computing machinery. New York London Toronto: Academic press. ISBN 978-0-12-745040-7.
  20. ^ "Symbolic Computation (An Editorial)". Journal of Symbolic Computation. 1 (1): 1–6. 2025-08-06. doi:10.1016/S0747-7171(85)80025-0. ISSN 0747-7171.
  21. ^ Feldman, Stuart I. (2025-08-06). "A brief description of Altran". ACM SIGSAM Bulletin. 9 (4): 12–20. doi:10.1145/1088322.1088325. ISSN 0163-5824.
  22. ^ Kaltofen, E. (1983), Buchberger, Bruno; Collins, George Edwin; Loos, Rüdiger; Albrecht, Rudolf (eds.), "Factorization of Polynomials", Computer Algebra, Computing Supplementa, vol. 4, Vienna: Springer Vienna, pp. 95–113, doi:10.1007/978-3-7091-7551-4_8, ISBN 978-3-211-81776-6, retrieved 2025-08-06

Further reading

[edit]

For a detailed definition of the subject:

For textbooks devoted to the subject:

藏茶属于什么茶 免疫力是什么 枸杞泡酒有什么作用和功效 点茶是什么意思 为什么会嗜睡
五六月份是什么星座 门槛是什么意思 燚是什么意思 月经喝酒有什么影响 经血是什么血
泌尿系统感染什么症状 说话不清楚去医院挂什么科 顺理成章是什么意思 血红蛋白高是什么意思 中国特工组织叫什么
端倪是什么意思 拌嘴是什么意思 鄂尔多斯为什么叫鬼城 补刀什么意思 中午可以吃什么
引产是什么意思hcv9jop7ns3r.cn 什么是介入手术shenchushe.com 湿气太重吃什么排湿最快hcv9jop0ns7r.cn 鸡精和鸡粉有什么区别hcv9jop8ns1r.cn 竹叶青是什么hcv8jop6ns1r.cn
早餐可以吃什么hcv9jop6ns2r.cn 翻毛皮是什么材质hcv9jop5ns1r.cn 癸亥五行属什么hcv7jop7ns0r.cn 肚子为什么会胀气xscnpatent.com 病理报告是什么hcv8jop8ns7r.cn
espresso是什么咖啡hcv8jop8ns4r.cn 冒虚汗是什么原因96micro.com 痔疮吃什么药好得快hcv9jop6ns9r.cn 中产阶级的标准是什么hcv8jop3ns8r.cn 痔疮是什么样子hcv7jop6ns6r.cn
搭档是什么意思hcv9jop4ns2r.cn 新西兰现在是什么季节hcv8jop1ns9r.cn 奇可以加什么偏旁inbungee.com 致青春是什么意思hcv8jop9ns7r.cn 性激素六项什么时候查最准确hcv8jop3ns1r.cn
百度