فیلم های آموزشی متلب

سه شنبه ها ساعت ده شب منتظر پست جدید من باشید

فیلم های آموزشی متلب

سه شنبه ها ساعت ده شب منتظر پست جدید من باشید

۱۲ مطلب با کلمه‌ی کلیدی «دانشگاه تهران» ثبت شده است



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



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


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


همانطور که می دانید، دستور


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



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


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

چطور می شود معادلات سمبولیک را به عدد تبدیل کرد و گفتند که در نسخه های قبل از متلب ۷ با دستور numeric ٬ این کار قابل انجام بوده است.

اگر بخواهیم مقدار عددی یک عبارت سبمبولیک را پیدا کنیم از دستور subs استفاده می کنیم

 

syms x

y = int(x^2)

subs(y,x,3)

قالب کلی اسن دستور به این صورت است

 

R = subs(S)

R = subs(S,new)

R = subs(S,old,new)

در مثال بالا از حالت سوم دستور استفاده کردیم.

هر عبارت سمبولیک یک متغیر پیش فرض دارد که این متغیر اولین متغیری است که در خروجی دستور findsym دیده می شود.

syms x y z

f = z+y+x

findsym(f)

subs(f,2)

مثال زیر نحوه استفاده از حالات اول دستور را نشان میدهد.

 

y = dsolve('Dy=y+a')

a = 1000

C1 = 2

subs(y)a

    تبدیل لاپلاس یکی از روشهای حل معادلات دیفرانسیل است که در حل معدلات دیفرانسیل معمولی و جزیی کاربرد فروانی دارد.برای لاپلاس گرفتن از دستور laplace استفاده می شود.

    برای استفاده از این دستور ابتدا باید متغیر مستقل را تعریف کرد:

    syms t

    البته هر متغیر دلخواه دیگری را هم می شود تعریف کرد و تابع برگشتی هم بر حسب s می باشد.

    r = laplace(t)

    برای لاپلاس معکوس گرفتن هم از دستور  ilaplace استفاده می شود.

    ilaplace(r)

    حالا فرض کنید بخواهید از تابع 1 لاپلاس بگیرید و بنویسید

    laplace(1)

    نوشتن این دستور به این شکل اشتباه است و موجب خطا می شود، برای این کار باید 1 را به صورت نماد تعریف کنیم

     

    m=sym(1)

    ilaplace(m)

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

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

    در متلب، برای تخصیص فضای اولیه (Pre-Allocation)، از توابع مختلفی استفاده می شود. ازمیان این توابع، پر کاربردترین آن ها، تابع zeros است. این تابع ابعاد ماتریس مورد نظر را می گیرید، و بخشی از حافظه را به همان اندازه، برای آرایه موزذ نظر تخصیص می دهد. این کار، در زبان C، با تابع malloc انجام می شود. برای آگاهی بیشتر از چگونگی کارکرد این تابع، به راهنمای آن در هلپ متلب، مراجعه کنید.

    دو برنامه زیر را در نظر بگیرید. این برنامه ها برای محاسبه تعداد زیادی از جملات سری فیبوناچی (Fibonacci)، نوشته شده است. در سری فیبوناچی، هر جمله با مجموع دو جمله قبل از خودش برابر است. جمله اول و دوم نیز، طبق قرارداد برابر با صفر و یک در نظر گرفته می شوند.

     

     

     

    برنامه اول:

    clear;
    n=300000;
    x(1)=0;
    x(2)=1;
    for k=3:n
    x(k)=x(k-1)+x(k-2);
    end

    برنامه دوم:

    clear;
    n=300000;
    x=zeros(1,n);     % Pre-Allocation
    x(1)=0;
    x(2)=1;
    for k=3:n
    x(k)=x(k-1)+x(k-2);
    end

    این دو برنامه، فقط در مورد تخصیص اولیه (خط سوم از برنامه دوم)، با هم اختلاف دارند. اما جالب است بدانید که مدت اجرای برنامه اول، بر روی کامپیوتر من، در حدود 4 دقیقه بود. در حالی برنامه دوم، در کمتر از یک ثانیه اجرا می شود. حال فرض کنید که در یک برنامه بزرگ، این مشکلات چقدر می تواند حادتر و شدیدتر باشد.

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

    برنامه از فرمان fill برای ترسیم توپی به رنگ قرمز استفاده می کند و با تنظیم محدوده ی رسم نمودار با کمک فرمان axis صحنه ی نمایش همیشه ثابت می ماند .

    اما مسئله سرعت بالای ترسیم گرافیکی در متلب است که باعث می شود فیلم هنوز شروع نشده به پایان برسد و شما متوجه آنچه روی داده نشوید . برای غلبه بر این مشکل از فرمان pause استفاده شده است که به اندازه ی عددی که در داخل آن مشخص می کنید اجرای برنامه های متلب را متوقف می کند.

     

    استفاده از فرمان pause در مواردی کاربرد دارد که شما می خواهید سرعت اجرای عملیاتی را در متلب کاهش دهید و تغییرات را با دقت بیشتری مورد بررسی قرار دهید.

    متن برنامه :

    clc;

    clf;

     

    % define a x,y

    x=0:.1:2*pi;

    y=sin(x);

     

     

     

    for n=1:length(y)

    %{

    hold on

    plot(x,y)

    %}

     

    % define ball shape

     

     

    fill(x(n)+.1*cos(x),y(n)+.1*sin(x),'r')

    axis([0 2*pi -pi pi])

    % wait for 0.1 miliseconds

    pause(0.1)

    end