Metody optymalizacji - wprowadzenie do SciLab a

Podobne dokumenty
Wprowadzenie. SciLab Zmienne. Operatory. Macierze. Macierze. Tomasz Łukaszewski. Politechnika Poznańska Instytut Informatyki

SciLab Literatura. Tomasz Łukaszewski. Politechnika Poznańska Instytut Informatyki

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Scilab - wprowadzenie

Równania nieliniowe, nieliniowe układy równań, optymalizacja

Wprowadzenie do Scilab: macierze

Metody i analiza danych

Wprowadzenie do Scilab: macierze

MATLAB - laboratorium nr 1 wektory i macierze

Matlab Składnia + podstawy programowania

Matlab Składnia + podstawy programowania

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

Wprowadzenie do Scilab: macierze

//warunki początkowe m=500; T=30; c=0.4; t=linspace(0,t,m); y0=[-2.5;2.5];

Ćwiczenie 3: Wprowadzenie do programu Matlab

Elementy metod numerycznych - zajęcia 9

Podstawowe operacje na macierzach

Analiza matematyczna i algebra liniowa Macierze

WPROWADZENIE DO ŚRODOWISKA SCILAB

Krótkie wprowadzenie do macierzy i wyznaczników

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

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

1 Macierze i wyznaczniki

Wprowadzenie do środowiska

Drugi sposób definiowania funkcji polega na wykorzystaniu polecenia:

Macierze Lekcja I: Wprowadzenie

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

Obliczenia w programie MATLAB

Scilab. Data ostaniej modyfikacji: 2 grudnia Piotr Fulmański

Metody numeryczne Laboratorium 2

Macierze. Rozdział Działania na macierzach

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

Obliczenia iteracyjne

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

Wykład 14. Elementy algebry macierzy

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

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

Wartości x-ów : Wartości x ów można w Scilabie zdefiniować na kilka sposobów, wpisując odpowiednie polecenie na konsoli.

Wprowadzenie do Mathcada 1

Wprowadzenie do programowania w SciLab: typy danych, wyrażenia, operatory, funkcje własne, skrypty.

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Scilab skrypty (programowanie)

Wykład 5. Metoda eliminacji Gaussa

Met 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

Podstawowe operacje na macierzach, operacje we/wy

Modelowanie danych hodowlanych

Modelowanie komputerowe w ochronie środowiska

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

1 Programowanie w matlabie - skrypty i funkcje

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

Wprowadzenie do programu Mathcad 15 cz. 1

Algebra macierzy

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

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

Zakłócenia w układach elektroenergetycznych LABORATORIUM

, A T = A + B = [a ij + b ij ].

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

Przetwarzanie sygnałów

1 Logika. 1. Udowodnij prawa logiczne: 3. (p q) (p q) 2. (p q) ( q p) 2. Sprawdź, czy wyrażenie ((p q) r) (p (q r)) jest tautologią.

Ekoenergetyka Matematyka 1. Wykład 3.

A A A A A A A A A n n

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

Programowanie w języku Matlab

3. Macierze i Układy Równań Liniowych

Układy równań liniowych. Krzysztof Patan

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Ćwiczenie 1. Wprowadzenie do programu Octave

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Wykład 4. Matlab cz.3 Tablice i operacje na tablicach

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Przykładowe zadania na egzamin z matematyki - dr Anita Tlałka - 1

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Funkcje Andrzej Musielak 1. Funkcje

zajęcia 2 Definiowanie wektorów:

ALGEBRA LINIOWA. Wykład 2. Analityka gospodarcza, sem. 1. Wydział Zarządzania i Ekonomii Politechnika Gdańska

DB Algebra liniowa semestr zimowy 2018

Metody Numeryczne Optymalizacja. Wojciech Szewczuk

(mniejszych od 10 9 ) podanych przez użytkownika, wypisze komunikat TAK, jeśli są to liczby bliźniacze i NIE, w przeciwnym przypadku.

