最近在科学松鼠会看到这篇文章,挺有趣的,顺带跑去学了下mathematica
准备工作
去Wolfram注册个账户,15天的预览版,包括本地的和在线版。够用了╮(╯_╰)╭
语法预览
官方有一堆的文档(3.5G,比软件本体还大),照着文档学。
运行代码
- 打开编辑器
- 新建notebook
- 找个空位点一下
- 输入表达式
- 按Shift+enter 运行
变量名
- 大写开头是内置函数
- 可以是特殊符号,如 π,ξ etc.输入用
\[Pi]``\[Xi]
可以是图片或其他一些奇奇怪怪的东西
基本运算符
+-*/^
加减乘除幂都有(乘号可以用空格代替a b == a*b
)- 数组用{,},索引用[[n]],切片用[[a;;b]]
- 函数调用用[](不是括号!!!)
- 赋值用= 和
:=
,差别看下面
In[43]:=
F = Random[]
G := Random[]
{F, F, F}
{G, G, G}
Out[43]= 0.533218
Out[45]= {0.533218, 0.533218, 0.533218}
Out[46]= {0.630372, 0.748954, 0.950886}
函数定义
- 基本格式 Funtion[arg_]:= body
eg.
In[50]:=
f[x_] := x^2 + 1
f[1]
Out[51]= 2
别问我x后面的下划线是什么鬼,我也不知道,文档就是这么写的
解方程:
In[150]:= two [a_, b_, c_] := Solve[a x^2 + b x + c == 0, x ]
two[8, 6, 1]
Out[151]= {
{x -> -(1/2)}, {x -> -(1/4)}}
规则
上面那个解方程后的结果是x ->-(1/2)
,这种形式叫做规则(rule).
规则就是查找替换,查找左边的替换成右边的
- 应用规则用
/.
eg.
In[155]:= 1 + j /. j -> r^2
Out[155]= 1 + r^2
或者是Replace函数,目测/.就是个语法糖.
In[157]:= Replace[1 + j, j -> r^2, {1}]
Out[157]= 1 + r^2
用来在解方程后提取特定变量的解
In[160]:=
out = Solve[x^2 + 2 y^3 == 3681 && x > 0 && y > 0, {x, y}, Integers]
Replace[x, out]
Out[160]= {
{
x -> 15, y -> 12}, {
x -> 41, y -> 10}, {