[mes] lab1

Transkrypt

[mes] lab1
LABORATORIUM 1
Metoda elementów skończonych
Część I
MATLAB
MATLAB - wektory i macierze
I
Wyświetl dowolną macierz wymiaru 4 na 4 i nazwij ją A
I
Transponuj macierz A
I
Wyświetl 4 kolumnę macierzy A
I
Stwórz macierz B, której poszczególne elementy są
kwadratami elementów macierzy A
I
Wykonaj operacje A + B, A − B, A ∗ B
I
Oblicz wyznacznik macierzy A
I
Wyświetl macierz jednostkową 4 na 4
I
Wyświetl macierz jedynkową 3 na 2
I
Stwórz wektor [1 1/2 1/3 1/4 1/5]
(korzystając z polecenia typu start:krok:koniec)
MATLAB - wielomiany, funkcje i wykresy
I
Napisz funkcję pierwiastki.m, która oblicz pierwiastki
wielomianu ax 2 + bx + c w zależności od parametrów a, b, c
I
Narysuj wykres funkcji ln x i e x na jednym wykresie. Zmień
wygląd wykresów i dodaj legendę
Część II
Metoda Eulera
Zagadnienie początkowe (Cauchy’ego)

dx

 dt = f (t, x)

 x(t ) = x
0
0
Przykłady:

dx

 dt = x

dx

 dt = xtg (t + 3)

 x(0) = 1

 x(−3) = 1
Istnienie rozwiązania

dx

 dt = f (t, x)

 x(t ) = x
0
0
Twierdzenie1
Jeśli dla pewnych α, β > 0 funkcja f jest ciągła w prostokącie
R = {(t, x) : |t − t0 | 6 α, |x − x0 | 6 β},
to zagadnienie początkowe ma rozwiązanie x(t) dla
|t − t0 | 6 min{α, β/M},
gdzie M = maxR |f (t, x)|
1
D.Kincaid,W.Cheney, Analiza numeryczna, Warszawa, 2006
Jednoznaczność rozwiązania
Twierdzenie2
Jeśli funkcja f jest ciągła dla a 6 t 6 b, −∞ < x < ∞ i jeśli
istnieje stała L taka, że jest tam
|f (t, x1 ) − f (t, x2 )| 6 L|x1 − x2 |,
to zagadnienie początkowe

0

 x = f (t, x)

 x(a) = α
ma w przedziale [a, b] jednoznaczne rozwiązanie.
2
D.Kincaid,W.Cheney, Analiza numeryczna, Warszawa, 2006
Podstawowe metody numeryczne
Jednokrokowe:
I
metody Eulera
I
metody Runge-Kutty
Wielokrokowe:
I
metody Adamsa
I
metody typu Predictor-Corrector
I
metody BDF (metody różnic wstecznych)
Metoda Eulera
Zagadnienie początkowe:

dx

 dt = f (t, x)

 x(t ) = x
0
0
Metoda Eulera:
xn+1 = xn + hf (tn , xn )
tn = t0 + nh,
n = 0, 1, . . .
h - krok całkowania
Metoda Eulera - z definicji pochodnej
x 0 (t) ≈
x(t + h) − x(t)
h
Otrzymujemy:
x(t + h) ≈ x(t) + hf (t, x(t))
Metoda Eulera:
xn+1 = xn + hf (tn , xn )
x0 = x(t0 )
x1 = x0 + hf (t0 , x0 )
x2 = x1 + hf (t1 , x1 )
..
.
Metoda Eulera - ze wzoru Taylora
1
x(t + h) = x(t) + x 0 (t)h + x 00 (t)h2 + . . .
2
Biorąc
x(t + h) = x(t) + x 0 (t)h + O(h2 )
Mamy
x(t + h) = x(t) + hf (t, x(t)) + O(h2 )
x(t + h) ≈ x(t) + hf (t, x(t))
Metoda Eulera:
xn+1 = xn + hf (tn , xn )
Modyfikacje metody Eulera
I
Zmodyfikowana metoda Eulera
xn+1 = xn + h · f
I
1
1
tn + h, xn + h · f (tn , xn )
2
2
Udoskonalona metoda Eulera
i
1 h
xn+1 = xn + h · f (tn , xn ) + f (tn+1 , xn + h · f (tn , xn ))
2
Zadanie 1
Rozwiąż podane zagadnienia początkowe:
I

dx
t2

 dt = x


x(0) = 1
analitycznie i przy pomocy metody Eulera
(cztery kroki dla h = 0.1).
Zadanie 2
Napisz funkcję w Matlabie, która będzie rozwiązywała podane
zagadnienie początkowe postaci

dx

 dt = f (t, x)

 x(t ) = x
0
0
metodą Eulera.
Dane wejściowe: funkcja f , warunek początkowy t0 , x0 ,
I
I
I
krok całkowania h i ilość kroków k
lub
przedział [t0 , b], ilość podziałów N
lub
przedział [t0 , b], krok całkowania h.
Porównaj wynik z zadaniem 1.
Zadanie 3
Napisz funkcję w Matlabie, która będzie rozwiązywała podane
zagadnienie początkowe postaci

dx

 dt = f (t, x)

 x(t ) = x
0
0
zmodyfikowaną metodą Eulera oraz rysowała na jednym wykresie
rozwiązanie analityczne i numeryczne.
Porównaj rozwiązanie z zadaniem 2.