Как определить длину вектора в матлабе

от admin

Векторы и матрицы

Самой характерной особенностью MATLAB является то, что он является программой, предназначенной для вычислений с векторами, матрицами и полиномами.Даже название продукта происходит от словMATrixLABoratory– матричная лаборатория.

Матрица – основной элемент вычислений (операнд) в MATLAB.Это двумерный массив чисел или математических выражений. По умолчанию все операции подразумеваются как действия, выполняемые над матрицами.Размер матрицы (size) определяется числом её строк и столбцов.

Вектор – это одномерный массив, частный случай матрицы. Число элементов вектора – это его размер. Обычное число (скаляр) является матрицей размером (1×1), вектор – строка сNэлементами – это матрица размером (1xN), вектор – столбец – это матрица размером (Nх 1).

Векторы MATLAB могут определяться двумя способами.

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

Columns 1 through 3

5.0000e+000 0 +2.0000e+000i 3.1416e+000

Доступ к элементам такого массива производится указанием индекса элемента. Индексы элементов массивов MATLAB всегда начинаются с 1.

. Attempted to access x(0);

index must be a positive integer or logical.

Размер (длина) вектора может быть определен командой length

Дополнение вектора элементом

Columns 1 through 3

5.0000e+000 0 +2.0000e+000i 3.1416e+000

Columns 4 through 5

Генерирование вектора – столбца выполняется разделением элементов точкой с запятой внутри квадратных скобок, обозначающих массив:

Транспонирование вектора (матрицы) реализуется с помощью команды – символа ‘

Транспонирование комплексного вектора сопровождается не только преобразованием вектора – строки в вектор – столбец или наоборот, но и изменением знаков мнимой части элементов (эрмитово или комплексное сопряжение вектора)

Транспонирование без образования комплексно сопряженного вектора выполняется вводом точки перед оператором транспонирования, например,

Второй метод создания вектора заключается в использовании выражения типа арифметической прогрессии – начальное значение : приращение : конечное значение.

>> x =[0:0.2:1] % Последовательность от 0 до 1 с приращением 0.2

x = 0 0.20 0.40 0.60 0.80 1.00

>>k = 0:10; % Создается 1×11 вектор с элементами 0, 1, 2, . 10.

Шаг приращения может быть и отрицательным

10.0000 7.5000 5.0000 2.5000 0

Командой linspace(x1, x2, n) создается n равноотстоящих чисел от x1 до x2, например,

>> x1 = linspace(0, 4, 5)

С помощью команды logspace(x1, x2, n) генерируется n чисел от 10 x 1 до 10 x 2 в логарифмической шкале, пример

% 6 значений от 10 0 до 10 1 в логарифмической шкале

>> x = logspace(0, 1, 6)

1.0000 1.5849 2.5119 3.9811 6.3096 10.0000

Обе последние команды полезны при построении графиков в линейном и логарифмическом масштабе.

Ввод элементов матрицы выполняется в MATLAB в квадратных скобках по строкам. Элементы строки матрицы разделяются пробелом или запятой, строки отделяются друг от друга символом ; (точка с запятой).

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

>> txt = ‘string’ % генерирование символьной матрицы/вектора

% ввод символьной матрицы по отдельным символам

Специальные матрицы, встроенные в MATLAB (справочные сведения могут быть получены через help):

M = []; % пустая матрица

M = zeros(n,m); %nxmматрица с нулевыми элементами

M = ones(n,m); %nxmматрица из единичных элементов

M = eye(n);% единичная квадратная матрицаnxn

M = rand(m,n);% матрица размеромmxnиз случайных чисел,

% равномерно распределенных в интервале [0,1].

M = randn(m,n);% матрица размеромmxnиз случайных чисел,

% распределенных по нормальному закону с нулевым

% средним значением и единичной дисперсией.

Наиболее часто используется вызов этих функций в виде

где m – число строк,n – число столбцов матрицы.

Матрица может быть создана также с помощью её блоков, например, если А– матрица размером 3 х 3, то команда

создаст матрицу М размером 3 х 6.

Индексация элементов матриц аналогична принятой в математике.

Первый вариант индексации:

Элементы матриц могут быть получены с помощью их индексов

>> x = A (1, 3) % формат доступа A(<ряд>,<столбец>)

