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


Полезное:

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


Категории:

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






Формирование векторов и подматриц





Оператор «:» является очень полезным оператором языка MATLAB. Он применяется для формирования векторов и матриц или для выделения из них подвекторов, подматриц, подблоков массива.

Например, зададим вектор А, состоящий из цифр от 1 до 10 следующим образом:

А=1:10

А =

1 2 3 4 5 6 7 8 9 10

Зададим вектор А, состоящий из цифр от 1 до 10 с шагом 2 следующим образом:

A=1:2:10

А =

1 3 5 7 9

Зададим матрицу A следующим образом:

А =

         
         
         
         
         
         

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

А(2:4,3:5)

ans =    
     
     
     

Оператор А(5,:) позволяет выделить все столбцы пятой строки массива A;

А(5,:)

ans =

3 5 6 7 8

Оператор А(:, 5) позволяет выделить все строки пятого столбца массива A;

А(:,5)

ans = 5 7 0 9 8 6 7

Операторы умножения «.*» и правого деления «./» с точкой используются при перемножении или делении массивов (каждое число первого массива умножается/делится на соответствующее число второго массива).

Например:

А =
     
     
     
В =
     
     
     
А.*В
ans=    
     
     
     

Операторы умножения и правого деления без точки применяются при перемножении или делении матриц по правилам линейной алгебры. Например:

А*В

ans =

26 28 31 59 73 85 61 57 59

При применении оператора левого деления с точкой «.\» и оператора без точки «\» выполняется решение систем линейных уравнений вида АХ=В по методу наименьших квадратов для матриц и векторов. Например:

А\В

ans =

6.3333 -14.3333 -23.3333 -9.6667 25.6667 41.6667 4.6667 -10.6667 -17.6667

A.\В

ans =

2.5000 2.3333

1.4000 1.5000

0.7500 0.2500

