Mathematica基礎教程

2021-10-16 08:20:50 字數 4898 閱讀 3053

本文介紹mathematica的基礎內容,幫助讀者快速地入門mathematica

3.表3.2表中元素的引用

3.3表的運算

4.函式

5.表示式

6.程式結構設計

6.2條件控制結構

6.3迴圈結構

6.4轉向控制

6.5 程式包的設計

7.輸入和輸出

mathematica中輸入語句按shift+enter執行,如果不想顯示輸出結果,則在句尾加入分號,一次性可輸入多條語句。

?+函式名查詢幫助

*……*是注釋內容

變數名以英文本母開頭,背後可以跟字母數字,一般來說,推薦變數用小寫字母。

變數的賦值有以下幾種形式

1、「等號賦值」

x=value 給x賦值value

x=y=value 給x和y同時賦值value

= 給x賦值value1, 給y賦值value 2

x=. 給x賦予空值,即消除x的值

clear[x] 清除變數x的定義和值

expr/.lhs->rhs 用rhs替換lhs

expr/. 分別用rhs替換lhs

注意替換的內容可以是表示式中的任意成分,可以為變數名,也可以為函式名

list資料結構就是用花括號括起來,用逗號分隔的一類資料型別,裡面的元素可以為任意型別,和python當中的list類似

3.1.1建表函式

table[ ]用通項公式生成列表

range[ ]制定初值,終值和步長生成表

詳見mma幫助文件

s[ [ i ] ]表示表s中第i個元素

s[ [ -i ] ]表示表s倒數第i個元素

多維list中 :

s[ [ i ] ]表示第i 個子表

(千萬注意索引的數字是要加上乙個方括號的)

表的運算和python當中多維陣列運算時一樣的,都是逐元素操作。

表還可以作集合運算,計算有關集合的問題,呼叫union函式計算並集,呼叫intersection函式計算交集,呼叫complement函式計算補集

圓括號用來表示運算的組合關係,函式變數都是在方括號裡面。mma中的函式首字母都是大寫的

要採用「f[x_]:=……」的形式定義,注意兩個點,左邊的變數x_一定要加下劃線,右邊的等號是「:=」(因為x_表示任意變數名為x的單一表示式,類似於形式引數)

例如:

in[1]:=f[x]=x+1

out[1]=x+1 (這說明並沒有定義函式,只是把f[x]當做是乙個變數而已,這個變數是x+1)

in[2]:=f[1]

out[2]=f[1] (這說明僅僅是定義了f[1]這個變數)

in[3]:=f[x_]=x+1

in[4]:=f[3]

out[5]=4

還可以定義任意多元的函式f[x_,y_,z_……]:=epxr

後面的函式體還可以是多條語句

f[x_]:=(y=max[x];z=min[x];y^2+z^2)
另外,還可以定義只對某一型別變數生效的函式,引數數目可變的函式,用的較少,具體參見中科大mathematica教程。

4.1.1「=」與「:=」的區別

「=」是即時賦值,賦值號右邊的等式在定義的時候立刻被求值

「:=」是延時賦值,賦值等式右邊的表示式在定義的時候不會被立刻求值,而是在執行呼叫規則的時才會被求值

例如:

in[1]:=x=1;

in[2]:=f[x_]=x^2

out[2]=1

in[3]:=g[x_]:=x^2

in[4]:=

out[4]:=

in[5]:=h[y_]=2y

out[5]:=2y

in[6]:=

out[6]:=

4.1.2 純函式

純函式就是類似於python中的匿名函式,用於想定義乙個函式,但是重新定義乙個變數或起乙個函式名又嫌麻煩的時候。

形式:純函式定義的形式

意義function[變數,表示式]

乙個變數的純函式

function[變數表,表示式]

多個變數的純函式

[變數(表),表示式]&

相當於是function定義純函式的縮寫

例子詳見中科大mathematica教程

運算子意義

==等於

!=不等

>

大於<

小於<=

小於等於

>=

大於等於

邏輯運算子

意義&&與||

或!非xor

異或關係

implies

蘊含關係

implies[p,q]表示,此式為真當且僅當p,q同真同假

lhs->rhs定義了乙個模式替換規則,而且是即時替換。相應的還有延時替換,但是用的較少,具體可以見中科大的mathematica教程,就不細說了。

形式說明

expr/.rules

對表示式expr所有的部件呼叫一次規則

expr//.rules

對表示式expr的所有部件反覆呼叫rules,直到結果不再變化

例子:

in[1]:=f[5]/.f[x_]->xf[x-1]

