Progress-servis55.ru

Новости из мира ПК
24 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

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

Основные математические функции MatLab

MatLab содержит в себе все распространенные математические функции, которые доступны по их имени при реализации алгоритмов. Например, функция sqrt() позволяет вычислять квадрат числа и может быть использована в программе следующим образом:

x = 2;
y = 4;
d = sqrt(x^2+y^2); %вычисление евклидового расстояния

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

Таблица 1.2. Основные математические функции MatLab

sqrt(x)вычисление квадратного корня
exp(x)возведение в степень числа e
pow2(x)возведение в степень числа 2
log(x)вычисление натурального логарифма
log10(x)вычисление десятичного логарифма
log2(x)вычисление логарифма по основанию 2
sin(x)синус угла x, заданного в радианах
cos(x)косинус угла x, заданного в радианах
tan(x)тангенс угла x, заданного в радианах
cot(x)котангенс угла x, заданного в радианах
asin(x)арксинус
acos(x)арккосинус
atan(x)арктангенс
piчисло пи
round(x)округление до ближайшего целого
fix(x)усечение дробной части числа
floor(x)округление до меньшего целого
ceil(x)округление до большего целого
mod(x)остаток от деления с учётом знака
sign(x)знак числа
factor(x)разложение числа на простые множители
isprime(x)истинно, если число простое
randгенерация псевдослучайного числа с равномерным законом распределения
randnгенерация псевдослучайного числа с нормальным законом распределения
abs(x)вычисление модуля числа

Почти все элементарные функции допускают вычисления и с комплексными аргументами. Например:

res = sin(2+3i)*atan(4i)/(1 — 6i); % res = -1.8009 — 1.9190i

Ниже показан пример задания вектора с именем a, и содержащий значения 1, 2, 3, 4:

a = [1 2 3 4]; % вектор-строка

Для доступа к тому или иному элементу вектора используется следующая конструкция языка:

disp( a(1) ); % отображение значения 1-го элемента вектора
disp( a(2) ); % отображение значения 2-го элемента вектора
disp( a(3) ); % отображение значения 3-го элемента вектора
disp( a(4) ); % отображение значения 4-го элемента вектора

т.е. нужно указать имя вектора и в круглых скобках написать номер индекса элемента, с которым предполагается работать. Например, для изменения значения 2-го элемента массива на 10 достаточно записать

a(2) = 10; % изменение значения 2-го элемента на 10

Часто возникает необходимость определения общего числа элементов в векторе, т.е. определения его размера. Это можно сделать, воспользовавшись функцией length() следующим образом:

N = length(a); % (N=4) число элементов массива а

Если требуется задать вектор-столбец, то это можно сделать так

a = [1; 2; 3; 4]; % вектор-столбец

b = [1 2 3 4]’; % вектор-столбец

при этом доступ к элементам векторов осуществляется также как и для векторов-строк.

Следует отметить, что векторы можно составлять не только из отдельных чисел или переменных, но и из векторов. Например, следующий фрагмент программы показывает, как можно создавать один вектор на основе другого:

a = [1 2 3 4]; % начальный вектор a = [1 2 3 4]
b = [a 5 6]; % второй вектор b = [1 2 3 4 5 6]

Здесь вектор b состоит из шести элементов и создан на основе вектора а. Используя этот прием, можно осуществлять увеличение размера векторов в процессе работы программы:

a = [a 5]; % увеличение вектора а на один элемент

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

a1 = zeros(1, 100); % вектор-строка, 100 элементов с
% нулевыми значениями
a2 = zeros(100, 1); % вектор-столбец, 100 элементов с
% нулевыми значениями
a3 = ones(1, 1000); % вектор-строка, 1000 элементов с
% единичными значениями
a4 = ones(1000, 1); % вектор-столбец, 1000 элементов с
% единичными значениями
a5 = rand(1000, 1); % вектор-столбец, 1000 элементов со
% случайными значениями

Матрицы в MatLab задаются аналогично векторам с той лишь разницей, что указываются обе размерности. Приведем пример инициализации единичной матрицы размером 3х3:

E = [1 0 0; 0 1 0; 0 01]; % единичная матрица 3х3

E = [1 0 0
0 1 0
0 0 1]; % единичная матрица 3х3

Аналогичным образом можно задавать любые другие матрицы, а также использовать приведенные выше функции zeros(), ones() и rand(), например:

A1 = zeros(10,10); % нулевая матрица 10х10 элементов

