• Nie Znaleziono Wyników

Procedury numeryczne

N/A
N/A
Protected

Academic year: 2021

Share "Procedury numeryczne"

Copied!
27
0
0

Pełen tekst

(1)

Metody numeryczne –

procedury

na podstawie [Marciniak et. al. 1997] oraz [Bronsztejn et. al. 2004]

dr inż. Paweł Zalewski Akademia Morska w Szczecinie

(2)

Interpolacja wielomianowa:

Zadanie interpolacji polega na znalezieniu pewnej funkcji, która „przybliża” daną funkcję f. Dla funkcji f znane są przy tym wartości f(xi) lub wartości jej pochodnych w pewnej skończonej liczbie różnych punktów xi, które nazywamy węzłami interpolacji.

Wartość wielomianu interpolacyjnego Lagrange’a Ln w punkcie x dla danej funkcji f oblicza się z wzoru:

 

 

  

n i j j i j j n i i n

x

x

x

x

x

f

x

L

0 0

(3)

Interpolacja wielomianowa:

Wartość wielomianu interpolacyjnego w punkcie x dla danej funkcji f można obliczyć również algorytmem Neville’a na podstawie zależności rekurencyjnych:

 

i

n

j

i

x

x

P

x

x

P

x

x

P

n

i

x

f

P

j i i j i i j i j i j i i i

,...,

1

,

0

,

,...,

1

,

0

,

,...,

1

,

0

,

1 , 1 1 , , 0 ,

    

gdzie wartości xi oraz f(xi) (i = 0, 1, ... , n) są dane. Wartość elementu Pn,n jest poszukiwaną wartością wielomianu w punkcie x.

(4)

Aproksymacja wielomianowa:

Przykładem jest aproksymacja średniokwadratowa wielomianem, która dla danej funkcji f(x) polega na określeniu wielomianu p(x) stopnia m, który w przypadku danych dyskretnych minimalizuje sumę:

gdzie wartości xi oraz f(xi) (i = 0, 1, ... , n) są dane, m < n, a w(x) oznacza funkcję wagową. Współczynniki wielomianu aproksymującego funkcję

f(x):

 

 

 

n j m i i j i j m

f

x

a

x

a

a

a

H

1 2 0 1 0

,

,...,

   

 

n i i i i

p

x

w

x

x

f

1 2 m m

x

a

x

a

a

0

1

...

można wyznaczyć poszukując minimum poniższego funkcjonału przy danych wartościach xi oraz f(xi) :

(5)

Aproksymacja wielomianowa:

 

x

a

 

x

x

k

m

f

a

H

k j n j m i i j i j k

,...,

1

,

0

,

0

1 2 0

 

 

i

k

a

y

k

m

z

i k m i

,...,

1

,

0

,

,

0

Powyższy układ równań liniowych można rozwiązać np. metodą eliminacji Gaussa lub metodami iteracyjnymi (przybliżonymi).

Wprowadzając oznaczenia:

 

 

 

i

k

x

i

k

m

z

m

k

x

x

f

k

y

n j k i j n j k j j

,...,

1

,

0

,

,

,

,...,

1

,

0

,

1 1

  

(6)

Całkowanie numeryczne:

Wiele całek nie można przedstawić za pomocą funkcji elementarnych. Do ich obliczenia stosuje się metody przybliżone (przykładowo dla obliczenia

pola powierzchni pod krzywą). W celu wyznaczenia przybliżonej wartości całki:

 

   

 

b a k n k k b a

x

f

A

dx

x

f

x

w

dx

x

F

0

funkcję podcałkową F(x) przedstawia się w postaci iloczynu w(x) f(x), gdzie funkcja w(x), zwana funkcją wagową zazwyczaj wynosi 1, a funkcję

f(x) przybliża się wielomianem. Wówczas:

 

F

x

dx

a

b

b

a

,

gdzie współczynniki Ak zależą od zastosowanej metody numerycznej obliczeń.

(7)

Całkowanie numeryczne:

W metodzie Simpsona dany przedział [a, b] dzieli się na równe

podprzedziały. W przypadku trzech podprzedziałów:

  

a

,

x

1

x

0

,

x

1

 

,

x

1

,

x

2

 

,

x

2

,

x

3

  

x

2

,

b

 

 

  

2

,

1

,

0

,

2

4

3

1 1 1

 

i

x

x

h

I

x

f

h

x

f

x

f

h

dx

x

f

i i i i i i x x i i

w każdym podprzedziale stosuje się wzór Simpsona:

Następnie każdy z przedziałów dzieli się znowu na trzy części i otrzymuje się drugie przybliżenie całki. Procedura ta jest kontynuowana do chwili, gdy różnica pomiędzy dwoma kolejnymi przybliżeniami całki jest dostatecznie mała lub, gdy długości podprzedziałów są mniejsze od:

