Перейти к содержимому

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

  • автор:

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

Пользователь

Регистрация: 14.11.2008

Сообщений: 17

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

Объясните, почему МатЛаб не может нормально возвести отрицательное число в дробную степень? Как мне это сделать? Ответ в комплексной форме меня пугает:

Manchester
Посмотреть профиль
Найти ещё сообщения от Manchester
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
возведение в степень [CODER] Assembler — Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 14.04.2014 10:18
Возведение в степень. Drakulov Свободное общение 30 01.03.2011 16:35
возведение в степень ILNARM Паскаль, Turbo Pascal, PascalABC.NET 16 16.10.2009 23:04
возведение в степень Lissisa Помощь студентам 1 21.03.2009 22:34
Возведение в степень Stanislav Общие вопросы Delphi 10 05.12.2007 23:34

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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

построить график функции sin(x)^sgn(sin(100x)) на отрезке [-10:10] с шагом 0.1

Понимаю, что задачка детская но не могу понять в чём ошибка.

 x=-10:0.1:10; y=sin(x)^sgn(sin(100*x)) plot(x,y) title('График функции cos(3x)') xlabel('Ось X') ylabel('Ось Y') legend('y=cos(3x)') grid on 

Отслеживать

задан 13 ноя 2021 в 11:04

13 4 4 бронзовых знака

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вторая строчка должна быть такая:

y=sin(x).^sign(sin(100*x)) 

Во-первых, не sgn , а sign , а во-вторых, не ^ , а .^ . Крышка без точки это операция возведения матрицы в степень через матричное произведение. Здесь же надо поэлементно возвести массив sin(x) в степени, задаваемые массивом sign(sin(100*x)) , поэтому следует использовать операцию поэлементного возведения в степень .^ .

2. Пакет matlab и операционная система simulink

MATLAB запускается активизацией ярлыка системы на рабочем столе. После вызова программы на экране появляется окно, представленное на рис. 2.1. В нем могут отображаться несколько окон, главным из которых является Окно команд (Command Window).

Рис. 2.1. Окно MATLAB

Система готова к проведению вычислений в командном режиме, в котором процесс вычислений носит диалоговый характер. При этом пользователь набирает на клавиатуре вычисляемое выражение и завершает ввод нажатием клавиши ENTER.

Представление о процессе вычислений дает пример, представленный на рис. 2.2, в котором производится вычисление косинуса элементов матрицы а и определяется сумма столбцов матрицы а_2.

Рис. 2.2. Пример вычислений в диалоговом режиме

Приведем некоторые особенности прямых вычислений в системе MATLAB, основная часть которых продемонстрирована в примере:

  • для указания строки ввода используется символ  ;
  • имя переменной (константы, вектора, матрицы) должно начинаться с буквы латинского алфавита, может содержать буквы, цифры и символ подчеркивания _ ;
  • присваивание выполняется при помощи знака равенства =;
  • числа отделяются друг от друга пробелами или запятыми;
  • коэффициенты векторов и матриц заключаются в квадратные скобки;
  • строки матриц отделяются друг от друга точкой с запятой;
  • для блокирования вывода на экран результатов вычислений используется точка с запятой в конце математического выражения;
  • встроенные функции (например, cos) записываются строчными буквами, аргументы указываются в круглых скобках;
  • в MATLAB предусмотрены операции поэлементного преобразования векторов и матриц: прибавление + ; вычитание −; умножение .* ; прямое ./ и обратное деления .\ ; поэлементное возведение в степень .^ ;
  • если не указана переменная для результата вычисления, то ей присваивается имя ans.

Операторы и функции, используемые в MATLAB, можно найти в литературе [2, 5, 7], а также в MATLAB Help (меню Help), либо в примерах, представленных в Demos (меню Help).

2.2. Блоки библиотеки модулей Simulink

Для запуска операционной системы SIMULINK используется кнопка, показанная на рис. 2.1. При этом открывается окно библиотеки модулей (Simulink Library Bromser), представленное на рис. 2.3.

В данном пособии используются блоки следующих разделов библиотеки модулей Simulink:

  1. Блоки непрерывных элементов (Continuous).
  2. Блоки математических операций (Math Operations).
  3. Блоки маршрутизации сигналов (Signal Routing).
  4. Блоки приема и отображения сигналов (Sinks).
  5. Блоки источников сигналов (Sourses).

Рис. 2.3. Окно библиотеки модулей Simulink

Для того чтобы развернуть или свернуть раздел библиотеки модулей, необходимо щелкнуть левой клавишей мыши на его пиктограмме. При выборе соответствующего раздела библиотеки его содержимое отображается в правой части окна.

Используемые в разд. 3 блоки представлены на рис. 2.4.

Рис. 2.4. Блоки элементов САУ

Блок непрерывных элементов содержит передаточную функцию (Transfer Fcn), интегратор (Integrator) и блок фиксированной задержки времени (Transport Delay).

Блок Transfer Fcn задает передаточную функцию в виде отношения полиномов

где num(s) – вектор коэффициентов числителя; den(s) − вектор коэффициентов знаменателя.

Начальные условия при использовании блока предполагаются нулевыми. Для задания параметров блока необходимо дважды щелкнуть левой клавишей мыши на его пиктограмме (аналогично открываются окна настройки всех блоков в системе Simulink). В открывшемся окне, представленном на рис. 2.5, следует задать коэффициенты числителя и знаменателя и заключить их в квадратные скобки.

Рис. 2.5. Окно настройки блока Transfer Fcn

Integrator осуществляет интегрирование входного сигнала. Окно настройки блока представлено на рис. 2.6. Настройки, используемые по умолчанию, обеспечивают выполнение функций блока в подразд. 3.4.

Transport Delay обеспечивает задержку входного сигнала на фиксированный отрезок времени, величина которого задается в строке Time Delay окна задания параметров на рис. 2.7. Время измеряется в секундах. Остальные настройки назначаются по умолчанию.

Рис. 2.6. Окно настройки блока Integrator

Рис. 2.7. Окно настройки блока Transport Delay

Блок математических операций Slider Gain обеспечивает установку коэффициента усиления с помощью ползункового регулятора в окне задания параметров на рис. 2.8. Можно также задать требуемое значение коэффициента усиления в среднем окне блока.

Рис. 2.8. Окно настройки блока Slider Gain

Блок математических операций Sum выполняет вычисление суммы текущих значений сигналов. Блок может использоваться для суммирования скалярных, векторных и матричных переменных. Основными параметрами блока, представленными в окне настройки на рис. 2.9, являются:

  • форма блока, которая выбирается из списка (Icon share): круг (round) или прямоугольник (rectangular);
  • список знаков (List of sign). В списке можно использовать знаки +, − и | (разделитель знаков). При этом метки входов обозначаются соответствующими знаками.

Рис. 2.9. Окно настройки блока Sum

Блок маршрутизации сигналов Mux объединяет входные сигналы в вектор. Как видно из рис. 2.10, основным параметром блока является количество входов (Number of inputs).

Рис. 2.10. Окно настройки блока Mux

Из блоков источников сигналов используется Step, формирующий ступенчатый сигнал. Основными параметрами блока, представленными на рис. 2.11, являются:

  • время наступления перепада сигнала в секундах (Step time);
  • начальное значение сигнала (Initial value);
  • конечное значение сигнала (Final value).

Рис. 2.11. Окно настройки блока Step

Блоки приема и отображения сигналов содержат Scope, предназначенный для построения графиков исследуемых сигналов в функции времени. Окно просмотра сигналов открывается двойным щелчком левой клавиши мыши. На рис. 2.12 показан переходный процесс в САР в окне просмотра сигналов (цвета обращены).

Рис. 2.12. Окно просмотра сигналов

Основными кнопками панели инструментов являются:

  1. Доступ к окну настройки параметров (Parameters).
  2. Увеличение масштаба по обеим осям (Zoom).
  3. Увеличение масштаба по горизонтальной оси (Zoom X-axis).
  4. Увеличение масштаба по вертикальной оси (Zoom Y-axis).
  5. Автоматическая установка масштабов по обеим осям (Autoscale).

Если нажать соответствующую кнопку (Zoom, Zoom X-axis, Zoom Y-axis) и щелкнуть один раз левой клавишей мыши в нужном месте графика, то произойдет увеличение масштаба в 2,5 раза. Этот прием позволяет с заданной точностью определять координаты точки на графике.

Автоматическую установку масштабов по обеим осям целесообразно осуществлять после выполнения моделирования и для возврата к исходному графику после изменения масштаба.

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

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