- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE # / 52
第六章程序设计
教学目的:学习并掌握计算机代数系统下的算法设计和程序设计 原理和方法,包括基本程序结构、子程序求值、程序的嵌套以及 程序的调试。
教学要求:掌握算法设计和程序设计原理和基本方法。
重点内容:算法设计,程序设计。
难点内容:算法设计,程序设计。
前面,我们使用的是的交互式命令环境 ?所谓交互式命令环境,就是一次输入一条
或几条命令,然后按回车,这些命令就被执行了 ,执行的结果显示在同一个可执行块中 对于大多数用户来说,利用交互式命令环境解决问题已经足够了 ,但如果要解决一系列
同一类型的问题或者希望利用编写需要的解决特定问题的函数和程序 ,以期更加充分地
利用的强大功能,提高大规模问题的计算效率,进行一定的程序设计是必要的 ?
程序设计主要包括两个方面:行为特性的设计与结构特性的设计 ?所谓行为特性的 设计,通常是指将解决问题的过程的每一个细节准确地加以定义 ,并且还应当将全部的
解题过程用某种工具完整地描述出来 ,这一过程也称为算法的设计 ?而结构特性设计是 指为问题的解决确定合适的数据结构 ?
幸运的是,自身提供了一套编程工具 ,即语言.语言实际上是由各种命令以及一些 简单的过程控制语句组成的?
1编程基础
1.1算子
所谓算子,是从一个抽象空间到另一个抽象空间的函数 .在数学上算子的含义通常
是函数到函数的映射.在中,算子常用“箭头”记号定义 (也称箭头操作符):
>a*x*(x);
x
f := x — a x e
()->a*x*y*(xA2A2);
(X2 +y2)
g :=(X,y) — a X y e
另外,函数也可以从表达式建立算子:
贰2+1);
X - X2 1
(XA2A2);
(x,y) > x2 y2
当我们依次把算子f作用到参数0,a,xA2时即可得平常意义上的函数值:
>t*(t);
f := t “ t sin(t)
> f(0);
> f(a);
a sin (a)
> f(xA2);
2 2
(x a) sin(x a)
上述结果是函数作用的例子 .而最后一个结果(x2 a)sin(x2 ? a)实际上是算子f
与算子>tA2复合后再作用到参数 x的结果.
从数学上讲,作用与复合是不同的,它们产生的结果是有区别的 ,但在使用它们时,
两者还是有些重叠的.在中,可以依赖于语法把它们区分开 :
当复合两个算子时,结果仍是算子,两个算子的定义域必须是相容的;
当把一个算子作用于一个参数 (参数必须在算子的定义域中 )时,结果是一个表
达式;
在中,函数作用的语法是使用括号 (),如函数f作用到参数u写作f(u).而复合
算子的符号是@,多重复合时使用符号.
通过进一步的例子可以清楚区分作用与复合的功能 :f和g复合的结果是算子
f 9:“一 f(g(t)),而把这个算子作用到参数x得到表达式f(g(x)).例如,
f =t~ sin(t ),g =u — exp(u),贝U f g:=z— sin(exp( z) )是一个算子,而
f(g(x) =sin(exp(x^ )是一个表达式,因为x是一个实数.试比较下述两例:
> D();
> D(g*h);
D(g)h gD(h)
另外一个应引起注意的问题是算子 (函数)与表达式的异同,在第一章2.2.2中曾探讨
过函数与表达式的区别,这里再通过几个例子说明其中的微妙差异:
f1A2+1;
f2A2+1;
2
fl := x 1
2
f2 := y 1
> f312;
f3 ::
2 2
=x 2 y
再看下面的例子:
> g1>xA2+1;
> g2>yA2+1;
gi ::
2 ‘
=X r X 1
g2 ::
2丄彳
=y r y 1
g3i2;
g3,
g3,出现.要得到
与前面例子不同的是, 两个算子(函数)g1 , g2相加的结果依然是函数名
这个问题的主要原因是 g1与g2分别为x,y的函数,认为它们的定义域不相容
与前例的结果,只需稍作改动:
g31(x)2(y);
2 2
TOC \o "1-5" \h \z g3 := x2 2 y2
下面的例子想说明生成函数的两种方式“箭头操作符”及“”之间微妙的差异:
:1: 2: 3:
a*xA2*;
x2 2x3
(a*xA2*);
f := x x2 2 x 3
>a*xA2*;
g := x r a x2 b x c
由此可见,f中的已经作了代换,而 g中则显含。再看下面实验:
f(x); g(x);
x2 2x3
x2 2x3
f与g两者相同,再对其微分:
> D(f); D(g);
x >2x 2
再改变常数c的值,观察f与g的变化:
c 15;
c := 15
f(x); g(x);
x2 2x3
2
x 2 x 1
文档评论(0)