本文介紹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結尾的...