nullMathematica数学实验Mathematica数学实验北京交通大学第一章 Mathematica 基础知识 第一章 Mathematica 基础知识 1.1 Mathematica 概述
1.1.1 Mathematica 简介
Mathematica 作为一个功能强大的常用数学软件, 不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。
Mathematica自1988年由美国的Wolfram Research公司首次推出Mathematica1.0版本以来,随着Wolfram Research公司对它的不断改进,先后推出了Mathematica1.2、Mathematica2.0、Mathematica2.2、Mathematica3.0、Mathematica4.0等版本。
下面看一些用mathematica做的一些例子:见图
null
1.1.2 Mathematica 的安装和进入/退出
(1) Windows 版本的Mathematica 安装步骤为:
启动Windows 操作系统, 打开Windows 资源管理器;
在Windows 资源管理器中选择Mathematica 系统安装盘, 察看磁盘中的安装文件Setup;
用鼠标双击安装文件Setup, 屏幕上出现一些选择对话框;
用鼠标点击所有选择对话框的OK按钮或键入字母y, 则系统就在你的计算机上安装了Mathematica数学软件。
Mathematica 的安装成功后, 系统会在Windows【开始】菜单的【程序】子菜单中加入启动Mathematica命令的图标, 用鼠标单击它就可以启动Mathematica系统,见下图:
nullnull启动Mathematica后, 屏幕上出现称为Notebook 的Mathematica系统集成界面:
nullMathematica在用户区输入的
内容
财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容
被 Mathematica用一个具有扩展名为 “.ma” 的文件名来纪录,该文件名是退出Mathematica时保存在用户区输入内容的默认文件名,一般是文件名:“Newnb-1.ma” 。
退出Mathematica系统像关闭一个Word文件一样, 只要用鼠标点击Mathematica系统集成界面右上角的关闭按钮即可。关闭前, 屏幕会出现一个对话框, 询问是否保存用户区的内容, 如果单击对话框的“否(N)”按钮, 则关闭Notebook窗口, 退出Mathematica系统; 如果单击对话框的“是(Y)”按钮, 则先提示你用一个具有扩展名为 .ma 的文件名来保存用户区内的内容, 再退出Mathematica系统。1.1.3 Mathematica 中的Cell1.1.3 Mathematica 中的Cell在Notebook用户区, 从开始输入到按下Shift+Enter组合键称为Mathematica一个输入。Mathematica中的每个输出或图形的右边也都有一个方括号, 这些方括号括起的内容称为Cell, 而方括号是这个Cell的手柄。Cell是Notebook的基本单元, Notebook中的所有内容都被组成有序的 Cell。由若干个Cell可以组成按组分级排列的复合Cell(见后面的图)。复合Cell的手柄是最外层的大方括号。用鼠标单击某个Cell的手柄,对应的方括号变黑
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示已经选定这个Cell了, 此时, 你可以使用复制、删除及粘贴等功能处理所选定的Cell中的内容。null1.1.4 Mathematica操作的注意事项1.1.4 Mathematica操作的注意事项
(1)在Notebook 用户区用户输入完Mathematica命令后, 还要按下Shift+Enter组合键, Mathematica才能执行你输入的Mathematica命令。
(2)在Notebook用户区如果某个命令一行输入不下,可以用按下Enter 键的方法来达到换行的目的。
(3)在Notebook用户区除了可以用直接键盘输入的方法进行输入外, 还可以用打开的方式从磁盘中调入一个已经存在的具有扩展名为 .ma 的文件来进行操作。
(4)每次输入完Mathematica命令并按下Shift+Enter组合键, 通常系统会在输入内容的前一行自动加入符号In[n]=:以表出此次输入是第n次输入。如果用户不想计算机显示此次输入的结果,只要在所输入命令的后面再加上一个分号“;”即可以达到目的。如:
In[1]:= x= 2 + 3 Out[1]=5
In[2]:= x = 2 + 3 ; 不显示结果51.2 Mathematica 中的数据
1.2.1 Mathematica 中的数据类型和数学常数1.2 Mathematica 中的数据
1.2.1 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都是正确的复数。null 为了方便数学处理和计算更准确,Mathematica定义了一些数学常数,它们用英文字符串表示,常用的有:
Pi 表示圆周率=3.14159…
E 表示自然数e =2.71828…
Degree 表示几何的角度1或 /180
I 表示虚数单位-1开平方I
Infinity 表示数学中的无穷大
注意:数学常数是精确数,可以直接用于输入的公式中,作
为精确数参与计算和公式推导。 1.2.2Mathematica数的运算符1.2.2Mathematica数的运算符 数的运算有:加、减、乘、除和乘方,它们在Mathematica中的符号为:加(+)、减(-)、乘(*)、除(/)和乘方(^) 。
不同类型的数参与运算,其结果的类型为:
如果运算数有复数,则计算结果为复数类型;
如果运算数没有复数,但有实数,则计算结果为实数类型
如果运算数没有复数和实数,但有分数,则计算结果为有理数类型
如果运算数只有整数,则计算结果或是整数类型(如果计算结果是整数);或是有理数类型(如果计算结果不是整数)。1.2.3Mathematica 中的精确数与近似数1.2.3Mathematica 中的精确数与近似数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] 结果为精确数null如果需要精确数的数值结果(除了整数之外),可以用Mathematica提供的N函数将其转化,N函数可以得到该精确数的任意精度的近似结果,其形式有两个:
例如:
In[6]: = 2*E+Sin[ Pi/5 ] // N
Out[6]= 6.02345
In[7]:= N[ 2*E+Sin[Pi/5] , 30 ]
Out[7]= 6.02434890921056359988928089734
1.2.4 Mathematica中的表 1.2.4 Mathematica中的表 表可以用来表示数学中的集合、向量、矩阵和数据库中的纪录。在Mathematica中,任何用一对花括号括起来的一组元素都代一个表,其中的元素用逗号分隔且各元素可以具有不同的类型,特别其中的元素还可以是一个表。
表的形式是: { 元素1,元素2,元素3,……,元素n }
如:{1,3,5}、{3,x,{1,y},4}都是表。null建表命令有如下几种形式:
命令形式1: Table[ 通项公式f(i),{i ,imin,imax,h}]
功能:产生一个表{ f(imin) ,f(imin +h),f(imin +2h), … ,f(imin +nh)}
其中: imax – h imin + nh imax , h>0
例如:建立一个表{12,32,……,192}
命令:In[8]: = Table[ i^2 , { i , 1, 19 , 2} ]
Out[8]= {1, 9, 25, 49, 81, 121, 169, 225, 289, 361}
命令形式2: Table[ 通项公式f(i),{i ,imin,imax}]
功能:产生一个表{ f(imin) ,f(imin +1),f(imin +2),…,f(imin +n)}
其中: imax – 1 imin + n imax
例如:建立一个表{22,……,102}
命令:In[9]: = Table[i^2, {i, 2 , 10}]
Out[9]={ 4, 9, 16, 25, 36, 49, 64, 81, 100}null命令形式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:
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)}
其中: imax – 1 imin + n imax , jmax – 1 jmin +m jmax
例如 :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}} null表的分量表示:有时为了某种需要,希望取出表中的某一或某些元素参与后面的运算和处理。常用表示表分量的命令有:
命令形式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
null命令形式2: 表[[{序号n 1, 序号n 2, 序号n 3,……,序号n m}]]
功能:取出由表中序号分别为n1, n2, n3,……,nm 的m个元素组成的一个表,其中序号n1, n2, n3,……,n m可以重复。
例如:取出由表{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: 表[[序号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]= 169null表的运算函数
Mathematica 表的运算函数有很多,这里介绍两个常用的函数:
例如:写出将表{1, 9, 49, 81, 225, 289, 361}中所有元素相加存放在变量x中、将表{1, 9, 49, 81, 225, 289, 361}中所有元素相乘存放在变量y中的Mathematica命令。
命令:In[17]: = t={1, 9, 49, 81, 225, 289, 361}
In[18]= x = Apply[Plus, t]
Out[18]=1015
In[19]= y = Apply[Times, t]
Out[19]=8385156470251.3 Mathematica 中的变量
1.3.1 Mathematica的变量命名1.3 Mathematica 中的变量
1.3.1 Mathematica的变量命名Mathematica的变量名规定为任何小写英文字母或以小写英文字母开头后跟若干字母或数字表示的字符串,如x,y,ae3,d3er45都是合法的变量名。
一般Mathematica的变量名不用小写字母。如果在某些情况下一定要用大写字母,应该注意不要与Mathematica中的数学常数和内部函数或命令的混淆。Mathematica中的变量名是区分大小写字母的,如在Mathematica中,ab与 Ab表示两个不同的变量。
变量名中的字符之间不能有空格,因为变量名中的空格在Mathematica中被理解为变量的乘积。如:abcd与ab cd有不同的含义,前者表示一个变量abcd, 而后者Mathematica会将其看成两个变量ab 和cd的乘积关系。 null变量名不能以数字开头的字符串来表示,如果在Mathematica里出现了这种字符串,Mathematica将其理解为数字与变量的乘积。例如: 以数字开头的字符串3asd,在Mathematica中表示3乘以变量asd 即3asd表示3*asd。
在Mathematica中变量使用前不必先定义变量类型。Mathematica变量的类型可以不断变化,取决于其中所存数据的类型;变量不但可以存放前面所提到的四种数据数,而且可以存放一个方程式、一个图形或更复杂的关系式。1.3.2 Mathematica中的变量取值与清除
如果一个变量在程序运行中没有被存储内容, 此时该变量名只是一般的数学符号参与程序的处理。如果变量被存储了内容, 称为变量取值。变量取值之后,该变量就用存入的内容参与程序的处理。在Mathematica中,变量获取值的方式有三种:变量赋值、键盘输入和变量替换。下面分别介绍这三种方式:null(1)变量赋值方式
变量赋值方式是变量取值的最常用的方式。Mathematica中变量赋值的一般形式为:
变量 = 表达式
这里“=”称为赋值号,表达式是广义的表达式,即它可以是数值和通常意义的数学表达式,还可以是一个方程或图形等。
例如:
In[20]: = x = 2+2
Out[20]= 4
In[21]:= x*x – x + 1
Out[21]= 13null(2)键盘输入方式
键盘输入方式是变量取值的另一种常用的方式,多用于需要在命令或程序的运行中由用户从键盘上临时键入的人机交互式变量取值。
Mathematica中键盘输入命令形式为:
变量= Input[ ]
当遇到上面的键盘输入命令后,计算机在屏幕上给出一个输入小窗口,等待用户在其中从键盘上键入一个表达式,键入完毕后,用鼠标点击“OK”按扭后,计算机将键入的表达式求值后,将结果存储在算等号左边的变量中。这里“=”是赋值号。
例如: In[22]: = x = Input[] *变量x等待键盘输入赋值 (见图)
Out[22]= 23 (*此时x从键盘上被赋值23)
In[23]:= x + 1
Out[23]= 24下一页null返回null(3)变量替换
变量替换类似于数学中的计算函数在某一点的函数值。
Mathematica中变量替换的一般形式为:
表达式 / . 变量名1 >表达式1
或
表达式 / . {变量名1 >表达式1, 变量名2 >表达式2,…}
这里符号“/.”是由键盘上的两个符号“/”和“.”组成的,中间不能有空格。同样,“>”也是由键盘上的两个符号“”和“>”组成的, 中间也不能有空格。
例如:
In[24]: = 2x+3y /. x -> 2.1
Out[24]= 4.2 + 3 y
In[25]:= 2x+3y /.{x -> 2.1, y ->1 + a}
Out[25]= 4.2 + 3 (1 + a)
null清除变量的含义是清除给变量所赋的值,它的命令形式为:
变量名=.
或
Clear[变量名1,变量名2,…]
清除变量后,变量名就还原成一般的数学符号了。
1.3.3 Mathematica中有关变量的注意事项
使用变量前先用清除命令清除其中的内容
Mathematica中的变量名还可以用作代数中的数学符号,在Mathematica的命令或程序中出现的任何合法的变量名符号,如果该变量名所代表的变量没有被赋值,则它就作为数学算式中的符号参与数学的公式推导和运算;如果该变量被赋值了,则用该变量所赋的值参与对应数学的公式推导和运算。因此,如果用户在做符号运算时使用的符号有被赋值的变量名,则就会出现察觉不到的错误。
null变量替换时变量本身还是数学符号,没有发生变量赋值的行为
如:
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-71.4 Mathematica 中的函数1.4 Mathematica 中的函数
Mathematica有很丰富的内部函数,它们是Mathematica系统自带的函数,函数名一般使用数学中的英文单词,只要输入相应的函数名,就可以方便地使用这些函数。内部函数既有数学中常用的函数,又有工程中用的特殊函数。如果用户想自己定义一个函数,Mathematica也提供了这种功能。Mathematica中的函数自变量应该用方括号 [ ] 括起,不能用圆括 ( ) 号括起,即一个数学中的函数f (x, y,…)应该写为f [x, y,…]才行。1.4.1 Mathematica中的内部函数1.4.1 Mathematica中的内部函数Mathematica的内部函数名字大部分是其英文单词的全名,如Random,Conjugate等。Mathematica内部函数的名字第一个字母一定要大写,其后的字母一般是小写的,不过如果该名字有几个含义,则函数名字中体现每个含义的第一个字母也要大写,如反正切函数arctanx中含有反“arc”和正切“tan”两个含义, 故它的Mathematica函数表示为ArcTan[x]。
下面列举一些常用的Mathematica内部函数:
(1)数值函数:
Abs[x] 表示x的绝对值|x|
Round[x] 表示最接近x的整数
Floor[x] 表示不大于x的最大整数
Ceiling[x] 表示不小于x的最大整数
Sign[x] 表示x的符号函数sgn(x)null
Exp[x] 表示以自然数为底的指数函数e x
Log[x] 表示以自然数为底的对数函数ln x
Log[a,x] 表示以数a为底的对数函数log a x
Sin[x], Cos[x] 表示正弦函数sin x, 余弦函数cos x
Tan[x], Cot[x] 表示正切函数tan x ,余切函数cot x
ArcSin[x], ArcCos[x] 表示反正弦函数arcsin x , 反余弦函数
arccos x
ArcTan[x], ArcCot[x] 表示反正切函数arctan x , 反余切函数
arccot x
Max[x1,x2,…,xn ] 表示取出实数x1,x2,…。,x n的最大值
Max[s] 表示取出表s中所有数的最大值
Min[x1,x2,…,xn ] 表示取出实数x1,x2,…。,x n的最小值
Min[s] 表示取出表s中所有数的最小值
null
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 的平方根函数
null举例说明:
In[31]: = Abs[ -4]
Out[31]= 4
In[32]: = Round[1.1]
Out[32]= 1
In[33]: = Round[1.9]
Out[33]= 2
In[34]: = Floor[2.1]
Out[34]= 2
In[35]: = Ceiling [2.1]
Out[35]= 3
In[36]: = Sign[22]
Out[36]= 1
In[37]: = Sign[-2222]
Out[37]= -1null举例说明:
In[31]: = Exp[5]
Out[31]= e5
In[32]: = Log[1]
Out[32]= 0
In[33]: = Log[10,100]
Out[33]= 2
In[34]: = Sin[0]
Out[34]= 0
In[35]: = Cos[0]
Out[35]= 1
In[36]= Tan[Pi]
Out[36]= 0
In[37]= Cot[Pi/2]
Out[37]= 0
In[38]= ArcSin [1]
Out[38]= Pi/2
In[39]= ArcTan [1]
Out[39]= Pi/4null举例说明:
In[31]: = Max[9, 5, -4, 3.1]
Out[31]= 9
In[32]: = Min[9, 5, -4, 3.1]
Out[32]= -4
在9, 5, -4, 3.1这四个数中,最大的是9,最小的是-4
In[33]: = Max[{2, 5, -4,{-3.1, 8}, 3]
Out[33]= 8
In[34]: = Mod[26, 3]
Out[34]= 2
In[35]: = Quotient[26, 3]
Out[35]= 8
26除以3,得8,余数为2,Mod和Quotient功能不同
In[36]=Re[3+4i]
Out[36]= 3
求3+4i的实部,求虚部用Im
In[37]= Sqrt[4]
Out[37]= 2
null练习:
1 用mathematica数学软件计算下列各式值
(1)1238+e2.3×log23÷cos21o
(2)tan(-x2)arccosx,在x=0.25和x=0.78x的
函数值
2 假设有一种传染病,任何人得病后,在传
染期内不会四无,且最初有m人患病,每个人
年平均传染率为k,治愈率为i,若一年内等
时间间隔检测n次,则一年后患病人数为?
若检测次数无限次数增加,一年后传染病人数
会无限增加吗?
null(2) 随机函数:null举例:
(i)产生小于等于5的一个非负随机实数。
命令: In[39]: = Random[Real, 5] Out[39]= 4.72088
(ii)产生闭区间[0,1]内的6个随机实数的一个表。
命令: In[40]: = Table[Random[],{6}]
Out[40]= {0.836874, 0.347154, 0.150818, 0.373472, 0.689255, 0.546614}
(iii)产生闭区间[-2,10]内的5个随机实数的一个表。
命令: In[41]: = Table[Random[Real,{-2,10}],{5}]
Out[41]= {8.873, -0.643032, 2.00279, 4.83199, 4.47409}
(iv)产生1到8之间的10个随机整数的一个表。
命令: In[42]: = Table[ Random[Integer, {1,8}], {10} ]
Out[42]= {3, 8, 1, 5, 4, 5, 6, 8, 6, 5}
(v)产生单位正方形内的5个随机复数的一个表。
命令: In[43]: = Table[Random[Complex]], {5}]
Out[43]= {0.537111+0.917944I, 0.944971+ 0.283356I, 0.289054 + 0.937503I}null1.4.2 Mathematica中的自定义函数
Mathematica自定义函数的一般命令为:
函数名[自变量名1_, 自变量名2_ ,]:= 表达式
这里函数名与变量名的规定相同,方括号中的每个自变量名后都要有一个下划线“_”,中部的定义号“: =”的两个符号是一个整体,中间不能有空格。
常用的自定义函数命令有:
定义一个一元函数
函数名[自变量名_]:= 表达式
例如 : 定义一个函数 y=asin x+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]null自定义函数的几点注意事项:
自定义函数名的第一个字母不能大写以利于区别内部函数。
键入自定义函数并按下Shift+Enter键后,Mathematica不在计算机屏幕显示输出结果Out[n],只是记住该自定义函数的函数名和对应的表达式,以利于后面的函数求值和运算使用。
如果自定义函数不再使用,应该及时清除该自定义函数以释放由自定义函数占用的内存空间,清除自定义函数的命令与清除变量的命令相同,即清除自定义函数的命令为: Clear[自定义函数名] null举例:
写出从集合x={1,2,3,4,5,6,7,8,9,0}中等概率取出n个元素的自定义函数(可以重复抽取)。
解:Mathematica命令:
In[46]: = drawout[x_, n_]:=x[[ Table[ Random[ Integer, {1,Length[x]} ] , {n}] ]]
In[47]: =x={1,2,3,4,5,6,7,8,9,0};
In[48]: = drawout[x, 5] (*随机取出5个元素)
Out[48]= {0, 3, 3, 5, 9}
In[49]: = drawout[x, 12] (*随机取出12个元素)
Out[49]= {1, 2, 5, 7, 9, 4, 8, 4, 1, 4, 0, 6}
--------------------------------------------------------------------------------------------------------
本题自定义函数drawout[x_, n_]是由
(i)Random[ Integer, {1,Length[x]} ]
(ii) Table[ Random[ Integer, {1,Length[x]} ] , {n}]
(iii) x[[表]]
三个函数的复合构成的。1.4.3Mathematica中的函数求值1.4.3Mathematica中的函数求值表示函数在某一点的函数值有两种方式:一种是数学方式,即直接在函数中把自变量用一个值或式子代替,如Sin[2.3],Sqrt[a+1],z1[3, 5]等;另一种为变量替换的方式:
函数 / . 变量名 >数值或表达式
或
函数 /. {变量名1 >数值1或表达式1, 变量名2 >数值2或表达式2,…}
例如:
In[46]: = fn[x_]:=x*Cos[x]+Sqrt[x]
In[47]: = fn[2] Out[47]:= Sqrt[2] + 2 Cos[2]
In[48]: = fn[x] /. x-> 8 Out[48] = 2 Sqrt[2] + 8 Cos[8]
In[49]: = fn[x] /. x-> a+1
Out[49] = Sqrt[1 + a] + (1 + a) Cos[1 + a]
In[50]: = fn[x_,y_]:=x^3+y^2
In[51]: = fn[2, a] Out[51]:= 8 + a2
In[52]:= fn[x,y] /. {x-> a, y->b+2} Out[52]= a3 + (2 + b) 21.4.4纯函数1.4.4纯函数
纯函数命令形式如下:
Function[变量或变量表, 表达式]
注意:Function仅表示纯函数的记号,它的缩写形式“ [变量或变量表,表达式]& ”使行文更简洁。纯函数用&分隔函数定义和调用的(实在)函数, &后放调用的参数. 当函数中只有一个变量时,用#表示变量,否则用 #1,#2,…分别表示第一个变量和第二个变量等。null举例:
In[56]:= Function[x, Cos[x]^2-Sin[x]]
Out[56]= Function[x, Cos[x]2 - Sin[x]] (函数已建立)
In[57]:= %[3] (*计算x=3时的函数值f(3)
Out[57]= Cos[3]^2 - Sin[3] (*输出函数值Cos[3]^2 - Sin[3])
In[58]:= s = Function[{x, y}, x - y]
Out[58]= Function[{x, y}, x - y]
In[59]:=s[19, 10]
Out[59]=9
In[60]:=(# + 1)&[x]
Out[60]:=1+x
In[61]:= (#1 - #2)&[a, b]
Out[61]= a - b
In[62]:= #1^#2&[2,3]
Out[62]:=8 1.5 Mathematica中的表达式 1.5 Mathematica中的表达式 数学中常用的表达式有算术表达式、关系表达式和逻辑表达式。
1.5.1 Mathematica中的算术表达式
在Mathematica中,算术表达式是由算术运算符(加(+)、减(-)、乘(*)、除(/)和乘方(^))连接常数、变量、函数构成的一个式子。如:57、Sqrt[x]、2+3.2、3*x-Exp[y]、(Sin[Pi/3]^4-1)*x+1、(a+1)/(3-a)-(b-1)/a等都是算术表达式。
符号%、%%、%n在Mathematica 中分别表示最后一次、次后一次和第n次的输出结果,。
算术表达式的运算顺序是括号优先、同级运算遵守从左到右的先后顺序运算、算符运算顺序的优先级按(由高到低):
函数计算乘幂乘除加减
1.5.2 Mathematica中的关系表达式
1.5.2 Mathematica中的关系表达式关系表达式也称为算术关系表达式,常用来比较两个算术表达式值的大小。在Mathematica中,关系表达式的一般形式为:
<算术表达式><关系运算符><算术表达式>
Mathematica的关系运算符有六种,它们的表示和含义如下: null注意:
由两个符号构成的关系运算符 = =、!=、>=、<=中间不能有空格或其他符号。
关系表达式的计算顺序为:先分别计算两个算术表达式的值,再比较它们的值。
关系表达式的计算结果是三个逻辑值True (真)、False(假)和非真非假,取值的规则为:当关系表达式成立时,取值为True;当关系表达式不成立时,取值为False;当关系表达式不能确定时,将关系表达式原样输出,表示取值为非真非假。
关系表达式中关系运算符的计算优先级别低于算术运算符。1.5.3 Mathematica中的逻辑表达式1.5.3 Mathematica中的逻辑表达式关系表达式只能表示一个条件,如果考虑的问题涉及到多个条件的组合,用逻辑表达式最方便。关系表达式的形式有:
<关系表达式><逻辑运算符><关系表达式>
或
<逻辑运算符><关系表达式>
或
<关系表达式><逻辑运算符1><关系表达式><逻辑运算符2>…<关系表达式>
常用的Mathematica的逻辑运算符有三种 :
null
逻辑表达式常用来表示数学条件,特别在描述变量的范围时比关系表达式更为简洁和方便,如
x(a,b] 逻辑表达式为 x>a&&x<=b
x(a,b] 逻辑表达式为 x<=a||x>b
2
2&&x<4)||(y>=1&&y<3)1.5.4 Mathematica中的复合表达式 1.5.4 Mathematica中的复合表达式 在Mathematica中,一个用分号隔开的表达式序列称为一个复合表达式,它也称为一个过程。 运行Mathematica中的一个复合表达式就是依次执行过程中的每个表达式,且过程中最后一个表达式的值作为该复合表达式的值,
例如:
In[63]:=t=1;u=t + 4;Sin[u]
Out[63]=Sin[5] (显示Sin[u]的值)下一页1.6 Mathematica 中的一些符号和语句
1.6.1 Mathematica中的专用符1.6 Mathematica 中的一些符号和语句
1.6.1 Mathematica中的专用符(1)输出结果替代符:%,%%,%n(1)输出结果替代符:%,%%,%n
例1. 求2的平方根(默认精度)、求10位精度、最后检验在计算过程中是否存在较大的误差。
解:
In[1]:=Sqrt[2] Out[1]:=Sqrt[2]
In[2]:=N[%] Out[2]:=1.41421
In[3]:=N[ %% , 10] Out[3]:=1.414213562
In[4]:=(%1)^2 Out[4]:=2
In[5]:=(%2)^2 Out[5]:=2.
输出: Out[4]:=2和Out[5]:=2. 说明本题计算不存在较大误差。null(2 )查看帮助符号?、??的使用
例2. 查看函数N[ ] 的大致用法和详细用法
Mathematica命令:
输入: In[6]:=? N
输入:In[7]:=??N
例3 查看以Exp开头的所有内建函数名及Expand函数的详细用法
Mathematica命令:
In[8]:= ?Exp*
In[9]:=?? Expand null(3)表达式运算符“;”的使用
说明:如果表达式末尾无“;” ,则显示该表达式的结果,否则不显示该表达式的结果。
例4
In[10]:= 3+5 Out[10]:= 8
In[11]:=3+5;
In[12]:= % Out[12]:= 6
(4)替换符号“->”的使用
例5 符号->作为函数参数指针
命令:
In[13]:=:Plot3D[Sin[x y], {x,0,4}, {y,0,4}, PlotPoints->40, Mesh->False,
FaceGrids->All,AxesLabel->{"Length","Width","Height"}];
例6 符号->作为方程结果指针
In[14]:= Solve[x^2 + 2 b x + c == 0, x]
Out[14]= {{x -> -b - Sqrt[b^2 - c]}, {x -> -b + Sqrt[b^2 - c]}} 1.6.2 Mathematica中四种括号的使用
Mathematica中常用的括号有四种,分别为:( )、[ ] 、{ }、[[ ]] 1.6.2 Mathematica中四种括号的使用
Mathematica中常用的括号有四种,分别为:( )、[ ] 、{ }、[[ ]] (1) 方括号 [ ]
说明:Mathematica中的内部函数以及用户自定义函数的自变量和参数,只能由方括号 [ ] 括起来。
例如:观察下面的函数值计算中,把方括号改为圆括号后会出现什么情况?
In[15]:= Sin[Pi/2] Out[15]=1
In[16]:= Sin(Pi/2)
Syntax::bktwrn:
Warning: "Sin(Pi/2)" should probably be "Sin[Pi/2]".
(2) 圆括号 ( )
圆括号主要用于改变表达式的优先运算顺序。用圆括号还可以把n个表达式定义为一个表达式,然后就可以对这n个表达式做批处理。例如:
In[21]:= com=(x=3;y=2;z=x^y)
Out[21]= 9
In[22]:= com^x
Out[22]= 729null(3)花括号{ }
说明:花括号表示一个表(lists), 它一般用作范围、界限、集合等之中。
例如:用花括号表示出一个向量和一个矩阵。
In[17]:= a={1,3,5,7,9,11}
Out[17]= {1, 3, 5, 7, 9, 11}
In[18]:= m={{1,2,3},{4,5,6},{7,8,9}};
In[ 19]:= MatrixForm[m]
Out[19]//MatrixForm=
1 2 3
4 5 6
7 8 9
(4) 双方括号 [[ ]]
双方括号只用于表示表a的元素。
例:取出上例矩阵m的第2行第3列的元素。
In[20]:= m[[2]] [[3]]
Out[20]= 6
1.6.3 Mathematica中的屏幕输出语句1.6.3 Mathematica中的屏幕输出语句
命令形式: Print[表达式1,表达式2, ..., 表达式n ]
功能: 在屏幕某一行上依次输出表达式1,表达式2,... 表达式n的值, 表达式之间没有空隙 ,输入完毕后换行。
例如: In[23]:= Print["2+3=",2+3]
Out[23]= 2+3=5
In[24]:= Print["2+3=",2+3];
Out[24]= 2+3=5
In[25]:= x=13;y=4;Print[x,"+",y,"=",x+y];
Out[25]= 13+4=171.6.4 Mathematica的错误提示1.6.4 Mathematica的错误提示
例如:
用户要画出正弦函数sin x在[-2,2]的图形, 正确的命令为:
In[26]:=Plot[Sin[x], {x,-2, 2}]
但如果用户将{x,-2,2}输入为{-2,2},变为:
In[27]:=Plot [Sin[x], {-2, 2} ]
则执行结果出现红色英文说明的错误提示信息:
Plot::pllim:
Limit specification {-2, 2}
is not of the form {x, xmin, xmax}.
null Mathematica中的错误信息形式为:
标识符::错误名:
错误提示信息
其中标识符是与命令名有关的内容,用户可以较少关注,只要关注后面的错误提示信息一般就能找到出错原因。用户在使用Mathemati