out[1]:=5f[4]

in[2]:=f[5]//.

out[2]:=120

in[3]:=log[a*b*c]//.log[x_*y_]->log[x]+log[y]

out[3]:=log[a]+log[b]+log[c]

6.1.1module和區域性變數

module[,body]

body就是表示式,多條表示式之間用分號分隔,以最後乙個表示式作為輸出值。

例子:

in[1]:=module[,x=1;y=2;x=x+1;x+y]

out[1]=4

6.1.2with和區域性變數

with[,body]

定義區域性常量x,y……的值為x0,y0……,body是復合表示式。也就是說x,y被賦值之後是不能再次賦值的

6.2.1 if語句結構

if語句形式

含義if[邏輯表示式,表示式1]

邏輯表示式為真,計算表示式1,表示式1的值就是整個if結構的值

if[邏輯表示式,表示式1,表示式2]

邏輯表示式為真,計算表示式1;若為假,則計算表示式2

if[邏輯表示式,表示式1,表示式2,表示式3

邏輯表示式為真,計算表示式1;若為假,則計算表示式2;既非真又非假,計算表示式3

6.2.2 which語句結構

which語句結構

含義which[條件1,表示式1,條件2,表示式2……]

依次計算條件i,計算第乙個條件為true的表示式的值,作為整個結構的值。如果所有條件為false,則不做任何運算

which[條件1,表示式1,條件2,表示式2……,true,表示式]

和上面類似,只不過這時候當前面的條件判斷都為false的時候,計算到true必然會執行最後乙個表示式

6.2.3 switch結構

switch[expr,模式1,表示式1,模式2,表示式2,……]

將表示式expr的值與模式1,模式2……依次比較,給出第乙個與expr匹配的模式i對應的表示式的值,如果沒有匹配的值則整個結構的值為null

6.3.1do語句結構

do語句形式

含義do[expr,

迴圈變數i從i0到i1,每次增加s,計算表示式expr

do[expr,]

同上,當i0=1,步長=1時可以省略不寫

do[expr,]

計算表示式n次

do[expr,,]

i從i0到i1按步長is遞增;對於每乙個i,j從j0到j1按步長js遞增,計算表示式expr

6.3.2while語句結構

while[條件,迴圈體]

當條件為true時,執行迴圈體,一直迴圈到條件非真的時候停止

與c語言一樣,也可以用k++,k–

6.4.1復合表示式內的轉向控制

函式意義

label[name]

用識別符號標出復合表示式的乙個位置

goto[name]

轉向當前過程中label[name]位置後執行

6.4.2退出迴圈結構

函式說明

return[expr]

退出函式中的所有過程和迴圈,返回expr的值

break

結束本層迴圈

continue

直接轉向下一層迴圈

throw[expr]

返回expr作為最近的外層的catch的值

例子:

in[1]:=catch[a; b; throw[c]; d; e]

out[1]=c

in[2]:=f[x_] := if[x > 10, throw[overflow], x!]

in[3]:=catch[f[2] + f[11]]

out[3]=overflow

beginpackage[「程式包名」]

begin[「private`」]

f[變數]=表示式(寫包的主體)

……end

endpackage

常用命令

意義print[expr1,expr2,expr3……]

依次輸出表示式,兩個結果之間不留空格

input[ ]

讀入乙個表示式

input[「提示」]

顯示提示之後再讀入表示式

inputstring[ ]

讀入乙個輸入的字串

inputstring[「提示」]

顯示提示之後,再讀入字串

XSL基礎教程

xsl基礎教程 一 http www 128.ibm.com developerworks cn xml ccidnet xslfund index1.html xsl基礎教程 二 http www.ibm.com developerworks cn xml ccidnet xslfund inde...

ps基礎教程

ps基礎教程 軟體簡介 推薦版本 流行多用的版本cs2 cs5,推薦cs3和cs5,cs2版本較舊,不推薦使用。基礎教學目錄 第一課 photoshop工具欄的使用01 第二課 工具欄的使用02 第三課 photoshop圖層 第四課 色彩原理和圖層的混合模式 第五課 圖層的樣式 第六課 圖層蒙版和...

php基礎教程

本教程旨在以最簡單 最易懂的方式,讓讀者對php有個整體上的把握和了解,並具備基本的php程式設計能力。本教程並不講環境搭建和一些技術竅門,但會提供一些示例,方便讀者理解概念。php可以用來作 和手機應用的伺服器介面,很多大型公司的 再用php做。php可以給手機應用提供伺服器介面。以.php結尾的...