数学建模Mathematica详细教程市公开课一等奖百校联赛特等奖课件_第1页
数学建模Mathematica详细教程市公开课一等奖百校联赛特等奖课件_第2页
数学建模Mathematica详细教程市公开课一等奖百校联赛特等奖课件_第3页
数学建模Mathematica详细教程市公开课一等奖百校联赛特等奖课件_第4页
数学建模Mathematica详细教程市公开课一等奖百校联赛特等奖课件_第5页
已阅读5页,还剩192页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mathematica教程第1章Mathematica概述第2章Mathematica基本量第3章Mathematica基本运算第4章Mathematica函数作图第5章Mathematica微积分基本操作第6章Mathematica微分方程求解第7章Mathematica程序设计1第1页第1章Mathematica概述1.运行和开启介绍怎样开启Mathematica软件,怎样输入并运行命令2.表示式输入介绍怎样使用表示式3.帮助使用怎样在Mathematica中寻求帮助。2第2页1.1.1Mathematica开启和运行

Mathematica是美国Wolfram研究企业生产一个数学分析型软件,以符号计算见长,也含有高精度数值计算功效和强大图形功效。假设在Windows环境下已安装好Mathematica4.0,开启Windows后,在“开始”菜单“程序”中单击,就开启了Mathematica4.0,在屏幕上显示如图Notebook窗口,系统暂时取名Untitled-1,直到用户保留时重新命名为止。3第3页

输入1+1,然后按下Shift+Enter键,这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现;再输入第二个表示式,要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为In[2]和Out[2]。如图4第4页5第5页在MathematicaNotebook界面下,能够用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也能够用它编写像C那样结构化程序。在Mathematica系统中定义了许多功效强大函数,我们称之为内建函数(built-infunction),直接调用这些函数能够取到事半功倍效果。这些函数分为两类:

(1)一类是数学意义上函数,如:绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底对数函数Log[x],以a为底对数函数Log[a,x]等;

