數(shù)模-培訓(xùn)及mathematica講義格式_第1頁
數(shù)模-培訓(xùn)及mathematica講義格式_第2頁
數(shù)模-培訓(xùn)及mathematica講義格式_第3頁
數(shù)模-培訓(xùn)及mathematica講義格式_第4頁
數(shù)模-培訓(xùn)及mathematica講義格式_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第二章MathematicaMathematica是一個符號計(jì)算與數(shù)值計(jì)算的通用數(shù)學(xué)包,是由的物理學(xué)家StephenWolfram所的一個小組開發(fā)成功并推向市場的。Mathematica1.0、1.2、2.0、2.2、2.4、3.04.0Windows3.04.0Mathcad和相比,Mathematica才稱得上是一個真正的數(shù)學(xué)符號計(jì)算包,因?yàn)橹挥兴膬?nèi)核是以符號計(jì)算為基礎(chǔ)的,比如你可以定你可以像Mathcad那樣進(jìn)行草稿式的數(shù)學(xué)計(jì)算你也可以像一樣4.0MathematicaMathematica右邊的小窗口,稱為數(shù)學(xué)工具面板,它包含多種數(shù)學(xué)符號,更File/PalettesMathcadMathematicax2Sin[2x]dx0題:首先,Mathematica的輸入操作不如Mathcad方便,其次,由于Mathematica的函數(shù)及符號太多,導(dǎo)致這種輸入方法效率太低。因此,對這種直觀令輸入方法將不做過多的介紹。有的讀者可以Mathematica左邊的大窗口,MathematicaNotebook,Mathematica進(jìn)入時默認(rèn)的文件名為Untitled-1.nb。Notebook與Mathcad中的工作表一樣,你可以的其中輸入數(shù)學(xué)算式并讓Mathematica為你計(jì)算。Notebook窗口中右面最小Mathematica稱為cell(細(xì)胞),每個cellcell能占用多個行,若干個cell組成更大的cell。如果想刪除某個cell,cell每次進(jìn)入Notebook,并且重新建立一個文件,Mathematica總是將你所輸入令與它計(jì)算的相應(yīng)結(jié)果進(jìn)行。輸入按順序用In[1]、非計(jì)算信息不顯示輸出,你可以在運(yùn)算過程中,使用Out[n]來調(diào)果)、%%%(上三計(jì)算的結(jié)果),依此類推。你可以將Mathematica看成是一個超級的計(jì)算器,如果你在In[n]下輸入一個或多個命令,然后按“Shift+Enter,MathematicaOut[n]的形式給Notebook們?nèi)サ袅薎n[n]及Out[n]的標(biāo)號,但將輸入用五號黑體顯示,輸出用五A 5,1,2,1,6,2,1,2,7;DetB:=InverseA;W=2A+3628,115,

,113,741,

,114,227,

