Mathematica语言
- 格式:doc
- 大小:196.50 KB
- 文档页数:18
Mathematica高级数学建模与计算教程第一章:Mathematica概述Mathematica是一种强大的数学建模和计算工具,它能够帮助用户解决各种复杂的数学问题。
本章将介绍Mathematica的基本概念、界面和功能,以及如何开始使用Mathematica。
1.1 Mathematica的基本概念Mathematica是由Wolfram Research公司开发的一款数学软件,它集成了数学计算、数据分析、可视化等多种功能,广泛应用于科学研究、工程和金融等领域。
Mathematica的核心是一种高级程序语言,用户可以用它进行数学建模和计算,并通过交互式界面进行操作。
1.2 Mathematica的界面和功能Mathematica的主界面分为菜单栏、工具栏和工作区等部分。
菜单栏提供了各种功能的快捷操作,工具栏则包含了常用的工具和命令按钮。
在工作区中,用户可以编写和执行Mathematica代码,并查看结果。
1.3 快速开始在Mathematica中,用户可以使用各种内置的函数和命令来进行数学建模和计算。
例如,可以使用内置函数Plot来绘制函数图像,使用函数Solve来求解方程,使用函数Integrate来进行积分等等。
用户可以通过简单的代码来描述数学问题,并得到计算结果。
第二章:数学建模基础数学建模是将实际问题转化为数学问题,并使用数学方法进行求解的过程。
本章将介绍数学建模的基本原理和方法,并结合具体例子演示如何使用Mathematica进行数学建模。
2.1 数学建模的基本原理数学建模的过程可以分为问题定义、数学模型的建立、模型求解和结果分析等几个步骤。
问题定义阶段需要明确问题的背景、目标和约束条件;数学模型的建立阶段需要选择合适的数学模型来描述问题;模型求解阶段需要使用合适的方法和工具进行求解;结果分析阶段需要对求解结果进行验证和解释。
2.2 使用Mathematica进行数学建模Mathematica提供了丰富的函数和命令来支持数学建模的各个步骤。
Mathematica的基本语法特征如果你是第一次使用Mathematica,那么以下几点请你一定牢牢记住:Mathematica中大写小写是有区别的,如Name、name、NAME等是不同的变量名或函数名。
系统所提供的功能大部分以系统函数的形式给出,内部函数一般写全称,而且一定是以大写英文字母开头,如Sin[x],Conjugate[z]等。
乘法即可以用*,又可以用空格表示,如2 3=2*3=6 ,x y,2 Sin[x]等;乘幂可以用“^”表示,如x^0.5,Tan[x]^y。
自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头。
当你赋予变量任何一个值,除非你明显地改变该值或使用Clear[变量名]或“变量名=.”取消该值为止,它将始终保持原值不变。
一定要注意四种括号的用法:()圆括号表示项的结合顺序,如(x+(y^x+1/(2x)));[]方括号表示函数,如Log[x],BesselJ[x,1];{}大括号表示一个“表”(一组数字、任意表达式、函数等的集合),如{2x,Sin[12 Pi],{1+A,y*x}};[[]]双方括号表示“表”或“表达式”的下标,如a[[2,3]]、{1,2,3}[[1]]=1。
Mathematica的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔)。
当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果。
一.数的表示及计算1.在Mathematica中你不必考虑数的精确度,因为除非你指定输出精度,Mathematica总会以绝对精确的形式输出结果。
例如:你输入In[1]:=378/123,系统会输出Out[1]:=126/41,如果想得到近似解,则应输入In[2]:=N[378/123,5],即求其5位有效数字的数值解,系统会输出Out[2]:=3.0732,另外Mathematica还可以根据你前面使用的数字的精度自动地设定精度。
mathematica循环语句在Mathematica中,循环语句是一种重要的编程结构,可以帮助我们有效地处理大量的数据或重复的任务。
下面我们来看看一些常用的循环语句及其用法。
1. For循环:For循环是最常见的循环语句之一,在Mathematica中的语法结构为For[init, test, incr, body],其中init是初始化语句,test是循环条件,incr是迭代语句,body是循环体。
通过For循环,我们可以方便地对一个范围内的数据进行遍历和处理。
2. While循环:While循环是另一种常见的循环语句,其语法结构为While[test, body],其中test是循环条件,body是循环体。
While 循环会在每次迭代前检查循环条件是否成立,只有在条件为真时才会执行循环体。
3. Do循环:Do循环是一种简单而灵活的循环语句,在Mathematica中的语法结构为Do[expr, n],表示对表达式expr进行n次迭代。
Do循环适合于需要重复执行特定次数的任务。
4. Nest循环:Nest循环是一种递归循环语句,在Mathematica中的语法结构为Nest[f, x, n],表示对函数f进行n次嵌套调用。
Nest循环通常用于处理具有递归结构的问题。
5. Table循环:Table循环是一种快速生成数据的循环语句,在Mathematica中的语法结构为Table[expr, {i, n}],表示对表达式expr进行n次迭代,并将结果保存在列表中。
Table循环常用于生成序列数据或矩阵数据。
6. Map循环:Map循环是一种高阶函数循环语句,在Mathematica 中的语法结构为Map[f, data],表示对数据data中的每个元素应用函数f。
Map循环可以简化对数据的处理过程。
7. Select循环:Select循环是一种条件过滤循环语句,在Mathematica中的语法结构为Select[data, test],表示从数据data中筛选出满足条件test的元素。
《Mathematica》使用手册Mathematica 使用手册1.简介1.1 Mathematica 简介1.2 Mathematica 的应用领域1.3 Mathematica 的基本特性2.安装与启动2.1 系统要求2.2 安装 Mathematica2.3 启动 Mathematica2.4 探索 Mathematica 界面2.5 设置用户首选项3.数值计算3.1 基本数值运算3.2 数值函数的使用3.3 数值积分与微分3.4 数值解方程3.5 特殊数值计算技巧4.符号计算4.1 符号数据类型4.2 符号运算与化简4.3 方程求解与解析解4.4 函数极限和级数展开4.5 矩阵与线性代数运算5.绘图与可视化5.1 绘制函数图像5.2 绘制二维与三维图形5.3 自定义图形选项5.4 绘制动态图形5.5 数据可视化6.编程与函数定义6.1 Mathematica 的编程语言 6.2 函数的定义与使用6.3 控制流程与条件判断6.4 模块化与函数封装6.5 文件读写与外部程序交互7.数据分析与统计7.1 数据导入与清洗7.2 数据处理与转换7.3 数据可视化与探索7.4 数值统计与假设检验7.5 机器学习与数据建模8.物理与工程应用8.1 经典力学模拟8.2 电磁场与电路分析8.3 量子力学与粒子物理8.4 工程建模与仿真8.5 数据分析在物理与工程中的应用9.MATLAB 兼容性与互操作9.1 导入与导出 MATLAB 数据9.2 运行 MATLAB 代码9.3 在 Mathematica 中调用 MATLAB 函数 9.4 在 MATLAB 中调用 Mathematica 函数9.5 MATLAB 兼容性的限制与注意事项10.Mathematica 社区与资源10.1 论坛和社区支持10.2 官方文档与教程10.3 第三方扩展包与资源10.4 在线学习资源10.5 Mathematica 社区的活动与会议本文档涉及附件:附件1:示例代码文件附件2:图形绘制示例文件附件3:数据分析样本数据集本文所涉及的法律名词及注释:1.版权:法律上对原创作品的保护权益。
Mathematica语言Mathematica是一个功能强大的数学软件.它集数值计算、符号运算,绘图功能于一身,堪称众多数学软件中的佼佼者.加之其语法规则简单,操作使用方便,深受广大科技工作者的喜爱,得到广泛的使用.一Mathematica概述1. Mathematica的特点(1)内容丰富,功能齐全Mathematica能够进行初等数学,高等数学、工程数学等的各种数值计算和符号运算.特别是其符号运算功能,给数学公式的推导带来极大的方便.它有很强的绘图能力,能方便的画出各种美观的曲线、曲面,甚至可以进行动画设计.(2)语法简练,编程效率高Mathematica的语法规则简单语句精练.和其它高级语言(如C,Fortran语言)相比,其语法规则和表示方式更接近数学运算的思维和表达方式.用Mathematica编程,用较少的语句,就可完成复杂的运算和公式推导等任务.(3)操作简单,使用方便Mathematica命令易学易记,运行也非常方便.用户既可以和Mathematica进行交互式的“对话”,逐个执行命令.也可以进行“批处理”,将多个命令组成的程序,一次性地交给Mathematica,完成指定的任务.(4)和其它语言交互Mathematica和其它高级语言,如C,Fortran语言等能进行简单的交互.可以调用C,Fortran等的输出并转化为Mathematica的表示形式,也可以将Mathematica 的输出转化为C,Fortran语言和Tex编译器(注:Tex是著名的数学文章编辑软件,用它打印出的文章,字体漂亮、格式美观)所需的形式.甚至还可以在C语言中嵌人Mathematica 的语句.这使Mathematica编程更灵活方便增强了Mathematica的功能.2. Mathematica运行和基本操作Mathematica有各种版本(Dos版本,Windows版本,Unix版本和网络环境下的版本),在此以Windows版本为例介绍其使用方法.当安装好Mathematica后,在Windows界面中就会产生Mathematica的图标,用鼠标双击之,就可以进入Mathematica的工作环境.此时便可以输入Mathematica的命令了.(1)命令的输入和运行例如:要计算28,输入2^8然后同时按下Shift和Return键,或小键盘的Return键,就执行运算并得到结果.此时屏幕显示为:In[1]:=2^8out[1]=256其中In[1]:= 是Mathematica自动加上的,表示第一个输入.Out[1]= 表示第一个输出.按照同样的方式,接下来可继续输入一个命令,并运行之….这种一问一答的方式称为“对话”,式的计算,是常用的方式. Mathematica 还提供“批处理”的运行方式,即将多个命令组成的程序,一次性地交给Mathematica 进行处理,完成指定的运算.例如:画出曲线y=x 2和直线x+y=2在区间[-4,4]的图形,并求二曲线的交点,输入指令 Plot[{x^2,2-x},{x,-4,4}],则输出图:再输入指令 Solve[{y==x^2,x+y==2}],则得到结果 {{y->1,x->1},{y->4,x->-2}} (2)程序的保存和调用若要将整个程序保存下来,并且希望下次工作时继续以前的计算,可直接进行菜单操作,类似Word 的操作.文件的扩展名为nb(3)帮助信息Mathematica 提供了大量的帮助信息,帮助用户掌握Mathematica 的功能.要查帮助信息,有两种方法:一是键入?或??,二是按F1键 例如, 要查命令”Plot”的信息.?Plot --------显示Plot 的信息Plot @f ,8x ,xmin,xmax<D generates a plot of f as afunction of x from xmin to xmax.Plot @8f 1,f2,...<8x ,xmin,xmax<Dplots several functions fi.?? Plot -------显示Plot 的更多信息?P* ---------列出以P 打头的目标的名字也可按F1键,弹出如右窗口: 再作进一步的查询。
把Mathematica当做一种编程语言杂谈:把Mathematica 当做一种编程语言公开2013-07-31 14:26 |(分类:默认分类)在很大一部分Mathematica 用户眼中,Mathematica 只不过是一个兼有符号操作和数值计算功能、用户界面良好的计算软件而已,由于中文资料的相对缺乏,这一点在中文用户中尤其严重。
稍微挑选基本在互联网上可见的中文本土教程,比如张韵华、王新茂教授等人编著的Mathematica 7 实用教程,徐安农所编写的Mathematica 数学实验等等,基本上从软件教学的层面编写的。
从编程语言、计算机科学角度编写的中文资料,即使有,也是相当贫瘠的。
实际上,尽管Mathematica 脱胎于Stephen Wolfram 最早的SMP符号操作程序,但却是作为一种编程语言被设计的。
Mathematica 的底层解释器大部分由 C 语言写成,此外一些极端要求速度的基础计算函数也由C 语言支持,而其他大量的实用函数以及包由则是由Mathematica 编程语言来实现的。
解释器和这些函数构成了所谓的Mathematica Kernel。
Mathematica 这个生态系统的另外一个重要组成部分是前端(Front End),大量美轮美奂的数学公式显示,图形绘制,文档排版功能都极大程度地依赖前端,而前端和Kernel 之间通过MathLink 进行交互。
Front End 和Kernel 被设计得相当独立,尽管并不普遍,但是Front End实际上是可以被当做独立的软件来使用的,用户可以在上面编辑文字公式,生成漂亮的文档、演示文稿,绘制图形等等。
个人感觉,学习Mathematica 编程,至少有三点是一定需要了解的:“Everything is Expression” 的语言设计原则、“规则替换”的系统实现机理和“模式匹配”引擎的强大效用。
从设计上来说,Mathematica 遵循“Everything is Expression” 的哲学,这种哲学可以大大简化解释器的设计,也可以产生“统一”的数学美感。
mathematica编程Mathematica是一种功能强大的数学建模和计算机代数系统,它提供了丰富的数学函数、图形绘制和数据分析工具,可以用于各种科学和工程计算领域。
通过编程,我们可以利用Mathematica来解决各种数学问题,从简单的代数运算到复杂的数据分析和机器学习。
Mathematica的编程语言是一种功能强大且易于学习的语言,它类似于传统的编程语言,如C和Python,但具有更高级的数学和符号计算功能。
下面我将介绍一些Mathematica编程的基础知识和常用技巧。
首先,我们需要了解Mathematica的基本语法。
Mathematica的基本单位是表达式,可以是数值、符号、函数或其他表达式。
表达式可以使用中缀、前缀或后缀形式来表示。
Mathematica有丰富的内置函数,可以用于数学计算、图形绘制、数据处理等方面。
在Mathematica中,我们可以使用变量来存储数值、符号或表达式。
变量的命名规则与其他编程语言相似,可以包含字母、数字和下划线,但必须以字母或下划线开头。
我们可以使用赋值运算符“=”将一个表达式赋给一个变量,例如:x = 3;y = x^2 + 2x + 1;在这个例子中,变量x被赋值为3,变量y被赋值为x的平方加2x加1的结果。
我们可以通过输入变量的名称来获取它们的值。
Mathematica提供了各种数学函数,可以用于数值计算和符号计算。
例如,我们可以使用内置的求和函数Sum来计算一个数列的和:Sum[i^2, {i, 1, 10}]这个例子中,我们计算了从1到10的平方和。
Mathematica还提供了诸如求导、积分、解方程等功能,可以帮助我们解决各种数学问题。
除了数学计算,Mathematica还可以用于绘制图形和处理数据。
例如,我们可以使用Plot函数绘制一个函数的图像:Plot[Sin[x], {x, 0, 2Pi}]这个例子中,我们绘制了正弦函数的图像。
群:第一章Mathematica入门1. Mathematica概述目前最常用的版本是Mathematica8.0。
Mathematica的基本系统是用C语言编写的,因此能够很方便地移植到各种计算机系统上。
Mathematica拥有强大的数学计算功能,早期主要在数学、物理等理论研究领域中流传,近几年在工程技术领域中也已被广泛地应用。
Mathematica是一种数学分析(Math Analysis)型的软件,以符号计算见长。
其最大的优势在于用户可以得到解析符号解,只要用户愿意,还可以得到任意精度的数值解。
Mathematica主要有以下特点:(1)内容丰富,功能齐全Mathematica能够进行初等数学、高等数学、工程数学等的各种数值计算和符号运算。
特别是其符号运算功能,给数学公式的推导带来极大的方便。
它有很强的绘图能力,能方便的画出各种美观的曲线、曲面,甚至可以进行动画设计。
(2)语法简练、编程效率高Mathematica的语法规则简单,语句简练。
和其它高级语言(如C,Fortran语言)相比,其语法规则和表示方式更接近数学运算的思维和表达方式。
用Mathematica编程,用较少的语句,就可完成复杂的运算和公式推导等任务。
(3)操作简单,使用方便Mathematica命令易学易记,运行也非常方便。
用户既可以和Mathematica进行交互式的“对话”,逐个执行命令。
也可以进行“批处理”,将多个命令组成的程序,一次性地交给Mathematica,完成指定任务。
(4)和其它语言交互Mathematica和其它高级语言,如C,Fortran语言等能进行简单的交互,可以调用C,Fortran等的输出,并转化为Mathematica的表示形式,也可以将Mathematica的输出转化为C,Fortran语言和Tex编译器(注:Tex是著名的数学文章编辑软件,用它打印出的文章,字体漂亮、格式美观)所需的形式。
Mathematica常用语句一、常用常量PiπE eDegree 度(π/180)GoldenRatio 黄金分割比(0.618)Infinity 无穷大∞I 虚数单位ix=. 取消赋值xClear[x] 取消赋值x二、初等函数Log[x] ln xLog[a,x] log a xExp[x] x eSqrt[x] xSin[x] sin(x)Cos[x] cos(x)Tan[x] tan(x)Cot[x] cot(x)ArcSin[x] arcsin(x)ArcCos[x] arccos(x)三、函数的定义f[x_]:= 定义一元函数f[x_,y_]:= 定义二元函数四、常用函数:Plus[n1,n2,] 求和N[x,n] 取x的n位有效数字Abs[x] 取x的绝对值(x为复数时为取x的模) Sign[x] 符号函数Round[x] 最接近x的整数(可比x大也可比x小) Floor[x] 不大于x的最大整数Ceiling[x] 不小于x的最大整数Max[x1,x2,] 取变量x1,x2,的最大值Min[x1,x2,] 取变量x1,x2,的最小值Re[z] 取复数z的实部In[z] 取复数z的虚部Conjugate[z] 取复数z的共轭Arg[z] z的辐角Quotient[m,n] 取商函数(m被n除的整数部分)Mod[m,n] 取余函数(m被n除的余数部分)n!n的阶乘n!!n的双阶乘Binomial[n,m] 二项式系数mCn% 最近一次输出结果%% 倒数第二次输出%n 第n个输出结果Solve[方程] 解方程Fit[] 曲线拟合函数Simplify[] 用于化简的函数If语句If[条件,t,f]满足条件:执行t否则执行fIf[条件,t,f,u] 满足条件:执行t否则执行f无法判别执行u Which语句Which[条件1,t1,条件2,t2] 满足条件i执行ti五、表1、表的建立表名={元素1,元素2,}{循环变量n,循环初值n0,循环终值ni,步长增量d}(d为1时可省)Range[循环初值n0,循环终值ni,步长增量d](d为1时可省;n0为1时也可省)Table[通项公式f(m,n,),{m,m0,mi,d1},{ n,n0,ni,d1}]Array[f,n] 生成长为n,元素是f[i]的表Array[f,n,n0] 生成长为n,元素是f[i]且从f[n0]开始的表Array[f,{m,n}] 生成长为{m,n},元素是f[i,j]的二维数表Array[f,{n1,n2,}] 把f作用到n1,n2,构成的表2、表的调整Length[t] 求表中元素个数(即表长)T[[n]] 表t中第n个元素T[[-n]] 表t中倒数第n个元素First[t] 表t中第一个元素Last[t] 表t中最后一个元素T[[i,j]] 表t中第i个子表中的第j个元素T[[{n1,n2,}]]或Part[t,{n1,n2,}] 由表t中n1,n2,等元素组成的数表Position[t,x] 元素x在表t中的位置Take[t,{m,n}] 从表t中取出m~n的元素Rest[t] 去掉表t中第一个元素Drop[t,{m,n}] 从表t中去掉m~n的元素Prepend[t,a] 将a加到表t的第一位Append[t,a] 将a加到表t的最后一位Insert[t,a,k] 将a加到表t的第k位Raplace[t,a,k] 用a替换表t的第k位Apply[f,t] 将函数f作用到表t的每一位Sort[t] 将元素依标准排列(数字按大小,字母按abc) Reverse[t] 将元素按顺序倒排RatateLeft[t,k] 将元素向左轮换k位RatateRight[t,k] 将元素向右轮换k位Partition[t,n] 将表t分成n个元素的块Partition[t,n,d]Transpose[t] 将表t转置Join[t1,t2] 将t1和t2合并,但是不去掉重复元素Union[t1,t2,] 并集运算Intersection[t1,t2,] 交集运算Complement[t1,t2] 从t1中去掉t2中的元素六、绘图1、绘图函数Plot[f[x],{x,a,b}] 画f[x]在区间[a,b]上的函数图象ParametricPlot[{x[t],y[t]},{t,a,b }] 画参数图ListPlot[{x1,y2},{x2,y2},] 绘制点图Plot3D[f[x,y],{x,x0,x1},{y,y0,y1}] 三维图像ParametricPlot3D[{x[t],y[t],z[t]},{t,t0,t1}]参数三维图2、绘图函数修饰项①二维绘图所用的修饰项PlotRange->{a,b} 确定函数值得范围(a~b)PlotStyle->{RGBColor[a,b,c]}确定曲线颜色P lotStyle->{AbsoluteThickness[n]}确定曲线粗细(n=1、2、)②三维绘图所用的修饰项PlotPoints->{a,b} 网格数a×b个PlotRange->{a,b} 确定函数值得范围(a~b)Axes->True/False 是否显示坐标轴Boxed->True/False 是否加立体框Mesh->True/False 是否加网格Shading ->True/False 是否在曲面着色HiddenSurface-> True/False 被挡部分是否隐藏ViewPoint->{a,b,c} 调整观察角度七、极限与导数Limit[f[x],x->a] alim ()x f x → (a 可以是∞) Limit[f[x],x->a,Direction->1]求右极限 Limit[f[x],x->a,Direction->1]求左极限 D[f[x],x]df dx 或f x ∂∂ D[f[x],{x,k}]k 阶导数或k 阶偏导 D[f,x1,x2, ,xk] 1k f x x ∂∂∂D[f[x],x,NonConstants->{v1,v2,}] 求导时vi 是关于x 的函数 Dt[f,x]复合函数f 关于x 的导数 Dt[f,{x,k}]复合函数f 关于x 的k 阶导数 Dt[f,{x,k},Constants->{c1,c2,}] 求导的时候ci 看为常数Dt[f]全微分 f `[x]一阶导数( ` 是1前面的那个) f ``[x]二阶导数 Simplify[] 用于化简的函数FindMinimum[f,{x,x0}] 在x0附近求极值点(求极大值用-f)FindMinimum[f,{x,{x0,x1}}] 以x0,x1为初始值搜索极值 (用于无导数)FindMinimum[f,{x, {x,x0,a,b}] 求以x0为初始值搜索[a,b]区间的极值FindMinimum[f,{x, {x,a,b}] 求在[a,b]间的极值FindMinimum[f,{x, {x,x0},{y,y0}]多元函数极值 八、积分Integrate[f,x] 不定积分(f:被积函数,x:积分变量)Integrate[f,{x,a,b}] 定积分(f:被积函数,x:积分变量,a:上限,b:下限) Integrate[f,{x,x0,x1},{y,y0,y1},] 多重积分NIntegrate[f,{x,a,b}] 定积分近似值九、微分方程DSolve[方程组,函数f[x],变量x] 解微分方程(方程组可含有初边值条件) NDSolve[方程组,函数符号,变量符号及范围] 解微分方程数值解十、线性代数Array[a,{m,n}] 建一个m行n列的矩阵,元素为a[i,j]IndenityMatrix[n] 建一个n阶单位阵DiagonalMatrix[t] 建一个对角线上为表中元素的方阵MatrixForm[A] 将矩阵A按矩阵形式输出Det[A] 求方阵A的行列式Transpose[A] 矩阵A的转置Inverse[A ] 方阵A的逆矩阵A*B A与B对应元素相乘Dot[a,b]或a.b 数量积(.右下角)Cross[a,b]或a⨯b 向量积(⨯在输入模块上)Minors[M,k] 矩阵M的所有可能的k阶子式组成的矩阵RowReduce[A] 求A的行约化矩阵LinearSolve[A,B] 求满足Ax=B的一个解NullSpace[A] 求Ax=0的基础解析Eigenvalues[M]求方阵M 的特征值 Eigenvectors[M]求方阵M 的特征向量 Eiginsystem[M] 求方阵M 的特征值和特征向量 十一、级数Series[f,{x,x0,n}] 将函数f 做泰勒展开到0()n x x SeriesCoefficient[s,n] 求级数s 中第n 阶的系数Normal[s] 舍去级数s 的余项部分 FourierTrigSeries[f[x],x,k, FourierParameters->{a,1T }]f[x]的k 阶傅里叶展开(T:周期,a:基本周期区间中心) 十二、概率Mean[d]求均值 Median[d]求中位数 Quartiles[d]求0.25分位数,中位数,0.75分位数 Quantile [d,k]求k 分位数 Variance[d]求方差(无偏估计是的方差) StandardDeviation[d] 求标准差(无偏估计是的标准差) VarianceMLE[d] 求方差(总体方差的极大似然估计) StandardDeviationMLE[d]求标准差SampleRange[d] 极差CentralMoment[d,k] k 阶中心距(k=2、3、4)Skewness[d]偏度 Kurtosis[d] 峰度BinCounts[d,{a,b,k}] 将a~b 按长度k 等分小区间,求出在每个小区间的数据个数Max[x1,x2,] 取变量x1,x2,的最大值Min[x1,x2,] 取变量x1,x2,的最小值Length[t] 求表中元素个数(即表长) BarChart[bc] 画直方图(bc为数据对)。
附录Mathematica 软件简介Mathematica是一个功能强大的数学软件.它集数值计算、符号运算,绘图功能于一身,堪称众多数学软件中的佼佼者.加之其语法规则简单,操作使用方便,深受广大科技工作者的喜爱,得到广泛的使用.数学函数和常数Mathematica提供了大量的数学函数,给运算带来很大方便.下面列出一些常用的函数.注:Mithematica提供的函数,其名称中的字母大小写是固定的(特别开头字母均为大写),不得误用;函数的自变量以方括号[ ]括起来.Mathemaica还提供了许多数学常数,下面列出了一些常数(均以大写字母开头).Pi -------------------π; E---------------------e; Infinity--------------∞I----------------------1函数和常数均可参与运算,下面是一些运算的例子.In[ l]:=Pi^2Out[ 1]=π2In[2]:=N[ Pi,11]Out[2]=3.1415626535In[3]:=Log[E^8]Out[3]=8In[4]:=Sin[Sqrt[%1]/6]Out[4]=1/2用户不仅可以使用Mathemaica提供的函数和常数,还可以自定义函数和常数.方法如下:形式功能f[x_]:= expr-------------定义函数ff[x_,y_]:=exp r-----------定义多变量的函数f?f------------------------显示函数的定义Clear[f]-----------------清除f的定义x=value-------------给变量x赋值x=.清除变量x的值注:定义函数时,在等式左端的方括号中的变量必须跟随下到线符号“_”;定义的函数或变量的名称不要使用大写字母开头,以免和Mathemaica的函数或常数混淆.例:In[1]:=f[x_]:=x^5;f[x_,y_]:=Sqrt[x^2+y^2];z=3;其中输入语句后的分号“;”表示不显示输出结果,定义了函数、变量以后,便可以在运算中使用.In[4]:=f[2]Out[4]=32In[5]:=f[1+b]Out[5]=(1+b)2In[6]:=g[z,4]Out[6]=5如果忘记了已定义的函数的内容,可以使用?f查询f的定义.当函数或变量使用完以后,最好将其清除,以免带来麻烦.3.符号运算符号运算即代数式的运算.它是Mathemaica的重要功能.下面简介符号运算的主要功能.(1)符号赋值Mathemaica不仅可以把一个常值赋给一个符号,还可以把一个表达式赋给一个符号.其规则如下:x =value--------------------将value 赋给x x =.-----------------------清除赋给x 的值expr/.x-> value -------------用value 替换expr 中的xexpr/.{x->xvalue,y->yvalue}----------用xvalue,yvalue 分别替换expr 中的x,y. 例:In[1]:=t =l +x Out[1]=1+x In[2]:= l- t^ 2 Out[2]=1-(1+x)2 In[3]:=t =. Out[3]=1-(1+x)2 In[4]:=l- t^ 2 Out[4]=1-t 2 In[5]:=%2/.x->2Out[5]=-8(2)代数式变换Mathernatica 提供了许多进行代数式变换的一些函数,下面列出常用的函数. Expand[expr]-----------------------展开exprExpandAll[expr]--------------------展开expr 的分子、分母 Factor[expr]-------------------------对expr 进行因式分解 Together[expr]----------------------对expr 进行通分 Apart [expr ]---------------------将 expr 分解为简单分式 Cancel[expr]----------------------消去exp r 的分子、分母的公因式 Simplify[expr]--------------------把expr 化为最少项形式 例: In[1]:=t=(x-1)^2(2+x)/((1+x)(x-3)^2),)x ()x ()x ()x (++-++-=1321Out[1]22 In[2]:=Expand[t] (展开分子,分母不变)x)(1x)3(x)(1x)3(3x)(1x)(-32Out[2]2322++-+++--++=x x In[3]:=ExpandAll[t] (展开分子、分母)323323253953935392Out[3]x x x x x x x x x x x +-+++-+-+-+=In[4]:=Together[%] (通分)32353932Out[4]x x x x x +-++-=In[5]:=Apart[%] (化为部分分式)x )4(11x )4(-319x )(-351Out[5]2++++++= In[6]:=Factor[%] (分解因式)x)(1x)(-3x)(2x)(-1Out[6]22++++= In[7]:=Simplify[%5] (将表达式化简)322539x )(2x )(-1Out[7]xx x +-+++= 除了上述常用的变换外,Mathematica 还可以进行许多种类型的变换.下面再看一些例子.In[8]:=Expand[2Cos[x]^3*Sin[2x]^2, Trig->True] (展开三角函数)Out[8]:=Cos @x D 3-Cos @x D 7+6Cos @x D 5Sin @x D 2-Cos @x D 3Sin @x D4In[9]:=Factor[%,Trig->True] Out[9]=8 Cos[x]5Sin[x]2In[10]:=ComplexExpand[Sin[x+y*I]] (展开复函数) Out[10]:=Cosh[y]Sin[x]+ICos[x]Sin[y]In[11]:=s=Expand[(x+y)^3];In[12]:=Coefficient[s,x^2] (取出s 中x^2项的系数) Out[12]=3yIn[13]:=Numerator[%1] (取出%1中的分子) Out[13]=(-1+x)2(2+x)In[14]:=Denominator[%1] (取出%1中的分母) Out[14]=(-3+x)2(1+x)Mathematica 还允许用户自己定义变换规则,例如: In[15]:=mysin=Sin[2*x_]->2Sin[x]Cos[x]; In[16]:=Sin[2*(x+y)^2]/.mysin Out[16]=2Cos[(x+ y)2]Sin[(x+ y)2]总之Mathematica 进行变换的功能是非常强的.(3)解方程Mathematica 可以用多种方法求解符号方程.下面列出主要的解法: Solve[equ,vars]-------------------求方程的一般解 Reduce[equ,vars]-----------------求方程的全部解 NSolve[equ,vars]----------------求方程的数值解FindRoot[equ,{x,a}]--------------求方程在 a 附近的数值解 其中,equ 是待求解的方程,var 是未知量. 例 In[1]:=Solve[a*x+b==0,x]注:方程中,等号必须用“= =” Out[1]={{x->-b/a}} In[2]:=Reduce[a*x+b==0,x]Out[2]=a == 0 && b == 0 || x ==-b/a && a != 0使用Reduce 给出了a!=0时的解和a=0,b=0时的解,(此时x 为任意值).对四次及四次以下的代数方程, Mathematica 总能给精确解.四次以上的方程,若能分解因式,亦可给出精确解.In[3]:=Solve[x^3+3x^2+ 3x+ 2== 0,x]Out[3]=8x ?-2<,8x ?-H -1L 1?3<,8x ?H -1L 2?3<当求不出精确解时,Mathemaica 以符号形式给出结果In[4]:=x^5+5x+1==0; In[5]:=Solve[%4,x]Out[5]=8x ?Root @1+5#1+#15&,1D <,8x ?Root @1+5#1+#15&,2D <,8x ?Root @1+5#1+#15&,3D <,8x ?Root @1+5#1+#15&,4D <,8x ?Root @1+5#1+#15&,5D <上述方程求不出精确解,此时可求数值解. In[6]:=NSolve[%4,x]Out[6]= 8x ?-1.0045-1.06095?<,8x ?-1.0045+1.06095?<,8x ?-0.199936<,8x ?1.10447-1.05983?<,8x ?1.10447+1.05983?<如果要求在某点附近的数值解,使用FindRoot In[7]:=FindRoot[x*Sin[x]==1/2,{x,1}] Out[7]={x->0.740841}使用 Solve 还可以求解方程组.Out[8]三 微积分进行高等数学中的各种运算是Mathematica 的主要功能.Mathematica 可进行微积分、线性代数和工程数学中的许多运算.特别是其符号运算能力,令人惊叹.现在Mathematica 已受到越来越多科技工作者的欢迎和使用。
mathematica 科学格式
Mathematica是一种计算机代数系统和编程语言,用于进行科
学计算和数据分析。
它支持多种数学和科学格式,包括但不限于以下几种:
1. 数值格式:Mathematica可以处理整数、实数、有理数和复数,并提供高精度计算。
它还支持科学记数法和数字格式控制选项。
2. 基本数学符号和运算:Mathematica支持基本的四则运算
(加法、减法、乘法和除法),以及指数、对数、三角函数等常见数学函数。
3. 矩阵和线性代数:Mathematica具有强大的矩阵和线性代数
功能,可以进行矩阵乘法、行列式计算、特征值和特征向量计算等。
4. 符号计算:Mathematica可以进行符号计算,包括代数运算、方程求解、微积分操作等。
它可以处理符号表达式,并进行符号化简、展开、化简等操作。
5. 统计分析:Mathematica提供了丰富的统计分析功能,包括
描述性统计、概率分布、假设检验、回归分析等。
6. 绘图和可视化:Mathematica具有强大的绘图和可视化功能,可以绘制函数图像、二维和三维图形、数据图表等。
7. 数据处理和分析:Mathematica可以导入、处理和分析各种数据格式,包括文本文件、Excel表格、图像、声音等。
总之,Mathematica提供了丰富的科学计算和数据分析功能,并支持多种数学和科学格式,使得科学工作者可以进行各种数学建模、数据分析和模拟实验。
01第⼀篇Mathematica⼊门第⼀篇Mathematica⼊门⼀、MathematicaMathematica是集⽂本编辑、数值计算、逻辑分析、图形、声⾳、动画于⼀体的⾼度优化的专家系统.它是⽬前⽐较流⾏的数学软件之⼀.Mathematica最显著的特点是⾼精度的运算功能、强⼤的作图功能以及逻辑编程功能.Mathematica是美国WolframResearch公司开发的⼀套专门⽤于进⾏数学计算的软件.从1988年问世⾄今,已⼴泛运⽤到⼯程技术、应⽤数学、计算机科学、财经、⽣物、⽣命科学、以及太空等领域,数以万计的论⽂、科学报告、计算机绘图等都是Mathematica的杰作. 1995年发表的Mathematica3.0版是数学软件史的⼀⼤创新,⽽现在的Mathematica4.1版,则达到了这类软件的顶峰. Mathematica除了提供数值处理与绘图的功能外,还具有符号计算以及处理多项式的各种运算、函数的微分、积分、解微分⽅程、统计、编程,甚⾄可以制作电脑动画及⾳效等等.Mathematica的基本系统是使⽤C语⾔编写的,因此能⽅便地移植到各种计算机系统上.尽管Mathematica有各种各样的版本,但它们有⼀个共同的内核,Mathematica的各种运算都是由内核来完成的.给内核配置不同的前端处理器,就成为适⽤于各种环境的版本.它的DOS版本的特点是运算速度快,对系统的配置要求较低;它在Windows环境下的特点是图⽂并茂,操作⽅便.这⾥介绍的是在Windows环境下的Mathematica4.1版本.Mathematica4.1对计算机的硬件要求如下:1.操作系统:Windows95以上.2.CPU:Inter586级以上的中央处理器.3.硬盘空间:除了要具备120MB的硬盘空间安装Mathematica4.1外,还需具有100MB左右的剩余硬盘空间⽤于进⾏交换⽂件和复杂的运算.4.内存:64MB以上.⼆、Mathematica界⾯简介双击Mathematica的图标即可运⾏Mathematica的主程序.主程序会同时打开⼀个新的⼯作窗⼝和⼀个基本输⼊模板(Basic Input palette).每⼀个⼯作窗⼝代表⼀个⽂件,⽂件名显⽰在⼯作窗⼝的标题栏上,默认的⽂件名为Untitled-1.nb.位于标题栏下的是菜单栏,包括(File,Edit,Cell,Format,Input,Kernel,Find,Window,Help项). ⽤户可以同时打开多个⼯作区,并且可以对每⼀个⼯作区使⽤不同的名字保存.Mathematica将它们分别命名为Untitled-1;Untitled-2;Untitled-3;….1.⼯作区窗⼝⼯作区是显⽰⼀切输⼊、输出窗⼝.⽆论直接输⼊各种算式或命令,还是已经编好的程序,所有的操作都在这个窗⼝运⾏.⼯作区窗⼝也称作Notebook.2.基本输⼊模板基本输⼊模板由⼀系列按钮组成,⽤以输⼊特殊符号、运算符号、常⽤表达式等.⽤⿏标左键单击⼀个按钮,就可以将它所表⽰的符号输⼊到当前的⼯作区窗⼝中.当启动Mathematica4.1之后,基本输⼊模板会显⽰在屏幕的右边,如果没有,则选择File 下拉菜单中的palette -Basic Input命令激活它.3.主菜单Mathematica的菜单项很多,以下只介绍⼀些最实⽤的菜单项.(1)File菜单File下拉菜单项中的New,Open,Close及Save命令⽤于新建、打开、关闭及保存⽤户的⽂件,这些选项与Word相同.另外有⼏个选项是Mathematica特有的,其中最有⽤的是:●Palettes⽤于打开各种模板;●Generate Palette from Selection⽤于⽣成⽤户⾃制的模板;●Notebooks记录最近使⽤过的⽂件.●模板单击Palettes项,会弹出7个英⽂选项,其中第三项BasicInput(基本输⼊模板)就是启动时已经显⽰在屏幕上的模板.其余最有⽤的选项是第⼆项BasicCalculations(基本计算模板).这个模板分类给出了各种基本计算的按钮.单击各项前⾯的⼩三⾓,会⽴即显⽰该项所包含的⼦项.再次单击各⼦项前⾯的⼩三⾓,则显⽰出⼦项中的各种按钮.若单击其中的某个按钮就可以把该运算命令(函数)输⼊到⼯作区窗⼝中,然后在各个⼩⽅块中键⼊数学表达式,就可以让Mathematica进⾏计算了.有了这两个模板,使得⽤户⽆须死记⼤量的命令和相关的参数,便于查询和输⼊.(2) cell(单元)●单元的样式Mathematica4.1的⼯作窗⼝由不同的单元(cell)组成.例如,输⼊表达式的单元称为输⼊单元(input cell),输出表达式的单元称为输出单元(output cell).每⼀个单元都有其特定的样式(style). 输⼊单元默认的样式名称为input,输出单元默认的样式名称为output.注:在新建⼀个单元时,默认为input.●单元的打开与关闭双击最外层单元的括号,即可关闭该单元,只显⽰最外层.同样只要双击已关闭单元的括号,即可打开该单元.●单元的删除选中所要删除单元的括号,按Delete键即可删除所选单元的内容.(3)Help(帮助)在Mathematica4.1中增加了Help Browser帮助系统.在Help Browser中不但汇集了Mathematica4.1的所有命令和使⽤⽅法,⽽且包含了其完整的使⽤⼿册及各种⼯具栏的使⽤⽅法.单击Help菜单中的Help命令,即可激活Help Browser帮助系统.Help Browser共分六⼤帮助信息:1.Built-in Functions 查询Mathematica4.1的所有内部命令与函数的使⽤⽅法.2.Add-ons 查询Mathematica4.1所带的函数库(packages)命令与函数的⽤法.3.The Mathematica Book Mathematica的完整⼿册.4.Getting Started/Demos初学者使⽤说明与范例.5.Other Information 其他信息,如数学表达式的⼆维格式的输⼊⽅法等.6.Master Index⽤索引的⽅法查询Mathematica的关键词.选择搜索主题的类别之后,输⼊关键词,单击Go To按钮开始搜索主题,或者在最左边的选择列表中选择搜索主题的类别之后,再逐渐缩⼩查询范围.例如:要查询Limit命令的使⽤⽅法,可以直接在Help Browser中输⼊Limit再单击Go To按钮,或选择Algebraic Computation-Calculus-Limit找到有关Limit命令的说明.4.退出Mathematica当结束⼯作时,可以选择“File”菜单中的“Exit”选项或单击关闭按纽. Mathematica 会询问是否保存对打开⼯作区内容的修改,选择“Yes”,系统要求指定⽂件名,⽤户可以任意给定⼀个⽂件名并指定位置,确认后系统将该⽂件保存在⽤户所指定的位置,再次打开该⽂件可以继续上次的运算;选择“Don’t Save”放弃保存;选择“Cancel”取消这次操作并返回Mathematica.三、⾃制模板由于BasicCalculations(基本计算模板)的内容太多,查找不⽅便,因此⾃制模板是⼀个⾮常重要的内容.⾃制模板的步骤如下:1.单击主菜单的input项,弹出⼦菜单.选中⼦菜单中的CreateTabel/Matrix/Palette(建⽴表、矩阵、模板)选项出现对话框.2.在对话框中,选中Make: Palette,在键⼊⾏数和列数,则在窗⼝⽣成⼀个可编辑的原始模板.3.⽤⿏标左键单击原始模板中的第⼀个⼩⽅块,然后在打开的BasicCalculations模板中单击⼀个今后经常使⽤的按钮,就可以将它复制到原始模板中.如此循环往复直⾄全部输⼊完成.4.单击File菜单中的Generate Palette from Selection项,就可以建⽴⼀个⾃⼰的模板了.5.单击⾃制模板右上⾓的关闭按钮,Mathematica将询问是否保存⾃制模板,若保存,则出现对话框,将对话框中显⽰的⽂件名“Untitled-1.nb”改成“⾃定义模板.nb”保存到存放Mathematica模板的⽬录D:\Mathematica\4.1\SystemFiles\FrontEnd\Palettes 下,再次启动时,这个模板的名字就会出现在File菜单的Palette选项中,可与Mathematica的模板⼀样使⽤.四、Mathematica 的常⽤语法1.Mathematica 的基本运算Mathematica 的基本运算包括加(+) ;减(-) ;乘(*) 、除(/) 、乘⽅(?) 等.我们可以按照⼀般数学表达式的⼿写格式输⼊这些基本运算,然后按下Shift+Enter 组合键得到输出结果.例如:In[1]:=Out[1]:= 6 In[2]:= 3^2 Out[2]:= 9说明:(1)Mathematica 将输⼊的指令⽤标题“In[n]:=”标识,输出结果⽤“Out[n]:=”标识,其中“n ”表⽰已经输⼊的指令数.(2)Shift+Enter 在Mathematica 中是执⾏运算的命令.2.输⼊和计算数学表达式(1)键盘直接输⼊和运⾏expr : 直接输⼊表达式.例如:在⼯作窗中输⼊,再按Shift+Enter 组合键,执⾏运算.这时,⼯作32)63(2-+?窗会显⽰如下运算:In[1]:=-??3Out[1]:= ??N[expr] 计算表达式的近似数值,Mathematica 默认的有效数字位数为16位,但按标准输出只显⽰前6位有效数字,若要全部显⽰,则⽤N[expr]//InputForm 命令.N[expr ,n] 计算表达式的具有任意指定数字位数的近似值(指定的数字位数n 应该⼤于16),结果在末位是四舍五⼊的. NumberForm[expr , n] 将表达式⽤n 个有效数字表⽰.例1 求的近似值,有效数字分别为6位、8位、16位、32位.e 解: In[1]:= N ??Out[1]:= 2.71828In[2]:= N u m b e r F o r m ?N ,8?Out[2]:= 2.7182818 In[3]:= N[ ]//InputForm Out[3]:= 2.718281828459045 In[4]:= N[ ,32]Out[4]:= 2.7182818284590452353602874713527(2)利⽤基本输⼊模板直接输⼊我们可以利⽤基本输⼊模板所提供的⼀些特殊符号、运算符号、常⽤表达式来输⼊表达式.3.简单的调⽤⽅式有时在后⾯的计算要调⽤到前⾯已经计算过的结果,这时Mathematica 提供了⼀种简单的调⽤⽅式:命令意义%%%%%…% (个%),或 %n n读取前⼀个输出结果.读取前第⼆个输出结果.读取前第个输出结果.n 例如 In[1]:= 3^4Out[1]:= 81 In[2]:= %?5 Out[2]:= 405 In[3]:= %1?%2Out[3]:= 4864.长表达式的输⼊Mathematica 是允许⼀个表达式占⽤多个输⼊⾏的,但需注意的是:必须在指令或语法告⼀段落⽽⼜不完整的地⽅使⽤Enter 键进⾏换⾏.5.有关代数式的⼏个命令(1)多项式的展开与因式分解命令意义[多项式]Expand 对多项式进⾏展开运算.[多项式]Factor 对多项式进⾏因式分解.例2 将多项式展开5)1(y x ++解 In[1]:= Expand[(1+x+y)^5]Out[1]:= 1?5x ?10x 2?10x 3?5x 4?x 55y 20xy例3 将多项式分解因式2223-+-x x x 通过管线不仅可以解路须同时切断习题电源,线缆敷设完毕,要进⾏检查和检测处理。
mathematica 堆栈结构在Mathematica(Wolfram语言)中,堆栈结构通常与函数调用和表达式求值有关。
Mathematica的表达式求值是通过构建表达式树并递归求值的方式进行的,而堆栈则用于跟踪函数调用和表达式求值的状态。
以下是Mathematica中堆栈结构的一些基本概念:1. 堆栈操作函数:- Mathematica 提供了一些函数来进行堆栈操作,例如`Push`(将元素推入堆栈)、`Pop`(从堆栈弹出元素)和`StackInhibit`(阻止堆栈的一部分操作)。
2. Evaluation Stack(求值堆栈):- Mathematica 维护一个求值堆栈,用于存储正在进行的表达式求值的状态。
这个堆栈跟踪函数调用和表达式的嵌套。
3. Trace 和TracePrint:- `Trace` 和`TracePrint` 是用于跟踪表达式求值的函数。
它们可以显示函数调用和表达式求值的步骤,包括堆栈信息。
下面是一个简单的例子,演示了Mathematica 中堆栈结构的一些概念:```mathematica(* 定义一个简单的函数*)f[x_] := x^2 + 1(* 使用Trace 查看表达式求值的步骤*)Trace[f[2], TraceOriginal -> True]```在上述例子中,`Trace` 函数显示了函数`f` 在对输入值`2` 求值时的步骤,包括堆栈信息。
请注意,Mathematica 的堆栈结构通常由系统管理,而大多数用户在日常使用中不需要直接操作堆栈。
有关更多详细信息,建议查阅Mathematica 的文档或教程。
附录Mathematica 软件简介Mathematica是一个功能强大的数学软件.它集数值计算、符号运算,绘图功能于一身,堪称众多数学软件中的佼佼者.加之其语法规则简单,操作使用方便,深受广大科技工作者的喜爱,得到广泛的使用.数学函数和常数Mathematica提供了大量的数学函数,给运算带来很大方便.下面列出一些常用的函数.注:Mithematica提供的函数,其名称中的字母大小写是固定的(特别开头字母均为大写),不得误用;函数的自变量以方括号[ ]括起来.Mathemaica还提供了许多数学常数,下面列出了一些常数(均以大写字母开头).Pi -------------------π; E---------------------e; Infinity--------------∞I----------------------1函数和常数均可参与运算,下面是一些运算的例子.In[ l]:=Pi^2Out[ 1]=π2In[2]:=N[ Pi,11]Out[2]=3.1415626535In[3]:=Log[E^8]Out[3]=8In[4]:=Sin[Sqrt[%1]/6]Out[4]=1/2用户不仅可以使用Mathemaica提供的函数和常数,还可以自定义函数和常数.方法如下:形式功能f[x_]:= expr-------------定义函数ff[x_,y_]:=exp r-----------定义多变量的函数f?f------------------------显示函数的定义Clear[f]-----------------清除f的定义x=value-------------给变量x赋值x=.清除变量x的值注:定义函数时,在等式左端的方括号中的变量必须跟随下到线符号“_”;定义的函数或变量的名称不要使用大写字母开头,以免和Mathemaica的函数或常数混淆.例:In[1]:=f[x_]:=x^5;f[x_,y_]:=Sqrt[x^2+y^2];z=3;其中输入语句后的分号“;”表示不显示输出结果,定义了函数、变量以后,便可以在运算中使用.In[4]:=f[2]Out[4]=32In[5]:=f[1+b]Out[5]=(1+b)2In[6]:=g[z,4]Out[6]=5如果忘记了已定义的函数的容,可以使用?f查询f的定义.当函数或变量使用完以后,最好将其清除,以免带来麻烦.3.符号运算符号运算即代数式的运算.它是Mathemaica的重要功能.下面简介符号运算的主要功能.(1)符号赋值Mathemaica不仅可以把一个常值赋给一个符号,还可以把一个表达式赋给一个符号.其规则如下:x =value--------------------将value 赋给x x =.-----------------------清除赋给x 的值expr/.x-> value -------------用value 替换expr 中的xexpr/.{x->xvalue,y->yvalue}----------用xvalue,yvalue 分别替换expr 中的x,y. 例:In[1]:=t =l +x Out[1]=1+x In[2]:= l- t^ 2 Out[2]=1-(1+x)2 In[3]:=t =. Out[3]=1-(1+x)2 In[4]:=l- t^ 2 Out[4]=1-t 2 In[5]:=%2/.x->2Out[5]=-8(2)代数式变换Mathernatica 提供了许多进行代数式变换的一些函数,下面列出常用的函数. Expand[expr]-----------------------展开exprExpandAll[expr]--------------------展开expr 的分子、分母 Factor[expr]-------------------------对expr 进行因式分解 Together[expr]----------------------对expr 进行通分 Apart [expr ]---------------------将 expr 分解为简单分式 Cancel[expr]----------------------消去exp r 的分子、分母的公因式 Simplify[expr]--------------------把expr 化为最少项形式 例: In[1]:=t=(x-1)^2(2+x)/((1+x)(x-3)^2),)x ()x ()x ()x (++-++-=1321Out[1]22 In[2]:=Expand[t] (展开分子,分母不变)x)(1x)3(x)(1x)3(3x)(1x)(-32Out[2]2322++-+++--++=x x In[3]:=ExpandAll[t] (展开分子、分母)323323253953935392Out[3]x x x x x x x x x x x +-+++-+-+-+=In[4]:=Together[%] (通分)32353932Out[4]x x x x x +-++-=In[5]:=Apart[%] (化为部分分式)x )4(11x )4(-319x )(-351Out[5]2++++++= In[6]:=Factor[%] (分解因式)x)(1x)(-3x)(2x)(-1Out[6]22++++= In[7]:=Simplify[%5] (将表达式化简)322539x )(2x )(-1Out[7]xx x +-+++= 除了上述常用的变换外,Mathematica 还可以进行许多种类型的变换.下面再看一些例子.In[8]:=Expand[2Cos[x]^3*Sin[2x]^2, Trig->True] (展开三角函数)Out[8]:=Cos @x D 3-Cos @x D 7+6Cos @x D 5Sin @x D 2-Cos @x D 3Sin @x D4In[9]:=Factor[%,Trig->True] Out[9]=8 Cos[x]5Sin[x]2In[10]:=ComplexExpand[Sin[x+y*I]] (展开复函数) Out[10]:=Cosh[y]Sin[x]+ICos[x]Sin[y]In[11]:=s=Expand[(x+y)^3];In[12]:=Coefficient[s,x^2] (取出s 中x^2项的系数) Out[12]=3yIn[13]:=Numerator[%1] (取出%1中的分子) Out[13]=(-1+x)2(2+x)In[14]:=Denominator[%1] (取出%1中的分母) Out[14]=(-3+x)2(1+x)Mathematica 还允许用户自己定义变换规则,例如: In[15]:=mysin=Sin[2*x_]->2Sin[x]Cos[x]; In[16]:=Sin[2*(x+y)^2]/.mysin Out[16]=2Cos[(x+ y)2]Sin[(x+ y)2]总之Mathematica 进行变换的功能是非常强的.(3)解方程Mathematica 可以用多种方法求解符号方程.下面列出主要的解法: Solve[equ,vars]-------------------求方程的一般解 Reduce[equ,vars]-----------------求方程的全部解 NSolve[equ,vars]----------------求方程的数值解FindRoot[equ,{x,a}]--------------求方程在 a 附近的数值解 其中,equ 是待求解的方程,var 是未知量. 例 In[1]:=Solve[a*x+b==0,x]注:方程中,等号必须用“= =” Out[1]={{x->-b/a}} In[2]:=Reduce[a*x+b==0,x]Out[2]=a == 0 && b == 0 || x ==-b/a && a != 0使用Reduce 给出了a!=0时的解和a=0,b=0时的解,(此时x 为任意值).对四次及四次以下的代数方程, Mathematica 总能给精确解.四次以上的方程,若能分解因式,亦可给出精确解.In[3]:=Solve[x^3+3x^2+ 3x+ 2== 0,x] Out[3]=当求不出精确解时,Mathemaica 以符号形式给出结果 In[4]:=x^5+5x+1==0; In[5]:=Solve[%4,x] Out[5]=8x ?Root @1+5#1+#15&,1D <,8x ?Root @1+5#1+#15&,2D <,8x ?Root @1+5#1+#15&,3D <,8x ?Root @1+5#1+#15&,4D <,8x ?Root @1+5#1+#15&,5D <上述方程求不出精确解,此时可求数值解. In[6]:=NSolve[%4,x]Out[6]= 8x ?-1.0045-1.06095?<,8x ?-1.0045+1.06095?<,8x ?-0.199936<,8x ?1.10447-1.05983?<,8x ?1.10447+1.05983?<如果要求在某点附近的数值解,使用FindRoot In[7]:=FindRoot[x*Sin[x]==1/2,{x,1}] Out[7]={x->0.740841}使用 Solve 还可以求解方程组.Out[8]三 微积分进行高等数学中的各种运算是Mathematica 的主要功能.Mathematica 可进行微积分、线性代数和工程数学中的许多运算.特别是其符号运算能力,令人惊叹.现在Mathematica 已受到越来越多科技工作者的欢迎和使用。
1.极限、微分和积分 微积分等主要运算:00 Limit[f,x x ] lim Limit[f,x x ,Direction 1] lim x x x x f(x)-→→→→→函数形式功能0012n Limit[f,x x ,Direction 1] lim D[f,x] D[f,x ,x ,x ] x x f(x)f(x)f x+→→→-∂∂,左极限,右极限12D[f,{x,n}] Dt[f] Integrate[f,x] n nn nfx x x fxdf ∂∂∂∂∂∂ba baIntegrate[f,{x,a,b}] Integrate[f,{x,a,b},{y,c,d}] dcfdxfdxdx fdy⎰⎰⎰⎰例 In[1]:=D[Sin[x^2],x]Out[1]=2xCos[x 2] In[2]:=D[x^n,{x,3}] Out[2]=In[3]:=D[y^3*Log[x+y],x,y] Out[3]=也可以求出抽象函数的导数 In[4]:=D[x*f[x^5],x] Out[4]=求不定积分,对Mathematica 而言易如反掌 In[5]:=Integrate[1/(x^4-1),x] Out[5]= 可以验证In[6]:=Simplify[D[%,x]] Out[6]= 求定积分In[7]:= Integrate[Log[x],{x,a,b}] Out[7]=a-b-aLog[a]+bLog[b]也可以通过File->Palettes->BasicCalculations 输入In[8]:=Out[8]=a-b-aLog[a]+bLog[b]In[9]:= Integrate[x*x+y*y,{x,0,1},{y,0,Sqrt[1-x*x]}] Out[9]=2. 函数的幂级数展开Mathematica 作幂级数展开可达到任意精度。