(2)第二类是命令意义上函数,如作函数图形函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。6第6页Mathematica严格区分大小写。普通地,内建函数首写字母必须大写,有时一个函数名是由几个单词组成,则每个单词首写字母也必须大写,如:求局部极小值函数FindMinimum[f[x],{x,x0]等。第二点要注意是,在Mathematica中,函数名和自变量之间分隔符是用方括号“[]”,而不是普通数学书上用圆括号“()”,初学者很轻易犯这类错误。必须注意是7第7页假如输入了不合语法规则表示式,系统会显示犯错信息,而且不给出计算结果。比如:要画正弦函数在区间[-10,10]上图形,输入plot[Sin[x],{x,-10,10}],则系统提醒“可能有拼写错误,新符号‘plot’很像已经存在符号‘Plot’”,实际上,系统作图命令“Plot”第一个字母必须大写,普通地,系统内建函数首写字母都要大写。再输入Plot[Sin[x],{x,-10,10},系统又提醒缺乏右方括号,而且将不配正确括号用蓝色显示,如图8第8页9第9页一个表示式只有准确无误,方能得出正确结果。学会看系统犯错信息能帮助我们较快找犯错误,提升工作效率。10第10页1.1.2表示式输入

Mathematica提供了各种输入数学表示式方法。除了用键盘输入外,还能够使用工具栏或者快捷方式健入运算符、矩阵或数学表示式。

1.数学表示式二维格式输入

11第11页Mathematic担提供了两种格式数学表示式。形如x/(2+3x)+y*(x-w)称为一维格式,形如称为二维格式。你能够使用快捷方式输入二维格式,也可用基本输入工具栏

输入二维格式。12第12页可从FILE菜单中激活Palettes->BasicInput

工具栏,也可输入,

而且使用工具栏可输入更复杂数学表示式。

如图:2.特殊字符输入13第13页MathemMatica还提供了用以输入各种特殊符号工具样。基本输入工具样包含了惯用特殊字符(上图),只要单击这些字符按钮即可输入。若要输入其它特殊字符或运算符号,必须使用从FILE

菜单中选取CompleteCharacters工具栏,

如图:14第14页1.2Mathematica联机帮助系统

用Mathematica过程中,经常需要了解一个命令详细使用方法,或者想知系统中是否有完成某一计算命令,联机帮助系统永远是最详细、最方便资料库1.获取函数和命令帮助:在Notebook界面下,用?或??可向系统查询运算符、函数和命令定义和使用方法,获取简单而直接帮助信息。

比如,向系统查询作图函数Plot命令使用方法?Plot系统将给出调用Plot格式以及Plot命令功效(假如用两个问号“??”,则信息会更详细一些)。?Plot*给出全部以Plot这四个字母开头命令2.Help菜单:任何时候都能够经过按F1键或点击帮助菜单项HelpBrowser,调出帮助菜单,以下列图所表示15第15页16第16页Built-inFunction内建函数,按数值计算、代数计算、图形和编程分类存放Add-ons

有程序包(StandardPackages)MathLinkLibrary等内容TheMathematicaBook完整Mathematica使用手册GettingStarted/Demos初学者入门指南和各种演示OtherInformation菜单命令快捷键,二维输入格式等MasterIndex按字母命令给出命令、函数和选项索引表其中各按钮用途以下表所表示

17第17页假如要查找Mathematica中含有某个功效函数,能够经过帮助菜单中Mahematica使用手册,经过其目录索引能够快速定位到自己要找帮助信息。比如:需要查找Mathematica中相关解方程命令,单击“TheMathematicaBook”按钮,再单击“Contents”,在目录中找到相关解方程节次,点击对应超链接,相关内容详细说明就马上调出来了。假如知道详细函数名,但不知其详细使用说明,能够在命令按钮Goto右边文本框中键入函数名,按回车键后就显示相关函数定义、例题和相关联章节。比如,要查找函数Plot使用方法,只要在文本框中键入Plot,按回车键后显示如图窗口,18第18页19第19页再按回车键,则显示Plot函数详细使用方法和例题。假如已经确知Mathematica中有含有某个功效函数,但不知详细函数名,能够点击Built-inFunctions按钮,再按功效分类从粗到细一步一步找到详细函数,比如,要找画一元函数图形函数,点击Built-inFunctions->GraphicsandSound->2DPlots->Plot,找到Plot帮助信息。

假如知道详细函数名,但不知其详细使用说明,能够在命令按钮Goto右边文本框中键入函数名,按回车键后就显示相关函数定义、例题和相关联章节。比如,要查找函数Plot使用方法,只要在文本框中键入Plot,按回车键后显示如图1-5窗口,再按回车键,则显示Plot函数详细使用方法和例题。假如已经确知Mathematica中有含有某个功效函数,但不知详细函数名,能够点击Built-inFunctions按钮,再按功效分类从粗到细一步一步找到详细函数,比如,要找画一元函数图形函数,点击Built-inFunctions->GraphicsandSound->2DPlots->Plot,找到Plot帮助信息。20第20页21第21页第2章Mathematica基本量1.数据类型和常量mathematica中数据类型和基本常量2.变量变量定义,变量替换,变量去除等3.函数函数概念,系统函数,自定义函数方法4.表表创建,表元素操作,表应用5.表示式表示式操作6.惯用符号经常使用一些符号意义22第22页2.1数据类型和常数

1数值类型在Mathematic中,基本数值类型有四种:整数,有理数、实数和复数。假如你计算机内存足够大,Mathemateic能够表示任意长度准确实数,而不受所用计算机字长影响。整数与整数计算结果仍是准确整数或是有理数。比如:2100次方是一个31位整数:

ln[1]:=2^100Out[1]=126765060022822822940149670320537623第23页

在Mathematica中允许使用分数,也就是用有理数表示化简过分数。当两个整数相除而又不能整除时,系统就用有理数来表示,即有理数是由两个整数比来组成如:

In[2]:=12345/5555Out[2]=2469/1111

实数是用浮点数表示,Mathematica实数有效位可取任意位数,是一个含有任意准确度近似实数,当然在计算时候也能够控制实数精度。实数有两种表示方法:一个是小数点另外一个是用指数方法表示。如:

24第24页ln[3]:=0.239998Out[3]=0.23998ln[4]:=0.12*10^11Out[4]=0.12*10^11

实数也能够与整数,有理数进行混合运算结果还是一个实数。

复数是由实部和虚部组成。实部和虚部能够用整数,实数,有理数表示。在Mathematica中,用I表示虚数单位如:

In[6]:=3+0.7IOut[6]:=3+0.7I25第25页2.不一样类型数转换

在Mathematica不一样应用中,通常对数字类型要求是不一样。比如在公式推导中数字惯用整数或有理数表示,而在数值计算中数字惯用实数表示。在普通情况下在输出行Out[n]中,系统依据输入行ln[n]数字类型对计算结果做出对应处理。假如有一些特殊要求,就要进行数据类型转换。在Mathematica中提供以下几个函数到达转换目标:26第26页N[x]将x转换成实数

N[x,n]将x转换成近似实数,精度为nRationalize[x]给出x有理数近似值Rationalize[x,dx]

给出x有理数近似值,误差小于dx27第27页[举例]ln[1]=N[5/3,20]Out[1]=1.66666666666666666667ln[2]:=N[%,10]Out[2]=1.66666667二行输出是把上面计算结果变为10位精度数字。%表示上一输出结果。

In[3]=Rationalize[%]Out[3]=5/328第28页3.数学常数Mathematica中定义了一些常见数学常数,这些数学常数都是准确数,比如表示圆周率。Pi

圆周率,π=

3.1415926535897932…E

自然对数底,e=2.7182818284590452…DegreePi/180I虚数单位,I=

√-1Infinity

无穷大,∞-Infinity负无穷大,-∞GoldenRatio

黄金分割数,Ф=

1.6180339887498948…29第29页数学常数可用在公式推导和数值计算中。在数值计算中表示准确值,如:

In[1]:=Pi^2Out[1]=ln[2]:=Pi^2//NOut[2]=9.8696130第30页4.数输出形式在数输出中能够使用转换函数进行不一样数据类型和精度转换。另外对一些特殊要求格式还能够使用以下格式函数:NumberForm[expr,n]以n位精度实数形式输出实数exprScientificForm[expr]以科学记数法输出实数exprEngineeringForm[expr]以工程记数法输出实数expr31第31页比如:

ln[1]:=N[Pi^30,30]Out[1]=ln[2]:=NumberForm[%,10]Out[2]//NumberForm=下面函数输出幂值可被3整除实数

In[3]=EngineeringForm[%%]Out[3]//EngineeringForm=32第32页2.2变量

1.变量命名

Mathematica中内部函数和命令都是以大写字母开始标示符。为了不会与它门混同,我们自定义变量应该是以小写字母开始,后跟数字和字母组合,长度不限。比如:a12,ast,aST都是正当,而12a,z*a是非法。另外在Mathematica中变量是区分大小写在Mathematica中,变量不但能够存放一个数值,还能够存放表示式或复杂算式。33第33页2.给变量赋值

在Mathmatica中用等号=为变量赋值。同一个变量能够表示一个数值,一个数组,一个表示式,甚至一个图形。如:

In[1]:=x=3Out[1]=3In[2]:=x^2+2xOut[2]=15In[3]:=x=%+1Out[3]=1634第34页对不一样变量可同时赋不一样值,比如:

In[4]:={u,v,w}={1,2,3}Out[4]={1,2,3}In[5]:=2u+3v+wOut[5]=1135第35页对于已定义变量,当你不再使用它时,为预防变量值混同,能够随时用=.去除它值,假如变量本身也要去除用函数Clear[x]比如

ln[6]:=u=.ln[7]:=2u+vOut[7]=2+2u36第36页3.变量替换在给定一个表示式时其中变量可能取不一样值,这是可用变量替换来计算表示式不一样值。方法为用expr/.比如:

In[1]:=f=x/2+1Out[1]=In[2]:=f/.x->1Out[2]=In[3]:=f/.x->2Out[3]=337第37页假如表示式中有多个变量也能够同时替换方法为比如有两个:expr/.{x->xval,y->val}In[4]:=(x+y)(x-y)^2/.{x->3,y->1-a}Out[4]=(4-a)(2+a)^238第38页2.3函数

1.系统函数

在Mathmatic中定义了大量数学函数能够直接调用,这些函数其名称普通表示了一定意义,能够帮助我们了解。下面是几个惯用函数:Floor[x]

不比x大最大整数Ceiling[x]

不比x小最小整数Sign[x]

符号函数Round[x]靠近x整数39第39页Abs[x]x绝对值Max[x1,x2,x3……..]x1,x2,x3…….中最大值Min[x1,x2,x3……..]

x1,x2,x3…….中最小值Random[]

0~1之间随机函数Random[Real,xmax]0~xmax之间随机函数Random[Real,{xmin,xmax}]

xmin~xmax之间随机函数Exp[x]

指数函数Log[x]

自然对数函数lnxLog[b,x]

以b为底对数函数Sin[x],Cos[x],Tan[x],Csc[x],Sec[x],Cot[x]三角函数(变量是以弧度为单位)40第40页Sinh[x],Cosh[x],Tanhx[x],Csch[x],Sech[x],Coth[x]双曲函数ArcSech[x],ArcCoth[x]

双曲函数Mod[m,n]

m被n整除余数,余数与n符相同Quotient[m,n]

m/n整数部分GCD[n1,n2,n3……]或GCD[s]

n1,n2,…最大条约数,s为一数集合

LCM[n1,n2……]或LCM[s]n1,n2…….最小公倍数,s为数据集合n!n阶乘n!!n双阶乘41第41页Mathematica中函数与数学上函数有些不一样地方,Mathematica中函数是一个含有独立功效程序模块,能够直接被调用。同时每一函数也能够包含一个,或多个参数,也能够没有参数。参数数据类型也比较复杂。愈加详细能够参看系统帮助,了解各个函数功效和使用方法是学习Mathematica软件基础42第42页2.函数定义(1)函数马上定义马上定义函数语法以下

f[x_]=expr

函数名为f,自变量为x,expr是表示式。在执行时会把expr中x都换为f自变量x(不是x_)。函数自变量含有局部性,只对所在函数起作用。函数执行结束后也就没有了,不会改变其它全局定义同名变量值。请看下面例子定义函数f[x_]=x*Sinx+x^2对定义函数我们能够求函数值,也可绘制它图形。

43第43页44第44页对于定义函数我们能够使用命令Clear[f]去除掉而Remove[f]则从系统中删除该函数。(2)多变量函数定义也能够定义多个变量函数,格式为f[x_,y_,z_,…]=expr

自变量为x,y,z….,对应expr中自变量会被替换。比如定义函数

f(x,y)=xy+ycosx45第45页(3)延迟定义函数

延迟定义函数从定义方法上与即时定义区分为“=”与“:=”延迟定义格式为f[x_]:=expr其它操作基本相同。那么延迟定义和即时定义主要区分是什么?即时定义函数在输入函数后马上定义函数并存放在内存中并可直接调用。延时定义只是在调用函数时才真正定义函数。46第46页(4)使用If命令定义函数假如要定义如:这么分段函数能够用If语句来定义。

If语句格式为If[条件,值1,值2]假如条件成立取“值1”,不然取“值2”,下面用If语句定义结果47第47页这里使用了两个If嵌套

48第48页2.4表

将一些相互关联元素放在一起,使它们成为一个整体。既能够对整体操作,也能够对整体中一个元素单独进行操作。在Mathematica中这么数据结构就称作表(List)。表主要有三个使用方法:表{a,b,c}能够表示一个向量;表{{a,b},{c,d}}可表示一个矩阵。49第49页1.建表在表中元素较少时,能够采取直接列表方式列出表中元素,如{1,2,3}.请看下面操作

In[1]:={1,2,3}Out[1]={1,2,3}下面是符号表示式列表

In[2]:=1+%x+x^%Out[2]={1+2x,1+2x+x2,1+3x+x2}50第50页下面是对列表中表示式对x求导

In[3]:=D[%,x]Out[3]={2,2+2x,3+3x2}In[4]:=%/.x->1Out[4]={2,4,6}假如表中元素较多时,能够用建表函数进行建表。51第51页Table[f,{I,min,max,step}]以step为步长给出f数值表,i由min变到maxTable[f,{min,max}]给出f数值表,I由min变到max步长为1Table[f,max]

给出max个f表Table[f,{I,imin,imax},{j,jmin,jmax},….]生成一个多维表TableForm[list]

以表格格式显示一个表Range[n]

生成一个{1,2,……..}列表Range[n1,n2,d]

生成{n1,n1+d,n1+d,….,n2}列表52第52页下面给出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函数生成一个序列数

In[3]:=Range[10]Out[3]={1,2,3,4,5,6,7,8,9,10}下面这个序列是以步长为2,范围从8到20In[4]:=Range[8,20,2]Out[4]={8,10,12,14,16,18,20}53第53页上面参数改变都是只有一个,也可制成包含多个参数表,下面生成一个多维表:In[5]:=Table[2i+j,{i,1,3},{j,3,5}]Out[5]={{5,6,7},{7,8,9},{9,10,11}}使用函数TableForm能够以表格方式输出

In[6]:=%//TableFormOut[6]//TableForm=5677899101154第54页2.表元素操作当t表示一个表时,t[[i]]或者Part[t,i]表示t中第i个子表。假如t={1,2,a,b},那么t[[3]]表示“a”。如:

ln[1]:=t=Table[I+2j,{I,1,3},{j,3,5}]Out[1]={{7,9,11},{8,10,12},{9,11,13}}ln[2]:=t[[2]]Out[2]={8,10,12}55第55页表操作

{e1,e2,...}一个表,元素能够为任意表示式,无穷嵌套Table[expr,{imax}]生成一个表,共imax个元素Table[expr,{i,imax}}生成一个表,共imax个元素expr间Table(expr,{i,imin,imax},{j,jmin,jmax},..]多维表Range[imax]简单数表f1,2+,imax)Range[imin,imax,di]以di为步长数表Array[f,n]一维表,元素为fI¨(i从1到n)Array[f,{n1,n2..}]多维表,元素为玎i小.1(各自从1到ni)IdentityMatrix[n]n阶单位阵DiagonalMatrix[list]对角阵1、制表函数

56第56页2、元素操作

Part[expr,i]或expr[[i]]第i个元素expr[[-i]]倒数第i个元素expr[{i,j,..}]多维表元素expr[{i1,i2,..}]返回由第i(n)元素组成子表FirstCexpr]第一个元素Last[expr]最终一个元素Head[expr]函数头,等于expr[[0]]Extract[expr,list]取出由表list指定位置上expr元素值Take[list,n]取出表list前n个元素组成表Take[list,{m,n}]取出表list从m到n元素组成表Drop[list,n]去掉表list前n个元素组下表Rest[expr]去掉表list第一个元素剩下表57第57页Select[USt,crit]把crit作用到每一个list元素上,为True全部元素组成表Length[expr]expr第一层元素个数Dimensions[expr]表维数返回(n1,n2..},expr为一个nl*n2…阵TensorRank[expr)秩Depth[expr]expr最大深度Level[expr,n]给出expr中第n层子表示式列表Count[USt,paUem]满足模式list中元素个数MembefQ[1ist,form]list中是否有匹配form元素FreeQ[expr,form]MemberQ反函数FreeQ[expr,form]

