mathematica教程6

合集下载

mathematica使用指南

mathematica使用指南

mathematica使用指南Mathematica是一款功能强大的数学软件,具备广泛的应用领域,包括数学、统计学、物理学、工程学等等。

本文将为您提供一份Mathematica的使用指南,帮助您快速入门并提高使用效率。

1. Mathematica简介Mathematica是由Wolfram Research公司开发的一款通用计算软件,它具备数值计算、符号计算、图形绘制等多种功能。

Mathematica基于Wolfram Language语言,用户可以直接在其中编写代码进行计算和分析。

2. 安装与启动首先您需要从Wolfram Research公司官方网站下载Mathematica安装文件,并按照安装向导完成安装过程。

安装完成后,您可以在计算机上找到Mathematica的启动图标,点击即可启动该软件。

3. Mathematica界面介绍Mathematica的主界面由菜单栏、工具栏、输入区域和输出区域组成。

菜单栏提供了各种功能选项,工具栏包含常用工具按钮,输入区域用于输入代码,而输出区域用于显示计算结果。

4. 基本计算在输入区域中,您可以直接输入数学表达式进行计算。

例如,输入"2 + 3",然后按下Enter键即可得到计算结果"5"。

Mathematica支持基本的算术运算、三角函数、指数函数等数学操作。

5. 变量与函数您可以使用Mathematica定义变量并进行计算。

例如,输入"x = 2",然后再输入"y = x^2",按下Enter键后,变量y会被赋值为2的平方,即4。

定义的变量可以在后续计算中使用。

6. 图形绘制Mathematica提供了丰富的图形绘制功能。

您可以使用Plot函数绘制函数曲线,使用ListPlot函数绘制离散数据点,还可以绘制3D图形等等。

通过调整参数和选项,您可以自定义图形的样式和外观。

Mathematica教程(中科大教案)

Mathematica教程(中科大教案)

学习必备欢迎下载绪论0.1 符号计算系统简介# 数值计算与符号计算1946 年世界上第一台计算机ENIAC (The Electronic Numerical Integrator and Computer) 是为数值积分服务的。

一提起计算机求解人们立刻想到的是数值求解,这是因为计算机的早期应用范围主要是数值求解。

其实数值求解是计算机求解的一个方面,计算机进行计算的另一方面即对数学表示式的处理已形成一门新的科学分支,称为符号计算或计算机代数,它是一门研究使用计算机进行数学公式推导的理论和方法,演算数学公式的理论和算法是它研究的中心课题。

数值计算:常量、变量、函数、运算符--〉数值、字符、逻辑量表达式€一个值多€一近似计算例:计算y=sin10+ln10。

其结果是1.75856。

在高级语言中,算术表达式由常量、变量、函数和运算符等组成,算术表达式的值为某一精度范围内的数值。

计算各类表达式的值是高级语言的主要工作。

符号计算(计算机代数):常量、变量值、函数值--〉数值、字符、逻辑量表达式€表达式多€多准确计算x 2 sin xdx =-(-2 + x 2 )cos x + 2 x sin x与数值计算相比,符号计算对计算机硬件和软件提出了更高的要求。

# 符号计算系统符号计算系统是一个表示数学知识和数学工具的系统,一个集成化的计算机数学软件系统。

# 数值计算、# 符号计算、# 图形演示# 程序设计公式推导、数值计算和图形可视化操作一致性和连贯性。

符号计算系统的对象从初等数学到高等数学,几乎涉及所有数学学科。

包括各种数学表达式的化简、多项式的四则运算、求最大公因式、因式分解(factor)、常微分方程和偏微分方程的解函数。

各种特殊函数的推导、函数的级数展开、矩阵和行列式的各种运算和线性方程组的符号解等。

和数值计算一样,算法也是符号计算的核心。

就算法而言,符号计算比数值计算能继承更多的更丰富的数学遗产,古典数学家许多算法仍然是核心算法的成员,近代数学的算法成果也在不断地充实到符号计算中。

Mathematica使用教程

Mathematica使用教程

【Mathematica 简介】Mathematica 软件是由沃尔夫勒姆研究公司(Wolfram Research Inc.)研发的。

Mathematica 版发布于1988年6月23日。

发布之后,在科学、技术、媒体等领域引起了一片轰动,被认为是一个革命性的进步。

几个月后,Mathematica 就在世界各地拥有了成千上万的用户。

今天,Mathematica 已经在世界各地拥有了数以百万计的忠实用户。

Mathematica 已经被工业和教育领域被广泛地采用。

实际上,Mathematica 负责将高级的数学和计算引入了传统上非技术的领域,极大的增加了科技软件的市场。

一个包含应用、咨询、书籍、和课程软件的行业支持着国际化的 Mathematica 用户群,这个行业还在不断地膨胀。

随着沃尔夫勒姆研究公司不断地扩大和 Mathematica 的使用被不断地扩展到不同的领域,将会看到 Mathematica 在全世界范围内对未来产品、重要研究发现、和教学的巨大影响。

数学软件是现在科研工作者的必备的工具,个人比较喜欢用Mathematica,因为它是最接近数学语言的。

Mathematica 在15日发布,其最显著的变化是允许自由形式的英文输入,而不再需要严格按照Mathematica语法,这类似于Wolfram|Alpha搜索引擎。

Mathematica 8允许用户按照自己习惯的思考过程输入方程式或问题,最令人激动的部分是软件不是逐行执行命令,而是能理解上下文背景。

1. Enter your queries in plain English using new free-form linguistic input2. Access more than 10 trillion sets of curated, up-to-date, and ready-to-use data3. Import all your data using a wider array of import/export formats4. Use the broadest statistics and data visualization capabilities on the market5. Choose from a full suite of engineering tools, such as wavelets and control systems6. Use more powerful image processing and analysis capabilities7. Create interactive tools for rapid exploration of your ideas8. Develop faster and more powerful applicationsWolfram Research 的 CEO 和创立者斯蒂芬·沃尔夫勒姆表示:“传统上,让计算机执行任务必须使用计算机语言或者使用点击式界面:前者要求用户掌握它的语法;而后者则限制了可访问函数的范围。

Mathematica课件math6

Mathematica课件math6

4.程序流程控制函数 在程序设计中,有时需要改变程序的正常顺序,以使程序的 流程符合要求.这时,就要利用下表所列的程序流程控制函 数了.
函数名称及使用格式 Break[ ] Continue[ ]
函数的功能 退出所在的一层循环 转入当前循环的下一步
Lable[name] Go to[name]
Throw[value] Catch[expr] Return[expr]
Switch[expr,form1,value1,fo 先计算expr的值,然后依次 rm2,…] 与formi比较,返回第一个与 之匹配的valuei,若没有与之 匹配的valuei,则返回Null Switch[expr,form1,value1,fo 先计算expr的值,然后依次 rm2,…,_,def] 与formi比较,返回第一个与 之匹配的valuei,若没有与之 匹配的valuei,则返回def 下面的几个例子说明了它们的用法: In[1]:=g[x_]:=If[x<-2,-2,If[x<2,x,2]] In[2]:=Plot[g[x],{x,-4,4}]
Nest[ ]函数用于一元函数的迭代,而Fold[ ]函数则用于 二元函数的迭代: In[11]:=Fold[f,x,{a,b,c}] Out[11]=f[f[f[x,a],b],c] In[12]:=FoldList[f,x,{a,b,c}] Out[12]={x,f[x,a],f[f[x,a],b],f[f[f[x,a],b],c]} 注意,在Fold[ ]函数中,每次迭代时,上一次的运算结果只 赋给二元函数f的第一个变量,并依次把集合{a,b,c,…}中 的元素赋给第二个变量.下面再举一例,它把一个集合的 数字元素化为了十进制数: In[13]:=g[x_,y_]:=10x+y In[14]:=tonumber[List_]:=Fold[g,0,List] In[15]:=tonumber[{1,3,5,7}] Out[15]=1357

mathematica简明使用教程

mathematica简明使用教程

mathematica简明使用教程Mathematica是一种强大的数学软件,广泛应用于科学研究、工程计算和数据分析等领域。

本文将简要介绍Mathematica的使用方法,帮助读者快速上手。

一、安装和启动Mathematica我们需要下载并安装Mathematica软件。

在安装完成后,可以通过桌面图标或开始菜单中的快捷方式来启动Mathematica。

二、界面介绍Mathematica的界面分为菜单栏、工具栏、输入区域和输出区域四部分。

菜单栏提供了各种功能选项,工具栏包含了常用的工具按钮,输入区域用于输入代码或表达式,而输出区域则显示执行结果。

三、基本操作1. 输入和输出在输入区域输入代码或表达式后,按下Shift+Enter键即可执行,并在输出区域显示结果。

Mathematica会自动对输入进行求解或计算,并返回相应的输出结果。

2. 变量定义可以使用等号“=”来定义变量。

例如,输入“a = 3”,然后执行,就会将3赋值给变量a。

定义的变量可以在后续的计算中使用。

3. 函数调用Mathematica内置了许多常用的数学函数,可以直接调用使用。

例如,输入“Sin[π/2]”,然后执行,就会返回正弦函数在π/2处的值。

4. 注释和注解在代码中添加注释可以提高代码的可读性。

在Mathematica中,可以使用“(*注释内容*)”的格式来添加注释。

四、数学运算Mathematica支持各种数学运算,包括基本的加减乘除,以及更复杂的求导、积分、矩阵运算等。

下面简要介绍几个常用的数学运算:1. 求导可以使用D函数来求导。

例如,输入“D[Sin[x], x]”,然后执行,就会返回正弦函数的导数。

2. 积分可以使用Integrate函数来进行积分运算。

例如,输入“Integrate[x^2, x]”,然后执行,就会返回x的平方的不定积分。

3. 矩阵运算Mathematica提供了丰富的矩阵运算函数,可以进行矩阵的加减乘除、转置、求逆等操作。

《Mathematica》使用手册

《Mathematica》使用手册

《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使⽤教程第⼆章 Mathematica 简介Mathematica 是⼀个符号计算与数值计算的通⽤数学软件包,是由美国的物理学家Stephen Wolfram 所领导的⼀个⼩组开发成功并推向市场的。

Mathematica 由最初的1.0、1.2、2.0、2.2、2.4、3.0版,到现在的4.0版,⽬前国内常⽤的版本是Windows 下的3.0及4.0版。

与Mathcad 和MATLAB 相⽐,Mathematica 才称得上是⼀个真正的数学符号计算软件包,因为只有它的内核是以符号计算为基础的,⽐如你可以定义⼀些数学规则,让它为你进⾏符号推导演算⼯作。

在Mathematica 中,你可以像Mathcad 那样进⾏草稿式的数学计算,你也可以像MATLAB ⼀样进⾏命令式的数学计算。

本章以4.0版为基础,介绍Mathematica 的使⽤⽅法。

2.1 Mathematica 的集成环境及基本操作当Mathematica 运⾏时,会出现如图所⽰的窗⼝。

右边的⼩窗⼝,我们称为数学⼯具⾯板,它包含多种数学符号,更多的符号可从命令菜单File/Palettes 中得到,利⽤它,可以像Mathcad ⼀样输⼊数学算式,⽐如上⾯计算的积分,完全可以通过数学⼯具⾯板,在Mathematica 中写成20[2]x Sin x dx π的形式,但这种输⼊⽅法有两个问题:⾸先,Mathematica 的输⼊操作不如Mathcad ⽅便,其次,由于Mathematica 的函数及符号太多,导致这种输⼊⽅法效率太低。

因此,我们对这种直观的命令输⼊⽅法将不做过多的介绍。

有兴趣的读者可以查阅相关的帮助主题。

笔者认为,使⽤Mathematica 计算数学问题最有效的⽅法是,直接通过键盘输⼊每个函数所代表的英⽂字符串。

左边的⼤窗⼝,Mathematica 称之为Notebook ,Mathematica 可以将在Notebook 中输⼊的命令存⼊⼀个扩展名为“.nb ”的⽂件中,⾸次进⼊时默认的⽂件名为Untitled-1.nb 。

