Mathematica数学软件.docx
《Mathematica数学软件.docx》由会员分享,可在线阅读,更多相关《Mathematica数学软件.docx(25页珍藏版)》请在冰豆网上搜索。
![Mathematica数学软件.docx](https://file1.bdocx.com/fileroot1/2023-2/8/e9c6c16d-ad3b-43aa-ab47-ef2f501da7a3/e9c6c16d-ad3b-43aa-ab47-ef2f501da7a31.gif)
Mathematica数学软件
Mathematica数学软件
一Mathematica的功能
1》1》 多项式的计算,因式分解及展开;
例如合并同类项3x+4y+6y
因式分解1+2x+x2
2》2》 进行各种有理式计算;
例如计算值32+18/(1+9)
3》3》 求多项式,有理式方程和超越方程的精确解和近似解;
例如求根9x4+x2+23=0
4》4》 数值的,一般代数式的,向量与矩阵的各种计算;
例如求
的逆矩阵,行列式的值,秩。
5》5》 求极限,导数,积分;
6》6》 进行幂级数展开及求解微分方程。
二与C语言,Fortran语言相比其特有的特征
1》1》 可以做任意位数的整数或分子,分母为任意大的整数的有理数的精确计算,进行具有任意位精度的数值计算
例如1)1999999*9999
2)求Pi的小数位精确到100位
2》2》 能非常方便地画出一元和二元函数的图象从而可立即形象的把握函数的某些特征
例如画sinx在[-2
2
]的图象
只要输入Plot[Sin[x],{x,-2Pi,2Pi}]
3》3》 也能进行编程
三工作环境
1》1》 进入方式一种直接点击桌面的图标,另一种从开始菜单的程序进入;
2》2》 退出一种为直接关闭,另一种从File菜单退出;
3》3》 运行Enter+Shift;
4》4》 界面为Windows界面,
并且在工作区能自动生成输入语句标记In[1]:
=,输出语句Out[1]:
=
四算术运算
1》常数:
表示为Pi
e=2.718…E
Degree
Intinity或
2》运算符加减乘除乘方
+-*/^
说明:
乘也可用空格或当数字与字母相乘时可省
3》运算规则与数学中数的运算规则相同
4》运算次序的改变仅用()号
5》5》 运算的结果
不带小数点的运算,最后能得到精确值
例输入:
4/10输出:
含浮点数的运算,最后以小数形式给出
例计算
的值。
输入:
-2^2*(3*(5/9)^0)^-1*(81^-0.0。
25+(3+3/8)^(1/3))^(1/2)
五数的近似值
N[a]表示求数a的近似值,有效位取6位或a//N
例如输入:
N[1/3]输出:
0.333333
例如输入:
N[(1/2)^2+5/6*7+9]
N[a,n]表示求数a的近似值,有效位取n位
例如输入:
N[4/3,8]输出:
1.3333333
六代数式与代数运算
1》1》 赋值与代入
例如x=2则2赋给了x。
2》2》 清除变量x=.或Clear[x],一次清除多个变量Clear[x,y,z…]
3》3》 expr/.x->a表示表达式expr中的x全换成a的结果,代入不改变原表达式,只给出了表达式将x代换为a的结果
例如输入:
x^2+3x-10/.x->2
输出:
0
输入:
x^2+3x-10
输出:
x^2+3x-10
七代数式的几个操作函数
1》1》 多项式的展开与因式分解
展开Expand[expr]
分解Factor[expr]
例如输入:
Expand[(x+1)^2]
输出:
x^2+2x+1
输入:
Factor[x^2+2x+1]
输出:
(x+1)^2
2》2》 多项式化简
Simplify[p]给出多项式p的最短,最简单的形式
例如输入:
Simplify[1+x^2-2x^2]
输出:
1-x^2
八关于解方程
1》Solve[方程,未知数]Reduce[方程,未知数]都能求出其精确解。
例1输入:
Solve[x^2-2x-3==0,x]输出:
{{x->3},{x->-1}}
输入:
Reduce[x^2-2x-3==0,x]输出:
x==3||x==-1
例2输入:
Reduce[a*x+b==0,x]
输出:
a!
=0&&x=-
||a==0&&b==0
说明:
Reduce与Solve的差别就在于Reduce能求解带参数的方程。
2》有些方程无法求出精确解,则可用Nsolve[]或FindRoot[fh1==fh2,{x,x0}]
例输入:
Nsolve[2-4x+x^5==0,x]
或输入:
FindRoot[2-4x+x^5==0,{x,1}]
3》3》 程组的解
Solve[{fh1==fh2,fh3==fh4,…},{x,y,…}]
FinfRoot[{fh1==fh2,fh3==fh4,…},{x,x0},{y,y0}…]
4》4》 方程的消元
Eliminate[{f[x,y,z]==0,g[x,y,z]==0},x]
例
消y
输入:
Eliminate[{x+y==1,x-y==2},y]
九数列求和
Sum[an,{n,nmin,nmax,di}]
求通项an从nmin到nmax每隔di取一数时所得各项的和
NSum[an,{n,nmin,nmax,di}]
求通项an从nmin到nmax每隔di取一数时所得各项的近似和
例求
输入:
Sum[1/n,{n,2,100,2}]
十变量与函数
1》1》 变量名
变量用任意多字母表示,其中不能带有空格,标点符号,运算符,且数字
不能放在最前面
2》2》 系统内部常用的数学函数
1)幂函数求平方Sqrt[x]或x^(1/2)
以e为底的指数函数Exp[x]或E^x
2)对数函数以a为底的对数函数Log[a,x]
以e为底的对数函数Log[x]
3)三角函数Sin[x]Cos[x]
Tan[x]Cot[x]
Sec[x]Csc[x]
4)反三角函数ArcSin[x]ArcCos[x]
ArcTan[x]ArcCot[x]
ArcSec[x]ArcCsc[x]
5)关于整数求m除以n所得余数Mod[m,n]
求所有整数n1,n2,….的最大公约数GCD[n1,n2,…]
求所有整数n1,n2,…的最大公倍数LCM[n1,n2,…]
十一自定义函数
两种方式1)延时定义f[x_]:
=expr
2)立即定义f[x_]=expr说明:
此定义在定义的同时进行等号右边的计算
清除f[x]的定义Clear[f]
例定义
,并求f(3)。
输入:
f[x_]:
=x^3+1;f[3]
输出:
28
Mathematica的绘图
1.1. 一元函数的图形
基本命令Plot[f[x],{x,xmin,xmax}]
这一命令用来画出函数f(x)当自变量x在下限xmin与上限xmax之间的变化时的图行。
例:
画Sin(x)再区间[-2л,-2л]的图形。
输入Plot[Sin[x],{x,-2Pi,2Pi}]
输出:
Plot[f[x],{x,xmin,xmax},option]Option:
供选择的参数。
例AxesLael:
说明要画的图的坐标轴标记
Plot[Sin[x],{x,-2Pi,2Pi},AxesLabel->{time,temp}]
还可在一个图中画出多个函数的图行
Plot[{Sin[x],Cos[x],Tan[x]},{x,-2Pi,2Pi}]则在同一坐标轴中输出sin(x),
cos(x),tan(x)在[-2Pi,2Pi]的图像
2.平面曲线的参数方程做图
若平面曲线的参数方程为:
(t1≤t≤t2)
则用命令ParametricPlot[{x[t],y[t]},{t,t1,t2}]
图中绘出的横轴为x。
纵轴为y。
例:
(0≤t≤2л)
命令为:
ParametriPlot[{Sin[t]^3,Cos[t]^3},{t,0,2Pi}]
其图形为:
同样可在一个图中画多个参数方程的图:
ParametricPlot[{{x1[t],y1[t]},{x2[t],y2[t]},….},{t,t1,t2}]。
3.数据点做图
命令:
ListPlot[数据表]或ListPlot[数据表,PlotJoined->True]
X
0
0.5
1
1.5
2
y
0
0.5
1.2
2
2.4
例如:
有如下数据表
命令为:
data1={{0,0},{0.5,0.5},{1,1.2},{1.5,2},{2,2.4}};
ListPlot[data1]
若改为:
ListPlot[data1,PlotJoined->True]
4.图形重组
有时为了比较所画的图行,就需将它们显示在同一图中。
命令:
Show[图形1,图形2,……]
颜色参数PlotStyle->{RGBColour[t1,t2,t3]}(0≤t1,t2,t3≤1)
例:
用红色画出sin(x)的图像,并设为g1
g1=Plot[Sin[x],{x,-2Pi,2Pi},PlotStyle->{RGBColour[1,0,0]}]
蓝色画出tan(x)的图像,并设为g2
g2=Plot[Tan[x],{x,-2Pi,2Pi},PlotStyle->{RGBColour[0,0,1]}]
绿色画出cos(x)的图像,并设为g3
g3=Plot[Cos[x],{x,-2Pi,2Pi},PlotStyle->{RGBColour[0,1,0]}]
最后显示在同一图形中
Show[g1,g2,g3]
(图形略)。
也可一次性直接输入:
Plot[{Sin[x],Cos[x],Tan[x]},{x,-2Pi,2Pi},PlotStyle->{RGBColour[1,
0,0],RGBColour[0,1,0],RGBColour[0,0,1]}]
数表及其有关操作
一表的介绍:
一层表(单层表):
{1,2,3}
二层表(双层表):
{{1,2},{2,3}}
二表的生成:
1)直接生成tt={1,2,3}
2)通项生成Table[expr,{n,n1,n2,step}]n依次以步长step取n1到n2间的值。
例:
1》输入:
Table[1/n^2,{n,1,6,2}]
输出:
{1,
,
}
2》输入:
Table[1/n^2,{n,2,3}]
输出:
{
,
}注:
步长为1,可省。
3》输入:
Table[1/n^2,{n,2}]
输出:
{1,
}注:
初值、步长为1,可省。
3)生成多层表Table[f[i,j],{i,n1,n2,step},{j,n3,n4,step}]
例:
Table[1/(i+j),{i,1,2},{j,1,2}]输出:
{{
,
},{
,
}}。
4)迭代生成NestList[函数名,初始值x,迭代次数n]
其结果为:
由n+1个元素组成:
{x,f[x],f[f[x]],….,f[f[…f[x]…]]}
例:
NestList[]{1,sin1,sinsin1,sinsinsin1}
三表的有关操作:
1)元素的抽取
1》抽取第一个元素:
First[list]list为一表。
例如First[{1,2,3,4,5}]输出:
1
2》抽取最后一个元素:
Last[list]list为一表。
例如Last[{1,2,3,4,5}]输出:
5
3》抽取第n个元素:
list[[n]]list为一表。
例如{7,8,9,3,4}[[3]]输出:
3
4》当list为多层时list[[n1,n2,…]]表示取表list的位置为{n1,n2,….}
例如{{1,2},{2,3}}[[2,1]]输出:
2
5》取多个元素:
Take[list,整数n]注:
当n为正时表示取前n个元素,当n为负时表示取后n
个元素
例如Take[{1,2,3,4,5},4]输出:
{1,2,3,4}
Take[list,{整数m,整数n}]表示取第m个到第n个元素
例如Take[{6,7,8,9,10},{3,4}]输出:
{8,9}
2)加入元素
Prepend[list,expr]将表达式expr加在表list所有元素的前面。
例如Prepend[{1,2,3},5]输出:
{5,1,2,3}
Append[;ist,expr]将表达式expr加在表list所有元素的后面。
例如Append[{1,2,3},5]输出:
{1,2,3,5}
Insert[list,expr,n]将表达式expr加在表list第n个位置。
例如Insert[{1,2,3},5,6]输出:
{1,2,6,3}
四表与表的合并
Join[list1,list2,…]将表与表元素按顺序连接合成的表,不删去重复的元素。
例如Join[{1,2},{2,3}]输出:
{1,2,2,3}
Union[list1,list2,…]将表合并,并删去重复的元素。
例如Union[{1,2},{2,3}]输出:
{1,2,3}
Length[list]测表的长度
例如Length[{1,2,3,4}]输出:
4
注意:
对表的操作一般不改变原表。
例:
输入:
tt={1,2,3,4};Append[tt,4]
输出:
{4,1,2,3,4}
若再输入tt
输出:
{1,2,3,4}
说明原表tt没有改边变
Mathematica流程
一比较算符
等于
大于
小于
小于等于
大于等于
不等于
==
>
<
<=
>=
!
=
A==B
A>B
A
A<=B
A>=B
A!
=B
(1.A,B可为数,也可为表达式2.结果为真则True,假False)
二逻辑算符
与
或
非
&
||
!
A&B
A||B
!
A
三条件语句
1)If语句If[条件,语句1,语句2]
如果条件成立,执行语句1,否则执行语句2。
(注:
语句2可省)
2)Which语句Whih[条件1,语句1,条件2,语句2,….]
如果条件1成立,执行语句1,条件2成立,执行语句2,……
例如1》输入:
x=2;If[x>3,Print[“x>3”],Print[“x<=3”]]
输出:
x<=3
2》定义分段函数f(x)=
,并在区间[-2,2]画图。
输入:
f[x_]=If[x>0,2x-1,x^2-1];Plot[f[x],{x,-2,2}]
3》定义分段函数f(x)=
,并在区间[-2,2]画图。
方法一输入:
f[x_]=If[x<-1,-1,If[x>1,1,x]];Plot[f[x],{x,-2,2}]
方法二输入:
f[x_]=Which[x>1,1,-1<=x<=1,x,x<-1,-1];
Plot[f[x],{x,-2,2}]
四循环语句
1)For语句
For[i=s1,i<=n,i=i+s2,循环体语句]
流程图见下:
例如:
输入:
For[i=1,i<=10,i=i+2,Print[i]]
输出:
13579
2)Do语句
Do[循环体语句,{n,s1,s2,s3}]
等价于For[n=s1,n<=s2,n=n+s3,循环体语句]
例如:
输入:
Do[Print[1/n],{n,2,10,3}]
输出:
3)While语句
While[条件语句,表达式]
例如n=0;While[n<3,Print[n];n=n+1]输出:
012
注:
1》加粗部分不能省;否则,进入死循环。
2》中间的“;”,表示前后语句作为一个整体。
例求1+
+
+……+
当n分别为10,20,…,100时的和,并打印六位有效数字的近似值。
输入:
a=0;
For[i=1,i<=100,i++,a=a+1/i;If[Mod[i,10]==0,Print[a//N]]]
常用数学函数
一表
1》1》 和,差,积,商
输入:
aa={1,2,3};bb={2,3,4};
Print[“aa+bb=”,aa+bb,“,aa-bb=”,aa-bb,“,aa*bb=”,aa*bb,“,aa/bb=”,aa/bb]
输出:
aa+bb={3,5,7},aa-bb=-{-1,-1,-1},aa*bb={2,6,12},aa/bb={
,
,
},
2》2》 函数运算
例1输入:
Sin[{1,2,3}]
输出:
{sin1,sin2,sin3}
例2例2 输入:
f[x_]=1+x^2;aa={1,2,3}
输出:
{2,5,10}
3》3》 二层表的转置
输入:
Transpose[{{1,Sin[1]},{2,Sin[2]},{3,Sin[3]}}]
输出:
{{1,2,3},{Sin[1],Sin[2],Sin[3]}}
二极限
limit[表达式,趋向过程,趋向方向]
左极限:
Limit[Sin[x],x->0,Direction->+1]
右极限:
Limit[Sin[x],x->0,Direction->-1]
例1求
左极限输入:
Limit[nSin[1/n],n->Infinity,Direction->+1]
输出:
1
右极限输入:
Limit[nSin[1/n],n->Infinity,Direction->-1]
输出:
1
左极限=右极限所以,
=1
例2求
输入:
Limit[Sin[1/x],x->0]
输出:
RealInterval[{-1,1}]
注:
输出的结果表示函数sin(1/x)在[-1,1]之间摆动。
三求导
D[代数式,求导对象]
例1求
输入:
D[Sin[x],x]输出:
Cos[x]
例2求Sin[x+y+z^2]对z的导数
输入:
D[Sin[x+y+z^2],z]输出:
2Sin[x+y+z^2]
例3求隐函数方程的导数
f(x,y)=0,求对x的导数
输入:
equ=D[f[x,y[x]]==0,x];Solve[equ,D[y[x],x]]
这样就能求出其导数
注:
其中y[x]不能省,因为它表示y是x的函数,否则,它会把y看作常数。
例4求由方程
所确定的隐函数的导数
输入:
equ=D[x^2+4y[x]^2==4],x];Solve[equ,D[y[x],x]]
例5求参数方程
所确定的y=y[x]的导数
输入:
x=Cos[t];y=Sin[t];D[y,t]/D[x,t]
说明:
这种求导过程与数学中求导过程一样
例6显函数求偏导
求
输入:
D[x^2y^2,{x,2},{y,2}]
四求微分
求
的全微分
输入:
Dt[Sin[x^2+y^2]]
输出:
Cos[x^2+y^2][2xDt[x]+2YDt[y]]
五求定积分
Integrate[被积函数
,{自变量,下限,上限}]
例如求
输入:
Integrate[x^2,{x,0,1}]
六求不定积分
Integrate[被积函数,x]
例如
输入:
Integrate[x^2,x]
NIntegrate[被积函数,x]表示求其近似值
七求二重积分
求
输入:
Integrate[Integrate[x*y,{y,2x,x^2+1}],{x,0,1}]
八拟合
例把下表
x
0
2
3
4
y
0.2
0.1
0.5
3
拟合为二次多项式
输入:
shuju={{0,0.2},{2,0.1},{3,0.5},{4,3}};
Fit[shuju,{1,x,x^2},x]
九求微分方程的通解
Dsolve[方程,y,x]
例求
的通解
输入:
Dsolve[
[x]+2x*y[x]==x*E^(-x^2),y,x]
对于具有初始条件微分方程
DSolve[方程与初始条件列表,y,x]
例x
+y-
=0在初始条件y
=2e下的特解
输入:
Dsolve[{x*
[x]+y[x]-E^x==0,y[1]=2*E},y,x]
十矩阵
求A逆Inverse[A]
求A的行列式的值Det[A]
定义一个n阶单位矩阵IdentityMatrix[n]
求矩阵A的特征值,特征向量Eigensystem[A]
输出:
{特征值列表,特征向量列表}
用初等行变换