表中匹配模式pattern元素位置列表Cases[{e1,e2…},pattem}

匹配模式pattem全部元素ei表58第58页3、表操作

Append[exp[elem]返回在表expr最终追加elem元素后表Prepend[expr,elem)返回在表expr最前添加elem元素后表Insert[1ist,elem,n]在第n元素前插入elemlnsert[expr,elem,{i,j,...}]在元素expr[[{i,j,..}]]前插入elemDelete[expr,{i,j,..}]删除元素expr[[{i,j,..}]]后剩下表DeleteCases[expr,pattem]删除匹配pattern全部元素后剩下表ReplacePart[expr,new,n]将expr第n元素替换为newSort[list]返回list按次序排列表59第59页Reverse[expr]把表expr倒过来RotateLeft[expr,n]把表expr循环左移n次RotateRight[expr,n]把表expr循环右移n次Partition[list,n]把list按每n个元素为一个子表分割后再组成大表Flatten[1istl抹平全部子表后得到一维大表Flatten[1ist,n]抹平到第n层Split[1ist]把相同元素组成一个子表,再合成大表60第60页2.5表示式

1.表示式含义

Mathematica能处理数学公式,表以及图形等多各种数据形式。尽管他们从形式上看起来不一样,但在Mathematica内部都被看成同种类型,即都把他们看成表示式形式。Mathematica中表示式是由常量、变量、函数、命令、运算符和括号等组成,他最经典形式是f[x,y]61第61页2.表示式表示形式

在显示表示式时,因为需要不一样,有时我们需要表示式展开形式,有时又需要其因子乘积形式。在我们计算过程中可能得到很复杂表示式,这时我们又需要对它们进行化简。惯用处理这种情况函数。变换表示式表示形式函数表示式表示形式函数

意义Expand[expr]按幂次升高次序展开表示式Factor[expr]以因子乘积形式表示表示式Simplify[expr]进行最正确代数运算,并给出表示式最少项形式62第62页

表示式(x+y)^4(x+y^2)展开:

还原上面表示式为因子乘积形式:63第63页3.关系表示式与逻辑表示式

我们已经知道“=”表示给变量赋值。现在我们来学习一些其它逻辑与关系算子。关系表示式是最简单逻辑表示式,我们惯用关系表示式表示一个判别条件。比如:x>0,y=0。关系表示式普通形式是:表示式+关系算子+表示式。其中表示式可为数字表示式、字符表示式或意义更广泛表示式,如一个图形表示式等。在我们实际利用中,这儿表示式经常是数字表示式或字符表示式。下面出Mathematica中各种关系算子。64第64页x==y相等x!=y不相等x>y大于x>=y大于或等于x<y小于x<=y小于等于x==y==z都相等x!=y!=z都不相等x>y>z,etc严格递减65第65页给变量x,y赋值,输出后以变量值,如:

In[1]:=x=2;y=9Out[1]=9;In[2]:=x>yOut[2]=False下面是比较两个表示式大小

In[3]:=3^2>y+1Out[3]=False66第66页用一个关系式只能表示一个判定条件,要表示几个判定条件胡组合,必须用逻辑运算符将关系表示式组织在一起,我们称表示判定条件表示式为逻辑表示式。下面是常用逻辑运算和它们意义!:非、&&:并、||:或、Xor:异或、If:条件比如下面例子说明它们应用In[4]:=3x^2<Y+1&&3^2==yOut[4]=FalseIn[5]:=3x^2+1||3^2==yOut[5]=True67第67页第3章Mathematica基本运算1.多项式运算多项四则运算,多项式化简等2.方程求解求解普通方程,条件方程,方程数值解以及方程组求解3.求积求和求积与求和68第68页3.1多项式表示形式

可认为多项式是表示式一个特殊形式,所以多项式运算与表示式运算基本一样,表示式中各种输出形式也可用于多项式输出。Mathematica提供一组按不一样形式表示代数式函数。69第69页Expand[ploy]按幂次展开多项式ployExpandAll[ploy]

全部展开多项式ployFactor[ploy]

对多项式poly进行因式分解FactorTerms[ploy,{x,y,…}]按变量x,y,…进行分解Simplify[poly]

把多项式化为最简形式FullSimplify[ploy]把多项式展开并化简Collect[ploy,x]把多项式poly按x幂展开Collect[poly,{x,y…}]把多项式poly按x,y….幂次展开70第70页3.2方程及其根表示

因为Mathematica把方程看作逻辑语句。在数学方程式表示为形如“x2-2x+1=0”形式。在Mathematica中“=”用作赋值语句,用“==”表示逻辑等号,则方程应表示为

x^2-2x+1==0。方程解同原方程一样被看作是逻辑语句。比如用Roots求方程x^2-3x+2根显示为71第71页这种表示形式说明x取1或2均可。而用Solve[]可得解集形式1求解一元代数方程下面是惯用一些方程求解函数72第72页Solve[lhs==rhs,vars]给出方程解集NSolve[lhs==rhs,vars]直接给出方程数值解集Roots[lhs==rhs,vars]

求表示式根FindRoot[lhs==rhs,{x,x0}

求x=x0时,方程解值73第73页Solve函数例子Solve函数可处理主要方程是多项式方程。Mathematica总能对不高于四次方程进行准确求解,对于三次或四次方程,解形式可能很复杂。74第74页比如求x3+5x+3=0这时可用N函数近似数值解.75第75页

当方程中有一些复杂函数时,Mathematica可能无法直接给出解来。在这种情况下我们可用FindRoot[]来求解,但要给出起始条件。比如:求3Cosx=logx解

76第76页但只能求出x=1附近解,假如方程有几个不一样解,当给定不一样条件时,将给出不一样解。如上例若求x=10附近解命令为:所以确定解起始位置是比较关键,一个惯用方法是,先绘制图形观察后再解

77第77页78第78页如上例经过图形可断定在x=5附近有另一根79第79页2.求方程组根使用Solve和NSolve,FindRoot也可求方程组解,只是使用时格式略有不一样下面给出一个Solve函数例子:求解:80第80页3.求方程全解假如我们求ax2+bx+c=0根我们用Solve函数解结果是:81第81页这显然是不合理,因为对不一样a,b,c方程解有不一样情况,而上面只是给出部分解假如要处理这个问题可用Reduce命令,它可依据,a,b,c取值给出全部值。82第82页4.解条件方程在作方程计算时,能够把一个方程看作你要处理主要方程,而把其它方程作为必须满足辅助条件,你将会发觉这么处理很方便。譬如在求解像x4+bx2+c=0这么方程时,通常我们采取x2=y代换方法使求解方程得到简化。在Mahematica中,我们通常是首先命名辅助条件组,然后用名字把辅助条件包含在你要用函数Solve[]求解方程组中。用Sc定义方程:Sin2x+Cos2x=1,在这种条件下,求解方程。83第83页84第84页3.3求和与求积

在Mathematica中,数学上各式符号用Sum表示,连乘用Product表示。下面列出求和与求积函数形式和意义:Sum[f,{i,imin,imax}]求和Sum[f,{i,imin,imax,di}]以步长di增加i求和85第85页Sum[f,{i,imin,imax},{j,jmin,jmax}]嵌套求和

Product[f,{i,imain,imax}]求积

Product[f,{i,imin,imax,di}]以步长di增加i求和Product[f,{I,imin,imax},{j,jmin,jmax}]嵌套求积

Nsum[f,{i,imin,Infinity}]求

近似值NProduct[f,{i,imin,Infinity}]求

近似值86第86页87第87页第4章函数作图1.二维函数作图普通函数作图,参数方程绘图。2.二维图形元素点,线等图形元素使用3.图形样式图形样式,对图形进行设置4.图形重绘和组合重新显示所绘图形,将多个图形组合在一起。5.三维图形绘制三维图形绘制,三维参数方程图形,三维图形设置。88第88页4.1基本二维图形

Mathematica在直角坐标系中作一元函数图形用以下基本命令。Plot[f,{x,xmin,xmax},option->value]

在指定区间上按选项定义值画出函数在直角坐标系中图形.Plot[{f1,f2,f3,…},{x,xmin,xmax},option->value]在指定区间上按选项定义值同时画出多个函数在直角坐标系中图形89第89页Mathematica绘图时允许用户设置选项值对绘制图形细节提出各种要求。比如:要设置图形高宽比,给图形加标题等。每个选项都有一个确定名字,以“选项名->选项值”形式放在Plot中最右边位置,一次可设置多个选项,选项依次排列,用逗号隔开,也能够不设置选项,采取系统默认值。90第90页选项说明默认值AspectRatio图形高、宽比1/0.618AxesLabel给坐标轴加上名字不加PlotLabel给图形加上标题不加PlotRange指定函数因变量区间计算结果PlotStyle用什么样方式作图(颜色,粗细等)值是一个表PlotPoint画图时计算点数2591第91页1.举例(1).比如绘制

图形。

92第92页(2).假如要取消刻度能够使用Ticks选项93第93页(3)假如要标注坐标名称x轴为“Time”,y轴为“Height”94第94页(4).将坐标交点(3,0),并标注图形名称。95第95页(5).修改x方向刻度,y轴方向刻度则用默认值。96第96页(6).定义y轴绘图范围97第97页(7)另外我们也能够将图形结果定义给变量,但不显示图形,后用Show命令显示。98第98页2.数据集合图形

Mathematica用于绘数字集合图形命令与前而介绍绘函数图形命令是相同。以下:ListPlot[{y1,y2,…..}]绘出在x值为1,2…时y1,y2,…图形ListPlot[{{x1,y1},{x2,y2},…..}]绘出离散点(xi,yi)ListPlot[List,PlotJoined->True]把离散点连成曲线99第99页(1).下面举例说明下面是一个离散数据集合图形100第100页3.二维参数作图

前面我们使用Plot命令能够绘出直角坐标系下函数图形,使用ParametrecPlot能够绘制参数曲线下面给出ParametricPlot惯用形式ParametricPlot[{fx,fy},{t,tmin,tmax}]绘出参数图ParametricPlot[{fx,fy},{gx,gy},….{t,tmin,tmax}]绘出一组参数图ParametricPlot[{fx,fy},{t,tmin,tmax},AspectRatio->Automatic]设法保持曲线形101第101页(1).绘制参数方程

图形

102第102页(2).下面将一个圆与上面参数绘在同一个坐标下,并确保图形形状正确。

103第103页4.3图形样式

下面给出选项用于设置图形样式。Graykvel[]灰度介于0(黑)到l(白)之间RGBColor[r,g,b]由红、绿,蓝组成颜色,每种色彩取0到1之间数Hue[A]取0到1之间色彩Hue[h,s,b]指定色调,位置和亮度颜色,每项介于0到1之间PointSize[d]给出半径为d点,单位是Plot一个分数104第104页AbsolutePointSize[d]给出半径为d点(以绝对单位量取)Thickness[w]给全部线宽度w,单位是Plot分数AbsoluteThickness[w]给全部线宽度w,(以绝对单位量取)Dashing[wl,w2,….]给全部线为一系列虚线,虚线段长度为wl,w2,…Absolutedashing[{w1,w2,…..}]以绝对单位给出虚线长度PlotStyle->style设置Plot中全部曲线格调PlotStyle->{{Style1},{Style2}…….}设置Plot中一些列曲线格调MeshStyle->Style设置宽度和表面网格格调105第105页1.图形颜色设置在Mathematicaa提供各种图形指令中,对图形元素颜色设置是一个很主要设置。下面给出三条不一样颜色正弦曲线.106第106页107第107页下面用不一样色调对三个菱形进行着色。108第108页2.图形大小下面是一些点,注意点大小控制。109第109页下面点控制是用绝对单位110第110页3.线段控制下面例子是控制线段宽度,使用是绝对控制。111第111页4.4图形重绘和组合

每次绘制图形后,Mathematica保留了图形全部信息,所以用户能够重绘这些图形。下面是惯用重绘图形函数。Show[plot]重绘图形Show[plot,option->value]改变方案重绘图形Show[plot1,plot2,plot3…]多个图形绘制Show[GraphcisArray[{{plot1,plot2,…}…}]]绘制图形矩阵InputForm[plot]给出全部图形信息112第112页1.使用Show显示图形下面绘制函数Sin[x^2]图形。113第113页重绘图形时,能够改变命令设置,下面改变y百分比同时给图边框114第114页2.使用Show命令进行组合也可使用Show进行图形组合。图形组合与图形是否有相同百分比无关,这时Mathematica会自动选择新百分比来绘制图形。下面绘制函数-xsin(2x+Pi)图形和xcos(2x)然后绘制在一张图时。115第115页116第116页3.将多个图形组合为一个图形我们也可把图形组合为一个图形,我们还能够用GraphicsArray把多个图形绘制在一个图形矩阵中以下列图。117第117页4.5基本三维图形

绘制函数f(x,y)在平面区域上三维立体图形基本命令是Plot3D,Plot3D和Plot工作方式和选项基本相同。ListPlot3D能够用来绘制三维数字集合三维图形,其使用方法也类似于ListPlot,下面给出这两个函数惯用形式。Plot3D[f,(x,xmin,xmax),(y,ymin,ymax)]绘制以x和y为变量三维函数f图形ListPlot3D[{Z11,Z12,…},{Z21,Z22,…},…..]]绘出高度为Zvx数组三维图形118第118页选项取值意义AxesTrue是否包含坐标轴AxesLabelNone在轴上加上标志:zlabel要求z轴标志,{xlabel,ylabel,zlabel}要求全部轴标志BoxedTrue是否在曲面周围加上立方体ColorFunctionAutomatic使用什么颜色明暗度;Hue表示使用一系列颜色TextStyleSTextStyle用于图形文本缺省类型OrmatTypeStandardForm用于图形文本缺省格式类型DisplayFunctionSdlisplayFunction怎样绘制图形,Indentity表示不显示119第119页FaceGridsNone怎样在立体界面上绘上网格;All表示在每个界面上绘上网格HiddenSurfaceTrue是否以立体形式绘出曲面LighdngTrue是否用明暗分布米给表面加色MeshTrue是否在表面上绘出xy网格PlotRangeAutomatic图中坐标范围;能够要求为All,{zmin,zmax}或{xminn,xmax},{ymin,ymax},{zmin,zmax}ShadingTrue表面是用阴影还是留空白ViewPoint{1.3,-2.4,2}表面空间观察点120第120页1.三维绘图举例

(1).函数Sin(x+y)Cos(x+y)立体图121第121页用PlotRange设定曲线表面改变范围122第122页(3).图形轴上加上标识,且在每个平面上画上网格。123第123页(4).视图改变124第124页2.用数据来进行绘图三维图形也可用数据来进行绘图。下面给出数据矩阵,因其较大未表示其结果。125第125页3.三维空间参数方程绘图三维空间中参数绘图函数ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax}]和二维空间中ParametricPlot很相仿。在这种情况下,Mathematica实际上都是依据参数t来产生系列胡点,然后再连接起来。