>> y =A(2, 🙂 % доступ к элементам второй строки матрицы А

» v1 = A(:, 2) % доступ к элементам второго столбца

8 Доступ к подматрицам

>> z = A(1:2, 1:3) % доступ к элементам первой и второй строки

>> v = A(:) % преобразование матрицы в вектор

Команда length(x)возвращает размер (длину) вектораx, командаsize(x)– размеры матрицы.

Как найти длину вектора matlab

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

Ниже показан пример задания вектора с именем 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 можно определить с помощью функции 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

© 2022 Научная библиотека

Копирование информации со страницы разрешается только с указанием ссылки на данный сайт

length

Length of largest array dimension

Syntax

Description

L = length( X ) returns the length of the largest array dimension in X . For vectors, the length is simply the number of elements. For arrays with more dimensions, the length is max(size(X)) . The length of an empty array is zero.

Examples

Number of Vector Elements

Find the length of a uniformly spaced vector in the interval [5,10] .

Length of Rectangular Matrix

Find the length of a 3-by-7 matrix of zeros.

String Array

Create a string array and compute its length, which is the number of elements in each row.

Length of Structure Fields

Create a structure with fields for Day and Month . Use the structfun function to apply length to each field.

Input Arguments

X — Input array
scalar | vector | matrix | multidimensional array

Input array, specified as a scalar, vector, matrix, or multidimensional array.

Complex Number Support: Yes

To find the number of characters in a string or character vector, use the strlength function.

length does not operate on tables. To examine the dimensions of a table, use the height , width , or size functions.

Extended Capabilities

Tall Arrays
Calculate with arrays that have more rows than fit in memory.

This function fully supports tall arrays. For more information, see Tall Arrays.

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

GPU Code Generation
Generate CUDA® code for NVIDIA® GPUs using GPU Coder™.

HDL Code Generation
Generate Verilog and VHDL code for FPGA and ASIC designs using HDL Coder™.

Thread-Based Environment
Run code in the background using MATLAB® backgroundPool or accelerate code with Parallel Computing Toolbox™ ThreadPool .

This function fully supports thread-based environments. For more information, see Run MATLAB Functions in Thread-Based Environment.

GPU Arrays
Accelerate code by running on a graphics processing unit (GPU) using Parallel Computing Toolbox™.

This function fully supports GPU arrays. For more information, see Run MATLAB Functions on a GPU (Parallel Computing Toolbox) .

Distributed Arrays
Partition large arrays across the combined memory of your cluster using Parallel Computing Toolbox™.

This function fully supports distributed arrays. For more information, see Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox) .

Как найти длину вектора matlab

· Length ( V ) – определяет длину вектора V ;

· Prod ( V ) или prod ( A , K ) – вычисляет произведение элементов массива V или произведения столбцов или строк матрицы в зависимости от значения k ;

· Sum ( V ) или sum ( A , k ) – вычисляет сумму элементов массива V или сумму столбцов или строк матрицы в зависимости от значения k ;

· Dot ( v 1, v 2) – вычисляет скалярное произведение векторов v 1 и v 2, то же значение выдаст функция sum ( v 1.* v 2);

· Cross ( v 1, v 2) – определяет векторное произведение векторов v 1 и v 2;

· Min ( V ) – находит минимальный элемент массива V , вызов в формате [ k , n ]= min ( V ) дает возможность определить минимальный элемент k и его номер в массиве n ;

· Max ( V ) – находит максимальный элемент массива V или при [ k , n ]= max ( V ) определяет максимум и его номер;

· Sort ( V ) – выполняет упорядочивание массива V ;

· Det (М) — вычисляет опеределитель квадратной матрицы М;

· Rank ( M ) – определяет ранг матрицы М;

· Norm ( M , p ) – возвращает различные виды норм матрицы M в зависимости от p ( p =1, 2 inf , fro );

· Cond ( M , p ) – возвращает число обусловленности матрицы M , основанное на норме p ;

· Eye ( n , m ) или eye ( n ) – возвращает прямоугольную матрицу с единицами по главной диагонали или квадратную единичную матрицу;

· Ones ( n , m ) или ones ( n ) – формирует прямоугольную или квадратную матрицу, состоящую из единиц;

· Zeros ( n , m ) или zeros ( n ) – возвращает прямоугольную или квадратную нулевую матрицу;

· Diag ( V , n ) или diag ( V ) – возвращает квадратную матрицу с элементами V на k -й диагонали или элементами V на главной диагонали;

· Inv ( M ) – возвращает матрицу, обратную к М;

· Eig ( M ) – возвращает вектор собственных значений матрицы М, вызов функции в формате [ V , D ]= eig ( M ) даст матрицу V , столбцы которой – собственные векторы матрицы M , и диагональную матрицу D , содержащую собственные значения матрицы M ;

· Linsolve ( A , b ) – возвращает решение системы линейных уравнений A * x = b , вызов в формате linsolve ( A , b , options ) позволяет задать метод решения уравнения. Если задать функцию в виде [ x , r ]= linsolve ( A , b ), то она вернет x – решение системы и r – ранг матрицы A .

· Rref ( M ) – осуществляет приведение матрицы М к треугольной форме, используя метод исключений Гаусса;

· Chol ( M ) – возвращает разложение по Халецкому для положительно определенной симметрической матрицы М;

· Lu ( M ) – выполняет LU -разложение, возвращает две матрицы: нижнюю треугольную L и верхнюю треугольную U ;

· Gr ( M ) – выполняет QR – разложение, возвращает ортогональную матрицу Q и верхнюю треугольную R ;

Get the Size of Vector in Matlab

In this tutorial, we will discuss how to get the size and the number of elements present in a vector using the length() , size() , and numel() functions in MATLAB.

Get Size of a Vector Using the size() Function in MATLAB

The size() function returns the number of rows and columns present in a vector or matrix. For example, let’s get the size of a vector. See the code below.

As you can see, the size of the given vector is 1×4 . This method is only suitable for finding the size of a vector and not suitable for finding the number of elements as it returns the number of rows and columns.

