Mathematica简介
mathematica数学与符号运算软件介绍

Mathematica 数学与符号运算软件介绍Mathematica 是Wolfram 独创的旗帜产品;旨在为研发和教育工作提供技术计算平台。
基于Wolfram 语言,Mathematica 与其他核心Wolfram 产品可以百分百兼容。
Mathematica 以卓越的技术和简便的使用方法享誉全球,在此基础上,它提供了单个集成并且持续扩展的系统,涵盖了最广最深的技术计算功能。
现在利用Mathematica Online (在线),它还能通过网页浏览器实现云端的完美访问,以及在所有现代桌面系统上的本地访问。
通过30 多年来的精心研发和不断探索,Mathematica 在许多领域独树一帜,在当今技术计算环境和工作流程中表现卓著。
Mathematica 11 是其30 年发展历程中的一座重要里程碑,显著拓展了Mathemtcatica 的应用领域并引入了众多技术革新,为所有Mathematica 用户提供了更高级别的功能和效用。
秉承着将所有领域的计算和知识进行集成和自动化这一长期目标,Mathematica 的每个新版本都让用户可以对所并入的新领域以常规流程进行访问。
如果您想求解PED(偏微分方程)并将其三维打印,Mathematica 11 为此提供了集成工具,再一次极大扩展了任意等级用户都可常规进行的跨域项目范围,从而让任意等级的用户都可常规完成。
Mathematica 11 构建于Wolfram 在神经网络计算、音频集成和语言学计算等众多领域的最新研发突破的基础上。
Mathematica 的现有用户也会发现该版本在界面、语言以及算法深度和效率上进行了大量实用改进。
现代技术计算的唯一选择一个全面集成的大型系统Mathematica 具有涵盖所有技术计算领域的将近5,000 个内置函数——所有这些都经过精心制作,使其完美地整合在Mathematica 系统中。
不仅仅是数字,也不仅仅是数学,而是包罗万象基于30 多年来的持续开发,Mathematica 在所有技术计算领域表现卓著,包括网络、图像、几何、数据科学、可视化、机器学习等等。
mathematica中实数范围

mathematica中实数范围
【最新版】
目录
1.Mathematica 简介
2.实数的概念
3.Mathematica 中实数的表示方法
4.Mathematica 中实数的范围
5.结论
正文
【1.Mathematica 简介】
Mathematica 是一款功能强大的数学软件,适用于各种数学计算、数据分析和可视化任务。
它基于 Wolfram 语言,能够实现从基础算术到复杂数学理论的广泛应用。
【2.实数的概念】
实数是数学中的一个基本概念,包括所有的有理数和无理数。
有理数是可以表示为两个整数之比的数,例如 1/2、-3/4 等。
无理数则不能表示为两个整数之比,例如圆周率π和自然对数的底数 e 等。
【3.Mathematica 中实数的表示方法】
在 Mathematica 中,实数可以用数字、字母或符号表示。
例如,数字 2、字母 a 和符号√2 都代表实数。
此外,Mathematica 还提供了许多函数来处理实数,例如 Abs、Sqrt、Exp 等。
【4.Mathematica 中实数的范围】
在 Mathematica 中,实数的范围包括从负无穷大到正无穷大的所有实数。
这意味着 Mathematica 可以表示任意大小的实数,无论是极端接
近 0 的数还是极大的数。
【5.结论】
Mathematica 作为一款强大的数学软件,能够方便地处理实数范围内的各种计算和分析任务。
mathematica解方程

mathematica解方程Mathematica是一种功能强大的数学软件,由美国Wolfram Research公司开发,具有统计、图形、优化、数学、计算、分析以及多种高级数学解决方案的功能。
它是一个完整的数学软件系统,能够实现复杂的数学任务,为学术、教育、科学与技术等领域做出贡献。
二、Mathematica的解方程功能Mathematica的解方程功能可以帮助用户快速、有效地解决方程问题,它既可以求解一元高次方程,也可以求解多元高次方程。
此外,它还可以帮助解决各种非线性方程组,如微分方程、无穷级数和白话数学方程等。
这些功能让Mathematica成为一款强大的数学工具,为科研工作者及学习者提供了极大的便利和支持。
三、Mathematica的解方程方式1.式求解法:用户可以使用Mathematica的Solve和SolveAlways 函数,将输入的数学方程转换为一个函数,然后用公式求解该函数,以获得正确的解析表达式。
2.分法:在求解方程时,用户可以使用Mathematica的Simplify 函数,将复杂的数学方程转换为可以输入到Mathematica计算机程序中的简单形式,以高速求解方程。
3.像法:用户可以使用Mathematica的Plot命令,将数学方程的结果呈现为图形,以便更容易理解以及进一步分析复杂的数学方程。
四、Mathematica的特点1.持数十种编程语言:Mathematica支持包括C、C++、Perl、JavaScript在内的十几种编程语言,可以满足用户对不同编程语言的需求。
2.能强大:Mathematica提供了诸多功能,包括数学运算、图形分析、优化计算、科学计算等,为用户提供强大的分析工具。
3.作简单:Mathematica友好的界面使它变得非常容易操作,用户可以通过键盘的快捷键实现复杂的数学运算,大大降低了操作的难度。
总结Mathematica是一款强大的数学软件,具有丰富的功能,能够帮助用户快速有效地解决各种方程问题,其解决方程的方式也有很多,用户可以根据自己的需要选择适当的方法来求解数学方程。
mathematica解一元二次方程

mathematica解一元二次方程一、引言数学是一门重要的学科,它在各个领域都有着广泛的应用。
而解一元二次方程是数学中的基础知识之一,也是我们在日常生活中经常会用到的知识点。
本文将介绍如何使用Mathematica来解一元二次方程。
二、Mathematica简介Mathematica是一款强大的数学软件,它可以进行各种数学计算、绘图和数据分析等操作。
Mathematica的优点在于它可以处理各种复杂的数学问题,并且可以输出高质量的图形和数据。
三、一元二次方程的定义一元二次方程是指形如ax²+bx+c=0的方程,其中a、b、c为常数,x为未知数。
一元二次方程的解法有很多种,其中最常用的方法是求根公式。
四、使用Mathematica解一元二次方程在Mathematica中,我们可以使用Solve函数来解一元二次方程。
例如,我们要解方程x²+2x+1=0,可以输入以下代码:Solve[x^2 + 2x + 1 == 0, x]运行后,Mathematica会输出方程的两个解:x=-1。
除了Solve函数,Mathematica还提供了NSolve函数来解方程。
NSolve 函数可以处理更加复杂的方程,例如含有多个未知数的方程。
五、Mathematica绘制一元二次函数图像除了解方程,Mathematica还可以绘制一元二次函数的图像。
我们可以使用Plot函数来绘制函数的图像。
例如,我们要绘制函数y=x²+2x+1的图像,可以输入以下代码:Plot[x^2 + 2x + 1, {x, -5, 5}]运行后,Mathematica会输出函数的图像。
六、结论通过本文的介绍,我们可以看到Mathematica是一款非常强大的数学软件,它可以帮助我们解决各种数学问题。
在解一元二次方程和绘制一元二次函数图像方面,Mathematica都有着很好的表现。
因此,我们可以将Mathematica作为我们学习和研究数学的重要工具之一。
Mathematica用法I

Plot3D[z,{x,a,b},{y,c,d}] 三维曲面绘图
ParametricPlot3D[{x,y,z},{u, a,b},{v,c,d}]
三维曲面参数方程绘图
Print[x,y,...]
在屏幕输出变量的值
初学者易犯的错误 ⑴ 大小写错误:系统的内部操作命令及内部函数的首写字
母都是大写,第二个单词的首字母一般也是大写; ⑵ 括号错误:大、中、小三种括号用法错误;或括号个数
绝对值 幂函数 x y 平方根 以 e 为底的指数函数 以 e 和 b 为底的对数函数 m 除以 n 的余数 m 除以 n 的整数商 三角函数 反三角函数 生成 [a,b] 内的一个随机实数 生成 [a,b] 内的一个随机整数 判断 n 是否为素数 求方程(组)的精确解 用Newton法求方程组的一个近似解
① 所有命令和内置函数都是以大写字母开始 ② 函数的参数是在方括号中给出 ③ 乘法运算符可以用空格代替(不建议这么做) ④ 可以运行单个命令或语句,也可输入全部语句后
再按执行键shift+Enter ⑤ 命令(语句)分隔符:回车或分号 ⑥ 如果不需要显示运行结果:在语句后面加分号 ⑦ 输入和输出标识符:In[n]: 和 Out[n]:
请同学们在Notebook上完成如下输入,观察输出结果。
Abs[2+3 I]
Power[2,1ቤተ መጻሕፍቲ ባይዱ0]
Sqrt[-3]
Exp[0]
Mod[100,9]
Sin[Pi/4]
PrimeQ[97]
N[Pi,1000000]
Random[Integer,{1,14}]
(2)符号计算功能 Mathematica的主要特点就是进行符号运算,如下所示:
Mathematica的主要功能