三维参数作图基本形式为:126第126页ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax}]给出空间曲线参数图ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax},{u,umin,umax}]给出空间曲面参数图ParametricPlot3D[{fx,fv,fz,s}…..]按照函数关系s绘出参数图阴影部分ParametricPlot3D[{fx,fv,fz},{gx,gy,gz}…..]]把一些图形绘制在一起127第127页ParametricPlot3D[{fx,fv,fz},{t,tmin,tmax},{u,umin,umax}]产生一个空间曲面而不是一条曲线,曲面是由四边形组成。128第128页129第129页第5章微积分基本操作1.函数极限怎样求函数极限2.导数与微分怎样求函数导数,微分。3.定积分与不定积分怎样求函数不定积分和定积分,以及数值积分。4.多变量函数微分怎样求多元函数偏导数,微分130第130页5.1极限

Mathematica计算极限命令是Limit它使用方法主要有Limit[expr,x->x0]当x趋向于x0时求expr极限Limit[expr,x->x0,Direction->1]当x趋向于x0时求expr左极限Limit[expr,x->x0,Direction->-1]当x趋向于x0时求expr右极限趋向点能够是常数,也能够是+∞,-∞

比如1.求

131第131页2.求

132第132页5.2微分

1.函数微分

在Mathematica中,计算函数微分或是非常方便,命令为D[f,x],表示对x求函数f导数或偏导数。该函数惯用格式有以下几个D[f,x]计算微分

