تبلیغات
مهندسی مکانیک و هوافضا - مطالب متلب ( MATLAB )
منوی اصلی
مهندسی مکانیک و هوافضا
www.Aeros.ir
  • حسین اتحادی سه شنبه 15 تیر 1395 02:56 ق.ظ نظرات ()

    کدهای متلب :


    clear all
    close all
    clc

    x = [0 pi/4 3*pi/8 3*pi/4 pi]; y = sin(x);
    xi = linspace(0,pi,40)';
    yn = interp1(x,y,xi,'nearest');
    yl = interp1(x,y,xi,'linear');
    ys = interp1(x,y,xi,'spline');
    yp = interp1(x,y,xi,'pchip');
    xx = linspace(0,pi,50);
    plot(xi,yn,'*', xi,yl,'+', xi,ys,'v', xi,yp,'o')
    legend('nearest','linear','spline','pchip')
    hold on
    plot(xx,sin(xx),'-',x,y,'.k','MarkerSize',30)
    set(gca,'XTick',x)set(gca,'XTickLabel','0|pi/4l3pi/8|3pi/4|pi')
    set(gca,'XGrid','on')
    axis([-0.25 3.5 -0.1 1.1])
    hold off

    نتیجه :

    مثال شماره 17

    منبع کدها :

    کتاب MATLAB Guide - D.J. Higham - second edition - صفحه 163 از فایل pdf کتاب

    آخرین ویرایش: سه شنبه 15 تیر 1395 02:58 ق.ظ
    ارسال دیدگاه
  • حسین اتحادی جمعه 11 تیر 1395 10:04 ب.ظ نظرات ()
    بعید میدونم تا بحال مفهوم سری فوریه و فضای فرکانسی رو به این زیبایی درک کرده باشید . پیشنهاد میکنم مطلب زیر رو از دست ندید .

    وقتی بچه بودیم، از کنار هم گذاشتن تکه های کوچک، شکل های مختلف می ساختیم. اگر زرنگ بودیم، وقتی  به مستطیل نیاز لگو سری فوریداشتیم و لگو مستطیل را نداشتیم. مثل شکل زیر با دو مثلث قائم الزاویه یک مربع و با دو تا مربع یک مستطیل می ساختیم. می توانستیم لوزی یا ذوزنقه هم با مثلث بسازیم. خلاصه مثلث، پایه ی تمام شکل های ما بود.
    اگر یک شکل را با مثلث نمی توانستیم، بسازیم نگاه می کردیم، که پایه لازم برای ساختن آن شکل چیست. خلاصه شکل های مورد نظر خود را از کنار هم گذاشتن قطعات پایه می ساختیم.

    تا اینکه رفتیم راهنمایی و دبیرستان، توی دبیرستان بردار یاد گرفتیم. دوباره به ما گفتند، همه بردارهای روی صفحه را می توان با کمک دو بردار پایه ساخت. ( بردار های فضائی را با سه بردار پایه و بردار های n بعدی را با n  بردار پایه می توان ساخت.) مثل شکل زیر که ساخت بردارهای دو بعدی را به کمک بردارهای پایه نشان می دهد. قبول دارید که با هزاران بردار قرمز به تنهایی نمی توان بردار آبی را ساخت. چون وقتی با چند بردار قرمز به جلو رفتیم، باید راهمان را کج کنیم و عمود بر مسیر قرمز برویم. یعنی از یک بردار عمود بر بردار قرمز استفاده کنیم. بردارهای پایه ما باید عمود برهم ( متعامد ) باشند.
    اما نمی دانم چرا بعضی از ما فکر نمی کردیم لگو بازی می کنیم، یادگرفتنش برای ما سخت شده بود. در حالی که این بار برای مان 
    بردارفایده داشت. ما برای جمع، تفریق و یا ضرب دو بردار کج و بی قواره، کافی بود با دو بردار کوچولوی قشنگ کار کنیم و فقط  چند عدد را با هم جمع یا در هم ضرب کنیم، که آن را هم کلاس سوم دبستان یاد گرفته بودیم.
    بله حق با شماست، ما فایده جمع ، تفرق و ضرب دو بردار را نمی دانستیم. یا هم فکر نکرده و یا دوست نداشتیم بدانیم چه کاربردهایی دارد. باور کنید از صنعت اتومبیل، هواپیما، کشتی، ساختمان، نجوم و ماهواره گرفته تا بازکردن یک پیچ و زدن یک مشت توی یک دعوا  کاربرد دارد.
    رفتیم دانشگاه و یک روز سر کلاس ریاضی مهندسی استاد درس بی مقدمه فرمول های زیر را روی تخته نوشت. گاهی هم نیم نگاهی به کاغذهای دستش می کرد، انگار او هم در طول عمرش جز نوشتن روی تخته، این فرمول ها به کارش نیامده بود. خیالمان راحت شد که دوای یادگرفتن این فرمول ها یا تقلب است و یا با هر جون کندنی حفظ برای دو ساعت جلسه امتحان.

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

    آخرین ویرایش: جمعه 11 تیر 1395 10:08 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی جمعه 11 تیر 1395 04:54 ب.ظ نظرات ()

    دستور pcolor در متلب، برای ترسیم مقادیر یک ماتریس، به صورت شبه رنگی (شطرنجی)، به کار می رود، به این صورت که عناصر ماتریس، به صورت شطرنجی، نمایش داده می شوند و متناسب با مقدار هر عنصر، درون خانه متناظر با آن عنصر، با یک رنگ پر می شود. به مثال زیر توجه کنید :

    مثال

    clear all
    close all
    clc
     
    x=-10:0.5:10;
    y=-10:0.5:10;
    L=length(x);
    z=zeros(L,L);
    for nn=1:L
        for mm=1:L
            z(nn,mm)= -sqrt(x(nn)^2+y(mm)^2);
        end
    end
     
    pcolor(x,y,z)
    xlabel('x')
    ylabel('y')

    دستور length ، برای تعیین طول یک بردار به کار می رود. از دو حلقه for ، برای ساخت ماتریس z بر حسب x و y های مختلف، استفاده کرده ایم.

    نتیجه :

    رسم مقادیر یک ماتریس دو بعدی به صورت شبه رنگی (شطرنجی) با دستور pcolor در متلب
    منبع : کلیدستان
    آخرین ویرایش: جمعه 11 تیر 1395 04:55 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی جمعه 11 تیر 1395 02:27 ب.ظ نظرات ()

    دستور drawnow برای بهنگام نمودن پنجره مورد استفاده قرار می گیرد. بطور كلی در هنگاممتحرك سازیبعد از هر مرحله رسم باید cpu را آزاد كرد . 

    در واقع این دستور مشابه دستور pause میباشد . با این تفاوت که دستور pause فاصله ی دو پلات را در بازه ی زمانی دلخواه ما تنظیم میکند ولی دستور drawnow در سریع ترین زمان ممکن ( با توجه به قدرت CPU ) این کار را انجام میدهد.

    کدهای متلب :


    clear all
    close all
    clc

    x = 0:(pi/48):pi;
    ropeheight = sin(x);
    line_handle = plot(x,ropeheight);
    axis([0 pi -1.1 1.1]);
    grid on;
    set(line_handle,'LineWidth',3,'EraseMode','background');
    for phi = 0:pi/64:10*pi
        set(line_handle,'ydata',cos(phi)*ropeheight);
        drawnow;
    end

    نتیجه :

    نتیجه به صورت انیمیشن می باشد. آخرین تصویر انیمیشن :

    مثال شماره 14
    آخرین ویرایش: جمعه 11 تیر 1395 02:33 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی دوشنبه 7 تیر 1395 12:54 ب.ظ نظرات ()
    1-1-عملیات ریاضی ساده
    مثال: محاسبه یک عبارت:
        راه اول: 
    >> 4*25 + 6*22 + 2*99 
        ans=
                430

    1-2-عملیات ریاضی ساده
    مثال: محاسبه یک عبارت:
        راه دوم:
     >>a=25;
     >>b=22; c=99; 
     >>d=4*a+6*b+2*c
         d=
            430
     >>
     به ادامه مطلب مراجعه کنید 
    آخرین ویرایش: جمعه 11 تیر 1395 02:34 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی چهارشنبه 2 تیر 1395 02:49 ب.ظ نظرات ()

    فرض کنید یک تعداد دستور داریم و می خواهیم در صورتی که در اجرای آنها، خطایی رخ داد، به جای توقف برنامه و نمایش پیام خطا، یک سری دستور دیگر اجرا شود. برای این منظور، می توانیم از دستورات try و catch در متلب استفاده کنیم. استفاده از این دو دستور، به این صورت می باشد که بعد از دستور try ، دستورات اولیه ای را می نویسیم که هدف اصلی ما، اجرای آنها می باشد. سپس دستور catch را نوشته و پس از آن، دستوراتی را می نویسیم که قصد داریم در صورت بروز خطا برای دستورات اولیه، این دستورات اجرا شوند (دستورات پس از catch ، در صورتی اجرا می شوند که در اجرای دستورات اولیه، خطایی پیش بیاید).

    به مثال زیر توجه کنید :

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

    آخرین ویرایش: چهارشنبه 2 تیر 1395 02:53 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی پنجشنبه 30 اردیبهشت 1395 03:32 ب.ظ نظرات ()

    همانطور که می دانید مهمترین ویژگی در ادای هر حرف فرکانس های تشکیل دهنده آن حرف می باشد. به عنوان مثال سه فرکانس اصلی حرف " آ " فرکانس های 750 ، 1150 و 2400 هرتر بوده و همین فرکانس های برای حرف " او " 400 ، 1150 و 2300 هرتز می باشند. بنابراین آنچه باعث تفکیک دو حرف " آ " و " او " از همدیگر می شود، فرکانس های تشکیل دهنده آن می باشد. از اینرو در کاربردهای پردازش گفتار پیدا کردن فرکانس های تشکیل دهنده یک سیگنال گفتاری از اهمیت بسیار زیادی برخوردار می باشد.

    همانطور که می دانید سیگنال گفتار به شکل یک سیگنال زمانی در اختیار ما قرار دارد و تشخیص فرکانس های تشکیل دهنده یک سیگنال در حوزه زمانی غیرممکن است. به عنوان مثال شکل زیر را که نشان دهنده سیگنال گفتار زمانی حرف " آ " می باشد در نظر بگیرید. بخشی از این سیگنال به شکل زوم شده در شکل نشان داده شده است.

    از این شکل پیداست که پیدا کردن فرکانس های تشکیل دهنده این سیگنال از روی سیگنال زمانی غیررممکن می باشد. از اینرو نیاز به ابزار دیگری داریم که بتواند این کار را برای ما انجام دهد. آقای فوریه نشان دادند که هر تابع متناوب را می توان به شکل ترکیبی از موج های سینوسی ( یا کوسینوسی ) نشان داد که این مطلب را با نام سری های فوریه می شناسیم. از مقاله مربوطه به موج سینوسی به یاد دارید که هر موج سینوسی می تواند به شکل یک صوت در خروجی بلندگو به شنیده شود. در این بین فرکانس موج سینوسی نیز مستقیما زیر و بم بودن صوت تولید شده را تعیین می کند.

     

    ادامه ی مطلب با ذکر یک مثال 

    آخرین ویرایش: پنجشنبه 30 اردیبهشت 1395 03:37 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی پنجشنبه 30 اردیبهشت 1395 01:01 ب.ظ نظرات ()

    یک قضیه ریاضی می گوید که تقریبا همه توابع را می توان به عنوان مجموعه ای از دامنه های سینوسی و فرکانس های مختلف نشان داد. تبدیلات فوریه یک تکنیکی در ریاضیات است، که برای پیدا کردن دامنه ها و فرکانس های سینوسی آن می باشد. گسسته سازی تبدیلات فوریه –Discrete Fourier Transform  - (DFT) یک الگوریتم که محاسبات برای داده های عددی می باشد. تبدیل فوریه سریع یک  اجرا و پیاده سازی موثر و کارآمدی است. توبع زیر در متلب تبدیلات فوریه و عملیات مرتبط را انجام می دهد:

    تبدیل فوریه سریع یک بعدی

    fft

    تبدیل فوریه سریع دو بعدی

    fft2

    تبدیل فوریه سریع چند بعدی

    fftn

    انتقال کندی (عقب افتادگی) صفر به مرکز تبدیل

    fftshift

    معکوس تبدیل فوریه سریع یک بعدی

    ifft

    معکوس تبدیل فوریه سریع دو بعدی

    ifft2

    معکوس تبدیل فوریه سریع چند بعدی

    ifftn

    قدر مطلق (اندازه اعداد مختلط)

    abs

    زاویه

    angle

    مرتب کردن اعداد مختلط بر اساس جفت های مزدوج مختلط

    cplxpair

    توان دو به بعد

    nextpow2

    زاویه فاز صحیح

    unwarp

    ادامه مطلب ...

    آخرین ویرایش: پنجشنبه 30 اردیبهشت 1395 01:03 ب.ظ
    ارسال دیدگاه
  • حسین اتحادی چهارشنبه 22 اردیبهشت 1395 11: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 ، ساده ترین راه است. ابتدا با روش سخت تر، این کار را انجام می دهیم :

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

    آخرین ویرایش: جمعه 25 تیر 1395 06:27 ب.ظ
    ارسال دیدگاه
  • گاهی پیش می آید که در متلب، یک یا چند برنامه را اجرا می کنید و حاصل اجرای این برنامه ها، متغیرهایی هستند که در متلب تعریف شده اند و می خواهید که در آینده، از این متغیرها استفاده کنید. اگر پنجره متلب را ببندید، تمامی متغیرهای تعریف شده در آن، پاک می شود، بنابراین راه حل این است که متغیرهای تعریف شده در متلب را به صورت یک فایل، در محلی از درایوهای ویندوز خود save کنید. برای این منظور، روش های مختلفی وجود دارد که در ادامه آنها را شرح خواهیم داد.
    به ادامه مطلب مراجعه کنید ...
    آخرین ویرایش: شنبه 19 دی 1394 02:53 ق.ظ
    ارسال دیدگاه
تعداد صفحات : 4 1 2 3 4