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

آکٹیو عددی شمارندی کے لیے ایک سافٹ ویئر ہے، جس کو ایک حسابگر کے طور پر استعمال کیا جا سکتا ہے۔ سکرپٹنگ زبان کے ذریعہ شمارندی برمجہ کے لیے بھی استعمال کر سکتے ہیں۔ طرز کلام تقریباً میٹلیب جیسا ہے، جس کی وجہ سے اکثر طالب علم اس پر آسانی سے کام کر سکتے ہیں۔ میٹلیب اور سائیلیب کی طرح یہ بھی 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  ہتھہ بھی ہے جس کو دوسری آکٹیو فنکشن میں استدلال کے طور پر بھی استعمال کر سکتے ہیں۔

ایک اور طریقہ ریاضیاتی فنکشن تعریف کرنے کا یہ ہے، جسے آکٹیو میں گمنام فنکشن کہتے ہیں۔ مثلاً اگر ریاضیاتی فنکشن
:f_a(x,y) = (x+y)^2
تعریف کرنی ہو، تو

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

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

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


### تفاعل کا گراف

100px|بائیں
> fplot(@sin,[-10,10])

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

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

100px|بائیں
> x = [-10:0.1:10]; 
> y=sin(x); 
> plot(x,y); 

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

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

100px|بائیں
:> x = rand(1,5)*10;
:> bar(x)


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

100px|بائیں
:> x = rand(1,5)*10;
:> pie(x)


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

100px|بائیں
:> x = [0:.5:10];
:> stem(x, exp(-0.25*x));

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

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

100px|بائیں
> mm=magic(111); 
> imagesc(mm);


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

100px|بائیں
:> x=[1:100];
:> y=x+randn(1,100)*10;
:> scatter(x,y،[],abs(y-x));

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

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

140px|بائیں
:> t=[0:.1:pi];
:> r=exp(-(0.5+i)*t);
:> polar(t, abs(r));

یہاں *t* زاویہ ہے۔ گراف کے متناسق مستطیل ہی ہیں۔ خیال رہے کہ اوپر *i* سے مراد تخیلاتی عدد اکائی i=\sqrt{-1} ہے اور
\ \hbox{pi}=\pi اور *exp* اسی دالہ ہے۔

300px|بائیں
ہیلی دم دار سیارے کا بیضوی مدار قطبی متناسق میں یوں لکھا جا سکتا ہے
: r = \frac{ed}{1+e \sin(\theta)}\,,\,\,\,\,\, e=0.97,\, d \approx 1.102

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

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

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

150px|بائیں
:> c=exp(i*[0:.1:2*pi]);
:> plot(c);
:> hold on;
:> plot(c*0.5,'r');
:> axis('square')

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

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

150px|بائیں
:> 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 ;


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

150px|بائیں
:> t=[0:.01:5];
:> plot3(t, sin(2*pi*t), cos(2*pi*t),";helix;");

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

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

200px|بائیں
> 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* کی قدر یکساں ہو۔

150px|بائیں
:> [x,y]=meshgrid(-2:.2:2);
:> z=x.^2-y.^2;
:-> contour(x,y،z);

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

150px|بائیں
:> [dx,dy]=gradient(z,.2,.2);
:> hold on;
:> quiver(x,y،dx,dy);

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

فنکشنات F(x)=\frac{x^2}{2}+C کا مشتق f(x)=F^\prime(x)=x ہے (یہاں *C* کوئی دائم ہے)، جسے تصویر میں *x* کی کسی بھی قدر کے لیے تیروں کی مائل f(x) صورت دکھایا گیا ہے۔ تصویر کو f(x) کے مشتق شکن F(x) کا میدان کہتے ہیں۔ سرخ رنگ میں کچھ ممکنہ F(x) دکھائے گئے ہیں۔ (تصویر کا پورااسکرپٹ دیکھنے کے لیے اس پر کلک کرو۔)

150px|بائیں
: .......
:quiver(x,y،u,v);
: ......


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

:> print -dsvg 'filename.svg'

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

## بیرونی روابط
* پیکج آکٹیو کے لیے مختلف شعبوں میں اضافی اوزار بکسے
* گنو ڈاٹ آرگ آکٹیو آموختار
### آن لائن کتب
* Experiments with MATLAB کتاب، جو matlab یا GNU octave کے ساتھ پروگرامنگ سیکھنے میں مددگار ہو سکتی ہے۔

زمرہ:سافٹ ویئر
زمرہ:سی پلس پلس میں پروگرام شدہ آزاد سوفٹویئر
زمرہ:کراس پلیٹ فارم مفت سافٹ ویئر
زمرہ:کراس پلیٹ فارم مفت سافٹویئر
زمرہ:مفت تعلیمی سوفٹ ویئر
زمرہ:کامنز زمرہ جس کا ربط ویکی ڈیٹا پر ہے
زمرہ:ویکی ڈیٹا سے مختلف مختصر وضاحت
زمرہ:گنو منصوبہ
زمرہ:یونکس سافٹ ویئر
زمرہ:ونڈوز سافٹ ویئر
زمرہ:1988ء میں متعارف مصنوعات
زمرہ:1988ء کے سافٹ ویئر
زمرہ:لینکس سافٹ ویئر
زمرہ:میک او ایس سافٹ ویئر
زمرہ:اسکرپٹنگ زبانیں