美文网首页
Mathematica学习笔记1

Mathematica学习笔记1

作者: czy4799 | 来源:发表于2018-09-08 11:40 被阅读0次

    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 代替规则

    定义一个表达式之后,比如(5+2x)^2,然后在令x=3,表达式就会计算出一个具体的数值,表达式就没了。不想这样?可以使用替代语句->来计算。
    比如:

    (2x+5)^2 /. x->3
    

    运行之后,就会出现

    121
    

    表达式的值计算出来了,但是表达式没有被替代。

    需要注意的一点是,Mathematica是先将/.左边的表达式化简再将右侧的数值代入的,如果化简完成后,左边已经没有右边要替换的变量了,则不会执行替换。

    相关文章

      网友评论

          本文标题:Mathematica学习笔记1

          本文链接:https://www.haomeiwen.com/subject/vjmkgftx.html