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 کے ساتھ پروگرامنگ سیکھنے میں مددگار ہو سکتی ہے۔