Laboratorium metod numerycznych numer 1



Podobne dokumenty
Matlab Składnia + podstawy programowania

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Mathematica - podstawy

Matlab Składnia + podstawy programowania

Wprowadzenie do środowiska

do MATLABa programowanie WYKŁAD Piotr Ciskowski

WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Arytmetyka zmiennopozycyjna

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

Przy Matlabie istnieje duże społeczność wymieniająca się plikami, programami i poradami

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

Makroekonomia Zaawansowana

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Wprowadzenie do pakietów MATLAB/GNU Octave

MATLAB skalary, macierze, liczby zespolone, standardowe funkcje

Optymalizacja R dlaczego warto przesi ± si na Linuxa?

Zanim zaczniemy GNU Octave

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Metody numeryczne Laboratorium 2

1 Wizualizacja danych - wykresy 2D

Matlab MATrix LABoratory Mathworks Inc.

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

Ćwiczenie 3: Wprowadzenie do programu Matlab

Makroekonomia zaawansowana (1)

Wstęp do Programowania Lista 1

Metody numeryczne i statystyka dla in»ynierów

Modele liniowe i mieszane na przykªadzie analizy danych biologicznych - Wykªad 1

Arkusz zawiera informacje prawnie chronione do momentu rozpocz cia egzaminu.

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

Pakiety matematyczne. Matematyka Stosowana. dr inż. Krzysztof Burnecki

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Elementy metod numerycznych - zajęcia 9

Wprowadzenie do środowiska Matlab/GNU Octave

01.Wprowadzenie do pakietu MATLAB

1 Programowanie w matlabie - skrypty i funkcje

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

Operatory arytmetyczne

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

Pakiety matematyczne INP2708W,L

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Programowanie funkcyjne. Wykªad 13

Ściągawka z Matlaba / Octave

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Podstawy MATLABA, cd.

Przetwarzanie sygnałów

Interpolacja Lagrange'a, bazy wielomianów

Instalacja Pakietu R

I. Podstawy języka C powtórka

Cw.12 JAVAScript w dokumentach HTML

Macierze. 1 Podstawowe denicje. 2 Rodzaje macierzy. Denicja

Programowanie w języku Matlab

WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH

Technologie informacyjne lab. 3

Ćwiczenie 1. Wprowadzenie do programu Octave

Lekcja 9 - LICZBY LOSOWE, ZMIENNE

0.1 Hierarchia klas Diagram Krótkie wyjaśnienie

Zadania. Rozdział Wektory i macierze. 1.Podajpolecenie 1,któreutworzywektor: v = [100, 95, 90,..., 95, 100].

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

MATLAB - laboratorium nr 1 wektory i macierze

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

1. Wprowadzenie do C/C++

Laboratorium 3 Grafika 2D i 3D w Matlabie. Wprowadzenie do programowania

Programowanie - instrukcje sterujące

Optymalizacja systemów

Programowanie w języku Python. Grażyna Koba

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

Macierze i Wyznaczniki

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Podstawy Programowania C++

Wprowadzenie do Octave

1. Wprowadzenie do C/C++

Obliczenia w programie MATLAB

Metody optymalizacji - wprowadzenie do SciLab a

1 Typy i formaty danych

Dzi kuj za uwag! Spotkania z Pythonem. Cz ± 1 - podstawy - rozwi zania zada« Michaª Alichniewicz. Gda«sk Studenckie Koªo Automatyków SKALP

Metody i analiza danych

Operacje logiczne i struktury sterujące.

Podstawowe działania w rachunku macierzowym

Niezawodność diagnostyka systemów laboratorium

Ćwiczenie 1. Wprowadzenie do programu Octave

Ukªady równa«liniowych - rozkªady typu LU i LL'

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Lekcja 8 - ANIMACJA. 1 Polecenia. 2 Typy animacji. 3 Pierwsza animacja - Mrugaj ca twarz

Informatyka. MATLAB Zasady zaliczenia Wykład. Plan tematów. Literatura. Wykład 1 45 min. 10/7/2013

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Scilab skrypty (programowanie)

Transkrypt:

Laboratorium metod numerycznych numer 1 Dla grup:wszystkich (Dated: 27 II 2013) I. WST P Na laboratoriach z metod numerycznych b dziemy posªugiwali si pakietem Octave, który jest darmow alternatyw dla Matlaba (Matrix laboratory). Pomimo du»ego podobie«stwa istniej ró»nice pomi dzy tymi programami dlatego na zaj ciach b dziemy przyjmowali,»e zawsze posªugujemy si Octave. Pakiet Octave mo»na pobra ze strony http://www.octave.org. Do dyspozycji mamy wysokopoziomowy skryptowy j zyk programowania zgodny z Matlabem posiadaj cy m.in. mechanizmy wej±cia/wyj±cia. Z poziomu ±rodowiska do dyspozycji mamy wiele pakietów i bibliotek numerycznych (LAPACK, BLAS i wiele innych). Natomiast do rysowania wykresów Octave u»ywa znanego pakietu GNUPlot. To krótkie wprowadzenie w»aden sposób nie wyczerpuje tematu jakim jest programowanie w Octavie, albo Matlabie. Ma ono sªu»y jedynie jako uªatwienie pierwszego kroku w tym kierunku. Dlatego koniecznie b dzie korzystanie z wielu innych ¹ródeª i pomocy jak np. dokumentacji dost pnej na stronie http://www.octave.org. Sam Octave posiada równie» wbudowan pomoc i dokumentacje do, której dost p daj odpowiednio polecenia help, doc oraz lookfor: > help polecenie > doc polecenie > lookfor sªowo kluczowe. II. PODSTAWY MATLAB/OCTAVE Podstawow struktur danych w Octave jest dwuwymiarowa tablica dynamiczna (macierz). Do dyspozycji mamy dwa podstawowe tryby pracy: pierwszy to interakcja w linii

2 polece«; drugi sposób to uruchamianie gotowych skryptów zapisanych w M-plikach. Wszystkie liczby s standardowo przechowywane jako double tzn. mamy do dyspozycji zakre± < 10 308, 10 308 >. Tzw. epsilon maszynowy czyli precyzja oblicze«równy jest eps = 2 t, gdzie t = 52 dla Octave jest to okoªo 2, 22 10 16. Do zmiany formatu wy±wietlanej liczby sªu»y polecenie format. A. Podstawy W Octave posiada równie» wbudowane staªe: liczb π, jednostka urojona i, wspomnian ju» precyzj zmiennoprzecinkow eps, niesko«czono± Inf oraz symbol nieoznaczony NaN (Not a Number). Do sprawdzenia ze zmienn jakiego rodzaju mamy do czynienia sªu»y polecenie whos. B. Macierze Macierz o rozmiarze 1x1: > a = 7 Wektor czyli macierz o jednym wierszu: > a = [2 3 5 6 8] b d¹ kolumnie: > a = [2 3 5 6 8]; > a = [2; 3; 5; 6; 8]; rednik na ko«cu wyra»enia wª cza i wyª cza echo. W przypadku maªych macierzy mo»emy budowa j bezpo±rednio:

3 > A = [1 2 3; 4 5 6; 7 8 9]; > B = [1, 2, 3; 4, 5, 6; 7, 8, 9]; Wi ksze macierze mo»emy zbudowa ª cz c mniejsze jako skªadowe: > C = [A; B] > D = [10, 11, 12; B] Mo»emy te» deniowa po kolei jej elementy: > A(1,1) = 2 > B(2,1) = 5 + A(1,1) W przypadku wi kszych macierzy u»ywamy wbudowanych polece«: > A = zeros(n,m); %Macierz zerowa o rozmiarze N x M. > B = eye(n,m); % Macierz jednostkowa N x M. A ii = 1, A ij = 0. > C = ones(n,m);%macierz jedynkowa rozmiaru N x M. > D = rand(n,m);%macierz losowa o rozkªadzie jednostajnym na przedziale (0,1). > E = randn(n,m);%macierz losowa o rozkªadzie normalnym. C. Wypisywanie na ekran Do wypisywania warto±ci na ekran mo»emy u»ywa dwóch funkcji. disp(co±): Najprostsz jest > disp('test') > a = 2 a = 2 > disp(a) 2 Drug nieco bardziej zaawansowan mo»liwo±ci jest znane wszystkim z C printf(argumenty). Zamiast opisu zapraszam do zadania 1.1.

