Techniki Informacyjne - tu.kielce.pl · Literatura 7 Krzysztof Masłowski, "Excel 2007 PL....
Transcript of Techniki Informacyjne - tu.kielce.pl · Literatura 7 Krzysztof Masłowski, "Excel 2007 PL....
Katedra Informatyki Stosowanej
Kielce, listopad 2010 r.
Techniki Informacyjne
Prof. Czesław Cichoń
Dr Paweł Stąpór
1
Informacje ogólne
2
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
Kontakt p. 204, 314 budynek B
Adres strony przedmiotu
kis.tu.kielce.pl
odnośnik
Techniki Informacyjne, Architektura i
Urbanistyka sem. 1(oraz Budownictwo, sem. 2)
Materiały do pobrania, aktualności
2
Zasady
3
Laboratorium jest OBOWIĄZKOWE
Dopuszcza się JEDNĄ nieobecność
W przypadku usprawiedliwionej nieobecności zajęcia można
odrobić z inną grupą
Wykłady nie są obowiązkowe, ale obecność na wykładach może
być kontrolowana
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
3
Zakres i cel zajęć
4
WYKŁAD
Kodowanie informacji, jednostki informacji, systemy liczbowe
Systemy operacyjne, wprowadzenie do sieci komputerowych
Struktura programu komputerowego, pojęcie algorytmu,
schematy blokowe, podział algorytmów, efektywność algorytmu
Algorytmy warunkowe i iteracyjne, przykłady: aproksymacja i
interpolacja, metody bezpośrednie i iteracyjne rozwiązywania
układów równań liniowych
Przetwarzanie informacji, modele baz danych
LABORATORIUM
Zastosowania programu EXCEL 2007 (2 l.)
Zastosowania programu MATHCAD 13 (2 l.)
Algorytmy warunkowe (1 l.)
Algorytmy iteracyjne (1 l.)
Kolokwium zaliczeniowe
CEL ZAJĘĆ
Poznanie podstawowych elementów struktury programu
komputerowego i jego implementacji do systemu obliczeniowego
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
4
Warunki zaliczenia
5
LABORATORIUM
Warunkiem zaliczenia ćwiczeń laboratoryjnych jest uczestnictwo
w zajęciach i uzyskanie pozytywnej oceny z praktycznego
sprawdzianu pod koniec semestru.
WYKŁAD
Warunkiem zaliczenia wykładu jest pozytywna ocena z kolokwium
zorganizowanego na końcu semestru. Kolokwium można zaliczać
tylko trzykrotnie. Nie przystąpienie do kolokwium oznacza przepadek
terminu.
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
5
Zwolnienia
6
Warunkiem uzyskania zwolnienia z przedmiotu lub jego części
jest zgoda wykładowcy.
Po uzyskaniu zgody na przepisanie oceny student ma obowiązek
zgłosić się przed końcem semestru po wpis. Jeśli tego nie zrobi
uzyskuje ocenę niedostateczną w pierwszym terminie.
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
6
Literatura
7
Krzysztof Masłowski, "Excel 2007 PL. Ilustrowany przewodnik",
Helion 2007
Krzysztof Masłowski, "Excel 2007. Ćwiczenia praktyczne", Helion
2007r.
Jacek Pietraszek, Mathcad. Ćwiczenia. Wydanie II, Helion 2008
Karpisz, D., L. Wojnar, Podstawy informatyki, Podręcznik
Politechnik Krakowskiej, Kraków, 2005
C. Cichoń, Metody obliczeniowe. Politechnika Świętokrzyska,
Kielce, 2005.
Informacje ogólne
Zasady
Zakres i cel zajęć
Warunki zaliczenia
Zwolnienia
Literatura
7
Jak powstał dzisiejszy komputer ?
1620 – E. Gunter wynajduje suwak logarytmiczny
1833 – Ch. Babbage opracował plany maszyny analitycznej z elementami
jakie ma architektura współczesnych komputerów
1935 – IBM uruchomił produkcję programowalnego kalkulatora IBM-601.
1937 – A .Turing definiuje maszynę algorytmiczną, znaną dziś jako maszyna Turinga
1946 – ENIAC, maszyna licząca zbudowana z lamp elektronowych (18 000) – komputer
I generacji
1948 – John von Neumann proponuje architekturę komputerów stosowaną do dnia
dzisiejszego (EDVAC – zarówno program jak i dane są po raz pierwszy przechowywane
w pamięci komputera)
1955 –TRADIC, komputer II generacji, zbudowany z tranzystorów półprzewodnikowych
1964 – ODRA 1003 !!
1961 – Texas Instruments – komputer III generacji, zbudowany z wykorzystaniem
półprzewodnikowych układów scalonych
1970 – początek ery komputerów IV generacji, zbudowanych z wykorzystaniem procesorów
o dużym stopniu integracji
1985 – Microsoft prezentuje system operacyjny Windows 1.0
1993 – procesor Intel PENTIUM
……………….. 8
Katedra Informatyki Stosowanej
Kielce, luty 2009 r.
Kodowanie informacji, jednostki
informacji, systemy liczbowe
9
Informacji i środki jej przetwarzania
Kielce, luty 2009 r.
INFORMACJA – wielkość abstrakcyjna, która może być przechowywana,
przesyłana między obiektami, przetwarzana przez pewne obiekty.
INFORMACJE mogą stanowić różnorodne dane, takie jak liczby, tekst,
obiekty multimedialne (grafika).
INFORMATYKA – nauka o przetwarzaniu informacji za pomocą
automatycznych środków technicznych
NARZĘDZIA INFORMATYKI
Komputery Oprogramowanie
Osobiste i biurowe Algorytm
Serwery Program
Superkomputery (Mainframe) System operacyjny
Klastry i gridy
10
Informacja a komputer
Kielce, luty 2009 r.
Wewnętrzna budowa komputera wymusza używanie ściśle określonych
sposobów kodowania (systemów liczbowych) i przetwarzania informacji.
Pierwszy komputer ENIAC 1946 r. – pracował w systemie dziesiętnym!
Przełączniki elektryczne musiały rozpoznawać 10 stanów napięcia - jedna
z przyczyn wolnej pracy i małej odporności na zniekształcenia elektryczne
System dziesiętny nie jest jedynym sposobem przedstawiania liczb
System binarny – urządzenia korzystające z niego muszą rozpoznawać
tylko dwa stany, czyli 1 (jest sygnał) lub 0 (nie ma sygnału) a nie dziesięć
stanów jak to ma miejsce w systemie dziesiętnym
Zalety
Układ elektroniczny znacznie prostszy
Poziom sygnałów elektrycznych, rozpatrywanych jako odrębne stany
mogą należeć do szerszego przedziału napięć, a więc są bardziej odporne
na zniekształcenia
11
Jednostka informacji
Kielce, luty 2009 r.
Najmniejszą jednostką informacji jest bit
Bit przyjmuje wartość 0 lub 1
1 bajt (ang. Byte) = 8 bitów
1 słowo (ang. Word) = 2 bajty = 16 bitów
W informatyce nazwy przedrostków nie odpowiadają dokładnie tym w
układzie SI
1 kbajt [KB]= 210 bajta = 1024 bajty
1 Mbajt [MB] = 1024[KB] = 1 048 576 bajty
1 Gbajt [GB] = 1024[MB] = 1 073 741 824 bajty
12
Systemy liczbowe
Kielce, luty 2009 r.
Dla dowolnego systemu liczenia istnieje zbiór cyfr z których tworzone są
liczby
Systemy liczenia dzielą się na:
Pozycyjne
Niepozycyjne
W systemach pozycyjnych wartość liczbowa cyfry zależy od
umiejscowienia (pozycji) w liczbie. (np. system dziesiętny, dwójkowy)
Ilość różnych cyfr systemu nazywa się jego podstawą (P)
Wartość liczbowa cyfry określona jest przez wagę. Waga na pozycji (n)
równa jest podstawie P podniesionej do potęgi n
W systemach niepozycyjnych poszczególne cyfry zachowują swą wartość
liczbową bez względu na miejsce jakie zajmują w liczbie (np. system
rzymski - siedem znaków I, V, X, L, C, D, M)
XII = 10(X)+1(I)+1(I) =12, IX = 10(X)-1(I) =9, MCDX = 1000 (M) + 500(D) -
100(C) +10 (X),
13
Systemy pozycyjne
Kielce, luty 2009 r.
Wzór na zapis liczby L w dowolnym systemie pozycyjnym jest bardzo
prosty
L = an * Pn + an-1 * Pn-1 + … + a0 * P0
Dla zapisu w systemie dziesiętnym
P=10, an ={0,1,2,3,4,5,6,7,8,9}
142 = 1*102+4*101+2*100
Dla zapisu w systemie dwójkowym
P=2, an ={0,1}
10010= 1*24+0*23+0*22+1*21+0*20
14
Konwersja z systemu dziesiętnego do
dwójkowego liczb naturalnych
Kielce, luty 2009 r.
190DEC = 1*102+9*101+0*100
190BIN = ?
Na 1 bajcie można zapisac
liczbę całkowitą z zakresu
0 – 255DEC (11111111)BIN
Jak odzyskać (10111110)BIN?
15
Liczby całkowite ze znakiem – kod U2
Kielce, luty 2009 r.
Kod U2 jest najczęściej spotykanym w obliczeniach na liczbach
całkowitych ze znakiem. Umożliwia w jednoznaczny sposób zapis liczb
binarnych ujemnych
W kodzie U2 waga najstarszego bitu jest zawsze ujemna, dla słowa (8 bit)
Na 1 bajcie możemy zapisać liczbe z zakresu -128 do 127.
Na 2 bajtach -32768 do 32767
16
Liczby całkowite ze znakiem – kod U2
Kielce, luty 2009 r.
Przykłda zapisu liczby w kodzie U2 (słowo 8 bitowe)
-2Liczba 2 binarnie
0000 0010
Zanegowana liczba 2 binarnie
1111 1101 = 253
Zanegowana liczba 2 binarnie +1
254 = 1111 1110
W kodzie U2
(1111 1110 )U2 = -2
17
Liczby całkowite ze znakiem – kod U2
Kielce, luty 2009 r.
Jak odzyskać liczby w kodzie U2 (słowo 8 bitowe)
18
Liczby rzeczywiste
Kielce, luty 2009 r.
Jak zapisać liczbę rzeczywistą?
Zapis poprzez podanie trzech elmentów
Znaku
Mantysy
Wykładnika
L=Z*M*2W
Dokładność zależy od liczby bitów przypisanych poszczególnym
elementom
Wykładnik jest zapisany w tzw. Kodzie z nadmiarem
Wykładnik = zapisana wartość binarna wykładnika - nadmiar
19
Liczby rzeczywiste – standard IEEE745
Kielce, luty 2009 r.
Pojedyńcza precyzja 4 bajty
Mantysa 23 bity
Wykładnik 8 bitów (nadmiar 127), znak 1 bit
20
Liczby rzeczywiste – standard IEEE745
Kielce, luty 2009 r.
Procedura zapisu liczby L
1. Okresl znak Bit31 = 1 jeżeli L ujemna, 0 jeśli dodatnia
2. Szukamy największej liczby postaci 2w mniejszej niż L
3. Zapisujemy wykładnik z nadmiarem w+127
4. Dzielimy liczbę L/ 2w (wynik 1.xxxx)
5. Odejmujemy 1 i szukamy mantysy
6. Zaznaczamy Bit jako 1 jeśli po odjęciu 1/2(bit+1) mamy wartość
nieujemną, jeśli wartość ujemna zaznaczamy bit jako 0, i ignorujemy
operacje. Procedure powtarzamy az w wyniku odejmowania
otrzymamy zero lub dojdziemy do bitu nr 22 (pojedyńcza precyzja)
21
Liczby rzeczywiste – standard IEEE745
Kielce, luty 2009 r.
Procedura zapisu liczby 14.5
10000010
22
Liczby rzeczywiste – standard IEEE745
Kielce, luty 2009 r. 23
Liczby rzeczywiste – standard IEEE745
Kielce, luty 2009 r. 24
Kodowanie znaków
Kielce, luty 2009 r. 25
Kodowanie znaków
Kielce, luty 2009 r. 26
Katedra Informatyki Stosowanej
Kielce, luty 2009 r.
Wprowadzenie do baz danych
27
Bazy danych - podstawy
Kielce, luty 2009 r.
Samo posiadanie informacji nie wystarcza. Trzeba jeszcze mieć do niej
odpowiedni dostęp, by można ją skutecznie wykorzystać.
Jednym ze sposobów gromadzenia i porządkowania informacji są bazy
danych – podstawa technologii informacyjnych.
Bazą danych DB – ang. DataBase, nazywamy uporządkowany zbiór
powiązanych ze sobą danych, reprezentujących fragment rzeczywistości.
Baza danych powinna być tak zorganizowana aby ułatwić
przeprowadzenie podstawowych operacji na jej zawartości takich jak:
Wyszukiwanie
Modyfikowanie
Dodawanie danych
28
Modele baz danych
Kielce, luty 2009 r.
Model danych – podstawowe pojęcie charakteryzujące baze danych
Model danych to zbiór ogólnych zasad posługiwania się danymi,
obejmujący:
Definicje danych – czyli zbiór reguł określających strukturę danych w
bazie
Operowanie danymi – czyli zbiór reguł określających operacje na danych
Integralność danych – czyli zbiór reguł określających, które stany bazy
danych są poprawne, a operacje na danych dozwolone
29
Modele baz danych
Kielce, luty 2009 r.
Wyróżnia się zasadniczo dwa modele baz danych:
•Relacyjny
•Obiektowy
W odrębie danego modelu wyróżniamy logiczny i fizyczny schemat bazy
danych.
Schemat logiczny to abstrakcyjne struktury, w których dane są
porządkowane, a następnie widziane przez użytkownika jako logiczna
reprezentacja jakiegoś fragmentu informacji. Schemat logiczny bazy
danych przedstawiany jest w postaci diagramów ERD (Entity Relationship
Diagram)
30
Modele baz danych
Kielce, luty 2009 r.
Reprezentacja schematu logicznego bazy danych w postaci diagramu ERD
Osoba Ubezpieczenie
PK oso_id PK ubz_id
oso_imie ubz_nr_polisy
oso_nazwisko ubz_data_start
oso_pesel ubz_data_stop
oso_m_urodzenia oso_id
Schemat fizyczny bazy danych reprezentuje umiejscowienie struktur
logicznych w elementach odpowiadających za fizyczne gromadzenie
danych np. podział plików bazy danych miedzy dyski twarde komputera
31
Modele baz danych
Kielce, luty 2009 r.
Fizyczna reprezentacja bazy danych
Osoba
PK oso_id
oso_imie
oso_nazwisko
oso_pesel
oso_m_urodzenia
Ubezpieczenie
PK ubz_id
ubz_nr_polisy
ubz_data_start
ubz_data_stop
oso_id
Dane1.dbf Dane2.dbf
Dysk 1 Dysk 2 Dysk 3 Dysk 4
32
Model relacyjny
Kielce, luty 2009 r.
Model relacyjny został zaproponowany w 1970 roku przez Edgara Franka
Codda i okazał się najbardziej trafnym podejściem do problemu organizacji
danych.
Baza danych składa się z relacji (tabel) powiązanych ze sobą za pomocą
więzów integralności: kluczy głównych i kluczy obcych.
Tabela (relacja) – to podstawowa struktura relacyjnej bazy danych
Wszystkie tabele składają się z atrybutów (kolumn) oraz wierszy (krotek,
rekordów). Tabela poświęcona jest określonemu tematowi, którym może
być rzeczywisty obiekt lub zdarzenie;
Atrybut (kolumna) – jest najmniejszą strukturą w modelu relacyjnym,
przeznaczoną do przechowywania jednostki danych, reprezentującą
pewną cechę tematu jaki opisuje tabela np. atrybut IMIE w tabeli OSOBA.
33
Osoba
PK oso_id
oso_imie
oso_nazwisko
oso_pesel
oso_m_urodzenia
Model relacyjny
Kielce, luty 2009 r.
Wiersz (krotka, rekord) – składa się z pełnego zestawu atrybutów, wiersz
jest najmiejszą strukturą opisującą cały obiekt, którego dotyczy tabela. Np..
Wszystkie informacje o danej osobie w tabeli OSOBA.
Przykład reprezentacji tabeli OSOBA z podziałem na atrybuty oraz
reprezentacji wiersza
TABELA
Osoba
PK oso_id
oso_imie
oso_nazwisko
oso_pesel
oso_m_urodzenia
Osoba
PK oso_id
oso_imie
oso_nazwisko
oso_pesel
oso_m_urodzenia
ATRYBUT WIERSZ
1 ‘Jan’ ‘Kowalski’ 77010201856 ‘Kraków’
34
Model relacyjny
Kielce, luty 2009 r.
W modelu relacyjnym baza danych składa się z tabel (relacji) o
następujących właściwościach:
•Kazda tabela ma swoją unikalną nazwę
•W jednej tabeli nie mogą znaleźć się dwie kolumny o tej samej nazwie
•Kazde pole w danej krotce (wierszu) jest takiego samego typu jak w
odpowiadającej mu kolumnie , lub nie zawiera wartości (NULL)
•W tabeli jedna lub wiele kolumn tworzy tak zwany klucz główny
•Na podstawie wartości klucza głównego można jednoznacznie
zidentyfikować każdy wiersz tabeli.
Klucz główny – PRIMARY KEY PK – tworzony jest przez jeden lub więcej
atrybutów tabeli (klucz złożonym), na podstawie wartości którego można
jednoznacznie zidentyfikować każdy wiersz w tabeli.
Oznacza to, że wartosci znajdujace sie w kolumnie bedacej kluczem
głównym nie moga sie powtarzac i musza byc unikatowe.
35
Model relacyjny
Kielce, luty 2009 r.
Klucz obcy – ang. FOREIGN KEY FK – tworzony jest przez jeden lub
więcej atrybutów tabeli (klucz złożonym), które w innej tabeli są kluczem
głównym. W ten sposób tworzone jest bezpośrednie powiązanie wierszy z
danymi z dwóch różnych tabel.
Osoba Ubezpieczenie
PK oso_id PK ubz_id
oso_imie ubz_nr_polisy
oso_nazwisko ubz_data_start
oso_pesel ubz_data_stop
oso_m_urodzenia oso_id FOREIGN KEY
PRIMARY KEY
Powiązanie tabel kluczami
36
Model relacyjny
Kielce, luty 2009 r. 37
Model relacyjny
Kielce, luty 2009 r. 38
Wiele do wielu
Kielce, luty 2009 r. 39
Model relacyjny
Kielce, luty 2009 r. 40
Model relacyjny
Kielce, luty 2009 r. 41
Model relacyjny
Kielce, luty 2009 r. 42
Katedra Informatyki Stosowanej
Kielce, luty 2009 r.
Algorytmy – wprowadzenie do
programowania
43
Definicja algorytmu i jego cechy
Kielce, luty 2009 r.
Jeżeli mamy do wykonania jakieś zadanie, budujemy sposób, przepis
realizacji tego zadania. Taki przepis to algorytm. Dopiero po zapisaniu
w konkretnym języku programowania algorytm staje się programem.
Algorytm to sposób postępowania, który prowadzi do rozwiązania w
skończonej liczbie kroków.
Do danego celu prowadzi zwykle więcej niż jedna droga. Jak więc
oceniać alternatywne sposoby rozwiązania problemu?
Podstawowe parametry algorytmu to jego złożoność czasowa i
złożoność pamięciowa. Oprócz tego przy algorytmach działających na
liczbach trzeba pamiętać o stabilności numerycznej.
44
Definicja algorytmu i jego cechy
Kielce, luty 2009 r.
Złożoność czasowa mówi, ile kroków obliczeniowych i ile czasu
wymaga zakończenie algorytmu dla danej porcji danych.
Złożoność pamięciowa mówi, jaką maksymalnie część danych i
wyników pośrednich trzeba w ramach danego algorytmu przecho-
wywać w pamięci operacyjnej.
Stabilność numeryczna określa ona wrażliwość wyniku końcowego
na błędy zaokrągleń w trakcie obliczeń oraz na dokładność danych
początkowych.
45
Sposoby zapisu algorytmu
Kielce, luty 2009 r.
Język naturalny
Funkcje matematyczne
Schematy blokowe
Języki formalne
46
Schematy blokowe
Kielce, luty 2009 r.
Służą one do zapisu algorytmu w obrazowy sposób podając kierunek
procesu obliczeń. Najważniejsze używane symbole:
Start – początek programu
Blok wejścia – wprowadzanie danych
Stop – koniec programu
47
Schematy blokowe
Kielce, luty 2009 r.
Blok wyjścia – wyprowadzanie wyników
Blok operacyjny – przetwarzanie danych
Blok decyzyjny
48
Bloki pętli
Kielce, luty 2009 r.
Pętla „powtórz” - z
warunkiem na końcu
Pętla „dopóki” - z warunkiem
na początku
49
Bloki pętli
Kielce, luty 2009 r.
Pętla „dla” - liczona
50
Algorytm sumowania
Kielce, luty 2009 r.
Dany ciag
-2 3 11 -1
n=4
suma=0
i=1
x=-2
suma=0+(-2)=-2
i=2
x=3
suma=-2+3=1
i=3
x=11
suma=1+11=12
i=4
x=0
suma=12+(-1)=11
51
Algorytm obliczania wartości
ekstremalnych
Kielce, luty 2009 r.
Dany ciag
-2 3 11 -1 999 (wartownik)
x=-2
czy 2=999 ? FAŁSZ
max=-2
x=3
Czy 11<> 999 ? PRAWDACzy 11>3 ? PRAWDAmax=11x=-1
Czy 1<> 999 ? PRAWDACzy -1>11 ? FAŁSZx=999
Czy 999<> 999 ? FAŁSZ
Czy 3<> 999 ? PRAWDACzy 3>-2 ? PRAWDAmax=3x=11
Drukuj (11)
52
Algorytm sortowania „bąbelkowego”
Kielce, luty 2009 r.
Algorytm sortowania bąbelkowego polega na porównywaniu par elementów
leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich kolejności. Czyli w
pierwszym przebiegu porównujemy (i ewentualnie zamieniamy):
•Element pierwszy i drugi
•Element drugi i trzeci
•...
•Element (n-1)-wszy i n-ty
Każdy element jest tak długo przesuwany w ciągu, aż napotkany zostanie
element większy od niego, wtedy w następnych krokach przesuwany jest ten
większy element.
Po pierwszym przebiegu ciąg nie musi być jeszcze uporządkowany, ale na
pozycji n znajdzie się maksymalny element ciągu. Zatem w drugim przebiegu
można porządkować ciąg krótszy, czyli tylko elementy na pozycjach od 1 do n-1.
Po drugim przebiegu, dwa ostatnie elementy są na swoich miejscach, czyli
pozostaje posortować ciąg o dwa elementy krótszy, itd.
53
Algorytm sortowania „bąbelkowego”
Kielce, luty 2009 r.
Dana tablica
-2 3 11 -1
n=4
Wczytanie danych do tablicy x
x[1]=-2 x[2]=3 x[3]=11 x[4]=-1
Czy element j > elementu j+1 ?PRAWDAZamieo element j z elementem j+1
-2 3 -1 11 pierwszy
-2 -1 3 11 drugi
-2 -1 3 11 trzeci
-2 -1 3 11 czwarty
54
Algorytm sortowania „przez wybór”
Jest to chyba najbardziej intuicyjny algorytm sortowania. Polega on na
wielokrotnym wyborze minimalnego elementu z coraz krótszego podciągu danych.
Dokładnie ma to następujący przebieg: Wybierz minimum z ciągu elementów na
pozycjach od 1 do n i zamień go z pierwszym elementem.
•Wybierz minimum z ciągu elementów na pozycjach od 2 do n i zamień go z
drugim elementem (po tym kroku elementy na pozycjach od 1 do 2 są
uporządkowane).
•...
•Wybierz minimum z ciągu elementów na pozycjach n-1 i n i zamień go z
elementem na pozycji n-1 (po tej operacji elementy na pozycjach od 1 do n-1 są
uporządkowane, a element na pozycji n jest maksymalny, czyli ciąg elementów na
pozycjach od 1 do n jest uporządkowany)
Znalezienie minimum w ciągu wymaga m-1 porównań, gdzie m jest długością
ciągu. Algorytm sortowania przez wybór wykonuje n-1 takich operacji, a długość
ciągu, z którego wybierany jest element minimalny zmienia się od n do 2.
55
Algorytm sortowania „przez wybór”
Dana tablica
-2 3 11 -1
n=4
Wczytanie danych do tablicy x
x[1]=-2 x[2]=3 x[3]=11 x[4]=-1
Znajdź indeks elementumaksymalnego z podciągu od j do n
Wydruk tablicy posortowanej
Zamieo element j z k
56
57
Algorytmy standardowych metod
obliczeniowych
Metody aproksymacji i interpolacji funkcji
-metoda najmniejszych kwadratów
-Interpolacja Lagrange’a
Metody rozwiązywania układów równań liniowych
- metody bezpośrednie (eliminacji Gausa)
- metody iteracyjne (Gaus-Seidel)
Metody rozwiązywania równań nieliniowych
- metoda bisekcji
58
Aproksymacja punktowa
Zadanie aproksymacji optymalnej w bazie
jednomianów polega na dobraniu wielomianu
aproksymacyjnego tak, aby przybliżał funkcję daną w
sposób dyskretny w pewnym sensie najlepiej.x
y
km
kk
m
m
m
mmxaaxaxaxaxP
001
1
1...)(
Tak sformułowane zadanie może być rozwiązane, jeśli ustalimy stopień wielomianu m
oraz przyjmiemy kryterium, według którego będziemy oceniać jakość aproksymacji.
Kryterium najczęściej stosowane – metoda najmniejszych kwadratów.
(C. Cichoń, Metody obliczeniowe, str. 50)
)(xPm
59
Aproksymacja
Aproksymacja punktowa
Rozważmy problem aproksymacji danych funkcją liniową dla
punktów w tabeli, metodą najmniejszych kwadratów
f (xi)f (xi)
60
Metoda najmniejszych kwadratów wymaga minimalizacji funkcji
błędu kwadratowego (m=1, n=9)
ze względu na współczynniki aproksymacji
Warunki konieczne na minimum funkcji e(a1,a0)
Aproksymacja
i=0
9
9
i=0
9
i=0
9
i=0
9
i=0
e a1 a0f(xi)a0 a1
a1
a0 a0
a0a0a0
a1 a1
f(xi) f(xi)
f(xi)f(xi)
a1a1
61
Aproksymacja
Warunki te redukują się do układu równań liniowych, którego
rozwiązaniem są wartości a1 =1.538 i a0 =-0.360
9i=0
f (x) P(x)
f (xi) f (xi) P(xi)
P(x)
f (xi)- u (xi)e
62
Układ równao normalnych
63
Aproksymacja - uogólnienie
64
65
66
67
68
69
70
71
72
Przykład (dom !!)
Wyznacz współczynniki aproksymacji funkcją kwadratową
metodą najmniejszych kwadratów
f (xi)
73
Interpolacja
Interpolacja jest szczególnym przypadkiem
aproksymacji, kiedy m=n. Wówczas w węzłach
interpolacji wartość funkcji interpolacyjnej jest dokładnie
równa funkcji interpolowanej
Jeśli funkcjami bazowymi są jednomiany, to taką
interpolację nazywamy interpolacją Lagrange’a.
x
f(x)
74
)()(iin
xfxP ni ,...,1,0,
)(xPn
Wielomian interpolacyjny Lagrange’a ma postać
75
FxNxPn
)()(
gdzie macierz jednowierszowa N(x)
zawiera wielomiany bazowe Lagrange’a stopnia n o postaci ogólnej
oraz F jest wektorem
))...()()...()((
))...()()...()(()(
1110
1110
,
niiiiiii
nii
inxxxxxxxxxx
xxxxxxxxxxxN
T
nxfxfxfF )](),...,(),([
10
)](),...,(),([)(,1,0,
xNxNxNxNnnnn
Przykład 4.6. Wyprowadzić wzór interpolacyjny Lagrange’a stopnia drugiego
przybliżający funkcję f(x)=1/x i przyjmując węzły interpolacji
76
4,5,2,2210 xxx
105,6)42)(5,22(
)4)(5,2()( 2
0,2
xx
xxxN
)32244(3
1
)45,2)(25,2(
)4)(2()( 2
1,2
xx
xxxN
25,0,4,0,5,0210 fff
)55,4(3
1
)5,24)(24(
)5,2)(2()( 2
2,2
xx
xxxN
Wielomian interpolacyjny Lagrange’a ma postać
77
15,1425,005,025,0)55,4(3
1
4,0)32244(3
15,0)105,6()(
22
22
2
xxxx
xxxxxP
Metody bezpośrednie rozwiązywania układów
algebraicznych równań liniowych
Zapis macierzowy
112121111...: bxaxaxaE
nn
78
222221212...: bxaxaxaE
nn
............nnnnnnn
bxaxaxaE ...:2211
bAx
0,0det bA
Metoda eliminacji Gaussa
Rozwiązanie w dwóch etapach:
1 – przekształcenie układu równań do postaci z macierzą A górno trójkątną
(postępowanie wprzód)
2 – rozwiązanie tak otrzymanego układu równań rozpoczynając od ostatniego
równania (postępowanie wstecz)
W etapie pierwszym wykorzystujemy przekształcenia elementarne:
79
ji
iji
ii
EE
EEE
EE
)(
Przykład
80
434:
2:
203322:
82:
43214
3213
43212
43211
xxxxE
xxxE
xxxxE
xxxxE
43411
20111
203322
81211
)1(AA
Wyzerowanie elementów poniżej przekątnej w kolejnych kolumnach
81
)2(
124200
61120
41100
81211
43411
20111
203322
81211
A
414
313
212
)(
)(
)2(
doEEE
doEEE
doEEE
82
)4(
42000
41100
61120
81211
124200
41100
61122
81211
A
434 )2( doEEE
Drugi wyraz na przekątnej jest równy zero dlatego najpierw zamieniamy wiersz
drugi z wierszem trzecim i następnie zerujemy element w trzeciej kolumnie
W ten sposób sprowadziliśmy układ równań do postaci górno trójkątnej
Jest to koniec postępowania wprzód.
83
4
4
6
8
2000
1100
1120
1211
4
3
2
1
x
x
x
x
Postępowanie wstecz polega na rozwiązaniu końcowego układu równań
rozpoczynając od ostatniego równania
84
7,8212231
3,621212
2,421
2,42
11
22
33
44
xx
xx
xx
xx
Algorytm metody eliminacji Gaussa
Liczba równao n
Wprowadź elementy wektora prawejstrony do tablicy r
Wprowadź elementy macierzywspółczynników równao do tablicy c
Element i,j macierzy współczynnikóww tablicy c znajduje się na pozycjin*(i-1)+j
Wprowadzanie danych
85
Algorytm metody eliminacji Gaussa
Wybór elementu wiodącego (k,k)
Dzielenie przez element wiadacyrównania (k)
Znalezienie mnożnika pozostałychrównao
Odejmowanie pomnożonegorównania (k) od kolejnych –zerowanie kolumny pod elementemwiadącym
Przekształcanie do postaci górnotrójkątnej
86
Algorytm metody eliminacji Gaussa
Wyznaczenie wartości niewiadomej(n) z ostatniego równania
Sumowanie znanych składników wkolejnych równaniach
Wyznaczenie wartości pozostałychzmiennych
Wydruk rozwiązania
Powrotna sybstytucja
87
Algorytm metody iteracyjnej Gaussa-
Siedela
Do rozwiązywania dużych układów równań wyższą efektywność wykazują techniki
iteracyjne
Z pierwszego równania wyznaczamy X1
X1=(b1-A12*X2-A13*X3)/A11
Z drugiego X2
X2 =(b2-A21*X1-A23*X3)/A22
Z trzeciego X3
X3 =(b3-A31*X1-A32*X2)/A33
A11 A12 A13 X1 b1
A21 A22 A23 * X2 = b2
A31 A32 A33 X3 b3
88
Algorytm metody iteracyjnej Gaussa-
Siedela
Załóżmy wartości początkowe niewiadomych
X10
X20
X30
I wyznaczmy X11 w pierwszej iteracji (1) korzystając z wartości początkowych (0)
X11=(b1-A12*X20 - A13*X30 )/A11
Wartość X21 wyznaczymy wykorzystując obliczoną już wartość X11
(cecha charakterystyczna metody Gaussa – Seidela)
X21 =(b2-A21*X11 -A23*X30 )/A22
To samo dla wartości X31 (korzystamy z bieżących wartości zmiennych X1 i X2)
X31 =(b3-A31*X11 -A32*X21 )/A33
89
Algorytm metody iteracyjnej Gaussa-
Siedela
Po pierwszej iteracji (1) otrymujemy przybliżone wartości rozwiązania
X11
X21
X31
Powtarzamy procedurę w iteracji (2)
X12=(b1-A12*X21 - A13*X31 )/A11
X22 =(b2-A21*X12 -A23*X31 )/A22
X32 =(b3-A31*X12 -A32*X22 )/A33
I w kolejnych iteracjach (i) i (i+1) aż do spełnienia warunków
|X1i+1 – X1i |/ X1i+1 < e
|X2i+1 – X2i |/ X2i+1 < e
|X3i+1 – X3i |/ X3i+1 < e90
Algorytm metody iteracyjnej Gaussa-
Siedela
Liczba równao n
Wprowadź elementy wektora prawejstrony do tablicy r, oraz warościpoczątkowe do tablicy x
Wprowadź elementy macierzywspółczynników równao do tablicy c
Element i,j macierzy współczynnikóww tablicy c znajduje się na pozycjin*(i-1)+j 91
m=0Powtarzaj,
Tak dlugo jak m<>0
Algorytm metody iteracyjnej Gaussa-
Siedela
TEMP – wartośd elementu xi
wyznaczona z równania i
Sprawdż warunek|TEMP-x[i]/TEMP|>eTEMP – bierząca wartośd xi,x[i] - wartośd poprzednia
m – wskaźnik spełnienia warunku dlawszystkich zmiennycg
Uaktualnij wartośd x[i]x[i]:=x[i]+LAM*(TEMP-x[i])LAM – parametr relaksacyjnyLAM =1, x[i]=TEMP
92
Algorytm metody iteracyjnej Gaussa-
Siedela
Wyprowadź liczbę wykonanychiteracji
Wyprowadź rozwiązanie
93
Algorytmy metody Gaussa-Siedela
Przykład. Rozwiąż układ równań metodą Gaussa-Siedela, z dokładnością e =
0.01 3.00 x1 + 1.00 x2 - 1.00 x3 = 2.00
1.00 x1 + 4.00 x2 +1.00 x3 = 12.00
2.00 x1 + 1.00 x2 + 2.00 x3 = 10.00
Wartości początkowe iteracja = 0x1 = 1.00 x2 = 1.00 x3 = 1.00
Wyniki po kolejnych iteracjach (wydruki do dwóch miejsc po przecinku)
iteracja 1
x1= 0.67 x2 = 2.58 x3 = 3.04
iteracja 2
x1 = 0.82 x2 = 2.03 x3 = 3.16
iteracja 3
x1 = 1.04 x2 = 1.95 x3 = 2.98
iteracja 4
x1 = 1.01 x2 = 2.00 x3 = 2.99
iteracja 5
x1 = 1.00 x2 = 2.00 x3 = 3.00
iteracja 6
x1 = 1.00 x2 = 2.00 x3 = 3.00
Wydruk w formacie ekspotencjalnym, po 6 iteracjach
x1 = 9.9942062650E-01
x2 = 1.9995354965E+00
x3 = 3.0008116252E+00
94
Algorytm metody bisekcji
Znajdź pierwiastek funjcji f(x) w przedziale <a, b>
1. Podziel przedział na dwie cześci w punkcie xm=(a+b)/2
2. Wyznacz warość funkcji w punkcie xm i b, jeśli f(xm)*f(b)<0, to znaczy ze
pierwiastek znajduje się w tym przedziale.
3. Jeśli f(xm)*f(b)>0, pierwiastek znajduje się w przedeziale <a, xm>,
wybierz przedział <a, xm> i podziel na dwie równe części.
4. Powtarzaj procedurę tak dlugo az pierwiastek zostanie wyznaczony z
zadana dokładnością to znaczy że przedział w którym się znajduje będzie
mniejszy od zadanej dlugosci e.
Założenie:
Jeden pierwiastek w przedziale f(x)
b
a
xxm
95
Algorytm metody bisekcji
Wprowadz a,b i e (dokładnośd)
Sprawż dlugośd (dokładnośd)przedziału
Warunek f(XL)*f(XR)>0
Wybierz przedział <XL ; xm>
Wybierz przedział <xm ; XR>
Wydrukuj pierwiastek (XL+XR)/2 96
O efektywności algorytmu
Kielce, luty 2009 r.
Obliczanie wartości wielomianu
Sprawdźmy złożoność obliczeniową operacji wyznaczenia wartości
wielomianu W(x).
Niech W(x) = 7x4 + 3x3 + 2x2 -3x +5
Klasycznie używając zwykłego zapisu:
W(x) = 7*x*x*x*x + 3*x*x*x + 2*x*x - 3*x + 5
Użyto dziesięciu mnożeń, czterech dodawań
W ogólności obliczenie W(x) tym algorytmem wymaga n dodawań
oraz n(n+1)/2 mnożeń, gdzie n jest stopniem wielomianu.
97
O efektywności algorytmu
Kielce, luty 2009 r.
Znaczącą redukcję kosztów obliczeń daje algorytm Hornera.
Wystarczy inaczej zapisać wielomian:
W(x) = ( ( ( 7 * x + 3 ) * x + 2 ) * x - 3 ) * x + 5
Użyto czterech mnożeń, czterech dodawań
W ogólności algorytm Hornera wymaga n mnożeń oraz n dodawań.
Nie ma zysku na dodawaniach, ale dla mnożeń zredukowaliśmy koszt
metody z O(n2) do O(n).
98
Czego algorytm nie może? – własność STOP
Kielce, luty 2009 r.
Czy możemy przewidzieć, że dany program się zatrzyma, czyli czy ma
własność „STOP”?
Nie można sporządzić schematu, który zbada własność „STOP”
każdego pomyślanego algorytmu!
Schemat taki musiałby bowiem umieć sprawdzić także poniższy krótki
algorytm...
1)Sprawdź, czy ten algorytm ma własność STOP
2)Jeśli TAK, to wpadnij w nieskończoną pętlę
3)A jeśli nie, to ZAKOŃCZ
99
Algorytmy - podsumowanie
Kielce, luty 2009 r.
Budując algorytmy należy przestrzegać następujących zasad:
•Algorytmy trzeba rozłożyć na jak najprostrze operacje podstawowe
•Każdy krok algorytmu dokładnie określić i przemyśleć
•Rozważyć wszystkie możliwe przypadki funkcjonowania algorytmu w
zależności od danych wejściowych oraz operacji wewnętrznych
•Każdy algorytm powinien prowadzić do rozwiązania generując jedną lub
wiele odpowiedzi na zadany problem
Algorytm zdefiniowany z wykorzystaniem powyższych zasad powinien
mieć jasno określony punkt startowy i punkt końcowy.
100
Algorytmy - podsumowanie
Kielce, luty 2009 r.
Algorytmy możemy podzielić na:
•Algorytmy liniowe
•Algorytmy warunkowe
•Algorytmy iteracyjne
Jeśli problem jest trudny bądź złożony, stosuje się metodę programowania
zwaną projektowaniem zstępującym – ang. Top-down design. Polega ona
na podziale problemu na kroki będące podproblemami
101