Rozwiązywanie równań
nieliniowych
- Metoda bisekcji
- Metoda stycznych
- Metoda siecznych
Metody numeryczne
książki
półka na książki
x
x
x
x
x
v
018506
.
0
10
66723
.
0
10
13534
.
0
10
42493
.
0
4
6
5
8
3
4
0
018506
.
0
10
26689
.
0
10
67670
.
0
10
12748
.
0
)
(
3
5
4
8
2
3
x
x
x
x
f
Długość=73,66cm
Głębokość=30,48cm
Grubość=0,953cm
Pionowe ugięcie półki:
Maksymalne ugięcie półki dv/dx=0
Metoda bisekcji
a
f(x)
b
x
x
f(a)*f(b)<
0
x=(a+b)/2
Matlab
K
P
D a n e w e jś c io w e
D a n e w y jś c io w e
a k c ja - d z ia ła n i a
w a r u n e k
p y ta n ie
je ż e li?
T A K
N I E
p o c z ą t e k
p r o g r a m u
w p r o w a d z a n ie
d a n y c h
% N a z w a p r o g r a m u
- o p is
% d z ia ła n ia p r o g r a m u
%
k o m e n ta r z e
z m ie n n a = i n p u t (’n a z w a _ z m i e n n e j= ’)
. . .
i f
e l s e i f
e l s e
e n d
w y r a ż e n ie
in s tr u k c je
w y r a ż e n ie
in s tr u k c je
in s t r u k c je
I n s tr u k c ja w a r u n k o w a
in s tr u k c je : p r o s te , m a te m a ty c z n e
s p e c ja ln e : s w itc h . .. c a s e . .. e n d ,
f o r. . e n d , w h ile . . . e n d ,
D r u k o w a n ie w y n ik ó w
d i s p ( z m i e n n a - ty lk o je d n a )
d is p s tr c a t
n u m 2 s tr
(
( ’z m ie n n a = ’,
( z m ie n n a ) ) )
łą c z e n ie k ilk u
z m ie n n y c h
z a m ia n a z m ie n n e j
lic z b o w e j n a te k s to w ą
k o n ie c s k r y p tu - m a tla b n i e
w y m a g a s p e c ja ln e g o z a k o ń c z e n ia
ki
er
un
ek
p
is
an
ia
s
kr
yp
tu
A lg o r y tm ik a - s c h e m a ty b lo k o w e
( w r a z z e s tr u k tu r ą in s tr u k c ji M a tla b a - w y tłu s z c z o n y d r u k )
E . F r e id e n b e r g
K
P
D r u k : a ,b , f ( a ) , f( b )
x = ( a + b ) /2
y = f ( x )
T A K
T A K
T A K
N I E
N I E
E . F r e id e n b e r g
y = 0
?
f ( a ) *
< 0
?
f (x )
b = x
f ( b ) = y
a = x
f ( a ) = y
|b - a |< e p s
?
D r u k x
a
a
b
b
x
x
f ( x )
f ( x )
f ( a )
f ( a )
M e to d a b i s e k c j i
( p o ło w ie n ie
p r z e d z ia łu )
f(x)
x
2
x
x
f
f(x)
x
x
x
f
1
x
f(x)
x
u
x
x
f(x)
x
u
x
Metoda stycznych
f(x)
f(x
i
)
x
i+1
x
i
X
B
C
A
AC
AB
tg
(
1
)
(
)
(
'
i
i
i
i
x
x
x
f
x
f
)
(
'
)
(
1
i
i
i
i
x
f
x
f
x
x
-20
-15
-10
-5
0
5
10
-2
-1
0
1
2
1
2
3
f(x)
x
0
1
3
x
x
f
-1.00E-05
-7.50E-06
-5.00E-06
-2.50E-06
0.00E+00
2.50E-06
5.00E-06
7.50E-06
1.00E-05
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
x
f(x)
0.02
0
10
x
4
.
2
03
.
0
6
2
3
x
x
x
f
Punkt przegięcia
Dzielenie przez zero
-1.5
-1
-0.5
0
0.5
1
1.5
-2
0
2
4
6
8
10
x
f(x)
-0.0630690.54990
4.462
7.53982
0
x
Sin
x
f
Skok poprzez pierwiastki
-1
0
1
2
3
4
5
6
-2
-1
0
1
2
3
f(x)
x
3
4
2
1
-1.75
-0.3040
0.5
3.142
0
2
2
x
x
f
Oscylacja pomiędzy lokalnymi minimami lub maksymami
Metoda siecznych
f(x)
f(x
i
)
f(x
i-1
)
x
i+2
x
i+1
x
i
X
i
i
x
f
x
,
)
(x
f
)
f(x
-
= x
x
i
i
i
i
1
1
1
)
(
)
(
)
(
i
i
i
i
i
x
x
x
f
x
f
x
f
)
(
)
(
)
)(
(
1
1
1
i
i
i
i
i
i
i
x
f
x
f
x
x
x
f
x
x
Definicja pochodnej
MathCad – rozwiązywanie
równań nieliniowych
• należy zdefiniować funkcję dla której
chcemy liczyć pierwiastek
f(x):=5x^2-20*x+44
• należy określić przybliżoną wartość
niewiadomej i wpisać polecenie root
(f(x),x)
x:=2
root(f(x),x)=
MathCad- coś lepszego, niż funkcja
root (NIESTETY tylko dla wielomianów)
polyroots(v) - funkcja ta nie wymaga deklaracji
wartości przypuszczalnej, oblicza wszystkie
pierwiastki od razu
• aby skorzystać z tej funkcji należy utworzyć
wektor ze współczynników. Tworzenie wektora
CTRL+M
• Uwaga: nie wolno ominąć żadnego
współczynnika, nawet wtedy gdy mamy wpisać 0,
• wpisujemy od góry zaczynając od podania
współczynnika przy xo
MathCAD – w bloku Given-
Find
• Należy zdefiniować początkowe,
przewidywane wartości niewiadomych
• Wpisać słowo Given
• wprowadzić wszystkie równania i
nierówności. Należy pamiętać by znak
równości podawać CTRL+=
• użyć funkcji Find(z0,z1,...) lub
Maximize(f,z0,z1,...) lub Minerr(zo,z1,...)
lub Minimize(f,z0,z1,....)
Matlab – wbudowana
funkcja
• x=fzero(‘funkcja’,x0)
• Funkcja jest tekstem zawierającym
nazwę funkcji (wbudowanej lub
zdefiniowanej w zewnętrznym pliku)
• x0 – otoczenie punktu w jakim ma
być poszukiwany pierwiastek
• x=fzero(‘cos’,6)
Deklarowanie funkcji w
matlabie
function [y]=ugiecie(x)
y=0.12748e-3.*x.^2-0.6767e-8.*x.^4
0
018506
.
0
10
26689
.
0
10
67670
.
0
10
12748
.
0
)
(
3
5
4
8
2
3
x
x
x
x
f
MUSI być zapisane w m-pliku matlaba z nazwą funkcji, czyli w naszym przypadku
Plik będzie miał nazwę ugięcie.m