




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
/Mathematica5教程第1章Mathematica概述1.1運(yùn)行和啟動(dòng):介紹如何啟動(dòng)Mathematica軟件,如何輸入并運(yùn)行命令1.2表達(dá)式的輸入:介紹如何使用表達(dá)式1.3幫助的使用:如何在mathematica中尋求幫助第2章Mathematica的基本量2.1數(shù)據(jù)類(lèi)型和常量:mathematica中的數(shù)據(jù)類(lèi)型和基本常量2.2變量:變量的定義,變量的替換,變量的清除等2.3函數(shù):函數(shù)的概念,系統(tǒng)函數(shù),自定義函數(shù)的方法2.4表:表的創(chuàng)建,表元素的操作,表的應(yīng)用2.5表達(dá)式:表達(dá)式的操作2.6常用符號(hào):經(jīng)常使用的一些符號(hào)的意義第3章Mathematica的基本運(yùn)算3.1多項(xiàng)式運(yùn)算:多項(xiàng)的四則運(yùn)算,多項(xiàng)式的化簡(jiǎn)等3.2方程求解:求解一般方程,條件方程,方程數(shù)值解以與方程組的求解3.3求積求和:求積與求和第4章函數(shù)作圖4.1二維函數(shù)作圖:一般函數(shù)的作圖,參數(shù)方程的繪圖4.2二維圖形元素:點(diǎn),線等圖形元素的使用4.3圖形樣式:圖形的樣式,對(duì)圖形進(jìn)行設(shè)置4.4圖形的重繪和組合:重新顯示所繪圖形,將多個(gè)圖形組合在一起4.5三維圖形的繪制:三維圖形的繪制,三維參數(shù)方程的圖形,三維圖形的設(shè)置第5章微積分的基本操作5.1函數(shù)的極限:如何求函數(shù)的極限5.2導(dǎo)數(shù)與微分:如何求函數(shù)的導(dǎo)數(shù),微分5.3定積分與不定積分:如何求函數(shù)的不定積分和定積分,以與數(shù)值積分5.4多變量函數(shù)的微分:如何求多元函數(shù)的偏導(dǎo)數(shù),微分5.5多變量函數(shù)的積分:如何計(jì)算重積分5.6無(wú)窮級(jí)數(shù):無(wú)窮級(jí)數(shù)的計(jì)算,斂散性的判斷第6章微分方程的求解6.1微分方程的解:微分方程的求解6.2微分方程的數(shù)值解:如何求微分方程的數(shù)值解第7章Mathematica程序設(shè)計(jì)7.1模塊:模塊的概念和定義方法7.2條件結(jié)構(gòu):條件結(jié)構(gòu)的使用和定義方法7.3循環(huán)結(jié)構(gòu):循環(huán)結(jié)構(gòu)的使用7.4流程控制第8章Mathematica中的常用函數(shù)8.1運(yùn)算符和一些特殊符號(hào):常用的和不常用一些運(yùn)算符號(hào)8.2系統(tǒng)常數(shù):系統(tǒng)定義的一些常量與其意義8.3代數(shù)運(yùn)算:表達(dá)式相關(guān)的一些運(yùn)算函數(shù)8.4解方程:和方程求解有關(guān)的一些操作8.5微積分相關(guān)函數(shù):關(guān)于求導(dǎo),積分,泰勒展開(kāi)等相關(guān)的函數(shù)8.6多項(xiàng)式函數(shù):多項(xiàng)式的相關(guān)函數(shù)8.7隨機(jī)函數(shù):能產(chǎn)生隨機(jī)數(shù)的函數(shù)函數(shù)8.8數(shù)值函數(shù):和數(shù)值處理相關(guān)的函數(shù),包括一些常用的數(shù)值算法8.9表相關(guān)函數(shù):創(chuàng)建表,表元素的操作,表的操作函數(shù)8.10繪圖函數(shù):二維繪圖,三維繪圖,繪圖設(shè)置,密度圖,圖元,著色,圖形顯示等函數(shù)8.11流程控制函數(shù)
第1章Mathematica概述1.1Mathematica的啟動(dòng)和運(yùn)行Mathematica是美國(guó)Wolfram研究公司生產(chǎn)的一種數(shù)學(xué)分析型的軟件,以符號(hào)計(jì)算見(jiàn)長(zhǎng),也具有高精度的數(shù)值計(jì)算功能和強(qiáng)大的圖形功能。假設(shè)在Windows環(huán)境下已安裝好Mathematica5.0,啟動(dòng)Windows后,在“開(kāi)始”菜單的“程序”中單擊,就啟動(dòng)了Mathematica5.0,在屏幕上顯示如圖1的Notebook窗口,系統(tǒng)暫時(shí)取名Untitled-1,直到用戶保存時(shí)重新命名為止。圖1輸入1+1,然后按下Shif+Enter鍵,這時(shí)系統(tǒng)開(kāi)始計(jì)算并輸出計(jì)算結(jié)果,并給輸入和輸出附上次序標(biāo)識(shí)In[1]和Out[1],注意In[1]是計(jì)算后才出現(xiàn)的;再輸入第二個(gè)表達(dá)式,要求系統(tǒng)將一個(gè)二項(xiàng)式x5+y5展開(kāi),按Shift+Enter輸出計(jì)算結(jié)果后,系統(tǒng)分別將其標(biāo)識(shí)為In[2]和Out[2],如圖2。圖2在Mathematica的Notebook界面下,可以用這種交互方式完成各種運(yùn)算,如函數(shù)作圖,求極限、解方程等,也可以用它編寫(xiě)像C那樣的結(jié)構(gòu)化程序。在Mathematica系統(tǒng)中定義了許多功能強(qiáng)大的函數(shù),我們稱(chēng)之為內(nèi)建函數(shù)(built-infunction),直接調(diào)用這些函數(shù)可以取到事半功倍的效果。這些函數(shù)分為兩類(lèi),一類(lèi)是數(shù)學(xué)意義上的函數(shù),如:絕對(duì)值函數(shù)Abs[x],正弦函數(shù)Sin[x],余弦函數(shù)Cos[x],以e為底的對(duì)數(shù)函數(shù)Log[x],以a為底的對(duì)數(shù)函數(shù)Log[a,x]等;第二類(lèi)是命令意義上的函數(shù),如作函數(shù)圖形的函數(shù)Plot[f[x],{x,xmin,xmax}],解方程函數(shù)Solve[eqn,x],求導(dǎo)函數(shù)D[f[x],x]等。必須注意的是:Mathematica嚴(yán)格區(qū)分大小寫(xiě),一般地,內(nèi)建函數(shù)的首寫(xiě)字母必須大寫(xiě),有時(shí)一個(gè)函數(shù)名是由幾個(gè)單詞構(gòu)成,則每個(gè)單詞的首寫(xiě)字母也必須大寫(xiě),如:求局部極小值函數(shù)FindMinimum[f[x],{x,x0}等。第二點(diǎn)要注意的是,在Mathematica中,函數(shù)名和自變量之間的分隔符是用方括號(hào)“[]”,而不是一般數(shù)學(xué)書(shū)上用的圓括號(hào)“()”,初學(xué)者很容易犯這類(lèi)錯(cuò)誤。如果輸入了不合語(yǔ)法規(guī)則的表達(dá)式,系統(tǒng)會(huì)顯示出錯(cuò)信息,并且不給出計(jì)算結(jié)果,例如:要畫(huà)正弦函數(shù)在區(qū)間[-10,10]上的圖形,輸入plot[Sin[x],{x,-10,10}],則系統(tǒng)提示“可能有拼寫(xiě)錯(cuò)誤,新符號(hào)‘plot’很像已經(jīng)存在的符號(hào)‘Plot’”,實(shí)際上,系統(tǒng)作圖命令“Plot”第一個(gè)字母必須大寫(xiě),一般地,系統(tǒng)內(nèi)建函數(shù)首寫(xiě)字母都要大寫(xiě)。再輸入Plot[Sin[x],{x,-10,10},系統(tǒng)又提示缺少右方括號(hào),并且將不配對(duì)的括號(hào)用紫色顯示,如圖3。圖3一個(gè)表達(dá)式只有準(zhǔn)確無(wú)誤,方能得出正確結(jié)果。學(xué)會(huì)看系統(tǒng)出錯(cuò)信息能幫助我們較快找出錯(cuò)誤,提高工作效率。完成各種計(jì)算后,點(diǎn)擊“文件”“退出”退出,如果文件未存盤(pán),系統(tǒng)提示用戶存盤(pán),文件名以“.nb”作為后綴,稱(chēng)為Notebook文件。以后想使用本次保存的結(jié)果時(shí)可以通過(guò)“文件”“打開(kāi)”菜單讀入,也可以直接雙擊它,系統(tǒng)自動(dòng)調(diào)用Mathematica將它打開(kāi)。1.2表達(dá)式的輸入Mathematica提供了多種輸入數(shù)學(xué)表達(dá)式的方法。除了用鍵盤(pán)輸入外,還可以使用工具樣或者快捷方式健入運(yùn)算符、矩陣或數(shù)學(xué)表達(dá)式。1.數(shù)學(xué)表達(dá)式二維格式的輸入Mathematic擔(dān)提供了兩種格式的數(shù)學(xué)表達(dá)式。形如x/(2+3x)+y*(x-w)的稱(chēng)為一維格式,形如的稱(chēng)為二維格式。你可以使用快捷方式輸入二維格式,也可用基本輸入工具欄輸入二維格式。下面列出了用快捷方式輸入二維格式的方法:數(shù)學(xué)運(yùn)算數(shù)學(xué)表達(dá)式按鍵分式xCtrl+/2n次方xnxCtrl+^n開(kāi)2次方Ctrl+2x下標(biāo)x2xCtrl+_2例如輸入數(shù)學(xué)表達(dá)式,可以按如下順序輸入按鍵:(,x,+,1,),Ctrl+^,+,4,→,Ctrl+/,Ctrl+2,2,x,+,y另外也可從“文件”菜單中激活“控制面板”“BasicInput”工具欄,也可輸入,并且使用工具欄可輸入更復(fù)雜的數(shù)學(xué)表達(dá)式,如下圖4。圖4圖52.特殊字符的輸入MathemMatica還提供了用以輸入各種特殊符號(hào)的工具欄。基本輸入工具欄包含了常用的特殊字符(上圖),只要單擊這些字符按鈕即可輸入。若要輸入其它的特殊字符或運(yùn)算符號(hào),必須使用從“文件”菜單中激活“控制面板”“CompleteCharacters”工具欄,如上圖5,單擊符號(hào)后即可輸入。1.3Mathematica的聯(lián)機(jī)幫助系統(tǒng)用Mathematica的過(guò)程中,常常需要了解一個(gè)命令的詳細(xì)用法,或者想知系統(tǒng)中是否有完成某一計(jì)算的命令,聯(lián)機(jī)幫助系統(tǒng)永遠(yuǎn)是最詳細(xì)、最方便的資料庫(kù)。1.獲取函數(shù)和命令的幫助在Notebook界面下,用?或??可向系統(tǒng)查詢(xún)運(yùn)算符、函數(shù)和命令的定義和用法,獲取簡(jiǎn)單而直接的幫助信息。例如,向系統(tǒng)查詢(xún)作圖函數(shù)Plot命令的用法?Plot系統(tǒng)將給出調(diào)用Plot的格式以與Plot命令的功能(如果用兩個(gè)問(wèn)號(hào)“??”,則信息會(huì)更詳細(xì)一些)。?Plot*給出所有以Plot這四個(gè)字母開(kāi)頭的命令。2.Help菜單任何時(shí)候都可以通過(guò)按shift+F1鍵或點(diǎn)擊“幫助”菜單項(xiàng)“幫助瀏覽”,調(diào)出幫助菜單,如圖6所示。圖6其中的各按鈕用途如下:Built-inFunction內(nèi)建函數(shù),按數(shù)值計(jì)算、代數(shù)計(jì)算、圖形和編程分類(lèi)存放Add-ons&Links程序包附件和鏈接TheMathematicaBook一本完整的Mathematica使用手冊(cè)GettingStarted/Demos初學(xué)者入門(mén)指南/多種演示Tour漫游MathematicFrontEnd菜單命令的快捷鍵,二維輸入格式等MasterIndex按字母命令給出命令、函數(shù)和選項(xiàng)的索引表如果要查找Mathematica中具有某個(gè)功能的函數(shù),可以通過(guò)幫助菜單中的Mahematica使用手冊(cè),通過(guò)其目錄索引可以快速定位到自己要找的幫助信息。例如:需要查找Mathematica中有關(guān)解方程的命令,單擊“TheMathematicaBook”按鈕,再單擊“Contents”,在目錄中找到有關(guān)解方程的節(jié)次,點(diǎn)擊相應(yīng)的超鏈接,有關(guān)內(nèi)容的詳細(xì)說(shuō)明就馬上調(diào)出來(lái)了。如果知道具體的函數(shù)名,但不知其詳細(xì)使用說(shuō)明,可以在命令按鈕Goto右邊的文本框中鍵入函數(shù)名,按回車(chē)鍵后就顯示有關(guān)函數(shù)的定義、例題和相關(guān)聯(lián)的章節(jié)。例如,要查找函數(shù)Plot的用法,只要在文本框中鍵入Plot,按回車(chē)鍵后顯示Plot函數(shù)的詳細(xì)用法和例題的窗口,如圖7。圖7如果已經(jīng)確知Mathematica中有具有某個(gè)功能的函數(shù),但不知具體函數(shù)名,可以點(diǎn)擊Built-inFunctions按鈕,再按功能分類(lèi)從粗到細(xì)一步一步找到具體的函數(shù),例如,要找畫(huà)一元函數(shù)圖形的函數(shù),點(diǎn)擊Built-inFunctions→GraphicsandSound→2DPlots→Plot,找到Plot的幫助信息(如圖7)。
第2章Mathematica的基本量2.1數(shù)據(jù)類(lèi)型和常數(shù)1.數(shù)值類(lèi)型在Mathematic中,基本的數(shù)值類(lèi)型有四種:整數(shù)、有理數(shù)、實(shí)數(shù)和復(fù)數(shù)。如果你的計(jì)算機(jī)的內(nèi)存足夠大,Mathemateic可以表示任意長(zhǎng)度的精確實(shí)數(shù),而不受所用的計(jì)算機(jī)字長(zhǎng)的影響。整數(shù)與整數(shù)的計(jì)算結(jié)果仍是精確的整數(shù)或是有理數(shù)。例如2的100次方是一個(gè)31位的整數(shù):ln[1]:=2^100Out[1]=126765294376在Mathematica中允許使用分?jǐn)?shù),也就是用有理數(shù)表示化簡(jiǎn)過(guò)的分?jǐn)?shù)。當(dāng)兩個(gè)整數(shù)相除而又不能整除時(shí),系統(tǒng)就用有理數(shù)來(lái)表示,即有理數(shù)是由兩個(gè)整數(shù)的比來(lái)組成如:In[2]:=12345/5555Out[2]=實(shí)數(shù)是用浮點(diǎn)數(shù)表示的,Mathematica實(shí)數(shù)的有效位可取任意位數(shù),是一種具有任意精確度的近似實(shí)數(shù),當(dāng)然在計(jì)算的時(shí)候也可以控制實(shí)數(shù)的精度。實(shí)數(shù)有兩種表示方法:一種是小數(shù),另外一種是用指數(shù)方法表示的。如:In[3]:=0.239998Out[3]=0.23998In[4]:=0.12*10^11Out[4]=0.12*10^11實(shí)數(shù)也可以與整數(shù),有理數(shù)進(jìn)行混合運(yùn)算,結(jié)果還是一個(gè)實(shí)數(shù)。In[5]:=2+1/4+0.5Out[5]=2.75小數(shù)表示復(fù)數(shù)是由實(shí)部和虛部組成,實(shí)部和虛部可以用整數(shù)、實(shí)數(shù)、有理數(shù)表示。在Mathematica中,用I表示虛數(shù)單位如:In[6]:=3+0.7IOut[6]=3+0.7i2.不同類(lèi)型數(shù)的轉(zhuǎn)換在Mathematica的不同應(yīng)用中,通常對(duì)數(shù)字的類(lèi)型要求是不同的。例如在公式推導(dǎo)中的數(shù)字常用整數(shù)或有理數(shù)表示,而在數(shù)值計(jì)算中的數(shù)字常用實(shí)數(shù)表示。在一般情況下在輸出行Out[n]中,系統(tǒng)根據(jù)輸入行In[n]的數(shù)字類(lèi)型對(duì)計(jì)算結(jié)果做出相應(yīng)的處理。如果有一些特殊的要求,就要進(jìn)行數(shù)據(jù)類(lèi)型轉(zhuǎn)換。在Mathematica中的提供以下幾個(gè)函數(shù)達(dá)到轉(zhuǎn)換的目的:N[x]將x轉(zhuǎn)換成實(shí)數(shù)N[x,n]將x轉(zhuǎn)換成近似實(shí)數(shù),精度為nRationalize[x]給出x的有理數(shù)近似值Rationalize[x,dx]給出x的有理數(shù)近似值,誤差小于dx舉例:In[1]:=N[5/3,20]Out[1]=1.6666666666666666667In[2]:=N[%,10]%表示上一輸出結(jié)果,即%=1.6666666666666666667。Out[2]=1.666666667第二個(gè)輸出是把上面計(jì)算的結(jié)果變?yōu)?0位精度的數(shù)字。In[3]:=Rationalize[%]Out[3]=3.數(shù)學(xué)常數(shù)Mathematica中定義了一些常見(jiàn)的數(shù)學(xué)常數(shù),這些數(shù)學(xué)常數(shù)都是精確數(shù)。Pi表示π=3.14159……E自然對(duì)數(shù)的底e=2.71828……Degree1度,π/180弧度I虛數(shù)單位iInfinity無(wú)窮大∞-infinity負(fù)無(wú)窮大-∞GondenRatio黃金分割數(shù)0.61803數(shù)學(xué)常數(shù)可用在公式推導(dǎo)和數(shù)值計(jì)算中,在數(shù)值計(jì)算中表示精確值。如:In[1]:=Pi^2Out[1]=π2In[2]:=Pi^2//NOut[2]=9.86964.數(shù)的輸出形式在數(shù)的輸出中可以使用轉(zhuǎn)換函數(shù)進(jìn)行不同數(shù)據(jù)類(lèi)型和精度的轉(zhuǎn)換。另外對(duì)一些特殊要求的格式還可以使用如下的格式函數(shù):NumberForm[expr,n]以n位精度的實(shí)數(shù)形式輸出實(shí)數(shù)exprScientificFormat[expr]以科學(xué)記數(shù)法輸出實(shí)數(shù)exprEngineergForm[expr]以工程記數(shù)法輸出實(shí)數(shù)expr例如:In[1]:=N[Pi^30,30]Out[1]=8.2128933×1014In[2]:=NumberForm[%,10]Out[2]//NumberForm=8.212893304×1014下面的函數(shù)輸出按工程記數(shù)法表示的指數(shù)可被3整除的實(shí)數(shù)In[3]=EngineeringForm[%%]%%表示上兩步的輸出結(jié)果,即Out[1]Out[3]//EngineeringForm=821.28933×10122.2變量1.變量的命名Mathematica中內(nèi)部函數(shù)和命令都是以大寫(xiě)字母開(kāi)始的標(biāo)示符,為了不會(huì)與它們混淆,我們自定義的變量應(yīng)該是以小寫(xiě)字母開(kāi)始,后跟數(shù)字和字母的組合,長(zhǎng)度不限。例如:a12,ast,aST都是合法的,而12a,z*a,ab(中間有空格)是非法的。另外在Mathematica中的變量是區(qū)分大小寫(xiě)的。在Mathematica中,變量不僅可以存放一個(gè)數(shù)值,還可以存放表達(dá)式或復(fù)雜的算式。2.給變量賦值在Mathmatica中用等號(hào)=為變量賦值。同一個(gè)變量可以表示一個(gè)數(shù)值,一個(gè)數(shù)組,一個(gè)表達(dá)式,甚至一個(gè)圖形。如:In[1]:=x=3Out[1]=3In[2]:=x^2+2*xOut[2]=15In[3]:=x=%+1Out[3]=16對(duì)不同的變量可同時(shí)賦不同的值,例如:In[4]:={u,v,w}={1,2,3}Out[4]={1,2,3}In[5]:=2u+3v+wOut[5]=11對(duì)于已定義的變量,當(dāng)你不再使用它是,為防止變量值的混淆,可以隨時(shí)用=.清除它的值,如果變量本身也要清除用函數(shù)Clear[var],例如:In[6]:=u=.In[7]:=2u+v(上面已定義了u,v的值)Out[7]=2+2u3.變量的替換在給定一個(gè)表達(dá)式時(shí)其中的變量可能取不同的值,這是可用變量替換來(lái)計(jì)算表達(dá)式的不同值。方法為用expr/.x->xval,例如:In[1]:=f=x/2+1Out[1]=1+In[2]:=f/.x->1Out[2]=In[3]:=f/.x->2Out[3]=3如果表達(dá)式中有多個(gè)變量,也可同時(shí)替換,方法為:expr/.{x->xval,y->yval,...}In[4]:=(x+y)(x-y)^2/.{x->3,y->1-a}Out[4]=(4-a)(2+a)22.3函數(shù)1.系統(tǒng)函數(shù)在Mathmatic中定義了大量的數(shù)學(xué)函數(shù)可以直接調(diào)用,這些函數(shù)其名稱(chēng)一般表達(dá)了一定的意義,可以幫助我們理解。下面是幾個(gè)常用的函數(shù):Floor[x]不比x大的最大整數(shù)Ceiling[x]不比x小的最小整數(shù)Sign[x]符號(hào)函數(shù)Round[x]接近x的整數(shù)Abs[x]x絕對(duì)值Max[x1,x2,x3……..]x1,x2,x3…….中的最大值Min[x1,x2,x3……..]x1,x2,x3…….中的最小值Random[]0~1之間的隨機(jī)函數(shù)Random[R,xmax]0~xmax之間的隨機(jī)函數(shù)(R為Real,Integer,Complex之一)Random[R,{xmin,xmax}]xmin~xmax之間的隨機(jī)函數(shù)(R為Real,Integer,Complex之一)Exp[x]指數(shù)函數(shù)exLog[x]自然對(duì)數(shù)函數(shù)lnxLog[b,x]以b為底的對(duì)數(shù)函數(shù)Sin[x],Cos[x],Tan[x],Csc[x],Sec[x],Cot[x]三角函數(shù)(變量是以弧度為單位的)ArcSin[x],ArcCos[x],ArcTan[x],ArcCsc[x],ArcSec[x],ArcCot[x]反三角函數(shù)Sinh[x],Cosh[x],Tanhx[x],Csch[x],Sech[x],Coth[x]雙曲函數(shù)ArcSinh[x],ArcCosh[x],ArcTanhx[x],ArcCsch[x],ArcSech[x],ArcCoth[x]反雙曲函數(shù)Mod[m,n]m被n整除的余數(shù),余數(shù)與n同號(hào)Quotient[m,n]m/n的整數(shù)部分GCD[n1,n2,n3……]或GCD[s]n1,n2,…或s的最大公約數(shù),s為數(shù)據(jù)集合LCM[n1,n2……]或LCM[s]n1,n2…或s的最小公倍數(shù),s為數(shù)據(jù)集合N!N的階程N(yùn)!!N的雙階程Mathematica中的函數(shù)與數(shù)學(xué)上的函數(shù)有些不同的地方,Mathematica中函數(shù)是一個(gè)具有獨(dú)立功能的程序模塊,可以直接被調(diào)用。同時(shí)每一函數(shù)也可以包括一個(gè)或多個(gè)參數(shù),也可以沒(méi)有參數(shù)。參數(shù)的的數(shù)據(jù)類(lèi)型也比較復(fù)雜。更加詳細(xì)的可以參看系統(tǒng)的幫助,了解各個(gè)函數(shù)的功能和使用方法是學(xué)習(xí)Mathematica軟件的基礎(chǔ)。2.函數(shù)的定義(1)函數(shù)的立即定義立即定義函數(shù)的語(yǔ)法如下f[x_]=expr函數(shù)名為f,自變量為x,expr是表達(dá)式。在執(zhí)行時(shí)會(huì)把expr中的x都換為f的自變量x(不是x_)。函數(shù)的自變量具有局部性,只對(duì)所在的函數(shù)起作用。函數(shù)執(zhí)行結(jié)束后也就沒(méi)有了,不會(huì)改變其它全局定義的同名變量的值。請(qǐng)看下面的例子,定義函數(shù)f(x)=xsinx+x2,對(duì)定義的函數(shù)我們可以求函數(shù)值,也可繪制它的圖形。In[1]:=f[x_]=x*Sin[x]+x^2Out[1]=x2+xSin[x]In[2]:=f[1]Out[2]=1+Sin[1]In[3]:=Plot[f[x],{x,-3,3}]Out[3]=-Graphics-對(duì)于定義的函數(shù)我們可以使用命令Clear[f]清除掉,而Remove[f]則從系統(tǒng)中刪除該函數(shù)。(2)多變量函數(shù)的定義也可以定義多個(gè)變量的函數(shù),格式為f[x_,y_,z_,…]=expr自變量為x,y,z…,相應(yīng)的expr中的自變量會(huì)被替換。例如定義函數(shù)f(x,y)=xy+ycosx。In[1]:=f[x_,y_]=x*y+y*Cos[x]Out[1]=xy+yCos[x]In[2]:=f[2,3]Out[2]=6+3Cos[2](3)延遲定義函數(shù)延遲定義函數(shù)從定義方法上與即時(shí)定義的區(qū)別為“=”與“:=”延遲定義的格式為f[x_]:=expr其他操作基本相同。那么延遲定義和即時(shí)定義的主要區(qū)別是什么?即時(shí)定義函數(shù)在輸入函數(shù)后立即定義函數(shù)并存放在內(nèi)存中并可直接調(diào)用。延時(shí)定義只是在調(diào)用函數(shù)時(shí)才真正定義函數(shù)。(4)使用條件運(yùn)算符定義和If命令定義函數(shù)如果要定義如:這樣的分段函數(shù)應(yīng)該如何定義,顯然要根據(jù)x的不同值給出不同的表達(dá)式。一種辦法是使用條件運(yùn)算符,基本格式為:f[x_]:=expr/;condition,當(dāng)condition條件滿足時(shí)才把expr賦給f(x)。下面定義方法,通過(guò)圖形可以驗(yàn)證所定義函數(shù)的正確性。In[1]:=f[x_]:=x-1/;x>=0f[x_]:=x^2/;(x>-1)&&(x<0)f[x_]:=x-1/;x<=-1In[4]:=Plot[f[x],{x,-2,2}]Out[4]=-Graphics-當(dāng)然使用If命令也可以定義上面的函數(shù),If語(yǔ)句的格式為If[條件,值1,值2],如果條件成立取“值1”,否則取“值2”,用If語(yǔ)句的定義結(jié)果如下:In[5]:=g[x_]:=If[x>=0,x-1,If[x<=-1,Sin[x],x^2]]In[6]:=Plot[g[x],{x,-2,2}]Out[6]=-Graphics-可以看出用If定義的函數(shù)g(x)和前面函數(shù)f(x)相同,這里使用了兩個(gè)If嵌套,邏輯性比較強(qiáng)。關(guān)于其他的條件命令的進(jìn)一步討論請(qǐng)看后面的章節(jié)。2.4表將一些相互關(guān)聯(lián)的元素放在一起,使它們成為一個(gè)整體。既可以對(duì)整體操作,也可以對(duì)整體中的一個(gè)元素單獨(dú)進(jìn)行操作。在Mathematica中這樣的數(shù)據(jù)結(jié)構(gòu)就稱(chēng)作表(List)。表{a,b,c}表示一個(gè)向量;表{{a,b},{c,d}}表示一個(gè)矩陣。1.建表在表中元素較少時(shí),可以采取直接列表的方式列出表中的元素,如{1,2,3},請(qǐng)看下面的操作:In[1]:={1,2,3}Out[1]={1,2,3}下面是符號(hào)表達(dá)式的列表:In[2]:=1+%x+x^%Out[2]={1+2x,1+2x+x2,1+3x+x3}下面是把Out[2]列表中的表達(dá)式對(duì)x求導(dǎo):In[3]:=D[%,x]Out[3]={2,2+2x,3+3x2}In[4]:=%/.x->1Out[4]={2,4,6}如果表中的元素較多時(shí),可以用建表函數(shù)進(jìn)行建表:Table[f,{i,min,max,step}]以step為步長(zhǎng)給出f的數(shù)值表,i由min變到maxTable[f,{min,max}]給出f的數(shù)值表,i由min變到max步長(zhǎng)為1Table[f,max]給出max個(gè)f的表Table[f,{i,imin,imax},{j,jmin,jmax},….]生成一個(gè)多維表TableForm[list]或list//TableForm以表格格式顯示一個(gè)表Range[n]生成一個(gè){1,2,……,n}的列表Range[n1,n2,d]生成{n1,n1+d,n1+d,….,n2}的列表下面給出x乘i的值的表,i的變化范圍為[2,6]:In[1]:=Table[x*i,{i,2,6}]Out[1]={2x,3x,4x,5x,6x}In[2]:=Table[x^2,{4}]Out[2]={x2,x2,x2,x2}用Range函數(shù)生成一個(gè)序列數(shù):In[3]:=Range[10]Out[3]={1,2,3,4,5,6,7,8,9,10}下面這個(gè)序列是以步長(zhǎng)為2,范圍從8到20:In[4]:=Range[8,20,2]Out[4]={8,10,12,14,16,18,20}上面的參數(shù)變化都是只有一個(gè),也可制成包括多個(gè)參數(shù)的表,下面生成一個(gè)多維表:In[5]:=Table[2i+j,{i,1,3},{j,3,5}]Out[5]={{5,6,7},{7,8,9},{9,10,11}}使用函數(shù)TableForm可以以表格的方式輸出In[6]:=%//TableFormOut[6]//TableForm=567789910112.表的元素的操作當(dāng)t表示一個(gè)表時(shí),t[[i]]表示t中的第i個(gè)子表。如果t={1,2,a,b}那么t[[3]]表示“a”。In[1]:=t=Table[I+2,j{I,1,3},{j,3,5}]Out[1]={{7,9,11},{8,10,12},{9,11,13}}In[2]:=t[[2]]Out[2]={8,10,12}對(duì)于表的操作Mathematica提供了豐富的函數(shù),詳細(xì)的可以查閱后面的附錄或者系統(tǒng)幫助。2.5表達(dá)式1.表達(dá)式的含義Mathematica能處理數(shù)學(xué)公式,表以與圖形等多種數(shù)據(jù)形式。盡管他們從形式上看起來(lái)不一樣,但在Mathematica內(nèi)部都被看成同種類(lèi)型,即都把他們當(dāng)作表達(dá)式的形式。Mathematica中的表達(dá)式是由常量、變量、函數(shù)、命令、運(yùn)算符和括號(hào)等組成,它最典型的形式是f[x,y]。2.表達(dá)式的表示形式在顯示表達(dá)式時(shí),由于需要的不同,有時(shí)我們需要表達(dá)式的展開(kāi)形式,有時(shí)又需要其因子乘積的形式。在我們計(jì)算過(guò)程中可能得到很復(fù)雜的表達(dá)式,這時(shí)我們又需要對(duì)它們進(jìn)行化簡(jiǎn)。常用的處理這種情況的函數(shù)就是變換表達(dá)式表示形式函數(shù)。Expand[expr]按冪次升高的順序展開(kāi)表達(dá)式Factor[expr]以因子乘積的形式表示表達(dá)式Simplify[expr]進(jìn)行最佳的代數(shù)運(yùn)算,并給出表達(dá)式的最少項(xiàng)形式表達(dá)式(x+y)4(x+y2)展開(kāi):In[1]:=Expand[(x+y)^4*(x+y^2)]Out[1]=x5+4x4y+6x3y2+x4y2+4x2y3+4x3y3+xy4+6x2y4+4xy5+y6還原上面的表達(dá)式為因子乘積的形式:In[2]:=Factor[%]Out[2]=(x+y)4(x+y2)多項(xiàng)式表達(dá)式的項(xiàng)數(shù)較多,比較復(fù)雜,在顯示時(shí)顯得比較雜亂,而且在計(jì)算過(guò)程中沒(méi)有必要知道全部的內(nèi)容;或表達(dá)式的項(xiàng)很有規(guī)律,沒(méi)有必要打印全部的表達(dá)式的結(jié)果,Mathematica提供了一些命令,可將它縮短輸出或不輸出。expr//Short或Short[expr]顯示表達(dá)式的一行形式Short[expr,n]顯示表達(dá)式的n行形式,命令后加一分號(hào)“;”不輸出結(jié)果將表達(dá)式(1+x)30展開(kāi),并僅顯示一行有代表項(xiàng)的式子:In[3]:=Expand[(1+x)^30]//ShortOut[3]=1+30x+435x2+4060x3+<<23>>+4060x27+435x28+30x29+x30將上式分成三行的形式展開(kāi):In[4]:=Short[Expand[(1+x)^30],3]Out[4]=1+30x+435x2+4060x3+27405x4+142506x5+<<19>>+142506x25+27405x26+4060x27+435x28+30x29+x30把代數(shù)表達(dá)式變換到你所需要的形式?jīng)]有一種固定的模式,一般情況下,最好的辦法是進(jìn)行多次實(shí)驗(yàn),嘗試不同的變換并觀察其結(jié)果,再挑出你滿意的表示形式。3.關(guān)系表達(dá)式與邏輯表達(dá)式我們已經(jīng)知道“=”表示給變量賦值。現(xiàn)在我們來(lái)學(xué)習(xí)一些其它的邏輯與關(guān)系算子。關(guān)系表達(dá)式是最簡(jiǎn)單的邏輯表達(dá)式,我們常用關(guān)系表達(dá)式表示一個(gè)判別條件。例如:x>0,y=0。關(guān)系表達(dá)式的一般形式是:表達(dá)式+關(guān)系算子+表達(dá)式。其中表達(dá)式可為數(shù)字表達(dá)式、字符表達(dá)式或意義更廣泛的表達(dá)式,如一個(gè)圖形表達(dá)式等。在我們實(shí)際運(yùn)用中,這里的表達(dá)式常常是數(shù)字表達(dá)式或字符表達(dá)式。下面出Mathematica中的各種關(guān)系算子:x==y相等x!=y不相等x>y大于x>=y大于等于x<y小于x<=y小于等于x==y==z都相等x!=y!=z都不相等x>y>z嚴(yán)格遞減x<y<z嚴(yán)格遞增給變量x,y賦值,輸出后一變量的值,如:In[1]:=x=2;y=9Out[1]=9In[2]:=x>yOut[2]=False下面是比較兩個(gè)表達(dá)式的大小:In[3]:=3^2>y+1上面已設(shè)y=9Out[3]=False用一個(gè)關(guān)系式只能表示一個(gè)判定條件,要表示幾個(gè)判定條件胡組合,必須用邏輯運(yùn)算符將關(guān)系表達(dá)式組織在一起,我們稱(chēng)表示判定條件的表達(dá)式為邏輯表達(dá)式。下面是常用的邏輯運(yùn)算和它們的意義:!非&&并||或Xor異或If條件LogicalExpand[expr]展開(kāi)邏輯表達(dá)式例如下面的例子說(shuō)明它們的應(yīng)用:In[4]:=3*x^2<y+1&&3^2==y(前面已給x,y賦值,x=2,y=9)Out[4]=FalseIn[5]:=3*x^2<y+1||3^2==yOut[5]=True2.6常用的符號(hào)(term)圓括號(hào)用于組合運(yùn)算f[x]方括號(hào)用于函數(shù){}花括號(hào)用于列表[[i]]雙括號(hào)用于排序%代表最后產(chǎn)生的結(jié)果%%倒數(shù)第二次的算結(jié)果%%%(k)倒數(shù)第k次的計(jì)算結(jié)果%n例出行Out[n]的結(jié)果(用時(shí)要小心)第3章Mathematica的基本運(yùn)算3.1多項(xiàng)式的表示形式可認(rèn)為多項(xiàng)式是表達(dá)式的一種特殊的形式,所以多項(xiàng)式的運(yùn)算與表達(dá)式的運(yùn)算基本一樣,表達(dá)式中的各種輸出形式也可用于多項(xiàng)式的輸出。Mathematica提供一組按不同形式表示代數(shù)式的函數(shù)。Expand[ploy]按冪次展開(kāi)多項(xiàng)式ployExpandAll[ploy]全部展開(kāi)多項(xiàng)式ployFactor[ploy]對(duì)多項(xiàng)式poly進(jìn)行因式分解FactorTerms[ploy,{x,y,…}]按變量x,y,…進(jìn)行分解Simplify[poly]把多項(xiàng)式化為最簡(jiǎn)形式FullSimplify[ploy]把多項(xiàng)式化簡(jiǎn)Collect[poly,x]把多項(xiàng)式poly按x冪展開(kāi)Collect[poly,{x,y…}]把多項(xiàng)式poly按x,y….的冪次展開(kāi)1.下面是一些例子(1)對(duì)x8-1進(jìn)行分解In[1]:=Factor[x^8-1]Out[1]=(-1+x)(1+x)(1+x2)(1+x4)(2)展開(kāi)多項(xiàng)式(1+x)5In[2]:=Expand[(1+x)^5]Out[2]=1+5x+10x2+10x3+5x4+x5(3)展開(kāi)多項(xiàng)式(1+x+3y)4In[3]:=Expand[(1+x+3y)^4]Out[3]=1+4x+6x2+4x3+x4+12y+36xy+36x2y+12x3y+54y2+108xy2+54x2y2+108y3+108xy3+81y4(4)展開(kāi)并化簡(jiǎn)(2+x)4(1+x)4(3+x)3In[4]:=Simplify[Expand[(2+x)^4(1+x)^4(3+x)^3]]Out[4]=(3+x)3(2+3x+x2)42.多項(xiàng)式的代數(shù)運(yùn)算多項(xiàng)式的運(yùn)算有加、減、乘、除運(yùn)算:+,-,*,/下面通過(guò)例子說(shuō)明。(1)多項(xiàng)式的加運(yùn)算a2+3a+2與a+1相加(后面例子中也使用這兩個(gè)多項(xiàng)式運(yùn)算)In[5]:=(a^2+3*a+2)+(a+1)括號(hào)可以不要Out[5]=3+4a+a2或者In[5]:=p1=a^2+3*a+2;p2=a+1;p1+p2Out[5]=3+4a+a2(2)多項(xiàng)式相減In[6]:=(a^2+3*a+2)-(a+1)Out[6]=1+2a+a2或者In[6]:=p1-p2Out[6]=1+2a+a2(3)多項(xiàng)式相乘In[7]:=(a^2+3*a+2)*(a+1)Out[7]=(1+a)(2+3a+a2)或者In[7]:=p1*p2Out[7]=(1+a)(2+3a+a2)In[8]:=Expand[p1*p2]Out[8]=2+5a+4a2+a3(4)多項(xiàng)式相除In[9]:=(a^2+3*a+2)/(a+1)Out[9]=或者In[9]:=p1/p2Out[9]=(5)另外使用Cancel函數(shù)可以約去公因式In[10]:=Cancel[p1/p2]Out[10]=2+a兩個(gè)多項(xiàng)式相除,總能寫(xiě)成一個(gè)多項(xiàng)式和一個(gè)有理式相加Mathematic中提供兩個(gè)函數(shù)PolynomialQuotient和PolynomialRemainder分別返商式和余式。例如:In[11]:=PolynomialQuotient[x^2,1+2x,x]Out[11]=商的整式部分In[12]:=PolynomialRemainder[x^2,1+2x,x]Out[12]=商的余式部分3.2方程與其根的表示因?yàn)镸athematica把方程看作邏輯語(yǔ)句。在數(shù)學(xué)方程式表示為形如“x2-2x-3=0”的形式。在Mathematica中“=”用作賦值語(yǔ)句,這樣在Mathematica中用“==”(兩個(gè)等號(hào)中間沒(méi)有空格)表示邏輯等號(hào),則方程應(yīng)表示為“x^2-2x-3==0”。方程的解同原方程一樣被看作是邏輯語(yǔ)句。例如用Roots[lhs==rhs,vars]求方程x2-3x+2=0的根顯示為:In[1]:=Roots[x^2-3x+3==0,x]Out[1]=x==1||x==2這種表示形式說(shuō)明x取1或2均可而用Solve[lhs==rhs,vars]可得解集形式:In[2]:=Solve[x^2-3x+3==0,x]Out[2]={{x→1},{x→2}}1求解一元代數(shù)方程下面是常用的一些方程求解函數(shù):Solve[lhs==rhs,vars]給出方程的解集NSolve[lhs==rhs,vars]直接給出方程的數(shù)值解集Roots[lhs==rhs,vars]求表達(dá)式的根FindRoot[lhs==rhs,{x,x0}]求x在x0附近的方程的數(shù)值解先看Solve函數(shù)例子:In[3]:=Solve[x^2-2x-3==0,x]Out[3]={{x→-1},{x→3}}Solve函數(shù)可處理的主要方程是多項(xiàng)式方程。Mathematica總能對(duì)不高于四次的方程進(jìn)行精確求解,對(duì)于三次或四次方程,解的形式可能很復(fù)雜。例如求x3+5x+3=0In[4]:=Solve[x^3+5x+3==0,x]這時(shí)可用N函數(shù)近似數(shù)值解:In[5]:=N[%]Out[5]={{x→-0.5641},{x→0.28205-2.28881i},{x→0.28205+2.28881i}}當(dāng)方程中有一些復(fù)雜的函數(shù)時(shí),Mathematica可能無(wú)法直接給出解來(lái)。在這種情況下我們可用FindRoot[]來(lái)求解,但要給出起始條件。例如求3Cosx=lnx的解:In[6]:=FindRoot[3*Cos[x]==Log[x],{x,1}]Out[6]={x→1.44726}但只能求出x=1附近的解,如果方程有幾個(gè)不同的解,當(dāng)給定不同的條件時(shí),將給出不同的解。如上例若求x=10附近的解命令為:In[7]:=FindRoot[3*Cos[x]==Log[x],{x,10}]Out[7]={x→13.1064}因此確定解的起始位置是比較關(guān)鍵,一種常用的方法是,先繪制圖形觀察后再解。In[8]:=Plot[{3*Cos[x],Log[x]},{x,1,15}]Out[8]=-Graphics-如上例通過(guò)圖形可斷定在x=5附近有另一根:In[9]:=FindRoot[3*Cos[x]==Log[x],{x,5}]Out[9]={x→5.30199}2.求方程組的根使用Solve,NSolve和FindRoot也可求方程組的解,只是使用時(shí)格式略有不同,下面給出一個(gè)Solve函數(shù)的例子:求解In[10]:=Slove[{2*x+3*y==9,x-2*y==1},{x,y}]Out[10]={{x→3,y→1}}3求方程的全解如果我們求ax2+bx+c=0的根,我們用Solve函數(shù)解的結(jié)果是:In[11]:=Solve[a*x^2+b*x+c==0,x]Out[11]={{x→},{x→}}這顯然是不合理的,因?yàn)閷?duì)不同的a,b,c方程的解有不同的情況,而上面只是給出部分解如果要解決這個(gè)問(wèn)題可用Reduce命令,它可根據(jù)a,b,c的取值給出全部值。In[12]:=Reduce[a*x^2+b*x+c==0,x]Out[12]=a≠0&&(x==||x==||a==0&&b≠0&&x==||c==0&&b==0&&a==0因此Solve,Roots只給出方程的一般解,而Reduce函數(shù)數(shù)可以給出方程的全部可能解。4.解條件方程在作方程計(jì)算時(shí),可以把一個(gè)方程看作你要處理的主要方程,而把其他方程作為必須滿足的輔助條件,你將會(huì)發(fā)現(xiàn)這樣處理很方便。譬如在求解像x4+bx2+c=0這樣的方程時(shí),通常我們采用x2=y的代換方法,使求解方程得到簡(jiǎn)化。在Mahematica中,我們通常是首先命名輔助條件組,然后用名字把輔助條件包含在你要用函數(shù)Solve[]求解的方程組中。用Sc定義方程:sin2x+cos2x=1,在這種條件下,求解方程cosx+2sinx=1。In[1]:=Sc=Sin[x]^2+Cos[x]^2==1Out[1]=Cos[x]2+Sin[x]2==1In[2]:=Solve[{Cos[x]+2Sin[x]==1,Sc},{Sin[x],Cos[x]}]Out[2]={{Sin[x]→0,Cos[x]→1},{Sin[x]→,Cos[x]→}}3.3求和與求積在Mathematica中,數(shù)學(xué)上的和式符號(hào)用Sum表示,連乘符號(hào)用Product表示。下面列出求和與求積函數(shù)的形式和意義:Sum[f,{i,imin,imax}]求和Sum[f,{i,imin,imax,di}]以步長(zhǎng)di增加i求和Sum[f,{i,imin,imax},{j,jmin,jmax}]嵌套求和Product[f,{i,imain,imax}]求積Product[f,{i,imin,imax,di}]以步長(zhǎng)di增加i求積Product[f,{I,imin,imax},{j,jmin,jmax}]嵌套求積Nsum[f,{i,imin,Infinity}]求近似值NProduct[f,{i,imin,Infinity}]求近似值一些例子:求1到9的奇數(shù)和:In[1]:=Sum[2i-1,{i,1,9}]Out[1]=81若下限是1,可以省略:In[2]:=Sum[2i-1,{i,9}]Out[2]=81下式構(gòu)造一個(gè)多項(xiàng)式:In[3]:=Sum[i*x^i,{i,1,9,2}]Out[3]=x+3x3+5x5+7x7+9x9Mathematic可以給出和的精確結(jié)果:In[4]:=Sum[1/n!,{n,1,11}]Out[4]=In[5]:=N[%]Out[5]=1.71828第4章函數(shù)作圖4.1基本的二維圖形Mathematica在直角坐標(biāo)系中作一元函數(shù)圖形用下列基本命令:Plot[f,{x,xmin,xmax},option->value]在指定區(qū)間上按選項(xiàng)定義值畫(huà)出函數(shù)在直角坐標(biāo)系中的圖形Plot[{f1,f2,f3,…},{x,xmin,xmax},option->value]在指定區(qū)間上按選項(xiàng)定義值同時(shí)畫(huà)出多個(gè)函數(shù)在直角坐標(biāo)系中的圖形Mathematica繪圖時(shí)允許用戶設(shè)置選項(xiàng)值對(duì)繪制圖形的細(xì)節(jié)提出各種要求。例如,要設(shè)置圖形的高寬比,給圖形加標(biāo)題等。每個(gè)選項(xiàng)都有一個(gè)確定的名字,以“選項(xiàng)名->選項(xiàng)值”的形式放在Plot中的最右邊位置,一次可設(shè)置多個(gè)選項(xiàng),選項(xiàng)依次排列,用逗號(hào)隔開(kāi),也可以不設(shè)置選項(xiàng),采用系統(tǒng)的默認(rèn)值。選項(xiàng)說(shuō)明默認(rèn)值A(chǔ)spectRatio圖形的高、寬比1/0.618AxesLabel給坐標(biāo)軸加上名字不加PlotLabel給圖形加上標(biāo)題不加PlotRange指定函數(shù)因變量的區(qū)間計(jì)算的結(jié)果PlotStyle用什么樣方式作圖(顏色,粗細(xì)等)值是一個(gè)表PlotPoint畫(huà)圖時(shí)計(jì)算的點(diǎn)數(shù)251.舉例(1)例如繪制的圖形:In[1]:=f[x_]=Sin[x^2]/(x+1)Plot[f[x],{x,0,2Pi}]Out[1]=Out[2]=-Graphics-限制長(zhǎng)寬比例:In[3]:=Plot[f[x],{x,0,2Pi},AspectRatio->1/2]長(zhǎng)寬比例為1:2Out[3]=-Graphics-(2)如果要取消刻度可以使用Ticks選項(xiàng):In[4]:=Plot[f[x],{x,0,2Pi},Ticks->None]Out[4]=-Graphics-(3)如果要標(biāo)注坐標(biāo)名稱(chēng)x軸為“Time”,y軸為“Height”:In[5]:=Plot[f[x],{x,0,2Pi},AxesLabel->{“time”,”height”}]Out[5]=-Graphics-(4)將坐標(biāo)原點(diǎn)移到點(diǎn)(3,0),并標(biāo)注圖形名稱(chēng)為Decaywaves:In[6]:=Plot[f[x],{x,0,2Pi},AxesOrigin->{3,0},PlotLabel->“Decaywaves”]Out[6]=-Graphics-(5)修改x方向的刻度,y軸方向的刻度則用默認(rèn)值:In[7]:=Plot[f[x],{x,0,2Pi},Ticks->{{0,Pi/2,Pi,3Pi/2,2Pi},Automatic}]Out[7]=-Graphics-(6)定義y軸的繪圖范圍:In[8]:=Plot[f[x],{x,0,2Pi},PlotRange->{-0.6,0.6}]Out[8]=-Graphics-(7)另外我們也可以將圖形結(jié)果定義給變量,但不顯示圖形,后用Show命令顯示:In[9]:=g1=Plot[f[x],{x,0,2Pi},DisplayFunction->Identity]g2=Plot[x*Cos[x]/12,{x,0,2Pi},DisplayFunction->Identity]Show[g1,g2,DisplayFunction->$DisplayFunction]Out[9]=-Graphics-Out[10]=-Graphics-Out[11]=-Graphics-2.數(shù)據(jù)集合的圖形Mathematica用于繪數(shù)字集合的圖形的命令與前而介紹的繪函數(shù)圖形的命令是相似的。如下:ListPlot[{y1,y2,…..}]繪出在x的值為1,2…時(shí)y1,y2,…的圖形ListPlot[{{x1,y1},{x2,y2},…..}]繪出離散點(diǎn)(xi,yi)ListPlot[List,PlotJoined->True]把離散點(diǎn)連成曲線(1)下面舉例說(shuō)明下面是一個(gè)離散數(shù)據(jù)的集合的圖形:In[1]:=List1=Table[i^3+i,{i,10}]Out[1]={2,10,30,68,130,222,350,520,738,1010}In[2]:=ListPlot[List1]Out[2]=-Graphics-3.二維參數(shù)作圖前面我們使用Plot命令可以繪出直角坐標(biāo)系下的函數(shù)圖形,使用ParametrecPlot可以繪制參數(shù)曲線下面給出ParametricPlot的常用形式:ParametricPlot[{fx,fy},{t,tmin,tmax}]繪出參數(shù)圖ParametricPlot[{fx,fy},{gx,gy},….{t,tmin,tmax}]繪出一組參數(shù)圖ParametricPlot[{fx,fy},{t,tmin,tmax},AspectRatio->Automatic]設(shè)法保持曲線的形(1)繪制參數(shù)方程的圖形In[1]:=ParametricPlot[{Sin[3t]Cos[t],Sin[3t]Sin[t]},{t,0,2Pi}]Out[1]=-Graphics-(2)下面將一個(gè)園與上面參數(shù)方程的圖象繪在同一個(gè)坐標(biāo)下,并保證圖形的形狀正確:In[2]:=ParametricPlot[{{Sin[3t]Cos[t],Sin[3t]Sin[t]},{Sin[t],Cos[t]}},{t,0,2Pi},AspectRatio->Automatic]Out[2]=-Graphics-4.2二維圖形元素用圖形元素繪圖適合于繪制結(jié)構(gòu)復(fù)雜的圖形。Mathematica中還提供了各種如繪制點(diǎn)、線段、圓弧等函數(shù)。同樣我們可先用Graphics作出平面圖形的表達(dá)式,再用Show顯示守成的圖形。下面給出在Mathematica中常用的二維圖形元素:Point[[x,y]]點(diǎn)Line[{{x1,y1},{x2,y2},…}]線段Rectangle[{xmin,ymin},{xmax,ymax}]填充矩陣Polygon[{{x1,y1},{x2,y2},…….}]填充多邊形Circle[{x,y},r]圓Circle[{x,y},{rx,ry}]半軸分別為rx,ry的橢圓Circle[{x,y},r,{theta1,thata2}]圓弧Circle[{x,y},{rx,ry},{theta1,theta2}]橢圓弧Disk[{x,y},r]填充圓Raster[{{a11,a12,…..},{a21,……},….}]灰度在0到1之間的灰層組Text[Expr,{x,y}]文本大小下圖繪出一個(gè)有顏色和大小的點(diǎn),且在圖形四周插入文本:In[1]:=g1=Graphics[{Text[“Left”,{-1,0},{-1,0}],Text[“Right”,{1,0},{1,0}],Text[“Above”,{0,1},{0,-1}],Text[“Below”,{0,-1},{0,-1}],{PointSize[0.3],Point[{0,0}]}},PlotRange->All]Show[g1]Out[1]=-Graphics-Out[2]=-Graphics-下面繪制一些有線條組成的圖形:In[3]:=sawline=Line[Table[{n,(-1)^n},{n,6}]]Show[Graphics[sawline]]Out[3]=Line[{{1,-1},{2,1},{3,-1},{4,1},{5,-1},{6,1}}]Out[4]=-Graphics-當(dāng)然也可以添加坐標(biāo)軸,下面的例子說(shuō)明了這一點(diǎn):In[5]:=Show[Graphics[sawline],Axes->True]Out[5]=-Graphics-下面的例子是說(shuō)明了Retangle的圖形繪制,例子中用一些小矩形逼近正弦曲線與x軸所成面積。程序中生成一個(gè)圖形集合并顯示出來(lái)。In[6]:=St=Table[Rectangle[{x,0},{x+0.08,Sin[x]}],{x,0,2Pi,0.15}]Show[Graphics[St],Axes->True]Out[7]=-Graphics-4.3圖形的樣式我們稱(chēng)圖形的顏色、曲線的形狀和寬度等特性為圖形樣式。在本節(jié)中,我們就圖形的各種樣式,尤其是曲線的樣式進(jìn)行學(xué)習(xí)。下面給出選項(xiàng)用于設(shè)置圖形樣式:Graykvel[]灰度介于0(黑)到l(白)之間RGBColor[r,g,b]由紅、綠,藍(lán)組成的顏色,每種色彩取0到1之間的數(shù)Hue[A]取0到1之間的色彩Hue[h,s,b]指定色調(diào),位置和亮度的顏色,每項(xiàng)介于0到1之間PointSize[d]給出半徑為d的點(diǎn),單位是Plot的一個(gè)分?jǐn)?shù)AbsolutePointSize[d]給出半徑為d的點(diǎn)(以絕對(duì)單位量取)Thickness[w]給所有線的寬度w,單位是Plot的分?jǐn)?shù)AbsoluteThickness[w]給所有線的寬度w,(以絕對(duì)單位量取)Dashing[wl,w2,….]給所有線為一系列虛線,虛線段的長(zhǎng)度為wl,w2,…Absolutedashing[{w1,w2,…..}]以絕對(duì)單位給出虛線長(zhǎng)度PlotStyle->style設(shè)立Plot中所有曲線的風(fēng)格PlotStyle->{{Style1},{Style2}…….}設(shè)立Plot中一些列曲線的風(fēng)格MeshStyle->Style設(shè)立寬度和表面網(wǎng)格的風(fēng)格1.圖形顏色的設(shè)置在Mathematicaa提供各種圖形指令中,對(duì)圖形元素顏色的設(shè)置是一個(gè)很重要的設(shè)置.。下面給出三條不同顏色的正弦曲線,此處以灰度表示,即顏色深淺不同。In[1]:=Plot[{Sin[x],Sin[2x],Sin[3x]},{x,0,2Pi},PlotStyle->{RGBColor[0.9,0,0],RGBColor[0,0.9,0],RGBColor[0,0,0.9]}]Out[1]=-Graphics-下面用不同的色調(diào)對(duì)三個(gè)菱形進(jìn)行著色。In[2]:=v1={{-1,0},{0,-1},{1,0},{0,1}};Show[Graphics[{Hue[0.1],Polygon[3*v1],Hue[0.8],Polygon[2*v1],Hue[0.2],Polygon[v1]},AspectRatio->Automatic]]Out[2]=-Graphics-2.圖形大小下面是一些點(diǎn),注意點(diǎn)大小的控制。In[3]:=Table[Point[{n^2,Prime[n]}],{n,5}];Show[Graphics[{PointSize[0.1],%}],PlotRange->All];下面的點(diǎn)的控制是用絕對(duì)單位:In[4]:=ListPlot[Table[Prime[n],{n,10}],Prolog->AbsolutePointSize[5]]Out[4]=-Graphics-3.線段的控制下面的例子是控制線段的寬度,使用的是絕對(duì)控制。In[5]:=Show[Graphics[{Table[{AbsoluteThickness[d],Line[{{0,0},{1,d}}]},{d,5}],Line[{{0,5},{1,0}}]}]]Out[5]=-Graphics-Mathematica提供的虛線指令可生成多種不同的復(fù)雜虛線。4.4圖形的重繪和組合每次繪制圖形后,Mathematica保存了圖形的所有信息,所以用戶可以重繪這些圖形。我們?cè)谥乩L圖形的時(shí)候,還可以改變一些使用。下面是常用重繪圖形的函數(shù)。Show[plot]重繪圖形Show[plot,option->value]改變方案重繪圖形Show[plot1,plot2,plot3…]多個(gè)圖形的繪制Show[GraphcisArray[{{plot1,plot2,…}…}]]繪制圖形矩陣InputForm[plot]給出所有的圖形信息1.使用Show顯示圖形下面繪制函數(shù)sinx2的圖形。In[1]:=Plot[Sin[x^2],{x,-Pi,Pi}]Out[1]=-Graphics-In[2]:=Show[%]Out[2]=-Graphics-重繪圖形時(shí),可以改變命令的設(shè)置,下面改變y的比例同時(shí)給圖加邊框:In[3]:=Show[%,PlotRange->{-1,2},Frame->True]]Out[3]=-Graphics-2.使用Show命令進(jìn)行組合也可使用Show進(jìn)行圖形組合。圖形組合與圖形是否有相同的比例無(wú)關(guān),這是Mathematica會(huì)自動(dòng)選擇新的比例來(lái)繪制圖形。下面繪制函數(shù)xsin(2x+π)的圖形和xcos2x然后繪制在一張圖時(shí)。In[4]:=f1=Plot[x*Sin[2x+Pi],{x,0,4Pi}]Out[4]=-Graphics-In[5]:=f2=Plot[x*Cos[2x],{x,0,4Pi}]Out[5]=-Graphics-In[6]:=Show[f1,f2]Out[6]=-Graphics-3.將多個(gè)圖形組合為一個(gè)圖形我們也可把圖形組合為一個(gè)圖形,我們還可以用GraphicsArray把多個(gè)圖形繪制在一個(gè)圖形矩陣中如下圖。In[7]:=Show[GraphicsArray[{{%6,f1},{%6,f2}}]]Out[7]=-GraphicsArray-4.5基本三維圖形繪制函數(shù)f(x,y)在平面區(qū)域上的三維立體圖形的基本命令是Plot3D,Plot3D和Plot的工作方式和選項(xiàng)基本相同。ListPlot3D可以用來(lái)繪制三維數(shù)字集合的三維圖形,其用法也類(lèi)似于ListPlot,下面給出這兩個(gè)函數(shù)的常用形式:Plot3D[f,(x,xmin,xmax),(y,ymin,ymax)]繪制以x和y為變量的三維函數(shù)的圖形ListPlot3D[{Z11,Z12,…},{Z21,Z22,…},…..]]繪出高度為Zvx數(shù)組的三維圖形Plot3D同平面圖形一樣,也有許多輸出選項(xiàng),你可通過(guò)多次試驗(yàn)找出你所需的最佳圖形樣式。選項(xiàng)取值意義AxesTrue是否包括坐標(biāo)軸AxesLabelNone在軸上加上標(biāo)志:zlabel規(guī)定z軸的標(biāo)志,{xlabel,ylabel,zlabel}規(guī)定所有軸的標(biāo)志BoxedTrue是否在曲面周?chē)由狭⒎襟wColorFunctionAutomatic使用什么顏色的明暗度;Hue表示使用一系列顏色TextStyleSTextStyle用于圖形文本的缺省類(lèi)型ormatTypeStandardForm用于圖形文本的缺省格式類(lèi)型DisplayFunctionSdlisplayFunction如何繪制圖形,Indentity表示不顯示FaceGridsNone如何在立體界面上繪上網(wǎng)格;All表示在每個(gè)界面上繪上網(wǎng)格HiddenSurfaceTrue是否以立體的形式繪出曲面LighdngTrue是否用明暗分布米給表面加色MeshTrue是否在表面上繪出xy網(wǎng)格PlotRangeAutomatic圖中坐標(biāo)的范圍;可以規(guī)定為All,{zmin,zmax}或{xminn,xmax},{ymin,ymax},{zmin,zmax}ShadingTrue表面是用陰影還是留空白ViewPoint{1.3,-2.4,2}表面的空間觀察點(diǎn)1.三維繪圖舉例(1)函數(shù)sin(x+y)cos(x+y)的立體圖:In[1]:=t1=Plot3D[Sin[x+y]*Cos[x+y],{x,0,4},{y,0,4}]Out[1]=-SurfaceGraphics-(2)對(duì)于三維圖形中Axes、Axeslabel、Boxed等操作同二維圖形的一些操作很相似。用PlotRange設(shè)定曲線的表面的變化范圍。In[2]:=Show[t1,PlotRange->{0.2,0.2}]Out[2]=-SurfaceGraphics-(3)圖形軸上加上標(biāo)記,且在每個(gè)平面上畫(huà)上網(wǎng)格。In[3]:=Show[t1,AxesLabel->{“Time”,”Depth”,”Value”},FaceGrids->All]Out[3]=-SurfaceGraphics-(4)視圖的改變學(xué)習(xí)過(guò)畫(huà)法幾何或工程制圖的都知道,制圖時(shí)通常用三視圖來(lái)表示一個(gè)物體的具體形狀特性。我們?cè)谏钪幸仓缽牟煌^察點(diǎn)觀察物體,其效果是很不一樣的。Mathematica在繪制立體圖形時(shí),在系統(tǒng)默認(rèn)的情況下,觀察點(diǎn)在(1.3,-2.4,2)處。這個(gè)參考點(diǎn)選擇是具有一般性的,因此偶爾把圖形的不同部分重在一起也不會(huì)發(fā)生視覺(jué)混亂。下面例子改變觀察視點(diǎn)。In[4]:=Show[t1,ViewPoint->{2,-2,0}]Out[4]=-SurfaceGraphics-從上面我們可以看出,觀察點(diǎn)位于曲面的上方有利于看清對(duì)于圖形全貌。對(duì)于較復(fù)雜的圖形,我們?cè)谒L的圖形上包括盡可能多的曲線對(duì)于我們觀察很有幫助。同時(shí),在曲面的周?chē)苯永L出立方體盒子也有利于我們認(rèn)清曲面的方位。(5)下面是沒(méi)有網(wǎng)格和立體盒子的曲面圖,它看起來(lái)就不如前面的圖形清晰明了。In[5]:=Show[t1,Mesh->False,Boxed->False]Out[5]=-SurfaceGraphics-(6)下圖給出沒(méi)有陰影的曲面In[6]:=Show[t1,Shading->False]Out[6]=-SurfaceGraphics-帶有陰影和網(wǎng)格的圖形對(duì)于理解曲面的形狀是很有好處的。在有些矢量圖形的輸出裝置中,你可能得不到陰影,但是當(dāng)有陰影時(shí),輸出裝置可能要花很長(zhǎng)時(shí)間來(lái)輸出它。(7)給空間立體曲面著色通常情況下,Mathematica為了使圖形更加逼真而用明暗分布的形式給空間立體曲面著色。在這種情況下,Mathematica假定在圖形的右上方有三種光源照在物體上。但有時(shí)這種方法會(huì)造成混亂,此時(shí)你可用Lighting->False來(lái)采取根據(jù)高度在表面上涂以不同灰度的陰影的方法。In[7]:=Show[t1,Lighting->False]Out[7]=-SurfaceGraphics-2用數(shù)據(jù)來(lái)進(jìn)行繪圖同二維繪圖一樣,三維圖形也可用數(shù)據(jù)來(lái)進(jìn)行繪圖。下面給出數(shù)據(jù)矩陣,因其較大未表示其結(jié)果。In[8]:=MyTable:=Table[Sin[x*y]+Random[Real,{0.15,0.15}],{x,0,3Pi/2,Pi/15},{y,0,3Pi/2,Pi/15}]ListPlot3D[MyTable]Out[9]=-SurfaceGraphics-3.三維空間的參數(shù)方程繪圖三維空間中的參數(shù)繪圖函數(shù)ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax}]和二維空間中的ParametricPlot很相仿。在這種情況下,Mathematica實(shí)際上都是根據(jù)參數(shù)t來(lái)產(chǎn)生一系列點(diǎn),然后再連接起來(lái)。三維參數(shù)作圖的基本形式為:ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax}]給出空間曲線的參數(shù)圖ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax},{u,umin,umax}]給出空間曲面的參數(shù)圖ParametricPlot3D[{fx,fv,fz,s}…..]
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 與秋天有關(guān)的成語(yǔ)課件
- 不等式課件教學(xué)課件
- 云南師范大學(xué)《環(huán)境導(dǎo)視系統(tǒng)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 上海工商外國(guó)語(yǔ)職業(yè)學(xué)院《聲學(xué)基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 邵陽(yáng)職業(yè)技術(shù)學(xué)院《向量微積分》2023-2024學(xué)年第一學(xué)期期末試卷
- 內(nèi)蒙古包頭市青山區(qū)2025年初三年級(jí)校內(nèi)模擬物理試題試卷(最后一卷)含解析
- 下載馬工程配套課件
- 江南影視藝術(shù)職業(yè)學(xué)院《從分子觀點(diǎn)了解生物學(xué):結(jié)構(gòu)生物學(xué)簡(jiǎn)介》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼源職業(yè)技術(shù)學(xué)院《藥物分析化學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省撫州市南城縣第一中學(xué)2025年高三下學(xué)期期中聯(lián)考物理試題理試題含解析
- 計(jì)算機(jī)硬件購(gòu)銷(xiāo)合同
- 2022年分析“二診”找對(duì)策全力以赴備高考
- 風(fēng)力發(fā)電技術(shù)--課件第7章-風(fēng)電場(chǎng)SCADA系統(tǒng)
- 安全用電、用電安全培訓(xùn)ppt課件
- 高中歷史思維導(dǎo)圖(高清-可以放大)課件
- DAIKIN大金ACK70N空氣凈化器中文說(shuō)明書(shū)
- 礦山承包開(kāi)采合同
- 電力行業(yè)信息系統(tǒng)安全等級(jí)保護(hù)定級(jí)工作指導(dǎo)意見(jiàn)
- 市長(zhǎng)在市政協(xié)會(huì)議委員發(fā)言會(huì)上的講話
- 優(yōu)秀教案:接觸器聯(lián)鎖正反轉(zhuǎn)控制線路的檢修與測(cè)試
- 高二化學(xué)烴的衍生物.ppt課件
評(píng)論
0/150
提交評(píng)論