Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Перевод
Каждый (с одноместным операндом) {R}← f¨ Y F может быть любой одноместной функцией. Y может быть любым массивом, каждый из пунктов которого в отдельности соответствует функции F. Полученная функция применяет функцию F отдельно к каждому пункту Y. Производная функции не обязательно возвращает результат. Если результат возвращен, R имеет ту же форму как Y, и его элементы - пункты, произведенные применением функции F к соответствующим пунктам Y. Если Y пуст, прототип R определяется путем применения функции операнда единожды к прототипу Y. Примеры
G← ('TOM' (⍳ 3))('DICK' (⍳ 4))('HARRY' (⍳ 5)) ⍴ G ⍴ ¨ G 2 2 2 ⍴ ¨ ¨ G 3 3 4 4 5 5 +⎕ FX¨ ('FOO1' 'A← 1')('FOO2' 'A← 2') FOO1 FOO2
Каждый (с двухэлементным операндом) {R} ← Xf¨ YF может быть любой двухэлементной функцией. X и Y могут быть любые массивы, чьи соответствующиепункты (скалярные расширения) соответствуют функции F, когда применены отдельно. Полученная функция применяется отдельно к каждой паре соответствующих элементов X и Y. Если X или Y будет скаляр или массив одного элемента, то он будет расширен, чтобы соответствовать c другим аргументом. Полученная функция не должна приводить к явному результату. Если результат возвращен, R будет иметь ту же самую форму как Y (после возможного скалярного расширения) чьи элементы - пункты, произведенные применением полученной функции к соответствующим пунктам X и Y. Если X или Y пусты, функция операнда применена единожды между первыми пунктами X и Y, чтобы определить прототип R.Примеры +G← (1 (2 3))(4 (5 6))(8 9)10 1 2 3 4 5 6 8 9 10 1⌽ ¨ G 2 3 1 5 6 4 9 8 10 1⌽ ¨ ¨ G 1 3 2 4 6 5 8 9 10 1⌽ ¨ ¨ ¨ G 1 2 3 4 5 6 8 9 10 1 2 3 4↑ ¨ G 1 4 5 6 8 9 0 10 0 0 0 'ABC', ¨ 'XYZ' AX BY CZ
Лекция от 2015.11.13 +A←? 2 2⍴ 9 4 3 4 1 +A←? 2 2⍴ 9 5 3 2 2 X←? 9 9 X 5 9 A+.× X правые части ветви 52 28 B← A+.× X ⌹ A ⌹ - домино, вращение матрицы. ⌹ A- обратная матрица от А 0.5  ̄ 0.75  ̄ 0.5 1.25 A+.× ⌹ A умножение исходящей матрицы на обратную 1 0 0 1 (⌹ A)+.× B 5 9 X 5 9 B⌹ A 5 9 BB←? 2 3⍴ 9 BB 8 4 2 2 6 8 BB⌹ A 2.5  ̄ 2.5  ̄ 5  ̄ 1.5 5.5 9 ? 3 ? 3 ? 3 генератор случайного числа с возвратом (в данном случае от 1 до 3) ? 3 3 3 3 3 3 6 случайных чисел от 1 до 3 1 2 2 1 2 2 2? 9 9 1 2? 9 6 9 2? 9 2 6 2? 9 2 7 2? 9 4 6 9? 9 3 6 8 5 4 7 1 2 9 9? 9 1 4 9 8 2 5 3 7 6 9? 9 2 1 6 4 7 3 9 5 8 9? 9 3 8 4 7 5 2 6 9 1 9? 9 5 7 2 8 4 1 9 3 6 9? 9 2 5 9 6 4 8 3 1 7 10? 9 количество запрашиваемых чисел больше, чем выборка DOMAIN ERROR: Deal right argument must be greater than or equal to the left argument 10? 9 ∧ ⍕ 3.62 ⍕ - форнад 3.62 2+⍕ 3.62 DOMAIN ERROR 2+⍕ 3.62 ∧ ⍴ ⍕ 3.62 т.к 3.62 => 4 символа 1⍕ 3.62 количество знаков после точки 1 3.6 3⍕ 3.62 количество знаков после точки 3 3.620 1⍕ 3.69 3.7 20 3⍕ 3.62 20 позиций на число 3.620 3.620 ⍴ 20 3⍕ 3.62 2+⍎ ⍕ 3.62 ⍎ - выполнить. Выполняет как APL выражение 5.62 'S← 3 9-2' S← 3 9-2 S VALUE ERROR без ⍎ он не выполняет эту строчку как APL выражение S ∧ ⍎ 'S← 3 9-2' S 1 7 S← (⍕? 9), '+× ÷ -'[? 4], ⍕? 9 '+× ÷ -' – случайный выбор знака S 5-9 O← 4 O≡ ⍎ S ⍎ S  ̄ 4 S← (⍕? 9), '+× ÷ -'[? 4], ⍕? 9 S 8× 7 ⍎ S 'sasha' 'masha' 'fedya' ⍳ 'masha' за пределами вектора, поэтому получается -> 4 4 4 4 4 'sasha' 'masha' 'fedya' ⍳ ⊂ 'masha' ⊂ 'masha'(искать элементы ‘masha’) A 5 3 2 2 3⍴ A 3 элемента выстраиваются в вектор 5 3 2 3⍴ ⊂ A 3 раза повторить А 5 3 5 3 5 3 2 2 2 2 2 2 ⊂ [2]A (строка (по 1 измерению)) 5 3 2 2 ⊂ [1]A (столбец(по 2 измерению)) 5 2 3 2 ⊃ ⊂ [2]A ⊃ - раскрыть (из вектора векторов делает матрицу) ⊂ - закрыть 5 3 ⊃ ⊂ [2]A 1 строка = 1 подвектор 5 3 2 2 ⍴ ⊃ 'sasha' 'masha' 'fedya' 'masha' 4 5 ⊃ 'sasha' 'masha' 'fedya' 'masha' если подвекторы имеют разную длину – добавляем пробелы sasha masha fedya masha ⊃ ' sasha' 'masha ' ' fedya' 'masha' sasha masha fedya masha ⊃ (1 2)(3 2 1 4)(2 3 1) 1 2 0 0 3 2 1 4 2 3 1 0 ⍴ TBC размерность ТВС ≡ TBC глубина 3↑ TBC взять первые 3 ТВС GB3754 GB3755 GB3758 ⍴ NUCL размерность NUCL ≡ NUCL глубина NUCL 3↑ NUCL взять первые 3 NUCL J-131 CS-134 CS-137 ⍴ CO58 активность по кобольту ⍴ J131 активность по йоду для 55 сборок ⌈ /J131 максимальная активность J131 9.25E ̄ 8 J131 ⍳ ⌈ /J131 находим на каком месте он стоит TBC[52] G3730 TBC[J131 ⍳ ⌈ /J131] G3730 ⍒ J131 индексирование J131 по убыванию 52 54 11 20 55 49 40 25 18 2 35 50 26 30 9 53 7 16 19 21 22 8 33 46 1 45 17 27 6 31 51 4 3 48 43 15 36 32 10 5 29 23 13 34 24 42 28 41 47 44 12 39 38 14 37 3↑ ⍒ J131 взяли три самых активных J131 52 54 11 TBC[3↑ ⍒ J131] их наименование G3730 G3729 B1457 TBC[5↑ ⍒ J131+CO58] 5ТВС с наибольшей суммарной активностью по J131 G3741 B1457 G3729 G3730 G3750 TBC ⍳ 'G3730' 56 56 56 56 56 TBC ⍳ ⊂ 'G3730' CO58[TBC ⍳ ⊂ 'G3730'] 1.92E ̄ 8 X← J131[5↓ ⍒ J131] средняя активность J131 за исключением 5 наибольших ТВС +/X÷ ⍴ X 3.7748E ̄ 8 +/J131> 1E ̄ 8 список ТВС с активностью не больше 1E ̄ 8 M← +/X÷ ⍴ X сумма средних значений +/J131< M количество J131 с активностью не более среднего значения М ⍝ (J131< M) TBC 1 1 0 0 1 / 1 2 3 4 5 1 2 5 (J131< M) / TBC GB3758 GB3759 GB3756 B1452 B1456 G3726 G3724 G3718 G3748 G3747 G3723 G3738 B1459 B1453 B1462 G3739 G3735 G3740 G3746 G3753 B2604 G3752 G3728 G3743 G3731 ⍴ (J131< M) / TBC
Присвоение X← Y Присвоение выделяет результат выражения Y к имени или именам в X. Если Y - выражение множества, X должен содержать одно или более имен, которые являются переменными, системой переменных, или не определены. Следующее присвоение, имя (ена) в X становится переменной (ыми) с ценностью (ями), взятой от результата выражения Y. Если X содержит единственное имя, переменная принимает ценность Y. Стрелка присвоения (или стрелка спецификации) часто читается, как " Есть" или " Становиться". Примеры A← 2.3 A 2.3 A← ⍳ 3 A 1 2 3 Больше чем одно имя может быть определено в X при помощи векторного примечания. Если так, Y должен быть вектор или скаляр. Если Y - скаляр, его значение присваивается всем именам в X. Если Y - a вектор, каждый элемент Y назначен на соответствующее имя в X. A B← 2 A B P ⎕ IO Q← 'TEXT' 1 (1 2 3) P TEXT ⎕ IO Q 1 2 3 Ceiling R← ⌈ Y Потолок определен с точки зрения Пола как ⌈ Y ← → -⌊ -Y Y должен быть числовым. Если элемент Y реален, соответствующий элемент R является наименьшее целое число, большее чем или равное значению Y. Если элемент Y комплексный, соответствующий элемент R зависит от отношений между реальными и воображаемыми частями чисел в Y. Примеры: ⌈ ¯ 2.3 0.1 100 3.3 ¯ 2 1 100 4 ⌈ 1.2j2.5 1.2j¯ 2.5 1J3 1J¯ 2 Случайное число без возврата R← X? Y Y должен быть простым скаляром или единичным вектором, содержащий неотрицательное целое число. Х должен быть простым скаляром или единичным вектором, содержащий неотрицательное целое число, а X≤ Y. R представляет собой вектор целого числа, полученный путем X случайный выбор из ⍳ Y без повторения. Примеры: 13? 52 7 40 24 28 12 3 36 49 20 44 2 35 1 13? 52 20 4 22 36 31 49 45 28 5 35 37 48 40 Глубина R← ≡ Y Y может быть любым массивом. R- число уровенй вложения Y. Простой скаляр (ранг-0 число, характер или пространство имен - сыллка) имеет глубину 0. Чем выше ранг массива, у которого все детали простые скаляры, называется простой массив и имеет глубину 1. Массив, элементы которого не все простые скаляры вложен и имеет глубину больше 1, чем у его наиболее глубоко вложенного элемента. Y имеет однородную глубину, если он простой или, если все его элементы имеют однородную глубину. Если ⎕ ML < 2 и Y не имеет однородной глубины тогда R, инвертирован. Если ⎕ ML < 2, отрицательная величина R указывает на неоднородную глубину. Примеры: ≡ 1 ≡ 'A' ≡ 'ABC' ≡ 1 'A' ⎕ ML← 0 ≡ A← (1 2)(3 (4 5)) ⍝ неоднородное множество ¯ 3 ≡ ¨ A ⍝ A[1] однородно, A[2] неоднородно 1 ¯ 2 ≡ ¨ ¨ A 0 0 0 1 ⎕ ML← 2 ≡ A ≡ ¨ A 1 2 ≡ ¨ ¨ A 0 0 0 1
Раскрытие (⎕ ML) R ← ⊃ Y or R← ↑ Y Символ выбран, чтобы представлять раскрытие зависит от текущего уровня миграции. Если ⎕ ML < 2, раскрытие представлено символом: ⊃. Если ⎕ ML≥ 2, раскрытие представлено символом: ↑. Y может быть любым массивом. R является массивом. Если Y не пусто, R является значением первого пункта Y приняты в Равель порядке. Если Y пуст, R является прототипом Y. Раскрытие является обратным вложить. Идентичность R ← → ⊃ ⊂ R имеет место для всех R. Раскрыть также выполняется впервую очередь. Примеры: ⊃ 1 ⊃ 2 4 6 ⊃ 'MONDAY' 'TUESDAY' MONDAY ⊃ (1 (2 3))(4 (5 6)) 1 2 3 ⊃ ⍳ 0 ' '=⊃ ' ' ⊃ 1↓ ⊂ 1, ⊂ 2 3 0 0 0 Скаляризация R← ⊂ Y Y может быть любым массивом. R является скалярным массивом, элемент массива Y. Если Y является простым скаляром, R является простым неизменным скаляром. В противном случае, R имеет глубину, величина которой является больше, чем величина глубины Y. Примеры: ⊂ 1 ⊂ 'A' А ⊂ 1 2 3 1 2 3 ⊂ 1, ⊂ 'CAT' 1 CAT ⊂ 2 4⍴ ⍳ 8 1 2 3 4 5 6 7 8 ⊂ ⍳ 0 ⊂ ⊂ ⍳ 0 ⊂ ⊂ 10
Выполнить (одноместный) R← ⍎ Y
Y должен быть простым символом скаляра или вектора. Если Y - пустой вектор, его рассматривают как пустой вектор символов. Y взят, чтобы быть оператором языка АПЛ, которое будет выполнено. R - результат выполненного в последний раз выражения. Если выражение не имеет никакого значения, то ⍎ Y не имеет никакого смысла. Если Y - пустой вектор или вектор, содержащий только пробелы, то ⍎ Y имеет значение. Если Y содержит отделение выражения которое выдаёт непустой результат, R не дает результата. Вместо этого отделение произведено в контексте от которого было призвано Выполнять. Примеры: ⍎ '2+2' 4=⍎ '2+2' А 1 2 3 4 5 6 ⍎ 'A' 1 2 3 4 5 6 ⍎ 'A← 2|¯ 1↑ ⎕ TS ⋄ → 0⍴ ⍨ A ⋄ A' А
Выполнить(двуместный) R← X⍎ Y Y должен быть простым символом скаляра или вектора. Если Y - пустой вектор, его рассматривают как пустой вектор символов. X должен быть ссылкой пространства имен или простым символом скаляра или вектора, представляющим название пространства имен. Y взят, чтобы быть оператором языка АПЛ, которое будет выполнено в пространстве имен X. R является результатом последнего выполненного выражения. Если выражение не имеет никакого значения, то X⍎ Y не имеет никакого значения. Примеры: ⎕ SE ⍎ '⎕ NL 9' Больше R← X> Y Y должен быть числовым. X должно быть числовым. R логическое. R равняется 1, если X больше, чем Y и X=Y 0. Иначе R 0. ⎕ CT - неявный аргумент Больших. Пример: 1 2 3 4 5 > 2 0 0 1 1 1 ⎕ CT← 1E¯ 10 1 1.00000000001 1.000000001 > 1 0 0 1 Генератор индекса R← ⍳ Y Y должен быть простым скаляром или векторным множеством неотрицательных чисел. R - числовое множество, составленное из набора всех возможных координат множества формы Y. Форма R - Y, и каждый элемент R происходит в его положении самоиндексации в R. В частности следующая идентичность держится: ⍳ Y ← → (⍳ Y) [⍳ Y] ⎕ IO - неявный аргумент Генератора Индекса. Эта функция также известна как Интервал. Примеры: ⎕ IO ⍴ ⍳ 0 ⍳ 5 1 2 3 4 5 ⍳ 2 3 1 1 1 2 1 3 2 1 2 2 2 3 ⊢ A← 2 4⍴ 'MAINEXIT' MAIN EXIT A[⍳ ⍴ A] MAIN EXIT
Матричное деление R← X⌹ Y Y должен быть простым числовым множеством разряда 2 или меньше. X должно быть простое числовое множество разряда 2 или меньше. Y должен быть неисключительным. Скалярный аргумент рассматривают как матрицу с одним элементом. Если Y - вектор, его рассматривают как единственную матрицу колонки. Если X вектор, его рассматривают как единственную матрицу колонки. Число рядов в X и Y должно быть то же самое. У Y должно быть, по крайней мере, то же самое число рядов как колонок. R - результат матричного подразделения X Y. Таким образом, матричный продукт Y +.× R X. R определен таким образом, что (X-Y +.× R) *2 минимизирован. Форма R (1 ↓ ⍴ Y), 1 ↓ ⍴ X. Примеры: ⎕ PP← 5 B 3 1 4 1 5 9 2 6 5 35 89 79 ⌹ B 2.1444 8.2111 5.0889 А 35 36 89 88 79 75 A ⌹ B 2.1444 2.1889 8.2111 7.1222 5.0889 5.5778
Если есть больше строк, чем колонок в правом аргументе, результ решения методом наименьших квадратов. В следующем примере константы a и b, которые обеспечивают наилучшее соответствие набора уравнений, представленных P = +, определены bQ: Q 1 1 1 2 1 3 1 4 1 5 1 6 P 12.03 8.78 6.01 3.75 ¯ 0.31 ¯ 2.79 P⌹ Q 14.941 ¯ 2.9609 Пример: линейная регрессия по комплексных чисел x← j⌿ ¯ 50+? 2 13 4⍴ 100 y← (x+.× 3 4 5 6) + j⌿ 0.0001× ¯ 50+? 2 13⍴ 100 ⍴ x 13 4 ⍴ y y ⌹ x 3J0.000011066 4J¯ 0.000018499 5J0.000005745 6J0.000050328 ⍝ i.e. y⌹ x recovered the coefficients 3 4 5 6 Обратная матрица R← ⌹ Y Y должен быть простым множеством разряда 2 или меньше. Y должен быть неисключительным. Если Y - скаляр, его рассматривают как матрицу с одним элементом. Если Y - вектор, его рассматривают как единственную колонку матрицы. У Y должно быть, по крайней мере, то же самое число рядов как колонки. R - инверсия Y, если Y - квадратная матрица или левая инверсия Y, если Y не квадратная матрица. Таким образом, R +.× Y - матрица идентичности. Форма R - ⌽ ⍴ Y. Примеры: M 2 ¯ 3 4 10 +A← ⌹ M 0.3125 0.09375 ¯ 0.125 0.0625 В пределах точности вычисления +.× M - матрица идентичности. A+.× M 1 0 0 1 j← {⍺ ← 0 ⋄ ⍺ +0J1× ⍵ } x← j⌿ ¯ 50+? 2 5 5⍴ 100 x ¯ 37J¯ 41 25J015 ¯ 5J¯ 09 3J020 ¯ 29J041 ¯ 46J026 17J¯ 24 17J¯ 46 43J023 ¯ 12J¯ 18 1J013 33J025 ¯ 47J049 ¯ 45J¯ 14 2J¯ 26 17J048 ¯ 50J022 ¯ 12J025 ¯ 44J015 ¯ 9J¯ 43 18J013 8J038 43J¯ 23 34J¯ 07 2J026 ⍴ x 5 5 id← {∘.=⍨ ⍳ ⍵ } ⍝ identity matrix of order ⍵ ⌈ /, | (id 1↑ ⍴ x) - x+.× ⌹ x 3.66384E¯ 16 Индексирование по убыванию R← ⍒ Y Y должен быть простым символом или простым числовым множеством разряда, больше, чем 0. R - вектор целого числа, являющийся перестановкой ⍳ 1 ↑ ⍴ Y, который помещает подмножества Y вперед первая ось в порядке убывания. Индексы любого набора идентичных подмножеств в Y происходят в R в порядке возрастания. Если Y - числовое множество разряда, больше, чем 1, элементы в каждом из подмножеств вдоль первой оси сравнены по порядку с самым большим весом, даваемым первому элементу и наименьшему количеству веса, даваемого последнему элементу. Примеры: М 2 5 3 2 3 4 1 1 2 5 4 5 2 5 3 2 2 5 3 4 ⍒ M 2 3 5 1 4 M[⍒ M; ] 3 4 1 1 2 5 4 5 2 5 3 4 2 5 3 2 2 5 3 2 Если Y - множество символов, подразумеваемая последовательность сопоставления - числовой заказ соответствующих кодовых точек Unicode (Выпуск Unicode) или заказ знаков в ⎕ AV (Классический Выпуск). ⎕ IO - неявный аргумент, Понижают в ранге. Обратите внимание на то, что характер выстраивает вид по-другому в Unicode и Classic Editions Пример: М Goldilocks porridge Porridge 3 bears
Лекция от 2015.11.20 Dyalog APL/S-64 Version 14.1.25525 Unicode Edition Fri Nov 20 14: 49: 36 2015 CONTINUE saved Fri Nov 20 14: 48: 08 2015 Определяемые пользователем функции(ОПФ) Функции определяемые пользователем является одно или несколько выражений, объединенных под одним именем. ОПФ может не иметь аргумента, иметь один(унарная), два(бинарная) Ф-ия может иметь или не иметь результат. 1)Набрать функцию и два раза кликнуть на неё 2)) ed “имя функции” (“)ed foo”)
)fns показывает имеющиеся функции foo nrand xi2 xi20 xi21 )vars показывает имеющиеся переменные A B BB O S X t x
)erase foo удаляем функцию foo
)ed foo добавляем новую функцию foo )fns foo nrand xi2 xi20 xi21 Когда мы набираем)ed foo, открывается окно Editor ⎕ vr 'foo' ∇ foo [1] 2+2 [2] ⍳ 5 [3] 3 2⍴ 1 2 3 (матрица 3 стр 2 столб)
foo пример функции не имеющей аргументы 1 2 3 4 5 1 2 3 1 2 3 z← 2 3⍴ ⍳ 9 ⍴ z (размерность матрицы Z) 2 3 ⍴ ⍴ z (ищем уже размерность вектора) z× 10 (умножаем на 10, и получается, что каждый элемент матрицы унм на 10) 10 20 30 40 50 60
)ed goo
Вводим функцию в Editor ⎕ vr 'goo' ∇ goo [1] z← 2 3⍴ ⍳ 9 [2] ⍴ z [3] ⍴ ⍴ z [4] z× 10
Получается goo 2 3 10 20 30 40 50 60
X← 9? 9 (Берем 9 случайных чисел от 1 до 9) X 1 5 2 3 6 8 4 7 9 X[⍋ X]≡ ⍳ ⍴ X –совпадает или нет, (X[⍋ X] выстраивает по порядку (1 2 3 4 5 6 7 8 9) ⍋ X(индексирование по возрастанию; ⍳ ⍴ X тоже выстраивает по порядку только сначала считает размерность(9), потом применяет ⍳ (генератор индексов) X[⍋ X]=⍳ ⍴ X сравнение 1 1 1 1 1 1 1 1 1 X 1 5 2 3 6 8 4 7 9 +/X÷ ⍴ X (ищем среднее значение Х) TEMPERATURE← 200+99? 300 (пусть у нас есть вектор температур(случайные числа от 201 до 499)-как аргумент. +/TEMPERATURE÷ ⍴ TEMPERATURE (ищем среднюю температуру) 351.6868687 )ed mean (задаем функцию mean, через Editor) ⎕ vr 'mean' ∇ average← mean data пример функции с одним аргументом [1] average← +/data÷ ⍴ data (то что стоит справа от mean присваивается в data и высчитывается) mean TEMPERATURE (средняя температура получилась такая же как и через +/X÷ ⍴ X) 351.6868687 mean X (находим среднее из вектора Х) 5(получилось) X-mean X (из вектора Х мы вычитаем среднее из Х) ¯ 4 0 ¯ 3 ¯ 2 1 3 ¯ 1 2 4
mean (X-mean X) центрирование – перенос начальных данных в 0 ¯ 1.110223025E¯ 16 mean TEMPERATURE - mean TEMPERATURE центрирование температуры ¯ 7.582823258E¯ 14
Tout← 350 (температура выхода) Tin← 310 (температура на входе) delta← Tout-Tin (изменение температуры на выходе) delta (350× 100)÷ 310 112.9032258 ¯ 100+(350× 100)÷ 310 12.90322581 (на столько процентов температура выхода больше темп входа) 100× delta÷ Tin (тоже самое только через delta) 12.90322581 Tout← 350+? 10⍴ 20 (10 чисел от 1 до 20 +350)-темп на выходе Tin← 310+? 10⍴ 20 –темп на входе Tout (получили 10 температур на выходе) 358 351 365 357 369 368 365 351 357 354 ⍴ Tout(размерность температуры выхода т.е кол-во символов) delta← Tout-Tin (изм температуры т.е как изменилась температура на выходе) delta (получили это) 32 25 37 35 48 43 50 30 31 40 100× delta÷ Tin (на сколько % температура выхода больше температуры входа) 9.81595092 7.668711656 11.2804878 10.86956522 14.95327103 13.23076923 15.87301587 9.345794393 9.509202454 12.7388535
Теперь сделаем это с помощью функции определяемой пользователем.
)ed percent ⎕ vr 'percent' ∇ delt← out percent in (вводим входную и выходную функцию) [1] delt← out-in (ищем разницу) [2] delt← 100× delt÷ in (на сколько % температура выхода больше температуры входа)
Tout percent Tin (на сколько % температура выхода больше температуры входа) 9.81595092 7.668711656 11.2804878 10.86956522 14.95327103 13.23076923 15.87301587 9.345794393 9.509202454 12.7388535
X 1 5 2 3 6 8 4 7 9 m← +/X (сумма элементов Х) m (проверяем, что m действительно сумма элем Х) X-5 ¯ 4 0 ¯ 3 ¯ 2 1 3 ¯ 1 2 4 +/X-5 центрирование 45÷ ⍴ X средний Х
)ed sigma функция сигма ⎕ vr 'sigma' вычисление среднего отклонения ∇ s← sigma x; m [1] m← mean x [2] s← +/(x-m)*2 [3] s← s÷ ⍴ x
)vars A B BB O S TEMPERATURE Tin Tout X delta m t x z x← 3.62 x 3.62 )erase m удалили m )erase A B BB O S )vars оставшиеся переменные TEMPERATURE Tin Tout X delta t x z x 3.62 sigma Tout 41.25 )vars появилась m TEMPERATURE Tin Tout X delta m t x z m 359.5 mean Tout 359.5 m← 'very important confidential information' m very important confidential information sigma Tout 41.25 m не заменилось функцией very important confidential information )erase m )vars TEMPERATURE Tin Tout X delta t x z sigma Tout 41.25 )vars m нет среди переменных TEMPERATURE Tin Tout X delta t x z
)fns foo goo mean nrand percent sigma sigmaXXXX xi2 xi20 xi21
|