调用该程序可以方便求解:
> parsolve(u^2+v^2=a^2,[u,v],t);
{ },{ },u
1 t
2
v
1 t
2
{ },u
1 t
2
v
1 t
2
> f:=randpoly([x,y],degree=3,sparse);
:= f
53 x 85 x y 49 y
78 x
17 x y
72 y
> parsolve(f,[x,y],t);
y
1
2
t ( ) 49 t
2
85 t 2401 t
4
23594 t
3
10829 t
2
16536
72 t
3
78 17 t
2
,{{
x
1
2
49 t
2
85 t 2401 t
4
23594 t
3
10829 t
2
16536
72 t
3
78 17 t
2
} {,
y
1
2
t ( ) 49 t
2
85 t 2401 t
4
23594 t
3
10829 t
2
16536
72 t
3
78 17 t
2
,
x
1
2
49 t
2
85 t 2401 t
4
23594 t
3
10829 t
2
16536
72 t
3
78 17 t
2
} }
1.3 局部变量和全局变量
Maple 中的全局变量, 是指那些在交互式命令环境中定义和使用的变量, 前面所使
用的变量几乎都属于全局变量. 而在编写子程序时, 需要定义一些只在子程序内部使用
的变量, 称其为局部变量. 当 Maple 执行子程序时, 所有和局部变量同名的全局变量都
保持不变, 而不管在子程序中给局部变量赋予了何值. 如果要把局部变量定义为全局变
量, 需要用关键词 global 在程序最开始加以声明, 而局部变量则用 local 声明, 虽然这
是不必要的, 但在程序设计时, 声明变量是有一定好处的.
下面通过实例演示局部变量与全局变量的不同. 为了更清楚地观察子程序对全局
变量的影响, 在子程序外先设定一个变量 a 的值:
> a:=1;
> f:=proc( )
local a;
a:=12345678/4321;
evalf(a/2);
end;
> f();
> a;