37
ﺑﻪ ﻧﺎم ﺧﺪا ﭘﺮوژه ﺑﻮﻣﯽ ﺳﺎزي ﺳﺎﯾﻠﺐ ﻣﻘﺪﻣﻪ اي ﮐﻮﺗﺎه ﺑﺮ ﺳﺎﯾﻠﺐ30 اردﯾﺒﻬﺸﺖ92

A Short Introduction to Scilab Persian Translation

Embed Size (px)

DESCRIPTION

سایلب یک بسته‌ی نرم‌افزاری همه‌منظوره ویژه‌ی محاسبات علمی و مهندسی بوده و جایگزینی آزاد و متن‌باز برای نرم افزار تجاری متلب محسوب می‌شود. علاوه بر این سایلب برای بیشتر کاربرد‌های علمی و مهندسی از جمله طراحی سیستم‌های کنترل، پردازش تصویر و ویدئو، پردازش سیگنال‌های دیجیتال، بهینه‌سازی، منطق فازی، آمار و مدل‌سازی جعبه‌ابزار‌های فراوانی دارد که به صورت رایگان از طریق وب‌سایت رسمی سایلب قابل دریافت می‌باشد. همچنین سایلب برای مدل‌سازی و شبیه‌سازی سیستم‌های دینامیکی ابزاری به‌نام ایکس‌کاز را در خود جای داده است که تنها جایگزین آزاد و متن‌باز برای سیمولینک می‌باشد. در سایلب هر چیزی یک ماتریس هست لذا در این نوشتار بعد از آموزش اصول اولیه ی سایلب به بررسی عملگر‌ها و توابع ویژه‌ی کار با ماتریس‌ها پرداخته شده است. علاوه بر این به نحوه‌ی برنامه‌نویسی در سایلب، ترسیم نمودار‌ها و تفاوت‌های سایلب و متلب اشاره شده است.این نوشتار دارای دو فصل پیوست بوده که به ‌ترتیب نحوه‌ی نصب سایلب در گنو/لینوکس و نحوه‌ی نصب جعبه‌ابزار‌های سایلب آموزش داده شده است.

Citation preview

Page 1: A Short Introduction to Scilab Persian Translation

نام خدا به

سازي سایلب پروژه بومی

سایلباي کوتاه بر مقدمه

92 اردیبهشت 30

Page 2: A Short Introduction to Scilab Persian Translation

2

)Scilab( سایلباي کوتاه بر هممقد

شناسنامه

A Short Introduction to Scilab: )اصلی(عنوان

Terence Leung & N.K. Tsing): ها(نویسنده

ابوالفضل خورشیدي: مترجم

1٫2نسخه ؛ 92 تشهبیدرا 30: تاریخ انتشار و نسخه سند

: با سپاس فراوان از

نوشته و لینوکس /گنوهاي مختلف توزیعنصب سایلب در ی را برايآقاي سلمان محمدي که آموزش جامع

.سند آورده شده است همین عیناً در پیوستایشان آموزش .ندا هکرددر ویکی فارسی سایلب منتشر

3 نسخه Creative Commons Attribution-NonCommercial-ShareAlikeمحتوا تحت مجوز

)http://creativecommons.org/licenses/by-nc-sa/3.0( شود منتشر مییا باالتر .

Page 3: A Short Introduction to Scilab Persian Translation

3

www.Scilab.ir

Acknowledgement

I would like to thank the authors, Dr. Nam-Kiu Tsing and Dr. Terence Leung for their work and effort in writing a valuable tutorial.

Page 4: A Short Introduction to Scilab Persian Translation

