符号 - 数学科学学院

Download Report

Transcript 符号 - 数学科学学院

科学计算软件
华南师范大学数学科学学院
科学计算软件

广义的计算
 数值计算:如消元法求解线形方程组,通常不
能精确求解,有舍入误差
 符号计算:如求一个函数的导函数,用符号表
示,精确推导
 非数值计算:排序、查找等数据结构中的算法
 科学计算可视化:将计算过程中产生的数据及
计算结果转换为图形图像在屏幕上显示出来,
并进行交互处理的理论、方法和技术。
课程目的

大家选这门课的目的?
了解数学软件的作用
 学习使用软件的方法
 辅助基础数学课程的学习,激发兴趣
 使用数学软件解决实际生活和工作中遇到的数学问
题

数学软件及其分类
数学软件
 看看计算机上都有哪些数学软件
 数学软件分类
 通用数学软件包
 专业数学软件包

通用数学软件
通用数学软件:功能完备,包括各种数学、数值计
算、丰富的数学函数、特殊函数、绘图函数、用户
图形界面交互功能,与其他软件和语言的接口及庞
大的外挂函数库机制(工具箱toolbox)。
 常见通用数学软件包有Matlab、Mathematica和
Maple
 其中Matlab以数值计算见长,Mathematica和
Maple以符号运算、公式推导见长。

专用数学软件包

(1)绘图类软件
 MathCAD,Tecplot,Surfer,Origin, SmartDraw
 (2)数值计算类软件(优化计算、数值代数)
 Lindo,Lingo,Octave, Linpack
 (3)有限元计算类(求解偏微分方程)
 ANSYS, MARC,PARSTRAN, FLUENT,
FEMLAB
专用数学软件包

(4)数理统计类
 GAUSS,SPSS,SAS,Splus,Statistica
 (5) 数学公式排版类
 MathType, MiKTeX, Scientific Nootbook
学习数学软件的方法
带着问题去学
 从问题出发
 解决你的问题
 软件是相通的
 标准Windows界面
 详细的帮助系统
 由此及彼,举一反三
 多“折腾”
 连蒙带猜地试探,找门路
 动手、动眼、动脑

教学方式
两条主线
 课本:Mathematica使用指南,按章节顺序
 实验:围绕解决实际问题讲述相关语法
 课本内容的讲述以自己动手练习为主,课堂上给出
重要例程,其余要求同学们自己练习
 实验包括例题和练习,例题中给出基本参考代码,
练习任务要求同学们自己修改代码完成

考核方式
本课程采用考察方式
 实验报告以Word或pdf文档的格式提交到课程邮箱:
 帐户:[email protected]
 邮件主题格式
 学号后四位_姓名_实验#上机报告
 如:1001_张三_实验1上机报告
 请严格按照此格式命名!!否则后果很严重!!

考核方式

Word文档的名称同邮件主题
 实验报告模板在学院主页的文档下载中找
 所有邮件从自己的邮箱中发送,不要采用中转或网
盘的形式。
 不符合邮件主题格式和附件名称格式的作业一律忽
略不计!
教材与参考资料







教材
Mathematica使用指南,科学出版社,2002
参考
Mathematica在大学数学课程中的应用,电子工业
出版社
用Mathematica作微积分实验,清华大学出版社
Mathematica应用实例教程,机械工业出版社
数学实验类书籍
常用数学软件介绍-Mathematica

Mathematica是由美国物理学家Stephen
Wolfram领导的WolframResearch开发的数学系
统软件,拥有强大的数值计算和符号计算能力。
 是一个交互式计算系统,在用户和Mathematica互
相交换、传递信息数据的过程中完成的。
 是目前比较流行的符号运算软件之一,它不仅可以
完成微积分、线性代数及数学各个分支公式推演中
的符号演算,而且可以数值求解非线性方程、优化
等问题。
Maple

Maple是加拿大滑铁卢大学和Waterloo Maple
Software公司注册的一套为微积分、线性代数和
微分方程等高等数学使用的软件包。

Maple的强项在于符号计算,其符号计算能力还是
MathCAD和MATLAB等软件的符号处理的核心。

Maple适用于解决微积分、解析几何、线性代数、
微分方程、计算方法、概率统计等数学分支中的常
见计算问题。
MATLAB