Mathematica使用教程

Mathematica使用教程

Mathematica 使用教程一、要点●Mathematica 是一个敏感的软件. 所有的Mathematica 函数都以大写字母开头; ●圆括号<>,花括号{ },方括号[]都有特殊用途, 应特别注意; ●句号".",分号";",逗号","感叹号"!"等都有特殊用途, 应特别注意; ● 用主键盘区的组合键Shfit+Enter 或数字键盘中的Enter 键执行命令.二、介绍案例1. 输入与输出例1 计算 1+1:在打开的命令窗口中输入1+2+3并按组合键Shfit+Enter 执行上述命令,则屏幕上将显示:In[1] : =1+2+3Out[1] =6这里In[1] : = 表示第一个输入,Out[1]= 表示第一个输出,即计算结果.2. 数学常数Pi 表示圆周率π; E 表示无理数e; I 表示虚数单位i ;Degree 表示π/180; Infinity 表示无穷大.注:Pi,Degree,Infinity 的第一个字母必须大写,其后面的字母必须小写.3. 算术运算Mathematica 中用"+"、"-"、"*"、"/" 和"^"分别表示算术运算中的加、减、乘、除和乘方.例2计算 π⋅⎪⎭⎫ ⎝⎛⋅+⎪⎭⎫ ⎝⎛⋅--213121494891100. 输入 100^<1/4>*<1/9>^<-1/2>+8^<-1/3>*<4/9>^<1/2>*Pi 则输出 3103π+ 这是准确值. 如果要求近似值,再输入N[%]则输出 10.543这里%表示上一次输出的结果,命令N[%]表示对上一次的结果取近似值. 还用 %% 表示上上次输出的结果,用 %6表示Out[6]的输出结果.注:关于乘号*,Mathematica 常用空格来代替. 例如,x y z 则表示x*y*z,而xyz 表示字符串,Mathematica 将它理解为一个变量名. 常数与字符之间的乘号或空格可以省略.4. 代数运算例3分解因式 232++x x输入 Factor[x^2+3x+2]输出 )x 2)(x 1(++例4展开因式 )2)(1(x x ++输入 Expand[<1+x><2+x>]输出 2x x 32++例5通分 3122+++x x 输入 Together[1/<x+3>+2/<x+2>]输出)x 3)(x 2(x 38+++ 例6将表达式 )3)(2(38x x x +++ 展开成部分分式 输入 Apart[<8+3x>/<<2+x><3+x>>]输出 3x 12x 2+++ 例7化简表达式 )3)(1()2)(1(x x x x +++++输入 Simplify[<1+x><2+x>+<1+x><3+x>]输出 2x 2x 75++三、部分函数1. 部函数Mathematica 系统部定义了许多函数,并且常用英文全名作为函数名,所有函数名的第一个字母都必须大写,后面的字母必须小写. 当函数名是由两个单词组成时,每个单词的第一个字母都 必须大写,其余的字母必须小写. Mathematica 函数<命令>的基本格式为函数名[表达式,选项]下面列举了一些常用函数: 算术平方根x Sqrt[x]指数函数x e Exp[x]对数函数x a log Log[a,x]对数函数x ln Log[x]三角函数 Sin[x], Cos[x], Tan[x], Cot[x], Sec[x], Csc[x]反三角函数ArcSin[x], ArcCos[x], ArcTan[x],ArcCot[x], AsrcSec[x], ArcCsc[x]双曲函数 Sinh[x], Cosh[x], Tanh[x],反双曲函数 ArcSinh[x], ArcCosh[x], ArcTanh[x]四舍五入函数 Round[x] <*取最接近x 的整数*>取整函数 Floor[x] <*取不超过x 的最大整数*>取模 Mod[m,n] <*求m/n 的模*>取绝对值函数 Abs[x]n 的阶乘 n!符号函数 Sign[x]取近似值 N[x,n] <*取x 的有n 位有效数字的近似值,当n 缺省时,n 的默认值为6*>例8求π的有6位和20位有效数字的近似值.输入 N[Pi] 输出 3.14159输入 N[Pi, 20] 输出 3.85注:第一个输入语句也常用另一种形式:输入 Pi//N 输出 3.14159例9计算函数值 <1> 输入 Sin[Pi/3] 输出23 <2> 输入 ArcSin[.45] 输出 0.466765<3> 输入 Round[-1.52] 输出 -2例10计算表达式 )6.0arctan(226sin 2ln 1132+-+-e π 的值 输入 1/<1+Log[2]>*Sin[Pi/6]-Exp[-2]/<2+2^<2/3>>*ArcTan[.6]输出 0.2749212. 自定义函数在Mathematica 系统,由字母开头的字母数字串都可用作变量名,但要注意其中不能包含空格或标点符号.变量的赋值有两种方式. 立即赋值运算符是"=",延迟赋值运算符是": =". 定义函数使用的符号是延迟赋值运算符": =".例11定义函数 12)(23++=x x x f ,并计算)2(f ,)4(f ,)6(f .输入Clear[f,x]; <*清除对变量f 原先的赋值*>f[x_]:=x^3+2*x^2+1; <*定义函数的表达式*>f[2] <*求)2(f 的值*>f[x]/.{x->4} <*求)4(f 的值,另一种方法*>x=6; <*给变量x 立即赋值6*>f[x] <*求)6(f 的值,又一种方法*>输出1797289注:本例1、2、5行的结尾有";",它表示这些语句的输出结果不在屏幕上显示.四、解方程在Mathematica 系统,方程中的等号用符号"=="表示. 最基本的求解方程的命令为Solve[eqns, vars]它表示对系数按常规约定求出方程<组>的全部解,其中eqns 表示方程<组>,vars 表示所求未知变量.例12解方程0232=++x x输入 Solve[x^2+3x+2==0, x]输出 }}1x {},2x {{-→-→例13解方程组 ⎩⎨⎧=+=+10dy cx by ax 输入 Solve[{ax + b y == 0,cx + dy ==1}, {x,y}]输出 ⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+-→-→ad bc a y ,ad bc b x 例14解无理方程a x x =++-11输入 Solve[Sqrt[x-1]+ Sqrt[x+1] == a, x]输出 ⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧+→24a 4a 4x 很多方程是根本不能求出准确解的,此时应转而求其近似解. 求方程的近似解的方法有两种,一种是在方程组的系数中使用小数,这样所求的解即为方程的近似解;另一种是利用下列专门用于求方程<组>数值解的命令:NSolve[eqns, vars] <*求代数方程<组>的全部数值解*>FindRoot[eqns, {x, x0}, {y, y0} ,]后一个命令表示从点),,(00 y x 出发找方程<组>的一个近似解,这时常常需要利用图像法先大致确定所求根的围,是大致在什么点的附近.例15求方程013=-x 的近似解输入 NSolve[x^3-1== 0, x]输出 {{→x i},{→x -0.5+0.866025ii},{→x 1.}}输入 FindRoot[x^3-1==0,{x, .5}]输出 {→x 1.}下面再介绍一个很有用的命令:Eliminate[eqns, elims] <*从一组等式中消去变量<组>elims*>例16从方程组 ⎪⎩⎪⎨⎧=+=-+-+=++11)1()1(1222222y x z y x z y x 消去未知数y 、z .输入Eliminate[{x^2+y^2+z^2==1,x^2+<y-1>^2+<z-1>^2 ==1, x + y== 1},{y, z}]输出 0x 3x 22==+-注:上面这个输入语句为多行语句,它可以像上面例子中那样在行尾处有逗号的地方将行与行隔开, 来迫使Mathematica 从前一行继续到下一行在执行该语句. 有时候多行语句的意义不太明 确,通常发生在其中有一行本身就是可执行的语句的情形,此时可在该行尾放一个继续的记号"\", 来迫使Mathematica 继续到下一行再执行该语句.五、保存与退出Mathematica 很容易保存Notebook 中显示的容,打开位于窗口第一行的File 菜单,点击Save后得到保存文件时的对话框,按要求操作后即可把所要的容存为 *.nb 文件. 如果只想保存全部输入的命令,而不想保存全部输出结果,则可以打开下拉式菜单Kernel,选中Delete All Output,然后 再执行保存命令. 而退出Mathematica 与退出Word 的操作是一样的.六、查询与帮助查询某个函数<命令>的基本功能,键入"?函数名",想要了解更多一些,键入"??函数名",例如,输入?Plot则输出Plot[f,{x,xmin,xmax}] generates a plot of f as a functionof x from xmin to xmax. Plot[{f1,f2,…},{x,xmin,xmax}] plots several functions fi它告诉了我们关于绘图命令"Plot"的基本使用方法.例17 在区间]1,1[-上作出抛物线2x y =的图形.输入 Plot[x^2,{x,-1,1}]则输出例18 在区间]2,0[π上作出x y sin =与x y cos =的图形.输入 Plot[{Sin[x],Cos[x]},{x,0,2Pi}]则输出如果输入??Plot则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.此外,Mathematica的Help菜单中提供了大量的帮助信息,其中Help菜单中的第一项Help Browser<帮助游览器>是常用的查询工具,读者若想了解更多的使用信息,则应自己通过Help菜单去学习.编辑本段Mathematica 基本运算a+mathematica数学实验<第2版>b+c 加a-b 减a b c 或a*b*c 乘a/b 除-a 负号a^b 次方Mathematica 数字的形式256 整数2.56 实数11/35 分数2+6I 复数常用的数学常数Pi 圆周率,π=3.141592654…E 尤拉常数,e=2.71828182…Degree 角度转换弧度的常数,Pi/180I 虚数,其值为√-1Infinity 无限大指定之前计算结果的方法% 前一个运算结果%% 前二个运算结果%%…%<n个%> 前n个运算结果%n 或Out[n] 前n个运算结果复数的运算指令a+bI 复数Conjugate[a+bI] 共轭复数Re[z], Im[z] 复数z的实数/虚数部分Abs[z] 复数z的大小或模数<Modulus>Arg[z] 复数z的幅角<Argument>Mathematica 输出的控制指令expr1; expr2; expr3 做数个运算,但只印出最後一个运算的结果expr1; expr2; expr3; 做数个运算,但都不印出结果expr; 做运算,但不印出结果编辑本段常用数学函数Sin[x],Cos[x],Tan[x],Cot[x],Sec[x],Csc[x] 三角函数,其引数的单位为弪度Sinh[x],Cosh[x],Tanh[x],… 双曲函数ArcSin[x],ArcCos[x],ArcTan[x] 反三角函数ArcCot[x],ArcSec[x],ArcCsc[x]ArcSinh[x],ArcCosh[x],ArcTanh[x],… 反双曲函数Sqrt[x] 根号Exp[x] 指数Log[x] 自然对数Log[a,x] 以a为底的对数Abs[x] 绝对值Round[x] 最接近x的整数Floor[x] 小於或等於x的最大整数Ceiling[x] 大於或等於x的最小整数Mod[a,b] a/b所得的馀数n! 阶乘Random[] 0至1之间的随机数〔最新版本已经不用这个函数,改为使用RandomReal[]Max[a,b,c,...],Min[a,b,c,…] a,b,c,…的极大/极小值编辑本段数之设定x=a 将变数x的值设为ax=y=b 将变数x和y的值均设为bx=. 或Clear[x] 除去变数x所存的值变数使用的一些法则xy 中间没有空格,视为变数xyx y x乘上y3x 3乘上xx3 变数x3x^2y 为x^2 y次方运算子比乘法的运算子有较高的处理顺序编辑本段四个常用处理代数的指令Expand[expr] 将expr展开Factor[expr] 将expr因式分解Simplify[expr] 将expr化简成精简的式子FullSimplify[expr] Mathematica 会尝试更多的化简公式,将expr化成更精简的式子编辑本段多项式/分式转换的函数ExpandAll[expr] 把算是全部展开Together[expr] 将expr各项通分在并成一项Apart[expr] 把分式拆开成数项分式的和Apart[expr,var] 视var以外的变数为常数,将expr拆成数项的和Cancel[expr] 把分子和分母共同的因子消去编辑本段分母/分子的运算Denominator[expr] 取出expr的分母Numerator[expr] 取出expr的分子ExpandDenominator[expr] 展开expr的分母ExpandNumerator[expr] 展开expr的分子编辑本段多项式的另二种转换函数Collect[expr,x] 将expr表示成x的多项式,如Collect[expr,{x,y,…}] 将expr分别表示成x,y,…的多项式FactorTerms[expr] 将expr的数值因子提出,如4x+2=2<2x+1>FactorTerms[expr,x] 将expr中把所有不包含x项的因子提出FactorTerms[expr,{x,y,…}] 将expr中把所有不包含{x,y,...}项的因子提出编辑本段三角函数、双曲函数和指数的运算TrigExpand[expr] 将三角函数展开TrigFactor[expr] 将三角函数所组成的数学式因式分解TrigReduce[expr] 将相乘或次方的三角函数化成一次方的基本三角函数之组合ExpToTrig[expr] 将指数函数化成三角函数或双曲函数TrigToExp[expr] 将三角函数或双曲函数化成指数函数复数、次方乘积之展开ComplexExpand[expr] 假设所有的变数都是实数来对expr展开ComplexExpand[expr,{x,y,…}] 假设x,y,..等变数均为复数来对expr展开PowerExpand[expr] 将多项式项次、系数与最高次方之取得Coefficient[expr,form] 於expr中form的系数Exponent[expr,form] 於expr中form的最高次方Part[expr,n] 或expr[[n]] 在expr项中第n个项代换运算子expr/.x->value 将expr里所有的x均代换成valueexpr/.{x->value1,y->value2,…} 执行数个不同变数的代换expr/.{{x->value1},{x->value2},…} 将expr代入不同的x值expr//.{x->value1,y->value2,…} 重复代换到expr不再改变为止求解方程式的根Solve[lhs==rhs,x] 解方程式lhs==rhs,求xNsolve[lhs==rhs,x] 解方程式lhs==rhs的数值解Solve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式,求x,y,…NSolve[{lhs1==rhs1,lhs2==rhs2,…},{x,y,…}] 解联立方程式的数值解FindRoot[lhs==rhs,{x,x0}] 由初始点x0求lhs==rhs的根Mathematica 的四种括号<term> 圆括号,括号的term先计算f[x] 方括号,放函数的引数{x,y,z} 大括号或串列括号,放串列的元素p[[i ]] 或Part[p,i] 双方括号,p的第i项元素p[[i,j]] 或Part[p,i,j] p的第i项第j个元素缩短Mathematica输出的指令expr//Short 显示一行的计算结果Short[expr,n] 显示n行的计算结果Command; 执行command,但不列出结果查询Mathematica的物件?Command 查询Command的语法及说明??Command 查询Command的语法和属性及选择项?Aaaa* 查询所有开头为Aaaa的物件函数的定义、查询与清除f[x_]= expr 立即定义函数f[x]f[x_]:= expr 延迟定义函数f[x]f[x_,y_,…] 函数f有两个以上的引数?f 查询函数f的定义Clear[f] 或f=. 清除f的定义Remove[f] 将f自系统中清除掉含有预设值的Patterna_+b_. b的预设值为0,即若b从缺,则b以0代替x_ y_ y的预设值为1x_^y_ y的预设值为1条件式的自订函数lhs:=rhs/;condition 当condition成立时,lhs才会定义成rhsIf指令If[test,then,else] 若test为真,则回应then,否则回应elseIf[test,then,else,unknow] 同上,若test无法判定真或假时,则回应unknow 极限Limit[expr,x->c] 当x趋近c时,求expr的极限Limit[expr,x->c,Direction->1]Limit[expr,x->c,Direction->-1]微分D[f,x] 函数f对x作微分D[f,x1,x2,…] 函数f对x1,x2,…作微分D[f,{x,n}] 函数f对x微分n次D[f,x,NonConstants->{y,z,…}] 函数f对x作微分,将y,z,…视为x的函数全微分Dt[f] 全微分dfDt[f,x] 全微分Dt[f,x1,x2,…] 全微分Dt[f,x,Constants->{c1,c2,…}] 全微分,视c1,c2,…为常数不定积分Integrate[f,x] 不定积分∫f dx定积分Integrate[f,{x,xmin,xmax}] 定积分Integrate[f,{x,xmin,xmax},{y,ymin,ymax}] 定积分数列之和与积Sum[f,{i,imin,imax}] 求和Sum[f,{i,imin,imax,di}] 求数列和,引数i以di递增Sum[f,{i,imin,imax},{j,jmin,jmax}]Product[f,{i,imin,imax}] 求积Product[f,{i,imin,imax,di}] 求数列之积,引数i以di递增Product[f,{i,imin,imax},{j,jmin,jmax}]函数之泰勒展开式Series[expr,{x,x0,n}] 对expr於x0点作泰勒级数展开至<x-x0>n项Series[expr,{x,x0,m},{y,y0,n}] 对x0和y0展开关系运算子a==b 等於a>b 大於a>=b 大於等於a<b 小於a<=b 小於等於a!=b 不等於逻辑运算子!p notp||q||… orp&&q&&… andXor[p,q,…] exclusive orLogicalExpand[expr] 将逻辑表示式展开基本二维绘图指令Plot[f,{x,xmin,xmax}]画出f在xmin到xmax之间的图形Plot[{f1,f2,…},{x,xmin,xmax}]同时画出数个函数图形Plot[f,{x,xmin,xmax},option->value]指定特殊的绘图选项,画出函数f的图形Plot[]几种常用选项的指令选项预设值说明AspectRatio 1/GoldenRatio 图形高和宽之比例,高/宽Axes True 是否把坐标轴画出AxesLabel Automatic 为坐标轴贴上标记,若设定为AxesLabel->{?ylabel?},则为y轴之标记。

Mathematica完美教程-从入门到精通

Mathematica完美教程-从入门到精通

内建函数,按数值计算、代数计算、 图形和编程分类存放 有程序包(Standard Packages) MathLink Library等内容 完整的Mathematica使用手册
初学者入门指南和多种演示
菜单命令的快捷键,二维输入格式等
Master Index
按字母命令给出命令、函数和选 项的索引表
如果要查找Mathematica中具有某个功能的函数, 可以通过帮助菜单中的Mahematica使用手册,通 过其目录索引可以快速定位到自己要找的帮助信 息。 例如:需要查找Mathematica中有关解方程的 命令,单击“The Mathematica Book”按钮,再单 击“Contents”,在目录中找到有关解方程的节次, 点击相应的超链接,有关内容的详细说明就马上 调出来了。如果知道具体的函数名,但不知其详 细使用说明,可以在命令按钮 Goto 右边的文本框 中键入函数名,按回车键后就显示有关函数的定 义、例题和相关联的章节。例如,要查找函数Plot 的用法,只要在文本框中键入Plot,按回车键后显 示如图的窗口,
在Mathematica中的提供以下几个函数达到 转换的目的:
N[x] N[x,n] Rationalize[x] Rationalize[x,dx]
将x转换成实数
将x转换成近似实数, 精度为n 给出x的有理数近似值
给出x的有理数近似值, 误差小于dx
[举例] ln[1]=N[5/3,20] Out[1]=1.66666666666666666667 ln[2]:=N[%,10] Out[2]=1.66666667
用Mathematica的过程中,常常需要了解一个命令 的详细用法,或者想知系统中是否有完成某一计算 的命令,联机帮助系统永远是最详细、最方便的资 料库

mathematica教程中文简单版

mathematica教程中文简单版

M athematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。

假设在Windows环境下已安装好Mathematica4.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica4.0,在屏幕上显示如图的Notebook窗口,系统暂时取名Untitled-1,直到用户保存时重新命名为止输入1+1,然后按下Shif+Enter键,这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式,要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为In[2]和Out[2].如图在Mathematica的Notebook界面下,可以用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也可以用它编写像C那样的结构化程序。

在Mathematica系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以取到事半功倍的效果。

这些函数分为两类,一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],余弦函数Cos[x],以e为底的对数函数Log[x],以a为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等。

必须注意的是:Mathematica 严格区分大小写,一般地,内建函数的首写字母必须大写,有时一个函数名是由几个单词构成,则每个单词的首写字母也必须大写,如:求局部极小值函数FindMinimum[f[x],{x,x0]等。

第二点要注意的是,在Mathematica中,函数名和自变量之间的分隔符是用方括号“[ ]”,而不是一般数学书上用的圆括号“()”,初学者很容易犯这类错误。

Mathematica使用入门数学软件Mathematica课件

Mathematica使用入门数学软件Mathematica课件

16
内置函数
Mathematica 具有超过 3000 个内置函数,具体见 “帮助” “参考资料中心” 的左下角处的 “函数索引”
Mathematica 函数命名规则 ① 第一个字母大写,后面跟小写字母,如 Sin[x], Log[x] ② 大多数函数名与数学中的名称相同 ③ 当函数名分为几段时,每一段的头一个字母大写,后面 的用小写字母,如:ArcSin[x]
In[1]:= Clear[x,y]; In[2]:= f=2*x+y; In[3]:= f./{x->2,y->3} (* f(2,3) 的值 *) In[3]:= f./{2->5} (*把 2 替换成 5*)
14
数的基本运算
Mathematica 中的实数分精确数和双精度数
N[x,n] N[x] IntegerPart[x]
可以运行单个命令或语句 也可以运行多个语句:输入全部语句后再按执行键 命令(语句)分隔符:回车或分号 如果不需要显示运行结果:在语句后面加分号
输入和输出标识符:In[n]: 和 Out[n]
In[1]:= Sin[Pi/4]+Cos[Pi/4]
Out[1]= 2
8
数学公式的输入
数学公式的输入
lim(1 1
n
2
黄金分割数:1 1 5 2
虚部单位
1 ln n) 0.577215 n
无穷大
圆周率
11
基本运算符
基本运算:
算术运算 +-*/ ^ !
加减乘除 幂 阶乘(运算级别比加减乘除和幂运算高)
比较运算与逻辑运算 == > < >= <= != && || ! Xor

(完整版)Mathematica入门教程含习题与答案

(完整版)Mathematica入门教程含习题与答案

Mathematica入门教程第1篇第1章MATHEMATICA概述 (3)1.1 M ATHEMATICA的启动与运行 (3)1.2 表达式的输入 (4)1.3 M ATHEMATICA的联机帮助系统 (6)第2章MATHEMATICA的基本量 (8)2.1 数据类型和常数 (8)2.2 变量 (10)2.3 函数 (11)2.4 表 (14)2.5 表达式 (17)2.6 常用的符号 (19)2.7 练习题 (19)第2篇第3章微积分的基本操作 (20)3.1 极限 (20)3.2 微分 (20)3.3 计算积分 (22)3.4 无穷级数 (24)3.5 练习题 (24)第4章微分方程的求解 (26)4.1 微分方程解 (26)4.2 微分方程的数值解 (26)4.3 练习题 (27)第3篇第5章MATHEMATICA的基本运算 (28)5.1 多项式的表示形式 (28)5.2 方程及其根的表示 (29)5.3 求和与求积 (32)5.4 练习题 (33)第6章函数作图 (35)6.1 基本的二维图形 (35)6.2 二维图形元素 (40)6.3 基本三维图形 (42)6.4 练习题 (46)第4篇第7章MATHEMATICA函数大全 (48)7.1 运算符和一些特殊符号,系统常数 (48)7.2 代数计算 (49)7.3 解方程 (50)7.4 微积分 (50)7.5 多项式函数 (51)7.6 随机函数 (52)7.7 数值函数 (52)7.8 表相关函数 (53)7.9 绘图函数 (54)7.10 流程控制 (57)第8章MATHEMATICA程序设计 (59)8.1 模块和块中的变量 (59)8.2 条件结构 (61)8.3 循环结构 (63)8.4 流程控制 (65)8.5 练习题 (67)--------------习题与答案在68页-------------------第1章Mathematica概述1.1 Mathematica的启动与运行Mathematica是美国Wolfram研究公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。

附录Mathematica简明教程

附录Mathematica简明教程

附录:Mathematica 简明教程第1章Mathematica概述第2章Mathematica的基本量第3章Mathematica的基本运算第4章函数作图第5章微积分的基本操作第6章微分方程的求解第7章Mathematica程序设计第8章Mathematica中的常用函数12第一章:Mathematica 概述在Windows环境下已安装好Mathematica4.0,启动Windows 后,在“开始”菜单的“程序”中单击,就启动了Mathematica4.0,在屏幕上显示如图的Notebook 窗口,系统暂时取名Untitled-1,直到用户保存时重新命名为止:输入1+1,然后按下Shift + Enter 键,这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1];再输入第二个表达式,要求系统将一个二项式展开,按Shift+Enter 输出计算结果后,系统分别将其标识为In[2]和Out[2]。

在Mathematica 的Notebook 界面下,可以用这种交互方式完成各种运算,如函数作图,求极限、解方程等,也可以用它编写像C 那样的结构化程序。

在Mathematica 系统中定义了许多功能强大的函数,可以直接调用这些函数。

这些函数分为两类,一类是常用数学函数;第二类是功能函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x]等。

