English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
GNU Octave è un linguaggio di programmazione avanzato come MATLAB, compatibile con la maggior parte di MATLAB. È anche utilizzato per calcoli numerici.
Caratteristiche comuni di Octave e MATLAB
La matrice è un tipo di dati fondamentale
Supporta nativamente i numeri complessi
Ha funzioni matematiche e librerie integrate
Supporta le funzioni definite dall'utente
GNU Octave è anche un software liberamente rinnovabile. Puoi redistribuirlo e / o modificarlo secondo i termini della GNU General Public License (GPL) pubblicata dalla Free Software Foundation.
La maggior parte dei programmi MATLAB possono essere eseguiti in Octave, ma alcuni programmi Octave potrebbero non funzionare in MATLAB perché Octave permette di usare sintassi che MATLAB non supporta.
Ad esempio, MATLAB supporta solo virgolette singole, mentre Octave supporta virgolette singole e doppie per definire stringhe. Se stai cercando tutorial su Octave, leggi questo tutorial dall'inizio, che copre MATLAB e Octave.
Quasi tutti gli esempi presentati in questo tutorial sono compatibili con MATLAB e Octave. Proviamo il seguente esempio per ottenere lo stesso risultato in MATLAB e Octave senza cambiare la sintassi:
Questo esempio è la funzione g = xe- (x 2 + y 2)Creare un grafico di superficie 3D. Creare un file script e inserire il seguente codice:
[x, y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
Eseguendo il file, MATLAB mostra la seguente mappa 3-D:
尽管MATLAB的所有核心功能都可以在Octave中使用,但是有些功能(例如,差分和积分演算)在两种语言中都不完全匹配。本教程尝试给出两种示例,它们的语法有所不同。
考虑下面的示例,其中MATLAB和Octave使用不同的函数来获取曲线的面积:f(x)= x 2 cos(x)表示−4≤x≤9。以下是代码的MATLAB版本-
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a));
运行文件时,MATLAB绘制图形-
显示以下结果
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326
但是要在Octave中给出相同曲线的面积,您将必须使用以下symbolic包-
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));