4 D. Notacja dwukropkowa Do ka»dego elementu macierzy mo»emy odwoªywa si osobno np. x = A(2, 2), albo u»ywaj c tzw. notacji dwukropkowej Molera (nazwisko twórcy Matlaba). Powiedzmy,»e mamy macierz A(5, 5). Zapis x = A(3 : 4, 3) oznacza wektor skªadaj cy si z drugiego i trzeciego wiersza macierzy wybrane z trzeciej kolumny. Zapis Y = A(2 : 3, 4 : 5) oznacza macierz 2x2 skªadaj c si elementów z drugiego i trzeciego wiersza i czwartej, oraz pi tej kolumny. Czas na troch praktyki: > N = 5; > i = 1:N i = 1 2 3 4 5 > i2 = 1:2:N i2 = 1 3 5 E. Operacje na macierzach Operacje macierzowe zaczniemy od omówienia mno»enia macierzy '*': > A = [1,2;3,4] A = 1 2 3 4 > B = [1,2;3,4] B = 1 2 3 4 > C = A*B C = 7 10 15 22

5 > D = A.*B D = 1 4 9 16 Nale»y tu od razu podkre±li operacje macierzowe od operacji tablicowych. Np. mno»enie ka»dego elementu macierzy '.*' - operacje tak poprzedzamy kropk. Przyjrzyjmy si jeszcze pot gowaniu macierzowemu vs. pot gowaniu tablicowemu: > C = A 2 C = 7 10 15 22 > C = A. 2 C = 1 4 9 16 F. Konstrukcie programistyczne Zacznijmy od najprostszego czyli instrukcji warunkowej if. W Octave przyjmuje ona posta : if wyra»enie warunkowe else end Mo»liwa jest równie» inna wersja tej instrukcji z u»yciem elseif: if wyra»enie warunkowe

6 elseif wyra»enie warunkowe end Oczywi±cie do dyspozycji mamy standardowy zestaw p tli znanych z cho by je»yka C. A mianowicie p tl for: for i = indeksy end Wykorzystuj c notacj dwukropkow Molera: for i = 1:2:20 > disp(i) >end 1 3 5 7 9 oraz p tl while: while wyra»enie warunkowe end G. Wektoryzacja i kod macierzowy Wi kszo± operacji je±li tylko jest to mo»liwe nale»y stara si wykonywa wektorowo. Jednym z wicze«jest porównanie implementacji opartej na p tli for mno»enia macierzy z implementacj wektorow. Powodem dla, którego powinni±my tak robi jest fakt,»e u»ywane przez nas pakiety s w rzeczywisto±ci interpreterami. Kod jest odczytywany wiersz

