Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Maple 9.5/10 Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Ρ„ΠΈΠ·ΠΈΠΊΠ΅ ΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 112

Автор Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”ΡŒΡΠΊΠΎΠ½ΠΎΠ²

МоТно Ρ‚Π°ΠΊΠΆΠ΅ вывСсти листинг ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ showstat:

> showstat(demo);

demo := proc(n::integer)

local y, i;

1* y := 0;

2  for i to n do

3   y := y+i^2

   end do

end proc

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² этом листингС строки вычисляСмых элСмСнтов ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹. Π­Ρ‚ΠΎ сдСлано для облСгчСния Ρ€Π°Π·Π±ΠΎΡ€Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ stopat, stopwhen ΠΈΠ»ΠΈ stoperr. Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° stopat, Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° экран соотвСтствуСт исполнСнию послСднСй Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° unstopat.

Команда stopwhen позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΡƒ наблюдСния Π·Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. ΠžΡ‚ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ unstopwhen. Команда stoperror позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ остановку ΠΏΡ€ΠΈ появлСнии ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ошибки. Для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° unstoperror.

Команда cont ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ прСрывания, установлСнной ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π²Ρ‹ΡˆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΈΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Для прСрывания ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ quit ПослС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ stop ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ любоС Maple-Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅.

Π’ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ большС ΠΈ ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚Ρ‹, Ρ‡Π΅ΠΌ это описано Π²Ρ‹ΡˆΠ΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, заинтСрСсованныС Π² ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ (скорСС всСго, ΠΈΡ… Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ) ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС. Для этого Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ справочной систСмы Context Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» Programming, Π° Π² Π½Π΅ΠΌ β€” Ρ€Π°Π·Π΄Π΅Π» Debugging.

10.5. Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ модулями

10.5.1. Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈ запись ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Π’ Π“Π»Π°Π²Π΅ 2 Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Π»Π°ΡΡŒ Ρ€Π°Π±ΠΎΡ‚Π° с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ хранятся вмСстС с Π½ΠΈΠΌ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΎΡ‚ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° всС Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΡ€ΠΎΠΉ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΌΠ½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Ρ€Π°Π΄ΠΈ использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Maple Π²Π²Π΅Π΄Π΅Π½Ρ‹ срСдства, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Π² Ρ‚ΠΎΠΌ числС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ вычислСний) Π½Π° диск ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² случаС нСобходимости.

Для записи Π½Π° диск ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ save:

save filename β€” запись всСх ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ filename;

save name_1, name_2,…, name_k, filename β€” запись ΠΈΠ·Π±Ρ€Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ name_1, name_2, name_k ΠΏΠΎΠ΄ ΠΈΠΌΠ΅Π½Π΅ΠΌ filename.

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π° дискС Ρ„Π°ΠΉΠ»Π° filename осущСствляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ read:

read <filename>

ΠŸΡ€ΠΈ считывании всС ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ΡΡ Π² Ρ„Π°ΠΉΠ»Π΅ опрСдСлСния становятся доступными для Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Maple. ΠŸΡ€ΠΈ записи Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Maple-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ². Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² Ρ‚ΠΈΠΏΠ° *.m ΠΈΠ· стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ функция readlib. А для записи Ρ„Π°ΠΉΠ»ΠΎΠ² Π² качСствС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… достаточно Π² ΠΈΠΌΠ΅Π½ΠΈ filename ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° save ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .m. РазумССтся, ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠΌ read, ΡƒΠΊΠ°Π·Π°Π² Π² ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ .m (Ρ„Π°ΠΉΠ» Ρ€7):

> save my_proc, `my_lib.m`: # запись Ρ„Π°ΠΉΠ»Π° my_proc ΠΈ

> # Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° my_lib.m;

> load `my_lib.m`: # считываниС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

> # my_lib.m.

10.5.2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

