جنو أوكتاف

لغة البرمجة GNU Octave هي لغة برمجة علمية تُستخدم في الحوسبة العلمية والحسابات العددية . من بين استخداماتها، يمكن استخدام Octave لحل المسائل الخطية وغير الخطية عدديًا، وإجراء تجارب عددية أخرى باستخدام لغة متوافقة إلى حد كبير مع MATLAB . كما يمكن استخدامها كلغة معالجة دفعية . وباعتبارها جزءًا من مشروع GNU ، فهي برنامج مجاني بموجب شروط رخصة جنو العمومية العامة .

تاريخ

بدأ التفكير في المشروع حوالي عام ١٩٨٨. [ ٦ ] وكان الهدف منه في البداية أن يكون مكملاً لدورة تصميم المفاعلات الكيميائية. بدأ جون دبليو إيتون تطويره بالكامل عام ١٩٩٢. يعود تاريخ أول إصدار تجريبي (ألفا) إلى ٤ يناير ١٩٩٣، وفي ١٧ فبراير ١٩٩٤، تم إصدار النسخة ١.٠. أما النسخة ٩.٢.٠ فقد صدرت في ٧ يونيو ٢٠٢٤. [ ٧ ]

سُمّي البرنامج تيمناً بأوكتاف ليفينسبيل ، الأستاذ السابق للمؤلف الرئيسي. كان ليفينسبيل معروفاً بقدرته على إجراء حسابات سريعة وبسيطة . [ 8 ]

تاريخ التطوير

وقتفعل
1988/1989المناقشات الأولى (الكتاب والبرنامج)
فبراير 1992بداية التطوير
يناير 1993الأخبار على الويب (الإصدار 0.60)
فبراير 1994الإصدار الأول (من الإصدار 1.0.0 إلى 1.1.1) [ 9 ]
ديسمبر 1996الإصدار الثاني (الإصدار 2.0.x) مع منفذ ويندوز ( Cygwin ) [ 10 ]
ديسمبر 2007نشر الإصدار 3.0 (مرحلة هامة) [ 11 ]
29 مايو 2015الإصدار 4.0.0 (واجهة مستخدم رسومية مستقرة وبنية جديدة للبرمجة الكائنية التوجه ) [ 12 ] [ 13 ] [ 14 ] [ 15 ]
1 مارس 2019نشر Octave 5.1.0 (يفضل QT5، Qt 4.8 كحد أدنى)، دعم hiDpi [ 16 ]
26 نوفمبر 2020نشر Octave 6.1.0 (يفضل QT5، Qt 4.x مهمل للإزالة في الإصدار 7) [ 17 ]
6 أبريل 2022إصدار Octave 7.1.0 (يفضل QT5)، وتحسين الواجهة الخلفية للرسومات والتوافق مع MATLAB [ 18 ]
7 مارس 2023نشر Octave 8.1.0، وتحسين الواجهة الخلفية للرسومات والتوافق مع MATLAB [ 19 ]
14 مارس 2024إصدار Octave 9.1.0، تحسينات عامة، وتوافق مع MATLAB، وتحسينات في الرسومات. [ 20 ]
28 مارس 2025نشر أوكتاف 10.1.0. [ 21 ]
18 فبراير 2026نشر أوكتاف 11.1.0. [ 22 ]

التطورات

إضافةً إلى استخدامه على أجهزة الكمبيوتر المكتبية للحوسبة العلمية الشخصية، يُستخدم برنامج أوكتاف في الأوساط الأكاديمية والصناعية. فعلى سبيل المثال، استُخدم أوكتاف على حاسوب متوازي ضخم في مركز بيتسبرغ للحوسبة الفائقة لاكتشاف ثغرات أمنية تتعلق بتخمين أرقام الضمان الاجتماعي. [ 23 ]

كما يمكن تسريع العمليات باستخدام OpenCL أو CUDA من خلال استخدام وحدات معالجة الرسومات (GPUs). [ 24 ]

