نمایش موارد بر اساس برچسب: matlab

  • معرفي بلاگ simulink
    شنبه, 04 ارديبهشت 1389 10:00

    Seth on Simulink

    Seth Popinchalk

    يكي ديگر از بلاگ هاي سايت mathworks  متعلق به يكي از مهندسان اين شركت به نام  Seth Popinchalk است كه به طور تخصصي بر روي simulink و ابزارهاي مدلسازي matlab كار مي كند. اين وبلاگ هر هفته مطالب جديدي را در اختيار علاقه مندان اين حوزه قرار مي دهد. مطالب ين وبلاگ طبقه بندي دقيقي دارد كه مي تواند راهنماي خوبي براي كاربران باشد.

    • Variables You Depend On
    • Orion GN&C: MATLAB and Simulink Standards
    • Hybrid Electric Vehicle Control and Simulation


     

  • معرفی سایت - بلاگ image-processing
    سه شنبه, 04 اسفند 1388 16:36

    این بلاگ یکی از پربازدیدترین بخش های سایت اصلی mathworks است که در آن Steve Eddins مدیر تیم توسعه بخش پردازش تصویر matlab به اصول پردازش تصویر، پیاده سازی الگوریتم ها و بخش های دیگری از نرم افزار matlab پرداخته است و می تواند راهنمای خوبی برای کاربران باشد.

    Steve on Image Processing

  • الگوریتم کلونی مورچه ها Ant Colony Optimization
    یکشنبه, 30 آبان 1389 16:45

    انسان هميشه براي الهام گرفتن به جهان زنده پيرامون خود نگريسته است. يکي از بهترين طرح هاي شناخته شده، طرح پرواز انسان است که ابتدا لئورناردو داوينچي(1519-1452) طرحي از يک ماشين پرنده را بر اساس ساختمان بدن خفاش رسم نمود. چهار صد سال بعد کلمان آدر ماشين پرنده اي ساخت که داراي موتور بود و بجاي بال از ملخ استفاده مي کرد.


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


    الگوريتم کلوني مورچه براي اولين بار توسط دوريگو (Dorigo) و همکارانش به عنوان يک راه حل چند عامله (Multi Agent) براي مسائل مشکل بهينه سازي مثل فروشنده دوره گرد (TSP :Traveling Sales Person) ارائه شد.

     

  • حل معادله پواسون -روش تفاضل متناهی
    سه شنبه, 24 فروردين 1389 14:25

    حل معادله پواسون -روش تفاضل متناهی ( Finite Differencing Method )

     

    معادله پواسون یک معادله دیفرانسیل جزیی بیضوی (Elliptic PDE) است و در دو بعد بشکل زیر نوشته می شود،

    (1)

     

    با استفاده از تقریب مشتق مرکزی، مشتقات مرتبه دو بصورت زیر در می آیند،

     

    (2)

    (3)

    برای سادگی محاسبات فرض می کنیم h=∆x=Δy در اینصورت با جایگذاری رابطه های (2) و (3) در معادله (1) خواهیم داشت،

    (4)

    این رابطه در هر نقطه (i,j)Φ واقع شده در مشبندی برقرار است. در حالتیکه g(x,y)=0 (یعنی حالتیکه چشمه بار وجود ندارد) معادله پواسون به معادله لاپلاس تقلیل می یابد در اینصورت رابطه (4) برای معادله لاپلاس بشکل زیر بازنویسی می شود،

     

  • روش رانگ کوتا Runge Kutta Method
    پنج شنبه, 27 اسفند 1388 04:12

    روش رانگ کوتا Rung-Kutta Method

    در روش اویلر (خطا از مرتبه 2 O(h2)) با افزایش طول گام و یا افزایش بازه مورد بررسی خطای قابل ملاحظه ای ایجاد می شود. در اینگونه موارد روش رانگ کوتای مرتبه4 به علت مرتبه خطای بالاتر (خطا از مرتبه 4 O(h4)) ) جایگزین بسیار مناسبی برا دستیابی به همگرایی بسیار بالاتر می باشد.

    در روش رانگ کوتای مرتبه 4 الگوریتم تکرار بصورت زیر در می­آید :

    http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods

    http://math.fullerton.edu/mathews/n2003/RungeKuttaMod.html

    http://mathworld.wolfram.com/Runge-KuttaMethod.html

    تابع f(t,y) همانند روش اویلر با توجه به شکل معادله دیفرانسیل بدست می آید بگونه ای که : f(t,y)=dy/dt

    بعنوان مثال معادله دیفرانسیل حرکت آونگ ساده را در نظر بگیرید. این یک معادله درجه دو است که در ابتدا باید آنرا به دو معادله درجه یک تبدیل نماییم ،

    از آنجاییکه در روش رانگ کوتا توابع f و g چندین بار تکرار می شوند بهتر است در برنامه با استفاده از @  این دو تابع را ایجاد نماییم.

    f=@(alpha) alpha ;

    g=@(teta) -w^2*teta ;

    با این توضیحات برنامه pendelum1  معادله آونگ ساده را با استفاده از روش رانگ کوتا حل می کند،

    % simple pendelum - rung-kutta method

    % saeed babanezhad

    clc

    clear all

    %-----------------

    g=9.8;

    L=1;

    N=200;

    w=sqrt(g/L);

    t=linspace(0,5,N); % time between 0-5s

    h=t(2)-t(1);   % time step

    f=@(alpha) alpha;

    g=@(teta) -w^2*sin(teta);

    teta=zeros(1,N);

    alpha=zeros(1,N);

    teta(1)=10*pi/180;   % initial angle(radian)

    alpha(1)=0;          % initial angle speed

    for i=1:N-1

    k1= f(alpha(i));

    kp1= g(teta(i));

    k2=f(alpha(i)+h/2*kp1);

    kp2=g(teta(i)+h/2*k1);

    k3=f(alpha(i)+h/2*kp2);

    kp3=g(teta(i)+h/2*k2);

    k4=f(alpha(i)+h*kp2);

    kp4=g(teta(i)+h*k2);

    teta(i+1)=teta(i)+h/6*(k1+2*k2+2*k3+k4);

    alpha(i+1)=alpha(i)+h/6*(kp1+2*kp2+2*kp3+kp4);

    end

    plot(t,teta)

     

  • معادلات دیفرانسیل معمولی – مسایل مقدار اولیه
    جمعه, 21 اسفند 1388 00:58

    معادلات دیفرانسیل معمولی – مسایل مقدار اولیه

    Ordinary Differential Equation - initial value problems

    (IVPs)

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

    معادلات دیفرانسیل معمولی به آندسته از معادلات دیفرانسیل اطلاق می شود که تمامی متغیرهای وابسته ( بعنوان مثال x، y و z ) تنها تابعی از یک متغیر مستقل (برای مثال t) می باشند. مثال آشنا در این مورد می­تواند معادله نوسانگر هارمونیک باشد که در آن مکان نوسانگر تنها تابعی از زمان است. در مقابل معادله دیفرانسیل معمولی معادلات دیفرانسیل جزیی قرار می گیرند که نمونه بسیار آشنای آن معادله شرودینگر است که در آن تابع موج (متغیر وابسته) تابعی از مختصات مکانی و زمان (یعنی   متغیرهای مستقل ) می باشد.

    ابتدا به حل مسایل مقدار اولیه (IVP) با معرفی سه روش اویلر (Euler’s method)، رانگ کوتا (Runge–Kutta method) و تابع آماده در متلب بانام ode45 می پردازیم.

    1-   روش اویلر

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

  • توابع منطقي
    چهارشنبه, 09 دی 1388 20:30

    در این بخش با توابع منطقی any، all و find آشنا می شویم. تابع any معين مي كند كه آيا مولفه غير صفر در يك بردار وجود دارد يا خير.

    » v=[-2 1 3 5];

    » any(v<1)

    ans =

    1

    » any(v>6)

    ans =

    0

    تابع all معين مي كند كه آيا همه مقايسه ها درست هستند يا خير.

    » all(v<1)

    ans =

    0

    » all(v<6)

    ans =

    1

    توابع فوق را مي توانيد براي ماتريسها نيز بكار ببريد. در اين صورت خروجي اين توابع عبارت است

    از حاصل مقايسه هاي گفته شده براي هر ستون ماتريس.

    تابع  find مكان مولفه هاي غير صفر را در يك آرايه نشان مي دهد.

    » find(v>3)

    ans =

    4

  • مشتق چند جمله اي
    چهارشنبه, 02 دی 1388 14:56

    مشتق چند جمله اي را مي توانيد با بكار بردن تابع  polyder محاسبه كنيد.

    » c=polyder(a)

    c =

    2        1

    مشتق حاصلضرب دو چند جمله اي a*b را مي توانيد به صورت زير بدست آوريد:

    » d=polyder(a,b)

    d =

    3        0       0

    در صورتي كه تعداد آرگومانهاي خروجي تابع polyder برابر ٢ باشد، تابع مشتق تقسيم دو چند جمله اي جمله اي را تعيين مي نمايد:

    » [q,d]=polyder(a,b)

    q =

    1        -2      -2

    d =

    1        -2       1

  • کتاب های الکترونیک -برنامه نویسی و روش های عددی در MATLAB
    چهارشنبه, 02 دی 1388 19:34

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

    سرفصل های این کتاب به این ترتیب است:

    1. Simple Calculations with MATLAB
    2. Writing Scripts and Functions
    3. Writing Scripts and Functions
    4. Root Finding
    5. Interpolation and Extrapolation
    6. Matrices
    7. Numerical Integration
    8. Solving Differential Equations
    9. Simulations and Random Numbers
    10. A Mathematical Introduction to Matrices
    11. Glossary of Useful Terms

    حجم کتاب: 3MB

    تعداد صفحات: 468

    نوع فایل: PDF

    دریافت کتاب:

    لینک اصلاح شده 

  • معرفی کتاب، منطق فازی در متلب
    سه شنبه, 25 آبان 1389 12:22

    این اثر با بهره گیری از بهترین منابع موجود در زمینۀ منطق فازی، مرجعی مناسب برای یادگیری اصول و مبانی منطق فازی و آشنایی با روش های استدلال فازی در نرم افزار MATLAB می باشد. در این راستا مباحث مطروحه در این کتاب به نرمی از مرز بین تئوری و عمل عبور کرده و دانش پژوهان را ضمن آشنایی با مفاهیم اولیه، در مسیر عملیاتی نمودن ایده ها و آموزه ها هدایت می کند. برای نیل به این هدف این کتاب در دو بخش کاملاً مستقل از هم سازماندهی شده است. بخش اول با عنوان مبانی پایه منطق فازی، ترجمۀ دقیقی از 4 فصل اوّل کتاب «عصبی-فازی و محاسبات نرم،رهیافتی محاسباتی برای یادگیری و هوش ماشین » نوشتۀ راجر ژانگ،تیسای سان و اِیجی میزوتانی می باشد. در این بخش سعی شده تا خواننده با تاریخچه و مفاهیم پایۀ مجموعه ها و منطق فازی و روش های استنتاج فازی از دیدگاه ریاضیاتی و تئوریک آشنا شود. در بخش دوم با عنوان آشنایی با جعبۀ ابزار منطق فازی در MATLAB ، خواننده پس از آشنایی مختصر با MATLAB و ابزار های آن، با جعبۀ ابزار منطق فازی در MATLAB آشنا شده  و نحوۀ ایجاد انواع سیستم های استنتاج فازی را روی خط فرمان و در محیط Simulink فرا می گیرد. در نهایت و در فصول پایانی، خواننده با روش مدلسازی ANFIS و کلاسترینگ فازی آشناخواهد شد. در این بین نکتۀ حائز اهمیت در استقلال کامل دو بخش این کتاب است. این استقلال به گونه ای است که خواننده قادر است بی آنکه خللی در فهم مطالب ایجاد شود،با صرفنظر از بخش اول مستقیماً به مطالعۀ بخش دوم اهتمام ورزد.

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

     

    منطق فازي در MATLAB
    گردآوري و تدوين: مصطفي كيا
    ويراستار: پيمان عمراني
    شابك: 0-90-5237-600-978
    تعداد صفحات: 304

    آنچه در اين كتاب مي خوانيد: