Zad 1:
Transkrypt
Zad 1:
8/03/2012 INFORMATYKA – laboratorium / semestr letni 2011/12 / lista 3 1. a) Funkcję z=sin(x)*cos(4y) przedstaw na 4 wybranych rodzajach wykresów trójwymiarowych, na jednym rysunku. b) Przedstaw film z animacją z=sin(x)*cos(ay), zmieniająca parametr a, na wybranym rodzaju wykresu. Dobierz parametr a oraz prędkość odtwarzania tak, aby animacja zachowała płynność. 2. Porównaj prędkość działania poniższych kodów, które przypisują co drugiemu elementowi myVector, wartość jego cotangensa. Możesz użyć poleceń tic i toc.. % pętla for: myVector = 1:100000; for x=1:length(myVector) if(mod(myVector(x),2)) myVector(x) = cot(myVector(x)); end end % po wektoryzacji: myVector = 1:100000; indexTrue = mod(myVector,2)==1; myVector(indexTrue) = cot(myVector(indexTrue)); W oparciu o powyższy pomysł, zwektoryzuj poniższy kod, który „odbija końcówki sinusa”. Porównaj czas działania. myVector = sin(-10:.01:10); for x=1:length(myVector) if(myVector(x) > 0.9) myVector(x) = 1.8 - myVector(x); elseif(myVector(x) < -0.9) myVector(x) = -1.8 - myVector(x); end end Sprametryzuj utworzony program: niech Twoja funkcja przyjmuje wektor wartości dowolnej funkcji oraz wartość graniczną odbicia. Niech zwraca wektor wartości po odbiciu końcówek. 3. Zwektoryzuj kod zadania 2 z listy 2. Użyj funkcji meshgrid. 4. Przedstawiony kod usuwa powtórzone dane z wektora x i zapisuje wynik w y. Ponadto zlicza w count ilość duplikatów dla każdego elementu w x. Pomysł opiera się na posortowaniu wartości x, a następnie użycie funkcji diff, która domyślnie liczy różnicę pomiędzy kolejnymi elementami wektora. Zwróć uwagę na długość wektora zwracanego przez diff. Użyta również funkcja find domyślnie zwraca indeksy elementów niezerowych. x = round(100*(rand(100,1))); x = sort(x(:)); difference = diff([x;max(x)+1]); count = diff(find([1;difference])); y = x(find(difference)); plot(y,count) Zmodyfikuj kod tak, by zwracał tylko elementy powtórzone co najmniej 2 razy. Sparametryzuj program, tak by działał na dowolnym przekazanym wektorze danych oraz zwracał elementy powtórzone co najmniej zadaną liczbę razy oraz ich liczności. Terminy listy - zadania: 1-2 – 12-14/03/2012 3-4 – 19-21/03/2012 Powodzenia! Witold Dyrka