Get the Number of Elements Present in a Vector Using the length() Function in MATLAB

The length() function returns the number of elements present in a vector. For example, let’s get the length of a vector. See the code below.

As you can see, the length of the given vector is 4. This method is only suitable for finding the number of elements present in a vector and not suitable for finding the number of elements in a matrix as it returns only the longest dimension.

Get the Number of Elements Present in a Vector or Matrix Using the numel() Function in MATLAB

The numel() function returns the number of elements present in a vector or matrix. For example, let’s get the number of elements present in a matrix. See the code below.

As you can see, the length or number of elements present in the given vector is 8. This method is suitable for finding the number of elements present in a vector or matrix.

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

Скалярное произведение matlab

Матричные и поэлементные операции над векторами и матрицами

К матричным действиям с матрицами относятся такие операции, которые используются в матричном исчислении в математике. Базовые действия с матрицами (векторами): сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение квадратной матрицы в степень – осуществляются в MATLAB с помощью обычных знаков арифметических операций. Условия, при которых эти операции возможны, таковы:

при сложении или вычитании матриц они должны иметь одинаковые размеры;

при умножении матриц число столбцов первого множителя должно совпадать с числом строк второго множителя.

Невыполнение этих условий приводит к появлению сообщения об ошибке.

Приведем примеры базовых действий с матрицами

>> A=[0 -2 4;3 2 1];D=[-5 4 2;1 3 1];B=[-1 -2 -3;1 3 1;0 2 2];

Пример сложения и вычитания

Пример умножения на число

Пример транспонирования матрицы, при котором ее строки становятся столбцами, а столбцы – строками, осуществляется с помощью оператора (апостроф):

В математике транспонированная матрица А обозначается А Т .

Знак закреплен за матричным умножением векторов и матриц в смысле линейной алгебры. При этом число столбцов первой матрицы обязано равняться числу строк второй матрицы. Произведение прямоугольной матрицы An×k (таблицы чисел, расположенных в n строках и в k столбцах) на матрицу Bk×m определяется следующим образом: для того, чтобы получить элемент cij матрицы — произведения C = AB, следует элементы i — й строки матрицы А умножить на соответствующие элементы j — го столбца матрицы В и результаты сложить, т. е.

Матрица С = Сn×m занимает n строк и m столбцов.

Пример умножения матрицы на матрицу

Умножение двух векторов определено в математике только для векторов одинакового размера и лишь тогда, когда один из векторов сомножителей является строкой, а второй – столбцом. Иначе говоря, если векторы Х и У являются строками, то математический смысл имеют только две формы умножения этих векторов: U = X*Y’ и V = X’*Y. Причем в первом случае результатом будет скалярное произведение векторов Х и У (число), а во втором – внешнее произведение векторов Х и Y (квадратная матрица).

Скалярное произведение двух векторов вычисляет команда dot:

Векторное произведение. Для трехкомпонентных векторов в MATLAB существует команда cross, которая вычисляет векторное произведение двух векторов.

Командаdet(B) вычисляет определитель│B│ квадратной матрицы B.

Команда обращения матрицы inv(B) вычисляет матрицу В -1 , обратную заданной матрице B. Исходная матрица B должна быть квадратной, и ее определитель не должен быть равен нулю.

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

Матрица, обратная матрице В, обозначается В -1 и удовлетворяет соотношениям (В -1 ) -1 = B, ВВ -1 = В -1 В = E, где E – единичная матрица того же порядка n, что и B.

Проверим правильность выполнения операции обращения матрицы B:

-1.0000 -2.0000 -3.0000

1.0000 3.0000 1.0000

В результате получили матрицу B, т. е. соотношение (В -1 ) -1 = B выполняется.

-0.0000 1.0000 -0.0000

Соотношения ВВ -1 = В -1 В = E также выполняются.

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

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

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

Если требуется извлечь квадратный корень из матрицы, то лучше применить матричную функцию sqrtm. Матричные экспонента и логарифм вычисляются при помощи матричных функций expm и logm.

В MATLABвводятся две новых операции (они не относятся к операциям линейной алгебры) деления матриц слева направо и справа налево. Первая операция записывается при помощи знака , а вторая – при помощи знака , которые помещаются между именами двух матриц – делимого и делителя. Операция B/A эквивалентна операции B*inv(A) и ее удобно использовать для решения матричного уравнения

а AB эквивалентна inv(A)*B и является решением матричного уравнения

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

Как правило, если f является одной из встроенных математических функций системы MATLAB или является заданной пользователем векторизованной функцией, то выражение f(A) представляет собой матрицу, полученную поэлементным вычислением f для A.

0.8415 0.9093 0.1411

Кроме поэлементного преобразования матриц с помощью математических функций, в MATLAB можно выполнять поэлементные преобразования матриц с помощью арифметических операций. К таким операциям относятся операции поэлементного умножения с помощью оператора (без пробела между точкой и звездочкой), поэлементного деления , обратного поэлементного деления , поэлементного возведение в степень . Операции поэлементного преобразования матриц выполняются только над матрицами одинакового размера и типа. В результате получается матрица такого же размера и типа. Проиллюстрируем поэлементные преобразования матриц на матрицах A и B:

