Wprowadzenie do Matlaba w97, Politechnika Śląska ZiIP i inne, Mechanika


Wprowadzenie do Matlaba

Wstęp

MATLAB jest programem przeznaczonym do wykonywania różnorodnych obliczeń numerycznych. MATLAB jest interpreterem języka, zaprojektowanego specjalnie z myślą o obliczeniach numerycznych. Praca w środowisku MATLAB-a przypomina pracę w typowym systemie operacyjnym (np. DOS, UNIX) - polega na wydawaniu poleceń, które po zatwierdzeniu są wykonywane przez interpreter. W ten sposób bezpośrednio z wiersza poleceń można zdefiniować zmienną, wywołać funkcję lub podprogram zbudowany z poleceń interpretera, a zapisanych w specjalnym zbiorze tekstowym zwanym skryptem. [1]

Podstawy działań w środowisku MATLAB

0x08 graphic
Na rysunku 1 przedstawiono okno edytora poleceń środowiska MATLAB, które jest głównym pomostem pomiędzy użytkownikiem a interpretatorem poleceń. Okno to pojawia się zaraz po uruchomieniu programu.

0x08 graphic
Rys.1. Okno dialogowe pakietu MATLAB.

Edytor obsługuje się min. za pomocą następujących poleceń klawiaturowych:

Kombinacja klawiszy

Operacja

↑ , Ctrl-P

↓ , Ctrl-N

←, Ctrl-B

→, Ctrl-F

Ctrl-←, Ctrl-L

Ctrl-→, Ctrl-R

przywołanie polecenia:

poprzedniego

następnego

przesunięcie kursora

znak w lewo

znak w prawo

słowo w lewo

słowo w prawo

W tabeli podano kilka przykładów najczęściej stosowanych poleceń MATLABA, których działanie należy przetestować. (W linii poleceń należy wpisać przykład i nacisnąć ENTER)

Przykład polecenia

Opis

2.45

utworzenie zmiennej o standardowo przyjętej nazwie ans i wartości 2.45

a=22.5;

utworzenie zmiennej o nazwie a i wartości 22.5 Średnik powoduje, że wartość 22.5 nie zostanie wyświetlona na ekranie. Należy spróbować wpisać ten sam przykład bez średnika.

a

powoduje wyświetlenie na ekranie wartości zmiennej a

pi

powoduje wyświetlenie wartości liczby pi. W MATLAB-ie liczba pi jest zdefiniowana domyślnie.

c=sin(a)

Powoduje obliczenie wartości funkcji sinus dla zmiennej a i wyświetlenie jej na ekranie. Wartość ta jest zapisana pod nazwą c

a=a-2.5

zmiana wartości zmiennej a

a*c

pomnożenie zmiennej a przez zmienną c. Zastosowanie operatorów: -, +, /, ^ pozwoli na wykonanie kolejno działań odejmowania, dodawania, dzielenia i potęgowania.

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

zdefiniowanie macierzy kwadratowej stopnia trzeciego.

B=[3 2 1;6 7 8;4 5 9]

inny sposób zdefiniowania macierzy kwadratowej stopnia trzeciego

b-c

działanie nie zostało wykonane ponieważ zmienna b nie została utworzona.

Utworzone zmienne są pamiętane od momentu utworzenia, aż do chwili ich usunięcia. Możliwa jest przy tym nie tylko zmiana wartości, ale również rozmiaru zmiennej

who

wyświetlenie nazw wszystkich utworzonych zmiennych przechowywanych w pamięci

clear c A

Usunięcie z pamięci zmiennych o nazwach c i A

dir

wyświetla zawartość aktualnego katalogu. Zamiennie można stosować polecenie UNIX-owe - ls.

cd

wyświetla ścieżkę dostępu do katalogu w którym obecnie się znajdujemy. Zamiennie można stosować polecenie UNIX-owe - pwd.

save test

zapisuje wszystkie zmienne na dysku w aktualnym katalogu w pliku o nazwie „test.mat”

load test

odczytuje zmienne zapisane w pliku o nazwie test.mat

lookfor matric

polecenie to wyszukuje te skrypty, które w pierwszym wierszu komentarza zawierają podane w poleceniu słowo.

help who

odwołanie się do pomocy dotyczącej polecenia who

0x08 graphic
ZADANIE DO SAMODZIELNEGO WYKONANIA

Stosując poznane polecenia MATLAB-a należy:

  • usunąć z pamięci wszystkie zmienne

  • przyjmując dowolne wartości zmiennych a i b obliczyć następujące wyrażenie:

  • zapisać zawartość pamięci w pliku o dowolnej nazwie w katalogu wskazanym przez prowadzącego.