A2 = zeros(10); % нулевая матрица 10х10 элементов
A3 = ones(5); % матрица 5х5, состоящая из единиц
A4 = rand(100); % матрица 100х100, из случайных чисел

Для доступа к элементам матрицы применяется такой же синтаксис как и для векторов, но с указанием строки и столбца где находится требуемый элемент:

A = [1 2 3;4 5 6;7 8 9]; % матрица 3х3
disp( A(2,1) ); % вывод на экран элемента, стоящего во
% второй строке первого столбца, т.е. 4
disp( A(1,2) ); % вывод на экран элемента, стоящего в
% первой строке второго столбца, т.е. 2

Также возможны операции выделения указанной части матрицы, например:

B1 = A(:,1); % B1 = [1; 4; 7] – выделение первого столбца
B2 = A(2,:); % B2 = [1 2 3] – выделение первой строки
B3 = A(1:2,2:3); % B3 = [2 3; 5 6] – выделение первых двух
% строк и 2-го и 3-го столбцов матрицы А.

Читать еще:  Решение системы дифференциальных уравнений в matlab

Размерность любой матрицы или вектора в MatLab можно определить с помощью функции size(), которая возвращает число строк и столбцов переменной, указанной в качестве аргумента:

a = 5; % переменная а
A = [1 2 3]; % вектор-строка
B = [1 2 3; 4 5 6]; % матрица 2х3
size(a) % 1х1
size(A) % 1х3
size(B) % 2х3

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 9231 — | 7433 — или читать все.

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

Так как массивы явяляются самыми распространёнными и самыми ценными типами данных в системе MATLAB, то важно подробно рассмотреть все нюансы вычислений с ними. Ранее (п.2) мы рассмотрели действие арифметических, логических операций и операций сравнения в частном случае скаляров (массив размера 1×1). Теперь повторим это рассмотрение для случая массивов.

Начнём с арифметических операций. Операции сложения и вычитания осуществляются с массивами поэлементно и обозначаются теми же самыми традиционными значками. Если A = [ 1 1 1; 2 2 2; 3 3 3 ] ; B = [ 0 0 0; 7 7 7; 1 2 3 ] , то справедливо равенство

A + B == [ 1 1 1 ; 9 9 9 ; 4 5 6 ];

Складываемые (вычитаемые) матрицы должны иметь одинаковые размеры. Допускается исключение — если одно из слагаемых является скаляром. В этом случае производится генерация матрицы с таким же размером, как и у матричного слагаемого, причём все её элементы одинаковые и равны исходному скаляру. Например,

A + 5 == [ 6 6 6 ; 7 7 7 ; 8 8 8 ];

То есть до выполнения поэлементного матричного сложения из скаляра 5 получают безымянную матрицу [ 5 5 5; 5 5 5; 5 5 5 ] , которую и складывают с A .

Теперь рассмотрим умножение и деление (а также возведение в степень). Здесь традиционные значки зарезервированы за действиями линейной алгебры: знак * означает перемножение матриц (а также вектор-строк и вектор-столбцов) по широко известному правилу «строка на столбец«. Традиционный знак деления / (а также знак ) закреплён за «операцией нахождения решений систем линейных уравнений«. Все эти операции линейной алгебры (включая операцию транспонирования) будут подробно рассмотрены в главе, специально посвящённой решению математических задач с помощью системы MATLAB.

Для поэлементных операций традиционные значки предваряются точкой. То есть поэлементное перемножение массивов обозначается .* и поэтому следующее равенство очевидно:

A .* B == [ 0 0 0 ; 14 14 14 ; 3 6 9 ];

Соответственно, выражение A.^2 позволяет возвести в квадрат каждый элемент матрицы A . При поэлементном умножении на скаляр производится «расширение скаляра до матрицы«, или по-другому можно сказать, что на скаляр умножается каждый элемент матрицы:

A .* 4 == [ 4 4 4 ; 8 8 8 ; 12 12 12 ];

Для поэлементного деления используются комбинации знаков ./ и . ,

обозначающие «правое и левое» поэлементные деления. Выражение A./B приводит к матрице с элементами A(k,m)/B(k,m) , а выражение A. B приводит к матрице с элементами B(k,m)/A(k,m). Обе матрицы должны иметь одинаковые размеры, в случае скаляра производится его расширение до размеров операнда-матрицы. Например,

6 ./ A == [ 6 6 6 ; 3 3 3 ; 2 2 2 ];