3、数
Mathematica 以符号运算为主,这与一些语言有所不同,例如源自, e, 2 ,3
2 等符号表示准确数,近似数用带小数点的数表示,例如
1.2,2.3*10^5 等。Mathematica 中求近似值以及近似值的精度控制
函数为函数“N”,其调用格式如下:
N[表达式] 计算表达式的近似值,具有机器规定的精度(16 位有 效数字),但是按标准输出只显示前 6 位有效数字
每次运行结束后,Mathematica 会自动在输入的式子前面加上 “In[n]:=”(n 表示输入命令的序列号),在输出的答案前面加上 “Out[n]=”(n 表示输出结果的序列号),以便分清输入和输出并 自动加上编号。可以用“%”表示前一个输出的内容,“%%” 表 示倒数第 2 个输出的内容,依此类推,“% n”表示第 n 个(即 Out[n])输出的内容。也就是说 Mathematica 输出的内容被系统 记忆,它们可以像其它变量一样在后面的计算中引用。
四、编程基础
1、自定义函数
前面介绍了 Mathematica 本身自带的内置函数,下面我们以实 例来说明定义函数的方法。例如,要定义函数 f (x) ex (sin x 1) ln x2 , 我们只要键入命令 f[x_]:=Exp[x]*(Sin[x]+1)+Log[x^2] 运行即可。
注意:在函数的自变量后面有一个下划线“_”,这表示 x 为自变量, 可以把 x 代入为任何的值进行计算;等号前面的有个冒号,表示定 义函数。同样可以定义多变量函数。定义了函数 f[x]后,可以直接 地调用 f[x]来进行符号数学运算(例如积分、微分等)
三、基本代数运算
下面介绍一些实现基本代数运算的函数,用于变换数学表达式、解 方程和解不等式。Mathematica 具有强大的符号运算功能,下面列 举的函数均可代入具有字母的表达式进行计算,得到精确解。
mathematica参数范围
mathematica参数范围【最新版】目录1.Mathematica 简介2.参数范围的概念3.Mathematica 中参数范围的设置方法4.参数范围的实际应用正文【1.Mathematica 简介】Mathematica 是一款功能强大的数学软件,它被广泛应用于科学研究、工程应用和数学教育等领域。
Mathematica 具有丰富的函数库和强大的计算能力,能够解决各种复杂的数学问题。
【2.参数范围的概念】在 Mathematica 中,参数范围是指在函数定义时,自变量允许取值的范围。
通过设置参数范围,可以限制函数的输入值,从而使函数的输出结果更加精确和合理。
【3.Mathematica 中参数范围的设置方法】在 Mathematica 中,可以通过以下几种方法设置参数范围:(1) 使用 Domain 参数在函数定义时,可以使用 Domain 参数指定自变量的取值范围。
例如,定义一个函数 f(x),其中 x 的取值范围是 [0, π],可以写成:f[x_] := Sin[x], Domain: {x, 0, π}(2) 使用条件语句在某些情况下,需要根据自变量的取值范围来决定函数的表达式。
这时,可以使用条件语句来实现。
例如,定义一个函数 g(x),当 x 在 [0, 1] 范围内时,返回 x 的平方;当 x 在 (1, +∞) 范围内时,返回 2x-1,可以写成:g[x_] := If[0 <= x <= 1, x^2, 2 x - 1], x > 0(3) 使用分段函数当需要根据自变量的取值范围返回不同的函数表达式时,可以使用分段函数。
例如,定义一个函数 h(x),当 x 在 [0, 1] 范围内时,返回 x 的平方;当 x 在 (1, +∞) 范围内时,返回 2x-1,可以写成:h[x_] := Piecewise[{{x^2, 0 <= x <= 1}, {2 x - 1, x > 1}}] 【4.参数范围的实际应用】参数范围在 Mathematica 中有广泛的应用,例如在绘图、求解方程、数值计算等方面。
Mathematica软件简介
实验一Mathematica软件简介实验目的: 1.掌握软件的基本功能,为数学实验提供工具。
2.掌握用Mathematica软件作函数图形的语句或作图方法。
实验过程与要求:教师利用多媒体组织教学,边讲边操作示范。
实验的内容:Mathematica系统是目前世界上应用最广泛的符号计算系统,它是由美国伊利诺大学复杂系统研究中心主任、物理学、数学和计算机科学教授Stephen Wolfram负责研制的,能够完成符号运算,数学图形绘制,甚至动画制作等多种操作.这里主要介绍Windows环境下的4. 1版本在高等数学等领域的应用,其它版本类似.一、Mathematica软件功能简介(1)作函数的图像:用作图程序,当输入被作函数时,计算机直接作出该函数的图像.(2)数值计算:可简单地计算函数值,积分值等,可求微分方程的数值解等.(3)符号运算:可计算函数的极限,导数,不定积分,求微分方程的通解等.在这以前,计算机只能作数值计算,不能作符号运算.二、Mathematica的启动与基本操作(1)启动:系统安装好以后,在Windows98中,用鼠标点击开始—程序—Mathematica 4.1—Mathematica 4.1菜单即可进入系统.计算机屏幕出现Mathematica的主工作窗口(图1).(2)基本操作:进入系统后,出现Mathematica的主工作窗口,即可键入指令.如键入1+2,然后同时按下Shift+Enter,即可得到结果.窗口显示如图2,其中In[1]为第一输入行的标志,Out[1] 为第一输出行的标志(注意:输入行的标志In[1]:=,In[2]:=,……;输出行的标志Out[1]=,Out[2]=,……均是计算机自动给出的).如果输入的语句和表达式不能在一行显示完,可以按Enter键后在下一行继续输入,但一个命令或表达式在没写完需换行则要加“\”,在后面接着按Enter后继续输入.图1图2三、Mathematica中的数、运算符、变量与表达式1.数Mathematica的数据分为两大类:一类是我们平常写出的数,叫普通数,另一类是系统内部的常数,有固定的写法.Mathematica中的普通数有整数、有理数、实数、复数四种类型,见表1Mathematica的系统内部常数是指用特定的字符串表示的数学常数,如:Pi—表示π,E—表示自然对数的底e,Degree—表示角度制单位的度,I—表示虚数单位i,Infinity表示∞.要注意这些数书写时必须以大写字母开头.2.运算符(1)算术运算符+、-、*、/、^分别表示加、减,乘、除、乘方的运算,其中在不引起混淆的情况下乘法运算符“*”也可省略不写,另外开方可以表示成分数指数,上述运算的优先顺序同数学运算完全一致.(2)关系运算符= =、!=、>、>=、<、<=分别表示等于、不等于、大于、大于等于、小于、小于等于.(3)逻辑运算符逻辑运算符及其意义见表2表23.变量Mathematica中变量的名称是以小写字母(不能以数字开头)开头的字符或字符串,但不能有空格和标点符号,例如:abc和g2均是合法的变量名.在Mathematica中,变量即取即用,不需先说明变量的类型后再使用.在Mathematica中变量不仅可存放一个整数或复数,还可存放一个多项式或复杂的算式.4.表达式表达式是以变量、常量、运算符构成的式子、表、甚至是图形,例如3*x^3-2*x+5和x<=0分别是算术表达式和关系表达式.写表达式时,要注意以下几点:(1)所有表达式必须以线性形式写出.因此分子、分母、指数、下标等都必须写在同一行上.(2)只能使用合法的标识符(字符或字符串).(3)为了指定运算的次序可以利用括号.括号必须成对出现,且只有一种括号“(”与“)”,除了特定符号外不得使用方括号“[”与“]”及花括号“{”与“}”.变量的赋值,格式为:变量名=表达式或变量名1=变量名2=表达式.例如:a=3*5^2y=2*x^2-1代数式中的变量也可以用另一个变量(或代数式)替换,如把上例中变量y中的x用Pi-x 替换,可表述为y=2*x^2-1;y/.x->Pi-xx->Pi-x中的“->”是由键盘上的减号及大于号组成的,以后各节中不在说明.变量的清除,当一个变量a无用时,可以用命令Clear[a]加以清除,以免影响后面计算的结果.注意在Mathematica中,内部函数或命令都是以大写字母开头的标识符(字符或字符串).四、用Mathematica作算术运算与代数运算1.算术运算进入系统后,出现Mathematica的主工作窗口(图1),此时可以通过键盘输入要计算的表达式,再按Shift+Enter键得运算结果.实验1计算80!.解在主工作窗口用户区输入80!.按下Shift+Enter键得运算结果(图3).图3实验2 先求表达式)41(10532+÷-⨯的值,再求该表达式的平方.解 在主工作窗口用户区输入表达式3*5^2-10/(1+4)后按下Shift+Enter 键得该表达式运算结果,然后输入%^2按下Shift+Enter 键得该表达式平方运算结果(图4).其中%代表上一输出结果,该例中指73;如果输入行的标志In[1]:=, In[2]:=,……;输出行的标志Out[1]=,Out[2]=,……代表的表达式是唯一的,则可将其写入以后的运算表达式中代表其对应的表达式参与运算.例如上例中求表达式的平方还可输入为In[1]^2或Out[1]^2后按下Shift+Enter 键得该表达式平方运算结果.图42.代数运算Mathematica 的一个重要的功能是进行代数公式演算,即符号运算.实验3 设有多项式1232---x x x 和. (1)求二者的和,差,积; (2)将二者的积分解因式;(3)将二者的积展开成单项式的和. 解 In[1]:=p 1=x ^2-x -2Out[1]=-2-x In[2]:=p 2=x ^3-1 Out[2]=1 In[3]:=p 1+p 2 Out[3]=-3-x +x In[4]:=p 1-p 2Out[4]=-1-x +x In[5]:=p 1*p 2 Out[5]=In[6]:=Factor[p 1*p 2] Out[6]=In[7]:=Expand[p 1*p 2]Out[7]=2+x -x 2-2x 3-x 其中Factor[多项式]表示将其括号内的多项式分解因式;Expand[多项式] 表示将其括号内的多项式展开成按升幂排列的单项式之和的形式.值得注意的是,上面提到的Factor[多项式]和 Expand[多项式]均是Mathematica 系统中的函数,其中Factor 和 Expand 分别为其函数名(函数名的第一个字母必须大写).事实上Mathematica 系统中含有丰富的函数,后面将结合具体内容介绍有关函数命令.课后实验一1.计算下列各式:!90)3(169)2((1)61152.将多项式.5623分解因式x x x +-3.设有多项式152222343-+-+--x x x x x 和,求二者的和、差、积.五、函数运算 (一)常用函数Mathematica 系统中的数学函数是根据定义规则命名的.就大多数函数而言,其名字通常是英文单词的全写.对于一些非常通用的函数,系统使用传统的缩写.下面给出一些常用函数的函数名及功能.1.数值函数N[x ,k ] 求出表达式的近似值,其中k 为可选项,它指有效数字的位数Round[x] 舍入取整Abs[x] 取绝对值Max[x1,x2,…] 取x1,x2,…中的最大值Min[x1,x2,…] 取x1,x2,…中的最小值x+I y复数x+i yRe[z] 复数z的实部Im[z] 复数z的虚部Abs[z] 复数z的模Arg[z] 复数z的辐角PrimeQ[n] n为素数时为真,否则为假Mod[m,n] m被n除的正余数GCD[n1,n2,…] n1,n2…的最大公约数LCM[n1,n2,…] n1,n2…的最小公倍数Sqrt[x] 求平方根2.基本初等函数Exp[x] 以e为底的指数函数Log[a,x] 以a为底的对数函数Log[x] 以e为底的对数函数Sin[x] 正弦函数Cos[x] 余弦函数Tan[x] 正切函数Cot[x] 余切函数Sec[x] 正割函数Csc[x] 余割函数ArcSin[x] 反正弦函数ArcCos[x] 反余弦函数ArcTan[x] 反正切函数ArcCot[x] 反余切函数使用Mathematica系统中的数学函数要注意以下几点:(1)Mathematica系统中的函数都以大写字母开头.如果用户输入的函数没有用大写字母开头,Mathematica将不能识别,并提出警告信息;(2)Mathematica系统中的函数的自变量都应放在方括号内;(3)这些函数的自变量可以是数值,也可以是算术表达式;(4)计算三角函数时,要注意使用弧度制,如果要使用角度制,不妨把角度制先乘以Degree常数(Degree=π/180),转换为弧度制.实验4求表达式lg2+ln3的值.解In[1]:=Log[10,2]+Log[3]In[2]:=N[Log[10,2]+Log[3],6]Out[2]= 1.3In[3]:=Log[10.0,2]+Log[3.]Out[3]= 1.3实验4中,对应于输入语句In[1],输出语句Out[1]并没有给出lg2及ln3的“数值结果”,这是由于Mathematica符号计算系统的“对于只含有准确数的输入表达式也只进行完全准确的运算并输出相应的准确结果”的特性所决定的.在In[2]中用数值转换函数N[Log[10,2]+Log[3],6],将对表达式Log[10,2]+Log[3]的运算转换成了计算结果具有6位有效数字的实数形式运算,所以输出结果Out[2]=1.3.在In[3]:=Log[10.0,2]+Log[3.]中,用实数10.0代替整数10,用实数3.代替整数3,这里10.0及3.都是实数的表示法,两种表示可以任选其一.计算时欲得“数值结果”输入数时用实数形式. 实验5 求sin90o .解 In[4]:=Sin[90Pi/180] (二)自定义函数1.不带附加条件的自定义函数在Mathematica 系统中,所有的输入都是表达式,所有的操作都是调用转化规则对表达式求值.一个函数就是一条规则,定义一个函数就是定义一条规则.定义一个一元函数的规则是:f [x _ ]:=表达式其中表达式是以x 为自变量的,x _称为形式参数,f 是函数名,函数名的命名规则同变量名的命名规则.调用自定义函数f [x _ ],只需用实在参数(变量或数值等)代替其中的形式参数x _即可. 在运行中,可用“f [x _ ]:=.”清除函数f [x _ ]的定义,用Clear[f ]清除所有以f 为函数名的函数定义.实验6 定义函数x x x x f sin 2)(3++=,先分别求2,1.5,1π=x 时的函数值,再求)(2x f .解 In[5]:=f [x _]:=x ^3+2Sqrt[x ]+Sin[x ]In[6]:=f [1.]Out[6]=3.8In[7]:=f [5.1]Out[7]=136In[8]:=f [N[Pi]/2.] Out[8]=7.3In[9]:=f [x ^2]在Out[9]中,由于系统不知道变量x 的符号,所以没有对2x 进行开方运算. 2. 带附加条件的自定义函数在使用“f [x _ ]:=表达式”定义规则时,可以给规则附加条件,附加条件放在定义规则表达式后面,通过“/;”与表达式连接.规则的附加条件形式为:f [x _ ]:=表达式/;条件在调用上述规则时,实在参数必须满足附加条件,系统才调用规则.“附加条件”经常写成用关系运算符连接着的两个表达式,即关系表达式.用一个关系表达式只能表示一个条件,如表示多个条件的组合,必须用逻辑运算符将多个关系表达式组合到一起.实验7 设有分段函数).100()2(),5.1(),100(0ln 0sin )(f f f f ex xe x xx x e x f x 及求-⎪⎩⎪⎨⎧>≤<≤=解 In[10]:=f [x _]:=Exp[x ]Sin[x ]/;x <=0In[11]:=f [x _]:=Log[x ]/;(x >0)&&(x <=E) In[12]:=f [x _]:=Sqrt[x ]/;x >E In[13]:=f [-100.0]Out[13]=1.88372´ In[14]:=f [1.5]Out[14]=0.40In[15]:=f [2.0] Out[15]=0.69 In[16]:=f [100.0] Out[16]=课后实验二1.求表达式lg100+lne-lg5的值.2.求sin30o .3.求复数3+2i 的模,辐角,实部及虚部.4.设f(x)=sin2x -5ln x -e x ,求f (1.3),f (2)及f (100).5.设函数⎩⎨⎧≥+<+=0)1ln(01)(2x x x x x f ,求f (-1.5)及f (2).六、方程与方程组的解法Solve 是解方程或方程组的函数,其格式为: Solve[eqns,vars]其中eqns 可以是单个方程,也可以是方程组,单个方程用exp==0的形式(其中exp 为关于未知元的表达式);方程组写成用大括号括起来的中间逗号分割的若干个单个方程的集合;vars 为未知元表,其形式为{x 1,x 2,…,x n }.实验1 解方程0652=+-x x . 解 In[17]:=Solve[x ^2-5x +6==0,x ] 其中方程中的等号应连输2个“=”. 实验2 解方程050)5(2352=--x x . 解 In[18]:=Solve[5^(2x )-23(5^x )-50==0,x ]Out[18]={{x →2}}实验3 解方程组⎩⎨⎧=-=+13122yxy x .解 In[19]:=Solve[{x +y ==1,3x ^2-y ^2==0},{x ,y }] 七、不等式与不等式组的解法在Mathematica 系统中解不等式 格式为:<<Algebra`InequalitySolve`InequalitySolve[ineq, x ]其中“<”为键盘上的小于号,“`”为数字键1的左侧的`,<<Algebra`InequalitySolve`是装载程序包, ineq 可以是单个不等式,也可以是不等式组,不等式组写成用大括号括起来的中间逗号分割的若干个单个不等式的集合.注意前面简介的Mathematica 函数,都可以通过输入函数和适当的参数而直接使用,这些函数我们称之为系统的内部函数.还有一些系统扩展的功能不是作为系统的内部函数的,而这些功能是以文件的形式存储在磁盘上的,要使用它们,必须用一定的方式来调用这些文件,这些文件我们称之为程序包.此处InequalitySolve 及后面要学习的Rsolve 、FourierTrigSeries 等都属于这种情况.实验4 解不等式组⎪⎩⎪⎨⎧>-<--0101222x x x .解 In[20]:= <<Algebra`InequalitySolve`In[21]:=InequalitySolve[{x ^2-5x -6<0,x ^2-1>0}, x ] Out[21]= 1< 实验5 解不等式3)3(12>--x x .解 In[22]:= <<Algebra`InequalitySolve`In[23]:=InequalitySolve[Abs[x -1](x ^2-3) > 3, x ] Out[23]=即不等式的解为x <-2 或x >)131(21+.八、由递推式求数列的通项公式在Mathematica 系统中由递推式求数列的通项公式 格式为:<<DiscreteMath`RSolve` RSolve[{eqn, a [1]==k }, a [n ], n ]其中“<”为键盘上的小于号,“`”为数字键1的左侧的`,<<DiscreteMath`RSolve`是装载程序包,eqn 为递推式, a [1]==k 为数列的第一项.实验6 设.,1,11求数列的通项公式==-a na a n n解 In[24]:=<<DiscreteMath`RSolve`In[25]:=RSolve[{a [n ]==n a [n -1], a [1]==1}, a [n ], n ]实验一1.解下列方程:(1) 0122=--x x (2) 03241=-++x x2. 解方程组⎩⎨⎧=-=+1231y x y x .3. 解不等式0232>+-x x .4. 设.,1,31021求数列的通项公式==+=--a a a a a n n n九、作函数图像1、作图函数与输入格式在Mathematica 系统中用函数Plot 可以很方便地作出一元函数的静态图像,基本格式为:Plot[{f 1,f 2,…},{x ,xmin ,xmax },可选参数]其中表{f 1,f 2,…}的fi (i =1,2,3,…)是绘制图形的函数名,表{x ,xmin ,xmax }中x 为函数fi (i =1,2,3,…)的自变量,xmin 和xmax 是自变量的取值区间的左端点和右端点.实验7 作y =x 2-1在[-2,2]内的图像和作y =lg x 在[0.3,4]内的图像,其输入和输出如图7-5.图7-52、作图时的可选参数1)参数AspectRatio(面貌比)平时我们作图时,两个坐标轴的单位长度应该一致,即1:1.但在Mathematica系统中根据美学原理系统默认的纵横之比为1:0.618,而将参数AspectRatio的值设置为Automatic(自动的)时可使纵横比为1:1.实验8(1)作y=sin x和y=cos x在[0,2π]内的图像,且两坐标轴上的单位比为0.618.(2)作y=sin x和y=cos x在[0,2π]内的图像,且两坐标轴上的单位比为1:1.其输入和输出如图7-6.图7-62)参数PlotStyle(画图风格)PlotStyle的值是一个表,它决定画线的虚实、宽度、色彩等.(1)取值RGBColor[r,g,b]—决定画线的色彩.r,g,b分别表示红,绿,蓝色的强度,其值为[0,1]之间的数.实验9作y=sin x在[0,2π]内的图像,线条用红色.输入:Plot[Sin[x],{x,0,2Pi},PlotStyle->{RGBColor[1,0,0]}]表示画出的曲线为红色.(2) 取值Thickness[t](厚度,浓度)—决定画线的宽度.t是一个介于0,1之间的数,且远远小于1,因为整个图形的宽度为1.实验10 作y=sin x在[0,2π]内的图像,线条厚度t=0.02.输入:Plot[Sin[x],{x,0,2Pi},PlotStyle->Thickness[0.02]]输出如图7-7图7-7(3) 取值Dashing[{d1,d2,…}]—决定画线的虚实,其中表{d1,d2,…}确定线的虚实分段方式,di(i=1,2,…)的取值介于0,1之间.实验11作y=sin x在[0,2π]内的图像,线条用虚线.输入:Plot[Sin[x],{x,0,2Pi},PlotStyle->Dashing[{0.03,0.07}]]输出如图7-8图7-8实验12 作y=sin x和y=cos x在[0,2π]内的图像,且两坐标轴上的单位比为1:1,线条用蓝色虚线.输入:Plot[{Sin[x],Cos[x]},{x,0,2Pi},AspectRatio->Automatic,PlotStyle->{{RGBColor[0,0,1],Dashing[{0.02,0.05}]}}]输出如图7-9图7-93)参数DisplayFunction(显示函数)该参数决定图形的显示与否,当取值为Identity 时,图形不显示出来.当取值为$DisplayFunction时恢复图形的显示.1、图形的组合显示函数ShowPlot的作用可以同时在同一坐标系的同一区间内作出不同函数的图像,但有时需要在同一坐标系的不同区间作出不同函数的图像,或者在同一坐标系作一个函数而要求函数的各个部分具有不同的形态(像分段函数),这个时候就需要使用Show 函数.实验13 在同一坐标系中作出y =e x 和y =ln x 的图像,并说明它们的图像关于直线y =x 对称.输入:a =Plot[Exp[x ],{x ,-2,2},AspectRatio->Automatic,PlotStyle->RGBColor[0,1,0], DisplayFunction->Identity]b =Plot[Log[x ],{x ,0.3,3},AspectRatio->Automatic,PlotStyle->RGBColor[1,0,0], DisplayFunction->Identity]c =Plot[x ,{x ,-2,2},AspectRatio->Automatic,PlotStyle->Dashing[{0.09,0.04}], DisplayFunction->Identity]Show[a ,b ,c,DisplayFunction →$DisplayFunction]输出如图7-10.实验二.0ln 01.5.)42sin(3.4.log .3.)21(.2..122141的图像作分段函数在一个周期内的图像作函数的图像作函数的图像作函数的图像作函数⎩⎨⎧>≤+=+====x xx x y x y x y y x y x π6.在同一坐标系中作出y=x,y=sin x,x∈[-π/2,π/2]和y=arcsin x, x∈[-1,1]的图像, 且要求两坐标轴上的单位比为1:1, y=x用虚线和红色,y=sin x用绿色,y=arcsin x用蓝色.本次课小结:Mathematica软件是一个集成化的软件系统,正是由于它的主要功能的三个方面,即符号演算,数值计算和图形功能,使它成为我们学习数学知识解决实际问题中困难的助手和工具.该功能有自身的规定.我们在学习中一定要按规定执行,对基本的指令和语法等要熟记。
《Mathematica教程》课件
界面友好,易于学习和使用。
开放性
允许用户自定义函数和扩展功能,满足个性 化需求。
• 跨平台支持
可在Windows、Mac和Linux等操作系统上 运行。
02
CHAPTER
Mathematica基础操作
界面与布局
界面介绍
详细描述Mathematica的界面构成,包 括菜单栏、工具栏、命令输入窗口等。
工程计算案例
有限元分析
利用Mathematica进行有限元分析,包括网格划分、边界条件设 置、求解和后处理等步骤。
流体动力学模拟
通过Mathematica模拟流体动力学问题,如流体流动、传热等。
控制系统分析
介绍如何使用Mathematica进行控制系统分析,包括稳定性分析 、根轨迹图绘制等。
THANKS
01
符号代数
符号矩阵
02
03
符号积分
使用Mathematica进行符号代数 运算,如代数方程求解、化简、 积分和微分等。
进行符号矩阵的运算,如矩阵的 逆、行列式、特征值和特征向量 等。
使用Mathematica进行符号积分 运算,如不定积分和定积分的计 算。
数据可视化
散点图
创建散点图,用于展示两个变量之间的 关系。
02
03
脚本编写
使用C/C编写脚本,可以自动化 Mathematica的某些任务,提高工作 效率。
06
CHAPTER
Mathematica案例分析与实 践
数学建模案例
线性回归模型
Hale Waihona Puke 01通过Mathematica实现线性回归模型的建立,包括数据准备、
模型拟合、预测和评估等步骤。
数学软件Mathematica的应用
数学软件Mathematica的应用一、数学软件Mathematica简介★Mathematica是由美国Wolfram公司研究开发的一款著名的数学软件;★Mathematica能够完成符号运算、数学图形的绘制等,功能非常强大;★Mathematica能够做精确计算;★Mathematica的界面操作非常友好;★Mathematica是数学建模常用的数学软件之一。
二、利用模板进行微积分运算File(文件)→Palettes(模板)→BasicInput(基本输入)File(文件)→Palettes(模板)→BasicCalculations(基本计算)三、Mathematica中一些常用的函数(1(2(3((5(6(8)数值分析函数在Mathematica 中,一个逻辑表达式的值有三个:真(True )、假(False )和“非真非假”。
条件控制函数If(1) If 语句的结构与一般的程序设计语言中的If 的结构类似。
它有三种情况:If[逻辑表达式,表达式1]当逻辑表达式的值为真时则计算表达式1,表达式1的值就是整个If 结构的值;If[逻辑表达式,表达式1,表达式2]当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2; If[逻辑表达式,表达式1,表达式2,表达式3]当逻辑表达式的值为真时则计算表达式1,为假时则计算表达式2,其它情况则计算表达式3。
循环控制语句Mathematica 中有3种描述循环的语句,它们是Do,While 和For 语句。
下面是其一般形式:For[初值,条件,修正,循环体] While[条件,循环体] Do[循环体,{循环围}]四、结合图形进行分析1.作出函数xx f y 1sin )(==在区间]1,1[-上的图像,观察当0→x 时函数的变化情况;作出函数xx x f y 1sin)(==在区间]1,1[-上的图像,观察当0→x 时函数的变化情况;2.作出双曲抛物面xy z =的图形; 3.作weierstracs 函数)13cos(21)(1x x f n n nπ∑∞==(处处连续但处处不可导)的图像;4.x ∈(-5,5), y ∈(-5,5)的所有根;五、验证与探索1.x sin 的泰勒级数2.x sin 的无穷乘积猜想六、算法与程序1.分形图(迭代)2.将矩阵化为行最简形(步骤)七、实际问题的Mathematica 求解1.椭圆弧长的计算问题计算椭圆βα≤≤⎩⎨⎧==t t b y ta x ,sin cos 的弧长及近似值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学软件Mathematica简介本文简要介绍该软件的基本使用方法,通过学习,初步了解Mathematica的功能及其使用方法.Mathematica是美国Wolfram Research公司开发的数学软件,主要用于解决科学研究、数学教学、工程技术等领域的符号运算、数值计算、程序设计、函数图形绘制等方面的问题.Mathematica是目前世界上最流行的数学软件之一,它是从事数学和其它科学研究的科研人员、高校师生,以及工程技术人员的得力助手和不可缺少的计算工具.一、算术运算进入Mathematica 系统后,显示在面前的是如图1-1所示的窗口,右边是基本工具板,我们立即可以在空白的窗口内进行预想的数学计算了.图1-1Mathematica中,空白窗口称为Notebook(记事本),窗口上端“Untitled-1”表示当前的记事本尚无标题,我们可以像使用普通计算器一样来进行数学运算. 计算结束后,执行File/Save as 命令,指定文件名称(扩展名为 *.nb)和路径将此记事本文件保存.算术与代数运算是数学中最基本的运算,我们先从最简单的算术运算做起.做数学计算,离不开加、减、乘、除和乘方,单击键盘上“+”、“-”、“*”、“/”和“^”输入这些运算符,其中乘号“*”可以用空格代替.如果要计算图1-1所示的工具板上提供的某种数学运算,可用鼠标左键单击相应的按钮,便可将该运算符输入到窗口中,例如25+34*525+34*5然后用组合键Shift + Enter 或直接按小键盘上的Enter键(本书中,我们一律称这一操作为“执行”),便可输出计算结果. 屏幕上显示为In[1]:=25+34*5Out[1]=195这里“In[1]:=”和“Out[1]=”是由系统自动加上去的,表示输入和输出的编号. 此后的输入和输出,系统都会按照执行顺序自动加上“In[n]:=”和“Out[n]=”.本书中一般不再显示这些编号,而使用灰色底纹突出输入命令行,接在该行下面的式子、数值等则表示执行命令后的输出结果,并将二者用边框线框住. 输出的图形考虑到印刷的便利,一般予以编号.如果要计算较复杂的式子,需要按照运算顺序添加括号,例如计算3314(3523)23521+⋅+-⋅⎡⎤+⋅⎢⎥-⎣⎦,在窗口内输入(输入的式子中用乘号用空格代替):2+(18/5) (1+4 (3+5-2 3))/(2^3-1) 输出计算结果为23235又如计算(103.54+12.25)*1.2-3.3^5/5.263.68765(a+3)^3/(b-1)^2325 (3+a)(-1+b)对每一输入行和输出行,系统在Notebook 窗口的右边缘分别添加一个形如“”和“”的标记(图1-1),它随着输入行和输出结果行的宽度扩展,它标记的行称之为“Cell ”,即“细胞”或“单元”. 系统根据输入和相应输出的关系将有关的“细胞”组合起来形成多级细胞单元显示运算的层次.Mathematica 可以做任意位数的整数或分子分母为任意大整数的有理数的精确计算,也可以做具有任意位精度的数值(实、复数值)的近似计算. 一般使用 N[expr] 命令输出表达式expr 的近似值,用N[expr ,n]命令输出表达式expr 的n 位近似值,例如计算圆周率π的近似值,顺次输入Pi N[Pi] N[Pi,50]输出结果依次为π的精确值、近似值和精确到50位的近似值Pi3.141593.1415926535897932384626433832795028841971693993751也可以使用后缀格式“expr//N ”求表达式expr 的近似值,如求Sqrt[5]//N2.23607复数运算与实数运算一样,只需在输入复数时,虚数单位“i ”必须使用大写字母I ,输出结果中,显示为 ™ . 例如要计算复数123z i =-+⋅与复数232z i =--⋅的积、商以及1z 的3次方,则应输入(-2+3 I)(-3-2 I) (-2+3 I)/(-3-2 I) (-2+3 I)^312 -5 ™ -™ 46 +9 ™二、常数、变量和函数1.系统常数Mathematica系统中的数学常数列于表1-1.表1-1 数学常数∞2.变量和函数名Mathematica系统中,定义变量和函数名应遵从如下规则:变量或函数名必须以英文字母起头,后面接任意长度的字符或数字,各字符间不得有空格和其他运算符,如x、x1、xy2、T2x、data、Alpha、delta都是合法变量.系统区分变量中的大小写,X和x、xy1和Xy1视为不同的变量.系统内置函数名都以表示函数意义的完整英文单词为名,且起头的第一个字符必为大写字母,其余为小写字符,例如Sin[x]为x的正弦,Expand[expr]表示将表达式expr展开.如果函数名是几个英文单词复合而成,各单词的每个词头要大写,例如,FindRoot[eq1==eq2,{x,x0}]表示求方程式“eq1==eq2”的根. 用完整意义的单词作为函数名定义函数,常使用户能够“望文生义”,根据函数名就大致明确函数的意义. 不过,自定义函数时尽量不要与系统内置函数同名,因为系统内置函数的名称是受保护的.函数必须表示为“函数名[x]”的形式,自变量放在方括号内.3.系统内置函数Mathematica系统中的内置函数(Built-in Function),包括基本初等函数、特殊函数,还有众多旨在完成某项特定数学运算的功能函数,有时也称这类函数为“命令”.表1-2列出了常用的初等函数,它们与普通数学中的形式基本相同,只不过函数名的首字必须大写.表1-2 Mathematica的部分内置初等函数表1-2 续读者要了解更多的内置函数,可参阅书末的附录.4.自定义函数大量的数学问题还需要根据问题的具体意义,借助软件提供的运算功能自行定义函数加以解决,Mathematica 提供了两种自定义函数的方法:立即定义和延迟定义.立即定义,格式为:f[x_]=expr . 延迟定义,格式为:f[x_]:=expr .这里自变量x 右边的下划线“_”是非常重要的,称之为“空白”(blank ),x _表示定义的函数中的自变量,称为哑变量,可以用任何形式的参数或表达式去替代它.使用等号“=”和延迟赋值号“:=”定义的函数是不同的,二者的区别主要在于何时对表达式expr 进行计算,前者在定义f[x_ ]的同时就计算了expr ,而后者则是在需要计算函数 f 的值时才进行计算. 定义多元函数的方法也是相同的.我们用下面的例子来比较二者的区别,输入 f[x_]=Expand[(x +1)^3] 1+3 x+3 x 2 +x 3 f[x^2+1]1+3(1+x 2)+3(1+x 2)2+(1+x 2)3用立即定义法定义一个将多项式展开的函数:f[x_]=Expand[(x +1)^3],执行后,系统会立即输出(x+1)^3的展开式.而再输入f[x^2+1]时,输出的是1+3(1+x 2)+3(1+x 2)2+3(1+x 2)3.接下来用延迟定义法定义:g[x_]:=Expand[(x+1)^3],执行后,系统则不输出任何结果,只有再次调用g[x]时,系统才输出展开式.g[x_]:=Expand[(x+1)^3] g[x]1+3 x +3 x 2+x 3g[x^2+1]8+12 x 2+6 x 4+x 6g[2 a -3 b]1+6 a +12 a 2+8 a 3-9 b -36 a b-36 a 2 b +27 b 2+54 a b 2-27 b 35. 变量赋值、变量值的清除Mathematica 中,用等号“=”给变量赋值,也可以将一个表达式赋予一个变量,格式为 x = value 将值value 赋予变量x x = y = value 将值valu e 同时赋予变量x ,y x =.或 Clear[x]清除x 的值例1 使用一元二次方程求根公式求22230x x +-=的根.解 输入和输出结果为a =b =2;c =-3; Delta=b^2-4 a cx1 =(-b +Sqrt[Delta])/2/a x2 =(-b -Sqrt[Delta])/2/a 输出结果为28142142这里,把2、2、-3分别赋予变量a 、b 、c ,后面用“;”隔开,Mathematica 中,如果一个完整的输入语句之后面接分号“;”,该表达式的运算结果屏幕将不予显示. 把表达式b^2-4 a c 赋予变量Delta ,把计算根的表达式分别赋予变量x1和x2,执行后输出并显示出Delta 的值为28,两个根分别为1(24-±,而变量a 、b 、c 的值却没有显示出来. 如果接着输入 -b /2a Delta 则输出28对于赋了值的变量,如果在接下来的运算中不再使用,可以使用命令:“Clear[变量名]”或“变量=.”将它们清除,以免影响后续的数学运算. 例如,输入Clear[a ,B ,C ,Delta,x1,x2]执行后,这些变量便被清除了. 不再使用的自定义函数可使用同样的方法加以清除:Clear[f ,g]. 在Mathematica 运行期间,将不使用的变量及时加以清除,对保证后续运算结果的准确性是至关重要的,初学者应给予足够的重视.6. 括号的使用Mathematica 中,可以使用四种括号:方括号“[ ]”:仅用在函数表达式中,如f[x]、Sin[Pi/3]、Sqrt[3] 等; 圆括号“()”:用来表示运算项的结合顺序,例如,数学表达式223{5[2(2)]sin()}yx x x y x y⋅⋅++++⋅-应输入成如下形式:3(5(2 x + y /(x -y )+(2+x )^2)+Sin[x ^2] y)此外,在语句行的任何地方可以加入形如 (* …… *)”的括号,其中两星号之间可以输入一段注释语句意义的文字或其他, 其内容系统是不执行的.花括号“{ }”:用于定义一个“表”,如{a ,b ,c}; 双方括号“[[ ]]”:用于提取表中元素. 7. 变量替换Mathematica 提供了变量替换运算,其基本格式为:expr/.x →value以value 替代expr 中的xexpr/.{x →value1,y →value2,…} 以value 1和value 2等替代expr 中的x 、y Replace [expr,rules ] 按规则rules 替代expr例如x ^2+2x +3/.x →211x +y /.y →S in[x ]/.x →π/2Replace[x ^2+b ^2,x →a ]a ^2+b ^2{a ,b ,c }/.a →b /.b →d /.d →c{c ,c ,c }以上输入中的箭头“→”可以依次输入减号键“-”和大于号键“>”得到. 8. 先前变量值的调用在计算过程中,我们常常需要使用先前已经计算出来的结果,使用“%”、“%%”、“%...%”等分别来调出最后一个、倒数第二个和倒数第k 个计算结果. 例如,x +y /.{x →a ,y →b }a +b%+ca +b +c{%+d ,%%+d }{a +b +c +d ,a +b +d }三、 符号运算代数运算,即对使用字符代表数值的代数式进行运算,各种形式的代数式,在Mathematica 中,统称为表达式,如计算33()()a b a b +--,在计算机里做这种运算,称为“符号运算”. Mathematica 强大的符号运算功能,可以完成从初等数学到高等数学中众多的运算,如各种代数式运算、三角函数变换、函数求导、不定积分、级数展开、函数变换、向量矩阵运算等等. 在Mathematica 中,符号运算可以像普通数学运算一样进行,例如将代数式33232322a a a b ab b -++-化简,可以输入2 a^3-a ^3-a ^2 b ^3+a b ^2-b ^3 输出为a 3-3 a 2b +3 a b 2-b 3在Notebook 中作符号运算时,有一点必须加以注意,参与运算的表达式中使用的字母符号(实际上,都是所谓的“变量”)必须是没有赋过值的,否则系统将把它当作数值对待,运算后,输出的将是表达式的值,而非预想的运算结果.为了保证不出错误,应该在符号运算之前,先执行清除命令Clear[a ,x ,...].在大多数场合下,要完成代数运算,需要使用执行符号运算的命令,如表达式化简(Simplify )、分解因式(Factor)等等. 表1-3列出了几个常用的处理符号运算的命令(或称为函数).表1-3 处理符号运算的函数例如下面几个代数式的运算: Expand[(2 x +3 y-1)^2]1+4 x+4 x 2-6 y+12 x y+9 y 22 x^2+x -1//Factor(1+x )(-1+2 x)Together[x ^2/(x +2)-(x ^2-3)/(3x +1)] (*通分合并*)236+3 x -x +2 x (2+x) (1+3 x)Apart[(3 x^2-1)/(x^2+3 x +2)]321又如下列三角式的展开和化简: Sin[α-2β]//TrigExpandCos[β]2 Sin[α]-2 Cos[α] Cos[β] Sin[β]-Sin[α] Sin[β]2TrigReduce[%]Sin [α-2 β]将sin z 转化为指数型函数: TrigToExp[Sin[z]]12z将ln(/)m n a b 展开:PowerExpand[Log[a ^m /b ^n ]]m Log[a]-n Log[b]四、表与表的操作1. 表的概念“表”(List)是Mathematica中一个灵活、独特而重要的数据结构,它可以表示数学中点的坐标、向量、矩阵、集合、自变量取值范围、方程组等,其基本结构是{a,b,c,...},其中a,b,c,...称为表的元素,它们可以是数字、字符、表达式、函数、图形命令,甚至是表(子表),这时的表称为嵌套的表. Mathematica 中众多运算的输出结果也以表的形式给出.可以使用“表名[[num]]”提取该表中的第num个元素.对于嵌套表,用“表名[[num1,num2]]”提取该表中的第num1个子表中的第num2个元素,多层嵌套表也称为多维表.2. 建表方法Mathematica中有多种方法建表方法,可以直接定义法,输入一个花括号,将元素放在括号内,各元素之间用逗号分开即可.例如a={1,2,3}{1,2,3}a[[2]]2如下定义的嵌套表b代表一个23阶矩阵:b={{1,2,-2},{3,4,1}}; (* 定义表b,不做屏幕显示 *){b[[1]], b[[1,3]]} (* 输出表b的第一个子表,和第一个自表中的第三个元素 *){{1,2,-2},-2}b[[1]]相当于b的第一个元素,即矩阵的第一行. b[[1,3]]相当于13b.表作为一个整体可以参与相关的运算,也可以对表的元素进行相关的运算,例如a={1,2,3,4,5};a^2(* a的各元素平方组成的表 *){1,4,9,16,25}%+2a(* 上一个表加上a的各元素的2倍组成的表 *){3,8,18,24,35}10+a(* 将数10加到a的各个元素上去 *){11,12,13,14,15}Sum[a[[i]]^2,{i,5}] (* 计算a中各元素的平方和 *)55Sin[{Pi/6,Pi/3,Pi/2}] (* 将正弦函数作用到表的每个元素上 *)1 2,2使用建表函数Table、Range、Array等,可以建立元素具有某种规则的表,它们的最简单的使用格式为Table[expr,range] 产生一个指定范围内,元素按表达式expr计算出的表.Range[n] 产生一个从1到n的整数组成的表.Array[f,{m,n}] 产生一个以f[i,j]为元素的m n⨯阶数组.Table[ ]是一个非常有用的函数,在生成函数表、作图、制作动画等都会用到它. 例如a=Table[x^i,{i,5}](* 产生以函数i x为元素的表 *){x,x2,x3,x4,x5}Table[{i,Log[10,i]},{i,1,5}]//N(* 产生1-5的常用对数表 *){{1.,0.},{2.,0.30103},{3.,0.477121},{4.,0.60206},{5.,0.69897}}例2利用Table函数输出九九表.Table[i j,{i,9},{j,9}]{{1,2,3,4,5,6,7,8,9},{2,4,6,8,10,12,14,16,18},...,{9,18,27,36,45,54,63,72,81}} (注:此处略去部分输出结果)Range[n]函数的用法.例如,要产生一个从1到10的整数集合,输入b=Range[10]{1,2,3,4,5,6,7,8,9,10}Array[ ]函数的用法. 例如,要产生一个23⨯阶数组,输入Array[a,{2,3}]{{a[1,1],a[1,2],a[1,3]},{a[2,1],a[2,2],a[2,3]}}输出一个两行三列的数组a[i,j].例3用Array[]函数输出一个九九表.f[x_,y_]:=x y; c=Array[f,{9,9}]输出结果与例2的结果相同.有关表的更多的用法和操作,我们将在以后的相关章节中详细介绍.五、图形函数Mathematica有很多图形函数,利用它们可以方便地绘制各种数学函数的图形.其中,最常用的图形函数是产生平面曲线图形的函数命令为Plot[expr,{var,min,max},options]这里expr为函数表达式,var为自变量,min,max分别为自变量取值的下限和上限,它确定作图的自变量取值范围,options为针对输出图形或图元给出的各种控制选项. 也可以使用如下命令把几个函数图形在同一张图中显示出来,Plot[{expr1,expr2,...},{var,min,max},options]例4 做出函数sin()xf xx=的图形,可以输入f[x_]:=Sin[x]/xPlot[f[x],{x,-Pi,Pi},AspectRatio →0.4,PlotStyle →{RGBColor[0,0,1],Thickness[.01]}]Graphics 这里选项AspectRatio→0.4,表示图形的高和宽的比例为0.4 ,即高为宽的40%. 一般地,如果不输入这个选项,则系统默认图形的高和宽之比为黄金分割比,即1/GoldenRatio=0.618. 图形风格选项PlotStyle→{RGBColor[0, 0,1], Thickness[.01]}中,RGBColor[0, 0, 1] 表示图形中曲线的颜色为蓝色,RGBColor[1,0,0]和RGBColor[0,1,0]则分别表示颜色为红和绿,方括号中的三个数取0与1之间的数值.在Mathematica5.1以上的版本中,它们分别可以用Blue,Red和Green取代,Thickness[.01]表示曲线的粗细,方括号中的数值越大,曲线越粗.Mathematica中,凡是输出图形的下方,系统将输出一个字符串“ Graphics ”,如果在图形命令末尾加上分号“;”,则该字符串将不再显示.当函数图形绘制出来以后,用鼠标单击图形,它就被一个矩形框框住,鼠标指向该框内,鼠标变成一个纵横交叉的十字丝,这时按住Ctrl键,移动鼠标,跟踪平面上点的位置,在屏幕左下方的花括号内显示十字丝位置上点的坐标.不妨用这个函数并选择有关选项做出你所熟悉的一元函数的图形. 输出函数图形可用选项有很多,可以查阅帮助文件,也可以在Notebook中使用Option[]函数来了解:Options[Plot]执行后输出所有可用选项,由于选项太多,这里略去.要产生三维空间的曲面图形,最常用的函数为Plot3D[expr,{x,xmin,xmax},{y,ymin,ymax},options]Mathematica还提供了产生由参数方程确定的平面曲线、空间曲线、空间曲面的图形函数,产生极坐标系下曲线的图形函数等等. 图形函数以及它们的具体使用方法,这里不再介绍.此外,Mathematica也提供了利用一些基本图元作图的函数,其中,最常用的命令格式为Graphics[primitives,options]基本图元(primitives)包括: 点(Point)、线段(Line)、圆(Circle)、圆盘(Disk)、多边形(Polygon)、矩形(Rectangle)等,这样的图形需要调用如下的Show函数才将它显示出来.Show[plot,options]例 5 绘制单位圆和以圆与坐标轴的交点为顶点的内接正方形. 输入p=Graphics[{Thickness[0.01],Circle[{0,0},1]}];r=Graphics[{Thickness[0.01],Line[{{0,-1},{1,0},{0,1},{-1,0},{0,-1}}]}];Show[{p,r},Axes→True,AspectRatio→ Automatic];Show函数中,设置选项Axes→True,表示显示坐标轴,图形的显示比例为“自动”. 执行后输出的图形如图1-2所示.例6 利用图元“Circle ”绘制一幅奥林匹克五环标志图,并选取适当选项,显示“Beijing 2008”字样. 可以使用多种方法绘制出五环标志图,下面我们给出如下的命令,执行后输出如图1-3所示的五环标志. Apply[Circle,{{{0,0},1},{{2.4,0},1},{{4.8,0},1},{{1.2,-1.0},1},{{3.6,-1.0},1}},{1}];Show[Graphics[Table[{Blue,Thickness[0.03],%[[i ]]},{i ,5}]],AspectRatio → Automatic,PlotRange →{-3,2},PlotLabel →StyleForm["Beijing 2008",FontFamily →"Times", FontSize →28,FontWeight →"Bold",FontColor →Blue]];这里,使用Apply(应用)函数将Circle 命令作用到五个位置不同上去,产生包含五个圆环的表. 再用Table 函数将画圆的选项“Blue,Thickness[0.03]”分配给五圆表的每个元素,最后使用Show 函数将这五个圆环显示出来. 选择的选项中有:PlotRange →{-3,2}表示图形纵向范围,PlotLabel →StyleForm[]指出图形标签的风格形式,方括号内依次列出:字样“Beijing 2008”、字体、字号、字形和字体颜色等.作业:利用Mathematica 绘制一个尽量真实的奥林匹克五环标志图图1-2图1-3六、程序与编程Mathematica提供了众多可以解决各种数学问题的功能函数,但是,大量的数学问题仅靠这些函数来解决,还是远远不够的,需要自己编写计算机程序来解决. Mathematica系统为用户提供了一个功能非常强大的编程平台和编程语言,其语言结构简单、灵活,凡学过计算机语言(如C、Fortran等)的用户都能很快地掌握它.同任何程序语言的结构一样,Mathematica程序流程也分成顺序结构、循环结构、条件分支结构.1. 关系运算与逻辑运算在程序流程的控制中,需要用到关系运算和逻辑运算. 这些运算由相应的关系运算符和逻辑运算符完成,如果关系表达式和逻辑表达式成立,其输出结果为True,否则为False.关系运算符和逻辑运算符列于表1-4和表1-5中.表1-4 关系运算符及运算结果表1-5 逻辑运算符及运算结果2. 全局变量与局部变量当Mathematica开启并首次执行一个运算后,系统立即启动一个叫做“Mathematica Kernel”程序,它负责变量和函数的计算,并将计算结果暂时存储在这里.凡先前定义的变量的值,在Mathematica运行期间,该变量的值始终被保存,所以,在Mathematica中称这种变量为“全局(Global)变量”,全局变量的值只要没有及时地清除,很可能会影响后续的运算的结果.相对全局变量,Mathematica允许定义一种所谓的“局部(Local)变量”,不过这种变量必须放在一个由Module引起的模块中,用Module模块可以定义一个函数或者旨在完成某项具体任务的程序. 这个模块中定义的变量叫做局部变量. 局部变量的值仅在该模块内起作用,模块外的全局变量值与模块内定义的局部变量,即使它们同名也互不影响.Module模块的基本格式:Module[{x,y...},body],局部变量为x,y,...的模块.Module[{x=x0,y=y0,...},body],局部变量为x,y,...赋予初始值的模块.例如,输入x=10 (* x为全局变量,定义其值为 10*)f=Module[{x},x=(2 t-3 s)^2;x=Expand[x]](* Module中的变量x为局部变量*)不难看出,这里用Module模块定义的变量f,执行后输出结果为109 s2-12 s t+4 t2显然,输出的10为全局变量x的值,而模块内的变量x为局部变量,将(2 t-3 s)^2赋予x,再将它展开并输出展开式.这里须注意Module模块中最后一个语句为输出语句.3. 循环结构程序,实质上就是一系列有序的计算机指令组成的集合.大多数情况下,Mathematica程序,就是将一系列的命令组合在一起,按照先后顺序从前向后执行,当一个命令语句之后添加“;”时,计算结果不做屏幕显示,继续计算下一条命令,直到这组命令全部计算完备为止,这种程序结构,叫做顺序结构.但是,许多数学问题,需要利用计算机的高速运算多次循环计算才能得到结果,即需要编写一个循环结构的程序来完成. Mathematica中有多种建立循环结构程序的方法,我们仅介绍其中几种常用的方法.(1) Do循环Do循环的格式为Do[expr,{i,i min,i max}] 循环变量i从i min到i max,重复计算expr的值Do[expr,{i,i min,i max,di}] 循环变量i从i min到i max,以di为步长,重复计算expr的值.Do[expr,{i,i min,i max},{j,j min,j max}] 二重循环例7用Do循环计算前n个自然数的平方和,输出前15个自然数的平方和.Sqsum[n_Integer]:=Module[{s=0},Do[s+=k^2,{k,n}];s]Sqsum[15]1240输出结果为1240. 程序中k为循环变量,循环表达式“s+=k^2”,即“s=s+k^2”,循环变量的初值如果是1的话,可以省略.(2) For循环Fro循环的格式为For[start,test,incr,body] start为循环变量初值,test为检验条件,incr 为步进量,body为循环体.使用For循环作例6的问题:Sqsum1[n_]:=Module[{s=0},For[i=1,i<=n,i++,s+=i^2];s]Sqsum1[15]其中,循环变量i的初值为1,终值为n,i++表示步进量为1(它可以用i=i+1,或者i+=1代替),此程序的输出结果也是1240.(3) While循环While循环的格式为While[test, body]test为检验条件,body为循环体当检验条件满足,计算循环体,直到检验条件不满足为止.使用While循环作例6的问题,输入如下程序Sqsum2[n_]:=Module[{s=0,i=1},While[i<=n,s+=i^2;i+=1];s]Sqsum2[15]不难看出,这个程序的输出结果仍然是1240.4. 条件分支结构在数值或者非数值运算中,常常需要对给定的条件作逻辑判断,并根据判断结果控制程序的流向,这要用到分支结构.Mathematica中使用If、Which等命令控制程序的分支,下面简要介绍它们的用法.(1) If 语句格式If[cond,t,f],cond为检验条件,当cond为真时计算t,否则计算f.例8 编写程序从任意给出的3个数中挑选最大的数. 输入maxf[x_,y_,z_]:=Module[{m},If[x>y,m=x,m=y];If[z>m,m=z];Print[m,"i s the maximal number."]]程序中“Print”函数表示打印,其中引号中的字符串照原样打印.如果求ππee, 3,π中最大的数. 调用此程序并输出结果为maxf[E^Pi,3^Pi,Pi^E]π3is the maximal number.数学中的分段函数,常常要使用If命令来定义,我们将在实验1中详细讨论.,(2) Which 语句格式Which[cond1,expr1,cond2,expr2,...] 顺次检验条件cond i,当首次遇到某个条件cond k成立时,返回对应的表达式expr k的值.例9 用Which命令定义符号函数1 , 0 sgn[] 0 , 01 , 0xx xx-<⎧⎪==⎨⎪<⎩.sgn[x_]:=Which[x<0,-1,x==0,0,x>0,1]如果输入sgn[2.5],输出1,输入sgn[-3.1],则输出-1.为了解决复杂的问题,在计算机程序中,常常需要在适当的地方中改变程序的流向,例如在循环中,当循环结果符合要求以后,中断循环,跳出循环执行下面的语句,或控制程序转入下一轮循环. Mathematica 中提供了一些控制程序流程的命令函数,如Break[]、Continue[]、Return[expr]、Goto[name]等等. Mathematica 程序的语法与C语言语法基本相同,读者可以在所掌握的计算机语言的基础上,逐步熟悉程序的编写方法.例10 3N+1问题是数论中的一个有趣问题,任意给定一个正整数内 N ,如果它是偶数,则除以2,否则,将它乘以3再加上1,再将所得到的数当作新的N,重复上述计算步骤,经过有限次计算后,最后一定得到数1. 编写Mathematica程序验证这一事实.ThreeNPlus1[n_]:=Module[{m=n},For[i=1,i≤10^10,i++,{If[m==1,Break[],If[Mod[m,2]==0,m=m/2,m=3 m+1]]}]; Return[m]]程序里,对任意给定的正整数n,由于事前并不知道需要计算多少次,最后可以返回数1,故选取循环变量的终值为一个很大的数,这里取为1010.循环过程中,经过若干次计算后,一旦得到数1,程序执行到终止循环命令Break[](注:Break之后的方括号内不填任何值),则跳出循环,Return[m]表示返回到m的最后值. 可以验证,对于任何整数n调用这个函数,其返回值都是1.七、帮助与查询查阅软件提供的帮助是迅速掌握软件功能的重要途径,选择Help菜单下的Help Browser...菜单项(可单击F1) 打开帮助浏览器,其中介绍系统内置函数(Build-in Functions)、学习教科书(The Mathematica Book)、功能演示(Demos)、索引(Master Index)等内容,从中了解系统功能、函数与基本使用方法.Mathematica还提供了获取帮助的简便方法,要了解某个具体函数或者命令的意义,可以在Notebook中先输入“? 函数名”,例如,输入?Expand执行此命令,系统输出该函数的简要信息.Expand[expr] expands out products and positive integerpowers in expr. Expand[expr, patt] leaves unexpanded anyparts of expr that are free of the pattern patt. More...要了解更多的信息,可以单击上面这段文字末尾的“More...”按钮. 如果输入“??Expand”,执行后则输出该函数的详尽信息.如果忘记了某个函数或命令的英文拼写,可以输入?Ex*则会输出系统中所有以“Ex”起头的Mathematica命令的名称.八、加载程序包Mathematica提供的内置函数中,有一部分可以直接调用.还有些功能相对专业的函数,Mathematica将它们集中在一个个的程序包中,要使用这些函数首先必须调入包含着该函数的程序包,否则,若直接输入这些函数,系统并不能识别.加载程序包的方法是输入:<<程序包`子程序包名称` (或者Get[“程序包`子程序包名称`”])或者输入Needs[“程序包`子程序包名称`”]例如我们要做统计中线性回归方面的计算,就需要调入统计(Statistics)程序包中的线性回归子程序包,输入<<Statistics`LinearRegression`执行后就可以使用该程序包中的有关函数或命令做线性回归了. 注意,上面的命令中,要输入单引号“`”,需单击数字键1左边的那个键.Mathematica系统提供了代数、几何、微积分、数论、图形、统计等领域中的许多程序包,要了解这些程序包,从帮助浏览器的“Add-Ones&Link”卡中的标准程序包(Standard Packages)去查找.除了做数学的程序包外,有一个特殊的杂项(Miscellaneous)程序包,其中包括可以输出化学元素、物理常数、日历、城市数据等方面资料的子程序包. 例如,要想知道某年某月是星期几,需要加载中的日历(Calendar)子程序包,输入<<Miscellaneous`Calendar`执行后,比如要想知道2016奥运会的开幕日是星期几,输入DayOfWeek[{2016,8,5}]Friday即当天是星期五. 要想知道从2014年3月1日到2016奥运会开幕还有多少天,输入并执行后得到DaysBetween[{2014, 3, 1}, {2016, 8, 5}]888。