التفاصيل الفنية

  • تمت كتابة برنامج Octave بلغة C++ باستخدام مكتبة C++ القياسية .
  • يستخدم برنامج أوكتاف مترجمًا لتنفيذ لغة البرمجة النصية الخاصة به.
  • برنامج Octave قابل للتوسيع باستخدام وحدات قابلة للتحميل ديناميكيًا.
  • يحتوي مترجم لغة أوكتاف على محرك رسومات قائم على OpenGL لإنشاء المخططات والرسوم البيانية وحفظها أو طباعتها. ويمكن استخدام برنامج gnuplot بدلاً من ذلك لنفس الغرض.
  • يتضمن برنامج Octave واجهة مستخدم رسومية (GUI) بالإضافة إلى واجهة سطر الأوامر التقليدية (CLI)؛ انظر واجهات المستخدم أدناه لمزيد من التفاصيل.

أوكتاف، اللغة

لغة أوكتاف هي لغة برمجة تفسيرية. وهي لغة برمجة هيكلية (شبيهة بلغة C ) وتدعم العديد من وظائف مكتبة C القياسية الشائعة ، بالإضافة إلى بعض استدعاءات ووظائف نظام يونكس . [ 25 ] ومع ذلك، فهي لا تدعم تمرير الوسائط بالمرجع [ 26 ] على الرغم من أن وسائط الدوال تُنسخ عند الكتابة لتجنب التكرار غير الضروري.

تتألف برامج أوكتاف من قائمة استدعاءات دوال أو نص برمجي . يعتمد بناء الجملة على المصفوفات ، ويوفر دوالًا متنوعة لإجراء عمليات المصفوفات. يدعم البرنامج هياكل بيانات متنوعة ، ويتيح البرمجة كائنية التوجه . [ 27 ]

يشبه تركيبها النحوي إلى حد كبير تركيب MATLAB، وسيسمح البرمجة الدقيقة للبرنامج النصي بتشغيله على كل من Octave و MATLAB. [ 28 ]

بما أن برنامج أوكتاف متاح بموجب رخصة جنو العمومية العامة ، فإنه يجوز تعديله ونسخه واستخدامه بحرية. [ 8 ] يعمل البرنامج على نظام التشغيل مايكروسوفت ويندوز ومعظم أنظمة التشغيل يونكس والأنظمة الشبيهة بيونكس ، بما في ذلك لينكس وأندرويد وماك أو إس . [ 29 ] [ 30 ] [ 31 ]

الميزات البارزة

إكمال الأوامر وأسماء المتغيرات

يؤدي الضغط على مفتاح الجدولة (TAB) في سطر الأوامر إلى محاولة برنامج أوكتاف إكمال أسماء المتغيرات والدوال والملفات (على غرار خاصية الإكمال التلقائي باستخدام مفتاح الجدولة في باش ). يستخدم أوكتاف النص الموجود قبل المؤشر كجزء أولي من الاسم لإكماله. [ 32 ]

سجل الأوامر

عند التشغيل التفاعلي، يقوم برنامج Octave بحفظ الأوامر المكتوبة في مخزن مؤقت داخلي بحيث يمكن استدعاؤها وتعديلها.

هياكل البيانات

يوفر برنامج أوكتاف دعمًا محدودًا لتنظيم البيانات في هياكل. في هذا المثال، نرى هيكلًا x يحتوي على العناصر a و b و c (عدد صحيح، ومصفوفة، وسلسلة نصية، على التوالي):

octave : 1 > x . a = 1 ; x . b = [ 1 , 2 ; 3 , 4 ]; x . c = "string" ; octave : 2 > x . a ans = 1 octave : 3 > x . b ans =1 2 3 4octave : 4 > x . c ans = string octave : 5 > x x =بنية قياسية تحتوي على الحقول التالية :أ = 1 ب =1 2 3 4ج = سلسلة نصية

عوامل التشغيل المنطقية ذات الدائرة القصيرة

يتم تقييم عوامل التشغيل المنطقية &&في Octave بطريقة مختصرة (مثل عوامل التشغيل المقابلة في لغة C )، على عكس عوامل التشغيل العنصرية والعنصرية .||&|

