MATLAB - samouczek GNU Octave
GNU Octave jest językiem programowania wysokiego poziomu, takim jak MATLAB i jest w większości kompatybilny z MATLAB. Jest również używany do obliczeń numerycznych.
Octave ma następujące wspólne cechy z MATLAB -
- macierze to podstawowy typ danych
- ma wbudowaną obsługę liczb zespolonych
- ma wbudowane funkcje matematyczne i biblioteki
- obsługuje funkcje zdefiniowane przez użytkownika
GNU Octave jest również oprogramowaniem do swobodnej redystrybucji. Możesz go rozpowszechniać i / lub modyfikować zgodnie z warunkami Powszechnej Licencji Publicznej GNU (GPL) opublikowanej przez Free Software Foundation.
MATLAB vs Octave
Większość programów MATLAB działa w Octave, ale niektóre programy Octave mogą nie działać w MATLAB-ie, ponieważ Octave pozwala na składnię, której MATLAB nie obsługuje.
Na przykład MATLAB obsługuje tylko pojedyncze cudzysłowy, ale Octave obsługuje zarówno pojedyncze, jak i podwójne cudzysłowy do definiowania ciągów. Jeśli szukasz samouczka na temat Octave, zapoznaj się z tym samouczkiem od początku, który obejmuje zarówno MATLAB, jak i Octave.
Zgodne przykłady
Prawie wszystkie przykłady omówione w tym samouczku są kompatybilne zarówno z MATLABem, jak iz Octave. Wypróbujmy następujący przykład w MATLAB i Octave, który daje ten sam wynik bez żadnych zmian składni -
Ten przykład tworzy trójwymiarową mapę powierzchni dla funkcji g = xe - (x 2 + y 2 ) . Utwórz plik skryptu i wpisz następujący kod -
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Po uruchomieniu pliku MATLAB wyświetla następującą mapę 3-W -
Niezgodne przykłady
Chociaż cała podstawowa funkcjonalność MATLAB-a jest dostępna w Octave, istnieją pewne funkcje, na przykład rachunek różniczkowy i całkowy, który nie pasuje dokładnie w obu językach. W tym samouczku próbowano podać przykłady obu typów, w których różniły się one składnią.
Rozważmy następujący przykład, w którym MATLAB i Octave używają różnych funkcji, aby uzyskać pole krzywej: f (x) = x 2 cos (x) dla −4 ≤ x ≤ 9. Poniżej znajduje się wersja kodu MATLAB -
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Po uruchomieniu pliku MATLAB wykreśla wykres -
Wyświetlany jest następujący wynik
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Ale aby podać obszar tej samej krzywej w oktawie, będziesz musiał wykorzystać symbolic pakiet w następujący sposób -
pkg load symbolic
symbols
x = sym("x");
f = inline("x^2*cos(x)");
ezplot(f, [-4,9])
print -deps graph.eps
[a, ierror, nfneval] = quad(f, -4, 9);
display('Area: '), disp(double(a));