N

n

a

b

n

,

(8)

Układy równań liniowych:

Metody dokładne rozwiązywania układu równań liniowych:

,

b

Ax

gdzie macierz kwadratowa A stopnia n i wektor b  Rn są dane,

teoretycznie pozwalają uzyskać rozwiązanie dokładne:

,

1

b

A

x

gdzie xRn, o ile macierz kwadratowa A jest nieosobliwa. Ponieważ

wartości elementów macierzy A i wektora b nie są reprezentowane dokładnie (rozdzielczość typów liczbowych w operacjach zmiennoprzecinkowych w danym środowisku programowym), i podczas obliczeń występują błędy zaokrągleń, więc rozwiązanie obliczone metodą „dokładną” może różnić się od teoretycznego rozwiązania dokładnego.

(9)

Układy równań liniowych:

W przypadku układu równań liniowych z macierzą trójkątną górną:

n n nn n n n n

b

x

a

b

x

a

x

a

b

x

a

x

a

x

a

...

,

...

,

...

2 2 2 22 1 1 2 12 1 11

jeżeli macierz układu nie jest osobliwa, tj. gdy aii ≠ 0 dla każdego

i = 1, 2,..., n to niewiadome xi są obliczane na podstawie zależności:

1

,...,

1

,

,

1

 

i

n

n

a

x

a

b

x

ii n i k k ik i i

(10)

Układy równań liniowych:

W przypadku układu równań liniowych z macierzą trójkątną dolną:

n n nn n n

x

a

x

a

x

b

a

b

x

a

x

a

b

x

a

...

...

,

,

2 2 1 1 2 2 22 1 21 1 1 11

jeżeli macierz układu nie jest osobliwa, tj. gdy aii ≠ 0 dla każdego

i = 1, 2,..., n to niewiadome xi są obliczane na podstawie zależności:

n

i

a

x

a

b

x

ii i k k ik i i

,

1

,

2

,...,

1 1

 

(11)

Następnie w macierzy A(k) zamieniamy wiersze o numerach i

k oraz k,

a w wektorze b(k) składowe o takich samych numerach. Odpowiada to

lewostronnemu przemnożeniu macierzy A(k) i wektora b(k) przez macierz

permutacji P(k). W otrzymanym układzie równań:

Układy równań liniowych:

Rozwiązywanie układu równań liniowych metodą eliminacji Gaussa

z częściowym wyborem elementu podstawowego:

Macierz A jest rozkładana na iloczyn macierzy LU, gdzie L oznacza macierz trójkątną dolną z jedynkami na głównej przekątnej, a U macierz trójkątną górną. Krok k (k = 1, 2 , ... , n-1) operacji rozkładu macierzy A można opisać następująco:

Znajdujemy element  k taki, że: k k i

a

   k n i k k ik k k i

a

a

 

max

 k  k

b

x

A

(12)

Układy równań liniowych:

Rozwiązywanie układu równań liniowych metodą eliminacji Gaussa

z częściowym wyborem elementu podstawowego:

eliminujemy niewiadomą xk z wierszy o numerach k + 1, k + 2, .... , n korzystając z wzorów:            

,

,

...

,

2

,

1

,

,

...

,

2

,

1

,

,

1 1

n

k

k

j

n

k

k

i

b

l

b

b

a

l

a

a

k k ik k i k i k kj ik k ij k ij

  gdzie:    k kk k ik ik

a

a

l

(13)

Układy równań liniowych:

Rozwiązywanie układu równań liniowych metodą eliminacji Gaussa

z częściowym wyborem elementu podstawowego:

po n-1 krokach otrzymamy układ równań postaci:

1

...

...

...

...

...

...

0

...

1

0

...

0

1

0

...

0

0

1

3 2 1 32 31 21 n n n

l

l

l

l

l

l

L

,

1

Pb

L

Ux

w którym P=P(n-1)P(n-2)...P1, U=A(n) oraz:

Powyższy układ równań jest rozwiązywany za pomocą zależności:

Pb

L

b

n

n

i

x

u

b

x

n i j j ij i 1 1

ˆ

;

1

,...,

1

,

,

ˆ

  

(14)

Układy równań liniowych:

Wyznaczenie macierzy odwrotnej do macierzy rzeczywistej:

W celu wyznaczenia macierzy odwrotnej do macierzy rzeczywistej A:

,

...

...

...

...

...

...

...

...

...

3 2 1 3 33 32 31 2 23 22 21 1 13 12 11

nn n n n n n i

a

a

a

a

a

a

a

a

a

a

a

a

a

a

a

a

A

macierz A jest najpierw rozkładana na iloczyn LU metodą eliminacji Gaussa. Po wykonaniu tej operacji otrzymujemy:

gdzie P oznacza macierz permutacji.

P

L

