实验一 Mathematica软件操作(1)
mathematic使用指南
第一章Mathematica的启动的运行Mathematica是美国Wolfram公司生产的一种数学分析型的软件,以符号计算见长,也具有高精度的数值计算功能和强大的图形功能。
目前最新版本是Mathematica4.0,本附录仅介绍Mathematica4.0的一些常用功能,须深入掌握Mathematica的读者可查阅相关书籍。
在Windows环境下安装好Mathematica4.0,用鼠标双击Mathematica图标(刺球状),在显示器上显示如图1-1的工作窗口,这时可以键入你想计算的东西,比如键入1+1,然后同时按下Shift键和Enter键(数字键盘上只要按Enter键),这时Mathematica开始工作,计算出结果后,窗口变为图1-2。
图1-1 Mathematica的工作窗口Mathematica第一次计算时因为要启动核(kernel),所需时间要长一些,也可以在Mathematica 启动后第一次计算之前,手工启动核,方法是用鼠标点击:Kernel->Start Kernel->Local.这样第一次计算就很快了。
图1-2 完成运算后的Mathematica的窗口图1-2中的“In[1]:=”表示第一个输入;“Out[1]=”表示第一个输出结果。
接下来可键入第二个输入,按这样的方式可利用Mathematica进行“会话式”计算。
要注意的是:“In[1]:= ”和“Out[1]=”是系统自动添加的,不需用户键入。
Mathematica还提供“批处理”运行方式,即可以将Mathematica作为一种算法语言,编写程序,让计算机执行,这在第七章将会作简要介绍。
第二章 Mathematica的基本运算功能2.1 算术运算Mathematica最基本的功能是进行算术运算,包括加(+),减(-),乘(*),除(/),乘方(^),阶乘(!)等。
注意:1 在Mathematica中,也可用空格代表乘号;数字和字母相乘,乘号可以省去,例如:3*2可写成3 2,2*x可写成2x,但字母和字母相乘,乘号不能省去。
Mathematica软件的使用
例:Table[Prime[i],{i,1,10,1}] 得:{2,3,5,7,11,13,17,19,23,29} 当步长为1时,可省略步长 当步长和初值为1 时,可省略初值和步长 特别:{n}表示重复n次
循环描述: {循环变量,初值,终值,步长}
格式2:Range[初值,终值,步长] 功能:生成值为{初值,初值+步长,…,终值}的数值表
操作
组合 表元素
增加 表元素
Insert[t,fmt,n] Append [t,fmt] AppendTo [t,fmt]
提取 表元素
Join[t1,t2,…]、Union[t1,t2,…] Intersection[t1,t2,…] Complement[un,t1,t2,…] Sort[t]、Reverse[t] Flatten[t]、Partition[t,n]
数值表达式运算的结果
精确数和浮点数(带小数点的数,近似数) 依据表达式中数的表现形式确定结果的形式
N[表达式] 和 N[表达式,n]
以n位精度的实数形式表示表达式
数的输出形式
表达式//N
以实数形式输出表达式的值 (有效位数取6位)
ScientificForm[表达式]
科学记数法
(2)变量
(4) 自定义函数
格式1: f[x_ ]=表达式
立即定义
格式2: f[x_ ]:=表达式
延时定义
函数定义中的自变量,读作空白
注: 格式1与格式2的区别在于何时求表达式的值。 体会下列两例:
g[x_]=Random[]和h[x_]:=Random[]
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不定积分
mathematica不定积分Mathematica 是一款强大的数学软件,支持多种数学计算。
其中,不定积分是数学计算中的重要内容之一。
下面我们就来介绍如何使用Mathematica 进行不定积分。
一、输入函数首先,我们需要输入待求不定积分的函数。
在 Mathematica 中,可以使用“Integrate”函数对函数进行不定积分。
例如,对于函数 f(x) = x^2,我们可以输入以下命令进行不定积分:Integrate[x^2, x]二、确定积分常数在进行不定积分时,必须要确定积分常数。
在 Mathematica 中,可以使用“C”来表示积分常数。
例如,对于函数 f(x) = x^2,我们可以输入以下命令进行不定积分,并用“C”表示积分常数:Integrate[x^2, x] + C三、使用特殊函数在 Mathematica 中,还支持使用特殊函数来进行不定积分。
例如,对于三角函数 sin(x),可以使用“Sin”函数来进行不定积分。
例如,对于函数f(x) = sin(x),我们可以输入以下命令进行不定积分:Integrate[Sin[x], x]四、使用换元法换元法是不定积分的常用方法之一。
在 Mathematica 中,可以使用“ReplaceAll”函数以及“Simplify”函数来进行换元法的计算。
例如,对于函数 f(x) = sin(2x),可以使用换元法进行不定积分,如下所示:Integrate[Sin[2x], x] /. 2x -> ySimplify[%]五、使用分部积分法分部积分法是不定积分的另一种常用方法。
在 Mathematica 中,可以使用“Integrate”函数以及“ProductRule”函数来进行分部积分法的计算。
例如,对于函数 f(x) = x*cos(x),可以使用分部积分法进行不定积分,如下所示:Integrate[x Cos[x], x] // ProductRule六、使用积分表计算不定积分时,还可以使用积分表。
mathematica的使用
微积分基本运算(1)
四、数学常数:
Pi E e=2.71828… Infinity I False True
即π 欧拉常数, 无穷大∞ 虚数单位 假 真
微积分基本运算(1)
五、关系、逻辑运算:
表达式 a==b > 意义 等于 大于 表达式 !p或Not[p] p||q或Or[p,q] 意义 非运算 或运算
表达式的Mathematica内部表示 Font:
设置当前选定内容的字体
Format菜单:执行与各种格式设定相关的操作
Face: 设置当前选定内容字体是否粗体(斜体) Size: 设置当前选定内容的字体大小 TextColor: 设置当前选定内容的文本颜色 Background Color: 设置当前选定内容的背景颜色等。 Show Ruler: 是否显示标尺栏? Show ToolBar: 是否显示工具栏? Magnification: 设定当前屏幕显示的比例, 通常设置为150%较好。
微积分基本运算(1)
算术运算及N,%运算 常见数学函数,数学常量 关系、逻辑运算 求极限,求导,微分,积分: Limit,D,Dt, Integrate, 解方程,方程组 Solve 解微分方程: NSolve,DSolve
微积分基本运算(1)
一、基本算术运算及N,%运算:
(235*456+78)-54 34^45 Pi^23 N[%] 读取上一次的运算结果 N[%15] 取第15次运算结果的数值
Kernel菜单:与Mathematica软件内核运行相关的操作
Interrupt Evaluation与Abort Evaluation: 中断当前命令的运行,当程序陷入死循环 时,或程序运行很久没有反应时,通常采用此 命令,快捷键 Alt+. Show In/Out Names: 是否显示In[2]:=, Out[2]:=等 Delete All Output: 删除当前所有输出
mathematica 实验报告
Mathematica实验报告引言Mathematica是一款功能强大的数学软件,广泛应用于数学、科学和工程等领域。
本实验报告旨在介绍Mathematica软件的使用方法,并通过一系列实例演示其在数学问题求解中的应用。
实验步骤步骤一:安装和启动Mathematica首先,我们需要下载并安装Mathematica软件。
根据操作系统的不同,可以从官方网站或其他可靠来源获取安装文件。
安装完成后,双击启动Mathematica软件。
步骤二:创建新的NotebookMathematica使用Notebook作为工作环境,可以将其类比为一个电子文档。
在Mathematica启动后,点击“File”菜单,选择“New”并选择“Notebook”,即可创建一个新的Notebook。
步骤三:编写代码在Notebook中,我们可以编写Mathematica代码。
Mathematica的代码由一系列的函数、变量和运算符组成。
以下是一个简单的示例代码,用于计算平方根:a = 9;Sqrt[a]在上述代码中,我们首先定义了变量a的值为9,然后使用Sqrt函数计算变量a的平方根。
要执行代码,可以按下“Shift” + “Enter”键,Mathematica将输出计算结果。
步骤四:编辑和运行代码在Mathematica中,可以随时编辑和运行代码。
例如,我们可以更改变量a的值,并重新计算平方根。
只需修改代码为:a = 16;Sqrt[a]然后再次按下“Shift” + “Enter”键,Mathematica将根据新的变量a的值重新计算平方根。
步骤五:绘制图表Mathematica还提供了强大的绘图功能,可以可视化数据和函数。
以下是一个简单的示例代码,用于绘制正弦函数的图表:Plot[Sin[x], {x, 0, 2Pi}]在上述代码中,我们使用Plot函数绘制了正弦函数在0到2π范围内的图表。
执行代码后,Mathematica将显示出相应的图表。
mathematica 实验报告
mathematica 实验报告Mathematica 实验报告引言:Mathematica 是一款强大的数学软件,它能够帮助用户进行各种数学计算、数据分析和可视化等工作。
本实验报告将介绍我在使用 Mathematica 进行实验时的一些经验和心得。
一、实验目的本次实验的目的是通过使用 Mathematica,掌握其基本操作和功能,了解其在数学计算和数据处理方面的应用。
二、实验步骤1. 安装和启动 Mathematica首先,我在官方网站下载了 Mathematica 的安装包,并按照提示完成了安装。
然后,我启动了 Mathematica 软件,进入了主界面。
2. 基本操作在主界面中,我发现 Mathematica 提供了一个强大的交互式界面,用户可以通过键入命令和运行代码来实现各种功能。
我尝试了一些基本操作,比如进行简单的数学计算、定义变量和函数等。
3. 数据处理和分析Mathematica 提供了丰富的数据处理和分析功能,使得用户可以轻松处理和分析各种数据。
我使用了一些内置的函数和工具,对一些实验数据进行了处理和分析。
例如,我使用了 ListPlot 函数绘制了一些实验数据的散点图,并使用了Fit 函数进行了数据拟合。
4. 可视化Mathematica 还提供了强大的可视化功能,用户可以通过绘制图表和图形来展示数据和结果。
我使用了 Plot 函数绘制了一些函数的图像,并使用了 Graphics 函数绘制了一些几何图形。
5. 编程和自动化Mathematica 具有强大的编程功能,用户可以编写自己的函数和程序来实现复杂的计算和操作。
我尝试了一些简单的编程,比如编写了一个计算斐波那契数列的函数。
此外,我还了解到 Mathematica 支持自动化操作,可以通过编写脚本和批处理文件来实现自动化的计算和分析。
三、实验结果与分析通过使用 Mathematica,我成功完成了实验的各项任务,并取得了一些令人满意的结果。
Mathematica使用说明
Mathematica 入门一、引 言Mathematica 是美国Wolfram 公司开发的一个功能强大的数学软件系统,它主要包括:数值计 算、符号计算、图形功能和程序设计. 本指导书力图在不大的篇幅中给读者提供该系统的一个简 要的介绍. 指导书是按Mathematica 4.0版本编写的, 但是也适用于Mathematica 的任何其它图形 界面的版本.Mathematica 在数值计算、符号运算和图形表示等方面都是强有力的工具,并且其命令句法惊 人地一致, 这个特性使得Mathematica 很容易使用.不必担心你还不太熟悉计算机.本入门将带你 迅速了解Mathematica 的基本使用过程, 但在下面的介绍中,我们假定读者已经知道如何安装及启动Mathematica. 此外,始终要牢记的几点是:● Mathematica 是一个敏感的软件. 所有的Mathematica 函数都以大写字母开头; ● 圆括号( ),花括号{ },方括号[ ]都有特殊用途, 应特别注意; ● 句号“.”,分号“;”,逗号“,”感叹号“!”等都有特殊用途, 应特别注意; ● 用主键盘区的组合键Shfit+Enter 或数字键盘中的Enter 键执行命令.二、一般介绍1. 输入与输出例1 计算 1+1:在打开的命令窗口中输入1+2+3并按组合键Shfit+Enter 执行上述命令,则屏幕上将显示:In[1] : =1+2+3 Out[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(x38+++例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.1415926535897932285 注:第一个输入语句也常用另一种形式: 输入 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 的值,又一种方法*)输出17 97 289注:本例1、2、5行的结尾有“;”,它表示这些语句的输出结果不在屏幕上显示.四、解方程在Mathematica 系统内,方程中的等号用符号“==”表示. 最基本的求解方程的命令为 Solve[eqns, vars]它表示对系数按常规约定求出方程(组)的全部解,其中eqns 表示方程(组),vars 表示所求未知变量. 例12 解方程0232=++x x 输入 Solve[x^2+3x+2==0, x] 输出 }}1x {},2x {{-→-→例13 解方程组 ⎩⎨⎧=+=+1dy cx by ax输入 Solve[{a x + b y == 0,c x + d y ==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 -0.5-0.866025ii},{→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,1y=的图形.[-上作出抛物线2x输入Plot[x^2,{x,-1,1}]则输出例18 .输入Plot[{Sin[x],Cos[x]},{x,0,2Pi}]则输出??Plot则Mathematica会输出关于这个命令的选项的详细说明,请读者试之.此外,Mathematica的Help菜单中提供了大量的帮助信息,其中Help菜单中的第一项Help Browser(帮助游览器)是常用的查询工具,读者若想了解更多的使用信息,则应自己通过Help菜单去学习.空间图形的画法(基础实验)实验目的 掌握用Mathematica 绘制空间曲面和曲线的方法. 熟悉常用空间曲线和空间曲面 的图形特征,通过作图和观察, 提高空间想像能力. 深入理解二次曲面方程及其图形.基本命令1.空间直角坐标系中作三维图形的命令Plot3D命令Plot3D 主要用于绘制二元函数),(y x f z =的图形. 该命令的基本格式为Plot3D[f[x,y],{x,x1,x2},{y,y1,y2},选项]其中f[x,y]是y x ,的二元函数, x1,x2表示x 的作图范围, y1,y2表示y 的作图范围.例如,输入Plot3D[x^2+y^2,{x,-2,2},{y,-2,2}]则输出函数22y x z +=在区域22,22≤≤-≤≤-y x 上的图形(图2.1)与Plot 命令类似, Plot3D 有许多选项. 其中常用的如PlotPoints 和ViewPoint. PlotPoints 的用 法与以前相同. 由于其默认值为PlotPoints->15, 常常需要增加一些点以使曲面更加精致, 可能要 用更多的时间才能完成作图. 选项ViewPoint 用于选择图形的视点(视角), 其默认值为 ViewPoint->{1.3,-2.4,2.0},需要时可以改变视点.2.利用参数方程作空间曲面或曲线的命令ParametricPlot3D 用于作曲面时, 该命令的基本格式为ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,u1,u2},{v,v1,v2},选项]其中x[u,v],y[u,v],z[u,v]是曲面的参数方程表示式. u1,u2是作图时参数u 的范围, v1,v2是参数v 的 范围.例如,对前面的旋转抛物面, 输入ParametricPlot3D[{u*Cos[v],u*Sin[v],u^2},{u,0,3},{v,0,2 Pi}]同样得到曲面22y x z +=的图形(图2.2).由于自变量的取值范围不同, 图形也不同. 不过, 后者比较好的反映了旋转曲面的特点, 因 而是常用的方法.又如, 以原点为中心, 2为半径的球面. 它是多值函数, 不能用命令Plot3D 作图. 但是, 它的 参数方程为,20,0,cos 2,sin sin 2,cos sin 2πθπϕϕθϕθϕ≤≤≤≤===z y x因此,只要输入ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi}]便作出了方程为22222=++y x z 的球面(图2.3)..用于作空间曲线时,ParametricPlot3D 的基本格式为ParametricPlot3D[{x[t],y[t],z[t]},{t,t1,t2},选项]其中x[t],y[t],z[t]是曲线的参数方程表示式. t1,t2是作图时参数t 的范围.例如, 空间螺旋线的参数方程为).80(10/,sin ,cos π≤≤===t t z t y t x输入ParametricPlot3D[{Cos[t],Sin[t],t/10,RGBColor[1,0,0]},{t,0,8 Pi}]则输出了一条红色的螺旋线(图2.4).在这个例子中,请读者注意选项RGBColor[1,0,0]的位置.用于作空间曲线时, ParametricPlot3D 的选项PlotPoints 的默认值是30, 选项ViewPoint 的默 认值没有改变.3.作三维动画的命令MoviPlot3D:无论在平面或空间, 先作出一系列的图形, 再连续不断地放映, 便得到动画. 例如, 输入调用作图软件包命令<<Graphics\Animation.m.执行后再输入MoviePlot3D[Cos[t*x]*Sin[t*y],{x,-Pi,Pi},{y,-Pi,Pi},{t,1,2},Frames->12]则作出了12幅曲面图, 选中任一幅图形, 双击它便可形成动画.实验举例一般二元函数作图例2.1 (教材 例2.1) 作出平面y x z 326--=的图形,其中20,30≤≤≤≤y x . 输入Plot3D[6-2x-3y,{x,0,3},{y,0,2}]则输出所作平面的图形(图2.5).如果只要位于第一卦限的部分, 则输入Plot3D[6-2x-3y,{x,0,3},{y,0,2},PlotRange->{0,6}]观察图形.2.6).图2.6例2.2 (教材 例2.2) 作出函数2214y x z ++=的图形.输入k[x_,y_]:=4/(1+x^2+y^2)Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotPoints->30,PlotRange->{0,4},BoxRatios->{1,1,1}]则输出函数的图形2.7. 观察图形, 理解选项PlotRange->{0,4}和BoxRatios->{1,1,1}的含义. 选项 BoxRatios 的默认值是{1,1,0.4}.例2.3 (教材 例2.3) 作出函数22y x xye z ---=的图形. 输入命令Plot3D[-x*y*Exp[-x^2-y^2],{x,-3,3},{y,-3,3},PlotPoints->30,AspectRatio->Automatic];则输出所求图形(图 图2.8例2.4 (教材 例2.4) 作出函数)94cos(22y x z +=的图形. 输入Plot3D[Cos[4x^2+9y^2],{x,-1,1},{y,-1,1},Boxed->False,Axes->Automatic,PlotPoints->30,Shading->False]则输出网格形式的曲面图2.9, 这是选项Shading->False 起的作用, 同时注意选项Boxed->False 的作用.二次曲面例2.5 (教材 例2.5) 作出椭球面1194222=++z y x 的图形. 这是多值函数, 用参数方程作图的命令ParametricPlot3D. 该曲面的参数方程为,cos ,sin sin 3,cos sin 2u z v u y v u x === (ππ20,0≤≤≤≤v u ).输入ParametricPlot3D[{2*Sin[u]*Cos[v],3*Sin[u]*Sin[v], Cos[u]},{u,0,Pi},{v,0,2 Pi},PlotPoints->30]则输出椭球面的图形, 可使图形更加光滑.图2.10例2.6 (教材 例2.6) 作出单叶双曲面1941222=-+z y x 的图形. 曲面的参数方程为,tan 3,cos sec 2,sin sec u z v u y v u x === (.20,2/2/πππ≤≤<<-v u )输入ParametricPlot3D[{Sec[u]*Sin[v],2*Sec[u]*Cos[v], 3*Tan[u]},{u,-Pi/4,Pi/4},{v,0,2 Pi},PlotPoints->30]图2.11例2.7 作双叶双曲面13.14.15.1222222-=-+z y x 的图形.曲面的参数方程是,csc 3.1,sin cot 4.1,cos cot 5.1u z v u y v u x ===其中参数πππ<<-≤<v u ,20时对应双叶双曲面的一叶, 参数πππ<<-<≤-v u ,02时对应双叶双曲面的另一叶. 输入sh1=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4*Cot[u]*Sin[v],1.3/Sin[u]},{u,Pi/1000,Pi/2},{v,-Pi,Pi}, DisplayFunction->Identity];(*DisplayFunction->Identity 是使图形暂时不输出的选项*) sh2=ParametricPlot3D[{1.5*Cot[u]*Cos[v],1.4* Cot[u]*Sin[v],1.3/Sin[u]},{u,-Pi/2,-Pi/1000}, {v,-Pi,Pi},DisplayFunction->Identity];Show[sh1,sh2,DisplayFunction->$DisplayFunction](*命令Show[sh1,sh2]是把图形sh1,sh2放置在一起, DisplayFunction->$DisplayFunction 是恢复显示图形的选项*) 输出为图2.12.例2.8 可以证明: 函数xy z =的图形是双曲抛物面. 在区域22,22≤≤-≤≤-y x 上作出它的图形.输入Plot3D[x*y,{x,-2,2},{y,-2,2},BoxRatios->{1,1,2}, PlotPoints->30]输出图形略. 也可以用ParametricPlot3命令作出这个图形, 输入ParametricPlot3[{r*Cos[t],r*Sin[t],r^2*Cos[t] *Sin[t]},{r,0,2},{t,0,2 Pi},PlotPoints->30]输出为图2.13例2.9 (教材 例2.7) 作出圆环v z u v y u v x sin 7,sin )cos 38(,cos )cos 38(=+=+=,(πππ22/,2/30≤≤≤≤v u )的图形.输入ParametricPlot3D[{(8+3*Cos[v])*Cos[u],(8+3*Cos[v])*Sin[u],7*Sin[v]},{u,0,3*Pi/2},{v,Pi/2,2*Pi}];图2.14例2.10 画出参数曲面]2,001.0[],4,0[)5/2/ln(tan cos sin sin sin cos ∈∈⎪⎩⎪⎨⎧++===v u u v v z vu y v u x π的图形.输入命令ParametricPlot3D[{Cos[u]*Sin[v],Sin[u]Sin[v],Cos[v]+Log[Tan[v/2]+u/5]}, {u,0,4*Pi},{v,0.001,2}];则输出所求图形(图2.15).曲面相交例2.11 (教材 例2.8) 作出球面22222=++z y x 和柱面1)1(22=+-y x 相交的图形. 输入g1=ParametricPlot3D[{2 Sin[u]*Cos[v],2 Sin[u]*Sin[v],2 Cos[u]},{u,0,Pi},{v,0,2 Pi},DisplayFunction->Identity];g2=ParametricPlot3D[{2Cos[u]^2,Sin[2u],v},{u,-Pi/2,Pi/2},{v,-3,3},DisplayFunction->Identity];Show[g1,g2,DisplayFunction->$DisplayFunction]则输出所求图形(图2.16)例2.12 作出锥面222z y x =+和柱面1)1(22=+-y x 相交的图形. 输入g3=ParametricPlot3D[{r*Cos[t],r*Sin[t],r}, {r,-3,3},{t,0,2 Pi},DisplayFunction->Identity];Show[g2,g3,DisplayFunction->$DisplayFunction]输出为图2.17.图2.17例2.13 画出以平面曲线x y cos =为准线, 母线平等Z 轴的柱面的图形. 写出这一曲面的参数方程为⎪⎩⎪⎨⎧=∈-∈==s z R s t t y t x ],,[,cos ππ 取参数s 的范围为[0, 8]. 输入命令ParametricPlot3D[{t,Cos[t],s},{t,-Pi,Pi},{s,0,8}]则输出所求图形(图2.18).例2.14 (教材 例2.9) 作出曲面x y x y x z =+--=2222,1及xOy 面所围成的立体图形. 输入g1=ParametricPlot3D[{r*Cos[t], r*Sin[t],r^2},{t,0,2*Pi},{r,0,1},PlotPoints->30]; g2=ParametricPlot3D[{Cos[t]*Sin[r],Sin[t]Sin[r],Cos[r]+1},{t,0,2*Pi},{r,0,Pi/2},PlotPoints->30];Show[g1,g2]则输出所求图形(图图2.19例2.15 (教材 例2.10) 作出螺旋线t z t y t x 2,sin 10,cos 10===(R t ∈)在xOz 面上的正投影曲线的图形.所给螺旋线在xOz面上的投影曲线的参数方程为10==.,cosx2ztt输入ParametricPlot[{2t,10Cos[t]},{t,-2Pi,2Pi}];则输出所求图形(图图2.20注:将表示曲线的方程组, 消去其中一个变量, 即得到曲线在相应于这一变量方向上的正投影曲线的方程, 不考虑曲线所在平面, 它就是投影柱面方程; 对于参数方程, 只要注意将方程中并不存在的那个变元看成第二参数而添加第三个方程即可.例2.16 (教材例2.11) 作出默比乌斯带(单侧曲面)的图形.输入Clear[r,x,y,z];r[t_,v_]:=2+0.5*v*Cos[t/2];x[t_,v_]:=r[t,v]*Cos[t]y[t_,v_]:=r[t,v]*Sin[t]z[t_,v_]:=0.5*v*Sin[t/2];ParametricPlot3D[{x[t,v],y[t,v],z[t,v]},{t,0,2 Pi},{v,-1,1},PlotPoints->{40,4},Ticks->False]则输出所求图形(图空间曲线例2.17 (教材 例2.12) 作出空间曲线)60(2,sin ,cos π≤≤===t t z t t y t t x 的图形. 输入ParametricPlot3D[{t*Cos[t],t*Sin[t],2*t,RGBColor[1.0,0,0.5]},{t,0,6 Pi}]则输出所求图形(图图2.22例2.18 绘制参数曲线 ⎪⎩⎪⎨⎧===2/cos 2sin t z t y t x 的图形.输入命令ParametricPlot3D[{Sin[t],2Cos[t],t.2},{t,0,12}];则输出所求图形(图2.23).例2.19 绘制参数曲线 ⎪⎪⎩⎪⎪⎨⎧=+==t z t y t x arctan 211cos 2的图形.输入命令ParametricPlot3D[{Cos[t]^2,1/(1+2*t),ArcTan[t]},{t,0,8}]; 则输出所求图形(图2.24).动画制作例2.20 平面正弦曲线的运动. 输入Table[Plot[Sin[x+t*Pi],{x,0,6 Pi}],{t,0,2,1/8}]则作出了16幅具有不同相位的正弦曲线(输出图形略). 双击屏幕上某一幅画, 则可形成动画. 下面是动画的最后一幅图(图2.25).例2.21 (教材 例2.13) 作模拟水波纹运动的动画. 输入调用软件包命令<<Graphics\Animation.m执行后再输入MoviePlot3D[Sin[Sqrt[x^2+y^2]+t*2*Pi],{x,-8 Pi,8 Pi},{y,-8 Pi,8 Pi},{t,1,0},PlotPoints->50,AspectRatio->0.5,ViewPoint->{0.911,-1.682,2.791},Frames->12]则输出12幅具有不同相位的水面图形, 双击屏幕上任意一幅图, 均可观察动画效果. 下图是第一幅图(图2.26).图2.26例2.22 (教材 例2.14) 用动画演示由曲线],0[,sin π∈=z z y 绕z 轴旋转产生旋转曲面的过程.该曲线绕z 轴旋转所得旋转曲面的方程为,sin 222z y x =+ 其参数方程为])2,0[],,0[(,,sin sin ,cos sin ππ∈∈===u z z z u z y u z x输入For[i=1,i<=30,i++,ParametricPlot3D[{Sin[z]*Cos[u],Sin[z]*Sin[u],z},{z,0,Pi},{u,0,2*Pi*i/30},AspectRatio->1,AxesLabel->{"X","Y","Z"}]];则输出连续变化的30幅图形. 双击屏幕上任意一幅图, 均可观察动画效果. 下面是生成旋转曲面的过程中的第23幅图(图2.27).图2.27例2.23 将一张薄膜贴在1,0,1,0====y y x x 的方框上, 薄膜振动的函数取为)cos()sin()sin()cos 1)(cos 1(16),,(224141222t n m y m x n m n n m t y x u m n ππππππ+⋅-+=∑∑==其中t 为参数, 作出图形随t 的变动而引起薄膜振动的动画.初始位置是).0,,(y x u 通过t 的不同值得到多幅画面, 然后将这些图形连续地一张张显示出来, 即可达到运动的动画效果. 输入命令<<Graphics 'Animation '; Clear[x,y,t,m,n];u[x_,y_,t_]:=Sum[16*(1+Cos[n*Pi])*(1-Cos[m*Pi])*Sin[n*Pi*x]*Sin[m*Pi*y]*Cos[Sqrt[m^2+n^2]*Pi*t] /(m^2*n^2*Pi*2),{m,1,4},{n,1,4}]Animate[Plot3D[u[x,y,t],{x,0,1},{y,0,1}, PlotRange->{-8,8}],{t,0,1.75,0.25}];图2.28附录Ⅰ 大学数学实验指导书项目三 多元函数微积分实验1 多元函数微分学(基础实验)实验目的 掌握利用Mathematica 计算多元函数偏导数和全微分的方法, 掌握计算二元 函数极值和条件极值的方法. 理解和掌握曲面的切平面的作法. 通过作图和观察, 理解二元 函数的性质、方向导数、梯度和等高线的概念.基本命令1.求偏导数的命令D命令D 既可以用于求一元函数的导数, 也可以用于求多元函数的偏导数. 例如: 求),,(z y x f 对x 的偏导数, 则输入D[f[x,y,z],x] 求),,(z y x f 对y 的偏导数, 则输入D[f[x,y,z],y]求),,(z y x f 对x 的二阶偏导数, 则输入D[f[x,y,z],{x,2}] 求),,(z y x f 对y x ,的混合偏导数, 则输入D[f[x,y,z],x,y] …………2.求全微分的命令Dt该命令只用于求二元函数),(y x f 的全微分时, 其基本格式为Dt[f[x,y]]其输出的表达式中含有Dt[x],Dt[y], 它们分别表示自变量的微分d x ,d y . 若函数),(y x f 的表 达式中还含有其它用字符表示的常数, 例如a, 则Dt[f[x,y]]的输出中还会有Dt[a], 若采用选 项Constants->{a}, 就可以得到正确结果, 即只要输入Dt[f[x,y],Constants->{a}]3.在Oxy 平面上作二元函数),(y x f 的等高线的命令ContourPlot 命令的基本格式为ContourPlot[f[x,y],{x,x1,x2},{y,y1,y2}]例如,输入ContourPlot[x^2-y^2,{x,-2,2},{y,-2,2}]则输出函数22y x z -=的等高线图(图1.1). 该命令的选项比较多(详细的内容参见光盘中的实验案例库). 如选项Contours->15表示作15条等高线, 选项Contours->{0}表示只作函数值为0的等高线.实验举例求多元函数的偏导数与全微分例1.1 (教材 例1.1) 设),(cos )sin(2xy xy z +=求.,,,222yx zx z y z x z ∂∂∂∂∂∂∂∂∂输入Clear[z];z=Sin[x*y]+Cos[x*y]^2; D[z,x] D[z,y] D[z,{x,2}] D[z,x,y]则输出所求结果.y Cos x y2y Cos x y Sin x yx Cos x y 2x Cos x y Sin x y2y 2Cos x y 2y 2Sin x y 2y 2Sin x y2Cos x y 2x y Cos x y 2x y Sin x y 2Cos x y Sin x y2x y Sin x y2例1.2 设,)1(y xy z +=求yzx z ∂∂∂∂,和全微分dz.输入Clear[z];z=(1+x*y)^y;D[z,x] D[z,y]则有输出⎪⎪⎭⎫ ⎝⎛++++++-]1[1)1()1(12xy Log xy xy xy xy y y y再输入Dt[z]则得到输出⎪⎪⎭⎫⎝⎛+++++]1[][1])[][()1(xy Log y Dt xy y xDt x yDt y xy y 例1.3 (教材 例1.2) 设,)(y xy a z +=其中a 是常数, 求dz.输入Clear[z,a];z=(a+x*y)^y;wf=Dt[z,Constants->{a}]//Simplify则输出结果:(a+xy)-1+y (y 2Dt[x,Constants->{a}]+Dt[y,Constants->{a}](xy+(a+xy)Log[a+xy]))其中Dt[x,Constants->{a}]就是d x , Dt[y,Constants->{a}]就是d y . 可以用代换命令“/.”把它们 换掉. 输入wf/.{Dt[x,Constants->{a}]->dx,Dt[y,Constants->{a}]->dy}输出为(a+xy)-1+y (dxy 2+dy(xy+(a+xy)Log[a+xy]))例1.4 (教材 例1.3) 设v u e y v u e x u u cos ,sin -=+=,求.,,,yv x v y u x u ∂∂∂∂∂∂∂∂ 输入eq1=D[x==E^u+u*Sin[v],x,NonConstants->{u,v}](*第一个方程两边对x 求导数, 把u,v 看成x,y 的函数*) eq2=D[y==E^u-u*Cos[v],x,NonConstants->{u,v}](*第二个方程两边对x 求导数, 把u,v 看成x,y 的函数*) Solve[{eq1,eq2},{D[u,x,NonConstants->{u,v}],D[v,x,NonConstants->{u,v}]}]//Simplify(*解求导以后由eq1,eq2组成的方程组*)则输出}}][][1(][}],{tan ,,[,][][1][}],{tan ,,[{{v Sin E v Cos E u v Cos E v u ts NonCons x v D v Sin E v Cos E v Sin v u ts NonCons x u D u u u u u -+-->->-+->->-其中D[u,x,NonConstants->{u,v}]表示u 对x 的偏导数, 而D[v,x,NonCosnstants->{u,v}]表示v 对x 的偏导数. 类似地可求得u ,v 对y 的偏导数.微分学的几何应用例1.5 求出曲面222y x z +=在点(1,1)处的切平面、法线方程, 并画出图形.解(1) 画出曲面的图形. 曲面的参数方程为⎪⎩⎪⎨⎧=∈∈==2]2,0[],2,0[,cos 2/sin rz r u u r y u f x π 输入命令Clear[f];f[x_,y_]=2x^2+y^2;p1=Plot3D[f[x,y],{x,-2,2},{y,-2,2}];g1=ParametricPlot3D[{r*Sin[u]/Sqrt[2.],r*Cos[u],r^2}, {u,0,2*Pi},{r,0,2}] 则输出相应图形(图1.2).(2) 画出切平面的图形. 输入命令a=D[f[x,y],x]/.{x->1,y->1}; b=D[f[x,y],y]/.{x->1,y->1}; p[x_,y_]=f[1,1]+a(x-1)+b(y-1);g2=Plot3D[p[x,y],{x,-2,2},{y,-2,2}];则输出切平面方程为,012=-+y x 及相应图形(图1.3).(3) 画出法线的图形. 输入命令ly[x_]=1+b(x-1)/a;lz[x_]=f[1,1]-(x-1)/a;g3=ParametricPlot3D[{x,ly[x],lz[x]},{x,-2,2}]; Show[p1,g2,g3,AspectRatio->Automatic,ViewPoint->{-2.530,-1.025,2.000}];则输出相应图形(图1.4).例1.6 (教材 例1.4) 求曲面14),(22++=y x y x k 在点⎪⎭⎫⎝⎛2164,21,41处的切平面方程, 并把曲面和它的切平面作在同一图形里.输入Clear[k,z];k[x_,y_]=4/(x^2+y^2+1); (*定义函数k(x,y)*)kx=D[k[x,y],x]/.{x->1/4,y->1/2};(*求函数k(x,y)对x 的偏导数, 并代入在指定点的值*) ky=D[k[x,y],y]/.{x->1/4,y->1/2};(*求函数k(x,y)对y 的偏导数, 并代入在指定的值*) z=kx*(x-1/4)+ky*(y-1/2)+k[1/4,1/2]; (*定义在指定点的切平面函数*)再输入qm=Plot3D[k[x,y],{x,-2,2},{y,-2,2},PlotRange->{0,4}, BoxRatios->{1,1,1},PlotPoints->30, DisplayFunction->Identity]; qpm=Plot3D[z,{x,-2,2},{y,-2,2}, DisplayFunction->Identity];Show[qm,qpm,DisplayFunction->$DisplayFunction]则输出所求曲面与切平面的图形(图1.5).多元函数的极值例1.7 (教材 例1.5) 求x y x y x y x f 933),(2233-++-=的极值. 输入Clear[f];f[x_,y_]=x^3-y^3+3x^2+3y^2-9x; fx=D[f[x,y],x] fy=D[f[x,y],y]critpts=Solve[{fx==0,fy==0}]则分别输出所求偏导数和驻点:2236369y y x x -++-{{x->-3,y->0},{x->-3,y->2},{x->1,y->0},{x->1,y->2}}再输入求二阶偏导数和定义判别式的命令fxx=D[f[x,y],{x,2}]; fyy=D[f[x,y],{y,2}]; fxy=D[f[x,y],x,y]; disc=fxx*fyy-fxy^2输出为判别式函数2xy yy xx f f f -的形式:(6+6x)(6-6y)再输入data={x,y,fxx,disc,f[x,y]}/.critpts;TableForm[data,TableHeadings->{None,{ "x ", "y ", "fxx ", "disc ", "f "}}]最后我们得到了四个驻点处的判别式与xx f 的值并以表格形式列出.X y fxx disc f -3 0 -12 -72 27 -3 2 -12 72 31 1 0 12 72 -51 2 12 -72 -1易见,当2,3=-=y x 时,12-=xx f 判别式disc=72, 函数有极大值31; 当0,1==y x 时,12=xx f 判别式disc=72, 函数有极小值-5;当0,3=-=y x 和2,1==y x 时, 判别式disc=-72, 函数在这些点没有极值. 最后,把函数的等高线和四个极值点用图形表示出来,输入d2={x,y}/.critpts;g4=ListPlot[d2,PlotStyle->PointSize[0.02],DisplayFunction->Identity]; g5=ContourPlot[f[x,y],{x,-5,3},{y,-3,5},Contours->40,PlotPoints->60,ContourShading->False,Frame->False,Axes->Automatic,AxesOrigin->{0,0},DisplayFunction->Identity];Show[g4,g5,DisplayFunction->$DisplayFunction]则输出图1.6.从上图可见, 在两个极值点附近, 函数的等高线为封闭的. 在非极值点附近, 等高线不 封闭. 这也是从图形上判断极值点的方法.注:在项目一的实验4中,我们曾用命令FindMinimum 来求一元函数的极值, 实际上,也可 以用它求多元函数的极值, 不过输入的初值要在极值点的附近. 对本例,可以输入以下命令FindMinimum[f[x,y],{x,-1},{y,1}]则输出{-5.,{x->1.,y->-2.36603×10-8}}从中看到在0,1==y x 的附近函数),(y x f 有极小值-5, 但y 的精度不够好.例1.8 求函数22y x z +=在条件0122=-+++y x y x 下的极值. 输入Clear[f,g,la]; f[x_,y_]=x^2+y^2;g[x_,y_]=x^2+y^2+x+y-1; la[x_,y_,r_]=f[x,y]+r*g[x,y]; extpts=Solve[{D[la[x,y,r],x]==0,D[la[x,y,r],y]==0,D[la[x,y,r],r]==0}]得到输出⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+->-+->-+->-⎩⎨⎧⎭⎬⎫⎩⎨⎧-->--->--->-)31(21),31(21),33(31,)31(21),31(21),33(31y x r y x r再输入f[x,y]/.extpts//Simplify得到两个可能是条件极值的函数值}.32,32{-+但是否真的取到条件极值呢? 可利用等高线作图来判断.输入dian={x,y}/.Table[extpts[[s,j]],{s,1,2},{j,2,3}] g1=ListPlot[dian,PlotStyle->PointSize[0.03],DisplayFunction->Identity]cp1=ContourPlot[f[x,y],{x,-2,2},{y,-2,2},Contours->20,PlotPoints->60,ContourShading->False,Frame->False,Axes-> Automatic,AxesOrigin->{0,0},DisplayFunction->Identity]; cp2=ContourPlot[g[x,y],{x,-2,2},{y,-2,2},PlotPoints->60,Contours->{0},ContourShading-> False,Frame->False,Axes->Automatic,ContourStyle->Dashing[{0.01}],AxesOrigin->{0,0},DisplayFunction->Identity]; Show[g1,cp1,cp2,AspectRatio->1,DisplayFunction->$DisplayFunction]输出为⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧+-+-⎪⎭⎪⎬⎫⎪⎩⎪⎨⎧----)31(21,2321,)31(21,2321 及图1.7. 从图可见,在极值可疑点,2321,2321⎪⎪⎭⎫ ⎝⎛----⎪⎪⎭⎫ ⎝⎛+-+-2321,2321 处, 函数),(y x f z =的等高线与曲线0),(=y x g (虚线)相切. 函数),(y x f z =的等高线是一系列同心圆, 由里向外, 函数值在增大, 在)31(21),31(21--=--=y x 的附近观察, 可以得出),(y x f z =取条件极大的结论. 在),31(21+-=x )31(21+-=y 的附近观察, 可以得出),(y x f z =取条件极小的结论.梯度场例1.9 画出函数222),,(y x z z y x f --=的梯度向量. 解 输入命令<<Graphics`ContourPlot3D` <<Graphics`PlotField3D` <<Calculus`VectorAnalysis`SetCoordinates[Cartesian[x,y,z]];f=z^2-x^2-y^2;cp3d=ContourPlot3D[f,{x,-1.1,1.1},{y,-1.1,1.1},{z,-2,2},Contours->{1.0},Axes->Tr ue,AxesLabel->{"x","y","z"}];vecplot3d=PlotGradientField3D[f,{x,-1.1,1.1},{y,-1.1,1.1},{z,-2,2},PlotPoints->3,Ve ctorHeads->True];Show[vecplot3d, cp3d];则输出相应图形(图1.8)例1.10 在同一坐标面上作出⎪⎪⎭⎫⎝⎛++=2211),(y x x y x u 和 ,11),(22⎪⎪⎭⎫⎝⎛+-=y x y y x v 的等高线图(0>x ), 并给出它们之间的关系.解 输入命令<<Calculus`VectorAnalysis` <<Graphics`PlotField`SetCoordinates[Cartesian[x,y,z]];check[u_,v_]:={Grad[u][[1]]-Grad[v][[2]],Grad[v][[1]]+Grad[u][[2]]} u=x(1+1/(x^2+y^2));v=y(1-1/(x^2+y^2)); check[u,v]//Simplifyugradplot=PlotGradientField[u,{x,-2,2},{y,-2,2},DisplayFunction->Identity];uplot=ContourPlot[u,{x,-2,2},{y,-2,2},ContourStyle->GrayLevel[0],ContourShading->False,DisplayFunction->Identity,Contours->40,PlotPoints->40]; g1=Show[uplot,ugradplot,DisplayFunction->$DisplayFunction];vgradplot=PlotGradientField[v,{x,-2,2},{y,-2,2},DisplayFunction->Identity];vplot=ContourPlot[v,{x,-2,2},{y,-2,2},ContourStyle->GrayLevel[0.7],ContourShading->False,DisplayFunction->Identity,Contours->40,PlotPoints->40]; g2=Show[vplot,vgradplot,DisplayFunction->$DisplayFunction]; g3=Show[uplot,vplot,DisplayFunction->$DisplayFunction];g4=Show[ugradplot,vgradplot,DisplayFunction->$DisplayFunction];则输出相应图形(图1.9),其中(a) ),(y x u 的梯度与等高线图;(b) ),(y x v 的梯度与等高线图; (c) ),(y x u 与),(y x v 的等高线图; (d) ),(y x u 与),(y x v 的梯度图.图1.9从上述图中可以看出它们的等高线为一族正交曲线. 事实上, 有,,2222x v y x x y u y v y x x x u ∂∂-=+=∂∂∂∂=+=∂∂ 且,0=∇⋅∇v u 它们满足拉普拉斯方程022222222=∂∂+∂∂=∂∂+∂∂y vx v y u x u 例1.11 (教材 例1.6) 设,),()(22y x xe y x f +-=作出),(y x f 的图形和等高线, 再作出它的梯度向量gradf 的图形. 把上述等高线和梯度向量的图形叠加在一起, 观察它们之间的关系.输入调用作向量场图形的软件包命令<<Graphics\PlotField.m再输入Clear[f];f[x_,y_]=x*Exp[-x^2-y^2];dgx=ContourPlot[f[x,y],{x,-2,2},{y,-2,2},PlotPoints->60, Contours->25,ContourShading->False,Frame->False,Axes->Automatic,AxesOrigin->{0,0}] td=PlotGradientField[f[x,y],{x,-2,2},{y,-2,2},Frame->False] Show[dgx,td]输出为图1.10. 从图可以看到Oxy 平面上过每一点的等高线和梯度向量是垂直的, 且梯度的 方向是指向函数值增大的方向图1.10例1.12 求出函数244),(y xy x y x f +-=的极值, 并画出函数),(y x f 的等高线、驻点以及),(y x f -的梯度向量的图形.输入命令<<Graphics`PlotField`f=x^4-4*x*y+y^2;FindMinimum[f,{x,1},{y,1}]conplot=ContourPlot[f,{x,-2,2},{y,-3,3},ContourShading->False,PlotPoints->100,Contours->{-4,-2,0,2,4,10,20}];fieldplot=PlotGradientField[-f,{x,-2,2},{y,-3,3},ScaleFunction->(Tanh[#/5]&)];critptplot=ListPlot[{{-Sqrt[2],-2*Sqrt[2]},{0,0},{Sqrt[2],2*Sqrt[2]}},PlotStyle->{PointSize [0.03]}];Show[conplot,fieldplot,critptplot];则得到),(y x f 的最小值.4)82843.2,41421.1(-=f 以及函数的图形(图1.11).实验习题 1.设,xy e z =求.dz2.设),,(y xy f z =求.,,22222y x zy z x z ∂∂∂∂∂∂∂ 3.设),sin (cos ),(228/)(22y x e y x g y x+=+-求.,,2yx z y z x z ∂∂∂∂∂∂∂ 4.试用例1.5的方法求265433051830120),(xy x x x x y x f +++--=的极值. 5.求324y x z +=在01422=-+y x 条件下的极值.6.作出函数42210/)2(),(y x e y x f +-=的等高线和梯度线的图形, 并观察梯度线与等高线的 关系.实验2 多元函数积分学(基础实验)实验目的掌握用Mathematica 计算二重积分与三重积分的方法; 深入理解曲线积分、曲面积分的 概念和计算方法. 提高应用重积分和曲线、曲面积分解决各种问题的能力.基本命令1. 计算重积分的命令lntegrate 和NIntegrate 例如,计算dydx xy x ⎰⎰102, 输入Integrate[x*y^2,{x,0,1},{y,0,x}]则输出 151又如,计算dydx xy )sin(10102⎰⎰的近似值, 输入NIntegrate[Sin[x*y^2],{x,0,1},{y,0,1}] 则输出 0.160839注: Integrate 命令先对后边的变量积分.计算三重积分时,命令Integrate 的使用格式与计算二重积分时类似. 由此可见, 利用 Mathematica 计算重积分, 关键是确定各个积分变量的积分限. 2. 柱坐标系中作三维图形的命令CylindricalPlot3D使用命令Cylindricalplot3D, 首先要调出作图软件包. 输入 <<Graphics`ParametricPlot3D` 执行成功后便可继续下面的工作.使用命令Cylindricalplot3D 时,一定要把z 表示成r ,θ的函数. 例如,在直角坐标系中方 程22y x z +=是一旋转抛物面, 在柱坐标系中它的方程为2r z =. 因此,输入 CylindricalPlot3D[r^2,{r,0,2},{t,0,2Pi}] 则在柱坐标系中作出了该旋转抛物面的图形.3. 球面坐标系中作三维图形命令SphericalPlot3D使用命令SphericalPlot3D, 首先要调出作图软件包. 输入 <<Graphics`ParametricPlot3D` 执行成功后便可继续下面的工作.命令SphericalPlot3D 的基本格式为SphericalPlot3D[r[],θϕ, {}],,{},,,2121θθθϕϕϕ其中r[],θϕ是曲面的球面坐标方程, 使用时一定要把球面坐标中的r 表示成ϕ、θ的函数. 例如,在球面坐标系中作出球面,22222=++z y x 输入Sphericalplot3D[2,{u,0,pi},|v,0,2,pi|,plotpoints->40]则在球面坐标系中作出了该球面的图形. 4. 向量的内积用“.”表示两个向量的内积. 例如,输入 vecl={al,bl,cl} vec2={a2,b2,c2} 则定义了两个三维向量, 再输入 vec1. vec2 则得到它们的内积a1a2+b1b2+c1c2实验举例计算重积分例2.1 (教材 例2.1) 计算,2dxdy xyD⎰⎰ 其中D 为由,,2y x y x ==+ 2=y 所围成的有界区域.先作出区域D 的草图, 易直接确定积分限,且应先对x 积分, 因此, 输入 Integrate[x*y^2,{y,1,2},{x,2-y,Sqrt[y]}] 则输出所求二重积分的计算结果.120193例2.2 (教材 例2.2) 计算,)(22dxdy e Dy x⎰⎰+- 其中D 为.122≤+y x如果用直角坐标计算, 输入Clear[f,r];f[x,y]=Exp [-(x^2+y^2)];Integrate[f[x,y],{x,-1,1},{y,-Sqrt[1-x^2],Sqrt[1-x^2]}]则输出为dx x 1Erf e 211x 2⎥⎦⎤⎢⎣⎡-π⎰--其中Erf 是误差函数. 显然积分遇到了困难.如果改用极坐标来计算, 也可用手工确定积分限. 输入Integrate[(f[x,y]/.{x->r*Cos[t],y->r*Sin[t]})*r,{t,0,2 Pi},{r,0,1}] 则输出所求二重积分的计算结果eπ-π 如果输入NIntegrate[(f[x,y]/.{x->r*Cos[t],y->r*Sin[t]})*r,{t,0,2 Pi},{r,0,1}] 则输出积分的近似值1.98587例 2.3 (教材 例 2.3) 计算dxdydz z y x)(22++⎰⎰⎰Ω, 其中Ω由曲面222y x z --=与22y x z +=围成.先作出区域Ω的图形. 输入g1=ParametricPlot3D[{Sqrt[2]*Sin[fi]*Cos[th],Sqrt[2]*Sin[fi]*Sin[th], Sqrt[2]*Cos[fi]},{fi,0,Pi/4},{th,0,2Pi}] g2=ParametricPlot3D[{z*Cos[t],z*Sin[t],z},{z,0,1},{t,0,2Pi}] Show[g1,g2,ViewPoint->{1.3,-2.4,1.0}]则分别输出三个图形(图2.1(a), (b), (c)).考察上述图形, 可用手工确定积分限. 如果用直角坐标计算, 输入 g[x_,y_,z_]=x^2+y^2+z;Integrate[g[x,y,z],{x,-1,1},{y,-Sqrt[1-x^2], Sqrt[1-x^2]},{z,Sqrt[x^2+y^2],Sqrt[2-x^2-y^2]}] 执行后计算时间很长, 且未得到明确结果.现在改用柱面坐标和球面坐标来计算. 如果用柱坐标计算,输入Integrate[(g[x,y,z]/.{x->r*Cos[s],y->r*Sin[s]})*r, {r,0,1},{s,0,2Pi},{z,r,Sqrt[2-r^2]}]则输出π⎪⎪⎭⎫⎝⎛+-15281252 如果用球面坐标计算,输入Integrate[(g[x,y,z]/.{x->r*Sin[fi]*Cos[t],y->r*Sin[fi]*Sin[t],z->r*Cos[fi]})*r^2*Sin[fi],{s,0,2Pi},{fi,0,Pi/4},{r,0,Sqrt[2]}]则输出π⎪⎪⎭⎫ ⎝⎛+-321662551这与柱面坐标的结果相同.重积分的应用例2.4 求由曲面()y x y x f --=1,与()222,y x y x g --=所围成的空间区域Ω的体积.输入Clear[f,g];f[x_,y_]=1-x -y;g[x_,y_]=2-x^2-y^2;Plot3D[f[x,y],{x,-1,2},{y,-1,2}] Plot3D[g[x,y],{x,-1,2},{y,-1,2}] Show[%,%%]一共输出三个图形,首先观察到Ω的形状. 为了确定积分限, 要把两曲面的交线投影到Oxy 平面上输入 jx=Solve[f[x,y]==g[x,y],y] 得到输出 ⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧⎪⎭⎫ ⎝⎛-++→⎭⎬⎫⎩⎨⎧⎪⎭⎫ ⎝⎛-+-→22445121,445121x x y x x y为了取出这两条曲线方程, 输入 y1=jx[[1,1,2]] y2=jx[[2,1,2]] 输出为⎪⎭⎫ ⎝⎛-+-2445121x x⎪⎭⎫ ⎝⎛-++2445121x x再输入tu1=Plot[y1,{x,-2,3},PlotStyle->{Dashing[{0.02}]},DisplayFunction->Identity];tu2=Plot[y2,{x,-2,3},DisplayFunction->Identity]; Show[tu1,tu2,AspectRatio->1, DisplayFunction-> $DisplayFunction]输出为图2.2, 由此可见,y 是下半圆(虚线),y 是上半圆,因此投影区域是一个圆.设21y y =的解为1x 与2x ,则21,x x 为x 的积分限. 输入 xvals=Solve[y1==y2,x]输出为 ()()⎭⎬⎫⎩⎨⎧⎭⎬⎫⎩⎨⎧+→⎭⎬⎫⎩⎨⎧-→6121,6121x x 为了取出21,x x , 输入x1=xvals[[1,1,2]]x2=xvals[[2,1,2]]输出为()6121- ()6121+。
Mathematica软件使用入门讲解
Mathematica软件使用入门目录第一章基本知识与基本操作 (3)1.1 Mathematica的基本语法特征 (3)1.2 Mathematica的启动、基本操作 (4)1.3 操作小技巧 (7)1.4 数值计算 (8)1.5 赋值与替换 (9)1.6 自定义函数 (10)1.7 方程与方程组解 (11)1.8 解不等式与不等式组 (12)1.9 由递推式求数列的通项公式 (13)1.10 作函数图像 (14)第二章运用Mathematica实现高等数学中的基本运算 (16)2.1 求极限运算 (16)2.2 求导数与微分 (18)2.3 求不定积分 (25)2.4 求定积分 (25)第三章实验练习题 (28)Mathematica是当今世界上最为流行的计算机代数系统之一.Mathematica系统是美国物理学家Stephen.Wolfram领导的一个小组开发的,后来他们成立了Wolfram研究公司.1987年推出了系统的1.0版;现在的最新版本是8.0版.Mathematica可以做:●符号计算和数值计算问题,如:能做多项式的计算、因式分解和展开等;●做各种有理式计算,求多项式、有理式方程和超越方程的精确解和近似解;●做向量、矩阵的各种计算;●求极限、导数、积分,做幂级数展开,求解某些微分方程等;●做任意位数的整数或分子分母为任意大整数的有理数的精确计算,做具有任意位精度的数值(实、复数值)的计算.●可以很方便地画出用各种方式表示的一元和二元函数的图形,通过图形,可以立即形象地掌握函数的某些特性,而这些特性一般是很难从函数的符号表达式中看清楚.第一章 基本知识与基本操作1.1 Mathematica 的基本语法特征使用Mathematica ,一定要牢牢记住:● Mathematica 中大写小写是有区别的,如Name 、name 、NAME 等是不同的变量名或函数名;● 系统所提供的功能大部分以系统函数的形式给出, 内部函数一般写全称, 而且一定是以大写英文字母开头, 如Sin[x], Cos[z]等;● 乘法即可以用*,又可以用空格表示,如2 3=2*3=6 , 2 Sin[x]=2* Sin[x] ● 乘幂可以用“^”表示,如x^0.5 表示: Tan[x]^y 表示: ● 自定义的变量可以取几乎任意的名称,长度不限,但不可以数字开头. ● 当你赋予变量任何一个值,除非你:明显地改变该值或 使用Clear[变量名] 或 使用“变量名=.”取消该值,否则它将始终保持原值不变.● 一定要注意四种括号的用法:0.5x yTan[x]( ):表示项的结合顺序,如: (x+(y^x+1/(2x)));[ ]:表示函数,如:Log[x], Sin[x];{ }:表示一个“表”(即是一组数字、或任意表达式、或函数等的一个有序集合),如:{2x,Sin[12 Pi],A,1}, {1+A,y*x,1,2};[[ ]]:双方括号表示“表”或“表达式”的下标,如:a; {3,5,7}[[2]]=5.a[[2,3]]表示:23●Mathematica的语句书写十分方便,一个语句可以分为多行写,同一行可以写多个语句(但要以分号间隔).●当语句以分号结束时,语句计算后不做输出(输出语句除外),否则将输出计算的结果.●Mathematica命令中的标点符号必须是英文的.1.2 Mathematica的启动、基本操作1.2.1 启动“Mathematica”:在windows操作系统中安装了Mathematica后,与其他的常用软件一样,可从“开始”→“程序”→“Mathematica5” Mathematica的主窗口并出现第一个notebook窗口(Untitled-1):1.2.2 简单使用:例1.1 计算+33的值①在“Untitled-1”窗口中输入:329/412+3^3②按下“Shift+Enter”(或数字键盘上的Enter键),就得到计算结果:其中“In[1]:=”是Mathematica自动加上的,表示第一个输入;“Out[1]:=”表示第一个输出.一般地:In[n]:= 表示第n个输入Out[n]:=表示第n个输出.注意:“In[n]:=”自动加上的,不能人工输入!1.2.3 保存结果:保存方法同一般的Windows软件:“文件”→“保存”⇒“另存为”窗口→在“查找范围”内找到目标文件夹→输入文件名(比如输入“1”)→“”.Mathematica 4或Mathematica 5的文件的后缀是“nb”,当输入“1”时,即产生文件“1.nb”.1.2.4打开文件1.nb启动Mathematica →“文件”→“打开”⇒打开”窗口:→在“查找范围”内找到文件“1.nb”→“”即可.1.2.5 退出Mathematica :与一般应用软件一样,单击右上方的“ ”按钮(或用菜单:“文件”→“退出”).1.3 操作小技巧1.3.1 Ctrl+K 的用途如果只知道命令的首写字母, 可在输入该首写字母(要大写),再按下“Ctrl+K ”组合键, 则所有以该字母为首的命令都列出来,只要用鼠标双击命令名就输入了该命令. 1.3.2 使用前面已有的结果 举例如下:例1.2 做如下操作:① 输入:Integrate[x^2*(11-Sin[x]),{x,-1,1}]按:“Shift +Enter ”; ② 输入:%+1,按:“Shift +Enter ”; ③ 输入:%+1,按:“Shift +Enter ”; ④ 输入:%1+1,按:“Shift +Enter ”; ⑤ 输入:%3+1,按:“Shift +Enter ”, 计算结果如下:Integrate[f,x]是求:()f x dx ⎰ Integrate[f,{x,xmin,xmax}]是求:maxmin()x x f x dx ⎰可见,“%”表示前一个计算结果;“%n”表示第n个计算结果.1.3.3删除行:见下图示1.4 数值计算请看下例:只要选定且删除此即可系统默认的计算结果,是精确的.N[],取近似值函数,默认输出6位有效数字.N[],取近似值函数,指定输出3位有效数字.1.5 赋值与替换X=. 或Clear[x] 清除赋给x的值expr/.{x->xval,y->yval} 用xval、yval分别替换expr中的x、y.例1.3输入:x=3;y=4;w=x+y 计算输入:Clear[x,y];计算输入:z=(x+y)^2 计算输入:z/.x->5 计算输入:Clear[x,y];计算输入:u=x+y 计算将(x+y)^2赋给z清除变量的定义和值变量替换:用5代替表达式z中的变量变量替换:输入:u/.{x->5,y->6} 计算 计算结果如下:1.6 自定义函数用户可以自行定义函数,一个函数一旦被定义好之后就可以象系的内部函数一样使用.例1.4 如要定义函数f(x)=x 2+3x-2只要键入:f[x_]:=x^2+3x-2即可.又如要定义分段函数2+1 < 0()= 2sin 0x x g x x x ⎧⎨≥⎩“:=”是定义符.左边f 是函数名,方括号内x 是自变量,其后的下划线“_”不能少.右边是函数的表达式.可键入:g[x_]:= Which[x<0,x^2+1,x>=0,2Sin[x]]或g[x_]:=If[x<0,x^2+1,2Sin[x]]请见以下计算结果:1.7 方程与方程组解例1.5 ① 解方程:0652=+-x x输入:Solve[x^2-5x+6==0,x]即可.② 解方程组 输入:Solve[{x+y==1,3x^2-y^2==0},{x,y}] 即可(结果见下图).Solve 是解方程或方程组的函数.其格式为:Solve[eqns,vars]其中方程用exp==0的形式(其中exp 为未知元的表达式,“= =”必须是2个等号);方程列表 2213x y x y +=⎧⎨-=⎩未知数列表1.8 解不等式与不等式组例1.6 ① 解不等式组⎪⎩⎪⎨⎧>-<--0101222x x x输入: <<Algebra`InequalitySolve`InequalitySolve[{x^2-5x-6<0,x^2-1>0}, x]即可.② 解不等式3)3(12>--x x输入: <<Algebra`InequalitySolve`即可(结果见下图)不等式列表 变量列表加载解不等式的程序包,这是必须的,可谓是固定的格式, “< ”为键盘上的小于号, “`”为数字键1的左侧的Algebra —— 代数类InequalitySolve —— 解不等式程序包绝对值函数注: Mathematica 系统有内部函数.还有一些系统扩展的功能但不是作为内部函数的、以文件的形式存储在磁盘上的文件,要使用它们,必须用一定的方式来调用这些文件,这些文件我们称之为程序包. 调用方式之一如上所述:<<Algebra`InequalitySolve`或用:Needs["Algebra`InequalitySolve`"]1.9 由递推式求数列的通项公式例1.7 设 求数列的通项公式只要输入:<<DiscreteMath`RSolve` RSolve[{a[n]==n *a[n-1], a[1]==1}, a[n], n]即可(结果见下图)11,1,n n a na a -==函数名 递推关系 初始条件调用程序包 类名,此处是函数类 函数类中的这个函数离散类 离散类中的这个函数1.10 作函数图像例1.8在同一坐标系中作出2-1y x 和y=sinx在[-2,2]内的图像.输入: Plot[{x^2-1,Sin[x]},{x,-2,2}] 结果见下图例1.9作出sinxcosy的三维图形输入:Plot3D[Sin[x]*Cos[y],{x,-2Pi,2Pi},{y,-即可(结果见下图)增加取样点提高光滑度第二章 运用Mathematica 实现高等数学中的基本运算极限、导数和积分是高等数学中的主要概念和基本运算,如果你在科研中遇到较复杂的求极限、求导数或求积分问题,Mathematica 可以帮你快速解决这些问题。
《数学实验》实验报告——用Mathematica软件解微分方程
例1
求解下列微分方程: 1)
y 2 (1 y) (2 y) 2
In[1]:= DSolve[(y[x]^2)(1-y'[x]) (2-y'[x])^2,y[x],x] Out[1]=
书中结果为: y x c 1/( x c) ,其中 c 为任意常数。 y z 2) z y In[1]:= DSolve[{y'[x] z[x],z'[x] -y[x]},{y[x],z[x]},x] Out[1]= {{y[x]C[1] Cos[x]+C[2] Sin[x],z[x]C[2] Cos[x]-C[1] Sin[x]}} 3)
中 1 2 3 为任意常数。 例 2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解。 In[1]:= s1=NDSolve[{y'[x]==x^2+y[x]^2,y[0]==0},y,{x,-2,2}] Out[1]= {{yInterpolatingFunction[{{-2.,2.}},<>]}} In[2]:= y=y/.s1[[1]] Out[2]= InterpolatingFunction[{{-2.,2.}},<>] In[3]:= Plot[y[x],{x,-2,2},AspectRatioAutomatic,PlotRange{-1.5,1.5}]
例1 求解下列微分方程: 1) 2) 3)
y 2 (1 y) (2 y) 2
y z z y y 3 y 3 y y ( x 5)e x
例2 求常微分方程 y′= x2 + y2,满足初始条件 y(0)= 0 的数值解 例3 求函数 t 5 和 et sint 的拉氏变换 例 4 用拉氏变换解微分方程:
mathmatic软件操作
2
2
目录 上页 下页 返回 结束
一些特别函数,其表达式为:
Round[x]
最接近x的整数(四舍五入);
Floor[x]
不大于x的最大整数,即取整函数;
Abs[x]
绝对值函数;
Max[x1,x2,…] 取x1,x2,…中的最大值;
Min[x1,x2,…] 取x1,x2,…中的最小值;
Mod[m,n]
2.2.2 分段函数的定义 用If或which命令,例如定义函数
f
x
x2,
x
1
2 x, x 1
可以键入f[x_]:=If[x<=1,x^2,2-x] 或 f[x_]:=Which[x<=1,x^2,x>1,2-x]
类似可以定义多元函数。 例如
目录 上页 下页 返回 结束
3. 用Mathematica画函数的图象
写) 为后缀。是系统默认的Mathematica语言程序文件。
目录 上页 下页 返回 结束
1.6 Mathematica的扩展
Mathematica一个比较重要的特点就是其可扩展性某 些专门领域的计算会用到外挂的软件包。所谓软件包, 就是已经编写好的一些程序文件,但这些文件并不在软 件的内核中,要使用的时候必须先调入。软件包调用的 命令格式为:<<软件包名称`文件名称`或者<<软件包名 称`只调用软件包,撇号“`”利用Tab键上方的按键输入。 常用的外挂软件包有代数Algebra、分析Calculus、几何 Geometry、图形Graphics、线性代数LinearAlgebra以 及统计Statistics。
菜单,右方为基本输入模板。
数学分析实验-Mathematica 软件的应用
七、自定义函数
格式 f[x_]:=… f[x_,y_]:=… f[x_,y_,…]:= … Clear[f] 意义 定义一元函数 f(x) 定义二元函数 f(x,y) 定义多元函数 f(x,y,…) 取消对 f 的定义
(1) 出现在 f[x_]中的x是一类实体,用来表示函数定 义中的变量。x_可以用任何形式的参数来替代,右端定 义式中的x将会随之变化。看下面的例子:
1
三、函数与变量的命名规则
在Mathematica系统中,变量名和函数名遵从如下命 名规则: (1) 以字母开头的任意长度的字符或数字串; (2) 区分大小写; (3) 为与系统函数相区别,通常以小写字母开头; (4) 函数的形式为f[x].
四、变量赋值与变量替换
举例如下: x=5; ( 赋值) x=. (取消赋值) /. x ->3 (变量替换,计算时用3暂时替换x的值) Clear[x] (清除x的定义及其赋值)
H(n)-ln(n) 0.5777155816 0.5774656441 0.5773823223 0.5773406597 0.577315661 0.5772989959
7000
8000 9000 10000
9.430952520
9.564474984 9.682251076 9.787606036
5 4 3 2 1
20
40
60
80ቤተ መጻሕፍቲ ባይዱ
100
猜测1 调和数列的前n项和H(n)是发散数列,它的数值与 ln(n)+C 很接近。
猜测2 数列H(n)- ln(n)可能是收敛的。
Step5 用计算数据作印证 对充分大的n,计算H(n)-ln(n)的值: t2=Table[N[{n,H[n],Log[n],H[n]-Log[n]},10], {n,1000,10000,1000}]
Mathematica软件的使用方法及应用
y=sin3x
0.5
-6
-4
-2
2
4
6
y=sinx y=sin2x
-0.5
-1
上海应用技术学院
2.1 Mathematica软件的使用方法及应用
4) 函数作图
用Mathematica二维作图时,有两类可选参数。 a. 与图形显示有关的参数,主要有 AspectRatio,Frame和PlotRange三个参数。 AspectRatio用来改变图形显示的横坐标与纵坐 标的比例,其默认值是0.618:1(即黄金分割)。 Frame用来指定图形是否加边框,默认值是False。 PlotRange用于指定图形在纵坐标方向上的范围。 b. 用于对图形的修饰与加工。
1 2
上海应用技术学院
2.1 Mathematica软件的使用方法及应用
3) 用Mathematica相应功能解方程
用Mathematica解方程也并不逊色,它可以解一般的 代数方程。 如:Solve[ x^4-18x^2-32x-15 == 0, x]
--其解用数组的形式给出。“{”和“}”成对出 现,表示数组,重根按重数多次出现。
2. 运行Mathematica
1)工作区窗口--是显示一切输入、输出的窗口。所 有操作都在这个窗口中进行。将这种类型的窗口称为 Notebook。 2)基本输入模板--由一系列按钮组成。用于简化数 学表达式、特殊字符及Mathematica函数的输入,还 可以根据需要自制特殊的模板。 3)工具条--工具条上有9个菜单项。
y x
DSolve
3
y' x
x2 2
C 1
ax
a y x ,y 0
Mathematica 软件使用简介
Mathematica 软件使用简介Mathematica 是一个功能强大的常用数学软件, 它是由美国物理学家Stephen Wolfram领导的Wolfram Research公司用C语言开发的数学系统软件。
不但可以解决数学中的数值计算问题, 还可以解决符号演算问题, 并且能够方便地绘出各种函数图形。
这里介绍的命令可以适用于Windows操作系统的Mathematica2.2以上版本运行。
一、Mathematica 的进入/退出如果你的计算机已经安装了Mathematica 软件, 系统会在Windows 【开始】菜单的【程序】子菜单中加入启动Mathematica命令的图标:图1.1 启动Mathematica用鼠标单击它就可以启动Mathematica系统进入Mathematica系统工作界面:图1.2 Mathematica2.2工作界面图图1.3 Mathematica4.0工作界面图Mathematica系统工作界面是基于Windows 环境下的Mathematica 函数或程序运行与结果显示的图形用户接口, 是Mathematica的工作屏幕。
界面上方的主菜单和工具条的功能类似于Windows中的Word 软件。
其中的空白位置称为Notebook用户区, 在这里可以输入文本、实际的Mathematica命令和程序等来达到使用Mathematica的目的。
在用户区输入的内容被Mathematica用一个具有扩展名为“.ma” (Mathematica2.2)或“.mb”(Mathematica4.0)在的文件名来纪录,该文件名是退出Mathematica时保存在用户区输入内容的默认文件名,一般是文件名:“Newnb-1.ma” 或“Newnb-1.mb”。
退出Mathematica系统像关闭一个Word文件一样, 只要用鼠标点击Mathematica系统集成界面右上角的关闭按钮即可。
Mathematica软件的基本用法_11数第一次练习
第1章Mathematica软件的基本用法§1.1启动与运行1.1.1Mathematica的启动假设在Windows环境下已安装好Mathematica5.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica5.0,在屏幕上显示如图的Notebook 窗口,系统暂时为文件取名Untitled-1,直到用户保存时重新命名为止.1.1.2Mathematica的运行输入1+1,然后按下小键盘上的Enter键(或Shif+Enter键. 注:直接按Enter键是表达式换行),这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式Expand[(x+y)^5],要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为ln[2]和Out[2]. 如图.为了节省篇幅,本书后面不再把ln[i]与Out[i]写出. 如将“In[1]:=1+1,Out[1]=2”写成“运行1+1得2”.说明:如果把本系统的输出结果复制到Word文档中,在没有安装Mathematica的计算机上无法正常显示,但只要安装了立即变得正常.§1.2基本用法及命令格式1.2.1常量1.数值类型在Mathematic中,基本的数值类型有四种:整数,有理数、实数和复数.如果你的计算机的内存足够大,Mathemateic可以表示任意长度的精确整数及实数,而不受所用的计算机字长的影响. 整数与整数进行四则运算的结果仍是精确的整数或是有理数.例如:2的100次方是一个31位的整数:运行2^100得1267650600228229401496703205376.运行1/2+1/3得5 6 .当两个整数相除而又不能整除时,系统就用有理数来表示.实数既可以是精确值,也可以是用浮点数表示,Mathematica实数的有效位数可取任意位数,是一种具有任意精确度的近似实数,当然在计算的时候也可以控制实数的精度. 实数有两种表示方法:一种是小数形式表示,另外一种是用指数形式表示. 如:运行0.239998得0.239998.运行0.12*10^11得1.2×10实数也可以与整数、有理数进行混合运算,结果还是一个实数.运行2+1/4+0.5得2.75.在Mathematica中,复数是由实部和虚部组成,实部和虚部可以用整数、有理数、实数表示,用I表示虚数单位如:运行3+0.7I得3+0.7 .2.不同类型数的转换在Mathematica的不同应用中,通常对数字的类型要求是不同的. 例如在公式推导中的数字常用整数或有理数表示,而在数值计算中的数字常用实数表示. 在一般情况下在输出行Out[n]中,系统根据输入行ln[n]的数字类型对计算结果做出相应的处理. 如果有一些特殊的要求,就要进行数据类型转换.在Mathematica中提供以下几个函数达到转换数据类型的目的:表1-1举例如下:运行N[5/3]得1.66667,运行N[5/3,20]得1.66666666666666666667(怎么会多一个6呢?)1.6666666666666666667.注:在Mathematica4.0版本中,当016n≤≤时,系统自动以6位有效数字输出计算结果,在更高版本中不受此限制.Rationalize[x]给出x的有理数近似值,如运行Rationalize[0.48]得1225. Mathematica尽量保持计算的精确性,例如运行Rationalize[Pi]得π,运行Rationalize[Sqrt[2]] Rationalize[x,dx]给出x的误差小于dx的有理数近似值,如运行Rationalize[Pi,1]得3;运行Rationalize[Pi,0.1]得227;运行Rationalize[Pi,0.01]得227. 继续计算得π的此后7个不同精度级的有理数依次为:20133335535575948100798103993,,,,,,64106113113241753208533102.用同样的方法算得的前8个各种精度的近似值分别为317419957713933363196011,,,,,,,,2122970408985237813860.数学常数Mathematica中定义了一些常见的数学常数,这些数学常数都是精确数.表1-2黄金分割数应为:(11-+≈0.6180339887. 数学常数可用在公式推导和数值计算中,2在数值计算中表示精确值. 如:运行Pi^2得2π,运行N[Pi^2]得9.8696.1.2.2变量1.变量的命名变量的命名规则:以字母开头,后跟数字和字母的组合,不能跟具有特殊意义的符号如*,?,%,_,/等,长度不限,但Mathematica中内部函数和命令都是以大写字母开始的标识符. 为了不与它门混淆,读者在自定义变量时应该尽量以小写字母开始,另外在Mathematica中的变量也是区分大小写的. 例如:a12,ast,aST都是合法的变量名,而12a,z*a是非法的(提示与建议:给变量命名时,一方面不要用系统保留字,如Pi,E,C,Sin等;另一方面,尽可能与保留字相比至少有两个以上不一样的字符,不然在运行时系统会提示是否为拼写错误).符号%表示刚刚计算的结果,%2(或%%)表示倒数第2个计算结果,%n表示倒数第n个计算结果,在进行交互式计算时可以使用,但在程序中尽量少用.2.给变量赋值在Mathmatica中用等号=为变量赋值. 变量不必定义数值类型,可以表示一个数值,一个数组,一个表达式,甚至一个图形. 如:运行x=3得3;运行x^2+2x得15;运行x=%+1得16.可同时对不同的变量赋不同的值,例如:运行{u,v,w}={1,2,3}得{1,2,3};运行2u+3v+w得11.对于已定义的变量,当你不再使用它时,为防止变量值的混淆,可以随时用“变量名=.”清除它的值,如果变量本身也要清除则用函数Clear[x],例如运行u=.后再运行2u+v得2+2u(前面的运行已有v=2,而u的值1已经清除).3.变量的替换在给定一个表达式时其中的变量可以取不同的值,这时可用变量替换来计算表达式的不同值. 格式为expr/.x->val,例如:运行Clear[x]; f=x/2+1得12x +.运行f/.x->1得32.运行f/.x->4得3.如果表达式中有多个变量也可以同时替换,例如有两个变量时格式为: expr/.{x->xval,y->yval},例如:运行(x+y)*(x-y)^2/.{x->3,y->1-a}得2(4)(2)a a -+.1.2.3 内建函数在Mathematica 的Notebook 界面下,可以用交互方式完成各种运算,如绘制函数图象,求极限、解方程等,也可以用它编写象C 语言那样的结构化程序. 在Mathematica 系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以达到事半功倍的效果. 这些函数分为两类,第一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],反正弦函数ArcSin[x],余弦函数Cos[x],指数函数Exp[x],以e 为底的对数函数Log[x],以a 为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等.注意:(1)在Mathematica 中,所有函数严格区分大小写,一般地,内建函数的首写字母必须大写,有时一个函数名是由几个单词构成,则每个单词的首写字母也必须大写,如:求局部极小值函数FindMinimum[f[x],{x,x0}等.(2)在Mathematica 中,函数名和自变量之间的分隔符是用方括号“[ ]”,而不是一般数学书上用的圆括号“( )”,初学者很容易犯这类错误.如果输入了不合语法规则的表达式,系统会显示出错信息,并且不给出计算结果,例如:要画正弦函数在区间[-10,10]上的图形,输入plot[Sin[x],{x,-10,10}],则系统提示: General::spell1: Possible spelling error: new symbol name "plot" is similar to existing symbol "Plot". More …同时原样输出原命令,表示“可能有拼写错误,新符号…plot‟很象已经存在的符号…Plot‟”,由于系统作图命令“Plot”第一个字母必须大写,错误出在”plot ”中首字母没有大写. 再输入Plot[Sin[x],{x,-10,10},系统又提示“Syntax::bktmcp: Expression "Plot[Sin[x],{x,-10,10}" has no closing "]".”表示缺少右方括号,并且在命令中将不配对的括号用红色显示.一个表达式只有准确无误地输入后运行才能得出正确结果. 学会看系统出错信息能帮助我们较快找出错误,提高工作效率. 完成各种计算后,点击File->Exit 退出,如果文件未存盘,系统提示用户存盘,文件名以“.nb”作为后缀,称为Notebook 文件. 以后想使用本次保存的结果时可以通过File->Open 菜单读入,也可以直接双击该文件图标,系统自动调用Mathematica 将它打开.建议:最好在操作中途保存文件,第一次保存时,点击File->save 出现“另存为”窗口,选定保存位置并输入文件名后单击“保存”按钮即可,以后保存直接击Ctrl+S 即可.1.2.4 表达式的输入Mathematica 提供了多种输入数学表达式的方法. 除了用键盘输入外,还可以使用工具栏或者快捷方式输入运算符、矩阵或数学表达式.1.一维格式输入形如x/(2+3x)+y*(x-w)的表达式称为一维格式,除特殊字符外,所有数学表达式均可用这种格式输入,其优点之一是只用键盘就能完成输入,优点之二是适合在编程中使用,优点之三是可以在Mathematica 与Word 之间相互复制命令表达式. 在利用该软件处理数学问题时,建议采用一维格式. 这种格式的缺点是有些数学表达式不直观.2.二维格式输入形如23x y xx w++-的表达式称为二维格式,如果为了特殊需要可以使用二维格式输入.方法一:先按一维格式输入:x/(2+3x)+y/(x-w),在变量x,y ,w 未赋值的情况下运行的结果就是二维格式;方法二:可以使用快捷方式输入二维格式. 下面列出了用快捷方式输入二维格式的几种常见形式,如表1-3所示.表1-3例1.1 如输入数学表达式4x++(1)(,x,+,1,),Ctrl+^,4,->,+,a,Ctrl+_,1,->,Ctrl+/,Ctrl+2,2,x,+,y,->,->.也可以用基本输入工具栏输入二维格式:从FILE菜单中激活Plaettes->BasicInput工具栏,对于常用的特殊字符(如下图),只要单击这些字符按钮即可输入,使用工具栏可输入更复杂的数学表达式.3.特殊字符输入MathemMatica还提供了用以输入各种特殊符号的工具栏. 若要输入其它的特殊字符或运算符号,必须使用从File菜单中选取palettes,再选Complete Characters工具栏,如右图,单击对应的符号后即可输入.1.2.5数值的输出形式在数值的输出中, 可以使用转换函数进行不同数据类型和精度的转换. 另外, 对一些特殊要求的格式还可以使用如下的表达式表示形式函数,如表1-4所示.表1-4例 1.2 数值的形式转换运行A=N[Pi^30,30]得8.2128933040274958158650358543414⨯.10运行NumberForm[A,10]得NumberForm=8.2128933041410⨯.运行ScientificForm[A]的结果与此相同,但下面的命令输出幂值可被3整除的实数:运行EngineeringForm[A]得EngineeringForm=821.2893304027495815865035854341210⨯.§1.3函数1.3.1系统函数在Mathmatic中定义了大量的数学函数可以直接调用,这些函数其名称一般表达了一定的意义,可以帮助我们理解. 几个常用的函数如表1-5所示.表1-5Mathematica 中的函数与数学上的函数有些不同的地方,Mathematica 中函数是一个具有独立功能的程序模块,可以直接被调用. 同时每一函数也可以包括一个或多个参数,也可以没有参数. 参数的的数据类型也比较复杂. 更加详细的说明可以参看系统帮助,了解各个函数的功能和使用方法是学习Mathematica 软件的基础.1.3.2 自定义函数的定义1.函数的立即定义立即定义函数的语法是“f[x_]=expr ”,其中f 为函数名,x 为自变量,expr 为表达式. 在执行时会把expr 中的x 都换为f 的自变量x. 函数的自变量具有局部性,只对所在的函数起作用. 函数执行结束后变量的值也就没有了,不会改变其它全局定义的同名变量的值.例1.3 定义函数f(x)=xsinx+x 2,求函数值f(3),绘制其图形. 运行Clear[x];f[x_]=Sin[x]+x^2得x2运行f[3]得9+Sin[3]运行Plot[f[t],{t,0,2}]得如图1-4所示的图形.注意:如果运行前x 已经赋了值,则不能得到上述函数.对于自定义函数我们可以使用命令Clear[f]清除掉,而Remove[f]命令则从系统中删除该函数.2.延迟定义函数从定义格式上延迟定义函数与即时定义的区别为“=”与“:=”,延迟定义的格式为“f[x_]:=expr ”,其他操作与立即定义函数方式基本相同. 主要区别是:即时定义函数在输入函数后立即定义函数并存放在内存中并可直接调用,如果定义函数前变量已赋值将会把当前值直接代入函数表达式中计算出结果;延迟定义时,其中的变量只是形式变量,不受当前值的影响,只是在调用函数时,才把变量的值代入函数表达式进行计算.建议读者在编程时尽量用延迟定义函数方式定义函数. 3.多变量函数的定义也可以定义多个变量的函数,延迟定义函数方式的格式为“f[x_,y_,z_,…]:=expr ”,其中f 为函数名,x,y ,z,…为自变量,expr 为表达式.例1.4 定义函数f(x,y)=xy+ycosx 并求函数值f(2,3). 运行f[x_,y_]:=x*y+y*Cos[x]得xy+yCos[x] 运行f[2,3]得6+3Cos[2] 与即时定义比较,例如:当运行x=3;后再运行f[x_,y_]=x^2*y 得9y ,运行f[t,y]得9y ;而运行f[x_,y_]:=x^2*y 后再运行f[t,y]得t 2y.4.使用条件运算符或If 命令定义函数 例1.5 定义分段函数:21,0(),(1)&&(0)sin ,1x x f x x x x x x -≥⎧⎪=>-<⎨⎪≤-⎩.这时,要根据x 的不同值给出不同的表达式. 一种办法是使用条件运算符,基本格式为f[x_]:=expr/;condition,当condition条件满足时才把expr赋给f.“/;condition”的详细用法见8.2.2.通过观察得出的图形可以验证下列函数定义的正确性:运行f[x_]:=x-1/;x>=0f[x_]:=x^2/;(x>-1)&&(x<0)f[x_]:=Sin[x]/;x<=-1Plot[f[x],{x,-2,2}]得如图1-5所示图形.图1-5当然, 使用If命令也可以定义上面的函数,If语句的格式为If[条件,值1,值2]如果条件为真取“值1”,条件为假取“值2”,下面是用If语句定义的命令.运行g[x_]:=If[x>=0,x-1,If[x>-1,x^2,Sin[x]]];Plot[g[x],{x,-2,2}]得到的图形与图1-5完全一样.可以看出用If定义的函数g(x)和前面的函数f(x)相同,这里使用了两个If嵌套,逻辑性比较强. 关于其它的条件命令的进一步讨论请看8.2.1小节.1.3.3函数的调用格式无论系统自带的函数还是用户采用延迟方式定义的函数,其调用方式相同.方法一(函数名前放):f[expr],如运行N[Pi]得3.14159;运行Sqrt[2]方法二(函数名后放):expr//f,如运行2//Sqrt;运行Pi/2//Sin得1. 两种调用方法中,前者更符合数学习惯,而且能更方便地改变参数.。
Mathematica软件的基本用法_11数第一次练习
第1章Mathematica软件的基本用法§1.1启动与运行1.1.1Mathematica的启动假设在Windows环境下已安装好Mathematica5.0,启动Windows后,在“开始”菜单的“程序”中单击,就启动了Mathematica5.0,在屏幕上显示如图的Notebook 窗口,系统暂时为文件取名Untitled-1,直到用户保存时重新命名为止.1.1.2Mathematica的运行输入1+1,然后按下小键盘上的Enter键(或Shif+Enter键. 注:直接按Enter键是表达式换行),这时系统开始计算并输出计算结果,并给输入和输出附上次序标识In[1]和Out[1],注意In[1]是计算后才出现的;再输入第二个表达式Expand[(x+y)^5],要求系统将一个二项式展开,按Shift+Enter输出计算结果后,系统分别将其标识为ln[2]和Out[2]. 如图.为了节省篇幅,本书后面不再把ln[i]与Out[i]写出. 如将“In[1]:=1+1,Out[1]=2”写成“运行1+1得2”.说明:如果把本系统的输出结果复制到Word文档中,在没有安装Mathematica的计算机上无法正常显示,但只要安装了立即变得正常.§1.2基本用法及命令格式1.2.1常量1.数值类型在Mathematic中,基本的数值类型有四种:整数,有理数、实数和复数.如果你的计算机的内存足够大,Mathemateic可以表示任意长度的精确整数及实数,而不受所用的计算机字长的影响. 整数与整数进行四则运算的结果仍是精确的整数或是有理数.例如:2的100次方是一个31位的整数:运行2^100得1267650600228229401496703205376.运行1/2+1/3得5 6 .当两个整数相除而又不能整除时,系统就用有理数来表示.实数既可以是精确值,也可以是用浮点数表示,Mathematica实数的有效位数可取任意位数,是一种具有任意精确度的近似实数,当然在计算的时候也可以控制实数的精度. 实数有两种表示方法:一种是小数形式表示,另外一种是用指数形式表示. 如:运行0.239998得0.239998.运行0.12*10^11得1.2×10实数也可以与整数、有理数进行混合运算,结果还是一个实数.运行2+1/4+0.5得2.75.在Mathematica中,复数是由实部和虚部组成,实部和虚部可以用整数、有理数、实数表示,用I表示虚数单位如:运行3+0.7I得3+0.7 .2.不同类型数的转换在Mathematica的不同应用中,通常对数字的类型要求是不同的. 例如在公式推导中的数字常用整数或有理数表示,而在数值计算中的数字常用实数表示. 在一般情况下在输出行Out[n]中,系统根据输入行ln[n]的数字类型对计算结果做出相应的处理. 如果有一些特殊的要求,就要进行数据类型转换.在Mathematica中提供以下几个函数达到转换数据类型的目的:表1-1举例如下:运行N[5/3]得1.66667,运行N[5/3,20]得1.66666666666666666667(怎么会多一个6呢?)1.6666666666666666667.注:在Mathematica4.0版本中,当016n≤≤时,系统自动以6位有效数字输出计算结果,在更高版本中不受此限制.Rationalize[x]给出x的有理数近似值,如运行Rationalize[0.48]得1225. Mathematica尽量保持计算的精确性,例如运行Rationalize[Pi]得π,运行Rationalize[Sqrt[2]] Rationalize[x,dx]给出x的误差小于dx的有理数近似值,如运行Rationalize[Pi,1]得3;运行Rationalize[Pi,0.1]得227;运行Rationalize[Pi,0.01]得227. 继续计算得π的此后7个不同精度级的有理数依次为:20133335535575948100798103993,,,,,,64106113113241753208533102.用同样的方法算得的前8个各种精度的近似值分别为317419957713933363196011,,,,,,,,2122970408985237813860.数学常数Mathematica中定义了一些常见的数学常数,这些数学常数都是精确数.表1-2黄金分割数应为:(11-+≈0.6180339887. 数学常数可用在公式推导和数值计算中,2在数值计算中表示精确值. 如:运行Pi^2得2π,运行N[Pi^2]得9.8696.1.2.2变量1.变量的命名变量的命名规则:以字母开头,后跟数字和字母的组合,不能跟具有特殊意义的符号如*,?,%,_,/等,长度不限,但Mathematica中内部函数和命令都是以大写字母开始的标识符. 为了不与它门混淆,读者在自定义变量时应该尽量以小写字母开始,另外在Mathematica中的变量也是区分大小写的. 例如:a12,ast,aST都是合法的变量名,而12a,z*a是非法的(提示与建议:给变量命名时,一方面不要用系统保留字,如Pi,E,C,Sin等;另一方面,尽可能与保留字相比至少有两个以上不一样的字符,不然在运行时系统会提示是否为拼写错误).符号%表示刚刚计算的结果,%2(或%%)表示倒数第2个计算结果,%n表示倒数第n个计算结果,在进行交互式计算时可以使用,但在程序中尽量少用.2.给变量赋值在Mathmatica中用等号=为变量赋值. 变量不必定义数值类型,可以表示一个数值,一个数组,一个表达式,甚至一个图形. 如:运行x=3得3;运行x^2+2x得15;运行x=%+1得16.可同时对不同的变量赋不同的值,例如:运行{u,v,w}={1,2,3}得{1,2,3};运行2u+3v+w得11.对于已定义的变量,当你不再使用它时,为防止变量值的混淆,可以随时用“变量名=.”清除它的值,如果变量本身也要清除则用函数Clear[x],例如运行u=.后再运行2u+v得2+2u(前面的运行已有v=2,而u的值1已经清除).3.变量的替换在给定一个表达式时其中的变量可以取不同的值,这时可用变量替换来计算表达式的不同值. 格式为expr/.x->val,例如:运行Clear[x]; f=x/2+1得12x +.运行f/.x->1得32.运行f/.x->4得3.如果表达式中有多个变量也可以同时替换,例如有两个变量时格式为: expr/.{x->xval,y->yval},例如:运行(x+y)*(x-y)^2/.{x->3,y->1-a}得2(4)(2)a a -+.1.2.3 内建函数在Mathematica 的Notebook 界面下,可以用交互方式完成各种运算,如绘制函数图象,求极限、解方程等,也可以用它编写象C 语言那样的结构化程序. 在Mathematica 系统中定义了许多功能强大的函数,我们称之为内建函数(built-in function), 直接调用这些函数可以达到事半功倍的效果. 这些函数分为两类,第一类是数学意义上的函数,如:绝对值函数Abs[x],正弦函数Sin[x],反正弦函数ArcSin[x],余弦函数Cos[x],指数函数Exp[x],以e 为底的对数函数Log[x],以a 为底的对数函数Log[a,x]等;第二类是命令意义上的函数,如作函数图形的函数Plot[f[x],{x,xmin,xmax}],解方程函数Solve[eqn,x],求导函数D[f[x],x]等.注意:(1)在Mathematica 中,所有函数严格区分大小写,一般地,内建函数的首写字母必须大写,有时一个函数名是由几个单词构成,则每个单词的首写字母也必须大写,如:求局部极小值函数FindMinimum[f[x],{x,x0}等.(2)在Mathematica 中,函数名和自变量之间的分隔符是用方括号“[ ]”,而不是一般数学书上用的圆括号“( )”,初学者很容易犯这类错误.如果输入了不合语法规则的表达式,系统会显示出错信息,并且不给出计算结果,例如:要画正弦函数在区间[-10,10]上的图形,输入plot[Sin[x],{x,-10,10}],则系统提示: General::spell1: Possible spelling error: new symbol name "plot" is similar to existing symbol "Plot". More …同时原样输出原命令,表示“可能有拼写错误,新符号…plot‟很象已经存在的符号…Plot‟”,由于系统作图命令“Plot”第一个字母必须大写,错误出在”plot ”中首字母没有大写. 再输入Plot[Sin[x],{x,-10,10},系统又提示“Syntax::bktmcp: Expression "Plot[Sin[x],{x,-10,10}" has no closing "]".”表示缺少右方括号,并且在命令中将不配对的括号用红色显示.一个表达式只有准确无误地输入后运行才能得出正确结果. 学会看系统出错信息能帮助我们较快找出错误,提高工作效率. 完成各种计算后,点击File->Exit 退出,如果文件未存盘,系统提示用户存盘,文件名以“.nb”作为后缀,称为Notebook 文件. 以后想使用本次保存的结果时可以通过File->Open 菜单读入,也可以直接双击该文件图标,系统自动调用Mathematica 将它打开.建议:最好在操作中途保存文件,第一次保存时,点击File->save 出现“另存为”窗口,选定保存位置并输入文件名后单击“保存”按钮即可,以后保存直接击Ctrl+S 即可.1.2.4 表达式的输入Mathematica 提供了多种输入数学表达式的方法. 除了用键盘输入外,还可以使用工具栏或者快捷方式输入运算符、矩阵或数学表达式.1.一维格式输入形如x/(2+3x)+y*(x-w)的表达式称为一维格式,除特殊字符外,所有数学表达式均可用这种格式输入,其优点之一是只用键盘就能完成输入,优点之二是适合在编程中使用,优点之三是可以在Mathematica 与Word 之间相互复制命令表达式. 在利用该软件处理数学问题时,建议采用一维格式. 这种格式的缺点是有些数学表达式不直观.2.二维格式输入形如23x y xx w++-的表达式称为二维格式,如果为了特殊需要可以使用二维格式输入.方法一:先按一维格式输入:x/(2+3x)+y/(x-w),在变量x,y ,w 未赋值的情况下运行的结果就是二维格式;方法二:可以使用快捷方式输入二维格式. 下面列出了用快捷方式输入二维格式的几种常见形式,如表1-3所示.表1-3例1.1 如输入数学表达式4x++(1)(,x,+,1,),Ctrl+^,4,->,+,a,Ctrl+_,1,->,Ctrl+/,Ctrl+2,2,x,+,y,->,->.也可以用基本输入工具栏输入二维格式:从FILE菜单中激活Plaettes->BasicInput工具栏,对于常用的特殊字符(如下图),只要单击这些字符按钮即可输入,使用工具栏可输入更复杂的数学表达式.3.特殊字符输入MathemMatica还提供了用以输入各种特殊符号的工具栏. 若要输入其它的特殊字符或运算符号,必须使用从File菜单中选取palettes,再选Complete Characters工具栏,如右图,单击对应的符号后即可输入.1.2.5数值的输出形式在数值的输出中, 可以使用转换函数进行不同数据类型和精度的转换. 另外, 对一些特殊要求的格式还可以使用如下的表达式表示形式函数,如表1-4所示.表1-4例 1.2 数值的形式转换运行A=N[Pi^30,30]得8.2128933040274958158650358543414⨯.10运行NumberForm[A,10]得NumberForm=8.2128933041410⨯.运行ScientificForm[A]的结果与此相同,但下面的命令输出幂值可被3整除的实数:运行EngineeringForm[A]得EngineeringForm=821.2893304027495815865035854341210⨯.§1.3函数1.3.1系统函数在Mathmatic中定义了大量的数学函数可以直接调用,这些函数其名称一般表达了一定的意义,可以帮助我们理解. 几个常用的函数如表1-5所示.表1-5Mathematica 中的函数与数学上的函数有些不同的地方,Mathematica 中函数是一个具有独立功能的程序模块,可以直接被调用. 同时每一函数也可以包括一个或多个参数,也可以没有参数. 参数的的数据类型也比较复杂. 更加详细的说明可以参看系统帮助,了解各个函数的功能和使用方法是学习Mathematica 软件的基础.1.3.2 自定义函数的定义1.函数的立即定义立即定义函数的语法是“f[x_]=expr ”,其中f 为函数名,x 为自变量,expr 为表达式. 在执行时会把expr 中的x 都换为f 的自变量x. 函数的自变量具有局部性,只对所在的函数起作用. 函数执行结束后变量的值也就没有了,不会改变其它全局定义的同名变量的值.例1.3 定义函数f(x)=xsinx+x 2,求函数值f(3),绘制其图形. 运行Clear[x];f[x_]=Sin[x]+x^2得x2运行f[3]得9+Sin[3]运行Plot[f[t],{t,0,2}]得如图1-4所示的图形.注意:如果运行前x 已经赋了值,则不能得到上述函数.对于自定义函数我们可以使用命令Clear[f]清除掉,而Remove[f]命令则从系统中删除该函数.2.延迟定义函数从定义格式上延迟定义函数与即时定义的区别为“=”与“:=”,延迟定义的格式为“f[x_]:=expr ”,其他操作与立即定义函数方式基本相同. 主要区别是:即时定义函数在输入函数后立即定义函数并存放在内存中并可直接调用,如果定义函数前变量已赋值将会把当前值直接代入函数表达式中计算出结果;延迟定义时,其中的变量只是形式变量,不受当前值的影响,只是在调用函数时,才把变量的值代入函数表达式进行计算.建议读者在编程时尽量用延迟定义函数方式定义函数. 3.多变量函数的定义也可以定义多个变量的函数,延迟定义函数方式的格式为“f[x_,y_,z_,…]:=expr ”,其中f 为函数名,x,y ,z,…为自变量,expr 为表达式.例1.4 定义函数f(x,y)=xy+ycosx 并求函数值f(2,3). 运行f[x_,y_]:=x*y+y*Cos[x]得xy+yCos[x] 运行f[2,3]得6+3Cos[2] 与即时定义比较,例如:当运行x=3;后再运行f[x_,y_]=x^2*y 得9y ,运行f[t,y]得9y ;而运行f[x_,y_]:=x^2*y 后再运行f[t,y]得t 2y.4.使用条件运算符或If 命令定义函数 例1.5 定义分段函数:21,0(),(1)&&(0)sin ,1x x f x x x x x x -≥⎧⎪=>-<⎨⎪≤-⎩.这时,要根据x 的不同值给出不同的表达式. 一种办法是使用条件运算符,基本格式为f[x_]:=expr/;condition,当condition条件满足时才把expr赋给f.“/;condition”的详细用法见8.2.2.通过观察得出的图形可以验证下列函数定义的正确性:运行f[x_]:=x-1/;x>=0f[x_]:=x^2/;(x>-1)&&(x<0)f[x_]:=Sin[x]/;x<=-1Plot[f[x],{x,-2,2}]得如图1-5所示图形.图1-5当然, 使用If命令也可以定义上面的函数,If语句的格式为If[条件,值1,值2]如果条件为真取“值1”,条件为假取“值2”,下面是用If语句定义的命令.运行g[x_]:=If[x>=0,x-1,If[x>-1,x^2,Sin[x]]];Plot[g[x],{x,-2,2}]得到的图形与图1-5完全一样.可以看出用If定义的函数g(x)和前面的函数f(x)相同,这里使用了两个If嵌套,逻辑性比较强. 关于其它的条件命令的进一步讨论请看8.2.1小节.1.3.3函数的调用格式无论系统自带的函数还是用户采用延迟方式定义的函数,其调用方式相同.方法一(函数名前放):f[expr],如运行N[Pi]得3.14159;运行Sqrt[2]方法二(函数名后放):expr//f,如运行2//Sqrt;运行Pi/2//Sin得1. 两种调用方法中,前者更符合数学习惯,而且能更方便地改变参数.。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
5、计算的精度
14
6.常用的数学函数
函数 Sqrt[x]
Exp[x]
说
明
函数
Sinh[x] Cosh[x]
说
明
平方根函数 指数函数
双曲正弦函数 双曲余弦函数
Log[x]
Log[a ,x] Sin[x] Cos[x] Tan[x] Cot[x] ArcSin[x]
自然对数函数
以a为底对数函数 正弦函数 余弦函数 正切函数 余切函数 反正弦函数
4
参考教材
由我校编写的 《高等数学实验》
5
实验一 Mathematica软件操作(1)
实验目的 掌握Mathematica的基本操作 掌握Mathematica中的基本运算 掌握常用的数学函数和构造函数的方法
6
实验内容
1、Mathematica的启动
在 Windows 环境下安装好Mathematica。点击开始菜单 中的Mathematica的图标,稍停片刻则显示工作屏幕。
2
数学软件简介
我们在学习数学的过程中,要花费大量的时间 用于推导公式、画图、计算数据。随着电子计算机 技术的不断发展,人们已经开发出一些能够帮助处
理和解决数学问题的软件系统。
常见的通用数学软件包括:Mathematica、
Matlab和Maple,其中Matlab以数值计算见长,
Mathematica和Maple以符号运算、公式推导见长。
相等 不相等 大于 大于或等于 小于 小于等于 都相等 都不相等
24
逻辑运算符 用一个关系式只能表示一个判定条件,要表示 几个判定条件的组合,必须用逻辑运算符将关系表 达式组织在一起,我们称表示判定条件的表达式为 逻辑表达式。常用的逻辑运算符有
! && || If 非 并 或 条件
25
26
练习题
21
例 2 定义分段函数
x, x 0 f ( x ) x 2 1, 0 x 1 。 1 x , x 1
22
变量和函数的清除
23
9. 关系表达式与逻辑表达式
关系表达式的一般形式是:表达式+关系算子+表达式。
x=a 赋值
x==y x!=y x>y x>=y x<y x<=y x==y==z x!=y!=z
1 6.设 f ( x) 2 x 6 x 3 ,求 g( x ) [ f ( x ) f ( x )], 2
2
1 h( x ) [ f ( x ) f ( x )] 的表达式,并指出哪个是奇 2
函数,哪个是偶函数。
28
7
或点击开始菜单中的 “所有程序” —〉 Wolfram Mathematica —〉Wolfram Mathematica7的图标, 稍停片刻显示 Mathematica7.0 的工作屏幕。
8
Mathematica 7.0的工作屏幕上共有10个主菜单, 我们可以在这个工作屏幕上完成我们需要的计算 。
19
8、自定义函数
f[x_]:=表达式
注意区别 f[x_]:= 与 f[x]=二元函数f(x,y) Clear[f,x] 取消对函数f(x)及变量x的定义
20
例 1 定义二元函数
f ( x, y) x 2 y 2 xy tan x 。
9
2、Mathematica的运行
在Mathematica的工作屏幕上,输入语句,然后 同时按下 Shift 键和 Enter 键,系统即可执行运算 .
10
3、数的表示
整数 123,23^52 ; 有理数 1/3,123/456 ; 实数 23.52 , .3 ,5 . ; 复数 2+3I 。
数学常数 含义 Pi E Degree 1度 I 虚数单位 Infinity
π
e
11
4. Mathematica中基本的运算
运算法则 运算符号 加法 + 减法 乘法 *或空格 除法 / 乘方 ^ 举例 2+3 6-8 2*5 2.3/4.5 3^5 优先级 1 1 2 2 3
12
如 (3+4) –5 , 1/3+1/2, 540 / 6*2 , (23/52)^(1/5) , (23/52)^(1/5.) .
4. 求函数 f (x)= e 值。
27
x2
cos x 在 x 1.5 处精确到 10 位的
5.设
si n x , x 3 f ( x) ,画出 f ( x ) 的图形, 0, x 3
6 ), f (
并求 f (
4
), f ( 2) 。
阶乘函数
产生0~1之间的随机数
15
例如
16
17
7、变量赋值与变量替换
表2 变量赋值与变量替换实例 功 能 赋值(将数值6赋予变量x) 赋值(将表达式的值赋予变量x) 取消赋值 变量替换(计算时暂时用6替换表 表达式/.x->6 达式中的x) Clear[x] 清除x的定义及其赋值
18
格 式 x=6 x=表达式 x=.
1
高等数学实验
张宇萍主讲
什么是数学实验?
数学实验是利用计算机和数学软件为主 要工具,进行数学运算、描绘图形、模拟仿 真,从中学习数学知识、探索数学理论、发 现数学规律、证明数学猜想等,帮助人们学 习数学、研究数学和应用数学。学生可以在 解决问题的过程中学习,通过观察到的结果 得出结论,或猜测某些数学规律。
Tanh[x]
ArcSinh[x] ArcCosh[x] ArcTanh[x] Max[e1,…,en] Min[e1,…,en] Abs[x]
双曲正切函数
反双曲正弦函数 反双曲余弦函数 反双曲正切函数 求最大值 求最小值 绝对值函数
ArcCos[x]
ArcTan[x]
反余弦函数
反正切函数
n!
Random[]
1.试做几次进入和退出 Mathematica 系统。
2.计算下列各式的数值:
1 (1)610 ; ( 2) e 2 1; ( 3) log 3 24; (4) cos ; (5)24!; (6) arcsin . 3 6
3.求 31000 和 200! ,它们是一个多少位的数?
3
Mathematica简介
Mathematica是上世纪八十年代由美国物理学家 Stephen.Wolfram领导的一个研究小组开发的第一 个数学软件系统。它的主要功能包括三个方面:符 号演算、数值计算和图形描绘。Mathematica可以 完成许多符号演算和数值计算的工作。 Mathematica还具有强大的绘图功能,使用 Mathematica可以非常方便地作出以各种方式表示 的一元和二元函数的图形,还可以制作多画面连续 放像的动画函数图形。