ش | ی | د | س | چ | پ | ج |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
حل دستگاه معادلات غیرخطی با دستور fsolve در متلب
در نرم افزار متلب (Matlab)، برای حل دستگاه معادلات غیر خطی، ابتدا تمام معادلات را به سمت چپ برده تا سمت راست تساوی صفر شود مثلا تابع sin(x)=cos(x)+1 را به فرم sin(x)-cos(x)-1=0 تبدیل می کنیم. سپس با استفاده از دستور x=fsolve(y,x0) دستگاه را حل می کنیم.
البته باید توجه داشت که ممکن است نرم افزار متلب نتواند با این دستور هر دستگاهی را حل کند. در دستور فوق y تابع و x0 بازه ای است که حدس می زنیم پاسخ دستگاه در آن باشد. به عنوان نمونه می خواهیم دستگاهی با دو معادله غیرخطی به فرم 2x2-x1 =e^-x2 و 2x1=x2+e^x1 را حل کنیم. برای این کار ابتدا دستورات زیر را در فایل script نوشته و در محل جاری نرم افزار متلب با نام myfun ذخیره کنید:
function F=myfun(x)
F=[2*x(1)-x(2)-exp(x(1));2*x(2)-x(1)-exp(-x(2))];
سپس دستورات زیر را در محیط command متلب بنویسید:
x0=[-5;-5];
x=fsolve(@myfun,x0)