رفتن به مطلب

تاپیک رفع اشکال و بحث پیرامون یادگیری متلب در تابستان 92


M!Zare

ارسال های توصیه شده

این معادله هم کلا خطا میده. نمیدونم حرف حسابش چیه

 

  • :ws38:
     

 

z1i92ido7y5ucvvf7o7_thumb.jpg

 

این خطاها رو چطور می تونم خودم بفهمم یعنی چی. هی مزاحم شما نشم :ws3:

لینک به دیدگاه
  • پاسخ 119
  • ایجاد شد
  • آخرین پاسخ

بهترین ارسال کنندگان این موضوع

بهترین ارسال کنندگان این موضوع

[quote name='S.F']درود
خوب می دونی من کار می کنم. عکس می گیرم. بعد میبینی بعد ی هفته می زارم اینجا. بر همین عکسی ه. ببخشید.

پس انگار سوال درست اینکه بپرسم کی استرینگ تعریف کنم کی از سیمز برم؟
بعد انگار همچین هم دستور سیمز یا کلا نحوه معرفی کردن تابع مهم نیست.
این رو ببینین.
[URL="http://www.noandishaan.com/upload/viewer.php?file=qpe6xumgcfarm49rjgu.jpg"][IMG]http://www.noandishaan.com/upload/images/qpe6xumgcfarm49rjgu_thumb.jpg[/IMG][/URL]
نمونه ی کتاب ه. تی تعریف نشده برا سیمز، مشکل هم پیش نیومده. حالا نمی دونم ب خاطر اینکه ایمان نوشته بود هلپ گفته پیش فرض به تی هست یا نه!

صفحه قبل یاسر ی چیزی گفت. انگار سیسمز بزنم، برا قدرت تحلیلی متلب بهتره. درسته؟


آقا یاسر مختصر ک وقتت گرفته نشه همین روشهای تعریف تابع رو میگی؟ هندل فانکشن هم بگی متشکر می شم.


ایمان، یعنی سیمولینک یاد بگیرم؟ :ws38: اینطور ک میگی اون راحت تر جواب میده. یا اول باس اینا رو یاد بگیرم بعد بریم سیمولینک؟[/QUOTE]

سلام
نه دیگه گفتم وقتی string باشه، دیگه نیاز نیست که متغیر ها اول هم syms تعریف بشن، ولی خب خروجی از نوع سمبولیک هست و باید به صورت syms تعریف شده باشه. استدلال خودم اینه که وقتی به صورت رشته میدی تعریف متغیرها به صورت syms داخل تابع انجام میشه و توی ورک اسپیس داخلی تابع متغیرهای عبارتی که نوشتی به صورت سمبولیک هستن، ولی چون داخل ورک اسپیس خود تابع solve تعریف شدن توی ورک اسپیس اصلی دیده نمیشن.

فرقی نمی کنه که به صورت رشته تعریف بشه یا syms، هر دو رو از یه روش حل می کنه و خروجی یکسانی داره. ولی موقعی که syms استفاده می کنیم، می تونیم بگیم y تابعی از x هست، یا مثلا حقیقی هست و از این مدل محدودیت ها هم برای متغیرها بذاریم. اینجوری بگم شاید بهتر باشه توی این مثال هایی که گذاشتی فرقی نمی کرد، ولی خب حالت استفاده از رشته به نوعی ساده تر شده حالت اصلی که سمبولیک باشه هست دیگه، در نهایت هم هر دو از طریق سمبولیک حل میشن.

یه لحظه در مورد اینکه از لحاظ زمان اجرا فرقی دارن یا نه شک کردم، واسه انتگرال عددی و سمبولیک که خیلی توی زمان اجرا فرق دارن، ولی در مورد اینا یادم نیست چیزی بود یا نه، چک هم کردم یکی هستن:

[CODE]clear all
close all
tic
[solutions_a, solutions_u, solutions_v] = ...
solve('a*u^2 + v^2 = 0', 'u - v = 1', 'a^2 + 6 = 5*a')
toc

clear all
close all
tic
syms a u v
[solutions_a, solutions_u, solutions_v] = ...
solve(a*u^2 + v^2 == 0, u - v == 1, a^2 + 6 == 5*a)[/CODE]
@Yaser\.C بیا توضیح بده:w02:

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

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

کلا در مورد اینا یاسر بهتر می تونه راهنماییت کنه، مطمئنم تسلطش از من خیلی بیشتره.:a030:

لینک به دیدگاه
ی سوال حد

حد

[x]+[-x]

وقتی ایکس به سمت 2 میل کنه. خوب این جوابش باید بشه 1 -

 

ولی چرا اینطوری شده؟

 

8xiyf655vcx7mpj04f3d_thumb.jpg

 

jcbmq6tix42qt1sb9v4d_thumb.jpg

 

خب چیزی که نوشتی حد اینه:

 

[x]-[x]

 

باید صفر بده دیگه.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دومی خروجیش چی باید بده، صورت صفر حدی هست، مخرج صفر مطلق، درسته؟

لینک به دیدگاه
این معادله هم کلا خطا میده. نمیدونم حرف حسابش چیه

 

  • :ws38:

 

z1i92ido7y5ucvvf7o7_thumb.jpg

 

این خطاها رو چطور می تونم خودم بفهمم یعنی چی. هی مزاحم شما نشم :ws3:

 

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

 

فروم اصلیش answers سایت mathworks.com هست دیگه، آدمای باسواد هم زیاد داره.

البته stackoverflow هم که کلا سایت معتبری هست، برای متلب هم همینطوره.

لینک به دیدگاه

صفحه قبل یاسر ی چیزی گفت. انگار سیسمز بزنم، برا قدرت تحلیلی متلب بهتره. درسته؟

 

 

آقا یاسر مختصر ک وقتت گرفته نشه همین روشهای تعریف تابع رو میگی؟ هندل فانکشن هم بگی متشکر می شم.

 

سلام

تو روش تحلیل تابع همونطو که خودتون هم میدونید و ایمان هم مثال های خوبی آورد روش های زیادی هست. اما کتابخونه تعریف سیمبولیک تو متلب کامل تره و میتونه تحلیل های زیادی رو تو اون انجام بده... نمونشو خودتون می تونید تو توابع جانبی ببینید که مثلا اومدن اینجا حتی چندین دستور برای نمایش تابع مثل pretty تعریف کردن.... کلا این کتابخونه متلب از سایر کتابخونه های اون که میشه باهاشون تعریف تابع کرد قدیمی تره و یه کمم شاید پیشرفته تر... اما این دلیل نمیشه که نتونید از روش های دیگه تعریف تابع استفاده کنید... اون ها هم قطعا میشه اما قدرت تحلیل متلب از نظر توابع پیشفرض کتابخونه ای تو این مدل تعریف کردن بیشتره:w16:

 

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

 