4

)Scilab( سایلباي کوتاه بر هممقد

گفتار پیش

و )Matlab( متلب يبرا باز متن و آزاد يها نیگزیجا ، Xcos آن یکینامید ساز هیشب و )Scilab( لبیسا

ر،یتصو پردازش به توان یم لبیسا يها تیقابل گرید از. شوند یم محسوب )Simulink( نکیمولیس

.کرد اشاره يآمار محاسبات و نینماد پردازش کاربر، یکیگراف واسط دیتول ،يساز نهیبه گنال،یس پردازش

دیتوان یم یآسان به یکیو در تیعضو با شما و باشد یم لبیسا یفارس یکیو يها پروژه از یکی آموزش نیا

يسپاسگزار سند نیا يبعد يها نسخه در شما ي مهربانانه تالش از ما. دیبپرداز آن اصالح و شیرایو به

در که نداشتند یهمخوان لبیسا دیجد يها نسخه با یسیانگل زبان به آموزش از ییها قسمت .کرد میخواه

رفت براي کاربر هایی که گمان می همچنین قسمت .دندیگرد حیتصح ها آن به اشاره ضمن ترجمه خالل

5٫3٫3 نسخه از آموزش نیا ي ترجمه در .استدر پاورقی توضیح داده شده باشد سوال يجاکار تازه

این راهنما براي کاربران متلب نیز مشابهت دستورات سایلب و متلب، به دلیل .گردید استفاده لبیسا

.هاي آنها اشاره شده است به برخی از تفاوت ترجمهدر خالل ضمناً .تواند مفید باشد می

ارزشمندشان اریبسخاطر آموزش به ترنسدر پایان از زحمات نویسندگان این اثر آقایان دکتر چینگ و دکتر

.دکتر چینگ به فارسی ترجمه و منتشر گردید آقاي این آموزش با کسب اجازه از. کنم سپاسگزاري می

و یا [email protected] توانید از طریق ایمیل به نشانی هاي خود را می ها و انتقاد پیشنهادها، دیدگاه

[email protected] ما با تماسي صفحه به خود دیدگاه مستقیم ارسال يبرا یا بگذارید میان در ما با

.کنید مراجعه سایلب یفارس سایت وب در

Page 5: A Short Introduction to Scilab Persian Translation

5

www.Scilab.ir

فهرست مطالب

سایلب ي درباره. 1

سایلب ياجرا و نصب. 2

راهنما و مستندات. 3

سایلب اصول. 4

متداول يها عملگر. 1-4

متداول توابع. 2-4

ژهیو يها ثابت. 3-4

فرمان خط. 4-4

ها داده ساختمان. 5-4

ها رشته. 6-4

ها ریمتغ يبارگذار و رهیذخ. 7-4

ها سیماتر با کار. 5

ها سیماتر کردن وارد. 5-1

مجموع ي محاسبه. 5-2

ها روندیز. 5-3

دونقطه عملگر. 5-4

ها سیماترآسان جادیا. 5-5

الحاق. 5-6

ها ستون و ها سطر حذف. 5-7

یخط يها ستمیس حل و سیماتر معکوس. 5-8

سیماتر اندازه ه،یدرا به هیدرا اتیعمل. 5-9

یسینو برنامه طیمح. 6

توابع جادیا .6-1

کنترل روند.6-2

یسینو برنامه ي نکته ندچ. 6-3

خطایابی .6-4

ها نمودار رسم. 7

هاي دوبعدي نمودار .7-1

Page 6: A Short Introduction to Scilab Persian Translation

6

)Scilab( سایلباي کوتاه بر هممقد

يبعد سه يها هیرو .7-2

، اُکتاو یا متلبلبیسا. 8

و متون پیشنهادي جعامر .9

تسویپ .10

Page 7: A Short Introduction to Scilab Persian Translation

7

www.Scilab.ir

سایلب ي درباره. 1

پژوهشگران دو که ابتدا توسط باشد افزار تجاري متلب می مشابه نرمباز افزاري علمی آزاد و متن سایلب یک بسته نرم

.2باشد در حال توسعه می Scilab Enterprisesاکنون توسط توسعه پیدا کرد و هم ENPCو INRIA1ي فرانسوي موسسه

:سایلب از سه قسمت اصلی تشکیل شده است. هایی قدرتمند هستند افزار سایلب و متلب هر دو نرم

یک مفسر -1

) هاي سایلب رویه(هاي توابع کتابخانه -2

Fortranو Cهاي هاي روال کتابخانه -3

و نیز محاسبات عددي...) ها، الحاق، ترانهاده، معکوس و عملیات اصلی ماتریس( ها ي کار با ماتریس سایلب ویژه

يها تا توابع و کتابخانه سازد یباز دارد که کاربران را قادر م یسینو برنامه طیمح کیهمچنین سایلب .استساخته شده

.خودشان را بسازند

:سایت رسمی سایلب مراجعه کنید براي مطالعه بیشتر و مستندات به وب

http://www.scilab.org/

1 . بنیاد ملی تحقیق در علوم کامپیوتر و کنترل فرانسه

2 انجام Digitoدر داخل شبکه تحقیقاتی )Scilab Consortium( توسط کنسرسیوم سایلبافزار کار توسعه و ارتقاي نرممیالدي 2012تا ژوئن

.شود میزبانی می Scilab Enterprisesتوسط 2012از جوالي ) الملی ي بین کمیته شرکا( IPCجدید کنسرسیوم سایلب با نام . شد می

Page 8: A Short Introduction to Scilab Persian Translation

8

)Scilab( سایلباي کوتاه بر هممقد

سایلب ياجرا و نصب. 2

و رفته سایت رسمی سایلب وب دانلود قسمت به. دیباش داشته اریاخت در را افزار نرم از يا نسخه دیبا شما ز،یهرچ از قبل

يبرا( برنامه کننده نصب دیتوان یم شما آسان، نصب يبرا. دیکن دانلود و کرده دایپ) پلتفرم( تان عامل ستمیس مناسب يا نسخه

برنامه نصب تا نموده یط را رو شیپ مراحل و کرده کیکل دو شده دانلود لیفا يرو سپس. دیکن دانلود را) ينریبا يها نسخه

.شود کامل

:دیکن پیتا نصب، يرکتوریدا از bin ي پوشه در فرمان خط برنامه با لبیسا ياجرا يبرا

.دیکن کیکل دارد قرار شروع يمنو در که يانبریم يرو دیکن یم استفاده ندوزیو از اگر ای

):لبیسا فرمان خط در( دیکن پیتا برنامه از شدن خارج يبرا

. 1دیببند را یاصل برنامه ي پنجره ای و

.عامل ویندوز نوشته است این آموزش را بر اساس سیستم واضح است که نویسنده 1

-scilab-5.4.0.bin.linux(ي دودویی بعد از دانلود پرونده) است در اوبونتو امتحان شده(لینوکس /هاي مختلف گنو در توزیع

i686.tar.gz (خواهید سایلب را در آن نصب کنید، انتقال دهید اي که می آن را به دایرکتوري.

:وارد کنید) برنامه اعالن فرمان(اکنون دستورات زیر را در ترمینال

:از دایرکتوري نصب تایپ کنید binي براي اجراي سایلب در پوشه

. شده است آورده پیوستدر لینوکس /در گنوراهنماي جامعی براي نصب سایلب

scilex

exit

cd <scilab-path>

tar xzvf scilab-5.4.0.bin.linux-i686.tar.gz

./scilab

Page 9: A Short Introduction to Scilab Persian Translation

9

www.Scilab.ir

راهنما و مستندات. 3

:براي یافتن کاربرد هر تابع، تایپ کنید

:براي مثال

:توانید فقط تایپ کنید دانید، پیدا کنید می خواهید توابعی را که نمی اگر می

سایت وبتوانید سرانجام اگر به اطالعات بیشتري نیاز داشتید می .1کلیدي آن توابع بپردازید وجوي کلمات و سپس به جست

ساز قرار دارد که بسیار چاره) Documentation(مستندات عنوانا بجا قسمتی در آن. نماییدرا بازدید رسمی سایلب

.باشد می

1

:توانید در خط فرمان تایپ کنید براي جستجوي کلمات کلیدي در راهنماي سایلب، می

help function_name

help sum

help

apropos keyword

Page 10: A Short Introduction to Scilab Persian Translation

10

)Scilab( سایلباي کوتاه بر هممقد

سایلب اصول. 4

متداول يها عملگر. 1-4

:است آمده لبیسا در متداول يعملگرها از یفهرست نجایا در

جمع +

قیتفر -

ضرب *

میتقس /

توان ^

1 مزدوج ترانهاده '

متداول توابع. 2-4

:از اند عبارت لبیسا در متداول توابع از يتعداد

sin, cos, tan, asin, acos, atan, abs, min, max, sqrt, sum

:میکن یم وارد یوقت مثال، يبرا

:شود یم داده شینما جهینت در

:گرید مثال

1 : یک ماتریس با نام هاي زیر در انگلیسی شناخته می شود )ي مزدوج ترانهاده( ترانهاده مزدوج

conjugate transpose, Hermitian transpose, Hermitian conjugate, adjoint matrix

شود که به آن نامیده می adjugate matrixدر انگلیسی ) ها ي ماتریس همسازه ترانهاده( ماتریس الحاقی یک ماتریس

classical adjoint matrix گویند نیز می .

اولی به ماتریس الحاقی اشاره دارد و دومی به .باشید توجه داشته adjoint matrixو adjoint of a matrixلذا به تفاوت بین مفاهیم

.شود اطالق می ترانهاده مزدوج یک ماتریس

sin(0.5)

ans = 0.4794255

max(2, 3, abs(-5), sin(1))

ans = 5

Page 11: A Short Introduction to Scilab Persian Translation

11

www.Scilab.ir

ژهیو يها ثابت. 3-4

به( میکن یم وارد منظور نیبد. میکن وارد را eو i (sqrt(-1)) و π مانند ژهیو يها ثابت از يتعداد تا میبخواه دیشا

:1)بیترت

:دارند وجود زین ریز يها ثابت نیهمچن

یمعرف بعداً یبول يها ریمتغ. دهند یم نشان را) false( نادرست و) true( درست بیترت به که بوده یبول يها ثابت ها نیا

.شد خواهند

فرمان خط. 4-4

:میکن وارد خط کی در را ها آن توان یم و شده جدا گریکدی از) کاما( رگولیو ي لهیوس به چندگانه دستورات

:کند یم يریجلوگ) عبارت پاسخ( جهینت شینما از فرمان يانتها در) کولن یمیس( رگولیو نقطه دادن قرار

s ریمتغ در) آن مقدار( و شده محاسبه tan(%pi/4) + %e عبارت و شده رهیذخ A ریمتغ در [3 2 1]بردار جا نیا رد

.شود ینم داده شینما صفحه يبرو جینتا اما شود؛ یم رهیذخ

دستور که دهد یم نشان خط هر انیپا در (...) نقطه سه از استفاده ودر چند خط شکسته شوند توانند یم یطوالن دستورات

:ابدی یم ادامه يبعد خط در قتیحق در

1 : ، در متلب به ترتیب داریمi رادیکال منفی یکو π هاي ویژه از جمله عدد پی براي تعریف کلیه ثابت

.)قبلشان %یک عالمت درصد(کنیم تعریف میی که در باال گفته شد، آنها را به صورتدر سایلب

eو i هاي توانید از متغیر یکی از مزایایی چنین تعریفی آن است که شما می. دتوانید مقدار آنها را تغییر دهی ها محافظت شده بوده و شما نمی این ثابت

.pi=-3.14 براي مثال مقدار . به صورت دلخواه در کد نویسی خود بهره ببرید piو

.شناسد تعریف کنید متلب تا انتهاي کدنویسی این مقدار جدید را براي عدد پی می pi=-3.14 حال اگر در متلب

:فرمان سایلب تایپ کنید ها در خط ي فهرستی از این ثابت براي مشاهده

%t %f

%pi %i %e

pi i

whos -name %

A = [1 2 3], s = tan(%pi/4) + %e A = 1. 2. 3. s = 3.7182818

A = [1 2 3]; s = tan(%pi/4) + %e;

s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12;

Page 12: A Short Introduction to Scilab Persian Translation

12

)Scilab( سایلباي کوتاه بر هممقد

يبرا میتوان یم نیبنابر ،)دستور عنوان به( شود ینم گرفته نظر در شود، پیتا // اسلش عالمت جفت کی از بعد که يزیچ هر

.1میببر کار به را آن یسینو کد به مربوط حاتیتوض ای و ها دگاهید انیب

.کند یم یفراخوان را یقبل دستورات فرمان، خط در down(2( نییپا و) up( باال يها کانیپ از استفاده

ها داده ساختمان. 5-4

:مثال يبرا. کند یم یبانیپشت را ها ساختمان داده از ياریبس لبیسا

(real or complex) matrix, polynomial, Boolean, string, function, list, tlist, sparse, library.

. دیکن مطالعه را لبیسا مستندات شتریب اتیجزئ يبرا

:دیکن پیتا ، شئ کی نوع از وجو پرس يبرا

ها رشته. 6-4

:مثال يبرا. دیده قرار قول نقل) "( دوگانه ای) '( گانهی يها عالمت نیب را آن رشته کی کردن وارد يبرا

ای

:دیکن استفاده »+« عملگر از ها رشته) الحاق( اتصال يبرا

:جمله از دارند، وجود ها رشته تیریمد يبرا یاصل تابع يتعداد

Strindex, strsplit, strsubst, part

.دیکن رجوع لبیسا مستندات به لطفا اتیجزئ دانستن يبرا

1 .کنیم استفاده می %یک عالمت درصد ن منظور از ایدر متلب براي

2 دیکل صفحه ينما جهت يها دیکل منظور

%e^(%pi * %i) + 1 // should equal 0, as in the Euler's identity ans = 1.225D-16i

typeof(object)

'This is a string'

"this is also a string"

"Welcome " + "to " + "Scilab!" ans = Welcome to Scilab!

Page 13: A Short Introduction to Scilab Persian Translation

13

www.Scilab.ir

ها ریمتغ يبارگذار و رهیذخ. 7-4

:میبر یم بهره load و save توابع از ما ها ریمتغ يبارگذار و رهیذخ يبرا

.باشند یم ها ریمتغ نام… ,var1,var2 و شود یم يبارگذار ای رهیذخ که است یلیفا نام file_name که ییجا

.شود رهیذخ باید با نام خودش ریمتغ که دیباش داشته توجه

.است شده داده شرح مورد چند ادامه در

١ شود درحالی که نویسنده گفته است که پیغام خطایی نمایش داده در فایل مفروض وجود ندارد پس پیغام خطایی نمایش داده می dچون متغیر

! نخواهد شد

a = 3; b = %f; s = 'scilab'; save('save.dat', a, b, s); clear a; // delete the variable a clear b; clear s; load('save.dat', 'a', 'b', 's'); // load all the saved variables load('save.dat','b'); // It loads only variable b, but not // variable a in the name of b load('save.dat','d');

// It will not show any error messages1.

// Variable d is undefined, not empty. listvarinfile('save.dat'); // list variables in a file saved by // the function save Name Type Size Bytes ---------------------------------------------------- a constant 1 by 1 24 b boolean 1 by 1 20 s string 1 by 1 44

save('file_name', var1, var2, ...); load('file_name', 'var1', 'var2', ...);

!--error 999 load: variable 'd' does not exist in 'save.dat'. at line 823 of function %_sodload called by : load('save.dat','d');

Page 14: A Short Introduction to Scilab Persian Translation

14

)Scilab( سایلباي کوتاه بر هممقد

ها سیماتر با کار. 5

ها سیماتر کردن وارد. 5-1

:که است نیا روش نیتر ساده. دارد وجود ها سیماتر کردن وارد يبرا يمتعدد يها روش

م،یکن یم جدا) کاما( رگولیو کی ای یخال يجا کی با را سطر کی در عنصر هر )1

و کرده، جدا) کولن یسم( رگولیو نقطه کی با را عناصر از سطر هر )2

.میده یم قرار کروشه جفت کی داخل در را عناصر فهرست یتمام )3

:میدار M ریمتغ به آن اختصاص و ییجادو مربع کردن وارد يبرا مثال، يبرا

مجموع ي محاسبه. 5-2

کار نیا يبرا. میکن یبررس را آن قطر هر و ستون هر سطر، هر يرو عناصر مجموع میبخواه دیشا م،یدار ییجادو مربع کی ما

:میکن یم وارد

.1دیآ یم بدست یبراحت diag تابع کمک با سیماتر یاصل قطر يرو عناصر مجموع

1 : را وارد کنیددستور زیر براي این منظور

M = [8 1 6; 3 5 7; 4 9 2] M = 8. 1. 6. 3. 5. 7. 4. 9. 2.

sum(M,'c') // column sums ans = 15. 15. 15. sum(M,'r') // row sums ans = 15. 15. 15.

diag(M) ans = 8. 5. 2.

sum(diag(M))

Page 15: A Short Introduction to Scilab Persian Translation

15

www.Scilab.ir

ها روندیز. 5-3

اول روش. میده یم نشان آن انجام يبرا را روش دو ما. است مشکل یکم هی گرید يها قطر يرو عناصر مجموع کردن دایپ

.ها آن کردن جمع سپس و نیمع عناصر خواندن ،یعنی. باشد یم یدست صورت به مجموع کردن دایپ

عنوان به را سیماتر کی حالت نیا در. میکن دایپ یدسترس سیماتر کی عناصر به گانهی سیاند کی از استفاده با میتوان یم

و M(1) ریمقاد مثال، يبرا. میده یم قرار یبررس مورد گریکدی يبرو سیماتر يها ستون شدن انباشته از حاصل لیطو يبردار

M(2) وM(3) و M(4) و M(5) هستند 5و 1 و4 و 3 و 8 بیترت به.

:مثال. دیشو یم روبرو خطا غامیپ کی با ماتریس از خارج عناصر به یدسترس در

که ییجا. باشد یم mtlb_fliplr تابع از استفاده گرید يها قطر يرو عناصر مجموع آوردن بدست يبرا رکانهیز روش کی

mtlb به Matlab وارو راست به چپ از را سیماتر کی دستور نیا با. دارد اشاره (flip) میکن یم.

.شود یم حاصل ریز عبارت کردن وارد با مطلوب ي جهینت سپس

)کولن( دونقطه عملگر. 5-4

, ..., 2, 1عناصر یک ماتریس سطري با 1:10عبارت. باشد ها در سایلب می یکی از مهمترین عملگر) کولن(عملگر دونقطه

:یعنی. دهد ، را نتیجه می10

:کنیم را مشخص می) نمو(بندي ناواحد، مقدار افزایش براي فاصله

M(1,3) + M(2,2) + M(3,1) ans = 15.

M(3,4) !--error 21 invalid index

mtlb_fliplr(M) ans = 6. 1. 8. 7. 5. 3. 2. 9. 4.

sum(diag(mtlb_fliplr(M)))

1:10 ans = 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.

10 : -2 : 2 ans = 10. 8. 6. 4. 2.

Page 16: A Short Introduction to Scilab Persian Translation

16

)Scilab( سایلباي کوتاه بر هممقد

2:2-:11 کنند اما عبارت ي یکسانی را تولید می نتیجه 2:0.3-:10 و 2:1-:10 هایی چون شویم که عبارت متذکر می

. اي نخواهد داشت چنین نتیجه

ام از -j م تا سطرا- i سطر M(i:j, k) .کنند به قسمتی از یک ماتریس اشاره می) کولن(دار همراه با دونقطه هاي زیروند عبارت

به طور مشابه، . دهد ام را نشان می-kستون

:هاي بیشتر مثال

ي یک بردار یا ماتریس درایه شود، و براي رسیدن به آخرین به بزرگترین مقدار یک اندیس تخصیص داده می $عملگر

:، داریم عنصربه جز آخرین Mماتریس ستون آخر براي دسترسی به تمام عناصرِ. سودمند خواهد بود

ماتریسبراي مثال، براي بدست آوردن تمام عناصر روي سطر دوم . خواهیم ي یک سطر یا یک ستون را می برخی اوقات همه

M مداری :

را وارد M(:, $:-1:1) براي این کار. داریم mtlb_fliplr(M) اکنون روش جدیدي براي اجراي عملیاتی چون هم

ها که از زیروند را نسبت به هنگامی) از نظر زمان محاسبه(ي سریعتري نتیجه mtlb_fliplr(M) به هر حال تابع. کنیم می

.دهد کنیم، می استفاده می

M(2,:) ans = 3. 5. 7.

M(1:$-1, $) ans = 7. 6.

M(3,[3,2]) ans = 2. 9. M([2,1], 3:-1:1) ans = 7. 5. 3. 6. 1. 8.

M(3,2:3) ans = 9. 2.

Page 17: A Short Introduction to Scilab Persian Translation

17

www.Scilab.ir

ها سیماترآسان جادیا. 5-5

:شوند هاي اصلی تنها با یک دستور ایجاد می تعدادي از ماتریس

zeros ها صفر تمام درایه

ones ها یک تمام درایه

eye ها همگی صفر هاي واقع روي قطر اصلی همگی یک و بقیه درایه درایه(ماتریس همانی (

rand یا از توزیع نرمال یا از توزیع یکنواخت(عناصر تصادفی (

:چند مثال

)اتصال( الحاق. 5-6

با اندازه سیماتر کیو کند یبا اندازه کوچکتر را به هم متصل م ها سیاست که ماتر يندیفرا )Concatenation( الحاق

:میده یبزرگتر قرار م سیکوچکتر را به عنوان عناصر ماتر يها سیمنظور ماتر نیا يبرا. سازد یبزرگتر م

zeros(2,3) ans = 0. 0. 0. 0. 0. 0. 8 * ones(2,2) ans = 8. 8. 8. 8. eye(2,3) ans = 1. 0. 0. 0. 1. 0. rand(1,3,'uniform') // same as rand(1,3) ans = 0.2113249 0.7560439 0.0002211

a = [1 2 3]; b = [4 5 6]; c = [7 8 9]; d = [a b c] d = 1. 2. 3. 4. 5. 6. 7. 8. 9. e = [a; b; c] e = 1. 2. 3. 4. 5. 6. 7. 8. 9.

Page 18: A Short Introduction to Scilab Persian Translation

18

)Scilab( سایلباي کوتاه بر هممقد

:ستون سازگار باشد ایسطر دیالحاق با ندیفرا

:بهم متصل کرد توان یم زیرا ن يا جعبه يها سیماتر

ها ستون و ها سطر حذف. 5-7

هاي یک ها یا ستون توان براي حذف سطر دهد؛ که از آن می را نمایش می ماتریس تهییک جفت کروشه که بین آن چیزي نباشد یک

:، درایم4براي حذف سطر اول و سوم یک ماتریس همانی از مرتبه . ماتریس استفاده کرد

.1میشو یخطا روبرو م غامیبا پ میرا حذف کن سیعنصر از ماتر کیتنها میروش بخواه نیاگر با ا

:داشت میخواه یبردار ستون کی جهیدر نت م،یحذف کن گانهی سیاگر عناصر را با استفاده از عبارت اند

1 .دیکن یرا بررس[ ]=A(2) دستور ی، خروجدرك بهتر يبرا. باید از اندیس یگانه بهره ببریم میرا حذف کن سیعنصر ماتر کیتنها میبخواهاگر

x = [1 2]; y = [1 2 3]; z = [x; y] !-error 6 inconsistent row/column dimensions

[eye(2,2) 5*ones(2,3); zeros(1,3) rand(1,2)] ans = 1. 0. 5. 5. 5. 0. 1. 5. 5. 5. 0. 0. 0. 0.6525135 0.3076091

A = eye(4,4); A([1 3],:) = [] A = 0. 1. 0. 0. 0. 0. 0. 1.

A(1,2) = [] !-error 15 submatrix incorrectly defined

B=[1 2 3; 4 5 6]; B(1:2:5)=[] B = 4. 5. 6.

Page 19: A Short Introduction to Scilab Persian Translation

19

www.Scilab.ir

یخط يها ستمیس حل و سیماتر معکوس. 5-8

باًیتقر یسیماتر ایباشد و badly scaled(1( اسیبد مق سیاگر ماتر. دهد یم جهیرا نت M سیمعکوس ماتر inv(M) دستور

:شود یداده م شینما يهشدار غامیباشد، پ singular matrix(2(نیتک

معکوس یمربع سیماتر کی A. که در معادله صدق کند x ریمقاد افتنی یعنی، Ax=b ،یمنظور از حل دستگاه معادالت خط

:A\b میکن یمنظور وارد م نیا يبرا لبیدر سا. باشد یبردار م کی bبوده و ریپذ

یاساساً از روش حذف A\bدستور رایدارد اما کندتر خواهد بود؛ ز یکسانی جهیروش نت نیا. باشد یم inv(A)*b گریروش د

ي درباره شتریجزئیات ب يافزار را برا نرم يراهنما لطفا. کند یبوده، استفاده م اتدر محاسب ییجو گاوس که موجب صرفه

.دیینباشد، مطالعه نما یمربع یوقت A سیکردن معکوس ماتر دایپ یو چگونگ) / (عملگر اسلش

A/b ي معادله xb=A را برحسبx کند یحل م.

1 :نهبراي نمو. هاي آن خیلی بزرگتر از بقیه باشند نامند اگر بعضی از درایه می) بندي ناجور داراي مقیاس(مقیاس یک ماتریس را بد

.�10��� 00 10����

� و �2 ∗ 10� 10�

10�� 2 ∗ 10���

2 .نامند می) منفرد( نیتک سماتریرا )آن برابر صفر باشد نانیدترم(که معکوس نداشته باشد یسیماتر

A = rand(3,3), b = rand(3,1) A = 0.2113249 0.3303271 0.8497452 0.7560439 0.6653811 0.6857310 0.0002211 0.6283918 0.8782165 b = 0.0683740 0.5608486 0.6623569 x = A \ b x = - 0.3561912 1.7908789 - 0.5271342

inv([1 2;2 4.0000001]) warning matrix is close to singular or badly scaled. rcond = 2.7778D-09 ans = 40000001. - 20000000. - 20000000. 10000000.

Page 20: A Short Introduction to Scilab Persian Translation

20

)Scilab( سایلباي کوتاه بر هممقد

سیماتر اندازه ،1هیدرا به هیدرا اتیعمل. 5-9

زحمت که البته پر میبهره ببر M + 4 * ones(M)از دستور میتوان یم M سیماتر يها هیبه تمام درا 4کردن اضافه يبرا

زیاز اسکالر ن سیماتر کی هیدرا به هیدار قیتفر يبرا. شود یانجام م یبه راحت M+4کار با استفاده از دستور نیدر واقع ا. است

.میکن یعمل م بیترت نیهم به

:میبر یبهره م *. هیدرا به هیاز عملگر دار میضرب کن M سیرا در ستون سوم ماتر 3را در ستون دوم و عدد 2آنکه عدد يبرا

:اند از عبارت ها هیآرا يبرا هیدرا به هیدرا یاضیر اتیعمل

جمع +

تفریق -

ضرب *.

توان ^.

تقسیم راست /.

تقسیم چپ \.

نوشتن يجا به نیبنابر

:میسیاست بنو یکاف

ای

به صورت 1\.1:2:12 بطور مشابه . شود یم ریتفس 2:12:(1/.1) به صورت 1:2:12/.1 که دیباش توجه داشته

.شود یم ریتفس 1\(.12):1:2

:داشت توان یم M = [1 2 3 4 5; 6 7 8 9 10] سیوارد کردن ماتر يبرا

. operations component-wiseیا operations element-wiseیا entry-wise operations:انگلیسیبه 1

M .* [1:3; 1:3; 1:3]

s = 1 -1/2 + 1/3 -1/4 + 1/5 - 1/6 + 1/7 ... - 1/8 + 1/9 - 1/10 + 1/11 - 1/12;

s = sum((1:2:12) .\ 1) - sum((2:2:12) .\ 1)

s = sum(1 ./ (1:2:12)) - sum(1 ./ (2:2:12))

M = zeros(2,5); M(:) = 1:10;

Page 21: A Short Introduction to Scilab Persian Translation

21

www.Scilab.ir

.زدیر یمطلوب م يا نو در اندازه را از سیماتر کیکه باشد یم matrixاستفاده از تابع دردسر یب بایروش تقر کی حال نیبا ا

يساده رو اتیچند عمل ي درباره: ییراهنما م؟یوارد کن یآسان را به N = [1 2; 3 4; 5 6; 7 8; 9 10] سیچگونه ماتر

!1دیفکر کن ها سیماتر

.گرداند یمورد پرسش را بر م سیکه ابعاد ماتر باشد یم sizeتابع لب،یتابع آماده در سا کی

را گزارش ) ها تعداد ستون( 5مقدار size(M,2)و دهد یرا گزارش م) ها تعداد سطر( 2مقدار size(M,1) حال نیدر ع

.دهد یم

1 :توانید به صورت زیر باشد یک جواب می

M = matrix(1:10,5,2)'

size(M) ans = 2. 5.

N = zeros(5,2); N(1:5)=1:2:10; N(6:10)=2:2:10

Page 22: A Short Introduction to Scilab Persian Translation

22

)Scilab( سایلباي کوتاه بر هممقد

یسینو برنامه طیمح. 6

توابع جادیا .6-1

کار با نیا. خودشان را بسازند يها تا توابع و کتابخانه سازد یباز دارد که کاربران را قادر م یسینو برنامه طیمح کی لبیسا

ای ()scinotes دیکن پیتا شگریرایو یفراخوان يبرا. شود یانجام م SciNotesبه نام لبیسا یدرون شگریرایکمک و

editor() 1دیکن کیکل منودر نوار شگریرایو يبر رو ایو.

را Save ي نهیکرده و گز کیکل File ي منو يبرو لیفا کی رهیذخ يبرا. باشند یم sec.و sci. لبیسا يها لیفا پسوند

پیفرمان تا در خط لیفا کی ياجرا يبرا. دیکن کیکل Load يمفروض برو يدر منو لیفا کی يبارگذار يبرا. دیانتخاب کن

:2دیکن

. 3دیرا انتخاب کن …Execute نهیگز لیفا ي از همان منو ای

:دیکن پیتابع، تا کیآغاز نوشتن يبرا

هستند که ییها ریمتغ …,in1,in2و …,out1,out2 دهد؛ یم شیتابع را نما کیشروع function واژه دیکل که ییجا

. باشند... و ها سیاعداد، ماتر ،یبول توانند یم ها ریمتغ نیا؛ باشند یتابع م کی يها يو ورود ها یخروجي دهنده نشان بیترت به

name، میکن یم پیتابع تا کی انیدادن پا نشان يبرا انیدر پا. باشد ینام تابع موردنظر م:

:تابع ساده داده شده است کی ریدر ز. شوند یشروع م// با دو عالمت اسلش یحیخطوط توض

1 .تاس آمده()scipad فراخوانی آن نیز ذکر شده است و دستور SciPadدر نسخه اصلی آموزش نام ویرایشگر سایلب،

2ي توانید از پنجره براي این منظور می. به خاطر داشته باشید که براي اجراي هر فایل ابتدا باید به دایرکتوري که فایل مورد نظر در آن قرار دارد بروید

File Browser ) استفاده کنید یا دستور زیر را در خط فرمان تایپ کنید )به بعد 5٫4٫0از نسخه:

.استفاده کنید /.. cdتوانید از دستور ؛ به جاي آن می)کند اما در متلب کار می(کند در سایلب کار نمی .. cdدستور توجه داشته باشید که

3 .را انتخاب کنید load into Scilabي گزینه Executeآمده است که از منوي در نسخه اصلی آموزش

exec('function_file_name');

function [out1, out2, ...] = name(in1, in2, ...)

endfunction

cd "Full_Path";

function [d] = distance(x, y) // this function computes the distance // between the origin and the point (x, y) d = sqrt(x^2 + y^2); endfunction

Page 23: A Short Introduction to Scilab Persian Translation

23

www.Scilab.ir

.آورده شده است یمثالدر ادامه . خودش را فرابخواند یطور بازگشت به تواند یم لبیتابع سا کی

واحد داشته لیفا کیرا در ) مختلف يها توابع با نام(اعالن تابع نیکه چند دهد یاجازه را م نیا لبیخالف متلب، سا بر

جزئیات يبرا). شود ینم هیکار توص کاربران تازه يبرا( دهد یم زیرا ن) overloading( ياجازه سربارگذار لبیسا. میباش

.دیبخوان لبیسا يرا در راهنما يفصل سربارگذار شتریب

کنترل روند.6-2

:اند آورده شده) logical expressions( یمنطق يها عبارت ریدر جدول ز

با مساوي ==

با نامساوي =~

با یا مساوي از بزرگتر =<

با یا مساوي از کوچکتر =>

از بزرگتر <

کوچکتر از >

~ NOT

به عنوان ) نادرست( Fصورت نیا ریخواهد بود در غ) درست(T یبول ریمتغ جهیدرست باشد، نت یعبارت منطق کیاگر

.شود یداده م شینما یخروج

ifدستور شرطی

:تچنین اس این دستور این ساختار اصلی

Body )بدنه دستور (که یفقط هنگامcondition )دستورات . برقرار باشد اجرا خواهد شد) یعبارت شرطif تودرتو ساختار

:را دارند ریز

if condition_1 body_1 elseif condition_2 body_2 elseif condition_3 body_3 elseif ... ... end

if condition body end

Page 24: A Short Introduction to Scilab Persian Translation

24

)Scilab( سایلباي کوتاه بر هممقد

بدهد، خود را نتیجه 0،1،1،2،3،5،8،13٫...را در دنباله یبوناتچیعدد ف نیام- nتابع که کینوشتن يبرا ،مثال کیبه عنوان

.خودش را فرابخواند یطور بازگشت به تواند یم لبیتابع سا کیکه تیواقع نیبه استفاده از ا میکن ملزوم می

.ستین یبوناتچیعدد ف نیام- nکردن دایپ يکارآمد برا یروش نیبزرگ باشد ا n یکه وقت دیتوجه داشته باش

forحلقه

:است نیچن نیدستور ا نیا یساختار اصل

يا در ادامه نسخه. اجرا خواهد شد شوند، یمشخص م هیآرا ریمتغکه توسط تعداد عناصر در ینیحلقه به تعداد دفعات مع نیا

:آورده شده است رییتغ یاز آن با اندک

whileحلقه

:است نیچن نیدستور ا نیا یساختار اصل

function [K] = fibonacci(n) //function [K] = fibonacci(n) //Gives the n-th term of the Fibonacci sequence 0,1,1,2,3,5,8,13,... if n==1 K = 0; elseif n==2 K = 1; elseif n>2 & int(n)==n // check if n is an integer greater than 2 K = fibonacci(n-1) + fibonacci(n-2); else disp('error! -- input is not a positive integer'); end endfunction

while condition body end

for variable = initial_value : step : final_value body end

str = 'abcdr'; s = ''; // an empty string for i = [1 2 5 1 3 1 4 1 2 5 1] s = s + part(str, i); end disp(s); s = abracadabra

Page 25: A Short Introduction to Scilab Persian Translation

25

www.Scilab.ir

.میآور یاز الگوریتم اقلیدسی را م یمثال نجایدر ا. افتیدرست باشد ادامه خواهد یعبارت شرط که یحلقه تا مادام نیا

continueو breakدستورات

:مثال يبرا. باشند یم يتکرار بعد يشروع فور يحلقه و برا کیدادن به انیپا يبرا بیدستورات به ترت نیا

function [n1] = hcf(n1, n2) // n1 and n2 are positive integers if n2 > n1 tem = n2; n2 = n1; n1 = tem; // to ensure n1>=n2 end r = pmodulo(n1, n2); // remainder when n2 divides n1 n1 = n2; n2 = r; while r ~= 0 r = pmodulo(n1, n2); n1 = n2; n2 = r; end endfunction

// user has to input 10 numbers and for those which // are integers are summed up, the program are // prematurely once a negative number is entered. // It is not well written but just to illustrate the // use of the "break" and "continue" commands result = 0; for i = 1:10 tem = input('please input a number'); if tem < 0 break; end if tem ~= int(tem) //integral part continue; end result = result + tem; end disp(result);

Page 26: A Short Introduction to Scilab Persian Translation

26

)Scilab( سایلباي کوتاه بر هممقد

یسینو برنامه ي نکته ندچ. 6-3

ها و بردار عناصر سیتابع اند نیا. خواهد بود دیمف findتابع نیهمچن. مهم است اریبس یبول يها سیها و ماتر مفهوم بردار

:مثال يبرا. دهد یدرست را گزارش م یبول يها سیماتر

با سهیدر مقا

findتابع نجایدر ا رایز. دهد یمM(find(M>0) را نسبت به يتر عیسر جینتا M(M>0) که میمتذکر شو دیبا

.باشد یم يرضرورریغ

يگریبوده و د هیدرا به هیعمل دار یدر هر جفت، اول. میده زیتم گریکدی، را از orو | زینو ، andو &مهم است که اریبس

.دهد یرا گزارش م 1یمقدار درست یبول سیماتر کی يها هیبر اساس تمام دار

١ .باشند) F(نادرست ها هیدرا ي همه و تنها اگر اگر) F(باشند و نادرست) T(درست ها هیدار ي همه و تنها اگر اگر) T(درست

2 . if and only ifعبارت ي شده کوتاه

M = [0 -2; 1 0]; M==0 | M==1 ans = T F T T and(M >= 0) // true iff٢ all entries are true ans = F or(M == -2) // false iff all entries are false ans = T

M = [-1 2; 4 9]; M > 0 ans = F T T T M(M > 0)' ans = 4. 2. 9. end

find(M > 0) ans = 2. 3. 4. M(find(M>0))' ans = 4. 2. 9.

Page 27: A Short Introduction to Scilab Persian Translation

27

www.Scilab.ir

خطایابی .6-4

ابیاستفاده از خطا ای: که به دو روش قابل انجام است. باشد یم یزدای اشکال یسینو ها در برنامه کار نیتر کننده کسلاز یکی

.را براي ما انجام دهد ابیکه همان هدف خطا اي گونهبرنامه به و تغییر اصالح ای لب،یسا یدرون

کنیم ما روش دوم را ارائه می. باشد هاي برنامه نویسی بوده و کار با آن آسان می سایر زبانهاي خطایاب سایلب مشابه خطایاب

.باشد ی برخوردارزدای اشکالدر حین پذیري بیشتري انعطافازتا برنامه نویس

abortدستوربراي خاتمه دادن به آن از . 1کنیم استفاده می pause دستور از )وارد کردن نقطه انفصال(گاه براي ایجاد توقف

.2استفاده کنیم returnتوانیم از دستور براي تنظیم خروجی تابع می .کنیم استفاده می

:ها داریم براي نمایش متغیر

. دیکن مطالعه را لبیسا مستندات شتریب اتیجزئ يبرا

1

سطح (باشد ي سطح محیط جدید می که نشان دهنده آوریم بدست می <-1-اعالن جدیدي و شدهبه محیط جدیدي منتقل pauseبا اجراي دستور

هایی که در محیط جدید ایجاد متغیر .باشند در محیط اول در دسترس هستند در این محیط جدید نیز قابل دسترسی میهایی که تمامی متغیر. )1

هایی که در محیط جدید ایجاد تمام متغیربدون هیچ آرگومانی، returnکاربرد . شوند گردانده می به محیط اصلی باز returnشوند با کمک دستور می

. برد قبل از بازگشت به محیط قدیمی از بین میرا اند شده

2این عبارت . کند یعنی بالفاصله تابع جاري را از دستور کار خارج می ي یک تابع، فوراً تابع را متوقف کرده داخل بدنهدر returnاستفاده از عبارت

. ، مورد استفاده قرار گیردنباشد ضروريالگوریتم ي ماندهباقی اجرايتواند در مواردي که می

disp (variable)

-->s=poly(0,'s'); p=1+2*s+s^2;

-->pause

-1->pt=return(s*p)

-->pt

pt =

2 3

s + 2s + s

Page 28: A Short Introduction to Scilab Persian Translation

28

)Scilab( سایلباي کوتاه بر هممقد

ها نمودار رسم. 7

هاي دوبعدي نمودار. 7-1

یک نمودار plot(y) یک بردار باشد، yاگر . ورودي انواع مختلفی دارد )هاي متغیر( هاي نوع آرگومانبسته به plotتابع

یکسان باشند هایی با اندازه بردار y و xوقتی. کند تولید می yحسب زیروند هر عنصر بر yتکه از عناصر بردار به خطی تکه

plot(x,y) نمودار y حسب بر x 2 براي مثال، براي رسم مقادیر تابع سینوس از صفر تا. کند میرا تولیدπ داریم:

t = (0:1/100:2) * %pi; y = sin(t); plot(t,y);

Page 29: A Short Introduction to Scilab Persian Translation

29

www.Scilab.ir

يبعد سه يها هیرو. 7-2

هاي بردار) yو xهاي مختصات محور( yو xجا در این. کند بعدي را رسم می هاي سه رویه plot3d(x,y,z)دستور

بوده و n1×n2ماتریسی با اندازه z. باشند monotone(1( بوده و این مختصات باید یکنوا n2و n1هاي سطري با اندازه

z(i,j) ي رویه در نقطه) ارتفاع(مقدار ي نشان دهنده(x(i),y(j)) باشد می.

1 .یا یک دنباله که صعودي یا نزولی باشد یک تابع

:را کنترل کرد؛ دستورا ت زیر را در سایلب اجرا کنید آن مقادیر ifتوان با دستور شرطی البته می

// A simple plot of z = f(x,y) t=[0:0.3:2*%pi]'; z=sin(t)*cos(t'); plot3d(t,t,z)

t=[0:-0.3:-2*%pi]';

if or(diff(t)<=0),error('t not ascending order'), end

z=sin(t)*cos(t'); plot3d(t,t,z)

Page 30: A Short Introduction to Scilab Persian Translation

30

)Scilab( سایلباي کوتاه بر هممقد

1متلبیا اُکتاو ،لبیسا. 8

یاصطالح کل کی» يمحاسبات عدد« البته اصطالح . شوند یم يبند طبقه يمحاسبات عدد يها افزار هر سه در دسته نرم

.میبنام )Full Purpose Numerical Software( همه منظوره عددي يافزارها در واقع بهتر است هر سه را نرم. باشد یم

،افزار متلب سازنده نرم ،)Mathworks(ورکس شرکت مث. باشد می!) !(قیمت افزار تجاري بوده و بسیار گران متلب یک نرم

به) تواند ینم ای( دیپس قاعدتاً نبا. باشد یم کایکشور آمر يها استیمقررات و س ن،یبوده و تابع قوان ییکایشرکت آمر کی

ما از یمسدود کرده است و جامعه علم رانیا IP يخود را برا تیشرکت سا نیا لیدل نیبه هم. دهد سیسرو یرانیکاربران ا

خود را نیآنال يها سیو سرو یبانیروز پشت که روزبه میرا دار لبیطرف مقابل سا در .باشد یمحروم م تیسا نیا رینظ یب عمناب

.قرار نداده است يکشور چیه يرا برا یتیمحدود چیتوسعه داده و ه ایکاربرانش در سراسر دن یتمام يبرا

.پردازیم می) GNU Octave(اُکتاو گنویعنی سایلب و باز براي متلب هاي آزاد و متن ي اجمالی جایگزین در ادامه به مقایسه

آزاد و نیگزیو تنها جا. آورده استفراهم Xcos را با کمک ابزار دهیچیپ يها ستمیس يساز هیو شب يساز امکان مدل لبیسا

.باشد یمتلب م نکیمولیس يباز برا متن

الهام يبرا یمتلب منبع": دیگو یم لبیکه سا یبا متلب تمرکز دارد در حال شتریو مطابقت هرچه ب ياُکتاو بر سازگار گنو

".دهند یانجام م یخوب يها زیکه آنها چ یگرفتن است البته تا زمان

آزاد نبوده یمدت زمان يبرا لبیکه سا آن لیبه دل دی، شا)شتریب يها تولباکس(است يبزرگتر ستمیاکوس ياُکتاو دارا گنو

.است

به کار شیاهداف خو يرا تمام وقت برا یمهندسان لبیکه سا یدر حال. خود ندارد ي را در عقبه کپارچهی ياُکتاو ساختار گنو

. community driven vs integrated team driven: یعنی ).نهیالبته با صرف هز(گرفته است

1میالدي با توجه به نظرات 2006را را در سال نویسنده آن. باشد می» مقابل متلب در لبیسا «در نسخه انگلیسی این آموزش، عنوان این قسمت

گنو ، سایلب افزار ي سه نرم مترجم این قسمت را به مقایسه. نیستلذا آنچه که بیان شده بود لزوماً درست . آوري کرده است کاربران در اینترنت جمع

.اختصاص داده است متلبو اُکتاو

Page 31: A Short Introduction to Scilab Persian Translation

31

www.Scilab.ir

1و متون پیشنهادي جعامر .9

1. Scilab Help File (its own documentation).

http://help.scilab.org/

2. Scilab for Dummies.

http://www-irma.u-strasbg.fr/%7Esonnen/SCILAB_HELP/scilab_for_dummies.htm

3. Matlab Primer.

http://math.ucsd.edu/%7Edriver/21d-s99/matlab-primer.html

4. A Pratical Introduction to Matlab.

http://www.math.mtu.edu/%7Emsgocken/intro/intro.html

5. Introduction to Scilab, Scilab Group (2001).

http://www.snv.jussieu.fr/~wensgen/Doc/scilab-2.6/Intro-html/index.html

6. Introduction to Scilab, Michaël Baudin (Sep 2011).

http://forge.scilab.org/index.php/p/docintrotoscilab/

7. Scilab Official Wiki.

http://wiki.scilab.org/

8. Equalis - Scilab Online Support.

http://www.equalis.com/

9. Scilab Google Groups.

http://groups.google.com/forum/?fromgroups#!forum/comp.soft-sys.math.scilab

1ها را آن ي مطالعهباشد که مترجم اي می باقی موارد مراجع و متون پیشنهادي. اصلی نویسنده براي نوشتن این آموزش بوده استمراجع 4تا1 موارد

.داند مفید می

Page 32: A Short Introduction to Scilab Persian Translation

32

)Scilab( سایلباي کوتاه بر هممقد

پیوست

1لینوکس/در گنو نصب سایلب

ترین راه استفاده از ، بهینه)فدورا، اوبونتو، دبیان و غیره: شامل(لینوکس /هاي مختلف گنو افزار سایلب در توزیع براي نصب نرم

البته کسانی که به اینترنت سریع دسترسی ندارند، امکان نصب برنامه از طریق دانلود کردن . مخازن توزیع مورد استفاده است

.افزار وجود دارد گاه سایلب و نصب نرم برنامه از وبسورس

مخازن قینصب از طر

.مخازن وجود دارد قیها از طر امکان نصب آن ان،یدر مخازن فدورا، اوبونتو و دب لبیتوجه به موجود بودن سا با

انیدر اوبونتو و دب نصب

وارد نموده و سپس نالیرا در ترم ریکه دستور ز یستیبا ان،یدب ایآن در اوبونتو و يافزار به همراه راهنما نرم نینصب ا يبرا

.دییعبور حساب خود را وارد نما ي کلمه

در فدورا نصب

ي وارد نموده و سپس کلمه نالیرا در ترم ریکه ابتدا دستور ز یستیبا آن در فدورا، يافزار به همراه راهنما نرم نینصب ا يبرا

.دییخود را وارد نما ي شهیعبور حساب ر

.دییوارد نما نالیرا در ترم ریسپس دستور ز و

لبیگاه سا دانلود کردن سورس از وب قیاز طر نصب

يها عیتوز یتمام يندارند و مراحل آن برا یدسترس عیسر نترنتیاست که به ا یکسان يروش برا نیروش بهتر نیا

.است کسانی نوکسیل/گنو

دانلود Linuxخود تحت عنوان عامل ستمیرا متناسب با س یتیب 64 ای 32 لبیرفته و سا ریگاه ز ابتدا به وب کار نیا يبرا

. دیینما

http://www.scilab.org/products/scilab/download

که به صورت میینما یمتناسب را دانلود م ي نسخه نیبنابرا. است یتیب 64 عیتوز کیما عامل ستمیکه س میکن یفرض م حال

:است نیبه ا هیشب يزیاسم پرونده مورد نظر چ. رندیگ یقرار م Downloads ي دانلود شده در پوشه يها پرونده فرض شیپ

scilab-5.4.0.bin.linux-x86_64.tar.gz

. این قسمت توسط آقاي سلمان محمدي نوشته شده است 1

sudo apt-get install scilab scilab-doc

su

yum install scilab scilab-doc

Page 33: A Short Introduction to Scilab Persian Translation

33

www.Scilab.ir

مرحله ممکن است که تا نیا: توجه( میینما یدر آن اجرا م بیرا به ترت ریز يو سپس دستورها میینما یرا باز م نالیترم حال

).انجامدیحدود سه ساعت به طول ب

.مییوارد نما نالیرا در ترم ریز يکه دستورها یستیبا لبیاجرا کردن سا يهربار برا حال

cd Downloads

tar xzvf scilab-5.4.0.bin.linux-x86_64.tar.gz

cd Downloads/scilab-5.4.0 ./bin/scilab

Page 34: A Short Introduction to Scilab Persian Translation

34

)Scilab( سایلباي کوتاه بر هممقد

2 پیوست

هاي سایلب ابزار راهنماي نصب جعبه

. ي آن بپردازند عهاي طراحی شده است تا کاربران آن بتوانند با نوشتن توابع جدید به گسترش و توس سایلب به گونه

ایجاد یک ماژول جدید با کمک توابع از پیش. گذاریم ها می نامی است که بر این افزونه» ماژول خارجی«و یا » ابزار جعبه«

سایلب و همچنین ایجاد صفحات راهنما براي این ماژول جدید کار بسیار آسانی بوده و یکی از دالیل موفقیت ي تعریف شده

.ي ساخت یک ماژول جدید به ویکی رسمی سایلب مراجعه کنید براي آشنایی با نحوه .ستسایلب نیز همین ا

هایی که ماژول. توان به صورت مستقیم و در حالت کد منبع استفاده کرد هاي سایلب را نمی از طرفی، بسیاري از ماژول

توانند در سایلب شده می هاي باینري ایجاد اند ابتدا باید کامپایل شده و سپس فایل نویسی شده کد Fortarnو یا Cبراساس

هاي خاص خودش را داشته و حتی غیرممکن خواهد بود اگر کامپایلر مناسب بروي کردن دردسر ي کامپایل مرحله. لُود شوند

د توانی با کمک این ابزار شما می. ابزاریست که این گونه مسائل را براي ما حل کرده است ATOMS. سیستم شما نصب نباشد

Packagingهمانند . کنید دانلود، نصب و لُود) تان پلتفرم(عامل شده را با توجه به نوع سیستم هاي از پیش کامپایل ماژول

System لینوکس، در /هاي گنو در بسیاري از توزیعATOMS ها نیز وابستگی)dependencies (اي مدیرت به گونه

البته (کند را نصب می» ب«به طور خودکار ماژول » الف«باشد، ماژول » الف« پیش نیاز ماژول» ب«شود که مثال اگر ماژول می

). ATOMS GUIدر

هاي مناسب از وبسایت توانید به صورت دستی و با دانلود بسته می ATOMS GUIبراي نصب یک ماژول عالوه بر

ATOMS اقدام به نصب آن نمایید .

http://atoms.scilab.org

:هاي نصب یک ماژول روش

ATOMS GUIاستفاده از ) الف

توجه داشته باشید که . کلیک کنید ي کنسول بروي آیکون افزار سایلب در پنجره براي این منظور پس از باز کردن نرم

ران ویندوز با کیلک راست بر روي و کارب suلینوکس با دستور /کابران گنو. حتما سایلب را از طریق مدیر سیستم اجرا کنید

صورت با پیغام خطایی مشابه آنچه در زیر آمده در غیر این. Run as administratorي آیکون برنامه و انتخاب گزینه

.شوید رو می است روبه

Page 35: A Short Introduction to Scilab Persian Translation

35

www.Scilab.ir

Modeling andي این ماژول در دسته. را نصب کنیم sciFLTابزار منطق فازي سایلب با نام خواهیم جعبه فرض کنید می

Control Tools ي در پنجره. قرار داردATOMS GUI از ستون سمت چپ این دسته را انتخاب کرده و سپس بر روي

Fuzzy Logic Toolbox ابزار براي شما ي این جعبه باره در ستون سمت راست توضیحات مختصري در. کلیک کنید

. کلیک کنید installي فیست بروي دکمهابزار فقط کا براي نصب این جعبه. شود نمایش داده می

نصب یک ماژول به صورت دستی) ب

. دانلود کنید ATOMSسایت فایل باینري مناسب را از وب ن ات عامل ابتدا با توجه به نوع سیستم

http://atoms.scilab.org/toolboxes/sciFLT

:اکسترکت کنید انتقال داده و در آنجا دیرکتوري زیربه اید یلی را که دانلود کردهفا

<Scilab Installation Root>\contrib

دیرکتوري . )sciFLT_0.4.2.1در اینجا مثال (ي موردنظر دارید بعد از اکسترکت کرد شما یک دیرکتوري جدید با نام افزونه

براي لُود کردن یک ماژول باید اسکریپت . باشد هاي مختلفی می نیز فایل دیرکتوري و-هر ماژول شامل چند زیر

loader.sce نظر تغییر دهید براي این منظور دیرکتوري جاري سایلب را به دیرکتوري ماژول مورد. را اجرا کنید .

براي . را نشان می دهدافزار سایلب مسیر نصب نرم SCIدستور . گرداند آدرس دیرکتوري جاري سایلب را برمی pwdدستور

:ي کنسول تایپ کنید نظر در پنجره رفتن به دیرکتوري نصب ماژول مورد

cd ('SCI'+filesep()+'contrib'+filesep()+'sciFLT_0.4.2.1')

Page 36: A Short Introduction to Scilab Persian Translation

36

)Scilab( سایلباي کوتاه بر هممقد

. توانیم از توابع آن استفاده کنیم ابزار منطق فازي سایلب را اجرا کرده و می جعبه execدر ادامه با دستور

:ابزار منطق فازي سایلب تایپ کنید براي دسترسی به راهنماي جعبه

هایی فقط ماژول Toolboxesتوانید از منوي ها را به صورت دستی نصب کنید زیرا در این حالت می کنم ماژول پیشنهاد می

با هربار اجراي سایلب ابتدا ATOMS GUIاما در صورت نصب اتوماتیک با کمک . کنیدلُود کرده و استفاده نیاز دارید را که

.توانید از سایلب استفاده کنید سپس می ،ها لُود شوند باید منتظر بمانید تا تمامی ماژول

exec ('loader.sce')

help sciFLT

Page 37: A Short Introduction to Scilab Persian Translation

37

www.Scilab.ir

تاریخچه سند

:)91آبان 8( 1٫0نسخه

. اولین نسخهانتشار ●

: )91آذر 27( 1٫1نسخه

؛لینوکس/و آموزش جامع نصب سایلب در گنو »ستپیو«افزودن بخش ●

. اصالحات ناچیز ●

: )92 تشهبیدرا 30( 1٫2نسخه

.بلیاس ياه سکابلوتنصب و آموزش »2 ستپیو« ندش هفاضا ●

.با سپاس از توجه شما

سازي سایلب پروژه بومی

Www.Scilab.ir