MATLAB - Hướng dẫn GNU Octave
GNU Octave là một ngôn ngữ lập trình cấp cao giống như MATLAB và nó hầu như tương thích với MATLAB. Nó cũng được sử dụng để tính toán số.
Octave có các tính năng phổ biến sau với MATLAB:
- ma trận là kiểu dữ liệu cơ bản
- nó có hỗ trợ tích hợp cho các số phức
- nó có các hàm và thư viện toán học được tích hợp sẵn
- nó hỗ trợ các chức năng do người dùng xác định
GNU Octave cũng là phần mềm có thể phân phối lại miễn phí. Bạn có thể phân phối lại và / hoặc sửa đổi nó theo các điều khoản của Giấy phép Công cộng GNU (GPL) do Tổ chức Phần mềm Tự do xuất bản.
MATLAB so với Octave
Hầu hết các chương trình MATLAB chạy trong Octave, nhưng một số chương trình Octave có thể không chạy trong MATLAB vì Octave cho phép một số cú pháp mà MATLAB thì không.
Ví dụ: MATLAB chỉ hỗ trợ dấu nháy đơn, nhưng Octave hỗ trợ cả dấu nháy đơn và dấu nháy kép để xác định chuỗi. Nếu bạn đang tìm kiếm một hướng dẫn về Octave, vui lòng xem qua hướng dẫn này từ đầu, bao gồm cả MATLAB cũng như Octave.
Các ví dụ tương thích
Hầu hết tất cả các ví dụ được đề cập trong hướng dẫn này đều tương thích với MATLAB cũng như Octave. Hãy thử ví dụ sau trong MATLAB và Octave tạo ra cùng một kết quả mà không có bất kỳ thay đổi cú pháp nào -
Ví dụ này tạo một bản đồ bề mặt 3D cho hàm g = xe - (x 2 + y 2 ) . Tạo một tệp kịch bản và nhập mã sau:
[x,y] = meshgrid(-2:.2:2);
g = x .* exp(-x.^2 - y.^2);
surf(x, y, g)
print -deps graph.eps
Khi bạn chạy tệp, MATLAB hiển thị bản đồ 3-D sau:
Ví dụ không tương thích
Mặc dù tất cả các chức năng cốt lõi của MATLAB đều có sẵn trong Octave, nhưng có một số chức năng, chẳng hạn như Phép tính Tích phân & Tích hợp, không khớp chính xác trong cả hai ngôn ngữ. Hướng dẫn này đã cố gắng đưa ra cả hai loại ví dụ mà chúng khác nhau về cú pháp.
Hãy xem xét ví dụ sau trong đó MATLAB và Octave sử dụng các hàm khác nhau để lấy diện tích của một đường cong: f (x) = x 2 cos (x) cho −4 ≤ x ≤ 9. Sau đây là phiên bản MATLAB của mã:
f = x^2*cos(x);
ezplot(f, [-4,9])
a = int(f, -4, 9)
disp('Area: '), disp(double(a));
Khi bạn chạy tệp, MATLAB vẽ biểu đồ -
Kết quả sau được hiển thị
a =
8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9)
Area:
0.3326
Nhưng để cung cấp diện tích của cùng một đường cong trong Octave, bạn sẽ phải sử dụng symbolic gói như sau -
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));