F X^Y: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 34: Строка 34:


Замеченные недостатки команды Fx<sup>y</sup> исправлены в ЭКВМ, но странный рисунок перемещения чисел по [[Стек калькулятора|стек]]у было решено сохранить для совместимости с программами, написанными для советских ПМК.
Замеченные недостатки команды 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 членов разложения в цепные дроби. Число цифр частных, получаемых при вычислении членов (звеньев) цепной дроби, также зависит от значения приведенного аргумента и изменяется от одной до восьми.»


== Ссылки ==
== Ссылки ==

Версия от 05:19, 24 августа 2021

Команда F xy
 F   xy 
Код команды 24
Русская мнемоника F xy
Латинская мнемоника F X^Y
Группа команд алгебраические функции
Число операндов двухместная, но схема перемещения чисел в стеке ближе к одноместной
Нажимаемые клавиши  F    
Число шагов 1
Признак перезаписи сбрасывается
Первое появление Б3-34
Время выполнения ? мкс
(? КНОП)
Скорость выполнения ? команд/с
Перемещение информации в стеке при операции F xy

Команда 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. Это справедливо благодаря формуле:

$\sqrt[n] x = x^{\frac{1}{n}}$

История

На советских ПМК команда F xy была одной из самых медленных и неточных, поэтому владельцы ПМК старались использовать её лишь в случае крайней необходимости — например, имитируя её с помощью нескольких умножений или последовательностью команд Fln × Fex . Последнее справедливо благодаря формуле:

$x^y = e^{y\cdot \ln x}$

В ПМК Б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 членов разложения в цепные дроби. Число цифр частных, получаемых при вычислении членов (звеньев) цепной дроби, также зависит от значения приведенного аргумента и изменяется от одной до восьми.»

Ссылки