مهندسی مکانیک دانشگاه خلیج فارس

آموزش نرم افزار ها, کتب و جزوات دروس مهندسی مکانیک , مقالات مربوطه و غیره را در این سایت ببینید

مهندسی مکانیک دانشگاه خلیج فارس

آموزش نرم افزار ها, کتب و جزوات دروس مهندسی مکانیک , مقالات مربوطه و غیره را در این سایت ببینید

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
طبقه بندی موضوعی
نویسندگان

در درس محاسبات عددی روش هایی برای حل معادلات غیر خطی و بدست آوردن ریشه های معادلات وجود دارد که برنامه کامل آن ها به زبان متلب در ذیل آورده شده است:

1) Bisection ( تنصیف یا دو بخشی ) 

2) Regular falsi ( نابجایی )

3) Newton-Raphson

4) secant ( وتری )

5) fixed point iteration ( نقطه تکرار )

رمز فایل : AliAshouri


                   

نظرات  (۲۰)

آقا ممنون واسه کدت، ولی من نتونستم ازش استفاده کنم
من یه دستگاه 3 معادله 3 مجهول غیر خطی دارم که ضرایب معادله هم سیگما دارن، یعنی مثلا هر عبارتش مجموع 5 تا عبارت هستش در واقع، واسه ی این راهکاری ندارین؟
پاسخ:
با سلام و احترام

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

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

هم روش گاوس هست و هم روش گاوس سیدال.

اما دستگاه معادله شما, یعنی اینکه سه معادله سه مجهول دارید و به طور مثال در معادله ی اول ضریب مجهول اول , یک عبارت سیگما عددی معین هست.

خوب می شود آن سیگما ها را به صورت دستی حل کرده و به جای ضریب مجهول مذکور قرار داد یا اینکه یک برنامه برای حساب کردن سیگما ها نوشت.

یا اینکه ابتدا برنامه ای برای حل سیگما ها نوشت و اجرا کرد , و جواب هر سیگما را به نام یک حرفی مثل q ذخیره کرد, سپس در برنامه ی حل دستگاه معادلات , برای ضریب به جای سیگما از mat2str(q استفاده کرد که عدد ذخیره شده ی q که حاصل آن سیگما بوده را به جای ضریب می گذارد و دیگر نیازی به حساب کردن دستی سیگما نیست.

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

اگر می شود عکسی از معادله ی خودتان گرفته و به ایمیل بنده ایمیل کنید تا ببینم دستگاه شما چگونه است؟

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

    (a*x-exp(x
    این تابع اگر a*ln(a)-a بزرگتر از صفر باشه دارای دو ریشه هستش

    این معادله رو با دستور ('( solve('a*x-exp(x در متلب فقط خروجی زیر رو میده!!!!!

    (lambertw(0, -1/a-

    که در این جواب lambertw تابع لامبرت هستش. این جواب فقط ریشه کوچک رو به ما میده!!!
    جواب دوم رو نمیدونم به چه صورتی بدست بیارم.
    ممنون میشم اگه راهنماییم کنید.

    البته اگه ضرایب ثابت نباشن میتوان با روش های عددی جواب دوم رو بدست آورد (مثل روش نیوتن رافسون. ولی میخوام جواب دوم رو بر اساس ضریب ثابت a بدست بیارم)
    سلام
    خیلی جالب بود برنامتون
    من یه سوال دارم. یه مسأله هست که 18 معادله 18 مجهولی داره و توان x ها 1 یا 2.5 هستش. با کدوم روش حل کنم این معادله ها رو؟
    پاسخ:
    سلام خانم امینی
    تشکر از نظر شما
    جهت حل دستگاه معادلات فوق می توانید از دستور solve خود برنامه متلب استفاده کنید.
    اگر با این کد آشنا نیستید , می توانید در قسمت demo متلب , کلمه solve را جست و کرده و مثال های مربوط به این تابع را ملاحظه کنید.
    برنامه هایی که شخصا نوشته ام صرفا برای معادلات خطی می باشد.
    با عرض سلام اگر امکان دارد برنامه تکرارا ساده را در متلب برام بفرستید
    واقعا ممنون از مطالبتون
    همه عالی بودند.خسته نباشید
    خیلی از کدهاتون استفاده کردم:)
    پاسخ:
    خواهش می کنم.
    موفق باشید.
    سلام . خیلی ممنون .

    ببخشید من نتونستم تو متلب اجراش کنم ، میشه یه توضیح مختصر بدین ممنون میشم :)
    پاسخ:
    سلام
    در متلب که اجرا بشود ( به شرط آنکه نام پوشه ها فارسی نباشد و محل فایل کد درست باشد ) , توضیحات به صورت راهنما آورده شده است.
    مشکل را بگوئید , تا بدانم علاج آن چیست؟
  • حسین قنبری
  • سلام
    من یک معادله غیر خطی ناهمگن دارم برای حل این معادله از کدوم کد متلب استفاده کنم لطفا راهنمایی کنیدو دستور نوشتنش رو بهم بگید
    ممنون
    سلام ممنون از کد هاتون
    من در انتخاب روش حل دچار مشکل می شم و متلب خطال می دهد
    Error using input
    Undefined function or variable 'Bisection'.

    Error in numerical (line 16)
    R=char(input(' which one method do you want to use and insert it as char? '));
    چه کار بکنم
    ممنون
    پاسخ:
    سلام
    نوشته ام که باید به صورت char وارد کنید. اگر به صورت char وارد کنید مشکلی پیش نمی آید
    سلام خسته نباشید من یک دستگاه معادلات غیر خطی دارم که دو مجهول داره و یکی از معلوم هام از 0 تا 360 تغییر میکنه . اما حالا من نمیتونم به fsolve ام برا یکی از اجزای معادله ام بازه بدم
    لطفا اگه میشه کمکم کنین خیلی ضروریه
    پاسخ:
    سلام
    این کد ها برای حل معادلات خطی استفاده می شوند. برای حل معادلات غیر خطی می شود از dsolve استفاده کرد. در این کد می شود.
    موفق باشید
    سلام.خوبین؟من یه معادله غیرخطی میخوام حل کنم خیلی سخته.میشه بهم کنید.من با متلب هم اصلا آشنایی ندارم.تلگرام نداریدتاراحتربشه سوالامون بپرسیم؟
    پاسخ:
    سلام
    در برنامه توضیحات کامل داده شده است
  • امیرمهدی فرجی
  • با سلام
    امیدوارم خوب باشید،اگر امکان داشته باشه بنده رو راهنمایی بکنید
    یه معادله درجه ی هفت که گفته بودن حلقه ی for بنویسین براش که ریشه اش به عدد5 نزدیک بشه و آخرین ریشه ای که به این عدد نزدیکه رو نمایش بده
    میخواستم اینو با استفاده از متلب بنویسم
    پاسخ:
    سلام
    با استفاده از کد حاضر، این کار امکان پذیر است
    سلام وقتتون بخیر اقای عاشوری
    من یه دستگاه معادلات دیفرانسیل غیر خطی ناپایا دارم..هر کاری میکنم درست نمیشه
    با نیوتن رافسون حل کردم..سه متغیره هم هست..میشه راهنمایی کنید
    پاسخ:
    سلام
    بستگی به معادله دارد. بعضی از معادلات نیاز به خطی کردن تابع جهت رسیدن به جواب بهتر و بعضی نیاز به بسط دادن است.
    با سلام و خسته نباشید. بابت برنامه و زحمات فراوانی که کشیدید بسیار سپاسگذاریم. بنده خودم برنامه می‌نویسم و زحماتتون رو کاملا درک می‌کنم. ی انتقادی داشتم نسبت به برنامه لون هم نمیخاستم بگم اما در یک کامنت به طور اتفاقی دیدم کخ نوشتید اگر پیشنهاد یا انتقادی هس بفرمایید. انتقاد اینه که این برنامه رو فقط خودتون میتونید استفاده کنید. هدف از برنامه نوشتن اینه که کاربر بتونه استفاده کنه و این برنامه بنظرم گنگه. شما حتی برای نحوه گرفتن مقادیر اولیه کلی توضیح دادین که چطور وارد بشه. قصد کم ارزش کردن برنامه رو ندارم ولی برای مثال برای حل مسائل غیرخطی به روش نیوتن رافسون، بنده کد رو در ۱۳ خط نوشتم. با اتحساب ورودی ها هم نهایت بشه بیس خط. ی برنامه نیوتن ی تابع، استارت پوینت و تولورانس میخاد ن چیز بیشتر، شما حتی مشتق رو هم خواستین. بنظرم برنامه نباید کاربر رو گیح کنه. حرفای بنده چیزی از ارزشای شمارو مطمئنا کم نخاهد کرد. امیدوارم موفق و موید باشید.
    پاسخ:
    با عرض سلام و تشکر از نقد شما
    این برنامه ها را در سال ۹۳ نوشتم که آن زمان بسیار مبتدی و تازه کار بودم. لذا طبیعتا اشکالات و نواقصی نیز دارند.
    باز هم تشکر از نقد شما
    سلام واقعا مطالبتون مفید وکاربردی بود در بخش نظرات دیدم که یکی از کاربران در مورد معادله ای که سیگما داره سوال پرسیده واقعیت امر بنده هم باهمین مشکل روبه روم میشه برنامه ای برا محاسببه سیگما ارئه کنید.
    با سلام و خسته نباشید.
    شما روش نیوتن رافسون برای حل معادله غیر خطی با دو متغیز رو دارید؟
    پاسخ:
    سلام
    تشکر
    خیر ندارم ولی نوشتنش سخت نیست. راحت است.
    موفق باشید.
    با عرض سلام و خداقوت
    یک معادله جبری درجه 6 دارم که ضرایب آن تابعی از فرکانس است و می خواهم ریشه های این معادله را برحسب فرکانس بدست آوریم. آیا روشی وجود دارد برای یافتن 6 ریشه این معادله؟ با توجه به اینکه فرکانس متغیر است.
    سلام
    وقت بخیر
    من فایل متلب رو نمیبینم که دانلود کنم
    راهنمایی میکنین؟

    ارسال نظر

    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی