Студопедия — ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB
Студопедия Главная Случайная страница Обратная связь

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

ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB






ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB

 

Методический практикум

Алматы 2004

 

 

СОСТАВИТЕЛЬ: Ибраева Л.К.ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB. Методический практикум – Алматы: АИЭС, 2004 - 49 с.

 

Система MatLAB (MATrix LABoratory) является интерактивной системой для выполнения инженерных и научных расчетов Методический практикум предназначен для преподавателей, аспирантов и студентов, желающих применять систему MATLAB при исследовании систем. В методическом практикуме описаны только основные приемы работы с системой.

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

Каждый раздел практикума сопровождается примерами. Рекомендуется при изучении пакета выполнять эти упражнения – результат будет отражаться в командном окне. Поэтому в методических разработках не приведены окна с результатами (за исключением примеров раздела 3).

 

Рецензент: канд. техн наук, доц. С.Г.Хан

 

 

Печатается по плану издания Алматинского института энергетики и связи на 2004 г.

 

 

© Алматинский институт энергетики и связи, 2004 г.

Система MatLAB (MATrix LABoratory) является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Она имеет встроенную матричную и комплексную арифметику.

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

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

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

Работа в среде MatLAB может выполняться:

- в режиме «калькулятора», когда вычисления производятся

непосредственно в командном окне;

- путем вызова программы (встроенной или пользовательской);

- путем графической сборки модели исследуемой системы – пакет Simulink.

 

1. MatLAB как научный калькулятор

 

Ввод чисел выполняется по обычным правилам языков программирования; десятичный показатель записывается в виде целого числа после символа e.

Формат чисел: Файл-Свойства

Арифметические действия: + – * / \ ^

Вывод результата:

- Если оператор не заканчивается символом «;» (точка с запятой), результат

сразу отображается в командном окне.

- Если оператор не содержит знака присваивания, то значение результата

присваивается системной переменной ans.

- Общая форма:

<имя переменной> = <результат>;

Имена переменных могут использоваться для хранения промежуточных результатов.

 

Пример 1.1:

>> 25 + 17;

>>ans*7

ans = 294

 

Зарезервированные имена переменных: i, j - мнимая единица; pi – число π; ans – результат последней операции без знака присваивания.

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

sin(z), sinh(z), asin(z), cos(z), cosh(z), acos(z), tan(z), atan(z), exp(z), log(z), log10(z), sqrt(z), abs(z), round(z).

 

Комплексные числа вводятся в виде:

<имя переменной> = <значение действ.части> + i (либо j)*< значение мнимой части>

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

 

Пример 1.2:

>> x=1+2i; y = -3+4i;

>>disp(x+y)

-2.0000+6.0000i

 

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

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

real(z) – выделяет действительную часть комплексного аргумента;

imag(z) – выделяет мнимую часть комплексного аргумента;

angle(z) – вычисляет значение аргумента комплексного числа

(в радианах от – π до + π).

Пример 1.3:

Наберите в командном окне:

>>disp(real(y)

>>disp(imag(y)0

>>disp(angle(y))

 

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

Ввод вектора:

V1 = [1.2 2.3 3.4 4.5] (вместо пробелов можно использовать запятые).

Длинные векторы можно вводить частями, а затем объединять: v=[v1 v2].

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

V = nz: h: kz (nz – начальное значение, h – шаг, kz – конечное значение). По умолчанию шаг принимается равным 1.

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

 

 

Пример 1.4:

Введите в командное окно

>>v1[1 2 3];v2=[4 5 6];

>>v=[v1 v2]

 

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

Сложение и вычитание векторов: + и -

Транспонирование – знак апострофа (например, х').

Умножение вектора на число: *.

Умножение двух векторов: * (по правилам математики- для векторов одинакового размера и лишь тогда, когда один из векторов-сомножителей является строкой, а другой – столбцом; в противном случае, один из векторов надо транспонировать).

Векторное произведение (для трехкомпонентных векторов): cross (v1 v2)

Предусмотрено несколько операций поэлементного преобразования векторов (и матриц); все эти операции преобразуют элементы вектора как элементы обычного одномерного массива чисел. К таким операциям принадлежат все элементарные математические функции одного аргумента (некоторые были приведены выше). Например, запись Y = sin(X), где Х – известный вектор, приводит к формированию нового вектора Y, элементы которого равны синусу соответствующих элементов вектора Х.

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

Добавление числа к каждому элементу вектора (аналогично, вычитание): + и -

Поэлементное умножение векторов:. * (перед знаком умножения – точка)

Поэлементное деление векторов:. / (перед знаком деления – точка)

Поэлементное возведение в степень:. ^ (перед знаком степени – точка)

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

 

Пример 1.5:

Вычисление значений функции Y = a*exp(-k*x)*sin(x) при значениях аргумента x от 0 до 10 с шагом 1 можно выполнить при помощи следующих операторов:

>> a=3; k=0.5;

>> x = 0:1:10;

>>y= a*exp(-k*x).*sin(x)

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

 

Пример 1.6:

Введите в командное окно:

>>A=[2 4 5 8 10; 5 6 8 9 7]

MatLAB имеет функции, которые позволяют формировать векторы и матрицы определенного вида. Некоторые из них:

zeros(m,n) – создает матрицу m*n с нулевыми элементами;

ones(m,n)- создает матрицу m*n с единичными элементами;

eye(m,n)- создает матрицу m*n с единицами на главной диагонали и остальными

нулевыми элементами;

rand(m,n) - создает матрицу m*n из случайных чисел, равномерно

распределенных на (0,1);

randn(m,n) - создает матрицу m*n из случайных чисел, распределенных по

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

дисперсией, равной 1.

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

 

Пример 1.7:

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

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

>> sin(A)

>> A.*B

 

Матричные действия с матрицами:

Базовые действия с матрицами выполняются с помощью обычных знаков арифметических операций. Функция обращения матрицы – inv(A).

 

Пример 1.8:

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

>>A’

>> B =[ 0 -1 -2 – 3 -4; 5 6 7 8 9]

>> A’*B

>> C=A*B’

>> inv(C)

>> inv(ans) % для проверки обращение применяется к результату

>> A=[1 2;3 4]

>>A^2 % действие эквивалентно умножению матрицы на себя

>>A^(-2) % при отрицательной степени выполняется умножение

обратной матрицы на себя

 

Действие деления матриц (которого не существует в математике): / (или \).

Действие В/А аналогично действиям B*inv(A); его удобно использовать для решения матричного уравнения X*A=B; действие A\B аналогично действиям inv(A)*B; удобно использовать для решения матричного уравнения A*X=B.

 

Пример 1.9: Требуется решить систему уравнений:

X1 + 2X2 + 3X3 = 14

2X1 + X2 - 5X3 = -15

X1 - X2 - X3 = -4

Решение: >> A=[1 2 3;2 1 -5;1 -1 -1]

>> B=[14;-15;-4]

>> x=A\B

 

Операции с полиномами

Полином хранится в виде вектора, элементами которого являются коэффициенты полинома:

P = [an … a2 a1 a0]

Некоторые функции:

conv(P1,P2) – умножение двух полиномов;

deconv(P1,P2) – деление полинома P1 на полином P2;

roots(P) – вычисление вектора, элементы которого являются корнями заданного

полинома;

poly(r) – построение вектора полинома по заданному вектору его корней;

polyval(p,x) – вычисление значения полинома по заданному значению его

аргумента;

polyder(p) – вычисление производной от полинома.

 

Пример 1.10:

Найдем корни полинома P(x) = x5 + 8x4 + 31x3 + 80x2 + 94x + 20.

>>p=[1,8,31,80,94,20];

>>disp(roots(p))

Вычислим значение полинома при х=2:

>>y=polyval(p,2);

 

Обработка данных измерений

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

max(V) – выдает значение максимального по значению элемента вектора V;

min(V) – выдает значение минимального по значению элемента вектора V;

sort(V) – формирует вектор, элементы которого распределены в порядке

возрастания из значений;

sum(V) – вычисляет сумму элементов вектора V;

prod(V) – вычисляет произведение всех элементов вектора V;

trapz(x,y) – осуществляет интегрирование методом трапеций (вычисляется

площадь под графиком функции y(x), в котором все точки, заданные

векторами x и y, соединены отрезками прямых.

 

Аппроксимация и интерполяция данных

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

polyfit(X,Y,n) – полиномиальная аппроксимация, n – порядок

аппроксимирующего полинома; X,Y – вектора аргументов и

значений функции; результатом будет вектор коэффициентов

полинома длиной (n + 1).

spline(X,Y,Xi) – интерполяция кубическими сплайнами.

 

Пример 1.11:

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

>> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

>> polyfit(x,y,1)

ans = 0.1143 -0.2393

Это означает, что заданная зависимость аппроксимирована прямой:

y(x) = 0.1143x – 0.2393

 

Построение графиков

Основной функцией, обеспечивающей построение графиков, является функция plot. Обращение к этой процедуре:

plot(x1,y1,s1,x2,y2,s2.,…)

Здесь x1,y1 - заданные векторы, элементами которых являются массивы значений аргумента (x1) и функции (y1), соответствующих первой кривой графика; x2,y2 – массивы значений аргумента и функции второй кривой графика и т.д. Переменные s1, s2 являются символьными (их указание не обязательно, они определяют тип линии, тип точки графика и цвет линии).

Графики выводятся в отдельном графическом окне, которое называется фигурой; для нанесения на график координатных линий следует записать после обращения к функции plot функцию grid.

Пример 1.12:

Пусть требуется вывести график функции y=3sin(x+π/3) на промежутке от -3π до +3π с шагом π/100.

>>x=-3*pi:pi/100:3*pi;

>>y=3*sin(x+pi/3);

>>plot(x,y), grid

 

Заголовок графика выводится с помощью процедуры title(‘текст’), надписи к осям – процедурами xlabel(‘текст’), ylabel(‘текст’).

Пример 1.13:

>>x=-3*pi:pi/100:3*pi;

>>y=-3*sin(x+pi/3);

>>plot(x,y), grid

>>title(‘Функция y=3sin(x+π/3));

>>xlabel(‘x’); ylabel(‘y’)

 

Пример 1.14: Дополним пример 1.11.

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

 

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

>> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

>> P1=polyfit(x,y,1);

>> P1=polyfit(x,y,2);

>> P1=polyfit(x,y,3);

>> P1=polyfit(x,y,4);

>>stem(x,y);

>>hold

>>x=0.5:0.05:8.5;

>>y1=polyval(P1,x1);

>>y2=polyval(P2,x2);

>>y3=polyval(P3,x3);

>>y4=polyval(P4,x4);

>>plot(x1,y1,x2,y2,x3,y3,x4,y4);

>>grid:

>>title(‘Полиномиальная аппроксимация’);

>>xlabel(‘argument’);

>>ylabel(‘function’)

 

Здесь процедура stem(x,y) используется для представления графика дискретной функции в виде отдельных вертикальных линий для каждого из значений аргумента; x, y – векторы аргументов и значений функций; для отражения графика дискретной функции на той же фигуре, что и полиномы, после обращения к функции stem записывается функция hold.

При построении графика функции можно не указывать ее аргумент. В этом случае в качестве аргумента система принимает номер элемента вектора, график которого строится.

 

Пример 1.15:

>> x= [1 3 2 9 6 8 4 9 -6];

>> plot(x)

>> grid

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

Более наглядно представить вектор в виде столбчатой диаграммы (функция bar):

>> bar(x)

>> title (‘График вектора x')

>> ylabel (‘значения элементов’)

>> xlabel (‘номер элемента’)

 

2 Программирование в среде MatLAB

 

Программа создается в окне установленного редактора:







Дата добавления: 2015-03-11; просмотров: 995. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

Анализ микросреды предприятия Анализ микросреды направлен на анализ состояния тех со­ставляющих внешней среды, с которыми предприятие нахо­дится в непосредственном взаимодействии...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия