三、Mathematica的表
表是Mathematica系统中一种重要的数据类型,在Mathematica中它可以表示数组,和矩阵等。表的构造方式极为简单,直接将一些表达式用一对大括号{ }括起来就可以了,表达式之间用逗号分隔开。构成表的各个表达式称为表的元素。没有任何元素的表称为空表。表的元素可以是任意的表达式,也可以是表。
Mathematica的数学函数可以直接作用在表上,这时系统将函数分别作用在表的每一个元素上,得到的结果再作成一个表。与表有关的函数有
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
2.Table[ 通项公式f(i),{i ,imin,imax}]
产生一个表{ f(imin) ,f(imin +1),f(imin +2),……,f(imin +n)}
imax – 1 £ imin + n £ imax
3.Table[ 通项公式f,{循环次数n}], f为常数
产生n个f的一个表{ f ,f,f,……,f }
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
5.表[ [ 序号n ] ] 取出表中序号为n的元素
6.表[[{序号n 1, 序号n 2, 序号n 3,……,序号n m}]]
取出由表中序号分别为n1, n2,…,nm 的m个元素组成的一个表,其中n1,n2,…,n m 可以重复。
7. 表[[序号n1,序号n2]]
取出表中序号为n1 元素(该元素必须是一个表)的序号为 n2的元素。
8. Length[表] 求表的长度
9. Prepend[表,elem] 在表的第一个位置插入元素elem
10. Append[表, elem] 在表的最后位置插入元素elem
四、程序设计语句
1.If [条件, 语句1]
功能:如果条件成立,则执行对应的语句1,并将语句执行结果作为If语句的值,如果条件不成立,不执行语句1。
2.If [条件, 语句1, 语句2]
功能:根据条件的成立与否确定执行哪一个语句,具体执行为:条件成立时,执行语句1,否则,执行语句2,并将语句执行结果作为If语句的值。
3.If [条件, 语句1, 语句2, 语句3]
功能:根据条件的成立与否确定执行哪一个语句, 具体执行为:条件成立时,执行语句1,条件不成立时,执行语句2,否则,执行语句3, 并将语句执行结果作为If语句的值。
4.Which[条件1,语句1,条件2,语句2, ... ,条件n,语句n]
功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件为条件k,则执行对应的语句k。
5.Which[条件1,语句1,条件2,语句2, ... ,条件n,语句n,True,"字符串"]
功能:由条件1开始按顺序依次判断相应的条件是否成立,若第一个成立的条件为条件k,则执行对应的语句k,若直到条件n都不成立时,则返回符号字符串。
6.Switch[表达式, 模式1,语句1,模式2,语句2, ... 模式n,语句n ]
功能: 先计算表达式,然后按模式1,模式2,…,的顺序依次比较与表达式结果相同的模式,找到的第一个相同的模式,则将此模式对应的语句计算计算结果作为 Switch语句的结果。Switch语句是根据表达式的执行结果来选择对应的执行语句,它类似于一般计算机语言的Case语句。
7.Do[expr, {n}]
功能:循环执行n次表达式expr 。
8.Do[expr, {i, imin, imax}]
功能:按循环变量i 为imin,imin+1,imin+2,…,imax循环执行imax-imin+1次表达式expr。
9.Do[expr, {i, imin, imax,d}]
功能:按循环变量i 为imin,imin+d,imin+2d,…,imin+nd,循环执行(imax-imin)/d +1次表达式expr。
10.Do[expr, {i, imin, imax}, {j, jmin, jmax}]
功能:对循环变量i为imin,imin+1,imin+2,…,imax每个值, 再按循环变量j的循环执行表达式expr。这是通常所说的二重循环命令,类似的,可以用在Do命令中再加循环范围的方法得到多重循环命令。
11.For[stat,test,incr,body]
功能:以stat为初值,重复计算incr和body直到test为False终止 。这里start为初始值,test为条件,incr为循环变量修正式,body为循环体,通常由incr项控制test的变化。
12.While[test,body]
功能:当test为True时,计算body,重复对test的判断和body的计算,直到test不为True时终止。这里test为条件, body为循环体,通常由body控制test值的变化。如果test不为True,则循环体不做任何工作
13.Return[expr] 退出函数所有过程和循环,返回expr值
14. Break[] 结束本层循环
15. Continue[ ] 转向本层For语句或While语句的下一次循环
此外,在Mathematica的循环结构中,使用如下表示式,可以达到简洁,快速的目的.
k++ 表示赋值关系 k = k+1 , 如: k=1;Table[++k,{5}]获得表{2,3,4,5,6}
++k 表示先处理k的值,再做 k=k+1, 如: k=1;Table[k++,{5}]获得表{1,2,3,4,5}
k-- 表示赋值关系 k = k-1, 如: k=1;Table[k--,{5}]获得表{1, 0, -1, -2, -3}
--k 表示先处理k的值,再做 k=k-1,如:k=1;Table[--k,{5}]获得表{0,-1,-2,-3,-4}
{x,y}={y,x} 表示交换x与y 值
x+=k 表示 x = x + k
x*=k 表示 x = x * k
五、常用的绘图选项参数名称、含义、取值
绘图命令中的选择项参数的形式为
选项(option)参数名称 -> 参数值(value)
其中中间的符号 "->" 由键盘上的减号 "-" 和大于号 ">" 组成, 中间不能有空格。用户通过对选项参数的选取和相应的参数取值, 可以得到函数图形的不同显示形式。一般情况下, Mathematica 为每个绘图命令的选项参数都设置了默认值。选项参数中有些参数可以同时用于平面图形和空间图形, 但参数取值或默认值有所不同。一些常用的绘图选项列举如下:
1. 选项参数名称: AspectRatio
含义: 图形的高度与宽度比
参数取值: 该参数的取值为任何正数和Automatic。作为平面图形输参数值时, 该选项参数的默认值为1/GoldenRatio, 这里GoldenRatio是数学常数0.618; 作为空间图形参数值时,该选项参数的默认值为Automatic。AspectRatio 取Automatic值时, 表示图形按实际比例显示。
例: AspectRatio->Automaic, 表示显示的图形高度与宽度比由Mathematica 的内部算法根据函数图形的大小确定; AspectRatio->1, 表示显示的图形高度与宽度比是1:1。
2. 选项参数名称: Axes
含义: 图形是否有坐标轴
参数取值: 该参数的取值为True和None。该选项参数的默认值为True
例:Axes-> True, 表示显示的图形有坐标轴;
Axes-> None, 表示显示的图形没有坐标轴。
3. 选项参数名称: AxesLabel
含义: 是否设置图形坐标轴标记
参数取值: 该参数的默认值为None;作为平面图形输出参数时, 该选项参数取值为 {"字符串1" , "字符串2"}, 表示将“字符串1”设置为横坐标轴标记,“字符串2”设置为纵坐标轴标记; 作为空间图形输出参数时, 该选项参数取值为{"字符串1" , "字符串2" , "字符串3"}, 表示将“字符串1”设置为横坐标标记,“字符串2”设置为纵坐标标记,“字符串3”设置为竖坐标标记。
例:AxesLabel-> None, 表示显示的图形坐标轴没有标记;
AxesLabel->{"time" , "speed"}, 表示平面图形的横坐标轴标记显示为time 纵坐标轴标记显示为speed;
AxesLabel->{"时间","速度","高度"}, 表示空间图形的横坐标轴标记设置为时间, 纵坐标轴标记设置为速度, 竖坐标轴标记设置为高度。
4. 选项参数名称: Frame
含义:平面图形是否加框
参数取值: 该参数的取值为True和False。 该选项参数只用于平面图形,其默认值为False
例: Frame-> True, 表示显示的图形有框;Frame-> False, 表示显示的图形没有框。
5. 选项参数名称: FrameLabel
含义:平面图形框的周围是否加标记
参数取值: 该参数的取值为None和{xb, yl, xt, yr}。 该选项参数只用于平面图形且在Frame->True时才有效,其默认值为None。
例: FrameLabel->{a,b,c,d},
表示显示的图形框的四个边的标记由底边起按顺时针方向依次为a, b, c, d;
FrameLabel-> None, 表示显示的图形框周围没有标记。
6. 选项参数名称: PlotLabel
含义: 是否设置图形名称标记
参数取值: 该参数取值为"字符串"和None, 默认值为None。
例: PlotLabel-> None, 表示没有图形名称标记,
PlotLabel->"Bessel",使显示的图形上标出符号Bessel作为该函数图形名称。
7. 选项参数名称: PlotRange
含义: 设置图形的范围
参数取值: 该参数的默认值为Automatic, 作为平面图形输出参数时, 该选项参数还有两个取值, 分别为{y1,y2}和{{x1,x2},{y1,y2}}, 第一个取值表示画出函数值在y1 和y2之间的图形,第二个取值表示画出自变量在在x1 和x2且函数值在y1 和y2之间的图形; 作为空间图形输出参数时,该选项参数也还有两个取值,分别为{z1,z2}和{{x1,x2},{y1,y2},{z1,z2}}, 第一个取值表示画出二元函数值在z1 和z2之间的图形,第二个取值表示画出第一个自变量在x1 和x2, 第二个自变量在y1 和y2, 且函数值在z1 和z2之间的曲面图形。
例: PlotRange->Automatic,
表示用Mathematica 内部算法显示的图形,该算法可以按要求尽量显示图形。
PlotRange ->{1,8},
表示只显示函数值在1 和8之间的平面曲线图形或空间曲面图形;
PlotRange ->{{2,5},{1,8}},
表示只显示自变量在2和5之间且函数值在1 和8之间的平面曲线图形;
PlotRange ->{{2,5},{1,8},{-2,5}}
显示第一个自变量在[2,5]、第二个自变量在[1,8]且函数值在[-2,5]之间的曲面图形。
8. 选项参数名称: PlotStyle
含义: 设置所绘曲线或点图的颜色、曲线粗细或点的大小及曲线的虚实等显示样式
参数取值: 与曲线样式函数的取值对应。
曲线样式函数有:
RGBColor[r, g, b] 颜色描述函数,自变量r, g, b的取值范围为闭区间[0,1],其中r, g, b分别对应红(red)、绿(green)、蓝(blue)三种颜色的强度,它们取值的不同组合产生不同的色彩。
Thickness[t] 曲线粗细描述函数,自变量t的取值范围为闭区间[0,1],t的取值描述曲线粗细所占整个图形百分比,通常取值小于0.1。二维图形的粗细默认值为Thickness[0.004],三维图形的粗细默认值为 Thickness[0.001]。
GrayLevel[t] 曲线灰度描述函数,自变量t的取值范围为闭区间[0,1],t取0值为白色,t取1值为黑色。
PointSize[r] 点的大小描述函数,自变量r表示点的半径,它的取值范围为闭区间[0,1], 该函数的取值描述点的大小所占整个图形百分比,通常r取值小于0.01。二维点图形的默认值为PointSize[0.008],三维点图形的粗细默认值为PointSize[0.01]。
Dashing[{d1,d2,…dn}] 虚线图形描述函数, 虚线图周期地使用序列值{d1,d2, …, dn}
在对应的曲线上采取依次交替画长d1实线段, 擦除长d2实线段,再画长d3实线段, 擦除长d4实线段, …, 的方式画出虚线图。
注意:选项参数 PlotStyle有两种取值方式:
PlotStyle ->s 为所有曲线设置一种线形;
PlotStyle ->{{s1},{s2},…,{sn}} 为一组曲线依次分别设置线形s1、线形s2、…, 线形sn
这里s, s1, s2,…, sn 都是如上提到的一种或多种曲线样式函数值, 如:
PlotStyle -> RGBColor[0,1,0] 设置了输出曲线是绿色;
PlotStyle->{{RGBColor[1,0,0],Thickness[0.05]} , {RGBColor[0,0,1]}}
设置了第一个输出曲线是红色且线宽为0.05,第二个输出曲线为蓝色。
[ 本帖最后由 suffer 于 2006-9-18 08:27 编辑 ] |