آشنایی با زبان GNU Octave

GNU Octave یک زبان برنامه نویسی سطح بالا مانند متلب و بیشتر وقت ها با متلب سازگار است. همچنین از آن برای محاسبات عددی به کار گرفته می شود.
Octave در زمینه های زیر با متلب اشتراک دارد:
- ماتریس ها دیتا تایپ های (نوع داده) اساسی هستند.
- از اعداد مختلط پشتیبانی می کند.
- از کتابخانه و توابع ریاضی ساخته شده است.
- پشتیبانی از توابع تعریف شده توسط کاربر
GNU Octave همچنین به صورت آزاد نرم افزاری قابل توزیع مجدد است. شما می توانید آن را توزیع مجدد کرده و یا آن را طبق شرایط مجوز عمومی گنو (GPL) که توسط بنیاد نرم افزار آزاد منتشر شده است اصلاح کنید.
مقایسه Octave با MATLAB
بیشتر وقت ها متلب در Octave اجرا می شود اما بیشتر برنامه های Octave در متلب اجرا نمی شود چون Octave بیشتر سینتکس هایی که متلب انجام می دهد را اجازه دسترسی به آن ها را ندارد. برای مثال، متلب تک کوتیشن و Octave هم تک و هم دابل کوتیشن می باشد.
مثال های سازگار:
در این مثال نمودار سه بعدی تابع (g = xe-(x2 + y2 را رسم می کنیم. فایل اسکریپت ایجاد کرده و کد های زیر را در آن می نویسیم:
1 2 3 4 |
[x,y] = meshgrid(-2:.2:2); g = x .* exp(-x.^2 - y.^2); surf(x, y, g) print -deps graph.eps |
هنگام اجرای پرونده ، MATLAB نقشه ۳ بعدی را نشان می دهد:
مثال های ناسازگار
اگرچه تمام قابلیت های اصلی MATLAB در اکتاو وجود دارد، اما برخی از قابلیت ها به عنوان مثال حساب دیفرانسیل و حل انتگرال وجود دارد که دقیقاً در هر دو زبان مطابقت ندارد. این آموزش سعی کرده است تا تفاوت های هر دو نوع مثال را ارائه دهد.
مثال هایی را در نظر بگیرید که متلب و Octave از توابع مختلف برای گرفتن قسمتی از یک منحنی استفاده می کنند:
مانند f(x) = x2 cos(x) for −۴ ≤ x ≤ ۹ ، کد های زیر را در فایل اسکریپت بنویسید:
1 2 3 4 |
f = x^2*cos(x); ezplot(f, [-4,9]) a = int(f, -4, 9) disp('Area: '), disp(double(a)); |
وقتی که فایل اجرا می شود، نمودار را به صورت زیر ببینید:
نتیجه را به صورت زیر ببینید:
1 2 3 4 5 |
a = 8*cos(4) + 18*cos(9) + 14*sin(4) + 79*sin(9) Area: 0.3326 |
با استفاده از پکیج symbolic ، منحنی بالا را به صورت زیر در Octave کد نویسی می کنیم:
1 2 3 4 5 6 7 8 9 10 11 |
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)); |
این خبر را به اشتراک بگذارید :