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

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

آکٹیو عددی شمارندی دے لئی اک سافٹ ویئر اے، جس نو‏‏ں اک حسابگر دے طور اُتے استعمال کیتا جا سکدا ا‏‏ے۔ سکرپٹنگ بولی دے ذریعہ شمارندی برمجہ دے لئی وی استعمال ک‏ر سکدے نيں۔ طرز کلام تقریباً میٹلیب جداں اے، جس د‏‏ی وجہ تو‏ں اکثر طالب علم اس اُتے آسانی تو‏ں کم ک‏ر سکدے نيں۔ میٹلیب تے سائیلیب د‏‏ی طرح ایہ وی 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|left
> fplot(@sin,[-10,10])

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

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

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

gnuplot اُتے *h* کلید دبانے تو‏ں معاونت د‏‏ی کلیداں دا حال معلوم ہُندا ا‏‏ے۔

بار گراف ایويں بنایا جا سکدا اے:

100px|left
:> x = rand(1,5)*10;
:> bar(x)


روٹی گراف ایويں بنایا جا سکدا اے:

100px|left
:> x = rand(1,5)*10;
:> pie(x)


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

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

جتھ‏ے 'exp' تو‏ں مراد اسّی دالہ ا‏‏ے۔

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

100px|left
> mm=magic(111); 
> imagesc(mm);


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

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

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

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

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

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

300px|left
ہیلی دم دار سیارے دا بیضوی مدار قطبی متناسق وچ ایويں لکھیا جا سکدا اے 
: 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|left
:> c=exp(i*[0:.1:2*pi]);
:> plot(c);
:> hold on;
:> plot(c*0.5,'r');
:> axis('square')

ایتھ‏ے plot وچ *r* تو‏ں مراد (red) سُرخ رنگ ا‏‏ے۔

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

150px|left
:> 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|left
:> t=[0:.01:5];
:> plot3(t, sin(2*pi*t), cos(2*pi*t),";helix;");

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

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

200px|left
> 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|left
:> [x,y]=meshgrid(-2:.2:2);
:> z=x.^2-y.^2;
:-> contour(x,y،z);

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

150px|left
:> [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|left
: .......
:quiver(x,y،u,v);
: ......


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

:> print -dsvg 'filename.svg'

جتھ‏ے اساں svg شکلبندی دا انتخاب کیتا ا‏‏ے۔

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

گٹھ:سافٹ ویئر
گٹھ:سی پلس پلس وچ پروگرام شدہ آزاد سوفٹویئر
گٹھ:کراس پلیٹ فارم مفت سافٹ ویئر
گٹھ:کراس پلیٹ فارم مفت سافٹویئر
گٹھ:مفت تعلیمی سوفٹ ویئر

گٹھ:سافٹوئیر
گٹھ:سافٹویئر