۱۳۹۲/۰۱/۱۱, ۱۰:۱۴ ب.ظ
۱۳۹۲/۰۱/۱۱, ۱۱:۳۵ ب.ظ
سلام .
کدهای متلب زیر ، ماکزیمم مقدار Z و همچنین x1 و X2 مربوط به این ماکزیمم را پیدا می کند :
در واقع برای x1 و x2 بازه تعریف کردیم و سپس در این بازه ها ، نمونه هایی رو برای عبارتی که باید ماکزیمم شود به کار برده ایم تا ببینیم مقدار حاصل چقدر می شود . در هر تکرار حلقه ، اگر مقدار z بزرگتر از مقدار ماکزیمم قبلی باشد آنگاه آن را در متغیر z_max ذخیره می کنیم تا در انتهای برنامه نمایش داده شود .
دستور length برای محاسبه طول یک بردار به کار می رود . فاصله بین نمونه ها را برابر 0.1 تعیین کرده ایم که می توانید آن را تغییر دهید .
بازه ها برای x1 و x2 از روی شرایط ذکر شده تعریف می شود ، فقط حد بالای بازه x1 را نداریم که به دلخواه عدد بزرگ 1000 را انتخاب کرده ایم .
نتیجه اجرای کد متلب به صورت زیر می باشد :
که در آن ، Z_max نشان دهنده مقدار ماکزیمم Z است و x1_max و x2_max ، مقادیری از x1 و x2 می باشند که Z ماکزیمم را به وجود می آورند .
کدهای متلب زیر ، ماکزیمم مقدار Z و همچنین x1 و X2 مربوط به این ماکزیمم را پیدا می کند :
کد:
clear all
close all
clc
x1=0:0.1:1000;
x1_length=length(x1);
x2=0:0.1:4;
x2_length=length(x2);
Z=0;
x1_max=0;
x2_max=0;
Z_max=0;
for nn=1:x1_length
for mm=1:x2_length
if (x1(nn)+x2(mm)<=10 && x1(nn)-x2(mm)<=8)
Z=4*x1(nn)-x2(mm);
if (Z>Z_max)
Z_max=Z;
x1_max=x1(nn);
x2_max=x2(mm);
end
end
end
end
x1_max
x2_max
Z_max
در واقع برای x1 و x2 بازه تعریف کردیم و سپس در این بازه ها ، نمونه هایی رو برای عبارتی که باید ماکزیمم شود به کار برده ایم تا ببینیم مقدار حاصل چقدر می شود . در هر تکرار حلقه ، اگر مقدار z بزرگتر از مقدار ماکزیمم قبلی باشد آنگاه آن را در متغیر z_max ذخیره می کنیم تا در انتهای برنامه نمایش داده شود .
دستور length برای محاسبه طول یک بردار به کار می رود . فاصله بین نمونه ها را برابر 0.1 تعیین کرده ایم که می توانید آن را تغییر دهید .
بازه ها برای x1 و x2 از روی شرایط ذکر شده تعریف می شود ، فقط حد بالای بازه x1 را نداریم که به دلخواه عدد بزرگ 1000 را انتخاب کرده ایم .
نتیجه اجرای کد متلب به صورت زیر می باشد :
کد:
x1_max =
9
x2_max =
1
Z_max =
35
که در آن ، Z_max نشان دهنده مقدار ماکزیمم Z است و x1_max و x2_max ، مقادیری از x1 و x2 می باشند که Z ماکزیمم را به وجود می آورند .
۱۳۹۲/۰۱/۱۲, ۱۲:۰۶ ب.ظ
ممنون که جواب سوالات میدید
به نظر شما کلیه مسائل سیمپلکس با این روش حل میشوند یا متلب تابع های تعریف شده داره؟؟
ببخشید میشه لطف کنیداین فایل متلب که ضمیمه کردم نگاه بندازید و نظرتونا بگید,
البته سایت اجازه نداد که فایل m. بفرستم و به صورت word فرستادم
به نظر شما کلیه مسائل سیمپلکس با این روش حل میشوند یا متلب تابع های تعریف شده داره؟؟
ببخشید میشه لطف کنیداین فایل متلب که ضمیمه کردم نگاه بندازید و نظرتونا بگید,
البته سایت اجازه نداد که فایل m. بفرستم و به صورت word فرستادم
۱۳۹۲/۰۱/۱۳, ۱۰:۱۶ ق.ظ
mfile ها رو می تونید ابتدا zip کنید و بعد بفرستید .
دستور linprog میتونه برای حل اینگونه مسائل به کار بره . البته این دستور ، مینیمم یک عبارت (مقدار متغیر که عبارت رو مینیمم میکنه) رو پیدا میکنه و اگر قصد داشتید که از ماکزیمم استفاده کنید ، تنها کافی است که عبارت مورد نظرتان را وارونه کنید (صورت را به مخرج و مخرج را به صورت ببرید) و سپس از دستور linprog استفاده کنید ، پاسخ آن برابر مقداری از متغیر است که عبارت اصلی (وارونه نشده) را ماکزیمم میکنه .
همین دستور کارتون رو راه میندازه و نیازی به اون فایل ضمیمه نیست .
دستور linprog میتونه برای حل اینگونه مسائل به کار بره . البته این دستور ، مینیمم یک عبارت (مقدار متغیر که عبارت رو مینیمم میکنه) رو پیدا میکنه و اگر قصد داشتید که از ماکزیمم استفاده کنید ، تنها کافی است که عبارت مورد نظرتان را وارونه کنید (صورت را به مخرج و مخرج را به صورت ببرید) و سپس از دستور linprog استفاده کنید ، پاسخ آن برابر مقداری از متغیر است که عبارت اصلی (وارونه نشده) را ماکزیمم میکنه .
همین دستور کارتون رو راه میندازه و نیازی به اون فایل ضمیمه نیست .
۱۳۹۲/۰۱/۱۵, ۱۰:۵۴ ق.ظ
ممنون
در ضمن zip هم قبل نکرد
در ضمن zip هم قبل نکرد