Mathematica是编程语言吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mathematica是编程语言吗相关的知识,希望对你有一定的参考价值。

mathematica可是说是一种编程语言,因为它允许你编写程序来完成各种任务,自身也有很规范的语法格式。甚至m表达式可以说是一个亮点。
但它不是一种通用的编程语言。mathematica不向python,c语言这些语言一样,可以构建各种各样的应用程序,它多数情况下只被用来执行科学研究方面的计算和分析任务。使用mathematica语言,几乎必须下载mathematica这个软件,这个软件至于这门语言就像是Python解释器之于python语言,c编译器之于c语言,但细节上还是有很多不同。
不过牛人们也可以用mathematica做很多奇葩的事情,包括网络爬虫这些,生生把这个不是通用语言的语言给玩成了一门通用语言了。就像excel,当初创造它的时候,谁知道还能用它来画蒙娜丽莎呢?
参考技术A 我个人曾经不大看得起matlab,mathematica这种软件。有次导师问我程序是用什么软件实现的,我说我不是用软件,我是用c写的。说完我脸刷一下就红了,原来一个人如果不把他的想法说出来,写出来,就不会知道自己有多浅薄。
当时我已经学完了一学期课程量的《数值分析》。这门课的目的是“发明一种计算方法,用计算机来解决数学问题”(张康,浅谈数值计算,数学传播杂志,非常好的一个台湾季刊杂志)。众所周知,计算机最根本的只是“与”“或”“非”门(甚至可以只有与非门或者或非门),我们姑且把这些逻辑运算电路算作计算机最根本的抽象。在这之上,我们有2进制编码,于是有了机器语言,机器语言进一步抽象为汇编语言,汇编语言提供了所有高级语言同机器语言的公共接口。我们所编码的程序,在硬件层次上抽象到根本上都是与或非的逻辑运算,在心理层次上抽象到根本上都是自然数的运算,当然可能更根本的是元逻辑和素数。
再来看我们使用计算机的目的,当我们做数值计算的时候,我们的计算数据通常是有理数和复数,它们并不是直接被写到硬件上的,它们只是自然数的数对而已。c语言提供了这种数据层次上的抽象,而matlab,mathematica提供的不仅是这种数据层次的抽象,还有过程的抽象。
人之上升的道路啊,不仅是抽象层次的提升,还是对这些层次的反观啊!
参考技术B mathematica是molfram公司旗下的产品之一,是一款强大的数学软件,wolfram是在mathematica里编写的语言,和MATLAB类似,不过mathematica偏重于数学方面,如解决微分方程,积分,一般方程求解,级数展开等都非常高效,图形界面也很友好本回答被提问者采纳

JupyterNotebook安装配置Mathematica语言支持(WolframLanguage Engine)

文章目录


一、准备工作

  • Linux 系统( Ubuntu 或其它发行版本)
  • 网络状况良好
  • 时间充足,下载内容较多

二、安装JupyterNotebook

这里建议使用 apt 下载而不是 pip,这样省去了图标的配置,命令如下:

sudo apt-get install jupyter-notebook

WolframLanguage kernel 的搭建下载依赖项:

sudo apt-get install jupyter-client

三、安装WolframEngine

参考链接如下:https://tiebamma.github.io/InstallTutorial/

1. 下载安装文件

镜像链接如下:https://wdm.undo.icu/wyd/WolframEngine/12.3.1/WolframEngine_12.3.1_LINUX_CN.sh

这里建议复制镜像链接去浏览器下载,不知为何 wget 下不动。

2. 安装配置WolframScript

进入下载目录,运行安装文件:

cd ~/Downloads
sudo bash WolframEngine_12.3.1_LINUX_CN.sh

安装过程会提示选择安装目录以及可执行文件存放目录,默认配置如下:

安装目录可执行文件存放目录
/usr/local/Wolfram/WolframEngine/12.3/usr/local/bin

这里不修改的话直接 Enter 就好了:

3. 验证安装

键入命令,启动 wolframscript

wolframscript

成功启动界面如下:

第一次启动需要输入账号密码,需要去官网注册:https://www.wolfram.com/engine/free-license/

4. 允许远程连接

Ctrl+D 退出 wolframscript 界面,执行如下命令,允许远程连接到 WolframEngine

wolframscript -activate

输出如下:


四、为Jupyter创建WolframLanguage kernel

1. 准备工作

项目地址如下:https://github.com/WolframResearch/WolframLanguageForJupyter

我们采用 Git 工具直接拷贝即可:

cd ~/Downloads
git clone https://github.com/WolframResearch/WolframLanguageForJupyter.git

2. 创建内核

进入到相关目录,执行如下命令:

cd WolframLanguageForJupyter
./configure-jupyter.wls add

查看帮助命令如下:

./configure-jupyter.wls help

五、连接内核并使用WolframLanguage

1. 连接与使用方法

在终端中键入如下命令打开 JupyterNotebook:

jupyter-notebook

连接 WolframLanguage kernel 方法有二,一是在创建文件时便选择

N e w → W o l f r a m    l a n g u a g e    12.3 New \\rightarrow Wolfram\\ \\ language\\ \\ 12.3 NewWolfram  language  12.3

或者在已创建好的 .ipynb 文件中,更改 kernel:

K e r n e l → C h a n g e    k e r n e l → W o l f r a m    L a n g u a g e    12.3 Kernel \\rightarrow Change\\ \\ kernel \\rightarrow Wolfram\\ \\ Language\\ \\ 12.3 KernelChange  kernelWolfram  Language  12.3

2. 验证连接

以求函数 f ( x ) = 1 1 − x 2 f(x) = \\dfrac1\\sqrt1 - x^2 f(x)=1x2 1 的二阶导数为例来验证配置情况,wolframscript 代码如下:

f = D[1/(1-x^2)^(1/2), x, 2]

输出如下,配置成功:


六、报错及其分析

配置过程常见的 bug 大概有如下几点:

1️⃣ JupyterNotebook 缺乏相关依赖,在我的电脑上,它出现了如下报错:

Exception: Jupyter command `jupyter-kernelspec` not found.

报错原因便是缺乏了包含 jupyter-kernelspec 可执行文件的依赖项,所以我们需要通过如下命令来解决:

sudo apt-get install jupyter-client

2️⃣ 连接 WolframLanguage kernel 长时间无响应,这点主要是由于第一次远程连接WolframEngine 需要用户名和密码导致,所以需要我们先使用如下命令远程连接一次:

wolframscript -activate

七、总结及其改进

对于 Jupyter 下 WolframLanguage kernel 的构建还有一种利用 wolframscript 命令行的方法,这里我没有尝试,在此附上 GitHub 项目链接:https://github.com/WolframResearch/WolframLanguageForJupyter

以上是关于Mathematica是编程语言吗的主要内容,如果未能解决你的问题,请参考以下文章

Mathematica软件教程:函数式编程

Mathematica 和 MATLABMaple 并称为三大数学软件

Mathematica和matlab有啥区别,那个更简单阿?

JupyterNotebook安装配置Mathematica语言支持(WolframLanguage Engine)

JupyterNotebook安装配置Mathematica语言支持(WolframLanguage Engine)

Matlab 函数式编程