Если ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ составлСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ каТутся Π²Π°ΠΌ простыми, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π·Π½Π°Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ, скорСС всСго, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚Π΅ нСсколько ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚Π΅Π»ΠΈ Π±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ β€” Ссли Π½Π΅ для ΠΏΠΎΡ‚ΠΎΠΌΠΊΠΎΠ², Ρ‚ΠΎ хотя Π±Ρ‹ для своСй повсСднСвной Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘Π΄Π΅Π»Π°Ρ‚ΡŒ это Π² Maple довольно просто.

ΠŸΡ€Π΅ΠΆΠ΄Π΅ всСго Π½Π°Π΄ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ имя своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ mylib, ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ для Π½Π΅Π΅ Π½Π° дискС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ (ΠΏΠ°ΠΏΠΊΡƒ) с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π² Maple Π°ΡΡΠΎΡ†ΠΈΠΈΡ€ΡƒΡŽΡ‚ΡΡ с Ρ‚Π°Π±Π»ΠΈΡ†Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°Π΄ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ-ΠΏΡƒΡΡ‚Ρ‹ΡˆΠΊΡƒ ΠΏΠΎΠ΄ Π±ΡƒΠ΄ΡƒΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

> restart;

> mylib :=table();

mylib := table([])

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ ввСсти свои Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Они Π·Π°Π΄Π°ΡŽΡ‚ΡΡ с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ β€” Π²Π½Π°Ρ‡Π°Π»Π΅ указываСтся имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Ρ… скобках имя ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Для ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π·Π°Π΄Π°Π΄ΠΈΠΌ Ρ‚Ρ€ΠΈ простыС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ f1, f2 ΠΈ f3:

> mylib[f1] :=proc(x::anything) sin(x) +cos(x) end:

> mylib[f2]:=proc(x::anything) sin(x)^2+cos(x)^2 end:

> mylib[f3]:=proc(x::anything) if x=0 then 1 else sin(x)/x fi end:

РСкомСндуСтся Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° диск. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌΡΡ, скаТСм, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ:

> mylib[f1](Ρ…);

sin(x) +cos(x)

> mylib[f1](1.);

1.381773291

> mylib[f2](x);

sin(x)Β² +cos(x)Β²

> simplify(mylib[f2](x));

1

> evalf(mylib[f3](x));

> sin(0)/0;

Error, division by zero

> mylib[f3](0);

1

> evalf(mylib[f3](.5));

.9588510772

МоТно ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ. Они прСдставлСны Π½Π° рис. 10.5.

Рис. 10.5. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ f1, f2 ΠΈ f3

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ with ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° mylib Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Π½Π΅Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹. Π˜Ρ… список Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ with(mylib):

> with(mylib);

[f1,f2,f3]

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ эту Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΠΎΠ΄ своим ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½Π° диск с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ save:

> save(mylib, `с:/mylib.m`);

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ примСняСмый для указания ΠΏΡƒΡ‚ΠΈ Π·Π½Π°ΠΊ \ Π² строках Maple-языка ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΊΠ°ΠΊ Π·Π½Π°ΠΊ продолТСния строки. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π·Π½Π°ΠΊ \\, Π»ΠΈΠ±ΠΎ Π·Π½Π°ΠΊ /. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ„Π°ΠΉΠ» записан Π² ΠΊΠΎΡ€Π΅Π½ΡŒ диска Π‘. Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰ΡƒΡŽΡΡ Π² составС систСмы), ΡƒΠΊΠ°Π·Π°Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ Π½Π΅Π΅.

ПослС всСго этого Π½Π°Π΄ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» записан. ПослС этого ΠΌΠΎΠΆΠ½ΠΎ сразу ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Для этого Π²Π½Π°Ρ‡Π°Π»Π΅ слСдуСт ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ restart ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ€Π°Π½Π΅Π΅ Π²Π²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ опрСдСлСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€:

> restart;

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ with ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этих ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ ΡƒΠΆΠ΅ Π½Π΅Ρ‚:

> with(mylib);

Error, (in pacman:-pexports) mylib is not a package

