P
OLITECHNIKA
´
S
L ˛
ASKA
W
YDZIAŁ
I
N ˙
ZYNIERII
B
IOMEDYCZNEJ
Sprawozdanie
Rozwi ˛
azywanie problemów numerycznych i analitycznych.
Autor: Anna Zieli ´nska
Prowadz ˛
acy ´cwiczenie: dr in˙z. Jacek Kawa
Gliwice, 30 marca 2012
Spis treści
1. Rozwiązywanie układów równań
. . . . . . . . . . . . . . . . . . . . . . . .
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2. Równania nieliniowe- rozwiązywanie numeryczne
. . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3. Obliczenia symboliczne- równania nieliniowe
. . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
4. Badanie przebiegu zmienności funkcji- obliczenia symboliczne
. . . . . . . 11
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5. Całkowanie numeryczne i symboliczne
. . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1. Rozwiązywanie układów równań
1.0.1
Rozwiązanie
Sposób pierwszy- Eliminacja Gaussa:
A= [ 2 . 0 0 0 1 , 6 . 0 0 0 1 , 7 ; 1 . 9 9 9 9 , 5 . 9 9 9 9 , 7 . 0 0 0 2 ; 2 , 6 , 7 . 0 0 0 1 ] ;
B = [ 7 . 9 9 9 9 9 9 ; 8 . 0 0 0 0 0 1 ; 7 . 9 9 9 9 9 8 ] ;
wynik=A\B
s p r=A∗ wynik
Sposób drugi- Wzory Cramera:
A= [ 2 . 0 0 0 1 , 6 . 0 0 0 1 , 7 ; 1 . 9 9 9 9 , 5 . 9 9 9 9 , 7 . 0 0 0 2 ; 2 , 6 , 7 . 0 0 0 1 ] ;
B = [ 7 . 9 9 9 9 9 9 ; 8 . 0 0 0 0 0 1 ; 7 . 9 9 9 9 9 8 ] ;
wyznO=
det
(A)
a1=A ( : , 2 : 3 ) ;
A1=[B, a1 ] ;
wyzn1=
det
(A1)
a21=A ( : , 1 ) ;
a22=A ( : , 3 ) ;
A2=[ a21 , B, a22 ] ;
wyzn2=
det
(A2)
a3=A ( : , 1 : 2 ) ;
A3=[ a3 , B ] ;
wyzn3=
det
(A3)
x1=wyzn1 /wyznO
x2=wyzn2 /wyznO
x3=wyzn3 /wyznO
1.0.2
Wnioski
Jeśli chodzi o rozwiązanie układu metodą Eliminacji Gaussa, wynik jest wiary-
godny. Wartość wyliczonego wektora ”wynik” tylko w niewielkim stopniu odbiega
od poprawnego. Jeżeli chodzi o drugą metodę czyli Wzory Cramera, to wyniki w
dość znacznym stopniu odbiegają od poprawnych. Błędy mogą wynikać z faktu, że
Matlab niedokładnie reprezentuje liczby z wieloma miejscami po przecinku. Innym
2
1. Rozwiązywanie układów równań
powodem jest mnogość operacji matematycznych przy Wzorach Cramera, który jest
znacznie więcej niż przy metodzie Eliminacji Gaussa.
2. Równania nieliniowe-
rozwiązywanie numeryczne
2.0.3
Rozwiązanie
1.
w i e l o m i a n=i n l i n e ( ’ ( x + 1 ) . ∗ x . ∗ ( x − 5 ) . ∗ ( x−7) ’ )
x = 0 : 0 . 1 : 6 ;
odp=w i e l o m i a n ( x ) ;
plot
( x , odp )
Wykres:
2.
X= [ − 1 0 : 1 0 ] ;
x = − 4 : 0 . 1 : 1 0
x0=6
4
2. Równania nieliniowe- rozwiązywanie numeryczne
z=f s o l v e ( w i e l o m i a n
, x0 )
q=f s o l v e ( w i e l o m i a n
, X)
plot
( x , w i e l o m i a n ( x ) , ’ k ’ )
hold
on
plot
( q , 0 , ’ g . ’ )
hold
on
plot
( z , 0 , ’ r ∗ ’ )
text
( −3 , −100 , ’ ( z i e l o n e ) w( x)=0 d l a [ −10
, 1 0 ] ’ )
text
( 4 , −100 , ’ ( c z e r w o n e ) w( x)=0 d l a 6 ’ )
Wykres:
3.
f=i n l i n e ( ’ s i n ( x)+1 ’ )
x = [ − 1 0 : 0 . 0 1 : 1 0 ] ;
plot
( x , f ( x ) )
grid
hold
on
x0 = [ − 8 : 5 ] ;
x=f s o l v e ( f , x0 ) ;
X=u n i q u e ( x )
X=X ( : , 2 : 3 )
plot
(X, f (X) , ’ ∗ r ’ )
Wykres:
5
2.0.4
Wnioski
Funkcja fsolve() nie podaje wszystkich miejsc zerowych funkcji, a jedynie te
miejsca zerowe, które znajdują się najbliżej punktów podanych jako drugi parametr.
Jeśli podamy jako drugi parametr jedynie jeden punkt to otrzymamy tylko jeden
wynik. Funkcja jest w stanie wyliczyć więcej miejs zerowych, jeśli podamy zbiór
punktów. Jednak wyniki dla niektórych punktów mogą się powtarzać.
3. Obliczenia symboliczne-
równania nieliniowe
3.0.5
Rozwiązanie
1.
syms ( ’ x ’ , ’ y ’ ) ;
o1=xˆ2+y ˆ2 −4;
o2=(x−
sqrt
( 2 ) ) ˆ 2 + ( y−
sqrt
( 2 ) ) ˆ 2 − 4 ;
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
hold
on
plot
( x , y , ’ g ∗ ’ )
Wykres:
Dokładne wartości miejsc zerowych funkcji to:
8
3. Obliczenia symboliczne- równania nieliniowe
x =
1 / 2 ∗ 2 ˆ ( 1 / 2 ) − 1 / 2 ∗ 6 ˆ ( 1 / 2 )
1 / 2 ∗ 2 ˆ ( 1 / 2 ) + 1 / 2 ∗ 6 ˆ ( 1 / 2 )
y =
1 / 2 ∗ 2 ˆ ( 1 / 2 ) + 1 / 2 ∗ 6 ˆ ( 1 / 2 )
1 / 2 ∗ 2 ˆ ( 1 / 2 ) − 1 / 2 ∗ 6 ˆ ( 1 / 2 )
2.
syms ( ’ x ’ , ’ y ’ ) ;
o2=(x−
sqrt
( 2 ) ) ˆ 2 + ( y−
sqrt
( 2 ) ) ˆ 2 − 4 ;
OX=0∗x+y ;
odp2=s o l v e (OX, o2 , ’ x ’ , ’ y ’ )
x1=odp . x
y1=odp . y
Dokładne wartości miejsc zerowych funkcji to:
x1 =
1 / 2 ∗ 2 ˆ ( 1 / 2 ) − 1 / 2 ∗ 6 ˆ ( 1 / 2 )
1 / 2 ∗ 2 ˆ ( 1 / 2 ) + 1 / 2 ∗ 6 ˆ ( 1 / 2 )
y1 =
1 / 2 ∗ 2 ˆ ( 1 / 2 ) + 1 / 2 ∗ 6 ˆ ( 1 / 2 )
1 / 2 ∗ 2 ˆ ( 1 / 2 ) − 1 / 2 ∗ 6 ˆ ( 1 / 2 )
3.
syms ( ’ x ’ , ’ a ’ , ’ b ’ , ’ c ’ ) ;
f=a ∗xˆ2+b∗x+c ;
odp=s o l v e ( f , ’ x ’ )
Rozwiązanie równania kwadratowego:
odp =
−1/2∗(b−(bˆ2−4∗a∗ c ) ˆ ( 1 / 2 ) ) / a
−1/2∗(b+(bˆ2−4∗a∗ c ) ˆ ( 1 / 2 ) ) / a
4.
9
syms ( ’ a ’ ,
’ r ’ )
f =2∗
s i n
( a)+ r ;
f 1=s o l v e ( f , ’ a ’ )
r f =−1
f=s u b s ( f , r , r f )
f 1=s u b s ( f 1 , r , r f )
e z p l o t ( f )
grid
hold
on
plot
( f 1 , 0 , ’ r ∗ ’ )
Wykres:
Ogolna postać rozwiązania równania:
f 1 =
−
asin
( 1 / 2 ∗ r )
3.0.6
Wnioski
Dla zmiennych symbolicznych i zdefiniowanej funkcji symbolicznej do odnajdy-
wanie miejsc zerowych używa się funkcji solve(). Jako parametry solve() podajemy
funkcje, oraz jesli jest to funkcja z więcej niż jednym parametrem, to ze względu
10
3. Obliczenia symboliczne- równania nieliniowe
na którą zmienną solve() ma szukać rozwiązania. Jest to istotne, gdyż rozwiązanie
dostajemy również w formie symbolicznej.
4. Badanie przebiegu zmienności
funkcji- obliczenia symboliczne
4.0.7
Rozwiązanie
1.
syms ( ’ x ’ )
f u n k c j a = 3∗ xˆ4−3∗x ˆ3+2;
m0 = s o l v e ( f u n k c j a , ’ x ’ ) ;
m0 = d o u b l e (m0 ) ;
m0 = m0( 1 )
e z p l o t ( f u n k c j a , − 1 0 : 1 0 )
hold
on ;
plot
(m0, 0 , ’ r ∗ ’ )
grid
;
hold
o f f ;
Wykres:
12
4. Badanie przebiegu zmienności funkcji- obliczenia symboliczne
2.
pochodna1 =
d i f f
( f u n k c j a )
pochodna2 =
d i f f
( pochodna1 )
x e x t r = s o l v e ( pochodna1 , ’ x ’ )
e x t r = s u b s ( f u n k c j a , ’ x ’ , x e x t r )
x p r z e g i e c i e = s o l v e ( pochodna2 , ’ x ’ )
p r z e g i e c i e = s u b s ( f u n k c j a , ’ x ’ , x p r z e g i e c i e )
e z p l o t ( f u n k c j a , − 1 0 : 1 0 )
hold
on ;
plot
( x p r z e g i e c i e , p r z e g i e c i e , ’m∗ ’ )
plot
(m0, 0 , ’ b∗ ’ )
grid
;
hold
on ;
hold
on ;
e z p l o t ( pochodna1 , − 1 0 : 1 0 )
grid
;
hold
on ;
e z p l o t ( pochodna2 , − 1 0 : 1 0 )
grid
;
Ten kod został napisany w czasie laboratorium i działał poprawnie, jednak po
skompilowaniu go w domu nie działa i pokazuje się błąd:
? ? ? E r r o r u s i n g ==>
plot
C o n v e r s i o n t o d o u b l e from sym i s not p o s s i b l e .
3.
punkt1 =
d i f f
( f u n k c j a ) ;
punkt2 =
d i f f
( punkt1 ) ;
z e r o 1 = s o l v e ( punkt1 , ’X ’ ) ;
z e r o 2 = s u b s ( punkt2 , ’X ’ , z e r o 1 ) ;
z e r o 2 = d o u b l e ( z e r o 2 ) ;
i n d=
imag
( z e r o 2 )==0;
i f
(
sum
( i n d )==0)
d i s p l a y ( ’ brak 2− g i e j p o c h o d n e j ’ )
e l s e
z e r o 2=z e r o 2 ( i n d ) ;
z e r o 2=
r e a l
( z e r o 2 ) ;
indmax=z e r o 2 <0;
indmin=z e r o 2 >0;
d i s p l a y ( ’ max ’ )
d i s p l a y ( z e r o 1 ( indmax ) )
d i s p l a y ( ’ min ’ )
d i s p l a y ( z e r o 1 ( indmin ) )
end
13
Ten kod został napisany w czasie laboratorium i działał poprawnie, jednak po
skompilowaniu go w domu nie działa i pokazuje się błąd:
E r r o r i n ==> U n t i t l e d 3 a t 17
plot
( x p r z e g i e c i e , p r z e g i e c i e , ’m∗ ’ )
5. Całkowanie numeryczne i
symboliczne
5.0.8
Rozwiązanie
1.
syms ( ’ x ’ )
c=
cos
( x ) ;
a=i n t ( c )
c c=s u b s ( a , { ’ x ’ } , { 0 , 4 ∗
pi
} )
odp=( c c ( 1
, 1 ) −c c ( 1 , 2 ) )
Całka z cos(x) wynosi sin(x). Po podstawieniu przedzialu całkowania całka z
cos(x) wynosi 0.
2.
f=i n l i n e (
’ s i n ( x ) ’ ) ;
o=q u a d l ( f
, 0 , 4 ∗
pi
)
Całka z sin(x) w przedziale [0; 4π] wynosi:
o =
1 . 1 8 3 9 e −015
3.
f=i n l i n e (
’ exp ( ( c o s ( x ) ) . ∗ ( c o s ( x ) ) ) ’ ) ;
o=q u a d l ( f , −2∗
pi
, 2 ∗
pi
)
Wartość całki z funkcji f (x) = e
cos
2
(x)
w przedziale [−2π; 2π] jest równa:
o =
2 2 . 0 3 3 7
5.0.9
Wnioski
W obliczeniach symbolicznych, w przeciwieństwie do numerycznych, trzeba two-
rzyć dodatkowy kod do poidstawiania wartości z podanego przedziału. W oblicze-
niach numerycznych wszystko zawarte jest w funkcji quadl(), co czyni ją prostszą.
16
5. Całkowanie numeryczne i symboliczne
Poza tym wadą obliczania symbolicznego jest to, że ma problem z rozwiązaniem bar-
dziej skomplikowanych i złożonych całek, natomiast rozwiązując całkę numerycznie
wynik jest poprawny.