Mathematica使用教程.docx
《Mathematica使用教程.docx》由会员分享,可在线阅读,更多相关《Mathematica使用教程.docx(17页珍藏版)》请在冰豆网上搜索。
![Mathematica使用教程.docx](https://file1.bdocx.com/fileroot1/2023-1/3/87eb1c10-9335-4516-a0ec-0b677be336ea/87eb1c10-9335-4516-a0ec-0b677be336ea1.gif)
Mathematica使用教程
Mathematica使用教程
、要点
Mathematica是一个敏感的软件.所有的Mathematica函数都以大写字母开头圆括号(),花括号{},方括号[]都有特殊用途,应特别注意;
句号“.”分号“;”,逗号“,”感叹号“!
”等都有特殊用途,应特别注意;用主键盘区的组合键Shfit+Enter或数字键盘中的Enter键执行命令.
二、介绍案例
1.输入与输出
例1计算1+1:
在打开的命令窗口中输入
1+2+3
并按组合键Shfit+Enter执行上述命令,则屏幕上将显示:
ln[1]:
=1+2+3
Out[1]=6
这里In[1]:
=表示第一个输入,0ut[1]=表示第一个输出,即计算结果.
2.数学常数
Pi表示圆周率;E表示无理数e;I表示虚数单位i;
Degree表示/180;Infinity表示无穷大.
注:
Pi,Degree,lnfinity的第一个字母必须大写,其后面的字母必须小写.
3.算术运算
和“A"分别表示算术运算中的加、减、乘、除和
Mathematica中用“+”、“-”、“*”、“/”乘方.
111
例2计算41001283-2
99
输入100A(1/4)*(1/9)%1/2)+8A(-1/3)*(4/9)A(1/2)*Pi
则输出3】10—
3
这是准确值.如果要求近似值,再输入
N[%]
则输出10.543
这里%表示上一次输出的结果,命令N[%]表示对上一次的结果取近似值.还用%%表示上上次输出的结果,用%6表示Out[6]的输出结果.
注:
关于乘号*,Mathematica常用空格来代替.例如,xyz则表示x*y*z,而xyz表示字符串,Mathematica将它理解为一个变量名.常数与字符之间的乘号或空格可以省略.
4.代数运算
例3分解因式x23x2
输入输出
Factor[xA2+3x+2]
(1x)(2x)
例4展开因式(1x)(2x)
输入输出
Expand[(1+x)(2+x)]
2
23xx2
例5通分丄
1
例7化简表达式(1x)(2x)(1x)(3x)
输入Simplify[(1+x)(2+x)+(1+x)(3+x)]
输出57x2x2
三、部分函数
1.内部函数
Mathematica系统内部定义了许多函数,并且常用英文全名作为函数名,所有函数名的第一个字母都必须大写,后面的字母必须小写.当函数名是由两个单词组成时,每个单词的第一个字母都必须大写,其余的字母必须小写.Mathematica函数(命令)的基本格式为
函数名[表达式,选项]
下面列举了一些常用函数:
指数函数ex
Exp[x]
对数函数logax
Log[a,x]
对数函数lnx
Log[x]
三角函数
Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x]
反三角函数
ArcSin[x],
ArcCos[x],ArcTan[x],
ArcCot[x],
AsrcSec[x],ArcCsc[x]
双曲函数
Sinh[x],
Cosh[x],Tanh[x],
反双曲函数
ArcSinh[x],
ArcCosh[x],ArcTanh[x]
四舍五入函数
Round[x]
(*取最接近x的整数*)
取整函数
Floor[x]
(*取不超过x的最大整数*)
取模
Mod[m,n]
(*求m/n的模*)
取绝对值函数
Abs[x]
n的阶乘
n!
符号函数
Sign[x]
取近似值
N[x,n]
(*取x的有n位有效数字的近似值
算术平方根.-XSqrt[x]
,当n缺省时,n的默认值
为6*)
例8求的有6位和20位有效数字的近似值
输入
N[Pi]
输出
3.14159
输入
N[Pi,20]
输出
3.1415926535897932285
注:
第一个输入语句也常用另一种形式
输入Pi//N
输出3.14159
例9计算函数值
输岀:
?
(1)输入Sin[Pi/3]
e2
一arctan(0.6)的值
232
输入1心+Log[2])*Sin[Pi/6]-Exp[-2]/(2+2A(2/3))*ArcTan[.6]
输出0.274921
2.自定义函数
在Mathematica系统内,由字母开头的字母数字串都可用作变量名,但要注意其中不能包含空
格或标点符号.
变量的赋值有两种方式.立即赋值运算符是“=”,延迟赋值运算符是“:
=”.定义函数使用
的符号是延迟赋值运算符“:
=”.
例11定义函数f(x)x3
2x21,并计算f
(2),f(4),f(6).
输入
Clear[f,x];
(*清除对变量f原先的赋值*)
f[x_]:
=xA3+2*xA2+1;
(*定义函数的表达式*)
f[2]
(*求f
(2)的值*)
f[x]/.{x->4}
(*求f(4)的值,另一种方法*)
x=6;
(*给变量x立即赋值6*)
f[x]
(*求f(6)的值,又一种方法*)
输出
17
97
289
注:
本例1、2、5行的结尾有
“;”,它表示这些语句的输岀结果不在屏幕上显示
四、解方程
在Mathematica系统内,方程中的等号用符号“==”表示.最基本的求解方程的命令为
Solve[eqns,vars]
它表示对系数按常规约定求出方程(组)的全部解,其中eqns表示方程(组),vars表示所求未知变量
例12解方程x23x20
输入Solve[xA2+3x+2==0,x]
输出{{x2},{x1}}
输入Solve[{ax+by==0,cx+dy==1},{x,y}]
输出
ba
x,y
bcadbcad
例14解无理方程,x1.x1a
输入Solve[Sqrt[x-1]+Sqrt[x+1]==a,x]
输出
a4
4a
很多方程是根本不能求出准确解的,此时应转而求其近似解.求方程的近似解的方法有两种一种是在方程组的系数中使用小数,这样所求的解即为方程的近似解;另一种是利用下列专门用于
求方程(组)数值解的命令:
NSolve[eqns,vars](*求代数方程(组)的全部数值解*)FindRoot[eqns,{x,x0},{y,y0},]
后一个命令表示从点(x0,y0,)出发找方程(组)的一个近似解,这时常常需要利用图像法先大致确定所求根的范围,是大致在什么点的附近.
例15求方程x310的近似解
输入NSolve[xT-仁=0,x]
输出{{x-0.5-0.866025ii},{x-0.5+0.866025ii},{x1.}}
输入FindRoot[xA3-仁=0,{x,.5}]
输出{x1.}
下面再介绍一个很有用的命令:
Eliminate[eqns,elims](*从一组等式中消去变量(组)elims*)
2x
2
y
z21
例16从方程组x2(y
1)2
(z1)21消去未知数y、z.
xy
1
输入
Eliminate[{xA2+yA2+zA2==1,xA2+(y-1)A2+(z-1)A2==1,x+y==1},{y,z}]
2
输出2x3x20
注:
上面这个输入语句为多行语句,它可以像上面例子中那样在行尾处有逗号的地方将行与行隔开,来迫使Mathematica从前一行继续到下一行在执行该语句.有时候多行语句的意义不太明确,通常发生在其中有一行本身就是可执行的语句的情形,此时可在该行尾放一个继续的记号“来迫使Mathematica继续到下一行再执行该语句.
五、保存与退出
Mathematica很容易保存Notebook中显示的内容,打开位于窗口第一行的File菜单,点击Save后得到保存文件时的对话框,按要求操作后即可把所要的内容存为*.nb文件.如果只想保存全部
输入的命令,而不想保存全部输出结果,则可以打开下拉式菜单Kernel,选中DeleteAllOutput,然后
再执行保存命令.而退出Mathematica与退出Word的操作是一样的.
六、查询与帮助查询某个函数(命令)的基本功能,键入“?
函数名”,想要了解更多一些,键入“?
?
函数名”,例如,输入
?
Plot
则输出
Plot[f,{x,xmin,xmax}]generatesaplotoffasafunctionofxfromxmintoxmax.Plot[{f1,f2,…},{x,xmin,xmax}]plotsseveralfunctionsfi它告诉了我们关于绘图命令“Plot”的基本使用方法.
例17在区间[1,1]上作出抛物线yx2的图形.
输入Plot[xA2,{x,-1,1}]
则输出
例18在区间[0,2]上作出ysinx与ycosx的图形.输入Plot[{Sin[x],Cos[x]},{x,0,2Pi}]
?
?
Plot
则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.
此外,Mathematica的Help菜单中提供了大量的帮助信息,其中Help菜单中的第一项Help
Browser(帮助游览器)是常用的查询工具,读者若想了解更多的使用信息,则应自己通过Help菜单去学习.
编辑本段Mathematica基本运算
a+
Mathematica
数学实验倆埠)
mathematica数学实验(第2版)
b+c加
a-b减
abc或a*b*c乘
a/b除
-a负号
aAb次方
Mathematica数字的形式
256整数
2.56实数
11/35分数
2+6I复数
常用的数学常数
Pi圆周率,n=3.141592654…
E尤拉常数,e=2.71828182…
Degree角度转换弧度的常数,Pi/180
I虚数,其值为"1
Infinity无限大
指定之前计算结果的方法
%前一个运算结果
%%前二个运算结果
%%•%(n个%)前n个运算结果
%n或Out[n]前n个运算结果
复数的运算指令
a+bl复数
Conjugate[a+bl]共轭复数
Re[z],Im[z]复数z的实数/虚数部分
Abs[z]复数z的大小或模数(Modulus)
Arg[z]复数z的幅角(Argument)
Mathematica输出的控制指令
expr1;expr2;expr3做数个运算,但只印出最後一个运算的结果
expr1;expr2;expr3;做数个运算,但都不印出结果
expr;做运算,但不印出结果
编辑本段常用数学函数
Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x]三角函数,其引数的单位为胫度
Sinh[x],Cosh[x],Tanh[x],…双曲函数
ArcSin[x],ArcCos[x],ArcTan[x]反三角函数
ArcCot[x],ArcSec[x],ArcCsc[x]
ArcSinh[x],ArcCosh[x],ArcTanh[x],…反双曲函数
Sqrt[x]根号
Exp[x]指数
Log[x]自然对数
Log[a,x]以a为底的对数
Abs[x]绝对值
Round[x]最接近x的整数
Floor凶小於或等於x的最大整数
Ceiling[x]大於或等於x的最小整数
Mod[a,b]a/b所得的馀数
n!
阶乘
Random[]0至1之间的随机数(最新版本已经不用这个函数,改为使用
RandomReal[])
Max[a,b,c,...],Min[a,b,c,…]a,b,c,的极大/极小值
编辑本段数之设定
x=a将变数x的值设为a
x=y=b将变数x和y的值均设为b
x=.或Clear[x]除去变数x所存的值
变数使用的一些法则
xy中间没有空格,视为变数xy
xyx乘上y
3x3乘上x
x3变数x3
xA2y为x^2y次方运算子比乘法的运算子有较高的处理顺序
编辑本段四个常用处理代数的指令
Expand[expr]将expr展开
Factor[expr]将expr因式分解
Simplify[expr]将expr化简成精简的式子
FullSimplify[expr]Mathematica会尝试更多的化简公式,将expr化成更精简的式
子
编辑本段多项式/分式转换的函数
ExpandAII[expr]把算是全部展开
Together[expr]将expr各项通分在并成一项
Apart[expr]把分式拆开成数项分式的和
Apart[expr,var]视var以外的变数为常数,将expr拆成数项的和
Cancel[expr]把分子和分母共同的因子消去编辑本段分母/分子的运算
Denominator[expr]取出expr的分母
Numerator[expr]取出expr的分子
ExpandDenominator[expr]展开expr的分母
ExpandNumerator[expr]展开expr的分子
编辑本段多项式的另二种转换函数
Collect[expr,x]将
如
Collect[expr,{x,y,FactorTerms[expr]如4x+2=2(2x+1)FactorTerms[expr,x]
FactorTerms[expr,{x,y,
expr表示成x的多项式,
…}]将expr分别表示成x,y,…的多项式
将expr的数值因子提出,
将expr中把所有不包含x项的因子提出
…}]将expr中把所有不包含{x,y,...}项的因子提出
TrigExpand[expr]TrigFactor[expr]TrigReduce[expr]ExpToTrig[expr]TrigToExp[expr]
编辑本段三角函数、双曲函数和指数的运算
将三角函数展开
将三角函数所组成的数学式因式分解
将相乘或次方的三角函数化成一次方的基本三角函数之组合
将指数函数化成三角函数或双曲函数
将三角函数或双曲函数化成指数函数
复数、次方乘积之展开
ComplexExpand[expr]假设所有的变数都是实数来对expr展开
ComplexExpand[expr,{x,y,…}]假设x,y,..等变数均为复数来对expr展开
PowerExpand[expr]将
多项式项次、系数与最高次方之取得
Coefficient[expr,form]於expr中form的系数
Exponent[expr,form]於expr中form的最高次方
Part[expr,n]或expr[[n]]在expr项中第n个项
代换运算子
expr/.x->value将expr里所有的x均代换成valueexpr/.{x->value1,y->value2,…}执行数个不同变数的代换expr/.{{x->value1},{x->value2},…}将expr代入不同的x值
expr//.{x->value1,y->value2,…}重复代换到expr不再改变为止解方程式的根
Solve[lhs==rhs,x]解方程式lhs==rhs,求x
Nsolve[lhs==rhs,x]解方程式lhs==rhs的数值解
Solve[{lhs1==rhs1,lhs2==rhs2,},{x,y,…}]解联立方程式,求x,y,
NSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}]解联立方程式的数值解FindRoot[lhs==rhs,{x,xO}]由初始点x0求lhs==rhs的根
Mathematica的四种括号
(term)圆括号,括号内的term先计算
f[x]方括号,内放函数的引数
{x,y,z}大括号或串列括号,内放串列的元素
p[[i]]或Part[p,i]双方括号,p的第i项元素
p[[i,j]]或Part[p,i,j]p的第i项第j个元素
缩短Mathematica输岀的指令
expr//Short显示一行的计算结果
Short[expr,n]显示n行的计算结果
Command;执行command,但不列出结果
查询Mathematica的物件
?
Command查询Command的语法及说明
?
?
Command查询Command的语法和属性及选择项
?
Aaaa*查询所有开头为Aaaa的物件
函数的定义、查询与清除
f[x_]=expr立即定义函数f[x]
f[x_]:
=expr延迟定义函数f[x]
f[x_,y_,…]函数f有两个以上的引数
?
f查询函数f的定义
Clear[f]或f=.清除f的定义
Remove[f]将f自系统中清除掉
含有预设值的Pattern
a_+b_.b的预设值为0,即若b从缺,则b以0代替
x_y_y的预设值为1
x_Ay_y的预设值为1
条件式的自订函数
lhs:
=rhs/;condition当condition成立时,Ihs才会定义成rhs
If指令
lf[test,then,else]若test为真,则回应then,否则回应else
unknow
的函数
lf[test,then,else,unknow]同上,若test无法判定真或假时,则回应极限
Limit[expr,x->c]当x趋近c时,求expr的极限
Limit[expr,x->c,Direction->1]
Limit[expr,x->c,Direction->-1]微分
D[f,x]函数f对x作微分
D[f,x1,x2,…]函数f对x1,x2,…作微分
D[f,{x,n}]函数f对x微分n次
D[f,x,NonConstants->{y,z,•••}]函数f对x作微分,将y,z,••视为
全微分
Dt[f]全微分df
Dt[f,x]全微分
Dt[f,x1,x2,…]全微分
Dt[f,x,Constants->{c1,c2,•••}]全微分,视c1,c2,…为常数
不定积分
Integrate[f,x]不定积分/fdx
定积分
Integrate[f,{x,xmin,xmax}]定积分
Integrate[f,{x,xmin,xmax},{y,ymin,ymax}]定积分
数
列之和与积
Sum[f,{i,imin,imax}]求和
Sum[f,{i,imin,imax,di}]求数列和,弓I数i以di递增
Sum[f,{i,imin,imax},{j,jmin,jmax}]
Product[f,{i,imin,imax}]求积
Product[f,{i,imin,imax,di}]求数列之积,引数i以di递增
Product[f,{i,imin,imax},{j,jmin,jmax}]函数之泰勒展开式
Series[expr,{x,xO,n}]对expr於x0点作泰勒级数展开至(x-xO)n项
Series[expr,{x,xO,m},{y,yO,n}]对x0和y0展开
关系运算子
a==b等於
a>b大於
a>=b大於等於
a
a<=b小於等於
a!
=b不等於
逻辑运算子
!
pnot
pllqll…or
p&&q&&・and
Xor[p,q,…]exclusiveor
LogicalExpand[expr]将逻辑表示式展开
基本二维绘图指令
Plot[f,{x,xmin,xmax}]
画出f在xmin到xmax之间的图形
Plot[{f1,f2,},{x,xmin,xmax}]
同时画出数个函数图形
Plot[f,{x,xmin,xmax},option->value]
指定特殊的绘图选项,画出函数f的图形
Plot[]几种常用选项的指令
选项预设值说明
AspectRatio1/GoldenRatio图形高和宽之比例,高/宽
AxesTrue是否把坐标轴画出
AxesLabelAutomatic为坐标轴贴上标记,若设定为
AxesLabel->{?
ylabel?
},则为y轴之标记。
若设定为AxesLabel->{?
xlabel?
?
ylabel?
}
,则为{x轴,y轴}的标记
AxesOriginAutomatic坐标轴的相交的点
DefaultFont$DefaultFont图形里文字的预设字型
FrameFalse是否将图形加上外框
FrameLabelFalse从x轴下方依顺时针方向加上图形外框的标记
FrameTicksAutomatic(如果Frame设为True)为外框加上刻度;
None则不加刻度
GridLinesNone设Automatic则於主要刻度上加上网格线
PlotLabelNone整张图之图名
PlotRangeAutomatic指定y方向画图的范围
TicksAutomati坐标轴之刻度,设None则没有刻度记号出现
※厂Automatic、None、True、False」为Mathmatica常用的选项设定,其代表意义分别为「使用内部设定、不包含此项、作此项目、不作此项目」。
串列绘图
ListPlot[{y1,y2,…}]画出{1,y1},{2,y2},…的点
ListPlot[{{x1,y1},{x2,y2},…}]画出{x1,y1},{x2,y2},…的点
ListPlot[{{x1,y1},{x2,y2},•••},PlotJoined->True]把画出来的点用线段连接
绘图颜色的指定
Plot[{f1,f2,},{x,xmin,xmax},
PlotStyle->{RGBColor[r1,g1,b1],RGBColor[r2,g2,b2],…}]
彩色绘图
Plot[{f1,f2,},{x,xmin,xmax},
PlotStyle->{GrayLevel,GrayLevel[j],…}]
灰阶绘图
图形处理指令
Show[plot]重画一个