MATHEMATICA 教程

自从 Mathematica 第一版以来所进行的不兼容的变化

介绍

Mathematica 每一期新版本都包含许多新增功能. 但是,从一开始就进行的精心设计使所有版本之间几乎完全兼容. 例如,几乎所有为 Mathematica 第1版编写的程序都应该能够在第7版中无需改变直接运行,尽管它的运行速度往往会大大加快.

但是,一个不可避免的问题是,如果一个程序使用的名称以大写字母开头,那么很可能会出现这样一种情况:继程序写成之后添加到 Mathematica 中的内置函数的名称,与在先前写出来的程序中使用的名称冲突.

另外,为了保持 Mathematica 整体上的一致性,在早期版本中存在的一些函数逐渐被弃用——先是在文档中不再出现,然后是在使用时产生警告信息. 此外,在一些极个别情况下,必须对一些和以前版本不兼容的个别函数做一些改变.

第1版与第2版之间

  • 添加了 260 个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • Accumulate 已被 FoldList 取代;添加了 Fold.
  • Condition () 现在可以用于单个模式以及完全规则中,并且不在默认设置时进行计算.
  • Release 的功能被拆分为 EvaluateReleaseHold.
  • Compose 已被 Composition 取代.
  • Debug 已被 Trace 及其相关函数取代.
  • Power 不在自动进行诸如 Sqrt[x^2]→x 等的变换.
  • 如果 Limit 遇到一个未知函数,它在默认设置时保持不被计算.
  • Mod 现在只处理数字;PolynomialMod 处理多项式.
  • CellArray 已被 RasterRasterArray 取代.
  • FontForm 取一种略有不同的字体设定形式.
  • Framed 已被 Frame 及其相关选项取代.
  • ContourLevelsContourSpacing 已被 Contours 取代.
  • Plot3Matrix 已被 ViewCenterViewVertical 取代.
  • FromASCIIToASCII 已分别被 FromCharacterCodeToCharacterCode 取代.
  • Alias 已被 $PreRead 取代.
  • ResetMedium 已被纳入 SetOptions$$Media 已被 Streams 取代.
  • StartProcess 已被 InstallMathLink 取代.
  • 第2版与第3版之间

  • 添加了 259 个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • 现在 N[expr, n] 总是尽可能给出 n 位精度,而不是简单的从 n 位精度开始计算.
  • 所有只包含数值函数和数值常量的表达式,只要它们包含任何近似数字,就转换为近似数字形式.
  • 涉及不用求值的精确数字的任何表达式现在都进行求值计算. 例如:Floor[(7/3)^20].
  • 现在 PlusTimes 在应用用户自定义的规则前应用内置规则,因此进行类似 的定义不再可能.
  • 的运算符优先级已被变至低于 . 因而,以前在 InputForm 中如 的表达式现在必须写成 . V2Get[file] 将使用旧的运算符优先级读取一个文件.
  • 现在是一个用于生成上标的运算符. 对于控制字符的输入,必须使用原八进制代码而不是 .
  • Mathematica 笔记本中,一些内置 Mathematica 函数现在默认使用特殊字符输出. 例如:在 StandardForm 中, 的输出是 .
  • 如果不使用选项设置 GenerateConditions->False,更复杂的定积分现在生成显式的 If 结构.
  • HeldPart[expr, i, j, ...] 已被 Extract[expr, {i, j, ...}, Hold] 取代.
  • Literal[pattern] 已被 HoldPattern[pattern] 替代. Verbatim[pattern] 被引入. 如 DownValues 等的函数将其返回结果包装在 HoldPattern 中,而不是 Literal.
  • ReplaceHeldPart[expr, new, pos] 已被 ReplacePart[expr, Hold[new], pos, 1] 取代.
  • ToHeldExpression[expr] 已被 ToExpression[expr, form, Hold] 取代.
  • Trig 作为代数运算函数的一个选项,已被显式函数 TrigExpandTrigFactorTrigReduce 取代.
  • AlgebraicRules 已被 PolynomialReduce 取代.
  • 选项 LegendreType 已被 LegendrePLegendreQ 的一个另外的可选自变量取代.
  • WeierstrassP[u, {g2, g3}] 现在在一个列表中取 .
  • 现在仅有内置数值,但这些数值可以处理所有可能的 Mathematica 字符.
  • 不再被支持.
  • 任意精度近似实数现默认在 InputForm 中以 digits`prec 形式给出. 这个行为由 $NumberMarks 控制.
  • 大的近似实数现默认在 InputForm 中以 形式给出.
  • HomeDirectory[ ] 已被 $HomeDirectory 替代.
  • Dump 已被 DumpSave 取代.
  • 现已弃用,因为所有计算机系统的支持管道和链接.
  • LinkOpen 已被 LinkCreateLinkConnectLinkLaunch 所取代.
  • Subscripted 已被 RowBoxSubscriptBox 等取代.
  • SubscriptSuperscript 现在代表的是完整的带有下标和上标的量,而不仅仅是下标和上标.
  • FontFormDefaultFont 已被 StyleFormTextStyle 所取代.
  • 在笔记本的前端,进行的变化包括:

  • 笔记本的文件格式已经完全改变,以支持新的笔记本功能.
  • 笔记本文件现在默认给出 .nb 而不是 .ma 的扩展名,.mb 文件现在是多余的.
  • 前端会自动要求将用户命令打开的任何旧的笔记本进行转换.
  • 内核命令 NotebookConvert 可用于笔记本文件格式由第2版至第3版的转换.
  • 输入单元格的默认格式类型现在是 StandardForm 而不是 InputForm.
  • 样式表的组织以及一些默认样式的设置已被更改.
  • 一些菜单命令的热键已经被重新组织.
  • 第3版与第4版之间

  • 添加了61个新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • N[0] 现在产生机器精度零而不是精确零.
  • 已被 AbsoluteOptions 取代,生成的结果的形式与 Options 相同.
  • Element[x, y] 或者 现有内置计算规则.
  • 符号 IEStandardForm 输出分别为 (\[ImaginaryI]) 和 (\[ExponentialE]).
  • CompiledFunction 中添加了一个新的第二参数,以便更容易操作和编译函数的组成.
  • 第4版与第5版之间

  • 添加了44个全新的内置对象,其中一些名称可能与已经使用的名称冲突.
  • PrecisionAccuracy 现在以数值形式返回精确的不确定性的度量,而不仅仅是整数位的估计.
  • Precision 现在对机器数值返回符号 MachinePrecision,而不是数字值 $MachinePrecision.
  • N[expr, MachinePrecision] 现在用于机器数值的数值计算;N[expr, $MachinePrecision] 生成任意精度数值.
  • ConstrainedMinConstrainedMax 已被 MinimizeMaximizeNMinimizeNMaximize 取代.
  • SingularValues 已被 SingularValueListSingularValueDecomposition 所取代. SingularValueDecomposition 使用一个不同的更完整的定义.
  • LUBackSubstitution 已被更一般的 LinearSolveFunction 的用法取代.
  • FindRoot[f, {x, {x0, x1}}] 现在用于指定 x 的一个开始向量值,而不是一对数值. FindMinimum 也同样如此.
  • DSolveConstants 已被更一般的选项 GeneratedParameters 所取代.
  • TensorRank 已被 ArrayDepth 所取代.
  • $TopDirectory 已被 $InstallationDirectory$BaseDirectory 所取代.
  • 当与不同的计算机系统连接时,MathLink LinkProtocol 选项的默认设置现在是 而不是 .
  • 第5版与第6版之间

    图形功能已显著改变. 为了兼容的目的,使用 恢复 Mathematica 5 的图形功能. 使用 恢复 Mathematica 6 的图形功能.

  • 添加了超过800个的全新内置对象,其中一些名称可能与已经使用的名称冲突.
  • GraphicsGraphics3D 对象的输出形式现在是生成的图形而不是形如 的一个输出.
  • $DisplayFunction 现在的设置为 Identity,因此当评估一个图形时,默认时无附加效果产生. 为了产生类似于第5版的输出中的附加效果,可以使用 Print 函数来输出图形.
  • 图形的默认字体由 Courier 变为 Times.
  • GraphicsArray 已被 GraphicsGridGrid 取代.
  • AspectRatioGraphicsParametricPlot 中的 AspectRatio 的默认设置现在是 Automatic.
  • PlotPlotDivision 选项已被 MaxRecursion 取代.
  • ListPlotPlotJoined 选项已被 ListLinePlot 取代.
  • Plot3D[{f, s}, {x, xmin, xmax}, {y, ymin, ymax}]:阴影设定 sMeshShading 取代.
  • 选项 HiddenSurface->False 已被 PlotStyle -> FaceForm[ ] 取代.
  • ContourGraphics 已被 ListContourPlotGraphicsComplex 取代.
  • DensityGraphics 已被 ListDensityPlotGraphicsComplex 取代.
  • Plot3D 和其它三维绘图函数现在发射 GraphicsComplex 而不是 Polygon 基元的一个原列表.
  • ListPlot 现在将一列点集合到一个单一的 Point 基元.
  • MeshRange 选项已被 DataRange 取代.
  • DensityPlotListDensityPlot 现在默认进行网格的绘制.
  • ListPlot3D[array, shades] 已被 MeshShading 取代.
  • 三维图形中的 SurfaceColor 现在被显式颜色和指令SpecularityGlow 所取代.
  • Lighting 现在支持一种用于指定包括聚光灯,点光源,定向照明及照明环境等不同种类光源的新的语法.
  • 不再支持图形基元 .
  • 不再支持选项 RenderAllPolygonIntersections.
  • Rectangle[{xmin, ymin}, {xmax, ymax}, graphics] 已被 Inset 取代.
  • StyleFormStylePrint 已被 Style 取代.
  • TextStyle 已被一般的机制 BaseStyle 取代.
  • SequenceForm 已被 Row 取代.
  • 第5版与第6版之间

  • 添加了超过400个的全新内置对象,其中一些名称可能与已经使用的名称冲突.
  • 对于光栅图像格式,现在 Import[file] 返回 Image[...] 而不是 Graphics[Raster[...]],以便利用新的图像处理功能. 使用Import[file, "Graphics"] 来将文件 fileGraphics 表达式形式导出.
  • 对于更精确的表达式结构,Import[file, "XML"]Export[file, "XML"] 现在总是只导入和导出符号式 XML 表达式. Import["file.xml"] 仍将像在 Mathematica 6 中一样自动确定 XML 格式.
  • 为了允许更多不同的交互式控制,选项 已改名为 TooltipDelay,用法不变.
  • New to Mathematica? Find your learning path »
    Have a question? Ask support »