Operacje na macierzach

Jedynym używanym w MATLAB-ie typem danych są macierze np. zmienna a o wartosci 2.5 jest traktowana przez interpreter jako macierz jednoelementowa. Pakiet MATLAB pozwala na przetwarzanie macierzy i operowanie na nich za pomocą dużej ilości poleceń. Poniżej w tabelce zestawiono podstawowe przykłady dotyczące macierzy wraz z opisami. Każdy przykład należy przetestować.

Przykład polecenia

Opis

Definiowanie macierzy:

A=[1 4 1 1; 2 1 1 3]

przez wyliczenie jej elementów. Wiersze macierzy oddziela się średnikiem, natomiast wyrazy w wierszu mogą być odzielone spacją lub przecinkiem

A=[1:10; 1:2:20]

przez wygenerowanie elementów z zastosowaniem wyrażenia w postaci ogólnej w_min:krok:w_max. Polecenie tworzy macierz o dwóch wierszach. Do wygenerowania elementów macierzy można posłużyć się również jedną z funkcji wspomagających lub sekwencją instrukcji sterujących.

A=[1 4 1; 2 0 1]

B=[3,1;4,1]

C=[1 2 2 0 1; 2 4 7 1 0]

D=[A B; C]

przez zbudowanie z innych macierzy. Trzy pierwsze wyrażenia definiują macierze, które w czwartym wyrażeniu stają się podmacierzami macierzy D.

A=[1 2 3; 4 5 6]

D=[A, [1;2]; 1:4]

Przez mieszanie przedstawionych wyżej technik.

Dostęp do elementów macierzy:

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

zdefiniowanie macierzy

A(2, 4)

odwołanie do czwartego elementu w drugim wierszu

A(3, 3)

odwołanie do trzeciego elementu w trzecim wierszu

A(1:2,1:2)

odwołanie do podmacierzy rozpiętej między elementami (1,1) a (2,2)

A(2,1:6) lub A(2,:)

odwołanie do wiersza drugiego macierzy A

A([1 3],:)

odwołanie do wierszy 1 i 3 macierzy A

A(:,[1:3 5])

pobranie z macierzy A kolumn 1-3 oraz 5

A([1 3], 1:2:5)

Utworzenie macierzy z elementów leżących na przecięciu wierszy 1 i 3 z kolumnami 1, 3 i 5

A(:,4)=[];

Usuwa ostatnią kolumnę macierzy A

A(:,1:2)=[]

Usuwa pierwsze dwie kolumny macierzy A

Rozmiary macierzy i ich wyświetlanie:

disp(A)

wyświetla na ekranie zawartość macierzy A

[n,m]=size(A)

zwraca liczbę wierszy m oraz kolumn n macierzy A

X=[1,2,3,4,5]

Utworzenie wektora X

n = length(X)

Zwraca wymiar wektora X. Jeśli X jest macierzą zwracany jest dłuższy z jej wymiarów

Operacje na macierzach

A=[1 1 0; 2 1 1]

B=[1 1 1; 0 -2 2]

C=[2;2;2]

D=[1 1; 0 1; -1 2]

zdefiniowanie macierzy A, B, C i D

A+B

suma macierzy

A-B

różnica macierzy

A+2

dodanie do macierzy liczby

A*C

A*D

A*2

normalne mnożenie macierzy

A.*B

mnożenie tablicowe. Operator .* oznacza mnożenie dwóch macierzy o tych samych wymiarach, mnożone są odpowiadające sobie elementy

A./B

dzielenie tablicowe. Operator ./ wykonuje dzielenie elementów macierzy będącej drugim jego argumentem przez macierz stanowiącą pierwszy jego argument

A.^2

potęgowanie tablicowe. Operator .^ umożliwia podniesienie każdego elementu macierzy do dowolnej potęgi zespolonej (a tym samym i do dowolnej rzeczywistej)

A'

transpozycja macierzy A

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
ZADANIE DO SAMODZIELNEGO WYKONANIA

Stosując poznane polecenia MATLAB-a należy obliczyć następujące wyrażenie:

gdzie:

  • D-jest macierzą powstałą z podmacierzy A, B i C i ma postać

  • Macierze A, B i C mają postacie następujące:

  • Macierz F jest macierzą składająca się z następujących podmacierzy:

gdzie: macierz G powstała w ten sposób że: z macierzy D pobrano 2 i 3 kolumnę a następnie podmacierz tą transponowano.

  • zmienne i, j określają rozmiar macierzy D.

  • zmienna n określa długość wektora C

Wartości i,j,n powinny być uzyskane przez zastosowanie odpowiednich funkcji.

Wszystkie zmienne należy zapisać w pliku *.mat

Instrukcje sterujące

W MATLAB-ie istnieje grupa instrukcji za pomocą których można sterować działaniem i wykonywaniem instrukcji i funkcji obliczeniowych. Instrukcje te stosuje się podczas pisania skryptów lub funkcji. Ze względu na złożony zapis nie można wprowadzać ich z wiersza poleceń MATLAB-a. Do tej grupy instrukcji należą:

-instrukcja „for”

ogólna postać instrukcji for przedstawia się następująco:

for zmienna - iterowana = macierz wartosci,

ciąg instrukcji

end

przykład:

for i=1:10,

A(i)=2*i;

end

-instrukcja „while”

instrukcja while odpowiada analogicznej instrukcji w języku C i jej ogólna postać jest następująca:

while wyrażenie-warunkowe,

ciąg-instrukcji,

end

przykład:

n=0;

while (n<5),

x=2+n;

n=n+1;

end

instrukcja if ma podobną postać do instrukcji stosowanych w językach C i Pascal. Jej ogólna postać przedstawia się następująco:

if wyrażenie-warunkowe 1

ciąg instrukcji

elseif wyrażenie-warunkowe 2

ciąg instrukcji 2

. . .

else

ciąg instrukcji N

end

przykład:

if (n==100),