>> A=[1 2 3 4 5;-2 3 1 4 0], B=[-1 3 5 -2 1;1 8 -3 -1 2]

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

-1.0000 0.6667 0.6000 -2.0000 5.0000

-2.0000 0.3750 -0.3333 -4.0000 0

Результат – матрица, элементы которой являются частным от деления соответствующих элементов матриц A и B.

Обратное поэлементное деление

Warning: Divide by zero.

-1.0000 1.5000 1.6667 -0.5000 0.2000

-0.5000 2.6667 -3.0000 -0.2500 Inf

Результатом является матрица, элементы которой являются частным от деления соответствующих элементов матриц B и A.

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

0.0010 0.0080 0.2430 0.0001 0.0050

-0.0020 6.5610 0.0010 0.0003 0

При поэлементном возведении в степень каждый элемент матрицы A возводится в степень, равную соответствующему элементу матрицы B.

Обратим внимание на результат, полученный при выполнении операции A.^B. Система MATLAB выделила общий множитель 1.0e+003 * для всех элементов результирующей матрицы.

Оригинальной в MATLAB является операция прибавления к матрице числа. Она записывается таким образом: A+x или x+A (где A – матрица, а x – число). Такая операция также не относится к операциям линейной алгебры. Например:

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

В MATLAB поэлементные операции над векторами аналогичны поэлементным операциям над матрицами.

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

MATLAB 7 — Ануфриев И.Е.

Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7 — СПб.: БХВ-Петербург, 2005. — 1104 c.
ISBN 5-94157-494-0
Скачать (прямая ссылка): matlab72005.pdf Предыдущая 37 38 39 40 41 42 .. 349 >> Следующая

осуществляет построение первого графика сплошной черной линией, а второго ¦— черной пунктирной (рис. 2.6). Аргументы ‘к-‘ и ‘к: ‘ задают стиль и цвет первой и второй линий. Здесь к означает черный цвет, а дефис или двоеточие — сплошную или пунктирную линию. Визуализация данных и построение графиков подробно описаны в следующих главах. Окно с графиком можно закрыть, нажав на кнопку закрытия окна в его правом верхнем углу. J 74

Часть I, Основы работы в MATLAB

Рис. 2.5. Два графика на Одних осях

Рис. 2.6. Изменение стили и цвета линий графиков

Построение графиков функций в MATLAB требует понимания работы с векторами — необходимо уметь вводить векторы, использовать двоеточие для автоматического заполнения с заданным шагом, применять поэлементные операции для вычисления функций от Вектора значений аргумента. Все Глава 2. Работа с массивами

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

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

Скалярное произведение векторов а и Ь длины N , состоящих из действительных чисел, определяется формулой

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

Ниже приведена требуемая последовательность команд: » а = [1.2; -3.2; 0.7]; » Ъ = [4.1; 6.5; -2.9]; » s = sum

Скалярное произведение векторов можно также вычислить, применив функцию MATLAB dot

Найдите длину (или, как еще говорят, модуль) вектора а

Часть I, Основы работы в MATLAB

Векторное произведение axb определено только для векторов из трехмерного пространства, т. е. состоящих из трех элементов. Результатом также является вектор из трехмерного пространства. Для вычисления векторного произведения в MATLAB служит функция cross:

Читать:
Сколько валентных электронов у меди