7 po wierszu i wykonywany krok po kroku, a nie jak w przypadku C/C++ kompilowany przed uruchomieniem. Skutkuje to du»o wolniejszym wykonaniem programu. Aby temu zaradzi Matlab, a tak»e w pewnym stopniu Octave wykorzystuje JIT (Just-In-Time), który optymalizuje i kompiluje proste p tle. Niestety przyspieszeniu ulegaj tylko najprostsze konstrukcje programistyczne. Istnieje jednak jeszcze jedna metoda przyspieszenia oblicze«, któr jest stosowanie wbudowanych funkcji. Funkcje te s najcz ±ciej w przypadku Octave wywoªaniami bardzo szybkich funkcji napisanych w Fortranie lub C. A jak to wygl da w praktyce? Najpierw wersja przy u»yciu p tli for: > for x = 1:.01:10 > y = sin(x) > end y = 0.84147 y = 0.84683 y = 0.85211 y = 0.85730 y = 0.86240... Teraz to samo przy u»yciu zapisu wektorowego: > x = 0:.01:100 > y = sin(x) lub przy u»yciu wbudowanej funkcji linspace: > x = linspace(0,10,100); > y = sin(x) 1.9). U»ycie operacji wektorowych staje si szczególnie istotne w przypadku macierzy. (Zadanie

8 H. Prezentacja wyników Na koniec kilka sªów na temat gracznej prezentacji wyników. Octave do rysowania u»ywa znanego dobrze GNUPlota. Podstawow instrukcj jest plot(x,y) tworz cy wykres 2D. x = -10:0.1:10; plot (x, sin (x)) Rysunek 1: Wykres sunkcji Sinus(x). Drug przydatn funkcj wbudowan jest rysowanie histogramów. hist(argumenty): Sªu»y do tego hist (randn (10000, 1), 30) gdzie randn(10000, 1 losuje 10000 liczb z przedziaªu (0, 1) o rozkªadzie normalnym.

9 Rysunek 2: Przykªad histogramu. III. ZADANIA NA DZI A. Zadanie 1.1 Korzystaj c z systemu pomocy wbudowanego w Octave wypisz na ekran przy u»yciu instrukcji printf w trybie interaktywnym w jednym zdaniu odpowied¹ na pytanie: Który przedmiot jest Twoim ulubionym i dlaczego s to metody numeryczne? B. Zadanie 1.2 Oblicz warto± a dla a = 1 exp (15 a)/2. Poka» wynik u»ywaj c ró»nych formatów wy±wietlania wyników.

10 C. Zadanie 1.3 Napisz program w Octave obliczaj cy sum liczb nieparzystych od zera do stu. Kod programu zapisz w tzw. M-pliku. D. Zadanie 1.4 Narysuj wykres funkcji y = sin(x 2 )/2 dla argumentu od 0 do 100. E. Zadanie 1.5 Napisz program wykonuj cy poprzednie zadanie prealokuj c zmienne. F. Zadanie 1.6 Napisz program rysuj cy otrzyman w poprzednim zadaniu funkcj dla ró»nej liczby punktów np. 10 i 200. G. Zadanie 1.7 Stwórz funkcj Octave obliczaj c warto± funkcji y = sin(x 2 )/2. H. Zadanie 1.8 Napisz skrypt, który wykonuje po kolei nast puj ce operacje na macierzach: a) Utwórz macierz 10x20 (10 wierzy na 20 kolumn), w której w pierwszych pi ciu wierszach elementy przyjmuj warto±ci 1, a w kolejnych pi ciu warto± 3; b) Zmie«warto± elementów macierzy od 6 do 8 wiersza i 12 do 14 kolumny na równ 25; c) Zmie«warto± elementów macierzy od 8 do 10 wiersza i 2 do 5 kolumny na równ warto±ci danego elementu do kwadratu;

11 I. Zadanie 1.9 Zaimplementuj mno»enie macierzy przy pomocy metod iteracyjnych. Porównaj czasy wykonania dla du»ych macierzy dla wersji wektorowej. J. Zadanie 1.10 Stosuj c wªasn implementacj funkcji arcus sinus (w postaci funkcji Octave), napisz program wyznaczaj cy pierwsze dziesi cyfr rozwini cia liczby π przy u»yciu wzoru Johna Machina: π = 4 arctan( 1) arctan( 1 ) 4 5 239 Ile skªadników szeregu Taylora rozwiniecia arcusa tangensa trzeba zsumowac, zeby obliczyc dokªadnie dziesiec cyfr rozwiniecia liczby π, przy uzyciu wzoru Machina. Wynik porównaj z obliczeniami przeprowadzonymi bezposrednio przy uzyciu rozwiniecia arcusa tangensa, tzn.: π = 4 arctan(1) K. Zadanie 1.11 Napisz program rysuj cy histogram dla ruchów Browna.