Квадратный корень из суммы квадратов (гипотенуза)
C = hypot(A,B)
возвращает результат следующего уравнения, вычисленного, чтобы избежать потери значимости и переполнения:C = hypot(A,B)
C = sqrt(abs(A).^2 + abs(B).^2)
Вычислите гипотенузу прямоугольного треугольника с длинами стороны 3
и 4
.
C = hypot(3,4)
C = 5
Исследуйте различие между использованием hypot
и кодированием основного уравнения hypot
в М-коде.
Создайте анонимную функцию, которая выполняет по существу ту же основную функцию как hypot
.
myhypot = @(a,b)sqrt(abs(a).^2+abs(b).^2);
myhypot
не имеет того же фактора для потери значимости и переполняет поведения, которое предлагает hypot
.
Найдите верхний предел, в котором myhypot
возвращает полезное значение. Вы видите, что эта тестовая функция достигает своего максимума в приблизительно 1e154
, возвращая бесконечный результат в той точке.
myhypot(1e153,1e153)
ans = 1.4142e+153
myhypot(1e154,1e154)
ans = Inf
Сделайте то же использование функции hypot
и заметьте, что hypot
работает со значениями до приблизительно 1e308
, который приблизительно равен значению для realmax
на вашем компьютере (самое большое представимое с двойной точностью число с плавающей запятой).
hypot(1e308,1e308)
ans = 1.4142e+308
hypot(1e309,1e309)
ans = Inf
A, B
Входные массивыВходные массивы, заданные как скаляры, векторы, матрицы или многомерные массивы. Вводы A
и B
должны или быть одного размера или иметь размеры, которые совместимы (например, A
является M
-by-N
матрица, и B
является скаляром или 1
-by-N
вектор - строка). Для получения дополнительной информации см. "Совместимые размеры массивов для основных операций".
Если ни A
, ни B
не является Inf
, но один или оба входных параметра NaN
, то hypot
возвращает NaN
.
Типы данных: single | double
Поддержка комплексного числа: Да
Эта функция полностью поддерживает "высокие" массивы. Для получения дополнительной информации см. Раздел "Высокие массивы".
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите функции MATLAB Выполнения на GPU (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.