~vbursian/research-assistant/intervers

« back to all changes in this revision

Viewing changes to help/core/Expressions.html

  • Committer: Viktor Bursian
  • Date: 2020-08-09 18:44:46 UTC
  • mto: (10.1.6 intervers)
  • mto: This revision was merged to the branch mainline in revision 11.
  • Revision ID: vik@pryanik-20200809184446-rblc1ys65pjm4r38
Help system more refactored and futher extended.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
<!DOCTYPE html>
 
2
 
2
3
<html>
3
 
  <head>
4
 
    <title>RA: Expressions</title>
5
 
    <meta name="generator" content="Bluefish 2.2.11" >
 
4
<head>
 
5
    <meta charset="utf-8">
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">
16
 
  </head>
17
 
  <body>
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
 
      -, * и возведения в целую неотрицательную степень ответ тоже будет
28
 
      целым.</p>
29
 
    <p>Представление нецелых чисел содержит десятичную точку и/или
30
 
      порядок:</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 сотых метра на секунду в
41
 
      квадрате </p>
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
 
      умножить на квадрат времени, всё делить пополам; результат равен
54
 
      49.10mm</p>
55
 
    <p>В выражении можно использовать предопределённые константы и
56
 
      функции:</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> — синус тридцати градусов, равно
64
 
      0.5000000</p>
65
 
    <p><code>sin( 30 )</code> — синус тридцати, равно -0.988032</p>
66
 
    <p>Выражение — это объект, который может иметь арибуты. Значения
67
 
      этих атрибутов можно использовать в выражении. Так, если у
68
 
      выражения</p>
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>
76
 
    <p><br>
77
 
    </p>
78
 
    <p>Выше говорилось о выражениях над скалярными величинами со
79
 
      скалярным результатом. Однако операндами выражения могут быть как
80
 
      скаляры, так и функции одного переменного, в том числе
81
 
      экспериментальные записи, представляющие собой таблично заданные
82
 
      зависимости. Их можно складывать, делить друг на друга, умножать
83
 
      на скалярную физвеличину, и т.п.</p>
84
 
    <p>Чтобы указать запись в качестве операнда, можно добавить её в
85
 
      качестве именованного атрибута к выражению и сослаться по имени
86
 
      атрибута, или проще — сослаться на неё по уникальному номеру
87
 
      записи:</p>
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>
 
8
    <style>
 
9
        @import url("../RA.css");
 
10
    </style>
 
11
</head>
 
12
<body>
 
13
 
 
14
    <h2>Выражения над физическими величинами и функциями</h2>
 
15
 
 
16
    <article id="briefly">
 
17
        <h3>Неформальное описание и примеры.</h3>
 
18
        
 
19
        <p>Выражение представляется в обычной форме с четырьмя действиями
 
20
          арифметики и операцией возведения в степень (^ или **). Члены
 
21
          можно группировать круглыми или фигурными скобками:
 
22
        </p>
 
23
        <p><code>5 - (1+2*2)</code></p>
 
24
        <p><code>3^2+4^2-5**2</code></p>
 
25
        <p>Если операнды представляют собой целые числа, то для операций +,
 
26
          -, * и возведения в целую неотрицательную степень ответ тоже будет
 
27
          целым.</p>
 
28
        <p>Представление нецелых чисел содержит десятичную точку и/или
 
29
          порядок:</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 сотых метра на секунду в
 
40
          квадрате </p>
 
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
          умножить на квадрат времени, всё делить пополам; результат равен
 
53
          49.10mm</p>
 
54
        <p>В выражении можно использовать предопределённые константы и
 
55
          функции:</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> — синус тридцати градусов, равно
 
63
          0.5000000</p>
 
64
        <p><code>sin( 30 )</code> — синус тридцати, равно -0.988032</p>
 
65
        <p>Выражение — это объект, который может иметь арибуты. Значения
 
66
          этих атрибутов можно использовать в выражении. Так, если у
 
67
          выражения</p>
 
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>
 
75
        <p><br>
 
76
        </p>
 
77
        <p>Выше говорилось о выражениях над скалярными величинами со
 
78
          скалярным результатом. Однако операндами выражения могут быть как
 
79
          скаляры, так и функции одного переменного, в том числе
 
80
          экспериментальные записи, представляющие собой таблично заданные
 
81
          зависимости. Их можно складывать, делить друг на друга, умножать
 
82
          на скалярную физвеличину, и т.п.</p>
 
83
        <p>Чтобы указать запись в качестве операнда, можно добавить её в
 
84
          качестве именованного атрибута к выражению и сослаться по имени
 
85
          атрибута, или проще — сослаться на неё по уникальному номеру
 
86
          записи:</p>
 
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>
 
96
        -->
 
97
        <p>Кроме того, можно сослаться на атрибут записи:</p>
 
98
    <!--
 
99
        <p><code>#57 + #57@angle * 5[kphoton/s/degree]</code></p>
 
100
        <p>Здесь к кривой #57 прибавляется константная подставка,
97
101
    -->
98
 
    <p>Кроме того, можно сослаться на атрибут записи:</p>
99
 
<!--
100
 
    <p><code>#57 + #57@angle * 5[kphoton/s/degree]</code></p>
101
 
    <p>Здесь к кривой #57 прибавляется константная подставка,
102
 
-->
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>
111
 
    <p><br>
112
 
    </p>
113
 
    <a name="list"></a>
 
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>
 
110
        <p><br>
 
111
        </p>
 
112
    </article>
 
113
    
 
114
    <article id="list">
114
115
    <h3>Перечень констант и функций, определённых в ядре RA.</h3>
115
116
    <p>Функции над вещественными числами и безразмерными физвеличинами:</p>
116
117
    <p><b>exp(</b> <i>аргумент</i> <b>)</b></p>
130
131
    <p><b>c</b> = 299792458[m/s]</p>
131
132
    <p><br>
132
133
    </p>
133
 
    <a name="listCommonMath"></a>
 
134
    </article>
 
135
    
 
136
    <article id="listCommonMath">
134
137
    <h3>Перечень операций и функционалов, из плагина CommonMath.</h3>
135
138
    <p>Под функционалом здесь понимается такое преобразование, в котором и
136
139
    результат, и аргументы могут быть не только физвеличинами, но и функциями
198
201
    &dash; свернуть в соответствии с симметрией C<sub>4v</sub></p>
199
202
    <p><br>
200
203
    </p>
201
 
    <a name="syntax"></a>
 
204
    </article>
 
205
    
 
206
    <article id="syntax">
202
207
    <h3>Синтаксис</h3>
203
208
    <p><br>
204
209
    </p>
419
424
      <b>.</b> </p>
420
425
    <p> Note: Decimal dot is the dot character, independently on system
421
426
      settings. </p>
422
 
  </body>
 
427
    </article>
 
428
    
 
429
</body>
423
430
</html>