POLITECHNIKA ÅšLSKA W GLIWICACH
WYDZIAA INŻYNIERII BIOMEDYCZNEJ
Sprawozdanie
Obliczenia Inżynierskie
Rozwiązywanie problemów numerycznych i
analitycznych cz. I
Karolina Jochymek IiAM2
Gliwice, 27 marca 2013
1. Zadanie 2
1.1 Rozwiązywanie układu równań za pomocą
trzech metod:
-
Treść zadania: Znajdz rozwiązanie układu równań: A = B, gdzie:
x
îÅ‚ Å‚Å‚
9.0001 8.9999 8.9999
ïÅ‚ śł
A = 1.9999 2 2 ûÅ‚ (1.1)
ðÅ‚
8.9999 8.9999 8.9999
îÅ‚ Å‚Å‚
1.0001
ïÅ‚ śł
B = 1.0001 ûÅ‚ (1.2)
ðÅ‚
1
UWAGA! Wykorzystaj co najmniej trzy metody rozwiązania układów równań, w
tym wzory Cramera. Co sądzisz o wiarygodności uzyskanego wyniku? Dlaczego?
1.1.1 Metoda Eliminacji Gaussa
Kod w Matlabie:
clc ;
close a l l ;
clear ;
A=[9.0001 , 8 . 9 9 9 9 , 8.9999 ; 1 . 9 9 9 9 , 2 , 2 ; 8 . 9 9 9 9 , 8 . 9 9 9 9 , 8 . 9 9 9 9 ] ;
B= [ 1 . 0 0 0 1 ; 1 . 0 0 0 1 ; 1 ] ;
X=A\B
Sprawdzenie=A"X
Komentarz:
Niestety wyniki są rozczarowujące: Matlab nie poradził sobie z obliczeniem macierzy
wynikowej X
îÅ‚ Å‚Å‚
NaN
ïÅ‚ śł
X = -Inf ûÅ‚ (1.3)
ðÅ‚
Inf
Przez to macierz sprawdzenia (która powinna być równa macierzy B):
îÅ‚ Å‚Å‚
NaN
ïÅ‚ śł
Sprawdzenie = NaN ûÅ‚ (1.4)
ðÅ‚
NaN
2 1. Zadanie 2
Jest to spowodowane faktem, że wyznacznik macierzy A wynosi 0. Widzimy zatem, że
metoda Eliminacji Gaussa w tym wypadku jest bezowocna.
1.1.2 Wzory Cramera
Kod w Matlabie:
clc ;
close a l l ;
clear ;
A=[9.0001 , 8 . 9 9 9 9 , 8.9999 ; 1 . 9 9 9 9 , 2 , 2 ; 8 . 9 9 9 9 , 8 . 9 9 9 9 , 8 . 9 9 9 9 ] ;
B= [ 1 . 0 0 0 1 ; 1 . 0 0 0 1 ; 1 ] ;
W (A)
=det
a1=A( : , 2 : 3 ) ;
A1=[B, a1 ] ;
W1=det (A1)
a21=A( : , 1 ) ;
a22=A( : , 3 ) ;
A2=[a21 , B, a22 ] ;
W2=det (A2)
a3=A( : , 1 : 2 ) ;
A3=[a3 ,B ] ;
W3=det (A3)
x1=W1/W
x2=W2/W
x3=W3/W
X=[x1 ; x2 ; x3 ]
Sprawdzenie=A"X
Komentarz:
Wyniki i w tym wypadku są żadne: znów wraca problem wyznacznika równego zero,
który w zasadzie, z matematycznego punktu widzenia, uniemożliwia dalsze korzysta-
nie ze wzorów Cramera. Znów otrzymujemy macierz rozwiązań X oraz Sprawdzenie o
wartościach:
îÅ‚ Å‚Å‚
NaN
ïÅ‚ śł
X = -Inf ûÅ‚ (1.5)
ðÅ‚
Inf
Przez to macierz sprawdzenia (która powinna być równa macierzy B):
îÅ‚ Å‚Å‚
NaN
ïÅ‚ śł
Sprawdzenie = NaN ûÅ‚ (1.6)
ðÅ‚
NaN
1.1. Rozwiązywanie układu równań za pomocą trzech metod: 3
1.1.3 Metoda dowolna - macierz odwrotna i pseudoodwrotna
Kod w Matlabie:
clc ;
close a l l ;
clear ;
A=[9.0001 , 8 . 9 9 9 9 , 8.9999 ; 1 . 9 9 9 9 , 2 , 2 ; 8 . 9 9 9 9 , 8 . 9 9 9 9 , 8 . 9 9 9 9 ] ;
B= [ 1 . 0 0 0 1 ; 1 . 0 0 0 1 ; 1 ] ;
A2=A
B2=B
X=B2"inv (A2 ) ;
X=B2/A2
Sprawdzenie=X"A2
Komentarz:
Tym razem otrzymujemy wynik:
îÅ‚ Å‚Å‚
0
ïÅ‚ śł
X = 1.0e + 19 " 3.9739 ûÅ‚ (1.7)
ðÅ‚
-3.9739
Przez to macierz sprawdzenia (która powinna być równa macierzy B):
îÅ‚ Å‚Å‚
0
ïÅ‚ śł
Sprawdzenie = 0 (1.8)
ðÅ‚ ûÅ‚
0
Przez użycie tej metody zaobserwować można odbieganie wyniku sprawdzenia od ocze-
kiwanego (pod postacią macierzy B). Jest to spowodowane faktem, że każdy ciąg ob-
liczeń był zaokrąglany, przez co wynik finalny różni się od macierzy B. Jednak w tym
wypadku (wyznacznik macierzy A równy zero) jest to jedyna metoda dająca jakie-
kolwiek rozwiązanie. W wypadku macierzy z wyznacznikiem równym zero, nie warto
zdawać się na metody numeryczne w celu rozwiązania układu równań.
1.1.4 Podsumowanie
Metoda eliminacji Gaussa oraz wzory Cramera, w wypadku podanych macierzy,
dają takie same wyniki - a raczej w tym samym stopniu nie otrzymujemy wyników.
Jest to spowodowane tym, że det(A) = 0 - w takim wypadku nie można stosować obu
metod. Algorytm macierzy odwrotnej i pseudoodwrotnej nadaje siÄ™ do rozwiÄ…zywania
tego typu równań (przy wyznaczniku równym 0), kosztem dużych rozbieżności wyników
- wynikających z procesu zaokrąglania wartości. Podsumowując, w takim wypadku
najlepszą metodą rozwiązania tego równania byłoby rozwiązanie go na kartce papieru,
tradycyjnymi matematycznymi sposobami.
2. Zadanie 3
2.1 Podpunkt 1
Treść zadania: Zapoznaj się ze sposobem wykorzystania funkcji inline. Stwórz
funkcje typu inline o nazwie wielomian, która dla każdego elementu przekazanej tablicy
argumentów zwróci wartość wielomianu w(x) = (x+4)(x+2)(x-8)(x-10). Pamiętaj,
żeby używać operatorów mnożenia i potęgowania działających na odpowiadających sobie
elementach macierzy, a nie na całych macierzach.
Kod w Matlabie:
clc ;
close a l l ;
clear ;
w=i n l i n e ( ( x +4)."( x +2)."( x -8)."( x-10) )
x = -5:0.1:11 ;
odp=w( x ) ;
plot ( x , odp )
Rys. 2.1: Wynik użycia funkcji inline dla wielomianu:w(x) = (x + 4)(x + 2)(x - 8)(x - 10)
6 2. Zadanie 3
2.2 Podpunkt 2
Treść zdania: Użyj funkcji fsolve() do znalezienia rozwiąznia równania w(x) = 0
zaczynajÄ…c z punktu poczÄ…tkowego x = 2. Jakie rozwiÄ…zania zostanÄ… zaproponowane
przez funkcję fsolve przy użyciu zbioru punktów początkowych X = [-10 : 10]. Zaznacz
i opisz otrzymane rozwiÄ…zania na wykresie w(x) w przedziale [-5; 11].
Kod w Matlabie:
X=[ -10:10];
x = -5:0.1:11
x0=2
z=f s o l v e (w , x0 )
q=f s o l v e (w , X)
plot ( x ,w( x ) , k )
hold on
plot ( q , 0 , g . )
hold on
plot ( z , 0 , r " )
text ( -5 ,1300 , ( green ) w( x)=0 dla [-10 , 1 0 ] )
text (6 ,1300 , ( red ) w( x)=0 dla 2 )
Rys. 2.2: Wynik użycia funkcji fsolve dla wielomianu:(x + 4)(x + 2)(x - 8)(x - 10) = 0
2.3. Podpunkt 3 7
2.3 Podpunkt 3
Treść zadania: Stwórz funkcję realizującą wybrane przez siebie równanie trygo-
nometryczne z okresowo powtarzajÄ…cym siÄ™ rozwiÄ…zaniem (rozwiÄ…zaniami). Korzysta-
jąc z funkcji plot() wyznacz przybliżone położenia dwóch miejsc zerowych, a następnie
skorzystaj z funkcji fsolve() do wskazania dokładniejszych wartości.
Kod w Matlabie:
f=i n l i n e ( 2" cos (4" x)-1 )
x = [ - 1 0 : 0 . 0 1 : 1 0 ] ;
plot ( x , f ( x ) )
grid
hold on
x0 =[ -5:5];
x=f s o l v e ( f , x0 ) ;
X=unique ( x )
plot (X, f (X) , " r )
Rys. 2.3: Własne równanie y = 2cos(4x) - 1, wraz z zaznaczonymi rozwiązaniami
8 2. Zadanie 3
2.3.1 Podsumowanie
Funkcja fsolve() nie podaje wszystkich miejsc zerowych funkcji, a jedynie miejsca
zerowe znajdujące się najbliżej punktów podanych jako drugi parametr. Jeśli podamy
jako drugi parametr tylko jeden punkt otrzymamy jeden wynik. Do funkcji można tak-
że podać zbiór punktów i otrzymać więcej wyników. Wyniki dla niektórych punktów
ze zbioru mogą się powtarzać. W celu jak najdokładniejszego wyznaczenia miejsc ze-
rowych należy podać jak najwięcej punktów, z których funkcja ma rozpocząć szukanie
w danym przedziale.
Równanie w(x) = 0 ma nieskończenie wiele rozwiązań (w ogólnej postaci), dlatego,
by wyznaczyć konkretną ich liczbę, ustalamy przedział, w którym szukamy rozwiązań
(w przedziale [-5 11] jest ich cztery dla X=[-10 10] oraz jedno dla x=2). Na wykresie
tych dwóch opcji widzimy tylko cztery rozwiązania (teoretycznie powinny być pięć -
jedno czerwone, cztery zielone) jest to spowodowane faktem, że rozwiązanie dla x=2 i
jedno z rozwiązań dla punktów startowych z przedziału X=[-10 10] pokrywają się.
Aby wyświetlić rozwiązania, które niewiele się od siebie różnią, należałoby zmienić
skalę przedziału, w którym szukamy rozwiązań tzn. zmienić krok z 0.1 (x = -5 : 0.1 :
11) na odpowiednio mniejszy (np. 0.001).
3. Zadanie 4
3.1 Podpunkt 1
Treść zadania: Korzystając z funkcji obliczeń symbolicznych wykreśl okręgi: x2 +
y2 = 1.52 oraz (x + 1)2 + (y - 2)2 = 2.52 i znajdz ich punkt przecięcia.
Kod w Matlabie:
clc ;
close a l l ;
clear ;
syms ( x , y ) ;
o1=xĆ2+y Ć2 -1.5Ć2;
o2=(x+1)Ć2+(y -2)Ć2 -2.5Ć2;
odp=s o l v e ( o1 , o2 , x , y ) ;
x=odp . x
y=odp . y
e z p l o t ( o1 )
hold on
e z p l o t ( o2 )
grid on
hold on
plot ( x , y , r " )
3.2 Podpunkt 2
Treść zadania: Znajdz punkty przecięcia okręgu o2 z osią OX.
Kod w Matlabie:
syms ( x , y )
o2=(x+1)Ć2+(y -2)Ć2 -2.5Ć2;
e z p l o t ( o2 )
hold on
e z p l o t ( 0"x+y=0 )
[ x , y]= s o l v e ( o2 , y=0 )
plot ( x , y , r " )
o2y=subs ( o2 , y , 0 ) ;
m=s o l v e ( o2y , x )
10 3. Zadanie 4
Rys. 3.1: Dwa okręgi:o1 = x2+y2-1.52 i o2 = (x+1)2+(y-2)2-2.52 , wraz z zaznaczonymi
punktami przecięcia.
Rys. 3.2: OkrÄ…g: o2 = (x + 1)2 + (y - 2)2 - 2.52 i oÅ› OX wraz z zaznaczonymi punktami
przecięcia.
3.3. Podpunkt 3 11
3.3 Podpunkt 3
Treść zadania: Znajdz ogólną postać rozwiązań równania kwadratowego ax2+bx+
c = 0 (ze względu na zmienną x).
Kod w Matlabie:
syms ( x , a , b , c ) ;
f=a"xĆ2+b"x+c ;
odp=s o l v e ( f , x )
Ogólna postać rozwiązania równania kwadratowego:
1 1
b + (b2 - 4ac)2 b - (b2 - 4ac)2
odp = - (" odp = -
2a 2a
3.4 Podpunkt 4
Treść zadania: Dla wybranego przez siebie parametryzowanego równania trygono-
metrycznego określ postać ogólną rozwiązania. Dla zadanej wartości parametru naszki-
cuj przebieg krzywej i sprawdz położenie miejsc zerowych. Wskazówka: wykorzystaj
funkcję subs() do otrzymania wartości liczbowych rozwiązań i double() do konwersji
na liczby zmiennoprzecinkowe.
Kod w Matlabie:
syms ( a , r )
f =0.5" cos (2" a ) -0.4" r ;
f 1=s o l v e ( f , a )
r f=-1
f=subs ( f , r , r f )
f 1=subs ( f1 , r , r f )
e z p l o t ( f )
grid
hold on
plot ( f1 , 0 , r " )
Program zwraca nam rozwiÄ…zanie funkcji parametrycznej o postaci:
4r 4r
5 5
f1 = acos (" f1 = -acos
2 2
12 3. Zadanie 4
1 2
Rys. 3.3: Funkcja: f = cos(2a) - r oraz zaznaczone rozwiÄ…zania
2 5
Wyszukiwarka
Podobne podstrony:
OI4 Karolina Jochymek Gr2CW5 docĆw5Spragniony karolinyBiochemia(ŻCz)Ćw5 Właściwości fizyko chemiczne mono oligo i polisacharydówborland cpp builder cw5cw5 1ćw5 redukcje GK 12R ćw5 przebiegLaboratorium nr 3 Jakóbik Piotr Klocek Karolina tabelkawięcej podobnych podstron