第一讲Mathematica基础.ppt
数学四个分支与数学机械化数学四个分支与数学机械化F数学四大分支:数学四大分支:F分析学分析学F代数学代数学F几何学几何学F计算机数学计算机数学老三基n近代数学的三大基础课:n数学分析斐礼文:数学分析中的典型问题与方法,高等教育出版社n高等代数n解析几何新三基n泛函分析n抽象代数n微分几何陈省生(整体微分几何的奠基人)n天衣岂无缝,匠心剪接成。浑然归一体,广邃妙绝伦。造化爱几何,四力纤维能。千古存心事,欧高黎嘉陈。数学机械化n数学机械化的基本内容主要有两方面:n一方面,将传统数学中可以算法化求解或求证的问题,利用计算机及数学软件完成或实现;n另一方面,实现数学机械化首先要将问题转化为可算法化问题,n然后按照MAP思想,即Model(模型)+Algorithm(算法)+Program(程序),确定正确的具有操作性的算法,再选择适当的平台软件设计相应的计算机程序,也就是:n问题数学问题算法程序计算机实现n数学建模:Matlab在数学建模中的应用nMatlab神经网络30个案例分析Mathematica基础基础教材:教材:Mathematica在大学在大学数学课程中的应用,丁大正数学课程中的应用,丁大正 编编著著数学软件数学软件 公共基础软件:公共基础软件:BASIC,FORTRAN,C等等 数学软件:为解决数学问题的专用系统数学软件:为解决数学问题的专用系统应具备的一般功能应具备的一般功能:数值计算数值计算符号计算符号计算绘制图形绘制图形编程功能编程功能 著名的著名的数学软件数学软件 MathCAD,Matlab,Mathematica,MapleLINDO、SPSS、SAS、IDL 由美国由美国Mathsoft公司开发公司开发 早期的早期的DOS下的下的1.0版本(版本(1986)Windows下的下的4.0版本版本 14.0版本(版本(PTC)Win9X/NT下的下的7.0 采用采用WYSWYG界面界面 功能:集文本编辑、数学计算、程序编辑和功能:集文本编辑、数学计算、程序编辑和仿真于一体仿真于一体1、MathCAD常用的有常用的有 MathCAD 7.0 及及 MathCAD 2000 70年代年代:Matrix Lab.用来提供用来提供Linpack和和Eispack软件包的接口程软件包的接口程序。用序。用Fortran编写。编写。80年代年代:3.0版本(版本(DOS)1984年年:成立:成立Mathworks公司公司 2008年年:7.6版本(版本(Windows)2009年年:2009a,2009b(Win,Unix)2、MatLABCleve Moler由主程序和各种工具包组成由主程序和各种工具包组成主程序包主程序包:数百个内部核心函数:数百个内部核心函数工具包工具包:复杂系统仿真、信号处理工具包、系:复杂系统仿真、信号处理工具包、系统识别工具包、优化工具包、神经网络工具包、统识别工具包、优化工具包、神经网络工具包、控制系统工具包、控制系统工具包、分析和综合工具包、样条工分析和综合工具包、样条工具包、符号数学工具包、图像处理工具包、统具包、符号数学工具包、图像处理工具包、统计工具包计工具包 数值计算的先锋数值计算的先锋,以矩阵作为基本数据单位,以矩阵作为基本数据单位数值计算不能完全依赖于数值计算不能完全依赖于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语言开发,可移植到各种平台上语言开发,可移植到各种平台上 功能强大功能强大 *数值处理、符号计算、图形功能数值处理、符号计算、图形功能 1988年年 Mathematica 1.0版版 标志着标志着现代科技计算现代科技计算的开始的开始F2008年年 Mathematica 6.03版版F2009年年Mathematica 7.01版版 1959年出生于伦敦年出生于伦敦 15岁岁 发表首篇粒子物理方面发表首篇粒子物理方面的论文;的论文;17岁,论文发到了岁,论文发到了Nuclear Physics 20岁岁 Caltech 理论物理理论物理Ph.D 22岁岁 最年轻的最年轻的MacArthur Genius Fellowship 研究领域:高能物理、量子研究领域:高能物理、量子场论、宇宙学场论、宇宙学Stephen Wolfram 1981年年 复杂性的起源复杂性的起源 1986年年 Univ.Illinois的物理学、的物理学、数学和计算机科学教授数学和计算机科学教授 创立创立 Wolfram Research,Inc 1988年年6月月23日日 发布数学软件发布数学软件MathematicaStephen WolframWeinberg说他学会使用说他学会使用Mathematica软件的那一天是软件的那一天是个快乐的日子个快乐的日子它们属它们属通用通用数学软件,但各有千秋,各有专长数学软件,但各有千秋,各有专长Matlab:数值数值计算和计算和仿真,接口全,使用方便仿真,接口全,使用方便Scilab:类似于:类似于Matlab,免费免费,开源开源Mathematica:精确的:精确的数值数值和和符号符号运算运算Maple与与Mathematica 类似,类似,可以同时使用可以同时使用 选用何种数学软件选用何种数学软件?Mathematica、Maple与与Matlab侧重点非常不同侧重点非常不同,前两者更在抽象的符号运算上更加强大,后者,前两者更在抽象的符号运算上更加强大,后者在数值计算上更具有优势,三者接口都很方便。在数值计算上更具有优势,三者接口都很方便。对于计算量很小的简单数值计算,三者皆可。对于计算量很小的简单数值计算,三者皆可。价格上价格上Matlab最贵,最贵,Maple最便宜最便宜Maple使用使用Java内核,速度相对较慢,免费包很多。内核,速度相对较慢,免费包很多。Mathematica速度相对较快,商用包较多速度相对较快,商用包较多第一章第一章 Mathematica基础基础窗口操作指令窗口操作指令执行指令的方法:执行指令的方法:Shift+Enter执行部分指令的方法:执行部分指令的方法:Ctrl+Shift+Enter终止指令进行的方法:终止指令进行的方法:alt+.注释符号:注释符号:(*时间到时间到*)数的表示与计算数的表示与计算Mathematica是通过符号运算得出计算结是通过符号运算得出计算结果果,所以如果不声明,则计算结果是所以如果不声明,则计算结果是准准确的数学表达式确的数学表达式,而不是近似的数字。而不是近似的数字。Mathematica的的“计算精度是任意的计算精度是任意的”。In1:=1/7out1=1/7In2:=N1/7out2=0.142857In3:=N1/7,20out3=0.14285714285714285714N表达式表达式 or 表达式表达式/N 表达式的表达式的6位数字近似值位数字近似值N表达式表达式,n 表达式的表达式的n位数字近似值位数字近似值近似数的精度控制近似数的精度控制函数函数N输入小数自动进入数值计算模式,不输入小数自动进入数值计算模式,不是无限精度!是无限精度!常用常数符号常用常数符号常数每个单词都以大写字母开头常数每个单词都以大写字母开头Pi 或或圆周率圆周率E 自然对数的底自然对数的底Degree或或o角度,角度,360o=2Infinity或或无穷无穷ComplexInfinity 复无穷大复无穷大GoldenRatio 黄金分割率黄金分割率变量1.变量命名规则变量命名规则Mathematica中的变量名必须以字母开头的、中的变量名必须以字母开头的、由字母或数字组成的字符串,不能含有由字母或数字组成的字符串,不能含有空格或标点符号,大写与小写字母表示空格或标点符号,大写与小写字母表示不同的变量。不同的变量。例如:例如:x,a1,b12,Tc都是合法的变量;都是合法的变量;2a是不合法的变量;是不合法的变量;a1与与A1代表不同的代表不同的变量。变量。变量查找变量查找;不显示运算结果,分开一行中的多个命令不显示运算结果,分开一行中的多个命令?变量名变量名显示变量信息显示变量信息?变量名变量名 显示更详细的信息显示更详细的信息变量赋值n一个变量可以表示各种类型的数或字符串,也可以表示一个算式。与C语言不同,不必事先声明变量的类型,Mathematica会根据用户给变量所赋的值自动处理。n使用等号给变量赋值,具体格式如下:nx=Value 给x赋值;x=y=Value 同时给x,y赋值;x,y,=Value1,Value2,同时给x,y,z,赋值。变量赋值命令举例变量赋值命令举例x=.清除清除x的值但保留变量的值但保留变量xClearx 清除清除x的值但保留变量的值但保留变量xRemovex 将变量将变量x清除清除Clear“Global*”清除所有变量的值清除所有变量的值Remove“Global*”清除所有变量清除所有变量变量清除变量清除变量清除命令举例%的作用n%:表示前一个输出的内容n%:表示倒数第2个输出的内容n%n:表示第n个输出的内容%作用举例函数函数命名规则命名规则函数名首字母都要大写,后面字母小写函数名首字母都要大写,后面字母小写参数用方括号括起来,不能用圆括号参数用方括号括起来,不能用圆括号例如:例如:Sinx常见函数举例常用内置函数常用内置函数Sqrtxx的算术平方根的算术平方根Absxx的绝对值的绝对值Signxx的符号的符号1,-1,0Factorialn或或n!n的阶乘的阶乘Modn,m整数整数n除以除以m的余数的余数Roundxx最近的整数最近的整数Floorx不大于不大于x的最大整数的最大整数Logb,x 以以b为底的对数为底的对数Expx指数指数 Sinx,Cosx,三角函数三角函数 ArcSinx,ArcCosx,反三角函数反三角函数 Sinhx,Coshx,双曲三角函数双曲三角函数 ArcSinhx,ArcCoshx,反双曲三角函数反双曲三角函数 常用内置函数常用内置函数丰富的特殊函数丰富的特殊函数n LegendreP,SphericalHarmonicYnGammanBesselJ,n几乎所有常用的特殊函数几乎所有常用的特殊函数nClebschGordan,ThreeJSymbol,SixJSymbol,PauliMatrix数据结构数据结构表表表是存储多个数、变量或算式等对象的表是存储多个数、变量或算式等对象的一种数据结构一种数据结构一个表用一对花括号表示一个表用一对花括号表示它的成员(元素)在括号内用逗号隔开,它的成员(元素)在括号内用逗号隔开,同一个表的成员可以有不同的数据类型,同一个表的成员可以有不同的数据类型,表的成员还可以是一个表(子表)表的成员还可以是一个表(子表)表 举例ntn或Partt,n 表示表t的第n个元素nt-n或Partt,-n 表示表t的倒数第n个元素ntn1,n2,或Partt,n1,n2,表示表t的第n1,n2,个元素nti,j或Partt,i,j表示表t的第i个子表的第j个元素nLengtht 表示表t的元素个数表的元素的操作表的元素的操作表的元素操作命令举例表的操作nJoint1,t2 将表t1,t2连接成一个表nUniont1,t2 取表t1,t2的并集组成一个表nIntersectiont1,t2 取表t1,t2的交集组成一个表n。表的操作命令举例