D[f,x1,x2,…]计算多重偏微分

D[f,{x,n}]计算n阶微分

D[f,x,NonConstants->{v1,v2,----}]计算微分

其中v1,v2…依赖于x133第133页比如

1.求函数Sinx导数2.求函数exSinx2阶导数

134第134页3.假设a是常数能够对Sinax求导

4.假如对二元函数f(x,y)=x^2*y+y^2求对x,y求一阶和二阶偏导

135第135页136第136页Mathematica能够求函数式未知函数微分,通常结果使用数学上表示法比如:

137第137页对链导法则一样可用

假如要得到函数在某一点导数值能够把这点代入导数如:

138第138页2.全微分在Mathematica中,D[f,x]给出f偏导数,其中假定f中其它变量与x无关。当f为单变量时,D[f,x]计算f对x导数。函数Dt[f,x]给出f全微分形式,并假定f中全部变量依赖于x.下面是Dt命令惯用形及意义Dt[f]求全微分dfDt[f,x]求全微分

Dt[f,x1,x2,…]求多重全微分

Dt[f,x,Constants->{c1,c2,….}]求全微分其中c1,c2..是常数139第139页下面我们求x^2+y^2偏微分和全微分能够看出第一个情况y与x没相关系,第二种情况y是x函数。再看以下求多项式

