4
<title>RA: Expressions</title>
5
<meta name="generator" content="Bluefish 2.2.11" >
6
6
<meta name="author" content="Viktor Bursian" >
7
<meta name="date" content="2020-07-16T01:14:01+0300" >
8
<meta name="copyright" content="">
9
<meta name="keywords" content="">
10
<meta name="description" content="">
11
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
12
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
13
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
14
<meta http-equiv="content-style-type" content="text/css">
15
<meta http-equiv="expires" content="0">
18
<h2>Выражения над физическими величинами и функциями.</h2>
19
<a name="briefly"></a>
20
<h3>Неформальное описание и примеры.</h3>
21
<p>Выражение представляется в обычной форме с четырьмя действиями
22
арифметики и операцией возведения в степень (^ или **). Члены
23
можно группировать круглыми или фигурными скобками:</p>
24
<p><code>5 - (1+2*2)</code></p>
25
<p><code>3^2+4^2-5**2</code></p>
26
<p>Если операнды представляют собой целые числа, то для операций +,
27
-, * и возведения в целую неотрицательную степень ответ тоже будет
29
<p>Представление нецелых чисел содержит десятичную точку и/или
31
<p><code>-3.1415 * 2.00 + 62830e-3 </code></p>
32
<p>Необычным является то, как точность представления операндов
33
влияет на точность представления результата:</p>
34
<p><code>0.2 + .162345 = 0.4</code></p>
35
<p><code>0.200 + .162345 = 0.362</code></p>
36
<p>Фактически эти дробные числа являются безразмерными физвеличинами
37
с погрешностью, определяемой числом знаков.</p>
38
<p>Можно использовать и размерные физвеличины, указывая единицы в
39
квадратных скобках:</p>
40
<p><code>9.82[m/s2]</code> — 9 целых 82 сотых метра на секунду в
42
<p><code>9.82[m*s-2]</code> — то же самое </p>
43
<p>Пробелы между числом и квадратной скобкой, а также внутри скобок
44
не допускаются. Квадратные скобки можно опустить в случае, когда
45
единицы измерения состоят из одной единицы, обозначаемой латинскими
46
буквами, с метрическим префиксом или без оного:</p>
47
<p><code>100ms</code></p>
48
<p><code>15Э</code> - ошибка</p>
49
<p><code>15Oe</code> - можно, эквивалентно <code>15[Oe]</code></p>
50
<p>Будьте осторожны: эти правила просты и логичны, но иногда
51
порождают нечто не очень простое для восприятия:</p>
52
<p><code>9.82[m/s2]*100ms^2/2</code> — здесь написано ускорение,
53
умножить на квадрат времени, всё делить пополам; результат равен
55
<p>В выражении можно использовать предопределённые константы и
57
<p><code>sin(pi/2)</code></p>
58
<p>Множество констант и функций расширяемо — часть из них определена
59
в ядре программы RA (см. ниже), более специфические могут быть
60
определены в плагинах.</p>
61
<p>Обратите внимание, аргументами некоторых функций могут быть
62
размерные физвеличины:</p>
63
<p><code>sin( 30degree )</code> — синус тридцати градусов, равно
65
<p><code>sin( 30 )</code> — синус тридцати, равно -0.988032</p>
66
<p>Выражение — это объект, который может иметь арибуты. Значения
67
этих атрибутов можно использовать в выражении. Так, если у
69
<p><code>pi*@R^2</code></p>
70
<p>имеется атрибут с именем 'R' и со значением 2cm, то значением
71
выражения будет площадь круга с соответствующим радиусом.</p>
72
<p>Если у выражения есть атрибут с именем 'sample', у которого в
73
свою очередь имеется атрибут с именем 'size', у которого есть
74
атрибуты 'L' и 'W', то можно написать:</p>
75
<p><code>@sample@size@L * @sample@size@@W</code></p>
78
<p>Выше говорилось о выражениях над скалярными величинами со
79
скалярным результатом. Однако операндами выражения могут быть как
80
скаляры, так и функции одного переменного, в том числе
81
экспериментальные записи, представляющие собой таблично заданные
82
зависимости. Их можно складывать, делить друг на друга, умножать
83
на скалярную физвеличину, и т.п.</p>
84
<p>Чтобы указать запись в качестве операнда, можно добавить её в
85
качестве именованного атрибута к выражению и сослаться по имени
86
атрибута, или проще — сослаться на неё по уникальному номеру
88
<p><code>#2015.01.14.57 - #2014.6.8.1</code></p>
89
<p>Здесь из 57ой записи от 14 января 2015 года вычитается первая
90
запись от 8 июня 2014 года. Ссылку на запись можно несколько
91
сократить: <!--(i)--> не указывать первые две цифры года.<!-- ; (ii) вобще
92
опустить год, если он текущий; (iii) не указывать и месяц, если и
93
месяц, и год текущие; (iv) а ссылаясь на сегодняшную запись, можно
94
указывать только её номер. Так, если сегодня 14 января 2015 года,
95
то вышеприведённое выражение можно записать так: </p>
96
<p><code>#57 - #14.6.8.1</code></p>
7
<title> XXXXXXXXXXXXXXXXX - Research Assistant Manual</title>
9
@import url("../RA.css");
14
<h2>Выражения над физическими величинами и функциями</h2>
16
<article id="briefly">
17
<h3>Неформальное описание и примеры.</h3>
19
<p>Выражение представляется в обычной форме с четырьмя действиями
20
арифметики и операцией возведения в степень (^ или **). Члены
21
можно группировать круглыми или фигурными скобками:
23
<p><code>5 - (1+2*2)</code></p>
24
<p><code>3^2+4^2-5**2</code></p>
25
<p>Если операнды представляют собой целые числа, то для операций +,
26
-, * и возведения в целую неотрицательную степень ответ тоже будет
28
<p>Представление нецелых чисел содержит десятичную точку и/или
30
<p><code>-3.1415 * 2.00 + 62830e-3 </code></p>
31
<p>Необычным является то, как точность представления операндов
32
влияет на точность представления результата:</p>
33
<p><code>0.2 + .162345 = 0.4</code></p>
34
<p><code>0.200 + .162345 = 0.362</code></p>
35
<p>Фактически эти дробные числа являются безразмерными физвеличинами
36
с погрешностью, определяемой числом знаков.</p>
37
<p>Можно использовать и размерные физвеличины, указывая единицы в
38
квадратных скобках:</p>
39
<p><code>9.82[m/s2]</code> — 9 целых 82 сотых метра на секунду в
41
<p><code>9.82[m*s-2]</code> — то же самое </p>
42
<p>Пробелы между числом и квадратной скобкой, а также внутри скобок
43
не допускаются. Квадратные скобки можно опустить в случае, когда
44
единицы измерения состоят из одной единицы, обозначаемой латинскими
45
буквами, с метрическим префиксом или без оного:</p>
46
<p><code>100ms</code></p>
47
<p><code>15Г</code> - ошибка</p>
48
<p><code>15G</code> - можно, эквивалентно <code>15[G]</code></p>
49
<p>Будьте осторожны: эти правила просты и логичны, но иногда
50
порождают нечто не очень простое для восприятия:</p>
51
<p><code>9.82[m/s2]*100ms^2/2</code> — здесь написано ускорение,
52
умножить на квадрат времени, всё делить пополам; результат равен
54
<p>В выражении можно использовать предопределённые константы и
56
<p><code>sin(pi/2)</code></p>
57
<p>Множество констант и функций расширяемо — часть из них определена
58
в ядре программы RA (см. ниже), более специфические могут быть
59
определены в плагинах.</p>
60
<p>Обратите внимание, аргументами некоторых функций могут быть
61
размерные физвеличины:</p>
62
<p><code>sin( 30degree )</code> — синус тридцати градусов, равно
64
<p><code>sin( 30 )</code> — синус тридцати, равно -0.988032</p>
65
<p>Выражение — это объект, который может иметь арибуты. Значения
66
этих атрибутов можно использовать в выражении. Так, если у
68
<p><code>pi*@R^2</code></p>
69
<p>имеется атрибут с именем 'R' и со значением 2cm, то значением
70
выражения будет площадь круга с соответствующим радиусом.</p>
71
<p>Если у выражения есть атрибут с именем 'sample', у которого в
72
свою очередь имеется атрибут с именем 'size', у которого есть
73
атрибуты 'L' и 'W', то можно написать:</p>
74
<p><code>@sample@size@L * @sample@size@@W</code></p>
77
<p>Выше говорилось о выражениях над скалярными величинами со
78
скалярным результатом. Однако операндами выражения могут быть как
79
скаляры, так и функции одного переменного, в том числе
80
экспериментальные записи, представляющие собой таблично заданные
81
зависимости. Их можно складывать, делить друг на друга, умножать
82
на скалярную физвеличину, и т.п.</p>
83
<p>Чтобы указать запись в качестве операнда, можно добавить её в
84
качестве именованного атрибута к выражению и сослаться по имени
85
атрибута, или проще — сослаться на неё по уникальному номеру
87
<p><code>#2015.01.14.57 - #2014.6.8.1</code></p>
88
<p>Здесь из 57ой записи от 14 января 2015 года вычитается первая
89
запись от 8 июня 2014 года. Ссылку на запись можно несколько
90
сократить: <!--(i)--> не указывать первые две цифры года.<!-- ; (ii) вообще
91
опустить год, если он текущий; (iii) не указывать и месяц, если и
92
месяц, и год текущие; (iv) а ссылаясь на сегодняшную запись, можно
93
указывать только её номер. Так, если сегодня 14 января 2015 года,
94
то вышеприведённое выражение можно записать так: </p>
95
<p><code>#57 - #14.6.8.1</code></p>
97
<p>Кроме того, можно сослаться на атрибут записи:</p>
99
<p><code>#57 + #57@angle * 5[kphoton/s/degree]</code></p>
100
<p>Здесь к кривой #57 прибавляется константная подставка,
98
<p>Кроме того, можно сослаться на атрибут записи:</p>
100
<p><code>#57 + #57@angle * 5[kphoton/s/degree]</code></p>
101
<p>Здесь к кривой #57 прибавляется константная подставка,
103
<p><code>#15.01.14.57 + #15.01.14.57@angle * 5[kphoton/s/degree]</code></p>
104
<p>Здесь к кривой #57 прибавляется константная подставка,
105
пропорциональная значению атрибута angle у этой же кривой.
106
Обратите внимание на размерный множитель, который переводит angle
107
в величину, совместимую по размерности с ординатами кривой.
108
(Физического смысла у такого выражения по всей видимости нет, но
109
это позволяет несколько спектров, записанных при разной ориентации
110
образца, показать на одном графике со сдвигом по вертикали.)</p>
102
<p><code>#15.01.14.57 + #15.01.14.57@angle * 5[kphoton/s/degree]</code></p>
103
<p>Здесь к кривой #57 прибавляется константная подставка,
104
пропорциональная значению атрибута angle у этой же кривой.
105
Обратите внимание на размерный множитель, который переводит angle
106
в величину, совместимую по размерности с ординатами кривой.
107
(Физического смысла у такого выражения по всей видимости нет, но
108
это позволяет несколько спектров, записанных при разной ориентации
109
образца, показать на одном графике со сдвигом по вертикали.)</p>
114
115
<h3>Перечень констант и функций, определённых в ядре RA.</h3>
115
116
<p>Функции над вещественными числами и безразмерными физвеличинами:</p>
116
117
<p><b>exp(</b> <i>аргумент</i> <b>)</b></p>