ورود

View Full Version : انتخاب الگوریتم حل در تابع fsolve



mb1372
چهارشنبه 07 مرداد 1394, 15:40 عصر
سلام دوستان
معادله ای که می خوام حلش کنم با الگوریتم پیش فرض تابع fsolve ، یعنی Trust-region-dogleg ، حل نمیشه. برای تغییر الگوریتم حل به Levenberg-Marquardt باید چکار کنم؟

ehsan_faal
چهارشنبه 07 مرداد 1394, 15:53 عصر
اگه فرم معادلتون ثابته به نظرم اول با نرم افزار maxima اون رو ساده تر کنید یا مثلا اگه فرم معادل براش بود از اون استفاده کنید اگه نشد بعد برید سراغ متلب.

mb1372
چهارشنبه 07 مرداد 1394, 16:12 عصر
اگه فرم معادلتون ثابته به نظرم اول با نرم افزار maxima اون رو ساده تر کنید یا مثلا اگه فرم معادل براش بود از اون استفاده کنید اگه نشد بعد برید سراغ متلب.
ممنون
ولی با توجه به هشداری که متلب داد ، به نظر میاد با همین تغییر الگوریتم مشکلم حل بشه. شما نمیدونید چطوری میشه تغییرش داد؟
ضمنا من باید با استفاده از این حل ، یک منحنی رسم کنم. یعنی صد ها بار باید معادله حل بشه و بهتره توی متلب انجام بشه...

rahnema1
چهارشنبه 07 مرداد 1394, 16:18 عصر
سلام
لازمه options را تنظیم کنید مثلا به صورت زیر. توی هلپ متلب توضیح داده

options = optimoptions('fsolve','Algorithm','levenberg-marquardt');
[x,Fval,exitflag] = fsolve(@myfun, x0, options);

mb1372
چهارشنبه 07 مرداد 1394, 16:27 عصر
سلام
لازمه options را تنظیم کنید مثلا به صورت زیر. توی هلپ متلب توضیح داده

options = optimoptions('fsolve','Algorithm','levenberg-marquardt');
[x,Fval,exitflag] = fsolve(@myfun, x0, options);

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

rahnema1
چهارشنبه 07 مرداد 1394, 16:30 عصر
باید ببینیم چه تابعی بوده و چه جور بوده