Операции отношения и логические операции используют в случае матриц те же самые значки и выполняют поэлементные действия. В случае скаляра производится его «расширение«. Выполним сравнение матриц A и B , используя операцию «меньше или равно«:

Здесь каждый нуль означает «ложь» для данной позиции внутри матриц, а единица означает «истину«. Полученная матрица показывает (единицами), в каких позициях элементы матрицы A на самом деле меньше или равны соответствующим элементам матрицы B .

Операции сравнения для массивов часто комбинируются с вызовом функции find . Действительно, представим, что для массива v = [ 1 3 6 7 0 ] все элементы, большие единицы, нужно сделать равными 9 . Эта задача решается с помощью следующего выражения:

Поясним работу этого выражения. Функция find возвращает набор (массив) номеров тех элементов вектора v , для которых записанное неравенство v > 1 действительно имеет место. Ясно, что это номера [ 2 3 4 ] . Затем эти номера поступают на вход операции индексации массива v , что и обеспечивает присвоение девятки второму, третьему и четвёртому элементам v :

Таким образом, все элементы, большие единице, стали равны девяти.

Работу логических операций продемонстрируем на только что полученном новом значении вектора v , применив к нему операцию «НЕ»:

Математические функции, рассмотренные нами ранее в п.4, допускают использование не только скалярных аргументов, но и аргументов-массивов. В результате с помощью крайне компактных записей удаётся произвести большой объём вычислений. Например, выражения

x = 0 : 0.01 : pi/2; y = sin(x);

позволяют осуществить вычисления функции sin сразу в 158 точках. В результате мы имеем массив аргументов x (всего 158 значений) и массив y значений функции (также 158 элементов). Этих двух массивов уже достаточно для построения подробного графика функции sin . В системе MATALB эти два массива можно подать на вход специальной функции, автоматически производящей построение графиков функций. Эта техника будет рассмотрена в следующей главе.

Читать еще:  Метод простой итерации matlab

А сейчас приближённо решим уравнение

Для этого нам потребуется записать всего лишь одно выражение:

В результате вычислений получается приближённый корень: res = 0.3200 . Так как шаг вычислений был выбран равным 0.01, то мы можем надеяться, что корень найден с точностью не хуже 0.01. Для проверки точности найденного корня вычисляем asin(0.315) :

Отсюда видно, что наше предположение о точности найденного корня полностью подтверждается.

Основные математические функции MatLab

В ML существует большое количество элементарных математических функций для выполнения действий с числами: тригонометрические, степенные, логарифмические, экспоненциальные и функции округления. Каждая функция обладает именем и списком аргументов, которые задаются в круглых скобках и, если их несколько, перечисляются через запятую.

Существуют встроенные тригонометрические и гиперболические функции: sin(x), cos(x), tan(x), cot(x), asin(x), acos(x), atan(x), acot(x), sinh(x) и т.д. Аргументы этих функций (в следующих версиях, начиная с версии 7.0) могут задаваться в радианах и градусах. У функций в градусной мере после названия добавляется буква d. sin(x) – аргумент в радианах, а sind(x) – аргумент в градусах.

Некоторые часто используемые математические функции:

· exp(x)–экспонента числа x;

· log(x)– натуральный логарифм;

· log10(x)– десятичный логарифм;

· sqrt(x)– квадратный корень;

· abs(x)– абсолютное значение x;

· mod(x, y)– остаток от целочисленного деления с учетом знака;

· rem(x, y)– остаток от целочисленного деления без учета знака;

· real(z)– вещественная часть комплексного числа;

· imag(z)– мнимая часть комплексного числа;

· round(x)– округление до ближайшего целого.

Более полный список основных математических функций MatLab:

sqrt(x)вычисление квадратного корня
exp(x)возведение в степень числа e
pow2(x)возведение в степень числа 2
log(x)вычисление натурального логарифма
log10(x)вычисление десятичного логарифма
log2(x)вычисление логарифма по основанию 2
sin(x)синус угла x, заданного в радианах
cos(x)косинус угла x, заданного в радианах
tan(x)тангенс угла x, заданного в радианах
cot(x)котангенс угла x, заданного в радианах
asin(x)арксинус
acos(x)арккосинус
atan(x)арктангенс
piчисло пи
round(x)округление до ближайшего целого
fix(x)усечение дробной части числа
floor(x)округление до меньшего целого
ceil(x)округление до большего целого
mod(x,y)остаток от деления с учётом знака
sign(x)знак числа
factor(x)разложение числа на простые множители
isprime(x)истинно, если число простое
randгенерация псевдослучайного числа с равномерным законом распределения
randnгенерация псевдослучайного числа с нормальным законом распределения
abs(x)вычисление модуля числа

