「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

懂计算机的你三个问题:

第一个问题,有没有哪一种编程语言,可以同时做可视化工具、数据处理工具、科学计算工具,还可以当玩具

第二个问题:哪种编程语言,是一本「活的百科全书」,可以从中学到各个学科的知识,比如说数学、物理、计算机图形学等。

最后一个问题,哪一种编程语言的代码长度可以最短?

今天给大家介绍的 Mathematica,也就是 Wolfram 语言,它就是上面问题的答案。

它的的确确,在绝大多数问题下,代码长度都是最短的;同时,它的帮助文档也可以说一个百科全书;进一步的,它可以做可视化、数据处理、科学计算,甚至也可以用来当玩具。

那为什么这个编程语言会比别的语言更简洁,同时还有这么多功能呢?

1.简洁

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

我们先从简洁开始说起。

Mathematica的代码之所以简洁,有两个重要的因素。一是它有大量的原生函数,目前,它自带的函数已经有近五千个了;二是它的语法本身,就会使得代码更加简洁。

先说第一点,Mathematica拥有大量的原生函数。有人可能会说,这不就是「作弊」嘛?

确实看起来有点像作弊,但仔细研究,就会发现这不是简单的堆砌函数,而是在「普适计算」思想指导下的必然结果。所谓「普适计算」,大致可以理解成「万物皆可计算」。

比如说,Mathematica 中有一些滤波函数,它们可以作用到数值列表上,但同时,也可以直接作用到图片上。进一步的,还可以作用到三维图像上。所以可以看到,在 Mathematica 中,几乎每一个函数,都可以作用在很多不同的对象上。而作为辅助,显然要引入大量的配套函数。但这就像一棵树一样:枝干其实并不多,但功能(树叶)非常强大。

再说第二点,它的语法本身,就会使得代码更加简洁。举一个简单的例子,如果我想将多个函数嵌套起来,比如说这个表达式:

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

一般的语言可能会这样写:

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

这个时候就会发现,我们很难判断其中一个元素到底在什么地方。而 Mathematica 则有一个非常聪明的做法:使用 @ 符号连接函数,就像这样写:

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

这样,函数的嵌套关系就一目了然了。后期还会讲到 Map 函数、模式替换等操作,它们都会大幅地提高书写效率,同时保有很好的阅读效率。

2.百科

现在来解释一下,为什么我称 Mathematica「是一个百科全书」,而且是一个「活的百科全书」。

主要得益于 Mathematica 的帮助文档内容非常丰富,几乎无所不包。

一个简单的例子,Mathematica 有一个原生函数:叫做 Mandelbrot Set Plot。用来绘制 Mandelbrot 集合图,也就是这里显示的这种图像。

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

打开它的帮助文档之后,点击「更多信息和选项」,就能看到非常详细的背景信息,比如说第一条,就给出了 Mandelbrot 集的数学定义,写的也非常清晰明了。

而帮助文档里的例子,还可以直接就在文档里运行。你甚至可以修改它的几个参数,看看有什么变化。而且你不用担心会损坏这些文档,因为它不会保存这些修改。

而像这样的帮助文档,在 Mathematica 中非常常见,大家在后续的学习中,可以多多体验。

3.Mathematica 是什么?

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

所以,Mathematica 是什么呢?

这就回到了第一个问题:有没有哪一种编程语言,可以同时做可视化、数据处理、科学计算,还可以当玩具?通过这个问题,我们就可以完整的描述Mathematica了:

Mathematica = 编程语言 + 可视化工具 + 数据处理工具 + 科学计算工具 + 玩具

作为编程语言,它的代码效率非常高;作为可视化工具,它拥有从一维到四维的可视化能力,拥有从普通照片到CT图像的显示能力;作为数据处理工具,它也有一整套的数学工具进行配套;而作为科学计算工具,它的数学函数几乎覆盖了所有数理工作所需的范围。甚至,它还是一个玩具,使用简短代码,就可以进行很多有意思的实验。

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

4.新课上线:

Mathematica 软件入门教程

所以,总结一下,这套课程将会

利用很多具体的项目,来系统地讲解 Mathematica 的使用方法,欢迎在「集智AI学园」参加这个系列课程。

课程讲师

「简洁」又堪比「百科全书」的编程语言,了解一下?|推荐课程

上课方式

13节课,每周更新。线上视频课程。

课程价格

单节 25.6元,系列课总价 256元

免费试听

Mathematica 概述(6分钟,免费)

Wolfram 语言入门:从1+1到混沌(24分钟,免费)

课程大纲

一、概论

1. 简述

  • 简洁:Mathematica为什么比其他语言更简洁?

  • 百科:初步认识Mathematica中的宝库——帮助文档;

  • 定义:Mathematica是什么?

2. Wolfram语言入门:从1+1到混沌

  • 数值计算;

  • 表达式输入 / 代数计算;

  • 二维、三维、参数绘图;

  • 微分方程、数值微分方程;

  • Mathematica程序包

二、可视化

3. 函数可视化:绘图函数通览

  • 可视化是一种分类:它将重要的信息呈现出来,同时淡化、隐藏那些不重要的信息;

  • Mathematica中函数绘图工具的种类

  • 对主要绘图工具的详细讲解

  • 如何选择绘图工具?

4. 函数可视化:绘图函数的选项

  • 通过选项,可以绘制出任意想要的图像;

  • 如何控制图像的风格?

  • 如何修改图像的细节?

  • 如何「一键」得到符合常见论文规范的图形?

5. 数据可视化:你需要怎样的可视化工具

  • 数据可视化工具通览

  • 各个数据可视化工具的讲解

  • 数据可视化函数的用法、选项

  • 导入、处理外部数据

6. 数据可视化:数据可视化的技巧

  • 处理大量数据的方法:采样(系统自带的采样函数,手动采样,像素化)

  • 处理重叠数据的方法:使用密度图处理重叠数据,使用二维分布图处理重叠数据,加入噪声

7. 图形绘制:手写Plot函数

  • Graphics函数

  • 几何对象通览

  • 手写Plot函数

  • 作业:手写ListPlot函数

三、Wolfram语言基础

8. 界面:可以计算的笔记本

  • 提示栏

  • 上下文、文件位置与笔记本的关系

  • 笔记本排版

9. 函数式编程:不用For循环的程序

  • 一种问题有几种写法?

  • For, Table, Do, Nest,它们都是什么意思?

  • 比较各个函数的效率

  • @

  • 模式,与模式匹配

四、数据处理

10. 数据处理:大物实验的「终极神器」

  • 数据输入、预处理(字符转数字、清除无效数据)

  • 转置的妙用

  • 拟合、以及相关检测

  • 插值函数

  • 滤波

11. 图像处理:「手写」一个PS

  • PS是怎样调整图像的?

  • 如何在Mathematica中修图?

  • 如何将这些功能做成界面?

五、科学数学计算

12. 数学分析 / 线性代数

  • 极限、数列

  • 微积分与微分方程

  • 为程序提供更多的信息

  • 线性代数

13. 图与网络:社交网络分析

  • 社交网络是什么?

  • 社交网络模型:Barabasi-Albert模型

  • 如何可视化一个网络?

  • 如何手动生成特定的网络?

  • 如何测量一个网络的参数?


分享到:


相關文章: