Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ type(object,t) ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΎΡΠ½ΠΎΡΠΈΡΡΡ Π»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΡΠΈΠΏΡ t, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
> type(2+3,integer);
true> type(sin(Ρ ),function);
true> type(hello,string);
false> type("hello",string);
true> type(1/3,fraction);
trueΠΡΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΈΠΏΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ (Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ), ΡΡΠ½ΠΊΡΠΈΡ type Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ β false.
ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ hastype(expr, t), Π³Π΄Π΅ expr β Π»ΡΠ±ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ t β Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΡΠ° ΡΡΠ½ΠΊΡΠΈΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ expr. ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π°Π½Ρ Π½ΠΈΠΆΠ΅ (ΡΠ°ΠΉΠ» control):
> hastype(2+3,integer);
true> hastype(2+3/4,integer);
false> hastype(2*sin(x),function);
true> hastype(a+b-c/d,`+`);
trueΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΡΠ½ΠΊΡΠΈΡ β has(f,x) β Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ΅ f, ΠΈ false Π² ΠΈΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅:
> has(2*sin(Ρ ),2);
true> has(2*sin(x), `/`);
false> has(2*sin(x),3-1);
trueΠ‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΡΡ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠΌΡΡΠ»Π΅. Π’Π°ΠΊ, Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅ΠΊΡ Β«3-1Β», Π΅ΡΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π΅Π³ΠΎ Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ, Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ 2*sin(x) Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ, Π½ΠΎ Maple-ΡΠ·ΡΠΊ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ 3-1=2, ΠΈ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠ½ΠΊΡΠΈΡ has Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true.
Π€ΡΠ½ΠΊΡΠΈΡ has ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°Π΄ΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΠΌΠΎΠ΅ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ has ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. ΠΠ½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
> has(2*sin(2),sin);
true> has(2*sin(2),'sin');
true> has(2*sin(2.), 'sin');
falseΠΠ΄Π΅ΡΡ Π½Π°Π΄ΠΎ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 2*sin(2) ΠΏΠΎΡΠ»Π΅ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅ΡΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Maple, ΠΏΡΠΈ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΠΎΠΌ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΈΠ½ΡΡΠ°, Π½Π΅ Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ Π΅Π΅ ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ ΡΠΈΠ½ΡΡΠ°. ΠΠ΄Π½Π°ΠΊΠΎ sin(2.) ΡΠΆΠ΅ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ ΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΠΈΡΠ»ΠΎΠΌ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ sin ΡΠΆΠ΅ Π½Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅ΡΡΡ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΠΈ Π² ΡΡΠ΄Π΅ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
> has('int(Ρ ^2,Ρ )',int);
true> has(int(Ρ ^2,Ρ ),int);
false> int(Ρ ^2,Ρ );
> has(int(Ρ ^2,Ρ ), Ρ ^3/3);rue
Π‘ΡΠΎΠ»Ρ ΠΆΠ΅ ΠΏΠΎΡΡΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. Π’Π°ΠΊ, has(int(Ρ ^2, Ρ ), int); Π΄Π°Π΅Ρ false, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π» ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ, ΡΡΠΎ Π²Π΅Π΄Π΅Ρ ΠΊ ΠΏΠΎΠ΄ΠΌΠ΅Π½Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Ρ ^3/3 ΡΠΆΠ΅ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΈ ΠΏΠΎΡΡΠ½ΡΡΡ Π΄Π²Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π° ΠΈ ΡΡΠ½ΠΊΡΠΈΡ has Π΄Π°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ true Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»Π°. Π ΡΠΎΠΆΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ int(x^2,x) Π² Π°ΠΏΠΎΡΡΡΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΠΉΡΠΈ ΠΈΠΌΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ int, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π½Π΅ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠΉ ΡΠΎΡΠΌΠ΅ ΠΈ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΡΡΠ½ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ depends(f,x) Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ true, Π΅ΡΠ»ΠΈ Ρ Π²Ρ ΠΎΠ΄ΠΈΡ Π² f ΠΈ false Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π°Π΄ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ (Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅) ΠΎΡΠ΅Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ ΠΎΡΠΎΡΠΎ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅:
> depends(2+2*sin(x),Ρ );
true> depends(int(Ρ ^2,Ρ ),Ρ );
true> depends(int(Ρ ^2,Ρ =0..1), Ρ )
falseΠ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½Π½ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΡΠΎ ΡΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ ΡΠΈΡΠ»ΠΎ, Π² Π½Π΅ΠΌ Ρ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡΡΡ, Π° ΠΏΠΎΡΠΎΠΌΡ ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ false.
3.6. Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°ΠΌΠΈ
3.6.1. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π½Π° ΡΡΠ½ΠΊΡΠΈΡ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Ρ.Π΅. ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΡ. Π‘ΡΠ΅Π΄ΡΡΠ²Π° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ Π΅ΡΡΡ Π²ΠΎ Π²ΡΠ΅Ρ Π‘ΠΠ. Π’Π°ΠΊ, Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π² Maple 9.5 ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ applyop:
β’ applyop(f, i, Π΅) β ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ f ΠΊ i-ΠΌΡ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅;
β’ applyop(f, i, Π΅β¦, xk,β¦) β ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΡ f ΠΊ i-ΠΌΡ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΅ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² xk.
ΠΠΈΠΆΠ΅ Π΄Π°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ (Π·Π΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ ΡΠΌ. ΡΠ°ΠΉΠ» subs):
> restart;applyop(sin,2,a+x);
a + sin(x)> applyop(f,1,g,2,a+b);
f(g, 2, a + b)> applyop(f,{2,3},a+x+b);
a+f(x)+f(b)> applyop(f,{1,2},x/y+z);
> Ρ:=Ρ^2-2*Ρ-3;
p:= yΒ²-2y -3> applyop (f, 2,p);
p:= yΒ² -2y -3> applyop{f,[2, 3 ], p);
yΒ²+f(-2y)-3> applyop(f,{[2,1],3},p);
yΒ² + f(-2y) + f(-3)> applyop(abs,{[2,1],3},p);
yΒ²+2y+33.6.2. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΡΠΏΠΈΡΠΊΠΎΠ²
ΠΡΠ΅ Π΄Π²Π΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, ΡΠΊΠ°Π·Π°Π½Ρ Π½ΠΈΠΆΠ΅:
map(fcn, expr, arg2, ..., argn)
map2(fcn, arg1, expr, arg3,..., argn)
ΠΠ΄Π΅ΡΡ fcn β ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° ΠΈΠ»ΠΈ ΠΈΠΌΡ, expr β Π»ΡΠ±ΠΎΠ΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, argi β Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ fcn.
ΠΠ΅ΡΠ²Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΡΡ fcn ΠΊ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°ΠΌ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ expr. ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΠ΅ Π½ΠΈΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ map:
> f:=Ρ ->Ρ ^2;
f: = Ρ βΡ Β²> map(f, [1,2,3]);
[1, 4, 9]> map(f,[x,y,z]);
[xΒ², yΒ², zΒ²]> map(Ρ ->Ρ ^n, [1,2,3]);
[1, 2n, 3n]> L:=[1,2,3,4];
L:=[1, 2, 3, 4]> map(proc(x,y) x*y+1 end,[1, 2, 3, 4], 2);
[3, 5, 7, 9]> map(int,L,x);
[x, 2x, 3x, 4x]> map(F, [1, 2, 3], x, y, z);
[F(3, x, y, z), F(3, x, y, z), F(3, x, Ρ, z)]ΠΠ· ΡΡΠΈΡ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Π½Π΅ΡΡΡΠ΄Π½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π²ΡΠΎΡΠΎΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ map β ΡΠΏΠΈΡΠΎΠΊ, ΡΠΎ ΡΡΠ½ΠΊΡΠΈΡ (ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ) ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Π΅ΡΡΡ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΡΠΏΠΈΡΠΊΠ°, ΡΠ°ΠΊ ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΠΈΡΠΎΠΊ. ΠΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π·Π° Π²ΡΠΎΡΡΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ ΠΈΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠΎ ΠΎΠ½ΠΈ Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ.
Π€ΡΠ½ΠΊΡΠΈΠΈ map2 ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΏΠΎΡΡΠ½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ:
> map2(w, g, {Π°,b,Ρ});
{w(g, a), w(g, b), w(g, Ρ)}> map2(op,1,[a+b+i,c+d+k, e+f+j]);
[Π°, Ρ, Π΅]> map2(ΠΎΡ,3,[a+b+i,c+d+k,e+f+j]);
[i, k, j]> map2(diff,[sin(Ρ ),cos(Ρ ),x^n],Ρ );
ΠΡΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Ρ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΡΠΌΠΈ ΠΠ°Π³ΡΠ°Π½ΠΆΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· ΡΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π·Π°ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠΉ Π² ΡΠ³Π»ΠΎΠ²ΡΠ΅ ΡΠΊΠΎΠ±ΠΊΠΈ:
> Π΅ := <Ρ ^2, -sqrt(16-Ρ ^2), 5>;
ΠΡΠΈΠΌΠ΅ΡΡ Π½Π° ΡΠ°Π±ΠΎΡΡ Ρ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΈΠΌΠ΅ΡΡΠΈΠΌΠΈ ΠΌΠ½ΠΎΠΆΠΈΡΠ΅Π»ΠΈ ΠΠ°Π³ΡΠ°Π½ΠΆΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ Π² ΡΠ°ΠΉΠ»Π΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ L4lagra.mse.
3.6.3. ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ add, mul ΠΈ seq
ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΠΌ Π²ΡΡΠ΅, Maple ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈ Ρ ΡΡΠ΄ΠΎΠΌ Π΄ΡΡΠ³ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ Π½Π° ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΡ add, ΡΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΡ mul ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ seq:
> add(i,i=[a,b,c]);
a + b + c> addi=[a,b,c]);
aΒ² + bΒ² + cΒ²> add(i^2,i=[1,2,3]);
14> mul(x-i,i=0..4);
x(x - 1)(x - 2)(x - 3)(x - 4)> mul(Ρ ^i,i=0..4);
x10> seq(w(i),i={a,b,c});
w(a), w(b), w(c)> seq(w(x, y, z), i={1,2,3});
w(x, y, z), w(x, y, z), w(x, y, z)> seq(int(x^i,x),i={1,2,3,4});
3.6.4. ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ subs ΠΈ subsop
ΠΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ»ΡΠΆΠ°Ρ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΡΡ. Π§Π°ΡΡΠ½ΡΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ Π·Π°ΠΌΠ΅Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π° Π΄ΡΡΠ³ΡΡ ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΅Π΅ ΡΠΈΡΠ»Π΅Π½Π½ΡΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
β’ subs(x=a,e) β Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ Π½Π° ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π°;
β’ subs(s1,β¦,sn,e) β Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ Π΅ Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΠΎΠ΄Π½ΠΈ ΠΏΠΎΠ΄Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅, Π²ΡΠ±ΠΈΡΠ°Ρ ΠΈΡ ΠΈΠ· ΡΠΏΠΈΡΠΊΠΎΠ² s1, sn Π²ΠΈΠ΄Π° Ρ =Π°;
β’ subsop(eq1, eq2, β¦, eqi, β¦, eqn, e) β Π² Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΈ e Π·Π°ΠΌΠ΅Π½ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² eqi ΠΎΠΏΠ΅ΡΠ°Π½Π΄Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌΠΈ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΠ°Π²Π΅Π½ΡΡΠ² eqi Π²ΠΈΠ΄Π° ni=ei, Π³Π΄Π΅ ni β Π½ΠΎΠΌΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π°, ei β Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π·Π°ΠΌΠ΅Π½Ρ.
ΠΡΠ΅ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅. ΠΠΈΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΏΠΎΠ΄ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ:
> subs(Π°=b,b^2-2*Π°*b-b^2);
-2 bΒ²> subs (Π°=2,b=1,b^2-2*Π°*b-b^2);
> normal(%);
a-b> subs(a=x,b=y,c=z,[a,b,Ρ]);
[x, y, z]> subs({x=y,y=x),[x,y]);
[y, Ρ ]> subs(a=sin(x),b=cos(x),Π°^2+b*b);