اما خوب در مورد روشهای تابع باز هم ممکنه روشهای زیادی باشه که منم همشو بلد نیستم و ایمان بایستی بیاد حرفای منو تکمیل کنه:w16::icon_gol:

 

اما دو روش رو که قبلا گفتیم ایمان هم یه دونه دیگه فک کنم گفت اما شاید قشنگ ترین و راحت ترین و شاید سریعترین (از نظر زمان محاسباتی) استفاده از هندل فانکشن باشه. اینجا یه نمونه کد میذارم بعد توضیح میدم

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

اما در مورد سیمولینک و حل اون بایستی بگم که این قسمت متلب بیشتر برای حل عددی معادلات دیفرانسیل انجام میشه... تفاوت ode ها هم برمیگرده به تخمینی که اونا از حل عددی یه معادله دیفرانسیل دارن.. دقت کنید که اینجا حل بسته به شما داده نمیشه بلکه تو یه بازه زمانی دلخواه پاسخ سیستم بر میگرده. مثلا ode45 روش محاسبات رو با تقریب گام متغیر و یا ثابت رونگه کوتای مرتبه ۴ انجام میده... دستور ode45 هم وجود داره تو خود بخش mfile نویسی اما اون دستور همین روش رو پیاده میکنه با این تفاوت که نمیتونه باگام ثابت انجام بده... درست به خاطر ندارم اما ode113 هم فک کنم به روش آدامز این کا رو انجام میده...حالا این روشها چه فرقی میکنه؟؟؟

 

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

 

 

اما یه نکته دیگه اینکه سیمولینک و بلوکاش به طور پیشفرض برای معادلات دیفرانسیل خطی طراحی شدن و اگه غیر خطی باشه بهتره mfile بنویسیم. حالا اگه بخوایم معادلات دیفرانسیل غیرخطی رو هم تو سیمولینک حل کنیم باید بریم سراغ بلوکهای متلب فانکشن که یه جورایی همون mfile نویسی هست...بحث حل عددی از بحث تحلیلی توابع و اعمال روابط تحلیلی جدا هست و اگه تو این زمینه میخواید وارد بشید بگید تا یه چن تا مثال اینجا بذارم:w16:

 

و در نهایت اینکه تو این قسمت حل عددی اگه بخواید وارد بشید متلب خیلی قدرت محاسباتی بیشتری نسبت به سایر نرم افزاها داره و این مورد باعث شده متلب یه ابزار خوب مهندسی تو تمامی شاخه های مهندسی باشه:w16:

 

کلا در مورد اینا یاسر بهتر می تونه راهنماییت کنه، مطمئنم تسلطش از من خیلی بیشتره.:a030:

 

چوبکاری نکن استاد:5c6ipag2mnshmsf5ju3:icon_gol::icon_gol:

لینک به دیدگاه
سلام

نه دیگه گفتم وقتی string باشه، دیگه نیاز نیست که متغیر ها اول هم syms تعریف بشن، ولی خب خروجی از نوع سمبولیک هست و باید به صورت syms تعریف شده باشه. استدلال خودم اینه که وقتی به صورت رشته میدی تعریف متغیرها به صورت syms داخل تابع انجام میشه و توی ورک اسپیس داخلی تابع متغیرهای عبارتی که نوشتی به صورت سمبولیک هستن، ولی چون داخل ورک اسپیس خود تابع solve تعریف شدن توی ورک اسپیس اصلی دیده نمیشن.

 

فرقی نمی کنه که به صورت رشته تعریف بشه یا syms، هر دو رو از یه روش حل می کنه و خروجی یکسانی داره. ولی موقعی که syms استفاده می کنیم، می تونیم بگیم y تابعی از x هست، یا مثلا حقیقی هست و از این مدل محدودیت ها هم برای متغیرها بذاریم. اینجوری بگم شاید بهتر باشه توی این مثال هایی که گذاشتی فرقی نمی کرد، ولی خب حالت استفاده از رشته به نوعی ساده تر شده حالت اصلی که سمبولیک باشه هست دیگه، در نهایت هم هر دو از طریق سمبولیک حل میشن.

 

یه لحظه در مورد اینکه از لحاظ زمان اجرا فرقی دارن یا نه شک کردم، واسه انتگرال عددی و سمبولیک که خیلی توی زمان اجرا فرق دارن، ولی در مورد اینا یادم نیست چیزی بود یا نه، چک هم کردم یکی هستن:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

@Yaser.C بیا توضیح بده:w02:

 

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

 

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

 

کلا در مورد اینا یاسر بهتر می تونه راهنماییت کنه، مطمئنم تسلطش از من خیلی بیشتره.:a030:

 

مرسی. مهندس.

tic ب چ کار اید. نوشتی؟

 

خب چیزی که نوشتی حد اینه:

 

[x]-[x]

 

باید صفر بده دیگه.

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

دومی خروجیش چی باید بده، صورت صفر حدی هست، مخرج صفر مطلق، درسته؟

 

اولی:

ایکس تقسیم برا جز صحیح ایکس. میل ب صفر

 

صورت مطلق می شه دیگه. نمیشه؟

مخرج چپ و راستش حدی می شه

 

دومی رو حل کردی دیگه. درست بود. مرسی.

 

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

 

فروم اصلیش answers سایت mathworks.com هست دیگه، آدمای باسواد هم زیاد داره.

البته stackoverflow هم که کلا سایت معتبری هست، برای متلب هم همینطوره.

 

سایت اول چقد دیر می اد بالا مهندس.

مرسی.:icon_gol:

 

سلام

تو روش تحلیل تابع همونطو که خودتون هم میدونید و ایمان هم مثال های خوبی آورد روش های زیادی هست. اما کتابخونه تعریف سیمبولیک تو متلب کامل تره و میتونه تحلیل های زیادی رو تو اون انجام بده... نمونشو خودتون می تونید تو توابع جانبی ببینید که مثلا اومدن اینجا حتی چندین دستور برای نمایش تابع مثل pretty تعریف کردن.... کلا این کتابخونه متلب از سایر کتابخونه های اون که میشه باهاشون تعریف تابع کرد قدیمی تره و یه کمم شاید پیشرفته تر... اما این دلیل نمیشه که نتونید از روش های دیگه تعریف تابع استفاده کنید... اون ها هم قطعا میشه اما قدرت تحلیل متلب از نظر توابع پیشفرض کتابخونه ای تو این مدل تعریف کردن بیشتره:w16:

 

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

 

