با اون x و y که به صورت rand هست چندین و چند بار اجرا کردم یک مورد هم منفی نشد
گذاشتم داخل فایل زیپ
http://www.sharefile.ir/uploads/1405710370.zip
اینو میزنم p منفی در میاد :
p=(sum(b./c)+2*Pr)/(2*c/sum(c))-b./(2*c);
اینو میزنم خطا میده :
p=(sum(b.*(1/c))+2*Pr)/(2*c/sum(c))-b.*(1/(2*c));
پیغام :
??? Error using ==> mrdivide
Matrix dimensions must agree.
Error in ==> ProfitCode4 at 47
p=(sum(b.*(1/c))+2*Pr)/(2*c/sum(c))-b.*(1/(2*c));
الان من نمیدونم c و b , pr چی هستند
Pr که فکر کنم یک عدد باشه
این را امتحان کنید
Pr=.32;
c=rand(1,3);
b=rand(1,3);
p=(sum(b./c)+2*Pr)./(2*c./sum(c))-b./(2*c)
مگه اینجور نمیشه؟ Pr=P1+P2+P3
سه تاP داریم که جمعشون بشه Pr
اینکه منفی میاد واسه اینکه شما ضرایب هزینه و سود را واقعی نمیدین به علت اینکه ضرایب هزینه خیلی بالا انتخاب شده این تابع باعث ضرر تولید کننده ها میشه
من این یادم نبود که برای محاسبه ی سود قبل از همکاری از رابطه (1) و (2) استفاده میشه. همه رو از رابطه (9) استفاده کردیم.
حالا چطوری متوجه ش کنم قبل از همکاری رو با این رابطه حساب کن؟
درسته. شما درست می گی ف. باید از معادله 1و 2 استفاده بشه د یگه اون nchoosekو غیره لازم نیست
p کوچیک واسه همکاریه . قبل از همکاری دیگه نه nchoosek لازمه و نه p کوچک.
باید بفهمیم P های بزرگ از کجا میان تا بتونیم اونها را داخل فرمول p کوچک بذاریم. اون جدول A2 هم که روشن شد به درد نمی خوره
دو تا کار میشه کرد:
یا مساحت زیر منحنی را به دست بیاریم
یا از جدول 3 استفاده کنیم و مثلا مقدار Revenue را تقسیم بر مقادیر Sales price در جدول 2 کنیم. البته دقت کنید در جدول 2 بر حسب kw h هست که باید بر حسب mw h بدست بیاریم
مشکل من الآن اینه که نحوه ی محاسبه p کوچیک در برنامه قبلی اشتباهه!
با داده های خودم منفی در میاد که!
یعنی الآن شما میگین p کوچیک باید دارای سه مقدار باشه؟ مثل V محاسبه نمیشه؟
رابطه 8 و 9 را ببین. اندکس از 1 تا m هست و m هم حداکثر تا 3 میتونه باشه بنابراین p حداکثر 3 عضو خواهد داشت
اینو قبول کردم حالا وقتی میخوایم V(1,3) رو بدست بیاریم باید p1 و p3 رو داشته باشیم. حالا توی جمله ی دوم رابطه (9) چطوری بگیم که f(p1)و f(p3) رو با هم جمع بزن؟
توی کد از این عبارت استفاده کردیم
sum(aa(s(j,:)).*(pi(s(j,:)).*pi(s(j,:)))+b(s(j,:)) .*pi(s(j,:))+c(s(j,:)))
دوباره یه نگاهی به s بینداز
هر کدوم از سطرهای s ترکیبی از اعداد هست مثل 1,3 یا مثلا 2,3
وقتی می گیم
pi(s(j,:))
یعنی عناصر 1و3 از pi و یا عناصر 2,3 از pi
یعنی الآن برنامه بغیر از ورودیها، ساختارش هیچ مشکلی نداره؟
و اینکه کار setdiff چیه؟
آخرین ویرایش به وسیله coronaa : یک شنبه 29 تیر 1393 در 00:49 صبح
با اون تابع می خوایهم s-i را پیدا کنیم آرگوتنهاش مهم نیست داخلش مهمه
در هر صورت تونستم بخشی از جدول 3 را بازسازی کنم فق نمیدونم تابع هزینه f را چرا درست محاسبه نمی کنه ولی Wheelingcharge و Revenue درست حساب میشه
در مورد pi ها هم حرف شما درست بود. باید 7 تا تولید می شد که این را از مقایسه جدول 13 فهمیدم
http://www.sharefile.ir/uploads/1405863911.zip
خب من میخوام دقیقن بفهمم چطوری عمل میکنه که موقع ارائه به استادم خودم متوجه باشم چی دارم میگم! :)
ظاهرن شما دارین از نتایج به صورت سوال میرسین. درسته؟ ما که از ابتدا Revenue نداریم که شما توی ورودی گذاشتین! یا من بد متوجه شدم؟
این خط پرانتزش متوازن نبود. خطا میداد :
pi=((sum((b./c)(s(j,:)))+2*Pr)./(2.*c.*sum((1./c)(s(j,:))))-b./(2.*c));
به اینصورت نوشتم. خطا نمیده. درسته اینطوری؟
pi=(sum(b(s(j,:))./c(s(j,:)))+2*Pr)./(2*c(s(j,:))./sum(c(s(j,:))))-b(s(j,:))./(2*c(s(j,:)));
الآن توی این خط خطا میده :
Gene(k)=sum(aa(s(j,:)).*(pi(s(j,:)).^2)+b(s(j,:)). *pi(s(j,:))+c(s(j,:)));
پیغام :
??? Index exceeds matrix dimensions.
آخرین ویرایش به وسیله coronaa : یک شنبه 29 تیر 1393 در 14:29 عصر
این جورش درسته
pi=((sum(b(s(j,:))./c(s(j,:)))+2*Pr)./(2.*c.*sum(1./c(s(j,:))))-b./(2.*c));
(( setdiff( S{i}(j,:) ,aa(z یعنی s-i
و S , v هم که به عنوان آرگومان تابع دادیم دقیقا همون S و v هست که می خواهیم در داخل تابع از اون استفاده کنیم
شما می گی چیکار کنیم P را از کجا بیاریم؟ از مساحت زیر منحنی؟ظاهرن شما دارین از نتایج به صورت سوال میرسین. درسته؟ ما که از ابتدا Revenue نداریم که شما توی ورودی گذاشتین! یا من بد متوجه شدم؟
مرسی. جواب داد. فقط من هنوز نمیدونم برای چی اینو استفاده میکنین!
Revenue=[239657.2 67923.1 22466.4].*1000;
Wheeling=[9077.9 2358.4 739].*1000;
P=Revenue./ro;
اینا رو که ما از قبل نمیدونیم چنده!؟