Mathematica学习笔记(3)——Expression
本文最后更新于463 天前,其中的信息可能已经过时,如有错误请发送邮件到lysun26@163.com

在mathematica中,万物都是表达式。但其实这句话也是有局限的,单个符号或者数字可以不认为是表达式,但这我们也不必去讨论,因为很简单,我们姑且称其为基础元素。表达式是mathematica中最重要的部分,我们讨论软件中的表达式,首先是要明白什么是表达式,以及在软件内是怎么解析表达式的。

这就要引入一个函数:FullForm,它可以对表达式表示为完全形式,例如:

FullForm[a + b]
out:Plus[a, b]
FullForm[a b c]
out:Times[a, b, c]
FullForm[{1, 2, 3}]
out:List[1, 2, 3]

从上面的例子中,我们可以看到,表达式是由函数+一系列的基础元素组成,我们称前面的函数为头(Head),Plus, Times, List等都是头,表达式中最核心的也就是头。在这里,我们不能称Plus, Times等为函数,而应称其为头。两者并不完全一样,头是构成表达式的部分,而函数是对表达式进行的操作。函数相当于给表达式加头,经过运算后得到新的表达式。将函数应用于表达式除了使用中括号,也可以使用@,还可以使用//。例如,将f应用于expr,可以表示为:f[expr], f@expr, expr//f

mathematica提供了一个函数:Head[expr],通过这个函数,我们可以知道该表达式的头。

Apply

知道了什么是头以及头的重要性后,这就引入了一个mathematica中很特色的一个概念,也是能够极大提升变成效率的东西,即换头。顾名思义,换头就是把原先表达式的头换为一个新的头,这就是Apply函数。

Apply[Plus, {a, b, c}]
out:a + b + c
Apply[Plus, a b c]
out:a + b + c

如上例所示,Apply函数将List[a, b, c]的头换为了Plus,即Plus[a, b, c],得到了最后的结果。从这里就可以看出,通过换头能够十分方便的实现很多功能,比如上例中的对列表元素求和,和将乘法转换为加法。充分理解换头的概念和灵活应用是最为关键的。

Apply在mathematica中有一个简写形式,即:@@

考虑下面的例子:

Plus @@ {{2, 3}, {4, 6}, {7, 9}}
out:{13, 18}
Plus @@@ {{2, 3}, {4, 6}, {7, 9}}
out:{5, 10, 16}

从第一个我们能够看出,@@是将最外层的头进行替换,于是变成了对里面的三个子列表进行求和。而如果我们想要将子列表的头进行替换呢,这时可以使用@@@

注意:在使用缩写形式@@或@@@时,一定要注意运算优先级,最好将后面的表达式使用括号括起来。

Map

在前面我们提到了将函数应用于表达式,可以使用@符号。如果我们想将函数应用于一个列表中的每个表达式呢,这就用到了Map函数,其缩写形式为"/@"

其他部分

表达式的简化:Simplify

有问题可以留言哦~ 觉得有帮助也可以投喂一下博主,感谢~
文章链接:https://www.corrain.top/mathematica-3/
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章地址及作者
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
( ゜- ゜)つロ
_(:з」∠)_
(⌒▽⌒)
( ̄▽ ̄)
(=・ω・=)
(*°▽°*)八(*°▽°*)♪
✿ヽ(°▽°)ノ✿
(¦3【▓▓】
눈_눈
(ಡωಡ)
_(≧∇≦」∠)_
━━━∑(゚□゚*川━
(`・ω・´)
( ̄3 ̄)
✧(≖ ◡ ≖✿)
(・∀・)
(〜 ̄△ ̄)〜
→_→
(°∀°)ノ
╮( ̄▽ ̄)╭
( ´_ゝ`)
←_←
(;¬_¬)
(゚Д゚≡゚д゚)!?
( ´・・)ノ(._.`)
Σ(゚д゚;)
Σ(  ̄□ ̄||)<
(´;ω;`)
(/TДT)/
(^・ω・^)
(。・ω・。)
(● ̄(エ) ̄●)
ε=ε=(ノ≧∇≦)ノ
(´・_・`)
(-_-#)
( ̄へ ̄)
( ̄ε(# ̄) Σ
(╯°口°)╯(┴—┴
ヽ(`Д´)ノ
("▔□▔)/
(º﹃º )
(๑>؂<๑)
。゚(゚´Д`)゚。
(∂ω∂)
(┯_┯)
(・ω< )★
( ๑ˊ•̥▵•)੭₎₎
¥ㄟ(´・ᴗ・`)ノ¥
Σ_(꒪ཀ꒪」∠)_
٩(๛ ˘ ³˘)۶❤
(๑‾᷅^‾᷅๑)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
小黄脸
热词系列一
tv_小电视
上一篇
下一篇