1.1.1 Mathematica 的启动和运行第一章:Mathematica概述错误信息:如果输入了不合语法规则的表达式,系统会显示出错信息,并且不给出计算结果。

(1)Mathematica 区分字母的大小写;(2)所有指令的首字母大写;(3)括号的匹配。

例如:要画正弦函数在区间[-10,10]上的图形,输入plot[Sin[x],{x,-10,10}],则系统提示“可能有拼写错误,新符号‘plot’很像已经存在的符号‘Plot’”,实际上,系统作图命令“Plot”第一个字母必须大写,一般地,系统内建函数首写字母都要大写。

Mathematica教程06函数作图

Mathematica教程06函数作图
Thickness[r]其中r是线的宽度与整个图形宽度之比 〔二维时默认值为0.004三维时默认值为0.01).
Dashing[{r1,r2,...}]交替使用数r1,r2,…作为线段和空白 的相对长度画虚线(其中r1,r2,…是远远小于1的数,整 个图形宽度为1).
可以对两条曲线分别指定参数值
Plot[Sin[x^2], {x, 0, 3}, Frame -> True] GridLinese用于加网格线。它的值为:
None不加网格线(默认值)。 Automatic 由Mathematics自动加上网格线。 {{x1,x2,...},{y1,y2,...}} 在横轴上的点x1,x2,...和纵轴上 点y1,y2,...处加上网格线
出多条曲线。
这个函数能添加与Plot一样的可选参数。
ParametricPlot[{Cos[t]^3, Sin[t]^3}, {t, 0, 2Pi}, AspectRatio -> Automatic]
Mathematica没有专门画极坐标图形的内部函数(图形扩展 程序包中有),因此应该先转换成参数式.
等值线图
绘制函数z=f(x,y)的等值线图使用函数: ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}] 其中f 是二元函
数的表达式. ContourPlot[x^2-y^2,{x,-1,1},{y,-1,1}] 说明:用灰度表示函数值的大小,越亮的地方函数值越大。 这个函数有以下几个可选参数: ①ContourShading用于决定是否使用灰度。
AspectRatio指定图形的高宽比。它的可选值是: 默认值为0.618(即黄金分割),准确值是1/GoldenRatio, 如果取Automatic,则高宽比为1,还可以取任何正数. 不设置这个参数,则圆变成椭圆,设此参数值为 Automatic则可解决问题。