U

A

LU

PA

1 1 1   

(15)

Układy równań liniowych:

Wyznaczenie macierzy odwrotnej do macierzy rzeczywistej:

Elementy macierzy L-1 oraz elementy macierzy U-1 są określone wzorami:

,

,

...

,

1

,

,

,

...

,

2

,

1

,

,

,

...

,

1

,

,

,

...

,

2

,

1

,

1 1

n

j

j

i

n

j

u

u

u

u

n

j

j

i

n

j

l

l

l

l

ij i j k kj ik ij ij ij i j k kj ik ij ij

   

gdzie:

.

gdy

,

1

,

gdy

,

0

j

i

j

i

ij

(16)

Układy równań liniowych:

Metody iteracyjne rozwiązywania układu równań liniowych:

),

1

(

b

Ax

gdzie macierz kwadratowa A stopnia n i wektor b  Rn są dane, generują

ciąg kolejnych przybliżeń wektora x.

Rozpoczęcie procesu iteracyjnego wymaga podania początkowych przybliżeń wszystkich składowych tego wektora.

Jedną z metod iteracyjnych rozwiązywania układu równań liniowych z nieosobliwą macierzą kwadratową A jest metoda Jacobiego. W metodzie tej macierz A jest przekształcana na sumę trzech macierzy:

,

U

D

L

A

gdzie L oznacza macierz trójkątną dolną, D – macierz diagonalną, a U macierz trójkątną górną.

(17)

Układy równań liniowych:

Rozwiązywanie układu równań liniowych metodą iteracyjną (przybliżoną) Jacobiego:

Uwzględniając rozkład macierzy A, układ równań (1) można zapisać w postaci:

(

2

)

,

1 1 1 1

b

D

x

U

L

D

x

b

x

U

L

Dx

k k k k    

z czego wynika następujący proces iteracyjny:

,

,

b

x

U

L

Dx

b

x

U

D

L

jeżeli promień spektralny macierzy –D-1(L+U) jest mniejszy od 1, to

(18)

Układy równań liniowych:

Rozwiązywanie układu równań liniowych metodą iteracyjną (przybliżoną) Jacobiego:

Z zależności (2) wynika, że (k+1)-sze przybliżenie i-tej składowej rozwiązania jest określone wzorem:

,

0

lub

0

,

,

max

1 1 1

  k k k k k k

x

x

x

x

x

x

),

3