ŚRODOWISKO MATLAB WPROWADZENIE. dr inż. Dariusz Borkowski. Podstawy informatyki. (drobne) modyfikacje: dr inż. Andrzej Wetula

Analiza matematyczna i algebra liniowa Macierze

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

Metody numeryczne Wykład 4

Analiza numeryczna Kurs INP002009W. Wykłady 6 i 7 Rozwiązywanie układów równań liniowych. Karol Tarnowski A-1 p.

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Wykład Matematyka A, I rok, egzamin ustny w sem. letnim r. ak. 2002/2003. Każdy zdający losuje jedno pytanie teoretyczne i jedno praktyczne.

, to liczby γ +δi oraz γ δi opisują pierwiastki z a+bi.

Laboratorium 1b Operacje na macierzach oraz obliczenia symboliczne

Kurs z matematyki - zadania

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

Roger Bacon Def. Def. Def. Funktory zdaniotwórcze

Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

MATLAB tworzenie własnych funkcji

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

Aby przygotować się do kolokwiów oraz do egzaminów należy ponownie przeanalizować zadania

Algebra liniowa. 1. Macierze.

Transkrypt:

Metody optymalizacji - wprowadzenie do SciLab a 1

Zmienne Nazwy: dozwolone nazwy zawierają znaki: od a do z, od A do Z, od 0 do 9 oraz _, #,!, $,? Operator przypisania wartości zmiennej = Przykład x=2 napis= Hello Operatory Operatory logiczne & (and), (or), ~ (not), == (operator równoważności) Operatory na łańcuchach <lancuch> + <lancuch> (połączenie) Operatory zakresu indeksów <start> : <stop> (zakres ze zmianą równą1) <start> : <krok zmiany> : <stop> Przykład hello + world 3:7 3:2:7 Zadanie 1: wypisz liczby całkowite od 10 do 1 malejąco 2

Macierze Definiowanie przez wprowadzenie z linii poleceń: [ oraz ] oznacza początek i koniec macierzy, oddziela elementy w wierszu ; oddziela wiersze : definiowanie zakresu Przykład a = [1,2,3] // wektor wierszowy b = [4 ; 5 ; 6] // wektor kolumnowy c = [1,2; 3,4; 5,6] // macierz 3 wiersze 2 kolumny d = [1:10] // wektor wartości od 1 do 10 e = 1:10 // wektor wartości od 1 do 10!! f = [d ; e] f = [1:10;1:10] Macierze Odwołanie się do elementów : ( oraz ) pozwala odwołać się do elementów, podając w nawiasach numer wiersza i kolumny oddzielony, : interpretowany jako cały zakres zmienności $ indeks ostatniego elementu Przykład c(2,1) c(1:2,1:2) c(1,:) c(:,1) c($,$) // 2-gi wiersz i 1-a kolumna // podmacierz // elementy 1-go wiersza // elementy 1-ej kolumny // prawy dolny element Zadanie 2: wypisz 2 pierwsze elementy macierzy c Zadanie 3: wypisz 3 ostatnie elementy macierzy c Zadanie 4: wypisz wszystkie elementy macierzy c 3

Macierze Odwołanie się do elementów : wybieranie elementów za pomocą macierzy wartości logicznych Przykład a=[1:5] b=sin(a) c=b>0 b(c) a(c) // macierz wartości logicznych // wybieranie // wybieranie Zadanie 5: z macierzy o wartościach całkowitych wybierz wartości większe od 7 Macierze Funkcje równomiernie zapełniające zakres linspace(a,b) liniowo od a do b (100 elementow) linspace(a,b,c) liniowo od a do b (c elementow) logspace(a,b) logarytmicznie j.w. Przykład linspace(1,100) linspace(1,100,10) g = logspace(1,3,3) log10(g) //domyslnie 100 elementow //10 elementow 4

