حسین اتحادی چهارشنبه 22 اردیبهشت 1395 10:43 ب.ظ نظرات ()

ا استفاده از دستور ndgrid در متلب، می توانیم آرایه هایی را برای توابع چند بعدی بسازیم. توضیحات کامل تر را با یک مثال شرح می دهیم :

مثال

فرض کنید می خواهیم تابع دو بعدی z را به صورت یک ماتریس دو بعدی، بر حسب مقادیر مختلف x و y ، به صورت زیر بسازیم و سپس آن را رسم کنیم : \begin{align} z=\sqrt{x^2+y^2} \end{align}

بازه تعریف شده برای x را به صورت (-5,5) و بازه تعریف شده برای y را به صورت (-4,4) در نظر می گیریم. همچنین، فاصله نمونه های گسسته از این بازه ها را برابر 0.1 قرار می دهیم. برای آنکه سودمندی استفاده از دستور ndgrid را نشان بدهیم، ابتدا روش های دیگر را برای ساخت z به کار می بریم و سپس از دستور ndgrid استفاده می کنیم تا متوجه شوید که استفاده از دستور ndgrid ، ساده ترین راه است. ابتدا با روش سخت تر، این کار را انجام می دهیم :

ادامه مطلب مراجعه کنید


clear all
close all
clc
 
x=-5:0.1:5;
y=-4:1.0:4;
L_x=length(x);
L_y=length(y);
z=zeros(L_x,L_y);
for nn=1:L_x
    for mm=1:L_y
        z(nn,mm)=sqrt(x(nn)^2+y(mm)^2);
    end
end
mesh(z)
xlabel('x')
ylabel('y')
zlabel('z')

دستور length ، برای تعیین طول یک بردار است و دستور zeros ، برای ساخت یک ماتریس با عناصر برابر صفر، به کار می رود. دستور mesh نیز برای رسم یک ماتریس دو بعدی، به صورت سیمی (mesh)، به کار می رود. دستورات xlabel و ylabel و zlabel ، برای تعیین عنوان برای محورهای مختصات می باشند.

نتیجه :

ساخت آرایه ها برای توابع چند بعدی با دستور ndgrid در متلب

این بار ساخت z را با دستور ndgrid انجام می دهیم :


clear all
close all
clc
 
[x,y]=ndgrid(-5:0.1:5,-4:0.1:4)
z=sqrt(x.^2+y.^2);
mesh(z)

دقت شود که علامت نقطه (.) برای آن است که هر عنصر از x و y ، به توان 2 برسد، نه اینکه کل بردار x یا بردار y ، به توان 2 برسد.

نتیجه :

ساخت آرایه ها برای توابع چند بعدی با دستور ndgrid در متلب

مشاهده می کنید که استفاده از دستور ndgrid ، حجم کدها را بسیار کم می کند و مناسبترین روش می باشد.

منبع : کلیدستان http://www.kelidestan.com/