background image

ЮГОЗАПАДЕН УНИВЕРСИТЕТ „НЕОФИТ РИЛСКИ“

СТОПАНСКИ ФАКУЛТЕТ

КУРСОВА РАБОТА

По:Иконометрия

На тема: ВЪВЕДЕНИЕ В MATLAB

Изготвил: Къдра Зелева                       Проверил:проф. П.Миланов
Специалност: Финанси – магистър                     доц.д-р И.Тренчев
Фак. № 15150342006

БЛАГОЕВГРАД 2012г.

background image

1.

Въведение в MATLAB

2.

Графичен интерфейс на MATLAB

3.

Операции с вектори и матрици. Работа с масиви.

Въвеждане на вектори и матрици

Генериране на вектори и матрици

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

Преобразуване на вектори и матрици

Извличане, вмъкване и премахване на части от матрица. Работа 
с отделен елемент.

Действия с вектори и матрици

Логическо индексиране

4.

Действия с вектори и матрици

Действия с вектори и матрици от линейната алгебра

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

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

5.

Въвеждане и извеждане на информация. Оператори за управление на 

изчислителния процес.

Въвеждане на информация

Извеждане на информация

6.

Работа с файлове

Скриптови файлове 

Файл-функции 

Файлове с данни

7.

Графика в MATLAB

Обикновена двумерна графика

Функции за начертаване на графики

Команди за управление на осите

Функции за нанасяне на надписи върху графиките

Обикновена тримерна графика

8.

Приложение

1.

Въведение в MATLAB

MATLAB е информационна система разработена от фирмата  Mathworks. 
Първоначално е разработена за работа с матрици в последствие започват да 
се   добавят   допълнителни   инструменти   като:   линейна   оптимизация, 
статистика и др. системата става много популярна и е приета като стандарт. 
MATLAB   е   диалогова   програмна   система   за   научно-технически   и 

background image

инженерни изчисления. MATLAB позволява решаването на широк кръг от 
задачи   от   областта   на   матричната   алгебра,   комплексната   аритметика, 
линейните   системи   уравнения,   диференциалното   и   интегрално   смятане, 
нелинейните   системи,   оптимизацията   и   др.   Предимство   на   системата   е 
възможността   за   експортиране   на   файлове   от   други   системи   като  Exel, 
SPSS и др. MATLAB може директно да се връзва към стоковата борса или 
към   финансово   –   счетоводни   програми,   да   изтегля   резултати   и   да   ги 
визуализира. 
MATLAB е обектно ориентиран език за програмиране, в който основният 
обект е масив от данни, като например вектор, матрица, многомерен масив, 
масив от записи. По този начин системата предлага възможности с един 
оператор да се обработят едновременно всички елементи на масива. Това е 
предимство спрямо повечето езици за програмиране, напр. Fortran, Pascal, 
C, при които за обработване на всички елементи на масив е необходимо да 
се организира специален цикъл. Наименованието MATLAB е съкращение 
от MATrixLABoratory.
Предимство на MATLAB е, че разполага с множество вградени функции за 
решаване на най-често срещани задачи от областта на линейната алгебра и 
числения анализ; за обработка на експериментални данни; за построяване 
на инженерна графика – двумерна и тримерна, както и за анимация.
MATLAB се състои от два компонента – ядро и допълнителни програми. 
Ядрото   представлява   съвкупност   от   програми   имащи   различно 
предназначение и разположени в различни директории. Основните файлове 
са разположени в „BIN“ директорията. пакетът от допълнителни програми 
се нарича Toolbox. Версия MATLAB 6.5 включва около 55 Toolbox-a. Някои 
от тях са:

Simulink - системата за блочно моделиране на динамични системи;

Symbolic – символни преобразувания;

Optimization – оптимизация;

GeneticAlgorithmandDirectSearch – генетични алгоритми за

оптимизация;

Spline – сплайн-апроксимация;

CurveFitting – апроксимация на криви;

Statistics – статистика;

FuzziLogic – размити множества;

PartialDifferentialEquations – частни диференциални уравнения;

ControlSystem – автоматично управление;

SignalProcessing – обработка на сигнали;

ImageProcessing – обработка на изображения;

NeuralNetwork – невронни мрежи.

Връзките между компонентите и ядрото са двупосочни. Директни връзки 
между   компонентите   не   съществуват,   тъй   като   всички   операции   се 

background image

извършват под управлението на командния интерпретатор, а компонентите 
съдържат m-файлове. 

Вграденият програмен език от високо ниво позволява MATLAB да работи в 
режим   на   калкулатор   и   в   програмен   режим.   При   работа   в   режим   на 
калкулатор, който се нарича още диалогов режим на работа, се задават една 
по   една   отделни   вградени   функции   и   оператори   и   веднага   се   получава 
резултата   от   обработката   (изчислението).   Програмният   режим   дава 
възможност   потребителят   да   създаде   собствени   програми   и   функции. 
Потребителските   програми   се   създават   и   записват   (съхраняват)   по 
определени   правила   и   след   това   се   изпълняват   по   същия   начин   както 
вградените   функции   на   системата,   т.е.   потребителските   програми 
разширяват стандартните вградени възможности на MATLAB и могат да се 
разглеждат като потребителски Toolbox.

MATLAB работи в два режима: команден и програмен. Това деление е 
условно, защото обикновено неможе да се направи ясно разграничаване на 
двата режима.командите на MATLAB са два вида: вградени ивъншни. 
Вградените команди са част от кода на интерпретатора, а външните са 
програми, записани в ASII код като текстови файлове, които задължително 
имат разширение „m“. 

Две команди имат особено значение за MATLAB. Едната е demo, която е 
предназначена за бързо демонстриране на някои възможности на MATLAB 
при решаване на задачи, които се срещат често в научните и инженерните 
изследвания. Другата команда е help, задачата й е да даде на потребителя 
помощ за предназначението и начина на използване на всяка от командите 
и функциите на MATLAB, достъпни за интерпретатора в зависимост от 
инсталираните компоненти.
Най – използваните области за приложение на MATLAB са:

Математически и компютърни изследвания;

Разработка на алгоритми;

Изчислителни компютърни експерименти;

Имитационно модулиране;

Компютърен анализ на данни;

Изследване и визуализация на данни;

Научна и инженерна графика;

Изработване на приложения включващи и графичен интерфейс на 
потребителя. Като средство за компютърно моделиране, което обезпечава 
изследвания практически във всички известни области на науката и 
техниката. MATLAB дава възможност  ефективно да се съчетават двата 
основни подхода към създаването на модули: аналитичен и имитационен. 

background image

2.

Графичен интерфейс на MATLAB

За работата в MATLAB среда важат основните подходи за работа на приложни 
програми воперационна система Windows. В същото време графичният интерфейс на 
MATLAB включваспецифични прозорци и правила за работа в тях.

Основните прозорци са (Фиг.1):

Workspace – работно пространство

Currentdirectory – текуща папка (директория)

Launchpad – за достъп до налични Toolbox

Commandhistory – история на командите

Commandwindow – команден прозорец

Работен прозорец на MATLAB

MATLAB се стартира чрез двукратно щракване на левия бутон на мишката 
върху иконатана MATLAB. При стартиране се зарежда командния прозорец 
(CommandWindow). Вкомандния прозорец се изобразява знака “ >> ”. 
Командният прозорец е основния прозорец, вкойто след знака “ >> ” се 
въвеждат командите. Въвеждането на команда завършва като сенатисне 
клавиша Enter. MATLAB е организиран в интерактивен команден режим, 
коетоозначава, че след като се въведе определена 
команда, числените резултати от изпълнениетона командата се получават 
също в командния прозорец. Графичните резултати се извеждат вотделен 
прозорец. Знакът “ >> ” показва, че програмата е готова за работа и очаква 
нашитекоманди да бъдат записани в командния ред, който се намира 
непосредствено след знака“ >> ”. Този знак се нарича промпт (prompt).
При въвеждане на командите трябва да се спазват следните правила:

Ако командата не завършва със символа “ ; ” резултатите се извеждат 

на екрана;

background image

Ако командата завършва със символа “ ; ” резултатите не се извеждат 

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

При задаване на графични команди символа “ ; ” в края на командата 

(наличието илиотсъствието му) не влияе върху резултата от 
изпълнението на командата;

Една команда може да се пренесе на нов ред като се изпишат три 

точки “ … ” в мястотона пренасяне. Това е удобно при задаване на 
дълги команди;

Няколко команди могат да се въведат на един ред. За разделител 

между тях може да сеизползва запетая “ , ” като в този случай се 
извеждат резултатите от предходната команда. Заразделител между 
две команди може да се използва и “ ; ”, като и тук важи правилото, 
че втози случай се потиска извеждането на резултата от предходната 
команда;

Когато се пресмята израз и не е зададено резултатът да се присвои на 

някаквапроменлива величина, тогава резултатът автоматично се 
присвоява на системна променливас име “ ans ” (съкратено от answer, 
което означава отговор).

Всички команди, зададени за една работна сесия, се запаметяват от 

системата. Всякакоманда може да се извика повторно на командния 
ред след промпта, като се използваклавиша стрелка нагоре ↑ . 
Командата може да се редактира, т.е да се промени или да 
секоригират грешки, и да се изпълни отново след редактирането с 
натискане на клавиш Enter. По този начин удобно и по-бързо се 
въвеждат сложни команди и изрази, които са подобни ие необходимо 
да се коригират само отделни символи;

Символът “ % ” се използва за начало на коментар. Това означава, че 

всички символислед “ % ” не се вземат под внимание от програмата и 
по този начин могат да се въвеждатобяснителни коментари.

3.

Операции с вектори и матрици. Работа с масиви.

Основен обект в MATLAB е матрицата. В общия случай, матрицата има m 
реда и n стълба, т.е размерност m x n. Когато броят на редовете и 
стълбовете е еднакъв, матрицата е квадратна, с размерност n x n. Вектор-
стълб се разглежда като матрица с размерност m x 1. Вектор-ред се 
разглежда като матрица с размерност 1 x n. Една скаларна стойност 
(единична стойност) се разглежда като матрица с размерност 1 x 1. 
Примери за различни матрици са представени на Фиг.1.

1 111
1 111

1 11
1 11

1 1111

1
1

1

background image

1 111

1 11

1
1

Матрица 3x4 Матрица 3x3 Матрица 1x4 Матрица 4x1 Матрица 1x1

(скаларна
стойност)

Примери за матрици

Командата >>helpelmat извежда всички функции за действия с матрици.

Въвеждане на вектори и матрици

За правилно поелементно въвеждане на вектори и матрици трябва да се 
спазват следните
правила:

-

Въвеждането на елементите започва с отваряща квадратна скоба “ [ “ 

и завършва съсзатваряща квадратна скоба “ ] ” ;

-

 Отделните елементи на един вектор ред или в един ред на матрица 

се разделят помежду сис интервал или със запетайка;

-

Отделните редове на матрица или елементите на вектор стълб се 

разделят помежду си съссимвола точка и запетайка “ ; ” ;

-

 Вместо да се използва разделител “ ; ” , всеки ред на матрица или 

всеки елемент навектор-стълб може да се разполага на нов ред. Този 
начин на представяне съответства наестественото записване на 
матрица и вектор и е най-нагледен.

Следващите примери показват различни начини за въвеждане на стойности 
на матрица а сразмерност 3 x 3; на вектор-стълб v1 с размерност 3 x 1 и на 
вектор-ред v2 с размерност 1 x 7.
>> A = [1 11 ; 2 22 ; 3 33] % разделител между елементите е интервал
A =
1 11
222
333
>> A = [1,1,1 ; 2,2,2 ; 3,3,3] % разделител между елементите е запетая
A =
111
222
333
>> A = [ 111
2 22
333 ] % разполагане на всеки ред на нов ред
A =

background image

111
2 22
3 33
>> V2 = [ 7 6 5 4 3 2 1 ] % задаване на вектор-ред
V2 =
7 6 5 4 3 2 1
>> V1=[7 ; 8 ; 9] % задаване на вектор-стълб
V1 =
7
8
9
>> V3=[9 8 7]' % задаване на вектор-стълб чрез транспониране на
вектор-ред
V3 =
9
8
7
Възможно е стойностите на елементите на матрица да се въведат 
еднократно или на
порции (многократно), след което да се обединят по подходящ начин.
Примери:
>>V = [1.2 -0.3 1.2e-5] % еднократно въвеждане
V =
1.2000 -0.3000 0.0000
12
>> V1 = [1 2 3];
>> V2 = [5 6 7]; % многократно въвеждане
>> V = [V1, V2] % конкатенация
V =
1 2 3 5 6 7
Стойности на вектори, чиито елементи са аритметични прогресии, се 
въвеждат по точно
определен начин:
име на променлива = начална стойност :стъпка на нарастване : крайна 
стойност
>> Z = 1 : 2 : 9
Z =
1 3 5 7 9
Ако липсва един параметър, то се подразбира, че стъпката на нарастване е 
1, а зададените
стойности са началната и крайната.
>> Y = 2 : 5
Y =

background image

2 3 4 5

Генериране на вектори и матрици

В MATLAB са включени специални функции за автоматично генериране на 
вектори и матрици от специален вид. Най-често използвани са следните 
функции:

o

zeros(m, n) – матрица с размерност m x n, запълнена с нули;

o

ones(m, n) - матрица с размерност m x n, запълнена с единици;

o

eye(m, n) - матрица с размерност m x n, с единици по главния 

диагонал, аостаналите елементи са нули;

o

rand(m, n) - матрица с размерност m x n, запълнена със случайни 

числа, равномерноразпределени в интервала от 0 до 1;

o

randn(m, n) - матрица с размерност m x n, запълнена със случайни 

числа,разпределени по нормален закон;

Когато се генерира квадратна матрица може вместо размерност n x n да се 
зададе само един аргумент n, например zeros(n).
Примери:
>>zeros(3, 4)  създава матрица с размери 3 x 4 само с нулеви
елементи
13
ans =
0000
0000
0 000
>>ones(3, 4) създава матрица с размери 3 x 4 само с единични
елементи
ans =
1111
1 111
1111
>>eye(3) създава квадратна матрица с размери 3 x 3 с единици по
главния диагонал, а останалите елементи са нулеви
ans =
100
0 1 0
00 1
>>randn(5, 3) %създава матрица с размерност 5 x 3, запълнена със
случайни числа, разпределени по нормален закон.
ans =
-0.43256481152822 1.19091546564300 -0.18670857768144
-1.66558437823810 1.18916420165210 0.72579054829330
0.12533230647483 -0.03763327659332 -0.58831654301419

background image

0.28767642035855 0.32729236140865 2.18318581819710
-1.14647135068146 0.17463914282092 -0.13639588308660

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

В MATLAB са включени две специални функции за определяне на размера 
на вектори и
матрици.
• length(vector1) - определяне на дължината на вектора vector1;
• size(matrix1) - определяне на размера на матрицa matrix1.
Пример:
>> vector1=[0 9 8 7 6 5 4 3 2 1];
>> matrix1=[1 11;2 22; 3 33];
>>length(vector1)
ans =
10
>>size(matrix1)
ans =
33

Преобразуване на вектори и матрици

В MATLAB са включени функции за преобразуване на вектори и матрици 
от един вид в
друг вид. Някои от тези функции са:

-

fliplr(A) – огледален образ спрямо вертикална ос (leftright);

-

flipud(A) – огледален образ спрямо хоризонтална ос (updown);

-

rot90(A) – завъртане на 90о обратно на часовата стрелка;

-

reshape(A, m, n) – преобразува матрицата А в матрица с размери m × 

n, катоизбира и подрежда елементите по стълбове; броят на 
елементите на матрицата А трябвада е равен на m*n;

-

tril(A) – връща долната триъгълна част на матрицата А (lower);

-

triu(A) – връща горната триъгълна част на матрицата А (upper);

-

diag(v) – образува диагонална матрица от елементите на вектора v, 

разположенивърху главния диагонал или извлича главния диагонал 
на матрица.

Примери:
>> s=[3 33; 4 44; 5 55]
s =
3 33
4 44
555
>>flipud(s)

background image

ans =
555
4 44
3 33
>>diag(s)
ans =
3
4
5

Извличане, вмъкване и премахване на части от матрица. Работа 

с отделен елемент

.

В MATLAB е възможно обръщане към отделен елемент на матрица. Това 
става чрез записване на името на матрицата и в кръгли скоби индексa на 
реда i и индекса на стълба j на който се намира елементът, разделени със 
запетая – А(i, j).
Пример:
• А(2, 5) - елемент от матрица А, който се намира на ред 2 и стълб 5;
• c(3) – третият елемент от вектор c ;
Възможно е да се присвои стойност на отделен елемент на матрица. В този 
случай се записва елементът по показания начин и на него се присвоява 
желаната стойност.
>>A(2, 3) = 5.5555; A
A =
1.0000 2.0000 3.0000 4.0000
5.0000 6.0000 5.5555 8.0000
9.0000 10.0000 11.0000 12.0000
От този пример се вижда, че в матрица A се е променила стойността само 
на елемент A(2, 3).

В MATLAB е възможно също обръщане към отделен ред, стълб или блок от 
матрица. В тези случаи се използва символ двоеточие “ : ”. Ако вместо 
индекс се постави символът " : ", това означава целия диапазон от 
възможни стойности на индекса. Това записване е еквивалентно на 
записването " 1:end ". Записването “ i1:i2 ” означава всички елементи с
индекс на ред от i1 до i2; записването “ j1:j2 ” означава всички елементи с 
индекс на стълб от j1 до j2.
• v1 = A(:, j) – вектор-стълб, състоящ се от елементите на j-тия стълб на 
матрицата A;
• v2 = A(i , :) – вектор-ред, състоящ се от елементите на i-тия ред на 
матрицата A;

Това е само предварителен преглед!

Крумово законодателство

Създаденото по времето на хан Крум държавно законодателство е известно като Крумово законодателство. То е първото достигнало до наши дни официално законодателство и единственият писмен правен паметник от езическия период...

Крумово законодателство

Предмет: История на държавата и правото, Право
Тип: Лекции
Брой страници: 1
Брой думи: 478
Брой символи: 2926
Изтегли
Този сайт използва бисквитки, за да функционира коректно
Ние и нашите доставчици на услуги използваме бисквитки (cookies)
Прочети още Съгласен съм