MATLAB是英文Matrix Laboratory(矩阵实验室)
的缩写
 MATLAB程序主要由主程序和各工具包组成,其
主程序含数百个内部核心函数
 工具包包括系统仿真、信号处理、系统识别、优化、
神经网络、控制系统、样条、图像处理、统计等工
具包。
 强项是数值计算,以矩阵为基本数据单位,在应用
线性代数、数理统计、自动控制、数字信号处理、
动态系统仿真方面已成为首选工具
LINDO/LINGO

LINGO(Linear Interactive and General
Optimizer-交互式通用线性优化求解器)是专门用
于求解数学规划问题的软件包。
 LINGO执行速度快,易于方便地输入、求解和分
析数学规划问题,在教学、科研和工业界得到广泛
应用。
 LINGO主要用于求解线性规划、非线性规划、二
次规划和整数规划等问题,也可用于一些线性和非
线性方程组的求解以及代数方程求根等。
SPSS

SPSS(Statistical Package for the Social
Science)—社会科学统计软件包是世界上著名的统
计分析软件之一。
 与SAS(统计分析系统)、BMDP(生物医学程序)并
称为国际上最有影响的三大统计软件。
 社会科学研究中的许多问题要使用统计学和概率论
的理论来进行研究,除此以外,SPSS已经应用于
经济学、生物学、教育学、心理学、医学以及体育、
工业、农业、林业、商业和金融等各个领域。
SAS

SAS(Statistical Analysis System-统计分析系统)
是一个模块化、集成化的大型应用软件系统。

由数十个专用模块构成,功能包括数据访问、数据
储存及管理、应用开发、图形处理、数据分析、报
告编制、运筹学方法、计量经济学与预测等等。

SAS系统主要完成以数据为中心的四大任务:数据
访问、数据管理、数据呈现、数据分析。
第一章 入门
Mathematica5界面简介
工作区
不仅可以显示文字
与数学表达式,还
可以显示图形、按
钮等对象
基本输入模板
可自定义,输入数
学表达式
输入模板的调出

File菜单中的Palettes用于打开各种模版
•基本输入模版:
BasicCalculatios
•基本计算模版:
BasicCalculations
主菜单
1.1 记号与约定

P1
Mathematica命令中的符号均为英文符号(半角),
使用中文符号会出错!
 反引号:“`”,与波浪线“~”共用一个键
 内部命令的选项用“->”输入,系统会自动转换为
箭头符号“→”
 不等号在键盘上用“!=”输入,或者使用模板
执行命令

P2
Mathematica的工作区称为笔记本(notebook),
在其中可以输入命令和输出结果
 输入命令后,按Enter键执行
 直接按小键盘上的Enter键
 主键盘区的Enter键要配合Shift键才是执行命令,
单独按下Enter键只表示回车换行,可输入多条
语句一次执行
 notebook中的命令是交互式执行的,可以输入一
句,执行一句。
执行命令
P2
输入命令在执行后,前面会用In[n]表示第n个输入
 执行结果前面对应用Out[n]表示第n个输出,可在
后面引用

1.2 内核与终端
例1 计算2加上3的结果
2+3
 例2 只执行表达式2*3+5中的乘法部分
 先选择要执行的部分表达式,然后按Ctrl+Shift
+Enter

若执行过程过长或程序陷入死循环,可使用菜单命
令Kernel->Abort Evaluation,或“ALT”+“.”
 在程序执行出错时,改正后可能要重启内核才能得
到正确结果,否则会“一错再错”

准确数与近似数

Mathematica以符号运算为主,与C、Basic等常
规编程语言不同,整数、有理数、幂、符号数等是
2
准确数,如 , , , 2
3

近似数用带有小数点的数表示,如:1.2,
2.3*10^5.

对于准确数,可以计算任意位数的有限精度值,例
如可以求出Pi的任意位的近似值,或2^100000的
值
数学符号的输入

使用输入模板

分式的输入:分数线可以使用“/”,也可
以使用“Ctrl+/”,后者使用手写分数格式
注释
包含在" (* "和" *) "间的部分被系统认作注释,不影
响计算
 例3
12+(*these words will be ignored by the kernel *)3

习题解答
1.3 无限循环
x=1;
While[x>0,x=x+1]
 While[循环条件,循环体]:详见教材P46
 1.5 17.2乘以16.3与4.7的和
17.2*(16.3+4.7)
 1.6 计算2x+3,5x+9,4x+2的和
(2x+3)+(5x+9)+(4x+2)

1.3 Mathematica 的怪癖
P4
区分大小写
 Integrate与integrate是不同的
 Mathematica的所有命令都以大写字母开头,
若一个命令由二个单词组成,则每一个单词的
第一个字母都要大写。如:ArcSin
 不同括号的含义不同
 方括号用来指定函数的参数:sin[x]
 圆括号可改变运算次序:(2+3)*4
 大括号表示列表:{1,2,3,4}

1.3 Mathematica 的怪癖






自然对数的底用大写的E表示
虚数单位用大写的I表示
多项式按升幂从左到右排列
下列例子错在哪里?
第一次使用
1.7
Mathematica软件,通
sqrt[81]
常会发生很多错误,其
中大部分是语法和拼写
1.10
错误。出错时请大家
[4+1]*[6+2]
先对照课本检查!
1.4 Mathematica给出精确解答 P6

例4 Sqrt[12]

例5 1/3+3/5-5/7+2/11
例6 Pi+Pi
 Pi在Matehmatica中是一个精确值
 对比:在Matlab中Pi是一个有限精度的值
 例7 Sqrt[-1]

1.5 Mathematica 基础





P7
符号:一串字母、数字和几个特定字符构成的序列,
不能以数字开头,不能简单地理解为变量!
定义符号后,可对其进行修改或清除来改变它的值
算术运算符:+,-,*,/,^
两个符号之间的乘号可以省略:2a等价于2*a
 用于数字与符号较为自然,注意两个符号间可
能会产生歧义
建议:为了避免出错,最好养成见乘号的地方都用
空格的良好习惯
1.5 Mathematica 基础

例8
a=2
b=3
c=a+b
 在命令后加分号“;”则屏蔽输出
 例9
a=2;
b=3;
c=a+b
 注意:Mathematica区分半角/全角符号
1.5 Mathematica 基础

P7
例11
a=3;
x 1
b
2x  3
2
数学格式可以利用基本输入模板输入,如同在
Word中用MathType一样
 符号可能是某个简单的数值运算结果,也可能是一
个复杂的代数表达式

1.5 Mathematica 基础
P8
对于已存在的符号,可以先输入一个问号"?"再输
入该符号来查询该符号的定义
 例12
?a
?b

符号的清除和删除

P8
Clear[符号名]:清除符号的定义及取值,非删除
 Remove[符号名]:删除指定的符号,系统不再识
别该符号
 例13 Clear[a]
?a
Remove[b]
?b
符号的清除和删除
默认情况下使用的符号都是全局的,当在后面使用
前面定义过的符号时,之前符号的定义可能会导致
后面代码的错误,所以一般最好在一段代码的最前
边使用 Clear All 清除其中使用的符号。
 也可以通过重启(退出)内核的方法清除符号的定
义,相比之下,大家验证一下关闭notebook窗口
会不会清除其中使用的符号的定义。

计算近似值

P8
Mathematic中默认情形下结果都为精确值,有的
时候使用起来并不直观和方便,可用命令N获得近
似值
 N[表达式]:给出表达式6位有效数字的近似值
 N[表达式,n]:尽力给出表达式的n位有效数字近似
 也可用命令“表达式//N”实现
 推而广之,“表达式//命令”等价于“命令[表达
式]”
计算近似值
P8
例14
N[Pi]
Pi//N
N[Pi,100]
 Mahtematica在内部计算时采用16位有效数字,
但是按标准输出只显示前6位有效数字。
 要改变默认设置可以使用单元“Cell”菜单中的
“默认输出格式”选项

引用前面的计算结果
P8
符号%返回前一次计算的结果,%%返回再前一次
的计算结果,%n返回前n次的计算结果
 例 计算     

Sqrt[Pi+Sqrt[Pi+Sqrt[Pi]]]
Sqrt[Pi];
Sqrt[Pi+%];
Sqrt[Pi+%]
1.6 单元
P11
在工作区右侧的蓝色方括号表示每个单元。内核在
计算笔记本时时以逐个单元为基础的。
 具体内容自学。

1.7 寻求帮助
P12
软件中的帮助系统是学习软件的一个好工具,对于
软件的各种功能,一般均有详细的文字说明和例程
 ?命令:给出关于命令的语法
 ??命令:给出关于命令的更多信息
 例17
? Plot
?? Plot

1.7 寻求帮助
P13
可以用Options命令得到函数的选项(参数的名称)
 例18 Options[Solve]

对于较长的命令有时只记得开头的几个字母。此时
先输入开头的几个字母,再按Ctrl+K组合键,就会
出现一个以这几个字母开头的所有命令的列表,可
用键盘或鼠标进行选择
 例19 Arc Ctrl+K

1.7 寻求帮助






P14
使用通配符“*”查找命令: “*”代表任何字符序
列
例20
(a)找出所有以‘Inv’开头的命令
? Inv*
(b)找出所有以‘in’结尾的命令
? *in
(c)找出所有在中间包含‘our’的命令
? *our*
注意*与字符间不要有空格
1.7 寻求帮助
受之前定义的符号的影响,后续的计算经常出错
 相比退出内核,下面的方法可以更方便地清除符号
之前的定义
 Clear["`*"]:清除所有全局符号
 Remove["`*"]:删除所有全局符号
 例22