1,0,0,0,1,0,0,0,%1,0,0,0,1,0,0,0,出結(jié)果(繪圖命令及非計(jì)算信息除外你可以調(diào)用Help菜單隨時獲得系統(tǒng)詳細(xì)的幫助,此外,你也可直接在Notebook中鍵入類似下面的字符串 I Intege ??Integrate1、File“New”建立一個新的Notebook“Open打開已有的Notebook,即以擴(kuò)展名為nb形式存在的文件“Close”關(guān)閉當(dāng)前Notebook“Save”保存當(dāng)前Notebook,其默認(rèn)名為Untitled-1.nb、Untitled-2.nb,……的形式“SaveAs”將當(dāng)前Notebook換名存盤“SaveAsSpecial”將當(dāng)前Notebook以某種特殊文件格式保存,包括:3.0以前版本的文件格式、文本格式、Mathematica包格式、多細(xì)胞格式、Tex格式、超文本格式“OpenSpecial”打開特殊格式的文件,它主要用于各平臺間的轉(zhuǎn)換,比如將UNIX系統(tǒng)用Mathematica寫的程序讀入Windows下的Mathematica2、Edit這些選項(xiàng)中有些與Mathcad中的Edit菜單的選項(xiàng)用法相同只“CopyAsSaveSelectionAs”“Selecet“Insert“Motion”“Expression可以像Mathcad一樣,在Notebook中輸入形象化的數(shù)學(xué)公式;“Preference”通過這個選項(xiàng),可以修改Mathematica的所有系統(tǒng)運(yùn)行3、Cell“ConvertTo”將細(xì)胞從一種形式轉(zhuǎn)換為另一種形式,例如輸入Integrate[x,x]并將光標(biāo)定位在此細(xì)胞內(nèi),然后選擇“ConvertForm“Display細(xì)胞的顯示形式“CellProperties”用于設(shè)定細(xì)胞的各種屬性“Cell“Divide若干個細(xì)胞;“MergeCells”將選定的多個細(xì)胞合并成一個細(xì)胞;“AnimateSelectedGraphics”此命令可以將用戶選定的一系列圖形細(xì)“Make4、Format在Notebook中,可以編排和打印與Word效果相似的文稿“ScreenStyleEnvironment”Notebook“Printing“Show選中一個或多個細(xì)胞,選擇此菜單,你會看到Mathematica在磁盤上保OptionInspector”與菜單Edit→Preference“Style“Edit“Font“Face”PlainBoldItalic“Size“Text“BackGround“Chose“Text“Word胞內(nèi)某行的長度超過當(dāng)前Notebook窗口所能顯示的長度時,通知MathematicaWrapatWindowWidth,即按“Cell“Horizontal“Show“ShowNotebook窗口中的常用“ShogeBreaks”顯示及隱藏分頁“Magnification5、Input“GetGraphicsCoordinates”獲得二維圖形中點(diǎn)的坐標(biāo),此菜單只含有提示信息,其用法是:將鼠標(biāo)指向圖形,然后按住Ctrl鍵,就可看到圖形中的坐標(biāo)“3DViewPointSelector”指定三維圖形的視角(它Plot3DPlot3D[x^2-y^2,{x,-1,1},{y,-畫出馬鞍面的圖形后,想改變此圖形的觀察角度,將上行變Plot3D[x^2-y^2,{x,-1,1},{y,-PastePlot3D[x^2-y^2,{x,-1,1},{y,-1,1},ViewPoints->{-1,5,-的形式,重新執(zhí)行此行就改變了圖形的觀察角度“ColorSelector”用法同上,但改變圖形的顏色“RecordSound”調(diào)用Windows中的機(jī)程序進(jìn)行;“GetFilePath”得到文件的詳細(xì)路徑;“Create維表“CopyInputFromAbove”上一次輸入的內(nèi)容“CopyOutput“StartAlt+Enter“CompletePlot3D3NotebookPloCtrl+K,系統(tǒng)會彈出一個框,里面包含所有以Plo開頭令,選擇Plot3D命“MakeTemplate”Shift+Ctrl+K,系Plot3DPlot3D[f,{x,xmin,xmax},{y,ymin,6、Kernel“Evaluation”EvaluateCells”計(jì)算選定的細(xì)胞(快捷Shift+Enter)“EvaluateInPlace”計(jì)算選定的內(nèi)容,并在同一位置用其計(jì)算結(jié)果替換此內(nèi)容,“EvaluateNotebookNotebook“AbortEvaluationAlt+.“StartKernel”Notebook數(shù)算的程序稱之為系統(tǒng)內(nèi)核(Kernel),本菜單將Kernel裝入內(nèi)存,注意,MathematicaKernel,除非系統(tǒng)QuitKernel”關(guān)閉已經(jīng)打開的系統(tǒng)“DeleteAllOutput”Notebook7、Find“Find”查找或者替換Notebook中的內(nèi)容“EnterSelection”此菜單可將選定的內(nèi)容直接送入Find菜單的SearchFor文本框中,省去Add/RemoveCellTagsNotebook中,可以為每個細(xì)胞取一個名字,它稱為細(xì)胞,此菜單可給某個細(xì)胞加上或去掉“CellTags”此菜單可快速選定Notebook中具有的細(xì)胞“ShowCellTags”顯示或者隱藏細(xì)胞。8、Window“StackWindows”在屏幕上層疊式排列已經(jīng)打開的各個Notebook“Tile“TileMessage”打開一標(biāo)題為Message的窗口,它是Mathematica9、Help“HelpBrowser”MathemeticaFindSelectedFunction、MasterIndex、Built-inFunctions、MathematicaBook、GettingStarted/Demos、Add-onesWhytheBeep?”Mathematica在Notebook中,有兩種輸入西臘字母的方法,一種是調(diào)用File→Palettes→BasicInput、BaiscTypesetting或CompleteCharacters→Letters→Greek菜單,此時會彈出一個含有西臘字母的數(shù)學(xué)工具面板,αβγδεζηθ*μξπρστφ\[CurlyPhi]ω Φ\[CapitalPhi] \[CapitalSigma]數(shù)學(xué)公式的輸入都不是太熟悉這時可以通過菜單File→Palettes的各Mathematica能夠處理多種類型的數(shù)據(jù)形式:數(shù)學(xué)公式、集合、圖/,^FullForma*b+cPlusTimesa,b,FullForm1,2,3,List1,2,3,HeadSin可得到某個表達(dá)式的頭部,這 確定表達(dá)式的類型很有用處Append[lisement]在集合list的末尾加入元素elementApply[Plus,list]將集合list中的所有元素加在一起Apply[Times,list]將集合list中的所有元素乘在一起 ist,{i,j}]刪除集合第i,j處的元素 ist,i]listiFlatten[list]listFlattenAt[list,n]listn ement,{i,j}]第i個子集合的第j個元素處 ement,i]在list第i個元素的前面elementLength[list]集合list中元素的個數(shù)list[[i]]listiPartition[list,n]listn ement]在集合list的開頭加入元素element ement,i]替換集合list中的第i個元素Reverse[list]翻轉(zhuǎn)集合list中的元素Sort[list]listTake[list,{m,n}]listmnTake[list,n]n,Take[list,-n]nUnion[list]lists=Tablei^2+1,i,0,Print"lengths=",Lengths, s ",slength s4s1=PartitionSqrts,1,2 5,10s13,s2=Flatten1,2,5,10,171,2,5,17,10Intersections,a,b,p,q常量,M,A,BDot[a,b]a.babCross[a,b]abP*A+q*B矩陣與數(shù)的乘法運(yùn)算A*BABM^2MP.QPm×k,Qk×nDet[M]MMatrixForm[A]以矩陣的形式顯示AMatrixPower[M,n]MnTranspose[A]AEigenvalues[M]MEigenvectors[M]MEigensystem[M]MIdentityMatrix[n]n×nDiagonalMatrix[list]listInverse[M]MLinearSolve[A,b]AX=bNullSpace[A]AX=0RowReduce[A]Aposition[M]MQRposition[M]MSchurposition[M]MJordanposition[M]MLU3、Mathematica在Mathematica中,進(jìn)行數(shù)算的“數(shù)”有四種類型,它們分別Integer(整數(shù))、Rational(有理數(shù))、Real(實(shí)數(shù))、Complex(為是實(shí)數(shù)。對兩個整數(shù)的比,如12/13,系統(tǒng)認(rèn)為是有理數(shù),而a+b*I形式的數(shù),系統(tǒng)認(rèn)為是復(fù)數(shù)。Mathematica可表示任意大的數(shù)和任意小C、Basic 1.22013682599110A:=Table1i+j,12+I1+2I^22-11-3-4 N[expr,n],nNDetA,2.Np,errorRationalize3.1415926,10^-Rationalize3.1415926,10^-152I2*I(I果為復(fù)數(shù),MathematicaSolvex^3-2x^2+3x-6?0,x?2,x?- 3,x? 上面的行列式|A|的計(jì)算結(jié)果,系統(tǒng)給出的是一個分?jǐn)?shù)值,在Mathematica中,不同類型的數(shù)進(jìn)行運(yùn)算,其結(jié)果是高一級的數(shù),A 5,1,2,1,2,62,-1,2,-1,11,-

,0,-1, B 5.0,1,2,1,2,6,1,2,7;Inverse-0.111111,3.66667,-3.11111,0.,-1.,Inverse[]Mathematica多個命令,各命令間用分號分隔。另外,分號還有一個作用是通知MathematicaA:=expr將表達(dá)式expr的值賦給A,但Mathematica并不立即執(zhí)行此項(xiàng)操作,一直到用到A的值時,Mathematica才真正的將expr的值賦給A,即所謂值。另一種賦值方法是所熟悉的賦值形式,即A=expr或A=B=expr的形式,一般稱為立即賦值。只要一執(zhí)行該命令,Mathematica將expr的值賦給A。另外,對于變量,Mathematica不像C語言那樣,需要申請Clear[A]A,A=.Clear[A,B,W]A、B、WClear[“A*”,”B*”A、BPrecision[expr]Accuracy[expr]2下面的變量a是計(jì)算ex2dx的數(shù)值積分,b是計(jì)算其符號積分,c和1a:=NIntegrateExp-x^2,x,1,2;Precisionb:=IntegrateExp-x^2,x,1,2;Accuracy?c=1.23;d=123100;Print"c=",Accuracyc,"d=",Accuracyc=16其中,∞在系統(tǒng)中是一個常數(shù),其完整令是Infinity,這樣的常數(shù)有:Pi(π)、E(e)、ComplexInfinity(復(fù)數(shù)的無窮大)、I(復(fù)數(shù)Chop[expr,dx]exprdx,0da - -2,4,-1,1,0,,1,1,2,4,3,9fx_=Fitdata,1,x,x^2,x^3,Chopf1.TrueFalse是系統(tǒng)的布爾常量IntegerQ[expr]TrueFalseEvenQ[expr]TrueFalseOddQ[expr]TrueFalsePrimeQ[expr]TrueFalsePrintHead0.5,"",Head12,"",Head1,2,RealRationalMathematica的數(shù)算,主要是依靠其的大量數(shù)學(xué)函數(shù)完成代表復(fù)數(shù),m、n、k為整數(shù)。所有的函數(shù)或者是它的英文全名,或者是不是用圓括號。另外,MathematicaRound[x]xFloor[x]xCeling[x]xSign[x]符號函數(shù)Abs[z]zMax[x1,x2,…]Max[{x1,x2,Min[x1,x2,…]Min[{x1,x2,x+Iy,Re[z],Im[z],Conjugate[z],Arg[z]Random[]返回一個區(qū)間[0,1]Random[Real,{xmin,xmax}]返回一個區(qū)間[xmin,xmax]內(nèi)的隨機(jī)數(shù)Random[Integer]1/201Random[Complex]1Random[Complex,{zmin,zmax}]復(fù)平面上的隨機(jī)復(fù)數(shù)SeedRandom[]使用系統(tǒng)時間作為隨機(jī)SeedRandom[n]nMod[m,n],Quotient[m,n]m/n[n1,n2,…],LCM[n1,n2,FactorInteger[n]nn!,n!!nBinomial[n,m],Mutinomial[n,m,…]Signature[{i1,i2,…}]初 函

(nm (nm Csc[z]Sec[z]ArcSin[z]ArcCos[z]ArcCsc[z]ArcSec[z]ArcTan[z]ArcCot[z]Sinh[z]Cosh[z]Tanh[z]Coth[z]、Csch[z]、Sech[z]ArcSinh[z]ArcCosh[z]ArcTanh[z]ArcCoth[z]LegendreP[n,x],LegendreP[n,m,x]勒讓德多項(xiàng)式ChebyshevT[n,x],ChebyshevU[n,x]HermiteH[n,x]HermiteLaguerreL[n,x]Laguerrel[n,a,x]JacobiP[n,a,b,x]Beta[a,b],Beta[z,a,b]BataBetaGamma[z],Gamma[a,z]GammaGammaErf[z],Erf[z0,z1]誤差函數(shù)及廣義誤差函數(shù)BesselJ[n,z],BesselY[n,z]貝賽爾函數(shù)BesselI[n,z],BesselK[n,z]ExpIntegralE[n,z],LogIntegral[z]啟動Mathematica時,這些函數(shù)并沒有裝入內(nèi)存,而是以包的形式(在磁盤上以name.m的形式存于 下\AddOnes\StandardPackages\Statistics子 打開每個擴(kuò)展名為.m的文件,觀察 內(nèi)的ContinuousDistributions.m,使用<<可將此文件中含有的所有統(tǒng)計(jì)函數(shù)讀入內(nèi)存。另外,如果你對Mathematica<<將\AddOnes\StandardPackages\Statistics中的所有擴(kuò)展名為.m文件BernoulliDistribution[p]pBinomialDistribution[n,p]pChiSquareDistribution[n]具有n個度的χ2分布DiscreteUniformDistribution[n]離散的均勻分布ExponentialDistribution[λ]指數(shù)分布FratioDistribution[n1,n2]n1n2FNegativeBinomialDistribution[r,p]負(fù)二項(xiàng)分布NormalDistribution[μ,σ]正態(tài)分布PoissonDistribution[σ]泊松分布RayleighDistribution[σ]瑞利分布StudentDistribution[n]具有n度的學(xué)生式分布UniformDistribution[a,b]區(qū)間(a,b)上的均勻分布WeibullDistribution[α,β]威布爾分布PDF[Distribution,x]xCDF[Distribution,x]xle[Distribution,q]qMean[Distribution]均值Variance[Distribution]方差StardardDeviation[Distribution]CharacteristicFunction[Distribution,t]Random[Distribution]具有特定分布的偽隨機(jī)數(shù)在Mathematica中定義一個新函數(shù)后其用法 函數(shù)是一樣的 其中函數(shù)變量后面的下劃線必不可少,以上面的var1_為例,其意思是f[n_Integer]nfx_=SimplifyDExp2?2x11Cosx+2Singx_,y_:=x^2+fy;g1,Mathematica中的函數(shù)調(diào)用是遞歸的,就是說,函數(shù)可以調(diào)用自身, k;ak_ngePrint"30!=",a30,"30由于限制k為整數(shù),所以對a[10.0],Mathematica是不會計(jì)算的。系統(tǒng)中的許多函數(shù)都是利用遞歸調(diào)用實(shí)現(xiàn)的,$RecursionLimit是系統(tǒng)進(jìn)行遞歸調(diào)用的最大次數(shù),默認(rèn)值為256,你可以將它修改為一個合適的值,這只需對$RecursionLimit重新賦值即可。對于復(fù)雜的函數(shù)定義,可以用模塊Module[]定義,其形式為fun[var1_,var2_,…]:=Module[{x,y,…},statement1;…;其中變量x,y稱為局部變量,它只在此函數(shù)定義的起作用(實(shí)際fn_:=ModuleReturn[expr]命令,Module[]返回最后一次計(jì)算結(jié)果作為定義,以適合自己某種特殊要求。例如對Log[x^s]和Log[xy],系統(tǒng)并不直接化成sLog[x]和Log[x]+Log[y]的形式,這可以通過更改MathematicaLog[]的定義來做到這一點(diǎn),這要用到以下函數(shù)Unprotect[command]commandProtect[command]加上系統(tǒng)對命令command的保護(hù)狀態(tài)Cleara,b,s;LogabLogLoga_b_:=Loga+Logb;Loga_^s_:=sLoga;ProtectLogab,LogLoga+Logb,sLogMathematicaFunction[x,body]bodyxFunction[{x1,x2,…},body]同上,但定義多個變量的純函數(shù)Body&body變量,則第一個變量為#1,第二個變量#2,NestFunctionw,11+w,x,11+1+11#^2&1+a1+Map#^2&,a,b,#1^2+#2^2&x,x2+expr/.rulesrulesexprIntegratex^2Sinnx,x,0,-2

-2+n2p2Cosn

+2pSinnSimplify CosnPi?-1^n,SinnPi?-2+- x+ x?a1,y?b1,x?a2,y?b2,x?a3,y?a1+b1,a2+b2,a3+x+y+ x?1+y+expr//.rulesexprrules,Sin4a x_?Snn- xCos +Csn- xSinCosn_x_?Cosn-1xCosx-Sinn-1xSinxSina-2CosaSina2+CosaCoa-SnaCosa2CosaSina+SinaCosa2-Sina2Nest[f,x,n]fxn實(shí)質(zhì)上,fHead[f],例如HeadSinx^2+NestSin,z,SinSinSinSinSingx_=11+x;Nestg,x,11+1+11NestList[f,x,n]同上,但形成一個復(fù)合函數(shù)序列的集合Compose[f,g,…,h,x]f[g[…h(huán)[x]]]Composition[f,g,…,h]同上,但不帶有自變量NestListf,x,x,fx,ffx,fff ,ffff ,fffffComposef,g,h,xfghxCompositionf,g,%

fghComposeListf,g,h,x,fx,gfx,hgfFixedPoint[f,x]xfFixedPointList[f,x]FixedPointList[f,x,SameTest->Comp]comp,比較結(jié)果為真時停止運(yùn)算下面以利用迭代法求5開平方根為例,說明其用法sqrt5x_:12x+5 FixedPointsqrt5,2,SameTest?Abs#1-#2<10^-8FixedPointListsqrt5,FoldList[f,x,{a,b,…}]{x,f[x,a],f[f[x,a],b],…}Fold[f,x,{a,b,…}]FoldListFoldListf,x,a,b,x,fx,a,ffx,a,b,fffx,a,b,Foldf,x,a,b,fffx,a,b,Apply[f,{a,b,c,…}]f,f[a,b,c,…]Apply[f,expr]對表達(dá)式的最應(yīng)用fApply[f,expr,level]fA a,b,c,d;Applyf,A,Applyf,A,fa,b,c,d,fa,b,fc,Map[f,expr]fMap[f,expr,level]fnMapAll[f,expr]exprfMapThread[f,{expr1,expr2,…}]expr1expr2的相應(yīng)元素運(yùn)用fMapThread[f,{expr1,expr2,…},lev]A a,b,c,d;Mapf,A,Mapf,A,fa,b,fc, ,ffa,f ,ffc,fMapAllf,fffa,f ,ffc,fMapThreadf,fa,c,fb,Scan[f,expr]exprfScan[f,expr,level]A a,b,c,d;ScanPrint,Array[f,n]生成表{f[1],f[2],…,f[n]}Array[f,{n1,n2}]Arrayw,w1,w2,w3,w4,w5,wArrayw,3,w1,1,w1,2,w2,1,w2,2,w3,1,w3,Seclect[expr,f]exprfTrueSeclect[expr,f,n]nfTrued1=3,5,12,9,4,7,1;Selectd1,#>4Operate[p,f[x]]p[f][x]Operate[p,f[x],n]npfOperatep,fgx,pfgOperatep,fgx,pfgOperatep,fgx,fgMathematica的最大優(yōu)點(diǎn)就是能夠進(jìn)行各種復(fù)雜的數(shù)學(xué)符號計(jì)算,Expand[poly]polyExpand[poly,expr]polyexprFactor[poly]polyFactorTerms[poly]polyCollect[poly,x]xpolyCollect[poly,{x,y,…}]x,yPowerExand[expr]expr(xy)pxpyp,(xp)qxpqExpand1+1+x^2^2^2,1+x^2+2x2+x4Expand1+1+x^2^24+8x2+8x4+4x6+Factor2+2x2+x4Length[poly]Exponent[expr,form]exprformCoefficient[expr,form]exprformCoefficient[poly,form]formpolyt=Expand2a+3x^34x+5y^2;128a3x2+576a2x3+864ax4+432x5+320a3xy+1440a2x2y2160ax3y+1080x4y+200a3y2+900a2xy2+1350ax2y2+675x3Collectt,432x5+200a3y2+x4864a+1080y+x3576a2+2160ay+675y2x2128a3+1440a2y+1350ay2+x320a3y+900a2Exponentt,5Coefficientt,576a2+2160ay+675CoefficientListt,128a3x2+576a2x3+864ax4+432320a3x+1440a2x2+2160ax3+1080x4,200a3+900a2x+1350ax2+675FactorTermst,8a3+36a2x3+54ax6+27x916x2+40xy+25PolynomialQuotient[poly1,poly2,x]poly1poly2poly1poly2xPolynomialRemainder[poly1,poly2,x]poly1/poly2Polynomial[poly1,poly2]求poly1與poly2的最大公因式PolynomialLCM[poly1,poly2]poly1poly2FactorTerms[poly]polyFactorTerms[poly,x]xFactorList[poly]polyInterpolatingPolynomial[{{x1,y1},{x2,y2},…},x]p1:=4- + 4+8x+5x^2+xFactorp1,Factor-2+x21+x,1+x2+Polynomialp1,p2,PolynomialLCMp1,1+x,4-4x+x24+8x+5x2+ ^2+1p1,p2,33-8x+ p1,p2,-8x-8d -2,4,-1,1,0, 1,1,2,4InterpolatingPolynomiald,4+-2+x2+SimplifyNumerator[expr]exprExpandNumerator[expr]exprDenominator[expr]exprExpandDenominator[expr]exprExpand[expr]exprExpandAll[expr]exprTogether[expr]將多個有理分式進(jìn)行通分運(yùn)算Apart[expr]exprCancel[expr]exprFactor[expr]exprt=x-1^22+ 1+xx-3^2;Expand2-3+x21+ExpandAll29+3x-5x2+Together2-3x+9+3x-5x2+Apart

3-3+x21+39+3x-5x2+

-3+ 1++9+3x-5x2+1 -3+xFactor

4-3+

41+-1+ 2+-3+ 1+2-3x+-3+x21+Simplify[expr]expr,F(xiàn)ullSimplify[expr]更愿意用FulSimplify[]下面的例子,你可以看出它確實(shí)比SimplifyCosx^2-Sinx^Cos2SimplifyGamma1+nn,FullSimplifyGamma1+nGamma1+,Gamman簡,但功能有限,在大部分情況下,對三角函數(shù)就使用以下命令DDDDt=Sin3yCos2x+y-Cos3x;t1=--Cos CoxCo inx+CosxCosy4SinxD3Cosin2Cos2Cosin2CosySyCosSiniy-2Cosx2S3Cosin2Cos2Cosin2CosySyCosSiniy-2Cosx2Sn+CsSnn-6CosCosSinSin2-2CosCosSin32CosSin2Sin+CosSinSin4t2=1-2Cos3x-Sin2x-2y+Sin2x+42t3=TrigReducet1,t4=TrigReducet1--2Cos3x-Sin2x-2y+Sin2x+4y,2t5=TrigToExp-1?-3?x-1?3?x+1??2?x-2?y 1??-2?x+2?y+1??-2?x-4?y-

??2?x+4? Simplify1?-3?x-2-2?6?x+???x-4y+??5?x-2?y-??5?x+4?y-???x+24-Cos3x+Cos2x+ySin3由此可見,Simplify[]FullSimplify[]是針對所有代數(shù)運(yùn)算進(jìn)行TrigReduce[]只對三角函數(shù)的化簡有效。Mathematica中的復(fù)數(shù)運(yùn)算與其它數(shù) 算沒有什么區(qū)別,下面是有關(guān)復(fù)數(shù)運(yùn)算的數(shù)學(xué)函數(shù),其中I為系統(tǒng) x+Iy,Re[z],Im[z],Abs[z],Conjugate[z],Arg[z]ComplexExpand[expr]expr,exprComplexExpand[expr,{x1,x2,…}]expr,x1,x2指數(shù)與對數(shù)函數(shù)、函數(shù)等z=3+6 7-I^2,Absz,Rez,Imz,Conjugatez,Arg3+33?

,3,33,

-33?,ArcTan

10

ComplexExpandTan2x+I*3Sn4Cos4x+Cosh6

?Sinh6yCos4x+Cosh6yz=.;ComplexExpandSinzExpx,?xCoshImzSinRez+??xCosRezSinhImSolve[lhs==rhs,x]xSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}]Reduce[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}]Eliminate[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}]x,y,…expr/.solutionsolutionx=.;Solvex^4-8x^3+24x^2-32x+15?0,x?1,x?2-?,x?2+?,x?Solve2x+3y?8,3x+2y?7,x,x?1,y?Mathematica都顯示出來,可能要占據(jù)整個屏幕,此時只有利用//N或N[]命令從理論解計(jì)算它的FindRoot[]命令求它的數(shù)值解。x=.;Solvex^4+2x^3+x+1?0, x?0.379567-0.76948?,x?0.379567+0.76948?,x?-2.11769,x?-0.641445Abs Solvex^2+y^2==4,Expx+y?6,x,Solve::tdepTheequationsappeartoinvolvethevariablestobesolvedforinanessentiallynon-algebraicway.Solvex2+y2==4,?x+y==6,x,Reduce[]Solveax+b?c,b-x?aReduceax+b?c,a==0&&b== x

&&a?Eliminate[]Eliminateax^3+y?0,2x+1-ay?1,-ax3+a2x3==1-2Solve%, a? x?0.423854,x?-0.211927+1.06524?x?-0.211927-Mathematica8頁,這里只給出一些實(shí)際的例子CleaabA,B;a ,23;b=3,4,5Dota,b,Crossa,26,-2,4,-A=2DiagonalMatrix1,2,3 0,2,1,1,0,1,1,1,2,-2,-1,-1,4,-1,-1,-1,DetA,a.A,A.a,34,-3,4,15,-3,4,15,MathematicaB=3A-2*MatrixPowerA,-7178509-InverseB.b,LinearSolveB,535933,120609 6.43931+0.?,4.66112-0.899568+4.44089?10-16Chop8Eigensystem 8864331+0.?,8846112-8-0.497586+0.?,-5.56292+3.61268-Chopx2x3x4 xx3x 2x2x A 1,- 1,1,NullSpace這表示,Mathematica cc1 2 LinearSolveA,0,1,1,0,1,

120c

1 2

1

2B,然后對此增廣矩陣進(jìn)行行變換。AppendTransposeA,0,1,1;B=Transpose1,-1,-1,1,0,1,-1,1,-3,1,2,-2,0,-2,RowReduce1,-1,0,-1,2

,0,0,1,-2,2

,0,0,0,0, xx x2x Limit[expr,x->x0]求當(dāng)x→x0時,表達(dá)式expr的極限Limit[expr,x->x0,Direction->-1]Limit[expr,x->x0,Direction->1]同上,但求右極限Mathematica安裝的\AndOnes\StandardPackages\Calculus子下,有一個包Limit.m,它對極限命令Limit[]進(jìn)行了各種擴(kuò)<<Calulu`liLimitArcSin1- 1+x,x?p-2LimitExpSinx-1x,x?1LimitPi-xTanx,x?Pi2,Direction??Mathematica安裝的\AndOnes\StandardPackages\下,附加“.m輯如Notebook、NotePad、Word等打開它,研究它的用法,并通“<<包名`該下的文件名`”裝入此包,下面是包的:Algebra(代數(shù)包)、LinearAlgebra(線性代數(shù)包)、包)、NumberTheory(數(shù)論包)、Geometry(幾何包)、 “Master.m, <<f’[x]f(x)f’’[x]f(x)D[f,x]

或者偏導(dǎo)數(shù)dn

nD[f,{x,n}]

n

D[f,x,Nonconstants->{y,z,…}]fxy,z,…xDt[f]fdfDt[f,x]fxDt[f,x,Constant->{c1,c2,…}]c1,c2fx_:=x2+12ArcTanx;FullSimplifyf'x,f''1+x21+4xArcTanx,6x+41+3x2ArcTanFullSimplifyDfx,x,Dfx,x,1+x21+4xArcTanx,6x+41+3x2ArcTanux_,y_:=x^3y+x^2y^2-3xy^3;ux,y,x,2,y,6x+4H@Dgx,xy,zx,x,H@--+Dz,x,Bg1,0,0B

y,x,NonCFx,xy,FxDt5y^2+Siny?x^2,10yDty,x+CosyDty,x==2Solve%,Dty,Dty,x 210y+CosDtux,y,3x2y+2xy2-3y3+Dtux,y,x3+2x2y-9xy2+3Integrate[f,x]求不定積分fbIntegrate[f,{x,a,b}]求定積分faIntegrate[f,{x,a,b},Assumptions->expr]bIntegrate[f,{x,a,b},{y,y1[x],y2[x]}]求

y2(

fClearx,y,a,b;?axaCosbx+bSinba2+Integratex^4Sinx^7,x,

y1(

-89316604p

+2161Integratexy,y,-1,2, y dy

xy Integratex^n,x,0,IfRen>-1,11+

1xn?0Integratex^n,x,0,1,Assumptions?n>11+IntegrateSinaxx,x,0,IfIma==0,

pSigna

?Sinax? IntegrateSinaxx,x,0,?,Assumptions?Ima?1pSignaSum[f,{i,imin,imax}]

ifiiSum[f,{i,imin,imax,di}]diSum[f,{i,imin,imax,di},{j,jmin,jmax,di},…]di,iProduct[f,{i,imin,imax}]計(jì)算符號 iiProduct[f,{i,imin,imax,di}]diProduct[f,{i,imin,imax,di},{j,jmin,jmax,di},…]di,則默認(rèn)按1遞增Series[f,{x,x0,n}]fx=x0nSeries[f,{x,x0,n},{y,y0,m},…]f(x0,y0,…)xn,ymNormal[expr]exprp8Sum-1^n-1n,n,1,LogSum-1^n2n+1,n,0,p4Productx+i,i,0,1,x0.2+x0.4+x0.6+x0.8+x1.+SeriesSqrt1+x^2,x,0,241+x-24

+Oxfx_=Normal241+x-24 DSolve[eqn,y[x],x]eqn,yxDSolve[{eqn,initialconditions},y[x],x]DSolve[{eqn1,eqn2,…},{y1[t],y2[t],…},t]y1[t],y2[t],…為函數(shù),ty,xy[x]表示函數(shù)本身,y’[x]表示函數(shù)的一階導(dǎo)數(shù),y[x]yx]D[y[x],{x,n}]式來輸入函數(shù)的導(dǎo)數(shù)。在Mahematica所給出的微分方程的解中,用C[1],C[2],C[3],…表示任意常數(shù)。Clearx,y,t;DSolvey'x?6x3yx,yx,yx? DSolvexy'x==yx

+yx,yx,yx C1-LogDSolvex3y'x?x2yx-2yx,y1?6,yx,6yx

-12+13solution=DSolvex2y''x+5xy'x-2yx?0,yx,yx

?2?2-? C

?2?2+?+ C+sol=yx?x-2-6x26C1+Cfx_=sol1,1, C1?1,C2?x-2-62+x2sol=DSolvey''x-y'x?4xex,y0?0,y'0?0,yx,yx?

4-1+Log

Log

4-1+LogxeLog Logxe?1+Logyx?

4Log

1+Log

4+Logx1+LogDSolvex''t-2yt?t+2,3y't?3t2,xt,yt,t?1

30t2+53+t5+30C1+30t2C2+30tC3t

+C3NSum[f,{i,imin,imax}]

ifiiNSum[f,{i,imin,imax,di}]diNSum[f,{i,imin,imax},{j,jmin,jmax},…]NSum[f,{i,imin,imax,di},{j,jmin,jmax,di},…]iNProduct[f,{i,imin,imax}]求數(shù)值 iiNProduct[f,{i,imin,imax,di}]Nsum[]的說明FindMinimum[f,{x,x0}]x=x0ffFindMinimum[],Cleaf,x, ^42xFindMinimumfx,x,0.5,FindMinimumfx,x,--1.,x?1.,-1.,x?-1--12--Plot1--12--FindRoot[lhs==rhs,{x,x0}]x=x0FindRoot[lhs==rhs,{x,{x0,x1}}]同上,但初值為(x0,x1)內(nèi)FindRoot[lhs==rhs,{x,xstart,xmin,xmax}]xstartx(xmin,xmax)之外就停止計(jì)算FindRoot[{eqn1,eqn2,…},{x,x0},{y,y0},…]求聯(lián)立方程的根Cleax, x^2+1-xp FindRootfx,x,-1.7,FindRootfx,x,x?-1.81626,x?FindRootx^2+y^24,Expx+Expy+Sinx+Siny?1,x,-2,y,0NIntegrate[f,{x,a,b}]fNIntegrate[f,{x,a,b},{y,y1[x],y2[x]]f由于大部分函數(shù)使用Integrate[]命令不能夠求出其理論積分,因此,只能求它的數(shù)值積分IntegrateSinSinx,x,0,1SinSinx?0NIntegrateSinSinx,x,0,MathematicaOptions[command_name]查看每個內(nèi)OptionsAccuracyGoal??,CMaxPoints?AutomatMinRecursion?0,P上面的每一個選項(xiàng)都代表此命令的某種當(dāng)前計(jì)算狀態(tài),比如WorkingPrecision16NIntegrateSinSin5、數(shù)據(jù)的插值Interpolation[{{x1,y1},{x2,y2},…}](x1,y1),Interpolation[{{x1,y1,z1},{x2,y2,z2},…}](x1,y1,z1),(x2,y2,z2),…Interpolation[{{x1,y1,…},{x2,y2,…},…}]多個變量近似函數(shù)MathematicaInterpolatingFunction[]Cleard, ndata=Tabledata=Tablex,Expx,x,0,1,0.1,0,1,0.1,0.41.49182f=InterpolatingFunction0.,f0.15,f0.35,fd=Tablex,y,Sinxdata=Flattend,1;sinxSin0.40.6,sinxy0.4,Fit[data,funs,vars]vars,funsFit[]k1f1+k2f2+…knfnd 3 5,9,7, 35,11,80,13,150x=.;fx_=Fitd,1,x,Logx,d 1,,4,5,6,5,6,7,,,8,7,8,9;yFitd,1,x,y,xy,x^2,y^2,x,0.9-0.2x-0.1x2+0.7y-0.3xy+0.4NonlinearFit[data,model,vars,params]datamodel,vars,params<<clearx,d,a,bclearx,d,a,b;d=Tablex,3x+Exp2x,x,0,1, 0.,1., 5214,0.2,2091820.,1., 5214,0.2,209182,0.3,2722120.43.42554NonlinearFitd,bx+Expax,x,a,?2.x+3.對于線性規(guī)劃,MathematicaConstrainedMax[f,{inequalities},{x,y,…}]fConstrainedMin[f,{inequalities},{x,y,…}]LinearProgramming[c,m,b]cxmx≥bx≥0x,即求線性規(guī)劃問題 cT ConsrainedMax3x1+x2+32x1+x2+x3?2,x1+2x2+3x3?5,2x1+2x2+x3?6,x1,x2,27,x1?1,x2?0,x3? x1+6x2–7x3+ x4+5x5s.t.5x1–4x2+13x3–2x4+x5=20x1– x2+5x3– x4+x5=8@D b,A;c= -7@D b,A;c= -71,5;b=20,-20,8,-8A5-4,13,--54,-13,2,-,1,-1,5,-1,1-1,1,-5,1,-;0,4,12,0, NDSolve[{eqn1,eqn2,…},y[x],{x,xmin,xmax}]求微分方程的數(shù)值解,xxminxmax,Dsolve[]命令相同。ttmintmax。s=NDS y''x+2yx+10yx?Sin2x,y0?1,y'0?0yx,x,0,10yx?InterpolatingFunction0.,10.,<>fx_=s1,1,InterpolatingFunction0.,10.,<>Plotfx,x,0,24246 -Mathematica能夠繪制各種類型的函數(shù)圖形,下面分類介紹它的函Plot[f,{x,xmin,xmax}]f(xmain,xmax)Plot[{f1,f2,…},{x,xmin,xmax}]ListPlot[{{x1,y1},{x2,y2},…}]ParametricPlot[{x[t],y[t]},{t,tmin,tmax}]PlotSinx,Cosx,x,0,4 --1--1--ParametricPlotCost^3,Sint1--1--Show[plot1,plot2,…]Show[GraphicsArray[{{plot1,plot2,…},…}]]DShow[GraphicsArray[{{plot1,plot2,…},…}]]1--1-1p11--1-1p1:= 1-x2,x ,-1,1p2:=ParametricCos^3,Sin,t,0,2PiPlot3D[f,{x,xmin,xmax},{y,ymin,ymax}]ListPlot3D[{{z11,z12,…},{z21,z22,…},…}]ParametricPlot3D[{x[t],y[t],z[t]},{t,tmin,tmax}]{u,umin,umax}]畫出參數(shù)方程所表示的空間曲面圖ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]ListContourPlot[{{z11,z12,…},…}]由高度數(shù)組畫等高線圖DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]函數(shù)的密度圖ListDensityPlot[{{z11,z12,…},…}]由高度數(shù)組畫密度圖Plt3DSinx^2+y^2 x^2y^,x,-3,3,y,-3,3,PlotPoints?4020200-0-2ContourPlotx^2-y^2,x,-1,1,y,-1,1,ContourShading?10--- - Options[command]列出command命令所使用的參數(shù)設(shè)置,例如使用Options[ListPlot]就可列出ListPlot[]命令的所有默認(rèn)選項(xiàng),與上面AspectRatio(圖形的高與寬的比),默認(rèn)值為1/GoldenRatio,即Axes(圖形中是否包含坐標(biāo)軸),默認(rèn)值為True,你可以修改為軸),默認(rèn)為None,即不標(biāo)記,例如對平面圖形,你可以修改為面圖形,你可以使用AxesOrigin->{x0,y0}選擇一個合適的坐標(biāo)DefaultFont$DefaultFont,此變量對不同的計(jì)算機(jī),可能會有所差別,DefaultFont->{“Courier”,10}Courier,10True,F(xiàn)rameLabel(圖形框名稱),若圖形框選項(xiàng)Frame為True情況下,F(xiàn)rameLabel->”string”可在圖形框外打印一個字符串。GridLines(是否畫出網(wǎng)格線),默認(rèn)為不畫,改變此設(shè)置用GridLines->Automatic{{x1,x2…},{y1,y2,…}}形式自己定義網(wǎng)格線。PlotLabel(PlotLabel->”Title”上一個合適的標(biāo)題。PlotRange(PlotRange->{{x1,x2},{y1,y2}}定繪圖的范圍。PlotJoined是ListPlot命令的繪圖選項(xiàng),ListPlot命令默認(rèn)的繪圖方式是畫出一個個的點(diǎn)PlotJoined->True可將圖形中的Boxed(TrueMesh(Mesh->TrueShading(1515際相差太多,因此要用PlotPoints->n來增加小方快數(shù),一般n50體,某個繪圖命令如Plot3D就是照像機(jī),像機(jī)所處的位置即視點(diǎn)10@True,F(xiàn)alse@下面data=Tablex,Random,x,-1,1,0.05ListPlotdata,PlotJoined?ListPlotdata,PlotJoined?True,Frame?FrameLabel?"Gap",PlotLabel?"Arial",16,GridLines?10

- - LogPlot[f,{x,xmin,xmax}]XPlotLogLogPlot[f,{x,xmin,xmax}]YLogListPlot[{{x1,y1},{x2,y2},…}]XPolarPlot[r[t],{t,tmin,tmax}]極坐標(biāo)圖形PieChart[list]BarChart[list]使用上面這些繪圖函數(shù)前,需要先裝入\StandardPackages\ 下的附加繪圖包Graphics.m。<<1-1- --PolarPlot1+Cos1-1- --用Mathematica編寫程序或者函數(shù)。本節(jié)將簡要介紹Mathematica程序如果不使用Clear[]等命令刪除的話,全局變量在整個程序中都存Module[{x,y,…},body]x,y,…Module[{x=x0,y=y0,…},body]Block[{x,y,…},body]x,y,…Block[{x=x0,y=y0,…},body]同上,但已經(jīng)給局部變量賦初值body結(jié)尾,可以多個語句占用一行,也可一個語句占用多行。但這兩個命令Module[]中重新建立一個新的變量,Module[]運(yùn)行完畢,這個新的局部變量也會從內(nèi)存中,而Block[]此時不會建立新的變量,它將重名的全局變量的值存起來,然后使用全局變量作為局部變量,當(dāng)Block[]運(yùn)行完畢后,再恢復(fù)全局變量的值。另外,如果在Module[]或Block[]中有Return[expr]命令,則程序Return[expr]expr無Return[]命令,則返回模塊中最后一個語句的計(jì)算結(jié)果(注:最后一Null,即空信息)。Print[expr1,expr2,…]Input[“string”stringlhs=rhs/;testtestTruelhs=rhsIf[test,then,else]testTrue,then,elseWhich[test1,value1,test2,value2,…]testiTrue

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論