Spis treści. Optymalizacja jednowymiarowa
|
|
- Seweryn Bednarski
- 6 lat temu
- Przeglądów:
Transkrypt
1 Spis treści 1 Optymalizacja jednowymiarowa 2 Optymalizacja wielowymiarowa 2.1 Zadanie - rozkład Cauchy'ego 2.2 Rozwiązanie 2.3 Zadanie - Data Container 2.4 Rozwiązanie Optymalizacja jednowymiarowa Omawianie zagadnienia optymalizacji rozpocznijmy od prostego przykładu. Zdefiniujmy pewną funkcję i zobaczmy jak wygląda jej wykres. import numpy as np import pylab as py liczniktestowej= def testowa(x): global liczniktestowej liczniktestowej+=1 return 1/x+np.exp(x) xtest=np.arange(0.2,2,0.01) ytest=[testowa(x) for x in xtest] py.plot(xtest,ytest) py.show()
2 Na rozważanym przedziale [0.2,2] powyższa funkcja ma tylko jedno ekstremum lokalne. Taką funkcję nazywamy unimodalną. Zmienna liczniktestowej umożliwi nam zliczanie wywołań funkcji testowej przez analizowane procedury. Zagadnienie, którym teraz będziemy się zajmować to problem numerycznego znajdowania takiego ekstremum. Jak w każdym problemie numerycznym ekstremum szukać będziemy zakładając pewną dokładność otrzymanego wyniku, którą oznaczmy xtol. Na wstępie przyjmijmy, że poszukujemy ekstremum z dokładnością xtol=0.01. Najprostszą metodą będzie policzenie wartości funkcji dla wszystkich wartości x z podanego przedziału co xtol. Jest to metoda siłowa i wielokrotnie licząca wartość funkcji. Jej kod możemy znaleźć poniżej. def bruteforce(func,xmin,xmax,args=(),xtol=0.01): xlist=np.arange(xmin,xmax,xtol) ylist=[func(x,*args) for x in xlist] return xlist[ylist.index(max(ylist))] Innym, znacznie efektywniejszym sposobem znajdowania minimum może być następująca procedura rekurencyjna:
3 podzielmy przedział [xmin,xmax] na 3 równe część: [xmin,xl],[xl,xr] oraz [xr,xmax] jeżeli wartość funkcji w xl jest mniejsza od wartości funkcji w xr to powtórz procedurę dla przedziału [xmin,xr]. W przeciwnym przypadku powtórz procedurę dla przedziału [xl,xmax]. zakończ działanie gdy badany przedział jest krótszy niż xtol. Przykładowa implementacja tej metody wygląda następująco def twomidpointsr(func,xmin,xmax,args=(),xtol=0.01): if xmax-xmin<xtol: return 0.5*(xmax+xmin) xl=xmin+(xmax-xmin)/3.0 xr=xmax-(xmax-xmin)/3.0 fxl=func(xl,*args) fxr=func(xr,*args) if fxl>fxr: return twomidpointsr(func,xmin,xr,args,xtol) else: return twomidpointsr(func,xl,xmax,args,xtol) Tą metodą możemy już szukać minimum z dowolną dokładnością, co nie będzie skutkowało znacznie większym czasem obliczeń. Zauważmy jednak, że w każdej iteracji wartość minimalizowanej funkcji liczona jest dwukrotnie. Jeżeli mamy do czynienia z funkcją, dla której obliczenie pojedynczej wartości jest bardzo czasochłonne to warto się zastanowić czy nie można tego wyniku poprawić. Zauważmy, że dla działania tej metody wcale nie jest konieczne dzielenie badanego odcinka dokładnie na trzy równe części. Można dokonać tego podziału w zupełnie innej proporcji. Warto tak dobrać punkty xl i xr, aby xr pokrywał się z xl (lub xl z xr) w kolejnym kroku iteracji. Jeżeli dodatkowo stworzymy zmienne przechowujące wcześniej liczone wartości funkcji to uda nam się ograniczyć liczbę wywołań funkcji o połowę. Opisana metoda to tak zwana metoda złotego podziału. Przykładowa implementacja wygląda następująco def GoldenRatioRearch(func,xmin,xmax,args=(),xtol=0.01): golden=0.5*(np.sqrt(5.0)-1.0) xl=xmax-golden*(xmax-xmin) xr=xmin+golden*(xmax-xmin) fxl=func(xl,*args) fxr=func(xr,*args) while xmax-xmin>xtol: if fxl<fxr: xmin=xmin xmax=xr xr=xl fxr=fxl xl=xmax-golden*(xmax-xmin) fxl=func(xl,*args) else: xmin=xl
4 xmax=xmax xl=xr fxl=fxr xr=xmin+golden*(xmax-xmin) fxr=func(xr,*args) return 0.5*(xmax+xmin) Napisanej metody optymalizacji możemy użyć w celu dopasowania funkcji do danych empirycznych metodą najmniejszych kwadratów. Przykład takiego zastosowania poniżej. #suma kwadratów def squares(a,func,xlist,ylist): return sum([(func(xlist[i],*a)-ylist[i])**2 for i in range(len(xlist))]) #funkcja liniowa def liniowa(x,a): return x*a #generujemy przykladowe xlist xlist=np.arange(,1,0.001) #generujemy wartosci funkcji z szumem ylist=[liniowa(x,1.23) *np.random.randn() for x in xlist] #najlepsze dopasowanie metoda golden ration print GoldenRatioRearch(squares,,10,args=(liniowa,xlist,ylist),xtol=0.01) Optymalizacja wielowymiarowa Przejście od optymalizacji jedno- do wielowymiarowej fundamentalnie komplikuje problem. Pierwszym problemem jest istnienie tak zwanych punktów siodłowych. Nie istnieją zatem metody które zawsze znajdują szukane minimum, nawet jeżeli wiadomo że takie istnieje. Najpopularniejszą metodą jest downhill symplex lub inaczej metoda Neldera-Meada. Z powodu znacznego stopnia komplikacji nie będziemy jej samodzielnie implementować, a jedynie posłużymy się implementacją z biblioteki scipy.optimize. Dzięki niej możemy np. dopasowywać funkcję z więcej niż jednym parametrem do danych eksperymentalnych. import scipy.optimize as so #suma kwadratów def squares(a,func,xlist,ylist): return sum([(func(xlist[i],*a)-ylist[i])**2 for i in range(len(xlist))]) #funkcja liniowa
5 def liniowa(x,a,b): return x*a+b #generujemy przykladowe xlist xlist=np.arange(,1,0.001) #generujemy wartosci funkcji z szumem ylist=[liniowa(x,1.23,-0.73) *np.random.randn() for x in xlist] #najlepsze dopasowanie metoda golden ration print so.fmin(squares,(1,),args=(liniowa,xlist,ylist)) Oczywiście dopasowywanie możemy przeprowadzać nie tylko metodą najmniejszych kwadratów. Zadanie - rozkład Cauchy'ego Wylosuj liczb z rozkładu Cauchy'ego z parametrami loc=1.23 i scale=2.0. Do wylosowanych danych dopasuj rozkład Cauche'ego trzema metodami METODA 1 - stwórz histogram otrzymanych wartości, znormalizuj go i metodą najmniejszych kwadratów dopasauj gęstość rozkładu do histogramu METODA 2 - dopasuj gęstość rozkładu do wylosowanych danych metodą największej wiarygodności METODA 3 - z wylosowanych danych stwórz dystrybuantę empiryczną. Metodą najmniejszych kwadratów dopasuj dystrybuantę rozkładu Cauchy'ego do dystrybuanty empirycznej. Rozwiązanie import scipy.optimize as so def rho_cauchy(x,loc,scale): return (np.pi*scale*(1.0+(x-loc)**2/(scale**2)))**(-1.0) def F_cauchy(x,loc,scale): return 0.5+np.arctan((x-loc)*1.0/scale)/np.pi #losujemy liczb z rozkladu Cauchyego o loc=1.23 i scale=2.0 x=2*np.random.standard_cauchy(10000)+1.23 N=len(x) #METODA 1 - Dopasowanie metoda najmniejszych kwadratow do histogramu #tworzymy histogram hist,bins= np.histogram(x,bins=np.linspace(-20,20,61)) #dlugosc przedzialu histogramowania
6 przedzial=bins[1]-bins[] #normalizujemy histogram aby moc go porownac z gestoscia hist=hist*1.0/len(x)/przedzial #liczymy wsp. srodkow przedzialow histogramowania xhist=bins[:-1]+0.5*przedzial #definiujemy sume kwadratow def squares((loc,scale)): return sum([(rho_cauchy(xhist[i],loc,scale)-hist[i])**2 for i in range(len(hist))]) #szukamy minimum funkcja fmin fit1=tuple(so.fmin(squares,(,1))) print 'wynik metody1 to '+str(fit1) #ogladamy wynik py.plot(xhist,hist) xtest=np.linspace(-20,20,1001) ytest=[rho_cauchy(a,*fit1) for a in xtest] py.plot(xtest,ytest) py.show() #METODA 2 - Metoda najwiekszej wiarygodnosci #definiujemy -funkcje wiarygodnosci def L((loc,scale)): return -sum([np.log(rho_cauchy(a,loc,scale)) for a in x]) #szukamy minimum fit2=tuple(so.fmin(l,(,1))) print 'wynik metody2 to '+str(fit2) #METODA 3 - dopasowanie dystrybuant xx=sorted(x) yy=np.linspace(,1,n) #definiujemy funkcje KS bedaca maksimum z roznicy miedzy dystrybuanta empiryczna a teoretyczna def KS((loc,scale)): return max([abs(f_cauchy(xx[i],loc,scale)-yy[i]) for i in xrange(n)]) #szukamy minimum fit3=tuple(so.fmin(ks,(,1))) print 'wynik metody3 to '+str(fit3) #ogladamy wynik cut=100 py.plot(xx[cut:-cut],yy[cut:-cut]) xtest=np.linspace(-20,20,1001) ytest=[f_cauchy(x,*fit3) for x in xtest]
7 py.plot(xtest,ytest) py.show() Zadanie - Data Container Napisz klasę funkcja przyjmującą w konstruktorze parametry funkcji i posiadającą reprezentację tekstową. Napisz dowolną funkcję dziedziczącą po klasie funkcja, której metoda call przyjmuje jeden argument i zwraca wartość funkcji dla podanego argumentu i parametrów podanych w konstruktorze. Napisz klasę DataContainer przyjmującą w konstruktorze dwie serie danych empirycznych o tej samej długości odpowiadające współrzędnym x i y. Obiekt klasy DataContainer powinien być wyposażony w metodę o nazwie fit, która przyjmuje jako argument obiekt klasy funkcja. Metoda fit powinna zwracać obiekt takiej samej klasy jak otrzymany w argumencie, ale z parametrami, dla których funkcja jest najlepiej (metodą najmniejszych kwadratów) dopasowana do przechowywanych w obiekcie danych. Rozwiązanie import numpy as np import pylab as py import time import scipy.optimize as so class funkcja(object): def init (self,*args): self.args=args def str (self): return 'to jest funkcja o nazwie '+self. class. name +' i argumentach '+str(self.args) class liniowa(funkcja): def call (self,x): return self.args[]*x*x+self.args[1] class DataContainer(object): def init (self,x,y): self.x=np.array(x) self.y=np.array(y) self.n=len(x) def str (self): return '''to jest Data Container z danymi: x[:10]:'''+str(self.x[:10])+''' y[:10]:'''+str(self.y[:10]) def fit(self,funkcja): parametry_poczatkowe=funkcja.args def squares(parametry):
8 funkcja. init (*tuple(parametry)) return sum((map(funkcja,self.x)-self.y)**2) parametry_dopasowane=so.fmin(squares,parametry_poczatkowe) funkcja. init (*tuple(parametry_dopasowane)) return funkcja #generujemy przykladowe xlist xlist=np.arange(,1,0.001) #generujemy wartosci funkcji z szumem f=liniowa(1.23,-0.73) ylist=[f(x)+0.05*np.random.randn() for x in xlist] d=datacontainer(xlist,ylist) f=liniowa(1,2) f=d.fit(f) py.plot(d.x,d.y) py.plot(d.x,map(f,d.x)) py.show() "Programowanie dla Fizyków Medycznych"
Równania różniczkowe zwyczajne
Równania różniczkowe zwyczajne Zajmiemy się teraz problemem numerycznego rozwiązywania równań różniczkowych zwyczajnych o postaci: z warunkeim początkowym. Zauważmy że przykładowe równanie różniczkowe
Bardziej szczegółowoZadania z rysowania i dopasowania funkcji
Spis treści 1 Zadania z rysowania i dopasowania funkcji 1.1 Znajdowanie miejsca zerowego funkcji 1.2 Wczytywanie danych i wykres 1.3 Dopasowywanie krzywej do danych i wykres 1.3.1 Wskazówki Zadania z rysowania
Bardziej szczegółowoĆwiczenia z przetwarzania tablic 2D
Ćwiczenia z przetwarzania tablic 2D Wyświetlanie tablic 2D Jako wstęp do przetwarzania obrazów w pythonie przećwiczmy podstawowe operacje na dwuwymiarowych tablicach numpy w postaci których będziemy takie
Bardziej szczegółowoSpis treści. Dekoratory. 1 Dekoratory 1.1 Zadanie Zadanie Zadanie Zadanie 4
Spis treści 1 Dekoratory 1.1 Zadanie 1 1.2 Zadanie 2 1.3 Zadanie 3 1.4 Zadanie 4 Dekoratory Dekoratory w Pythonie służą do zastępowania zdefiniowanych przez nas funkcji przez funkcje (lub inne obiekty)
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ółowoW4 Eksperyment niezawodnościowy
W4 Eksperyment niezawodnościowy Henryk Maciejewski Jacek Jarnicki Jarosław Sugier www.zsk.iiar.pwr.edu.pl Badania niezawodnościowe i analiza statystyczna wyników 1. Co to są badania niezawodnościowe i
Bardziej szczegółowoPodstawy programowania funkcjonalnego
Podstawy programowania funkcjonalnego haskell.mariuszrozycki.pl Mariusz Różycki Churchill College, University of Cambridge rev. 2014.03.27.1 Wprowadzenie Materiały haskell.mariuszrozycki.pl Slajdy (w tym
Bardziej szczegółowoRegresja wieloraka Ogólny problem obliczeniowy: dopasowanie linii prostej do zbioru punktów. Najprostszy przypadek - jedna zmienna zależna i jedna
Regresja wieloraka Regresja wieloraka Ogólny problem obliczeniowy: dopasowanie linii prostej do zbioru punktów. Najprostszy przypadek - jedna zmienna zależna i jedna zmienna niezależna (można zobrazować
Bardziej szczegółowoMetody Numeryczne Optymalizacja. Wojciech Szewczuk
Metody Numeryczne Optymalizacja Optymalizacja Definicja 1 Przez optymalizację będziemy rozumieć szukanie minimów lub maksimów funkcji. Optymalizacja Definicja 2 Optymalizacja lub programowanie matematyczne
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala
Bardziej szczegółowoSpis treści. Wstęp. Regresja
Spis treści 1 Wstęp 2 Regresja 2.1 Regresja liniowa 2.1.1 Przykład: Dopasowanie prostej do punktów (zakładamy jednakową wariancję Y dla każdego X) 2.1.2 Ocena jakości dopasownia 2.1.2.1 Współczynnik 2.1.2.2
Bardziej szczegółowoGenerowanie ciągów pseudolosowych o zadanych rozkładach przykładowy raport
Generowanie ciągów pseudolosowych o zadanych rozkładach przykładowy raport Michał Krzemiński Streszczenie Projekt dotyczy metod generowania oraz badania własności statystycznych ciągów liczb pseudolosowych.
Bardziej szczegółowoTEMAT : KLASY DZIEDZICZENIE
TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą
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ółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)
ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest
Bardziej szczegółowoLiczby losowe i pętla while w języku Python
Liczby losowe i pętla while w języku Python Mateusz Miotk 17 stycznia 2017 Instytut Informatyki UG 1 Generowanie liczb losowych Na ogół programy są spójne i prowadzą do przewidywanych wyników. Czasem jednak
Bardziej szczegółowoĆwiczenia z mainuplacji obrazem rozpocznijmy od wczytania pliku, który będziemy przetwarzać. Dla fizyków medycznych naturalnie będzie to plik DICOM.
Spis treści 1 Manipulacja obrazem 1.1 Jasność 1.2 Gamma 1.3 Próg 1.4 Schodek 1.5 Rozmycie i wyostrzenie Manipulacja obrazem Ćwiczenia z mainuplacji obrazem rozpocznijmy od wczytania pliku, który będziemy
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Wykład 5 Podstawowe techniki programownia w przykładach Janusz Szwabiński Plan wykładu: Metoda babilońska wyliczania pierwiastka Liczby pierwsze i sito Eratostenesa Metoda bisekcji
Bardziej szczegółowoKurs rozszerzony języka Python
Wykład 2. 13 października 2017 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Plan wykładu Klasy i obiekty 1 Klasy i obiekty 2 3 4 Deklaracja klasy Klasy i obiekty Przykłady class Figura: Pierwsza
Bardziej szczegółowoWyszukiwanie binarne
Wyszukiwanie binarne Wyszukiwanie binarne to technika pozwalająca na przeszukanie jakiegoś posortowanego zbioru danych w czasie logarytmicznie zależnym od jego wielkości (co to dokładnie znaczy dowiecie
Bardziej szczegółowo6.4 Podstawowe metody statystyczne
156 Wstęp do statystyki matematycznej 6.4 Podstawowe metody statystyczne Spóbujemy teraz w dopuszczalnym uproszczeniu przedstawić istotę analizy statystycznej. W szczególności udzielimy odpowiedzi na postawione
Bardziej szczegółowoJęzyk C, tablice i funkcje (laboratorium, EE1-DI)
Język C, tablice i funkcje (laboratorium, EE1-DI) Opracował: Tomasz Mączka (tmaczka@kia.prz.edu.pl) Wstęp (tablice) Tablica to uporządkowany ciąg elementów tego samego typu, zajmujących ciągły obszar pamięci.
Bardziej szczegółowoRozdział 1. Zmienne losowe, ich rozkłady i charakterystyki. 1.1 Definicja zmiennej losowej
Rozdział 1 Zmienne losowe, ich rozkłady i charakterystyki 1.1 Definicja zmiennej losowej Zbiór możliwych wyników eksperymentu będziemy nazywać przestrzenią zdarzeń elementarnych i oznaczać Ω, natomiast
Bardziej szczegółowoSpis treści. Morfologia matematyczna. 1 Morfologia matematyczna 1.1 Dylacja 1.2 Erozja 1.3 Otwarcie i zamknięcie 1.
Spis treści 1 Morfologia matematyczna 1.1 Dylacja 1.2 Erozja 1.3 Otwarcie i zamknięcie 1.4 Filtr medianowy Morfologia matematyczna Morfologia matematyczna to bardzo przydatna metoda przetwarzania obrazów
Bardziej szczegółowoSpis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16
Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego
Bardziej szczegółowoWstęp do programowania
wykład 6 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Bardziej szczegółowoWstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Bardziej szczegółowoSieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych
Sieci Mobilne i Bezprzewodowe laboratorium 2 Modelowanie zdarzeń dyskretnych Plan laboratorium Generatory liczb pseudolosowych dla rozkładów dyskretnych: Generator liczb o rozkładzie równomiernym Generator
Bardziej szczegółowoHISTOGRAM. Dr Adam Michczyński - METODY ANALIZY DANYCH POMIAROWYCH Liczba pomiarów - n. Liczba pomiarów - n k 0.5 N = N =
HISTOGRAM W pewnych przypadkach interesuje nas nie tylko określenie prawdziwej wartości mierzonej wielkości, ale także zbadanie całego rozkład prawdopodobieństwa wyników pomiarów. W takim przypadku wyniki
Bardziej szczegółowoProgramowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Bardziej szczegółowoĆwiczenia 3 ROZKŁAD ZMIENNEJ LOSOWEJ JEDNOWYMIAROWEJ
Ćwiczenia 3 ROZKŁAD ZMIENNEJ LOSOWEJ JEDNOWYMIAROWEJ Zadanie 1. Zmienna losowa przyjmuje wartości -1, 0, 1 z prawdopodobieństwami równymi odpowiednio: ¼, ½, ¼. Należy: a. Wyznaczyć rozkład prawdopodobieństwa
Bardziej szczegółowoRozkład zmiennej losowej Polega na przyporządkowaniu każdej wartości zmiennej losowej prawdopodobieństwo jej wystąpienia.
Rozkład zmiennej losowej Polega na przyporządkowaniu każdej wartości zmiennej losowej prawdopodobieństwo jej wystąpienia. D A R I U S Z P I W C Z Y Ń S K I 2 2 ROZKŁAD ZMIENNEJ LOSOWEJ Polega na przyporządkowaniu
Bardziej szczegółowo1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami
1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami Celem tych zajęć jest zrozumienie i oswojenie z technikami programowania przy pomocy wskaźników w języku C++. Proszę przeczytać rozdział 8.
Bardziej szczegółowoOptymalizacja systemów
Optymalizacja systemów Laboratorium - problem detekcji twarzy autorzy: A. Gonczarek, J.M. Tomczak, S. Zaręba, P. Klukowski Cel zadania Celem zadania jest zapoznanie się z gradientowymi algorytmami optymalizacji
Bardziej szczegółowoĆwiczenie 6. Transformacje skali szarości obrazów
Politechnika Wrocławska Wydział Elektroniki Mikrosystemów i Fotoniki Przetwarzanie sygnałów laboratorium ETD5067L Ćwiczenie 6. Transformacje skali szarości obrazów 1. Obraz cyfrowy Obraz w postaci cyfrowej
Bardziej szczegółowoĆwiczenie 5. Python 3: Programowanie obiektowe i dziedziczenie
Wizualizacja danych Ćwiczenie 5 Python 3: Programowanie obiektowe i dziedziczenie Dziedziczenie Mając klasę bazową możemy utworzyć klasę pochodną, która będzie dziedziczyć po klasie bazowej czyli będzie
Bardziej szczegółowoMetody getter https://www.python-course.eu/python3_object_oriented_programming.php 0_class http://interactivepython.org/runestone/static/pythonds/index.html https://www.cs.auckland.ac.nz/compsci105s1c/lectures/
Bardziej szczegółowoznajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.
Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo
Bardziej szczegółowoSzukanie rozwiązań funkcji uwikłanych (równań nieliniowych)
Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 3 Dziedziczenie
Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej
Bardziej szczegółowoWykład 1 Próba i populacja. Estymacja parametrów z wykorzystaniem metody bootstrap
Wykład 1 Próba i populacja. Estymacja parametrów z wykorzystaniem metody bootstrap Magdalena Frąszczak Wrocław, 21.02.2018r Tematyka Wykładów: Próba i populacja. Estymacja parametrów z wykorzystaniem metody
Bardziej szczegółowoWarsztaty dla nauczycieli
WPROWADZENIE Wyprowadzanie danych: Wyprowadzanie na ekran komunikatów i wyników umożliwia instrukcja wyjścia funkcja print(). Argumentami funkcji (podanymi w nawiasach) mogą być teksty, wyrażenia arytmetyczne
Bardziej szczegółowoProgramowanie strukturalne i obiektowe. Funkcje
Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy
Bardziej szczegółowoOznacza to, że chcemy znaleźć minimum, a właściwie wartość najmniejszą funkcji
Wykład 11. Metoda najmniejszych kwadratów Szukamy zależności Dane są wyniki pomiarów dwóch wielkości x i y: (x 1, y 1 ), (x 2, y 2 ),..., (x n, y n ). Przypuśćmy, że nanieśliśmy je na wykres w układzie
Bardziej szczegółowoPrawdopodobieństwo i statystyka r.
Zadanie. Niech (X, Y) ) będzie dwuwymiarową zmienną losową, o wartości oczekiwanej (μ, μ, wariancji każdej ze współrzędnych równej σ oraz kowariancji równej X Y ρσ. Staramy się obserwować niezależne realizacje
Bardziej szczegółowoFunkcja jednej zmiennej - przykładowe rozwiązania 1. Badając przebieg zmienności funkcji postępujemy według poniższego schematu:
Funkcja jednej zmiennej - przykładowe rozwiązania Zadanie 4 c) Badając przebieg zmienności funkcji postępujemy według poniższego schematu:. Analiza funkcji: (a) Wyznaczenie dziedziny funkcji (b) Obliczenie
Bardziej szczegółowoInstytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Ćwiczenie 3 Generator liczb losowych o rozkładzie Rayleigha.
Instytut Fizyki Politechniki Łódzkiej Laboratorium Metod Analizy Danych Doświadczalnych Generator liczb losowych o rozkładzie Rayleigha. Generator liczb losowych o rozkładzie Rayleigha. 1. Cel ćwiczenia
Bardziej szczegółowoKADD Minimalizacja funkcji
Minimalizacja funkcji n-wymiarowych Forma kwadratowa w n wymiarach Procedury minimalizacji Minimalizacja wzdłuż prostej w n-wymiarowej przestrzeni Metody minimalizacji wzdłuż osi współrzędnych wzdłuż kierunków
Bardziej szczegółowoZaawansowany kurs języka Python
Wykład 6. 6 listopada 2015 Plan wykładu Callable objects 1 Callable objects 2 3 Plan wykładu Callable objects 1 Callable objects 2 3 Callable objects Wszystko jest obiektem. Callable objects Wszystko jest
Bardziej szczegółowoInformacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char
Programowanie C++ Informacje wstępne #include - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char = -128 do 127, unsigned char = od
Bardziej szczegółowoProgram 14. #include <iostream> #include <ctime> using namespace std;
Program 14 Napisać: * funkcję słuŝącą do losowego wypełniania tablicy liczbami całkowitymi z podanego zakresu (*). Parametrami funkcji mają być tablica, jej długość oraz dwie liczby stanowiące krańce przedziału
Bardziej szczegółowoMetody systemowe i decyzyjne w informatyce
Metody systemowe i decyzyjne w informatyce Laboratorium MATLAB Zadanie nr 2 Detekcja twarzy autorzy: A. Gonczarek, J.M. Tomczak Cel zadania Celem zadania jest zapoznanie się algorytmem gradientu prostego
Bardziej szczegółowoLaboratorium kryptograficzne dla licealistów 4
Laboratorium kryptograficzne dla licealistów 4 Projekt Matematyka dla ciekawych świata Łukasz Mazurek 20.04.2017 1 Poszukiwanie klucza Szyfr Cezara udało nam się złamać już kilkukrotnie. Za każdym razem
Bardziej szczegółowoMetody Rozmyte i Algorytmy Ewolucyjne
mgr inż. Wydział Matematyczno-Przyrodniczy Szkoła Nauk Ścisłych Uniwersytet Kardynała Stefana Wyszyńskiego Podstawowe operatory genetyczne Plan wykładu Przypomnienie 1 Przypomnienie Metody generacji liczb
Bardziej szczegółowoZajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
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 Metody optymalizacji Metody bezgradientowe optymalizacji bez ograniczeń Materiały pomocnicze do ćwiczeń
Bardziej szczegółowoSpacery losowe generowanie realizacji procesu losowego
Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z
Bardziej szczegółowoProgramowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Bardziej szczegółowoIII. ZMIENNE LOSOWE JEDNOWYMIAROWE
III. ZMIENNE LOSOWE JEDNOWYMIAROWE.. Zmienna losowa i pojęcie rozkładu prawdopodobieństwa W dotychczas rozpatrywanych przykładach każdemu zdarzeniu była przyporządkowana odpowiednia wartość liczbowa. Ta
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoPodstawy Pythona. Krzysztof Gdawiec. Instytut Informatyki Uniwersytet Śląski
Podstawy Pythona Krzysztof Gdawiec Instytut Informatyki Uniwersytet Śląski Słownik jest typem mutowalnym. Każdy element to para: klucz wartość. W celu stworzenia słownika pary klucz wartość umieszczamy
Bardziej szczegółowoKURS PRAWDOPODOBIEŃSTWO
KURS PRAWDOPODOBIEŃSTWO Lekcja 6 Ciągłe zmienne losowe ZADANIE DOMOWE www.etrapez.pl Strona 1 Część 1: TEST Zaznacz poprawną odpowiedź (tylko jedna jest prawdziwa). Pytanie 1 Zmienna losowa ciągła jest
Bardziej szczegółowoĆwiczenia 7 - Zmienna losowa i jej rozkład. Parametry rozkładu.
Ćwiczenia 7 - Zmienna losowa i jej rozkład. Parametry rozkładu. A Teoria Definicja A.1. Niech (Ω, F, P) będzie przestrzenią probabilistyczną. Zmienną losową określoną na przestrzeni Ω nazywamy dowolną
Bardziej szczegółowoKorzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne)
Korzystanie z podstawowych rozkładów prawdopodobieństwa (tablice i arkusze kalkulacyjne) Przygotował: Dr inż. Wojciech Artichowicz Katedra Hydrotechniki PG Zima 2014/15 1 TABLICE ROZKŁADÓW... 3 ROZKŁAD
Bardziej szczegółowoStatystyka matematyczna i ekonometria
Statystyka matematyczna i ekonometria prof. dr hab. inż. Jacek Mercik B4 pok. 55 jacek.mercik@pwr.wroc.pl (tylko z konta studenckiego z serwera PWr) Konsultacje, kontakt itp. Strona WWW Elementy wykładu.
Bardziej szczegółowoCelem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych.
Spis treści 1 Wstęp 1.1 Importy 2 Zbiór uczący 3 Klasyfikacja 3.1 Rysunki dodatkowe 4 Polecenia dodatkowe Wstęp Celem tych ćwiczeń jest zapoznanie się z klasyfikacją za pomocą sieci neuronowych. Importy
Bardziej szczegółowoPython. Wprowadzenie. Jolanta Bachan
Python Wprowadzenie Jolanta Bachan Zainstaluj i przetestuj Pythona https://www.python.org/downloads/ print 'Hello world!' operatory numeryczne: + - * / // % ** operatory porównania: ==!= > < >=
Bardziej szczegółowoRozkład Gaussa i test χ2
Rozkład Gaussa jest scharakteryzowany dwoma parametramiwartością oczekiwaną rozkładu μ oraz dyspersją σ: METODA 2 (dokładna) polega na zmianie zmiennych i na obliczeniu pk jako różnicy całek ze standaryzowanego
Bardziej szczegółowoWykresy i interfejsy użytkownika
Wrocław, 07.11.2017 Wstęp do informatyki i programowania: Wykresy i interfejsy użytkownika Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz Dzisiaj na zajęciach... Instrukcje sterujące Biblioteka
Bardziej szczegółowoElementy statystyki wielowymiarowej
Wnioskowanie_Statystyczne_-_wykład Spis treści 1 Elementy statystyki wielowymiarowej 1.1 Kowariancja i współczynnik korelacji 1.2 Macierz kowariancji 1.3 Dwumianowy rozkład normalny 1.4 Analiza składowych
Bardziej szczegółowoAlgorytmy zrandomizowane
Algorytmy zrandomizowane http://zajecia.jakubw.pl/nai ALGORYTMY ZRANDOMIZOWANE Algorytmy, których działanie uzależnione jest od czynników losowych. Algorytmy typu Monte Carlo: dają (po pewnym czasie) wynik
Bardziej szczegółowoAlgorytmy, które estymują wprost rozkłady czy też mapowania z nazywamy algorytmami dyskryminacyjnymi.
Spis treści 1 Wstęp: generatywne algorytmy uczące 2 Gaussowska analiza dyskryminacyjna 2.1 Gaussowska analiza dyskryminacyjna a regresja logistyczna 3 Naiwny Klasyfikator Bayesa 3.1 Wygładzanie Laplace'a
Bardziej szczegółowoPHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Bardziej szczegółowoZnajdowanie największego i najmniejszego elementu w zbiorze n liczb całkowitych
1/12 Opracowała Kozłowska Ewa ekozbelferek@poczta.onet.pl nauczyciel przedmiotów informatycznych Zespół Szkół Technicznych Mielec, ul. Jagiellończyka 3 Znajdowanie największego i najmniejszego elementu
Bardziej szczegółowoTablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1
Tablice i struktury czyli złożone typy danych. Programowanie Proceduralne 1 Tablica przechowuje elementy tego samego typu struktura jednorodna, homogeniczna Elementy identyfikowane liczbami (indeksem).
Bardziej szczegółowoWstęp do programowania
wykład 7 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2016/2017 Losowanie liczb całkowitych Dostępne biblioteki Najprostsze losowanie liczb całkowitych można wykonać za pomocą funkcji
Bardziej szczegółowoRozwiązanie. #include <cstdlib> #include <iostream> using namespace std;
Programowanie C++ Zadanie 1 Napisz program do obliczenia sumy i iloczynu ciągu liczb zakooczonego liczbą zero. Zakładamy, że ciąg zawiera co najmniej jedną liczbę (założenie to jest konieczne przy obliczeniu
Bardziej szczegółowodr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1
Ćwiczenie 1 Uruchamianie programu w Netbeans Uruchom środowisko Netbeans. Stwórz nowy projekt typu Java Application. Nadaj projektowi nazwę HelloWorld (Project Name), zwróć uwagę na folder, w którym zostanie
Bardziej szczegółowoMetody Metody, parametry, zwracanie wartości
Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Metody Metody, parametry, zwracanie wartości Metody - co to jest i po co? Metoda to wydzielona część klasy, mająca
Bardziej szczegółowoModelowanie komputerowe
Modelowanie komputerowe wykład 1- Generatory liczb losowych i ich wykorzystanie dr Marcin Ziółkowski Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie 5,12 października 2016 r.
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ółowoPWSG Ćwiczenia 12. Wszystkie ukończone zadania należy wysłać na adres: lub
PWSG Ćwiczenia 12 Wszystkie ukończone zadania należy wysłać na adres: sara.m.jurczyk@gmail.com lub sarajurczyk@kul.lublin.pl Zadanie 1: Różnica między zwykłymi polami/metodami, a polami/metodami static
Bardziej szczegółowoMatlab. modelowanie prostych eksperymentów losowych. Wykorzystanie funkcji rand - generatora liczb losowych, w który wyposaŝony jest MATLAB.
Matlab modelowanie prostych eksperymentów losowych WYK.PAWEŁ DĘBEK ETI 9.1 Wykorzystanie funkcji rand - generatora liczb losowych, w który wyposaŝony jest MATLAB. WPROWADZENIE Najprościej mówiąc, wywołanie
Bardziej szczegółowoKwantyle. Kwantyl rzędu p rozkładu prawdopodobieństwa to taka liczba x p. , że. Możemy go obliczyć z dystrybuanty: P(X x p.
Kwantyle Kwantyl rzędu p rozkładu prawdopodobieństwa to taka liczba x p, że P(X x p ) p P(X x p ) 1 p Możemy go obliczyć z dystrybuanty: Jeżeli F(x p ) = p, to x p jest kwantylem rzędu p Jeżeli F(x p )
Bardziej szczegółowoWSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy
WSNHiD, Programowanie 2 Lab. 2 Język Java struktura programu, dziedziczenie, abstrakcja, polimorfizm, interfejsy Pojęcie klasy Program napisany w języku Java składa się ze zbioru klas. Każda klasa zawiera
Bardziej szczegółowoWstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 5. Karol Tarnowski A-1 p.
Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy Wykład 5 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Algorytm Euklidesa Liczby pierwsze i złożone Metody
Bardziej szczegółowoKONSPEKT FUNKCJE cz. 1.
KONSPEKT FUNKCJE cz. 1. DEFINICJA FUNKCJI Funkcją nazywamy przyporządkowanie, w którym każdemu elementowi zbioru X odpowiada dokładnie jeden element zbioru Y Zbiór X nazywamy dziedziną, a jego elementy
Bardziej szczegółowoRekurencja (rekursja)
Rekurencja (rekursja) Rekurencja wywołanie funkcji przez nią samą wewnątrz ciała funkcji. Rekurencja może być pośrednia funkcja jest wywoływana przez inną funkcję, wywołaną (pośrednio lub bezpośrednio)
Bardziej szczegółowoWarunki logiczne instrukcja if
Warunki logiczne instrukcja if Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko 1. Wejdź na stronę kółka, uruchom edytor i wpisz: use console; def test::main() { var y; y = 1; while (y
Bardziej szczegółowoPodstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład 7 Tablice wielowymiarowe, SOA, AOS, itp. Krzysztof Banaś Podstawy programowania 1 Tablice wielowymiarowe C umożliwia definiowanie tablic wielowymiarowych najczęściej stosowane
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Bardziej szczegółowoTechnologie i usługi internetowe cz. 2
Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,
Bardziej szczegółowoNazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek
Nazwa implementacji: Nauka języka Python pętla for Autor: Piotr Fiorek Opis implementacji: Poznanie innego rodzaju pętli, jaką jest pętla for w języku Python. Składnia pętli for jest następująca: for
Bardziej szczegółowoWynik pomiaru jako zmienna losowa
Wynik pomiaru jako zmienna losowa Wynik pomiaru jako zmienna losowa Zmienne ciągłe i dyskretne Funkcja gęstości i dystrybuanta Wartość oczekiwana Momenty rozkładów Odchylenie standardowe Estymator zmiennej
Bardziej szczegółowoKlasyfikator liniowy Wstęp Klasyfikator liniowy jest najprostszym możliwym klasyfikatorem. Zakłada on liniową separację liniowy podział dwóch klas między sobą. Przedstawia to poniższy rysunek: 5 4 3 2
Bardziej szczegółowozdarzenie losowe - zdarzenie którego przebiegu czy wyniku nie da się przewidzieć na pewno.
Rachunek prawdopodobieństwa Podstawowym celem rachunku prawdopodobieństwa jest określanie szans zajścia pewnych zdarzeń. Pojęcie podstawowe rachunku prawdopodobieństwa to: zdarzenie losowe - zdarzenie
Bardziej szczegółowoMatematyka stosowana i metody numeryczne
Ewa Pabisek Adam Wosatko Piotr Pluciński Matematyka stosowana i metody numeryczne Konspekt z wykładów Błędy obliczeń Błędy można podzielić na: modelu, metody, wejściowe (początkowe), obcięcia, zaokrągleń..
Bardziej szczegółowoStosowana Analiza Regresji
Stosowana Analiza Regresji Wykład VIII 30 Listopada 2011 1 / 18 gdzie: X : n p Q : n n R : n p Zał.: n p. X = QR, - macierz eksperymentu, - ortogonalna, - ma zera poniżej głównej diagonali. [ R1 X = Q
Bardziej szczegółowo