عوامل الزيادة والنقصان

يتضمن برنامج أوكتاف عوامل الزيادة والنقصان المشابهة للغة C، ++وذلك --بصيغتيها البادئة واللاحقة. كما يدعم أوكتاف أيضًا عمليات الإسناد المعزز ، على سبيل المثال x += 5.

فكّ وحماية

يدعم برنامج أوكتاف شكلاً محدوداً من معالجة الاستثناءات، مُصمماً على غرار لغة unwind_protectليسب . يبدو الشكل العام لكتلة unwind_protect كما يلي:

فك_الحماية_الجسم فك_الحماية_التنظيف التنظيف نهاية_فك_الحماية_الجسم

كقاعدة عامة، يتعرف برنامج GNU Octave على blockالكلمة المفتاحية `<br>` end(المتوافقة مع لغة MATLAB) أو كلمة مفتاحية أكثر تحديدًا ، أو في بعض الحالات، `<br>`، كنهاية لوحدة برمجية معينة. ونتيجة لذلك، يمكن إنهاء الكتلة البرمجية إما بالكلمة المفتاحية `<br>` كما في المثال، أو بالكلمة المفتاحية `<br>` الأكثر توافقًا مع لغات البرمجة الأخرى .endblockend_blockunwind_protectend_unwind_protectend

يتم تنفيذ جزء التنظيف من الكتلة دائمًا. في حال حدوث استثناء من جزء الجسم ، يتم تنفيذ التنظيف فورًا قبل نشر الاستثناء خارج الكتلة unwind_protect.

يدعم برنامج GNU Octave أيضًا شكلاً آخر من أشكال معالجة الاستثناءات (متوافق مع لغة MATLAB):

حاول تنفيذ كتلة catch معالجة الاستثناءات نهاية

يختلف هذا الشكل الأخير عن unwind_protectالكتلة في جانبين. أولاً، لا يتم تنفيذ معالجة الاستثناءات إلا عند حدوث استثناء من خلال جسم الكتلة . ثانياً، بعد تنفيذ معالجة الاستثناءات، لا ينتشر الاستثناء خارج الكتلة (إلا إذا rethrow( lasterror )تم إدراج عبارة صريحة داخل كود معالجة الاستثناءات ).

قوائم الوسائط ذات الطول المتغير

يحتوي برنامج Octave على آلية للتعامل مع الدوال التي تقبل عددًا غير محدد من الوسائط دون حد أقصى صريح. لتحديد قائمة من صفر أو أكثر من الوسائط، استخدم الوسيط الخاص vararginكوسيط أخير (أو وحيد) في القائمة. vararginوهو عبارة عن مصفوفة خلايا تحتوي على جميع وسائط الإدخال.

دالة s = plus ( varargin ) إذا كان ( nargin == 0 ) s = 0 ; وإلا s = varargin { 1 } + plus ( varargin { 2 : nargin }); نهاية نهاية

قوائم إرجاع متغيرة الطول

يمكن إعداد دالة لإرجاع أي عدد من القيم باستخدام قيمة الإرجاع الخاصة varargout. على سبيل المثال:

دالة varargout = multiassign ( data ) for k = 1 : nargout varargout { k } = data (:, k ); end end

تكامل C++

من الممكن أيضًا تنفيذ كود Octave مباشرةً في برنامج C++. على سبيل المثال، إليك مقتطفًا من الكود لاستدعاء rand([10,1]):

#include <octave/oct.h> ... ColumnVector NumRands ( 2 ); NumRands ( 0 ) = 10 ; NumRands ( 1 ) = 1 ; octave_value_list f_arg , f_ret ; f_arg ( 0 ) = octave_value ( NumRands ); f_ret = feval ( "rand" , f_arg , 1 ); Matrix unis ( f_ret ( 0 ). matrix_value ());

يمكن دمج كود C و C++ في GNU Octave عن طريق إنشاء ملفات oct، أو باستخدام ملفات MEX المتوافقة مع MATLAB .