x^2+xy^3+yz全微分并假定z保持不变是常数140第140页假如y是x函数,y被看成是常数141第141页5.3计算积分

1.不定积分

在Mathematica中计算不定积分命令为Integerate[f,x]。当然并不是全部不定积分都能求出来。比如若求

Mathematica就无能为力。

142第142页但对于一些手工计算相当复杂不定积分,MatheMatica还是能轻易求得,比如求

143第143页2.定积分定积分求解主要命令也是用Integrate只是要在命令中加入积分限Integrate[f,{x,min,max}]比如求

144第144页显然这条命令也能够求广义积分比如:求

145第145页求无穷积也能够比如

146第146页3.数值积分

数值积分是处理求定积分另一个有效方法,它能够给出一个近似解。尤其是对于用Integrate命令无法求出定积分,数值积分更是能够发挥巨大作用。

它命令格式为

Nintegrate[f,{x,a,b}]在[a,b]上求f数值积分NIntegrate[expr,{x,xmin,xmax},{y,ymin,ymax},...]多重积分Nintegrate[f,{x,a,x1,x2,…,b}]以x1,x2….为分割求[a,b]上数值积分147第147页下面我们求Sinsinx在[0,Pi]上积分值,因为这个函数不定积分求不出,所以使用Integrate命令无法得到详细结果,但能够用数值积分求148第148页假如积分函数存在不连续点,或存在奇点我们可对积分进行分段求解。比如函数

在[-1,1]上,显然x=0点是一个无穷间断点。所以若要求其数值积分,必须在其中插入点0

149第149页5.4多变量函数微分

下面是计算多变量函数偏导数及全微分命令与单变量基本相同(

I

)D[f,x1,x2,...,xn]

计算偏导数

下面是实际例子:150第150页151第151页第6章微分方程求解1.微分方程解微分方程求解2.微分方程数值解怎样求微分方程数值解152第152页6.1微分方程解

在Mathematica中使用Dsolove[]能够求解线性和非线性微分方程,以及联立微分分方程组。在没有给定方程初值条件下,我们所得到解包含C[1],C[2]是待定系数。求解微分方程就是寻找未知函数表示式,在Mathematica中,未稳中有降函数用y[x]表示,其微分用y‘[x],y’‘[x]等表示。下面给出微分方程(组)求解函数。153第153页Dsolve[eqn,y[x],x]求解微分方程y[x]Dsolve[eqn,y,x]求解微分方程函数yDsolve[{eqn1,eqn2,…},{y1,y2,….},x]求解微分方程组154第154页1.用Dsolve求解微分方程y[x]

155第155页解y[x]仅适合其本身,并不适合于y[x]其它形式,如y’[x],y[0]等,也就是说y[x]不是函数,比如我们假如有以下操作,y’[x],y[0]并没有发生改变.156第156页2.解纯函数形式使用Dsolve命令能够给出解纯函数形式,即y,请分析下面例子157第157页这里y适合y全部情况下面例子能够说明这一点158第158页3.求微分方程组例子159第159页4.带初始条件微分方程解当给定一个微分方程初始条件能够确定一个待定系数。例子160第160页6.2微分方程数值解

在Mathematica中用函数DSolve[]得到微分方程准确解,用函数NDSolve得到微分方程数值解,当然在此处要给出求解区间(x,xmin,xmax)。

NDSolve也是既能计算单个微分方程,也能计算联立微分方程组。它能对大多数常微分方程和部分偏微分方程求解。在常微分可能有一些未知函数yi,但这些未知函数都依赖于一个单变量x。161第161页NDSolve[{eqn1,eqn2,…},y,{x,xmin,xmax}]求函数y数值解,x属于[xmin,xmax]NDSolve[{eqnl,eqn2,…},{y1,y2,…}{x,xmin,xmax}]求多个函数yi数值解162第162页使用Mathematica页能够很轻易得到解图形。这儿给出怎样观察微商逆函数近似值图形。我们使用命令Evaluate代替InterpolatingFunction能够节约时间。比如:163第163页164第164页第7章Mathematica程序设计1.模块

模块概念和定义方法2.条件结构

条件结构使用和定义方法3.循环结构

循环结构使用165第165页7.1模块

Module[{x,y,...},body]含有局部变量x,y…模块Module[{x=x0,y=y0,…},body]含有初始值局部变量模块lhs:=Module[vars,rhs/:cond]rhs和cond共享局部变量Block[{x,y,...},body]利用局部值x,y,…计算bodyBlock[{x=x0,y=y0,…},bddy]给x,y,..赋初始值166第166页下面定义有初值变量t,Mathematica默认它为全局变量:ln[1]:=t=10Out[1]=10模块中t为局部变量,所以它独立于全局变量tln[2]:=Module[{t},t=8;Print[t]]167第167页

全局变量t值仍为10:ln[3]=t=10Out[3]=10168第168页全局变量t值仍为10:ln[6]:=t=10Out[6]=10169第169页Mathematica中模块允许你把某变量名看作局部变量名。然而又存在有时你又希望它们为全局变量时,但变量值为局部矛盾,这时我们能够用Block[]函数。下面是一个含有全局变量x表示式,使用x局部值计算上面表示式:

170第170页Module[vars,body]所要做是把执行模块时表示式body形式看成Mathematica程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论