数学软件认识.docx
《数学软件认识.docx》由会员分享,可在线阅读,更多相关《数学软件认识.docx(32页珍藏版)》请在冰豆网上搜索。
数学软件认识
第二篇实验篇
“数学实验”是一种新的教学模式,是“技术数学”的重要组成部分,是与前面的理论篇和后面的建模篇相配合的重要教学环节,起着承上启下的重要作用。
它将数学知识、数学建模与计算机应用三者融为一体,通过数学实验使学生深入理解数学基本概念和基本理论,熟悉常用的数学软件,培养学生运用所学知识建立数学模型、使用计算机解决实际问题的能力。
第一十三章基础实验
[学习目的]
1.掌握Mathematica软件的基本操作;
2.掌握绘制函数图像的方法;
3.理解并掌握微积分和线性代数的计算方法;
4.理解并掌握统计分析和规划运算的方法;
5.通过实验,掌握有关的基本数学方法与数学思想。
§13.1数学软件认识实验
[学习目标]
1.能表述Mathematica软件的特点;
2.会使用Mathematica软件进行数值计算;
3.会利用Mathematica软件进行代数运算;
4.能运用Mathematica软件解代数方程。
一、数学软件简介
到目前为止,所有的理工科大学生都必须花大量的时间练习求极限、导数和积分的技能,需要死背大量的公式、方法和技巧,这些重复劳动令人厌烦,直接影响了一些学生的学习兴趣,挤占了学生在理解数学概念和理论方面所花的时间。
正是为了使学生和其他人员摆脱重复劳动的需要,像Mathematica这样具有符号推导功能的软件应运而生,突破了计算机只能进行数值计算的局限性,那些既令人厌烦又容易出错的计算、推导可由计算机完成。
新一代的数学软件就是计算器的升级换代产品。
当人们接触到这类软件后,就像当年看到计算器那样爱不释手。
当前,数学机械化的条件已经具备,应当教会学生用计算机软件求解,这样既可以减轻学生的负担,又可节省出时间来加强数学概念与理论方面的教学。
同类优秀的数学软件还有MATLAB和Mathcad等,但它们基本上都还是以数值计算为主,有的也有符号运算的功能。
而Mathematica软件以符号运算为主,进行符号运算比它们都方便,因此Mathematica更适于作为数学教学软件。
一方面,通过这类软件,改变了靠一本书、一支笔、一张纸学习数学的传统,有利于数学的大众化,能激发学生学习、应用数学的兴趣。
另一方面,以计算机软件为助手,使枯燥的数值计算和符号运算方便、快捷,善于死背死算的人已无可取之处,迫使学生从“死记”转向“理解”,这真是一件非常有意义的事。
Mathematica的绘图功能也十分强大,使用方便、快捷,适合在教学中使用。
在数值计算方面,注重计算精度,更具有数学上的严肃性,为精确计算的首选软件。
现在,Mathematica软件已经成为科技人员和大学师生们的得力工具,被广泛传播。
我们由于Mathematica涉及的数学与计算机知识十分广泛,一般人都会有既被吸引而又望而生畏的感觉。
为此我们提醒读者,既不要害怕,也不必像学习数学与计算机基础课那样逐字逐句地认真推敲。
首先全面了解一下它的功能,做到心中有数还是必要的。
然后,等需要用到哪一部分时,再仔细学习钻研,不必面面俱到。
读者主要应靠认真阅读书中的实例,去学习具体的操作方法和技巧,一般能模仿着使用就够了。
尽管本书在讲解上力求准确、细致,然而有些内容比较复杂,仅靠几行文字解释是弄不清楚的。
遇到看书和Help仍弄不清的问题,大都可以通过实例试验来解决。
最后还应指出,机械可以代替人做重复、繁重的工作,但不如人灵活。
Mathematica的符号运算功能虽然强大,能代替人解《技术数学》教材中的绝大多数计算题,但也有技不如人的情况。
令人鼓舞的是,随着版本的不断更新,功能日趋完善。
作为教学软件,4.x版已相当令人满意。
不过,无论在数学上还是在计算机语言方面,这个软件与常规既相似又有差别,经常会由于忽略了差别而在理解和使用上出现错误,这一点务必注意。
二、Mathematica起步
1.Mathematica软件的主要功能
(1)符号运算
Mathematica是美国WolframResearch公司开发的著名数学软件,以符号运算为主,能像人一样进行带字母的运算,得到的是精确的结果。
符号运算功能可以分成4大类:
(A)初等数学
可以进行各种数和初等函数式的计算与化简。
(B)微积分
可以求极限、导数(包括高阶导数和偏导数等)、不定积分和定积分(包括多重积分),将函数展成幂级数,进行无穷级数求和及积分变换。
(C)线性代数
可进行行列式的计算、矩阵的各种运算(加法、乘法、求逆矩阵等)、解线性方程组、求特征值和特征向量、进行矩阵分解。
(B)能解各类方程组(包括微分方程解方程组
组)。
下面展示了Mathematica符号运算的实际运行效果。
In[1]:
=
Out[1]=
In[2]:
=Apart[
]
Out[2]=
In[3]:
=Solve[
==1,x]
Out[3]={{x→
}}
In[4]:
=
Out[4]=
In[5]:
=
Out[5]=
(2)数值计算
Mathematica的数值计算更具科学性。
它与通常的数值计算程序有所不同,允许用户指定任意精度,例如能轻而易举地求出π的300位近似值;也可以求出1000!
和210000等整数的准确值,令人惊叹。
Mathematica具有众多的数值计算函数,能满足线性代数、插值与拟合、数值积分、微分方程数值解、求极值、线性规划及概率统计等方面的常用计算需求。
(3)绘图
它的绘图功能也很出色,能绘制各种二维和三维彩色图形,自动化程度很高。
如图13-1和图13-2所示是绘图功能的演示。
In[1]:
=ParametricPlot[{3Sin[3θ]Cos[θ],3Sin[3θ]Sin[θ]},
{θ,0,2π},AspectRatio→Automatic]
图13-1二维图形演示。
Out[1]=-Graphics-
In[1]:
=ParametricPlot3D[{Sin[t],Sin[2t]Sin[u],Sin[2t]Cos[u]},
{t,-Pi/2,Pi/2},{u,0,2Pi},Ticks→None]
图13-2三维图形演示。
Out[1]=-Graphics3D-
(4)编程
在Mathematica中,用户可以自己编写各种程序(文本文件),开发新的功能。
用户开发的功能可以在软件启动时被调入,与软件本身的功能一样使用。
Mathematica4.0版自带一百多个专门的程序包,都是另外编写的程序文件,补充并完善了Mathematica的功能。
Mathematica良好的底层环境极具吸引力,为数学编程提供了广阔天地。
2.Mathematica界面简介
Mathematica4.0版在Windows9x以上环境中运行,一般占用150MB以上的硬盘空间,软件的安装与一般Windows应用程序的安装过程相同。
本书假定Mathematica安装在目录D:
\Mathematica\4.0中,Mathematica启动后的界面如图13-3所示。
图13-3Mathematica启动后的界面
图13-3所示的界面由工作区窗口、基本输入模板和主菜单组成。
(1)工作区窗口
左边的大窗口为工作区,是显示一切输入、输出的窗口。
无论直接输入各种算式或命令,还是运行已经编好的程序,所有操作都在这个窗口中进行。
可以同时打开多个工作区窗口。
在这样的窗口中,不仅可以显示文字与数学表达式,还可以显示图形、按钮等对象,将这种类型的窗口称为Notebook。
(2)基本输入模板
位于工作区窗口右边的是基本输入模板,由一系列按钮组成。
用鼠标左键单击一个按钮,就可以将它表示的符号输入到当前的工作区窗口中。
用户应该认真观看并大致记忆它的内容。
Mathematica提供多个这样的模板,用于简化数学表达式、特殊字符及Mathematica函数的输入,还可以根据需要自制特殊的模板。
模板的引入大大加快了输入速度、减轻了记忆负担,这也是人们乐于使用Mathematica的原因之一。
(3)主菜单
位于如图13-3上方所示的是主菜单。
Mathematica的菜单项很多,初学时不必一次搞清楚。
以下只介绍一些最常用的菜单项。
●File菜单
File中的New,Open,Close及Save命令用于新建、打开、关闭及保存用户的文件,这些选项的功能与Word类似,不再赘述。
另外有几个选项是Mathematica特有的,其中最有用的是:
Palettes用于打开各种模板。
GeneratePalettefromSelection用于生成用户自制的模板。
Notebooks记录最近使用过的文件。
●模板
Palettes中最有用的是BasicCalculations(基本计算模板)选项,这个模板分类给出了各种基本计算的按钮。
例如Calculus子项中的CommonOperations,就包含各种微积分基本计算按钮。
模板是解决输入困难的好办法,使用户无须死记大量的命令及相关参数,便于查询和输入。
●联机帮助系统
记不清或不了解某些操作时,可以打开Help菜单,查询有关帮助。
其中的MasterIndex是字典式查询,其它是分类的帮助内容,可自行观看。
三、数、变量、函数、算式和表
1.数的表示和计算
(1)准确数与近似数
Mathematica以符号运算为主,这与C、BASIC和FORTRAN语言不同。
例如,π,
,
等符号表示准确数。
近似数用带小数点的数表示,例如1.2,2.3*10^5等。
无论准确数还是近似数,都没有位数的限制(当然,实际上受到计算机内存的限制),可以求出2100000的准确值,也可以求出π的任意位数的近似值。
(2)数的输入、输出方法和格式
例1计算:
(1)
+
,
(2)23+32,(3)
。
解:
In[1]:
=2/3+
Out[1]=
In[2]:
=2^3+32
Out[2]=17
In[3]:
=
Out[3]=
说明:
上例中以不同的方式输入了分式和幂式,并得到计算结果。
以下通过例1讲解数的输入、输出方法和格式。
(A)分式的输入
在例1中,第1行分别以两种形式输入了两个分数。
分数线的输入可键入“/”或“Ctrl+/”来实现。
前者的分式表示法与C,BASIC等程序语言相同;后者产生常规的分数线和一个表示分母位置的小方块,光标停在小方块内,键入分母后可以按键盘上的“→”退出分母,也可按End键或单击分数后面的位置退出分母,使光标处于分数后面的位置,就可以继续输入后面的表达式了。
输入分式也可用基本输入模板中的分式按钮输入分式形式,可以通过Tab键或单击使光标从分子跳到分母。
对分数进行四则运算的结果是准确数,分子、分母的公因数已经被自动约去。
(B)指数的输入
在例1中,第3行分别以两种形式输入了两个幂式。
指数的输入可通过按“^”键或“Ctrl+6”键来完成。
前者的指数表示法与C,BASIC等程序语言相同,后者按数学的常规方式产生一个表示指数位置的小方块。
也可用基本输入模板中的幂式按钮输入幂式形式,通过按Tab键或单击使光标从底跳到指数。
说明:
根式也可通过键盘输入,但不如用基本输入模板中的根式按钮输入方便,且无须记忆键盘命令。
注意:
准确数的运算结果都是准确数,准确数与近似数运算的结果是近似数(保持最大可能的精度)。
(C)输入与输出提示
从例1中看到Mathematica自动在输入的式子前面加上如In[1]:
=等符号,在输出的答案前面加上Out[1]=等符号,以便分清输入与输出并自动加上编号。
用户也可以通过Kernel菜单中的ShowIn/OutNames选项去掉这些提示。
(D)计算的执行
当输入完整个算式后按Shift+Enter键(或小键盘上的Enter键),Mathematica立即开始计算。
在例1中共进行了三次计算,也可以一次计算三个算式。
只要在前两次输入完算式后按Enter键(只换行不计算),最后一个算式输入完后按Shift+Enter键即可。
Mathematica启动后的首次计算开始时,才将执行计算的核心程序调入,因此需要等待片刻。
再次执行计算时,速度就很快了。
由于键入匆忙,有时会产生输入错误。
一经执行后才被发现,当然得不到正确的结果。
这时不必重新输入,只要将原式修改后,再次按Shift+Enter键,就能重新计算,并用新的输出覆盖原来的输出。
可以将工作区窗口当成一张“无限”长的草稿纸,不断进行输入输出,所有的内容都会被保留。
(E)强制中断计算
如果执行计算后,由于各种原因使计算长时间不能完成,可以通过键盘命令“Alt+,”或“Alt+.”停止计算。
使用后者将立即停止计算,而使用前者后则弹出一个对话框供选择。
(F)特殊字符的输入
π和e分别用专用字符Pi和E表示,也可以由基本输入模板的特殊字符按钮输入。
I表示虚数单位(注意必须用大写字母),也可以由基本输入模板的特殊字符按钮输入。
复数用a+bI表示。
Infinity表示无穷大,也可以由基本输入模板的特殊字符按钮输入符号∞。
注意符号∞与+∞相同,没有双侧无穷的概念(而MATLAB是有的);-Infinity表示-∞。
(3)近似数的精度控制
求近似值的函数N。
Mathematica允许用户任意指定数值计算的精度,函数N的调用格式如下:
N[表达式,数字位数]用于指定计算表达式的具有任意数字位数的近似值(指定的数字位数应该大于16),结果在末位后是四舍五入的。
N[表达式]用于计算表达式的近似值,具有机器规定的精度(16位有效数字),但是按标准输出只显示前6位有效数字,如果想要全部显示应该改为按InputForm形式输出(使用Cell菜单中的选择输出形式选项可以更改输出形式或使用InputForm[]函数)。
还可以使用函数NumberForm[Real,n]规定实数的显示位数n。
注意:
在Mathematica中,π和e都表示准确数。
例2求π和e的6位、8位、16位和50位有效数字的近似值。
解:
In[1]:
=N[π]
Out[1]=3.14159
In[2]:
=N[π]//InputForm
Out[2]//InputForm=
3.141592653589793
In[3]:
=NumberForm[N[π],8]
Out[3]//NumberForm=
3.1415927
In[4]:
=N[π,50]
Out[4]=3.1415926535897932384626433832795028841971693993751
In[5]:
=N[e,50]
Out[5]=2.7182818284590452353602874713526624977572470937000
说明:
其中,π和e由基本输入模板中的相应按钮输入。
2.变量
(1)变量命名
Mathematica中的变量名必须是以字母开头的并由字母或数字组成的字符串(长度不限),但是不能含有空格或标点符号,大写与小写字母用于表示不同的变量。
例如x,a1,b12,Tc都是合法的变量名,2a是不合法的变量名,a1与A1是不同的变量。
(2)变量赋值
一个变量可以表示各种类型的数或字符串,也可以表示一个算式。
与C语言不同,不必事先声明变量的类型,Mathematica会根据用户给变量所赋的值自动处理。
使用等号给变量赋值,具体格式如下:
x=Value给x赋值。
x=y=Value同时给x,y赋相同的值。
{x,y,…}={Value1,Value2,…}同时给x,y,…赋不同的值。
例3观察下面给x、a、b、c等变量的赋值方法和输出效果。
In[1]:
=x=2
Out[1]=2
In[2]:
=a1=s+t
Out[2]=s+t
In[3]:
=a=b=c=1
Out[3]=1
In[4]:
={u,v}={1,2}
Out[4]={1,2}
In[5]:
=x=a
Out[5]=1
In[6]:
=x
Out[6]=1
In[7]:
=s=1
Out[7]=1
In[8]:
=a1
Out=1+t
说明:
上例分成两部分:
In[1]~In[4]是4个赋值式。
第1个式子引入了符号x,同时声明x表示2。
第2个式子引入了符号a1,s,t,同时说明了它们之间的关系。
第3个式子同时给多个变量赋以同一值。
第4个式子同时给多个变量赋以不同值。
In[5]重新给x赋值为a,因为已知a=1,因此输出结果是1。
In[6]查看x的值,答案也表明x=1。
In[7]赋值s=1,In[8]查看a1,输出表明a1=1+t。
这时x被重新赋值,s由原来无值变为有值且影响到a1。
也就是说用户输入的变量及其值或关系式一直被Mathematica记忆,并随着用户的重新赋值而更新,即使同时打开多个工作区窗口变量也是共享的。
这一特性既给使用者带来了方便,但也容易因忘记前面已经使用过哪些变量而产生错误。
(3)清除变量
为了避免隐蔽的错误,应该及时清除不再使用的变量。
其方法有以下几种:
x=.清除x的值但保留变量x。
Clear[x]清除x的值但保留变量x(在复杂的使用情况下清除更多的定义)。
Remove[x]将变量x清除。
(4)表示输出的专用符号
%是一个重要的Mathematica符号,其用途如下:
%表示前一个输出的内容。
%%表示倒数第2个输出的内容,依此类推。
%n表示第n个(即Out[n])输出的内容。
所有%的内容一直被Mathematica记忆,它们可以像其它变量一样被后面的计算引用,如下面的例子所示。
例4观察下面输出专用符号“%”的使用方法和输出效果。
In[1]:
=a=x^2+2
Out[1]=2+x2
In[2]:
=2+3
Out[2]=5
In[3]:
=%
Out[3]=5
In[4]:
=%%%
Out[4]=2+x2
In[5]:
=a+%2
Out[5]=7+x2
In[6]:
=%1+%2
Out[6]=7+x2
注意:
这些%n的内容是被保护的,Clear或Remove不能清除它们。
其实,所有的输入内容也同样被保留和保护,这些内容当然会占据计算机内存。
为了节约内存,可以在解除保护后清除它们。
清除的方法是使用Unprotect[In,Out]和Clear[In,Out],不过一般无此必要。
3.函数
Mathematica的基本功能是作为一个高级的函数计算器来使用的,各种操作主要靠函数来实现。
Mathematica提供的函数种类繁多且功能强大,函数一词也不限于数学上的含义,有实现各种操作的函数。
本书将Mathematica本身的内部函数和它自带的软件包中的函数统称为系统函数。
还可以由用户自定义函数,加入到Mathematica中,能像系统函数一样使用。
学习Mathematica主要是分门别类地学习各种函数的功能及其调用方法。
下面只介绍一些简单而又常用的数学函数。
函数的一般形式是:
函数名[参数1,参数2,…]。
(1)基本初等函数
在Mathematica中基本初等函数的格式如下:
Sin[x]正弦函数Cos[x]余弦函数
Tan[x]正切函数Cot[x]余切函数
Sec[x]正割函数Csc[x]余割函数
ArcSin[x]反正弦函数ArcCos[x]反余弦函数
ArcTan[x]反正切函数ArcCot[x]反余切函数
Exp[x]表示exSqrt[x]表示
Log[x]表示lnx(一般以a为底的对数函数用Log[a,x]表示)
Mathematica系统函数的书写规则很严格,务必注意以下几点:
(A)函数名首字符用大写、后面的字符一般用小写,当函数名分成几段时,每段的首字符应大写,函数名中不能含有空格(但自定义函数的首字符不必大写)。
(B)参数用方括号括起来,但是不能用圆括号。
这是很科学的表示法,事实上常规的数学表示法有问题,比如f(x+y)既可以理解成求函数f当自变量等于x+y时的值,又可以理解为f乘以x+y,Mathematica认为圆括号表示相乘。
(2)常用函数
下面列出一些经常用到的函数:
Abs[x]求实数的绝对值或复数的模。
Sign[x]符号函数
Max[x1,x2,…]一组数的最大值。
Min[x1,x2,…]一组数的最小值。
n!
求n的阶乘。
Binomial[n,k]求
。
(3)随机函数
Mathematica中产生多种类型随机数的函数,如下所述。
Random[type,range,n]产生指定类型、范围的、具有n位数字的随机数,其中类型type只能是Integer,Real,Complex,范围range由{min,max}指定(默认值是0,1),位数n的默认值是按机器规定的精度,三个精度都可以缺省。
Random[]产生一个0,1之间的一个实数。
Random[Integer]只能取0和1。
Random[Real,max]产生{0,max}范围内的一个实数。
4.算式
(1)用字母表示一个算式
一个字母不仅能表示一个变量,还可以表示一个算式,示例如下:
In[1]:
=p=x^2+2xy+y^2
x=1;
y=2;
p
Out[1]=
Out[4]=9
In[5]:
=x=.;
y=.;
p
Out[7]=
说明:
上例中In[1]用p表示一个x,y的多项式,当两个变量相乘时中间应该用空格或*号隔开,否则Mathematica将xy当成一个新的变量!
2x不必隔开,括号也起分隔的作用。
以上连续输入了4个表达式后才输出结果,输入完第1行后按Enter键换行,但是Mathematica不立即输出该行结果,第2、3行表达式后面加分号表示不显示该表达式的输出结果(但是对应的Out[n]仍然存在),第4行键入p表示求p的值,然后按Shift+Enter键通知Mathematica开始计算。
第1个输出是第1行输入的结果,p表示一个算式。
第2个输出是第4行输入的结果,p的值已经改变为9!
使用者如不警惕,经常会忘记这种改变,因而铸成大错。
第5、6行输入清除了x,y的值,p的原来值又显示出来。
(2)变量替换
使用变量替换是求算式的值而不改变算式本身的方法,示例如下:
In[1]:
=p=x^2+2xy+y^2
Out[1]=
In[2]:
=p/.x→1
Out[2]=1+2y+y2
In[3]:
=p/.{x→1,y→2}
Out[3]=9
In[4]:
=p
Out[4]=
In[5]:
=q=p/.{x→Sin[t],y→Cos[t]};
q
Out[6]=Cos[t]2+2Cos[t]Sin[t]+Sin[t]2
说明:
以上In[2]中p/.表示对p进行替换,x→1表示将算式p中的x用1代入,其中的箭头是由键入负号“-”和大于号“>”拼成的。
在In[3]中同时替换x,y,一次进行多项替换时用花括号将替换表达式括起来,各项之间用逗号分开。
Out[4]说明p本身并没有改变!
在In[5]中将替换结果赋值给q,Out[6]显