Лабораторный практикум - Математические методы и модели в расчётах на ЭВМ - файл n1.doc

Лабораторный практикум - Математические методы и модели в расчётах на ЭВМ
скачать (2174 kb.)
Доступные файлы (1):
n1.doc2174kb.07.11.2012 01:49скачать

n1.doc

  1   2   3   4
Федеральное государственное образовательное учреждение

высшего профессионального образования

<<Сибирский федеральный университет>>

ИНСТИТУТ ЦВЕТНЫХ МЕТАЛЛОВ И ЗОЛОТА


Лаба номер 4 ре вариант граф д вариант 15


МАТЕМАТИЧЕСКИЕ МЕТОДЫ И МОДЕЛИ

В РАСЧЁТАХ НА ЭВМ
Лабораторный практикум


Красноярск – 2007

Кибардин В.В.

Математические методы и модели в расчётах на ЭВМ.

Лабораторный практикум.
В лабораторном практикуме рассмотрено решение типовых задач вычислительной математики с помощью пакетов прикладных программ MATLAB (часть 1) и Mathcad (часть 2): простейшие математические операции, решение алгебраических уравнений, линейная алгебра и решение систем линейных алгебраических уравнений, решение обыкновенных дифференциальных уравнений, обработка экспериментальных данных.

В третьей части рассмотрено моделирование электромеханических устройств в среде MATLAB+Simulink+SimPowerSistemtems.

Для студентов электротехнических специальностей института.


с Кибардин В.В. , 2007


ВВЕДЕНИЕ

Существующие в настоящее время математические пакеты – Mathematica, Maple, Mathcad, MATLAB – предназначены для аналитического и численного решения различных математических задач. Наиболее мощный из них – Maple. Символьный процессор этого пакета используется как в Mathcad, так и в MATLAB.

Среди этих пакетов наибольшее применение в инженерной практике получили два пакета – MATLAB и Mathcad.

Система инженерных и научных расчётов (матричная лаборатория) MATLAB способна решать задачи линейной алгебры, интегральные и дифференциальные уравнения, выполнять преобразования Лапласа и Фурье, Z-преобразования и т.д. Графические возможности пакета позволяют строить двух и трёхмерные графики в различных координатах. Предусмотрено решение статистических и оптимизационных задач. Благодаря программе Simulink имеется возможность анализа и синтеза современных систем управления во временной и частотной областях, а также в пространстве состояний. Множество пакетов расширений (Toolbox), в том числе по нейронным сетям, нечёткой логике, генетическим алгоритмам и биоинформатике, делают этот пакет незаменимым при автоматизированном проектировании систем управления промышленными объектами.

Пакет Mathcad ориентирован в первую очередь на проведение численных расчетов, имеет привычные стандартные математические обозначения, благодаря этому он более популярен в инженерной среде. Имеет встроенный символьный процессор Maple (хотя и в урезанном виде), что позволяет выполнять аналитические преобразования, пакеты расширения и электронные книги. Содержит редактор документов, справочную систему , примеры применения всех встроенных функций, собственное средство выхода в Интернет. Позволяет выполнять обработку экспериментальных данных, решать системы линейных и нелинейных алгебраических уравнений, выполнять матричные операции, решать дифференциальные, интегральные уравнения и задачи математического моделирования на основе дифференциальных уравнений. Графические возможности пакета позволяют строить двух и трёхмерные графики в различных координатах.

Цикл лабораторных работ по дисциплине “Математические методы и модели в расчётах на ЭВМ” предназначен для изучения пакетов MATLAB и Mathcad и решения на их основе инженерных задач. Предполагается, что студенты знакомы с основными разделами высшей математики, физики, численными методами решений алгебраических и дифференциальных уравнений.

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


Лабораторная работа № 1 - 1

Знакомство с MATLAB и простейшие вычисления.
Цель работы: знакомство с интерфейсом пользователя и основными приёмами работы в среде MATLAB.
Введение

MATLAB, сокращённое название MATrix LABoratory, является интерактивной системой для выполнения научных и инженерных расчётов. В состав системы входит ядро компьютерной алгебры Maple и пакет расширения Simulink, а также десятки других пакетов расширений, что позволяет моделировать сложные электротехнические устройства.

