PWSW Mechatronika Wykład 7 Matlab cd.

Slides:



Advertisements
Podobne prezentacje
OBLICZENIA NUMERYCZNE
Advertisements

Tablice 1. Deklaracja tablicy
ZŁOŻONOŚĆ OBLICZENIOWA
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Podstawy informatyki Wirtotechnologia – Wskaźniki i referencje
AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH
SO – LAB3 Wojciech Pieprzyca
Podstawy programowania PP – LAB6 Wojciech Pieprzyca.
Podstawy programowania PP - LAB1 Wojciech Pieprzyca.
Wykład 2 struktura programu elementy języka typy zmienne
Algorytmy.
Skrypty w powłoce Ryszard Haraszczuk. Pierwszy skrypt Stworzenie pliku touch skrypt Wpisanie specjalnej linii dla powłoki #!/bin/bash Napisanie skryptu.
Excel Wstęp do laboratorium 3..
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
MS ACCESS Kwerendy.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Programowanie w języku Matlab
Programowanie strukturalne i obiektowe
Wykład 2 Dr Aneta Polewko-Klim
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Excel Wykład 3.. Importowanie plików tekstowych Kopiuj – wklej Małe pliki Kolumny oddzielone znakiem tabulacji Otwieranie/importowanie plików tekstowych.
TABLICE C++.
Wyrażenia w Turbo Pascalu.
Programowanie w języku Matlab
Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
PHP: warunki, pętle, switch, break, continue
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
Metody obliczeniowe i podstawy programowania
MOiPP Wykład 2 Matlab Tablice i ich zastosowania Wykresy Iteracja.
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
Ogólna struktura programu w TP
Projektowanie stron WWW
Temat 7: Instrukcje warunkowe
Algorytmika Iteracje autor: Tadeusz Lachawiec.
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
Program Logomocja.
MOiPP Matlab Aproksymacja Interpolacja Inne metody obliczeniowe
MOiPP Wykład 5 Matlab Przykłady praktyczne Równania różniczkowe.
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
MOiPP Wykład 2 Matlab tablice.
Instrukcje wyboru.
Informatyka PWSW Wykład 6.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Pętle – instrukcje powtórzeń
Seminarium Dyplomowe: Metodyka i Techniki Programowania Autor: Bartłomiej Fornal.
SciLab.
SciLab.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Tworzenie wykresów część II Tworzenie wykresu domyślnego Modyfikacja wykresów Pasek narzędzi Wykres.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Dominik Benduski Michał Mandecki Podstawy Visual Basic w Excelu.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
Do czego służy arkusz kalkulacyjny, jego budowa
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
C++ mgr inż. Tomasz Turba Politechnika Opolska 2016.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wykład 2 MATLAB cd INFORMATYKA 2 MPZI2 sem.4. 2x + 3y – 4z = 5 x + y – z = 3,5 –2,5y – z = 2 Rozwiązanie w Matlabie (m-plik): A = [ ; ; 0.
Wykład 4 Dr Aneta Polewko-Klim
Informacje ogólne.
Podstawy Informatyki.
Wykład 2 Dr Aneta Polewko-Klim
Tomasz Adamowicz Anna Kostun
Zapis prezentacji:

PWSW Mechatronika Wykład 7 Matlab cd

Przydatne polecenia help - pomoc globalna help elfun - pomoc – spis funkcji elementarnych help rem - pomoc na temat wybranej funkcji (tu: rem) format long - wyświetlanie liczb z 15-ma miejscami dziesiętnymi format short - liczby wyświetlane z 4-ma miejscami dziesiętnymi clc - czyszczenie ekranu clear zmienna - usunięcie zmiennej z obszaru roboczego (Workspace) clear - usunięcie wszystkich zmiennych z obszaru roboczego

clc format long x=pi N=5 y= round(x*10^N)/10^N format short Algorytm zaokrąglania z dokładnością do N miejsc dziesiętnych clc format long x=pi N=5 y= round(x*10^N)/10^N format short

Generator losowy rand Bezargumentowa funkcja! Losuje liczbę rzeczywistą z przedziału (0, 1) x=rand Zmiana przedziału losowania: x=round(100*rand-50) Losowanie liczby całkowitej z przedziału (-50, 50)

Interakcja z użytkownikiem (instrukcja wejścia) zmienna = input('tekst zachęty'); Działanie: skrypt się zatrzymuje i czeka na podanie wartości dla zmiennej a = input('Podaj a:'); b = input('Podaj b:'); c = input('Podaj c:');

Prezentacja wyników w Matlabie zmienna - proste wypisanie wartości disp( zmienna) - funkcja wypisania wartości disp ('jakiś tekst') - wypisanie tekstu na ekranie

Prezentacja wyników - tekst i dane fprintf('Wartość zmiennej a wynosi %znak \n', a); gdzie %znak to sposób wyświetlania: %d liczba całkowita %e liczba w zapisie wykładniczym, np. 3.1415e+00 %f zapis stałoprzecinkowy Uwaga: \n przejście do nowego wiersza

WYKRESY 2-wymiarowe 1 sposób: Funkcja plot Wymaga utworzenia dwóch wektorów o tej samej liczbie elementów x=0:10 %generowanie wektora co 1 % wart_pocz:wart_koncowa y=[5.1 1.1 -2 -3 4.2 5.5 4.3 3.1 4.5 5.9 4.9] z=[0 2 3 3 5 4 3 4 5 4 9] %trzeci wektor title('wykres') %dodanie tytułu plot(x,y) %rysowanie wykresu plot(x,y,'r',x , z,'w') %dwie krzywe y(x) i z(x)

Przykłady wykresów funkcji x=0:90 %generowanie wektora co 1 y=sin(pi*x/180) %wektor y plot(x,y) %rysowanie x=0:pi/50:6*pi y=cos(2*x)./sqrt(x+1) plot(x,y) Uwaga: zapis kropkowy elementowe dzielenie(mnożenie) wektorów x = - 9:1:9 z = x.^2 plot(x, z)

Wykres funkcji podanej jako parametr tekstowy 2 sposób: Funkcja fplot Wykres funkcji podanej jako parametr tekstowy jedna krzywa: fplot('sin(x*x)/x',[0 4*pi]) punkt dzielenia przez 0 nie jest rysowany - ostrzeżenie dwie krzywe: fplot('[sin(x*x)/x cos(x)]',[0.01 4*pi]) Uwaga: zamiast x może być inna litera jako argument funkcji w jej opisie

Przykładowe wykresy powierzchniowe 3D peaks cylider (srednica) sphere (precyzja)

Korzystamy z funkcji mesh(x,y,z) Dla powierzchni podanej równaniem: Wykresy powierzchniowe (3D) Korzystamy z funkcji mesh(x,y,z) Dla powierzchni podanej równaniem: z=cos3x siny

Piszemy m-plik: clear y = 0:0.01:pi %wektor wierszowy x = y' %wektor kolumnowy! z=cos(3*x) * sin(y) % tablica z jest kwadratowa mesh(x, y, z) rezultat mnożenia dwóch wektorów: * sin y cos3x

2. Metoda wsadowa wykonywania operacji W Matlab-ie można zapisać tekst ciągu instrukcji w pliku tekstowym ASCII o rozszerzeniu m. (tzw. m-pliki lub mex-pliki) W Matlab-ie można jako polecenie wpisać w linii poleceń nazwę pliku z ciągiem instrukcji - instrukcje pobierane kolejno i wykonywane od pierwszej do ostatniej Konieczne jest ustawienie "ścieżki" do naszego foldera w menu Current directory

>>plik >>test1 Można wykonać m-plik w Matlabie wpisując w linii poleceń jego nazwę (bez rozszerzenia) >>plik >>test1 lub z okna edytora- Run W m-pliku wpisujemy kolejne instrukcje (bez znaków >>)

Uwaga: Instrukcje oddzielamy przecinkami lub piszemy w osobnych wierszach Średniki na końcu instrukcji powodują brak wyświetlenia echa instrukcji na ekranie.

Instrukcje sterujące w MATLABIE

Instrukcja warunkowa if warunek1 instrukcje (gdy spełniony warunek1) elseif warunek2 instrukcje (gdy spełniony warunek2) else instrukcje (gdy niespełnione warunki) end

a == 0 (czy równe? – wartość prawda lub fałsz) Przykłady warunków – użycie operatorów porównania: a == 0 (czy równe? – wartość prawda lub fałsz) b<c 2*a >= 5 x ~= 5 (różne od.. ~ to operator negacji

Przykład 1: if i>0 disp(i); end; %… poprzednie instrukcje ustalające wartość zmiennej i if i>0 disp(i); end; jeżeli i jest większe od 0 to wyświetl wartość i, jeśli nie to "nic nie rób"

Przykład 2: end kończy instrukcję a = 1 b = 6 c = 3 delta = b^2 - 4 * a *c; if delta<0 disp ('delta jest ujemne') else disp(delta) end; end kończy instrukcję

Przykład 3: …obliczamy jakieś x if x>0 && x<10 disp ('w przedziale 0 10') else disp('poza przedziałem') end; można też and(x>0, x<10) && operator koniunkcji || operator alternatywy jak w JavaScript

Instrukcja iteracyjna („pętla liczona”) for zmienna = wartość_pocz:krok: wartość_końcowa, instrukcja, …. end

Przykład prostych pętli: 1 4 9 16 25 36 49 64 81 100 %generujemy tablicę for i= 1:1:10, a(i) = i^2; end; disp(a) suma=0; suma=suma+a(i); disp('suma=') disp(suma)

Przykład 4 ("zagnieżdżanie" iteracji): for i= 1:1:5, for j = 1:1:5, a(i , j) = i*j %jakieś wyrażenie f(i,j) end 1 2 3 4 5 6 8 10 9 12 15 16 24 32 20 25

Przykład 6 (sumowanie elementów w tablicy dwuwymiarowej): suma = 0; for i= 1:1:5, for j = 1:1:5, a(i , j) = 2*i - 4* j, suma=suma+a(i , j); end disp(suma)

Przykład 6b (sumowanie dodatnich elementów w tablicy dwuwymiarowej): suma = 0; for i= 1:1:5, for j = 1:1:5, a(i , j) = 2*i - 4* j, if a(i,j)>0 suma=suma+a(i , j); end; end disp(suma)

Przykład 7 (wielokrotny test – wyznaczanie największego elementu) maks=A(1) %założenie for i= 2:1:20, if A(i)>maks maks=A(i) end disp(maks) badamy elementy od 2 do ostatniego

Przykład 8 Ile liczb jest w przedziale [0 5] ile=1 %założenie for i= 1:1:20, if A(i)>=0 && A(i)<=5 ile=ile+1; end disp(ile)

Przykład 9 Wykorzystanie standardowej funkcji max (lub min) A=rand(20) % losowe wypełnienie tablicy 20x20 naj1=max(A) naj2 = max(naj1) wektor maksimów w kolumnach (maksima lokalne) największy z maksimów lokalnych

Podstawowe różnice Javascript vs. Matlab operatory składania ++  += = /= *= %= nie ma negacja ! ~ instrukcja warun-kowa if (warunek) {instrukcje} else if (warunek2) if warunek instrukcje elseif warunek2 end instrukcja for for (inicjacja; warunek;inkrementacja) { } for licznik=inicjacja:krok:wartosc_koncowa

Sortowanie bąbelkowe Sortowanie bąbelkowe skrócone Porównywanie kolejnych par elementów sąsiadujących i zamiana miejscami w przypadku niewłaściwej kolejności 1 2 3 4 ..... N N-1 porównań Wykonujemy N przebiegów Sortowanie bąbelkowe skrócone Przebiegów wykonujemy N-1 W każdym kolejnym przebiegu liczba analizowanych par jest zmniejszana o 1, a

1 PRZEBIEG 96 12 22 76 64 23 74 11 2 PRZEBIEG 12 22 76 64 23 74 11 96 i.t.d.

M-plik - sortowanie "bąbelkowe" clc clear N=5; G=rand(1,N) %stadardowa funkcja sortująca G1=sort(G) %sortowanie bąbelkowe for k=1:N-1 for m=1:N-k if G(m)>G(m+1) pom=G(m); G(m)=G(m+1); G(m+1)=pom; end disp(G) %pokazuje kolejne wypływające "bąbelki" %ostatecznie po posortowaniu disp(G) zamiana miejscami gdy elementy w niewłaściwej kolejności