background image

OBLICZENIA 

NUMERYCZNE

 za pomocą pakietu MATLAB 

background image

Miejsca zerowe i minima funkcji

 x_zer = 

fzero(f,x0)

 zwraca miejsce zerowe 

x_zer

 nieliniowej 

funkcji jednej zmiennej 

f(x)

 ; argument 

x0

 

określa początkowe przybliżenie wartości 
szukanego miejsca zerowego; 

f

 jest 

łańcuchem znaków określającym funkcję 
Matlaba: nazwę funkcji lub definicję funkcji 
inline

 

x1=fminbnd(f,x0,
xk)

 zwraca wartość 

x1

, dla której 

nieliniowa 

funkcja jednej zmiennej

 

f(x)

 osiąga minimum; 

argumentami funkcji są liczby 

x0

 i 

xk

określające początek i koniec przedziału 
poszukiwań oraz łańcuch znaków funkcji 

f

background image

 

X=fminsearch(f,X

0)

 

zwraca wektor wartości 

X

dla których nieliniowa funkcja 

wielu zmiennych osiąga 
minimum; argumentami 

funkcji są: 

wektor X0

określający punkt startowy 

poszukiwań oraz

 f

 – łańcuch 

znaków, jak w przypadku 

funkcji 

fzero

Przykład:

 Policzyć miejsca zerowe wielomianu    

W(x) = 

x^2 + 5*x + 2

1)  x_zer = 

fzero

( ' x^2 + 5*x + 2 ' , -1)

2)  x_zer = 

fzero

( ' W(x) ' , -1)

3)  x_zer = 

fzero

( @W , -1)          x_zer = 

fzero

( @W , [-

1.1 , -1.3]  )

w przypadku 2 i 3 w m.pliku o nazwie 

W.m

 musi być zdefiniowana 

funkcja

           function y=W(x)
           y=x^2 + 5*x + 2 

background image

Wszystkie powyższe funkcje można wywołać z 
opcjonalnym argumentem 

opcje

, np..

      

x1 = fzero(f,x0,

opcje

)

Opcje

 określają parametry wywołania tych funkcji. 

Domyślne ustawienia parametrów można zmieniać za 
pomocą funkcji optimset:

       opcje = optimset(parametr, wartość,...)

 Wykonując w oknie Command Window polecenie: 

 - optimset 

– uzyskamy listę parametrów i ich możliwe 

wartości

 - 

optimset( ’fminbnd’ )

 – wyświetli nazwy parametrów oraz 

ich domyślne wartości dla funkcji 

fminbnd

background image

Parametry zmieniane za pomocą funkcji 

optimset

‘Diagnostic’

Wydruk diagnostyki minimalizowanej 
funkcji lub rozwiązywanego równania; 
dopuszczalne wartości:’on’ lub 
‘off’(domyślna)

‘Display’

Sposób wyświetlania wyników: bez 
wyświetlania (‘off’), wyświetlanie wyników 
po każdej iteracji (‘iter’), wyświetlanie tylko 
ostatecznego rozw.(‘final’-wart.dom.)

‘MaxFunEval
s’

Maks. dozwolona liczba obliczeń wartości 
funkcji (l.całk.dodat.)

‘MaxIter’

Maks. dozwolona liczba iteracji 
(l.całk.dodat.)

‘TolX’

Dokładność wykonywania obliczeń(l.+)

background image

Wyznaczanie pierwiastków 

wielomianu

Wielomian n-tego stopnia ma ogólną postać:
 
          

W(x,a) = a

1

x

+ a

2

x

n-1 

+...+ a

n

x + a

n+1

,

gdzie 

a

1

, a

2

, a

3

, ..., a

n+1

 

są współczynnikami 

wielomianu, uszeregowane według malejących 
potęg zmiennej x.

     

                         

background image

 

r

 = roots(

a

)

Zwraca wektor 

r

 pierwiastków 

wielomianu 

W(x,a)

;

 gdzie 

a

 

jest wektorem współczynników 
wielomianu 

a

1

, a

2

, a

3

, ..., a

n+1

 

Funkcja wyznaczająca pierwiastki 

wielomianów

background image

Przykład: napisz skrypt który pozwoli 

wyznaczyć pierwiastki wielomianów:

W1(x) = x

+ 3x – 4

        

pier_W1 = 

roots([ 1  3  -4 ])

 

W2(x) = 3x

- 2x

+ 5x

– 7

pier_W2 = 

roots([ 3  -2  0  5  -7 ])

background image

Funkcje wyznaczające wielomiany i ich 

wartości

 
a =poly( r )

Zwraca wektor 

a

 współczynników 

a

1

, a

2

a

3

, ..., a

n+1

 

wielomianu

 

W(x,a)

 

pierwiastkach podanych w postaci 
wektora 

r = [r

1

, r

2

, ..., r

n

]

 

p=polyval(a,
x0)

Zwraca wartości wielomianu 

W(x,a)

 w 

punkcie 

x=x0

; współczynniki wielomianu 

określa wektor 

a

, przy czym muszą być 

one uszeregowane w kolejności od 
najbardziej znaczącego 

(a

1

)

 do wyrazu 

wolnego 

(a

n+1

)

;

 jeśli 

x0

 jest wektorem 

(macierzą), wartości wielomianu 
obliczane są dla wszystkich elementów 
wektora 

x0

background image

Układy równań liniowych

[L,U] = 
lu(A)

Dokonuje rozkładu LU macierzy A, 
tzn. znajduje macierze L i U takie, 
że A=L*U, przy czym L-macierz 
trójkątna dolna, U-macierz 
trójkątna górna

 x = 

inv(A)*b

 

lub 

x = A\b

Rozwiązuje układ równań: 

A*x=b 

(b-wektor kolumnowy)

 

x = A/b

Rozwiązuje układ równań: 

x*A=b 

(b-wektor wierszowy)


Document Outline