ПослС этого ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ read Π½Π°Π΄ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»:

> read(`с:/mylib.n`);

Имя Ρ„Π°ΠΉΠ»Π° Π½Π°Π΄ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ save. Если всС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ, Ρ‚ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° with Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² вашСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ списка ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ f1, f2 ΠΈ f3:

> with(mylib);

[f1, f2, f3]

И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, ΠΌΠΎΠΆΠ½ΠΎ вновь ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π²Π΅Π΄Π΅Π½Ρ‹ ΠΈΠ· Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

> f1(x);

sin(x) +cos(x)

> simplifΡƒ(f2(Ρƒ));

1

> f3(0);

1

> f3(1.);

.8414709848

ΠžΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ Π²Ρ‹ΡˆΠ΅ способ создания своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²ΠΏΠΎΠ»Π½Π΅ устроит Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Однако Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ слоТный ΠΈ Π±ΠΎΠ»Π΅Π΅ Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹ΠΉΒ» способ Π²Π²ΠΎΠ΄Π° своСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² состав ΡƒΠΆΠ΅ ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΉΡΡ. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ этого Maple ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ s1, s2, β€¦ ΠΈ считывания ΠΈΡ… ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² file1, file2, …:

savelib(s1, s2, sn, filename)

readlib(f, file1, file2, ...)

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° makehelp ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ стандартноС справочноС описаниС Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€:

makehelp(n,f,b)

Π³Π΄Π΅ n β€” Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΡ‹, f β€” имя тСкстового Ρ„Π°ΠΉΠ»Π°, содСрТащСго тСкст справки (Ρ„Π°ΠΉΠ» готовится ΠΊΠ°ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ Maple) ΠΈ b β€” имя Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. БистСмная пСрСмСнная libname Ρ…Ρ€Π°Π½ΠΈΡ‚ имя Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Для рСгистрации созданной справки Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π²ΠΈΠ΄Π°

libname:=libname, `/mylib`;

Π‘ дСталями примСнСния этих ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ Π² справочной систСмС.

К созданию своих Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ Π½Π°Π΄ΠΎ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ достаточно остороТно. Π˜Ρ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π»ΠΈΡˆΠ°Π΅Ρ‚ ваши Maple-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ совмСстимости со стандартной вСрсий Maple. Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ-Π΄Π²Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΏΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΈΡ… Π² Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ½ΠΈ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½Ρ‹. Π˜Π½Π°Ρ‡Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Ρ‹Π½ΡƒΠΆΠ΄Π΅Π½Ρ‹ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ своСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Она Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ оказываСтся большСй ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ, Ρ‡Π΅ΠΌ Ρ„Π°ΠΉΠ» самого Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. НС всСгда ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΈΡ†Π΅ΠΏΠ»ΡΡ‚ΡŒ малСнький Ρ„Π°ΠΉΠ» Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊ большой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ, скорСС всСго, для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° попросту Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

ОсобСнно рискованно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Maple 9.5/10. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΈΠ΄Ρ‚ΠΈ Π½Π° это ΠΈΠ»ΠΈ Π½Π΅Ρ‚ β€” Π΄Π΅Π»ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. РазумССтся, Ссли Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ своих ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€, Ρ‚ΠΎ Π΅Π΅ Π½Π°Π΄ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ, Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

10.6. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

10.6.1. РСализация ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ ΠΡŒΡŽΡ‚ΠΎΠ½Π° Π² символьном Π²ΠΈΠ΄Π΅

Найти достаточно ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΈ Π½Π°Π³Π»ΡΠ΄Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ отсутствуСт Π² систСмС Maple 9.5/10, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ просто. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для дСмонстрации Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ΠΈ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ аналитичСских ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ, ΡΡ‚Π°Π²ΡˆΠΈΠΌ классичСским β€” Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΡŒΡŽΡ‚ΠΎΠ½Π° ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π½Π΅Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ³ΠΎ уравнСния Π²ΠΈΠ΄Π° f(x)=0.