Macierze Funkcje tworzące macierze specjalne ones() macierz zawierająca 1 zeros() macierz zawierająca 0 eye() macierz jednostkowa rand() macierz losowa Przykład ones(3,2) zeros(2,3) eye(4,4) rand(2,3) // macierz 3x2 // macierz 2x3 // macierz 4x4 // macierz 2x3 Macierze Funkcje tworzące macierze specjalne diag() utworzenie macierzy diagonalnej z elementów wektora lub wydobycie przekątnej z istniejącej macierzy Przykład h=[1:3] diag(h) h=rand(3,3) diag(h) // utworzenie macierzy diagonalnej // wydobycie przekątnej z macierzy 5

Macierze Operacje: operator transpozycji macierzy A + B dodanie dwóch macierzy +, -, *, / - dzielenie to mnożenie przez odwrotność!!!.*,./ - operacje na elementach macierzy Przykład A=[1,2,3] B=[4;5;6] A+A A+B // ERROR!!! A+B A+3 A B Macierze Przykład A * B // mnożenie w sensie Cauchy ego B * A // mnożenie w sensie Cauchy ego A * B // ERROR!!! A.* B // mnożenie element przez element A * 3 A B 6

Macierze Operacje (uwaga: zdefiniuj wpierw macierze) A + B = B + A // przemienność A + (B+C) = (A + B)+C // łączność I*A = A * I = A A * (B *C) = (A * B)*C // łączność A*B = B*A = I // B macierz odwrotna! Macierz osobliwa to macierz nie posiadająca macierzy odwrotnej, np. A = [1,2; 1,2] Zadania sprawdź powyższe zależności Rozwiązywanie układów równań a * x = b --> a -1 * a * x = a -1 * b Uwaga: w Scilabie możemy zapisać x = a\b!! Zadanie (rozwiązanie : x1 = 1, x2 = 2) x1 + 2x2 = 5 2x1 + x2 = 4 Program a=[1,2;2,1] b=[5;4] x=a^-1 * b x=a\b 7

Rozwiązywanie układów równań Zadanie x1+2x2 + 3x3 = 3 -x1-5x2 + 8x3 = 5 4x1 + 9x3 = 7 Proste wykresy Operacje: plot2d(matrix) matrix to wektor Nx1 lub 1xN (lub N x K) Program A=(0:0.1:6.28) B=sin(A) plot2d(b) 8

Proste wykresy Operacje: plot2d(x,y) wymaga wektorów kolumnowych! UWAGA na apostrof przy kopiowaniu z instrukcji Program x=[0:0.1:6.28] y=sin(x) plot2d(x,y) Proste wykresy Program x=[0:0.1:6.28] y=sin(x) y2=cos(x) plot2d(x,[y,y2],leg= sin@cos,style=[2,3]) xtitle( sin i cos, x, y ) 9

Proste wykresy Operacje: plot3d(x,y,z) Program x=linspace(0, 6.28,11) y=x z= cos(x) *cos(x) plot3d(x,y,z) Proste wykresy Zadanie: narysuj wykres funkcji f(x,y) = x 2 +y 2 x i y zmieniają się od -3 do 3 10

Proste wykresy Program: x=linspace(-3, 3,50) y=linspace(-3, 3, 50) xx=x' * ones(y) yy=ones(x)'*y z= (xx.*xx)+(yy.*yy) plot3d(x,y,z) Proste wykresy Operacje: param3d(x,y,z) wykres trajektorii Program t=linspace(0,4*%pi,101) x=2*cos(t) y=2*sin(t) z=4*t xset("thickness",3) param3d(x,y,z) xset("thickness",1) param3d(x,y,zeros(z)) 11

Funkcje Program cz. 1 function y = kwadrat (x) y = x * x endfunction function z = kwadrat2 (x1,x2) z = x1^2 + x2^2 endfunction Wykresy 2D Operacje: plot(x,y) Program cz. 2 x=linspace(1,10,50) plot(x,kwadrat) 12

