tan(x)

Transkrypt

tan(x)
Wybrane funkcje matematyczne programu Matlab
Funkcja
Opis
sin(x) cos(x)
tan(x) cot(x)
asin(x) acos(x)
atan(x) acot(x)
sinh(x) cosh(x)
tanh(x) coth(x)
asinh(x) acosh(x)
atanh(x) acoth(x)
Funkcje trygonometryczne których argumentem jest kąt podawany w
radianach
Funkcja cylkometryczna w wyniku podaje kąt w radianach
Funkcja hiperboliczna której argumentem jest kąt podawany w radianach
Funcke pola, odwotne hiperboliczne, w wyniku podają kąt w radianach
exp(x)
Wykładnicza, tworzy macierz z elementów e(xij)
log(x)
Logarytm naturalny o podstawie e
logy(x)
Logarytm przy podstawie y z x (np. log10(x) – logarytm dziesiętny,
log2(x) – logarytm z x przy podstawie 2
sqrt(x)
Pierwiastek kwadratowy z x
abs(x)
Wartość bezwzględna
nthroot(x,n)
Pierwiastek stopnia n z x
mod(a)
Reszta z dzielenia a
sign(x)
Znak 1 gdy x>0, 0 gdy x=0,-1 gdy x<0
factorial(n)
Silnia (iloczyn kolejnych liczb) z liczb naturalnych
cross(a,b)
Iloczyn wektorowy dwóch wektorów współpłaszczyznowych a i b (np.
w płaszczyźnie xy: a = (x1,y1,0), b = (x2,y2,0). W wyniku operacji
cross(a,b) uzyskany zostanie wektor prostopadły c=(0,0,z)
Sposoby zaokrąglania liczb rzeczywistych:
Funkcja
fix(a)
Opis
Najbliższa liczba całkowita w kierunku 0
floor(a)
Zaokrąglanie w dół
ceil(a)
Zaokrąglanie w górę
round(a)
Najbliższa liczba całkowita
Funkcje operujące na wektorach
Funkcja
Opis
max(x)
Zwraca największy element wektora x
min(x)
Zwraca najmniejszy element wektora x
sum(x)
Zwraca sumę elementów wektora x
prod(x)
Zwraca iloczyn elementów wektora x
mean(x)
Zwraca średnią arytmetyczną elementów wektora x
Operacje macierzowe.
Dzielenie macierzy, to mnożenie przez macierz odwrotną:
A/B (prawostronne) = A*B-1 lub A\B (lewostronne) = A-1*B
Macierze możemy podzielić, tylko gdy występuje zgodność wymiarów macierzy, oraz gdy
macierz, która powinna zostać odwrócona, jest odwracalna.
W pierwszej kolejności należy sprawdzić wyznacznik macierzy odwracanej:
det(A) – Wyznacznik macierzy A
oraz możliwość jej odwrócenia
inv(A) – Macierz odwrotna macierzy A
Obliczenia numeryczne
Prowadząc obliczenia numeryczne z wykorzystaniem pakietu Matlab zgadzamy się na pewne
założenia a proiri:
- operując na liczbach , dopuszczamy możliwość ich niedokładnej reprezentacji
- podczas obliczeń mogą występować niedokładności
- niewielkie błędy mogą się pojawiać na każdym etapie obliczeń
- może okazać się że wynik będzie obarczony niewielką niedokładnością, która jednak nie
może zostać zaakceptowana
W obliczeniach numerycznych konieczne jest określenie wielkości charakteryzujących
macierz, takich jak wyznacznik, rząd, norma czy wartość własna macierzy
Funkcja
Opis
det(A)
Wyznacznik macierzy A
rank(A)
Rząd macierzy A
norm(A)
Norma macierzy A.
cond(A)
Liczba warunkowa macierzy A
L=eig(A)
Zwraca wektor L zawierający wartości własne macierzy kwadratowej A
[V,D]=eig(A)
Wyznacza macierz D, zawierającą na przekątnej wartości własne
macierzy A oraz macierz V wektorów własnych odpowiadających tym
wartościom
Miejsca zerowe, minima funkcji nieliniowych.
W pakiecie Matlab wbudowane są funkcje umożliwiające obliczanie miejsc zerowych oraz
minimów dowolnych nieliniowych funkcji matematycznych:
Funkcja
Opis
Zwraca miejsce zerowe x1 nieliniowej funkcji jednej zmiennej f(x).
Argument x0 określa początkowe przybliżenie wartości szukanego
x1=fzero(f,x0)
miejsca zerowego (punkt startowy). f jest łańcuchem znaków
określających funkcję Matlaba: nazwę funkcji (standardowej lub z mpliku) lub definicję funkcji inline
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
x1=fminbnd(f,x0,xk)
początek i koniec przedziału poszukiwań oraz f – łańcuch znaków, jak
w przypadku fzero.
Zwraca wektor wartości X, dla których funkcja nieliniowa wielu
X=fminsearch
zmiennych osiąga minimum. Argumentami funkcji są: wektor X0,
punkt startowy oraz f – łańcuch znaków, jak w przypadku
określający
(f,X0)
fzero.
Przykład
Znaleźć miejsce zerowe funkcji: f(x)=cos(2x-π) w otoczeniu punktu 3
>> fzero(inline('cos(2*x-pi)'),3)
ans =
2.3562
Znaleźć miejsce zerowe funkcji: f(x)=cos(x) w otoczeniu punktu 3
>> fzero('cos',3)
ans =
1.5708
Wszystkie w.w. funkcje można wywołać z wykorzystaniem opcjonalnych parametrów opcje :
>>x1=fzero(f,x0,opcje)
Opcje określają parametry wywołania tych funkcji. Domyślne ustawienia tych parametrów
można zmienić za pomocą funkcji optimset:
>>Opcje=optimset(parametr,wartość,…)
Argumentami funkcji optimset są pary parametr-wartość, przy czym parametr określany jest
za pomocą łańcuchów znaków.
Parametry zmieniane za pomocą funkcji optimset:
Funkcja
Opis
‘Diagnostics’
‘Display’
‘MaxFunEvals’
Wydruk diagnostyki minimalizowanej funkcji lub rozwiązywanego
równania; dopuszczalne wartości: ‘on’ lub ‘off’ (domyślna)
Sposób wyświetlania wyników: bez wyświetlania (‘off’), wyświetlanie
wyników po każdej iteracji (‘iter’), wyświetanie tylko ostatecznego
rozwiązania (‘final’ – wartość domyślna)
Maksymalna dozwolona liczba obliczeń wartości funkcji (liczba całkowita
dodatnia)
‘MaxIter’
Maksymalna dozwolona liczba iteracji (liczba całkowita dodatnia)
‘TolX’
Dokładność wykonywania obliczeń (liczba dodatnia, np. 2.2e-016)
Przykład:
Znaleźć miejsce zerowe funkcji: f(x)=cos(x) w otoczeniu punktu 1.6
>> fzero('cos',1.6,optimset('Display','iter'))
Search for an interval around 1.6 containing a sign change:
Func-count
a
1
1.6
2
1.55475
f(a)
-0.0291995
0.0160505
b
f(b)
1.6
-0.0291995 initial interval
1.6
-0.0291995 search
Search for a zero in the interval [1.55475, 1.6]:
Func-count
x
f(x)
2
1.55475
0.0160505
3
1.5708 -1.0276e-006
Procedure
Procedure
initial
interpolation
4
1.5708 4.41237e-011
interpolation
5
1.5708 6.12323e-017
interpolation
6
1.5708 6.12323e-017
interpolation
Zero found in the interval [1.55475, 1.6]
ans =
1.5708
Wielomiany
Zakładając, że wielomian stopnia n ma ogólną postać:
W(x,a)=a1xn+a2xn-1+…+anx+an+1
gdzie: ai – to współczynniki wielomiany uszeregowane według malejącej potęgi zmiennej x,
wyznaczyć można pierwiastki wielomiany z wykorzystaniem funkcji:
Funkcja
a=poly(r)
p=polyval(a,x0)
r=roots(a)
Opis
Zwraca wektor a współczynników ai wielomianu W(x,a) o pierwiastkach
podanych w postaci wektora r=[r1,r2,…,rn]
Zwraca wartość wielomiany 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 (a1) do wyrazu wolnego (an+1). Jeśli
x0 jest wektorem (macierzą), wartości wielomianu obliczane są dla
wszystkich elementów wektora x0
Zwraca wektor r pierwiastków wielomianu W(x,a). a – wektor
współczynników wielomiany ai
Przykład:
Wyznaczyć pierwiastki wielomianu:
W(x) = x2+3x-4
>> roots([1 3 -4])
ans =
-4
1
Wartość wielomianu w punkcie x0=0
>> polyval([1 3 -4],5)
ans =
36
Układ równań liniowych (kwadratowy)
Kwadratowy układ równań liniowych, w którym liczba równań i niewiadomych jest
jednakowa, można zapisać w sposób ogólny w postaci:
+
+ ⋯+
=
+
+ ⋯+
=
……………………………………
+
+⋯+
=
Układ taki można rozwiązać na dwa sposoby.
I Metoda macierzowa – z wykorzystaniem macierzy odwrotnej macierzy
wyznaczników
A*X=B
X=A-1*B
W pierwszej kolejności należy stworzyć potrzebne macierze. Na podstawie współczynników
układu równań macierz A, oraz kolumnową macierz wyrazów wolnych B.
>>A=[a11 a12 … a1n;a21 a22 … a2n;… … … …;an1 an2 … ann]
>>B=[b1;b2;…;bn]
W kolejnym kroku sprawdzamy czy macierz A spełnia warunke odwracalności, tzn. czy
posiada niezerowy wyznacznik macierzy:
>>det(A)
Gdy det(A) ≠ 0, można znaleźć rozwiązanie układu równać stosując wzór:
>> X=inv(A)*B
W wyniku otrzymany zostanie wektor kolumnowy wartości niewiadomych X ułożonych w
kolejności rosnących współczynników.
Ia Zamiast mnożenia przez macierz odwrotną można wykonać dzielenie lewostronne
A przez B
>> X=A\B
Przykład:
Rozwiąż układ równań
Rozwiązanie:
>> A=[2 3 0;1 1 1;0 -3 1]
A=
2
3
0
2
+3 =8
+ + =6
−3 + = −3
1
1
1
0
-3
1
>> B=[8;6;-3]
B=
8
6
-3
>> det(A)
ans =
5
>> X=inv(A)*B
X=
1
2
3
Oznacza to, że x1 = 1, x2 = 2 x3 = 3
Stosując dzielenie lewostronne
>> X=A\B
ans =
1
2
3
Oznacza to, że x1 = 1, x2 = 2 x3 = 3
II Metoda Crammera – metoda wyznacznikowa z wykorzystaniem wzorów Crammera
=
det( )
det( )
=
det( )
det( )
=
det( )
det( )
W pierwszej kolejności należy stworzyć potrzebne macierze. Na podstawie współczynników
układu równań macierz A, oraz kolumnową macierz wyrazów wolnych B.
>>A=[a11 a12 … a1n;a21 a22 … a2n;… … … …;an1 an2 … ann]
>>B=[b1;b2;…;bn]
W następnej kolejności tworzymy macierze A1, A2 i A3
Liczymy wartość wyznaczników i za pomocą wzorów Crammera wyznaczamy wartości
niewiadomych x.
Przykład:
Rozwiąż układ równań, identyczny jak w poprzednim przykładzie:
>> A=[2 3 0;1 1 1;0 -3 1]
A=
2
3
0
1
1
1
0
-3
1
>> B=[8;6;-3]
B=
8
6
-3
>> A1=[B,A(1:3,2:3)]
A1 =
8
3
0
6
1
1
-3
-3
1
>> A2=[A(:,1),B,A(:,3)]
A2 =
2
8
0
1
6
1
0
-3
1
>> A3=[A(1:3,1:2),B]
A3 =
2
3
8
1
1
6
0
-3
-3
>> X1=det(A1)/det(A)
X1 =
1
>> X2=det(A2)/det(A)
X2 =
2
>> X3=det(A3)/det(A)
X3 =
3
Oznacza to, że x1 = 1, x2 = 2 x3 = 3
Układ równań liniowych (prostokątny)
Prostokątny układ równań liniowych, w którym liczba równań i niewiadomych jest różna,
można zapisać w sposób ogólny w postaci:
+
+ ⋯+
=
+
+ ⋯+
=
……………………………………
+
+⋯+
=
Układ taki może być z niedoborem gdy jest więcej niewiadomych niż równań, lub z
nadmiarem gdy jest więcej równań niż niewiadomych.
Aby rozwiązać układ równań, konieczne jest zastosowanie twierdzenia Kroneckera-Capellego
i określić rząd macierzy:
W pierwszej kolejności należy stworzyć potrzebne macierze. Na podstawie współczynników
układu równań macierz A, oraz kolumnową macierz wyrazów wolnych B.
>>A=[a11 a12 … a1n;a21 a22 … a2n;… … … …;an1 an2 … ann]
>>AB==[a11 a12 … a1n b1;a21 a22 … a2n b2;… … … …;an1 an2 … ann bn]
>>B=[b1;b2;…;bn]
W kolejnym kroku sprawdzamy rząd macierzy A i macierzy AB:
>>rA=rank(A)
>>rAB=rank(AB)
Gdy rA = rAB =h układ ma rozwiązanie i postępujemy zgodnie z zasadami opisanymi powyżej
(dla układu kwadratowego), zakładając że ilość potrzebnych do rozwiązania układu równań
równań jest równa h, jak również że tylko h niewiadomych jest możliwe do wyznaczenia w
danym układzie pozostałe są rozpatrywane jako parametry układu.
Po ustaleniu rzędu macierzy pozwalającego na rozwiązanie układu, wycinamy z macierzy A
podmacierz współczynników na podstawie której zostanie przeprowadzone rozwiązanie.
Następnie rozwiązujemy układ zgodnie z zasadami I, Ia
Tworzymy macierz c złożoną z współczynników przy parametrach i liczymy współczynniki
dla wyrazów parametrycznych z wzory x=AB-1*c, a następnie uzupełniając rozwiązanie
podstawowe o ten wynik. Tak powstaje ostateczne rozwiązanie układu równań
Przykład:
Rozwiąż układ równań
Rozwiązanie:
>> A=[1 1 1;1 -2 3]
A=
1
1
1
1
-2
3
+
−2
+ =3
+3 =2
>> B=[3;2]
B=
3
2
>> r1=rank(A)
r1 =
2
>> r2=rank([A B])
r2 =
2
>> AA=A(1:2,1:2)
AA =
1
1
1
-2
>> X=inv(AA)*B
X=
2.6667
0.3333
>> c=[-1;-3]
c=
-1
-3
>> x=inv(AA)*c
x=
-1.6667
0.6667
Ostateczne rozwiązanie ma wiec postać x1 = 2.67-1.67*x3, x2 = 0.33-0.67*x3