التوافق مع MATLAB

تم تصميم برنامج Octave مع مراعاة التوافق مع برنامج MATLAB، ويشترك في العديد من الميزات مع برنامج MATLAB:

% Script: myscript.m a = 5 ; b = a * 2الدالة: myfunc.m النتيجة = myfunc ( x ) النتيجة = x ^ 2 + 3 ; نهاية    
  1. المصفوفات كنوع بيانات أساسي.
  2. دعم مدمج للأعداد المركبة.
  3. وظائف رياضية مدمجة قوية ومكتبات وظائف واسعة النطاق.
  4. إمكانية التوسع في شكل وظائف معرفة من قبل المستخدم.

يعتبر برنامج Octave عدم التوافق مع MATLAB بمثابة خطأ برمجي ؛ لذلك، يمكن اعتباره نسخة برمجية ، وهو ما لا ينتهك حقوق الطبع والنشر للبرامج وفقًا لقضية Lotus ضد Borland .

تُعتبر نصوص MATLAB البرمجية من مستودع FileExchange التابع لشركة MathWorks متوافقةً مبدئيًا مع برنامج Octave. ومع ذلك، ورغم أن المستخدمين غالبًا ما يُوفرونها ويُحمّلونها بموجب ترخيص BSD مفتوح المصدر متوافق مع Octave ، فإن شروط استخدام FileExchange تحظر أي استخدام لها خارج نطاق برنامج MATLAB الخاص بشركة MathWorks . [ 33 ] [ 34 ] [ 35 ]

توافق بناء الجملة

توجد بعض الإضافات النحوية الهادفة، وإن كانت طفيفة. مؤرشفة بتاريخ 26-04-2012 في Wayback Machine :

  1. يمكن إضافة الرمز # كبادئة لأسطر التعليقات ، وكذلك  الرمز %؛
  2. يتم دعم العديد من عوامل التشغيل المستندة إلى لغة C مثل ++ و -- و += و *= و /=؛
  3. يمكن الإشارة إلى العناصر دون إنشاء متغير جديد عن طريق الفهرسة المتتالية، على سبيل المثال [1:10](3)؛
  4. يمكن تعريف السلاسل النصية باستخدام علامة الاقتباس المزدوجة " وكذلك علامة الاقتباس المفردة '؛
  5. عندما يكون نوع المتغير مفردًا (رقم فاصلة عائمة أحادي الدقة)، يقوم برنامج Octave بحساب " المتوسط " في المجال الأحادي (MATLAB في المجال المزدوج ) وهو أسرع ولكنه يعطي نتائج أقل دقة؛
  6. يمكن أيضًا إنهاء الكتل بكلمات مفتاحية أكثر تحديدًا لبنية التحكم ، مثل endif و endfor و endwhile وما إلى ذلك؛
  7. يمكن تعريف الدوال داخل البرامج النصية وفي موجه أوامر أوكتاف؛
  8. وجود حلقة do-until (مشابهة لحلقة do-while في لغة C).

توافق الوظائف

تتوفر العديد من وظائف MATLAB، ولكن ليس جميعها، في GNU Octave، ويمكن الوصول إلى بعضها من خلال حزم في Octave Forge . الوظائف المتاحة كجزء من حزم Octave الأساسية أو Forge مُدرجة على الإنترنت (مؤرشفة بتاريخ 14 مارس 2024 على Wayback Machine) .

تتضمن وظيفة Octave قائمة بالوظائف غير المتاحة __unimplemented.m__. كما تُدرج الوظائف غير المُنفذة ضمن العديد من حزم Octave Forge في ويكي Octave .

عند استدعاء دالة غير مُنفذة، تظهر رسالة الخطأ التالية:

أوكتاف : 1 > تحذير الدليل : لم يتم تنفيذ وظيفة " الدليل " بعد في أوكتافيرجى قراءة < http://www.octave.org/missing.html > لمعرفة كيفية المساهمة في إضافة الوظائف المفقودة . خطأ : ' guide ' غير مُعرَّف بالقرب من السطر 1 العمود 1