Wykres konturowy Operacje: contour(x,y,z,nz) x (y) - wektor wartości o rozmiarze n1 (n2) z macierz wartości o rozmiarze n1 * n2 nz liczba poziomów Program cz. 3 x=linspace(-1,1,100) y=linspace(-1,1,100) contour(x,y,kwadrat2,10) 13

Optymalizacja Programowanie liniowe (linpro) Zadanie min z = 3x1 + 5x2 2x3 x1 + 3x2 = 5 x1 + x2 x3 = 2 2x1 x2 <= 3 x1 + x2 + x3 <=25 0 <= x1 <= 5, 0 <= x2 <= 10, 0 <= x3 <= 3 Optymalizacja Program p=[3;5;-2] C=[1,3,0;1,1,-1;2,-1,0;1,1,1]; b=[5;2;3;25] xl=[0;0;0] xu=[5;10;3] [xopt,lagr,fopt]=linpro(p,c,b,xl,xu,2) // 2 ograniczenia //równościowe!!! 14

Optymalizacja Zadanie Sprawdź dla poprzedniego zadania, jakie są rozwiązania, gdy liczba ograniczeń równościowych zmienia się od 0 do 4 Optymalizacja Programowanie kwadratowe (quapro) [UWAGA wymaga zainstalowania Quapro poleceniem atomsinstall("quapro") oraz ponownego uruchomienia Scilaba] Zadanie min z = x1 2 +x1x2+3x1+5x2-2x3 x1 + 3x2 = 5 x1 + x2 x3 = 2 2x1 x2 <= 3 x1 + x2 + x3 <=25 0 <= x1 <= 5, 0 <= x2 <= 5, 0 <= x3 <= 3 15

Optymalizacja Program Q=[2,1,0;1,0,0;0,0,0] p=[3;5;-2] C=[1,3,0;1,1,-1;2,-1,0;1,1,1]; b=[5;2;3;25] xl=[0;0;0] xu=[5;10;3] [xopt,lagr,fopt]=quapro(q,p,c,b,xl,xu,2) // 2 ogr. Równościowe UWAGA macierz Q musi być symetryczna i pozytywnie określona Optymalizacja Zadanie Napisz program dla funkcji celu postaci: min z = x1 2 +2x1x2+3x1+5x2-2x3 16

Optymalizacja Programowanie nieliniowe (optim) Zadanie min z = sin(x1*x2) + cos(x1) na obszarze ograniczonym przez nierówności: 0 <= x1 <= 10, 0 <= x2 <= 10 punkt startowy: (1, 1) Optymalizacja Programowanie nieliniowe (optim) Wymagane jest zdefiniowanie funkcji kosztu (np. o nazwie costf), która ma następujące wywołanie function [f, g, ind] = costf(x, ind) x to aktualne rozwiązanie, ind to flaga f to minimalizowana funkcja g to gradient funkcji 17

Optymalizacja Programowanie nieliniowe (optim) Wywołanie funkcji: optim(costf,'b',[0;0],[10;10],[1;1]) znaczenie kolejnych parametrów funkcji optim costf oznacza funkcję kosztów j.w. b oznacza że są aktywne ograniczenia dolne i górne ograniczenie punkt startowy domyślnie stosowana jest metoda quasi-newtona z BFGS Optymalizacja 18

Optymalizacja Program function [f,g,ind]=costf(x,ind) f = sin(x(1)*x(2))+cos(x(1)) g = [0;0] g(1)= x(2)*cos(x(1)*x(2))-sin(x(1)) g(2)= x(1)*cos(x(1)*x(2)) endfunction [fopt,xopt]=optim(costf,'b',[0;0],[10;10],[1;1]) Optymalizacja Zadanie Przeanalizuj działanie programu podanego w pomocy Scilaba dla funkcji optim, znajdującego minimum dla funkcji Rosenbrocka Optymalizacja metody stochastyczne Projekty Projekt 1 Algorytm genetyczny zakres projektu podaje prowadzący laboratorium Projekt 2 Metoda symulowanego wyżarzania zakres projektu podaje prowadzący laboratorium 19