Графический интерфейс пользователя MATLAB состоит из четырёх независимых окон.

Окно Command Window является основным и предназначено для ввода чисел, переменных, выражений и команд, для просмотра результатов вычислений, для отображения текстов выполняемых программ, а также для вывода сообщений об ошибках. Структура окна (рис. 1) состоит из строки меню, панели инструментов, рабочей области и полосы состояния.

Строка меню Панель инструментов



Рабочее пространство История команд Список файлов Рабочая область

(Workspace) (Command History) (Current Directory) (Command Window)

Рис. 1

В рабочей области окна находится строка ввода команд (зона редактирования), отмеченная знаком >> , в которой можно вводить числа, имена переменных и знаки операций. Имена переменных должны начинаться с буквы и могут состоять из букв, цифр и знаков препинания. Простейшими знаками операций являются +, - , /, а также операция возведения в степень, обозначаемая ^ .

Для вызова ранее введённых команд предусмотрено специальное средство – окно Command History (История команд). Здесь отображается перечень команд, вводимых в течении каждого сеанса, а также дата и время сеанса. Одна или несколько команд могут быть выполнены с помощью мыши и клавиш Shift, Enter и Ctrl. Контекстное меню, содержащее команды копирования, вырезания и др., можно вызвать щелчком правой мыши на какой-либо команде данного окна.

Окно Workspace (Рабочее пространство) предназначено для просмотра переменных рабочего пространства – информация представлена в виде таблицы (имя переменной, значение переменной, тип переменной). Число столбцов можно изменять, например, добавить размер массива и указать количество байтов, занимаемых переменной.

В окне Current Directory отображается список файлов и вложенных папок активного в данный момент каталога.
Операции с числами и работа в режиме калькулятора

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

>> f=8.134678

f =

8.1347

>> c=0.8134678e1

c =

8.1347

Буквой е обозначается основание степени, равное 10.

Вещественные числа можно записывать в следующем виде

>> 12

ans =

12

>> -14

ans =

-14

>> 6.7896

ans =

6.7896

>> 0.0009

ans =

9.0000e-004

Как видно из этого примера, результату присваивается специальная переменная ans

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

>> format long

>> f

f =

8.13467800000000

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

>> f=8.134

f =

8.1340

>> format rat

>> f

f =

4067/500

>> t=6.06e-2

t =

303/5000

Обратный переход осуществляется с помощью команды

>> format short

>> t

t =

0.0606

Если ввести в командную строку команду

>> help format

то в командном окне отобразиться информация обо всех форматах MATLABa:

FORMAT Set output format.

All computations in MATLAB are done in double precision.

FORMAT may be used to switch between different output

display formats as follows:

FORMAT Default. Same as SHORT.

FORMAT SHORT Scaled fixed point format with 5 digits.

FORMAT LONG Scaled fixed point format with 15 digits.

FORMAT SHORT E Floating point format with 5 digits.

FORMAT LONG E Floating point format with 15 digits.

FORMAT SHORT G Best of fixed or floating point format with 5 digits.

FORMAT LONG G Best of fixed or floating point format with 15 digits.

FORMAT HEX Hexadecimal format.

FORMAT + The symbols +, - and blank are printed

for positive, negative and zero elements.

Imaginary parts are ignored.

FORMAT BANK Fixed format for dollars and cents.

FORMAT RAT Approximation by ratio of small integers.

Spacing:

FORMAT COMPACT Suppress extra line-feeds.

FORMAT LOOSE Puts the extra line-feeds back in.

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

>> 5+4

ans =

9

>> 10-8

ans =

2

>> 2^8

ans =

256

>> 256/2

ans =

128

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

>> (4.78+2.9^3)+143+sqrt(-4)+(5.98+6*8.76)^2.1

ans =

5.3203e+003 +2.0000e+000i

Комплексные числа

В MATLAB для обозначения мнимой единицы зарезервированы две переменные - i и j , предпочтение отдаётся i. Если эти же переменные использовались в циклах, то перед началом работы с комплексными числами следует выполнить команду

>> clear i,j

ans =

0 + 1.0000i

Основные приёмы работы с комплексными числами рассмотрим на примерах:

>> Z1=5+6i

Z1 =

5.0000 + 6.0000i


>> Z2=6-8i

Z2 =

6.0000 - 8.0000i
>> Z3=10+2i

Z3 =

10.0000 + 2.0000i
>> Z=Z1+Z2*Z3/(Z2+Z3)

Z =

10.5616 + 3.8356i
>> abs(Z)

ans =

11.2366
>> real(Z)

ans =

10.5616
>> imag(Z)

ans =

3.8356

Для вычисления комплексно-сопряжённого числа необходимо использовать оператор

>> conj(Z)

ans =

10.5616 - 3.8356i

или апостроф

>> Z'

ans =

10.5616 - 3.8356i
>> sin(Z)

ans =

-21.0242 - 9.7333i
>> Z^2

ans =

96.8364 +81.0208i
>> sqrt(Z)

ans =

3.3014 + 0.5809i

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

> a=-4.3;b=-6.7;z=a+b*i

z =

-4.3000 - 6.7000i

Вычисление аргумента комплексного числа с помощью оператора

>> angle(z)

даёт результат в радианах в диапазоне от + ? до -? .

ans =

-2.1414

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

>> fi=180*ans/pi

fi =

-122.6920
Элементарные функции

Для вычислений с числами предусмотрены все элементарные функции:

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

>> sin(3.14)

ans =

0.0016
>> cos(2.5)

ans =

-0.8011
>> tan(pi/6)

ans =

0.5774
>> cot(1-pi)

ans =

0.6421
>> log10(100)

ans =

2

>> log(10)

ans =

2.3026

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

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

>> help elfun

Elementary math functions.

Trigonometric.

sin - Sine.

sinh - Hyperbolic sine.

asin - Inverse sine.

asinh - Inverse hyperbolic sine.

cos - Cosine.

cosh - Hyperbolic cosine.

acos - Inverse cosine.

acosh - Inverse hyperbolic cosine.

tan - Tangent.

tanh - Hyperbolic tangent.

atan - Inverse tangent.

atan2 - Four quadrant inverse tangent.

atanh - Inverse hyperbolic tangent.

sec - Secant.

sech - Hyperbolic secant.

asec - Inverse secant.

asech - Inverse hyperbolic secant.

csc - Cosecant.

csch - Hyperbolic cosecant.

acsc - Inverse cosecant.

acsch - Inverse hyperbolic cosecant.

cot - Cotangent.

coth - Hyperbolic cotangent.

acot - Inverse cotangent.

acoth - Inverse hyperbolic cotangent.

Exponential.

exp - Exponential.

log - Natural logarithm.

log10 - Common (base 10) logarithm.

log2 - Base 2 logarithm and dissect floating point number.

pow2 - Base 2 power and scale floating point number.

realpow - Power that will error out on complex result.

reallog - Natural logarithm of real number.

realsqrt - Square root of number greater than or equal to zero.

sqrt - Square root.

nextpow2 - Next higher power of 2.

Complex.

abs - Absolute value.

angle - Phase angle.

complex - Construct complex data from real and imaginary parts.

conj - Complex conjugate.

imag - Complex imaginary part.

real - Complex real part.

unwrap - Unwrap phase angle.

isreal - True for real array.

cplxpair - Sort numbers into complex conjugate pairs.

Rounding and remainder.

fix - Round towards zero.

floor - Round towards minus infinity.

ceil - Round towards plus infinity.

round - Round towards nearest integer.

mod - Modulus (signed remainder after division).

rem - Remainder after division.

sign - Signum.
В MATLAB предусмотрены и специальные функции (бета- и гамма-функции, и др.), список которых можно вывести с помощью оператора

>> help specfun

Specialized math functions.

Specialized math functions.

airy - Airy functions.

besselj - Bessel function of the first kind.

bessely - Bessel function of the second kind.

besselh - Bessel functions of the third kind (Hankel function).

besseli - Modified Bessel function of the first kind.

besselk - Modified Bessel function of the second kind.

beta - Beta function.

betainc - Incomplete beta function.

betaln - Logarithm of beta function.

ellipj - Jacobi elliptic functions.

ellipke - Complete elliptic integral.

erf - Error function.

erfc - Complementary error function.

erfcx - Scaled complementary error function.

erfinv - Inverse error function.

expint - Exponential integral function.

gamma - Gamma function.

gammainc - Incomplete gamma function.

gammaln - Logarithm of gamma function.

psi - Psi (polygamma) function.

legendre - Associated Legendre function.

cross - Vector cross product.

dot - Vector dot product.

Number theoretic functions.

factor - Prime factors.

isprime - True for prime numbers.

primes - Generate list of prime numbers.

gcd - Greatest common divisor.

lcm - Least common multiple.

rat - Rational approximation.

rats - Rational output.

perms - All possible permutations.

nchoosek - All combinations of N elements taken K at a time.

factorial - Factorial function.

Coordinate transforms.

cart2sph - Transform Cartesian to spherical coordinates.

cart2pol - Transform Cartesian to polar coordinates.

pol2cart - Transform polar to Cartesian coordinates.

sph2cart - Transform spherical to Cartesian coordinates.

hsv2rgb - Convert hue-saturation-value colors to red-green-blue.

rgb2hsv - Convert red-green-blue colors to hue-saturation-value.
Порядок выполнения работы

1. Запустите программу MATLAB с помощью соответствующей пиктограммы на рабочем столе Windows.

2. Откройте все окна интерфейса MATLAB.

3. Выведите число 134,12398765438732 на экран во всех форматах представления чисел ( аналогично ? и е).

4. Вычислите значения выражений



5. Выведите на экран подробную информацию обо всех переменных, используемых в текущем сеансе работы.

6. Удалите переменные х и у из памяти компьютера.

7. Для заданной электрической цепи с одним источником энергии методом эквивалентных преобразований рассчитать токи ветвей и напряжения на элементах схемы. Проверить результаты расчёта по уравнению энергетического баланса. Схемы электрических цепей постоянного и переменного тока и номиналы элементов схемы получить у преподавателя.
Вопросы для самопроверки [1]

Какие окна имеет интерфейс MATLAB, их назначение и структура?

Как в MATLAB осуществляется ввод и вывод вещественных и комплексных чисел, ввод и выполнение команд?

Назовите зоны окна Command Window?

Как увеличить длину командной строки Command Window, распространив её на несколько физических строк командного окна?

Что называется рабочей областью MATLAB?

Как осуществляется просмотр и редактирование значений переменных в окне Workspace?

Как отобразить список переменных, созданных в данном сеансе работы, в командном окне?

Как удалить неиспользуемую более переменную из рабочего пространства MATLAB?

Как получить справку по выбранной команде MATLAB?

Для чего служат клавиши и ?

Какие команды содержит меню File, Debug и Help?

Какой символ используется для переноса длинных формул на другую строку?

С помощью какой команды можно сохранить текст сессии?

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

1. С. В. Поршнев MATLAB 7. Основы работы и программирования. Учебник – М.: ООО <<Бином-Пресс>>, 2006г. -320 с.: ил.

2. Курбатов Е.А. MATLAB 7. Самоучитель. – М.: Издательский дом “Вильямс”, 2006. – 256 с.: ил.


Лабораторная работа № 1 - 2

Векторы и матрицы
Цель работы: знакомство с основными приёмами работы с векторами

и матрицами.
Введение

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

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

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

Рассмотрим основные приёмы работы с векторами и матрицами на примерах:

>> A=[1,2,2,9,8,4]

A =

1 2 2 9 8 4
>> A=[1 2 2 9 8 4]

A =

1 2 2 9 8 4
>> d=6.1:0.3:8.3;

>> d

d =

6.1000 6.4000 6.7000 7.0000 7.3000 7.6000 7.9000 8.2000
>> A=[1 2 3;4 5 6;7 8 9]

A =

1 2 3

4 5 6

7 8 9
>> a=[10^2 tan(pi/4) log10(100)]

