You are on page 1of 104

Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 1

Metody numeryczne - laboratorium.


Matlab6.1
wersja 2.3
Kwiecie 2002
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 2
Spis treci
1 Matlab - podstawy 6
1.1 Wiadomoci oglne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Praca z Matlab-em . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Wyraenia w Matlab-ie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Zmienne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2 Liczby. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.3 Operatory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.4 Funkcje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 Pliki skryptowe i funkcjne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.5 Rysunki w Matlab-ie - polecenia plot i subplot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Pliki danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6.1 Polecenie save. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6.2 Polecenie load. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
1.7 Literatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2 Nieuniknione bdy. 38
2.1 Miary bdw. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2 Reprezentacja binarna liczby rzeczywistej. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.3 Zamieniamy cakowit potg do ukadu binarnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.4 Zamieniamy rzeczywist mantys do ukadu binarnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5 Liczby uyteczne i nieuyteczne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3 Macierze i operacje na nich, techniki przetwarzania macierzy. 45
3.1 Mnoenie macierzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Potgowanie i dzielenie macierzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3 Transpozycja i sprzenie macierzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Rzd macierzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5 Wyznacznik macierzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 3
3.6 Macierze specjalne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6.1 Macierz diagonalna (przektniowa) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.6.2 Macierz jednostkowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.6.3 Macierz permutacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.6.4 Macierz trjktna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.6.5 Macierz odwrotna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.6.6 Macierz symetryczna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.6.7 Macierz ortogonalna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4 Ukady rwna liniowych. 65
4.1 Rozwizanie formalne dla kwadratowej macierzy ukadu. . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2 Eliminacja Gaussa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.2.1 Rozwizanie ukadu diagonalnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.2.2 Rozwizanie ukadu trjktnego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.2.3 Eliminacja Gaussa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.4 Eliminacja Gaussa z wyszukiwaniem elementu gwnego . . . . . . . . . . . . . . . . . . . . . . . 78
4.2.5 Rozwizanie ukadu z uyciem opratora dzielenia lewostronnego. . . . . . . . . . . . . . . . . . . 82
4.3 Co robi operator dzielenia lewostronnego? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5 Aproksymacja. 84
5.1 Aproksymacja lini prost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.2 Aproksymacja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.3 Co jeszcze robi operator dzielenia lewostronnego? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6 Interpolacja. 92
6.1 Interpolacja wielomianami sklejanymi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.2 Interpolacja kawakami liniowa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.3 Interpolacja kawakami szecienna - Hermite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.4 Interpolacja kawakami szecienna - splajny. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.5 Funkcje interpolacyjne Matlab-a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 4
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 5
Wstp
1. W obliczniach numerycznych (w przeciwiestwie do oblicze symbolicznych)
dopuszczamy bd w reprezentacji liczby.
2. W celu zaoszczdzenia pamici komputera stosuje si rne typy zmiennych.
3. Dla potrzeb nauki praktycznego zapoznania si z metodami numerycznymi
bdziemy stosowa program Matlab(MATrix LABoratory), ktry wykorzy-
stuje tylko jeden typ zmiennych - macierz.
A
mn
=
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_

_
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 6
1. Matlab - podstawy
1.1. Wiadomoci oglne.
Matlabumoliwia wykorzystanie metod rachunku macierzowego za pomoc in-
teraktywnego interfejsu i prostego jzyka polece. Wszystkie polecenia s formu-
owane w trybie tekstowym, a podstawow struktur danych jest macierz, ktrej
elementami mog by liczby rzeczywiste lub zespolone.
W skad interfejsu wchodz midzy innymi:
Command Window - okno polece
Command History - okno poprzednich polece
Launch Pad - okno dostpu do pakietw Matlab-a
Current Directory - okno katalogu roboczego
Workspace - inoformacje o zmiennych w przestrzeni roboczej
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 7
1.2. Praca z Matlab -em
Praca z Matlab-em przypomina prac w typowym systemie operacyjnym (DOS,
UNIX) i polega na wydawaniu polece, ktre po zatwierdzeniu s wykonywane
przez interpreter.
polecenie moe by jedno, bd jest to cig polece oddzielonych przecinkiem
lub rednikiem.
pliki, ktre s uywane w pakiecie Matlabmaj rozszerzenie *.m
w Matlab-ie s rozrnialne mae i due litery!
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 8
Podstawowe polecenia Matlab-a:
Enter wykonanaj polecenie
ponowne wywietlenie polecenia na ekranie
help pomoc na dowolny temat
help nazwa tematu pomoc na okrelony temat
exit zakoczenie pracy z Matlab-em (lub quit)
demo pokaz przykadowych zastosowa Matlab-a
Polecenia DOS-a:
dir wywietlenie zawartoci aktualnego katalogu
type nazwa pliku wywietlenie zawartoci pliku
!notepad wywoanie Notatnika (lub innego programu)
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 9
W Matlab-ie podstawowym poleceniem jest instrukcja przypisania:
zmienna = warto
>> x=5
x =
5
>> z=6;
jeli na kocu polecenia zostanie posta-
wiony rednik, to warto zmiennej nie
bdzie wywietlona,
zmienna = wyraenie
>> 5+4
ans =
9
>> z=5*7
z =
35
jeli nie zostanie zdeniowana zmienna
(nie nadana nazwa zmiennej), to Ma-
tlabprzypisuje jej nazw zmiennej ro-
boczej ans,
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 10
1.3. Wyraenia w Matlab -ie.
Matlabudostpnia uytkownikowi polecenia - komendy, ktre w odrnieniu od
innych jzykw programowania zwizane s z macierzami. Polecenia wykonuj
operacje na:
zmiennych,
liczbach,
operatorach,
funkcjach.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 11
1.3.1. Zmienne.
Matlabnie wymaga deklaracji typu i wymiarw zmiennych. Automatycznie two-
rzy zmienn i przydziela jej domylny obszar pamici. Jeeli zmienna ju istnieje,
Matlabzmienia jej zawarto i w sposb dynamiczny przyporzdkowuje jej wy-
magany obszar pamici. Polecenie:
>> num_students = 25 tworzy macierz 1 1 o nazwie
num_students i przechowuje w niej
warto 25.
Nazwa zmiennej musi zaczyna si od litery alfabetu, a po niej moe wystpowa
dowolny znak alfanumeryczny lub znak podkrelenia. Maksymalna dugo nazwy
zmiennej wynosi 31 znakw. Przy wyborze nazw zmiennych naley pamita o
tym, e Matlabrozrnia mae i due litery.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 12
1.3.2. Liczby.
Matlabuywa konwencjonaln notacj dziesitn, z kropk dziesitn. W przy-
padku notacji naukowej litera e suy do okrelenia wykadnika potgi dziesi. W
przypadku liczb zespolonych uywa si zarwno liter i, jak j przy czci urojonej
liczby zespolonej. Przykady liczb w programie Matlab:
3 -99 0.0001
9.6397238 1.60210e-20 6.02252e23
1i -3.14159j 3e5i
Wszystkie liczby s zachowywane w formacie dugim (z ang. format long). Na
komputerach wykorzystujcych 32-bitowy procesor odpowiada to dokadnoci do
16 cyfr znaczcych po kropce dziesitnej i zakresowi od 10
308
do 10
+308
.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 13
Polecenie format kontroluje format liczb wywietlanych przez program MATLAB.
Polecenie jest jedynie odpowiedzialne za sposb wywietlania liczb, a nie dokad-
no oblicze i sposb ich zapamitywania.
wiczenie: Format liczby
>> a = 0.12345678901234567890 polecenie nadania wartoci zmiennej a
>> a wywietlenie wartoci zmiennej a
>> format short e
>> a
ustawienie formatu liczb na 0.12345 10
123
>> format short
>> a
ustawienie formatu liczb na 0.12345
>> format long
>> a
format 0.123456789012345
>> format long e
>> a
format 0.123456789012345 10
123
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 14
1.3.3. Operatory.
Operatory arytmetyczne (macierzowe i tablicowe)
Symbol operacji Znaczenie Symbol operacji Priorytet
macierzowej tablicowej operacji
^ potgowanie .^ najwyszy
sprzenie nie ma najwyszy
. transpozycja nie ma najwyszy
* mnoenie .* niszy
/ dzielnie prawostronne ./ niszy
\ dzielenie lewostronne .\ niszy
+ dodawanie + najniszy
- odejmowanie - najniszy
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 15
Operatory logczne
Symbol Znaczenie
< mniej ni
<= mniej ni lub rwne
> wiksze ni
>= wiksze ni lub rwne
== rwna si
~= nie rwna si
& iloczyn logiczny (i)
| suma logiczna (lub)
~ zaprzeczenie (nie)
Uwaga! W jzyku Matlabtylko liczba zero ma warto logiczn false - fasz,
pozostae liczby maj warto logiczn true - prawda.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 16
1.3.4. Funkcje.
Matlabudostpnia uytkownikowi szereg standardowych elementarnych funk-
cji obejmujcych m.in. abs, sqrt, exp i sin. Wikszo tych funkcji akceptuje
zespolone argumenty.
>> help elfun polecenie wywietlajce list elementar-
nych funkcji matematycznych
>> help specfun
>> help elmat
polecenie wywietlajce list zaawanso-
wanych matematycznych i macierzowych
funkcji
Niektre funkcje takie, jak sqrt i sin, s wbudowane w program, dziki czemu
s bardzo efektywne. Inne funkcje takie, jak gamma i sinh, s zewntrznymi pli-
kami *.m. Uytkownik moe przejrze kody tych funkcji i ewentualnie podda je
modykacjom.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 17
Matlabudostpnia rwnie szereg funkcji specjalnych generujcych pomocne
stae:
pi 3.14159265358979
i liczba urojona

