Как возвести в степень в матлабе
Перейти к содержимому

Как возвести в степень в матлабе

  • автор:

возведение в степень

A, t скаляр, вектор или матрица кодированных целых чисел, десятичных или комплексных чисел, полиномов или дробно-рациональных выражений.

b скаляр, вектор или матрица кодированных целых чисел, десятичных или комплексных чисел.

Если операндом являются кодированные целые числа, то другие числа могут быть только кодированными целыми числами или вещественными числами.

Если A является полиномами или дробно-рациональными выражениями, то b может быть только одиночным десятичным (положительным или отрицательным) числом.

Описание

.^ поэлементное возведение в степень

Если A или b скаляр, то он сначала реплицируется до размера другого с помощью A*ones(b) или b*ones(A) . В противном случае A и b должны быть одинакового размера.

Затем для каждого элемента с индексом i вычисляется t(i) = A(i)^b(i) .

^ матричное возведение в степень
  • A скаляр, а b вектор;
  • A вектор, а b скаляр.
  • если A скаляр, а b квадратная матрица, то A^b является матрицей expm(log(A) * b) ;
  • если A квадратная матрица, а b скаляр, то A^b является матрицей A в степени b .
Примечания
  1. Для квадратных матриц A , A^p вычисляется через последовательное перемножение матриц, если p является положительным числом, а иначе — через диагонализацию (см. примечания №2 и №3 ниже).
  2. Если A квадратная и эрмитова матрица, а p нецелый скаляр, то A^p вычисляется как: A ^ p = u * diag ( diag ( s ) .^ p ) * u ‘ (для вещественной матрицы A во внимание принимается только вещественная часть ответа). u и s определяются как [ u , s ] = schur ( A ) .
  3. Если A не является эрмитовой матрицей, а p является нецелым скаляром, то A^p вычисляется как: A ^ p = v * diag ( diag ( d ) .^ p ) * inv ( v ) (для вещественной матрицы A во внимание принимается только вещественная часть ответа). d и v определяются как [ d , v ] = bdiag ( A + 0 * %i ) .
  4. Если A и p вещественные или комплексные числа, то A^p является главным значением, определяемым как A ^ p = exp ( p * log ( A ) ) (или A ^ p = exp ( p * ( log ( abs ( A ) ) + %i * atan ( imag ( A ) / real ( A ) ) ) ) ).
  5. Если A является квадратной матрице, а p вещественным или комплексным числом, то A.^p является главным значением вычисленным как: A .^ p = exp ( p * log ( A ) ) (то же самое, что и в случае 4 выше).
  6. операторы ** и ^ являются синонимами.

Возведение в степень в Scilab является оператором с ассоциативностью справа, в отличие от Matlab® и Octave. Например 2^3^4 в Scilab равно 2^(3^4) , а в Matlab® и Octave равно (2^3)^4 .

Примеры

A = [1 2 ; 3 4]; A ^ 2.5, A .^ 2.5 (1:10) ^ 2 (1:10) .^ 2 A ^ %i A .^ %i exp(%i*log(A)) s = poly(0,'s') s ^ (1:10)

Смотрите также

  • exp — поэлементная показательная функция
  • expm — квадратная матрица экспоненциальной функции
  • крышечка — (^) возведение в степень
  • inv — matrix inverse

История

Версия Описание
6.0.0 С десятичным или комплексным числами scalar ^ squareMat теперь даёт expm(log(scalar)*squareMat) вместо scalar .^ squareMat .

02 Основы работы в MATLAB

2- Основы работы в Matlab 2.1. Работа в командном окне, арифметические операции, форматы чисел, константы в Матлаб 2.2. Стандартные функции в MATLAB, специальные функции пользователя 2.3. Векторы, поэлементные и матричные операции, вычисление сложных функции от данного вектора, 2.4. Матрицы как двумерные массивы, обработка матриц и операции с матрицами

