1、Mathematica基础 及其应用,数学软件, 公共基础软件:BASIC,FORTRAN,C等 数学软件:为解决数学问题的专用系统,应具备的一般功能: 数值计算 符号计算 绘制图形 编程功能, 著名的数学软件MathCAD, Matlab, Mathematica, Maple,LINDO、SPSS、SAS、IDL, 由美国Mathsoft公司开发 早期的DOS下的1.0版本(1986)Windows下的4.0版本 14.0版本(PTC)Win9X/NT下的7.0 采用WYSWYG界面 功能:集文本编辑、数学计算、程序编辑和仿真于一体,1、MathCAD,常用的有 MathCAD 7.0 及
2、 MathCAD 2000, 70年代:Matrix Lab.用来提供Linpack和Eispack软件包的接口程序。用Fortran编写。80年代:3.0版本(DOS)1984年:成立Mathworks公司2008年:7.6版本(Windows)2009年:2009a,2009b(Win, Unix),2、MatLAB,Cleve Moler,由主程序和各种工具包组成 主程序包:数百个内部核心函数 工具包:复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、控制系统工具包、分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统计工具包, 数值计算的先锋,以矩阵
3、作为基本数据单位,数值计算不能完全依赖于Matlab!,通用数学软件,耗费系统资源较大 使用Java内核,速度比较慢 Matlab不适合大计算量大规模的数值计算,大计算量的数值计算最佳选择为Fortran(77、90、95)和C语言,LAPACK、BLAS程序包是好帮手, Waterloo大学开发(1980,1988商业化) 功能强大* 数值处理、符号计算、 提供了2000余种数学函数, 内置的编程语言 MathCAD和MatLAB等软件的符号处理的核心,3. Maple,最新版 Maple 12(2008年5月),4、Mathematica, 由Wolfram Research公司开发 用C
4、语言开发,可移植到各种平台上 功能强大* 数值处理、符号计算、图形功能 1988年 Mathematica 1.0版 标志着现代科技计算的开始 2008年 Mathematica 6.03版 2009年Mathematica 7.01版,1959年出生于伦敦15岁 发表首篇粒子物理方面的论文;17岁,论文发到了Nuclear Physics20岁 Caltech 理论物理Ph.D22岁 最年轻的MacArthur Genius Fellowship 研究领域:高能物理、量子场论、宇宙学,Stephen Wolfram,1981年 复杂性的起源 1986年 Univ. Illinois的物理学、
5、数学和计算机科学教授创立 Wolfram Research, Inc 1988年6月23日 发布数学软件Mathematica,Stephen Wolfram,Weinberg说他学会使用Mathematica软件的那一天是个快乐的日子,它们属通用数学软件,但各有千秋,各有专长 Matlab:数值计算和仿真,接口全,使用方便 Scilab:类似于Matlab,免费,开源 Mathematica:精确的数值和符号运算 Maple与Mathematica 类似,可以同时使用,选用何种数学软件?,Mathematica、Maple与Matlab侧重点非常不同,前两者更在抽象的符号运算上更加强大,后者
6、在数值计算上更具有优势,三者接口都很方便。对于计算量很小的简单数值计算,三者皆可。,价格上Matlab最贵,Maple最便宜,Maple使用Java内核,速度相对较慢,免费包很多。Mathematica速度相对较快,商用包较多,第一章 Mathematica基础,窗口操作指令,执行指令的方法:Shift+Enter 执行部分指令的方法:Ctrl+Shift+Enter 终止指令进行的方法:alt+. 注释符号: (*时间到*),Mathematica以函数为基础,字母区分大小写 函数都以大写字母开头 :命令参数 Sinx ( ):优先计算 (1+3)*9 :列表 RandomReal,3,5
7、IntegrateSinx, x, 0, Pi : 列表的元素,基本命令,; 不显示运算结果,分开一行中的多个命令 ?变量名 显示变量信息?变量名 显示更详细的信息,?* 返回变量清单 ?* 表示所有变量 Clear变量名 or 变量名=. 清除指定符号的取值 ClearAll变量名 清楚指定符号的所有属性 Remove变量名 完全删除符号 % 返回前一次计算结果,重要特点,Mathematica是通过符号运算得出计算结果, 所以计算结果是准确的数学表达式, 而不是近似的数字 Mathematica的“计算精度是任意的”,In1:= 1/7 out1= 1/7,In2:= N1/7 out2=
8、 0.142857,In3:= N1/7, 20 out3= 0.14285714285714285714,N表达式 or 表达式/N 表达式的6位数字近似值 N表达式,n 表达式的n位数字近似值,输入小数自动进入数值计算模式,不是无限精度!,常用常数,常数每个单词都以大写字母开头 Pi 或 圆周率 E 自然对数的底 Degree或o 角度,360o = 2 Infinity或 无穷 ComplexInfinity 复无穷大 GoldenRatio 黄金分割率,常用内置函数,Sqrtx x的算术平方根 Absx x的绝对值 Signx x的符号1,-1,0 Factorialn或n! n的阶乘
9、 Modn,m 整数n除以m的余数 Roundx x最近的整数 Floorx 不大于x的最大整数,Logb,x 以b为底的对数 Expx 指数 Sinx, Cosx, 三角函数ArcSinx, ArcCosx, 反三角函数Sinhx, Coshx, 双曲三角函数ArcSinhx, ArcCoshx, 反双曲三角函数,常用内置函数,丰富的特殊函数,LegendreP, SphericalHarmonicY Gamma BesselJ, 几乎所有常用的特殊函数 ClebschGordan, ThreeJSymbol, SixJSymbol, PauliMatrix,丰富的数据库,各种化学元素的数据
10、 各种同位素的数据 各种基本粒子的数据 常见天体的各种数据 各种物理学的常数 各种单位制 .,基本的算术操作,加+,减-,乘*,除/,乘方Plus, Subtract, Times, Divide 数字与符号之间没有运算符表示“乘法” 乘法表示方法:a*b ab a b 2a注意字符之间的空格! a2不表示相乘!,快捷键提示:乘方 Ctrl + 除法 Ctrl + /根号 Ctrl + ,基本的算术操作,x+ 先使用x的值, 再将x的值自加1 +x 先将x的值自加1, 再使用x的值 x- 先使用x的值, 再将x的值自减1 -x 先将x的值自减1, 再使用x的值,基本的算术操作,x=E; Log
11、x+ Logx,x=E; Log+x Logx,输入法提示,ESC+相应单词+ESCE: ee Pi: p E: ee 无穷大: inf虚数单位: ii 度: deg希腊字母:例如alpha, beta等函数 积分: int 求和: sum趋向: -,基本的算术操作,x+=y 作用x=x+y,使x的值增加y x-=y 作用x=x-y,使x的值减少y x*=y 作用x=x*y,使x的值乘以y x/=y 作用x=x/y,使x的值除以y,= 对变量赋值,变量的赋值与替换,表达式 /. xy 把表达式中的x替换为y 表达式 /. xu,y v 把表达式中的x和y 分别替换为u和v,%的用法,%表示上一
12、步的结果 %表示上上部的结果 %n或者Outn表示第n部的结果,其中n在每一个输出中均有给出,符号表达式的变换,Expand表达式 展开表达式 Factor表达式 多项式的因式分解 Simplify表达式 “化简”表达式,FullSimplify函数更加强大,符号表达式的变换,Collect多项式,x 按照x的幂次组合 Coefficient多项式, form, n 多项式中 formn的系数 Togetherexpr 通分expr Apartexpr 部分分式展开 Cancelexpr 约分expr Numeratorexpr 取出expr的分子 Denominatorexpr取出expr的
13、分母,极限,Limitexpr, x-x0 x趋近于x0时 expr的极限,求(偏)微分和全微分,Dexpr, x 求expr对x的导数 Dexpr, x, n 求expr对x的n阶导数 Dexpr,x1,x2 求expr对x1,x2.偏导数 Dtexpr 求expr的全微分 Dtexpr, x 求expr对x的全微商 Dtexpr, x, n 求expr对x的n阶全微商,导数符号: ESC+DD+ESC下标输入:Ctrl+_,积分,Integrateexpr, x expr对x的不定积分 Integrateexpr, x, xmin, xmax expr对x在区间(xmin, xmax)的定
14、积分 Integrateexpr, x, xmin, xmax, y, ymin, ymax expr的二重积分,积分符号: ESC+int(intt, dintt)+ESC 下标: Ctrl+_ 上标: Ctrl+% 微分符号: ESC+dd+ESC,级数展开,Seriesf, x, x0, n 给出f在x0处 的幂级数展开到n阶 Seriesf, x, x0,nx, y, y0, ny先对y幂级数展开,再对x SeriesCoefficientseries, n 给出级数中第n次项的系数 Series函数常与Normal联合使用,求和&求积,Sumf, i, imax 从i=1开始到ima
15、x的求和 NSumf, i,imin,imax,di 从i= imin开始, 到imax的求和,di为步长 NSumf, i,imin,imax,di 数值求和,di为步长,求积的函数(略),多重求和,ESC+sum(sumt)+ESC,无穷积分或者求和,自定义函数,fx_ := x的函数表达式,:=和=的差别,:=定义,后赋值。而=立即赋值,与:=类似,:表示后应用规则,_的含义,_表示任意表达式,x_中的x没有特定含义,仅仅用来标记相应的任意表达式 _后可以跟着变量类型,例如x_Integer表示任意整数,数值类型还有Rational, Real, Complex,Pattern,_表示更
16、一般的表达式_:表示预设值,/;表示条件,基本一元函数作图,Plotfx,x,xmin,xmax 在xminxxmax上绘制函数fx的图形Plotfx,gx,x,xmin,xmax 在xminxxmax上绘制多个函数fx, gx等的图形;,Mathematica能很好地处理“奇点”,ParametricPlotxt, yt,t,tmin,tmax ,参数方程作图基础,四叶玫瑰线,极坐标方程,代数方程求解,命令 Solve Nsolve Roots Reduce FindRoot,Solve方程,变量 方程要用= 如果方程右边是”=0”,可以省略该部分 方程只有一个变量时, 可以不标出变量; 有
17、多个变量的时候必须标出方程变量,给出4次以下方程的精确解,代数方程组求解,如果未知数个数与方程数目相同, 则可以省略变量标注部分,Solve方程1&方程2,变量1,变量2,Solve方程1,方程2,变量1,变量2,代数方程(组)的数值解,NSolve方程,变量作用等同于NSolve方程,变量,得出方程6位有效数字近似解 NSolve方程,变量,n作用等同于NSolve方程,变量,得出方程n位有效数字近似解,隐式符号解 #1:未知变元,Roots方程,变量 输出逻辑表达式,标准结果,“或”的结果,关系运算符,= != = = ! & | Xor表达式 请尝试一下ESC + 关系运算符 + ESC,Reduce方程,变量 给出全部的解,Reduce的其他作用,不等式程序包,切线法求解,FindRoot方程,初值 求数值根,如果方程右是”=0”,可以省略该部分一定要给出合理的初始值,否则可能无法求出方程的解用绘图方法观察初始值,割线法求解,FindRoot方程,x,x0,x1 求数值根,(x0, x1)是根的间隔区间,即在此区间只有且仅有方程的一个根,