disp(`OK.')

else

disp(`BAD')

disp(`VERY BAD')

end

instrukcja break powoduje przerwanie wykonywania pętli, przy czym opuszczany jest tylko jeden poziom zagłębienia pętli.

instrukcja return powoduje bezwarunkowe opuszczenie danej funkcji lub skryptu i powrót do miejsca jej/jego wywołania.

Funkcje graficzne

Program MATLAB oferuje użytkownikowi całą gamę funkcji pozwalających szybko i przy małym nakładzie pracy przedstawić praktycznie dowolne dane matematyczne.

Głównymi grupami funkcji graficznych pozwalających wizualizować dane są funkcje przeznaczone do prezentacji danych w postaci wykresów dwu- i trójwymiarowych.

Podstawową funkcją służącą do rysowania wykresów dwuwymiarowych obrazujących przebieg funkcji jednej zmiennej jest funkcja plot.

Przykład zastosowania funkcji plot: (przykład należy przetestować)

x=-pi:0.1:pi; % wektor wartości zmiennej niezależnej

y=sin(x); % wartość funkcji

plot(x,y) % rysowanie wykresu

Jak wspomniano MATLAB posiada funkcje pozwalające kreślić wykresy trójwymiarowe. Jedną z takich funkcji jest funkcja waterfall.

Przykład użycia funkcji waterfall: (przykład należy przetestować)

[x,y]=meshgrid(-4:0.2:4,-4:0.2:4); %ustalenie punktów

z=sin(x).*cos(y); % obliczenie wartości funkcji

waterfall(x,y,z); %rysowanie wykresu

ZADANIE DO SAMODZIELNEGO WYKONANIA

Wykorzystując wcześniej poznaną wiedzę dotyczącą instrukcji MATLAB-a oraz informacje zawarte w pomocy a dotyczące funkcji plot należy:

stosując dwie funkcje trygonometryczne narysować okrąg(lub elipsę) lub dowolną figurę Lissaju. Sposób powstawania figur Lissajou omówi prowadzący.

Skrypty

Skryptem w środowisku MATLAB nazywany jest plik tekstowy o dowolnej nazwie nadanej przez użytkownika, posiadający rozszerzenie *.m, w którym zapisane są sekwencje poleceń MATLAB-a. Skrypt może być utworzony w dowolnym edytorze tekstowym jak np. Notepad. Skrypt nie posiada mechanizmu hermetyzacji, tzn. dane utworzone w skrypcie zostaną dołączone do danych już istniejących w pamięci. Wywołanie skryptu odbywa się poprzez wpisanie jego nazwy w oknie poleceń MATLAB-a. Jeśli skrypt nie znajduje się w aktualnym katalogu, który „widzi” MATLAB , ważne jest aby podać ścieżkę dostępu do pliku skryptu.

Przykład skryptu (skrypt należy stworzyć i przetestować):

Skrypt oblicza w101 punktach wartość funkcji x=sin(2t)+sin(t) i kreśli jej wykres na przedziale <0,2π>

%% Przykładowy skrypt (%-oznacza komentarz)

t=[0:0.1:2*pi];

A=[1 1];

x=A*[sin(2*t); sin(t)];

plot(t, x)

%% Koniec przykładowego skryptu

0x08 graphic
ZADANIE DO SAMODZIELNEGO WYKONANIA

Wykorzystując informacje przedstawione powyżej należy napisać skrypt, który po uruchomieniu utworzy macierz T, przedstawiająca tabliczkę mnożenia w postaci:

W skrypcie trzeba zastosować instrukcje sterujące.

Funkcje

MATLAB daje użytkownikom nie tylko możliwość wykorzystania funkcji napisanych przez innych (biblioteki i funkcje standardowe), ale pozwala także na samodzielne ich tworzenie.

Definicję funkcji umieszcza się w skrypcie o nazwie identycznej z nazwą definiowanej funkcji i rozszerzeniem *.m. Definiując funkcję o nazwie np. oblicz musimy utworzyć zbiór oblicz.m.

Definicja funkcji ma następującą postać ogólną:

function wartości-funkcji=nazwa-funkcji(parametr1, ..., parametrN)

komentarz-dokumentujący

ciąg-instrukcji

Parametry i wartości są opcjonalne. Komentarz umieszczony bezpośrednio pod nagłówkiem funkcji będzie wyświetlany jako pomoc uzyskiwana poleceniem:

help nazwa-funkcji

Przykładowy szkielet definicji funkcji:

function [x,y,z]=funkcja(a, b, c, d)

%% [x, y, z]=funkcja(a, b, c, d)

%% Szkielet definicji funkcji.

...

%% Koniec: funkcja.m

Zmienne utworzone podczas działania funkcji są usuwane z chwilą zakończenia wykonywania funkcji i nie są widoczne poza nią, podobnie zmienne utworzone poza funkcją nie są widoczne w jej wnętrzu.

Wywołanie funkcji następuje po wpisaniu w edytorze nazwy funkcji wraz z wartościami argumentów oddzielonymi przecinkami, i naciśnięciu <enter>.

Przykład funkcji:

function [tk]=kelwin(tc)

%% [c]=kelwin(f)

%% Funkcja zamienia stopnie Celsjusza na Kelwiny

tk=tc+273,15

%% Koniec: kelwin.m

Funkcje wywołuje się wpisując: kelwin(20).

0x08 graphic
ZADANIE DO SAMODZIELNEGO WYKONANIA

Napisać funkcję obliczająca wartości funkcji w zadanym przedziale wartości <a, b>.

Funkcja powinna kreślić wykres przebiegu wartości y.

Aby poznać więcej możliwości pakietu MATLAB można uruchomić demo wpisując w linii poleceń słowo demo, jak również celowe jest korzystanie z odpowiedniej literatury i helpa.

Literatura

[1] Zalewski A., Cegieła R.: Matlab-obliczenia numeryczne i ich zastosowania. Nakom, Poznań 1996.

[2] Mrozek B., Mrozek Z.: Matlab 5.x, Simulink 2.x - poradnik użytkownika. PLJ, Warszawa 1998.

Instrukcja do zajęć laboratoryjnych z przedmiotu Metody Numeryczne

Laboratorium nr 1 Temat: Wprowadzenie do MATLAB-a

5

8

Opracował: mgr inż. Marek Fidali

Znak zachęty

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic

0x01 graphic



Wyszukiwarka

Podobne podstrony:
mn eliminacja gaussa, Politechnika Śląska ZiIP i inne, Mechanika
ruch-plaski-wahadlo2, Politechnika Śląska ZiIP i inne, Mechanika
ruch-plaski-wahadlo3, Politechnika Śląska ZiIP i inne, Mechanika
ruch prostoliniowy, Politechnika Śląska ZiIP i inne, Mechanika
mn interpolacja2 lab3, Politechnika Śląska ZiIP i inne, Mechanika
wzory Finanase przedsiebiorstw, Politechnika Śląska ZiIP i inne, Finanse
Testy 5 ekonomika podatkowa, Politechnika Śląska ZiIP i inne, Ekonomika podatkowa
FINANSE[1][1], Politechnika Śląska ZiIP i inne, Finanse
finanse(2), Politechnika Śląska ZiIP i inne, Finanse
Finanse publiczne i rynki finansowe, Politechnika Śląska ZiIP i inne, Finanse

więcej podobnych podstron