Mathematica基础.docx
- 文档编号:6728795
- 上传时间:2023-01-09
- 格式:DOCX
- 页数:29
- 大小:35.35KB
Mathematica基础.docx
《Mathematica基础.docx》由会员分享,可在线阅读,更多相关《Mathematica基础.docx(29页珍藏版)》请在冰豆网上搜索。
Mathematica基础
Mathematica基础
Mathematica作为一个优秀的符号计算系统,不同于一般的计算软件或简单编程,它以符号记录计算的精确结果,能达到任意位的精度(只要你拥有足够的内存).并且,它还有教强的作图以及简单的编程功能.因此,在科学研究,在工程应用,在诸多领域中,Mathematica将是一个得心应手的工具.希望这些简单的讲述,能让大家对Mathematica软件有个初步的了解.其实Mathematica本身的帮助是非常强大的,相信在你上手这个软件之后,会更轻松地读懂并发现它的帮助中的各项内容的.适用版本:
简记Mathematica为mathmath1.2forDOS,math2.2
forWindows,math3.0forwin95,math3.0forUNIX.
教程目录:
01简介02试试你的math03基本计算
04代数变换05微积分运算(2-1)06微积分运算(2-2)
07矩阵/表的运算08表的运算.209二维图形
10三维图形11基本图元作图12表达式与纯函数
13转化规则与参数14过程编程15程序包
4.1简介
我们平日用到编程语言时,大家都知道编程中用到的整型,实型,甚至双精度数,都只是一个近似的数,其精度有限,有效数字有限,在很多时候达不到实际需要的要求.符号计算与数值计算的区别就在于符号计算以准确值记录计算的每一步的结果,如果需要时,可以将精确表示按需要计算成任意位数的小数表示出来(只要机器内存足够大).最常见的符号计算系统有maple,mathematica,redues等,这些软件各有侧重,比如,maple内存管理及速度比math好,但是图形方面不如math;redues没找到,没用过,未明;而用得较多的matlab编程环境特好,和C语言接口极其简单,符号计算采用Maple内核,数值计算功能很强.所以,就实用而全面来说,math是一个很好用的软件.
math软件不仅能够进行一般的+-*/及科学函数如Sin,Log等计算,而且能进行因式分解,求导,积分,幂级数展开,求特征值等符号计算,并且,math有较强的图元作图,函数作图,
三维作图及动画功能.
4.2试试你的math
math自发布以来,目前比较常见的有math1.2forDOS,math2.2forWindows,math3.0/4.0forwin95,math3.0/4.0forUNIX.
DOS下的math的好处就是系统小,对机器要求低,在386机器4M内存下就能运行得很好(机器再低点也是可以用的,比如说286/2M).在DOS下直接键入math<回车>即可进入math系统,出现的提示符In[1]:
=,这时就可以进行计算了,键入math函数,回车即可进行运算.如果输入的Quit,则退出math.这里要注意的是,math区分大小写的,一般
math的函数均以大写字母开始的.
windows下的math对机器要求就要高一些了,math3.0更是庞大,安装完毕有100M之多(2.2大约十多兆).同windows下的其他软件一样,math可以双击图标运行,在File菜单下有退出这一项.windows下的math有其优越性,就是可以在windows下随心所欲地拷贝粘贴图形.math3.0更是能输入和显示诸如希腊字母,积分符号,指数等数学符号.DOS的math与windows下的一个区别是DOS的以回车结束一句输入,而windows的以Shift+回车结束一句输入.DOS下的提示符显示为In[数字]:
=,而windows下在结束输入后才显示出In[数字]:
=及Out[数字]:
=字样.(Out为输出提示符)
下面试试几个例子:
(In[数字]:
=为提示符,不用键入)
In[1]:
=2^100计算2的100次方
In[2]:
=s={{1,0,1},{0,1,0},{1,0,1}}定义矩阵s
In[3]:
=Eigenvalues[s]计算s的特征值
In[4]:
=Plot[Sin[x],{x,0,Pi}]在0,Pi间画Sin
In[5]:
=Plot[Cos[x],{x,0,Pi}]Cos
In[6]:
=Plot3D[Sin[x]Sin[y],{x,0,1},{y,0,2}]三维作图
以In[6]为例说明:
math的函数都以大写字母开头的单词为函数名,Plot3D,Plot,Eigenvalues,Sin等,常数也是如此,如Pi.函数名后的参数用[]括起,逗号隔开.math的输出可以作为函数的输入对象,你可以再试一个:
In[7]:
=Show[%%,%%%]这里一个%代表上一个输出,两个代表上两个...也可以直接用Out[n]代表第n个输出.
这里需要补充的是
!
command执行DOS命令
?
name关于name(函数等)的信息(可以使用通配符)
?
?
name关于name的额外信息
4.3基本运算
1.算术运算符
+加-减*乘/除^指数(乘也可用空格)
N[expr]或expr//N计算expr的数值(6位有效数字)
N[expr,n]n表示小数的位数
2.数学函数
Sqrt[x]x开方
Exp[x]e的x方
Log[x]x的自然对数
Log[b,x]以b为底,x的对数
Sin[x],Cos[x],Tan[x],ArcSin[x],ArcCos[x]三角函数
Abs[x]|x|
Round[x]离x最近的整数
Floor[x]不超过x的最大整数
Quotient[n,m]n/m的整数部分
Mod[n,m]n/m的余数
Random[]0,1间随机数
Max[x,y,...]Min[x,y,...]最大数和最小数
3.常数
PiPi=3.141592653589793...
Ee=2.71828...
DegreePi/180
Ii=Sqrt[-1]
Infinity无穷大
CatalanCatalan常数.=0.915966
ComplexInfinity复无穷
DirectedInfinity有向的无穷
EulerGamma欧拉常数gamma=0.5772216
GoldenRatio黄金分割(Sqrt[5]-1)/2
Indeterminate不定值
4.逻辑运算符
==,!
=,>,>=,<,<=,!
&&,||
Xor异或
Implies隐含
If[条件,式1,式2]如果条件成立,值式1;否则得式2
5.变量
a)变量名以字母(一般小写)开头;字母数字组成.
(如x2为变量名;而2x,2*x,2x,x*2,x2均是x乘以2).
b)赋值
x=value;x=y=value;x=.(清除x值)
c)代换
expr/.x->value将式中x代换为value
expr/.{x->xval,y->yval}
下面就让我们以几个例子来结束本节:
(大家还是注意,DOS下的
Math,只要输入In[num]:
=后的指令后按回车,而windows下则是按
+回车.)大家看看都有什么输出.
In[1]:
=2.7+5.23
In[2]:
=1/3+2/7
In[3]:
=1/3+2/7//N
In[4]:
=N[Pi,100]曾经有人问我,你是怎么算出Pi的1000位
而没有错误的,其实很简单,大家只要把
上式的100改为1000即可.
In[5]:
=Sin[Pi/2]+Exp[2]+Round[1.2]
In[6]:
=10<7In[7]:
=x=5;如果在输入之后加上一个";",则只
运算不输出.
IN[8]:
=y=0(所以In[7]和8完全可以合成一条x=5;y=0,
假如我不需要x=5的输出)
In[9]:
=x>y
In[10]:
=t=1+m^2
In[11]:
=t/.m->2
In[12]:
=t/.m->5a
In[13]:
=t/.m->Pi//N
4.4代数变换
上一节我们已经学习了Math里的基本运算及逻辑运算,常用数学
函数,几个常见的常数,以及变量的使用.这一节,我们来学学基本
代数变换:
Apart,Cancel,Coefficient,Collect,Denominator,Expand,
ExpandAll,Exponent,Factor,Numerator,Short,Simplify,
Together.
Expand[expr]多项式expr按项展开
Factor[expr]因子形式
Simplify[expr]最简形式
In[1]:
=Expand[(1+x)^2]
In[2]:
=Factor[%]我们以前说过的哦,%是上一个输出,%%是上上个,
%%%是上上上个,...,%n是第n个输出(即Out[n])
In[3]:
=Simplify[%%]In[4]:
=Integrate[x^2/(x^4-1),x]
这是积分运算,详情后叙
In[5]:
=D[%,x]求导In[6]:
=Simplify[%]
ExpandAll[expr]所有项均展开
Together[expr]通分
Apart[expr]分离成具有最简分母的各项
Cancel[expr]约去分子,分母的公因子
Collect[expr]合并
In[1]:
=e=(x-1)^2(2+x)/((1+x)(x-3)^2)
In[2]:
=Expand[e]
In[3]:
=ExpandAll[e]天哪,那么复杂的式子,其实还不算复杂了
In[4]:
=Together[e]In[5]:
=Apart[%]In[6]:
=Factor[%]
Coefficient[expr,form]表达式中form项的系数
Exponent[expr,form]form的最高幂次
Numerator[expr]取分子
Denominator[expr]取分母expr//Short以简短形
式输出
In[1]:
=e=Expand[(1+3x+4y^2)^2]
In[2]:
=Coefficient[e,x]
In[3]:
=Exponent[e,y]
In[4]:
=q=(1+x)/(2(2-y))
In[5]:
=Denominator[%]
In[6]:
=Expand[(x+5y+10)^4]
In[7]:
=%//Short把上式输出,中间项省去,以
<<数字>>表示省去的项数.
最后,我们以例子来看看用符号名做客体的标志的好处
In[1]:
=12meters
In[2]:
=%+5.3meters
In[3]:
=%/(25seconds)
In[4]:
=%/.meters->3.78084feet哇,一下子就把米制变为英尺了.
4.5微积分运算(2-1)
学到上一节,大家会发现怎么还停留在中学的计算中呢,别急别
急,慢慢来.这一节,大家就会看到微分D,Dt;积分Integrate,
NIntegrage;和与积Sum,Product,NSum,NProduct.下一节我们
介绍解方程Solve,Eliminate,Reduce,NRoot,FindRoot,
FindMinimum;幂级数Series,Normal;极限Limit;特殊函数Fourier,
InverseFourier,...
微分
D[f,x]f对x求导
D[f,x_1,x_2,...]f对x_1,x_2,...求导
D[f,{x,n}]f对x求n次导
Dt[f]全微分df
Dt[f,x]全微商df/dx
In[1]:
=D[x^n,x]
In[2]:
=D[f[x],x]
In[3]:
=D[2xf[x^2],x]
In[4]:
=D[x^n,{x,3}]
In[5]:
=D[x^2y^3,x,y]
In[6]:
=Dt[x^n]
In[7]:
=Dt[xy,x]
积分
Integrate[f,x]f对x积分
Integrate[f,{x,xmin,xmax},{y,ymin,ymax},...]定积分
NIntegrate[f,{x,xmin,xmax},{y,ymin,ymax},...]
计算积分的数值解
In[1]:
=Integrate[Sin[Sin[x]],x]嘻嘻,无法计算,原样输出
In[2]:
=Integrate[Log[x],{x,0,6}]啊,广义积分也一样算
In[3]:
=Integrate[x^2+y^2,{x,0,1},{y,0,1}]
In[4]:
=In[3]//N如果你的上一条输入不是In[3],
注意调整这一条的输入哦
In[5]:
=Integrate[Sin[Sin[x]],{x,0,1}]呜呜~~~怎么还没法计算啊
In[6]:
=N[%]或
NIntegrate[Sin[Sin[x]],{x,0,1}]呵呵~~~终于可以计算了.
和与积
Sum[f,{i,imin,imax},{j,jmin,jmax},...]
f对i,j,...分别从imin到imax,jmin到jmax,...求和
Sum[f,{i,imin,imax,di}]求和的步长为di
Product[f,{i,imin,imax},{j,jmin,jmax},...]求积
NSum数值解
NProduct数值解
In[1]:
=Sum[x^i/i,{i,1,4}]
In[2]:
=Sum[x^i/i,{i,1,5,2}]
In[3]:
=Sum[a/i^3,{i,1,10}]
In[4]:
=N[%]或NSum[a/i^3,{i,1,10}]
In[5]:
=Sum[1/i^3,{i,1,Infinity}]可能原样输出,也可能输出
Zeta[3](依math的版本不同而异)
In[6]:
=N[%]
In[7]:
=Sum[x^i*y^j,{i,1,3},{j,1,i}]
注:
如果想要求带符号上下限的Sum,在math3.0中,直接使用Sum函数
即可:
In[8]:
=Sum[1/Sin[i],{i,1,n}]
而如果在旧版本的math,则可能需要调入包(package)"gospersu.m",
调入格式一般为
In[8]:
=<<"盘符:
\\math路径\\packages\\algebra\\gospersu.m"
(不同安装目录可能出现不一样)
然后使用函数GosperSum[]
4.6微积分运算(2-2)
上一节,我们一起学习了微分D,Dt;积分Integrate,NIntegrage;
和与积Sum,Product,NSum,NProduct.这一节我们将介绍解方程Solve,
Eliminate,Reduce,NRoot,FindRoot,FindMinimum;幂级数Series,
Normal;极限Limit;特殊函数Fourier,InverseFourier,...
最后,我们说明一下math的函数的定义,别名的使用,以及不同输出格式
解方程
Solve[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]
解关于x,y,...的方程组{lhs1==rhs1,lhs2==rhs2,...}
Eliminate[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]
在联立方程中消去x,y,...
Reduce[{lhs1==rhs1,lhs2==rhs2,...},{x,y,...}]
给出一组化简后的方程,包括可能的解
NRoot[poly==0,x]给出多项式的根的数值逼近
FindRoot[lhs==rhs,{x,x0}]从x0出发,求方程的数值解
FindMinimum[f,{x,x0}]在x0附近找f的极小值
In[1]:
=Solve[x^2+2x-7==0,x]
In[2]:
=Solve[2-4x+x^5==0,x]呵呵~~~输出结果你会发现和没解一样
In[3]:
=N[%]啊,要数值解啊,不早说.这不是么.
In[4]:
=Solve[{a*x+y==0,2x+(1-a)y==1},{x,a}]
In[5]:
=Eliminate[{3x+2y+z==3,2x-2y-2z==5,x+y-7z==9},{x,z}]
In[6]:
=Reduce[a*x+b==0,x]哇,好COOL.a==0,怎么怎么;a!
=0,...
In[7]:
=FindRoot[Cos[x]==x,{x,1}]In[8]:
=FindMinimum[xSin[x],{x,2Pi}]
幂级数
Series[expr,{x,x0,n}]求expr在x0的n阶幂级数
Normal[series]按标准形式
In[1]:
=Series[(1+x)^n,{x,0,3}]最后还有近似量级呢(大喔O[x]^4)
In[2]:
=Normal[%]
In[3]:
=%^2(1+%)把大喔量级不要了,多项式当然可以这么运算
极限
Limit[expr,x->x0]expr中x趋于x0
In[1]:
=t=Sin[x]/x
In[2]:
=t/.x->0错了吧.0不能当分母的
In[3]:
=Limit[t,x->0]求极限总可以了吧
特殊函数
Fourier[]傅利叶变换
InverseFourier[]反傅利叶变换
In[1]:
={1,1,1,1,-1,-1,-1,-1}
In[2]:
=Fourier[%]In[3]:
=InverseFourier[%]
RungeKutta[],...等函数
定义函数如下
In[1]:
=f[x_]:
=x^2+1math中定义函数:
变量后跟_,然后用:
=
In[2]:
=f[x_,y_]:
=x+y以上两个定义同时存在并不矛盾,
当f仅使用一个参数,自动用一式;为
两个参数,则用二式
In[3]:
=f[3]
In[4]:
=f[3,2]
定义别名
In[1]:
=para:
=ParametricPlot用:
=来定义别名
In[2]:
=para[{Cos[t],t},{t,0,Pi}]
In[3]:
=Alas[para]查看para是什么的别名
4.7矩阵/表的运算
矩阵的定义Table,Array,IdentityMatrix,DiagonalMatrix;输出
输入TalbeForm,ColumnForm,MatrixForm,list(其他输出TeXForm,
FortranForm,CForm);及运算:
数乘,矩阵乘法,Inverse,Transpose,
Det,MatrixPower,Eigenvalues,Eigenvectors,矩阵定义使用的一点说明.
矩阵的定义
Table[f,{imax}]包含imax个f的元素(f是规则)
Table[f,{i,imin,imax,istep},{j,...},...]
istep=1可省,imin=1也等于1可再省
Array[a,n]建立向量a[1],a[2],...,a[n]
Array[a,{m,n}]建mxn矩阵a
Array[a,{m1,m2,...,mn}]n维张量
IdentityMatrix[n]生成n维单位矩阵
DiagonalMatrix[list]list元素为对角元
In[1]:
=Table[x,{4}]In[2]:
=Table[i^2,{i,1,4}]
In[3]:
=x^%-1看看表在运算符作用后的结果
In[4]:
=D[%,x]求导也可以In[5]:
=%/.x->3
代入值看看
In[6]:
=Array[a,{3,2}]看个2维的(3x2)矩阵
In[7]:
=DiagonalMatrix[{1,2,3}]生成对角元是1,2,3的方阵
矩阵的输出/输入
TableForm[list]以表列格式显示一个表
ColumnForm[list]写成一列
MatrixForm[list]按矩阵形式
list[[i]]第i个元素(一维);第i行元素(二维)
list[[i,j]]list的第i行,第j列元素.
In[1]:
=a=Table[i+2*j,{i,1,3},{j,1,2}]In[2]:
=TableForm[%]
看看表格式
In[3]:
=ColumnForm[%%]写成一列In[4]:
=MatrixForm[%%%}
再看看矩阵形式
In[5]:
=%[[2]]把上面的矩阵的第二行(是一维的表了哦)去来
In[6]:
=%%[[2,1]]取第二行第一列元素(是一个数)
注:
In[5],In[6]也可用a[[2]]和a[[2,1]]的典型写法.
其他输出格式TeXForm,FortranForm,CFormTeX(数学排版)格式,Fortran语
言,C语言格式输出
In[1]:
=(Sqrt[x^3-1]+Exp[y])/Log[x]
In[2]:
=TeXForm[%]注意TeX中T和X是大写,e是小写In[3]:
=CForm[%]
矩阵的数学运算
cm数乘(c标量,m是Table或Array定义的矩阵)
a.b矩阵相乘(注意矩阵乘法的规则)
Inverse[m]逆矩阵(当然要对方阵来说了)
Transpose[m]转置
Det[m]m(方阵)的行列式
MatrixPower[m,n]m(方阵)的n次幂
Eigenvalues[m]m(方阵)的特征值
Eigenvectors[m]m(方阵)的特征向量
Eigenvalues[N[m]],Eigenvectors[N[m]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mathematica 基础
![提示](https://static.bdocx.com/images/bang_tan.gif)