» а = [1.2; -3.2; 0.7]; » Ъ = [4.1; 6.5; -2.9]; » с = cross(а, Ь> с = 4.7300 6.3500 20.9200

Для тренировки попробуйте вычислить axb+bxa . Если получился вектор, состоящий из нулей, то вы все проделали правильно, т. к, для любых векторов выполняется свойство axb — -bxa .

Смешанное произведение векторов a, b, с определяется по формуле abc = а ¦ (bxc). Модуль смешанного произведения векторов равен объему параллелепипеда, построенного на этих векторах так, как показано на рис. 2.7,

Рис. 2.7. Параллелепипед, образованный гремя векторами Глава 2. Работа с массивами

Найдите объем параллелепипеда, если

Правильные действия таковы: » а = [3.5; 0; 0]; » Ъ = (0.5; 2.1; 0] ; » с = [-0.2; -1.9; 2.8]; » V = abs(dot(a, cross(b, с))) V = 20.5800

Внешним произведением векторов я = ( Предыдущая 37 38 39 40 41 42 .. 349 >> Следующая

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

Синтаксис

Описание

Если A и B векторы, затем у них должна быть та же длина.

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

C = dot( A,B , dim ) оценивает скалярное произведение A и B по измерению, dim . dim вход является положительным целочисленным скаляром.

Примеры

Скалярное произведение действительных векторов

Создайте два простых, трехэлементных вектора.

Вычислите скалярное произведение A и B .

Результатом является 8 с тех пор

C = A(1)*B(1) + A(2)*B(2) + A(3)*B(3)

Скалярное произведение комплексных векторов

Создайте два комплексных вектора.

Вычислите скалярное произведение A и B .

Результатом является комплексный скаляр начиная с A и B являются комплексными. В общем случае скалярное произведение двух комплексных векторов является также комплексным. Исключение — когда вы берете скалярное произведение комплексного вектора с собой.

Найдите скалярное произведение A с собой.

Результатом является действительный скаляр. Скалярное произведение вектора с собой связано с Евклидовой длиной вектора, norm(A) .

Скалярное произведение матриц

Создайте две матрицы.

Найдите скалярное произведение A и B .

Результат, C , содержит три отдельных скалярных произведения. dot обрабатывает столбцы A и B как векторы и вычисляет скалярное произведение соответствующих столбцов. Так, например, C(1) = 54 скалярное произведение A(:,1) с B(:,1) .

Найдите скалярное произведение A и B , обработка строк как векторы.

В этом случае, D(1) = 46 скалярное произведение A(1,:) с B(1,:) .

Скалярное произведение многомерных массивов

Создайте два многомерных массива.

Вычислите скалярное произведение A и B по третьему измерению ( dim = 3 ).

Результат, C , содержит четыре отдельных скалярных произведения. Первое скалярное произведение, C(1,1) = 106 , равно скалярному произведению A(1,1,:) с B(1,1,:) .

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

A,B — Входные массивы
числовые массивы

Входные массивы, заданные как числовые массивы.

Типы данных: single | double
Поддержка комплексного числа: Да

dim — Размерность, которая задает направление расчета
положительный целочисленный скаляр

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

Рассмотрите два 2D входных массива, A и B :

dot(A,B,1) обрабатывает столбцы A и B как векторы и возвращает скалярные произведения соответствующих столбцов.

dot(A,B,2) обрабатывает строки A и B как векторы и возвращает скалярные произведения соответствующих строк.

dot возвращает conj(A).*B если dim больше, чем ndims(A) .

Больше о

Скалярное скалярное произведение

Скалярное скалярное произведение двух векторов действительных чисел длины n равно

u · v = ∑ i = 1 n u i v i = u 1 v 1 + u 2 v 2 + . + u n v n .

Это отношение является коммутативным для векторов действительных чисел, таким что dot(u,v) равняется dot(v,u) . Если скалярное произведение равно нулю, то u и v перпендикулярны.

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

u · v = ∑ i = 1 n u ¯ i v i .

В отличие от отношения для векторов действительных чисел, комплексное отношение не является коммутативным, таким образом , dot(u,v) равняется conj(dot(v,u)) .

Алгоритмы

Когда входные параметры A и B вектора действительных чисел или комплексные векторы, dot функция обрабатывает их как вектор-столбцы и dot(A,B) совпадает с sum(conj(A).*B) .

Когда входные параметры являются матрицами или многомерными массивами, dim аргумент определяет, которые определяют размеры sum функция работает с. В этом случае, dot(A,B) совпадает с sum(conj(A).*B,dim) .

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

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

Эта функция поддерживает высокие массивы с ограничением:

Для синтаксиса dot(A,B) , массивы A и B должен иметь тот же размер, даже если они — векторы.

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

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

Генерация кода не поддерживает входные параметры разреженной матрицы для этой функции.

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

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

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

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

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

Представлено до R2006a
Открытый пример

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

Документация MATLAB
Поддержка

© 1994-2020 The MathWorks, Inc.

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

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

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

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

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

Стандартные функции Matlab

Все операции в Matlab ориентированы прежде всего на работу с матрицами, но могут выть использованы при работе с векторами и скалярными переменными.

Элементарные функции Matlab. К ним относятся следующие функции:

sin(x) sinh(x) asin(x) asinh(x)

cos(x) cosh(x) acos(x) acosh(x)

tan(x) tanh(x) atan(x) atan2(x,y) atanh(x)

cot(x) coth(x) acot(x) acoth(x)

exp(x) log(x) log10(x) log2(x) pow2(x) sqrt(x)

Функции комплексного аргумента:

abs(z) – модуль комплексного числа; angle(z) – аргумент;

complex(x, y) – формирование комплексного числа x+y*i;

conj(z) – возвращает комплексно-сопряженное (по отношению к z) число;

real(z) – возвращает действительную часть; imag(z) – мнимую часть.

Функции округления и нецелочисленного деления:

fix(x) – округление в сторону к нулю, floor(x) – к –¥, ceil(x) – к +¥,

round(x) – до ближайшего целого;

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

rem(x, y) – то же, без учета знака;

sign(x) – знак числа (+1/–1).

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

Пример 1. Разный тип параметров

» x=-8; X=[5 -1 -2]; A=[1 2 -3; -5 6 7]; z=3-4i;

Различают матричные и поэлементные арифметические операции.

+ – уточнение знака (унарная), сложение;

– – изменение знака (унарная), вычитание;

Поскольку математический смысл операций матричного и поэлементного сложения и вычитания идентичен:

C = A ± B означает

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

* – скалярное матричное умножение;

^ – матричное возведение в степень;

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

– матричное деление слева;

/ – матричное деление справа;

.’ – несопряженное транспонирование (унарная).

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

В операциях +, –, .*, ./ и .^ либо оба операнда должны иметь одинаковую размерность, либо один из операндов должен быть скалярной величиной.

» A=[1 2 3; 4 5 6]; B=[7 8 9; 3 2 1];

7.0000 4.0000 3.0000

0.7500 0.4000 0.1667

0.7000 0.8000 0.9000

0.3000 0.2000 0.1000

Для операции * (матричное произведение) матрица-сомножитель2 должна иметь столько строк, сколько столбцов имеет матрица-сомножитель1:

Inner matrix dimensions must agree.

Операции транспонирования ‘ и .’ для матриц с действительными коэффициентами абсолютно равнозначны:

Для комплексных чисел и матриц с комплексными коэффициентами операция ‘ дает транспонированную сопряженную матрицу, а операция .’ – транспонированную несопряженную:

» Ac=[1+2i 1+3i 1+4i; 2+3i 2+4i 2+5i];

1.0000 — 2.0000i 2.0000 — 3.0000i

1.0000 — 3.0000i 2.0000 — 4.0000i

1.0000 — 4.0000i 2.0000 — 5.0000i

1.0000 + 2.0000i 2.0000 + 3.0000i

1.0000 + 3.0000i 2.0000 + 4.0000i

1.0000 + 4.0000i 2.0000 + 5.0000i

Операция ^ (матричное возведение в степень) выполняется только для квадратных матриц, и означает умножение матрицы саму на себя заданное число раз (второй операнд обязательно скаляр):

-0.9100 — 3.5442i 0.4163 + 1.6212i

0.6244 + 2.4318i -0.2856 — 1.1124i

генерирует обратную матрицу D -1 .

Операция X/Y эквивалентна X*Y -1 , операция XY – операции X -1 *Y.

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

Действительно, представив систему уравнений в матричной форме:

и умножив обе части последнего уравнения на A -1 слева, получим:

A -1 * A * X = A -1 * B,

откуда решение системы уравнений:

Пример. Решить систему уравнений

Решение сводится к набору в интерактивном режиме следующих команд:

Проверку вычисления корней можно выполнить следующим образом:

| – логическое «или» (0|0 – 0, 1|0 – 1, 0|1 – 1, 1|1 – 1);

xor – логическое исключающее «или» (0xor0 – 0, 0xor1 – 1, 1xor0 – 1, 1xor1 – 0);

Если логические операции (а также логические функции) выполняются над действительными числами, то ложью считают число нуль, а истиной – все числа, не равные нулю.

Операции отношения (сравнения)

> – больше; >= – больше или равно; 1

» A=[1 8 3; 6 2 5]; B=[4 3 1; 2 6 8];

» A d 0 , 10 dk ]. Шаг по показателю степени hd= . Отношение двух соседних элементов есть величина постоянная =10 hd .

10 100 1000 10000

1.0000 2.0000 3.0000 4.0000

zeros – матрица, состоящая из нулей; ones – матрица, состоящая из единиц;

rand – матрица, состоящая из случ. чисел с равномерным распределением;

randn – матрица, состоящая из случ. Чисел с нормальным распределением.

zeros(n) – формирует квадратную матрицу n´n, состоящую из нулей;

zeros(m, n) – формирует матрицу m´n, состоящую из нулей;

(zeros(1, n) – вектор-строка; zeros(m, 1) – вектор-столбец)

zeros(size(A)) – формирует матрицу, состоящую из нулей, той же размерности, что и матрица A.

Формат обращения к функциям ones, rand и randn аналогичный.

Разницу между функциями rand и randn можно показать графически:

» xr=rand(1,100); xrs=sort(xr); bar(xrs)

» yr=randn(1,100); yrs=sort(yr); bar(yrs)

eye(n) – формирует единичную диагональную матрицу n´n.

diag(B) (B – двухмерная матрица) – выделяет главную диагональ матрицы B и помещает ее в вектор-столбец;

diag(x) (x – вектор) – формирует диагональную матрицу, используя вектор x в качестве главной диагонали.

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

Манипуляции с матрицами

tril (A) – формирует треугольную матрицу как нижнюю часть от матрицы A;

triu(A) – формирует треугольную матрицу как верхнюю часть от матрицы А.

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

lu(A) – разложение Холецкого – заменяет квадратную матрицу A скалярным произведением двух треугольных матриц L и U методом Гаусса:

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

0.5714 0.5000 1.0000

7.0000 8.0000 9.0000

inv(A) – возвращает матрицу A -1 , обратную заданной квадратной матрице A;

det(A) – возвращает определитель квадратной матрицы A.

fliplr(A) – поворот матрицы A на 180° в горизонтальном направлении;

flipud(A) – поворот матрицы A на 180° в вертикальном направлении;

rot90(A) – поворот матрицы A на 90° против часовой стрелки;

rot90(A, k) – поворот матрицы A на k*90° против часовой стрелки (k – целое число).

Манипуляции с векторами

cross(x, y) – векторное произведение векторов x и y в трехмерном пространстве;

cross(A, B, dim) – векторное произведение многомерных массивов A и B по размерности dim;

dot(x, y) – скалярное произведение векторов x и y;

dot(A, B, dim) – скал. произведение многомерных массивов A и B по размерности dim.

Длины векторов x и y, а также длина матриц A и B по размерности dim должны быть равны 3.

Базовые операции анализа

Пусть a,b,c – числа, х,у,z – векторы, А,В,C – матрицы.

c=max(a, b) – возвращает максимальное из двух чисел a и b (при комплексных аргументах по умолчанию сравниваются модули):

z=max(x, y) – вектор той же размерности, что x и y, составленный из максимальных элементов векторов;

C=max(A, B) – матрица той же размерности, что и , составленная из максимальных элементов матриц.

xmax=max(x) – максимальный элемент вектора x;

[xmax, imax]=max(x) – дополнительно записывает адрес максимального элемента в числовую переменную imax (если максимальных элементов несколько, возвращается адрес первого из них);

amax=max(A) – возвращает вектор-строку amax из максимальных элементов столбцов матрицы А;

[amax, imax]=max(A) – дополнительно формируется вектор-строка imax, составленный из номеров строк, в которых расположены максимальные элементы столбцов.

» a=1; b=2; x=[1 3 2]; y=[2 1 3]; A=[1 2 3; 4 5 6]; B=[3 2 1; 6 5 4];

МОДЫ Grand Theft Auto V

Крупнейший сборник модов для Grand Theft Auto V и GTA San Andreas

Скалярное произведение векторов matlab

К матричным действиям с матрицами относятся такие операции, которые используются в матричном исчислении в математике. Базовые действия с матрицами (векторами): сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение квадратной матрицы в степень – осуществляются в MATLAB с помощью обычных знаков арифметических операций. Условия, при которых эти операции возможны, таковы:

при сложении или вычитании матриц они должны иметь одинаковые размеры;

при умножении матриц число столбцов первого множителя должно совпадать с числом строк второго множителя.

Невыполнение этих условий приводит к появлению сообщения об ошибке.

Приведем примеры базовых действий с матрицами

>> A=[0 -2 4;3 2 1];D=[-5 4 2;1 3 1];B=[-1 -2 -3;1 3 1;0 2 2];

Пример сложения и вычитания

Пример умножения на число

Пример транспонирования матрицы, при котором ее строки становятся столбцами, а столбцы – строками, осуществляется с помощью оператора (апостроф):

В математике транспонированная матрица А обозначается А Т .

Знак закреплен за матричным умножением векторов и матриц в смысле линейной алгебры. При этом число столбцов первой матрицы обязано равняться числу строк второй матрицы. Произведение прямоугольной матрицы An×k (таблицы чисел, расположенных в n строках и в k столбцах) на матрицу Bk×m определяется следующим образом: для того, чтобы получить элемент cij матрицы — произведения C = AB, следует элементы i — й строки матрицы А умножить на соответствующие элементы j — го столбца матрицы В и результаты сложить, т. е.

Матрица С = Сn×m занимает n строк и m столбцов.

Пример умножения матрицы на матрицу

Умножение двух векторов определено в математике только для векторов одинакового размера и лишь тогда, когда один из векторов сомножителей является строкой, а второй – столбцом. Иначе говоря, если векторы Х и У являются строками, то математический смысл имеют только две формы умножения этих векторов: U = X*Y’ и V = X’*Y. Причем в первом случае результатом будет скалярное произведение векторов Х и У (число), а во втором – внешнее произведение векторов Х и Y (квадратная матрица).

Скалярное произведение двух векторов вычисляет команда dot:

Векторное произведение. Для трехкомпонентных векторов в MATLAB существует команда cross, которая вычисляет векторное произведение двух векторов.

Командаdet(B) вычисляет определитель│B│ квадратной матрицы B.

Команда обращения матрицы inv(B) вычисляет матрицу В -1 , обратную заданной матрице B. Исходная матрица B должна быть квадратной, и ее определитель не должен быть равен нулю.

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

Матрица, обратная матрице В, обозначается В -1 и удовлетворяет соотношениям (В -1 ) -1 = B, ВВ -1 = В -1 В = E, где E – единичная матрица того же порядка n, что и B.

Проверим правильность выполнения операции обращения матрицы B:

-1.0000 -2.0000 -3.0000

1.0000 3.0000 1.0000

В результате получили матрицу B, т. е. соотношение (В -1 ) -1 = B выполняется.

-0.0000 1.0000 -0.0000

Соотношения ВВ -1 = В -1 В = E также выполняются.

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

-0.6667 0.3333 -1.1667

0.3333 0.3333 0.3333

-0.3333 -0.3333 0.1667

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

Если требуется извлечь квадратный корень из матрицы, то лучше применить матричную функцию sqrtm. Матричные экспонента и логарифм вычисляются при помощи матричных функций expm и logm.

В MATLABвводятся две новых операции (они не относятся к операциям линейной алгебры) деления матриц слева направо и справа налево. Первая операция записывается при помощи знака , а вторая – при помощи знака , которые помещаются между именами двух матриц – делимого и делителя. Операция B/A эквивалентна операции B*inv(A) и ее удобно использовать для решения матричного уравнения

а AB эквивалентна inv(A)*B и является решением матричного уравнения

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

Как правило, если f является одной из встроенных математических функций системы MATLAB или является заданной пользователем векторизованной функцией, то выражение f(A) представляет собой матрицу, полученную поэлементным вычислением f для A.

0.8415 0.9093 0.1411

Кроме поэлементного преобразования матриц с помощью математических функций, в MATLAB можно выполнять поэлементные преобразования матриц с помощью арифметических операций. К таким операциям относятся операции поэлементного умножения с помощью оператора (без пробела между точкой и звездочкой), поэлементного деления , обратного поэлементного деления , поэлементного возведение в степень . Операции поэлементного преобразования матриц выполняются только над матрицами одинакового размера и типа. В результате получается матрица такого же размера и типа. Проиллюстрируем поэлементные преобразования матриц на матрицах A и B:

>> A=[1 2 3 4 5;-2 3 1 4 0], B=[-1 3 5 -2 1;1 8 -3 -1 2]

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

-1.0000 0.6667 0.6000 -2.0000 5.0000

-2.0000 0.3750 -0.3333 -4.0000 0

Результат – матрица, элементы которой являются частным от деления соответствующих элементов матриц A и B.

Обратное поэлементное деление

Warning: Divide by zero.

-1.0000 1.5000 1.6667 -0.5000 0.2000

-0.5000 2.6667 -3.0000 -0.2500 Inf

Результатом является матрица, элементы которой являются частным от деления соответствующих элементов матриц B и A.

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

0.0010 0.0080 0.2430 0.0001 0.0050

-0.0020 6.5610 0.0010 0.0003 0

При поэлементном возведении в степень каждый элемент матрицы A возводится в степень, равную соответствующему элементу матрицы B.

Обратим внимание на результат, полученный при выполнении операции A.^B. Система MATLAB выделила общий множитель 1.0e+003 * для всех элементов результирующей матрицы.

Оригинальной в MATLAB является операция прибавления к матрице числа. Она записывается таким образом: A+x или x+A (где A – матрица, а x – число). Такая операция также не относится к операциям линейной алгебры. Например:

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

В MATLAB поэлементные операции над векторами аналогичны поэлементным операциям над матрицами.

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

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

Лучшие изречения: Для студента самое главное не сдать экзамен, а вовремя вспомнить про него. 10228 — | 7590 — или читать все.

91.146.8.87 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Для того, чтобы оценить ресурс, необходимо авторизоваться.

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

Ануфриев И.Е., Смирнов А.Б., Смирнова Е.Н. MATLAB 7 — СПб.: БХВ-Петербург, 2005. — 1104 c.
ISBN 5-94157-494-0
Скачать (прямая ссылка): matlab72005.pdf Предыдущая 37 38 39 40 41 42 .. 349 >> Следующая

осуществляет построение первого графика сплошной черной линией, а второго ¦— черной пунктирной (рис. 2.6). Аргументы ‘к-‘ и ‘к: ‘ задают стиль и цвет первой и второй линий. Здесь к означает черный цвет, а дефис или двоеточие — сплошную или пунктирную линию. Визуализация данных и построение графиков подробно описаны в следующих главах. Окно с графиком можно закрыть, нажав на кнопку закрытия окна в его правом верхнем углу. J 74

Часть I, Основы работы в MATLAB

Рис. 2.5. Два графика на Одних осях

Рис. 2.6. Изменение стили и цвета линий графиков

Построение графиков функций в MATLAB требует понимания работы с векторами — необходимо уметь вводить векторы, использовать двоеточие для автоматического заполнения с заданным шагом, применять поэлементные операции для вычисления функций от Вектора значений аргумента. Все Глава 2. Работа с массивами

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

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

Скалярное произведение векторов а и Ь длины N , состоящих из действительных чисел, определяется формулой

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

Ниже приведена требуемая последовательность команд: » а = [1.2; -3.2; 0.7]; » Ъ = [4.1; 6.5; -2.9]; » s = sum

Скалярное произведение векторов можно также вычислить, применив функцию MATLAB dot

Найдите длину (или, как еще говорят, модуль) вектора а

Часть I, Основы работы в MATLAB

Векторное произведение axb определено только для векторов из трехмерного пространства, т. е. состоящих из трех элементов. Результатом также является вектор из трехмерного пространства. Для вычисления векторного произведения в MATLAB служит функция cross:

» а = [1.2; -3.2; 0.7]; » Ъ = [4.1; 6.5; -2.9]; » с = cross(а, Ь> с = 4.7300 6.3500 20.9200

Для тренировки попробуйте вычислить axb+bxa . Если получился вектор, состоящий из нулей, то вы все проделали правильно, т. к, для любых векторов выполняется свойство axb — -bxa .

Смешанное произведение векторов a, b, с определяется по формуле abc = а ¦ (bxc). Модуль смешанного произведения векторов равен объему параллелепипеда, построенного на этих векторах так, как показано на рис. 2.7,

Рис. 2.7. Параллелепипед, образованный гремя векторами Глава 2. Работа с массивами

Найдите объем параллелепипеда, если

Правильные действия таковы: » а = [3.5; 0; 0]; » Ъ = (0.5; 2.1; 0] ; » с = [-0.2; -1.9; 2.8]; » V = abs(dot(a, cross(b, с))) V = 20.5800

Внешним произведением векторов я = ( Предыдущая 37 38 39 40 41 42 .. 349 >> Следующая

Related Posts