2、 编程用牛顿迭代法求解方程x?3x?0
> MakeInteration:=proc(expr::algebraic,x::name)
local interation;
interation:=x-expr/diff(expr,x); unapply(interation,x); end:
expr:=x-3*sqrt(x);
expr := x???3x
> Newton:=MakeInteration(expr,x);
Newton := x???x???x???3x311???2x> x0:=8.0;
x0 := 8.0
> to 4 do x0:=Newton(x0);od;
x0 := 9.033239219x0 := 9.000030520x0 := 9.000000002x0 := 8.999999998三、选做题(选做其中的两个题目)
1. 用算法描述的形式写出两个任意位整数相除的程序。并用Maple实现 2. 用Maple先计算
f(x,y)?y?7xy?4x?13x?2y?3?0 与
g(x,y)?y?14xy?9x?28x?4y?5?0 的结式 R(f,g),再用Maple求出公
2222共解。要求写出求解过程和调用的函数。
>
f:=y^2-7*x*y+4*x^2+13*x-2*y-3;g:=y^2-14*x*y+9*x^2+28*x-4*y-5;
f := y???7xy???4x???13x???2y???3 g := y???14xy???9x???28x???4y???5
2222> R:={f,g};
R := {y???7xy???4x???13x???2y???3,y???14xy???9x???28x???4y???5}
2222> vars:={x,y};
vars := {x,y}
> solve(R,vars);
9
{y???1,x???-2},{x???1,y???2},{y???3,x???2},{x???0,y???-1}
3. 用Maple 程序写出孙子定理(中国剩余定理)的算法实现的程序 孙子定理算法: 两两互素的自然数 p0,p1,?,pn?1,计算
n?1p??pi, ci?p/pi,i?1,2,?,n?1,求在模 pi下ci的逆di,i?1,2,?,n?1
i?0n?1计算 u??cdii?0ipmodp
注意, 编程序应尽可能减少,重复计算
4. 设n次多项式f(x,y)是有人计算g(x,y)*h(x,y)的结果,给出判断结果是否正确的程序。
5. 离我军大炮阵地水平距离10km的前方有一敌军的坦克群正以每小时50km向我军阵地驶来,现欲发射炮弹摧毁敌军坦克群. 为在最短时间内有效摧毁敌军坦克,要求每门大炮都能进行精射击,这样问题就可简化为单门大炮对移动坦克的精确射击问题. 假设炮弹发射速度可控制在0.2km/s至0.6km/s之间,问应选择怎样的炮弹发射速度和怎样的发射角度可以最有效摧毁敌军坦克.
6. 经典的欧几里得算法(辗转相除法)
> GCD:=proc(a::posint, b::posint)
local p,q,r; p:=max(a,b); q:=min(a,b); r:=irem(p,q); while r<>0 do p:=q; q:=r;
r:=irem(p,q); od; q; end:
7. 多元多项式环上的带余除法
8. 在4次对称群中,找出所有可以和(123)交换的元 9. 求Grobner基的Bucberger算法
10. 求构造一组任意三个向量线性相关, 任意二个向量线性无关的程序, 11.编程实现ElG离散对数公钥密码方案, 发送用保存文件的方法表示,
Alice要求Bob将信息m加密送回 加密过程:
A找大素数p,p的原根a和正整数xA(私钥) 计算hA?a(p) (0?hA?p)
xA 10
A将p,a,hA(公钥)传送给B B收到后随机取k?{1,2,........,p?1}
计算u?ak(p),v?hAk*m(p),将(u,v)传送给A A收到(u,v)后再计算
v*u?xA?hA*m(a)kk?xA?(axA)*m*(a)kk?xA?m(p)
得到原文m
心得与体会
通过这些天对Maple的学习,我深刻感受到了Maple广泛的计算功能,丰富的绘图功能和强大的编程功能。强大的数学软件能节约大量的人力物力,而我们作为数学系的学生应该熟练掌握这些先进的数学软件。
此外,在最近以自学为主的时光里,我锻炼了自己的自学能力,信息检索能力,交流能力。遇到问题,我首先想到的不是问老师问同学,而是尽量凭借自己的能力,认真思索,查阅书籍,使用搜索引擎。例如,遇到部分计算数据过于庞大而导致数据溢出的问题时,在老师的提示下通过搜索教案和分析例题,发现了可以使用maple中“&”语句进行智能处理,解决了数据溢出无法运算的问题。当凭借自己的努力解决问题后,我会有一种难以言语的胜利感和自信。
自学Maple给了我许多收获,当然也留下了一些遗憾。MAPLE是一个纯英文的平台,偏偏我的英文不是很好,很多时候无法理解软件的技术细节,也无法与系统做直接的沟通。我认为这是我在学习maple过程中的一大障碍。
当然,在这么短时间内是不可能“精通”Maple的,今后我应该多多阅读有关maple使用与操作的教材,抽出时间练习编程与绘图,提高自己的英文水平,让自己使用MAPLE及其同类软件时能更加得心应手,为以后更深入的学习打好基础。
11