اما خوب در مورد روشهای تابع باز هم ممکنه روشهای زیادی باشه که منم همشو بلد نیستم و ایمان بایستی بیاد حرفای منو تکمیل کنه:w16::icon_gol:

 

اما دو روش رو که قبلا گفتیم ایمان هم یه دونه دیگه فک کنم گفت اما شاید قشنگ ترین و راحت ترین و شاید سریعترین (از نظر زمان محاسباتی) استفاده از هندل فانکشن باشه. اینجا یه نمونه کد میذارم بعد توضیح میدم

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

اما در مورد سیمولینک و حل اون بایستی بگم که این قسمت متلب بیشتر برای حل عددی معادلات دیفرانسیل انجام میشه... تفاوت ode ها هم برمیگرده به تخمینی که اونا از حل عددی یه معادله دیفرانسیل دارن.. دقت کنید که اینجا حل بسته به شما داده نمیشه بلکه تو یه بازه زمانی دلخواه پاسخ سیستم بر میگرده. مثلا ode45 روش محاسبات رو با تقریب گام متغیر و یا ثابت رونگه کوتای مرتبه ۴ انجام میده... دستور ode45 هم وجود داره تو خود بخش mfile نویسی اما اون دستور همین روش رو پیاده میکنه با این تفاوت که نمیتونه باگام ثابت انجام بده... درست به خاطر ندارم اما ode113 هم فک کنم به روش آدامز این کا رو انجام میده...حالا این روشها چه فرقی میکنه؟؟؟

 

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

 

 

اما یه نکته دیگه اینکه سیمولینک و بلوکاش به طور پیشفرض برای معادلات دیفرانسیل خطی طراحی شدن و اگه غیر خطی باشه بهتره mfile بنویسیم. حالا اگه بخوایم معادلات دیفرانسیل غیرخطی رو هم تو سیمولینک حل کنیم باید بریم سراغ بلوکهای متلب فانکشن که یه جورایی همون mfile نویسی هست...بحث حل عددی از بحث تحلیلی توابع و اعمال روابط تحلیلی جدا هست و اگه تو این زمینه میخواید وارد بشید بگید تا یه چن تا مثال اینجا بذارم:w16:

 

و در نهایت اینکه تو این قسمت حل عددی اگه بخواید وارد بشید متلب خیلی قدرت محاسباتی بیشتری نسبت به سایر نرم افزاها داره و این مورد باعث شده متلب یه ابزار خوب مهندسی تو تمامی شاخه های مهندسی باشه:w16:

 

 

 

چوبکاری نکن استاد:5c6ipag2mnshmsf5ju3:icon_gol::icon_gol:

 

تعریف تابع

1- سمبولیک (syms ) شد ک خوب قدرت برا حل تحلیلی میداد.

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

3- هم ک هندل فاکنشن شد ک گفتی دیگه.

 

مدل دیگه ای هم شرح داده شده؟

 

 

مهندس من رو چی فرض کردی؟ واقعا؟ :icon_pf (34):بیسوادم بابا. زیر دیپلم بگو.

بابا نمی فهمم. حل تحلیلی و حل عددی، دقیقا یعنی چی :icon_redface:

 

 

 

تا وسطاش خوب بودا

این اخراش اینطوری شدم:confused:

 

 

اینطور ک گفتی برا تحلیل میرم سراغ میپل.

راستش اینم یکی از سوالهای کلیم بود ک میپل با متلب فرض چیه.

و خوب جواب دادی. مرسی.

 

واقعا من خجالت می کشم میبینم انقدر زمان میزارین برا جواب دادن.

هر پست رو چند بار می خوندم و عکس می گیرم ک مرور کنم.

مرسی واقعا :icon_gol:

لینک به دیدگاه
مرسی. مهندس.

tic ب چ کار اید. نوشتی؟

 

 

 

اولی:

ایکس تقسیم برا جز صحیح ایکس. میل ب صفر

 

صورت مطلق می شه دیگه. نمیشه؟

مخرج چپ و راستش حدی می شه

 

دومی رو حل کردی دیگه. درست بود. مرسی.

 

 

 

سایت اول چقد دیر می اد بالا مهندس.

مرسی.:icon_gol:

 

برای اندازه گیری زمان اجرای کد استفاده میشه، tic برای شروع تایمر هست، toc هم زمان صرف شده رو نشون میده:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

خروجی:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

صورت که x هست، floor(x) مطلقه دیگه که توی مخرجه.:ws38:

 

خب برای تحریم هستش، تا چند وقت پیش کلا برای آی پی ایران باز نمیشد، حالا هم درست لود نمیشه، با ف ی ل ت ر شکن برو.:w16:

لینک به دیدگاه

[quote name='S.F']
تعریف تابع
1- سمبولیک (syms ) شد ک خوب قدرت برا حل تحلیلی میداد.
2- استرینگ شده ک با دو تا اپاستروف نشون داده می شه ک خوب حلش سریع بود و می شه از دستور subs برا مقدار دهی ازش استفاده کرد.
3- هم ک هندل فاکنشن شد ک گفتی دیگه.

مدل دیگه ای هم شرح داده شده؟


مهندس من رو چی فرض کردی؟ واقعا؟ :icon_pf (34):بیسوادم بابا. زیر دیپلم بگو.
بابا نمی فهمم. حل تحلیلی و حل عددی، دقیقا یعنی چی :icon_redface:



تا وسطاش خوب بودا
این اخراش اینطوری شدم:confused:


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

واقعا من خجالت می کشم میبینم انقدر زمان میزارین برا جواب دادن.
هر پست رو چند بار می خوندم و عکس می گیرم ک مرور کنم.
مرسی واقعا :icon_gol:[/QUOTE]

آره درسته همین سه تا رو گفتیم اینجا!!! من فک کردم بیشتر بود!!:ws3:
من در حال حاضر روش دیگه ای تو ذهنم نیست اما اصن بعید نیست که بازم روش دیگه ای وجود داشته باشه برای محاسبات تحلیلی تابع...شاید ایمان بهتر بدونه.. @Imaaan اگه روش دیگه ای بلدی بیا بگو داداش :w16::icon_gol:


نه این حرفا چیه؟؟؟ شما که خیلی با سوادی اما من خیلی کلی گفتم شاید گنگ بوده باشه...برای همون آخرش گفتم اگر سوال بر روی حل معادله دیفرانسیل تو متلب دارید بگید من مثال بذارم که قشنگ مساله معلوم بشه... خوب من برای توضیح حل تحلیلی و حل عددی یه مثال میذارم اینجا...فرض کنید یه همچین معادله دیفرانسیلی داریم
[CODE]
y'=-y-1
[/CODE]

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

[CODE]
y(t)=2exp(-t)-1
[/CODE]

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

[CODE]
[FONT=Courier]syms [COLOR=#B245F3]y(t)[/COLOR][/FONT]
[COLOR=#B245F3][FONT=Courier] [/FONT][/COLOR]
[FONT=Courier]dsolve(diff(y)==-y-1,y(0)==1)[/FONT]
[/CODE]

خوب تا اینجا هیچ مشکلی نبود و قضیه حله حله. اما یه مشکل مهندسی هست!!! تو طبیعت که معادلات دیفرانسیل خطی نیستن!! خیلیاشون غیرخطی هستن!! حالا مشکل دوم اینه که اصن خیلی از معادلات دیفرانسیل غیرخطی اصن حل بسته و تحلیلی ندارن!!! یه تعداد معدود و انگشت شمار هست که جواب داره مثل بسل و لژاندر و اینا!!!! تازه خود بسل هم مثلا با سری های زمانی حل میشد فک کنم!!! خلاصه اوضاع معادلات دیفرانسیل غیرخطی از نظر ریاضی بیریخته!! یعنی حل بسته نداره و نمی تونی بگی که این معادله دیفرانسیل نسبت به زمان جوابش میشه فلان تابع!! مثل مثال بالا!!

یه توضیح این که معادلات دیفرانسیل غیرخطی در دسترس هستن هااا!! اما حلشون دم دست نیس!! یعنی من یه موتور سه فاز رو بهم بدن میتونم با روشهای شناسایی معادلات دیفرانسیل حاکم به اونو (ولو غیرخطی!!) پیدا کنم!! اما مشکل اینه که من جواب اون معادله دیفرانسیل رو نمیدونم!!! این از قسمت اول توضیح!!

حالا مشکل دوم!! بعضی از معادلات دیفرانسیل موجود در طبیعت فقط تابع زمان نیستن!! مثلا میتونن تابع مکان باشن!! و یا به صورت توام مکان و زمان!! مثلا تو ریاضی مهندسی معادلات حرارت و موج رو میخوندیم ما... اونا تابع مکان و زمان به صورت توام هستن... یعنی چی؟؟؟ فرض کنید یه دیسک فلزی داریم که مرکزشو داریم حرارت میدیم...بعد یهو شعله و خاموش میکنیم و میذاریم دیسک سرد بشه... در حین سرد شدن این دیسک میشه گفت که هر دایره دلخواهی با شعاع معلوم از مرکز دیسک داره نسبت به زمان با یه معادله دیفرانسیل سرد میشه.. حالا اگه شعاع رو عوض کنی این معادله دیفرانسیل عوض میشه... این عوض شدنش نشون میده که معادله سرد شدن دیسک من نه تنها تابع زمان هست (چون به مرور زمان سرد میشه) بلکه تابع مکان هم هست.... حالا به این معادلات غیرخطی میگن PDE....این دسته از معادلات خیلی دیگه اوضاشون بیریخته و اصن حل بسته ندارن!! کلن من همون معادلات موج و حرارتی که بهمون درس دادن رو بلدم که براش حل بسته بنویسم بقیه PDE ها خلاصن!!! اصن نمیشه حلشون کرد!!!یعنی اکثر PDEها اصن حل بسته ندارن و دنبال روش ریاضی براشون نیستیم!!! حالا سوال اینه: به صورت عددی هم حل نمیشن؟؟؟

اول اینکه بگم منظورم از عددی چیه؟؟؟؟ فرض کنید که پاسخ یه معادله دیفرانسیل شده سهمی y=t^2. خوب من ممکنه یه روشی معرفی کنم که شاید نتونه این تابع رو به صورت صریح به من معرفی کنه اما ممکنه نقاط این تابع رو بتونه به خوبی و بادقت بالا به من برگردونه!! یعنی من از روی معادله دیفرانسیل بتونم به نقاط پاسخ سیستم پی ببرم بدون داشتن جواب اون!!! خوب اگه من همچین روشی داشته باشم خوبه دیگه!! دیگه حله!! حداقل میتونم از نقطه ها شکل تابع رو داشته باشم و در صورت لزوم بتونم شکل جواب رو بایه تابع خوب تخمین بزنم و یه جواب تقریبی از معادلات دیفرانسیل حل نا پذیرم داشته باشم!!!!! این معجزه حل عددی معادلات دیفرانسیله!!!:w16:

خوب قبل از اون که وارد بحث اصلی بشم مبحثی رو که قبلا باز کردمو تموم کنم!! واقعیت اینه که معادلات دیفرانسیلی که هم تابع زمان باشن و هم مکان (همون PDE ها) در اکثر مواقع حل عددی هم ندارن!!! اوضاع اینا خیلی داغونه!!!:icon_pf (34):
حالا باید چیکار کنیم؟؟؟:ws52:
قبل اینکه راه حل رو بگم یه سری از معادلات دیفرانسیل غیرخطی دیگه رو معرفی میکنم به اسم ODE. این معادلات همون PDE ها هستن که دیگه فقط تابع زمان هستن و دیگه به مکان وابسته نیستن!!خوشبختانه این معادلات تقریبا همشون حل عددی دارن!!! پس ابزارمون مشخص شد!! ما باید بریم سراغ ODEها!! حالا شاید این سوال پیش بیاد که PDE ها چی شدن پس؟؟؟؟ خوب!!! اینجا ما فقط بلدیم ODE حل کنیم اما اگه یه نگاهی به مقالات چند سال اخیر بندازید متوجه میشید که امروزه روش های زیادی اومده که میان PDE ها رو با یه ODE بادقت بالا تقریب میزنن!! یه تقریب ریاضی!! بعد اون ODE رو به صورت عددی حل میکنن!! برای همون هم هست که اسم دستورات حل عددی معادلات دیفراسیل تو متلب ode هست چون فقط اینا رو میتونه عددی حل کنه!! حالا یکی رو با روش آدامز یکی رو با روش رونگه کوتا و....:a030:

البته این توضیح رو هم بدم که در خیلی از موارد هم مساله ما اصن خودش ode هست هااا....خیلی به ندرت پیش میاد مساله مهندسی بشه PDE...تو مهندسی مکانیک این PDE ها شایع تر هستن و بیشتر دیده میشن نسبت به بقیه مهندسی ها..:w16: خوش به حالتون!!!:ws3:

حالا بریم سراغ ode. اینو چه جور حل کنیم؟؟؟؟ گفتم که روش های زیادی دارن اما جواب همه شون یه کلمس!!! فریز کردن زمان و استپ استپ حل کردن اون!! یعنی هر لحظه فرض کنیم زمان یه کوچولو جلو رفته بعد بیایم معادله دیفرانسیل رو مستقل از زمان حل کنیم!! که در تمامی روش هایی که برای حل ode ها مرسومه این عمل انجام میشه اما خوب مثلا رونگه کوتا بعد اینکه زمان وایستاد یه جور تقریب میزنه...آدامز یه جور دیگه تقریب میزنه و الی آخر دیگه!! اما همشون هم بعد اینکه زمان رو فریز کردن یه معادله بازگشتی رو معرفی میکنن!!! خوب حالا که من قراره زمان رو جلو ببرم پس تا یه زمانی میتونم جلوبرم دیگه!!! پس باید تو بازه زمانی حل کنم!! هم اینکه بدونم میخوام از کجا شرو کنم...پس باید شرایط اولیه داشته باشم!! حالا فرض کنید من میخوام ده ثانیه اینو حل کنم و زمان رو استپ به استپ فریز کنم.. حالا اگه بخوام تو ۱۰۰ نقطه اینو حل کنم مثلا هر 0.1 ثانیه یه بار باید مکث کنم. اگه این گام ها ثابت و هم اندازه باشه میشه حل معادله دیفرانسیل با گام ثابت...از طرفی ممکنه تابع من جهش های ناگهانی داشته باشه...خوب اگه با گام ثابت حل کنم ممکنه بین دو تا گام یه تغییرات شدید رو نبینم و حل من غلط بشه!!! پس تو این حالت بهتره از گام متغیر استفاده کنم!!! اینم از گام متغیر و گام ثابتی که قبلا گفته بودم... اما حل این معادلات!!!
از اولین روش های حل عددی معادلات دیفرانسیل ode رو از تقریب نیوتون اویلر برداشتن!!! یعنی از تقریب معروف مشتق استفاده کنم:
[CODE]
[FONT=Courier]y'=(y(t+dt)-y(t))/dt[/FONT]
[/CODE]
که هر چی dt کوچیک تر باشه جواب ما دقیق تره... حالا همون معادله دیفرانسیلی که اول گفتمو در نظر بگیریم با این تقریب میشه
[CODE]
[FONT=Courier]y(t+dt)=y(t)+dt*(-y(t)-1)[/FONT]
[/CODE]

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

امیدوارم اینو کامل متوجه شده باشید...اگه علاقه به حل ode ها دارید بگید براتون یه چن تا مثال خوب از کد نویسیش با روش های مختلف بذارم:w16::icon_gol:

لینک به دیدگاه
آره درسته همین سه تا رو گفتیم اینجا!!! من فک کردم بیشتر بود!!:ws3:

من در حال حاضر روش دیگه ای تو ذهنم نیست اما اصن بعید نیست که بازم روش دیگه ای وجود داشته باشه برای محاسبات تحلیلی تابع...شاید ایمان بهتر بدونه.. @Imaaan اگه روش دیگه ای بلدی بیا بگو داداش :w16::icon_gol:

 

MuPAD هم هستش، خیلی هم گسترده هست و امکانات مختلف داره، منم اصلا در موردش اطلاعات ندارم. مثلا معاله ای که یاسر گفت اینجوری میشه توش حل کرد (از هلپ نگاه کردم:ws3:)، سجاد جان دیگه pretty هم نمی خواد:w02:

lvbcj50i1axfxehdwnck.png

 

نوع دستورا و کدنویسیش هم با خود متلب خیلی تفاوت داره، اینا رو توی Command Window بنویسی ارور میده. برای باز کردنش هم باید داخل Command Window همین mupad رو نوشت.:a030:

لینک به دیدگاه
آره درسته همین سه تا رو گفتیم اینجا!!! من فک کردم بیشتر بود!!:ws3:

من در حال حاضر روش دیگه ای تو ذهنم نیست اما اصن بعید نیست که بازم روش دیگه ای وجود داشته باشه برای محاسبات تحلیلی تابع...شاید ایمان بهتر بدونه.. @Imaaan اگه روش دیگه ای بلدی بیا بگو داداش :w16::icon_gol:

 

 

نه این حرفا چیه؟؟؟ شما که خیلی با سوادی اما من خیلی کلی گفتم شاید گنگ بوده باشه...برای همون آخرش گفتم اگر سوال بر روی حل معادله دیفرانسیل تو متلب دارید بگید من مثال بذارم که قشنگ مساله معلوم بشه... خوب من برای توضیح حل تحلیلی و حل عددی یه مثال میذارم اینجا...فرض کنید یه همچین معادله دیفرانسیلی داریم

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

خوب تا اینجا هیچ مشکلی نبود و قضیه حله حله. اما یه مشکل مهندسی هست!!! تو طبیعت که معادلات دیفرانسیل خطی نیستن!! خیلیاشون غیرخطی هستن!! حالا مشکل دوم اینه که اصن خیلی از معادلات دیفرانسیل غیرخطی اصن حل بسته و تحلیلی ندارن!!! یه تعداد معدود و انگشت شمار هست که جواب داره مثل بسل و لژاندر و اینا!!!! تازه خود بسل هم مثلا با سری های زمانی حل میشد فک کنم!!! خلاصه اوضاع معادلات دیفرانسیل غیرخطی از نظر ریاضی بیریخته!! یعنی حل بسته نداره و نمی تونی بگی که این معادله دیفرانسیل نسبت به زمان جوابش میشه فلان تابع!! مثل مثال بالا!!

 

یه توضیح این که معادلات دیفرانسیل غیرخطی در دسترس هستن هااا!! اما حلشون دم دست نیس!! یعنی من یه موتور سه فاز رو بهم بدن میتونم با روشهای شناسایی معادلات دیفرانسیل حاکم به اونو (ولو غیرخطی!!) پیدا کنم!! اما مشکل اینه که من جواب اون معادله دیفرانسیل رو نمیدونم!!! این از قسمت اول توضیح!!

 

حالا مشکل دوم!! بعضی از معادلات دیفرانسیل موجود در طبیعت فقط تابع زمان نیستن!! مثلا میتونن تابع مکان باشن!! و یا به صورت توام مکان و زمان!! مثلا تو ریاضی مهندسی معادلات حرارت و موج رو میخوندیم ما... اونا تابع مکان و زمان به صورت توام هستن... یعنی چی؟؟؟ فرض کنید یه دیسک فلزی داریم که مرکزشو داریم حرارت میدیم...بعد یهو شعله و خاموش میکنیم و میذاریم دیسک سرد بشه... در حین سرد شدن این دیسک میشه گفت که هر دایره دلخواهی با شعاع معلوم از مرکز دیسک داره نسبت به زمان با یه معادله دیفرانسیل سرد میشه.. حالا اگه شعاع رو عوض کنی این معادله دیفرانسیل عوض میشه... این عوض شدنش نشون میده که معادله سرد شدن دیسک من نه تنها تابع زمان هست (چون به مرور زمان سرد میشه) بلکه تابع مکان هم هست.... حالا به این معادلات غیرخطی میگن PDE....این دسته از معادلات خیلی دیگه اوضاشون بیریخته و اصن حل بسته ندارن!! کلن من همون معادلات موج و حرارتی که بهمون درس دادن رو بلدم که براش حل بسته بنویسم بقیه PDE ها خلاصن!!! اصن نمیشه حلشون کرد!!!یعنی اکثر PDEها اصن حل بسته ندارن و دنبال روش ریاضی براشون نیستیم!!! حالا سوال اینه: به صورت عددی هم حل نمیشن؟؟؟

 

اول اینکه بگم منظورم از عددی چیه؟؟؟؟ فرض کنید که پاسخ یه معادله دیفرانسیل شده سهمی y=t^2. خوب من ممکنه یه روشی معرفی کنم که شاید نتونه این تابع رو به صورت صریح به من معرفی کنه اما ممکنه نقاط این تابع رو بتونه به خوبی و بادقت بالا به من برگردونه!! یعنی من از روی معادله دیفرانسیل بتونم به نقاط پاسخ سیستم پی ببرم بدون داشتن جواب اون!!! خوب اگه من همچین روشی داشته باشم خوبه دیگه!! دیگه حله!! حداقل میتونم از نقطه ها شکل تابع رو داشته باشم و در صورت لزوم بتونم شکل جواب رو بایه تابع خوب تخمین بزنم و یه جواب تقریبی از معادلات دیفرانسیل حل نا پذیرم داشته باشم!!!!! این معجزه حل عددی معادلات دیفرانسیله!!!:w16:

 

خوب قبل از اون که وارد بحث اصلی بشم مبحثی رو که قبلا باز کردمو تموم کنم!! واقعیت اینه که معادلات دیفرانسیلی که هم تابع زمان باشن و هم مکان (همون PDE ها) در اکثر مواقع حل عددی هم ندارن!!! اوضاع اینا خیلی داغونه!!!:icon_pf (34):

حالا باید چیکار کنیم؟؟؟:ws52:

قبل اینکه راه حل رو بگم یه سری از معادلات دیفرانسیل غیرخطی دیگه رو معرفی میکنم به اسم ODE. این معادلات همون PDE ها هستن که دیگه فقط تابع زمان هستن و دیگه به مکان وابسته نیستن!!خوشبختانه این معادلات تقریبا همشون حل عددی دارن!!! پس ابزارمون مشخص شد!! ما باید بریم سراغ ODEها!! حالا شاید این سوال پیش بیاد که PDE ها چی شدن پس؟؟؟؟ خوب!!! اینجا ما فقط بلدیم ODE حل کنیم اما اگه یه نگاهی به مقالات چند سال اخیر بندازید متوجه میشید که امروزه روش های زیادی اومده که میان PDE ها رو با یه ODE بادقت بالا تقریب میزنن!! یه تقریب ریاضی!! بعد اون ODE رو به صورت عددی حل میکنن!! برای همون هم هست که اسم دستورات حل عددی معادلات دیفراسیل تو متلب ode هست چون فقط اینا رو میتونه عددی حل کنه!! حالا یکی رو با روش آدامز یکی رو با روش رونگه کوتا و....:a030:

 

البته این توضیح رو هم بدم که در خیلی از موارد هم مساله ما اصن خودش ode هست هااا....خیلی به ندرت پیش میاد مساله مهندسی بشه PDE...تو مهندسی مکانیک این PDE ها شایع تر هستن و بیشتر دیده میشن نسبت به بقیه مهندسی ها..:w16: خوش به حالتون!!!:ws3:

 

حالا بریم سراغ ode. اینو چه جور حل کنیم؟؟؟؟ گفتم که روش های زیادی دارن اما جواب همه شون یه کلمس!!! فریز کردن زمان و استپ استپ حل کردن اون!! یعنی هر لحظه فرض کنیم زمان یه کوچولو جلو رفته بعد بیایم معادله دیفرانسیل رو مستقل از زمان حل کنیم!! که در تمامی روش هایی که برای حل ode ها مرسومه این عمل انجام میشه اما خوب مثلا رونگه کوتا بعد اینکه زمان وایستاد یه جور تقریب میزنه...آدامز یه جور دیگه تقریب میزنه و الی آخر دیگه!! اما همشون هم بعد اینکه زمان رو فریز کردن یه معادله بازگشتی رو معرفی میکنن!!! خوب حالا که من قراره زمان رو جلو ببرم پس تا یه زمانی میتونم جلوبرم دیگه!!! پس باید تو بازه زمانی حل کنم!! هم اینکه بدونم میخوام از کجا شرو کنم...پس باید شرایط اولیه داشته باشم!! حالا فرض کنید من میخوام ده ثانیه اینو حل کنم و زمان رو استپ به استپ فریز کنم.. حالا اگه بخوام تو ۱۰۰ نقطه اینو حل کنم مثلا هر 0.1 ثانیه یه بار باید مکث کنم. اگه این گام ها ثابت و هم اندازه باشه میشه حل معادله دیفرانسیل با گام ثابت...از طرفی ممکنه تابع من جهش های ناگهانی داشته باشه...خوب اگه با گام ثابت حل کنم ممکنه بین دو تا گام یه تغییرات شدید رو نبینم و حل من غلط بشه!!! پس تو این حالت بهتره از گام متغیر استفاده کنم!!! اینم از گام متغیر و گام ثابتی که قبلا گفته بودم... اما حل این معادلات!!!

از اولین روش های حل عددی معادلات دیفرانسیل ode رو از تقریب نیوتون اویلر برداشتن!!! یعنی از تقریب معروف مشتق استفاده کنم:

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

که هر چی dt کوچیک تر باشه جواب ما دقیق تره... حالا همون معادله دیفرانسیلی که اول گفتمو در نظر بگیریم با این تقریب میشه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

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

 

امیدوارم اینو کامل متوجه شده باشید...اگه علاقه به حل ode ها دارید بگید براتون یه چن تا مثال خوب از کد نویسیش با روش های مختلف بذارم:w16::icon_gol:

 

چند بار خوندم تا فهمیدم :ws3: خدایی من مدیون ت میشم اینهمه می نویسی، یاد نگیرم. جدی ها.

دمت گرم و سرت خوش باد.

مرسی.

واقعا عالی نوشتی.

البته هنوزم باید چند بار دیگه بخونم :ws3:

 

خوب اره. اصلا هدف من انجام محاسبات عددی با متلب ه.

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

 

 

MuPAD هم هستش، خیلی هم گسترده هست و امکانات مختلف داره، منم اصلا در موردش اطلاعات ندارم. مثلا معاله ای که یاسر گفت اینجوری میشه توش حل کرد (از هلپ نگاه کردم:ws3:)، سجاد جان دیگه pretty هم نمی خواد:w02:

 

:w02:

 

نوع دستورا و کدنویسیش هم با خود متلب خیلی تفاوت داره، اینا رو توی Command Window بنویسی ارور میده. برای باز کردنش هم باید داخل Command Window همین mupad رو نوشت.:a030:

 

آی مرسی. این چ باحاله. :ws3:

دیگه اگلای هم نیس :ws3:

لینک به دیدگاه
چند بار خوندم تا فهمیدم :ws3: خدایی من مدیون ت میشم اینهمه می نویسی، یاد نگیرم. جدی ها.

دمت گرم و سرت خوش باد.

مرسی.

واقعا عالی نوشتی.

البته هنوزم باید چند بار دیگه بخونم :ws3:

 

خوب اره. اصلا هدف من انجام محاسبات عددی با متلب ه.

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

 

نه آقا سجاد من کلن پر حرفم!! زیاد نوشتنم برای اونه!!! :ws3:

 

تازه امسال خیلی کم حرف شدم باس پارسالو میدید!!!:whistle:

 

خواهشا از این حرفا هم نزنید دیگه...آدمو خجالت زده میکنید:5c6ipag2mnshmsf5ju3

 

نظر لطف شماست دیگه از هر دری که به ذهنم اومد صوبت کردم اما این بار منسجم تر صحبت میکنم همراه با مثال خوب که فقط حرف و اینا نباشه...سعی میکنم مثال عددی و طبیعی بیارم:w16:

 

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

لینک به دیدگاه
نه آقا سجاد من کلن پر حرفم!! زیاد نوشتنم برای اونه!!! :ws3:

 

تازه امسال خیلی کم حرف شدم باس پارسالو میدید!!!:whistle:

 

خواهشا از این حرفا هم نزنید دیگه...آدمو خجالت زده میکنید:5c6ipag2mnshmsf5ju3

 

نظر لطف شماست دیگه از هر دری که به ذهنم اومد صوبت کردم اما این بار منسجم تر صحبت میکنم همراه با مثال خوب که فقط حرف و اینا نباشه...سعی میکنم مثال عددی و طبیعی بیارم:w16:

 

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

 

پس ان شالله. با کمک شما ی تاپیک برا حل عددی معادلات ب کمک متلب می زنم و بیشتر رو این حوزه تمرکز میکنم تا بیاموزم انچه هست :w16:

 

باز من با کوله باری از سوال.

اول اینکه ب نظرم باید ام فایل نویسی هم یاد بگیرم. چون روش های حل معادلات اکثرا ام فایل میخاد.

بر همین ی تمرین ذهنی برا خودم در نظر گرفتم ک ی ام فایل درست کنم با ورود معداله شرط کامل بودن رو چک کنه و اگ درست بود بنویسه معادله کامل است :ws3: تمرین ساده باشه خوبه :ws3:

 

اما سوالهایی دارم.

1- اکر تابع رو هندل فانکشن تعریف کنم نمشه ازش مشتق بگیرم؟ تست کردم نشد. نمی دونم روشش شاید فرق داره.

 

2- در چ مواقعی باید برا پلات گیری از پارامتر سوم استفاده کنم؟

http://www.noandishaan.com/upload/images/7otwzx5ojibhb4y7nu.jpg

 

3- اینجا این عبارت های k , l ک تو علامت [] گذاشته شده چی ها هستن؟

http://www.noandishaan.com/upload/images/tx5cm93fnpnpcr54khb.jpg

لینک به دیدگاه

4- ی سوال دیگه هم دارم اینکه این

http://www.noandishaan.com/upload/images/4traizfivvzteww2vqr.jpg

ی تقسیم چند جمله به ی چند جمله ای ه.

چطور باید این کار انجام بدم تو مطلب ک حل کنه؟

حل تحلیلی ه دیگه (درسته؟)

 

5- و یکی دیگه اینکه گاهی میشه ادم ی دستور یادش میره شکل کلیش چطور بود. ی دکمه ای هست، (غیر از تب - چون تب املا دستور رو می اره فقط) ک میزنی بعد میگه مثلا در ادامه باید فرمت سینتکس اینطوری باشه ک پرانتز بیاد بعد فلان و فلان. اون دکمه یا اون گزینه ک باید فعال کنم، چیه؟

لینک به دیدگاه
پس ان شالله. با کمک شما ی تاپیک برا حل عددی معادلات ب کمک متلب می زنم و بیشتر رو این حوزه تمرکز میکنم تا بیاموزم انچه هست :w16:

 

باز من با کوله باری از سوال.

اول اینکه ب نظرم باید ام فایل نویسی هم یاد بگیرم. چون روش های حل معادلات اکثرا ام فایل میخاد.

بر همین ی تمرین ذهنی برا خودم در نظر گرفتم ک ی ام فایل درست کنم با ورود معداله شرط کامل بودن رو چک کنه و اگ درست بود بنویسه معادله کامل است :ws3: تمرین ساده باشه خوبه :ws3:

 

اما سوالهایی دارم.

1- اکر تابع رو هندل فانکشن تعریف کنم نمشه ازش مشتق بگیرم؟ تست کردم نشد. نمی دونم روشش شاید فرق داره.

 

2- در چ مواقعی باید برا پلات گیری از پارامتر سوم استفاده کنم؟

http://www.noandishaan.com/upload/images/7otwzx5ojibhb4y7nu.jpg

 

3- اینجا این عبارت های k , l ک تو علامت [] گذاشته شده چی ها هستن؟

http://www.noandishaan.com/upload/images/tx5cm93fnpnpcr54khb.jpg

 

 

ان شاءالله...فکر خوبی هست اما باید اول داش ایمان اوکی بده که کار نهایی بشه...ولی قبلش یه چیزی بگم....تاپیک آموزشی نباشه بهتره چون تجربه کم من میگه تاپیک های آموزشی دنبال نمیشن...به صورت سوال جواب باشه خیلی بهتره:w16:

 

اگه خدا هم کمک کنه هم ام فایل نویسی رو میگم و هم کار با سیمولینک رو....:a030:

 

اما سوال ها!!!

 

۱- آره تاجایی که منم میدونم مشتق به صورت دقیق نداره باس از تقریب مشتق (تعریف حدیش) استفاده کنیم... شاید ایمان بهتر بدونه.. @Imaaan داداش این قضیه رو میدونی چیه؟؟؟؟ من که پیدا نکردم چیزی..نه تو هلپ نه تو استک اور فلو:ws52:

 

۲- اگه بخوام صریح جواب بدم باس بگم هیچ موقع!!! ما متغیر کمکی رو برای پلات استفاده نمیکنیم اصن!!! کاربرد مساله متغیر سوم رو به ما تحمیل میکنه!! یه مثال میزنم که قشنگ اوکی بشه!!

 

فرض کنید که یه روباط داریم که تو یه اتاق در حال حرکته!! حالا اگه به اتاق از سقف نگاه کنیم یه دستگاه دکارتی می بینیم... حالا این روبات با توجه به تغییرات حرکتش در حوزه زمان دو نوع حرکت برخط مستقیم داره...مثلا فرض کنید حرکت روبات نسبت به زمان نسبت در محور های x و y به صورت زیر باشه

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

حالا اینا تغییرات هر کدوم از محور هاست... حالا اگه x و y رو بر حسب هم پلات کنیم حرکت روبات تو صفحه رو نشون میده:a030:

 

۳- اینا برای خروجی های متفاوتن...خود عکس گفته... اینجوری میگم... فرض کنید یه تابع کامپیوتری نوشتید که میتونه محیط و مساحت مثلث رو حساب کنه صورت تابع هم دقیقا میشه همونی که بالای محیط کامند ویندو گذاشتید... محیط رو که از مجموع اضلاع به دست آورده و مساحت رو هم از قاعده هرون..حالا فرض کنید این تابع رو نوشتید و ذخیره کردید و میخواید استفاده کنید...حالا برای استفاده کردنش باید همونطوری که تو کامند ویندو نوشته بنویسید.... تو این روش همون تابع صدا شده و بهش اعداد ۳ و ۴ و ۵ رو داده و به اون تابع هم گفته که تو که دو خروجی هستی خروجی اولتو که میشه مساحت این مثلت بریز تو متغیر k و محیطشو که خروجی دومت هست بریز تو متغیر l....

لینک به دیدگاه

سلام

من یه مشکلی دارم

راستش دو معادله و دو مجهول زیر رو دارم اما نمیدونم چطور توی متلب نوشته میشه...

rktup5speu8e08qiuz0.jpg

که مقادیر L و H معلومن

خودم این رو توی متلب نوشتم:

 

nhd1r3yb806006t97699.jpg

چرا جواب نمیده؟؟:hanghead:

لینک به دیدگاه

سلام...خدا قوت آقا یاسر..

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

لینک به دیدگاه
سلام

من یه مشکلی دارم

راستش دو معادله و دو مجهول زیر رو دارم اما نمیدونم چطور توی متلب نوشته میشه...

rktup5speu8e08qiuz0.jpg

که مقادیر L و H معلومن

خودم این رو توی متلب نوشتم:

 

nhd1r3yb806006t97699.jpg

چرا جواب نمیده؟؟:hanghead:

 

سلام علی جان... جواب میده اما پاسخش به صورت ساختار خودشو نشون میده باس جوابو از دلش بکشی بیرون...این کد رو ببین متوجه میشی:w16::icon_gol:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

الان R0 و alpha0 جواب مساله هستن

لینک به دیدگاه
سلام...خدا قوت آقا یاسر..

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

 

 

سلام...زنده باشید ممنون

 

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

 

این یه نمونه اش هس که من تو گوگل پیدا کردم

 

image1_w.jpg

 

اینم یه مقاله کنترلی تو این زمینه

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

بدید تو تاپیک دریافت مقاله بچه ها زحمتشو میکشن و براتون دانلود میکنن:a030:

لینک به دیدگاه
سلام علی جان... جواب میده اما پاسخش به صورت ساختار خودشو نشون میده باس جوابو از دلش بکشی بیرون...این کد رو ببین متوجه میشی:w16::icon_gol:

 

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

 

الان R0 و alpha0 جواب مساله هستن

 

فقط الان یه دو سه تا سوال دیگه!

اول اینکه جواب نهایی رو به صورت پارامتری میده یعنی مثلا 2atan(12345678/87654321)

این چه جوری درست میشه؟

 

دوم اینکه یه سری عددی دارم بر حسب n که داخلش یه سری ضربی بر حسب m از 1 تا n داره و اونم اینه:

2cc7ff2746cd1ef2588e7ce764ec8f34.png

 

که محیط یه بیضی رو حساب میکنه....

 

سوال بعدی بعد از اینا میادhanghead.gif

لینک به دیدگاه
سلام

من یه مشکلی دارم

راستش دو معادله و دو مجهول زیر رو دارم اما نمیدونم چطور توی متلب نوشته میشه...

rktup5speu8e08qiuz0.jpg

که مقادیر L و H معلومن

خودم این رو توی متلب نوشتم:

 

nhd1r3yb806006t97699.jpg

چرا جواب نمیده؟؟:hanghead:

سلام

علی جان اگه زبان برنامه نویسی برات مهم نیست من برات با فرترن نوشتم

حوصلم سر رفته بود گفتم یه حرکتی بزنم این مسئله رو حل کردم

برای شما هم پیوست کردم

لینک به دیدگاه

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • اضافه کردن...