- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机代数系统程序设计
第二章 Maple程序设计
前面, 我们使用的是Maple的交互式命令环境. 所谓交互式命令环境, 就是一次输入一条或几条命令, 然后按回车, 这些命令就被执行了, 执行的结果显示在同一个可执行块中. 对于大多数用户来说, 利用交互式命令环境解决问题已经足够了, 但如果要解决一系列同一类型的问题或者希望利用Maple编写需要的解决特定问题的函数和程序, 以期更加充分地利用Maple的强大功能, 提高大规模问题的计算效率, 掌握一定的程序设计是必要的. 幸运的是, Maple自身提供了一套编程工具, 即Maple语言. Maple语言实际上是由Maple各种命令以及一些简单的过程控制语句组成的.
1编程基础
1.1算子
所谓算子, 是从一个抽象空间到另一个抽象空间的函数. 在数学上算子的含义通常是函数到函数的映射. 在Maple中, 算子常用“箭头”记号定义(也称箭头操作符):
f:=x-a*x*exp(x);
g:=(x,y)-a*x*y*exp(x^2+y^2);
另外, 函数unapply也可以从表达式建立算子:
unapply(x^2+1,x);
unapply(x^2+y^2,x,y);
当我们依次把算子f作用到参数0, a, x^2+a时即可得平常意义上的函数值:
f:=t-t*sin(t);
f(0);
f(a);
f(x^2+a);
上述结果是函数作用的例子. 而最后一个结果实际上是算子f与算子g:=t-t^2+a复合后再作用到参数x的结果.
从数学上讲, 作用与复合是不同的,它们产生的结果是有区别的, 但在使用它们时, 两者还是有些重叠的. 在Maple中, 可以依赖于语法把它们区分开:
当复合两个算子时, 结果仍是算子, 两个算子的定义域必须是相容的;
当把一个算子作用于一个参数(参数必须在算子的定义域中)时, 结果是一个表达式;
在Maple中,函数作用的语法是使用括号( ),如函数f作用到参数u写作f(u). 而复合算子的符号是@,多重复合时使用符号@@.
通过进一步的例子可以清楚区分作用与复合的功能: f和g复合的结果是算子, 而把这个算子作用到参数x得到表达式f(g(x)). 例如, , 则是一个算子, 而是一个表达式, 因为x是一个实数. 试比较下述两例:
D(g@f);
D(g*h);
另外一个应引起注意的问题是算子(函数)与表达式的异同,在第一章2.2.2中曾探讨过函数与表达式的区别,这里再通过几个例子说明其中的微妙差异:
f1:=x^2+1;
f2:=y^2+1;
f3:=f1+f2;
再看下面的例子:
g1:=x-x^2+1;
g2:=y-y^2+1;
g3:=g1+g2;
与前面例子不同的是,两个算子(函数) g1, g2相加的结果依然是函数名g3,出现这个问题的主要原因是g1与g2分别为x,y的函数,Maple认为它们的定义域不相容. 要得到与前例的结果,只需稍作改动:
g3:=g1(x)+g2(y);
下面的例子想说明生成Maple函数的两种方式“箭头操作符”及“unapply”之间微妙的差异:
x:=x: a:=1: b:=2: c:=3:
a*x^2+b*x+c;
f:=unapply(a*x^2+b*x+c,x);
g:=x-a*x^2+b*x+c;
由此可见,f中的a,b,c已经作了代换,而g中则显含a,b,c。再看下面实验:
f(x); g(x);
f与g两者相同,再对其微分:
D(f); D(g);
再改变常数c的值,观察f与g的变化:
c := 15;
f(x); g(x);
由此可见,在利用Maple进行函数研究时,对同一问题应该用不同方法加以校验,而这一切的支撑是数学基础!
1.2 编程初体验
利用算子可以生成最简单的函数—单个语句的函数, 但严格意义上讲它并非程序设计, 它所生成的数据对象是子程序. 所谓子程序,简单地说, 就是一组预先编好的函数命令, 我们由下面的简单程序来看看Maple程序的结构:
plus:=proc(x,y)
x+y;
end;
这个程序只有2个参数, 在程序内部它的名称是x, y, 这是Maple最简单的程序结构, 仅仅在proc( )和end中间加上在计算中需要的一条或者多条命令即可, Maple会把最后一个语句的结果作为整个子程序的返回结果, 这一点需要引起注意. 再看下例:
P:=proc(x,y)
x-y;
x*y;
x+y;
end:
P(3,4);
显然, 尽管程序P有三条计算命令,但返回
您可能关注的文档
- 视频监控安防方案.doc
- 角函数(维基百科).doc
- 角函数公式.doc
- 角函数和平面向量高考考点分析.doc
- 角函数图象的平移和伸缩.doc
- 角函数导学案.doc
- 角函数知识点(高用).doc
- 角形中的几何计算(学生版).doc
- 角形全等的判定定理;线段垂直平分线的性质定理及其逆定理;角平分线的性质定理及其逆定理同步练习.doc
- 角形外接圆的轮廓对应算法.doc
- 2025山东辖内农村商业银行招聘笔试备考题库及答案解析.docx
- 2025云南省面向西南政法大学选调优秀毕业生笔试备考题库及答案解析.docx
- 2025云南省面向武汉大学选调优秀毕业生和招聘“企业引培生”笔试备考题库及答案解析.docx
- 2025云南省面向西安交通大学选调优秀毕业生笔试备考题库及答案解析.docx
- 2025云南省面向太原理工大学选调优秀毕业生笔试备考题库及答案解析.docx
- 2025云南省面向山西大学选调优秀毕业生笔试备考题库及答案解析.docx
- 2025云南省面向北京工业大学选调优秀毕业生笔试备考题库及答案解析.docx
- 2025年中国人民银行直属事业单位公开招聘(44人)笔试备考题库及答案解析.docx
- 2025云南省曲靖市民族中学第二次引进教育人才专项招聘20人笔试备考题库及答案解析.docx
- 2024广东清远市阳山县招聘教师15人(第二次,编制)笔试备考题库及答案解析.docx
文档评论(0)