Szanowni koledzy,
W związku z rosnącą liczbą nauczycieli i doktorantów prowadzących ćwiczenia z przedmiotu „Metody numeryczne” (w Koszalinie i w Chojnicach, na st. inżynierskich i magisterskich, na st. dziennych, wieczorowych i zaocznych) oraz niefortunnie ułożonego planu zajęć, w którym wykłady są poprzedzone ćwiczeniami, powstaje problem ujednolicenia programu w/w ćwiczeń.
Z tego powodu dołączam do tego listu program prowadzonego przeze mnie wykładu z przedmiotu „Metody numeryczne”.
Poza tym, dołączam przykładowy program ćwiczeń i zadania przykładowe na ćwiczenia.
Proszę o dopasowanie (w miarę możliwości) prowadzonych przez Was ćwiczeń do w/w programu.
W razie jakichkolwiek pytań proszę o kontakt.
Z poważaniem,
Oleg Maslennikow
Metody numeryczne
WYKLAD 1.
1. Dokładność obliczeń. Typy błędów powstających przy realizacji metod numerycznych:
danych wejściowych (0,210 -> 0,001100110011…2)
zaokrągleń x*=x+δx, y*=y+δx, z*= x*+y*= x+y +δx,+δx;
x8bitów* y8bitów=z16bitów , z*= z8bitów
metodologiczne (obcięcia)
2. Obliczenie funkcji elementarnych za pomocą szeregów. Wyrażenia rekurencyjne. Przykład realizacji w Excelu funkcji exp(x).
3. Metody całkowania numerycznego.
Metoda prostokątów:
założenia wstępne;
interpretacja geometryczna;
wzory, realizacja w Excelu.
Metoda trapezów:
interpretacja geometryczna;
wzory.
WYKLAD 2.
4. Metody rozwiązywania równań nieliniowych (wyznaczenie miejsca zerowego funkcji).
Idea metody bisekcji.
Metoda siecznej:
założenia wstępne;
interpretacja geometryczna;
wzory, przykład;
realizacja w Excelu.
Metoda stycznej:
założenia wstępne;
interpretacja geometryczna;
wzory;
Metoda iteracji prostej:
założenia wstępne;
interpretacja geometryczna;
wzory.
WYKLAD 3.
5. Macierze (definicia) i ich typy (prostokątna, kwadratowa, wektor-wiersz, wektor-kolumna, symetryczna, trójkątna górna, dolna, jednostkowa, pasmowa, rzadka, format CSR).
6. Operacje na macierzach. Transponowanie, norma wektora i macierzy, A+B, A-B, const*A, macierz*wektor, macierz*macierz.
7. Prawa algebry macierzowej:
A+B=B+A, A*B< > B*A - przemienności wykonywania operacji;
(A*B)*C=A*(B*C), (A+B)=C=A=(B+C) - łączności;
A*(B+C)=A*B+A*C, (B+C)*A=B*A+C*A - rozdzielczości mnożenia względem dodawania.
8. Metody rozwiązywania układów równań liniowych (URL):
Przedstawienie URL w postaci macierzowej;
Rozwiązywanie URL z trójkątną macierzą współczynników:
metoda redukcji wstecznej:
wzory A(4,4),
x[i],
fragment programu;
metoda podstawienia:
modyfikacja wzorów A(4,4) i programu redukcji wstecznej;
Eliminacja Gaussa:
wzory macierzowe M*A*x=M*b, -> M*A=A*- macierz trójkątna
wzory A(4,4), m[j,i], a*[j,k];
fragment programu;
WYKLAD 4.
dzielenie przez zero - strategia wyboru elementu < >0, wiodącego max|a[j,i]|;
obliczenie wyznacznika i rzędu macierzy - modyfikacja programu El.Gaussa.
Jordan-Gauss (eliminacja pełna):
wzory macierzowe M*A*x=M*b, -> M*A=I- macierz jednostkowa
wzory A(4,4), a*[j,k];
modyfikacja programu eliminacji Gaussa;
przypadek kilku wektorów wyrazów wolnych: A*X=B;
odwracanie macierzy A*X=I, modyfikacja programu.
Rozkład (dekompozycja) macierzy na czynniki trójkątne:
Rozkład LU:
wzory macierzowe A=L*U; L*U*x=b; L*y=b; U*x=y;
wzory A(4,4), l[j,i], u[j,k]=a*[j,k];
fragment programu;
WYKLAD 5.
Rozkład LLT (Cholesky'ego, Banachewicza) - macierz symetryczna, detA>0:
wzory macierzowe A=L*LT; L*LT*x=b; L*y=b; LT*x=y;
wzory A(4,4), l[j,i], a*[j,k];
fragment programu;
Metody dokładne a iteracyjne:
Metoda iteracji prostej (Jacobi'ego):
wzory macierzowe A*x=b; A=(D-I); (D-I)*x=b; x*=D*x+b;
wzory A(4,4).
Metoda Gaussa-Sidela:
modyfikacja wzorów z iteracji prostej dla A(4,4).
9. Określenie złożoności obliczeniowej metod numerycznych. Porównanie złożoności metod dokładnych i iteracyjnych.
10. Źle uwarunkowane układy i macierze. Współczynnik uwarunkowania macierzy.
WYKLAD 6.
11. Interpolacja funkcji:
wielomianowa:
Lagrange'a,
Aitkena.
Ekstrapolacja i interpolacja odwrotna.
WYKLAD 7.
12. Aproksymacja funkcji:
wielomianowa,
liniowa,
trygonometryczna.
Parametry jakościowe aproksymacji (odchylenie kwadratowe, itd.)
Literatura:
Fortuna Z., Macuków B., Wąsowski J. Metody numeryczne. WNT, 1998, 1982 (seria podręczniki akademickie).
Baron B. Metody numeryczne w Turbo-Pascalu. Helion, 1995.
Kiełbasiński A., Schwetlick H. Numeryczna algebra liniowa. WNT, 1992.
Bjorck A., Dahlquist G. Metody numeryczne, PWN, 1987.
J. i M. Jankowscy. Przegląd metod i algorytmów numerycznych. WNT, 1981.
Kaczorek T. Wektory i macierze w automatyce i elektrotechnice. WNT, 1998.
Stoer J. Wstęp do metod numerycznych. PWN, 1979.
Ralston A. Wstęp do analizy numerycznej. WNT, 1975.
Legras J. Praktyczne metody analizy numerycznej. WNT, 1974.
Przykładowy program ćwiczeń
Ćwiczenie 1.
Obliczenie funkcji elementarnych za pomocą szeregów. Opracowanie wyrażeń rekurencyjnych. Realizacja w Excelu funkcji
.
Przykład 1: |
Obliczenie wartości wielomianu metodą Hornera |
|
|||||
|
|
|
|
|
|
|
y = a0xn+ a1xn-1+ a2xn-2+...+ an-1x + an |
|
i |
0 |
1 |
2 |
3 |
4 |
y =(...((a0x+a1)*x+a2)*x+...+an-1)*x+an |
|
a(i) |
1 |
1 |
1 |
1 |
1 |
|
|
|
x |
(a0x+a1) |
((...)*x+a2) |
((..)*x+a3) |
((...)*x+a4) |
|
|
|
2 |
3 |
7 |
15 |
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Przykład 2: |
Obliczenie wartości funkcji przy pomocy szeregów |
|
|||||
|
|
|
|
|
|
|
|
|
x |
1 |
2,7182818 |
|
|
|
ex =1+x/1! +x2/2! +x3/3! +...+xn/n! |
|
i |
1 |
2 |
3 |
4 |
5 |
ex =y(1)+y(2)+y(3)+...+y(n) |
|
y(i) |
1 |
1 |
0,5 |
0,166667 |
0,04166667 |
y(1)=1, y(i) = y(i-1)*x / (i-1) |
|
|
|
|
|
Wynik |
2,70833333 |
|
Zadania indywidualne na ocenę według wariantów:
Uwaga: Możliwa jest realizacja wybranego zadania również w postaci programu (C++, Pascal, lub inny język programowania) - jeśli czas pozwoli.
Ćwiczenie 2.
1. Metody całkowania numerycznego prostokątów i trapezów
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Metody obliczenia całki |
|
|
=0,785398163 |
|
||
|
|
|
|
|
|
||
|
|
a = 0 |
n = 6 |
||||
|
|
b = 1 |
h = 0,166666667 |
||||
i |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
x(i) |
0 |
0,166667 |
0,3333333 |
0,5 |
0,66666667 |
0,833333333 |
1 |
f(x(i)) |
1 |
0,986013 |
0,942809 |
0,8660254 |
0,74535599 |
0,552770798 |
1,49E-08 |
|
|
|
|
|
|
|
|
|
|
|
|
|
prostokątów |
trapezów |
|
|
|
|
|
|
0,84882909 |
0,765495757 |
|
2. Metody rozwiązywania równań nieliniowych (wyznaczenie miejsca zerowego funkcji):
Metoda siecznej |
|
delta = 1,00E-10 |
|
|
||
|
|
|
|
|
|
|
x = |
0 |
1 |
2 |
2,5 |
2,2 |
2,1 |
f(x) = |
-3 |
-3 |
-1 |
2,625 |
0,168 |
-0,459 |
|
||||||
i = |
1 |
2 |
3 |
4 |
5 |
6 |
a = |
2,1 |
2,173206 |
2,1745357 |
2,174559 |
2,1745594 |
2,17455941 |
f(a) = |
-0,459 |
-0,008774 |
-0,000154 |
-2,7E-06 |
-4,7306E-08 |
-8,2906E-10 |
b = |
2,2 |
2,2 |
2,2 |
2,2 |
2,2 |
2,2 |
f(b) = |
0,168 |
0,168 |
0,168 |
0,168 |
0,168 |
0,168 |
x(i) = |
2,173206 |
2,174536 |
2,174559 |
2,1745594 |
2,174559410 |
2,174559410 |
f(x(i)) = |
-0,00877 |
-0,000154 |
-2,7E-06 |
-4,73E-08 |
-8,2906E-10 |
-1,4531E-11 |
|
||||||
Metoda Newtona (stycznej) |
delta = 1,00E-10 f'(x)=3x^2-4x+1, f''(x)=6x-4 |
|||||
i = |
1 |
2 |
3 |
4 |
5 |
6 |
a = |
2,1 |
2,1 |
2,1 |
2,1 |
2,1 |
2,1 |
f(a) = |
-0,459 |
-0,459 |
-0,459 |
-0,459 |
-0,459 |
-0,459 |
f'(a) = |
5,83 |
5,83 |
5,83 |
5,83 |
5,83 |
5,83 |
f''(a) = |
8,6 |
8,6 |
8,6 |
8,6 |
8,6 |
8,6 |
b = |
2,5 |
2,230769 |
2,1766502 |
2,1745625 |
2,17455941 |
2,17455941 |
f(b) = |
2,625 |
0,379153 |
0,0135846 |
1,974E-05 |
4,186E-11 |
4,18598E-11 |
f'(b) = |
9,75 |
7,005917 |
6,5068176 |
6,4879158 |
6,48788825 |
6,487888246 |
f''(b) = |
11 |
9,384615 |
9,0599012 |
9,0473747 |
9,04735646 |
9,047356462 |
x(i) = |
2,230769 |
2,17665 |
2,1745625 |
2,1745594 |
2,17455941 |
2,17455941 |
f(x(i)) = |
0,379153 |
0,013585 |
1,974E-05 |
4,186E-11 |
0 |
0 |
Kontynuacja Ćwiczenia 2. 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):
8ln(9x)-7x +5=0 x1=5.0837389
15ln(0.14286x)-sin(2x)+3=0 x1=5.3726466
42ln(0.11111x)-sin(4x)+2=0 x1=8.6074979
6cos(5x)-33x-30=0 x1=-0.9249788
33ln(0.125x)-sin(4x)+1=0 x1=7.5410872
5ln(5x)-36x+9=0 x1=0.3115708
9ln(9x)-36x+9=0 x1=0.7156729
14ln(0.5x)-sin(2x)+4=0 x1=1.5149649
4cos(5x)-27x-8=0 x1=-0.2485963
3ln(7x)-9x+2=0 x1=0.7939462
7ln(5x)-6x+2=0 x1=3.7544396
52ln(0.11111x)-sin(5x)+4=0 x1=8.261698
38ln(0.125x)-sin(4x)+9=0 x1=6.3692373
37ln(0.14286x)-sin(5x)+1=0 x1=6.8602134
9cos(3x)-31x-24=0 x1=-1.0641411
3cos(3x)-18x-37=0 x1=-1.9129714
2ln(4x)-4x+2=0 x1=1.3391768
19ln(0.16667x)-sin(3x)+4=0 xl=5.0186758
9cos(5x)-48x-7=0 x1=0.0382483
21ln(0.25x)-sin4x+1=0 x1=3.8613913
21ln(0.125x)-sin(2x)+2=0 x1=7.5012953
3ln(6x)-25x+9=0 x1=0.4892172
9ln(6x)-4x+10=0 x1=12.1505509
9ln(5x)-9x+2=0 x1=2.8944564
8ln(2x)-2x+2=0 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ą poniżej) + opracowanie programu.
URL1
-3 3 0 6 15
1 -4 -6 -20 -59
0 -1 -3 -8 -22
-1 3 6 22 61
URL2
1 -2 -2 4 -11
-2 5 4 -11 27
-2 2 5 -2 13
-1 2 1 -3 9
URL3
4 -8 -20 -48 -136
0 2 4 12 40
-1 3 4 9 33
-1 5 14 38 113
URL4
1 -1 -5 -18 31
3 -7 -27 -98 161
2 -4 -19 -67 108
3 -3 -16 -59 99
URL5
2 -1 3 0 -6
4 -4 7 1 -11
2 -5 7 2 -8
-4 8 -5 -4 2
URL6
1 -3 -4 1 0
2 -5 -7 1 0
-2 6 6 -1 -9
0 1 3 -3 12
URL7
-4 0 0 -4 12
0 2 -3 -3 -5
-8 -4 8 0 40
4 2 -1 2 -15
URL8
2 4 -4 8 16
2 5 -5 10 20
-2 -3 0 -3 -6
-2 -7 7 -10 -40
URL9
-1 1 -6 -20 -53
-3 5 -24 -82 -229
-3 5 -28 -94 -261
0 2 -3 -15 -52
URL10
4 8 -12 -40 20
3 8 -15 -52 41
0 1 -4 -14 17
-1 -4 6 22 -17
URL11
4 -2 -2 -3 45
-8 7 3 6 -96
-8 4 6 6 -96
4 1 3 -2 18
URL12
-4 12 48 -116 -652
-1 4 15 -36 -204
0 0 -1 2 12
1 -5 -16 38 217
URL13
-2 -3 -4 3 11
2 2 2 -4 -4
0 -2 -5 0 18
2 2 0 1 4
URL14
-3 3 -6 0 -15
0 -2 6 -4 10
0 3 -8 5 -12
-2 2 -4 1 -13
URL15
-1 0 -3 1 7
2 1 9 -1 -4
2 3 13 3 20
-2 3 -5 14 63
URL16
-1 4 -4 4 4
1 -2 3 -3 1
1 -2 2 -1 -2
2 -10 6 -2 -24
URL17
3 4 0 3 -13
6 11 2 4 -27
6 2 -5 12 -29
0 -6 -3 1 11
URL18
-2 4 -4 -4 8
-3 8 -10 -6 12
-2 3 -6 0 4
2 -3 2 6 -6
URL19
-4 2 1 3 -35
-8 5 4 3 -63
0 3 8 -9 17
8 -5 0 -4 58
URL20
3 -9 -12 21 30
-3 13 20 -33 -50
-3 7 11 -21 -32
-1 0 -3 8 9
URL21
3 4 -2 2 11
6 -7 -5 1 14
-6 -8 6 -2 -18
0 -2 4 1 -1
URL22
-4 3 2 1 -5
0 2 0 -3 22
4 -5 -1 1 -17
-8 0 2 12 -72
URL23
-1 1 0 -2 -1
0 3 -3 2 11
-2 -7 11 -10 -27
-2 2 -2 -5 -14
URL24
-3 9 6 -15 51
2 -2 -4 2 10
0 1 -1 -3 18
-2 3 5 -6 3
URL25
2 -4 8 0 -8
-1 0 0 -2 0
0 3 -2 7 -22
0 -3 3 -3 6
Ć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ń.