جی این یو آکٹیو

آزاد دائرۃ المعارف، ویکیپیڈیا سے
(GNU Octave سے رجوع مکرر)
GNU Octave
آکٹیو
تعملیاتی نظام لینکس، م‌س ونڈوز، یونکس
حبالی موقع www.octave.org
اجازہ جی این یو عمومی العوام اجازہ
گنو آکٹیو

آکٹیو عددی شمارندی کے لیے ایک سافٹ ویئر ہے، جس کو ایک حسابگر کے طور پر استعمال کیا جا سکتا ہے۔ سکرپٹنگ زبان کے ذریعہ شمارندی برمجہ کے لیے بھی استعمال کر سکتے ہیں۔ طرز کلام تقریباً میٹلیب جیسا ہے، جس کی وجہ سے اکثر طالب علم اس پر آسانی سے کام کر سکتے ہیں۔ میٹلیب اور سائیلیب کی طرح یہ بھی LINPACK اور EISPACK جیسی لائبرریوں سے انٹرفیس فراہم کرتا ہے۔ چونکہ جی این یو عمومی العوام اجازہ ہے، اس لیے آزاد مصدر عوام میں آکٹیو خاصا مقبول واقع ہوا ہے۔ لینکس اور یونکس کے اکثر ڈسٹرو اس کے پیکج فراہم کرتے ہیں۔ گرافی کے لیے آکٹیو گنوپلاٹ یا fltk کا استعمال کرتا ہے۔

آموختار[ترمیم]

دالۂ آکٹیو[ترمیم]

آکٹیو میں فنکشن کا مقصد دوسری شمارندی زبانوں کی طرح ہے کہ یہ کچھ ادخال لیتی ہے اور ان کو استعمال کرتے ہوئے کچھ اخراج واپس کرتی ہے۔ یہ فنکشن آکٹیو شمارندگی زبان کی کوئی بھی تعمیراتے استعمال کر سکتی ہے۔ اس فنکشن کو عموماً اسی نام کی مِلف میں محفوظ کیا جاتا ہے۔ مثال کے طور پر درج ذیل فنکشن کسی مستطیل منشور کا سطحی رقبہ (A) نکال کر واپس کرتی ہے۔ اس کے ادخال منشور کی تین رُخوں کی پیمائش a, b, c, ہیں:

function A=surfaceArea(a,b،c)

disp('computing surface area of a rectangular prism')
A=2*(a*b+a*c+b*c);

endfunction

اس فنکشن کو surfaceArea.m نامی فائل میں محفوظ کر دو اور آکٹیو میں یوں بلاؤ:

>S=surfaceArea(3, 4, 5)
computing surface area of a rectangular prism
S = 94

(مستطیل منشور جسی کی لمبائی، چوڑائ اور گہرائ، 3، 4 اور 5 ہے کی تمام سطحوں کا رقبہ 94 ہو گا)۔

سادہ ریاضیاتی فنکشن تعریف کرنے کے آسان تر طریقے موجود ہیں، جو درج ذیل ہیں۔ آکٹیو میں ریاضیاتی فنکشن بطور کلیہ بنانے کا آسان طریقہ یہ ہے

> myFunc=inline("x^2-3*x");
myFunc =
f(x) = x^2-3*x

اس کے بعد آپ یہ فنکشن (function) استعمال کر سکتے ہو

> myFunc(2)
ans = -2

اور myFunc ہتھہ بھی ہے جس کو دوسری آکٹیو فنکشن میں استدلال کے طور پر بھی استعمال کر سکتے ہیں۔

ایک اور طریقہ ریاضیاتی فنکشن تعریف کرنے کا یہ ہے، جسے آکٹیو میں گمنام فنکشن کہتے ہیں۔ مثلاً اگر ریاضیاتی فنکشن

تعریف کرنی ہو، تو

> fa = @(x,y) (x+y).^2 ;

غور کرو کہ @ کے ساتھ پہلے استدلال x, y بیان ہوئے ہیں۔ اب اس فنکشن کے ہتھے fa کو کسی دوسری آکٹیو فنکشن کو روانہ کیا جا سکتا ہے:

> feval(fa, 3, 4)
ans = 49

تفاعل کا گراف[ترمیم]

> fplot(@sin,[-10,10])

جہاں استدلال x کی حدود -10 سے لے کر 10 تک بتائی گئی ہیں۔ یہاں ہم نے ریاضیاتی فنکشن sin کو ہتھے سے آکٹیو فنکشن fplot کو بھیجا ہے۔

دوسرا عددی طریقہ یوں ہو گا کہ آپ پہلے استلال x کو ایک سمتیہ کے طور بنائیں اور اس سمتیہ x کی ہر قدر کے لیے فنکشن y=sin(x) کی قدر معلوم کریں، پھر ان دونوں سمتیہ کا گراف بنا لیں:

> x = [-10:0.1:10];
> y=sin(x);
> plot(x,y);

gnuplot پر h کلید دبانے سے معاونت کی کلیدوں کا حال معلوم ہوتا ہے۔

بار گراف یوں بنایا جا سکتا ہے:

> x = rand(1,5)*10;
> bar(x)

روٹی گراف یوں بنایا جا سکتا ہے:

> x = rand(1,5)*10;
> pie(x)

متفرد فنکشن کا نکشہ یوں بنایا جا سکتا ہے

> x = [0:.5:10];
> stem(x, exp(-0.25*x));

جہاں 'exp' سے مراد اسّی دالہ ہے۔

کسی میٹرکس کو بطور تصویر دیکھنے کے لیے

> mm=magic(111);
> imagesc(mm);

تجرباتی طور پر حاصل ہونے والے دو متغیر x اور y کے درمیان تضایف جاننے کے لیے انتشاری نکشہ یوں بنایا جا سکتا ہے:

> x=[1:100];
> y=x+randn(1,100)*10;
> scatter(x,y،[],abs(y-x));

یہاں randn آکٹیو کا معمول کازبی تصادفی عدد مولّد فنکشن ہے۔

قطبی نکشہ بنانے کے لیے (دیکھو مخلوط عدد)

> t=[0:.1:pi];
> r=exp(-(0.5+i)*t);
> polar(t, abs(r));

یہاں t زاویہ ہے۔ گراف کے متناسق مستطیل ہی ہیں۔ خیال رہے کہ اوپر i سے مراد تخیلاتی عدد اکائی ہے اور اور exp اسی دالہ ہے۔

ہیلی دم دار سیارے کا بیضوی مدار قطبی متناسق میں یوں لکھا جا سکتا ہے

> theta=[0:.01:2*pi] ;
> r=1.069./(1+0.97*sin(theta)) ;
> polar(theta, r);

جہاں زاویہ ہے اور r مبدا سے فاصلہ فلکیاتی اکائی میں۔ سورج مبدا (0,0) پر واقع ہے، جو بیضہ کا ایک مرکز نماء ہے۔

مختلط اعداد مستطیل مسطح میں نقطے ہوتے ہیں، جنہیں آپس میں ملا کر گراف بنایا جا سکتا ہے:

> c=exp(i*[0:.1:2*pi]);
> plot(c);
> hold on;
> plot(c*0.5,'r');
> axis('square')

یہاں plot میں r سے مراد (red) سُرخ رنگ ہے۔

بعض اوقات معطیات کو بطور نقطے (بغیر جوڑے) ہی نکشہ کرنا مفید رہتا ہے،

> x=[-1+i -1-i 1-i 1+i] ;
> r=(randn(20,4)+i*randn(20,4))*.1 ;
> y=ones(20,1)*x+r ;
> plot(y, '*') ;
> grid ;

سہ العباد میں حلز کو نکشہ کرنے کی مثال

> t=[0:.01:5];
> plot3(t, sin(2*pi*t), cos(2*pi*t),";helix;");

کلیدی تختہ کی تیر کلیدوں کو دبانے سے اس نکشہ کو دائیں بائیں اوپر نیچے گھمایا جا سکتا ہے۔

دو متغیر x اور y کی فنکشن z=f(x,y) کا سہ العبادی گراف یوں بنایا جا سکتا ہے:

> tx = ty= linspace(-8,8،41);
> [xx,yy]=meshgrid(tx,ty);
> zz=xx.^2-yy.^2;
> mesh(tx,ty,zz);

اسی کام کے لیے meshc، surf, surfc بھی استعمال ہوتے ہیں۔

قنطور زمین پر ایسی سطحی منحنی کو کہا جاتا ہے جہاں بلندی یکساں ہو۔ دو متغیر x اور y کی فنکشن z=f(x,y)، کا xy سطح پر قنطور xy سطح پر وہ منحنی ہو گا جہاں z کی قدر یکساں ہو۔

> [x,y]=meshgrid(-2:.2:2);
> z=x.^2-y.^2;
-> contour(x,y،z);

اسی فنکشن کے اُوتار چڑھاؤ کو درجہ ڈھلان کی مدد سے معلوم کیا جا سکتا ہے جسے سمتار نکشہ کہتے ہیں

> [dx,dy]=gradient(z,.2,.2);
> hold on;
> quiver(x,y،dx,dy);

تیر کی سمت ڈھلان کی سمت اور تیر کی لمبائی ڈھلان کا درجہ بتاتے ہیں۔

فنکشنات کا مشتق ہے (یہاں C کوئی دائم ہے)، جسے تصویر میں x کی کسی بھی قدر کے لیے تیروں کی مائل f(x) صورت دکھایا گیا ہے۔ تصویر کو f(x) کے مشتق شکن F(x) کا میدان کہتے ہیں۔ سرخ رنگ میں کچھ ممکنہ F(x) دکھائے گئے ہیں۔ (تصویر کا پورااسکرپٹ دیکھنے کے لیے اس پر کلک کرو۔)

.......
quiver(x,y،u,v);
......

تصویر کو بطور مِلف محفوظ کرنے کے لیے

> print -dsvg 'filename.svg'

جہاں ہم نے svg شکلبندی کا انتخاب کیا ہے۔

بیرونی روابط[ترمیم]

آن لائن کتب[ترمیم]

  • Experiments with MATLAB کتاب، جو matlab یا GNU octave کے ساتھ پروگرامنگ سیکھنے میں مددگار ہو سکتی ہے۔