GNU Octave

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


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

دالہ کا مخطط[ترمیم]

Octave example sine wave plot.svg

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

جہاں استدلال 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 سے مراد تخیلاتی عدد اکائی i=\sqrt{-1} ہے، اور \ \hbox{pi}=\pi اور exp اسی دالہ ہے۔


Octave example comet halley orbit.svg

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

 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) پر واقع ہے، جو بیضہ کا ایک مرکز نماء ہے۔

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

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);

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

دالہات F(x)=\frac{x^2}{2}+C کا مشتق f(x)=F^\prime(x)=x ہے (یہاں 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 کے ساتھ برمجہ سیکھنے میں مددگار ہو سکتی ہے۔