Add symbol checks to translators for MCALL, MARRAYREF, and MARRAYSET
[maxima.git] / doc / info / ru / Help.texi
blobd7b7f3bedcd96804b875c30f000e6d24c212c52b
1 @c Language=Russian
2 @c Encoding=UTF-8
3 @c File=Help.texi 
4 @c OriginalRevision=1.25
5 @c TranslatedBy: (c) 2007-02 Andrey Siver <ihep-2005@yandex.ru>
7 @menu
8 * Lisp и Maxima::            
9 * Сборка мусора::          
10 * Документация::               
11 * Справочная система::        
12 @end menu
14 @node Lisp и Maxima, Сборка мусора, Справка, Справка
15 @section Lisp и Maxima
17 Maxima написана на Lisp, поэтому легко получить доступ к Lisp функциям и переменным из Maxima и наоборот.
18 Lisp и Maxima символы различают с помощью соглашения об именах.
19 Lisp символ, который начинается со знака @code{$} соответствует Maxima символу 
20 без знака доллара.
21 @c NEED TO MENTION THIS OR IS IT JUST CLUTTERING ??
22 @c This includes special Maxima variables such as @code{%} and input and output labels,
23 @c which appear as @code{$%}, @code{$%i1}, @code{$%o1}, etc., in Lisp.
24 Maxima символ, который начинается со знака @code{?} соответствует 
25 Lisp символу без знака вопроса.
26 Например, Maxima символ @code{foo} соответствует Lisp символу @code{$foo},
27 в то время как Maxima символ @code{?foo} соответствует Lisp символу @code{foo},
28 Заметим, что @code{?foo} записано без пробелов между @code{?} и @code{foo};
29 иначе можно перепутать с @code{describe ("foo")}.
31 @code{-}, @code{*}, и другие специальные знаки в Lisp символах
32 должны быть экранированы @code{\} везде, где они появляются в коде Maxima.
33 Например, Lisp идентификатор @code{*foo-bar*} записывается как @code{?\*foo\-bar\*} в Maxima.
35 Lisp код может быть выполнен из Maxima сессии. Простая строка с Lisp кодом 
36 (содержащая одну и более форм) может быть выполнена с помощью специальной 
37 команды @code{:lisp}. Например,
39 @example
40 (%i1) :lisp (foo $x $y)
41 @end example
43 @noindent
44 вызывает Lisp функцию @code{foo} с Maxima переменными @code{x} и @code{y} в качестве аргументов.
45 @code{:lisp} конструкция может появляться в интерактивном приглашении
46 или в файле, исполняемом командой @code{batch} или @code{demo}, 
47 но только не в файле исполняемом командами @code{load}, @code{batchload}, 
48 @code{translate_file}, или @code{compile_file}.
50 Функция @code{to_lisp()} открывает интегративную Lisp сессию.
51 Ввод @code{(to-maxima)} закрывает Lisp сессию и возвращает к Maxima.
52 @c I DON'T EVEN WANT TO MENTION USING CTRL-C TO OPEN A LISP SESSION.
53 @c (1) IT TAKES EXTRA SET UP TO GET STARTED NAMELY :lisp (setq *debugger-hook* nil)
54 @c (2) IT GETS SCREWED UP EASILY -- TYPE SOMETHING WRONG AND YOU CAN'T GET BACK TO MAXIMA
55 @c (3) IT DOESN'T OFFER FUNCTIONALITY NOT PRESENT IN THE to_lisp() SESSION
57 Lisp функции и переменные, которые, как известно, видны в Maxima как
58 функции и переменные с обычными именами (без специальной пунктуации)
59 должны иметь Lisp имена, начинающиеся со знака @code{$}.
61 Maxima чувствительна к регистру символов, различая буквы в нижнем и 
62 верхнем регистрах, в идентификаторах, в то время как Lisp - нет.
63 Существуют некоторые правила, управляющие переводом имен между Lisp 
64 и Maxima.
66 @enumerate
67 @item
68 Lisp идентификатор не заключенный в вертикальные черты соответствует Maxima идентификатору в нижнем регистре. 
69 Является ли Lisp идентификатор в верхнем, нижнем, или смешанном регистре, регистр игнорируется.
70 То есть, Lisp @code{$foo}, @code{$FOO}, и @code{$Foo} - все соответствуют Maxima @code{foo}.
71 @item
72 Lisp идентификатор, имеющий все знаки в нижнем или все знаки в верхнем регистре
73 и заключенный в вертикальные черты, соответствует Maxima идентификатору с именем в обратном регистре.
74 То есть, верхний регистр меняется в нижний и нижний регистр - в верхний.
75 Например, Lisp @code{|$FOO|} и @code{|$foo|}
76 соответствуют Maxima @code{foo} и @code{FOO}, в указанном порядке.
77 @item
78 Lisp идентификатор, который записан в смешанном регистре и заключенный в вертикальные черты соответствует Maxima идентификатору в том же регистре.
79 Например, Lisp @code{|$Foo|} соответствует Maxima @code{Foo}.
80 @end enumerate
82 @code{#$} Lisp макрооператор позволяет использовать Maxima выражения в Lisp коде.
83 @code{#$@var{expr}$} превращается в Lisp выражение, эквивалентное Maxima выражению @var{expr}.
85 @example
86 (msetq $foo #$[x, y]$)
87 @end example
89 @noindent
91 Это имеет тот же самый эффект как при вводе:
93 @example
94 (%i1) foo: [x, y];
95 @end example
97 @noindent
98 Lisp функция @code{displa} печатает выражение в Maxima форме.
100 @example
101 (%i1) :lisp #$[x, y, z]$ 
102 ((MLIST SIMP) $X $Y $Z)
103 (%i1) :lisp (displa '((MLIST SIMP) $X $Y $Z))
104 [x, y, z]
106 @end example
108 Функции, заданные в Maxima не являются обычными Lisp функциями.
109 Lisp функция @code{mfuncall} вызывает Maxima функцию.
110 Например:
112 @example
113 (%i1) foo(x,y) := x*y$
114 (%i2) :lisp (mfuncall '$foo 'a 'b)
115 ((MTIMES SIMP) A B)
116 @end example
118 Некоторые Lisp функции скрыты в Maxima пакете, а именно такие как:
120 @code{complement},
121 @code{continue},
122 @code{//},
123 @code{float},
124 @code{functionp},
125 @code{array},
126 @code{exp},
127 @code{listen},
128 @code{signum},
129 @code{atan},
130 @code{asin},
131 @code{acos},
132 @code{asinh},
133 @code{acosh},
134 @code{atanh},
135 @code{tanh},
136 @code{cosh},
137 @code{sinh},
138 @code{tan},
139 @code{break}
140 и @code{gcd}.
142 @opencatbox{Категории:}
143 @category{Программирование}
144 @closecatbox
146 @node Сборка мусора, Документация, Lisp и Maxima, Справка
147 @section Сборка мусора
149 Вычисление в символьном виде имеют тенденцию создавать много ``мусора'', 
150 и эффективное управление этим мусором может стать решающим для успешного 
151 выполнения некоторых программ.
153 @c HOW MUCH OF THE FOLLOWING STILL HOLDS ??
154 @c WHAT ABOUT GC IN GCL ON MS WINDOWS ??
155 @c SHOULD WE SAY SOMETHING ABOUT GC FOR OTHER LISPS ??
156 Под GCL, на UNIX системах, где доступны вызовы системы ``mprotect'', 
157 (включая SUN OS 4.0 и некоторые версии BSD) доступна прямая сборка мусора.   
158 Это ограничивает сборку страницами, в которые недавно производилась запись.    
159 См. документацию по GCL по ключевым словам ALLOCATE и GBC. На уровне
160 Lisp, установка (setq si::*notify-gbc* t) поможет вам определить, какие области
161 памяти, возможно, требуют больше пространства.
163 @node Документация, Справочная система, Сборка мусора, Справка
164 @section Документация
166 @c SHOULD TALK ABOUT OTHER FORMS OF DOCUMENTATION ASIDE FROM ON-LINE MANUAL.
168 Руководство пользователя Maxima можно просматривать в различных форматах.
169 Из интерактивного приглашения Maxima, руководство пользователя
170 просматривается как обычный текст командой @code{?} (то есть, функция @code{describe}).
171 Руководство пользователя просматривается как @code{info} гипертекст с помощью @code{info} 
172 просмотрщиком и как веб-страница с помощью обычного веб-браузера.
174 @code{example} показывает примеры для многих Maxima функций.
175 Например,
177 @example
178 (%i1) example (integrate);
179 @end example
181 дает
183 @example
184 (%i2) test(f):=block([u],u:integrate(f,x),ratsimp(f-diff(u,x)))
185 (%o2) test(f) := block([u], u : integrate(f, x), 
187                                          ratsimp(f - diff(u, x)))
188 (%i3) test(sin(x))
189 (%o3)                           0
190 (%i4) test(1/(x+1))
191 (%o4)                           0
192 (%i5) test(1/(x^2+1))
193 (%o5)                           0
194 @end example
196 и дополнительный вывод.
198 @opencatbox{Категории:}
199 @category{Работа в консоли}
200 @closecatbox
202 @node Справочная система,  , Документация, Справка
203 @section Справочная система
205 @deffn {Функция} demo (@var{filename})
206 вычисляет Maxima выражения в @var{filename} и показывает результаты.
207 @code{demo} останавливается после вычислений каждого выражения 
208 и продолжает после того, как пользователь нажмет ``Enter''.
209 (Если запущена Xmaxima, @code{demo} необходимо перед вводом 
210 ставить @code{;}).
212 @code{demo} просматривает список директорий
213 @code{file_search_demo}, чтобы найти @code{filename}.
214 Если файл имеет расширение @code{dem}, то его можно опустить.
215 См. также @code{file_search}.
217 @code{demo} вычисляет свои аргументы.
218 @code{demo} возвращает имя демонстрационного файла.
220 Пример:
222 @example
223 (%i1) demo ("disol");
225 batching /home/wfs/maxima/share/simplification/disol.dem
226  At the _ prompt, type ';' followed by enter to get next demo
227 (%i2)                      load("disol")
230 (%i3)           exp1 : a (e (g + f) + b (d + c))
231 (%o3)               a (e (g + f) + b (d + c))
234 (%i4)                disolate(exp1, a, b, e)
235 (%t4)                         d + c
237 (%t5)                         g + f
239 (%o5)                   a (%t5 e + %t4 b)
242 (%i5) demo ("rncomb");
244 batching /home/wfs/maxima/share/simplification/rncomb.dem
245  At the _ prompt, type ';' followed by enter to get next demo
246 (%i6)                     load("rncomb")
249                              z         x
250 (%i7)               exp1 : ----- + ---------
251                            y + x   2 (y + x)
252                           z         x
253 (%o7)                   ----- + ---------
254                         y + x   2 (y + x)
257 (%i8)                     combine(exp1)
258                           z         x
259 (%o8)                   ----- + ---------
260                         y + x   2 (y + x)
263 (%i9)                     rncombine(%)
264                              2 z + x
265 (%o9)                       ---------
266                             2 (y + x)
269                              d   c   b   a
270 (%i10)                exp2 : - + - + - + -
271                              3   3   2   2
272                           d   c   b   a
273 (%o10)                    - + - + - + -
274                           3   3   2   2
277 (%i11)                    combine(exp2)
278                       2 d + 2 c + 3 (b + a)
279 (%o11)                ---------------------
280                                 6
283 (%i12)                   rncombine(exp2)
284                       2 d + 2 c + 3 b + 3 a
285 (%o12)                ---------------------
286                                 6
289 (%i13) 
290 @end example
292 @opencatbox{Категории:}
293 @category{Работа в консоли}
294 @category{Ввод файлов}
295 @closecatbox
297 @end deffn
299 @anchor{describe}
300 @deffn {Функция} describe (@var{string})
301 @deffnx {Функция} describe (@var{string}, exact)
302 @deffnx {Функция} describe (@var{string}, inexact)
303 @ifinfo
304 @fnindex Справка
305 @end ifinfo
307 @code{describe(@var{string})} эквивалентно @code{describe(@var{string}, exact)}.
309 @code{describe(@var{string}, exact)} ищет элемент, с заголовком равным  
310 (независимо от регистра) @var{string}, если такой элемент есть.
312 @code{describe(@var{string}, inexact)} ищет все документированные элементы, 
313 которые содержат @var{string} в своих заголовках.
314 Если есть более чем один такой элемент, Maxima спросит пользователя выбрать
315 элемент или несколько элементов для отображения.
317 В интерактивном приглашении, @code{? foo} (с пробелом между @code{?} и @code{foo})
318 эквивалентно @code{describe("foo", exact)}, и @code{?? foo} эквивалентно 
319 @code{describe("foo", inexact)}.
321 @code{describe("", inexact)} дает список всех тем, документированных в руководстве пользователя.
323 @code{describe} не вычисляет свой аргумент.
324 @code{describe} возвращает @code{true} если документация найдена, @code{false} в противном случае.
326 См. также @ref{Документация}.
328 Пример:
330 @example
331 (%i1) ?? integ
332  0: Functions and Variables for Elliptic Integrals
333  1: Functions and Variables for Integration
334  2: Introduction to Elliptic Functions and Integrals
335  3: Introduction to Integration
336  4: askinteger  (Functions and Variables for Simplification)
337  5: integerp  (Functions and Variables for Miscellaneous Options)
338  6: integer_partitions  (Functions and Variables for Sets)
339  7: integrate  (Functions and Variables for Integration)
340  8: integrate_use_rootsof  (Functions and Variables for
341     Integration)
342  9: integration_constant_counter  (Functions and Variables for
343     Integration)
344  10: nonnegintegerp  (Functions and Variables for linearalgebra)
345 Enter space-separated numbers, `all' or `none': 7 8
347  -- Function: integrate (<expr>, <x>)
348  -- Function: integrate (<expr>, <x>, <a>, <b>)
349      Attempts to symbolically compute the integral of <expr> with
350      respect to <x>.  `integrate (<expr>, <x>)' is an indefinite
351      integral, while `integrate (<expr>, <x>, <a>, <b>)' is a
352      definite integral, [...]
353      
354  -- Option variable: integrate_use_rootsof
355      Default value: `false'
357      When `integrate_use_rootsof' is `true' and the denominator of
358      a rational function cannot be factored, `integrate' returns
359      the integral in a form which is a sum over the roots (not yet
360      known) of the denominator.
361      [...]
362 @end example
364 В этом примере, были выбраны элементы 7 и 8
365 (вывод команды сокращен, что обозначено @code{[...]}).
366 Все элементы или ни один из элементов могут быть выбраны при помощи @code{all} 
367 или @code{none}, что можно также сократить до @code{a} и @code{n} соотвественно.
369 @opencatbox{Категории:}
370 @category{Работа в консоли}
371 @category{Справка}
372 @closecatbox
374 @end deffn
376 @deffn {Функция} example (@var{topic})
377 @deffnx {Функция} example ()
378 @code{example (@var{topic})} показывает некоторые примеры для символа @var{topic} (не строки).
379 Большинство @var{topic} являются именами функций.
380 @code{example ()} возвращает список всех доступных @var{topic}.
382 Имя файла содержащего эти примеры задано глобальной переменной @code{manual_demo}, 
383 которая исходно равна @code{"manual.demo"}.
385 @code{example} не вычисляет свой аргумент.
386 @code{example} возвращает @code{done}
387 только если нет ошибки или отсутствия аргумента. 
388 @code{example} возвращает список всех подходящих тем.
390 Примеры:
392 @example
393 (%i1) example (append);
394 (%i2) append([x+y,0,-3.2],[2.5E+20,x])
395 (%o2)             [y + x, 0, - 3.2, 2.5E+20, x]
396 (%o2)                         done
397 (%i3) example (coeff);
398 (%i4) coeff(b+tan(x)+2*a*tan(x) = 3+5*tan(x),tan(x))
399 (%o4)                      2 a + 1 = 5
400 (%i5) coeff(1+x*%e^x+y,x,0)
401 (%o5)                         y + 1
402 (%o5)                         done
403 @end example
405 @opencatbox{Категории:}
406 @category{Работа в консоли}
407 @closecatbox
409 @end deffn