При транспонировании массива (операция «.'») строки просто заменяются столбцами:

А.'

ans =

1 4 1

2 5 4

3 6 8

При транспонировании матрицы (операция «'» без точки) результатом является транспонированная матрица, для комплексных чисел выполняется операция комплексного сопряжения.

Над матрицами можно производить разнообразные операции.

Например, с помощью команды diag возможно формировать или извлекать диагонали матрицы.

Функция X=diag(v) формирует квадратную матрицу X с вектором v на главной диагонали;

Функция X=diag(v,k) формирует квадратную матрицу X порядка length(v)+abs(k) с вектором v на к- й диагонали.

Функция v=diag(X,k) извлекает из матрицы X диагональ с номером к; при к> 0 - это номер к-й верхней диагонали, при к< 0 - это номер к-й нижней диагонали.

Функция B=reshape(A,m,n) возвращает матрицу размером [m x n], сформированную из элементов матрицы А путем их последовательной выборки по столбцам.

Элементарные графические функции системы MATLAB позволяют построить на экране и вывести на печать следующие типы графиков: линейный, логарифмический, полулогарифмический, полярный.

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

Рассмотрим некоторые операторы для построения графиков в системе MATLAB.

Команда plot(y) строит график элементов одномерного массива у в зависимости от номера элемента; команда plot(x,y) соответствует построению обычной функции, когда одномерный массив х соответствует значениям аргумента, а одномерный массив у - значениям функции. Команда plot(x,y,s) позволяет выделить график функции, указав способ отображения линии, способ отображения точек, цвет линий и точек с помощью строковой переменной s, которая может включать до трех символов из следующей таблицы:

y желтый . точка - непрерывная
т фиолетовый о кружок : пунктирная
с голубой x крестик -. штрихпунктирная
r красный + плюс - - штриховая
           
       
g зеленый * звездочка
b синий s квадрат
w белый d ромбик
к черный v треугольник (нижний)
    ^ треугольник (верхний)
    < треугольник (левый)
    > треугольник (правый)
    p пентаграмма
    h гексаграмма.
             

Команда plot(xl,yl,sl,x2,y2,s2,.) позволяет объединить на одном графике несколько функций yl(xl), у2(х2), определив для каждой из них свой способ отображения.

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

Первый из них - это соединение точек в сечении (функция plot3). Например, команда plot3(xl,yl,zl,sl,x2,y2,z2,s2,...) позволяет объединить на одном графике несколько функций zl(xl,yl),z2(x2,y2),...., определив для каждой из них свой способ изображения.

Команда mesh(X,Y,Z) выводит на экран сетчатую поверхность для значений массива Z, определенных на множестве значений массивов X и Y. Цвета узлов поверхности задаются командой colormap(C), где С - палитра.

Цвета:

hsv - выделение оттенками

hot— черно-красно-желто-белые цвета

gray - линейная шкала оттенков серого цвета

bone - шкала серых цветов с оттенками белого

copper — линейный медный цвет

pink — пастельные оттенки розового цвета

white - белый цвет

flag - попеременно красный, белый, синий и черный цвета

lines - линейное чередование цветов

colorcube - чередование серого, касного, зеленого и белого

vga - 16 цветов

jet — вариант hsv

prism - использование 6 цветов

cool - оттенки синего и фиолетового

autumn - оттенки красного и желтого

spring - оттенки фиолетового и желтого

winter - оттенки синего и зеленого

summer - оттенки зеленого и желтого

Команда surf(X, Y,Z) выводит на экран сетчатую поверхность для значений массива Z, определенных на множестве значений массивов X и Y.

Для вращения трехмерного изображения используется команда rotate3d.

Для того чтобы построить несколько графиков и разместить каждый график в своем окне figure, нужно после построения первого графика выполнить команды: file - New - Figure, тогда будет создано новое окно, в котором будет изображен новый график после введения в рабочем окне соответствующих команд.

Для сохранения рабочей области MATLAB используется команда save. Команда save имя файла выгружает все переменные из рабочей области в двоичный файл с именем имя файла.mat. Если имя файла отсутствует, то ему присваивается специальное имя matlab.mat. Команда save имя файла A B C выгружает переменные А, В, С. Для очистки рабочей области используется команда clear all. Для очистки экрана используется команда clc. Для загрузки переменных в рабочую область используется команда load. Команда load без параметров считывает данные из файла matlab.mat, если он создан командой save. Команда load имя файла загружает переменные из mat-файла имя файла.mat. После загрузки переменных в рабочую область бывает необходимо вывести список переменных текущей рабочей области. Эта операция выполняется с помощью команды who.

Задание для выполнения работы

1. В рабочем окне MATLAB ввести матрицу А.

2. Выделить из матрицы А подматрицу В.

3. Выделить из матрицы А подматрицу С.

4. Извлечь из матрицы А диагональ D.

5. Умножить матрицу В на матрицу С с точкой и без точки.

6. Разделить матрицу В на матрицу С левым делением с точкой и без точки.

7. Разделить матрицу В на матрицу С правым делением с точкой и без точки.

8. Транспонировать матрицу A.

9. Построить с помощью функции plot вектор, состоящий из всех строк третьего столбца матрицы А.

10. Построить трехмерный график матрицы А в зависимости от номера элемента по строкам и столбцам с использованием команд mesh и surf с использованием различной цветовой палитры и с возможностью поворачивать изображение под разными ракурсами.

11. Сохранить переменные А,В,С,D в mat-файле.

12. Очистить рабочую область. Очистить экран. Загрузить сохраненные переменные в рабочую область. Вывести список переменных.

 

Варианты заданий для работы

Вариант 1:

А =

0.0063 0.038 0.67 0.0054 0.0065 0.0049
0,57 0.05 0.0784 0.0046 0.29 0.003
0,0044 0.575 0.0064 0.698 0.543 0.0001
0,997 0,4567 0.002 0.578 0.445 0.0254
0,02 0,0446 0.268 0.077 0.0057 0.0054
0,0089 0,0987 0.0057 0.798 0.0965 0.0361

 

B=

0,05 0,0784 0,0046 0,29
0,575 0,0064 0,698 0,543
0,4567 0,002 0,578 0,445
0,0446 0,268 0,077 0,0057

 

С=

0.0063 0.038 0.67 0.0054
0.57 0.05 0.0784 0.0046
0.0044 0.575 0.0064 0.698
0.997 0.4567 0.002 0.578

 

 

D= 0.997 0.0446 0.0057

 

 

Вариант 2:

А=

0.8762 0.7726 0.7582 0.8002 0.7962 0.6665 0.9865
0.3556 0.6205 0.9317 0.8679 0.8710 0.7559 0.9688
0.9060 0.9906 0.9514 0.9894 0.9640 0.8660 0.8546
0.9792 0.9989 0.9916 0.9457 0.9376 0.9376 0.9182
0.9972 0.9634 0.9278 0.8655 0.9988 0.8666 0.8898
0.9929 0.9995 1.0000 0.9859 0.9325 0.9996 0.4691
0.7826 0.6121 0.9962 0.7631 0.8936 0.9744 0.5783
В=
0.8762 0.7726 0.7582 0.8002 0.7962
0.3556 0.6205 0.9317 0.8679 0.8710
0.9060 0.9906 0.9514 0.9894 0.9640
0.9514 0.9894 0.9640 0.8660 0.8546
0.9916 0.9457 0.9376 0.9376 0.9182
0.9278 0.8655 0.9988 0.8666 0.8898
С=
D=
0.7726 0.9317 0.9894 0.9376 0.8666 0.4691
А=
9.5272 2.1815 4.5297 5.2380 2.3439 1.4659 11.2004
2.8767 4.7603 4.2683 2.6028 2.6997 0.5291 5.0222
2.0590 4.9244 8.7242 2.4919 2.7565 8.6705 4.8267
1.6392 3.0574 7.7370 3.2249 2.4287 4.3578 8.9045
3.3267 10.1745 3.2031 9.7044 3.3384 22.8564 7.6963
1.9371 3.2575 6.9681 7.3445 5.6299 19.9665 1.1599
3.0202 3.6819 5.4846 1.1845 1.9250 4.5214 9.1030

 

Вариант 3:

В=
3.0574 7.7370 3.2249 2.4287 4.3578
10.1745 3.2031 9.7044 3.3384 22.8564
3.2575 6.9681 7.3445 5.6299 19.9665
3.6819 5.4846 1.1845 1.9250 4.5214

 


Вариант 4:
0.6934 3.4302 3.2723 0.0546 12.2107 8.9556 8.7879
1.6332 1.5901 2.4343 4.1119 9.1181 0.5733 5.2615
0.5854 1.4918 2.3426 2.7809 13.4954 29.4956 7.2479
1.6579 4.3528 0.3552 1.3945 11.7359 3.1786 2.3811
5.7940 1.3223 1.5670 4.8091 4.6988 3.6736 0.3824
6.6318 4.5172 1.8277 3.8735 1.4285 2.5523 6.4176
4.1101 9.5744 0.8614 10.5800 7.6150 6.9610 3.4473
2.1815 4.5297 5.2380 2.3439 1.4659
4.7603 4.2683 2.6028 2.6997 0.5291
4.9244 8.7242 2.4919 2.7565 8.6705
3.0574 7.7370 3.2249 2.4287 4.3578
3.3267 3.2575 5.4846
С=
D=
А=

 

 

0.0546 12.2107 8.9556 8.7879
4.1119 9.1181 0.5733 5.2615
2.7809 13.4954 29.4956 7.2479
1.3945 11.7359 3.1786 2.3811
C=
1.6579 4.3528 0.3552 1.3945
5.7940 1.3223 1.5670 4.8091
6.6318 4.5172 1.8277 3.8735
4.1101 9.5744 0.8614 10.5800
D=
0.6934 1.5901 2.3426 1.3945 4.6988 2.5523 3.4473

B =


Вариант 5:

А =

0.0081 7.6399 1.3506 3.7951 0.2055 0.3593
1.0536 22.3808 0.0565 29.7027 0.2646 0.2551
1.3466 304.4029 24.9269 0.7303 0.5680 2.1895
1.9071 0.0532 3.9344 0.0059 0.1992 16.7611
4.4069 39.8499 1.0821 0.7376 0.1972 0.0173
7.8419 0.5524 9.0982 0.2388 0.0941 2.0778
1.1999 0.0007 3.4331 0.0017 1.9596 0.0136

В=

1.3466 304.4029 24.9269 0.7303
1.9071 0.0532 3.9344 0.0059
4.4069 39.8499 1.0821 0.7376

С=

3.9344 0.0059 0.1992 16.7611
1.0821 0.7376 0.1972 0.0173
9.0982 0.2388 0.0941 2.0778

D =

1.3506 29.7027 0.5680 16.7611

 

Вариант 6:

А =

5.5577 3.1121 8.5322 1.2649 0.3179 2.3806 0.6724
2.6287 0.8913 1.8364 30.3882 3.4777 3.3664 6.0280
7.0923 1.2885 2.3576 6.0922 4.1388 2.9021 8.1857
2.3959 0.1863 0.4417 2.1104 2.5111 0.3615 2.9413
0.4207 0.5489 0.4693 9.7843 0.5146 0.8183 2.9543
2.8124 2.2652 2.2507 4.4427 5.0705 0.3707 2.1769
4.1257 1.3867 0.7189 3.3453 2.0308 2.3465 0.0931

В=

0.4207 0.5489 0.4693
2.8124 2.2652 2.2507
4.1257 1.3867 0.7189

С=

0.3179 2.3806 0.6724
3.4777 3.3664 6.0280
4.1388 2.9021 8.1857

D =

0.4207 2.2652 0.7189

 

Вариант 7:

А =

-1.5250 0.8125 0.4701 0.8586 -0.7312 -0.3821 -0.1118
0.6926 0.2615 -0.9401 -0.4834 -0.5043 -0.5334 -0.7713
0.5721 0.3278 0.2788 1.3160 0.2772 0.5896 -1.2083
1.2352 -0.1324 -2.6244 -2.2499 -0.9274 0.1167 -0.5862
0.2040 -0.7154 0.9599 0.1525 -0.0132 1.5805 -0.0282
-0.7866 0.8675 -1.1172 -0.4035 0.1472 1.6554 0.1948
-0.4514 1.8440 -0.2479 -0.0799 0.6316 0.3078 -1.1212

В=

-1.5250 0.8125 0.4701
0.6926 0.2615 -0.9401
0.5721 0.3278 0.2788

С=

0.9599 0.1525 -0.0132
-1.1172 -0.4035 0.1472
-0.2479 -0.0799 0.6316

D =

0.8586 -0.5043 0.5896

 

Вариант 8:

А =

7.8372 9.8118 9.3180 3.3191 2.7952 13.3430 4.7176
1.6721 11.6365 10.5697 13.5716 12.8557 15.9542 17.0757
10.6267 10.8732 15.3338 18.1178 8.0006 3.9877 5.9745
11.4384 9.0665 10.2964 6.5411 13.4500 9.9011 12.6437
4.2676 13.6290 9.5218 14.2900 14.0781 9.2164 11.0966
15.9546 7.0584 5.8383 16.2700 13.5595 1.9796 5.3905
15.9458 20.9159 11.4721 2.0314 16.4512 11.2865 -0.8534
               

В=

2.7952 13.3430 4.7176
12.8557 15.9542 17.0757
8.0006 3.9877 5.9745
13.4500 9.9011 12.6437

С=

9.8118 9.3180 3.3191
11.6365 10.5697 13.5716
10.8732 15.3338 18.1178

D =

2.7952 15.9542 5.9745

 

Вариант 9:

А =

2.4715 1.3398 7.1498 3.3309 4.0694 4.0688 1.0263
3.1349 3.0280 1.2954 0.8586 5.1534 1.1241 3.1686
4.0119 3.0124 4.5339 2.2718 1.0535 5.3689 2.2468
6.7803 2.8451 2.1964 3.6142 2.6910 4.0757 4.6596
5.8766 1.1233 3.8031 4.6361 3.4043 3.8412 3.2876
2.3595 3.6832 4.0496 1.0548 2.9069 3.8958 3.4562
2.1662 4.5635 2.1771 3.6568 4.2041 1.1899 1.8600

В=

2.4715 1.3398 7.1498 3.3309
3.1349 3.0280 1.2954 0.8586
4.0119 3.0124 4.5339 2.2718

С=

4.6361 3.4043 3.8412
1.0548 2.9069 3.8958
3.6568 4.2041 1.1899

D =

6.7803 1.1233 4.0496 3.6568

 

Вариант 10:

А =

0.5656 0.5770 0.7293 0.3464 1.8473 1.3967 1.0284
0.8998 1.0439 0.3127 0.7245 0.7060 0.9616 0.5749
1.8133 0.3670 0.5402 0.7032 1.0038 1.5598 1.2747
0.5723 0.7815 1.6952 0.6011 0.6761 3.1729 0.9975
1.3739 1.2599 0.9450 0.9130 1.3411 1.2999 0.8710
0.7403 0.8517 1.2088 2.1394 0.8820 0.9941 1.8931
1.3173 1.8557 1.6034 0.9810 1.2713 1.5787 2.5388

В=

1.8133 0.3670 0.5402 0.7032
0.5723 0.7815 1.6952 0.6011
1.3739 1.2599 0.9450 0.9130
0.7403 0.8517 1.2088 2.1394

С=

0.3127 0.7245 0.7060 0.9616
0.5402 0.7032 1.0038 1.5598
1.6952 0.6011 0.6761 3.1729
0.9450 0.9130 1.3411 1.2999

D =

0.8998 0.3670 1.6952 0.9130 0.8820 1.5787

 

Работа № 2. Элементы программирования в МАТ1АВ

Цель работы: приобретение навыков работы с m-файлами; создание программ-функций, работа с циклами и условными операторами.

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

Команда solve позволяет решать уравнения и системы уравнений. Так, например, функция g=solve(‘eq ’) решает уравнение, заданное в виде символьного, либо строкового выражения с указанием или без указания знака равенства. Если знак равенства не указан, то предполагается уравнение вида eq=0. Переменная, относительно которой ищется решение, если она не указана явно, определяется автоматически с помощью функции findsytn. Функция g=solve(‘eq’,var) решает уравнение относительно переменной var. Функции g=solve(‘eql’eq2'eqn’) и g=solve(‘eql’, ’eq2\... ’eqn’,varl,var2,...varn) решают системы уравнений относительно п переменных. Причем для систем уравнений с одним выходным аргументом решение возвращается в виде массива записей. Для того, чтобы решения вернулись упорядоченными по именам переменных, нужно задать число выходных аргументов в квадратных скобках, равное числу переменных.

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

при условии, что он существует. Symbolic Math Toolbox позволяет вычислить пределы функции впрямую. Команды

syms h n х

limit((cos(x+h) - cos(x))/h,h,0)

которые возвращают

ans =

-sin(x)

и

limit((I + x/n)^n, n, inf),

которые возвращают

ans=

exp(x),

иллюстрируют два наиболее важных предела в математике: производную (случай с cos х) и экспоненциальную функцию. Поскольку многие пределы являются двусторонними

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

, ,

соответствуют трем достижимым результатам: неопределенному, и соответственно.

В случае неопределенного результата, Symbolic Math Toolbox возвращает NaN (не число). Команда limit (1/х,х,0) или limit(1/х) возвращают

ans =

NaN.

Команда limit(l/x,x,0,'lejt') возвращает ans =

-inf

тогда как команда limit(l/x,x,0,'right') возвращает

ans =.

inf.

Примечание: Заметьте, что по умолчанию limit(f) является тем же самым, что limit(f,x,0).

Опции команды limit представлены в таблице. Заметьте, что функция /является функцией символьного объекта х

Mathematical Operation MATLAB Command
limit(f)
limit(f,x,a) или limit(f,a)
x-*a~ limit(f,x,a, 'left')
limit(f,x,a, 'right')

Система MATLAB работает с данными, представленными в различных форматах. Наиболее часто используются данные, представленные в так называемых ASCII-кодах (American Standard Code for Information Interchange) и в двоичных кодах. Файлы данных, представленных в ASCII-кодах, должны иметь расширение.ууу и не содержать никаких других символов, кроме цифр и точки. Они создаются в текстовом редакторе (например, в Norton Commander с помощью команды Shift F4) и загружаются в командное окно MATLAB с помощью команды load *.ууу (* обозначает имя файла).

Иногда бывает необходимо преобразовать размеры матрицы, например, заменить строки столбцами, а столбцы строками. Это можно сделать с помощью команды B=reshape(A,m,n), которая возвращает матрицу размером т х п, сформированную из элементов матрицы А путем их последовательной выборки по столбцам.

Однако в пакете MATLAB есть возможность обработки заранее подготовленной последовательности команд и операторов, записанной в виде файла.

М-файлы, содержащие команды и операторы MATLAB, разделяются на файлы-сценарии и процедуры-функции. Программирование осуществляется в окне MATLAB Editor/Debugger, которое вызывается последовательностью команд меню: File-New-M-File

Если первая строка М-файла начинается с определения function[список выходных переменных]=имя функции(список входных переменных),то этот файл представляет собой М-функцию. Она может быть сохранена в текущем каталоге с помощью последовательности команд меню: File-Save или File-Save As. Для предотвращения путаницы рекомендуется сохранять такой М-файл под именем функции, но в принципе имена М-файла и функции могут отличаться.

Например, function [G]=maxl(A,k,s).

Стандартная структура М-функции должна быть следующей:

• Первая строка объявляет имя функции, ее входные и выходные аргументы.

• Для обозначения строк комментариев служит символ «%».


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

В отличие от универсальных языков программирования переменная цикла в языке MATLAB является массивом.

Рассмотрим операторы циклов, применяемые в MATLAB.

Date: 2015-12-12; view: 1933; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию