Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Основы работы в MATLAB.






    Для выполнения простейших арифметических операций в MATLAB применяются операторы:

    · сложение и вычитание +, –

    · умножение и деление *, /

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

     

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

     

    Для определения переменной необходимо набрать её имя, символ «=» и значение переменной. Имя переменной не должно совпадать с именами встроенных переменных и функций. Система различает большие и малые буквы в именах переменных.

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

    ans – результат последней операции без знака присваивания;

    eps – относительная погрешность при вычислениях с плавающей точкой;

    realmax – наибольшее положительное число с плавающей точкой;

    realmin – наименьшее положительное число с плавающей точкой;

    pi – число ;

    i, j – мнимая единица;

    Inf – бесконечность ;

    NaN – неопределенное значение.

     

    Уничтожить одну или несколько переменных можно с помощью команды clear. Например,

    > > x=3

    x =

    > > clear x

    > > x

    ??? Не определенная функция или переменная 'x'.

     

    Функции, используемые в MATLAB, можно разделить на встроенные и определенные пользователем.

    Некоторые встроенные элементарные функции:

    sin (x), cos (x), tan (x), cot (x) – синус, косинус, тангенс, котангенс числа x;

    sec (x), csc (x) – секанс, косеканс числа x;

    asin (x), acos (x), atan (x), acot (x) – арксинус, арккосинус, арктангенс, арккотангенс числа x;

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

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

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

    log2 (x) – логарифм по основанию 2 числа x;

    pow2 (x) – возведение числа 2 в степень числа x;

    sqrt (x)– квадратный корень из числа x;

    abs (x) – модуль числа x;

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

    fix (x) – округление числа x до ближайшего целого в сторону нуля;

    floor (x) – округление числа x до ближайшего целого в сторону отрицательной бесконечности;

    ceil (x) – округление числа x до ближайшего целого в сторону положительной бесконечности;

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

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

    sign (x) – возвращение знака числа x.

     

    Вычислим значение выражение

    > > exp(–2.5)*log(11.3)^0.3 – sqrt((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))

    ans =

    –3.2105

    Затем вычислим значение похожего выражения:

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

    1. Нажать клавишу «», при этом в командной строке появиться ранее введенное выражение;
    2. внести необходимые изменения в операциях;
    3. нажать «Enter».

    > > exp(–2.5)*log(11.3)^0.3 + ((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2

    ans =

    121.2446

    Если оператор не удается разместить в одной строке, то возможно продолжение его ввода в следующей строке, если в конце первой строки указать знак продолжения «…», например, предыдущий пример можно выполнить в виде

    > > exp(–2.5)*log(11.3)^0.3 +...

    ((sin(2.45*pi)+cos(3.78*pi))/tan(3.3))^2

    ans =

    121.2446

    Найти значение выражения

    > > x = sin(1.3*pi)/log(3.4);

    > > y = sqrt(tan(2.75)/ cot(2.3));

    > > z = (x+y)/(x-y)

    z =

    -0.013967

    Знак «;» в конце строки означает подавления вывода на экран промежуточных значений.

     

    Используя переменные x и y, найдем значение выражения

    > > t = (x*y)^(3/2)

    t =

    -5.5344e-017 - 0.30128i

     

    Большинство математических функций MATLAB предусматривает работу с комплексными аргументами.

    Введем комплексное число :

    > > z = 3 + 4i

    z =

    3.0000 + 4.0000i

    Для вычисления комплексно-сопряженного числа применяется апостроф «’».

    > > z1 = z'

    z1 =

    3.0000 - 4.0000i

     

    Функции для работы с комплексными числами:

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

    complex( a, b ) – конструирует комплексное число по его действительной и мнимой части:

    > > complex(2.3, 5.8)

    ans =

    2.3 + 5.8i

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

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

    3. Векторы.

    Ввод, сложение, вычитание, умножение на число.

    Вектор в MATLAB формируется с помощью оператора квадратные скобки [ ]. При этом элементы вектора - столбца разделяют точкой с запятой «;», а элементы вектора – строки разделяют пробелом «» или запятой «,».

    Введем вектор-столбец .

    > > x = [1.3; 5.4; 6.9]

    x =

    1.3

    5.4

    6.9

    Введем вектор-строку .

    > > y = [7.1 3.5 8.2]

    y =

    7.1 3.5 8.2

    Для транспонирования вектора применяют апостроф «’»:

    > > z = y’

    z =

    7.1

    3.5

    8.2

    Для нахождения суммы и разности векторов используются знаки «+» и «–»:

    > > с = x + z

    c =

    8.4

    8.9

    15.1

    Умножение вектора на число осуществляется как справа, так и слева при помощи знака «*».

    > > t = 3*x

    t =

    3.9

    16.2

    20.7

    Векторы могут быть аргументами встроенных функций, например,

    > > d = sin(c)

    d =

    0.8546

    0.50102

    0.5712

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

    > > h = x(2)

    h =

    5.4

    Из элементов вектора можно составить новый вектор, например

    > > g = [x(2) x(3) x(1)]

    g =

    5.4 6.9 1.3

    Из нескольких векторов-столбцов можно составить один, например

    > > t = [x; z]

    t =

    1.3

    5.4

    6.9

    7.1

    3.5

    8.2

    Из нескольких векторов-строк можно составить одну строку, например

    > > r = [x’ y]

    r =

    1.3 5.4 6.9 7.1 3.5 8.2

     

    Символ двоеточие «:» используется для выделения элементов из вектора

    > > w = r(3: 5)

    w =

    6.9 7.1 3.5

    Символ двоеточие «:» также позволяет заменять элементы вектора, например,

    > > r(3: 5)= 0

    r =

    1.3 5.4 0 0 0 8.2

     

    Символ «:» также можно использовать для построения вектора, каждый элемент которого отличается от предыдущего на постоянное число, т.е. шаг, например

    > > h = [1: 0.2: 2]

    h =

    1 1.2 1.4 1.6 1.8 2

    Шаг может быть отрицательным (в этом случае начальное число должно быть больше конечного).

    Шаг, равный единице, можно не указывать

    > > k = [1: 5]

    k =

    1 2 3 4 5

     

    Поэлементные операции с векторами.

    Операции «.*», «.^», «./» приводят к поэлементному умножению, поэлементному возведению в степень, поэлементному делению двух векторов.

    Для того чтобы, к каждому элементу вектора прибавить одно и тоже число используется знак «+», для вычитания из элементов вектора одного и того числа используется знак «–».

    Разделить элементы вектора на число можно при помощи знака «/».

    Деление числа на вектор, осуществляется с помощью операции «./».

     

    Пример.

    Даны векторы

    , , ,

    Выполните команды, опуская знак «;» в конце выражения.

    > > v1 = [2 –3 4 1];

     

    > > v2 = [7 5 –6 9];

     

    > > p = [4 6 8 10];

     

    > > f = [4 2 6];

     

    > > s1 = v1.*v2;

     

    > > s2 = v1.^2;

     

    > > s3 = v1.^v2;

     

    > > s4 = v1./v2;

     

    > > a = p + 1.2;

     

    > > b = p – 1.2;

     

    > > p = p/2;

     

    > > df = 12./f;

     

    Основные функции для работы с векторами.

    • length( z ) – определение длины вектора;
    • prod( z ) – перемножение всех элементов вектора;
    • sum( z ) – суммирование всех элементов вектора;
    • mean( z ) – вычисление среднего арифметического элементов вектора;
    • sort( z ) – упорядочение вектора по возрастанию его элементов;
    • max( z ) – нахождение максимального элемента;
    • min( z ) – нахождение минимального элемента.

    Если вызвать функцию min или max с двумя выходными аргументами [m, k] = min(z),

    то первой переменной присваивается значение минимального (максимального элемента), а второй переменной присваивается номер этого элемента.

     

    Пример.

    Дан вектор

    ,

    Выполните команды, опуская знак «;» в конце выражения.

    > > z = [3; 2; 1; 4; 6; 5];

     

    > > l = length(z);

     

    > > p = prod(z);

     

    > > s = sum(z);

     

    > > q = mean(z);

     

    > > M = max(z);

     

    > > m = min(z);

     

    > > [m, k] = min(z);

     

    > > sr = sort(z);

    4. Матрицы.

    Различные способы ввода матрицы.

    1. Матрицу можно вводить как вектор-столбец, состоящий из двух элементов, каждый из которых является вектор - строкой и отделяется точкой с запятой. Например, введем матрицу

    > > A = [3 1 –1; 2 4 3 ]

    A =

    3 1 –1

    2 4 3

     

    2. Матрицу можно вводить построчно, выполняя последовательность команд:

    > > A = [3 1 –1

    «Enter»

    2 4 3]

    «Enter»

    В результате получим ту же матрицу.

     

    3. Матрицу можно составить из блоков, например

    > > A = [ [3; 2] [1; 4] [-1; 3]]

    или

    > > A = [ [3 1; 2 4] [-1; 3]]

     

    Доступ к элементам матрицы осуществляется при помощи двух индексов – номеров строки и столбца:

    > > A (2, 3)

    ans =

    Создание матриц специального вида.

    Функция

    • zeros (m, n) формирует нулевую матрицу размера ;
    • eye (n) формирует единичную матрицу размера ;
    • ones (m, n) формирует матрицу размера из единиц;
    • rand (m, n) создает матрицу размера из случайных чисел.

     

    Пример.

    Выполните команды, опуская знак «;» в конце выражения.

    > > O = zeros(3, 6);

     

    > > E = eye(4);

     

    > > E = eye(8, 4);

     

    > > EI = ones(3, 8);

     

    > > R = rand(3, 5)

     

    Функция diag (d) формирует диагональную матрицу из вектора d, например

    > > d = [1; 2; 3; 4];

    > > D = diag(d)

    D =

    1 0 0 0

    0 2 0 0

    0 0 3 0

    0 0 0 4

     

    Функция diag( A ) служит также для выделения диагонали матрицы A в вектор, например

    > > A = [10 1 2; 1 20 3; 2 3 30];

    > > d = diag(A)

     

    d =

     

    Выделение блоков и заполнение матрицы при помощи индексации.

    Символ двоеточие «:» используется для выделения блоков из матрицы.

    Представляется в следующих формах:

    • M(i,:) – выбирается i-я строка из матрицы M;
    • M(:, j) – выбирается j-й столбец из матрицы M;
    • M(:) – представление матрицы M в виде столбца;
    • M(k: l, n: m) – выбирается блок из матрицы M, ограниченный элементами , , , ;
    • Команда M(k: l, n: m) = число заменяет элементы блока матрицы M;
    • Команда M(i,:) = [] удаляет i-ю строку из матрицы M;
    • Команда M(:, j) = [] удаляет j-й столбец из матрицы M;

     

    Пример.

    Дана матрица

    Выполните команды, опуская знак «;» в конце выражения.

    > > P = [5 2 1 3; 3 -1 1 2; 1 2 4 8; 3 -1 1 2];

     

    > > P1 = P(2: 3, 2: 3);

     

    > > P(2: 3, 2: 3)=0;

     

    > > st = P(2,:);

     

    > > rt = P(2, 2: end);

     

    > > P(1,:) = [];

     

    Пример.

    Создать матрицу .

    Для этого применяем последовательность команд

    > > T = zeros(5);

    > > T(1,:) = 1;

    > > T(end, 3: end) = –1

    T =

    1 1 1 1 1

    0 0 0 0 0

    0 0 0 0 0

    0 0 0 0 0

    0 0 –1 –1 –1

    Действиями с матрицами и элементами матриц.

    Транспонирование матрицы из действительных чисел осуществляется с помощью апострофа «’».

    Сложение и вычитание матриц одного размера осуществляется при помощи знаков «+» и

    «–».

    Для умножения согласованных матриц используется знак «*». Этот же знак используется для произведения матрицы на число.

    Возведение квадратной матрицы в целую степень производится с использованием оператора «^».

    Операторы «.*», «./», «.^» служат для умножения, деления, возведения в степень каждого элемента одной матрицы на соответствующий элемент другой матрицы. Символы «.^» служит также для возведения каждого элемента матрицы в степень.

     

     

    Пример.

    Даны матрицы

    и .

    Выполните команды, опуская знак «;» в конце выражения.

     

    > > A = [2 5 –1; 3 4 9];

     

    > > B = [–1 2 8; 7 –3 –5];

     

    > > S = A+B;

     

    > > R = A – B;

     

    > > A’;

     

    > > D = A*A’;

     

    > > D1 = D*3;

     

    > > С = A.*B;

     

    > > Q = A./B;

     

    > > P = A.^B;

     

    > > D = A.^2;

     

    Некоторые функции для работы с матрицами.

    Функция

    • size( M ) определяет размер матрицы M;
    • sum( M ) суммирует элементы матрицы M по столбцам;
    • sum( M, 2 ) суммирует элементы матрицы M по строкам;
    • prod( M ) находит произведения элементов матрицыM по столбцам;
    • prod( M, 2 ) находит произведения элементов матрицыM по строкам;
    • sort( M ) упорядочивает элементы каждого столбца матрицы M в порядке возрастания;
    • sort( M, 2 ) упорядочивает элементы каждой строки матрицы M в порядке возрастания;
    • max( M ) формирует вектор - строку, содержащую максимальные элементы в столбцах матрицы M;
    • min( M ) формирует вектор - строку, содержащую минимальные элементы в столбцах матрицы M;
    • max (M, [], 2) формирует вектор - столбец, содержащий максимальные элементы в строках матрицы M;
    • min (M, [], 2) формирует вектор - столбец, содержащий минимальные элементы в строках матрицы M;
    • rot90 (M) осуществляет поворот матрицы M на ;
    • tril (M) формирует из матрицы M нижнюю треугольную матрицу, начиная с главной диагонали;
    • triu (M) формирует из матрицы M верхнюю треугольную матрицу, начиная с главной диагонали;

     

    Пример.

    Дана матрица

    .

    Выполните команды, опуская знак «;» в конце выражения.

    > > M = [1 –2 –4; 3 –6 4; 2 –2 0];

     

    > > SZ = size(M);

     

    > > S = sum(M);

     

    > > S2 = sum(M, 2);

     

    > > P = prod(M);

     

    > > P2 = prod (M, 2);

     

    > > mx = max(M);

     

    > > mn = min(M);

     

    > > MX = max(M, [], 2);

     

    > > MN = min(M, [], 2);

    Операции отношения и логические операции.

    Операторы отношения производят поэлементное сравнение двух матриц и возвращают матрицу той же размерности с элементами 1, где отношение истинно и 0, где отношение ложно:

     

    < – меньше чем (< = означает " меньше или равно");

    > – больше чем (> = означает " больше или равно").

     

    Логические операции осуществляются с помощью операторов:

    = = – логический оператор эквивалентности;

    & – логическое " И".

    A & B – это матрица, элементы которой равны 1, если соответствующие элементы и A и B ненулевые, иначе равны 0;

    | – логическое " ИЛИ".

    A | B – это матрица, элементы которой равны 1, если соответствующие элементы или A или B ненулевые, иначе равны 0;

    ~= – логическое дополнение " НЕ" (~= означает не " равно").

    Пример.

    Даны матрицы

    ,

    Выполните команды, опуская знак «;» в конце выражения.

    > > A = [1 2 3; 4 0 6; 7 1 9];

     

    > > В = [1 0 -1; 0 0 -6; 1 2 9];

     

    > > D1 = A> B;

     

    > > D2 =A< =B;

     

    > > D3 = A& B;

     

    > > D4 = A==B;

     






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.