Mathematica函数及使用方法

Mathematica函数及使用方法

Mathematica函数及使用方法(来源:北峰数模)--------------------------------------------------------------------- 注:为了对Mathematica有一定了解的同学系统掌握Mathematica的强大功能,我们把它的一些资料性的东西整理了一下,希望能对大家有所帮助。

---------------------------------------------------------------------一、运算符及特殊符号Line1; 执行Line,不显示结果Line1,line2 顺次执行Line1,2,并显示结果name 关于系统变量name的信息name 关于系统变量name的全部信息!command 执行Dos命令n! N的阶乘!!filename 显示文件内容< Expr>> filename 打开文件写Expr>>>filename 打开文件从文件末写() 结合率[] 函数{} 一个表<*Math Fun*> 在c语言中使用math的函数(*Note*) 程序的注释#n 第n个参数## 所有参数rule& 把rule作用于后面的式子% 前一次的输出%% 倒数第二次的输出%n 第n个输出var::note 变量var的注释"Astring " 字符串Context ` 上下文a+b 加a-b 减a*b或a b 乘a/b 除a^b 乘方base^^num 以base为进位的数lhs&&rhs 且lhs||rhs 或!lha 非++,-- 自加1,自减1+=,-=,*=,/= 同C语言>,<,>=,<=,==,!= 逻辑判断(同c)lhs=rhs 立即赋值lhs:=rhs 建立动态赋值lhs:>rhs 建立替换规则lhs->rhs 建立替换规则exprule 将规则rule应用于exprexpr..的无限精度数值E ...的无限精度数值Catalan ..卡塔兰常数EulerGamma ....高斯常数GoldenRatio ...黄金分割数Degree Pi/180角度弧度换算I 复数单位Infinity 无穷大-Infinity 负无穷大ComplexInfinity 复无穷大Indeterminate 不定式—————————————————————————————————————三、代数计算Expand[expr] 展开表达式Factor[expr] 展开表达式Simplify[expr] 化简表达式FullSimplify[expr] 将特殊函数等也进行化简PowerExpand[expr] 展开所有的幂次形式ComplexExpand[expr,{x1,x2...}] 按复数实部虚部展开FunctionExpand[expr] 化简expr中的特殊函数Collect[expr, x] 合并同次项Collect[expr, {x1,x2,...}] 合并x1,x2,...的同次项Together[expr] 通分Apart[expr] 部分分式展开Apart[expr, var] 对var的部分分式展开Cancel[expr] 约分ExpandAll[expr] 展开表达式ExpandAll[expr, patt] 展开表达式FactorTerms[poly] 提出共有的数字因子FactorTerms[poly, x] 提出与x无关的数字因子FactorTerms[poly, {x1,x2...}] 提出与xi无关的数字因子Coefficient[expr, form] 多项式expr中form的系数Coefficient[expr, form, n] 多项式expr中form^n的系数Exponent[expr, form] 表达式expr中form的最高指数Numerator[expr] 表达式expr的分子Denominator[expr] 表达式expr的分母ExpandNumerator[expr] 展开expr的分子部分ExpandDenominator[expr] 展开expr的分母部分TrigExpand[expr] 展开表达式中的三角函数TrigFactor[expr] 给出表达式中的三角函数因子TrigFactorList[expr] 给出表达式中的三角函数因子的表TrigReduce[expr] 对表达式中的三角函数化简TrigToExp[expr] 三角到指数的转化ExpToTrig[expr] 指数到三角的转化RootReduce[expr]ToRadicals[expr]—————————————————————————————————————四、解方程Solve[eqns, vars] 从方程组eqns中解出varsSolve[eqns, vars, elims] 从方程组eqns中削去变量elims,解出varsDSolve[eqn, y, x] 解微分方程,其中y是x的函数DSolve[{eqn1,eqn2,...},{y1,y2...},x]解微分方程组,其中yi是x的函数DSolve[eqn, y, {x1,x2...}] 解偏微分方程Eliminate[eqns, vars] 把方程组eqns中变量vars约去SolveAlways[eqns, vars] 给出等式成立的所有参数满足的条件Reduce[eqns, vars] 化简并给出所有可能解的条件LogicalExpand[expr] 用&&和||将逻辑表达式展开InverseFunction[f] 求函数f的逆函数Root[f, k] 求多项式函数的第k个根Roots[lhs==rhs, var] 得到多项式方程的所有根—————————————————————————————————————五、微积分函数D[f, x] 求f[x]的微分D[f, {x, n}] 求f[x]的n阶微分D[f,x1,x2..] 求f[x]对x1,x2...偏微分Dt[f, x] 求f[x]的全微分df/dxDt[f] 求f[x]的全微分dfDt[f, {x, n}] n阶全微分df^n/dx^nDt[f,x1,x2..] 对x1,x2..的偏微分Integrate[f, x] f[x]对x在的不定积分Integrate[f, {x, xmin, xmax}] f[x]对x在区间(xmin,xmax)的定积分Integrate[f, {x, xmin, xmax}, {y, ymin, ymax}] f[x,y]的二重积分Limit[expr, x->x0] x趋近于x0时expr的极限Residue[expr, {x,x0}] expr在x0处的留数Series[f, {x, x0, n}] 给出f[x]在x0处的幂级数展开Series[f, {x, x0,nx}, {y, y0, ny}]先对y幂级数展开,再对xNormal[expr] 化简并给出最常见的表达式SeriesCoefficient[series, n] 给出级数中第n次项的系数SeriesCoefficient[series, {n1,n2...}]'或Derivative[n1,n2...][f] 一阶导数InverseSeries[s, x] 给出逆函数的级数ComposeSeries[serie1,serie2...] 给出两个基数的组合SeriesData[x,x0,{a0,a1,..},nmin,nmax,den]表示一个在x0处x的幂级数,其中ai为系数O[x]^n n阶小量x^nO[x, x0]^n n阶小量(x-x0)^n—————————————————————————————————————八、数值函数N[expr] 表达式的机器精度近似值N[expr, n] 表达式的n位近似值,n为任意正整数NSolve[lhs==rhs, var] 求方程数值解NSolve[eqn, var, n] 求方程数值解,结果精度到n位NDSolve[eqns, y, {x, xmin, xmax}]微分方程数值解NDSolve[eqns, {y1,y2,...}, {x, xmin, xmax}]微分方程组数值解FindRoot[lhs==rhs, {x,x0}] 以x0为初值,寻找方程数值解FindRoot[lhs==rhs, {x, xstart, xmin, xmax}]NSum[f, {i,imin,imax,di}] 数值求和,di为步长NSum[f, {i,imin,imax,di}, {j,..},..] 多维函数求和NProduct[f, {i, imin, imax, di}]函数求积NIntegrate[f, {x, xmin, xmax}] 函数数值积分优化函数:FindMinimum[f, {x,x0}] 以x0为初值,寻找函数最小值FindMinimum[f, {x, xstart, xmin, xmax}]ConstrainedMin[f,{inequ},{x,y,..}]inequ为线性不等式组,f为x,y..之线性函数,得到最小值及此时的x,y..取值ConstrainedMax[f, {inequ}, {x, y,..}]同上LinearProgramming[c,m,b] 解线性组合在>=b&&x>=0约束下的最小值,x,b,c为向量,m为矩阵LatticeReduce[{v1,v2...}] 向量组vi的极小无关组数据处理:Fit[data,funs,vars]用指定函数组对数据进行最小二乘拟和data可以为{{x1,y1,..f1},{x2,y2,..f2}..}多维的情况emp: Fit[{,12,,}, {1, x, x^2,Sin[x]}, x]Interpolation[data]对数据进行差值,data同上,另外还可以为{{x1,{f1,df11,df12}},{x2,{f2,.}..}指定各阶导数InterpolationOrder默认为3次,可修改ListInterpolation[array]对离散数据插值,array可为n维ListInterpolation[array,{{xmin,xmax},{ymin,ymax},..}] FunctionInterpolation[expr,{x,xmin,xmax}, {y,ymin,ymax},..]以对应expr[xi,yi]的为数据进行插值Fourier[list] 对复数数据进行付氏变换InverseFourier[list] 对复数数据进行付氏逆变换Min[{x1,x2...},{y1,y2,...}]得到每个表中的最小值Max[{x1,x2...},{y1,y2,...}]得到每个表中的最大值Select[list, crit] 将表中使得crit为True的元素选择出来Count[list, pattern] 将表中匹配模式pattern的元素的个数Sort[list] 将表中元素按升序排列Sort[list,p] 将表中元素按p[e1,e2]为True的顺序比较list的任两个元素e1,e2,实际上Sort[list]中默认p=Greater集合论:Union[list1,list2..] 表listi的并集并排序Intersection[list1,list2..] 表listi的交集并排序Complement[listall,list1,list2...]从全集listall中对listi的差集—————————————————————————————————————九、虚数函数Re[expr] 复数表达式的实部Im[expr] 复数表达式的虚部Abs[expr] 复数表达式的模Arg[expr] 复数表达式的辐角Conjugate[expr] 复数表达式的共轭—————————————————————————————————————十、数的头及模式及其他操作Integer _Integer 整数Real _Real 实数Complex _Complex 复数Rational_Rational 有理数(*注:模式用在函数参数传递中,如MyFun[Para1_Integer,Para2_Real]规定传入参数的类型,另外也可用来判断If[Head[a]==Real,...]*) IntegerDigits[n,b,len] 数字n以b近制的前len个码元RealDigits[x,b,len] 类上FromDigits[list] IntegerDigits的反函数Rationalize[x,dx] 把实数x有理化成有理数,误差小于dxChop[expr, delta] 将expr中小于delta的部分去掉,dx默认为10^-10 Accuracy[x] 给出x小数部分位数,对于Pi,E等为无限大Precision[x] 给出x有效数字位数,对于Pi,E等为无限大SetAccuracy[expr, n] 设置expr显示时的小数部分位数SetPrecision[expr, n] 设置expr显示时的有效数字位数—————————————————————————————————————十一、区间函数Interval[{min, max}] 区间[min, max](* Solve[3 x+2==Interval[{-2,5}],x]*) IntervalMemberQ[interval, x] x在区间内吗IntervalMemberQ[interval1,interval2] 区间2在区间1内吗IntervalUnion[intv1,intv2...] 区间的并IntervalIntersection[intv1,intv2...] 区间的交—————————————————————————————————————十二、矩阵操作或Dot[a, b, c] 矩阵、向量、张量的点积Inverse[m] 矩阵的逆Transpose[list] 矩阵的转置Transpose[list,{n1,n2..}]将矩阵list 第k行与第nk列交换Det[m] 矩阵的行列式Eigenvalues[m] 特征值Eigenvectors[m] 特征向量Eigensystem[m] 特征系统,返回{eigvalues,eigvectors}LinearSolve[m, b] 解线性方程组==bNullSpace[m] 矩阵m的零空间,即[m]==零向量RowReduce[m] m化简为阶梯矩阵Minors[m, k] m的所有k*k阶子矩阵的行列式的值(伴随阵,好像是) MatrixPower[mat, n] 阵mat自乘n次Outer[f,list1,list2..] listi中各个元之间相互组合,并作为f的参数的到的矩阵Outer[Times,list1,list2]给出矩阵的外积SingularValues[m] m的奇异值,结果为{u,w,v},m=Conjugate[Transpose[u]].DiagonalMatrix[w].vPseudoInverse[m] m的广义逆QRDecomposition[m] QR分解SchurDecomposition[m] Schur分解LUDecomposition[m] LU分解—————————————————————————————————————十三、表函数(*“表”,我认为是Mathematica中最灵活的一种数据类型*)(*实际上表就是表达式,表达式也就是表,所以下面list==expr *)(*一个表中元素的位置可以用于一个表来表示*)表的生成{e1,e2,...} 一个表,元素可以为任意表达式,无穷嵌套Table[expr,{imax}] 生成一个表,共imax个元素Table[expr,{i, imax}] 生成一个表,共imax个元素expr[i] Table[expr,{i,imin,imax},{j,jmin,jmax},..] 多维表Range[imax] 简单数表{1,2,..,imax}Range[imin, imax, di] 以di为步长的数表Array[f, n] 一维表,元素为f[i] (i从1到n)Array[f,{n1,n2..}] 多维表,元素为f[i,j..] (各自从1到ni) IdentityMatrix[n] n阶单位阵DiagonalMatrix[list] 对角阵元素操作Part[expr, i]或expr[[i]]第i个元expr[[-i]] 倒数第i个元expr[[i,j,..]] 多维表的元expr[[{i1,i2,..}] 返回由第i(n)的元素组成的子表First[expr] 第一个元Last[expr] 最后一个元Head[expr] 函数头,等于expr[[0]]Extract[expr, list] 取出由表list制定位置上expr的元素值Take[list, n] 取出表list前n个元组成的表Take[list,{m,n}] 取出表list从m到n的元素组成的表Drop[list, n] 去掉表list前n个元剩下的表,其他参数同上Rest[expr] 去掉表list第一个元剩下的表Select[list, crit] 把crit作用到每一个list的元上,为True的所有元组成的表表的属性Length[expr] expr第一曾元素的个数Dimensions[expr] 表的维数返回{n1,n2..},expr为一个n1*n2...的阵TensorRank[expr] 秩Depth[expr] expr最大深度Level[expr,n] 给出expr中第n层子表达式的列表Count[list, pattern] 满足模式的list中元的个数MemberQ[list, form] list中是否有匹配form的元FreeQ[expr, form] MemberQ的反函数Position[expr, pattern] 表中匹配模式pattern的元素的位置列表Cases[{e1,e2...},pattern]匹配模式pattern的所有元素ei的表表的操作Append[expr, elem] 返回在表expr的最后追加elem元后的表Prepend[expr, elem] 返回在表expr的最前添加elem元后的表Insert[list, elem, n] 在第n元前插入elemInsert[expr,elem,{i,j,..}]在元素expr[[{i,j,..}]]前插入elemDelete[expr, {i, j,..}] 删除元素expr[[{i,j,..}]]后剩下的表DeleteCases[expr,pattern]删除匹配pattern的所有元后剩下的表ReplacePart[expr,new,n] 将expr的第n元替换为newSort[list] 返回list按顺序排列的表Reverse[expr] 把表expr倒过来RotateLeft[expr, n] 把表expr循环左移n次RotateRight[expr, n] 把表expr循环右移n次Partition[list, n] 把list按每n各元为一个子表分割后再组成的大表Flatten[list] 抹平所有子表后得到的一维大表Flatten[list,n] 抹平到第n层Split[list] 把相同的元组成一个子表,再合成的大表FlattenAt[list, n] 把list[[n]]处的子表抹平Permutations[list] 由list的元素组成的所有全排列的列表Order[expr1,expr2] 如果expr1在expr2之前返回1,如果expr1在expr2之后返回-1,如果expr1与expr2全等返回0Signature[list] 把list通过两两交换得到标准顺序所需的交换次数(排列数)以上函数均为仅返回所需表而不改变原表AppendTo[list,elem] 相当于list=Append[list,elem];PrependTo[list,elem] 相当于list=Prepend[list,elem];--—————————————————————————————————————十四、绘图函数二维作图Plot[f,{x,xmin,xmax}] 一维函数f[x]在区间[xmin,xmax]上的函数曲线Plot[{f1,f2..},{x,xmin,xmax}] 在一张图上画几条曲线ListPlot[{y1,y2,..}] 绘出由离散点对(n,yn)组成的图ListPlot[{{x1,y1},{x2,y2},..}] 绘出由离散点对(xn,yn)组成的图ParametricPlot[{fx,fy},{t,tmin,tmax}] 由参数方程在参数变化范围内的曲线ParametricPlot[{{fx,fy},{gx,gy},...},{t,tmin,tmax}]在一张图上画多条参数曲线选项:PlotRange->{0,1} 作图显示的值域范围AspectRatio->1/GoldenRatio生成图形的纵横比PlotLabel ->label 标题文字Axes ->{False,True} 分别制定是否画x,y轴AxesLabel->{xlabel,ylabel}x,y轴上的说明文字Ticks->None,Automatic,fun用什么方式画轴的刻度AxesOrigin ->{x,y} 坐标轴原点位置AxesStyle->{{xstyle}, {ystyle}}设置轴线的线性颜色等属性Frame ->True,False 是否画边框FrameLabel ->{xmlabel,ymlabel,xplabel,yplabel}边框四边上的文字FrameTicks同Ticks 边框上是否画刻度GridLines 同Ticks 图上是否画栅格线FrameStyle ->{{xmstyle},{ymstyle}设置边框线的线性颜色等属性ListPlot[data,PlotJoined->True] 把离散点按顺序连线PlotSytle->{{style1},{style2},..}曲线的线性颜色等属性PlotPoints->15 曲线取样点,越大越细致三维作图Plot3D[f,{x,xmin,xmax}, {y,ymin,ymax}]二维函数f[x,y]的空间曲面Plot3D[{f,s}, {x,xmin,xmax}, {y,ymin,ymax}]同上,曲面的染色由s[x,y]值决定ListPlot3D[array] 二维数据阵array的立体高度图ListPlot3D[array,shades]同上,曲面的染色由shades[数据]值决定ParametricPlot3D[{fx,fy,fz},{t,tmin,tmax}]二元数方程在参数变化范围内的曲线ParametricPlot3D[{{fx,fy,fz},{gx,gy,gz},...},{t,tmin,tmax}]多条空间参数曲线选项:ViewPoint ->{x,y,z} 三维视点,默认为{,,2}Boxed -> True,False 是否画三维长方体边框BoxRatios->{sx,sy,sz} 三轴比例BoxStyle 三维长方体边框线性颜色等属性Lighting ->True 是否染色LightSources->{s1,s2..} si为某一个光源si={{dx,dy,dz},color} color为灯色,向dx,dy,dz方向照射AmbientLight->颜色函数慢散射光的光源Mesh->True,False 是否画曲面上与x,y轴平行的截面的截线MeshStyle 截线线性颜色等属性MeshRange->{{xmin,xmax}, {ymin,ymax}}网格范围ClipFill->Automatic,None,color,{bottom,top}指定图形顶部、底部超界后所画的颜色Shading ->False,True 是否染色HiddenSurface->True,False 略去被遮住不显示部分的信息等高线ContourPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的等高线图ListContourPlot[array] 根据二维数组array数值画等高线选项:Contours->n 画n条等高线Contours->{z1,z2,..} 在zi处画等高线ContourShading -> False 是否用深浅染色ContourLines -> True 是否画等高线ContourStyle -> {{style1},{style2},..}等高线线性颜色等属性FrameTicks 同上密度图DensityPlot[f,{x,xmin,xmax},{y,ymin,ymax}]二维函数f[x,y]在指定区间上的密度图ListDensityPlot[array] 同上图形显示Show[graphics,options] 显示一组图形对象,options为选项设置Show[g1,g2...] 在一个图上叠加显示一组图形对象GraphicsArray[{g1,g2,...}]在一个图上分块显示一组图形对象SelectionAnimate[notebook,t]把选中的notebook中的图画循环放映选项:(此处选项适用于全部图形函数)Background->颜色函数指定绘图的背景颜色RotateLabel -> True 竖着写文字TextStyle 此后输出文字的字体,颜色大小等ColorFunction->Hue等把其作用于某点的函数值上决定某点的颜色RenderAll->False 是否对遮挡部分也染色MaxBend 曲线、曲面最大弯曲度绘图函数(续)图元函数Graphics[prim, options]prim为下面各种函数组成的表,表示一个二维图形对象Graphics3D[prim, options]prim为下面各种函数组成的表,表示一个三维图形对象SurfaceGraphics[array, shades]表示一个由array和shade决定的曲面对象ContourGraphics[array]表示一个由array决定的等高线图对象DensityGraphics[array]表示一个由array决定的密度图对象以上定义图形对象,可以进行对变量赋值,合并显示等操作,也可以存盘Point[p] p={x,y}或{x,y,z},在指定位置画点Line[{p1,p2,..}]经由pi点连线Rectangle[{xmin, ymin}, {xmax, ymax}] 画矩形Cuboid[{xmin,ymin,zmin},{xmax,ymax,zmax}]由对角线指定的长方体Polygon[{p1,p2,..}] 封闭多边形Circle[{x,y},r] 画圆Circle[{x,y},{rx,ry}] 画椭圆,rx,ry为半长短轴Circle[{x,y},r,{a1,a2}] 从角度a1~a2的圆弧Disk[{x, y}, r] 填充的园、椭圆、圆弧等参数同上Raster[array,ColorFunction->f] 颜色栅格Text[expr,coords] 在坐标coords上输出表达式PostScript["string"] 直接用PostScript图元语言写Scaled[{x,y,..}] 返回点的坐标,且均大于0小于1颜色函数(指定其后绘图的颜色)GrayLevel[level] 灰度level为0~1间的实数RGBColor[red, green, blue] RGB颜色,均为0~1间的实数Hue[h, s, b] 亮度,饱和度等,均为0~1间的实数CMYKColor[cyan, magenta, yellow, black] CMYK颜色其他函数(指定其后绘图的方式)Thickness[r] 设置线宽为rPointSize[d] 设置绘点的大小Dashing[{r1,r2,..}] 虚线一个单元的间隔长度ImageSize->{x, y} 显示图形大小(像素为单位)ImageResolution->r 图形解析度r个dpiImageMargins->{{left,right},{bottom,top}}四边的空白ImageRotated->False 是否旋转90度显示—————————————————————————————————————十五、流程控制分支If[condition, t, f] 如果condition为True,执行t段,否则f段If[condition, t, f, u] 同上,即非True又非False,则执行u段Which[test1,block1,test2,block2..] 执行第一为True的testi对应的blocki Switch[expr,form1,block1,form2,block2..]执行第一个expr所匹配的formi所对应的blocki段循环Do[expr,{imax}] 重复执行expr imax次Do[expr,{i,imin,imax}, {j,jmin,jmax},...]多重循环While[test, body] 循环执行body直到test为FalseFor[start,test,incr,body]类似于C语言中的for,注意","与";"的用法相反examp: For[i=1;t =x,i^2<10,i++,t =t+i;Print[t]]异常控制Throw[value] 停止计算,把value返回给最近一个Catch处理Throw[value, tag] 同上,Catch[expr] 计算expr,遇到Throw返回的值则停止Catch[expr, form] 当Throw[value, tag]中Tag匹配form时停止其他控制Return[expr] 从函数返回,返回值为exprReturn[ ] 返回值NullBreak[ ] 结束最近的一重循环Continue[ ] 停止本次循环,进行下一次循环Goto[tag] 无条件转向Label[Tag]处Label[tag] 设置一个断点Check[expr,failexpr] 计算expr,如果有出错信息产生,则返回failexpr的值Check[expr,failexpr,s1::t1,s2::t2,...]当特定信息产生时则返回failexpr CheckAbort[expr,failexpr]当产生abort信息时放回failexprInterrupt[ ] 中断运行Abort[ ] 中断运行TimeConstrained[expr,t] 计算expr,当耗时超过t秒时终止MemoryConstrained[expr,b]计算expr,当耗用内存超过b字节时终止运算交互式控制Print[expr1,expr2,...] 顺次输出expri的值examp: Print[ "X=" , X.},body]多自变量纯函数#,#n 纯函数的第一、第n个自变量## 纯函数的所有自变量的序列examp: ^& [2,3] 返回第一个参数的第二个参数次方映射Map[f,expr]或f/@expr 将f分别作用到expr第一层的每一个元上得到的列表Map[f,expr,level] 将f分别作用到expr第level层的每一个元上Apply[f,expr]或f@@expr 将expr的“头”换为fApply[f,expr,level] 将expr第level层的“头”换为fMapAll[f,expr]或f.}] 把f作用到expr[[{i,j,...}]]元上MapIndexed[f,expr] 类似MapAll,但都附加其映射元素的位置列表Scan[f, expr] 按顺序分别将f作用于expr的每一个元Scan[f,expr,levelspec] 同上,仅作用第level层的元素复合映射Nest[f,expr,n] 返回n重复合函数f[f[...f[expr]...]]NestList[f,expr,n] 返回0重到n重复合函数的列表{expr,f[expr],f[f[expr]]..} FixedPoint[f, expr] 将f复合作用于expr直到结果不再改变,即找到其不定点FixedPoint[f, expr, n] 最多复合n次,如果不收敛则停止FixedPointList[f, expr] 返回各次复合的结果列表FoldList[f,x,{a,b,..}] 返回{x,f[x,a],f[f[x,a],b],..}Fold[f, x, list] 返回FoldList[f,x,{a,b,..}]的最后一个元ComposeList[{f1,f2,..},x]返回{x,f1[x],f2[f1[x]],..}的复合函数列表Distribute[f[x1,x2,..]] f对加法的分配率Distribute[expr, g] 对g的分配率Identity[expr] expr的全等变换Composition[f1,f2,..] 组成复合纯函数f1[f2[..fn[ ]..]Operate[p,f[x,y]] 返回p[f][x, y]Through[p[f1,f2][x]] 返回p[f1[x],f2[x]]Compile[{x1,x2,..},expr]编译一个函数,编译后运行速度可以大大加快Compile[{{x1,t1},{x2,t2}..},expr] 同上,可以制定函数参数类型—————————————————————————————————————十七、替换规则lhs->rhs 建立了一个规则,把lhs换为rhs,并求rhs的值lhs:>rhs 同上,只是不立即求rhs的值,知道使用该规则时才求值Replace[expr,rules] 把一组规则应用到expr上,只作用一次expr /. rules 同上expr .}]综合各个规则,产生一组优化的规则组><Mathematica的常见问题><===================================1).Mathematica 可以定义变量为实数么1. 在Simplify/FullSimplify可以使用\[Element],如Simplify[Re[a+b*I],a\[Element]Reals]2. 可以使用ComplexExpand[]来展开表达式,默认:符号均为实数:Unprotect[Abs];Abs[x_] := Sqrt[Re[x]^2 + Im[x]^2];ComplexExpand[Abs[a + b*I], a]3. 使用/:,对符号关联相应的转换规则x /: Im[x] = 0;x /: Re[x] = x;y /: Im[y] = 0;y /: Re[y] = y;Re[x+y*I]===================================2).Mathematica中如何中断运算Alt+. 直接终止当前执行的运算Alt+, 询问是否终止或者继续如果不能终止,用菜单Kernel\Quit Kernal\Local来退出当前运算===================================3).请高手推荐Mathematica参考书我迄今为止看到的最好的一本就是Mathematica自己带的帮助里面的The Mathematica Book,内容全面,循序渐近,非常容易学习使用。

