Loading...

初用 Mathematica 的使用手记

去年就开始用 Mathematica 了, 在今年 Wolfram|Alpha 推出后, 我使用 Mathematica 的次数就越来越多了, 但有时候有的函数用起来还是不够得心应手, 所以前几天特意看了一下 Overview, 把初用者需要的重点记了下来, 难免会有不准确之处, 请各位大牛批评指正.

另外, 最近一直都很忙, 有几个话题一直没写完, 所以有段时间没有更新, 望各位见谅.

正文:

Mathematica 使用手记

普通计算:
在输入了表达式之后, 按 Shift+Enter 即可出解.
基本的表达式与平常手写的没有什么很大的区别.

集合:
普通的列举型的集合的书写没有特别的地方.
在一般的计算中, 有的可能需要自变量的范围等集合, 在 Mathematica 里面, 关于取值范围的集合的书写是有别于平常手写的:
在平常的手写中, 我们一般这样写 {x|0<=x<=100} 翻译成 Mathematica 表达式即是 {x,0,100} , 注意这里取的是实数.
有时我们需要取到整数, 此时我们这样写 {x,0,100,1} 最后一个表示取的跨度, 要注意的是, 不管怎样, 上下界的两个数总在集合里面的.

函数类:

N[]求实数值函数:
使用 N[表达式/集合] 可以轻松的求实数值, 如 N[Pi^2]  和 N[{Pi^3,E,-I}]

Plot 画图函数:
使用 Plot 函数可以轻松的画出函数的图像, 比如 Plot[Sin[x], {x, -2 Pi, 2Pi}, Frame -> True, PlotStyle -> Blue]
后两个参数为可选, 推荐加上 Frame 参数, 否则数轴的摆放很不规矩… 另外, Sin[x] 可以写为 y = Sin[x]
要注意的是, Plot 函数要求定义域(第二个参数)一定要是连续的集合.

ListPlot 散点图函数:
用法和 Plot 函数不一样, ListPlot 函数只支持输入一个集合(或产生集合的函数), 比如 ListPlot[{1,10}]

ContourPlot 画方程函数:
ContourPlot 函数可以在指定的x, y 定义域内画出所有满足表达式条件的(x,y), 比如:
ContourPlot[x^2 + y^2 == 1, {x, -5, 5}, {y, -5, 5}]

Table 列表函数:
使用 Table 函数可以做很多事情. Table 函数输出的是一个集合, 和 Plot 函数差不多, Table 函数也是需要表达式和定义域, 比如 Table[x^2, {x,1,10}]  要注意的是, 不管上下界是什么数, 其中自变量永远只会取到其中的整数.
又如: Table[Prime[n], {n, 1, 30}] 和 ListPlot[Table[Prime[n], {n, 1, 30}]]

几个集合操作函数:
集合排序:
Sort[{3, 1, 2, 5, 4}]
集合倒序:
Reverse[{1, 2, 3, 4, 5}]
输出排列:
Permutations[{1, 2, 3}]

Manipulate 操纵函数:
Manipulate 函数提供了一个或几个操纵杆, 可以调节操纵杆来改变变量的值, 并计算在此变量值下目标表达式的值/图像/…
具体格式如下:
Manipulate[x^3, {x,1,10}]
Manipulate[Plot[Sin[n x], {x, 0, 2 Pi}], {n, 1, 10}]
注意: Manipulate 的定义域支持连续的域和非连续的域, 并且 Manipulate 函数可以提供多个操纵杆, 来操控多个变量的值, 比如:
Manipulate[x^y + z, {x, 0, 10}, {y, 1, 5}, {z, 15, 20}]

赋值语句:
使用=可以给变量赋值, 比如 a=1   (变量名必须以小写字母开头)

Solve 解方程函数:
Solve 函数可以对方程求解, 格式如下:
Solve[ x^2 + 2 x + 1 == 0, x]
注意, 由于=是赋值符号, 所以等于号为==

Sqrt 开方函数:
如 Sqrt[2]

定义函数:
就这样定义函数: f[x_] := x^2
之后你可以像这样调用: f[5]  f[E]

Expand 展开函数:
使用 Expand 函数我们可以轻松展开多项式, 比如 Expand[(1+x)^5]  还有 Manipulate[Expand[(1 + x)^n], {n, 0, 100, 1}]

几个高级例子:

1.
Manipulate[
ContourPlot[Sin[n x] Cos[x + m y], {x, 0, 3}, {y, 0, 3},
ColorFunction -> “Pastel”], {n, 1, 5}, {m, 1, 5}]

2.
Manipulate[
Plot3D[Sin[n x] + Sin[m x y], {x, 0, 3}, {y, 0, 3}], {n, 1, 8}, {m,
1, 4}]

3.
solution2 =
NDSolve[{x''[t] + x[t]^3 == Sin[t], x[0] == x’[0] == 0},
x, {t, 0, 50}]
执行后执行
ParametricPlot[{x[t], x’[t]} /. solution2, {t, 0, 50}]

4.
ListPlot3D[MorphologicalComponents[图片]]

5.
BarChart[{1, 2, 3, 4, 5}]

6.
PieChart[{1, 2, 3, 4, 5}]

7.
PieChart3D[{1, 2, 3, 4, 5}]

8.
ContourPlot[x^2 + y^2 == 1, {x, -5, 5}, {y, -5, 5}]

Share and Enjoy:
  • Google Bookmarks
  • del.icio.us
  • Facebook
  • FriendFeed
  • Twitter
  • 豆瓣
Categories: General Math Tags:
  1. June 14th, 2009 at 02:04 | #1

    来看看~~

    Mathematica 确实很赞~:)

  2. June 14th, 2009 at 04:51 | #2

    @燕仰
    说实话, 看到那个消息的时候的确很震惊. 不过不管怎么样, 一切都会好起来的…

  3. September 3rd, 2009 at 07:11 | #3

    我也刚安装了Mathematica 6.0,请问大牛你用的是几点零的?

  4. December 26th, 2009 at 00:46 | #4

    @cyclone77
    Mathematica 7.0 for Students.

  5. cuilongmei
    May 29th, 2011 at 05:31 | #5

    请问,您方便联系我一下么,我的qq号821715154,手机号13761593316。。我想向您求教mathematica的问题,拜托了!!

  1. No trackbacks yet.