С использованием вышеупомянутых функций, записать и сосчитать значение арифметического выражения:

Вычислить: res=

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

Если в выражении многократно встречаются одинаковые фрагменты, то их целесообразно вычислять 1 раз и результат помещать в отдельные переменные. Это позволяет избежать одинаковых вычислений и тем самым оптимизирует вычисления.

res=(3*cos(x^3)^2-sin(x-pi/3))/(log(abs(y))+exp (sqrt (x+1))/(2*x))*1E6

Для эффективной работы с большими наборами данных или при необходимости многократных вычислений рассмотренных средств недостаточно. В ML существует возможность записать последовательность команд в файл, сохранить его, дать ему имя и выполнить, набрав в командной строке имя файла. Это можно сделать во встроенном редакторе системы. Такие файлы называются файлами-сценариями или скрипт-файлами. При сохранении они автоматически получают расширение системы – m.

Файлы-программы (их называют скриптами или сценариями) являются самым простым типом m-файлов. Script-файл состоит из последовательности команд, не содержит заголовка, а также входных и выходных параметров. Все объекты, используемые внутри script-файла, считаются глобальными. Если в рабочем пространстве есть данные, то внутри script-файла их можно использовать, а по окончании его выполнения использовать данные, созданные с его помощью. Такие файлы используются для автоматизации выполнения большого набора инструкций. Их текст набирают в окне встроенного редактора ML.

Для выполнения файла-программы достаточно в командной строке указать имя этого скрипта. Перед запуском программы на выполнение необходимо установить нужный каталог в качестве текущего. Запуск файла на выполнение можно осуществить двумя способами: из окна редактора и из командного окна.

Для запуска программы на выполнение из окна редактора надо выбрать пункт меню Debug, Run или нажать функциональную клавишу F5, или выбрать соответствующую пиктограмму на панели инструментов. Выполнить программу, уже сохраненную на диске, можно из командного окна ML, просто набрав имя файла без расширения.

Дата добавления: 2016-04-02 ; просмотров: 1588 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

Читать еще:  Средства защиты баз данных

Арифметические операторы и функции MATLAB

Help specfun

Выделение подматрицы с 2-й по 5-ю строки и с 3-го по 5-й столбец

Транспонирование вектора

Транспонирование не квадратной матрицы

Транспонирование квадратной матрицы

Выделить 1,2,3 столбцы, строки переставить в указанном порядке

Переставить строки в указанном порядке

Переставить столбцы в указанном порядке

M(5)

Переприсваивание элемента M(2,2)

Действия со строками и столбцами

По формуле.

Функция eye(n), eye(m,n) возвращает единичную матрицу nxn или mxn

Hist(Y,100)

Plot(X,Y)

M %вывод на экран

%2 способ

Matr=[1:7;11:17;21:27;31:37]

%3 способ

функция magic(n) задает магическую матрицу nxn все ее элементы не превышают n^2;

суммы всех элементов столбцов, строк, диагонали равны 34 (для n=4);

M1=magic(4)

%4 способ

функции создания массивов со случайными элементами rand: rand(n) rand(m,n)генерируют матрицу (nxn)или(mxn) с элементами, распределенными по равномерному закону в промежутке (0,1);

YR=rand(4,3)

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

X=rand(1000,1);

Y=rand(1000,1);

функция randn(n), randn(mxn) генерируют матрицу nxn (mxn) с элементами, распределенными по нормальному закону с мат. Ожиданием = 0 и ср. кв. отклонением = 1;

YN=randn(4,3)

для проверки распределения построим гистограмму;

Y=randn(1000,1);

строится гистограмма из 100 столбцов для 1000 случайных чисел с нормальным законом распределения;

Y1=randn(4,3)*10 %все элементы умножаются на 10;

a=3; b=20; %интервал [a;b]

Y2=rand(4,3)*(b-a)+a
%генерируется матрица (4×3)с числами в интервале [20;3];

%5 способ

t=eye(3)

t2=eye(4,3)

%6 способ

функция ones(n), ones(m,n) возвращает матрицу nxn или mxn, все элементы которой единицы;

H=ones(3,4)

%7 способ

функция zeros(n), zeros(m,n) возвращает матрицу nxn или mxn, все элементы которой нули;

