Mathematica学习
0. Mathematica入门
Mathematica软件的语法非常人性化、直观化,一些可以凭直觉记住的用法就不再记录了。比如内建函数和C语言写法基本一致,e.g.
Sin[x]
0.1 括号的用法
-
()
用来调整计算的顺序; -
[]
用来包括参数; -
{}
用来包括List里面的参数,逗号用来分隔
用错了括号,Mathematica会很困惑。
0.2 希腊字母的输入
比如π:
\[Pi]
方括号里面用LaTeX格式就可以写出希腊字母了
0.3 用户自定义函数 User-Defined Function
延期指派
UDF的一个特征就是可以实现延期指派(delayed assignment),具体的代码是通过:=
来实现,这个符号又叫做SetDelayed函数。
当使用延期:=
时,它右侧的表达式不会被立刻计算。它可以与一般的=
比较一下,如果使用=
的话,右侧表达式会被立即计算出来。
下面举个例子,比如用Mathematica内建的随机数生成函数Random[]
a = Random[]
{a, a, a}
b := Random[]
{b, b, b}
执行计算后的结果:
0.877372
{0.877372, 0.877372, 0.877372}
{0.232912, 0.897866, 0.392992}
函数的定义
理解了延期指派,就不难理解为何要用它来定义UDF。而且函数定义方括号中的自变量后面要跟一个下划线_
,告诉Mathematica这是我们UDF的变量。
f[x_] := x^3 - 3 x^2 + 5 x - 7
f[a]
最后我们得到的就是将a代入函数表达式得到的表达式:
-7 + 5 a - 3 a^2 + a^3
函数求导
定义过函数之后,就可以方便的对其进行求导:
f'[x]=
然后按shift+enter就可以得到结果了:
image.png
如果需要求导很多阶倒数怎么办?
D[f[x],{x,10}]
这样就可以求出f[x]的10阶倒数,而不需要打出10个‘
0.4 代替规则
定义一个表达式之后,比如,然后在令x=3
,表达式就会计算出一个具体的数值,表达式就没了。不想这样?可以使用替代语句->
来计算。
比如:
(2x+5)^2 /. x->3
运行之后,就会出现
121
表达式的值计算出来了,但是表达式没有被替代。
需要注意的一点是,Mathematica是先将
/.
左边的表达式化简再将右侧的数值代入的,如果化简完成后,左边已经没有右边要替换的变量了,则不会执行替换。
网友评论