- Mathematica中大寫小寫是有區(qū)別的朽合,如Name、name扔水、NAME等是不同的變量名或函數(shù)名痛侍。
- 系統(tǒng)所提供的功能大部分以系統(tǒng)函數(shù)的形式給出,內(nèi)部函數(shù)一般寫全稱魔市,而且一定是以大寫英文字母開頭主届,如
Sin[x],Conjugate[z]
等。 - 乘法即可以用
*
待德,又可以用空格表示君丁,如2 3=2*3=6 ,x y,2 Sin[x]
等;乘冪可以用^
表示将宪,如x^0.5,Tan[x]^y
绘闷。 - 自定義的變量可以取幾乎任意的名稱橡庞,長度不限,但不可以數(shù)字開頭簸喂。注意不要與系統(tǒng)變量沖突毙死。不要小看這些簡單的符號燎潮,它們包含的信息遠(yuǎn)遠(yuǎn)大于我們所熟知的它們的近似值喻鳄,它們的精度也是無限的。
Pi 3.1415....的無限精度數(shù)值
E 2.17828...的無限精度數(shù)值
Catalan 0.915966..卡塔蘭常數(shù)
EulerGamma 0.5772....高斯常數(shù)
GoldenRatio 1.61803...黃金分割數(shù)
Degree Pi/180角度弧度換算
I 復(fù)數(shù)單位
Infinity 無窮大
-Infinity 負(fù)無窮大
ComplexInfinity 復(fù)無窮大
Indeterminate 不定式
基本概念
符號與變量
自定義的變量可以取幾乎任意的名稱确封,長度不限除呵,但不可以數(shù)字開頭。
當(dāng)你賦予變量任何一個值爪喘,除非你明顯地改變該值或使用Clear[變量名]或“變量名=.”取消該值為止颜曾,它將始終保持原值不變。(多個打開的文檔中符號是可以相互調(diào)用的秉剑?)
全局賦值用等號
=
泛豪,局部賦值用箭頭->
。利用%n
可以引用第Out[n]
行結(jié)果侦鹏,利用%诡曙。。略水。%(k個)
可以引用倒數(shù)第k個計算結(jié)果价卤。自定義函數(shù)格式
g[x_,y_]:=(x-y)^2/y
。自定義函數(shù)表達(dá)式左邊的自變量要寫在[ ]號內(nèi)渊涝,且后面跟隨“_”(下劃線)慎璧,右邊則不需要。-
一定要注意四種括號的用法:
- ()圓括號表示項的結(jié)合順序跨释,如
(x+(y^x+1/(2x)))
; - []方括號表示函數(shù)胸私,如
Log[x],BesselJ[x,1]
; - {}大括號表示一個“表”(一組數(shù)字鳖谈、任意表達(dá)式盖文、函數(shù)等的集合),如
{2x,Sin[12 Pi],{1+A,y*x}}
蚯姆; - [[]]雙方括號表示“表”或“表達(dá)式”的下標(biāo)五续,如
a[[2,3]]、{1,2,3}[[1]]=1
龄恋。
- ()圓括號表示項的結(jié)合順序跨释,如
可以使用
? 符號名
或??符號名
來獲得關(guān)于該符號(函數(shù)名或其他)的粗略或詳細(xì)介紹疙驾。符號名中還可以使用通配符,例如?M*
郭毕,則系統(tǒng)將給出所有以M開頭的關(guān)鍵詞和函數(shù)名它碎,再如??For
將會得到關(guān)于For語句的格式和用法的詳細(xì)情況。另外,在程序中書寫注釋可以用一對
(* *)
括起來扳肛,注釋可以嵌套傻挂。
計算精度
- 在Mathematica中你不必考慮數(shù)的精確度,因為除非你指定輸出精度挖息,Mathematica總會以絕對精確的形式輸出結(jié)果金拒。例如:你輸入
In[1]:=378/123
,系統(tǒng)會輸出Out[1]:=126/41
套腹,如果想得到近似解绪抛,則應(yīng)輸入In[2]:=N[378/123,5]
,即求其5位有效數(shù)字的數(shù)值解,系統(tǒng)會輸出Out[2]:=3.073
- 另外Mathematica還可以根據(jù)你前面使用的數(shù)字的精度自動地設(shè)定精度电禀。 Mathematica與眾不同之處還在于它可以處理任意大幢码、任意小及任意位精度的數(shù)值,如
100^7000,2^(-2000)
等數(shù)值可以很快地求出尖飞,但在其他語言或系統(tǒng)中這是不可想象的症副,你不妨試一試N[Pi,1000]
。 - 若想獲得計算結(jié)果的近似值政基,可按如下格式輸入:
表達(dá)式//N
或者N[表達(dá)式]
贞铣。要求符合任意精度要求的結(jié)果,其格式如下:N[表達(dá)式,n]
(結(jié)果保留n位精度)
格式與語句
- Mathematica的語句書寫十分方便腋么,一個語句可以分為多行寫咕娄,同一行可以寫多個語句(但要以分號間隔)。當(dāng)語句以分號結(jié)束時珊擂,語句計算后不做輸出(輸出語句除外)圣勒,否則將輸出計算的結(jié)果。
- 在Mathematica的編輯界面中輸入語句和函數(shù)摧扇,確認(rèn)光標(biāo)處于編輯狀態(tài)(不斷閃爍)圣贸,然后按Insert鍵來對這一段語句進(jìn)行求值。如果語句有錯扛稽,系統(tǒng)將用紅色字體給出出錯信息吁峻,你可以對已輸入的語句進(jìn)行修改,再運行在张。如果運行時間太長用含,你可以通過
Alt+.
(Alt+句號)來中止求值。 - 對函數(shù)名不確定的帮匾,可先輸入前面幾個字母(開頭一定要大寫)啄骇,然后按
Ctrl+K
,系統(tǒng)會自動補全該函數(shù)名瘟斜。 - 按下小鍵盤區(qū)的
Enter
會進(jìn)行計算缸夹,按下字母區(qū)的Enter
出現(xiàn)換行痪寻。
“表”及其用法
“表”是Mathematica中一個相當(dāng)有用的數(shù)據(jù)類型,它即可以作為數(shù)組虽惭,又可以作為矩陣橡类;除此以外,你可以把任意一組表達(dá)式用一個或一組{}括起來芽唇,進(jìn)行運算顾画、存儲∨悖可以說表是任意對象的一個集合亲雪。它可以動態(tài)地分配內(nèi)存勇凭,可以方便地進(jìn)行插入疚膊、刪除、排序虾标、翻轉(zhuǎn)等等幾乎所有可以想象到的操作寓盗。
如果你建立了一個表,你可以通過下表操作符[]來訪問它的每一個元素璧函,索引標(biāo)號從1開始傀蚌。如我們定義table={2,Pi ,{aaa,A}}為一個表,那么table[[1]]就為2蘸吓,table[[2]]就是Pi善炫,而table[[3,1]]表示嵌套在table中的子表{aaa,A}的第一個元素即aaa,table[[3,2]]表示{aaa,A}第二個元素即A库继÷嵋眨總之,表每一層次上并列的部分用逗號分割宪萄,表可以無窮嵌套艺谆。
程序流程控制
循環(huán)語句有For[賦初值,循環(huán)條件拜英,增量語句静汤,語句塊]表示如果滿足循環(huán)條件,則執(zhí)行語句塊和增量語句居凶,直到不滿足條件為止虫给,While[test,block]表明如果滿足條件test則反復(fù)執(zhí)行語句塊block,否則跳出循環(huán),Do[block,{i,imin,imax,istep}]與前者功能是相同的侠碧。還有Goto[lab], Label[lab]提供了程序中無條件跳轉(zhuǎn)抹估,Continue[]和Break[]提供了繼續(xù)循環(huán)或跳出循環(huán)的控制,Catch[語句塊1]和Throw[語句塊2]提供了運算中對異常情況的處理舆床。
常用函數(shù)
表函數(shù)
Append[表,表達(dá)式]或Prepend[表,表達(dá)式]把表達(dá)式添加到表的最前面或最后面棋蚌,如Append[{1,2,3},a]表示{1,2,3,a}嫁佳。
Union[表1,表2谷暮,......],Jion[表1,表2,......]來把幾個表合并為一個表蒿往,二者不同在于Union在合并時刪除了各表中重復(fù)的元素,而后者僅是簡單的合并湿弦;
Flatten[表]把表中所有子表"抹平"合并成一個表瓤漏,如Flatten[{1,2,{Sin[x],dog},{{y}}}]表示{1,2,Sin[x],dog,y}。
Patition[表颊埃,整數(shù)n]把表按每n個元素分段作為子表蔬充,集合成的表。Partition[{1,2,Sin[x],y},2]把表每兩個分段班利,結(jié)果為{{1,2},{Sin[x],y}}饥漫;
Delete[表,位置]罗标、Insert[表庸队,位置]來向表中按位置插入或刪除元素,如要刪除上面提到的table中的aaa,你可以用Delete[table,{3,1}]來實現(xiàn)闯割;
Sort[表]給出了表中各元素的大小順序彻消;
Reverse[表]、RotateLeft[表宙拉,整數(shù)n]宾尚、RotateRight[表,整數(shù)n]可以分別將一個表進(jìn)行翻轉(zhuǎn)谢澈、左轉(zhuǎn)n個元素煌贴、右轉(zhuǎn)n個元素等操作;
Length[表]給出了表第一個層次上的元素個數(shù)澳化;
Position[表崔步,表達(dá)式]給出了表中出現(xiàn)該表達(dá)式的位置,Count[表缎谷,表達(dá)式]則給出表達(dá)式出現(xiàn)的次數(shù)井濒。
圖形函數(shù)
圖形函數(shù)中最有代表性的函數(shù)為Plot[表達(dá)式,{變量列林,下限瑞你,上限},可選項]希痴,(其中表達(dá)式還可以是一個"表達(dá)式表"者甲,這樣可以在一個圖里畫多個函數(shù));變量為自變量砌创;上限和下限確定了作圖的范圍虏缸;可選項可要可不要鲫懒,不寫系統(tǒng)會按默認(rèn)值作圖,它表示對作圖的具體要求刽辙。
例如Plot[Sin[x],{x,0,2*Pi},AspectRatio-1]
表示在0<x<2Pi的范圍內(nèi)作函數(shù)Sin[x]的圖象窥岩,AspectRatio為可選項,表示圖的x向y向比例宰缤,AspectRatio-1表示縱橫比例為1:1颂翼,如果不寫這一項,系統(tǒng)默認(rèn)比例為1:GodenRatio,即黃金分割的比例(注意慨灭,可選項的寫法為可選項名-可選項值)朦乏,Plot還有很多可選項,如PlotRange表示作圖的值域氧骤,PlotPoint表畫圖中取樣點的個數(shù)呻疹,越大則圖越精細(xì),PlotStyle來確定所畫圖形的線寬语淘、線型诲宇、顏色等特性际歼,AxesLabel表式在坐標(biāo)軸上作標(biāo)記等等惶翻。
Plot[函數(shù)f,{x鹅心,xmin吕粗,xmax},選項] :在區(qū)間{x旭愧,xmin颅筋,xmax}上,按選項的要求畫出函數(shù)f的圖形
Plot[{函數(shù)1输枯,函數(shù)2}议泵,{x,xmin桃熄,xmax}先口,選項] :在區(qū)間{x鹏往,xmin菌赖,xmax}上妄辩,按選項的要求畫出幾個函數(shù)的圖形
Plot3D[二維函數(shù)表達(dá)式吮播,{變量1请梢,下限小槐,上限}, {變量2掰邢,下限筝尾,上限}界弧,可選項}]Plot3D[二維函數(shù)表達(dá)式凡蜻,{變量1搭综,下限,上限}, {變量2划栓,下限设凹,上限},可選項}]
二維參數(shù)方程作圖:ParametricPlot[{x(t),y(t)},{t,下限,上限}茅姜,可選項]
三維參數(shù)方程作圖:ParametricPlot3D[{x(u,v),y(u,v),z(u,v)},{u,下限,上限},{v,下限,上限}闪朱,可選項]
二維等高線圖:ContourPlot[二元表達(dá)式,{變量1钻洒,下限奋姿,上限}, {變量2,下限素标,上限}称诗,可選項}]
二維密度圖:DensityPlot[二元表達(dá)式,{變量1头遭,下限寓免,上限}, {變量2,下限计维,上限}袜香,可選項}]
除使用上述函數(shù)作圖以外,Mathematica還可以象其他語言一樣使用圖形元語言作圖鲫惶,如畫點函數(shù)Point[x,y],畫線函數(shù)Line[x1,y1,x2,y2],畫圓的Circle[x,y,r]蜈首,畫矩形和多邊形的Rectangle和Polygon,字符輸出的Text[字符串,輸出坐標(biāo)],還有顏色函數(shù)RGBColor[red,green,blue]欠母、Hue[],GrayLevel[gray]來描述顏色的亮度欢策、灰度、飽和度赏淌,用PointSize[相對尺度]踩寇、Thickness[相對尺度]來表示點和線的寬度×總之Mathematica可以精確地調(diào)節(jié)圖形的每一個特征俺孙。
數(shù)學(xué)函數(shù)
Mathematica系統(tǒng)內(nèi)核提供了豐富的數(shù)學(xué)計算的函數(shù),包括極限缩擂、積分鼠冕、微分、最值胯盯、極值懈费、統(tǒng)計、規(guī)劃等數(shù)學(xué)的各個領(lǐng)域博脑,復(fù)雜的數(shù)學(xué)問題簡化為對函數(shù)的調(diào)用憎乙,極大地提高了解決問題的效率票罐。
D[f, x] 求f[x]的微分
D[f, {x, n}] 求f[x]的n階微分
D[f,x1,x2..] 求f[x]對x1,x2...偏微分
Dt[f, x] 求f[x]的全微分df/dx
Dt[f] 求f[x]的全微分df
Dt[f, {x, n}] n階全微分df^n/dx^n
Dt[f,x1,x2..] 對x1,x2..的偏微分
Integrate[f, x] f[x]對x在的不定積分
Integrate[f, {x, xmin, xmax}] f[x]對x在區(qū)間(xmin,xmax)的定積分
Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重積分
Limit[expr, x->x0] x趨近于x0時expr的極限
Residue[expr, {x,x0}] expr在x0處的留數(shù)
Series[f, {x, x0, n}] 給出f[x]在x0處的冪級數(shù)展開
Series[f, {x, x0,nx}, {y, y0, ny}]先對y冪級數(shù)展開,再對x
Normal[expr] 化簡并給出最常見的表達(dá)式
SeriesCoefficient[series, n] 給出級數(shù)中第n次項的系數(shù)
SeriesCoefficient[series, {n1,n2...}]
'或Derivative[n1,n2...][f] 一階導(dǎo)數(shù)
InverseSeries[s, x] 給出逆函數(shù)的級數(shù)
ComposeSeries[serie1,serie2...] 給出兩個基數(shù)的組合
SeriesData[x,x0,{a0,a1,..},nmin,nmax,den]表示一個在x0處x的冪級數(shù)泞边,其中aii為系數(shù)
O[x]^n n階小量x^n
O[x, x0]^n n階小量(x-x0)^n
Dt[f, x] 求f[x]的全微分df/dx
Dt[f] 求f[x]的全微分df
Dt[f, {x, n}] n階全微分df^n/dx^n
Dt[f,x1,x2..] 對x1,x2..的偏微分
不定積分Integreate函數(shù)主要計算只含有“簡單函數(shù)”的被積函數(shù). “簡單函數(shù)”包括有理函數(shù)该押、指數(shù)函數(shù)、對數(shù)函數(shù)和三角函數(shù)與反三角函數(shù)阵谚。
計算定積分的命令和計算不定積分是同一個Integrate函數(shù)蚕礼,在計算定積分時,除了要給出變量外還要給出積分的上下限梢什。當(dāng)定積分算不出準(zhǔn)確結(jié)果時奠蹬,用N[%]命令總能得到其數(shù)值解.Nintegrate也是計算定積分的函數(shù),其使用方法和形式和Integrate函數(shù)相同.用Integrate函數(shù)計算定積分得到的是準(zhǔn)確解,Nintegrate函數(shù)計算定積分得到的是近似數(shù)值解.計算多重積分時,第一個自變量相應(yīng)于最外層積分放在最后計算.
解方程
Solve[eqns, vars] 從方程組eqns中解出vars
Solve[eqns, vars, elims] 從方程組eqns中削去變量elims,解出vars
DSolve[eqn, y, x] 解微分方程,其中y是x的函數(shù)
DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程組嗡午,其中yi是x的函數(shù)
DSolve[eqn, y, {x1,x2...}] 解偏微分方程
Eliminate[eqns, vars] 把方程組eqns中變量vars約去
SolveAlways[eqns, vars] 給出等式成立的所有參數(shù)滿足的條件
Reduce[eqns, vars] 化簡并給出所有可能解的條件
LogicalExpand[expr] 用&&和||將邏輯表達(dá)式展開
InverseFunction[f] 求函數(shù)f的逆函數(shù)
Root[f, k] 求多項式函數(shù)的第k個根
Roots[lhs==rhs, var] 得到多項式方程的所有根
代數(shù)運算
Expand[expr] 展開表達(dá)式
Factor[expr] 展開表達(dá)式
Simplify[expr] 化簡表達(dá)式
FullSimplify[expr] 將特殊函數(shù)等也進(jìn)行化簡
PowerExpand[expr] 展開所有的冪次形式
ComplexExpand[expr,{x1,x2...}] 按復(fù)數(shù)實部虛部展開
FunctionExpand[expr] 化簡expr中的特殊函數(shù)
Collect[expr, x] 合并同次項
Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次項
Together[expr] 通分
Apart[expr] 部分分式展開
Apart[expr, var] 對var的部分分式展開
Cancel[expr] 約分
ExpandAll[expr] 展開表達(dá)式
ExpandAll[expr, patt] 展開表達(dá)式
FactorTerms[poly] 提出共有的數(shù)字因子
FactorTerms[poly, x] 提出與x無關(guān)的數(shù)字因子
FactorTerms[poly, {x1,x2...}] 提出與xi無關(guān)的數(shù)字因子
Coefficient[expr, form] 多項式expr中form的系數(shù)
Coefficient[expr, form, n] 多項式expr中form^n的系數(shù)
Exponent[expr, form] 表達(dá)式expr中form的最高指數(shù)
Numerator[expr] 表達(dá)式expr的分子
Denominator[expr] 表達(dá)式expr的分母
ExpandNumerator[expr] 展開expr的分子部分
ExpandDenominator[expr] 展開expr的分母部分
ExpandDenominator[expr] 展開expr的分母部分
TrigExpand[expr] 展開表達(dá)式中的三角函數(shù)
TrigFactor[expr] 給出表達(dá)式中的三角函數(shù)因子
TrigFactorList[expr] 給出表達(dá)式中的三角函數(shù)因子的表
TrigReduce[expr] 對表達(dá)式中的三角函數(shù)化簡
TrigToExp[expr] 三角到指數(shù)的轉(zhuǎn)化
ExpToTrig[expr] 指數(shù)到三角的轉(zhuǎn)化
RootReduce[expr]
ToRadicals[expr]
矩陣的運算符號和函數(shù)
A+c A為矩陣,c為標(biāo)量,c與A中的每一個元素相加
A+B A,B為同階矩陣或向量,A與B的對應(yīng)元素相加
cA A為矩陣,c為標(biāo)量,c與A中的每個元素相乘
U.V 向量U與V的內(nèi)積
A.B 矩陣A與矩陣B相乘,要求A的列數(shù)等于B的行數(shù)
Det[M] 計算矩陣M的行列式的值
Transepose[M] M的轉(zhuǎn)置矩陣( 或 )
Inverse[M] 計算矩陣M的逆矩陣( )
Eigenvalus[A] 計算矩陣A的全部(準(zhǔn)確解)特征值
Eigenvalus[N[A]] 計算矩陣A的全部(數(shù)值解)特征值
Eigenvectors[A] 計算矩陣A的全部(準(zhǔn)確解)特征向量
Eigenvectors[N[A]] 計算矩陣A的全部(數(shù)值解)特征向量
Eigensystem[A] 計算矩陣A的所有(準(zhǔn)確解)特征值和特征向量
Eigensystem[N[A]] 計算矩陣A的所有(數(shù)值解)特征值和和特征向量
更多內(nèi)容見:ZYMIN的博客