a =

100.0000 1.0000 2.0000
>> A(8)

ans =

6
>> A(2,3)

ans =

6
>> A(2,3)=100

A =

1 2 3

4 5 100

7 8 9
>> A(3:6)

ans =

7 2 5 8
>> B=[A(1) A(4) A(9)]

B =

1 2 9
>> C=[A(1);A(4);A(9)]

C =

1

2

9
>> A(1)+A(4)+A(9)

ans =

12
>> sum(A)

ans =

12 15 112
>> sum(A')

ans =

6 109 24
Следует заметить, что в тексте программ лучше не использовать как индексы буквы i и j (обозначение мнимой единицы).

Для удаления отдельных столбцов и строк матриц используются пустые квадратные скобки и двоеточие:
>> A=[2 5 8;30 21 5;12 9 6]

A =

2 5 8

30 21 5

12 9 6
>> A(:,2)=[]

A =

2 8

30 5

12 6
>> A(2,:)=[]

A =

2 8

12 6
Для выделения отдельной строки или столбца используются круглые скобки и двоеточие

>> A(:,1)

ans =

2

12
>> A(2,:)

ans =

12 6
Матрицы с одинаковым числом строк или одинаковым числом столбцов можно объединять в одну “строку” или в один “столбец”. Такая операция называется горизонтальной или вертикальной конкатенацией матриц и может выполняться или

>> A1=[7;4;3];A2=[2 4 5;1 6 9;0 7 4]; A3=[98 -9;31 6;81 100];

>> A=[A1 A2 A3]

A =

7 2 4 5 98 -9

4 1 6 9 31 6

3 0 7 4 81 100
>> B1=[2 3];B2=[1 4;0 7;8 9];B=[B1;B2]

B =

2 3

1 4

0 7

8 9

или с помощью оператора

>> cat(2,A1,A2,A3)

ans =

7 2 4 5 98 -9

4 1 6 9 31 6

3 0 7 4 81 100
>> cat(1,B1,B2)

ans =

2 3

1 4

0 7

8 9
Можно заменить один фрагмент матрицы на другой, для чего необходимо указать номера заменяемых строк и столбцов:

>> A=[12 3 5 9 6 23;9 76 5 43 1 6;0 2 5 3 8 10]

A =

12 3 5 9 6 23

9 76 5 43 1 6

0 2 5 3 8 10

>> C=[10 10;20 20]

C =

10 10

20 20

>> A(2:3,5:6)=C

A =

12 3 5 9 6 23

9 76 5 43 10 10

0 2 5 3 20 20
Формировать новые матрицы можно путём перестановки строк или столбцов относительно горизонтальной или вертикальной осей, а также путём поворота заданной матрицы против часовой стрелки на угол 90о с помощью операторов:

>> fliplr(A)

ans =

23 6 9 5 3 12

10 10 43 5 76 9

20 20 3 5 2 0

>> flipud(A)

ans =

0 2 5 3 20 20

9 76 5 43 10 10

12 3 5 9 6 23

>> rot90(A)

ans =

23 10 20

6 10 20

9 43 3

5 5 5

3 76 2

12 9 0

При повороте матрицы создаётся новая матрица (меняются значения элементов в строках и столбцах, а также размерность матрицы). Если требуется повернуть матрицу на угол 2*90о, 3*90о и т.д., то необходимо указать этот признак через запятую:

>> Z=rot90(A,2)

Z =

9 8 3 5 2 0

6 1 43 5 76 9

23 6 9 5 3 12

Размерность матрицы можно узнать с помощью оператора

>> size(A)

ans =

  1. 6

а размерность массива

>> ndims(A)

ans =

2

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

>> reshape(A,6,3)

ans =

12 5 6

9 5 10

0 5 20

3 9 23

76 43 10

2 3 20

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

1. Введите матрицу



поэлементно, построчно и по столбцам.

2. С помощью специальных функций выделите элемент А(4,3), вторую строку и пятый столбец, удалите первую строку и второй столбец, замените фрагмент матрицы А на матрицу

.

3. Ввести матрицы



4. Выполните конкатенацию матриц А, В и D.

5. Определите размерность матриц А, В, D и размерность массивов.

6. Измените размерность матриц без изменения числа элементов.

7. Сформируйте новые матрицы путём перестановки строк и столбцов исходных матриц.
Вопросы для самопроверки

1. Как осуществляется формирование одномерных и двумерных массивов в программе MATLAB?

2. Какие операторы используются для преобразования массивов и матриц?
Литература

1. С. В. Поршнев MATLAB 7. Основы работы и программирования. Учебник – М.: ООО <<Бином-Пресс>>, 2006г. -320 с.: ил.

2. Курбатов Е.А. MATLAB 7. Самоучитель. – М.: Издательский дом “Вильямс”, 2006. – 256 с.: ил.


Лабораторная работа № 1 - 3

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

Рассмотрим на примерах основные функции линейной алгебры, реализованные в MATLAB. Это вычисление определителя и собственных чисел, сингулярных чисел и т.д.

Для вычисления определителя (детерминанта) квадратной матрицы служит функция det(A), где А – матрица размерностью nЧn:

>> A=[10 20 30;5 15 25;8 4 2]

A =

10 20 30

5 15 25

8 4 2

>> det(A)

ans =

100

Для вычисления ранга матрицы (количество сингулярных чисел матрицы, не являющихся пренебрежимо малыми) предусмотрена функция

>> rank(A)

ans =

3

Для вычисления нормы матрицы (скалярная оценка величины элементов матрицы) предусмотрен оператор

>> norm(A)

ans =

47.9607

Для определения суммы элементов главной диагонали матрицы – следа матрицы- предусмотрен оператор

>> trace(A)

ans =

27
Транспонирование матрицы реализуется с помощью символа ’ :

>> B=A'

B =

10 5 8

20 15 4

30 25 2
Обратную матрицу Z = А-1 = I/A, где I – единичная матрица, получают с помощью функции

>> Z=inv(A)

Z =

-0.7000 0.8000 0.5000

1.9000 -2.2000 -1.0000

-1.0000 1.2000 0.5000

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

>> eye(4)

ans =

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

>> eye(2,4)

ans =

1 0 0 0

0 1 0 0

>> eye(size(A))

ans =

1 0 0

0 1 0

0 0 1

Матрица с единичными элементами создается с помощью операторов

>> ones(4)

ans =

1 1 1 1

1 1 1 1

1 1 1 1

1 1 1 1

>> ones(2,4)

ans =

1 1 1 1

1 1 1 1

>> ones(size(A))

ans =

1 1 1

1 1 1

1 1 1

Образование матрицы с нулевыми элементами возможно с помощью оператора

>> zeros(4)

ans =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

>> zeros(2,4)

ans =

0 0 0 0

0 0 0 0

>> zeros(size(A))

ans =

0 0 0

0 0 0

0 0 0

Матрицу с заданной диагональю из элементов вектора R можно создать с помощью оператора diag (R) :

>> R=[1 2 3 4]

R = 1 2 3 4

>> RB=diag(R)

RB =

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

Элементы вектора R могут находится или в k-ой верхней (k>0) или в

k- нижней (k<0) диагонали от главной диагонали. Это можно выполнить с помощью оператора diag(R,k):

>> Z=diag(R,2)

Z =

0 0 1 0 0 0

0 0 0 2 0 0

0 0 0 0 3 0

0 0 0 0 0 4

0 0 0 0 0 0

0 0 0 0 0 0

>> Z=diag(R,-2)

Z =

0 0 0 0 0 0

0 0 0 0 0 0

1 0 0 0 0 0

0 2 0 0 0 0

0 0 3 0 0 0

0 0 0 4 0 0

Для вычисления собственных чисел матрицы необходимо использовать функцию eig( )

>> C=eig(A)

C =

34.1199

-6.6812

-0.4387

С помощью этого оператора можно получить матрицу собственных векторов F, если изменить формат вызова:

>> [F,C]=eig(A)

F =

-0.7893 -0.3733 0.2792

-0.5536 -0.6626 -0.8410

-0.2655 0.6493 0.4635

C =

34.1199 0 0

0 -6.6812 0

0 0 -0.4387
C помощью оператора svd( ) можно вычислить сингулярные числа матрицы:

>> S=svd(A)

S =

47.9607

7.6617

0.2721

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

>> cond(A)

ans =

176.2352

47.9607/0.2721 =176.2613

С помощью этой же функции можно выполнить сингулярное разложение матрицы, применив формат вызова

>> [Q,S,T]=svd(A)

Q =

-0.7799 0.1186 -0.6145

-0.6145 -0.3318 0.7158

-0.1190 0.9359 0.3316

S =

47.9607 0 0

0 7.6617 0

0 0 0.2721
T =

-0.2465 0.9155 0.3180

-0.5273 0.1486 -0.8366

-0.8131 -0.3739 0.4461

Элементами матриц Q и T являются ортонормированные собственные векторы, соответствующие собственным значениям матриц А*А’ и А’* A, соответственно.

В MATLAB предусмотрены поэлементные операции над матрицами, которые рассмотрим на примерах:

>> A=[10 20 30;5 15 25;8 4 2]

A =

10 20 30

5 15 25

8 4 2

>> B=[8 4 2;5 15 25;10 20 30]

B =

8 4 2

5 15 25

10 20 30

вычитание

>> A-B

ans =

2 16 28

0 0 0

-2 -16 -28

>> minus(A,B)

ans =

2 16 28

0 0 0

-2 -16 -28

сложение

>> A+B

ans =

18 24 32

10 30 50

18 24 32

>> plus(A,B)

ans =

18 24 32

10 30 50

18 24 32

умножение

>> A.*B

ans =

80 80 60

25 225 625

80 80 60

>> times(A,B)

ans =

80 80 60

25 225 625

80 80 60

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

>> A.^2

ans =

100 400 900

25 225 625

64 16 4

>> power(A,2)

ans =

100 400 900

25 225 625

64 16 4

деление элементов матрицы слева направо

>> A./B

ans =

1.2500 5.0000 15.0000

1.0000 1.0000 1.0000

0.8000 0.2000 0.0667

деление элементов матрицы справа на лево

>> A.\B

ans =

0.8000 0.2000 0.0667

1.0000 1.0000 1.0000

1.2500 5.0000 15.0000
В MATLAB предусмотрены и матричные функции:

матричное умножение

>> A*B

ans =

480 940 1420

365 745 1135

104 132 176

>> mtimes(A,B)

ans =

480 940 1420

365 745 1135

104 132 176

деление матриц слева направо

> A/B

ans =

0 0 1

0 1 0

1 0 0

>> mrdivide(A,B)

ans =

0 0 1

0 1 0

1 0 0

обратное деление матриц

>> A\B

ans =

3.4000 19.2000 33.6000

-5.8000 -45.4000 -81.2000

3.0000 24.0000 43.0000

>> mldivide(A,B)

ans =

3.4000 19.2000 33.6000

-5.8000 -45.4000 -81.2000

3.0000 24.0000 43.0000

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

>> A^2

ans =

440 620 860

325 425 575

116 228 344

>> mpower(A,2)

ans =

440 620 860

325 425 575

116 228 344

матричная экспонента ехр(А)

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

A =

2 7 4

1 6 2

5 3 1

>> Q=expm(A)

Q =

1.0e+004 *

0.5315 1.3965 0.5555

0.3558 0.9361 0.3721

0.4209 1.1051 0.4398

логарифмирование матрицы

>> A=logm(Q)

A =

2.0000 7.0000 4.0000

1.0000 6.0000 2.0000

5.0000 3.0000 1.0000

извлечение квадратного корня

>> sqrtm(A)

ans =

1.2192 + 0.7445i 1.6531 - 0.3939i 1.0267 - 0.6072i

0.1833 + 0.1900i 2.2970 - 0.1005i 0.4814 - 0.1550i

1.3760 - 1.1901i 0.5370 + 0.6296i 0.9466 + 0.9707i
  1   2   3   4


Учебный материал
© bib.convdocs.org
При копировании укажите ссылку.
обратиться к администрации