واجهات المستخدم

يأتي برنامج أوكتاف مزودًا بواجهة مستخدم رسومية رسمية (GUI) وبيئة تطوير متكاملة (IDE) مبنية على Qt . وقد توفرت هذه الواجهة منذ إصدار أوكتاف 3.8، [ 36 ] وأصبحت الواجهة الافتراضية (بدلاً من واجهة سطر الأوامر ) مع إصدار أوكتاف 4.0. [ 12 ] وقد لاقت استحسانًا كبيرًا من أحد المساهمين في EDN، الذي كتب في مراجعته للواجهة الرسومية الجديدة آنذاك عام 2014: "[أوكتاف] يمتلك الآن واجهة مستخدم رسومية عملية للغاية". [ 37 ]

كما تم تطوير العديد من واجهات المستخدم الرسومية الخارجية، مثل ToolboX لتعليم البرمجة.

تطبيقات واجهة المستخدم الرسومية

باستخدام لغة أوكتاف البرمجية، يمكن للمستخدم إنشاء تطبيقات بواجهة رسومية. راجع قسم تطوير واجهات المستخدم الرسومية (GNU Octave (الإصدار 7.1.0)) . فيما يلي بعض الأمثلة:

زر، عنصر تحكم التحرير، مربع اختيار

# إنشاء شكل ولوحة عليه f = figure ; # إنشاء زر (النمط الافتراضي) b1 = uicontrol ( f , "string" , "A Button" , "position" , [ 10 10 150 40 ]); # إنشاء عنصر تحكم للتحرير e1 = uicontrol ( f , "style" , "edit" , "string" , "editable text" , "position" , [ 10 60 300 40 ]); # إنشاء مربع اختيار c1 = uicontrol ( f , "style" , "checkbox" , "string" , "a checkbox" , "position" , [ 10 120 150 40 ]);

مربع نص

prompt = { "العرض" ، "الارتفاع" ، "العمق" }; defaults = { "1.10" ، "2.20" ، "3.30" }; rowscols = [ 1 ، 10 ؛ 2 ، 20 ؛ 3 ، 30 ]; dims = inputdlg ( prompt , "أدخل أبعاد المربع" ، rowscols ، defaults );

قائمة منسدلة تحتوي على مربعات رسائل.

my_options = { "عنصر" ، "عنصر آخر" ، "عنصر آخر" }; [ sel , ok ] = listdlg ( "ListString" , my_options , "SelectionMode" , "Multiple" ); if ( ok == 1 ) msgbox ( "لقد اخترت:" ); for i = 1 : numel ( sel ) msgbox ( sprintf ( "\t%s" , my_options { sel ( i )})); endfor else msgbox ( "لقد ألغيت." ); endif

أزرار الاختيار

# إنشاء الشكل واللوحة عليه f = figure ; # إنشاء مجموعة أزرار gp = uibuttongroup ( f , "Position" , [ 0 0.5 1 1 ]) # إنشاء أزرار في المجموعة b1 = uicontrol ( gp , "style" , "radiobutton" , "string" , "Choice 1" , "Position" , [ 10 150 100 50 ]); b2 = uicontrol ( gp , "style" , "radiobutton" , "string" , "Choice 2" , "Position" , [ 10 50 100 30 ]); # إنشاء زر ليس ضمن المجموعة b3 = uicontrol ( f , "style" , "radiobutton" , "string" , "Not in the group" , "Position" , [ 10 50 100 50 ]);

الطرود

يتوفر لدى أوكتاف العديد من الحزم البرمجية. يمكن العثور على هذه الحزم في Octave-Forge (Octave Forge - Packages) أو GitHub (Octave Packages ). كما يُمكن لأي شخص إنشاء حزم برمجية وصيانتها.

مقارنة مع برامج مماثلة

