F X^Y: различия между версиями
SMB (обсуждение | вклад) мНет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
(не показано 9 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
Команда '''F x<sup>y</sup>''' (лат. '''F X^Y''') «Возведение x в степень y» с кодом 24 вычисляет степенную функцию от содержимого [[RX|регистра X]]. Показатель степени берётся из [[RY|регистра Y]]. | {{Врезка-команда | ||
| мнемоника = F x<sup>y</sup> | |||
| мнемоника клавиш = {{Оранжевая команда 2|F|x<sup>y</sup>}} | |||
| код = 24 | |||
| русская мнемоника = F x<sup>y</sup> | |||
| латинская мнемоника = F X^Y | |||
| группа = [[алгебраические функции]] | |||
| число операндов = двухместная, но схема перемещения чисел в стеке ближе к одноместной | |||
| клавиши = [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ↔|{{Серая клавиша|↔}}]] | |||
| число шагов = 1 | |||
| признак перезаписи = сбрасывается | |||
| первое появление = [[Б3-34]] | |||
| время = ? мкс <br/> (? КНОП) | |||
| скорость = ? | |||
}} | |||
[[Файл:Стек при операции F X^Y.png|thumb|left|200px|Перемещение информации в стеке при операции F x<sup>y</sup>]] | |||
Команда '''F x<sup>y</sup>''' (лат. '''F X^Y''') «Возведение x в степень y» с кодом 24 вычисляет степенную функцию от содержимого [[RX|регистра X]]. Показатель степени берётся из [[RY|регистра Y]]. Старое содержимое [[RX|регистра X]] помещается в [[X1|регистр X1]]. | |||
Если число в [[RX|регистре X]], возводимое в степень, отрицательное, команда Fx<sup>y</sup> приводит к аварийному останову. | Если число в [[RX|регистре X]], возводимое в степень, отрицательное, команда Fx<sup>y</sup> приводит к аварийному останову. | ||
== Интересные факты == | == Интересные факты == | ||
* F x<sup>y</sup> — это единственная двухместная команда, которая не убирает свой аргумент из [[RY|регистра Y]]. Её картина перемещения чисел по [[стек]]у соответствует одноместной команде. Если после команды Fx<sup>y</sup> нажать [[Сx]] и набрать следующее число, его можно возвести в ту же степень, т.к. показатель степени сохранился в [[RY|регистре Y]]. | * F x<sup>y</sup> — это единственная двухместная команда, которая не убирает свой аргумент из [[RY|регистра Y]]. Её картина перемещения чисел по [[Стек калькулятора|стек]]у соответствует одноместной команде. Если после команды Fx<sup>y</sup> нажать [[Сx]] и набрать следующее число, его можно возвести в ту же степень, т.к. показатель степени сохранился в [[RY|регистре Y]]. | ||
* В ЭКВМ нет команды извлечения корня произвольной степени. Вместо неё можно использовать последовательность команд F1/x ↔ Fx<sup>y</sup>. Например, В↑ 5 F1/x ↔ Fx<sup>y</sup> извлекает корень пятой степени из числа в [[RX|регистре X]]. Это справедливо благодаря формуле: | * В ЭКВМ нет команды извлечения корня произвольной степени. Вместо неё можно использовать последовательность команд F1/x ↔ Fx<sup>y</sup>. Например, В↑ 5 F1/x ↔ Fx<sup>y</sup> извлекает корень пятой степени из числа в [[RX|регистре X]]. Это справедливо благодаря формуле: | ||
<math>\sqrt[n] x = x^{\frac{1}{n}}</math> | |||
== История == | == История == | ||
На советских ПМК команда F x<sup>y</sup> была одной из самых медленных и неточных, поэтому владельцы ПМК старались использовать её лишь в случае крайней необходимости — например, имитируя её с помощью нескольких умножений или последовательностью команд Fln × Fe<sup>x</sup> . Последнее справедливо благодаря формуле: | На советских ПМК команда F x<sup>y</sup> была одной из самых медленных и неточных, поэтому владельцы ПМК старались использовать её лишь в случае крайней необходимости — например, имитируя её с помощью нескольких умножений или последовательностью команд Fln × Fe<sup>x</sup> . Последнее справедливо благодаря формуле: | ||
<math>x^y = e^{y\cdot \ln x}</math> | |||
В ПМК [[Б3-34]] ранних выпусков команда F x<sup>y</sup> могла выполняться с ошибкой, если ей предшествовала какая-либо двухместная операция (кроме F x<sup>y</sup>), результат которой содержал в восьмом разряде мантиссы цифру 5 или 7. Для предотвращения этой ошибки перед операцией F x<sup>y</sup> можно было дважды выполнить операцию F 1/x. | |||
Замеченные недостатки команды Fx<sup>y</sup> исправлены в ЭКВМ, но странный рисунок перемещения чисел по [[Стек калькулятора|стек]]у было решено сохранить для совместимости с программами, написанными для советских ПМК. | |||
== Советская реализация == | |||
Из книги Я.К. Трохименко [[Программируемые микрокалькуляторы. Устройство и пользование. (книга)|«Программируемые микрокалькуляторы. Устройство и пользование.»]] (стр. 143): | |||
«Степенная функция x<sup>y</sup> при вводе оператора x<sup>y</sup> вычисляется по формуле x<sup>y</sup> = e<sup>y ln x</sup> в диапазоне аргумента x > 0 и y ln x < 100 ln 10, определяемом допустимым диапазоном изменения аргумента логарифмической функции e<sup>x</sup> и ln x. В связи с относительно большой программой, реализующей вычисления этой функции, результат содержит не менее 6 верных цифр, тогда как результаты вычисления e<sup>x</sup> и ln x содержат не менее 7 верных цифр. Время выполнения оператора x<sup>y</sup> также наибольшее по сравнению с вычислением других элементарных функций. | |||
При вычислении элементарных функций в общем случае используется 10 членов разложения в цепную дробь базовых функций. Однако в зависимости от разрядности операндов при промежуточных вычислениях и значений приведенного аргумента в разложениях в цепную дробь используется от одного до 10 членов разложения в цепные дроби. Число цифр частных, получаемых при вычислении членов (звеньев) цепной дроби, также зависит от значения приведенного аргумента и изменяется от одной до восьми.» | |||
== Ссылки == | == Ссылки == | ||
{{Документация|mk_d11.htm#p7|Команда F x<sup>y</sup> на сайте НПП «СЕМИКО», пункт 7.8}} | |||
* [http://ru.wikipedia.org/wiki/%D0%92%D0%BE%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D1%8C Возведение в степень в Википедии] | * [http://ru.wikipedia.org/wiki/%D0%92%D0%BE%D0%B7%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2_%D1%81%D1%82%D0%B5%D0%BF%D0%B5%D0%BD%D1%8C Возведение в степень в Википедии] | ||
* См. также команды [[F 10^X|F 10<sup>x</sup>]], [[F EXP|F e<sup>x</sup>]], [[F X^2|F x²]], [[F SQRT|F √]], [[F 1/X|F 1/x]] | * См. также команды [[F 10^X|F 10<sup>x</sup>]], [[F EXP|F e<sup>x</sup>]], [[F X^2|F x²]], [[F SQRT|F √]], [[F 1/X|F 1/x]] |
Текущая версия от 22:10, 12 марта 2023
Команда F xy | |
F xy | |
Код команды | 24 |
Русская мнемоника | F xy |
Латинская мнемоника | F X^Y |
Группа команд | алгебраические функции |
Число операндов | двухместная, но схема перемещения чисел в стеке ближе к одноместной |
Нажимаемые клавиши | F ↔ |
Число шагов | 1 |
Признак перезаписи | сбрасывается |
Первое появление | Б3-34 |
Время выполнения | ? мкс (? КНОП) |
Скорость выполнения | ? команд/с |
Команда F xy (лат. F X^Y) «Возведение x в степень y» с кодом 24 вычисляет степенную функцию от содержимого регистра X. Показатель степени берётся из регистра Y. Старое содержимое регистра X помещается в регистр X1.
Если число в регистре X, возводимое в степень, отрицательное, команда Fxy приводит к аварийному останову.
Интересные факты[править]
- F xy — это единственная двухместная команда, которая не убирает свой аргумент из регистра Y. Её картина перемещения чисел по стеку соответствует одноместной команде. Если после команды Fxy нажать Сx и набрать следующее число, его можно возвести в ту же степень, т.к. показатель степени сохранился в регистре Y.
- В ЭКВМ нет команды извлечения корня произвольной степени. Вместо неё можно использовать последовательность команд F1/x ↔ Fxy. Например, В↑ 5 F1/x ↔ Fxy извлекает корень пятой степени из числа в регистре X. Это справедливо благодаря формуле:
История[править]
На советских ПМК команда F xy была одной из самых медленных и неточных, поэтому владельцы ПМК старались использовать её лишь в случае крайней необходимости — например, имитируя её с помощью нескольких умножений или последовательностью команд Fln × Fex . Последнее справедливо благодаря формуле:
В ПМК Б3-34 ранних выпусков команда F xy могла выполняться с ошибкой, если ей предшествовала какая-либо двухместная операция (кроме F xy), результат которой содержал в восьмом разряде мантиссы цифру 5 или 7. Для предотвращения этой ошибки перед операцией F xy можно было дважды выполнить операцию F 1/x.
Замеченные недостатки команды Fxy исправлены в ЭКВМ, но странный рисунок перемещения чисел по стеку было решено сохранить для совместимости с программами, написанными для советских ПМК.
Советская реализация[править]
Из книги Я.К. Трохименко «Программируемые микрокалькуляторы. Устройство и пользование.» (стр. 143):
«Степенная функция xy при вводе оператора xy вычисляется по формуле xy = ey ln x в диапазоне аргумента x > 0 и y ln x < 100 ln 10, определяемом допустимым диапазоном изменения аргумента логарифмической функции ex и ln x. В связи с относительно большой программой, реализующей вычисления этой функции, результат содержит не менее 6 верных цифр, тогда как результаты вычисления ex и ln x содержат не менее 7 верных цифр. Время выполнения оператора xy также наибольшее по сравнению с вычислением других элементарных функций.
При вычислении элементарных функций в общем случае используется 10 членов разложения в цепную дробь базовых функций. Однако в зависимости от разрядности операндов при промежуточных вычислениях и значений приведенного аргумента в разложениях в цепную дробь используется от одного до 10 членов разложения в цепные дроби. Число цифр частных, получаемых при вычислении членов (звеньев) цепной дроби, также зависит от значения приведенного аргумента и изменяется от одной до восьми.»
Ссылки[править]
- Команда F xy на сайте НПП «СЕМИКО», пункт 7.8
- Возведение в степень в Википедии
- См. также команды F 10x, F ex, F x², F √, F 1/x
- См. также символ "y"