Mathematica-6

Mathematica-6

NSum[f,{imin,imax, 多维函数求和 di},{j,..},..]
NProduct[f,{i,imin,im 函数求积 ax,di}]
NIntegrate[f, {x,xmin,xmax}]
函数数值积分
FindMinimum[f, {x,xO}]
以x0为初值,寻找函数 最小值
FindMinimum[f,{x,以xstart为初值,在
多项式expr中form的系 数
Coefficient[expr,form, 多项式expr中form^n的
n]
系数
Exponent[expr,form]
表达式expr中form的最 高指数
Numerator[expr]
表达式expr的分子
Denominator[expr]
表达式expr的分母
ExpandNumerator[expr] 展开expr的分子部分
1.运算符及特殊符号
Linel Linel,line2 ?name ??name !command N! !!filename
执行Line,不显示结果
顺次执行Line1,Line2, 并显示结果 关于系统变量name的信息
关于系统变量name的全部 信息 执行Dos命令 N的阶乘 显示文件内容
<<filename Expr:>>filename Expr>>>filename () [] {}
polyi的最小公倍式
PolynomialReduce[pl oy, {polyl,Poly2,..}, {xl,x2…})
得到一个表{(a1,a2, ·),b}其中 Sum[ai*polyi]+b=poly

第一章 Mathematica6

第一章 Mathematica6

第一章 Mathematica6.0简介§1.1 绪论Mathematica是由美国科学家Stephen Wolfram领导的Wolfram公司开发研制的一个用途广泛的科学计算软件.1988年发布Mathematica系统1.0版,因系统精致的结构和强大的计算能力而广为流传,经不断扩充和修改后,在1991年1997年推出了功能更加充实和完善的Mathematica2.0版和Mathematica3.0版,在1999年推出Mathematica4.0版.随后又陆续推出Mathematica5.0版,并于2007年5月推出Mathematica6.0版.目前人们使用最多的是Mathematica 5.0版和Mathematica 6.0版,而且Mathematica6.0版已有相应的汉化程序,本教材以Mathematica6.0为模版介绍.Mathematica系统是目前世界上应用最广泛的符号计算系统,能够完成符号和数值运算、数学图形绘制甚至动画制作等多种功能.其主要特点包括:1.Mathematica是人-机对话式软件,使用者在Mathematica的Notebook环境下输入表达式命令后,系统可以立即进行处理,然后返回结果.用户不必关心中间的计算过程,其交互性能非常好.2.Mathematica在进行数值计算时,能尽可能地保持计算的精确度.它对整数运算的结果不受字段长的限制,而对实数运算结果则可以按使用者的需要,给出任意位的有效数字.3.Mathematica的符号运算功能是最突出的.当使用者输入一个表达式后,系统在大量的对应法则中去寻找最好的等价结果.比如,Mathematica可以进行多项式的因式分解,求函数的导数,求不定积分等.4.Mathematica不仅可以进行基本的计算,还可以进行图形处理,用Mathematica可以绘出精美的二三维图形.Mathematica也能对声音进行处理,它可以让一个函数产生一种声音,并且绘出表示该声音的波形.为了给同学们的学习提供更多的帮助,在这里给大家提几点建议.首先大家要特别关注Mathematica软件自带的帮助系统(help),这是一个非常好的学习材料,也是一本最完整的教材.其次可以从Mathematica网站的主页/上获得最新的、最权威的材料.另外给大家推荐一个国内关于Mathematica的很好的网站 (赛吉信息技术有限公司主页),这是Mathematica中国总代理.§1.2 Mathematica6.0界面介绍1.2.1 Mathematica6.0的启动、运行和退出假设在Windows环境下已安装好Mathematica6.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica6.0,在屏幕上显示如图的Notebook 窗口,系统暂时取名Untitled-1,直到用户保存时重新命名为止.输入1+1,然后按下Shif+Enter键(或者小键盘上的Enter键),这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式,要求系统将一个二项式展开,按Shift+Enter(或者小键盘上的Enter 键)输出计算结果后,系统分别将其标识为In[2]和Out[2].如图Mathematica第一次计算时因为要启动核(kernel),所需时间要长一些,也可以在Mathematica 启动后第一次计算之前,手工启动核,方法是用鼠标点击:菜单Evaluation->Kernel->Start Kernel->Local.这样第一次计算就很快了.在Mathematica工作过程中,可以随时退出核,方法是:菜单Evaluation->Kernel->Quit Kernel->Local.退出时可以在“File”菜单中选择“Exit”命令或按“Alt+F4".1.2.2 帮助菜单的使用任何时候都可以单击Help 菜单中的Documentation Center命令,打开帮助中心,查找需要的帮助或者选择Virtual Book, 里面有一本完整的Mathamatica使用指南,单击菜单命令,可获得相关的帮助信息.Documentation Center帮助中心主要用来查找一些函数的使用方法, Virtual Book则主要用来了解Mathematica主要功能, 主要选项有Introduction, Core Language, Mathematics and Algorithms, Visualization and Graphics 等.§1.3 Mathematica6.0的基本运算1.3.1 常量和变量在一个过程中保持不变的量称为常量,常量也称为常数,Mathematica提供很多常用的数学常数,如:Pi:圆周率;Degree:度;Infinity:无穷大;E:自然对数的底;I:虚数单位.为了便于计算或保存中间计算结果,常常需要引进变量.在Mathematica中变量名以英文字母开头,后跟字母或数字,变量名字符的长度不限.例如:abcdefghijk,A,x3 都是合法的变量名;而2t 和u v(u与v之间有一空格)不能作为变量名.英文字母中大小写意义不同,因此A 与a 表示两个不同的变量.在Mathematica中常量、内部函数或命令都是以大写字母开头的标识符,为了避免混淆,通常取以小写字母开头的变量名.用户可以对矩阵等变量用大写字母,这样更符合数学表示的习惯.在Mathematica中变量即取即用,不需要先说明变量的类型再使用.在Mathematica 中变量不仅可存放一个整数或复数,还可存放一个多项式或复杂的图形.数值有类型,变量也有类型.通常在运算中不需要对变量进行类型说明,系统根据你对变量所赋的值会作出正确的处理.在定义函数和程序设计中也允许对变量进行类型说明.在Mathematica中用“=”表示为变量赋值.下表给出了变量赋值的常用形式.赋值形式意义x=value 给x定义值valuex=y=value 给x和y定义同一值value{x,y}={value1,value2} 给x和y定义不同的值value{x,y}={y,x} 交换x和y的值x=. 清除变量x的值Clear[x] 清除变量x的定义和值1.3.2 算术运算Mathematica最基本的功能是进行算术运算,包括加(+),减(-),乘(*),除(/),乘方(^),阶乘(!)等.注意:1. 在Mathematica中,也可用空格代表乘号;数字和字母相乘,乘号可以省去,例如:3*2可写成3 2,2*x可写成2x,但字母和字母相乘,乘号不能省去.建议大家尽可能不要省去乘号,以免引起混乱.2. 在Mathematica中,表达式中用来表示运算的结合次序的括号只允许是圆括号(无论多少层).例如:4*(2+3/(2-5))3.. 当输入式子中不含小数点,输出结果是完全精确的.例如:输入2/3,输出仍然为2/3.4. 为了得到计算结果的近似数或指定有效数字的位数,可以用N[ ]函数.例如:N[x],N[x,20].前者取x的默认位数近似值,后者取x的20位有效数字.5. %表示上一个输出结果,%%表示倒数第二个输出结果,以此类推,%n表示第n个输出结果(而不是倒数第n个结果).6. 在Mathematica中,如果在输入的表达式末尾加上一个分号“;”,表示不显示计算结果,但你可以调用它的结果.例{6!,6!!,34*3.5,(2 Pi+5)/4^2,N[Pi,10],N[Pi,20] ,E^4}(输入){720,48,119.,1/16 (5+2 ),3.141592654,3.1415926535897932385 ,E4}(输出)Mathematica可以计算非常大的整数和非常精确的实数,请测试100!,200!及N[Pi,100], N[E,1000].1.3.3 Mathematica中的函数Mathematica的功能均通过函数来实现,Mathematica的函数包含了通常意义上的数学函数和所有命令,例如打印命令和绘图功能等.Mathematica函数采用见名知义的方式命名,要求首字母和复合函数名的各个单词首字母大写,且函数中的变量放在方括号中,例如Sin[x]和Cos[x]分别表示正弦和余弦函数,ArcSin[x]和ArcCos[x]分别表示反正弦和反余弦函数等.同样,我们不难猜出下面这些函数的数学意义,如Abs[x],Sqrt[x], Exp[x], Log[x], Log[b,x], Tan[x], Cot[x], ArcTan[x], Sinh[x], Cosh[x], Tanh[x], Coth[x], ArcTanh[x]等. 下面再给出一些常用的函数:表1.1 Mathematica中一些常用的函数函数说明Round[x] 最接近x的整数Floor[x] 不大于x的最大整数Ceiling[x] 不小于x的最小整数IntegerPart[x] x的整数部分FractionalPart[x] x的小数部分Max[x1,x2,…] x1,x2,…中的最大值Min[x1,x2,…] x1,x2,…中的最小值Mod[m,n] m除以n的正余数Prime[k] 第k个素数IntegerDigits[n] 以表的形式给出整数n的各位数字RealDigits[x] 以表的形式给出实数x的各位数字Divisors[n] 以表的形式给出整数n的各个因子FactorInteger[n] 整数n的质因子分解Quotinent[m,n] M除以n的商GCD[n1,n2,…] n1,n2,…公因数LCM[n1,n2,…] n1,n2,…的最小公倍数CBinomial[n,m] 二项式系数mnSign[x] 符号函数,x>0为1, x<0为-1 RandomReal[] 0和1之间的一个伪随机实数RandomReal[{xmin,xmax}] xmin到xmax之间的伪随机实数RandomReal[xmax] 0到xmax之间的伪随机实数RandomReal[{xmin,xmax},n] xmin到xmax之间的n个伪随机实数表RandomReal[{xmin,xmax},{n1,n2}] xmin到xmax之间的二重伪随机实数表RealInteger[] 0和1的伪随机整数RandomInteger[{imin,imax}] imin到imax之间的伪随机整数RandomInteger[{imin,imax},n] imin到imax之间的n个伪随机整数与随机数有关的函数还有很多, 例如, SeedRandom, RandomPrime, RandomComplex, RandomChoice, RandomSample等, 请自行查找其功能和用法.例:{Round[-3.8],Floor[-4.9],IntegerPart[-4.9],FractionalPart[9.34],S in[Pi/2],Tan[Pi/4],ArcCos[-1],Log[10,100],Exp[2]}{-4,-5,-4,0.34,1,1,π,2,©2}{Binomial[6,2],Prime[5],Mod[27,6],GCD[30,45],LCM[30,45]} {15,11,3,15,90}IntegerDigits[123539905] {1,2,3,5,3,9,9,0,5} Divisors[12] {1,2,3,4,6,12}请运行以下随机数函数, 观察计算机显示结果.{RandomReal[],RandomReal[5],RandomReal[{-5,5}]}{RandomInteger[],RandomInteger[5],RandomInteger[{-3,5}]} SeedRandom[143];RandomInteger[5,8] RandomReal[{-10,5},12]lis={-7,5,8,2}; RandomChoice[lis,10] RandomSample[lis,3]在函数名字输入过程中, 可以随时按下Ctrl+K 键, 计算机屏幕上将出现一些有关的函数名称, 再用鼠标选取所需的函数即可.Mathematica 中表达式有四种书写形式, 对于我们来说最常用的是标准形式和后缀形式.Mathematica 中函数的输入形式函数输入形式说明f[x,y] f[x,y]的标准形式 f@x f[x]的前缀形式 x//f f[x]的后缀形式 x~f~y f[x,y]的中缀形式{Sin[Pi/3],Sin@Pi/3,Sin@(Pi/3),Pi/3//Sin,Sin[Pi/3]//N} {23,0,23,23,0.866025} 注意: f[x]的前缀形式仅作用于@后面的第一个数字, 而f[x]的后缀形式则对整个表达式作用.1.3.4 表与表的生成将一些有关联的数据元素组成一个整体,在Mathematica 中,这样的数据结构称为表(list ).用表可以表示数学中的集合、向量和矩阵,也可以表示数据库中的一组记录.在Mathematica 中既可对整体数据表操作,也可对表的单个元素操作.表在形式上是用花括号括起来的若干个元素,元素之间用逗号分割.例: g={1/2,Pi,E,x,2+3,-2Sin[x]}12,,,x,5,2Sin x表中的元素可以为任何数据类型,表的元素可以为数值、表达式和表,同一个表中的元素可为不同的类型.表中元素比较少时,直接使用形式变量={元素1,元素2,…}更多情况下,我们使用建表命令Table、Range和Array生成表.在这些命令中,需要使用Mathematica的循环描述,循环描述形式为{循环变量,循环初值,循环终值,步长},循环变量从循环初值开始,按步长逐步递增(或递减),直到循环终值为止.循环变量、循环初值、循环终值和步长可为整数、有理数和实数.下表列出了几种常用的循环形式.循环描述说明{i,min,max,step} i从min到max,按步长step增加{i,min,max} 同上,步长为1{i,max} 同上,初值为1,步长为1{max} 重复max次{i,imin,imax},{j,jmin,jmax} i从imin到imax,对每个i值,j从jmin到jmax 建表命令Table、Array和Range的一般形式如下Table[通项公式,{循环范围},{循环范围},…],功能:按循环范围定义表的大小范围和层次,用通项公式的规则定义表的元素.Array[函数名, 取值范围], 功能:函数名定义表中元素的取值,取值范围内的数为函数的自变量.Range[初值,终值,步长],功能:生成值为{初值,初值+步长,…},其中最后的值不超过终值.下面给出建表函数的常用形式.建表函数说明Table[f,{i,min,max,step}] 定义f的数值表,i从min到max,以step为步长Table[f,{i,min,max}] 同上,步长为1Table[f,{max}] 给出max个元素f的表生成一个多维表Table[f,{i,imin,imax},{j,jmin,jmax},…]Array[f,n] 生成n个元素的一维表,表的元素为f[i]Array[f,{n1,n2}] 生成n1*n2个元素的二维表,表的元素为f[i,j] Range[n] 生成一个{1,2,…,n}的数列Range[n1,n2,d] 生成{n1,n1+d,n1+2d, …}的数列TableForm[a] 以表列格式显示表a下面的例子显示了建表函数的使用, 其中Array 命令中的#^2&为Mathematica的纯函数定义, #为自变量, &为纯函数表达式的结束标志.Range[3,13,2]{3,5,7,9,11,13}t=Table[i^2,{i,5}]{1,4,9,16,25}Array[#^2&,5](5表示自变量取值为1,2,3,4,5, 纯函数表示函数值为12,22, (52){1,4,9,16,25}t=Table[Sin[Pi/4*i],{I,0,5}]{0,21,1,21,0,21-}Array[Sin[Pi/4*#]&,5] {0,21,1,21,0,21-}m=Table[x^i+y^j,{I,2},{j,4}]{{x+y,x+y 2,x+y 3,x+y 4},{x 2+y,x 2+y 2,x 2+y 3,x 2+y 4}}随机数表由随机数函数直接生成.例, t=RandomInteger[{-5,10},5]当s 表示一个表时,s[[i]]表示s 中的第i 个子表.例如,s={1,3,5,7},则s[[2]]的值是3,函数Part[s,2]的意义与s[[2]]相同.如果s={{1,2,3},{2,3,4},{3,4,5}},那么,s[[2]]的值是{2,3,4},s[[2,2]]的值是3,s[[{1,2}]]的值是{{1,2,3},{2,3,4}},它表示s 的第一和第二个元素组成的表.下表给出取表中分量的一般形式. 表的分量说明t[[n]]或Part[t,n] 表t 中的第n 个元素 t[[-n]]或Part[t,-n] 表t 中的倒数第n 个元素 First[list] 表list 中的第一个元素 Last[list]表list 中的最后一个元素t[[{n1,n2,…}]] 给出由t 的第n1,n2,…个元素组成的表 t[[I,j]]表t 的第i 个子表的第j 个元素Mathematica 还提供了一些表操作的函数,例如,插入或删除表的单个元素或部分元素.表操作函数中,用正数表示表的顺序元素位置,用负数表示表的倒序元素位置.在操作中,要特别注意的是在执行插入或删除表的元素后,表本身没有变化.例如t=Table[Prime[k],{k,5}] {2,3,5,7,11} Insert[t,4,3] {2,3,4,5,7,11} Append[t,15] {2,3,5,7,11,15} t{2,3,5,7,11}表t 本身没有发生变化,但AppendTo 命令将使用表t 发生变化,例如 AppendTo[t,17] {2,3,5,7,11,17} t{2,3,5,7,11,17}下表给出有关表的一些操作函数. 表的操作函数 说明Insert[list,expr,n] 给出在表list 的第n 位置插入expr 后的结果 Insert[list,expr,-n] 给出在表list 的倒数第n 位置插入expr 后的结果 Prepend[list,expr] 给出在表list 的首部插入expr 后的结果 Append[list,expr]给出在表list 的末尾插入expr 后的结果AppendTo[list,expr] 在表list的末尾插入expr后的结果,表本身改变Take[list,n] 取list中的前n个元素Take[list,-n] 取list中的后n个元素Take[list,{m,n}] 取list中从m 到n的元素(包括m,n在内)Drop[list,n] 给出删掉前n个元素之后的集合Drop[list,-n] 给出删掉后n个元素之后的集合ReplacePart[list,expr,n] 用expr替换list中的第n个元素Length[list] 表list中元素个数Position[list,form] 查找元素form在表list中的位置Count[list,form] 计算表list中元素form的个数Delete[list,i] 删除list中的第i个元素Join[list1,list2,…] 把几个表连成一个表Sort[list] 将表list中元素排序Reverse[list] 将表list中元素的顺序倒过来Apply[Plus,list] 将表list中所有元素求和Apply[Times,list] 将表list中所有元素求积MemberQ[list,form] 测定form是否是表list的一个元素例:s=RandomInteger[{0,5},10]{4,2,1,5,3,2,0,1,0,3}Take[s,4]{4,2,1,5}Drop[s,-3]{4,2,1,5,3,2,0}{Position[s,2],Count[s,2]}{{{2},{6}},2}Sort[s]{0,0,1,1,2,2,3,3,4,5}s{4,2,1,5,3,2,0,1,0,3}{Apply[Plus,s],Apply[Times,s]}{21,0}表应用的一些高级功能.表的操作函数说明Map[f,list]或f/@list 将函数f作用于表list的每一个元素Flatten[list] 将嵌套表展开成一维表Flatten[list,n] 将嵌套表展开到第n级Select[list,crit] 按照给定条件crit选取表list中的元素Select[list,crit,n] 选取表中满足给定条件crit的前n个元素Cases[list,pattern] 给出表list中与模式pattern匹配的每一个元素Map[f,{a,b,c,d,e}]{f[a],f[b],f[c],f[d],f[e]}(1+g[#])&/@{a,b,c,d,e}{1+g[a],1+g[b],1+g[c],1+g[d],1+g[e]}Flatten[{{a},{b,{c}},{d}}] {a,b,c,d}Flatten[{{a},{b,{c}},{d}},1] {a,b,{c},d}Select[{1,2,4,7,6,2},EvenQ] (EvenQ 是偶数问询函数,结果为逻辑值真或假) {2,4,6,2}Select[{1,2,4,7,6,2},#>2&] (条件为纯函数,挑出表中所有大于2的数) {4,7,6}Cases[{1,1,f[a],2,3,y,f[8],9,f[10]},_Integer] {1,1,2,3,9}Select[{1,1,f[a],2,3,y,f[8],9,f[10]},IntegerQ] (结果与上面相同) t=RandomInteger[{5,30},10]; (请运行)Mathematica 提供的表操作函数非常丰富, 更多功能请参阅Mathematica 提供的帮助信息.习题1.31. 计算下列各式,使之分别达到10和20位的精度 (1)12+πe;(2)12log 5-π;(3)132ln(π);(4)36cos sin ππ+;(5)e 2log arctan . 2. 令}2,8,5,,{ππe v =,计算2,log ,,sin ,cos v v e v v v 及这些表中元素的最大值和最小值.3. 计算一个正整数各位数字之和. 4. 判定某一三位数是否是水仙花数?5. 建立一个由10个元素构成的随机整数表, 表中元素在0到20之间.(1) 挑出其中所有的偶数和奇数,分别组成一个新表; (2) 挑出其中大于10的数; 挑出其中能够被3整数的数.。

60Mathematica数值计算

60Mathematica数值计算

第六章数值计算命令与例题数值问题由一组已知数据来求出一组结果数据,使得这两组数据之间满足预先制定的某种关系的问题,数值计算就是通过对数学问题解有效的近似处理去获得比较满意解的计算方法。

这里只介绍与数值计算中最基本方法的一些命令与例题。

6.1求近似函数在生产和实验中, 人们经常遇到需要通过某个未知(或复杂)的函数f(x)在有限个给定点的函数值:{x i, y i}, i=1,2,…., n, 这里f(x i) = y i 去获得函数f(x)的近似函数ϕ(x), 以便于处理涉及到f(x)的计算或其他处理问题, 这种求近似函数ϕ(x)的方法主要有拟合方法和插值方法。

一般, 曲线拟合是常用的拟合方法, 而插值方法常用的有多项式插值与分段插值方法, 在Mathematica 中它们都有相应的命令来获得相应的近似函数。

6.1.1 曲线拟合曲线拟合主要用来求一元近似函数, 它是根据一组函数值(通常是测量值或试验数据)去寻找描述相应函数关系的一种常用数据逼近方法, 是根据最小二乘原理的意义下获得近似函数的, 此近似函数具有在数据点处的误差平方和最小的特点。

通过拟合得到的函数关系通常称为经验公式, 该函数不必经过任何的数据点, 是实际函数的一种近似函数。

曲线拟合结果的好坏与选用什么类型的函数作为拟和曲线类型有关。

记函数集合:M=Span[ϕ0, ϕ1, ϕ2,…, ϕm]={ ϕ(x)| ϕ(x)= a 0 ϕ0(x)+a1ϕ1(x)+…+a mϕm(x), a i∈R}称集合M为函数ϕ0, ϕ1, ϕ2,…, ϕm张成的空间,m+1个函数ϕ0(x), ϕ1(x), ϕ2(x),…, ϕm(x)称为拟合基函数集合, 它们都是已知的函数。

拟合基函数集合不同对应不同的拟合函数类, 如果要用曲线拟合方法得到经验公式, 通常是先画出所给数据的散点图, 再根据散点图选择合适的拟和函数类型做曲线拟合。

应该注意的是:选择不同的拟合函数类会得到不同的拟合函数,拟合函数的好坏依赖于所选的拟合函数类,如果你知道的曲线类型多, 就容易获得满意的拟合函数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

\第6讲编程语句与方程近似解实验内容:1.学习编程语句2. 方程近似解的解法实验目的:1.掌握For循环,Do循环, While循环,If分支结构。

2.会用二分法和切线法求方程的近似解6.1编程语句1.For循环For[i=1,i<5,i=i+1,Print[D[Sin[x],{x,i}]]]cos(x)-sin(x)-cos(x)sin(x) ]For[i=1,i<8,i++,Print[D[Sin[x],{x,i}]];Print[D[Log[1+x],{x,i}]];If[i2,Break[]]cos(x)-sin(x)2.Do循环Do[Print[D[Sin[x],{x,i}]],{i,1,4}]cos(x)-sin(x)-cos(x)sin(x)3.While循环i=1;While[i<5,Print[D[Sin[x],{x,i}]];i++]cos(x)-sin(x)-cos(x)sin(x)a=b=1;t3={a,b};k=2;While[k<30,c=a+b;a=b;b=c;AppendTo[t3,c];k=Length[t3]];Print[t3]{1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393 ,196418,317811,514229,832040}4.If If分支结构x=2;If[x>3,Print[x,">3"],Print[x,"<=3"]]2 <=3Clear[x,f]f[x_]:=If[x>1,x^3,1/x]Plot[f[x],{x,-1,5}];5.综合练习a=1;ta={a};k=1;While[k<30,a=2a;ta=Append[ta,a];k++];Print[N[ta/100]]90.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24,20.48,40.96,81.92,163.84,327.68,655.36,1310.72, 2621.44,5242.88,10485.8,20971.5,41943.,83886.1,167772.,335544.,671089.,1.34218µ106,2.68435µ106,5.36 a=1;ta={a};Do[a=2a;ta=Append[ta,a],{i,29}];Print[ta]a=1;ta={a};For[i=1,i<30,i++,a=2a;AppendTo[ta,a]];Print[ta]{1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536,131072,262144,524288,1048576,2097152,4194304,8388608,16777216,33554432,67108864,134217728,268435456,536870912}x=99;If[x>90,Print[x,"__A"],If[x>80,Print[x,"__B"],If[x>70,Print[x,"__C"],Print[x,"__D"]]]]99 __A6.2计算方程的近似解(*二分法求根*)Clear[f];f[x_]:=Sin[x]-Sqrt[x^5+2]+E^x;a=0;b=2;c=(a+b)/2;While[Abs[f[c]]>10^(-8),If[N[f[a]*f[c]]<0,b=c,a=c];c=(a+b)/2];Print["x=",c//N]Plot[f[x],{x,-1,3},PlotStyle{RGBColor[1,0,0],Thickness[0.01]}];x= 0.197385(*二分法求根2*)Clear[f];f[x_]:=Sin[x]-Sqrt[x^5+2]+E^x;a=0;b=2;c=(a+b)/2;For[i=1 ,i<14,i++,If[N[f[a]*f[c]]<0,b=c,a=c];c=(a+b)/2];Print["x=",c//N]Plot[f[x],{x,-1,3},PlotStyle{RGBColor[1,0,0],Thickness[0.01]}];x= 0.197388(*切线法求根1*)Clear[f];f[x_]:=Sin[x]+Sqrt[x^2+2]-E^x;a=0.4;While[Abs[f[a]]>10^(-8),a=a-f[a]/f'[a]];Print["x0=",a]Plot[f[x],{x,-1,3},PlotStyle{RGBColor[1,0,0],Thickness[0.01]}];x0= 0.900022(*切线法求根2*)Clear[f];f[x_]:=Sin[x]+Sqrt[x^2+2]-E^x;a=0.4;For[i=1 ,i<8,i++,a=a-f[a]/f'[a]];Print["x0=",a]Plot[f[x],{x,-1,3},PlotStyle{RGBColor[1,0,0],Thickness[0.01]}];x0= 0.900022(*二分法求根,动画演示*)Clear[f];f[x_]:=Sin[x]-Sqrt[x^5+2]+E^x;a=-1;b=3;c=(a+b)/2;tub={Plot[f[x],{x,a,b+.1},PlotStyle{RGBColor[1,0,0],Thickness[0.01]},DisplayFunction Identity],ParametricPlot[{a,y},{y,0,f[a]},PlotStyle{RGBColor[0,0,1],Thickness[0.005]},DisplayFunction Identity],ParametricPlot[{b,y},{y,0,f[b]},PlotStyle{RGBColor[0,0,1],Thickness[0.005]},DisplayFunction Identity]}; While[Abs[f[c]]>10^(-2),If[N[f[a]*f[c]]<0,b=c,a=c];Show[tub,DisplayFunction$DisplayFunction,PlotRan -1,3.2},{-3,5}}];AppendTo[tub,ParametricPlot[{c,y},{y,0,f[c]},PlotStyle{RGBColor[0,0,1],Thicknessge{{[0.005]},DisplayFunction Identity]];c=(a+b)/2];Print["x=",c//N]x= 0.195313(*二分法求根3*)Clear[erfrt,f,a0,b0];erfrt[f__,a0_,b0_,_]:=Module[{a,b},a=a0; b=b0;While[Abs[a-b]>,If[f[a] f[(a+b)/2]<0,b=(a+b)/2(*第一句*),If[f[(a+b)/2]0,Break[],a=(a+b)/2(*第二句*)]]];Print[" f(x)=0的位于[",a0,",",b0,"]间的根近似为:X=",(a+b)/2//N]]Clear[f,a0,b0];g[x_]:=x^3-3x+1;erfrt[g,-1,3,0.0001]f(x)=0的位于[ -1 , 3 ]间的根近似为:X= 0.347321m0=5;v0=0.01;Print["蒸发速度m0==",m0]Print["初始质量v0==",v0]g[t_]:=500(m0-v0 t) t^2; ,200}];ti=FindRoot[g'[t]0,{tPrint["最大动能时刻t==",t/.ti]tu1=Plot[g[x],{x,.01,m0/v0},PlotStyle{RGBColor[1,0,1],Thickness[0.01]},DisplayFunction Identity];tu2=ParametricPlot[{t,y}/.ti,{y,0,g[t]/.ti},PlotStyle{RGBColor[0,0,1],Thickness[0.005]},DisplayFunction Identity];Show[{tu1,tu2},DisplayFunction$DisplayFunction];初始质量 m0== 5蒸发速度 v0== 0.01最大动能时刻 t== 333.333ParametricPlot::ppcom: Function {t,y}/. ti cannot be compiled; plotting will proceed with the uncompiled function.。

相关文档
最新文档