Mathematica 90简明教程24页.docx
《Mathematica 90简明教程24页.docx》由会员分享,可在线阅读,更多相关《Mathematica 90简明教程24页.docx(29页珍藏版)》请在冰豆网上搜索。
![Mathematica 90简明教程24页.docx](https://file1.bdocx.com/fileroot1/2022-11/26/7a7f6a4d-059c-4bc7-853f-239ae609d908/7a7f6a4d-059c-4bc7-853f-239ae609d9081.gif)
Mathematica90简明教程24页
Mathematica9.0简明教程
2015年10月10日
Mathematica自1988年由美国的WolframResearch公司首次推出,是一个功能强大的常用数学软件,不但可以解决数学中的数值计算问题,还可以解决符号演算问题,并且能够方便地绘出各种函数图形。
0.Mathematica启动与帮助
假设在Windows环境下已安装好中文Mathematica9.0,在“开始”菜单的“程序”中单击
,就启动了Mathematica9.0,默认为是新建“笔记本”。
这与[文件]-[新建]菜单是一样的。
笔记本,幻灯片,项目,后缀都是.nb,可以理解为不同场合设计的模板。
任何时候都可以通过按F1键或点击帮助菜单项“参考资料中心”,调出帮助菜单,如图所示,函数浏览器和虚拟全书可理解为两个搜索引擎,帮助查找所需内容。
该文档全面整合的文件中心容纳几千个详细举例、动画、辅导课程和其它资料。
这些都被翻译成中文,帮助您使用Mathematica。
1.Mathematica基本使用
(1)在工作区(软件打开初始时,左侧的窗口,上方有untitled-1*)输入命令,按Shift+Enter组合键执行命令;如输入“1+1”,按Shift+Enter执行后,窗口显示
In[1]:
=1+1
Out[1]=2
其中“In[1]:
=,Out[1]=”为系统自动添加(不必管),In[1]括号内数字1表示第1次输入。
如果不想显示此次输入的结果,只要在所输入命令的后面再加上一个分号便可。
(2)可以打开“助手面板”,方便命令输入,如级数,积分,数学符号等。
(3)在Mathematica系统中定义了许多功能强大的函数,我们称之为内建函数(built-infunction),直接调用这些函数可以取到事半功倍的效果。
这些函数分为两类,一类是数学意义上的函数,如:
绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底的对数函数Log[x],以a为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。
在Mathematica中,函数名和自变量之间的分隔符是用方括号“[]”,而不是一般数学书上用的圆括号“()”,初学者很容易犯这类错误。
2.Mathematica的基本语法特征
(1)Mathematica中区分大、小写,如Name、name、NAME等是不同的变量名或函数名。
(2)系统所提供的功能大部分以系统函数的形式给出,内部函数一般写全称,而且一定是以大写英文字母开头,如Sin[2]等。
(3)乘法即可以用*,又可以用空格表示,如23=2*3=6,xy,2Sin[x]等;乘幂可以用“^”表示,如x^0.5,Tan[x]^y。
(4)自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。
(5)当赋予变量任何一个值,除非明显地改变该值或使用Clear[变量名]或“变量名=.”取消该值为止,否则它将始终保持原值不变。
(6)一定要注意四种括号的用法:
()圆括号表示运算项的结合顺序,如(x+(y^x+1/(2x)));[]方括号表示函数,如Log[x],BesselJ[x,1];{}大括号表示一个“表”(一组数字、任意表达式、函数等的集合),如{2x,Sin[12Pi],{1+A,y*x}};[[]]双方括号表示“表”或“表达式”的下标,如a[[2,3]]、{1,2,3}[[1]]=1。
(7)Mathematica的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔)。
当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果。
3.Mathematica中的数据类型和数学常数
Mathematica提供的简单数据类型有整数、有理数、实数和复数4种类型,这些数据在Mathematica中有如下的要求:
(1)整数描述为Integer,是可以具有任意长度的精确数。
书写方法同于我们通常的表示,输入时,构成整数的各数字之间不能有空格、逗号和其它符号,整数的正负号写在该数的首位,正号可以不输入。
如:
2367189、-932是正确的整数。
(2)有理数描述为Rational,用化简过的分数表示,但其中分子和分母都应该是整数,有理数是精确数,输入时分号用“/”代替,即使用“分子分母”的形式。
如:
23/45、-41/345是正确的有理数。
(3)实数描述为Real,是除了整数和有理数之外的所有实数。
与一般高级语言不同的是这里数学中的无理数是可以有任意精确度的近似数,如圆周率,在Mathematica中它可以根据需要取任意位有效数字。
(4)复数描述为Complex,用是否含有虚数单位I来区分,它的实部和虚部可以是整数、有理数和实数。
如:
3+4.3I、18.5I都是正确的复数。
为了方便数学处理和计算更准确,Mathematica定义了一些数学常数,它们用英文字符串表示,常用的有:
Pi表示圆周率=3.14159…
E表示自然数e=2.71828…
Degree表示几何的角度1或/180,30Degree表示30.
I表示虚数单位-1开平方I
Infinity表示数学中的无穷大(正无穷)
注意:
数学常数是精确数,可以直接用于输入的公式中,作为精确数参与计算和公式推导。
这些常数可以从符号面板选择输入。
4.Mathematica数的运算符
数的运算有:
加、减、乘、除和乘方,它们在Mathematica中的符号为:
加(+)、减(-)、乘(*)、除(/)和乘方(^)。
不同类型的数参与运算,其结果的类型为:
●如果运算数有复数,则计算结果为复数类型;
●如果运算数没有复数,但有实数,则计算结果为实数类型
●如果运算数没有复数和实数,但有分数,则计算结果为有理数类型
●如果运算数只有整数,则计算结果或是整数类型(如果计算结果是整数);或是有理数类型(如果计算结果不是整数)。
5.Mathematica中的精确数与近似数
(1)Mathematica的近似数是带有小数点的数;精确数是整数、有理数、数学常数以及函数在自变量取整数、有理数、数学常数时的函数值。
如:
62243、2/3、E、Sin[4]都是精确数。
如果参与运算或求值的数带有小数点,则运算结果通常为带有6位有效数字的近似数,如:
In[3]:
=1.2345678020/30
Out[3]=0.0411523结果为近似数
In[4]:
=2+Sin[1.0]
Out[4]=2.84147结果为近似数
In[5]:
=2+Sin[1]
Out[5]=2+Sin[1]结果为精确数
(2)如果需要精确数的数值结果(除了整数之外),可以用Mathematica提供的N函数将其转化,N函数可以得到该精确数的任意精度的近似结果:
例如:
In[6]:
=2*E+Sin[Pi/5]//N
Out[6]=6.02345(输入2*E+Sin[Pi/5]试试)
In[7]:
=N[2*E+Sin[Pi/5],30]
.024*********
Input=N[Pi,20]
output=3.14159265358979323846264338328
6.Mathematica中的表
表可以用来表示数学中的集合、向量、矩阵和数据库中的记录。
在Mathematica中,任何用一对花括号括起来的一组元素都代一个表,其中的元素用逗号分隔且各元素可以具有不同的类型,特别其中的元素还可以是一个表。
表的形式:
{元素1,元素2,元素3,……,元素n},如:
{1,3,5}、{3,x,{1,y},4}都是表
建表命令:
(1)命令形式1:
Table[f(i),{i,imin,imax,h}],其中h>0
功能:
产生一个表{f(imin),f(imin+h),f(imin+2h),…,f(imin+nh)}
例如:
In[8]:
=Table[i^2,{i,1,19,2}]
Out[8]={1,9,25,49,81,121,169,225,289,361}
(2)命令形式2:
Table[通项公式f(i),{i,imin,imax}],相当于h=1
功能:
产生一个表{f(imin),f(imin+1),f(imin+2),…,f(imin+n)}
命令:
In[9]:
=Table[i^2,{i,2,10}]
Out[9]={4,9,16,25,36,49,64,81,100}
(3)命令形式3:
Table[通项公式f,{循环次数n}],f为常数
功能:
产生n个f的一个表{f,f,f,……,f}
例如:
建立产生8个2一个表{2,2,2,2,2,2,2,2}
命令:
In[10]:
=Table[2,{8}]
Out[10]={2,2,2,2,2,2,2,2}
(4)命令形式4:
Table[通项公式f(i,j),{{i,imin,imax},{j,jmin,jmax}]
功能:
产生一个二维表
{{f(imin,jmin),f(imin,jmin+1),f(imin,jmin+2),……,f(imin,jmin+m)},{f(imin+1,jmin),f(imin+1,jmin+1),f(imin+1,jmin+2),……,f(imin+1,jmin+m)},……{f(imin+n,jmin),f(imin+n,jmin+1),f(imin+n,jmin+2),
……,f(imin+n,jmin+m)}
例如:
In[11]:
=Table[i-j,{i,1,6},{j,1,2}]
Out[11]={{0,-1},{1,0},{2,1},{3,2},{4,3},{5,4}}
分量命令:
表的分量表示:
有时为了需要,希望取出表中的某一或某些元素参与后面的运算和处理。
(1)命令形式1:
表[[序号n]]
功能:
取出表中序号为n的元素
例如:
取出表{1,9,x,49,81,{121,169},225,289,361}的正数第3个元素、第6个元素、和倒数第2个元素的命令依次为:
命令:
In[12]:
={1,9,x,49,81,{121,169},225,289,361}[[3]]
Out[12]=x
In[13]:
={1,9,x,49,81,{121,169},225,289,361}[[6]]
Out[13]={121,169}
In[14]:
={1,9,x,49,81,{121,169},225,289,361}[[-2]](倒数可以用负号表示)
Out[14]=289
In[15]:
=A=Table[i,{i,1,30,3}]
Out[15]=A[[3]]=7
(2)命令形式2:
表[[{序号n1,序号n2,序号n3,……,序号nm}]]
功能:
取出由表中序号分别为n1,n2,n3,……,nm的m个元素组成的一个表,其中序号n1,n2,n3,……,nm可以重复。
例如:
取出由表{1,9,x,49,81,{121,169},225,289,361}中序号分别为1,3,3,6,-1的5个元素组成的一个表:
命令:
In[15]:
={1,9,x,49,81,{121,169},225,289,361}[[{1,3,3,6,-1}]]
Out[15]={1,x,x,{121,169},361}
(3)命令形式3:
表[[序号n1,序号n2]]
功能:
取出表中序号为n1元素(该元素必须是一个表)的序号为n2的元素。
例如:
取出表{1,9,x,49,81,{121,169},225,289,361}中序号为6的元素的正数第二个元素,命令:
In[16]:
={1,9,x,49,81,{121,169},225,289,361}[[6,2]]
Out[16]=169
运算命令
Mathematica表的运算命令有很多,这里介绍两个常用的函数:
Apply[Plus,表]对表中所有元素求和
Apply[Times,表]对表中所有元素求积
例如:
写出将表{1,9,49,81,225,289,361}中所有元素相加、相乘
命令:
In[17]:
=t={1,9,49,81,225,289,361}
In[18]=Apply[Plus,t]
Out[18]=1015
In[19]=Apply[Times,t]
Out[19]=838515647025
7.Mathematica中的变量
(1)Mathematica的变量命名
⏹变量名规定为任何小写英文字母或以小写英文字母开头后跟若干字母或数字表示的字符串,如x,y,ae3,d3er45都是合法的变量名。
⏹变量名一般不用大写字母。
如果在某些情况下一定要用大写字母,应该注意不要与Mathematica中的数学常数和内部函数或命令的混淆。
Mathematica中的变量名是区分大小写字母的,如在Mathematica中,ab与Ab表示两个不同的变量。
⏹变量名中的字符之间不能有空格,因为变量名中的空格在Mathematica中被理解为变量的乘积。
如:
abcd与abcd有不同的含义,前者表示一个变量abcd,而后者Mathematica会将其看成两个变量ab和cd的乘积关系。
⏹变量名不能以数字开头的字符串来表示,如果在Mathematica里出现了这种字符串,Mathematica将其理解为数字与变量的乘积。
例如:
以数字开头的字符串3asd,在Mathematica中表示3乘以变量asd即3asd表示3*asd。
⏹在Mathematica中变量使用前不必先定义变量类型。
Mathematica变量的类型可以不断变化,取决于其中所存数据的类型;变量不但可以存放前面所提到的四种数据数,而且可以存放一个方程式、一个图形或更复杂的关系式。
(2)Mathematica中的变量取值与清除
如果一个变量在程序运行中没有被存储内容,此时该变量名只是一般的数学符号参与程序的处理。
如果变量被存储了内容,称为变量取值。
变量取值之后,该变量就用存入的内容参与程序的处理。
在Mathematica中,变量获取值的方式有三种:
变量赋值、键盘输入和变量替换。
下面分别介绍这三种方式:
⏹变量赋值方式
Mathematica中变量赋值的一般形式为:
变量=表达式
这里“=”称为赋值号,表达式是广义的表达式,即它可以是数值和通常意义的数学表达式,还可以是一个方程或图形等。
例如:
In[20]:
=x=2+2
Out[20]=4
In[21]:
=x*x–x+1
Out[21]=13
⏹键盘输入方式
键盘输入方式是变量取值的另一种常用的方式,多用于需要在命令或程序的运行中由用户从键盘上临时键入的人机交互式变量取值。
键盘输入命令形式为:
变量=Input[]
当遇到上面的键盘输入命令后,计算机在屏幕上给出一个输入小窗口,等待用户在其中从键盘上键入一个表达式,键入完毕后,用鼠标点击“OK”按扭后,计算机将键入的表达式求值后,将结果存储在算等号左边的变量中。
这里“=”是赋值号。
例如:
In[22]:
=x=Input[]*变量x等待键盘输入赋值(见图)
Out[22]=23(*此时x从键盘上被赋值23)
In[23]:
=x+1
Out[23]=24
⏹变量替换
变量替换类似于数学中的计算函数在某一点的函数值。
变量替换的一般形式为:
表达式/.变量名1>表达式1
或
表达式/.{变量名1>表达式1,变量名2>表达式2,…}
这里符号“/.”是由键盘上的两个符号“/”和“.”组成的,中间不能有空格。
同样,“>”也是由键盘上的两个符号“”和“>”组成的,中间也不能有空格。
例如:
In[24]:
=2x+3y/.x->2.1
Out[24]=4.2+3y
In[25]:
=2x+3y/.{x->2.1,y->1+a}
Out[25]=4.2+3(1+a)
⏹清除变量
清除变量的含义是清除给变量所赋的值,它的命令形式为:
变量名=.
或
Clear[变量名1,变量名2,…]
清除变量后,变量名就还原成一般的数学符号了。
(3)Mathematica中有关变量的注意事项
使用变量前先用清除命令清除其中的内容。
Mathematica中的变量名还可以用作代数中的数学符号,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应数学的公式推导和运算。
因此,如果用户在做符号运算时使用的符号有被赋值的变量名,则就会出现察觉不到的错误。
变量替换时变量本身还是数学符号,没有发生变量赋值的行为。
如:
In[26]:
=x=9;(若后面需要进行符号运算,则需要清除)
In[27]:
=6/x-7
Out[27]=-19/3
In[28]:
=x=.
------------------------------------------------------------------
In[29]:
=6x-7/.x->9(变量替换,没有赋值行为)
Out[29]=-19/3
In[30]:
=6/x-7
Out[30]=6/x-7
8.Mathematica中的函数
(1).的Mathematica内部函数
Mathematica有很丰富的内部函数,它们是Mathematica系统自带的函数,函数名一般为数学中常使用的英文单词,只要输入相应的函数名,就可以方便地使用这些函数。
内部函数既有数学中常用的函数,又有工程中用的特殊函数。
如果用户想自己定义一个函数,Mathematica也提供了这种功能。
Mathematica的内部函数名字大部分是其英文单词的全名,如Random等。
Mathematica内部函数的名字第一个字母一定要大写,其后的字母一般是小写的,不过如果该名字有几个含义,则函数名字中体现每个含义的第一个字母也要大写,如反正切函数arctanx中含有反“arc”和正切“tan”两个含义,故它的Mathematica函数表示为ArcTan[x]。
Mathematica中的函数自变量应该用方括号[]括起,不能用圆括()号括起,即一个数学中的函数f(x,y,…)应该写为f[x,y,…]才行
下面列举一些常用的Mathematica内部函数
⏹数值函数
Abs[x]表示x的绝对值|x|
Round[x]表示最接近x的整数
Floor[x]表示不大于x的最大整数
Ceiling[x]表示不小于x的最大整数
Sign[x]表示x的符号函数sgn(x)
Exp[x]表示以自然数为底的指数函数ex
Log[x]表示以自然数为底的对数函数lnx
Log[a,x]表示以数a为底的对数函数logax
Sin[x],Cos[x]表示正弦函数sinx,余弦函数cosx
Tan[x],Cot[x]表示正切函数tanx,余切函数cotx
ArcSin[x],ArcCos[x]表示反正弦函数,反余弦函数
ArcTan[x],ArcCot[x]表示反正切函数arctanx,反余切函数arccotx
Max[x1,x2,…,xn]表示取出实数x1,x2,…。
xn的最大值
Max[s]表示取出表s中所有数的最大值
Min[x1,x2,…,xn]表示取出实数x1,x2,…。
xn的最小值
Min[s]表示取出表s中所有数的最小值
n!
表示阶乘n(n-1)(n-2)...1
n!
!
表示双阶乘n(n-2)(n-4)...
Mod[m,n]表示整数m除以整数n的余数
Quotient[m,n]表示整数m除以整数n的整数部分
GCD[m1,m2,…,mn]表示取出整数m1,m2,…。
mn的最大公约数
GCD[s]表示取出表s中所有数的最大公约数
LCM[m1,m2,…,mn]表示取出整数m1,m2,…。
mn的最小公倍数
LCM[s]表示取出表s中所有数的最小公倍数
Binomial[n,m]表示二项式系数
Re[z]取复数z的实部
Im[z]取复数z的虚部
Conjugate[z]取复数z的共轭复数
Sqrt[x]表示x的平方根函数
(2).Mathematica中的自定义函数
●Mathematica自定义函数的一般命令为:
函数名[自变量名1_,自变量名2_,…]:
=表达式
这里函数名与变量名的规定相同,方括号中的每个自变量名后都要有一个下划线“_”,中部的定义号“:
=”的两个符号是一个整体,中间不能有空格。
●定义一个一元函数
函数名[自变量名_]:
=表达式
例如:
定义一个函数y=asinx+x5,a是参数
命令:
In[44]:
=y[x_]:
=a*Sin[x]+x^5
●定义一个二元函数
函数名[自变量名1_,自变量名2_]:
=表达式
例如:
定义一个函数z1=tan(x/y)–ye5x
命令:
In[45]:
=z1[x_,y_]:
=Tan[x/y]+y*Exp[5x]
分段函数定义方式:
f[x_]:
=exp1/;condition1
f[x_]:
=exp2/;condition2
f[x_]:
=exp3/;condition3
当然有多少个分段就定义多少个f[x_]。
2.如果该分段函数只使用一次或者用来做图,则可以按照下面的方式来定义
使用which语句,其格式为:
f[x_]:
=which[条件1,表达式1,条件2,表达式2,...,条件n,表达式n]
(这里,f[x_]后面的冒号可有可无,根据需要自己定。
)。
which语句的执行过程为:
先从判断条件1是否为真开始,若为真,则执行表达式1;否则,判断条件2是否为真,以此类推,直到某一个条件为真时结束。
并把该条件对应的表达式结果作为which语句的执行结果。
举例
或者
3.系统内部