1
j liczba urojona (to samo znaczenie co i)
eps odlego od 1.0 do nastpnej liczby
realmin najmniejsza dodatnia liczba
realmax najwiksza ujemna liczba
Inf nieskoczono ()
NaN nie jest to liczba (z ang. not a number)
>> eps
ans =
2.220446049250313e-016
>>eps = 1.e-6
nazwy powyszych funkcji nie s zastrze-
one, dziki czemu jest moliwa zmiana
ich wartoci
>>clear eps domylna warto funkcji moe by od-
tworzona przy pomocy polecenia
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 18
Przykad:
>> a=10/0
Warning: Divide by zero.
a =
Inf
>>b=0/0
Warning: Divide by zero.
b =
NaN
Ostrzeenie: Dzielenie przez zero.
>>c=Inf-Inf
c =
NaN
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 19
Przykad: Wyraenia z wykorzystaniem wbudowanych funkcji.
>>rho = (1+sqrt(5))/2
rho =
1.6180
>>a = abs(3+4i)
a =
5
>>duzo = exp(log(realmax))
duzo =
1.7977e+308
>>zbytduzo = pi*duzo
zbytduzo =
Inf
funkcje sqrt() -

, abs() - [[, . . .
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 20
wiczenie: Wypenij macierze. Sprawd rezutalt poleceniem whos.
>> a=1.234;
>> size(a)
polecenie size zwraca wymiar macierzy,
zmienna a to macierz o wymiare 1x1
>> clear a polecenie usunicia zmiennej a z pamici
>> a=[1 2 3 4 5; 6 7 8 9 0] wypenianie macierzy (; jest separato-
rem wierszy)
>> a=[1.1:2.2:7] wypenianie macierzy (min:skok::max),
domylny skok to 1
>> who polecenie who pokazuje wszystkie zmien-
ne w przestrzeni roboczej
>> whos polecenie whos pokazuje wszystkie
zmienne i ich rozmiary
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 21
wiczenie: Wykonaj polecenia - sprbuj przewidzie wynik. Sprawd rezutalt
poleceniem whos.
>> a=[1,0,0,0,0,1] zapamitaj rol przecinka - oddziela on
koleje pola macierzy
>> b=[2;4;6;10] zapamitaj rol rednika - to separator
wierszy macierzy
>> c=[5 3 5; 6 2 -3] spacja peni rol tak jak przecinek
>> d=[3 4
5 7
9 10]
zapamitaj rol zmiany linii (Enter) w
trakcie wypeniania macierzy, jest ona ta-
ka sama jak rola rednika
>> e=[3 5 10 0; 0 0 ...
0 3; 3 9 9 8]
... to znak kontynuacji wiersza
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 22
wiczenie: Wykonaj polecenia - sprbuj przewidzie wynik. Sprawd rezutalt
poleceniem whos.
>> t=[4 24 9]
>> q=[t 0 t]
zauwa, e elementami macierzy mog
by macierze
>> x=[3 6]
>> y=[d;x]
>> z=[x;d]
macierz d bya wprowadzone wczeniej i
zapamitana w przestrzeni roboczej
>> r=[c;x,5]
>> c
nie pomyl rednika z przecinkiem i ko-
niecznie sprawd poleceniem whos co ju
masz w pamici, macierz c zdenowano
wczeniej
>> c(2,1)
>> v=[c(2,1);b]
c(2,1) wskazuje konkretny element ma-
cierzy
>> a(2,1)=-3
>> c(1,5)=1
czy wynik tych polece jest zaskakujcy
?
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 23
1.4. Pliki skryptowe i funkcjne.
Pliki *.M s plikam ASCII, ktre mog zawiera:
sekwencje polece,
wywoania innych plikw M lub samych siebie,
skrypty, czyli cigi polece - pliki-M skryptowe,
funkcje tworzone przez uytkownika - pliki-M funkcyjne.
Pliki-M funkcyjne zawieraj denicje nowych funkcji, ktre dziaaj na zmiennych
lokalnych i globalnych. Komunikuj si z przestrzeni robocz poprzez parametry
i zmienne globalne (polecenie global).
Pliki-M funkcyjne rozpoczynaj si od sowa kluczowego function o nastpujcej
skadni:
function [lista param. wyj] = nazwa funkcji (lista param. wej)
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 24
wiczenie:
1. Utwrz za pomoc dowolnego edytora ASCII plik o nazwie pit.m
2. Wprowad do niego nastpujce polecenia:
function z = pit(x,y);
% moja funkcja
%
temp = x.^2 + y.^2;
z = sqrt(temp);
3. Zapisz plik w katalogu roboczym.
4. Wykonaj polecenia z wykorzystaniem nowej funkcji pit.
5. Sprbuj wykona inn wasn funkcj.
>> pit(3,4)
>> a=4, b=6, c=pit(a,b)
Wywoaj funkcj na rne znane ci sposo-
by. Wykonaj polecenie help pit. Zmo-
dykuj komentarz (tekst poprzedzony
znakiem %)
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 25
1.5. Rysunki w Matlab -ie - polecenia plot i subplot.
Polecenie plot suy do sporzdzania rysunkw 2-D i moe by wywoane z na-
stpujcymi parametrami:
plot(y)
plot(x,y)
plot(x,y,s)
plot(x,y,s,x1,y1,s1,...)
y - wektor wrtoci na osi pionowej, na osi
poziomej bd kolejne liczby natu-
ralne
x - wektor wartoci na osi poziomej o
tym samym wymiarze co wektor y
s - cig co najwyej trzech znakw okre-
lajcych: kolor, rodzaj punktu, typ
lini.
b niebieski . punkt - ciga
g zielony o koo : kropkowa
r czerwony x krzy -. kreska-kropka
c turkusowy + plus -- przerywana
m amarantowy * gwiazda
y ty s kwadrat
k czarny d diament
v^<> trjkt
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 26
Przykad:
>> x=-pi:0.1:pi;
>> plot(x,sin(x),+-,x,cos(x),*)
pierwsze polecenie wypenia macierz x w
zakresie od do co 0.1, drugie rysuje
dwie funkcje
polecenie sin(x) generuje macierz war-
toci dla wszystkich waroci macierzy x
4 3 2 1 0 1 2 3 4
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 27
Polecenie subplot dzieli okno graczne na mniejsze prostoktne pola.
subplot(m,n,p)
subplot(mnp)
m,n - ilo pl pionowo i poziomo
p - numer aktywnego pola
Przykad:
>> x = -5:0.01:5;
>> subplot(2,2,2), plot(x,sin(x))
>> subplot(2,1,2), plot(x,cos(x))
5 4 3 2 1 0 1 2 3 4 5
1
0.5
0
0.5
1
5 0 5
1
0.5
0
0.5
1
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 28
Polecenia dodatkowe do opisu rysunku:
polecenie opis przykad
title tytu title(Moj rysunek)
xlabel opis osi poziomej xlabel(x w cm)
ylabel opis osi pionowej ylabel(f(x))
legend utworzenie legendy legend(moja linia)
text wstawienie tekstu w punkcie (x, y) text(1,1,moj tekst)
gtext wstawienie tekstu przy pomocy myszy gtext(tekst)
grid wywietlanie siatki
axis skalowanie i wygld osi axis off, axis on
Inne polecenia zwizane z rysunkiem:
hold nowy rysunek nie usunie istniejcego
print wydruk lub zapis rysunku do pliku
clf wyczyszczenie okna gracznego
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 29
Przykad: Rysunek 3-D.
>> [x,y] = meshgrid(-2:.2:2, -2:.2:2);
>> z = x .* exp(-x.^2 - y.^2);
>> mesh(z)
0
10
20
30
40
50
0
10
20
30
40
50
0.5
0
0.5
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 30
1.6. Pliki danych
1.6.1. Polecenie save.
Polecenie save pozwala na zapamitanie zawartoci pamici operacyjnej progra-
mu w pliku danych z rozszerzeniem *.MAT, ktre nastpnie mona wczyta do
programu dziki poleceniu load.
save
save nazwa pliku
save nazwa pliku lista zmiennych
nazwa pliku - nazwa pliku do ktre-
go zapis si dane (domylnie ma-
tlab.mat),
lista zmiennych - lista zmiennych do
zapisania (domylnie wszystkie).
Dodatkowe opcje:
-ascii w 8-cyfrowym formacie tekstowym
-double w 16-cyfrowym formacie tekstowym
-tabs elementy macierzy rozdzielone zostaj znakami tabulacji
-append dopisuje dane do istniejcego pliku *.MAT
Uwaga! W jednym pliku tekstowym (ASCII) powinna by zapamitana jedna
zmienna.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 31
Przykad:
>> clear
>> A=[1,2,3;4,5,6;7,8,9];
>> b=12;
>> save
Saving to: matlab.mat
zapis zmiennych A i b do pliku ma-
tlab.mat
>> clear
>> who
>> load
Loading from: matlab.mat
>> who
Your variables are:
A b
czycimy wszystkie zmienne poleceniem
clear, upewniamy si, e to prawda po-
leceniem who i czytamy zapisane wcze-
niej zmienne z pliku matlab.mat
>> save zmiennaa A
>> clear
>> load zmiennaa
>> who
Your variables are:
A
zapis i odczyt zmiennej A z pliku zmien-
naa.mat
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 32
Przykad:
>> A
A =
1 2
4 5
>> save zmiennaa.dat A -ascii -double -tabs
>> type zmiennaa.dat
1.0000000000000000e+000
2.0000000000000000e+000
4.0000000000000000e+000
5.0000000000000000e+000
>> whos
Name Size Bytes Class
A 2x2 32 double array
Grand total is 4 elements using 32 bytes
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 33
Przykad:
>> B=A
B =
1 4 7
2 5 8
3 6 9
>> clear A
>> whos
Name Size Bytes Class
B 3x3 72 double array
Grand total is 9 elements using 72 bytes
>> load zmiennaa
>> who
Your variables are:
A B
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 34
Przykad:
>> save zmienne A B
>> clear
>> load zmienne B
>> who
Your variables are:
B
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 35
1.6.2. Polecenie load.
Polecenie load wczytuje pliki binarne oraz pliki tekstowe zawierajce dane nume-
ryczne. Plik tekstowy powinien zawiera prostoktn tablic liczb rozdzielonych
spacjami. W pliku tym linia zawiera jeden wiersz macierzy. Kady z wierszy po-
siada rwn liczb elementw.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 36
wiczenie: Utwrz plik tekstowy magik.dat zawierajcy nastpujce cztery
linie:
16.0 3.0 2.0 13.0
5.0 10.0 11.0 8.0
9.0 6.0 7.0 12.0
4.0 15.0 14.0 1.0
>> load magik.dat
>> magik
wczytuje plik danych i tworzy zmienna
magik zawierajc przykadow macierz.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 37
1.7. Literatura
1. Matlab6 - poradnik uytkownika, Bogumi i Zbigniew Mrozek, ISBN 83-
7101-449-X, cena 38z, 230 stron.
2. Matlab- obliczenia numeryczne i ich zastosowania, Andrzej Zalewski i Rafa
Cegiea, ISBN 83-85060-85-5, cena 30z, 400 stron.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 38
2. Nieuniknione bdy.
Przykad:
>> format long e Polecenie zmiany formatu wywietlania
liczby (help format).
>> 2.6 + 0.2
ans =
2.800000000000000e+000
>> ans + 0.2
ans =
3.000000000000000e+000
>> ans + 0.2
ans =
3.200000000000001e+000
>> 2.6 + 0.6
ans =
3.200000000000000e+000
Dlaczego 2.6+0.2+0.2+0.2 ,= 2.6+0.6?
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 39
2.1. Miary bdw.
bd bezwzgldny = [warto otrzymana warto prawdziwa[
bd wzgldny =

warto otrzymana warto prawdziwa


warto prawdziwa

Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 40


2.2. Reprezentacja binarna liczby rzeczywistej.
Kad liczb mona zamieni do nastpujcej postaci, nazywanej znormalizo-
wan notacj naukow:
123.456 0.123456
. .
mantysa
10
3
Skoczona liczba bitw jest przeznaczana na zapamitanie liczby, przy czym
cz bitw b
m
przeznaczana jest na znormalizowana mantys z przedziau
(0.1,1.0), a cz na cakowit potg b
p
. Zarwno b
m
jak i b
p
mog przyjmowa
wartoci 1 lub 0.
64 bity
..
b
m
..
znak
b
m
b
m
b
m
b
m
b
m
. .
52 bity
. .
mantysa
b
p
..
znak
b
p
b
p
b
p
b
p
b
p
. .
10 bitw
. .
potga
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 41
2.3. Zamieniamy cakowit potg do ukadu binarnego
p
k
= p
0

k=10
b
p
k
2
k1
= p
k1
b
p
k
2
k1
, gdzie p
0
= potga
Przykad: Niech potga p
0
= 10.
k 2
k1
b
p
k
p
k
= p
k1
b
p
k
2
k1
.
.
. 0 10
4 8 1 2
3 4 0 2
2 2 1 0
1 1 0 0
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 42
2.4. Zamieniamy rzeczywist mantys do ukadu binarnego
m
k
= m
0

52

k=1
b
m
k
_
_
1
2
_
_
k
= m
k1
b
m
k
_
_
1
2
_
_
k
, gdzie m
0
= mantysa
Przykad: Niech mantysa m
0
= 0.8125.
k
_
1
2
_
k
b
m
k
m
k
= m
k1
b
k
_
1
2
_
k
1 0.5 1 0.3125
2 0.25 1 0.0625
3 0.125 0 0.0625
4 0.0625 1 0.0000
.
.
.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 43
wiczenie:
1. Rozpakuj plik mn.zip w katalogu: ...\toolbox\
2. Ustaw biecy katalog (okno Current Directory) na:
...\toolbox\mn\bledy.
3. Makra Matlab-a maj rozszerzenie *.m. Sprawd, czy widoczne jest makro
man2bin.m.
4. Kliknij dwa razy w nazw pliku man2bin.m. Zapoznaj si z jego zawartoci:
(a) pierwsza linia zawiera zawsze nagwek funkcji o takiej samej nazwie jak
nazwa pliku,
(b) linie poprzedzone znakiem % to komentarze,
(c) sowa w niebieskim kolorze nalea do jzyka Matlab-a.
5. Opis funkcji wywouje si przez polecenie help "nazwa_funkcji" w oknie
polece (Command Window).
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 44
2.5. Liczby uyteczne i nieuyteczne.
>> relmax
>> relmin
Sprawd wartoci tych zmiennych. Da-
lej ich wartoci bdziemy oznacza odpo-
wiednio: R
max
i R
min
.
Zakresy dyskretnej reprezentacji liczb rzeczywistych:
przydatno liczb zakres wartoci komentarz
nieuyteczne (, R
max
) przepenienie (z ang. overow)
uyteczne (R
max
, R
min
) pena precyzja mantysy
cz. uyteczne (R
min
, R
min
) gorsza precyzja mantysy
nieuyteczne (R
min
, 0, +R
min
) zero
cz. uyteczne (+R
min
, +R
max
) gorsza precyzja mantysy
uyteczne (+R
min
, +R
max
) pena precyzja mantysy
nieuyteczne (+R
max
, +) przepenienie
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 45
3. Macierze i operacje na nich, techniki
przetwarzania macierzy.
Macierz Ato tablica elementw a
ik
na ktrej mona wykona operacje macierzowe.
Wskanik i = 1, . . . m oznacza numer wiersza, a k = 1, . . . n numer kolumny w
ktrej znajduje si element. Liczby mn nazywane s rozmiarem macierzy.
A =
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_

_
Poznalimy na wczeniejszych zajciach symbole operacji macierzowych: ^ pot-
gowanie, sprzenie, . transpozycja, * mnoenie, / dzielenie prawostronne, \
dzielenie lewostronne, + odejmowanie, - odejmowanie. Teraz zajmiemy si nimi
bliej.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 46
3.1. Mnoenie macierzy
Mnoenie macierzy A o rozmiarze mk przez macierz B o rozmiarze r n jest
moliwe jeli k = r, tzn kiedy ilo kolumn (k) w pierwszej macierzy jest rwna
iloci wierszy (r) w drugiej macierzy. Denicja mnoenia macierzy (symbol * w
Matlab-ie) jest nastpujca:
C = AB c
i,j
=
r

k=1
a
i,k
b
k,j
Kady element i-tego wiersza pierwszej macierzy jest mnoony przez j-t kolumn
drugiej macierzy. Suma wynikw mnoe zapisywana jest w macierzy wynikowej
na pozycji (i, j).
Wasnoci mnoenia macierzy:
A(BC) = (AB)C, A(B + C) = AB + AC, ale na og AB ,= BA.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 47
Wydanie polecenia C=A*B w Matlab-ie spowoduje wykonanie nastpujcego
algorytmu:
Algorytm 3.1 Mnoenie macierzy.
Wynik: C[m x n]
Dane: A[m x r], B[r x n]
C = zeros(m,n)
for j = 1:m
for i = 1:n
for k = 1:r
C(i,j) = A(i,k) * B(k,j) + C(i,j);
end
end
end
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 48
3.2. Potgowanie i dzielenie macierzy
Operacja potgowania (symbol ^ w Matlab-ie) to krtszy zapis mnoenia macie-
rzy przez sam siebie, czyli A
2
= AA, a A
3
= (AA)A, gdzie A musi by macierz
kwadratow.
Operacja odwrotna do mnoenia to dzielenie macierzy. Jeli C = AB to podobnie
jak dla wielkoci skalarnych z dzielenia prawostronnego (symbol /) otrzymamy
A = C/B oraz przy dzieleniu lewostronnym (symbol \) B = A C. Wynik
dzielenia macierzy moe by nieokrelony.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 49
wiczenie: Pomn i podziel macierze
Niech
A =
_

_
4 3 2
4 2 2
0 1 0
1 2 2
_

_
, w =
_

_
1
2
3
_

_
, x =
_

_
3
2
4
_

_
.
Oblicz y = Aw i z = Ax. Nastpnie utwrz macierz B = [w, x] i wykonaj
mnoenie C = AB. Porwnaj kolumny macierzy C z macierzami y i z.
Oblicz D = A C i porwnaj z macierz B. Podobnie sprawd, czy E = C/B
rwna si A?
Oblicz F = A A, oraz G = A/A. Zauwa, e F i G rni si rozmiarami. Czy
wiesz jakie wartoci bd miay elementy na przektnej macierzy H = B/B?
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 50
3.3. Transpozycja i sprzenie macierzy
Dla dowolnej macierzy A o elementach a
ij
istnieje macierz transponowana A
T
,
ktrej kolumny s wierszami macierzy A. W Matlab-ie symbolem operatora
transpozycji s dwa znaki wystpujce jeden za drugim (bez spacji) .
A =
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
m1
a
m2
. . . a
mn
_

_
A
T
=
_

_
a
11
a
21
. . . a
m1
a
12
a
22
. . . a
m2
.
.
.
.
.
.
.
.
.
.
.
.
a
1n
a
2n
. . . a
mn
_

_
.
Operator sprzenia dziaa tak samo jak operator . na macierzach o elementach
rzeczywistych, dlatego uywany jest zamiennie. Jeli elementami macierzy s liczby
zespolone to sprzenie macierzy powoduje jej transpozycj i zamian kadego z
elementw na sprzony.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 51
Przykad:
>> A=[1+2i 2 3 4; 5 6 7 8].
A =
1.0000 + 2.0000i 5.0000
2.0000 6.0000
3.0000 7.0000
4.0000 8.0000
element a
11
= 1+2i jest liczb zespolon
>> A=[1+2i 2 3 4; 5 6 7 8]
A =
1.0000 - 2.0000i 5.0000
2.0000 6.0000
3.0000 7.0000
4.0000 8.0000
liczba sprzona do 1 + 2i to 1 2i
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 52
3.4. Rzd macierzy
Rzd macierzy (z ang. rank) A o rozmiarze mn to ilo wierszy lub kolumn li-
niowo niezalenych (wykady). W Matlab-ie istnieje polecenie rank, ktre liczy
rzd macierzy (dalej oznaczany przez r). Podobnie jak wszystkie inne oblicze-
nia numeryczne, obliczenie rzdu macierzy s obarczone bdami nieunikniony-
mi. Rzd macierzy o rozmiarze m n spenia nierwno r minm, n. Jeli
r = minm, n mwimy, e macierz ma rzd najwyszy.
Przykad:
>> A=[1 0 1; 2 1 0; 3 1 1]
A =
1 0 1
2 1 0
3 1 1
>> rank(A)
ans =
2
ta macierz ma niepeny rzd poniewa
2 < min3, 3
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 53
3.5. Wyznacznik macierzy
Dla kadej macierzy kwadratowej A o rozmiarze n n istnieje liczba nazywana
wyznacznikiem, ktr oznaczamy symbolem det(A). Jeli det(A) ,= 0, to macierz
nazywa si nieosobliw. Jeli, na przykad, rozmiar macierzy jest 2 2 to wy-
znacznik
det(A) =

a
11
a
12
a
21
a
22

= a
11
a
22
a
12
a
21
.
W oglnoci denicj wyznacznika moemy zapisa poprzez minory M
ij
, ktre s
wyzacznikami macierzy o rozmiarze n 1 n 1 utworzonymi przez zmazanie
i-tego wiersza i j-tej kolumny
det(A) =
n

j=1
(1)
i+j
a
ij
M
ij
, gdzie i oznacza jeden z wierszy.
Wyznacznik w Matlab-ie obliczymy wydajc polecenie det(A).
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 54
3.6. Macierze specjalne
Poniewa macierze mog by dowolnymi tablicami dwuwymiarowymi o elemen-
tach liczbowych to istniej macierze specjalne majce okrelone wasnoci. Znajc
wasnoci tych macierzy mona uproci obliczenia. Matlabdostarcza zestaw
komend do ich tworzenia.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 55
3.6.1. Macierz diagonalna (przektniowa)
Macierz diagonalna ma elementy jedynie na gwnej przektnej
C = diag(c
11
, c
22
, . . . , c
nn
) =
_

_
c
11
0 . . . 0
0 c
22
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . c
nn
_

_
.
Jeeli pomnoymy dowoln macierz przez macierz diagonaln to otrzymamy efekt
skalowania kolumn, a mnoc w odwrotnej kolejnoci skalowania wierszy.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 56
Przykad:
>> x = [1 -5];
>> A = diag(x)
A =
1 0
0 -5
Polecenie Matlab-a diag suy do two-
rzenia macierzy diagonalnej jeli argu-
mentem wejciowym jest macierz, ktrej
jeden z wymiarw jest rwny 1 (wektor).
>> B = [1 -5; 6 12];
>> y = diag(B)
y =
1
12
Polecenie diag zwraca elemnty z przekt-
nej, o ile argumentem jest macierz o wy-
miarach rnych od 1.
>> C = ones(2,2};
>> C*A
ans =
1 -5
1 -5
Polecenie ones wypenia macierz jedyn-
kami. Dalej pokazany jest efekt sklowa-
nia kolumn poprzez mnoenie z macierz
diagonalna A. Mnoc AC, otrzymamy
efekt sklowania wierszy.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 57
wiczenie: Macierze wielo-diagonalne.
Poleceni diag(x,k) ma dwa parametry. Pierwszy z nich x to macierz elemntw
lecych na przektnej, a drugi to numer przektnej macierzy. Brak k oznacza do-
mylnie 0. Numer 0 przypisany jest do gwnej przektnej, liczby ujemne wskazuja
na przektne poniej, a dodatnie powyej gwnej przektnej. Wykonaj polecenie:
A = diag(2*ones(4,1)) - diag(ones(3,1),1) - diag(ones(3,1),-1)
B = tridiag(-1,2,-1) T sam macierz trjdiagonaln mo-
na otrzyma poleceniem tridiags, kt-
re znajdziesz w podkatalogu Matlab-a
...\toolbox\mn\macierze\
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 58
3.6.2. Macierz jednostkowa
Macierz jednostkowa to macierz diagonalna o elementach na gownej przektnej
rwnych 1
I = diag(1, 1, . . . , 1) =
_

_
1 0 . . . 0
0 1 . . . 0
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . 1
_

_
.
Jeeli pomnoymy dowoln macierz przez macierz jednostkow to otrzymamy t
sam macierz.
AI = I A = A
>> I = eye(n) Polecenie eye(n) tworzy macierz jed-
nostkow o rozmiarze n n.
>> I = eye(m,n) Polecenie eye(m,n) tworzy macierz po-
dobn do jednostkej o rozmiarze mn.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 59
3.6.3. Macierz permutacji
Jeeli w macierzy jednostkowej przestawimy wiersze lub kolumny to otrzymamy
macierz permutacji P, na przykad:
P =
_

_
0 1 0
0 0 1
1 0 0
_

_
.
Mnoc dowoln macierz przez macierz pertmutacji otrzymamy tak sam macierz
z tym, e wiersze tej macierzy (lub kolumny) ulegn przestawieniu w taki sam
sposb jak przestawione s wiersze (lub kolumny) w macierzy permutacji.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 60
Przykad:
>> A = [1 2 3 4; 5 6 7 8; 9 10 11 12];
>> P = [1 0 0; 0 0 1; 0 1 0];
Macierz dowolna A i macierz permutacji
P
>> B = P*A
B =
1 2 3 4
9 10 11 12
5 6 7 8
>> C = A*P
C =
1 9 5
2 10 6
3 11 7
4 12 8
Realizacja efeku przestawienia wierszy i
kolumn przy uzyciu macierzy permutacji.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 61
3.6.4. Macierz trjktna
Przez macierz trjktn rozumiemy macierz postaci:
L =
_

_
l
11
0 . . . 0
l
21
l
22
. . . 0
.
.
.
.
.
.
.
.
.
.
.
.
l
n1
l
n2
. . . l
nn
_

_
, lub R =
_

_
r
11
r
12
. . . r
1n
0 r
22
. . . r
2n
.
.
.
.
.
.
.
.
.
.
.
.
0 0 . . . r
nn
_

_
.
Macierz L nazywamy macierz trjktn lew (lub doln), a macierz R - praw
(lub grn). Suma, iloczyn i odwrotno macierzy trjktnej tego samego rodzaju
s dalej macierzami trjktnymi. Macierze trjktne maj wiele innych ciekawych
wasnoci, ktre s wykorzystywane przy rozwizywaniu ukadw rwna.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 62
3.6.5. Macierz odwrotna
Macierz odwrotna do A onaczana jest przez A
1
i jest to macierz speniajca
nastpujcy warunek:
A
1
A = AA
1
= I.
Macierz odwrotna jest zwizana z rozwizywaniem ukadw rowna liniowych o
ktrych bdzie mowa na nastpnych zajciach.
Polecenie Matlab-a inv(A) liczy macierz odwrotn A
1
.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 63
3.6.6. Macierz symetryczna
Macierz symetryczna to taka macierz dla ktrej speniony jest nastpujcy waru-
nek:
A = A
T
.
Jej elemnty s symetryczne wzgldem gwnej przektnej a
ij
= a
ji
.
Przykad:
>> B=[1 2; 3 4; 5 6]; Macierz B nie jest symetryczna.
>> B*B
ans =
5 11 17
11 25 39
17 39 61
>> B*B
ans =
35 44
44 56
Jednym ze sposobw generacji macierzy
symetrycznej z dowolnej macierzy jest
pomnoenie jej przez macierz transpono-
wan.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 64
3.6.7. Macierz ortogonalna
Macierz ortogonalna Q to taka macierz dla ktrej speniony jest nastpujcy wa-
runek:
Q
T
Q = I.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 65
4. Ukady rwna liniowych.
Ukad n rwna liniowych o n niewiadomych x
1
, x
2
, x
3
, . . . , x
n
n

k=1
a
i,k
x
k
= b
i
(i = 1, 2, . . . , n) lub AX = B
ma rozwizanie wtedy i tylko wtedy, gdy macierz ukadu A i macierz rozszerzona
R = [A, B] maj ten sam rzd w przeciwnym przypadku s sprzeczne
A =
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
. . . a
nn
_

_
i R =
_

_
a
11
a
12
. . . a
1n
b
1
a
21
a
22
. . . a
2n
b
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
. . . a
nn
b
n
_

_
.
Jeli rzd macierzy ukadu rank(A) = n, to dla dowolnej macierzy B istnieje
rozwizanie ukadu X i jest ono jednoznaczne.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 66
Przykad:
Poszukajmy wspczynikw rwnania kwadratowego, ktre aproksymuje krzyw
pompy.
0 0.5 1 1.5
75
80
85
90
95
100
105
110
115
120
q(m
3
/s) * 10
3
h
(
m
)
krzywa pompy
q(m
3
/s) h(m)
1 10
4
116.2
8 10
4
106.4
14 10
4
82.4
Model (h - wysoko pompowania, q - wydatek pompy):
h = c
1
q
2
+ c
2
q + c
3
,
gdzie c
1
, c
2
, c
3
s szukanymi niewiadomymi.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 67
Podstawmy trzy wybrane punkty (q,h) (patrz rysunek) do modelu
116.2 = 1 10
8
c
1
+ 1 10
4
c
2
+ c
3
,
106.4 = 64 10
8
c
1
+ 8 10
4
c
2
+ c
3
,
82.4 = 196 10
8
c
1
+ 14 10
4
c
2
+ c
3
.
Po przepisaniu do formy macierzowej otrzymamy:
Ax = b
gdzie
A =
_

_
1 10
8
1 10
4
1
64 10
8
8 10
4
1
196 10
8
14 10
4
1
_

_
, x =
_

_
c
1
c
2
c
3
_

_
, b =
_

_
116.2
106.4
82.4
_

_
.
wiczenie:
Zdeniuj macierz A, b i wykonaj A
1
b poleceniem: >> x = inv(A)*b. Otrzy-
masz c
1
= 2 10
7
, c
2
= 4 10
3
c
3
= 116. Wykonaj wykres funkcji h(q) w
zakresie q = (0, 1.5 10
3
).
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 68
4.1. Rozwizanie formalne dla kwadratowej macierzy uka-
du.
Formalne rozwizanie ukadu rwna AX = B to
X = A
1
B
gdzie rozmiar A jest n n.
Nie rozwizuj AX = B szukajc A
1
i mnoc przez B
Jeli widzisz: X = A
1
B, to szukaj: rozwizania AX = B przez eliminacje
Gaussa lub inny podobny algorytm.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 69
4.2. Eliminacja Gaussa.
Celem eliminacji Gaussa jest zamiana dowolnego ukadu rwna (n n) na rw-
nowany ukad, ktrego macierz jest trjktna. Przyjrzyjmy si przykadom roz-
wiza dla ukadw o macierzy diagonalnej i trjktnej. Do kadego przypadku
prezentowany jest przykadowy algorytm, ktry naley szczgowo przeanalizowa.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 70
4.2.1. Rozwizanie ukadu diagonalnego
Przykad:
Ukad zdenowany przez
A =
_

_
1 0 0
0 3 0
0 0 5
_

_
, b =
_

_
1
6
15
_

_
.
jest rwnowany z
x
1
= 1
3x
2
= 6
5x
3
= 15

x
1
= 1
x
2
=
6
3
= 2
x
3
=
15
5
= 3.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 71
Algorytm 4.1 Ukad diagonalny.
Wynik: x[n x 1]
Dane: A[n x n], b[n x 1]
for i = 1:n
x(i) = b(i) / A(i,i)
end
W Matlab-ie:
>> A = ...
>> b = ...
>> x = b./diag(A)
A to macierz diagonalna. To jest jedy-
ny przypadek, gdzie dzielenie elementu
przez element (./) jest wykorzystane do
rozwizywania ukadu rwna.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 72
4.2.2. Rozwizanie ukadu trjktnego
Przykad:
Ukad zdenowany przez
A =
_

_
2 1 2
0 3 2
0 0 4
_

_
, b =
_

_
9
1
8
_

_
.
jest rwnowany z
2x
1
+ x
2
+ 2x
3
= 9
3x
2
+ 2x
3
= 1
4x
3
= 8

x
3
=
8
4
= 2
x
2
=
1
3
(1 + 2x
3
) =
3
3
= 1
x
1
=
1
2
(9 x
2
2x
3
) =
4
2
= 2
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 73
Algorytm 4.2 Ukad trjktny grny. Proces rozwizywania polega na za-
stosowaniu metody podstawiania w odwrotnej kolejnoci poczynajc od x
n
do
x
1
.
Wynik: x[n x 1]
Dane: U[n x n], b[n x 1]
x(n) = b(n) / U(n,n)
for i = n-1:1
s = b(i)
for j = i+1:n
s = s - U(i,j) * x(j)
end
x(i) = s / U(i,i)
end
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 74
Algorytm 4.3 Ukad trjktny dolny. Proces rozwizywania polega na za-
stosowaniu metody podstawiania w kolejnoci poczynajc od x
1
do x
n
.
Wynik: x[n x 1]
Dane: L[n x n], b[n x 1]
x(1) = b(1) / L(1,1)
for i = 2:n
s = b(i)
for j = 1:i-1
s = s - L(i,j) * x(j)
end
x(i) = s / L(i,i)
end
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 75
4.2.3. Eliminacja Gaussa
Przykad:
Rozwiemy ukad o macierzy:
A =
_

_
3 2 1
6 6 7
3 4 4
_

_
, b =
_

_
1
7
6
_

_
.
W tym celu utworzymy macierz rozszerzon

A = [Ab] =
_

_
3 2 1 1
6 6 7 7
3 4 4 6
_

_
a nastpnie bdziemy przeksztaca wiersze macierzy

A tak by otrzyma macierz
trjktn.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 76
Dodajmy 2 razy wiersz 1 do wierza 2, a nastpnie dodajmy 1 raz wiersz 1 do 3,
by poniej gownej przektnej w kolumnie 1 otrzymac zera.

A
(1)
=
_

_
3 2 1 1
0 2 5 9
0 2 3 7
_

_
Teraz zajmiemy si kolumn drug. Naley odj od wiersza 3 wiersz 2.

A
(2)
=
_

_
3 2 1 1
0 2 5 9
0 0 2 2
_

_

x
3
=
2
2
= 1
x
2
=
1
2
(9 5x
3
) = 2
x
1
=
1
3
(1 2x
2
+ x
3
) = 2
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 77
Algorytm 4.4 Eliminacja Gaussa.
Wynik: U[n x n]
Dane: A[n x n]
U=[A b]
for i = 1:n-1
for k = i+1:n
for j = i:n+1
U(k,j) = U(k,j) - (U(k,i) / U(i,i)) * U(i,j)
end
end
end
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 78
4.2.4. Eliminacja Gaussa z wyszukiwaniem elementu gwnego
Przykad:
Rozwiemy inny ukad o macierzy:
A =
_

_
2 4 2 2
1 2 4 3
3 3 8 2
1 1 6 3
_

_
, b =
_

_
4
5
7
7
_

_
.
Podobnie jak poprzednio utworzymy macierz rozszerzon
_

_
2 4 2 2 4
1 2 4 3 5
3 3 8 2 7
1 1 6 3 7
_

_
i tak jak poprzednio sprbujemy utworzy macierz trjktn.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 79
Odejmiemy 1/2 raza wiersz 1 od wiersza 2, dodamy 3/2 raza 1 do 3 i 1/2 raza
wiersz 1 do 4.
_

_
2 4 2 2 4
0 0 5 2 7
0 3 5 5 1
0 3 5 4 5
_

_
okazuje si e element (22) na gwnej przekatnej (element gwny) jest rwny
zero co uniemoliwia dalsze operacje. Dlatego musimy wykona dodatkowe prze-
stawienie wiersza 2 i 4
_

_
2 4 2 2 4
0 3 5 5 1
0 3 5 4 5
0 0 5 2 7
_

_
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 80
Kontynuujemy eliminacj: odejmujemy 1 raz wiersz 2 od 3. Ponownie na przektnej
pojawia si zero zatem przestawiamy wiersz 3 z 4.
_

_
2 4 2 2 4
0 3 5 4 5
0 0 0 1 4
0 0 5 2 7
_

_
2 4 2 2 4
0 3 5 4 5
0 0 5 2 7
0 0 0 1 4
_

_
Dalej ju postpujemy tak jak poprzednio.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 81
Algorytm 4.5 Eliminacja Gaussa z wyszukiwaniem elementu gwnego.
Wynik: U[n x n]
Dane: A[n x n]
U=[A b]
for i = 1:n-1
for k=i:n
poszukaj numer wiersza j gdzie max(|U(j,i)|)>=max(|U(k,i)|)
przestaw wiersz U(j,:) z wierszem U(i,:)
end
for i = i+1:n
for j = i:n+1
U(k,j) = U(k,j) - (U(k,i) / U(i,i)) * U(i,j)
end
end
end
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 82
4.2.5. Rozwizanie ukadu z uyciem opratora dzielenia lewo-
stronnego.
Dla rwnania skalarnego wiemy, e na przykad
5x = 20 x = (5)
1
20 = 4
Analogicznie moemy zapisa dla ukadu rwna
Ax = b x = A
1
b
gdzie A
1
b jest formalnym rozwizaniem rwna.
W notacji Matlab-a polecenie rozwizania ukadu ma posta nastpujc
x = A\b
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 83
4.3. Co robi operator dzielenia lewostronnego?
Dla zadanej macierzy A o rozmiarze nn i wektora b operator \ wykonuje szereg
testw macierzy A. Matlabwybiera metod rozwizania ukadu tak by bdy
numeryczne i ilo operacji byy najmniejsze.
1. Sprawdza, czy macierz mona przedstawi w postaci trjktnej? Jeli tak, to
przyjmuje metod trjktw.
2. Sprawdza, czy A jest symetryczna i dodatnia? Jeli tak, to przyjmuje metod
Choleskiego.
3. Jeli metoda Choleskiego zawiedzie lub jeli macierz jest niesymetryczna, to
Matlabstosuje metod rozkadu macierzy A na doln i grn LU.
Limity maszynowe:
zapotrzebowanie na RAM n
2
,
czas oblicze n
3
.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 84
5. Aproksymacja.
Zajmiemy si szukaniem krzywej y = F(x), dla zadanej liczby punktw (x
i
, y
i
)
dla i = 1, . . . , m
F(x) = c
1
f
1
(x) + c
2
f
2
(x) + + c
n
f
n
(x),
gdzie c
j
to nieznane wspczynniki, a funkcje f
j
(x) nazywane s funkcjami bazo-
wymi, gdzie j = 1, . . . , n.
Aproksymacj stosujemy wwczas, gdy ilo zadanych punktw m jest wiksza
od iloci nieznanych wspczynnikw n krzywej F(x). Zwykle nie mona przepro-
wadzi krzywej przez wszystkie zadane punkty. Szuka si wwczas najlepszej
krzywej, w sensie minimum kwadratu bdw.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 85
5.1. Aproksymacja lini prost
Rozwamy najprostszy przypadek, kiedy f
1
(x) = x, f
2
(x) = 1, a pozostae funkcje
f
j
(x) = 0. Wwczas dla kolejnych punktw (x
i
, y
i
) mamy
c
1
x
1
+c
2
= y
1
c
1
x
2
+c
2
= y
2
.
.
.
.
.
.
c
n
x
m
+c
2
= y
m
lub
_

_
x
1
1
x
2
1
.
.
.
.
.
.
x
m
1
_

_
_
_
c
1
c
2
_
_
=
_

_
y
1
y
2
.
.
.
y
m
_

_
Zatem w postaci macierzowej zapiszemy Ac = y. Poniewa rwnanie to dla m > n
nie ma dokadnego rozwizania moemy zapisa
r = y Ac,
gdzie r jest wektorem pionowych odlegoci pomidzy szukan krzyw i zadanymi
punktami. Bdziemy szukali takiego rowizania dla ktrego
m

i=1
r
2
i
lub macierzowo r
T
r ma warto minimaln.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 86
Poniewa r = y Ac, to iloczyn r
T
r moemy zapisa w nastpujcej formie:
r
T
r = (y Ac)
T
(y Ac)
= y
T
y y
T
Ac c
T
A
T
y + c
T
A
T
Ac
= y
T
y 2y
T
Ac + c
T
A
T
Ac.
Iloczyn ten osiga minimum jeli
d
dc
(r
T
r) = 0 A
T
y + A
T
Ac = 0,
co ostatecznie prowadzi do rwnaia
(A
T
A)c = A
T
y,
ktre nazywane jest rwnaniem aproksymacji.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 87
Przykad: Aproksymacja liniowa.
Szukamy linii prostej aproksymujcej punkty (1 1), (2 2), (4 2), (5 3).
>> x=[1 2 4 5]; y=[1 2 2 3];
>> x=x; y=y;
>> A=[x ones(size(x))];
>> c=(A*A)\(A*y)
c =
0.4000
0.8000
Deniujemy wektory x i y ze wsprzd-
nymi punktw. Poniewa dalej potrzeb-
ne s wektory kolumnowe, wykonujemy
transpozycj. Nastpnie wypeniamy ma-
cierz A, ktra w pierwszej kolumnie ma
wektor x, a w drugiej wektor jedynkowy
o rozmiarze macierzy x. Macierz wsp-
czynnikw c liczymy wykorzystujc rw-
nanie aproksymacji i operator dzielenia
lewostronnego \.
>> ya=c(1)*x+c(2)
>> plot(x,y,o,x,ya,-)
>> grid on
>> xlabel(x)
>> ylabel(y=F(x))
Znajc wspczynniki c
1
, c
2
moemy ob-
liczyc nowe aproksymowane wartoci ya
i przedstawi wyniki gracznie.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 88
5.2. Aproksymacja
Mona wykaza, e rwnanie aproksymacji
(A
T
A)c = A
T
y
jest prawdziwe dla dowolnej funkcji aproksymacji w postaci:
F(x) = c
1
f
1
(x) + c
2
f
2
(x) + + c
n
f
n
(x),
gdzie c
j
to nieznane wspczynniki, f
j
(x) to funkcje bazowe, a macierze A, c i y
maj nastpujc posta:
A =
_

_
f
1
(x
1
) f
2
(x
1
) . . . f
n
(x
1
)
f
1
(x
2
) f
2
(x
2
) . . . f
n
(x
2
)
.
.
.
.
.
.
.
.
.
.
.
.
f
1
(x
m
) f
2
(x
m
) . . . f
n
(x
m
)
_

_
, c =
_

_
c
1
c
2
.
.
.
c
n
_

_
, =
_

_
y
1
y
2
.
.
.
y
m
_

_
.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 89
Przykad: Aproksymacja
Szukamy funkcji w postaci
y =
c
1
x
+ c
2
x,
ktra aproksymuje nastpujce punkty:
x 0.955 1.380 1.854 2.093 2.674 3.006 3.255 3.940 4.060
y 5.722 4.812 4.727 4.850 5.011 5.253 5.617 6.282 6.255
Znajdziesz je w pliku ...\mn\dane\aprox.dat.
>> load aprox.dat
>> x=aprox(:,1)
>> y=aprox(:,2)
adowanie danych z pliku i kopiowanie
danych do odpowiednich wektorw ko-
lumnowych x, y.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 90
>> A=[1./x x];
>> c=(A*A)\(A*y)
c =
4.2596
1.3008
>> xa=linspace(min(x),max(x),100);
>> xa=xa;
>> Aa=[1./xa xa];
>> ya=Aa*c;
>> plot(x,y,o,xa,ya,-)
>> xlabel(x)
>> ylabel(y=F(x))
>> legend(dane,aproksymacja)
Przygotowanie macierzy A i rozwiza-
nia rwnania aproksymacji. Polecenie
linspace generyje wektor wierszowy o
elementach rwnoodleglych w zadanym
zakresie. Zmienne z liter a w nazwie
odnosz si do wartoci aproksymowa-
nych.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 91
5.3. Co jeszcze robi operator dzielenia lewostronnego?
Rozwizanie rwnania macierzowego Ax = y, polega na wyborze waciwej meto-
dy i jej zostosowaniu. Wiemy ju, e dla zadanej macierzy A o rozmiarze n n
i wektora y, operator \ wykonuje szereg testw macierzy A. Matlabwybiera
metod rozwizania ukadu tak by bdy numeryczne i ilo operacji byy naj-
mniejsze.
Matlabdziki wbudowanej wiedzy z algebry potra znacznie wicej.
x = A\y = (A*A)\(A*y)
W przypadku kiedy macierz ukadu A ma rozmiar m n, gdzie m > n au-
tomatycznie zakada, e uytkownik chce otrzyma aproksymacj rozwizania z
najmniejszym bdem w sensie minimum kwadratu bdw. Zatem w Matlab-
ie rwnanie aproksymacji jest wywoywane bez udziau uytkownika, wystaryczy
uy magicznego dzielenia lewostronnego.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 92
6. Interpolacja.
dane
aproksymacja
interpolacja
Interpolacja polega (podobnie jak aproksyma-
cja) na poszukiwaniu funkcji pomidzy znany-
mi punktami. W przeciwiestwie do aproksy-
macji funkcja ta
przechodzi przez te punkty.
Jeeli poszukujemy funkcji poza zakresem za-
danych punktw to mwimy o ekstrapolacji.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 93
Wybrane metody interpolacji.
0 0.5 1 1.5
20
0
20
40
60
80
100
120
Najblizszy sasiad
0 0.5 1 1.5
20
0
20
40
60
80
100
120
Kawalkami liniowo
0 0.5 1 1.5
20
0
20
40
60
80
100
120
Kawalkami kwadratowo
0 0.5 1 1.5
20
0
20
40
60
80
100
120
Splajny kwadratowo
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 94
wiczenie: Interpolacja wielomianem.
P
n1
(x) = c
1
x
n1
+ c
2
x
n2
+ + c
n1
x + c
n
>> rok=[1986 1988 1990 1992 1994 1996];
>> cena=[3.13 3.32 3.38 3.41 3.37 3.44];
>> plot(rok,cena,o)
>> A=vander(rok);% funkcja MATLABA [x^n x^n-1 .. 1], n wym. x
>> cena=cena; % macierz prawych stron ukadu
>> c=A\cena % otrzymasz ostrzeenie - ze skalowanie
>> xnowe=linspace(min(rok),max(rok),100);
>> ynowe=polyval(c,xnowe);
>> plot(rok,cena,o,xnowe,ynowe,-)
>> rokumowny=rok-mean(rok) % poprawienie skalowania macierzy A
Wykonaj ponownie wszystkie obliczenia dla zmiennej niezalenej (przesunitej)
rokumowny. Na kartce Zadania do zaliczenia (5) w polu Zadanie 2 wpisz
obliczone c
i
. W katalogu ...\toolbox\mn\interpolacja znajdziesz pomocn
funkcj Idemo_02.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 95
wiczenie: Interpolacja wielomianem Lagrange-a.
P
n1
(x) = y
1
L
1
(x) +y
2
L
2
(x) + +y
n
L
n
(x), gdzie L
j
(x) =
n

k=1,k,=j
x x
k
x
j
x
k
W katalogu ...\toolbox\mn\interpolacja znajdziesz funkcj ILagrange.
Korzystajc z tej funkcji, oblicz cen benzyny w 1991 roku dla danych z poprzed-
niego przykadu.
wiczenie: Interpolacja wielomianem Newton-a.
P
n1
(x) = c
1
+c
2
(xx
1
)+c
3
(xx
1
)(cx
2
)+ +c
n
(xx
1
)(xx
2
) (xx
n
)
W katalogu ...\toolbox\mn\interpolacja znajdziesz funkcj INewton. Ko-
rzystajc z tej funkcji, oblicz cen benzyny w 1993 roku.
Funkcje Idemo_03 i Idemo_04 demonstruj wykorzystanie funkcji: ILagrange,
INewton.
Uwaga! Nie trzeba rozwizywa ukadu rwna. Jest to zaleta tych metod.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 96
Porwnanie interpolacji:
10
0
10
1
10
2
10
3
10
2
10
3
10
4
10
5
liczba interpolowanych punktw
F
l
o
p
s
wielomian
Lagrange
Newton
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 97
wiczenie: Zbadaj wpyw stopnia wielomianu uytego do interpolacji na jej
jako. Skorzystaj z funkcji Idemo_05. Wniosk wpisz na kartce Zadania do zali-
czenia (5) w polu Zadanie 3
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
0 2 4 6 8 10
5
0
5
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 98
6.1. Interpolacja wielomianami sklejanymi.
Interpolacja wielomianami sklejanymi to praktyczne rozwizanie koniecznoci
zwikszania stopnia wielomianu. Zamiast stosowa jeden wielomian dla wszystkich
danych punktw, metoda sklejania polega na uyciu wielu wielomianw niskiego
stopnia P
i
(x) dla przedziau danych x
i
x x
i+1
. Punkty czenia wielomia-
nw bdziemy nazywali wzami. W wzach moemy da spenienia okrelonych
warunkw np. na cigo pochodnych.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 99
Interpolacja wielomianami sklejanymi.
x
i
x
i+1
funkcja interpolacyjna
wezly
dane punkty
P
i

P
i+1

P
i+2

Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 100
6.2. Interpolacja kawakami liniowa.
0 1 2 3 4 5 6 7
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
p
l
o
t
(
x
,
s
i
n
(
x
)
)
x
x=linespace(0,2*pi,100)
x=linespace(0,2*pi,6)
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 101
wiczenie: Znajd dla danych VT.dat temperatur zcza dla napicia 0.8mV,
oraz napicie na zczu dla temperatury 37 stopni. Wykorzystaj funkcj ILiniowa.
>>
>> load(VT.dat)
>> V=VT(:,1);
>> T=VT(:,2);
adowanie danych z pliku VT.dat do
zmiennej VT, a nastpnie przepisanie da-
nych z odpowiedniej kolumny macierzy
VT do V (napicie) i T (temperatura).
Wynik wpisz w polu Zadania 4.
>> Tszukane=ILiniowa(V,T,0.8) Wywoanie funkcji ILiniowa dla przy-
padku kiedy T = f(V ).
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 102
6.3. Interpolacja kawakami szecienna - Hermite.
P
i
(x) = a
i
+ b
i
(x x
i
) + c
i
(x x
i
)
2
+ d
i
(x x
i
)
3
,
gdzie a
i
, b
i
, c
i
, d
i
s szukanymi wspczynnikami przy nastpujcych warunkach w
wzach:
cigo P
i1
(x
i
) = P
i
(x
i
),
znane wartoci pierwszej pochodnej i jej cigo P
/
i1
(x
i
) = P
/
i
(x
i
).
wiczenie: Skorzystaj z funkcji IHermite i Idemo_06 by okreli jako inter-
polacji od iloci wzw dla funkcji y = xe
x
. W polu Zadania 5 wpisz wielko
bdu dla 6 i 10 wzw.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 103
6.4. Interpolacja kawakami szecienna - splajny.
Metod splajnw jest zbliona do interpolacji Hermitea. Nie wymaga ona znajo-
moci pochodnych we wszystkich punktach wzowych. Natomiast wymaga dodat-
kowo:
cigoci drugiej pochodnej P
//
i1
(x
i
) = P
//
i
(x
i
),
znanej wartoci pierwszej pochodnej (nachylenia) na kocach P
/
1
(x
1
) i P
/
n
(x
n
):
Ustalone nachylenie: P
/
1
(x
1
) = staa1 i P
/
n
(x
n
) = staa2,
Nachylenie naturalne: P
//
1
(x
1
) = P
//
n
(x
n
) = 0,
Nachylenie nieznane: P
///
1
(x
2
) = P
///
2
(x
2
) i P
///
1
(x
2
) = P
///
2
(x
2
).
wiczenie: Zbadaj przy pomocy funkcji Idemo_07 i Idemo_08 zaleno wa-
runku na kocach na jako aproksymacji. Sprawd wniosek dla rnych iloci
wzw. Wnioski zapisz w polu Zadania 6.
Pierwsza Poprzednia Nastpna Ostatnia Wr Cay ekran Zamknij Wyjd Strona: 104
6.5. Funkcje interpolacyjne Matlab -a.
Funkcja Matlab-a interp1 wykonuje interpolacj jedn z metod:
nearest - najbliszego ssiada, polegajc na uyciu funkcji staych,
linear - kawakami liniowa, przy uyciu wielomianu rzdu jeden,
cubic - kawakami szecienna, przy uyciu wielomianw rzdu trzy, takich
e pierwsza pochodna jest ciga,
spline - splajnw (to samo co funkcja spline).
Moe by wywoana nastpujco:
Ynowe=interp1(Xdane,Ydane,Xnowe)
Ynowe=interp1(Xdane,Ydane,Xnowe,metoda).
Oznaczenia:
Ydane - wektor rzdnych funkcji w zadanych punktach,
Xdane - wektor odcitych zadanych punktw,
Xnowe - wektor odcitych dla ktrych szukamy wartoci funkcji.

You might also like