Remove["`*"]
?`*
(*注:“ ?`*”表示列出系统当前的所有全局符号 *)

1.8 软件包
P16
执行较为特别的函数和程序时首先要上载包含它们
的软件包或具体的函数和程序
 例23 半径为1的圆的隐式方程为x^2+y^2=1。为了
绘制隐式方程所确定的图像,需要使用软件包
Graphics中的ImplicitPlot命令。
 载入该命令:
<<Graphics`ImplicitPlot`
 载入整个Graphics软件包
<<Graphics`

1.8 软件包
P16
在没有上载相应的软件包就使用该包中的函数时会
出现错误
 例25
ImplicitPlot[x^2+y^2==1,{x,-1,1}];
 载入该命令:
<<Graphics`ImplicitPlot`


载入后会出现错误,这种情况下要正确使用该函数,
需要先从符号表中清除该命令:
Remove[ImplicitPlot]
1.8 软件包

例23 ImplicitPlot[x^2+y^2==1,{x,-1,1}];
上载软件包后可用Names命令查看其函数清单
 例24
<<Miscellaneous`Calendar`
Names["Miscellaneous`Calendar`*"]

Help菜单

任何时候都可以通过按F1键或点击帮助菜单项
Help Browser,调出帮助菜单






Built-in Function:内建函数,按数值计算、代数
计算、图形和编程分类存放
Add-ons:有程序包MathLink Library等内容
The Mathematica Book:使用手册
Getting Started/Demos:入门指南和多种演示
Other Information:菜单命令的快捷键,二维输
入格式等
Master Index:按字母命令给出命令、函数和选项
的索引表
Help菜单
如果要查找Mathematica中具有某个功能的函数,
可以通过帮助菜单中的Mahematica使用手册,通
过其目录索引可以快速定位到自己要找的帮助信息
 例如:需要查找Mathematica中有关解方程的命令,
单击“The Mathematica Book”按钮,再单击
“Contents”,在目录中找到有关解方程的节次,
点击相应的超链接,有关内容的详细说明就马上调
出来了。

Help菜单
如果知道具体的函数名,但不知其详细使用说明,
可以在命令按钮 Goto 右边的文本框中键入函数名,
按回车键后就显示有关函数的定义、例题和相关联
的章节。
 例如,要查找函数Plot的用法,只要在文本框中键
入Plot,按回车键后显示如图的窗口,

如果已经确知Mathematica 中有具有某个功能的
函数,但不知具体函数名,可以点击Built-in
Functions按钮,再按功能分类从粗到细一步一步
找到具体的函数
 例如,要找画一元函数图形的函数,点击Built-in
Functions ->Graphics and Sound->2D Plots>Plot,找到Plot的帮助信息。

重要的习题题目

1.38~1.45大致给出了本书中介绍的Mathematica
的功能