++x
Transkrypt
++x
Przegląd funkcji
matematycznych
DAWID SZCZYPIŃSKI, BARTŁOMIEJ LEWANDOWSKI, SYLWIA MAŚLANKOWSKA,
DAMIAN BRZUZY, PAWEŁ TRACZYK
Funkcje elementarne - Działania
x + y Dodawanie
x - y Odejmowanie
x * y Mnożenie
x .* y Mnożenie elementów macierzy
x/y
x ./ y
x\y
x .\ y
Prawostronne dzielenie
Prawostronne dzielenie elementów macierzy
Lewostronny dzielenie
Lewostronne dzielenie elementów macierzy
Funkcje elementarne - Działania
x ^ y Potęgowanie
x .^ y Potęgowanie elementów macierzy
-x
+x
Znak −
Znak +
++x / --x Inkrement (dekrement), zwraca przyjętą wartość
x++ / x-- Inkrement (dekrement), zwraca starą wartość
Funkcje elementarne –
Porównania i operatory logiczne
x<y
x <= y
true, jeśli x mniejsze od y
true, jeśli x mniejsze lub równe y
x == y
true, jeśli x równe y
x >=y
x>y
true, jeśli x większe lub równe y
true, jeśli x większe od y
x != y
true, jeśli x różne od y
Funkcje elementarne –
Porównania i operatory logiczne
x&&y true, jeśli jednocześnie x i y są true (AND wysoki priorytet)
x||y true, jeśli przynajmniej jedno: x lub y jest true (OR wysoki priorytet)
x & y true, jeśli jednocześnie x i y są true (skrócone logiczne „AND”)
x|y true, jeśli przynajmniej jedno: x lub y jest true (skrócone logiczne„OR”)
!x
true, jeśli x jest false (logiczne „NOT”)
Funkcje elementarne –
Logarytmy, potęgi i pierwiastki
Znak % (procent) rozpoczyna krótki komentarz, czyli wszystkie znaki
napisane po nim, aż do końca linii, są pomijane przez interpreter.
Aby obliczyć procent liczby należy pomnożyć liczbę przez x*(1/100)
abs(x) wartość bezwględna
log(x)
logarytm naturalny
log10(x) logarytm dziesiętny
log2(x) logarytm z podstawą 2
logAzB=log(B)/log(A) logarytm z dowolną wybraną
podstawą (twierdzenia matematyczne)
Funkcje elementarne –
Logarytmy, potęgi i pierwiastki
exp(x) funkcja wykładnicza(eksponencjalna) eX
sqrt(x) pierwiastek 2 stopnia
cbrt(x) pierwiastek 3 stopnia
power(a,1/b) lub a^(1/b) pierwiastek b stopnia z liczby a (twierdzenia
matematyczne)
nthroot (x, n) pierwiastek n stopnia z liczby x
power(a,b) lub a^b potęga b stopnia z liczby a
Operacje na liczbach i zbiorach
ceil(x)
fix(x)
floor(x)
round(x)
zaokrąglanie x w górę
zwraca część całkowitą liczby x
zaokrąglanie x w dół
zaokrąglanie (ceil+floor) x
max(x,y) wartość maksymalna z x i y
min(x,y) wartość minimalna z x i y
Operacje na liczbach i zbiorach
primes(n) wyświetlanie kolejnych liczb pierwszych do podanego n
list_primes(n) wyświetla n kolejnych liczb pierwszych
sign (x)
mod(x,y)
znak liczby, funkcja signum
reszta z dzielenia
Stałe liczbowe
pi
e
i lub j
inf
ans
eps
realmax
realmin
π iloraz obwodu koła do jego średnicy
podstawa logarytmów naturalnych
jednostka urojona(dlatego nie powinniśmy ich używać w pętlach)
nieskończoność
zmienna, której domyślnie przypisywany jest wynik
wyrażenia z linii komend
epsilon maszynowy
największa reprezentowalna liczba zmiennoprzecinkowa
najmniejsza reprezentowalna liczba zmiennoprzecinkowa
Funkcje trygonometryczne
Funkcje trygonometryczne w Octave są obsługiwane w radianach, aby
odzyskać wyniki dla stopni należy użyć np. sin(x*(pi/180))
sin(x)
cos(x)
tan(x)
cot(x)
sinus
cosinus
tanges
cotanges
Konwersja z stopni na radiany:
function wynik=d2r(a)
wynik=a*(pi/180)
endfunction
asin(x)
acos(x)
atan(x)
acot(x)
arcsinus
arccosinus
arctanges
arccotanges
Konwersja z radianów na stopnie:
function wynik=r2d(a)
wynik=a*(180/pi)
endfunction
Funkcja liniowa
Wzór: f(x)=ax+b
function wynik=FL(x)
wynik=3*x+2
endfunction
function wynik=FL2(a, b, x)
disp( ' f(x)=')
wynik = a*x+b
endfunction
Wykres:
function WFL(a, b, odx, dox)
x = [odx:1:dox]
y=FL2(a, b, x)
plot(x,y)
grid on
endfunction
Miejsce zerowe: x0=−b/a
function wynik=MZFL(a, b)
disp('Miejsce zerowe:')
if (a!=0)
wynik = -b/a
elseif(b!=0)
disp('Brak miejsca zerowego')
else
disp('Nieskończenie wiele miejsc')
endif
endfunction
Funkcja kwadratowa
Wzór: f(x)= ax2+bx+c
function wynik=FK(x)
wynik=3*(x^2)+2*x+4
endfunction
function wynik=FK2(a, b, c, x)
wynik=a*(x.^2)+b*x+c
endfunction
Wykres:
function WFK(a, b, c, odx, dox)
x = [odx:1:dox]
y=FK2(a, b, c, x)
plot(x,y)
endfunction
Miejsce zerowe: x0=−b/a
function wynik=Mz(a,b,c)
delta=(b*b)-(4*a*c)
if (delta<0)
disp('brak miejsc zerowych');
elseif (delta==0)
x1=((-b)/(2*a))
elseif (delta>0)
x=((-b)-sqrt(delta))/(2*a)
xx=((-b)+sqrt(delta))/(2*a)
endif
endfunction
Wielomiany
c=[2, 3, -5]; polyout(c, ’x') definicja wielomianu
roots(c) wyznacza wszystkie pierwiastki wielomianu(miejsca zerowe)
conv(a,c) współczynniki iloczynu wielomianów a i c
deconv(a,c) dzielenie wielomianów a/c
residue(a, c) wyznacza rozkład funkcji wymiernej a/c na ułamki proste
polyint(c) całka nieoznaczona z wielomianu
polyval(c,x) wyznacza wartość wielomianu w x
Funkcja wymierna
Wzór: f(x)= w(x)/p(x)
a=[2, 3, -5] polyout(a, ’x')
c=[1, 4, -6] polyout(c, ’x')
function wynik=FWM(a, c, x)
disp( ' f(x)=')
wynik=polyval(c,x)/polyval(a,x)
endfunction
Wykres:
function WFK(a, c, odx, dox)
x = [odx:1:dox]
y=FWM(a, c, x)
plot(x,y)
endfunction
Funkcja wykładnicza
Wzór: f(x)= ax
function wynik=FW(x)
wynik=power(3,x)
endfunction
function wynik=FW2(a, x)
disp( ' f(x)=')
wynik=power(a,x)
endfunction
Wykres:
function WFW(a, odx, dox)
x = [odx:1:dox]
y=FW2(a, x)
plot(x,y)
endfunction
Funkcja potęgowa
Wzór: f(x)= xa
function wynik=FP(x)
wynik=power(x,3)
endfunction
function wynik=FP2(a, x)
wynik=power(x,a)
endfunction
Wykres:
function WFP(a, odx, dox)
x = [odx:1:dox]
y=FP2(a, x)
plot(x,y)
endfunction
Funkcja logarytmiczna
Wzór: f(x)= logax
function wynik=FLOG(x)
wynik= log(3)/log(x)
endfunction
function wynik=FLOG2(a, x)
wynik= log(a)./log(x)
endfunction
Wzór: f(x)= loga(x-p)+q
function wynik=FLOG3(a, p, q, x)
wynik= log(a)/(log(x-p)+q)
endfunction
Wykres:
function WFL(a, odx, dox)
x = [odx:1:dox]
y=FLOG2(a, x)
plot(x,y)
endfunction
Użyteczne funkcje
function czy_pierwsza(k)
dzielnik=0;
for p=2:1:k-1
if (mod(k,p)==0)
dzielnik++;
endif
endfor
if (dzielnik==0)
disp('liczba pierwsza')
else disp('liczba zlozona')
endif
endfunction
function doskonala(k)
suma=0;
for l=1:1:k-1
if(mod(k,l)==0)
suma=suma+l;
endif
endfor
if(suma==k)
disp('doskonala')
else disp('nie')
endif
endfunction
factorial(x) silnia
hypot(x,y) pitagoras
factor(x) rozkład na czynnik pierwsze
gcd(x,y) największy wspólny dzielnik NWD
lcm(x,y) największa wspólna wielokrotność NWW
Ciągi liczbowe
N = 1000000;
sum (1./(1:N))
suma ciągu wzoru: σ𝑛𝑘=0 1/𝑘
a = [1,2,3,4,5];
cumsum(a)
diff(a)
sumy częściowe ciągu
ciąg różnicowy
f = (@(x) ( (x)^2+1 ));
sum(arrayfun(f,[0:5])) suma ciągu z wzory funkcji w przedziale 0..5
Granice funkcji
Granica dąży do 0+
function wynik = GDP(funkcja)
n = 0:7;
x = 10.^(-n);
f = funkcja(x);
y = f;
format long g
disp('przyblizona wartoc granicy')
y(8)
endfunction
Granica dąży do wartość+
function wynik = GDWD(funkcja,m)
m = 0; n = 0:7; x = m+(10.^(-n));
f = funkcja(x);
y = f;
format long g
disp('przyblizona wartoc granicy')
y(8)
endfunction
Granica dąży do 0-
function wynik = GDM(funkcja)
n = 0:7;
x = 0-(10.^(-n));
f = funkcja(x);
y = f;
format long g
disp('przyblizona wartoc granicy')
y(8)
endfunction
Granica dąży do wartość-
function wynik = GDWM(funkcja,m)
m = 0; n = 0:7; x = m-(10.^(-n));
f = funkcja(x);
y = f;
format long g
disp('przyblizona wartoc granicy')
y(8)
endfunction
Pochodne
Pochodna z wielomianu:
c=[1,0,1];
d= polyder(c)
polyout(d, 'x')
function wynik=P(a)
d = polyder(a)
wynik=polyout(d, 'x')
endfunction
c = [1, 0, 1]; P(c)
Funkcja do obliczania
ilorazu różnicowego f(x):
function wynik=obl(xod, xdo, xskok, f)
tabx = [xod:xskok:xdo];
taby = f(tabx);
wynik = diff(tabx)/diff(taby)
endfunction
Całki
Całka nieoznaczona z wielomianu:
c=[1,0,1];
integral=polyint(c);
calka=polyout(integral, 'x')
Całka oznaczona z wielomianu:
c=[1,0,1];
integral=polyint(c);
area=polyval(integral,3)-polyval(integral,0)
Całka oznaczona z funkcji:
quad (@(x) ( (x)^2+1 ), 0, 3) obliczanie oparte na kwadratury Gaussa.
quadv (@(x) ( (x)^2+1 ), 0, 3)obliczanie za pomocą adaptacyjnego wektorowy Metoda Simpsona
Prawdopodobieństwo, kombinatoryka,
statystyka
bincoeff(n, k)
mean (x)
median (x)
std (x)
var (x)
dwumian Newtona
średnia
mediana
odchylenie standardowe
wariancja
Losowanie dużego lotka i Euklides
function lotek(k)
disp('prawdopodobienstwo trafienia ' )
disp (k)
disp( ' w lotku wynoki 1 do ')
bincoeff(49,k)
endfunction
function euklides(a,b)
while (b!=0)
c=mod(a,b);
a=b;
b=c;
endwhile
disp('NWD liczb to ')
disp(a)
endfunction
Macierze
x’ - transpozycja macierzy
size(macierz np. A) - rozmiar macierzy NxM
eye(N) macierz jednostkowa NxN
ones(N,M) macierz jedynkowa NxM
zeros(N,M) macierz zer NxM
rand(N,M) -macierz NxM wypełniona losowymi liczbami z przedziału 0 do 1
A( wiersz, od kolumny : do kolumny) - np. A(1: 2, 3) = 3, 6 pierwszy element z drugiego i trzeciego wiersza
diag(macierz) - główna przekątna macierzy
mnożenie - macierzowe A*B, tablicowe A.*B
potęgowanie- A.^k (tablicowe), A^k(macierzowe)
Macierze
rank(A) - funkcja obliczająca rząd macierzy A
det(A) - funkcja obliczająca wyznacznik macierzy kwadratowej
inv(A) - funkcja obliczająca macierz odwrotną do macierzy ( inv(A) = A^(-1))
x = diag(A) - funkcja tworząca wektor x z elementów znajdujących się na
głównej przekątnej macierzy
Zadanie: Rozwiązywanie układów równań liniowych
A=[2 -1 1;1 -1 2;5 -2 2]
B=[7 ;6;15]
x = inv(A)*B
wynik:
x = 1 -5 0
Wektory
dot(a,b) iloczyn skalarny wektorów a i b
cross(a,b) oblicza iloczyn wektorowy poprzeczny dwóch 3-wymiarowych wektorów a i b
max(x) funkcja zwracająca największy element wektora
min(x) funkcja zwracająca najmniejszy element wektora
sum(x) funkcja zwracająca sumę elementów
prod(x) iloczyn wektora
mean(x) średnia arytmetyczna
sort(x) funkcja sortująca elementy wektora w kolejności rosnącej
diff(x)
funkcja obliczająca różnice pomiędzy sąsiednimi elementami
Inne
\\
Znak „backslash”
\"
Cudzysłów podwójny
\’
Cudzysłów pojedynczy
\n
Znak nowej linii, ASCII code 10
\t
Znak tabulacji, ASCII code 9
Dokumentacja
http://faculty.cooper.edu/smyth/TechCompanion/Calc1/Ch02/Limit.htm
http://wiki.octave.org/FAQ
https://www.gnu.org/software/octave/doc/octave-4.0.0.pdf
https://www.gnu.org/software/octave/doc/octave-4.2.0.pdf
https://pl.wikibooks.org/wiki/GNU_Octave