info@matlabiran.ir

خانه » کتاب آموزشی » آموزش متلب – بخش 7

آموزش متلب – بخش 7

متلب ایران

متلب ایران

در این مجموعه به آموزش متلب از طریق متن نوشتاری می پردازیم. بدیهی است برای فهم توضیحات ارائه شده، اجرا کردن خط به خط دستورات در متلب می تواند بسیار کمک کننده باشد. لذا از دانشجویان عزیز خواهش می کنیم برای بالا بردن مهارت خود در استفاده از متلب؛ پا به پای این آموزش تمرینات خود را انجام دهند.

[divider]

n!=n*(n-1) *(n-2)*…*2*1              :برنامه فاکتوريل

n=input(‘enter n =’);

fact=1;

for k=1:n

     fact=fact*k;

end

    disp([n fact])

.تمرين : برنامه ای بنويسيد که تعدادی ستاره را بصورت يک مثلث قائم الزاويه رسم  کند

a=input(‘enter a =’);

for s=1:a;

     for c=1:s;

         fprintf(‘*’);

     end

    fprintf(‘\n’);

end

8

همین مثال را با حلقه while باز نویسی می کنیم.

a=input(‘enter a =’);

s=1;

while s<=a

     c=1;

     while c<=s

         fprintf(‘*’)

         c=c+1;

     end

     s=s+1;

     fprintf(‘\n’)

end

8

رسم تابع همراه با مجانب هايش : 

توجه شود که متلب نمی تواند مجانب رسم کند اما برای رسم مجانب راهی پيشنهاد می کنيم و با مثال زير بررسی می کنيم.

9

>> syms x

>> f=(3*x^2+6*x-1)/(x^2+x-3);

>> roots=solve(‘x^2+x-1’)

 roots =

   13^(1/2)/2 – 1/2

   -13^(1/2)/2 – 1/2

>> vpa(roots,3)

  ans =

  1.3

  -2.3

>> ezplot(f)

>> hold on

>> x1=-2.3; x2=1.3;

>> y=-100:0.1:100;

>> plot(x1,y,’r’,x2,y,’r’)

>> hold off

>> plot(x,y,’g’)

10

تمرين: تابعی که مجانب مايل دارد را بررسی کنيد.

Untitled

>> syms x

>> f=(x^2+x-1)/(x+1);

>> ezplot(f)

>> hold on

>> x1=-1;

>> y=-20:.01:20;

>> plot(x1,y,’r’)

>> remain=rem((x^2+x-1),(x+1))

 remain = -1

>> div=((x^2+x-1)-(-1))/(x+1)

 div = (x^2 + x)/(x + 1)

  >> simplify(div)

  ans = x

>> h=ezplot(‘x’);

>> set(h,’Color’,’g’);

11

دستور rem : باقيمانده را محاسبه می کند.

   رسم توابع دو متغيره

مثال: 

>> syms x y

>> f=-6*exp(-3*x^2-y^2)+0.5*x+y

>> ezsurf(f)

12

مثال: 

f(x)=10x²+y²

>> x=-1:.1:1;

>> y=0:.1:4;

>> [x,y]=meshgrid(x,y);

>> f=inline(’10*x.^2+y.^2′,’x’,’y’)

>> surf(x,y,f(x,y))

13

مثال: رسم f(x,y)=x-1+y² بر روی ناحيه مدور x-1)²+(y-3)²=4)

r=linspace(0,2,24);

theta=linspace(0,2*pi,41);

[R,TH]=meshgrid(r,theta);

x=1+R.*cos(TH);

y=3+R.*sin(TH);

z=x-1+y.^2;

surf(x,y,z)

14

نکته: توجه شود که در اين مثال از مختصات قطبی استفاده کرديم.

 

   

نمايش  داده ها به صورت سيال:

>> load wind

>> zmax=max(z(:))

zmax =    16

>> zmin=min(z(:))

zmin =   -0.0020

>> streamslice(x,y,z,u,v,w,[],[],(zmax-zmin)/2)

15

دستور countorslice : اين دستور را نيز بررسی کنيد.

مثال: با برنامه زير می توانيد يک نوع نمايش سيال داده ها را مشاهده کنيد.

Slicing Fluid Flow

>> [x,y,z,v] = flow;

>> xmin = min(x(:));

>> ymin = min(y(:));

>> zmin = min(z(:));

>> xmax = max(x(:));

>> ymax = max(y(:));

>> zmax = max(z(:));

>> hslice = surf(linspace(xmin,xmax,100),…

linspace(ymin,ymax,100),zeros(100));

1

>> rotate(hslice,[-1,0,0],-45)

>> xd = get(hslice,’XData’);

>> yd = get(hslice,’YData’);

>> zd = get(hslice,’ZData’);

2

>> delete(hslice)

3

>> h = slice(x,y,z,v,xd,yd,zd);

>> set(h,’FaceColor’,’interp’,…

             ‘EdgeColor’,’none’,’DiffuseStrength’,.8)

4

>> hold on

>> hx = slice(x,y,z,v,xmax,[],[]);

>> set(hx,’FaceColor’,’interp’,’EdgeColor’,’none’)

>> hy = slice(x,y,z,v,[],ymax,[]);

>> set(hy,’FaceColor’,’interp’,’EdgeColor’,’none’)

>> hz = slice(x,y,z,v,[],[],zmin);

>> set(hz,’FaceColor’,’interp’,’EdgeColor’,’none’)

5

>> daspect([1,1,1])

>> axis tight

>> box on

>> view(-38.5,16)

>> camzoom(1.4)

>> camproj perspective

6

>> lightangle(-45,45)

>> colormap (jet(24))

>> set(gcf,’Renderer’,’zbuffer’)

7

>> colormap (flipud(jet(24)))

8

نمودار رسم ميدان: quiver

فرض کنيد می خواهيم ميدان اطراف يک دو قطبی را رسم کنيم.

z=x*exp(-(x²+y²))

>> [x,y]=meshgrid(-2:.2:2);

>> z=x.*exp(-x.^2-y.^2);

>> [Dx,Dy]=gradient(z,.2,.2);

>> contour(x,y,z)

9

>> quiver(x,y,Dx,Dy)

10

تمرين : برای يک تک قطبی الکتريکی با بار منفی همين کار را تکرار کنيد:

Z=exp(-x^2-y^2)

>> [x,y]=meshgrid(-2:.2:2);

>> z=exp(-x.^2-y.^2);

>> [Dx,Dy]=gradient(z,.2,.2);

>> contour(x,y,z)

11

>> quiver(x,y,Dx,Dy)

12

  :رسم گسسته 

>> y=randn(1,5)

y =    0.5377    1.8339   -2.2588    0.8622    0.3188

>> stem(y)

13رسم  گسسته فوريه:

>> alpha=0.02;

>> beta=0.5;

>> t=0:4:200;

>> y=exp(-alpha*t).*cos(beta*t);

>> plot(t,y)

>> xlabel(‘Time in \musecs’)

>> ylabel(‘magnitude’)

14

>> figure

>> stem(t,y)

15

>> stem(t,y,’–sr’,’fill’)

16

مثال : جمع دو تابع   b و a

>> x=linspace(0,2*pi,60);

>> a=sin(x); b=cos(x);

>> st=stem(x,a+b);

17

>> hold on

>> pt=plot(x,a,’–r’,x,b,’–g’);

>> hold off

18

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد.