WYKŁAD 16 i 17. Podstawy programowania w języku MATLAB. Patrz przykłady zamieszczone na tej stronie: prog1.m... prog7.m oraz cw_0.m... cw_12.
|
|
- Wiktor Kurowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 WYKŁAD 16 i 17 Podstawy programowania w języku MATLAB Patrz przykłady zamieszczone na tej stronie: prog1.m... prog7.m oraz cw_0.m... cw_12.m Tomasz Zieliński
2 KOMPILATOR vs. INTERPRETER (przypomnienie) C/C++ = kompilatory tłumaczą od razu cały program na kod maszynowy potem dopiero program jest wykonywany stosowane kiedy jest już znany algorytm rozwiązania Basic = interpretery Matlab tłumaczona i wykonywana jest linia po linii programu stosowane kiedy jest poszukiwany algorytm rozwiązania Kompilator Interpreter Zalety Szybkie działanie programu Możliwość optymalizacji kodu programu, np. minimalizacji potrzebnej pamięci Krótka droga do pomysłu do jego weryfikacji Wady Długa droga do pomysłu do jego weryfikacji Wolne działanie programu
3 PRACA NAD PROGRAMEM: kompilator vs. interpreter f1.obj, f2.obj,... statyczne (lib) i dynamiczne (dll) dołączanie bibliotek system.lib Lib Maker Konsolidator my.lib system.dll my.dll wykonanie całego programu Edytor tekstu KOMPILATOR programu Linker System operacyjny prog.c prog.obj prog.exe INTERPRETER to oddzielny program / aplikacja 1 2 Edytor linii Program czyli zbiór linii 1 2 INTERPRETER Interpreter linii >>...?... (CR) Egzekutor linii
4 SZYBKOŚĆ PISANIA vs. SZYBKOŚĆ DZIAŁANIA czas napisania i uruchamiania (usunięcia błędów) programu czas wykonania programu Asembler Język C/C++ Matlab Simulink WNIOSEK: kiedy poszukuję rozwiązania problemu, wybieram język wysokiego poziomu, nawet graficzny, z dużą liczbą bibliotek (szybko piszę program, który wolno działa) kiedy znam rozwiązanie problemu wybieram język niskiego poziomu (wolno piszę program, który szybko działa)
5 ZALETY MATLABA: 1) Obliczenia numeryczne (inżynierskie): zapis wektorowo-macierzowy: A*x = b, x = inv(a)*b, C = A*B olbrzymia, wiarygodna biblioteka funkcji matematycznych: algebra liniowa, całkowanie, różniczkowanie, optymalizacja,... kompromis pomiędzy prostotą, dokładnością, szybkością 2) Zaawansowana wizualizacja 2D/3D danych, prosta w użyciu. 3) Biblioteki specjalistyczne (toolboxes) pisane przez ekspertów światowych z zakresu elektroniki, telekomunikacji, automatyki,... 4) Simulink, Stateflow, SimEvent, SimPower, Link to ModelSim (VHDL, FPGA, ASIC) - okienkowo-zorientowane środowiska graficzne do uruchamiania algorytmów na podstawie ich schematów blokowych, wyposażone w liczne biblioteki (blocksets). 5) Otwarta architektura: m-zbiory dostępne w kodzie źródłowym łatwość dołączania swoich funkcji mnogość interfejsów do różnych typów danych (wav, avi, DICOM,...) 6) C-maker, Real-Time Workshop, procesory DSP (TI Composer Studio)
6 Z języka C do Matlaba (1) Zbiór dyskowy: prog1.m % % Program prog1: budżet rodziny osoby = 3; kasa = ; moje = kasa/osoby, % liczba osób % łączny przychód % moje kieszonkowe disp('moje kieszonkowe = '), disp(moje), % display % Uwagi: 1) Brak jest specjalnych słów początku i końca programu. Program jest zbiorem linii zapisanych w osobnym zbiorze na dysku o rozszerzeniu *.m 2) Brak deklaracji zmiennych. Wszystkie są typu double. 3) % stanowi znak początku komentarza (za nim do końca linii). 4) Znak ; informuje, żeby nie wyświetlać wyniku operacji. 5) Znak... na końcu linii informuje, że następna linia jest kontynuacją bieżącej. 6) Instrukcja disp() służy do wyświetlania tekstu lub wartości zmiennej. Zbiór dyskowy: prog2.m % % Program prog2: budżet rodziny osoby = 3; % liczba osób kasa = input('ile do podziału? '); % komunikat, czytaj z klawiatury moje = kasa/osoby, % oblicz, pokaż wynik gdyż brak ; % Uwagi: 1) W instrukcji input po wyświetleniu na ekranie tekstu ile do podziału? jest wczytywana liczba z klawiatury, której wartość jest podstawiana do zmiennej kasa.
7 Z języka C do Matlaba (2) Zbiór dyskowy: prog3.m % osoby = 3; kasa = input('ile do podziału? '); moje = wzor3( kasa, osoby ), % wywołanie funkcji wzor3() % Zbiór dyskowy: wzor3.m % function kieszen = wzor3( forsa, osoby ) % Moja funkcja, licząca kieszonkowe % Wejście: forsa - budzet rodzinny % Wyjście: kieszen - moje kieszonkowe kieszen = forsa/osoby; % wyjście = funkcja wejścia % Uwagi: 1) Każda funkcja jest osobnym plikiem na dysku. Od programu różni się tym, że rozpoczyna ją słowo function. 2) Przykładowa budowa: function [ x, y, z ] = zróbcoś( a, b, c) % komentarz co funkcja robi, wyświetlany podczas help zróbcoś x = a + b; % wyraź parametry wyjściowe {x, y, z} y = a - b; % poprzez parametry wejściowe {a, b, c} z = c; % czyli {x, y, z } = funkcja( a, b, c)
8 Z języka C do Matlaba (3) Zbiór dyskowy: prog4.m % clear all; % wyzeruj wszystkie zmienne global osoby; % deklaracja zmiennej globalnej, % dostępnej także w funkcjach osoby = 3; % ustaw liczbę osób kasa = input(' ile do podziału? '); % wczytaj wartość budżetu moje = wzor4( kasa ), % oblicz moje kieszonkowe % Zbiór dyskowy: wzor4.m % function kieszen = wzor4( forsa ) global osoby kieszen = forsa/osoby; % Uwagi: 1) Aby wartość zmiennej była dostępna w także w funkcji, zmienna ta musi być zadeklarowana jako global (w programie i w funkcji)
9 Z języka C do Matlaba (4) Zbiór dyskowy: prog5.m % clear all; % wyzeruj wszystkie zmienne global osoby; % deklaracja zmiennej globalnej osoby = 3; % ustaw liczbę osób kasa = input('ile do podziału? '); % wczytaj wartość budżetu [tata, mama, ja] = wzor5( kasa ), % kilka zwracanych wartości % Zbiór dyskowy: wzor5.m % function [osoba1, osoba2, osoba3] = wzor5( forsa ) % Moja funkcja, licząca kieszonkowe % Wejście: forsa - budżet rodzinny % Wyjście: osoba1, osoba2, osoba3 - kieszonkowe trzech osób global osoby srednia = forsa/osoby; osoba1 = 1.25 * srednia; osoba2 = 1.00 * srednia; osoba3 = 0.75 * srednia; % Uwagi: 1) W tym przypadku obliczamy w funkcji kieszonkowe dla wszystkich członków rodziny, które zwracamy do programu głównego.
10 Z języka C do Matlaba (5) Zbiór dyskowy: prog6.m % clear all; % wyzeruj wszystkie zmienne global osoby; % zadeklaruj zmienną globalną osoby imiona = [ 'tata'; 'mama'; 'ja ' ]; osoby = 3; kasa = input('ile do podziału? '); rodzina = wzor6( kasa ), % imiona członków rodziny % liczb osób % wczytaj budżet, wstaw do kasy % funkcja teraz zwraca tablicę disp('tata = '); disp( rodzina(1) ); % kieszonkowe taty disp('mama = '); disp( rodzina(2) ); % kieszonkowe mamy disp('ja = '); disp( rodzina(3) ); % kieszonkowe moje for i = 1 : osoby % pętla for-end: wyświetlanie % if( i == 2) break; end % break to wyjście z pętli for disp( ['osoba nr ' num2str(i) ',czyli ' imiona(i,:) ' = ' num2str(rodzina(i))]); end if( rodzina(2) > rodzina(3) ) % warunek logiczny if-else-end disp('mama ma więcej niż ja!'); else disp('mam co najmniej tyle co mama'); end while( rodzina(1) > rodzina(2) ) % pętla while-end; break ją kończy disp('tata ma więcej od mamy'); break; end plot( 1:osoby, rodzina, 'b*--'); % rysunek (x, y) xlabel( 'nr czlonka rodziny' ); % opis osi x ylabel( 'kieszonkowe [PLN]' ); % opis osi y title( 'BUDŻET RODZINNY' ); % tytuł % pauza %
11 Z języka C do Matlaba (6) Zbiór dyskowy: wzor6.m % function czlonkowie = wzor6( forsa ) % Moja funkcja, licząca kieszonkowe % Wejście: forsa - budżet rodzinny % Wyjście: czlonkowie[] - kieszonkowe członków rodziny global osoby srednia = forsa/osoby; czlonkowie( 1 ) = 1.25 * srednia; czlonkowie( 2 ) = 1.00 * srednia; czlonkowie( 3 ) = 0.75 * srednia; % Zbiór dyskowy: prog7.m % load rodzina.dat % wczytaj ze zbioru rodzina.dat dwie liczby kasa = rodzina(1); % podstaw pierwszą z nich do zmiennej kasa osoby = rodzina(2); % a drugą - do zmiennej osoby moje = kasa/osoby, % oblicz moje kieszonkowe save kieszonkowe.dat moje /ascii % zapisz je do zbioru % kieszonkowe.dat % Zbiór dyskowy: rodzina.dat % % Zbiór dyskowy: kieszonkowe.dat % e+002 %
12 » Cw_0_demo <ENTER> Macierze w Matlabie (1) A = [ 1 2 3; 4 5 6; ] % definicja macierzy A 3 x3 % wydruk, gdyż brak na końcu A = % średnika B = A' % 1) transpozycja i sprzężenie zespolone % elementów macierzy B = % 2) dla macierzy o elementach rzeczywistych % tylko sprzężenie % 3) jeśli. to tylko transpozycja C = A + B % suma dwóch macierzy C = % 10 = C = A * B % mnożenie dwóch macierzy C = % 14 = 1*1 + 2*2 + 3* % 32 = 4*1 + 5*2 + 6* % 23 = 7*1 + 8*2 + 0*3 inv(a) ans = % macierz odwrotna det(a) % wyznacznik macierzy ans = 27 rank(a) % rząd macierzy ans = 3 cond(a) % uwarunkowanie macierzy ans = % (max sv) / (min sv )
13 Macierze w Matlabie (2) eig(a) % wartości własne ans = [v,d] = eig(a) v = % wektory i wartości własne d = svd(a) ans = % wartości osobliwe expm(a) % eksponenta macierzy ans = 1.0e+004 * p = poly(a) % wielomian charakterystyczny p = roots(p) ans = % pierwiastki tego wielomianu % czyli wartości własne macierzy A
14 Wektory w Matlabie x = [ ] % definicja wektora poziomego x = % y = [ 4; 5; 6 ] % definicja wektora pionowego y = 4 % 5 % 6 % x * y % iloczyn skalarny ans = 32 % 1*4 + 2*5 + 3*6 y * x % iloczyn wektorowy ans = % 4 * [ ] % 5 * [ ] % 6 * [ ] x.* y' % iloczyn odpowiadających sobie ans = % elementów: [ 1*4, 2*5, 3*6 ] x + y' % suma odpowiadających sobie ans = % elementów: [ 1+4, 2+5, 3+6 ]
15 Laboratorium w Matlabie (1) % W wyniku pomiaru otrzymano następujące liczby : % ( x = numer pomiaru, y = wartość ) x = [ ]; y = [ ]; % W celu lepszej obserwacji przedstawiamy je na rysunku : plot( x, y, b* ) ; % wykres y = funkcja(x), niebieskie * title( 'DANE POMIAROWE' ); % tytuł xlabel( 'numer probki' ); % podpis pod osią x xlabel( 'wartosc' ); % podpis pod osią y grid; % siatka 1.15 DANE POMIAROWE wartosc numer probki clf % naciśnij jakiś klawisz % wyzeruj rysunek
16 Laboratorium w Matlabie (2) % Interesuje nas wartość średnia tych liczb % oraz ich rozrzut wokół wyliczonej wartości średniej : srednia = mean( y ) % srednia = sum( y ) / length( y ) % srednia = % ponieważ brak średnika % powyżej, % jest wyświetlany wynik rozrzut = std( y ) % rozrzut =... %... sqrt( sum( ( y - srednia ).^2 ) / length( y ) ) rozrzut = % ponieważ brak jest średnika % powyżej, % to jest wyświetlany wynik % Dodatkowo chcielibyśmy wyznaczyć współczynniki a i b linii prostej % y = a * x + b % najlepiej aproksymującej otrzymane dane (prosta regresji liniowej). xm = mean( x ); ym = mean( y ); xr = x - xm; yr = y - ym; % średnia wartość wektora x % średnia wartość wektora y % wektor x - średnia x (od każdego elementu) % wektor y - średnia y (od każdego elementu) a = (xr * yr') / (xr * xr') % obliczenie wsp a prostej, to samo % inaczej: a = sum( xr.* yr ) / sum( xr.* xr ) a = b = ym - a * xm b = % N ( ) ( ) n= 1, x n= 1 N n= 1 x( n) x * y( n) y x( n) a = = ( xn ( ) x) *( xn ( ) x) % obliczenie wsp b prostej N N
17 Laboratorium w Matlabie (3) % Teraz porównamy punkty eksperymentalne z linią regresji liniowej plot( x, y, 'bx', x, a*x+b, 'k-' ) title( 'DANE POMIAROWE' ) xlabel( 'numer próbki' ) ylabel( 'wartość' ) grid % niebieskie krzyżyki, linia czarna % tytuł % podpis pod osią x % podpis pod osią y % siatka 1.15 DANE POMIAROWE I PROSTA REGRESJI LINIOWEJ wartosc numer probki clf echo off % naciśnij cokolwiek % wyzeruj rysunek % nie wyświetlaj komend na monitorze
18 MATLAB - skrót 1) - przewijanie ostatnich linii w linii komend >>... 2) % - znak komentarza, za nim do końca linii 3)... - znak kontynuacji w następnej linii 4) brak ; na końcu instrukcji oznacza polecenia wyświetlenia wyniku operacji 5) help instrukcja - funkcja pomocy help: jak się używa instrukcji? 6)! - znak wywołania programu zewnętrznego wewnątrz Matlaba!edit prog.m - uruchomienie zewnętrznego edytora i wczytanie prog.m 7) zerowanie: clear all - zawartości wszystkich zmiennych (np. na początku prog) clc - okna komend clf - okien graficznych z rysunkami 8) format - dokładność wydruku wyniku obliczeń format short short e *E+000 long long e * E+000 9) Stałe predefiniowane - pi = , eps = 2.22*10^(-16) (dokładność) i, j = sqrt(-1) 10) Inicjalizacja: liczby rzeczywiste: n = 1; m = 10; a = ; b = 1.2*10^(-6); liczby zespolone: z = 3 + 4*i; z = 3 + 4*j; (dla macierzy: Z = A + B*i lub Z = A + B*i) wektory poziome: x = [ ]; y = 0. : 0.1 : 0.4; otrzymujemy: od krok do 0., 0.1, 0.2, 0.3, 0.4 z = rand(1, 5); wektor 1x5 wartości losowych z = sin( 0 : pi/2 : 2*pi ); 0, 1, 0, -1, 0 z = sin( x ); z = x(1 : 2); wektor 1x3 wartości sin dla x % podwektor, pobranie wybranych elementów od-do otrzymujemy: [ ] wektory pionowe: y = [ 1.2; 3.4; 5.6 ]; otrzymujemy: y = [ znak nowego wiersza 5.6 ] macierze: A = [ 1 2 3; 4 5 6; ]; otrzymujemy: A = [ ]
19 B = rand(5,5); % macierz liczb losowych o wymiarach 5 x 5 C = eye(10); % macierz diagonalna o wymiarach 10 x 10 D = A(1 : 2, 2 : 3); % podmacierz A, otrzymujemy [ 2 3; 5 6] B = A ; % transpozycja, sprzężenie elementów 11) whos - lista zmiennych w pamięci, ich wymiary 12) Operatory arytmetyczne są domyślnie wektorowo-macierzowe. Jeśli chcemy działać na elementach wektorów/macierzy, to operator poprzedzamy kropką, np..* +, -, *, \ (lewe dzielenie), / (prawe), ^(potęga), liczby: c = a op b, gdzie op = +, -, *, /, ^ wektory: z = x op y, gdzie op = +, -, *, /,.*,./ macierze: C = A op B, gdzie op = +, -, *, /, \,.*,./ X = A\B takie, że A*X=B X = A/B takie, że X*B=A; np. x = [ ]; y = [ ]; x + y = [ ] y - x = [ ] x * y = 1*4 + 2*5 + 3*6 = 32 x * y = [ ] x.* y = [ ] x.\ y = [ ] x.^ y = [ ] x./ y = [ ] x.^2 = [ ] x / y = ) Operatory logiczne: <, <=, >, >=, ==, ~=, & (AND), (OR, ~ (NOT) np. if( (a > b) & ( c ~= d) ) i = 0; x=y; while( i <= 10 ) end i = i+1; end 14) Zapisywanie zmiennych na dysk i ich odczytywanie (save, load): save temp X Y Z; % X, Y, Z temp.mat (zbiór binarny Matlaba) load temp % inicjalizacja X, Y, Z xy = [x y ]; save temp.dat xy /ascii load temp.dat x = temp(:,1); y = temp(:,2); % złóż wektory w macierz dwu-kolumnową % zapisz zmienną xy do zbioru ASCII temp.dat % wczytaj dane ze zbioru temp.dat % x = pierwsza kolumna macierzy temp % y = druga kolumna macierzy temp
20 15) Przykłady funkcji matematycznych (użyj help funkcja, aby szczegóły): sqrt(), log2(), log10(), log()=ln(), exp(), sin(), cos(), tan(), atan(), atan2() - jeśli na macierzach, to na ich elementach mean(), std(), min(), max(), median(), sort(), prod(), cumsum(), cumprod() - jeśli na macierzach, to w kolumnach expm(a), logm(a), sqrtm(a) - na całych macierzach poly(a), det(a), trace(a), kron(a), eig(a), svd(a) diff(), hist(), corrcoef(), cov(), cplxpair() abs(), angle(), conv(), deconv(), xcorr(), fft(), ifft(), fftshift(), spectrum(), psd(), filter() 16) Przykłady funkcji graficznych (użyj help funkcja, aby szczegóły): 2D: plot(x,y), loglog(x,y), semilog(x,y), polar(x,y), stem(x,y), bar(x,y), stairs(x,y) kolory: r, g, b, k, w, i (red, green, blue, black, white, invisible) linie: - / -- / -. / : (ciągła, przerywana, kreska-kropka, kropkowana) symbole: +, *, x, o np. plot(x1, y1, ro, x2, y2, b--, x3, y3, k: 3D: mesh(a), meshc(a), meshz(a), contour(a), surf(a), surfl(a), waterfall(a), image(a), imagesc(a) ogólne: title(), xlabel(), ylabel(), text(), axis(),subplot(), hold, grid; 17) Instrukcje sterujące (pozostałe to:, break, error, return): for-end for m = 1 : M for n = 1 : N A(m, n) = 1 / (m+n-1); end end while-end if-elseif-else-end n=1; while( prod(n) < 1*E+100) n=n+1; end if( x==1 ) a=b; elseif( y<5 ) c=d; else e=f; end 18) Funkcje program.m a1 = 10; a2 = 20; a3 = 30; [ b1, b2, b3 ] = funkcja( a1, a2, a3); funkcja.m function [x, y, z] = funkcja( a, b, c) % co robi ta funkcja? x = a + b; y = b - c; z = b * c;
21 DODATKOWE PRZYKŁADY W JĘZYKU MATLAB
22 % PRZYKLAD 1 % Inicjalizacja danych, zapis i odczyt z dysku, rysunek % Zapisywanie danych na dysk i ich odczytywanie z dysku x = [ ]; % pierwszy wektor y = [ ]; % drugi wektor x = x'; y = y'; % odwrócenie obu wektorów do pionu plot(x, y, 'b' ) title('y=f(x)') xy = [ x y ]; save wy.dat xy /ascii load wy.dat x1 = wy(:,1); y1 = wy(:,2); plot( x, y, 'b', x1, y1, 'r') title('y=f(x) oraz y1=f(x1)') % rysunek y=f(x), niebieska linia % tytuł % czekaj % złożenie dwóch kolumn w macierz xy % czekaj % zapis xy na dysk do zbioru wy.dat % przeczytaj zbiór z dysku % podstaw pierwsza kolumnę do x1 % podstaw druga kolumnę do y1 % rysunek y=f(x) i y1=f(x1) - porównanie % tytuł % czekaj
23 % PRZYKLAD 2 - przyklady grafiki dwuwymiarowej % pojedynczy rysunek - pojedyncza krzywa ================= subplot(111); % jeden wiersz, jedna kolumna, jeden rysunek x = 1 : 0.1 : 25 ; % definicja zmiennej x: od 1 co 0.1 do 25 y = *sin(x); % oblicz y dla każdego x plot( x, y, 'k' ) % narysuj wykres y=f(x), linia czarna title('sinusoida') % tytuł xlabel('argument x') % opis osi x ylabel('wartość y') % opis osi y grid % siatka % czekaj na naciśnięcie klawisza % pojedynczy rysunek z kilkoma krzywymi ================== plot( x, y, 'r-', x, 2*y, 'b-' ) % pierwsza RED, druga BLUE; obie ciągłe title('dwie SINUSOIDY') % tytuł % 4 rysunki z pojedynczą krzywą % leżące na szachownicy: dwa wiersze, dwie kolumny (22) % numer rysunków: 1, 2, 3, 4 (kolejno, wierszami) subplot(221), plot(x,y,'b--') title('skala linia, kreska-kreska') subplot(222), plot(x,y,'r-.') title('skala linia, kreska-kropka') subplot(223), loglog(x,y) title('skala log x/y') subplot(224), semilogx(x,y) title('skala log x ') clf % RYS - LEWY GÓRNY % linia niebieska kreska-kreska % RYS - PRAWY GÓRNY % linia czerwona kreska-kropka % RYS - LEWY DOLNY % skala logarytmiczna x i y % RYS - PRAWY DOLNY % skala logarytmiczna osi x % czekaj % wyzeruj ekran graficzny
24 % PRZYKLAD 3 - prosta grafika trójwymiarowa subplot(111); % jeden wiersz, jedna kolumna, jeden rysunek % definicja X i Y [ X, Y ] = meshdom( -2 : 0.05 : 2, -2 : 0.05 : 2 ); % def Z = f( X, Y ) Z = sin( 5*(X.^2 +Y.^2) ).* exp( -0.5*X.^2-0.5*Y.^2 ); mesh( Z ) % jeden rysunek 3D title('mapa 3D') % % czekaj contour( Z ) % jeden rysunek POZIOMICE title('poziomice 3D') % % czekaj subplot(211); mesh( Z ); title('rys A'); % kilka RYS na raz subplot(212); contour( Z ); title('rys B'); % subplot(111), meshc( Z ), title('funkcja MESHC'), meshz( Z ), title('funkcja MESHZ'), surf( Z ), title('funkcja SURF'), surfl( Z ), title('funkcja SURFL'), waterfall( Z ), title('funkcja WATERFALL'), imagesc( Z ), colormap('gray'), colorbar, title('funkcja IMAGE (GRAY)'), imagesc( Z ), colormap('autumn'), colorbar, title('funkcja IMAGE (AUTUMN)'),
25 % Przykład 4 - rozwiązanie równania algebraicznego: A * x = b A = [ ; ; ] % zdefiniuj macierz A x = [ ] % zdefiniuj wektor x b = A * x' clc x = inv(a) * b x = A \ b % OBLICZ b (x: wiersz --> kolumna) % czekaj % wyczyść ekran % ODTWÓRZ x - na podstawie A i b % za pomocą macierzy odwrotnej % oraz poprzez dzielenie macierzowe % czekaj
26 % PRZYKLAD 5 - rozkład sygnału na sumę sinusoid clear all, clf; % wyzeruj pamięć i ekran graficzny % Podaj parametry sygnału ============================== N = 256; % długość sygnału fs1 = 250; % częstotliwość składowej 1 w Hz fs2 = 500; % częstotliwość składowej 2 w Hz fp = 8000; % częstotliwość próbkowania w Hz dt = 1/fp; % odległość między próbkami w sekundach % Wygeneruj i narysuj analizowane sygnały ================= t = 0 : dt : (N-1)*dt; % definicja zmiennej czasu t y1 = 0.4*sin(2*pi*fs1*t + pi/2); % oblicz składową 1, y1 dla każdego t y2 = 0.2*sin(2*pi*fs2*t + pi/4); % oblicz składową 2, y2 dla każdego t y = y1 + y2; % suma składowych plot( t, y,'b') title('suma DWOCH SINUSOID') xlabel('czas') ylabel('sygnał') grid % narysuj wykres y=f(t) % tytuł % opis osi x % opis osi y % siatka % czekaj na klawisz % Rozłóż sygnał na składowe sinusoidalne, transformata Fouriera Y = fft( y, N ); % widmo sygnału, transformata Fouriera % SKALOWANIE WYNIKU Y = 2*abs( Y )/N; % wartość bezwzględna liczby zespolonej Y = Y( 1 : N/2 +1 ); % ważna tylko polowa, reszta symetryczna df = 1/(N*dt); % co ile herców prążek widma f = 0 : df : N/2*df; % częstotliwości prążków widma % POKAŻ WYNIK plot( f, Y ); % rysunek widma title('rozkład sygnału na sumę sinusoid') % podpis xlabel('częstotliwość w [Hz]') % opis osi x ylabel('amplituda') % opis osi y % czekaj % Zsyntezuj sygnał ze składowych sinusoidalnych ys = real( ifft( Y ) ); ys=ys ; % odwrotna transformacja Fouriera plot( t, y, 'r', t, ys, 'b' ); % porównaj oryginał i kopię
27 % PRZYKLAD 6 - znajdowanie miejsca zerowego funkcji %!!! danej wzorem!!! % Funkcja FZERO służy do znajdowania miejsca zerowego funkcji % % Załóżmy, że interesuje nas funkcja fun_zero(x), zdefiniowana % w zbiorze fun_zero.m na dysku x = 0 :.02 : 2; y = fun_zero(x); % zmienność argumentu % zmienność funkcji plot( x, y, 'b' ) % rysunek title( 'Funkcja y=f(x) - zauważ zero w pobliżu x = 1.2' ), grid % tytuł % czekaj % Aby znaleźć zero funkcji w otoczeniu x = 1.2, wołamy FZERO xokolica = 1.2; xtoler = eps; % x, w pobliżu którego szukamy zera % wymagana tolerancja rozwiązania z = fzero( 'fun_zero', xokolica, xtoler); % wyznaczmy argument zera x = 0.8 :.01 : 1.6; y = fun_zero(x); plot( x, y, z, fun_zero(z), 'ro') title( 'Zero funkcji fun_zero(x)' ) grid, z fun_zero(z) % x w otoczeniu zera % y w otoczeniu zera % rysujemy funkcje i obliczone zero % tytuł % siatka, czekanie % wypisz argument zera % wypisz wartość zera % ###################################################### function y = fun_zero( x ) % funkcja, w której miejsc zerowych poszukujemy y = 1./ ((x-.3).^2 +.01) + 1./ ((x-.9).^2 +.04) - 6;
28 % PRZYKLAD 7 % wyznaczanie parametrów znanej funkcji % jak najlepsze dopasowanie do danych doświadczalnych global dane % zmienna globalna - widziana z innych *.m zbiorów dane =... % pary punktów (x,y) otrzymanych doświadczalnie [ % np. podczas laboratorium z fizyki % pierwsza kolumna to argument x % zaś druga, to wartość y % jest to zaszumiona funkcja postaci y = a*x^2 + b ]; x = dane(:,1); y = dane(:,2); plot(x,y,'ro') % pobranie wektora argumentów x % pobranie wektora wartości funkcji y % wykres y w funkcji x, czerwone "o" % Załóżmy, że zjawisko opisuje zależność: y = f(x;a,b) = a*x^2 + b % DWIE PARY PUNKTÓW (x1,y1) (x2,y2) wystarczą, aby obliczyć a,b % Ale ponieważ dane eksperymentalne są ZASZUMIONE, % przeprowadza się więcej pomiarów. % Następnie stara się znaleźć takie wartości a i b, aby błąd: % błąd = SQRT ( S U M A [ y - f(x; a,b) ]^2 / M ) % m=1...m % był jak najmniejszy, tzn. aby funkcja była "jak najlepiej" dopasowana params = [1 0]'; % startowe wartości a i b toler = 0.05; % wymagany błąd blad = fminsearch('fun_fi', params, toler); % procedura minimalizuj a = blad( 1 ) % wynikowe a b = blad( 2 ) % wynikowe b fy = a * x.^2 + b; % oblicz wartości funkcji f(x) % dla obliczonych a i b blad = std( fy-y ) % oblicz końcowy błąd
29 function blad = fun_fi( params ) global dane % Funkcja wykorzystywana przez przykład cw_7.m % Ma ona nastepujaca postac : y = a*x^2 + b % Wejście : parametry a i b % Wyjście : błąd dopasowania funkcji do danych eksperymentalnych a = params(1); b = params(2); x = dane(:,1); y = dane(:,2); fy = a * x.^2 + b; blad = std( fy-y ); % szukane parametry % dane z programu głównego % oblicz wartości funkcji f(x) % dla aktualnych parametrów a i b % błąd dopasowania % Pokaż postęp w dopasowaniu parametrów funkcji do danych plot( x, fy, 'b', x, y, 'ro'), grid xt = 0; yt = 3/4*max(y); text( xt, 1.2*yt, ['a = ' num2str( a ) ] ) text( xt, 1.1*yt, ['b = ' num2str( b ) ] ) text( xt, 1.0*yt, ['blad = ' num2str( blad ) ] )
30 % PRZYKLAD 8 - dopasowanie funkcji do danych % jak w przykładzie 7 tylko trudniej global dane % zmienna globalna - widziana z innych *.m zbiorów dane =... % pary punktów (x,y), otrzymane z dośw. [ % np. podczas laboratorium z fizyki % pierwsza kolumna argument x, np. czas % druga kolumna wartość y, np. napięcie ]; x = dane(:,1); y = dane(:,2); plot( x, y, 'ro' ) % pobranie wektora argumentów x % pobranie wektora wartości funkcji y % wykres y w funkcji x, czerwone "o" % pauza % Z teorii wynika, ze dane zjawisko opisuje teoretyczna zależność: % y = f( x ) = c(1) * exp(-lambda(1)*x) + c(2) * exp(-lambda(2)*x) % Powyższa funkcja ma dwa parametry liniowe: c(1) i c(2) % oraz dwa parametry nieliniowe: lambda(1) i lambda(2) % % Chcemy wyznaczyć takie wartości tych parametrów, aby funkcja % y=f(x) była najlepiej dopasowana do danych pomiarowych (x,y) lambda = [1 0]'; % startowe wartości lambda(1) i (2) toler = 0.1; % wymagany tolerancja błędu blad = fminsearch('fun_fit', lambda, toler); % procedura minimalizuj lambda = blad % wynikowe lambda(1) i (2) A = zeros( length(x), length(lambda) ); % obliczenia jak w fun_fit.m for j = 1 : size(lambda) % dla każdego x i lambda A(:,j) = exp( -lambda(j) * x ); % end % c = A \ y % fy = A * c; % blad = std(fy-y) %
31 function blad = fun_fit(lambda) global dane % Funkcja wykorzystywana przez cw_8.m % Ma ona następującą postać : % % y = c(1)*exp(-lambda(1)*x) c(n)*exp(-lambda(n)*x) % % oraz posiada n parametrów liniowych c(i) i nieliniowych lambda(i) % % Wejście : zestaw parametrów lambda % Wyjście : błąd aproksymacji danych eksperymentalnych przez % aktualny zestaw parametrów lambda % % Parametry c(i) są wyznaczane na podstawie lambda i danych dośw. x = dane(:,1); y = dane(:,2); % podstaw dane % w programie głównym A = zeros( length(x), length(lambda) ); % utwórz macierz A, wyzeruj ją % wierszy tyle ile danych, % kolumn tyle ile lambda for j = 1:size(lambda) % dla każdego x i lambda A(:,j) = exp( -lambda(j) *x ); % oblicz wartości macierzy A, end % takiej że y = A * c c = A \ y; fy = A * c; blad = std(fy-y); % oblicz wektor optymalnych parametrów c % minimalizujących błąd średniokwadratowy % oblicz wartości funkcji fy dla tego c % oblicz błąd dopasowania % jak wartości funkcji różnią się od danych dośw. % Pokaż postęp w dopasowaniu parametrów funkcji do danych plot( x, fy, 'w', x, y, 'wo' ), grid xt = max(x)/2; yt = max(y)/2; text(xt,1.0*yt,['blad = ' num2str( blad )])
32 % PRZYKLAD 10 - rozw. numeryczne równania różniczkowego % Funkcje ODE23, ODE45 służą do numerycznego rozwiązywania zwyczajnych % równań różniczkowych. Metoda rozwiązania Rungego-Kutty-Fehlberga, % w której krok całkowania numerycznego jest zmieniany automatycznie % ODE23 wykorzystuje zależności 2 i 3 rzędu - średnia dokładność, % ODE45 wykorzystuje zależności 4 i 5 rzędu - duża dokładność. % Załóżmy, że interesuje nas rozwiązanie równania różniczkowego % van der Pola drugiego rzędu postaci : % y'' + (y^2-1)*y' + y = 0 % gdzie ' oznacza operator różniczkowania. % Po przedstawieniu w postaci: % y'' = -(y^2-1)*y' - y % równanie to można zastąpić układem dwóch równań rzędu pierwszego % y1' = -(y2^2-1)*y1 - y2 % y2' = y1 % gdzie y1 i y2 nazywane są tzw. zmiennymi stanu % % Aby zasymulować układ dynamiczny opisany równaniem różniczkowym, % tworzy się *.m funkcję, która: % otrzymuje wartości czasu i zmiennych stanu, % zaś zwraca pochodne wartości zmiennych stanu. % % Załóżmy, że nasza funkcja nazywa się fun_diff.m % % Aby zasymulować równanie różniczkowe Van Der Pola w przedziale % czasu 0 < t < 20, wywołujemy funkcję MATLABA ODE23: t0 = 0; % czas początkowy obserwacji tfinal = 20; % czas końcowy obserwacji y0 = [ ]'; % wartości początkowe zmiennych stanu tol = 1.e-3; % dokładność rozwiązania trace = 1; % śledzenie [t,y] = ode23( 'fun_diff', t0, tfinal, y0, tol, trace ); % [t,y] = ode45( 'fun_diff', t0, tfinal, y0, tol, trace ); plot(t,y), title('historia czasowa równania van der Pola'), grid, % funkcja pomocnicza ##################################### function yprime = fun_diff(t,y); % zwraca pochodne zmiennych stanu y1 i y2 równania Van der Pola yprime = [ ( (y(2).^2-1).*y(1) - y(2) ); y(1) ];
MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY
MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY Poszukiwanie znaczeń funkcji i skryptów funkcja help >> help % wypisuje linki do wszystkich plików pomocy >> help plot % wypisuje pomoc dotyczą funkcji plot Znaczenie
Bardziej szczegółowoWprowadzenie do środowiska
Wprowadzenie do środowiska www.mathworks.com Piotr Wróbel piotr.wrobel@igf.fuw.edu.pl Pok. B 4.22 Metody numeryczne w optyce 2017 Czym jest Matlab Matlab (matrix laboratory) środowisko obliczeniowe oraz
Bardziej szczegółowoWYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA PRZEDMIOT : : LABORATORIUM PODSTAW AUTOMATYKI 1. WSTĘP DO
Bardziej szczegółowoPodstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab
Podstawy Automatyki ćwiczenia Cz.1 Środowisko Matlab Podstawową jednostką obliczeniową w programie Matlab jest macierz. Wektory i skalary mogą być tutaj rozpatrywane jako specjalne typy macierzy. Elementy
Bardziej szczegółowoĆwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych
Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych Wszystko proszę zapisywać komendą diary do pliku o nazwie: imie_ nazwisko 1. Definiowanie macierzy i odwoływanie się do elementów:
Bardziej szczegółowoPodstawy MATLABA, cd.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA, cd. 1. Wielomiany 1.1. Definiowanie
Bardziej szczegółowoLABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab
LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI Wprowadzenie do środowiska Matlab 1. Podstawowe informacje Przedstawione poniżej informacje maja wprowadzić i zapoznać ze środowiskiem
Bardziej szczegółowoSpis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII
Spis treści Od autora..................................................... Obliczenia inżynierskie i naukowe.................................. X XII Ostrzeżenia...................................................XVII
Bardziej szczegółowoModelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II Podstawy MATLABA, cz2. 1. Wielomiany
Bardziej szczegółowodo MATLABa programowanie WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa programowanie WYKŁAD Piotr Ciskowski instrukcje sterujące instrukcja warunkowa: if instrukcja wyboru: switch instrukcje iteracyjne: for, while instrukcje przerwania: continue, break,
Bardziej szczegółowoMetody i analiza danych
2015/2016 Metody i analiza danych Macierze Laboratorium komputerowe 2 Anna Kiełbus Zakres tematyczny 1. Funkcje wspomagające konstruowanie macierzy 2. Dostęp do elementów macierzy. 3. Działania na macierzach
Bardziej szczegółowoMATLAB - laboratorium nr 1 wektory i macierze
MATLAB - laboratorium nr 1 wektory i macierze 1. a. Małe i wielkie litery nie są równoważne (MATLAB rozróżnia wielkość liter). b. Wpisanie nazwy zmiennej spowoduje wyświetlenie jej aktualnej wartości na
Bardziej szczegółowoMetody Numeryczne. Laboratorium 1. Wstęp do programu Matlab
Metody Numeryczne Laboratorium 1 Wstęp do programu Matlab 1. Wiadomości wstępne liczby, format Program Matlab używa konwencjonalną notację dziesiętną, z kropka dziesiętną. W przypadku notacji naukowej
Bardziej szczegółowoLaboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie
Laboratorium Algorytmy Obliczeniowe Lab. 9 Prezentacja wyników w Matlabie 1. Wyświetlanie wyników na ekranie: W Matlabie możliwe są następujące sposoby wyświetlania wartości zmiennych: a. wpisując w programie
Bardziej szczegółowoRozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi
. Cele ćwiczenia Laboratorium nr Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi zapoznanie się z metodami symbolicznego i numerycznego rozwiązywania równań różniczkowych w Matlabie,
Bardziej szczegółowoGNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.
1 GNU Octave GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej. Octave zapewnia: sporą bibliotęke użytecznych funkcji i algorytmów; możliwośc tworzenia przeróżnych wykresów; możliwość
Bardziej szczegółowoMatlab Składnia + podstawy programowania
Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe
Bardziej szczegółowoElementy metod numerycznych - zajęcia 9
Poniższy dokument zawiera informacje na temat zadań rozwiązanych w trakcie laboratoriów. Elementy metod numerycznych - zajęcia 9 Tematyka - Scilab 1. Labolatoria Zajęcia za 34 punktów. Proszę wysłać krótkie
Bardziej szczegółowoMatlab MATrix LABoratory Mathworks Inc.
Małgorzata Jakubowska Matlab MATrix LABoratory Mathworks Inc. MATLAB pakiet oprogramowania matematycznego firmy MathWorks Inc. (www.mathworks.com) rozwijany od roku 1984 język programowania i środowisko
Bardziej szczegółowo1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,
PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium Wykonał: Sala 125 Łukasz Konopacki 155796 Grupa: poniedziałek/p, 16.10 18.10 Prowadzący: Dr.inż.Ewa Szlachcic Termin oddania sprawozdania: Ocena: Matlab - firmy
Bardziej szczegółowoPODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI Katedra Inżynierii Systemów Sterowania PODSTAWY AUTOMATYKI MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.
Bardziej szczegółowoAkademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka Podstawy MATLABA MATLAB jest zintegrowanym środowiskiem
Bardziej szczegółowoPrzykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:
Informatyka I Przypomnienie wiadomości z poprzednich zajęć: Kolokwium!!! II Nowe wiadomości: 1 Funkcje trójwymiarowe Wykresy trójwymiarowe tworzone są na podstawie funkcji dwóch zmiennych Wejściem takich
Bardziej szczegółowoMETODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH
METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH ĆWICZENIE NR 9 WYRAŻENIA LOGICZNE, INSTRUKCJE WARUNKOWE I INSTRUKCJE ITERACYJNE W PROGRAMIE KOMPUTEROWYM MATLAB Dr inż. Sergiusz Sienkowski ĆWICZENIE NR
Bardziej szczegółowoElementy projektowania inzynierskiego Przypomnienie systemu Mathcad
Elementy projektowania inzynierskiego Definicja zmiennych skalarnych a : [S] - SPACE a [T] - TAB - CTRL b - SHIFT h h. : / Wyświetlenie wartości zmiennych a a = b h. h. = Przykładowe wyrażenia
Bardziej szczegółowoPRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:
PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1: clear % usunięcie zmiennych z pamięci roboczej MATLABa % wyczyszczenie okna kom % nadanie wartości zmiennym x1 i x2
Bardziej szczegółowoObliczenia iteracyjne
Lekcja Strona z Obliczenia iteracyjne Zmienne iteracyjne (wyliczeniowe) Obliczenia iteracyjne wymagają zdefiniowania specjalnej zmiennej nazywanej iteracyjną lub wyliczeniową. Zmienną iteracyjną od zwykłej
Bardziej szczegółowoMetody i analiza danych
2015/2016 Metody i analiza danych Funkcje, pętle i grafika Laboratorium komputerowe 3 Anna Kiełbus Zakres tematyczny 1. Funkcje i skrypty Pętle i instrukcje sterujące 2. Grafika dwuwymiarowa 3. Grafika
Bardziej szczegółowoANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin
ANALIZA DANYCH I PROCESÓW Mgr inż. Paweł Wojciech Herbin SZCZECIN 29 LUTEGO 2016 Spis treści 1. Wprowadzenie... 4 2. MATLAB wprowadzenie do interfejsu... 5 3. Praca w trybie bezpośrednim... 6 3.1. Wprowadzanie
Bardziej szczegółowoMetody numeryczne Laboratorium 2
Metody numeryczne Laboratorium 2 1. Tworzenie i uruchamianie skryptów Środowisko MATLAB/GNU Octave daje nam możliwość tworzenia skryptów czyli zapisywania grup poleceń czy funkcji w osobnym pliku i uruchamiania
Bardziej szczegółowoELEMENTY AUTOMATYKI PRACA W PROGRAMIE SIMULINK 2013
SIMULINK część pakietu numerycznego MATLAB (firmy MathWorks) służąca do przeprowadzania symulacji komputerowych. Atutem programu jest interfejs graficzny (budowanie układów na bazie logicznie połączonych
Bardziej szczegółowoMATLAB tworzenie własnych funkcji
MATLAB tworzenie własnych funkcji Definiowanie funkcji anonimowych Własne definicje funkcji możemy tworzyć bezpośrednio w Command Window, są to tzw. funkcje anonimowe; dla funkcji jednej zmiennej składnia
Bardziej szczegółowodo MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski
Wprowadzenie do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski M A T L A B : Computation Visualization Programming easy to use environment MATLAB = matrix laboratory podstawowa jednostka
Bardziej szczegółowoWprowadzenie do Mathcada 1
Wprowadzenie do Mathcada Ćwiczenie. - Badanie zmienności funkcji kwadratowej Ćwiczenie. pokazuje krok po kroku tworzenie prostego dokumentu w Mathcadzie. Dokument ten składa się z następujących elementów:.
Bardziej szczegółowoPodstawy programowania w języku Visual Basic dla Aplikacji (VBA)
Podstawy programowania w języku Visual Basic dla Aplikacji (VBA) Instrukcje Język Basic został stworzony w 1964 roku przez J.G. Kemeny ego i T.F. Kurtza z Uniwersytetu w Darthmouth (USA). Nazwa Basic jest
Bardziej szczegółowoWprowadzenie do Scilab: macierze
Wprowadzenie do Scilab: macierze Narzędzia Informatyki Magdalena Deckert Izabela Szczęch Barbara Wołyńska Bartłomiej Prędki Politechnika Poznańska Instytut Informatyki Agenda Definiowanie macierzy Funkcje
Bardziej szczegółowoMATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!
Modele układów dynamicznych - laboratorium MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli! 1 2 MATLAB MATLAB (ang. matrix laboratory) to pakiet przeznaczony do wykonywania
Bardziej szczegółowozajęcia 2 Definiowanie wektorów:
zajęcia 2 Plan zajęć: definiowanie wektorów instrukcja warunkowa if wykresy Definiowanie wektorów: Co do definicji wektora: Koń jaki jest, każdy widzi Definiowanie wektora w Octave v1=[3,2,4] lub: v1=[3
Bardziej szczegółowoPolitechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania
Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania Teoria sterowania MATLAB funkcje zewnętrzne (m-pliki, funkcje) Materiały pomocnicze do ćwiczeń laboratoryjnych
Bardziej szczegółowoDiary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku
Diary przydatne polecenie diary nazwa_pliku Polecenie to powoduje, że od tego momentu sesja MATLAB-a, tj. polecenia i teksty wysyłane na ekran (nie dotyczy grafiki) będą zapisywane w pliku o podanej nazwie.
Bardziej szczegółowoPODSTAWY INFORMATYKI 1 MATLAB CZ. 3
PODSTAWY INFORMATYKI 1 MATLAB CZ. 3 TEMAT: Program Matlab: Instrukcje sterujące, grafika. Wyrażenia logiczne Wyrażenia logiczne służą do porównania wartości zmiennych o tych samych rozmiarach. W wyrażeniach
Bardziej szczegółowoMathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje
Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje Opracował: Zbigniew Rudnicki Powtórka z poprzedniego wykładu 2 1 Dokument, regiony, klawisze: Dokument Mathcada realizuje
Bardziej szczegółowo1 Programowanie w matlabie - skrypty i funkcje
1 Programowanie w matlabie - skrypty i funkcje 1.1 Skrypty Skrypt jest plikiem tekstowym z rozszerzeniem *.m zawierającym listę poleceń do wykonania. Aby utworzyć skrypt w matlabie wybierz File New Script,
Bardziej szczegółowoĆwiczenie 3: Wprowadzenie do programu Matlab
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Laboratorium modelowania i symulacji Ćwiczenie 3: Wprowadzenie do programu Matlab 1. Wyznaczyć wartość sumy 1 1 2 + 1 3 1 4 + 1
Bardziej szczegółowoPodstawowe operacje graficzne.
Podstawowe operacje graficzne. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z możliwościami graficznymi środowiska GNU octave, w tym celu: narzędziami graficznymi, sposobami konstruowania wykresów
Bardziej szczegółowoMatlab Składnia + podstawy programowania
Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe
Bardziej szczegółowoWykorzystanie programów komputerowych do obliczeń matematycznych
Temat wykładu: Wykorzystanie programów komputerowych do obliczeń matematycznych Kody kolorów: żółty nowe pojęcie pomarańczowy uwaga kursywa komentarz * materiał nadobowiązkowy Przykłady: Programy wykorzystywane
Bardziej szczegółowoAproksymacja funkcji a regresja symboliczna
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą
Bardziej szczegółowoSkrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać
MatLab część III 1 Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać komentarze poprzedzone znakiem % Skrypty
Bardziej szczegółowoScilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony
Scilab - podstawy Scilab jest środowiskiem numerycznym, programistycznym i numerycznym dostępnym za darmo z INRIA (Institut Nationale de Recherche en Informatique et Automatique). Jest programem podobnym
Bardziej szczegółowoSKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego
1 SKRYPTY Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego z = 1 y + 1+ ( x + 2) 3 x 2 + x sin y y + 1 2 dla danych wartości x = 12.5 i y = 9.87. Zadanie to można rozwiązać: wpisując dane i wzór wyrażenia
Bardziej szczegółowoWIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19
WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19 Co mam zrobić, jeżeli obliczenia potrzebne są na wczoraj, trzeba jeszcze zrobić wykres, a do tego mam użyć Bardzo Skomplikowanego Czegoś wiedząc
Bardziej szczegółowoRozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie
Rozwiązywanie równań różniczkowych cząstkowych metodą elementów skończonych - wprowadzenie Wprowadzenie Metoda Elementów Skończonych (MES) należy do numerycznych metod otrzymywania przybliżonych rozwiązań
Bardziej szczegółowoĆwiczenie 0 : Wprowadzenie do cyfrowego przetwarzania sygnałów. wyświetla listę tematów pomocy. wyświetla okno pomocy (Help / Product Help)
Wybr ane za gadnienia elektr oniki współczesnej Ćwiczenie 0 : Wprowadzenie do cyfrowego przetwarzania sygnałów. 1 Cel ćwiczenia Pierwsze zajęcia laboratoryjne z zakresu przetwarzania sygnałów mają na celu
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 8. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 8 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Biblioteka GSL Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Bardziej szczegółowoPodstawy Informatyki 1. Laboratorium 1
Podstawy Informatyki 1 Laboratorium 1 1. Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z obsługą pakietu MATLAB. W ćwiczeniu wprowadzono opis podstawowych komend środowiska i funkcji matematycznych
Bardziej szczegółowoWprowadzenie do pakietów MATLAB/GNU Octave
Wprowadzenie do pakietów MATLAB/GNU Octave Ireneusz Czajka wersja poprawiona z 2017 Chociaż dla ścisłości należałoby używać zapisu MATLAB/GNU Octave, w niniejszym opracowaniu używana jest nazwa Matlab,
Bardziej szczegółowoCYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera)
I. Wprowadzenie do ćwiczenia CYFROWE PRZTWARZANIE SYGNAŁÓW (Zastosowanie transformacji Fouriera) Ogólnie termin przetwarzanie sygnałów odnosi się do nauki analizowania zmiennych w czasie procesów fizycznych.
Bardziej szczegółowoWEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.
Strona z WEKTORY I MACIERZE Wektory i macierze ogólnie nazywamy tablicami. Wprowadzamy je:. W sposób jawny: - z menu Insert Matrix, - skrót klawiszowy: {ctrl}+m, - odpowiedni przycisk z menu paska narzędziowego
Bardziej szczegółowodr inż. Damian Słota Gliwice r. Instytut Matematyki Politechnika Śląska
Program wykładów z metod numerycznych na semestrze V stacjonarnych studiów stopnia I Podstawowe pojęcia metod numerycznych: zadanie numeryczne, algorytm. Analiza błędów: błąd bezwzględny i względny, przenoszenie
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoAkademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki Przetwarzanie Sygnałów Studia Podyplomowe, Automatyka i Robotyka. Wstęp teoretyczny Zmienne losowe Zmienne losowe
Bardziej szczegółowoutworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,
Lista 3 Zestaw I Zadanie 1. Zaprojektować i zaimplementować funkcje: utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy, zapisz
Bardziej szczegółowoRóżniczkowanie numeryczne
Różniczkowanie numeryczne Przyjmijmy, że funkcja ciągła y = f(x) = 4sin(3x)e -x/2, gdzie x 0,2π, dana jest w postaci dyskretnej jako ciąg wartości y odpowiadających zmiennej niezależnej x, również danej
Bardziej szczegółowoLaboratorium 3 Grafika 2D i 3D w Matlabie. Wprowadzenie do programowania
Uniwersytet Zielonogórski Wydział Informatyki, Elektrotechniki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych Elektrotechnika niestacjonarne-zaoczne pierwszego stopnia z tyt. inżyniera
Bardziej szczegółowoMet Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn
Metody numeryczne Wykład 3 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Pojęcia podstawowe Algebra
Bardziej szczegółowoPętle iteracyjne i decyzyjne
Pętle iteracyjne i decyzyjne. Pętla iteracyjna for Pętlę iteracyjną for stosuje się do wykonywania wyrażeń lub ich grup określoną liczbę razy. Licznik pętli w pakiecie MatLab może być zwiększany bądź zmniejszany
Bardziej szczegółowoProgramowanie w języku Matlab
Programowanie w języku Matlab D. Caban, P. Skurowski Wykład. Składnia języka, podstawowe struktury i operacje Matlab Nazwa pochodzi od MATrix LAboratory Środowisko obliczeń numerycznych i symbolicznych
Bardziej szczegółowoPodstawowe operacje na macierzach, operacje we/wy
26 listopad 2012 Podstawowe operacje na macierzach, operacje we/wy Slajd 1 Podstawowe operacje na macierzach, operacje we/wy Zakład Komputerowego Wspomagania Projektowania Semestr 1. 26 listopad 2012 Podstawowe
Bardziej szczegółowoProgram na zaliczenie: Odejmowanie widm
Piotr Chojnacki: MATLAB Program na zaliczenie: Odejmowanie widm {Poniższy program ma za zadanie odjęcie dwóch widm od siebie. Do poprawnego działania programu potrzebne są trzy funkcje: odejmowaniewidm.m
Bardziej szczegółowoDYSKRETNA TRANSFORMACJA FOURIERA
Laboratorium Teorii Sygnałów - DFT 1 DYSKRETNA TRANSFORMACJA FOURIERA Cel ćwiczenia Celem ćwiczenia jest przeprowadzenie analizy widmowej sygnałów okresowych za pomocą szybkiego przekształcenie Fouriera
Bardziej szczegółowoMatlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3
Matlab, zajęcia 3. Pętle c.d. Przypomnijmy sobie jak działa pętla for Możemy podać normalnie w Matlabie t=cputime; for i=1:20 v(i)=i; e=cputime-t UWAGA: Taka operacja jest bardzo czasochłonna i nieoptymalna
Bardziej szczegółowoprzy warunkach początkowych: 0 = 0, 0 = 0
MODELE MATEMATYCZNE UKŁADÓW DYNAMICZNYCH Podstawową formą opisu procesów zachodzących w członach lub układach automatyki jest równanie ruchu - równanie dynamiki. Opisuje ono zależność wielkości fizycznych,
Bardziej szczegółowoĆwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych
1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych i dynamicznych, symulacji procesów, przekształceń i obliczeń symbolicznych
Bardziej szczegółowoWprowadzenie do Scilab: macierze
Wprowadzenie do Scilab: macierze Narzędzia Informatyki Magdalena Deckert Izabela Szczęch Barbara Wołyńska Bartłomiej Prędki Politechnika Poznańska Instytut Informatyki Agenda Definiowanie macierzy Funkcje
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 7. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 7 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Praca z repozytorium kodu Na podstawie: https://www.gnu.org/software/gsl/doc/html/index.html
Bardziej szczegółowoWstęp do Programowania Lista 1
Wstęp do Programowania Lista 1 1 Wprowadzenie do środowiska MATLAB Zad. 1 Zapoznaj się z podstawowymi oknami dostępnymi w środowisku MATLAB: Command Window, Current Folder, Workspace i Command History.
Bardziej szczegółowoObliczenia w programie MATLAB
Obliczenia w programie MATLAB Na zajęciach korzystamy z programu MATLAB, w którym wykonywać będziemy większość obliczeń. Po uruchomieniu programu w zależności od wersji i konfiguracji może pojawić się
Bardziej szczegółowoWPROWADZENIE DO ŚRODOWISKA SCILAB
Politechnika Gdańska Wydział Elektrotechniki i Automatyki WPROWADZENIE DO ŚRODOWISKA SCILAB Materiały pomocnicze do ćwiczeń laboratoryjnych Opracowanie: Paweł Lieder Gdańsk, 007 Podstawy pracy z Scilab.
Bardziej szczegółowo1 Powtórzenie wiadomości
1 Powtórzenie wiadomości Zadanie 1 Napisać program, który w trybie dialogu z użytkownikiem przyjmie liczbę całkowitą, a następnie wyświetli informację czy jest to liczba parzysta czy nieparzysta oraz czy
Bardziej szczegółowolekcja 8a Gry komputerowe MasterMind
lekcja 8a Gry komputerowe MasterMind Posiadamy już elementarną wiedzę w zakresie programowania. Pora więc zabrać się za rozwiązywanie problemów bardziej złożonych, które wymagają zastosowania typowych
Bardziej szczegółowo2 Przygotował: mgr inż. Maciej Lasota
Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania
Bardziej szczegółowo//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];
4.3. Przykłady wykorzystania funkcji bibliotecznych 73 MATLAB % definiowanie funkcji function [dx]=vderpol(t,y) global c; dx=[y(2); c*(1-y(1)^2)*y(2)-y(1)]; SCILAB // definiowanie układu function [f]=vderpol(t,y,c)
Bardziej szczegółowoWprowadzenie do programu Mathcad 15 cz. 1
Wpisywanie tekstu Wprowadzenie do programu Mathcad 15 cz. 1 Domyślnie, Mathcad traktuje wpisywany tekst jako wyrażenia matematyczne. Do trybu tekstowego można przejść na dwa sposoby: Zaczynając wpisywanie
Bardziej szczegółowoOBLICZANIE POCHODNYCH FUNKCJI.
OBLICZANIE POCHODNYCH FUNKCJI. ROZWIĄZYWANIE RÓWNAŃ RÓŻNICZKOWYCH. ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ LINIOWYCH. Obliczanie pochodnych funkcji. Niech będzie dana funkcja y(x określona i różniczkowalna na przedziale
Bardziej szczegółowoLaboratorium 1. Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi
Laboratorium 1 1. Cel ćwiczenia Rozwiązywanie równań różniczkowych z niezerowymi warunkami początkowymi Zapoznanie się z metodami symbolicznego i numerycznego rozwiązywania równań różniczkowych w Matlabie,
Bardziej szczegółowoPodstawowe operacje na macierzach
Podstawowe operacje na macierzach w pakiecie GNU octave. (wspomaganie obliczeń inżynierskich) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z tworzeniem macierzy i wektorów w programie GNU octave.
Bardziej szczegółowow analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.
Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą
Bardziej szczegółowoProgramowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab
Programowanie: grafika w SciLab Slajd 1 Programowanie: grafika w SciLab Programowanie: grafika w SciLab Slajd 2 Plan zajęć 1. Wprowadzenie 2. Wykresy 2-D 3. Wykresy 3-D 4. Rysowanie figur geometrycznych
Bardziej szczegółowoPrzykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!
Scilab jest środowiskiem programistycznym i numerycznym dostępnym za darmo z INRIA (Institut Nationale de Recherche en Informatique et Automatique). Jest programem podobnym do MATLABa oraz jego darmowego
Bardziej szczegółowo1 Podstawy c++ w pigułce.
1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,
Bardziej szczegółowoGrafika w Matlabie. Wykresy 2D
Grafika w Matlabie Obiekty graficzne wyświetlane są w specjalnym oknie, które otwiera się poleceniem figure. Jednocześnie może być otwartych wiele okien, a każde z nich ma przypisany numer. Jedno z otwartych
Bardziej szczegółowoĆwiczenie 1. Wprowadzenie do programu Octave
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 1. Wprowadzenie do programu Octave Mimo że program Octave został stworzony do
Bardziej szczegółowoAKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH
AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH II rok Kierunek Logistyka Temat: Zajęcia wprowadzające. BHP stanowisk
Bardziej szczegółowoŚRODOWISKO MATLAB WPROWADZENIE. dr inż. Dariusz Borkowski. Podstawy informatyki. (drobne) modyfikacje: dr inż. Andrzej Wetula
ŚRODOWISKO MATLAB WPROWADZENIE dr inż. Dariusz Borkowski (drobne) modyfikacje: dr inż. Andrzej Wetula Przebieg III części przedmiotu - 10 zajęć = 6 laboratoriów Matlab + 2 laboratoria Simulink + 2 kolokwia.
Bardziej szczegółowoWartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.
Notatki z sesji Scilaba Istnieje możliwość dokładnego zapisu przebiegu aktualnej sesji pracy ze Scilabem: polecenie diary('nazwa_pliku.txt') powoduje zapis do podanego pliku tekstowego wszystkich wpisywanych
Bardziej szczegółowoLaboratorium 1b Operacje na macierzach oraz obliczenia symboliczne
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Laboratorium Metod Numerycznych Laboratorium 1b Operacje na macierzach oraz obliczenia symboliczne 1 Zadania 1. Obliczyć numerycznie
Bardziej szczegółowoRozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm
Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F
Bardziej szczegółowoPrzetwarzanie sygnałów
Spis treści Przetwarzanie sygnałów Ćwiczenie 1 Wprowadzenie do programu Octave 1 Operatory 1 1.1 Operatory arytmetyczne...................... 1 1.2 Operatory relacji.......................... 1 1.3 Operatory
Bardziej szczegółowoMetody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski
Metody numeryczne Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Elektrotechnika stacjonarne-dzienne pierwszego stopnia
Bardziej szczegółowo