2.1 — Работа в командном окне, арифметические операции, форматы чисел, константы в Матлаб Основные арифметические операторы, сложение, вычитание, умножение, деление, возведение в степень + — * / ^ Следующие операции можно выполнять в командном окне: >> x = 2+7 x = 9 >> x = 3*15 x = 45 >> x = 4^4 x = 64 >> x = 100/8 x= 12.5 >> x = (17 — 9) * 6 / 6 x = 8

Форматы чисел;

format short 1.3333 0.0000
format short e 1.3333E+000 1.2345E-6
format long 1.333333333333338 0.000001234500000
format long e 1.333333333333338 E+000 1.234500000000000E-006
format bank 1.33 0.00
>> x=pi >> format long e
x = >> x
3.1416 x =
>> format long 3.141592653589793e+000
>> x >> format bank
x = >> x
3.141592653589793 x =
3.14
>> format short e
>> x
x =
3.1416e+000

Константы и переменные в Matlab >> pi ans = 3.1416 (какой формат ?) >> e = exp (1) e = 2.7183e+000 (Какой формат ?) Здесь exp( ) встроенная функция, вычисляет экспоненты. eps − ε = 2.2204e-016 (самое малое число, которое отличает двух чисел друг от друга) ans − результат последней операции без знака присвивания i, j − мнимая единица ( −1 ) inf − машинный символ бесконечности NaN − неопределенный результат (0/0, ∞/ ∞, 1 ∞ , и т.д.) Знак процента % используется при вводе комментарий в любом месте в листинге кода, в начале операции или между строками. 4

2.2. Стандартные функции в MATLAB, специальные функции пользователя

Тригонометрические Описание функции
Функции
sin(x) / sind(x) синус числа х (радиан) / синус числа х (градус)
cos(x) / cosd(x) косинус числа х (радиан) / косинус числа х (градус)
tan(x) / tand(x) тангенс числа х (радиан) / тангенс числа х (градус)
cot(x) / cotd(x) котангенс числа х (радиан) / котангенс числа х (градус)
sec(x) / secd(x) секанс числа х (радиан) / секанс числа х (градус)
csc(x) / cscd(x) косеканс числа х (радиан) / косеканс числа х (градус)
asin(x) / asind(x) арксинус чилса х (радиан) / арксинус чилса х (градус)
acos(x) / acosd(x) арккосинус числа х (радиан) / арккосинус числа х (градус)
atan(x) / atand(x) арктангенс числа х (радиан) / арктангенс числа х (градус)
acot(x) / acotd(x) арккотангенс числа х (радиан) / арккотангенс числа х
(градус)
asec(x) / asecd(x) арксеканс числа х (радиан) / арксеканс числа х (градус)
acsc(x) / acscd(x) арккосеканс числа х (радиан) / арккосеканс числа х
(градус)
Гиперболические Функции Описание функции
sinh(x) гиперболический синус числа х
cosh(x) гиперболический косинус числа х
tanh(x) гиперболический тангенс числа х
coth(x) гиперболический котангенс числа х
sech(x) гиперболический секанс числа х
csch(x) гиперболический косеканс числа х
Экспоненциальные Описание функции
Функции
exp(x) Экспонента числа х
log(x) Натуральный логарифм числа х
Целочисленные Описание функции
Функции
fix(x) Округление числа х до ближайжего целого в сторону нуля
floor(x) Округление числа х до ближайжего целого в сторону -∞
ceil(x) Округление числа х до ближайжего целого в сторону +∞
round(x) Обычное округление числа х до ближайжего целого
rem(x,y) Вычисление остатка от деления x на y
sign(x) Сигнум-функция числа х
Другие Функции Описание функции
sqrt(x) (square root of x) Корень квадратной из числа х
abs(x) (absolute of x) Модуль числа х
log10(x) Десятичный логарифм от числа х
log2(x) Логарифм по основанию два от числа х
pow2(x) Возведение двойки в степень х
gcd(x) (greatest common Наибольший общий делитель чисел x и y
divisor)
lcm(x) (least common Наименьшее общее кратное чисел x и y
multiple)
rats(x) Представление числа х в виде рациональной дроби
factorial(x) Вычисление факториала от х
primes(x) Генерация простых чисел, не превосходящих
аргумента x
reallog(x) ln(x) натуральный логарифм от х
realsqrt(x) корень квадратный

степень.^

C = A .^ B возводит каждый элемент A к соответствующей степени в B .

C = power( A , B ) альтернативный путь состоит в том, чтобы выполнить A.^B , но редко используется. Это позволяет выполнить перегрузку оператора для классов.

Примеры

Квадрат каждый элемент вектора

Создайте вектор, A и квадрат каждый элемент.

A = 1:5; C = A.^2
C = 1×5 1 4 9 16 25

Нахождение инверсии каждого элемента матрицы

Создайте матрицу, A , и возьмите инверсию каждого элемента.

A = [1 2 3; 4 5 6; 7 8 9]; C = A.^-1
C = 3×3 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111

Инверсия элементов не равна инверсии матрицы, которая является вместо этого записанным A^-1 или inv(A) .

Нахождение корней номера

Вычислите корни -1 к степени 1/3 .

A = -1; B = 1/3; C = A.^B
C = 0.5000 + 0.8660i

Для отрицательного основного A и нецелого числа B , если abs(B) является меньше, чем 1 , функция power , возвращает комплексные корни A .

Используйте функцию nthroot , чтобы получить действительные корни.

C = nthroot(A,3)
C = -1

Входные параметры

A Основа
скаляр | вектор | матрица | многомерный массив

Основа, заданная как скаляр, вектор, матрица или многомерный массив. Входные параметры A и B должны или быть одного размера или иметь размеры, которые совместимы (например, A является M -by- N матрица, и B является скаляром или 1 -by- N вектор — строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного числа: Да

B Экспонента
скаляр | вектор | матрица | многомерный массив

Экспонента, заданная как скаляр, вектор, матрица или многомерный массив. Входные параметры A и B должны или быть одного размера или иметь размеры, которые совместимы (например, A является M -by- N матрица, и B является скаляром или 1 -by- N вектор — строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного числа: Да

Больше о

Соответствие IEEE

Для действительных входных параметров power имеет несколько поведений, которые отличаются от рекомендуемых в Стандарте IEEE ® -754.

Расширенные возможности

«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

  • Когда и X и Y действительны, но power(X,Y) является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение комплексом X путем передачи в complex(X) . Например, power(complex(X),Y) .
  • Когда и X и Y действительны, но X .^ Y является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение комплексом X при помощи complex(X) . Например, complex(X).^Y .
  • Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Указания и ограничения по применению:

  • 64-битные целые числа не поддержаны.

Для получения дополнительной информации смотрите функции MATLAB Выполнения на графическом процессоре (Parallel Computing Toolbox).

Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Выполнения с Распределенными Массивами (Parallel Computing Toolbox).

Смотрите также

Темы

  • Массив по сравнению Матричные операции
  • Приоритет операторов
  • Операторы MATLAB и специальные символы
Представлено до R2006a
Документация MATLAB
Поддержка
  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2019 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

power , .^

C = A .^ B возводит каждый элемент A к соответствующим степеням в B . Размеры A и B должен быть то же самое или быть совместимым.

Если размеры A и B совместимы, затем эти два массива неявно расширяются, чтобы совпадать друг с другом. Например, если один из A или B скаляр, затем скаляр объединен с каждым элементом другого массива. Кроме того, векторы с различными ориентациями (один вектор-строка и один вектор-столбец) неявно расширяются, чтобы сформировать матрицу.

C = power( A , B ) альтернативный путь состоит в том, чтобы выполнить A.^B , но редко используется. Это позволяет выполнить перегрузку оператора для классов.

Примеры

Квадрат каждый элемент вектора

Создайте вектор, A , и квадрат каждый элемент.

A = 1:5; C = A.^2
C = 1×5 1 4 9 16 25

Нахождение инверсии каждого элемента матрицы

Создайте матрицу, A , и возьмите инверсию каждого элемента.

A = [1 2 3; 4 5 6; 7 8 9]; C = A.^-1
C = 3×3 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 0.1429 0.1250 0.1111

Инверсия элементов не равна инверсии матрицы, которая является вместо этого записанным A^-1 или inv(A) .

Вектор-строка к степени вектор-столбца

Создайте вектор 1 на 2 строки и вектор-столбец 3 на 1 и возведите вектор-строку в степень из вектор-столбца.

a = [2 3]; b = (1:3)'; a.^b
ans = 3×2 2 3 4 9 8 27

Результатом является 3-на-2 матрица, где каждый (i, j) элемент в матрице равен a (j) .^ b(i) :

a = [ a 1 a 2 ] , b = [ b 1 b 2 b 3 ] , a . ˆ b = [ a 1 b 1 a 2 b 1 a 1 b 2 a 2 b 2 a 1 b 3 a 2 b 3 ] .

Нахождение корней номера

Вычислите корни -1 к 1/3 степень.

A = -1; B = 1/3; C = A.^B
C = 0.5000 + 0.8660i

Для отрицательного основного A и нецелое число B , power функция возвращает комплексные результаты.

Используйте nthroot функция, чтобы получить действительные корни.

C = nthroot(A,3)
C = -1

Входные параметры

A B — Операнды
скаляры | векторы | матрицы | многомерные массивы

Операнды в виде скаляров, векторов, матриц или многомерных массивов. A и B должен или быть одного размера или иметь размеры, которые совместимы (например, A M — N матрица и B скаляр или 1 — N вектор-строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».

  • Операнды с целочисленным типом данных не могут быть комплексными.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного числа: Да

Больше о

Податливость IEEE

Для действительных входных параметров, power имеет несколько поведений, которые отличаются от рекомендуемых в IEEE ® — 754 Стандарта.

Вопросы совместимости

Изменение неявного расширения влияет на аргументы для операторов

Поведение изменяется в R2016b

При запуске в R2016b со сложения неявного расширения некоторые комбинации аргументов для основных операций, которые ранее возвратили ошибки теперь, приводят к результатам. Например, вы ранее не могли добавить строку и вектор-столбец, но те операнды теперь допустимы для сложения. Другими словами, выражение как [1 2] + [1; 2] ранее возвращенный ошибка несоответствия размера, но теперь это выполняется.

Если ваш код использует поэлементные операторы и использует ошибки что MATLAB, ранее возвращенный для несовпадающих размеров, особенно в a try / catch блокируйтесь, затем ваш код больше не может фиксировать те ошибки.

Для получения дополнительной информации о необходимых входных размерах для основных операций над массивами смотрите Совместимые Размеры Массивов для Основных Операций.

Расширенные возможности

«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Указания и ограничения по применению:

  • Когда оба X и Y действительны, но power(X,Y) является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение X комплекс путем передачи в complex(X) . Например, power(complex(X),Y) .
  • Когда оба X и Y действительны, но X .^ Y является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение X комплекс при помощи complex(X) . Например, complex(X).^Y .
  • Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.

Указания и ограничения по применению:

  • Когда оба X и Y действительны, но power(X,Y) является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение X комплекс путем передачи в complex(X) . Например, power(complex(X),Y) .
  • Когда оба X и Y действительны, но X .^ Y является комплексным, симуляция производит код ошибки, и сгенерированный код возвращает NaN . Чтобы получить комплексный результат, сделайте входное значение X комплекс при помощи complex(X) . Например, complex(X).^Y .
  • Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.

Оба входных параметров должны быть скаляром, и входом экспоненты, k , должно быть целое число.

Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool .

Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.

Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.

Указания и ограничения по применению:

  • 64-битные целые числа не поддерживаются.

Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox) .

Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.

Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox) .

Смотрите также

Темы

  • Массив по сравнению Матричные операции
  • Приоритет операторов
  • Операторы MATLAB и специальные символы

Представлено до R2006a

Открытый пример

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *