Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Перевод






Каждый (с одноместным операндом) {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

Unicode Edition Classic Edition
⍒ M 2 3 1 4 ⍒ M 3 1 4 2
M[⍒ M; ] porridge Porridge Goldilocks 3 bears M[⍒ M; ] Porridge Goldilocks   3 bears porridge

 

 

 


 

Лекция от 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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.