English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
GNU Octave هو لغة برمجة متقدمة مثل MATLAB، وهو متوافق مع MATLAB بشكل كبير. يتم استخدامه أيضًا في الحوسبة العددية.
ميزات مشتركة بين Octave و MATLAB -
الصفوف هي نوع بيانات أساسي
يدعم الأعداد المركبة بشكل مدمج
يحتوي على وظائف رياضية مدمجة ومكتبات
يدعم الدوال المحددة من قبل المستخدم
GNU Octave هو برنامج يمكن إعادة إصداره مجانًا. يمكنك إعادة توزيع وتعديلها بناءً على شروط رخصة GNU العامة (GPL) التي发布ها مؤسسة البرمجيات الحرة.
يمكن تشغيل معظم برامج MATLAB في Octave، ولكن قد لا يمكن تشغيل بعض برامج Octave في MATLAB لأن Octave يسمح باستخدام سيناريوهات لغوية لا تدعمها MATLAB.
على سبيل المثال، يدعم MATLAB فقط الأقواس الواحدة، ولكن يدعم Octave الأقواس الواحدة والأقواس المزدوجة لتعريف النصوص. إذا كنت تبحث عن دليل Octave، فلا بد من قراءة هذا الدليل من البداية، حيث يتضمن MATLAB و Octave.
جميع الأمثلة التي يتم تقديمها في هذا الدليل تتوافق مع MATLAB و Octave. لنحاول فيما يلي مثالاً ينتج نفس النتيجة في MATLAB و Octave دون أي تغيير في النص النصي-
هذا المثال هو دالة g = xe- (x 2 + y 2)إنشاء رسم 3D لسطح. أنشئ ملف سكريبت وأدخل الكود التالي -
[x, y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps
عند تشغيل ملف، يظهر MATLAB الخريطة الثلاثية الأبعاد التالية -
على الرغم من أن جميع الوظائف الأساسية لـ 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('منطقة: '), disp(double(a));
عند تشغيل الملف، يرسم MATLAB الرسم البياني-
إظهار النتيجة التالية
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) منطقة: 0.3326
لكن لعرض نفس المنحنى في Octave، ستحتاج إلى استخدام ما يليsymbolicالبند-
pkg load symbolic الرموز 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('منطقة: '), disp(double(a));