1 / 114

Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение

Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение математически изчисления; разработка на алгоритми; моделиране, симулиране и създаване на прототипи; представяне, визуализиране и анализ на данни; графика;

hasana
Download Presentation

Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Интерактивна система за технически изчисления, визуализиране и програмиране (MATLAB) • Приложение • математически изчисления; • разработка на алгоритми; • моделиране, симулиране и създаване на прототипи; • представяне, визуализиране и анализ на данни; • графика; • разработка на приложения с графичен • потребителски интерфейс. • Включва специални приложения (toolboxes) за обработка на сигнали, системи за управление, невронни мрежи, симулация и др.

  2. Характеристики на системата MATLAB • MATLAB език – език от високо ниво за обработка на матрици; • включва: оператори, функции, структури данни, • вход/изход, обектно-ориентирано • програмиране; • Работна среда на MATLAB –средства за управление на променливите в работната среда, внасяне и изнасяне на данни; разработка и управление на М-файлове, MATLAB приложения. • Управление на графика – двумерна и тримерна визуализация, обработка на изображения, анимация и представяне на графики; изграждане на графичен потребителски интерфейс.

  3. Библиотека с математически функции – сума, тригонометрични функции, комплексна аритметика, обръщане на матрица, Беселови функции, бързи трансформации на Фурие и др. • Интерфейс за приложни програми – динамично свързване на модули, написани на C, C++, Java или Fortran с модули от MATLAB.

  4. Стартиране на MATLAB StartPrograms MATLAB 6.5

  5. Команден прозорец за въвеждане на променливи и изпълнение на функции и М-файлове Помощ Текуща директория – за управление на директории и файлове Работно пространство – за изобразяване на променливите История на командите – за наблюдение изпълнението на архивни команди Старт – за изобразяване на документация, демо програми и специални приложения

  6. MATLAB като мощен калкулатор »указва въвеждане на команда ; блокира извеждане на резултата ans променлива със стойността на резултата = присвояване fun()вградена функция ... пренасяне на израз на нов ред

  7. » 2+3 ans = 5 » x=sin(0.5) x = 0.4794 » V=[1 2 3 4]; » sin(V) ans = 0.8415 0.9093 0.1411 -0.7568 » exp(V) ans = 2.7183 7.3891 20.0855 54.5982 » magic(3) ans = 8 1 6 3 5 7 4 9 2 вградена функция вектор блокира извеждане на резултата вградена функция MAGIC(N) е NxN матрица от целите числа 1N2с еднакви суми във всеки ред, стълб и диагонали, където N>0 без N=2.

  8. Типове данни 15 типa данни (или класове) Всеки тип данни е във формата на масив. Двумерният масив се нарича матрица. Едномерният масив се нарича вектор. Матрица 1x1 се нарича скалар.

  9. Оператори • Аритметични оператори

  10. » A=[7 2;4 3]; » B=[1 4;6 7]; » A+B ans = 8 6 10 10 » A*B ans = 19 42 22 37 % поелементно » A.*B ans = 7 8 24 21 » A.^B ans = 7 16 4096 2187 % ляво деление » A\B ans = -0.6923 -0.1538 2.9231 2.5385 » inv(A)*B ans = -0.6923 -0.1538 2.9231 2.5385 % дясно деление » B/A ans = -1.0000 2.0000 -0.7692 2.8462 » B*inv(A) ans = -1.0000 2.0000 -0.7692 2.8462 Функция inv(A) – обръща матрицата А.

  11. Оператори за сравнение Пример:А==B– сравнява матриците елемент-по-елемент, Aи B трябва да са с еднакви размери, резултантната матрица показва дали съответните елементи от Aи B са равни. » A=[1 2 3;4 5 6;7 8 9]; »B=[1 5 10;2 5 8;4 7 9]; » A==B ans = 1 0 0 0 1 0 0 0 1

  12. Логически оператори • 3.1. Поелементни логически оператори и функции • »А=[0 1 1 0 1]; • »B=[1 1 0 0 1];

  13. 3.2. Побитови логически функции »А=28;% двоично 11100 »B=21;% двоично 10101

  14. 3.3. Къси логически оператори (за скалари) »А=28; »B=-21;

  15. Изрази Израз – състои се от операнди и операции; операндите могат да бъдат променливи, константи или функции. • Променливи • автоматично се създава променлива за всяко име и се отделя необходимата памет; • името на променливата се състои от букви, цифри, знак за подчертаване (_), като MATLAB използва първите 31 символа; • различава малки и главни букви. • »A=10% създава се 1x1 матрица с име А и един елемент със стойност 10 • А = • 10

  16. Числа – съхраняват се с дълга плаваща запетая (16 значещи цифри, област 10-308 до 10+308). Начини за представяне: • десетично представяне с незадължителна десетична точка и водещ знак плюс; • научно представяне чрез буквата е, определяща 10 на степен; • имагинерните числа използват като суфикс iилиj. 10 -430.001 3.4632987 1.63е-20 1.43i

  17. Комплексно число • модул (амплитуда) • m=abs(z)връща модула (амплитудата) на z • фазов ъгъл theta=angle(z)връща фазовия ъгъл на zв радиани Комплексно число в полярни координати • »z=3+j*4; • % Конвертира z в полярни координати • »A=abs(z) • A = • 5 • » theta=angle(z) • theta = • 0.9273 • % Обратно конвертира до z=x+jy • »z=A*exp(j*theta) • z = • 3.0000 + 4.0000i

  18. Символи и коментари • Символна константа е последователност от • символи, заградени в апострофи ′. • Коментар започва със символа %. • »A=[′София ′;′Пловдив′]% матрица 2x7 • А = • София • Пловдив • Оператори • аритметични оператори; • оператори за сравнение; • логически оператори.

  19. 4.1. Оператор : a:b– резултатът е вектор-ред, съдържащ числата отaдо bсъс стъпка 1. a:c:b – резултатът е вектор-ред, съдържащ числата отaдо bсъс стъпка c. »1:10% стъпка 1 ans = 1 2 3 4 5 6 7 8 9 10 »100:-10:50% стъпка -10 ans = 100 90 80 70 60 50

  20. Функции • аbsабсолютна стойност • sqrt корен квадратен • еxp е на степен • sin синус • clear изчиства променливите и функциите от • паметта • clear allизчиства всички променливи, глобални • променливи, функции и връзки • close затваря фигура • close allзатваря всички прозорци с фигури • help получаване на помощ • format установява изходния формат • Константи: • pi 3.1459265 • i имагинерна единица -1 • j имагинерна единица -1 • »help elfun% елементарни математически функции • »help specfun% специални математически функции • »help elmat% матрични функции

  21. »format short% мащабиран формат с фиксирана точка с 5 цифри »format long% мащабиран формат с фиксирана точка с 15 цифри »format hex% шестнадесетичен формат »format rat% апроксимация чрез отношение от малки цели числа

  22. Примери: »s=(1+sqrt(10))/2 s = 2.0811 » n=1:5 % оператор : -> вектор-ред n = 1 2 3 4 5 » n=n'% оператор ' (транспониране) -> вектор-стълб n = 1 2 3 4 5 » x=n.^2% оператор .^ (поелементно повдигане на степен) x = 1 4 9 16 25

  23. Изчертаване на графики

  24. цвят_линиятип_линиятип_маркер rчервен- плътна+ bсин-- тиретаo gзелен-. тирета и точки* wбял. от точки. kчерен: двуеточияx cсиньо зеленnone без линия mпурпурен yжълт

  25. Пример: Изчертава синусоида в интервала . »t=0:pi/100:2*pi; »y=sin(t); »plot(t,y) » polar(t,y)

  26. Пример: Изчертава синусоида. »t=-pi:pi/100:pi; »y=sin(t); »plot(t,y); »axis([-pi pi -1 1]); »xlabel('-\pi \leq \itt \leq \pi'); »ylabel('\itsin(t)'); »title('Графика на функцията синус'); »grid on \piстойност на  \leq≤ \itкурсивен шрифт

  27. Пример: Изчертаваспрямо в интервала . » x=0.1:0.1:100; » loglog(x,exp(x)),grid on Пример: Изчертава спрямо в интервала . » x = 0:.1:10; » semilogy(x,10.^x)

  28. »y1=sin(t); »y2=cos(t); »subplot(211),plot(t,y1) »subplot(212),plot(t,y2) »subplot(111)

  29. »plot(t,y1,t,y2)

  30. »t = 0:pi/100:10*pi; » y1=sin(t); »y2=cos(t); »plot3(y1,y2,t); »grid on;

  31. Пример: Изчертава дискретен сигнал y[x]. » x=1:5; »y=[1 2 3 4 5]; »stem(x,y) »stem(x,y,'filled') »stem(x,y,'--')

  32. Пример: Изчертава дискретния във времето сигнал x[n], зададен чрез следните стойности: x[0]=1, x[1]=2, x[2]=1, x[3]=0, x[4]=-1, където x[n]=0 за всяко друго n. Нека векторът n да съдържа стойностите на времето в интервал от -2 до 6sс нарастване 1s. » n=-2:6; » x=[0 0 1 2 1 0 -1 0 0]; » stem(n,x,'filled') » xlabel('n') » ylabel('x[n]')

  33. Пример: Непрекъснатият сигнал се прилага към електронен ключ, който се затваря за много кратко вереме на всеки Т секунди. Изчертава модулирания сигнал – функция на дискретните точки на времето , където n=...,-2,-1,0,1,2,..., а Т се нарича период на модулация. Нека Т=1s, n[0,30] и x[-1,1]. » n=0:30; » t=0:30; » x=exp(-0.1*t).*sin(2/3*t); » axis([0 30 -1 1]) » stem(n,x,'filled') » xlabel('n') » ylabel('x[n]')

  34. Пример: Изчертава периодичния дискретен сигнал • за две стойности на : 1=/3 и 2=1, • където =0, А=1. Нека n[-10,30] и x[-1.5,1.5]; • възстановете възможността за изчертаване върху • целия прозорец. • » n=-10:30; • » OMEGA1=pi/3; • » OMEGA2=1; • » x1=cos(OMEGA1*n); • » x2=cos(OMEGA2*n); • » subplot(211),stem(n,x1,'filled') • » xlabel('n') • » ylabel('x[n]') • » axis([-10 30 -1.5 1.5]) • » subplot(212),stem(n,x2,'filled') • » xlabel('n') • » ylabel('x[n]') • » axis([-10 30 -1.5 1.5]) • » subplot(111)

  35. Матрици • Определения • Матрица е правоъгълен масив от числа. • Скалар е 1x1 матрица. • Вектор е матрица само с един ред или стълб. • Въвеждане на матрици чрез явен списък от елементи – матрицата се запомня автоматично в работното пространство. • » А=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1] • A = • 16 3 2 13 • 5 10 11 8 • 9 6 7 12 • 4 15 14 1

  36. Обръщение към матрица – чрез нейното име. • » А • A = • 16 3 2 13 • 5 10 11 8 • 9 6 7 12 • 4 15 14 1 • Сума от елементите във всеки стълб – резултатът е вектор-ред и се запазва в променливата ans. • »sum(А) • ans = • 34 34 34 34

  37. Сума от елементите на всеки ред – резултатът е вектор-стълб. • Алгоритъм: • транспониране на матрицата (операция ′); • изчисляване на сумите по стълбове; • транспониране на резултата. • » А′ • ans = • 16 5 9 4 • 3 10 6 15 • 2 11 7 14 • 13 8 12 1 • »sum(А′)′ • ans = • 34 • 34 • 34 • 34

  38. Сума от елементите от главния диагонал. • »diag(А) • ans = • 16 • 10 • 7 • 1 • »sum(diag(А)) • ans = • 34 • Сума от елементите от второстепенния диагонал. • »sum(diag(fliplr(А))) • ans = • 34 • Функциятаfliplrобръща матрицата отляво надясно.

  39. Индекси – елементът в редiи стълбj се означава чрез A(i,j). • а) достъп до елемент на матрицата • » А(4,2) • ans = • 15 • б) сума от елементите в 4-тия стълб • » А(1,4)+A(2,4)+A(3,4)+A(4,4) • ans = • 34 • в) достъп до елемент на масив чрез един индекс –масивът се съхранява по стълбове като един дълъг вектор-стълб; напр. достъп до елемент A(4,2): • » А(8) • ans = • 15

  40. Използване на оператор : • »sum(A(1:4,4))% сума от 4-тия стълб • ans = • 34 • »sum(A(:,end))% сума от последния стълб • ans = • 34

  41. Обратна матрица – функция inv • »A=pascal(3) • A = • 1 1 1 • 1 2 3 • 1 3 6 • »inv(A) • ans = • 3 -3 1 • -3 5 -2 • 1 -2 1

  42. Специални матрици • zeros всички елементи са 0; • ones всички елементи са 1; • randправилно разпределени случайни числа; • randnнормално разпределени случайни числа; • magicмагически квадрат от степен N е NxN • матрица с елементи естествени числа от 1 до • N2 така, че сумата от числата във всеки • хоризонтал, вертикал или главен диагонал е • една и съща, равна на N(N2+1)/2; • pascal матрица на Паскал от степен N: симетрична • положително дефинирана матрица с • целочислени стойности, получени от • триъгълника на Паскал (първото и • последното число във всеки ред е 1, • а другите се получават като сума от двете • числа над него).

  43. »o=ones(2,4) o = 1 1 1 1 1 1 1 1 »A=magic(3) A = 8 1 6 3 5 7 4 9 2 »A=pascal(3) A = 1 1 1 1 2 3 1 3 6

  44. Слепване на матрици • [] оператор за слепване • »A=magic(3) • A = • 8 1 6 • 3 5 7 • 4 9 2 • » B=[A A+5;A+10 A+20] • B = • 8 1 6 13 6 11 • 3 5 7 8 10 12 • 4 9 2 9 14 7 • 18 11 16 28 21 26 • 13 15 17 23 25 27 • 14 19 12 24 29 22

  45. Изтриване на редове и стълбове • [] двойка квадратни скоби • » A=magic(3) • A = • 8 1 6 • 3 5 7 • 4 9 2 • »A(2,:)=[]% изтрива втори ред от А • A = • 8 1 6 • 4 9 2 • » A(:,2)=[]% изтрива втори стълб от А • A = • 8 6 • 4 2

  46. Изграждане на таблици • » n=(0:9)';% вектор-стълб • » pows = [n n.^2]% таблица от квадратите на 2 • pows = • 0 0 • 1 1 • 2 4 • 3 9 • 4 16 • 5 25 • 6 36 • 7 49 • 8 64 • 9 81

More Related