D=zeros(3,2)

%8 способ

M1=magic(4)

M(2,2)=10

Выражение M(i) дает доступ к элементам матрицы, развернутым в один столбец

A=[ -5 3 -2 -9 -1; 0 -1 2 4 3;2 3 7 6 2;1 5 -4 3 -4; 2 6 -5 -8 3]

B=A(:,[4,1,2,5,3])

B=A([2,5,1,4,3],:)

B=A([2,5,1,4,3],1:3)

M=[1 2 3 4;4 5 6 7;7 8 9 1;2 4 6 8]

MT=M’

M2=[1 2 3 4;4 5 6 7;7 8 9 1]

MT2=M2′

N=[1 4 3 6]

NT=N’

%выделение подматрицы:

B=magic(6)

B(1:2,:) %первые две строки, все столбцы;

B(1:2,:)=0 %обнулить первые две строки

Выделение столбцов со 2-го по 5-й, 6 строк:

C1=B(:,2:5)

C2=B(2:5,3:5)

Выделение подматрицы с 1-й по 3-ю строки и с 2-го по последний столбец;

C3=B(1:3,2:end)

%Удаление столбцов и строк матрицы

B=magic(5)

B(:,2)=[] %Удалим 2-й столбец

B(2,:)=[] %Удалим 2-ю строку

Помощь:

help elfun – вывести список всех элементарных математических функций.

help elmat – вывод более сложных математических и матричных функций.

Таблица 1. Арифметические операции

Название ОператорСинтаксис
Плюс +М1+М2
Унарный плюс +
Минус —М1-М2
Унарный минус —
Матричное умножение *М1*М2
Поэлементное умножение массивов .*А1*А2
Возведение матрицы в степень ^М1^х
Поэлементное возведение массива в степень .^А1.^х
Обратное (справа налево) деление матрицM1M2
Деление матриц слева направо /М1/М2
Поэлементное деление массивов справа налево .А1.А2
Поэлементное деление массивов слева направо ./А1./А2
Транспонирование матрицы A’

Система MATLAB работает как с действительными, так и с комплексными числами.

Таблица 2. Элементарные алгебраические функции

ФункцияОписание
abs(x),Вычисление абсолютного значения действительного числа x.
sqrt(x)Вычисление квадратного корня
round(x)Округление до целого.
fix(x)Округление до ближайшего целого в сторону нуля.
floor(x)Округляет до меньшего целого
ceil(x)Округляет до большого целого
rem(x, y)Вычисление остатка от деления x на y.
exp(x)Вычисление е в степени x.
log(x)Вычисление натурального логарифма числа x.
log10(x)Вычисление десятичного логарифма числа x.
factorial(x)Вычисляет факториал числа х
pow2(x)Возводит двойку в степень х
piВыдает число пи
lcm(x,y,z) gcd(x,y,z)наименьшее общее кратное, наибольший общий делитель
ФункцияОписание
abs(x),Вычисление абсолютного значения действительного числа x.
sqrt(x)Вычисление квадратного корня
round(x)Округление до целого.
fix(x)Округление до ближайшего целого в сторону нуля.
floor(x)Округляет до меньшего целого
ceil(x)Округляет до большого целого
mod(x,y)остаток от деления нацело с учетом знака
rem(x, y)Вычисление остатка от деления x на y.
exp(x)Вычисление е в степени x.
log(x)Вычисление натурального логарифма числа x.
log2(x)Вычисление логарифма по основанию 2
log10(x)Вычисление логарифма по основанию 10
factorial(x)Вычисляет факториал числа х
pow2(x)Возводит двойку в степень х
piВыдает число пи
lcm(x,y,z) gcd(x,y,z)наименьшее общее кратное, наибольший общий делитель

MATLAB предоставляет возможности для вычисления следующих тригонометрических и обратных тригонометрических функций переменной x (табл.3).

Таблица 3. Тригонометрическиe функции

ФункцияОписание
sin(x)Вычисление синуса
cos(x)Вычисление косинуса
tan(x)Вычисление тангенса
asin(x)Вычисление арксинуса
acos(x)Вычисление арккосинуса
atan(x)Вычисление арктангенса
atan2(y, x)Вычисление арктангенса по координатам точки

ПРИМЕРЫ:

Дата добавления: 2014-11-18 ; Просмотров: 1747 ; Нарушение авторских прав?

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Ссылка на основную публикацию
Adblock
detector