1、Mathematica基础 Mathematica基础Mathematica作为一个优秀的符号计算系统, 不同于一般的计算软件或简单编程, 它以符号记录计算的精确结果, 能达到任意位的精度(只要你拥有足够的内存). 并且, 它还有教强的作图以及简单的编程功能. 因此, 在科学研究, 在工程应用, 在诸多领域中,Mathematica将是一个得心应手的工具.希望这些简单的讲述,能让大家对Mathematica软件有个初步的了解. 其实Mathematica本身的帮助是非常强大的, 相信在你上手这个软件之后, 会更轻松地读懂并发现它的帮助中的各项内容的.适用版本:简记Mathematica为mat
2、h math 1.2 for DOS,math 2.2 for Windows, math 3.0 for win95, math 3.0 for UNIX. 教程目录:01 简介 02 试试你的math 03 基本计算04 代数变换 05 微积分运算(2-1) 06 微积分运算(2-2)07 矩阵/表的运算 08 表的运算.2 09 二维图形10 三维图形 11 基本图元作图 12 表达式与纯函数13 转化规则与参数 14 过程编程 15 程序包41简介 我们平日用到编程语言时, 大家都知道编程中用到的整型,实型, 甚至双精度数, 都只是一个近似的数, 其精度有限, 有效数字有限, 在很多时
3、候达不到实际需要的要求. 符号计算与数值计算的区别就在于符号计算以准确值记录计算的每一步的结果, 如果需要时, 可以将精确表示按需要计算成任意位数的小数表示出来(只要机器内存足够大). 最常见的符号计算系统有maple, mathematica, redues等,这些软件各有侧重, 比如,maple内存管理及速度比math好, 但是图形方面不如math; redues没找到, 没用过, 未明; 而用得较多的matlab编程环境特好, 和C语言接口极其简单, 符号计算采用Maple内核, 数值计算功能很强. 所以, 就实用而全面来说,math是一个很好用的软件. math软件不仅能够进行一般的+
4、-*/及科学函数如Sin, Log等计算, 而且能进行因式分解, 求导, 积分, 幂级数展开, 求特征值等符号计算, 并且, math有较强的图元作图, 函数作图, 三维作图及动画功能.42试试你的math math自发布以来, 目前比较常见的有math 1.2 for DOS,math 2.2 for Windows, math 3.0/4.0 for win95, math 3.0/4.0 for UNIX. DOS下的math的好处就是系统小, 对机器要求低, 在386机 器4M内存下就能运行得很好(机器再低点也是可以用的, 比如说286/2M). 在DOS下直接键入math<回车
5、>即可进入math系统, 出现的提示符In1:=,这时就可以进行计算了, 键入math函数, 回车即可进行运算. 如果输入的Quit, 则退出math. 这里 要注意的是, math区分大小写的, 一般math的函数均以大写字 母开始的. windows下的math对机器要求就要高一些了, math3.0更是 庞大,安装完毕有100M之多(2.2大约十多兆). 同windows下的其他软件一样,math可以双击图标运行, 在File菜单下有退出 这一项. windows下的math有其优越性, 就是可以在windows下随心所欲地拷贝粘贴图形.math3.0更是能输入和显示诸如希腊 字母
6、, 积分符号, 指数等数学符号. DOS的math与windows下的一个区别是DOS的以回车结束一句输入,而windows的以 Shift+回车结束一句输入. DOS下的提示符显示为In数字:=, 而windows下在结束输入后才显示出In数字:=及Out数字:=字 样. (Out为输出提示符) 下面试试几个例子:(In数字:=为提示符, 不用键入)In1:= 2100 计算2的100次方In2:= s=1,0,1,0,1,0,1,0,1 定义矩阵sIn3:= Eigenvaluess 计算s的特征值In4:= PlotSinx,x,0,Pi 在0,Pi间画SinIn5:= PlotCosx
7、,x,0,Pi CosIn6:= Plot3DSinxSiny,x,0,1,y,0,2 三维作图 以In6为例说明: math的函数都以大写字母开头的单词为函数名, Plot3D, Plot, Eigenvalues, Sin等, 常数也是如此, 如Pi. 函数名后的参数用括起, 逗号隔开. math的输出可以作为函数的输入对象, 你可以再试一个:In7:=Show%,% 这里一个%代表上一个输出, 两个代表 上两个. 也可以直接用Outn代表第n个输出. 这里需要补充的是 !command 执行DOS命令 ?name 关于name(函数等)的信息(可以使用通配符) ?name 关于name的
8、额外信息 43 基本运算1. 算术运算符 +加-减*乘/除指数 (乘也可用空格) Nexpr或expr /N 计算expr的数值(6位有效数字) Nexpr, n n表示小数的位数2. 数学函数 Sqrtx x开方 Expx e的x方 Logx x的自然对数 Logb,x 以b为底, x的对数 Sinx, Cosx, Tanx, ArcSinx, ArcCosx 三角函数 Absx |x| Roundx 离x最近的整数 Floorx 不超过x的最大整数 Quotientn,m n/m的整数部分 Modn,m n/m的余数 Random 0,1间随机数 Maxx,y,. Minx,y,. 最大数
9、和最小数3. 常数 Pi Pi=3.141592653589793. E e=2.71828. Degree Pi/180 I i=Sqrt-1 Infinity 无穷大 Catalan Catalan常数.=0.915966 ComplexInfinity 复无穷 DirectedInfinity 有向的无穷 EulerGamma 欧拉常数gamma=0.5772216 GoldenRatio 黄金分割(Sqrt5-1)/2 Indeterminate 不定值4. 逻辑运算符 =, !=, >, >=, <, <=, !, &, | Xor 异或 Implies 隐含
10、 If条件,式1,式2 如果条件成立, 值式1; 否则得式25. 变量 a) 变量名以字母(一般小写)开头; 字母数字组成. (如x2为变量名; 而2x, 2*x, 2 x, x*2, x 2均是x乘以2). b) 赋值 x=value; x=y=value; x=.(清除x值) c) 代换 expr /. x->value 将式中x代换为value expr /. x->xval, y->yval 下面就让我们以几个例子来结束本节:(大家还是注意, DOS下的Math, 只要输入Innum:=后的指令后按回车, 而windows下则是按+回车.) 大 家看看都有什么输出.
11、In1:= 2.7+5.23 In2:= 1/3+2/7 In3:= 1/3+2/7 /N In4:= NPi,100 曾经有人问我, 你是怎么算出Pi的1000位 而没有错误的, 其实很简单, 大家只要把 上式的100改为1000即可. In5:= SinPi/2+Exp2+Round1.2 In6:= 10<7 In7:= x=5; 如果在输入之后加上一个;, 则只 运算不输出. IN8:= y=0 (所以In7和8完全可以合成一条x=5;y=0, 假如我不需要x=5的输出) In9:= x>y In10:= t=1+m2 In11:= t /. m->2 In12:=
12、t /. m->5a In13:= t /. m->Pi /N44 代数变换 上一节我们已经学习了Math里的基本运算及逻辑运算, 常用数学函数, 几个常见的常数, 以及变量的使用. 这一节, 我们来学学基本代数变换:Apart, Cancel, Coefficient, Collect, Denominator, Expand,ExpandAll,Exponent, Factor, Numerator, Short, Simplify,Together. Expandexpr 多项式expr按项展开 Factorexpr 因子形式 Simplifyexpr 最简形式In1:= E
13、xpand(1+x)2In2:= Factor% 我们以前说过的哦, %是上一个输出, %是上上个, %是上上上个, ., %n是第n个输出(即Outn)In3:= Simplify% In4:= Integratex2/(x4-1),x 这是积分运算, 详情后叙In5:= D%,x 求导 In6:= Simplify% ExpandAllexpr 所有项均展开 Togetherexpr 通分 Apartexpr 分离成具有最简分母的各项 Cancelexpr 约去分子,分母的公因子 Collectexpr 合并In1:= e=(x-1)2 (2+x)/(1+x)(x-3)2)In2:= Ex
14、pandeIn3:= ExpandAlle 天哪, 那么复杂的式子, 其实还不算复杂了In4:= Togethere In5:= Apart% In6:= Factor% Coefficientexpr, form 表达式中form项的系数 Exponentexpr, form form的最高幂次 Numeratorexpr 取分子 Denominatorexpr 取分母 expr /Short 以简短形式输出In1:= e=Expand(1+3x+4y2)2In2:= Coefficiente, xIn3:= Exponente, yIn4:= q=(1+x)/(2(2-y)In5:= De
15、nominator%In6:= Expand(x+5y+10)4In7:= %/Short 把上式输出, 中间项省去, 以 <<数字>>表示省去的项数. 最后, 我们以例子来看看用符号名做客体的标志的好处In1:= 12metersIn2:= %+5.3metersIn3:= %/(25seconds)In4:= %/.meters->3.78084feet 哇, 一下子就把米制变为英尺了. 45 微积分运算(2-1) 学到上一节, 大家会发现怎么还停留在中学的计算中呢, 别急别急,慢慢来. 这一节, 大家就会看到微分D, Dt; 积分Integrate,NInt
16、egrage; 和与积Sum, Product, NSum, NProduct. 下一节我们介绍解方程Solve, Eliminate, Reduce, NRoot, FindRoot,FindMinimum; 幂级数Series, Normal; 极限Limit; 特殊函数Fourier,InverseFourier, . 微分 Df, x f对x求导 Df, x_1, x_2, . f对x_1, x_2, .求导 Df, x, n f对x求n次导 Dtf 全微分df Dtf, x 全微商df/dxIn1:= Dxn,xIn2:= Dfx,xIn3:= D2x fx2,xIn4:= Dxn,
17、 x, 3In5:= Dx2 y3, x, yIn6:= DtxnIn7:= Dtx y, x 积分 Integratef,x f对x积分 Integratef, x, xmin, xmax, y, ymin, ymax, . 定积分 NIntegratef, x, xmin, xmax, y, ymin, ymax, . 计算积分的数值解In1:= IntegrateSinSinx,x 嘻嘻, 无法计算, 原样输出In2:= IntegrateLogx, x,0,6 啊, 广义积分也一样算In3:= Integratex2+y2, x,0,1, y,0,1In4:= In3/N 如果你的上一
18、条输入不是In3, 注意调整这一条的输入哦In5:= IntegrateSinSinx, x,0,1 呜呜 怎么还没法计算啊In6:= N% 或 NIntegrateSinSinx, x,0,1 呵呵 终于可以计算了. 和与积 Sumf, i, imin, imax, j, jmin, jmax, . f对i, j, .分别从imin到imax,jmin到jmax,.求和 Sumf, i, imin, imax, di 求和的步长为di Productf, i, imin, imax, j, jmin, jmax, . 求积 NSum 数值解 NProduct 数值解In1:= Sumxi/i
19、, i,1,4In2:= Sumxi/i, i,1,5,2In3:= Suma/i3, i,1,10In4:= N% 或 NSuma/i3, i,1,10In5:= Sum1/i3, i,1,Infinity 可能原样输出, 也可能输出 Zeta3(依math的版本不同而异)In6:= N%In7:= Sumxi*yj, i,1,3, j,1,i注: 如果想要求带符号上下限的Sum, 在math3.0中, 直接使用Sum函数即可:In8:= Sum1/Sini, i,1,n而如果在旧版本的math, 则可能需要调入包(package) gospersu.m,调入格式一般为In8:= <&
20、lt;盘符:math路径packagesalgebragospersu.m (不同安装目录可能出现不一样)然后使用函数GosperSum 46 微积分运算(2-2) 上一节, 我们一起学习了微分D, Dt; 积分Integrate, NIntegrage;和与积Sum, Product, NSum, NProduct. 这一节我们将介绍解方程Solve,Eliminate, Reduce, NRoot, FindRoot, FindMinimum; 幂级数Series,Normal; 极限Limit; 特殊函数Fourier, InverseFourier, .最后, 我们说明一下math的函
21、数的定义, 别名的使用, 以及不同输出格式 解方程 Solvelhs1=rhs1, lhs2=rhs2,., x,y,. 解关于x,y,.的方程组lhs1=rhs1, lhs2=rhs2,. Eliminatelhs1=rhs1, lhs2=rhs2,., x,y,. 在联立方程中消去x,y,. Reducelhs1=rhs1, lhs2=rhs2,., x,y,. 给出一组化简后的方程, 包括可能的解 NRootpoly=0, x 给出多项式的根的数值逼近 FindRootlhs=rhs, x, x0 从x0出发, 求方程的数值解 FindMinimumf, x,x0 在x0附近找f的极小值
22、In1:= Solvex2+2x-7=0, xIn2:= Solve2-4x+x5=0, x 呵呵 输出结果你会发现和没解一样In3:= N% 啊, 要数值解啊, 不早说. 这不是么.In4:= Solvea*x+y=0, 2x+(1-a)y=1,x,aIn5:= Eliminate3x+2y+z=3, 2x-2y-2z=5,x+y-7z=9, x,zIn6:= Reducea*x+b=0, x 哇, 好COOL. a=0, 怎么怎么; a!=0, .In7:= FindRootCosx=x,x,1 In8:= FindMinimumx Sinx, x,2Pi 幂级数 Seriesexpr,
23、x, x0, n 求expr在x0的n阶幂级数 Normalseries 按标准形式In1:= Series(1+x)n, x,0,3 最后还有近似量级呢(大喔Ox4)In2:= Normal%In3:= %2 (1+%) 把大喔量级不要了, 多项式当然可以这么运算 极限 Limitexpr, x->x0 expr中x趋于x0In1:= t=Sinx/xIn2:= t/.x->0 错了吧. 0不能当分母的In3:= Limitt,x->0 求极限总可以了吧 特殊函数 Fourier 傅利叶变换 InverseFourier 反傅利叶变换In1:= 1,1,1,1,-1,-1,
24、-1,-1In2:= Fourier% In3:= InverseFourier% RungeKutta, . 等函数 定义函数如下In1:= fx_:=x2+1 math中定义函数:变量后跟_, 然后用:=In2:= fx_, y_:=x+y 以上两个定义同时存在并不矛盾, 当f仅使用一个参数, 自动用一式; 为 两个参数, 则用二式In3:= f3In4:= f3,2 定义别名In1:= para:=ParametricPlot 用:=来定义别名In2:= paraCost,t, t,0,PiIn3:= Alaspara 查看para是什么的别名 47 矩阵/表的运算 矩阵的定义Table
25、, Array, IdentityMatrix, DiagonalMatrix; 输出输入TalbeForm, ColumnForm, MatrixForm, list(其他输出TeXForm,FortranForm, CForm); 及运算: 数乘, 矩阵乘法, Inverse, Transpose,Det, MatrixPower, Eigenvalues, Eigenvectors, 矩阵定义使用的一点 说明. 矩阵的定义 Tablef, imax 包含imax个f的元素(f是规则) Tablef, i, imin, imax, istep, j, ., . istep=1可省, imi
26、n=1也等于1可再省 Arraya, n 建立向量a1, a2, ., an Arraya, m, n 建mxn矩阵a Arraya, m1, m2, ., mn n维张量 IdentityMatrixn 生成n维单位矩阵 DiagonalMatrixlist list元素为对角元In1:= Tablex, 4 In2:= Tablei2, i, 1, 4In3:= x%-1 看看表在运算符作用后的结果In4:= D%, x 求导也可以 In5:= % /. x->3 代入值看看In6:= Arraya, 3, 2 看个2维的(3x2)矩阵In7:= DiagonalMatrix1,2,
27、3 生成对角元是1,2,3的方阵 矩阵的输出/输入 TableFormlist 以表列格式显示一个表 ColumnFormlist 写成一列 MatrixFormlist 按矩阵形式 listi 第i个元素(一维); 第i行元素(二维) listi,j list的第i行, 第j列元素.In1:= a=Tablei+2*j, i, 1, 3, j, 1, 2 In2:= TableForm% 看看表格式In3:= ColumnForm% 写成一列 In4:= MatrixForm% 再看看矩阵形式In5:= %2 把上面的矩阵的第二行(是一维的表了哦)去来In6:= %2,1 取第二行第一列元素
28、(是一个数) 注: In5,In6也可用a2和a2,1的典型写法. 其他输出格式 TeXForm, FortranForm, CForm TeX(数学排版)格式, Fortran语言, C语言格式输出In1:= (Sqrtx3-1+Expy)/LogxIn2:= TeXForm% 注意TeX中T和X是大写, e是小写 In3:= CForm% 矩阵的数学运算 cm 数乘(c标量, m是Table或Array定义的矩阵) a.b 矩阵相乘(注意矩阵乘法的规则) Inversem 逆矩阵(当然要对方阵来说了) Transposem 转置 Detm m(方阵)的行列式 MatrixPowerm,n m(方阵)的n次幂 Eigenvaluesm m(方阵)的特征值 Eigenvectorsm m(方阵)的特征向量 EigenvaluesNm, EigenvectorsNm
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1