تتضمن البدائل المتاحة لبرنامج GNU Octave بموجب ترخيص مفتوح المصدر ، بخلاف برنامج MATLAB المذكور سابقًا، برنامجي Scilab و FreeMat . [ 38 ] [ 39 ] [ 40 ] [ 41 ] يُعدّ Octave أكثر توافقًا مع MATLAB من Scilab، [ 38 ] [ 42 ] [ 43 ] ولم يتم تحديث FreeMat منذ يونيو 2013. [ 44 ]

كما أن لغة البرمجة جوليا وقدراتها في رسم البيانات تشبه إلى حد كبير لغة جنو أوكتاف.

انظر أيضاً

ملحوظات

  1. GPL-3.0-or-later منذ 2007-10-12.
  2. GPL-2.0-or-later من 1992-02-19 حتى 2007-10-11.

مراجع

  1. ريك (10 يونيو 2015). "contributors.in" . تم الاطلاع عليه بتاريخ 14 يونيو 2015 .
  2. "بدأ التطوير بدوام كامل في ربيع عام 1992. وكان الإصدار التجريبي الأول في 4 يناير 1993، وتم إصدار النسخة 1.0 في 17 فبراير 1994." .
  3. "إصدار GNU Octave 11.3.0" . 1 يونيو 2026. تم الاطلاع عليه بتاريخ 23 يونيو 2026 .
  4. "بناء - أوكتاف" . wiki.octave.org . جنو . تم الاسترجاع في 1 مايو 2018 .
  5. "الباسكية، البيلاروسية، الكاتالونية، الصينية، الهولندية، الإنجليزية، الفرنسية، الألمانية، المجرية، الإيطالية، اليابانية، اللاتفية، البرتغالية (البرازيل)، البرتغالية (البرتغال)، الروسية، الإسبانية، التركية، الأوكرانية" . hg.savannah.gnu.org .
  6. "حول برنامج جنو أوكتاف" . www.gnu.org . جنو . تم الاطلاع عليه في 1 مايو 2018 .
  7. "إصدار Octave 9.2.0" . octave.org . 2024-06-07 . تاريخ الاطلاع: 2024-11-05 .
  8. 1 2 إيتون، جون دبليو. "حول أوكتاف" . تم الاسترجاع في 28-06-2009 .
  9. "GNU Octave الإصدار 1" . www.gnu.org .
  10. "GNU Octave الإصدار 2" . www.gnu.org .
  11. "GNU Octave الإصدار 3" . www.gnu.org .
  12. 1 2 "GNU Octave الإصدار 4.0" . www.gnu.org .
  13. "إصدار برنامج جنو أوكتاف 4.0.0" . www.gnu.org . 29 مايو 2015.
  14. "إصدار GNU Octave 4.0.1" . www.gnu.org . 23 مارس 2016.
  15. "إصدار برنامج جنو أوكتاف 4.0.3" . www.gnu.org . 2 يوليو 2016.
  16. "GNU Octave الإصدار 5" . www.gnu.org .
  17. "إصدار GNU Octave 6.1.0" . www.gnu.org . 26 نوفمبر 2020.
  18. "إصدار GNU Octave 7.1.0" . www.gnu.org . 6 أبريل 2022.
  19. "إصدار GNU Octave 8.1.0" . octave.org . 7 مارس 2023.
  20. "GNU Octave الإصدار 9" . octave.org . 14 مارس 2024. تم الاطلاع عليه بتاريخ 25 مارس 2024 .
  21. "OGNU Octave الإصدار 10" . octave.org . 28 مارس 2025. تم الاطلاع عليه بتاريخ 12 يوليو 2026 .
  22. "GNU Octave الإصدار 11" . octave.org . 18 فبراير 2026. تم الاطلاع عليه بتاريخ 12 يوليو 2026 .
  23. "اعتماد نتائج ثغرات أرقام الضمان الاجتماعي على الحوسبة الفائقة" . 8 يوليو 2009. مؤرشف من الأصل في 29 فبراير 2012.
  24. "تسريع برنامج GNU Octave بشكل مباشر" . مدونة مطوري NVIDIA . 5 يونيو 2014.
  25. "جنو أوكتاف - التحكم في العمليات الفرعية" . 14 نوفمبر 2008. مؤرشف من الأصل في 7 يناير 2009. تم الاطلاع عليه بتاريخ 28 يناير 2009 .
  26. "GNU Octave" . تم الاطلاع عليه بتاريخ 28-01-2009 .
  27. "ملخص لأهم التغييرات التي يمكن للمستخدم رؤيتها في الإصدار 3.2" . تم الاطلاع عليه بتاريخ 5 يناير 2012 .
  28. "الأسئلة الشائعة: توافق MATLAB" . مؤرشف من الأصل بتاريخ 21-11-2011 . تم الاطلاع عليه بتاريخ 04-04-2009 .
  29. "أسئلة شائعة: الحصول على الأوكتاف" . مؤرشف من الأصل بتاريخ 21-11-2011 . تم الاطلاع عليه بتاريخ 04-04-2009 .
  30. "Top (GNU Octave (version 6.3.0))" . octave.org .
  31. "أوكتاف لنظام أندرويد - أوكتاف" . wiki.octave.org . تم الاطلاع عليه بتاريخ 23 أغسطس 2021 .
  32. إيتون، جون دبليو. "دع ريدلاين يكتب نيابةً عنك" . دليل مرجعي لبرنامج جنو أوكتاف . مؤرشف من الأصل بتاريخ 12 فبراير 2018. تم الاطلاع عليه بتاريخ 29 يوليو 2016 .
  33. "الأسئلة الشائعة - أوكتاف" . wiki.octave.org . تم الاطلاع عليه بتاريخ 2022-12-05 .
  34. "شروط استخدام MATLAB Central" . www.mathworks.com . تم الاطلاع عليه بتاريخ 2022-12-05 .
  35. "الأسئلة الشائعة حول ترخيص تبادل الملفات" . www.mathworks.com . تم الاطلاع عليه بتاريخ 2022-12-05 .
  36. "GNU Octave الإصدار 3.8" . www.gnu.org .
  37. هاجمان، ستيف (7 فبراير 2014). "برنامج جنو أوكتاف يحقق نجاحاً باهراً" . EDN .
  38. 1 2 ترابنبرغ، توماس (2010). أساسيات علم الأعصاب الحاسوبي . مطبعة جامعة أكسفورد. ص 361. ISBN  978-0-19-956841-3.
  39. ↑ محمد ، أ؛ زاليزنياك، ف (2011). الحوسبة العلمية العملية . دار وودهيد للنشر . ص 3. ISBN  978-0-85709-226-7.
  40. ميغري، برنارد أ.؛ موكسنيس، إرلند (2008). الحواسيب في أبحاث مصايد الأسماك . سبرينغر ساينس آند بيزنس ميديا. ص 345. ISBN  978-1-4020-8636-6.
  41. كابونو، راؤول ريموند (2008). البرمجة لمهندسي الكيمياء باستخدام لغات C وC++ وMATLAB . دار نشر جونز وبارتليت. ص 365. ISBN  978-1-934015-09-4.
  42. هيرمان، راسل ل. (2013). دورة في الأساليب الرياضية للفيزيائيين . مطبعة سي آر سي. ص 42. ISBN  978-1-4665-8467-9.
  43. وور، آلان فاندي؛ ساوسيز، فيليب؛ فيلاس، كارلوس (2014). محاكاة نماذج المعادلات التفاضلية العادية/الجزئية باستخدام MATLAB وOctave وScilab: تطبيقات علمية وهندسية . سبرينغر. ص 114-115 . ISBN  978-3-319-06790-2.
  44. "FreeMat" . freemat.sourceforge.net . تم الاطلاع عليه بتاريخ 22 فبراير 2020 .

للمزيد من القراءة

  • هانسن ، يسبر شميدت (يونيو 2011). جنو اوكتاف. دليل المبتدئين . نشر الحزمة . رقم ISBN 978-1-849-51332-6أُرشف من المصدر الأصلي بتاريخ 2014-08-02 . تم الاطلاع عليه بتاريخ 2011-06-26 .