Mathematica 是一个符号计算领域十分强大的软件,依托于它们自己开发的 Wolfram 语言及方便使用的 NoteBook, 使其在科学计算等众多领域有广泛的使用。
它的唯一不便之处在于其版权:一不开源,二收费。所以请大家使用盗版时注意,切勿安心理得。


使用方式

NoteBook

这个方式使用起来就不必我赘述了。

命令行使用

参见:官方说明

有两种方式可以在命令行中使用mathematica

  1. math -script yourFile.wl
    math: 等价的命令还有mathwolfram,MathKernel,WolframKernel
    yourFile.wl: 这个文件中的语句就是NoteBook中的语句。可以用NoteBook直接SaveAs成wl格式,但要注意需要先把NoteBook中的Cell转成 ”Code“ style。
    方法:选中Cell; 快捷键Alt+8;
  2. ./yourFile.wl
    在文件开头加上 sharp-bang
1
2
3
#!/home/reson/bin/math -script

Print["Hello World"]

高圈计算

高能物理的高圈计算可能会使用FeynArts-FormCalc-LoopTools套装,详情请移步官网

Installation

在其官网给出了一个自动安装的脚本,你可以直接保存到本地想要安装这三个软件的目录,比如 ~/.Mathematica/Applications/ 。这个目录是 mathematica 自动加载的目录,安装到这个地方,后面就不用再修改 mathematica 的初始化路径了。
具体方法如下:

1
2
3
mv FeynInstall ~/.Mathematica/Applications/
cd ~/.Mathematica/Applications/
sh FeynInstall

这个脚本会分别询问你是否安装FeynArts-FormCalc-LoopTools这三个软件
并在最后询问你是否将 FeynArts and FormCalc 添加到Mathematica的初始化路径中

Maybe Problems

这是一个 MatheMatica 提供的方便调用外部程序的库,正在被 WSTP 这个 API 所代替。
它提供了一个类似gcc的编译程序mcc,用法如 mcc test.c -o test.exe
这样编译出来的程序就可以在Mathmatica中使用Install["test"]来调用了。

但是,mcc依赖有系统的动态连接库,如果系统老旧,或其它原因,系统动态连接库存在问题,则mcc将无法编译。 针对LoopTools就是在bin目录下只有lt,而没有LoopTools这样一个可执行程序。

解决方法

官网提供有编译好的版本,在这个页面的下边有一个:
"Ready-made MathLink executables (Version x.xx, statically linked as far as possible)"
括号中的意思是”尽可能地使用静态连接库“。然后就可以根据不同的平台,下载相应的版本。
移动下载的文件到LoopToops的bin目录下
重命名为 LoopTools
chmod 755 LoopTools

TroubleShooting

2021年9月23日记

mathematica 在Linux中无法打开的问题, 是因为 Mathematica 自带的库文件与系统库之间存在 冲突, archwiki 上面已经介绍了解决方法. 是去掉 Mathematica 自带的库文件, 让它使用系统的库文件.

但在最近的系统更新中, freetype2 这个字体相关的包更新了API, 导致 mathematica 又无法打开了. 这下只能单独为 Mathematica 降级 freetype2 这个包了, 但是这个包被多个其它包所依赖, 不能全局降级. 解决方法是将 Mathematica 自带的 <INSTALL_DIR>/SystemFiles/Libraries/Linux-x86-64/libfreetype.so.6 这个库文件替换成 freetype2-2.10.4-1-x86_64 这个包中的libfreetype.so.6. 怎么取出来呢? 先安装一下, 复制 /usr/lib/libfreetype.so.6 到 Mathematica的库文件中, 然后再将freetype2升级回来.