Visual Basic for Applications
spotkanie 11
Dr inż. Piotr Winiarek
piotrw@ch.pw.edu.pl
GG 30396
Układy równań
liniowych
niejednorodnych
Układ n równań liniowych
x
1
, …, x
n
– zbiór (wektor) niewiadomych,
a
ij
– współczynniki układu,
b
i
– wyrazy wolne
n
n
nn
j
nj
n
n
i
n
in
j
ij
i
i
n
n
j
j
n
n
j
j
b
x
a
x
a
x
a
x
a
b
x
a
x
a
x
a
x
a
b
x
a
x
a
x
a
x
a
b
x
a
x
a
x
a
x
a
...
...
...
...
...
...
2
2
1
1
2
2
1
1
2
2
2
2
22
1
21
1
1
1
2
12
1
11
(1)
Układ równań liniowych
jednorodnych
i
niejednorodnych
0
...
0
...
0
...
2
2
1
1
2
2
22
1
21
1
2
12
1
11
n
nn
n
n
n
n
n
n
x
a
x
a
x
a
x
a
x
a
x
a
x
a
x
a
x
a
Wszystkie
wyrazy wolne
tego układu są
równe zero
.
(1)
Układ równań liniowych jednorodnych:
(2)
Układ równań liniowych niejednorodnych:
n
n
nn
n
n
n
n
n
n
b
x
a
x
a
x
a
b
x
a
x
a
x
a
b
x
a
x
a
x
a
...
...
...
2
2
1
1
2
2
2
22
1
21
1
1
2
12
1
11
Wyrazy wolne
tego układu
nie
są równe zero
.
Układ równań liniowych niejednorodnych
mn
mj
m
m
in
ij
i
i
n
j
a
a
a
a
a
a
a
a
a
a
a
a
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
...
...
...
2
1
2
1
1
1
12
11
Tablica A -
macierz
współczynników
układów równań
macierz
kwadratowa m=n
m
j
x
x
x
...
...
1
m
j
b
b
b
...
...
1
Wektor X –
wektor
rozwiązań
Wektor B –
wektor
wyrazów
wolnych
A =
X =
B =
Macierz rozszerzona (uzupełniona)
układu równań
1
11
11
11
11
1
11
11
11
11
1
11
11
11
11
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
b
a
a
a
a
b
a
a
a
a
b
a
a
a
a
Macierz rozszerzona układu równań –
macierz A’
–
otrzymana przez dołączenie macierzy B do macierzy
A
A’ =
= [A|B]
Wyznaczniki
nn
ni
n
in
ii
i
n
i
a
a
a
a
a
a
a
a
a
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
1
1
1
1
11
detA =
wyznacznik
macierzy A
detA≠0
–
warunek istnienia
wektora rozwiązań
układu równań (1),
jeżeli
detA=0
– układ równań (1) jest nieoznaczony
lub sprzeczny
Wyznaczniki c.d.
nn
n
n
in
i
i
n
a
b
a
a
b
a
a
b
a
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
1
1
1
1
11
detA
i
=
Wyznacznik detA
i
– otrzymany przez zastąpienie i-tej
kolumny wyznacznika detA wektorem wyrazów
wolnych
Macierz odwrotna
I
AA
1
A
-1
– macierz odwrotna,
I
– macierz diagonalna
jednostkowa
macierz diagonalna
jednostkowa
1
0
0
0
1
0
0
0
1
Macierz odwrotna
do macierzy kwadratowej A
istnieje wtedy i tylko wtedy gdy
detA≠0
. Macierz, dla
której nie istnieje macierz odwrotna –
macierz
osobliwa
Algorytmy
• algorytmy dokładne
– polegają na wykonaniu
skończonej liczby opisanych działań (zależnej od
liczby równań) w wyniku czego otrzymuje się
rozwiązanie układu równań,
• algorytmy iteracyjne
– polegają na wyznaczeniu
kolejnych wektorów rozwiązań przybliżonych i
zakończeniu programu jeśli elementy dwóch
kolejnych przybliżeń będą się różnić mniej niż
założony błąd
Metody
1)
wzory Cramera
2)
macierz odwrotna, równanie
macierzowe,
3)
algorytm Gaussa - Jordana
Metoda 1
- wzory Cramera
Kolejne
elementy wektora X
są równe:
n
i
A
A
x
i
i
,...,
2
,
1
det
det
A
A
x
A
A
x
A
A
x
n
n
det
det
,
,
det
det
,
det
det
2
2
1
1
X = (x
1
, x
2
, …, x
n
)
Metoda 2
- równanie macierzowe
mn
mj
m
m
in
ij
i
i
n
j
a
a
a
a
a
a
a
a
a
a
a
a
...
...
...
...
...
...
...
..
...
...
...
...
...
...
...
...
...
...
2
1
2
1
1
1
12
11
m
j
x
x
x
...
...
1
Układ równań (1) można zapisać
w postaci
równania
macierzowego
:
B
AX
B
A
X
1
m
j
b
b
b
...
...
1
=
·
Metoda 3
– algorytm Gaussa -
Jordana
• elementy i-tego wiersza są dzielone przez element
a
ii
–
normowanie wiersza głównego
,
• jeżeli
a
ii
=0
, wtedy należy
szukać
„w dół i w prawo”
niezerowego elementu macierzy
. Jeżeli taki element
istnieje (np. w pozycji a
kl
) to należy
zamienić
miejscami wiersz i z wierszem k
oraz ewentualnie
kolumnę i z kolumną l. W wyniku tych operacji w
pozycji a
ii
znajdzie się element niezerowy, można
dalej kontynuować eliminację,
Algorytm Gaussa - Jordana
• po unormowaniu wiersza głównego
eliminuje się
kolumnę główną
przez odejmowanie od kolejnych
wierszy k<>i wiersza głównego odpowiednio
przeskalowanego,
• postępowanie to jest powtarzane do wyeliminowania
wszystkich wierszy lub wszystkich kolumn,
• jeżeli
element niezerowy nie zostanie znaleziony
, to
dalsza eliminacja jest niemożliwa i macierz
pozostanie częściowo niewyeliminowana,
• analiza stanu macierzy po zakończeniu procedury –
umożliwia
wyznaczenie wektora rozwiązań
Całkowanie
numeryczne
metodą Eulera i
Simpsona
Całka nieoznaczona
Całką nieoznaczoną
funkcji f(x) nazywamy wyrażenie
F(x) + C, gdzie F(x) jest funkcją pierwotną funkcji f(x),
a C jest dowolną stałą.
C
x
F
dx
x
f
)
(
)
(
F(x)
– funkcja pierwotna
(1)
Funkcja pierwotna
Funkcją pierwotną
funkcji f(x) w przedziale a<x<b
nazywamy każdą taką funkcję F(x), której pochodna
F’(x) równa się danej funkcji f(x) dla każdego x
z przedziału a<x<b.
)
(
)
(
)
(
'
x
f
dx
x
dF
x
F
(2)
Całka oznaczona
Interpretacja geometryczna:
Całkę oznaczoną oblicza się ze wzoru
Newtona-Leibniza:
)
(
)
(
a
F
b
F
dx
x
f
b
a
(3)
[a,b] – przedział całkowania,
a,b – granice całkowania
Całkowanie
• analityczne
– do obliczania całek
nieoznaczonych i oznaczonych
(całkowanie przez części i przez
podstawienie),
• numeryczne
– jedynie do obliczania
całek oznaczonych (np. metoda
Eulera i Simpsona)
Kwadratura funkcji f(x)
Jeżeli
funkcja F(x)
:
(1)
nie istnieje,
(2)
jest zbyt trudna do wyznaczenia
sposobami analitycznymi,
(3)
znane są tylko doświadczalne „punktowe”
wartości f(x
i
)
0, 1, …, n
,
wtedy
wartość całki oznaczonej oblicza się
numerycznie – KWADRATURA FUNKCJI
f(x)
– np.
metoda Eulera i metoda
Simpsona
.
Metoda Eulera (metoda trapezów)
n
podprzedziałów
,
pole każdego
podprzedziału
przybliża się
polem trapezu
Pole trapezu
h
b
a
P
2
j
j
j
j
x
x
y
y
P
1
1
2
a
b
h
Metoda Eulera (metoda trapezów)
)
(
2
)
(
)
(
)
(
1
1
1
j
j
j
j
x
x
j
x
x
x
f
x
f
dx
x
f
I
j
j
Wartość całki oznaczonej w podprzedziale
[x
j
, x
j+1
]
j=0, 1, 2, …, n-1
:
W przedziale [a, b]:
1
0
1
1
1
0
)
(
2
)
(
)
(
)
(
n
j
j
j
j
j
b
a
n
j
j
x
x
x
f
x
f
I
dx
x
f
(4)
(5)
Metoda Eulera (metoda trapezów)
W przypadku takich samych szerokości podprzedziałów:
const
n
a
b
x
x
x
j
j
1
Równanie (5) upraszcza się:
b
a
n
j
j
x
x
f
b
f
a
f
dx
x
f
1
1
)
(
2
)
(
)
(
)
(
(6)
(7)
Błąd oszacowania całki
Błąd
numerycznego szacowania całki
oznaczonej w przedziale [a, b]:
(1)
maleje
w miarę wzrostu n,
(2)
rośnie
w miarę wzrostu krzywizny
funkcji.
Najkorzystniejszy jest podział na równe
podprzedziały.
Metoda Simpsona
2n podprzedziałów, grupuje się je parami,
każda para zawiera 3 węzły
Równanie paraboli
Funkcję f(x) w przedziale [x
a
, x
c
]
aproksymuje się parabolą.
Równanie paraboli
przechodzącej przez 3
węzły:
2
2
1
0
)
(
)
(
b
b
x
x
c
x
x
c
c
y
(8)
Równanie paraboli – współczynniki c
0
, c
1
,
c
2
2
2
1
0
2
2
1
0
0
)
(
)
(
)
(
)
(
b
c
b
c
c
b
a
b
a
a
b
x
x
c
x
x
c
c
y
x
x
c
x
x
c
c
y
c
y
Współczynniki c
0
, c
1
i c
2
są rozwiązaniem
układu równań:
(9)
Równanie paraboli – współczynniki c
0
, c
1
,
c
2
Po przekształceniu:
2
2
2
2
2
2
2
1
0
b
a
b
c
b
c
b
a
b
c
b
a
b
a
b
c
b
a
b
c
b
c
b
a
b
c
b
a
b
a
b
c
b
x
x
x
x
x
x
x
x
y
y
x
x
y
y
x
x
c
x
x
x
x
x
x
x
x
y
y
x
x
y
y
x
x
c
y
c
(10
)
Całka funkcji w przedziale
[x
a
,
x
c
]
3
3
2
2
2
1
0
2
2
1
0
3
2
b
a
b
c
b
a
b
c
a
c
x
x
b
b
j
x
x
x
x
c
x
x
x
x
c
x
x
c
dx
x
x
c
x
x
c
c
I
c
a
(11
)
Całka funkcji w przedziale
[a, b]
Przybliżoną wartość całki
w przedziale [a, b]
oblicza się
sumując udziały
:
n
j
j
b
a
I
dx
x
f
1
(12
)
Podprzedziały o identycznej szerokości
W przypadku
podprzedziałów o
identycznej szerokości
:
const
n
a
b
x
x
x
j
j
2
1
Wzory
(11)
i
(12)
upraszczają się
:
(13
)
(14
)
(15
)
b
a
n
j
j
n
j
j
c
b
a
j
x
f
x
f
b
f
a
f
n
a
b
dx
x
f
x
f
x
f
x
f
x
I
1
2
1
2
2
1
1
2
2
4
6
4
3
Obliczenia:
• założyć liczbę podprzedziałów
(n – metoda
Eulera, 2n – metoda Simpsona),
• obliczyć x
– wzór (6) lub (13):
metoda Eulera (trapezów):
metoda Simpsona:
const
n
a
b
x
x
x
j
j
1
(6)
const
n
a
b
x
x
x
j
j
2
1
(13
)
Obliczenia c.d.:
• oszacować wartość całki
– wzór (7)
lub (15):
b
a
n
j
j
x
x
f
b
f
a
f
dx
x
f
1
1
)
(
2
)
(
)
(
)
(
(7)
metoda Eulera (trapezów):
metoda Simpsona:
(15
)
b
a
n
j
j
n
j
j
x
f
x
f
b
f
a
f
n
a
b
dx
x
f
1
2
1
2
2
1
1
2
2
4
6
Obliczenia c.d.:
• zwiększyć wartość n
(np. podwoić),
• powtarzać obliczenia
, aż 2 kolejne
oszacowania całki będą w granicach
założonego błędu identyczne
dziękuję z uwagę