آشنایی با متلب ( تابع feval)یکشنبه 12, جولای 2020
آشنایی با محیط Matlab
در ادامه آموزش های سایت همیارپروژه برنامه نویسی متلب ارائه خواهد شد .آموزشها از مقدماتی تا پیشرفته ادامه دارد و ما به شما کدنویسی در نرم افزار متلب را یاد خواهیم داد. با ما همراه باشید.
توابع متلبی که از تابع feval استفاده می نمایند.
نرم افزار متلب چندین تابع را جهت محاسبه ی تابع های ایجاد شده توسط کاربر ارائه می دهد. تابع هایی که ما در این بخش آنها را معرفی نموده ایم عبارتند از:
Fzero
یک ریشه معادله زیر را می دهد
Roots
صفر های یک چند جمله ای را به دست می آورد
Quad8
به صورت عددی انتگرال f(x) را در یک بازه خاص محاسبه می نماید.
Trapz
به صورت عددی انتگرال f(x) را در بازه ای خاص بیان می نماید
Polyarea
مساحت محدود بین منحنی های بسته را محاسبه می نماید
F min bnd
یک مینیمم محلی تابع f(x) را در بازه ای خاص می یابد.
Ode45
به صورت عددی معادلات دیفرانسیل معمولی را حل می کند.
Fsolve
به صورت عددی یک دستگاه معادلات غیر خطی را حل می کند.
زمانی استفاده نمودن از این تابع های داخلی , آرگومانهای تابع های ایجاد شده توسط کاربر و خروجی آنها باید از برخی جنبه ها با یکدیگر مطابقت داشته باشد . این الزامات گوناگون در بخشهای زیر نشان داده شده اند و همچنین به وضوح در فایل کمکی آن تابع نیز بیان شده است.
صفرهای توابع – توابع fzero و root /poly
تابع داخلی fzero یک حل معادله ی f(x) را با تلرانس t0 در همسایگی x0 یا در بازه [x1 x2] تعیین می نماید . این تابع همچنین می تواند پارامترهای Pj را به تابعی که f(x) تعریف شده است منتقل نماید. شکل کلی آن به صورت زیر می باشد.
که در آن function name یا نام فایل تابع است که در میان علامت کوتیشن قرار می گیرد و شامل پسوند “.m” نمی شود و یا هنگامیکه با استفاده از دستور inline ساخته شود , نام متغیر تابع خواهد بود که نیازی به علامت کوتیشن ندارد.
و x=x0 یا x0= [x1 x2] و غیره , پارامتر های pj می باشند و options توسط بکار بردن دستور زیر تعیین می شود.
Optimset
تابع داخلی optimset یک تابع تنظیم پارامتر متلب می باشد که توسط چندین تابع متلب ( بیشتر مربوط به جعبه ابزار بهینه سازی ) استفاده می شود. حداقل توصیه می شود که از تابع optimset جهت غیر فعال کردن نمایش استفاده شود
بنابراین نحوه نگارش دستور به صورت زیر می باشد:
قبل از هر مرتبه استفاده نمودن از تابع fzero بکار خواهد رفت . فایل کمکی مربوط به تابع optimset را جهت دیدن چگونگی انواع نسبت دادنها , که می تواند با توجه به تابع تغییر کند ببینید.
اولین عبارت تابع به صورت زیر می باشد:
که در آن x متغیر مستقلی می باشد که تابع fzero جهت یافتن مقداری که منجر به
می شود. آنرا تغییر می دهد. متغییر مستقل باید همواره در این موقعیت قرار داشته باشد . این الزامات برای اکثر توابعی که توسط کاربر جهت محاسبه بوسیله توابع متلب ساخته می شوند صحیح می باشد و همچنین برای تمامی توابعی که در این بخش معرفی شده اند رعایت این اصول الزامی می باشد . اکنون نحوه استفاده از دستور fzero را بان می نماییم.
تابع f(x) می تواند یک تابع داخلی متلب و یا تابع ایجاد شده توسط کاربر باشد . فرض نمایید می خواهیم یک ریشه ی cos (x) را در نزدیکی x=0 تعیین کنیم
در این صورت عبارت زیر:
منجر به نمایش w=1.5000 خواهد شد که بدلیل اینست که cos(1.5Π)=۰ می باشد و عبارت زیر:
نتیجه ی w=2.5000 را به همراه خواهد داشت و در حالیکه عبارت :
W=1.5000 را نتیجه می دهد.
بنابراین برای تابع های چند مقداری کاربر باید از شکل x0=[x1 x2] استفاده کند و محدوده را به شیوه ای صریح تعیین نماید . اما در صورتیکه علامت f(x1) با علامت f(x2) تفاوتی نداشته باشد خطایی رخ خواهد داد. بنابراین عبارت:
منجر به ایجاد خطا می شود, در صورتیکه عبارت :
مانند گذشته w=1.5000 را نتیجه خواهد داد. از اینرو برای توابع چند مقداری که مشخصاتشان برای کاربر معلوم نمی باشد , کاربر ابتدا باید تابع را رسم نماید تا به محل تقریبی ریشه ها دست یابد. از طرف دیگر , اگر ریشه ی معادله j1(x)=0 ( تابع بسل نوع اول از مرتبه ۱ ) در نزدیکی عدد ۳ مطلوب باشد در این صورت عبارت :
آنچنان که خواسته شده است, اجرا نخواهد شد , به خاطر اینکه آرگومانهای تابع besselj , (n,x) besselj می باشند, که در آن n مرتبه (در اینجا n=1 ) و x متغیر مستقل می باشد . بنابراین n اولین آرگومان خواهد بود ونه x .از این رو مجبور به ایجاد تابع جدیدی مطابق زیر خواهیم بود
و سپس تابع fzero را به شکل زیر استفاده خواهیم کرد
در اینجا آشنایی با محیط متلب بخش شصت و هفتم به پایان رسیده است و در آموزش های بعدی به مباحث دیگر آموزش متلب می پردازیم. همچنین از شما مخاطبین عزیز سایت همیارپروژه دعوت می کنم که برای انجام پروژه متلب خود آموزش های ما را دنبال نمایید.
نویسنده: زهرا رستمی
دیدگاهتان را بنویسید