Metody numeryczne

Transkrypt

Metody numeryczne
Przykładowy program ćwiczeń
Ćwiczenie 1.
Obliczenie funkcji elementarnych za pomocą szeregów. Opracowanie wyrażeń rekurencyjnych.
2
3
4
Realizacja w Excelu funkcji e x  1  x  x  x  x   .
1! 2! 3! 4!
Przykład 1:
Obliczenie wartości wielomianu metodą Hornera
n
n-1
n-2
y = a0x + a1x + a2x +...+ an-1x + an
i
a(i)
Przykład 2:
x
i
y(i)
0
1
1
1
2
1
3
1
4
1
x
2
(a0x+a1)
3
((...)*x+a2)
7
((..)*x+a3)
15
((...)*x+a4)
31
y =(...((a0x+a1)*x+a2)*x+...+an-1)*x+an
Obliczenie wartości funkcji przy pomocy szeregów
x
1 2,7182818
1
1
2
1
2
3
n
e =1+x/1! +x /2! +x /3! +...+x /n!
3
0,5
4
0,166667
Wynik
5
0,04166667
2,70833333
x
e =y(1)+y(2)+y(3)+...+y(n)
y(1)=1,
y(i) = y(i-1)*x / (i-1)
Zadania indywidualne na ocenę według wariantów:
1.
2.
3.
4.
5.
6.
7.
8.
9.
x 2 x 4 x6 x8
y 1


    cos x
2! 4! 6! 8!
x3 x5 x7 x9
yx  

   sin x
3! 5! 7! 9!
x 2 x3 x 4 x5
yx
 
    ln(1  x )
2
3
4
5
3
5
7
x
x
x
x9
yx  

   ar ctg x
3
5
7
9
x 2 x 4 x 6 x8
y 1


    ch x
2! 4! 6! 8!
x3 x5 x7 x9
yx  

   sh x
3! 5! 7! 9!
x3 x5 x 7
1 x
y  2( x     )  ln
3
5
7
1 x
y  a0 x n  a1 x n 1    an 1 x  an
x
y
 tg x
x2
1
x2
3
x2
5
x2
7
9 
Uwaga: Możliwa jest realizacja wybranego zadania w postaci programu (C++, Pascal, lub inny język
programowania).
2. Metody całkowania numerycznego prostokątów i trapezów
b
y 
Metody obliczenia całki
òf
( x ) dx
0,785398163
a
f (x) 
i
x(i)
f(x(i))
1  x2
0
0
1
a=0
b=1
1
0,166667
0,986013
n=
6
h= 0,166666667
2
3
4
5
6
0,3333333
0,5
0,66666667 0,833333333
1
0,942809 0,8660254 0,74535599 0,552770798 1,49E-08
prostokątów
trapezów
0,84882909 0,765495757
Ćwiczenie 2.
1. Metody rozwiązywania równań nieliniowych (wyznaczenie miejsca zerowego funkcji):
Metoda siecznej. Metoda stycznej.
x=
f(x) =
0
-3
1
-3
delta =
1,00E-10
2
-1
2,5
2,625
2,2
0,168
i=
1
2
3
4
5
a=
2,1
2,173206 2,1745357 2,174559 2,1745594
f(a) =
-0,459 -0,008774 -0,000154 -2,7E-06 -4,7306E-08
b=
2,2
2,2
2,2
2,2
2,2
f(b) =
0,168
0,168
0,168
0,168
0,168
x(i) = 2,173206 2,174536 2,174559 2,1745594 2,174559410
f(x(i)) = -0,00877 -0,000154 -2,7E-06 -4,73E-08 -8,2906E-10
Metoda
i=
1
2
a=
2,1
2,1
f(a) =
-0,459
-0,459
f'(a) =
5,83
5,83
f''(a) =
8,6
8,6
b=
2,5
2,230769
f(b) =
2,625
0,379153
f'(b) =
9,75
7,005917
f''(b) =
11
9,384615
x(i) = 2,230769 2,17665
f(x(i)) = 0,379153 0,013585
Newtona
(stycznej)
delta =
1,00E-10
3
2,1
-0,459
5,83
8,6
2,1766502
0,0135846
6,5068176
9,0599012
2,1745625
1,974E-05
4
2,1
-0,459
5,83
8,6
2,1745625
1,974E-05
6,4879158
9,0473747
2,1745594
4,186E-11
2,1
-0,459
6
2,17455941
-8,2906E-10
2,2
0,168
2,174559410
-1,4531E-11
f'(x)=3x^2-4x+1
f''(x)=6x-4
5
6
2,1
2,1
-0,459
-0,459
5,83
5,83
8,6
8,6
2,17455941 2,17455941
4,186E-11 4,18598E-11
6,48788825 6,487888246
9,04735646 9,047356462
2,17455941 2,17455941
0
0
Rozwiązanie równania nieliniowego metodą siecznej lub metodą stycznej.
Zadania indywidualne na ocenę według wariantów (realizacja w Excelu i/lub w postaci programu):
1. 8ln(9x)-7x +5=0
x1=5.0837389
2. 15ln(0.14286x)-sin(2x)+3=0
x1=5.3726466
3. 42ln(0.11111x)-sin(4x)+2=0
x1=8.6074979
4. 6cos(5x)-33x-30=0
x1=-0.9249788
5. 33ln(0.125x)-sin(4x)+1=0
x1=7.5410872
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
5ln(5x)-36x+9=0
9ln(9x)-36x+9=0
14ln(0.5x)-sin(2x)+4=0
4cos(5x)-27x-8=0
3ln(7x)-9x+2=0
7ln(5x)-6x+2=0
52ln(0.11111x)-sin(5x)+4=0
38ln(0.125x)-sin(4x)+9=0
37ln(0.14286x)-sin(5x)+1=0
9cos(3x)-31x-24=0
3cos(3x)-18x-37=0
2ln(4x)-4x+2=0
19ln(0.16667x)-sin(3x)+4=0
9cos(5x)-48x-7=0
21ln(0.25x)-sin4x+1=0
21ln(0.125x)-sin(2x)+2=0
3ln(6x)-25x+9=0
9ln(6x)-4x+10=0
9ln(5x)-9x+2=0
8ln(2x)-2x+2=0
x1=0.3115708
x1=0.7156729
x1=1.5149649
x1=-0.2485963
x1=0.7939462
x1=3.7544396
x1=8.261698
x1=6.3692373
x1=6.8602134
x1=-1.0641411
x1=-1.9129714
x1=1.3391768
xl=5.0186758
x1=0.0382483
x1=3.8613913
x1=7.5012953
x1=0.4892172
x1=12.1505509
x1=2.8944564
x1=14.4574183
Ćwiczenie 3.
Rozwiązanie układu równań liniowych: metoda eliminacji Gaussa + redukcja wsteczna.
Zadania indywidualne na ocenę według wariantów - realizacja na kartkach (przykładowe zadania znajdują
się na końcu tego pliku) + opracowanie programu.
Ćwiczenie 4.
1. Rozwiązanie układu równań liniowych A*x=b i obliczenie wyznacznika macierzy A.
(metoda rozkładu LU z wyborem elementu wiodącego + metoda podstawienia +redukcja wsteczna).
2. Sprawdzenie – mnożenie macierzy L przez macierz U oraz mnożenie macierzy A przez wektor b.
Realizacja – program.
Ćwiczenie 5.
1. Rozwiązanie układu równań liniowych A*X=B (kilka wektorów wyrazów wolnych) i obliczenie
macierzy odwrotnej do macierzy A.
(metoda Jordana-Gaussa z wyborem elementu wiodącego + redukcja wsteczna).
2. Sprawdzenie mnożenie macierzy A przez macierz X.
Realizacja – program.
Ćwiczenie 6.
1. Realizacja programowa metody interpolacji wielomianowej (rozbudowa programu opracowanego w
ramach ćwiczenia 4,5 lub 6).
2. Sprawdzenie: obliczenie wartości wielomianu w zadanych punktach x(i) (i=0,1,...,n).
3. Realizacja programowa metody aproksymacji wielomianowej.
4. Sprawdzenie: obliczenie kryteriów jakościowych funkcji aproksymującej (odchylenie kwadratowe).
Ćwiczenie 7. Zaliczenie zaległych ćwiczeń.
Zaawansowane metody numeryczne
WYKŁAD 1 (3 godz.)
Macierze pasmowe, rzadkie i blokowe.
1. Formaty przedstawienia w/w macierzy w komputerze.
2. Operacje na macierzach pasmowych, rzadkich i blokowych. Transponowanie, norma,
macierzy, A+B, A-B, const*A, macierz*wektor, macierz*macierz, wyznacznik, odnalezienie
macierzy odwrotnej.
3. Osobliwości rozwiązywania układów równań liniowych (URL) z macierzami pasmowymi,
rzadkimi i blokowymi.
4. Źle uwarunkowane układy i macierze. Współczynnik uwarunkowania macierzy.
WYKŁAD 2 (4 godz.)
Ortogonalne macierze i przekształcenia. Rozkład QR-macierzy prostokątnych za pomocą
metod przekształceń ortogonalnych.
Metoda odbić Householdera: wzory macierzowe, wzory dla macierzy A(4,3), fragment
programu;
Metoda obrotów Givensa;
Ortogonalizacja Gramma-Schmidta.
WYKŁAD 3 (3 godz.)
Rozwiązanie problemu najmniejszych kwadratów.
1. Rozwiązanie problemu najmniejszych kwadratów w oparciu o metody Householdera i
Givensa.
2. Metoda Faddeeva (oryginalna i ortogonalna) i jej zastosowania.
3. Odnalezienie macierzy odwrotnej i pseudo-odwrotnej w oparciu w/w metody przekształceń
orthogonalnych.
WYKŁAD 4 (4 godz.)
Metody odnalezienia wartości własnych i wektorów własnych macierzy.
1. Metody odnalezienia wartości własnych i wektorów własnych macierzy symetrycznych:
Metoda Jacobi’ego;
Metody iteracji prostej i odwrotnej;
Metoda QR i jej modyfikacje: (QR z przesunięciem, QL).
2. Odnalezienie wartości własnych macierzy trój-diagonalnych i Hessenberga:
Metoda bisekcji;
Metoda Lanczos’a.
WYKŁAD 5 (4 godz.)
1. Zastosowanie metod numerycznych w modelowaniu procesów ewolucyjnych:
w analizie obwodów elektrycznych, modelowaniu zjawisk fizycznych i ekonomicznych, w biologii.
2. Numeryczne rozwiązywanie równań różniczkowych zwyczajnych:
metody jednokrokowe: schematy różnicowe Eulera, Heuna i Rungego-Kutty;
metody wielokrokowe: schematy różnicowe Adamsa-Bashfortha i Adamsa-Moultona;
zbieżność schematów różnicowych i dokładność obliczeń;
stabilność rozwiązań: funkcja Lapunowa.
3. Numeryczne rozwiązywanie równań różniczkowych: eliptycznych, hiperbolicznych i
parabolicznych
WYKŁAD 6 (5 godz.).
1. Zapewnienie zadanej dokładności i wiarygodności otrzymywanych wyników przy realizacji
komputerowej metod numerycznych
metoda zbyteczności czasowej TTR (ang. triple time redundance) ;
działania na przesuniętych argumentach;
metoda ważonych sum kontrolnych WCS (ang. weighted checksum method);
2. Zastosowanie metody WCS do opracowania odpornych na błędy algorytmów algebry
liniowej (mnożenia macierzy, redukcji wstecznej, eliminacji Gaussa i in.)
WYKŁAD 7 (5 godz.)
Realizacja metod numerycznych w systemach specjalistycznych i równoległych.
1. Sposoby obliczenia funkcji elementarnych 1/x, sqrt(x), sin(x), tg(x), itd. Metodą Voldera
(CORDIC - ang. COordinate Rotation DIgital Computer). Przykład realizacji w oparciu o
metodę CORDIC funkcji arctg(x).
2. Opracowanie równoległych wersji algorytmów numerycznych (na przykładzie algorytmów
macierzowych, np. redukcji wstecznej, eliminacji Gaussa, metody Householdera i in.).
Repetytorium (2 godz.)
Czynności kontrolne i organizacyjne związane z dopuszczeniem do zasadniczej sesji
egzaminacyjnej.
Literatura:
1. Fortuna Z., Macuków B., Wąsowski J. Metody numeryczne. WNT, 1982, 1998 (seria
podręczniki akademickie).
2. Baron B. Metody numeryczne w Turbo-Pascalu. Helion, 1995.
3. Kiełbasiński A., Schwetlick H. Numeryczna algebra liniowa. WNT, 1992.
4. Bjorck A., Dahlquist G. Metody numeryczne, PWN, 1987.
5. J. i M. Jankowscy. Przegląd metod i algorytmów numerycznych. WNT, 1981.
6. Kaczorek T. Wektory i macierze w automatyce i elektrotechnice. WNT, 1998.
7. Stoer J. Wstęp do metod numerycznych. PWN, 1979.
8. Ralston A. Wstęp do analizy numerycznej. WNT, 1975.
9. Legras J. Praktyczne metody analizy numerycznej. WNT, 1974.
10. Palczewski A. Równania różniczkowe zwyczajne. WNT, 1999.
Ćwiczenia przykładowe
Ćwiczenie 1 (3 godz.) Operacje na macierzach pasmowych, rzadkich i blokowych.
Opracowanie i przetestowanie:
 programu konwertującego tablice dwuwymiarową reprezentującej macierz A[M][N] w format CSR i
na odwrót;
 programu mnożenia macierzy pasmowej przez wektor (zadania indywidualne na ocenę według
wariantów);
 programu do obliczenia wyznacznika macierzy blokowej;
Ćwiczenie 2 (3 godz.) Rozkład QR-macierzy prostokątnych na czynniki trójkątne.
Opracowanie i przetestowanie:
 programu realizującego rozkład QR macierzy Hessenberga w oparciu o obroty Givensa;
 programu wyznaczającego prądy we wszystkich gałęziach zadanego obwodu elektrycznego, w
oparciu o rozkład QR Householdera i redukcję wsteczną (zadania indywidualne na ocenę według
wariantów).
Ćwiczenie 3 (2 godz.) Obliczenie wartości własnych i wektorów własnych macierzy.
Opracowanie i przetestowanie:
 programu doprowadzającego macierz kwadratową do postaci Hessenberga.
 programu do odnalezienia wartości i wektorów własnych macierzy Hessenberga.
Ćwiczenie 4 (2 godz.) Zastosowanie metod numerycznych w modelowaniu procesów
ewolucyjnych
Wyprowadzenie wzoru analitycznego (nie rekurencyjnego), pozwalającego na obliczenie i-tego elementu
ciągu liczb Fibonacci’ego. Model rozwijającej się ekonomiki. Inne podobne zadania.
Ćwiczenie 5 (2 godz.) Numeryczne rozwiązywanie równań różniczkowych: eliptycznych,
hiperbolicznych i parabolicznych
Opracowanie i przetestowanie programu formującego (dla zadanego równania różniczkowego) i
rozwiązującego układ równań liniowych z pasmową macierzą współczynników (zadania indywidualne na
ocenę według wariantów).
Ćwiczenie 6 (2 godz.) Opracowanie odpornych na błędy algorytmów algebry liniowej.
Opracowanie i przetestowanie programu realizującego odporną na błędy wersję algorytmu obrotów Givensa.
Ćwiczenie 7 (1 godz.) Zaliczenie zaległych ćwiczeń.
Metody numeryczne
Typy błędów powstających przy realizacji metod numerycznych. Dokładność
obliczeń. Obliczenie funkcji elementarnych za pomocą szeregów. Macierze i ich
typy, operacje na macierzach, prawa algebry macierzowej. Metody rozkładu
macierzy na czynniki trójkątne LU, LLT i QR. Metody rozwiązywania układów
równań liniowych i odwracania macierzy. Strategia wyboru elementu wiodącego.
Obliczenie wyznacznika, rzędu i norm macierzy. Współczynnik uwarunkowania
macierzy. Określenie złożoności obliczeniowej metod numerycznych. Interpolacja
funkcji: wielomianowa, Lagrange’a, Aitkena. Ekstrapolacja i interpolacja odwrotna.
Aproksymacja funkcji: liniowa, wielomianowa, trygonometryczna. Metody
rozwiązywania równań nieliniowych. Interpretacja geometryczna metod siecznej,
stycznej, iteracji prostej. Metody całkowania numerycznego. Numeryczne
rozwiązywanie równań różniczkowych metodami Eulera, Runge-Kutty. Metody
wielokrokowe.