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

(GNU octave سے رجوع مکرر)

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

GNU Octave
آکٹیو
فائل:Octave Sombrero.jpg
تعملیاتی نظام لینکس، م‌س ونڈوز، یونکس
حبالی موقع www.octave.org
اجازہ جی این یو عمومی العوام اجازہ
گنو آکٹیو

آموختار

ترمیم

دالۂ آکٹیو

ترمیم

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

تفاعل کا گراف

ترمیم

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

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

فائل:Octave example sine wave plot.svg

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

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

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

فائل:Octave example bar graph.svg
> x = rand(1,5)*10;
> bar(x)

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

فائل:Octave example pie chart.svg
> x = rand(1,5)*10;
> pie(x)

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

فائل:Octave example stem exp function.svg
> x = [0:.5:10];
> stem(x, exp(-0.25*x));

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

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

فائل:Octave example magic matrix 111.png

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

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

فائل:Octave example scatter plot.svg
> x=[1:100];
> y=x+randn(1,100)*10;
> scatter(x,y،[],abs(y-x));

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

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

فائل:Octave example polar plot.svg
> t=[0:.1:pi];
> r=exp(-(0.5+i)*t);
> polar(t, abs(r));

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

فائل:Octave example comet halley orbit.svg

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

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

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

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

فائل:Octave example circle plot.svg
> c=exp(i*[0:.1:2*pi]);
> plot(c);
> hold on;
> plot(c*0.5,'r');
> axis('square')

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

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

فائل:Octave example plot complex data.svg
> 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 ;

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

فائل:Octave example plot3 helix.svg
> t=[0:.01:5];
> plot3(t, sin(2*pi*t), cos(2*pi*t),";helix;");

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

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

فائل:Octave example mesh plot.svg

> 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 کی قدر یکساں ہو۔

فائل:Octave example contour plot.svg
> [x,y]=meshgrid(-2:.2:2);
> z=x.^2-y.^2;
-> contour(x,y،z);

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

فائل:Octave example gradient quiver plot.svg
> [dx,dy]=gradient(z,.2,.2);
> hold on;
> quiver(x,y،dx,dy);

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

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

فائل:Octave example antiderivative field.svg
.......
quiver(x,y،u,v);
......

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

> print -dsvg 'filename.svg'

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

بیرونی روابط

ترمیم

آن لائن کتب

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