??x2sin(sinx)dt???1x2sin(sinx)???2?02
> evalf(1/2*x^2*sin(sinx)*Pi);
1.570796327xsin(sinx)
213、计算一个关于变量z的3次的分段多项式来近似x, y数据值(0, 0),. (1, 1), (2, 4), (3,8), 生成三次样条插值函数,并画出图形 14、设矩阵 A??行2列元素。
?1?02??2,B???3??12??, 计算AB和A的逆矩阵,并用语句给出AB的13?> A:=matrix(2,2,[1,2,0,3]); B:=matrix(2,2,[2,2,1,3]);
?1A := ??0??2B := ??1?2??3??2??3??8??9??
> evalm(A&*B);
?4??3?
> evalm(1/A);
?????????10-2??3??1???3??
?x1?3x2?3x3?2x4??1?15、求解线性方程组:?2x1?6x2?9x3?5x4?4
??x?3x?3x?13123?> A:=matrix([[1, 3, 3, 2], [2, 6, 9, 5], [-1, -3, 3, 0]]);
?1?A := ??2??-1?36-33932??5?? ?0??> B:=vector([-1, 4, 13]);
B := [-1,4,13]
> linsolve(A, B);
[?13???3_t2???3_t1,_t2,_t1,6???3_t1]
6
?1?16、设 A?2??2?2122??2, 求A的特征值和特征向量, ?1??> A:=matrix(3, 3, [1, 2, 2, 2, 1, 2, 2, 2, 1]);
?1?A := ??2??2?2122?? 2???1??> charmat(A, lambda);
?????1??-2???-2?-2????1-2-2?? -2???????1??> charpoly(A, lambda);
????3????9????532
> eigenvals(A);
5,-1,-1
> eigenvectors(A);
[-1,2,{[-1,1,0],[-1,0,1]}],[5,1,{[1,1,1]}] 17、求解代数方程 x3?cx?d?0
> eqn:=x^3+c*x+d;
eqn := x???cx???d
3> solve(eqn,x);
(?108d???1212c???81d)6332(1/3)???(?108d???122(1/3)2c12c???81d)c(?108d???122(1/3)32(1/3),?(?108d???1212c???81d)123???12c???81d)2c???,????32(1/3)1???I2??(?108d???123?????312c???81d)62(1/3)???(?108d???12c12c???81d)32(1/3)?(?108d???1212c???81d)123???(?108d???122(1/3)12c???81d)2c???????32(1/3)1???I2??(?108d???123?????
12c???81d)6???(?108d???1212c???81d)32(1/3)18、求解线性规划问题 目标函数f?x?3y?2z在约束条件
7
3x+2y-4z<=22, 5x-4y-3z<=11,7x+4y+9z<=27
的最大值
> with(simplex):
cnsts:={3*x+2*y-4*z<=22,
5*x-4*y-3*z<=11,7*x+4*y+9*z<=27};
cnsts := {3x???2y???4z???22,5x???4y???3z???11,7x???4y???9z???27}
> obj:=x+3*y-2*z;
obj := x???3y???2z
> maximize(obj,cnsts union {x>=0,y>=0,z>=0});
{x???0,z???0,y???274}
> f:=(x,y,z)->x+3*y-2*z;
f := (x,y,z)???x???3y???2z
> f(0,27/4,0);
814
19、计算 12345678912345678912345678878787877878787878787877877777777777923545444 的15555552345678912345678977777777775557888877878787878787878787878787次方除以6632663271236498977538712345678987 的余数
>
12345678912345678912345678878787877878787878787877877777777777923545444&^15555552345678912345678977777777775557888877878787878787878787878787 mod
6632663271236498977538712345678987;
1222607818260506342794522175831962
20、计算置换 (123)(245) 二、编程题
1、 编程表示函数(要求包含循环语句和条件语句)
?1?2???100,f(x)??|x|,?x?100x?100
> f:=proc( x )
if x<100 then abs(x) else
add(n,n=1..100) fi; > end;
8
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