(

,

...

,

2

,

1

,

, 1 1

n

i

a

b

x

a

x

ii i n i j j k j ij k i

 

przy czym aii≠ 0. Proces iteracyjny kończy się, gdy:

gdzie:

,

max

1 i n

x

i

x

 

(19)

Równania i układy równań nieliniowych:

Równanie skalarne z jedną niewiadomą może być zapisane w postaci:

 

x

0

,

f

gdzie f: X → Y, przy czym X, YR. Jeśli równanie to nie może być

rozwiązane analitycznie, to do znalezienia jego pierwiastków stosujemy zwykle metodę iteracyjną, za pomocą której można otrzymać przybliżoną wartość pierwiastków, w przypadku, gdy rozwiązanie równania istnieje. Stosując metodę regula falsi znajduje się wartość pierwiastka równania skalarnego z jedną niewiadomą leżącego w przedziale [a, b] takim, że:

   

a

f

b

0

(20)

Jeden krok metody regula falsi polega na zastąpieniu bieżącego przedziału [a, b] przedziałem mniejszym, którym jest jeden z przedziałów [a, z] lub [z, b], gdzie:

Równania i układy równań nieliniowych:

     

f

b

f

a

a

b

b

f

b

z

Wybór odpowiedniego przedziału zależy od spełnienia jednego z warunków f(a)f(z) ≤ 0 lub f(z)f(b) ≤ 0.

(21)

Wartość pierwiastka równania skalarnego z jedną niewiadomą leżącego

w przedziale [a, b] można również znaleźć za pomocą metody siecznych

(interpolacji liniowej), która polega na zastosowaniu zależności:

Równania i układy równań nieliniowych:

b

a

b

b

a

a

0

,

1

i

0

,

1

     

,

2

,

3

,

...

.

2 1 2 1 1 1

     

k

x

f

x

f

x

x

x

f

x

x

k k k k k k k

Za początkowe przybliżenia x1 i x2 w procesie iteracyjnym przyjąć można np. wartości (zależnie od rozdzielczości podziału przedziału [a, b]):

uporządkowane w taki sposób, że:

 

x

1

f

 

x

2

(22)

Różniczkowanie numeryczne:

Przybliżone wartości pochodnej funkcji f(x) mogą być wyznaczone z

wielomianu aproksymującego p(x). Ponieważ różnica f(x) - p(x) może być bardzo mała, a różnica f’(x) – p’(x) bardzo duża, podejście takie może spowodować powstanie zbyt dużego błędu. Gdy jest wymagana duża dokładność obliczania pochodnej zaleca się stosować metodę Romberga. W metodzie tej dla danego początkowego kroku h0 wyznacza się wartości:

...

,

1

,

0

,

2

0

h

i

h

i i

 

,

2

0 i i i i

h

h

x

f

h

x

f

T

gdzie:

następnie korzystając z wzoru:

i

k

T

T

T

T

i k i k i k k i k

,

1

,

2

,

...

,

1

4

1 , 1 1 , 1 , ,

   

(23)

Różniczkowanie numeryczne:

 

x

i

k

f

T

T

T

T

T

T

T

k

i,

'

,

gdy

dla

danego

22 21 20 11 10 00

Obliczenia kończą się, gdy:

1, 1 ,k i k i

T

T

gdzie ε oznacza zadaną z góry dokładność.

Jeżeli dla założonego i oraz k powyższy warunek nie będzie spełniony to dany krok h0 dzieli się na połowę i cały proces obliczeń powtarza się. Gdy po mN iteracjach zadana dokładność ε nie jest osiągnięta to za rozwiązanie przyjmuje się ostatnio obliczone przybliżenie Ti,k.

(24)

Różniczkowanie numeryczne:

Rozwiązanie zagadnienia początkowego dla pojedynczego równania

różniczkowego to inaczej obliczenie przybliżonej wartości y(x1)

rozwiązania skalarnego równania:

 

x

y

f

dx

dy

y

'

,

z warunkiem początkowym:

 

x

0

y

0

y

Jedną z metod numerycznych prowadzących do rozwiązania tego zagadnienia jest metoda Rungego-Kutty z automatycznym doborem kroku całkowania.

(25)

Różniczkowanie numeryczne:

Wartość y(x1) oblicza się stosując zależność:

   

1

2

2

2

3 4

6

K

K

K

K

h

x

y

h

x

y

gdzie:

 

3

4 2 3 1 2 1

,

,

2

,

2

,

2

,

2

,

,

hK

y

h

x

f

K

K

h

y

h

x

f

K

K

h

y

h

x

f

K

y

x

f

K

(26)

Różniczkowanie numeryczne:

Na podstawie przedstawionej zależności wyznacza się dwie wartości przybliżonego rozwiązania w punkcie x+h, gdzie h oznacza krok całkowania, a mianowicie: y(x+h,h) przy użyciu kroku h i y(x+h,h) stosując dwukrotnie krok h/2. Jeżeli:

,

(

4

)

2

,

,

,

max

2

,

,

 

 

h

h

x

y

h

h

x

y

h

h

x

y

h

h

x

y

gdzie ε, η > 0 oznaczają wartości charakteryzujące dokładność rozwiązania, to końcową przybliżoną wartość rozwiązania w punkcie x+h oblicza się z wzoru:

,

2

,

,

h

h

x

y

h

h

x

y

h

h

x

y

h

x

y

 

 

(27)

Różniczkowanie numeryczne:

W przypadku, gdy nierówność (4) nie zostanie spełniona, to zmienia się krok całkowania h.

Ponieważ całkowanie od punktu x0 do punktu x1 wykonuje się w pewnej liczbie kroków, w praktyce błąd względny otrzymanego przybliżonego rozwiązania y(x1) może być większy od ε.

Cytaty

Powiązane dokumenty

Zapisać do pliku tekstowego wektory własne macierzy

Wiemy, że przekształcenia elementarne macie- rzy polegające na dodaniu do wiersza innego wiersza pomnożonego przez liczbę nie zmieniają wartości wyznacznika, zaś

Wówczas Żadna liczba naturalna nie występuje jednocześnie w obu ciągach Istnieje liczba większa od 2000, która występuje w obu ciągach Liczba 1997 występuje w obu

Istnieje przestrzenny 6-kąt foremny, którego wszystkie kąty są proste. Każdy przestrzenny 4-kąt foremny, którego wszystkie kąty są proste, leży w

Dla dowolnego 4ABC tak wybrane punkty D, E, F mogą być spodkami wysokości.. Dla dowolnego 4ABC tak wybrane punkty D, E, F muszą być spodkami

W danym trzypytaniowym zestawie możliwa jest dowolna kombinacja odpowiedzi „tak” i „nie”.. W zestawach zaznaczonych gwiazdką (gwiazdka wygląda tak: * ) prócz udzielenia

Onufry wyrzuci dokładnie 63 orły jest wi e , ksza niż że Joasia wyrzuci dokładnie 64

22 Redukcja macierzy (rzadkiej) hermitowskiej do postaci trójdiagonalnej metodą Lanczosa Naszym zadaniem jest znalezienie wartości i wektorów własnych macierzy stopnia n. Jeśli jednak